Я хочу создать смарт-контракт, в котором будет храниться список пользователей. У пользователей есть такие поля, как имя, телефон, идентификационная карта и т. Д. Я хотел бы передать список структур пользователя в качестве параметра конструктору контракта. Примерно так:
contract SomeContract {
struct User{
address payable account;
string fullName;
uint id;
uint256 birthdate ;
string telephoneNumber;
...
}
User[] public users;
constructor(User[] memory usersList) public payable{
users = usersList;
}
}
Я пробовал это в Remix, но он показывает сообщение об ошибке, в котором говорится, что для поддержки этих типов в конструкторе необходимо использовать ABIEnconderV2. Я пробовал добавить pragma experimental ABIEnconderV2;
в файл .sol, но кажется, что он тоже не поддерживается Remix.
Есть ли какой-нибудь «чистый» способ передачи объектно-подобных параметров, кроме передачи массивов для каждого поле отдельно, и это не требует слишком большого количества параметров?
Если нет, целесообразно ли использовать ABIEnconderV2, как его можно использовать?