I used the method described in this thread (Decode Uniswap Universal Router transaction in ethers.js) and decoded most of the data of a transaction at this link: https://arbiscan.io/tx/0xfd288567b1a9c827a260b28ff0b6b183d256c60881f75c7d86d50a501593c6fd
Data: 0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000063e1579200000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000b2c73eba00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b82af49447d8a07e3bd95bd0d56f35241523fbab1002710602eb0d99a5e3e76d1510372c4d2020e12eaea8a000000000000000000000000000000000000000000
ExecuteWithCommandsAndInputs(ExecuteWithCommandsAndInputsCall { commands: Bytes(0x0b00), inputs: [Bytes(0x0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000002386f26fc10000), Bytes(0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000b2c73eba00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b82af49447d8a07e3bd95bd0d56f35241523fbab1002710602eb0d99a5e3e76d1510372c4d2020e12eaea8a000000000000000000000000000000000000000000)], deadline: 1675712402 })
The decoded data is as follows:
0x0b00 = first argument of the execute function (commands byte)
0x0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000002386f26fc10000 ([2, 10000000000000000]) = first input of the second argument of the execute function. This matches the data required for "WRAP_ETH"
0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000b2c73eba00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b82af49447d8a07e3bd95bd0d56f35241523fbab1002710602eb0d99a5e3e76d1510372c4d2020e12eaea8a000000000000000000000000000000000000000000 = this part is giving me headaches. Based on the Uniswap Universal Router technical reference (https://docs.uniswap.org/contracts/universal-router/technical-reference), this should have 5 inputs (address, uint256, uint256, bytes, bool). However, I split the data into 64 characters long, and there are a total of 8 lines. Does that mean there are 8 inputs instead of 5?