Как протестировать платный / внешний метод с помощью waffle и ethers.js
Вот смарт-контракт, написанный на 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
Как правильно проверить
donate()
метод смарт-контракта с waffle и ethers.js?
Есть ли метод sendTransaction для ethers.js, который можно вызвать на стороне контракта, как в этом примере web3+truffle ?
1 ответ
Решение
Вы можете использовать параметр. Он используется после всех аргументов функции контракта.
В вашем случае функция контракта имеет 0 аргументов, поэтому
overrides
находится на позиции 1.
let overrides = {
value: ethers.utils.parseEther("1.0")
};
let tx = await myContract.donate(overrides);
Подробнее см. В этом выпуске .