所以我有一个帐户0x1和帐户0x2。他们俩都有。我想用多个事务将令牌发送到0x3。我提供从0x2到0x2的零用钱,=> 0x1可以使用0x2的代币。然后我试着做多项交易:
TransferFrom(0x1, 0xReceiver, 100)
TransferFrom(0x2, 0xReceiver, 100)但作为交易的结果,我得到了ERC20: insufficient allowance
但是,如果我在0xMall地址中添加允许,那么它就可以正常工作,但在这种情况下,我遇到了安全问题,因为任何人都可以从我的地址进行事务处理并使用我的令牌。在这种情况下,如何正确地制作多个transferFrom?作为事务https://dashboard.tenderly.co/asd123444/project/tx/sepolia/0x180e0bfe794ca9be49506bb95cf6bb770a368fa2ff8611a943442cad4c2c4a57的一个例子
0x9b841f5eb54995f206ab6511b48aac9f6fcec5是https://github.com/mds1/multicall
发布于 2023-03-27 22:16:54
简短的回答:如果直接使用EOA,你不能,或者至少不能安全地使用。要做类似的事情,您必须创建自己的合同,授予一个所有者仅限的保护,向其授予补贴,并从您的内部调用Multicall3合同,再次设置备抵,但立即调用multicall,以便在事务完成后津贴被花掉,回到零。
https://ethereum.stackexchange.com/questions/148040
复制相似问题