Safe uses a custom format to wrap calldata in their multiSend method: https://github.com/safe-fndn/safe-smart-account/blob/main/contracts/libraries/MultiSendCallOnly.sol#L12-L26
Decoding of this is currently not possible to represent in the ERC-7730 syntax. For the sake of supporting important contracts such as Safe, we can implement a custom decoding for specific contracts. For Safe, this is how their SDK does the decoding: https://github.com/safe-global/safe-core-sdk/blob/main/packages/protocol-kit/src/utils/transactions/utils.ts#L159-L193
Other than Safe, we should also look into Uniswap which also seems to have a custom calldata encoding.
Safe uses a custom format to wrap calldata in their multiSend method: https://github.com/safe-fndn/safe-smart-account/blob/main/contracts/libraries/MultiSendCallOnly.sol#L12-L26
Decoding of this is currently not possible to represent in the ERC-7730 syntax. For the sake of supporting important contracts such as Safe, we can implement a custom decoding for specific contracts. For Safe, this is how their SDK does the decoding: https://github.com/safe-global/safe-core-sdk/blob/main/packages/protocol-kit/src/utils/transactions/utils.ts#L159-L193
Other than Safe, we should also look into Uniswap which also seems to have a custom calldata encoding.