问题描述
我想在我的合同模板中有一个(Party,CustomObj)的地图作为属性/参数。另外,我想在“合同模板”中将键列表指定为观察者。 我该如何实现?
谢谢。
解决方法
observer
接受范围为模板参数的任意表达式。因此,您可以编写一个从地图中提取键的表达式。为此,请先转换为(key,value)
对的列表,然后使用map fst
丢弃这些值。这是一个完整的示例:
module Main where
import DA.Next.Map (Map)
import qualified DA.Next.Map as Map
data CustomObj = CustomObj
deriving (Eq,Show)
template T
with
sig : Party
m : Map Party CustomObj
where
signatory sig
observer map fst (Map.toList m)