基于ERC20的代币,如何解决持有者帐号无gas费用的转账问题?
发布于 14 天前 作者 kazaff 296 次浏览 来自 智能合约

查过相关的资料(老实说,换了好多关键字都无法在gg上找到匹配度很高的文献~),和这个问题较为相关的就是“gas自动补充”方案:

https://learnblockchain.cn/2018/01/27/create-token2/ http://www.qukuai.top/d/363

不过,这个方案的核心做法,首先是要保证代币合约自身持有一定量的ETH,满足该条件后,至于到底是代币发行方来承担gas费用还是实时自动兑换用户持有代币为eth,这完全取决于运营目的。

也就是说,一定是要在代币合约里提供相关的逻辑,才能完成这种功能~

但,我咨询了一个前辈,他提到说“可以借助智能合约完成在任何代币中实现手续费代付”的功能~他的意思似乎在说,不管目标代币是否提供功能,只要是基于ERC20标准的,都可以借助这个方案来实现:即便是帐号完全没有eth,也可以完成代币的转账~~ 而gas的支付则委托给另外的一个帐号来支付~

听起来超级屌,但我竟然找不到任何相关的资料,而且这种思路感觉颠覆了我的认知,难道这种方案真的存在么?求大神指点~

7 回复

你所要的, 是ERC20 的 approve接口,但这个接口也需要授权账户刚开始的时候能有一些eth才行。

嗯,对,我有注意到这个方法:approve + transferFrom

不过这里有个问题是,用户授权的金额,总不能允许第三方帐号任意支配自己的资产,对吧?~

谢谢@maiiz

@kazaff 所以授权的时候,你需要设置额度呀,如果只允许一次,你设置一次不就好了。

我们的一个合作项目也遇到过这个问题,最后的解决方案是 转账的时候先检查用户的发起地址有没有eth,如果没有立马用系统账户给他转一点,不过这个只能满足特别条件的erc2.0转币,比如用户的交易发起事件是你可监控的

@路人-戊 谢谢解答

多问一下,你提到的特别条件都包含哪些?交易发起事件可监控外,还需要其他条件么?为什么需要这个条件?望解答~~先谢了~

@kazaff 因为如果你不可监控,那就不知道它什么时候会转币,也就不能在它没有eth的时候给他转eth

回到顶部