Резервная функция Solidity с Ethers.js
Каков рекомендуемый способ вызова функции Solidity fallback() с помощью Ethers.js? https://docs.soliditylang.org/en/v0.8.0/contracts.html#fallback-function
2 ответа
Вы можете отправить пустую транзакцию
let txRaw = {
to: contractAddress
};
let txSigned = await signer.signTransaction();
await provider.sendTransaction(txSigned);
Принятый ответ не является точным (технически). Отправка пустой транзакции в контракт сначала активирует функцию. Только если в договоре нетreceive()
функция, она будет запущена (согласно документации Solidity )
Если вы хотите убедиться, позвоните вfallback()
функции контракта, необходимо отправить транзакцию с непустыми данными:
let tx = {
to: contractAddress,
data: "0x0000dead", // can't be just "0x0"
};
await signer.sendTransaction(tx);