Передача параметров в struct
На форуме увидел вопрос-ответ на тему передачи параметров для struct из одного контракта в другой. Сам еще не пробовал, но решил сохранить себе и поделиться тут.
Итак, у нас есть контракт и struct, например:
interface IExternalContract{
struct one {
address user;
unit amount;
}
function callOne(one[] calldata data) external;
}
и в него из другого контракта нужно передать информацию.
Сделать можно так:
В нужном контракте дублирует struct и передаем его аргументы с помощью abi.encodeWithSignature:
contract YourContract {
address public contractAddr;
constructor(address _contractAddr) {
contractAddr = _contractAddr;
}
function callOne(IExternalContract.one[] calldata data) public {
IExternalContract(contractAddr).callOne(data);
}
}
Кто-то уже имел дело с передачей инфы в struct? Как справлялись?
#struct
Post #515
296