我想通过UniversalRouter中的execute函数来完成ETH和ERC20 token的swap功能,我试图在swap函数中调用execute函数,它是这样的
function execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
external
payable
checkDeadline(deadline)
{
execute(commands, inputs);
}
这里还有一个Arbiscan上执行交易的一个例子
Function: execute(bytes commands,bytes[] inputs,uint256 deadline)
MethodID: 0x3593564c
[0]: 0000000000000000000000000000000000000000000000000000000000000060
[1]: 00000000000000000000000000000000000000000000000000000000000000a0
[2]: 0000000000000000000000000000000000000000000000000000000063fdeb90
[3]: 0000000000000000000000000000000000000000000000000000000000000002
[4]: 0b00000000000000000000000000000000000000000000000000000000000000
[5]: 0000000000000000000000000000000000000000000000000000000000000002
[6]: 0000000000000000000000000000000000000000000000000000000000000040
[7]: 00000000000000000000000000000000000000000000000000000000000000a0
[8]: 0000000000000000000000000000000000000000000000000000000000000040
[9]: 0000000000000000000000000000000000000000000000000000000000000002
[10]: 000000000000000000000000000000000000000000000000000aa87bee538000
[11]: 0000000000000000000000000000000000000000000000000000000000000100
[12]: 0000000000000000000000000000000000000000000000000000000000000001
[13]: 000000000000000000000000000000000000000000000000000aa87bee538000
[14]: 00000000000000000000000000000000000000000000000000eb08bf1ab3308a
[15]: 00000000000000000000000000000000000000000000000000000000000000a0
[16]: 0000000000000000000000000000000000000000000000000000000000000000
[17]: 000000000000000000000000000000000000000000000000000000000000002b
[18]: 82af49447d8a07e3bd95bd0d56f35241523fbab1000bb8fc5a1a6eb076a2c7ad
[19]: 06ed22c90d7e710e35ad0a000000000000000000000000000000000000000000
我不知道我应该如何构造出commands和inputs参数以使我能够调用它,有相关的资料或者实现案例可以参考吗?希望社区的大佬们可以帮忙解答下我的困惑。 相关链接:代码https://github.com/Uniswap/universal-router/blob/main/contracts/UniversalRouter.sol 交易https://arbiscan.io/tx/0xb1151d16a8dd84696ec81f9c9c61ec9aa8759099ae51765ba9877ee2313c897f