簡體   English   中英

使用 web3 轉賬 bep20 代幣時,如何從另一個賬戶支付 gas 費用?

[英]How to paid gas charges from another account when transfer bep20 token using web3?

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 費嗎? 我搜索了很多,但沒有找到任何正確的答案。 如果有人知道答案,請以正確的指南回復。

簡單的回答:沒有。

我假設您的目標是不向代幣所有者支付任何費用,因此approve() function 也是不可能的。 如果不是這種情況,代幣所有者可以調用approve() function(為此支付gas費用;允許指定的花費者花費他們的代幣),然后花費者可以調用transferFrom()指定從哪個地址(所有者誰批准他們使用代幣)他們想要轉移代幣。

有一些代幣合約允許通過接受代幣所有者簽署的消息到由交易發送者調用的自定義 function 進行元轉移 - 有效地從所有者那里轉移代幣以及由 tx 發送者支付的所有費用。 但這需要 BUSD 合約(以及大多數代幣合約)沒有實現的自定義實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM