15 钱包资金归集:ETH中A账户转账到B账户,gas 由 B 账户支付,如何实现?

此前开发了一个区块链钱包,生成许多零散的地址收了很多代币以及 ERC20 Token,原来我会配置一个 总钱包,执行归集功能后会把所有零散钱包中的代币归集到总钱包,但是有些钱包中没有 ETH,我只能往里面转一点 ETH 才能把钱包中的 USDT 等 ERC20 token 归集。

观察交易所的钱包,它们都实现了这种归集资金 gas 由指定钱包支付的功能,而且是 ERC20 和主链币都支持,但我查了很久,没发现它们用的是什么方案。

求懂的前辈指点一二。

请先 登录 后评论

2 个回答

XT90 - 开发工程师

两种方式:
transfer: 需要把gas空投到各待归集地址,每次归集的时候判断待归集地址gas是否足够,不够再投

trnasferFrom: 首次空投gas到待归集地址,再执行 approve 合约到中心钱包,后续归集只需中心钱包执行 transferFrom 待归集地址的合约即可,只需首次空投,后续无需再维护

第一种方式便于记账,大多数交易所都在使用。第二种方便维护,使用的交易所不多,记账稍微复杂。

请先 登录 后评论
Wade - Footprint Analytics CTO
  擅长:数据分析,GameFi,NFT
  1. 使用 Meta Transactions 技术,允许用户将交易签名发送到一个中介(如 Relayer),由中介代为提交交易并支付 gas 费用。接收方可以设置一个 Relayer 服务,代用户支付 gas 费用。
  2. Gas Station Network (GSN) 是一种允许用户在不持有 ETH 的情况下进行交易的解决方案。GSN 通过中继(Relayers)代用户支付 gas 费用。
请先 登录 后评论
  • 2 关注
  • 0 收藏,1257 浏览
  • BitCaiGou 提出于 2024-07-30 17:36