【问题标题】:How would I send an eth value to specific smart contract function that is payable in ethers.js?我如何将 eth 值发送到在 ethers.js 中支付的特定智能合约功能?
【发布时间】:2021-09-12 20:18:20
【问题描述】:

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

如何将 eth 值与函数调用一起发送到 ethers.js 中的该函数?文档似乎没有提供太多关于最佳方式的示例。

我的函数调用

const reciept = await contract.buyPunk(1001);

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

【问题讨论】:

标签: node.js ethereum solidity ethers.js


【解决方案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 和价格,这非常酷。是一种很好的模块化方法
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2020-07-31
  • 2021-08-03
  • 2023-03-15
  • 2022-08-12
  • 2020-10-25
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多