Проверьте этот пример, чтобы создать экземпляр структуры в контракте.
pragma solidity ^0.4.22;
contract ArbitrableBlacklist {
enum ItemStatus {
Absent,
Cleared
}
struct Item {
ItemStatus status;
uint lastAction;
}
}
contract test{
ArbitrableBlacklist.Item public item;
function create() public {
item = ArbitrableBlacklist.Item({
status: ArbitrableBlacklist.ItemStatus.Absent,
lastAction: 0
});
}
}
Если вы пытаетесь инициализировать из javascript, то это может быть невозможно - по крайней мере, на данный момент.Но вы можете передать значения членов структуры в качестве параметров функции и создать экземпляр, как показано здесь.
function create(ArbitrableBlacklist.ItemStatus _status, uint _action) public {
item = ArbitrableBlacklist.Item({
status: _status,
lastAction: _action
});
}
Для Enum передайте индекс 0, 1 и т. Д. Из javascript