Структуры приложения рабочей среды 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];

Будет ли это работать для вас?

Другие вопросы по тегам