Как указать msg.value при отправке tx с помощью Ethers.js? (Вопрос о переходе с Web3.js на Ethers.js)
Я пытаюсь перейти с web3 на эфиры, и все шло хорошо, когда я делал это только для
contracts.methods.getValue.call()
функции, но я не могу управлять этим для
contracts.methods.sendValue.send()
функции.
Например, следующая функция web3.js:
await contract.methods.purchase(tokenId).send({
from:accounts[0],
value:price,
gas:3000000
})
Вот что у меня получилось:
const signer = provider.getSigner();
const contract = new ethers.Contract(address, abi, signer);
const tx = await contract.purchase(tokenId);
await tx.then((r) => console.log(r));
Что не работает, потому что я не указываю
value: price
как в версии Web3.js. Так как я могу это сделать?
1 ответ
Вот как вы это делаете, если кому-то интересно.
const signer = provider.getSigner();
const contract2 = new ethers.Contract(address, abi, signer);
const tx = await contract2.purchase(tokenId, {
value: price
})
await tx.wait().then((receipt) => {
console.log(receipt);
})