繁体   English   中英

不使用 ETH 转移 ERC20 代币

[英]Transfer ERC20 token without ETH

我想将 ERC20 代币从一个不拥有 ETH 的钱包转移到另一个拥有 ETH 并且可以支付 gas 费的钱包。 你知道是否可以转移 ERC20 代币并让接收方钱包支付费用吗?

TLDR:不可能,除非代币合约明确允许。 或者除非代币持有者也是区块生产者。

交易费用以 ETH 支付(或者通常是网络的本地货币 - 例如 Binance Smart Chain 上的 BNB,Polygon 上的 MATIC,......)。 所以在大多数情况下,如果你想从你的地址发送代币,你需要支付 ETH 来执行transfer() approve() ,或者如果你想让其他人从你的地址转移代币,则需要支付 ETH 来执行 transfer() function。

很少有代币合约在 ERC20 标准之上实现委托转账机制。 目前没有标准化的方式来执行委托转账,因此每个合约可能有不同的实现。 代币持有者使用他们的私钥签署预先确定的消息,说明他们想要将多少代币转移到哪个地址。 该消息通常还包含一个随机数或时间戳,以防止签名重放攻击。 代币持有者将消息链下传递给交易发送者,然后交易发送者执行专门为委托转账构建的代币合约的 function(注意交易发送者支付执行该功能的费用)。 合约验证签名并执行传输。 同样,大多数代币合约都没有实现这种机制。

该规则的另一个例外是区块生产者。 当您创建一个新块时,您不仅可以使用来自内存池的交易填充它,还可以使用您自己的交易填充它。 你可以建立一个 0 gas 价格的交易,然后将它包含在你正在生产的区块中。 通过这种方式,您还可以免费发送代币。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM