如何使用waffle和ethers.js测试Payable/外部方法 [英] How to test payable/external method with waffle and ethers.js

查看:10
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆