Резервная функция 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);
Другие вопросы по тегам