Структуры приложения рабочей среды Azure Blockchain в конфигурации
Я пытаюсь загрузить умный контракт в Azure Blockchain Workbench. Из учебников для начинающих я вижу, что необходим файл конфигурации. Из справочного документа здесь https://docs.microsoft.com/en-us/azure/blockchain-workbench/blockchain-workbench-configuration-overview поддерживаемые типы, которые не включают структуры или сопоставления. Это сложная задача, потому что умный контракт, с которым я работаю, имеет несколько структур и даже сопоставлений, определенных и используемых в качестве переменных состояния. Есть ли способ обойти это, чтобы указать переменные состояния этих сложных типов? Не знаю, если это глупый вопрос, просто новый для инструмента.
1 ответ
Состояния, определенные в файле конфигурации, определяются как строки, по крайней мере, часть Name для State является строкой. Следовательно, вам необходимо иметь переменную State в вашем контракте Solidity, которая также имеет тип 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];
Будет ли это работать для вас?