0
let contract= new web3.eth.Contract(BUSD_TOKEN_ABI, BUSD_TOKEN_ADDRESS)
await contract.methods.transfer(toAddress, transFerValue).send({from: defaultAddress})

我可以通过使用上述代码从一个地址到另一个地址轻松发送 bep20 令牌,并且它工作正常,但在这种情况下,我需要从 defaultAddress 支付汽油费。但我想从另一个账户支付汽油费。使用 web3 转账 bep20 代币时,有什么方法可以从其他账户支付 gas 费吗?我搜索了很多,但没有找到任何正确的答案。如果有人知道答案,请以正确的指南回复。

4

1 回答 1

0

简单的回答:没有。

我假设您的目标是不向代币所有者支付任何费用,因此该approve()功能也是毫无疑问的。如果不是这种情况,令牌所有者可以调用该approve()函数(为此支付汽油费;允许指定的花费者花费他们的令牌),然后花费者可以调用transferFrom()指定从哪个地址(批准他们花费的所有者)代币)他们想要转移代币。

有一些代币合约允许通过接受代币所有者签署的消息到交易发送者调用的自定义函数来进行元转移——有效地从所有者那里转移代币以及由 tx 发送者支付的所有费用。但这需要 BUSD 合约(以及大多数代币合约)没有实现的自定义实现。

于 2022-01-05T11:34:37.867 回答