gpt4 book ai didi

solidity - Ethers.js,向智能合约汇款(接收功能)

转载 作者:行者123 更新时间:2023-12-05 02:37:59 25 4
gpt4 key购买 nike

我有一个带有接收函数的智能合约:

receive() external payable {
Wallets[msg.sender] += msg.value;
}

我有一个前端,我想使用 receive() 函数将以太币发送到这个智能合约。

async function transfer() {
if(typeof window.ethereum !== 'undefined') {
const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const contract = new ethers.Contract(WalletAddress, Wallet.abi, signer);

const transaction = await contract.send({
from: accounts[0],
value: amount
})
await transaction.wait();
alert('ok');
setAmount('');
getBalance();
}

Saldy,没有“发送”功能,我需要在那里使用什么功能?非常感谢!

最佳答案

当您要调用receive()函数时,您需要向data字段为空的合约地址发送交易。就像您将 ETH 发送到非合约地址一样。

// not defining `data` field will use the default value - empty data
const transaction = signer.sendTransaction({
from: accounts[0],
to: WalletAddress,
value: amount
});

关于solidity - Ethers.js,向智能合约汇款(接收功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69825236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com