Предположим, у меня есть следующий контракт:
contract UserContract {
struct User {
address walletAddress;
string organisation;
string fName;
string lName;
string email;
uint index;
}
mapping(address => User) private users;
address[] private userIndex;
}
Я знаю, как написать функцию, которая возвращает информацию о пользователе, соответствующую данному address
, но я также хотел бы написать функцию, которая можетполучить информацию о пользователе по адресу электронной почты User
.
Как это работает?Является ли мой единственный вариант создания отдельного отображения для этого варианта использования, который отображает структуру User
в строку?Если так, значит ли это, что структура хранится два раза?Или он хранит только ссылки на эту структуру?
Спасибо!