Как указать 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);
})
Другие вопросы по тегам