我如何将 eth 值发送到 ethers.js 中支付的特定智能合约函数?

Ric*_*ian 23 node.js ethereum solidity ethers.js

我正在尝试调用智能合约上的应付函数,该函数只接受一个参数。

如何将 eth 值与函数调用一起发送到 ethers.js 中的该函数?这些文档似乎没有给出太多关于执行此操作的最佳方法的示例。

我的函数调用

const reciept = await contract.buyPunk(1001);
Run Code Online (Sandbox Code Playgroud)

所有其他读写函数调用都按预期工作,但它调用了我尚未解决的付费函数。

Dan*_*nge 44

const options = {value: ethers.utils.parseEther("1.0")}
const reciept = await contract.buyPunk(1001, options);
Run Code Online (Sandbox Code Playgroud)

通过 ethers.js 调用合约函数时,您可以在参数末尾传递一个选项对象。该对象可以设置value随交易一起发送。

此处的文档:https ://docs.ethers.io/v5/api/contract/contract/#Contract-functionsCall