我正在尝试将智能合约上传到天蓝色区块链工作台。从初学者教程中,我看到需要一个配置文件。从这里的参考文档https://docs.microsoft.com/en-us/azure/blockchain-workbench/blockchain-workbench-configuration-overview#type不包括结构或映射的受支持类型。这是一个挑战,因为我正在使用的智能合约有多个结构,甚至定义并用作状态变量的映射。有没有办法解决这个问题,指定这些复杂类型的状态变量?不知道这是否是一个愚蠢的问题,只是该工具的新手。
问问题
108 次
1 回答
1
配置文件中定义的States被定义为字符串,至少State的Name部分是字符串。因此,你需要在你的 Solidity 合约中有一个 State 变量,它也是 String 类型,或者是 Strings 的枚举。
您绝对可以在您的合同中包含结构或映射,但不能用于 State 变量。但是,假设您在每个 State 值的结构中都有信息。然后你可以像这样将该 State 值映射到结构。
enum StateType { Active, Pending, Terminated }
struct StateInfo {
uint age;
string firstName;
string lastName;
}
mapping (string => StateInfo) stateInfos;
var stateInfo = stateInfos[StateType.Active];
这对你有用吗?
于 2018-10-17T11:15:30.440 回答