0

我正在尝试将智能合约上传到天蓝色区块链工作台。从初学者教程中,我看到需要一个配置文件。从这里的参考文档https://docs.microsoft.com/en-us/azure/blockchain-workbench/blockchain-workbench-configuration-overview#type不包括结构或映射的受支持类型。这是一个挑战,因为我正在使用的智能合约有多个结构,甚至定义并用作状态变量的映射。有没有办法解决这个问题,指定这些复杂类型的状态变量?不知道这是否是一个愚蠢的问题,只是该工具的新手。

4

1 回答 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 回答