如何使用waffle和ethers.js测试Payable/外部方法 [英] How to test payable/external method with waffle and ethers.js
本文介绍了如何使用waffle和ethers.js测试Payable/外部方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是用Vyper编写的智能合同,需要测试
owner: public(address)
name: public(String[100])
total_amount: uint256
@external
def __init__(_name: String[100]):
self.owner = tx.origin
self.name = _name
@external
@payable
def donate():
#anyone can donate to the piggy bank
self.total_amount += msg.value
@external
@view
def get_total_amount() -> uint256:
return self.total_amount
用waffle和ethers.js测试智能合约的donate()
方法正确吗?
有没有像web3+truffle这个例子一样可以在合同端调用的ethers.js的sendTransaction方法?
推荐答案
可以使用overrides
参数。它在所有协定函数参数之后使用。
在您的情况下,协定函数有0个参数,因此overrides
位于位置1。
let overrides = {
value: ethers.utils.parseEther("1.0")
};
let tx = await myContract.donate(overrides);
有关详细信息,请参阅this issue。
这篇关于如何使用waffle和ethers.js测试Payable/外部方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文