【问题标题】:Web3 如何调用(使用 .send())智能合约函数并发送 ERC20 代币而不是 eth?
【发布时间】:2022-01-17 11:09:12
【问题描述】:

我正在尝试使用 .send() 从 web3 调用智能合约函数,并通过 send() 我想发送 ERC20 代币而不是以太币(通过值参数)

试过了,还是不行:

await dao.methods.voteForProposal(0).send({
from: accounts[0],
value: contract.methods.transfer("addr", 1).encodeABI(),
});

这是我试图调用的智能合约中的函数:

function voteForProposal(int _proposalId) public payable isMember currentlyRaising returns (bool) {
    voteBank[msg.sender] += msg.value;
    voters.push(msg.sender);
    proposalVotes[_proposalId] += msg.value;
    return true;
  }

【问题讨论】:

    标签: ethereum solidity web3 web3js erc20


    【解决方案1】:

    link to solution

    TL,DR;在接收到发送(甚至可以使用调用)函数调用时,从智能合约函数中转移 ERC20 代币。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-04-26
    • 2022-01-01
    • 2021-09-17
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2021-10-08
    相关资源
    最近更新 更多