我如何将 eth 值发送到在 ethers.js 中支付的特定智能合约功能?
Posted
技术标签:
【中文标题】我如何将 eth 值发送到在 ethers.js 中支付的特定智能合约功能?【英文标题】:How would I send an eth value to specific smart contract function that is payable in ethers.js? 【发布时间】:2021-09-12 20:18:20 【问题描述】:我正在尝试在只接受一个参数的智能合约上调用应付函数。
如何将 eth 值与函数调用一起发送到 ethers.js 中的该函数?文档似乎没有提供太多关于最佳方式的示例。
我的函数调用
const reciept = await contract.buyPunk(1001);
所有其他读写函数调用都按预期工作,但它调用了一个我尚未解决的应付函数。
【问题讨论】:
这能回答你的问题吗? How to test payable/external method with waffle and ethers.js 使用单元测试时,符号会有所不同,因为您在 chai 的框架内工作,不过感谢您的建议 【参考方案1】:const options = value: ethers.utils.parseEther("1.0")
const reciept = await contract.buyPunk(1001, options);
通过 ethers.js 调用合约函数时,您可以在参数末尾传递一个选项对象。该对象可以设置value
随交易一起发送。
此处的文档:https://docs.ethers.io/v5/api/contract/contract/#Contract-functionsCall
【讨论】:
非常感谢!这解决了它,是的,我确实在文档中看到了这一点,但不确定该对象应该包含哪些属性。您还可以在对象中指定 GasLimit 和价格,这非常酷。是一种很好的模块化方法以上是关于我如何将 eth 值发送到在 ethers.js 中支付的特定智能合约功能?的主要内容,如果未能解决你的问题,请参考以下文章