首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ethers.js,将钱发送到智能合约(接收函数)

Ethers.js,将钱发送到智能合约(接收函数)
EN

Stack Overflow用户
提问于 2021-11-03 12:55:36
回答 1查看 948关注 0票数 2

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

代码语言:javascript
复制
receive() external payable {
    Wallets[msg.sender] += msg.value;
}

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

代码语言:javascript
复制
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,这里没有"send“函数,我需要在那里使用什么函数?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 20:49:53

当您想要调用receive()函数时,您需要向合同地址发送一个data字段为空的事务。与将ETH发送到非合同地址的方式相同。

代码语言:javascript
复制
// not defining `data` field will use the default value - empty data
const transaction = signer.sendTransaction({
    from: accounts[0],
    to: WalletAddress,
    value: amount
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69825236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档