[ { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "components": [ { "internalType": "bytes", "name": "bye", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1", "name": "hi", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1[][]", "name": "high", "type": "tuple[][]" }, { "internalType": "fixed8x1", "name": "h", "type": "fixed8x1" } ], "internalType": "struct Foo.Msg2", "name": "foo", "type": "tuple" } ], "name": "_recover", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes", "name": "bye", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1", "name": "hi", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1[][]", "name": "high", "type": "tuple[][]" }, { "internalType": "fixed8x1", "name": "h", "type": "fixed8x1" } ], "internalType": "struct Foo.Msg2", "name": "foo", "type": "tuple" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "recover", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes", "name": "bye", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1", "name": "hi", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "hi", "type": "uint256" } ], "internalType": "struct Foo.Msg1[][]", "name": "high", "type": "tuple[][]" }, { "internalType": "fixed8x1", "name": "h", "type": "fixed8x1" } ], "internalType": "struct Foo.Msg2", "name": "foo", "type": "tuple" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "recoverPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]