From 2ef98e628885fc4366e935907b09887461971606 Mon Sep 17 00:00:00 2001 From: inphi Date: Tue, 2 Dec 2025 16:53:45 -0500 Subject: [PATCH 1/2] op-e2e: Test FPP for delegatecalled precompiles --- op-e2e/actions/proofs/precompile_test.go | 9 +++++--- .../contracts/bindings/invoker/invoker.go | 23 ++++++++++--------- .../DelegateCallProxy.json | 2 +- .../ICrossL2Inbox.sol/ICrossL2Inbox.json | 2 +- .../contracts/build/Invoker.sol/Invoker.abi | 6 +++++ .../contracts/build/Invoker.sol/Invoker.bin | 2 +- .../contracts/build/Invoker.sol/Invoker.json | 2 +- .../contracts/build/emit.sol/EmitEvent.json | 2 +- op-e2e/e2eutils/contracts/src/Invoker.sol | 9 ++++++-- 9 files changed, 36 insertions(+), 21 deletions(-) diff --git a/op-e2e/actions/proofs/precompile_test.go b/op-e2e/actions/proofs/precompile_test.go index d3f14a9b526..cbd1f2068e3 100644 --- a/op-e2e/actions/proofs/precompile_test.go +++ b/op-e2e/actions/proofs/precompile_test.go @@ -214,12 +214,15 @@ func runPrecompileTest(gt *testing.T, testCfg *helpers.TestCfg[PrecompileTestFix require.Equal(t, receipt.Logs[0].Address, invokerContract) require.Len(t, receipt.Logs[0].Topics, 2) precompileAddress := receipt.Logs[0].Topics[1] - var out struct{ Result []byte } + var out struct{ + Result []byte + DelegateCallResult []byte + } err = abi.UnpackIntoInterface(&out, "PrecompileInvoked", receipt.Logs[0].Data) - precompileResult := out.Result require.NoError(t, err) require.Equal(t, common.HexToAddress(precompileAddress.Hex()), testCase.Address) - require.Equal(t, expectedResult, precompileResult) + require.Equal(t, expectedResult, out.Result) + require.Equal(t, expectedResult, out.DelegateCallResult) // instruct the batcher to submit the Invoker precompile tx to l1, and include the transaction. env.Batcher.ActSubmitAll(t) diff --git a/op-e2e/e2eutils/contracts/bindings/invoker/invoker.go b/op-e2e/e2eutils/contracts/bindings/invoker/invoker.go index f98cc82da62..3462c03289c 100644 --- a/op-e2e/e2eutils/contracts/bindings/invoker/invoker.go +++ b/op-e2e/e2eutils/contracts/bindings/invoker/invoker.go @@ -31,8 +31,8 @@ var ( // InvokerMetaData contains all meta data concerning the Invoker contract. var InvokerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"invokePrecompile\",\"inputs\":[{\"name\":\"_precompile\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_input\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"PrecompileInvoked\",\"inputs\":[{\"name\":\"precompile\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"PrecompileCallFailed\",\"inputs\":[]}]", - Bin: "0x6080604052348015600e575f5ffd5b506102f58061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610164565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff1683604051610069919061027f565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff167fde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8826040516101299190610295565b60405180910390a250505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610175575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff81168114610198575f5ffd5b9150602083013567ffffffffffffffff8111156101b3575f5ffd5b8301601f810185136101c3575f5ffd5b803567ffffffffffffffff8111156101dd576101dd610137565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561024957610249610137565b604052818152828201602001871015610260575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c634300081c000a", + ABI: "[{\"type\":\"function\",\"name\":\"invokePrecompile\",\"inputs\":[{\"name\":\"_precompile\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_input\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"PrecompileInvoked\",\"inputs\":[{\"name\":\"precompile\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"delegateCallResult\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"PrecompileCallFailed\",\"inputs\":[]}]", + Bin: "0x6080604052348015600e575f5ffd5b506103bf8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610208565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516100699190610323565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608473ffffffffffffffffffffffffffffffffffffffff168460405161010a9190610323565b5f60405180830381855af49150503d805f8114610142576040519150601f19603f3d011682016040523d82523d5f602084013e610147565b606091505b50909350905082610184576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff167fc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e07983836040516101cc929190610385565b60405180910390a25050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610219575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461023c575f5ffd5b9150602083013567ffffffffffffffff811115610257575f5ffd5b8301601f81018513610267575f5ffd5b803567ffffffffffffffff811115610281576102816101db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156102ed576102ed6101db565b604052818152828201602001871015610304575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f6103976040830185610339565b82810360208401526103a98185610339565b9594505050505056fea164736f6c634300081c000a", } // InvokerABI is the input ABI used to generate the binding from. @@ -292,14 +292,15 @@ func (it *InvokerPrecompileInvokedIterator) Close() error { // InvokerPrecompileInvoked represents a PrecompileInvoked event raised by the Invoker contract. type InvokerPrecompileInvoked struct { - Precompile common.Address - Result []byte - Raw types.Log // Blockchain specific contextual infos + Precompile common.Address + Result []byte + DelegateCallResult []byte + Raw types.Log // Blockchain specific contextual infos } -// FilterPrecompileInvoked is a free log retrieval operation binding the contract event 0xde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8. +// FilterPrecompileInvoked is a free log retrieval operation binding the contract event 0xc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e079. // -// Solidity: event PrecompileInvoked(address indexed precompile, bytes result) +// Solidity: event PrecompileInvoked(address indexed precompile, bytes result, bytes delegateCallResult) func (_Invoker *InvokerFilterer) FilterPrecompileInvoked(opts *bind.FilterOpts, precompile []common.Address) (*InvokerPrecompileInvokedIterator, error) { var precompileRule []interface{} @@ -314,9 +315,9 @@ func (_Invoker *InvokerFilterer) FilterPrecompileInvoked(opts *bind.FilterOpts, return &InvokerPrecompileInvokedIterator{contract: _Invoker.contract, event: "PrecompileInvoked", logs: logs, sub: sub}, nil } -// WatchPrecompileInvoked is a free log subscription operation binding the contract event 0xde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8. +// WatchPrecompileInvoked is a free log subscription operation binding the contract event 0xc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e079. // -// Solidity: event PrecompileInvoked(address indexed precompile, bytes result) +// Solidity: event PrecompileInvoked(address indexed precompile, bytes result, bytes delegateCallResult) func (_Invoker *InvokerFilterer) WatchPrecompileInvoked(opts *bind.WatchOpts, sink chan<- *InvokerPrecompileInvoked, precompile []common.Address) (event.Subscription, error) { var precompileRule []interface{} @@ -356,9 +357,9 @@ func (_Invoker *InvokerFilterer) WatchPrecompileInvoked(opts *bind.WatchOpts, si }), nil } -// ParsePrecompileInvoked is a log parse operation binding the contract event 0xde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8. +// ParsePrecompileInvoked is a log parse operation binding the contract event 0xc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e079. // -// Solidity: event PrecompileInvoked(address indexed precompile, bytes result) +// Solidity: event PrecompileInvoked(address indexed precompile, bytes result, bytes delegateCallResult) func (_Invoker *InvokerFilterer) ParsePrecompileInvoked(log types.Log) (*InvokerPrecompileInvoked, error) { event := new(InvokerPrecompileInvoked) if err := _Invoker.contract.UnpackLog(event, "PrecompileInvoked", log); err != nil { diff --git a/op-e2e/e2eutils/contracts/build/DelegateCallProxy.sol/DelegateCallProxy.json b/op-e2e/e2eutils/contracts/build/DelegateCallProxy.sol/DelegateCallProxy.json index b46c051880b..e3f9886fc21 100644 --- a/op-e2e/e2eutils/contracts/build/DelegateCallProxy.sol/DelegateCallProxy.json +++ b/op-e2e/e2eutils/contracts/build/DelegateCallProxy.sol/DelegateCallProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegateCall","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_proxyAdmin","type":"address","internalType":"address"},{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x60a0604052348015600e575f5ffd5b506040516105ae3803806105ae833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b60805161052b6100835f395f8181605d015260e1015261052b5ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80636d435421146100435780638da5cb5b14610058578063b68df16d146100a9575b5f5ffd5b610056610051366004610356565b6100c9565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100bc6100b73660046103b4565b6102ae565b6040516100a091906104b5565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610138576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff821660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2fde38b00000000000000000000000000000000000000000000000000000000179052519091505f9073ffffffffffffffffffffffffffffffffffffffff8516906101fb908490610508565b5f604051808303815f865af19150503d805f8114610234576040519150601f19603f3d011682016040523d82523d5f602084013e610239565b606091505b50509050806102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e736665724f776e6572736869703a206661696c656400000000000000604482015260640160405180910390fd5b50505050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102d79190610508565b5f60405180830381855af49150503d805f811461030f576040519150601f19603f3d011682016040523d82523d5f602084013e610314565b606091505b50915091508161032657805160208201fd5b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610351575f5ffd5b919050565b5f5f60408385031215610367575f5ffd5b6103708361032e565b915061037e6020840161032e565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f604083850312156103c5575f5ffd5b6103ce8361032e565b9150602083013567ffffffffffffffff8111156103e9575f5ffd5b8301601f810185136103f9575f5ffd5b803567ffffffffffffffff81111561041357610413610387565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561047f5761047f610387565b604052818152828201602001871015610496575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f82518060208501845e5f92019182525091905056fea164736f6c634300081b000a","sourceMap":"57:904:0:-:0;;;149:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;187:14:0;;;57:904;;14:290:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:1;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:1:o;:::-;57:904:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80636d435421146100435780638da5cb5b14610058578063b68df16d146100a9575b5f5ffd5b610056610051366004610356565b6100c9565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100bc6100b73660046103b4565b6102ae565b6040516100a091906104b5565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610138576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff821660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2fde38b00000000000000000000000000000000000000000000000000000000179052519091505f9073ffffffffffffffffffffffffffffffffffffffff8516906101fb908490610508565b5f604051808303815f865af19150503d805f8114610234576040519150601f19603f3d011682016040523d82523d5f602084013e610239565b606091505b50509050806102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e736665724f776e6572736869703a206661696c656400000000000000604482015260640160405180910390fd5b50505050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102d79190610508565b5f60405180830381855af49150503d805f811461030f576040519150601f19603f3d011682016040523d82523d5f602084013e610314565b606091505b50915091508161032657805160208201fd5b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610351575f5ffd5b919050565b5f5f60408385031215610367575f5ffd5b6103708361032e565b915061037e6020840161032e565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f604083850312156103c5575f5ffd5b6103ce8361032e565b9150602083013567ffffffffffffffff8111156103e9575f5ffd5b8301601f810185136103f9575f5ffd5b803567ffffffffffffffff81111561041357610413610387565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561047f5761047f610387565b604052818152828201602001871015610496575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f82518060208501845e5f92019182525091905056fea164736f6c634300081b000a","sourceMap":"57:904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;549:410;;;;;;:::i;:::-;;:::i;:::-;;90:30;;;;;;;;656:42:1;644:55;;;626:74;;614:2;599:18;90:30:0;;;;;;;;214:329;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;549:410::-;639:10;:19;653:5;639:19;;635:67;;681:10;;;;;;;;;;;;;;635:67;782:64;;656:42:1;644:55;;782:64:0;;;626:74:1;762:17:0;;599:18:1;;782:64:0;;;;;;;;;;;;;;;;;;;;;;;;875:22;782:64;;-1:-1:-1;;;875:16:0;;;;:22;;782:64;;875:22;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:41;;;915:7;907:45;;;;;;;3029:2:1;907:45:0;;;3011:21:1;3068:2;3048:18;;;3041:30;3107:27;3087:18;;;3080:55;3152:18;;907:45:0;;;;;;;;625:334;;549:410;;:::o;214:329::-;298:12;323;337:19;360:7;:20;;381:5;360:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:65;;;;402:7;397:117;;482:6;476:13;471:2;463:6;459:15;452:38;397:117;530:6;214:329;-1:-1:-1;;;;214:329:0:o;14:196:1:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:260::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;;431:38;465:2;454:9;450:18;431:38;:::i;:::-;421:48;;215:260;;;;;:::o;711:184::-;763:77;760:1;753:88;860:4;857:1;850:15;884:4;881:1;874:15;900:1136;977:6;985;1038:2;1026:9;1017:7;1013:23;1009:32;1006:52;;;1054:1;1051;1044:12;1006:52;1077:29;1096:9;1077:29;:::i;:::-;1067:39;;1157:2;1146:9;1142:18;1129:32;1184:18;1176:6;1173:30;1170:50;;;1216:1;1213;1206:12;1170:50;1239:22;;1292:4;1284:13;;1280:27;-1:-1:-1;1270:55:1;;1321:1;1318;1311:12;1270:55;1361:2;1348:16;1387:18;1379:6;1376:30;1373:56;;;1409:18;;:::i;:::-;1458:2;1452:9;1605:66;1600:2;1531:66;1524:4;1516:6;1512:17;1508:90;1504:99;1500:172;1492:6;1488:185;1739:6;1727:10;1724:22;1703:18;1691:10;1688:34;1685:62;1682:88;;;1750:18;;:::i;:::-;1786:2;1779:22;1810;;;1851:15;;;1868:2;1847:24;1844:37;-1:-1:-1;1841:57:1;;;1894:1;1891;1884:12;1841:57;1950:6;1945:2;1941;1937:11;1932:2;1924:6;1920:15;1907:50;2003:1;1998:2;1989:6;1981;1977:19;1973:28;1966:39;2024:6;2014:16;;;;;900:1136;;;;;:::o;2041:475::-;2188:2;2177:9;2170:21;2151:4;2220:6;2214:13;2263:6;2258:2;2247:9;2243:18;2236:34;2322:6;2317:2;2309:6;2305:15;2300:2;2289:9;2285:18;2279:50;2378:1;2373:2;2364:6;2353:9;2349:22;2345:31;2338:42;2507:2;2437:66;2432:2;2424:6;2420:15;2416:88;2405:9;2401:104;2397:113;2389:121;;;2041:475;;;;:::o;2521:301::-;2650:3;2688:6;2682:13;2734:6;2727:4;2719:6;2715:17;2710:3;2704:37;2796:1;2760:16;;2785:13;;;-1:-1:-1;2760:16:1;2521:301;-1:-1:-1;2521:301:1:o","linkReferences":{},"immutableReferences":{"3":[{"start":93,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"executeDelegateCall(address,bytes)":"b68df16d","owner()":"8da5cb5b","transferOwnership(address,address)":"6d435421"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"executeDelegateCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/DelegateCallProxy.sol\":\"DelegateCallProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/DelegateCallProxy.sol\":{\"keccak256\":\"0xc59415cd917768bf92d0405afd43fc36e2c80330ae766c9d5cfb34b5fb431e8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fe4a3a47fb430ccaa416c56d40cd63aa8be17cdb116ab1b06a69dc252fbe316\",\"dweb:/ipfs/QmNVhngA2AKKmF7E9iMmqsPpUQ57QEvbXKoLdY873TBHLQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeDelegateCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_proxyAdmin","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/DelegateCallProxy.sol":"DelegateCallProxy"},"evmVersion":"cancun","libraries":{}},"sources":{"src/DelegateCallProxy.sol":{"keccak256":"0xc59415cd917768bf92d0405afd43fc36e2c80330ae766c9d5cfb34b5fb431e8a","urls":["bzz-raw://6fe4a3a47fb430ccaa416c56d40cd63aa8be17cdb116ab1b06a69dc252fbe316","dweb:/ipfs/QmNVhngA2AKKmF7E9iMmqsPpUQ57QEvbXKoLdY873TBHLQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/DelegateCallProxy.sol","id":80,"exportedSymbols":{"DelegateCallProxy":[79]},"nodeType":"SourceUnit","src":"32:930:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":79,"nodeType":"ContractDefinition","src":"57:904:0","nodes":[{"id":3,"nodeType":"VariableDeclaration","src":"90:30:0","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"immutable","name":"owner","nameLocation":"115:5:0","scope":79,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"90:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":5,"nodeType":"ErrorDefinition","src":"126:17:0","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"132:8:0","parameters":{"id":4,"nodeType":"ParameterList","parameters":[],"src":"140:2:0"}},{"id":15,"nodeType":"FunctionDefinition","src":"149:59:0","nodes":[],"body":{"id":14,"nodeType":"Block","src":"177:31:0","nodes":[],"statements":[{"expression":{"id":12,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"187:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"195:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"187:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13,"nodeType":"ExpressionStatement","src":"187:14:0"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"mutability":"mutable","name":"_owner","nameLocation":"169:6:0","nodeType":"VariableDeclaration","scope":15,"src":"161:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"160:16:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[],"src":"177:0:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41,"nodeType":"FunctionDefinition","src":"214:329:0","nodes":[],"body":{"id":40,"nodeType":"Block","src":"312:231:0","nodes":[],"statements":[{"assignments":[25,27],"declarations":[{"constant":false,"id":25,"mutability":"mutable","name":"success","nameLocation":"328:7:0","nodeType":"VariableDeclaration","scope":40,"src":"323:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24,"name":"bool","nodeType":"ElementaryTypeName","src":"323:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27,"mutability":"mutable","name":"result","nameLocation":"350:6:0","nodeType":"VariableDeclaration","scope":40,"src":"337:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26,"name":"bytes","nodeType":"ElementaryTypeName","src":"337:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32,"initialValue":{"arguments":[{"id":30,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"381:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":28,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"360:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"368:12:0","memberName":"delegatecall","nodeType":"MemberAccess","src":"360:20:0","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":31,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"360:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"322:65:0"},{"condition":{"id":34,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"401:8:0","subExpression":{"id":33,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"402:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37,"nodeType":"IfStatement","src":"397:117:0","trueBody":{"id":36,"nodeType":"Block","src":"411:103:0","statements":[{"AST":{"nativeSrc":"434:70:0","nodeType":"YulBlock","src":"434:70:0","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"463:6:0","nodeType":"YulIdentifier","src":"463:6:0"},{"kind":"number","nativeSrc":"471:2:0","nodeType":"YulLiteral","src":"471:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"459:3:0","nodeType":"YulIdentifier","src":"459:3:0"},"nativeSrc":"459:15:0","nodeType":"YulFunctionCall","src":"459:15:0"},{"arguments":[{"name":"result","nativeSrc":"482:6:0","nodeType":"YulIdentifier","src":"482:6:0"}],"functionName":{"name":"mload","nativeSrc":"476:5:0","nodeType":"YulIdentifier","src":"476:5:0"},"nativeSrc":"476:13:0","nodeType":"YulFunctionCall","src":"476:13:0"}],"functionName":{"name":"revert","nativeSrc":"452:6:0","nodeType":"YulIdentifier","src":"452:6:0"},"nativeSrc":"452:38:0","nodeType":"YulFunctionCall","src":"452:38:0"},"nativeSrc":"452:38:0","nodeType":"YulExpressionStatement","src":"452:38:0"}]},"evmVersion":"cancun","externalReferences":[{"declaration":27,"isOffset":false,"isSlot":false,"src":"463:6:0","valueSize":1},{"declaration":27,"isOffset":false,"isSlot":false,"src":"482:6:0","valueSize":1}],"id":35,"nodeType":"InlineAssembly","src":"425:79:0"}]}},{"expression":{"id":38,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"530:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":23,"id":39,"nodeType":"Return","src":"523:13:0"}]},"functionSelector":"b68df16d","implemented":true,"kind":"function","modifiers":[],"name":"executeDelegateCall","nameLocation":"223:19:0","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17,"mutability":"mutable","name":"_target","nameLocation":"251:7:0","nodeType":"VariableDeclaration","scope":41,"src":"243:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"243:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"_data","nameLocation":"273:5:0","nodeType":"VariableDeclaration","scope":41,"src":"260:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18,"name":"bytes","nodeType":"ElementaryTypeName","src":"260:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"242:37:0"},"returnParameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41,"src":"298:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21,"name":"bytes","nodeType":"ElementaryTypeName","src":"298:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"297:14:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78,"nodeType":"FunctionDefinition","src":"549:410:0","nodes":[],"body":{"id":77,"nodeType":"Block","src":"625:334:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"639:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"643:6:0","memberName":"sender","nodeType":"MemberAccess","src":"639:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":50,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"653:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"639:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56,"nodeType":"IfStatement","src":"635:67:0","trueBody":{"id":55,"nodeType":"Block","src":"660:42:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"681:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":54,"nodeType":"RevertStatement","src":"674:17:0"}]}},{"assignments":[58],"declarations":[{"constant":false,"id":58,"mutability":"mutable","name":"data","nameLocation":"775:4:0","nodeType":"VariableDeclaration","scope":77,"src":"762:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57,"name":"bytes","nodeType":"ElementaryTypeName","src":"762:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":64,"initialValue":{"arguments":[{"hexValue":"7472616e736665724f776e657273686970286164647265737329","id":61,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"806:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557","typeString":"literal_string \"transferOwnership(address)\""},"value":"transferOwnership(address)"},{"id":62,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"836:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557","typeString":"literal_string \"transferOwnership(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"782:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"786:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"782:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"762:84:0"},{"assignments":[66,null],"declarations":[{"constant":false,"id":66,"mutability":"mutable","name":"success","nameLocation":"862:7:0","nodeType":"VariableDeclaration","scope":77,"src":"857:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":65,"name":"bool","nodeType":"ElementaryTypeName","src":"857:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":71,"initialValue":{"arguments":[{"id":69,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"892:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":67,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"875:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"887:4:0","memberName":"call","nodeType":"MemberAccess","src":"875:16:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"875:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"856:41:0"},{"expression":{"arguments":[{"id":73,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"915:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e736665724f776e6572736869703a206661696c6564","id":74,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"924:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_73db9f9416f5527e05767c00d66cf341ab0abe8bc7d2bf6b5bc085ce1317a4ad","typeString":"literal_string \"TransferOwnership: failed\""},"value":"TransferOwnership: failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73db9f9416f5527e05767c00d66cf341ab0abe8bc7d2bf6b5bc085ce1317a4ad","typeString":"literal_string \"TransferOwnership: failed\""}],"id":72,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"907:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76,"nodeType":"ExpressionStatement","src":"907:45:0"}]},"functionSelector":"6d435421","implemented":true,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"558:17:0","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43,"mutability":"mutable","name":"_proxyAdmin","nameLocation":"584:11:0","nodeType":"VariableDeclaration","scope":78,"src":"576:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"576:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45,"mutability":"mutable","name":"_newOwner","nameLocation":"605:9:0","nodeType":"VariableDeclaration","scope":78,"src":"597:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"597:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"575:40:0"},"returnParameters":{"id":47,"nodeType":"ParameterList","parameters":[],"src":"625:0:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateCallProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79],"name":"DelegateCallProxy","nameLocation":"66:17:0","scope":80,"usedErrors":[5],"usedEvents":[]}],"license":"MIT"},"id":0} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegateCall","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_proxyAdmin","type":"address","internalType":"address"},{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x60a0604052348015600e575f5ffd5b506040516105ae3803806105ae833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b60805161052b6100835f395f8181605d015260e1015261052b5ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80636d435421146100435780638da5cb5b14610058578063b68df16d146100a9575b5f5ffd5b610056610051366004610356565b6100c9565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100bc6100b73660046103b4565b6102ae565b6040516100a091906104b5565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610138576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff821660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2fde38b00000000000000000000000000000000000000000000000000000000179052519091505f9073ffffffffffffffffffffffffffffffffffffffff8516906101fb908490610508565b5f604051808303815f865af19150503d805f8114610234576040519150601f19603f3d011682016040523d82523d5f602084013e610239565b606091505b50509050806102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e736665724f776e6572736869703a206661696c656400000000000000604482015260640160405180910390fd5b50505050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102d79190610508565b5f60405180830381855af49150503d805f811461030f576040519150601f19603f3d011682016040523d82523d5f602084013e610314565b606091505b50915091508161032657805160208201fd5b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610351575f5ffd5b919050565b5f5f60408385031215610367575f5ffd5b6103708361032e565b915061037e6020840161032e565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f604083850312156103c5575f5ffd5b6103ce8361032e565b9150602083013567ffffffffffffffff8111156103e9575f5ffd5b8301601f810185136103f9575f5ffd5b803567ffffffffffffffff81111561041357610413610387565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561047f5761047f610387565b604052818152828201602001871015610496575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f82518060208501845e5f92019182525091905056fea164736f6c634300081c000a","sourceMap":"57:904:0:-:0;;;149:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;187:14:0;;;57:904;;14:290:4;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:4;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:4:o;:::-;57:904:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80636d435421146100435780638da5cb5b14610058578063b68df16d146100a9575b5f5ffd5b610056610051366004610356565b6100c9565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100bc6100b73660046103b4565b6102ae565b6040516100a091906104b5565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610138576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff821660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2fde38b00000000000000000000000000000000000000000000000000000000179052519091505f9073ffffffffffffffffffffffffffffffffffffffff8516906101fb908490610508565b5f604051808303815f865af19150503d805f8114610234576040519150601f19603f3d011682016040523d82523d5f602084013e610239565b606091505b50509050806102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e736665724f776e6572736869703a206661696c656400000000000000604482015260640160405180910390fd5b50505050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102d79190610508565b5f60405180830381855af49150503d805f811461030f576040519150601f19603f3d011682016040523d82523d5f602084013e610314565b606091505b50915091508161032657805160208201fd5b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610351575f5ffd5b919050565b5f5f60408385031215610367575f5ffd5b6103708361032e565b915061037e6020840161032e565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f604083850312156103c5575f5ffd5b6103ce8361032e565b9150602083013567ffffffffffffffff8111156103e9575f5ffd5b8301601f810185136103f9575f5ffd5b803567ffffffffffffffff81111561041357610413610387565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561047f5761047f610387565b604052818152828201602001871015610496575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f82518060208501845e5f92019182525091905056fea164736f6c634300081c000a","sourceMap":"57:904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;549:410;;;;;;:::i;:::-;;:::i;:::-;;90:30;;;;;;;;656:42:4;644:55;;;626:74;;614:2;599:18;90:30:0;;;;;;;;214:329;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;549:410::-;639:10;:19;653:5;639:19;;635:67;;681:10;;;;;;;;;;;;;;635:67;782:64;;656:42:4;644:55;;782:64:0;;;626:74:4;762:17:0;;599:18:4;;782:64:0;;;;;;;;;;;;;;;;;;;;;;;;875:22;782:64;;-1:-1:-1;;;875:16:0;;;;:22;;782:64;;875:22;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:41;;;915:7;907:45;;;;;;;3029:2:4;907:45:0;;;3011:21:4;3068:2;3048:18;;;3041:30;3107:27;3087:18;;;3080:55;3152:18;;907:45:0;;;;;;;;625:334;;549:410;;:::o;214:329::-;298:12;323;337:19;360:7;:20;;381:5;360:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:65;;;;402:7;397:117;;482:6;476:13;471:2;463:6;459:15;452:38;397:117;530:6;214:329;-1:-1:-1;;;;214:329:0:o;14:196:4:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:260::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;;431:38;465:2;454:9;450:18;431:38;:::i;:::-;421:48;;215:260;;;;;:::o;711:184::-;763:77;760:1;753:88;860:4;857:1;850:15;884:4;881:1;874:15;900:1136;977:6;985;1038:2;1026:9;1017:7;1013:23;1009:32;1006:52;;;1054:1;1051;1044:12;1006:52;1077:29;1096:9;1077:29;:::i;:::-;1067:39;;1157:2;1146:9;1142:18;1129:32;1184:18;1176:6;1173:30;1170:50;;;1216:1;1213;1206:12;1170:50;1239:22;;1292:4;1284:13;;1280:27;-1:-1:-1;1270:55:4;;1321:1;1318;1311:12;1270:55;1361:2;1348:16;1387:18;1379:6;1376:30;1373:56;;;1409:18;;:::i;:::-;1458:2;1452:9;1605:66;1600:2;1531:66;1524:4;1516:6;1512:17;1508:90;1504:99;1500:172;1492:6;1488:185;1739:6;1727:10;1724:22;1703:18;1691:10;1688:34;1685:62;1682:88;;;1750:18;;:::i;:::-;1786:2;1779:22;1810;;;1851:15;;;1868:2;1847:24;1844:37;-1:-1:-1;1841:57:4;;;1894:1;1891;1884:12;1841:57;1950:6;1945:2;1941;1937:11;1932:2;1924:6;1920:15;1907:50;2003:1;1998:2;1989:6;1981;1977:19;1973:28;1966:39;2024:6;2014:16;;;;;900:1136;;;;;:::o;2041:475::-;2188:2;2177:9;2170:21;2151:4;2220:6;2214:13;2263:6;2258:2;2247:9;2243:18;2236:34;2322:6;2317:2;2309:6;2305:15;2300:2;2289:9;2285:18;2279:50;2378:1;2373:2;2364:6;2353:9;2349:22;2345:31;2338:42;2507:2;2437:66;2432:2;2424:6;2420:15;2416:88;2405:9;2401:104;2397:113;2389:121;;;2041:475;;;;:::o;2521:301::-;2650:3;2688:6;2682:13;2734:6;2727:4;2719:6;2715:17;2710:3;2704:37;2796:1;2760:16;;2785:13;;;-1:-1:-1;2760:16:4;2521:301;-1:-1:-1;2521:301:4:o","linkReferences":{},"immutableReferences":{"3":[{"start":93,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"executeDelegateCall(address,bytes)":"b68df16d","owner()":"8da5cb5b","transferOwnership(address,address)":"6d435421"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"executeDelegateCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/DelegateCallProxy.sol\":\"DelegateCallProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/DelegateCallProxy.sol\":{\"keccak256\":\"0xc59415cd917768bf92d0405afd43fc36e2c80330ae766c9d5cfb34b5fb431e8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fe4a3a47fb430ccaa416c56d40cd63aa8be17cdb116ab1b06a69dc252fbe316\",\"dweb:/ipfs/QmNVhngA2AKKmF7E9iMmqsPpUQ57QEvbXKoLdY873TBHLQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeDelegateCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_proxyAdmin","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/DelegateCallProxy.sol":"DelegateCallProxy"},"evmVersion":"cancun","libraries":{}},"sources":{"src/DelegateCallProxy.sol":{"keccak256":"0xc59415cd917768bf92d0405afd43fc36e2c80330ae766c9d5cfb34b5fb431e8a","urls":["bzz-raw://6fe4a3a47fb430ccaa416c56d40cd63aa8be17cdb116ab1b06a69dc252fbe316","dweb:/ipfs/QmNVhngA2AKKmF7E9iMmqsPpUQ57QEvbXKoLdY873TBHLQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/DelegateCallProxy.sol","id":80,"exportedSymbols":{"DelegateCallProxy":[79]},"nodeType":"SourceUnit","src":"32:930:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":79,"nodeType":"ContractDefinition","src":"57:904:0","nodes":[{"id":3,"nodeType":"VariableDeclaration","src":"90:30:0","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"immutable","name":"owner","nameLocation":"115:5:0","scope":79,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"90:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":5,"nodeType":"ErrorDefinition","src":"126:17:0","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"132:8:0","parameters":{"id":4,"nodeType":"ParameterList","parameters":[],"src":"140:2:0"}},{"id":15,"nodeType":"FunctionDefinition","src":"149:59:0","nodes":[],"body":{"id":14,"nodeType":"Block","src":"177:31:0","nodes":[],"statements":[{"expression":{"id":12,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"187:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"195:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"187:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13,"nodeType":"ExpressionStatement","src":"187:14:0"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"mutability":"mutable","name":"_owner","nameLocation":"169:6:0","nodeType":"VariableDeclaration","scope":15,"src":"161:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"160:16:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[],"src":"177:0:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41,"nodeType":"FunctionDefinition","src":"214:329:0","nodes":[],"body":{"id":40,"nodeType":"Block","src":"312:231:0","nodes":[],"statements":[{"assignments":[25,27],"declarations":[{"constant":false,"id":25,"mutability":"mutable","name":"success","nameLocation":"328:7:0","nodeType":"VariableDeclaration","scope":40,"src":"323:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24,"name":"bool","nodeType":"ElementaryTypeName","src":"323:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27,"mutability":"mutable","name":"result","nameLocation":"350:6:0","nodeType":"VariableDeclaration","scope":40,"src":"337:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26,"name":"bytes","nodeType":"ElementaryTypeName","src":"337:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32,"initialValue":{"arguments":[{"id":30,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"381:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":28,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"360:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"368:12:0","memberName":"delegatecall","nodeType":"MemberAccess","src":"360:20:0","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":31,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"360:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"322:65:0"},{"condition":{"id":34,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"401:8:0","subExpression":{"id":33,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"402:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37,"nodeType":"IfStatement","src":"397:117:0","trueBody":{"id":36,"nodeType":"Block","src":"411:103:0","statements":[{"AST":{"nativeSrc":"434:70:0","nodeType":"YulBlock","src":"434:70:0","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"463:6:0","nodeType":"YulIdentifier","src":"463:6:0"},{"kind":"number","nativeSrc":"471:2:0","nodeType":"YulLiteral","src":"471:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"459:3:0","nodeType":"YulIdentifier","src":"459:3:0"},"nativeSrc":"459:15:0","nodeType":"YulFunctionCall","src":"459:15:0"},{"arguments":[{"name":"result","nativeSrc":"482:6:0","nodeType":"YulIdentifier","src":"482:6:0"}],"functionName":{"name":"mload","nativeSrc":"476:5:0","nodeType":"YulIdentifier","src":"476:5:0"},"nativeSrc":"476:13:0","nodeType":"YulFunctionCall","src":"476:13:0"}],"functionName":{"name":"revert","nativeSrc":"452:6:0","nodeType":"YulIdentifier","src":"452:6:0"},"nativeSrc":"452:38:0","nodeType":"YulFunctionCall","src":"452:38:0"},"nativeSrc":"452:38:0","nodeType":"YulExpressionStatement","src":"452:38:0"}]},"evmVersion":"cancun","externalReferences":[{"declaration":27,"isOffset":false,"isSlot":false,"src":"463:6:0","valueSize":1},{"declaration":27,"isOffset":false,"isSlot":false,"src":"482:6:0","valueSize":1}],"id":35,"nodeType":"InlineAssembly","src":"425:79:0"}]}},{"expression":{"id":38,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"530:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":23,"id":39,"nodeType":"Return","src":"523:13:0"}]},"functionSelector":"b68df16d","implemented":true,"kind":"function","modifiers":[],"name":"executeDelegateCall","nameLocation":"223:19:0","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17,"mutability":"mutable","name":"_target","nameLocation":"251:7:0","nodeType":"VariableDeclaration","scope":41,"src":"243:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"243:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"_data","nameLocation":"273:5:0","nodeType":"VariableDeclaration","scope":41,"src":"260:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18,"name":"bytes","nodeType":"ElementaryTypeName","src":"260:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"242:37:0"},"returnParameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41,"src":"298:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21,"name":"bytes","nodeType":"ElementaryTypeName","src":"298:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"297:14:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78,"nodeType":"FunctionDefinition","src":"549:410:0","nodes":[],"body":{"id":77,"nodeType":"Block","src":"625:334:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"639:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"643:6:0","memberName":"sender","nodeType":"MemberAccess","src":"639:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":50,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"653:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"639:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56,"nodeType":"IfStatement","src":"635:67:0","trueBody":{"id":55,"nodeType":"Block","src":"660:42:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"681:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":54,"nodeType":"RevertStatement","src":"674:17:0"}]}},{"assignments":[58],"declarations":[{"constant":false,"id":58,"mutability":"mutable","name":"data","nameLocation":"775:4:0","nodeType":"VariableDeclaration","scope":77,"src":"762:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57,"name":"bytes","nodeType":"ElementaryTypeName","src":"762:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":64,"initialValue":{"arguments":[{"hexValue":"7472616e736665724f776e657273686970286164647265737329","id":61,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"806:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557","typeString":"literal_string \"transferOwnership(address)\""},"value":"transferOwnership(address)"},{"id":62,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"836:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557","typeString":"literal_string \"transferOwnership(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"782:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"786:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"782:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"762:84:0"},{"assignments":[66,null],"declarations":[{"constant":false,"id":66,"mutability":"mutable","name":"success","nameLocation":"862:7:0","nodeType":"VariableDeclaration","scope":77,"src":"857:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":65,"name":"bool","nodeType":"ElementaryTypeName","src":"857:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":71,"initialValue":{"arguments":[{"id":69,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"892:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":67,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"875:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"887:4:0","memberName":"call","nodeType":"MemberAccess","src":"875:16:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"875:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"856:41:0"},{"expression":{"arguments":[{"id":73,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"915:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e736665724f776e6572736869703a206661696c6564","id":74,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"924:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_73db9f9416f5527e05767c00d66cf341ab0abe8bc7d2bf6b5bc085ce1317a4ad","typeString":"literal_string \"TransferOwnership: failed\""},"value":"TransferOwnership: failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73db9f9416f5527e05767c00d66cf341ab0abe8bc7d2bf6b5bc085ce1317a4ad","typeString":"literal_string \"TransferOwnership: failed\""}],"id":72,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"907:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76,"nodeType":"ExpressionStatement","src":"907:45:0"}]},"functionSelector":"6d435421","implemented":true,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"558:17:0","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43,"mutability":"mutable","name":"_proxyAdmin","nameLocation":"584:11:0","nodeType":"VariableDeclaration","scope":78,"src":"576:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"576:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45,"mutability":"mutable","name":"_newOwner","nameLocation":"605:9:0","nodeType":"VariableDeclaration","scope":78,"src":"597:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"597:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"575:40:0"},"returnParameters":{"id":47,"nodeType":"ParameterList","parameters":[],"src":"625:0:0"},"scope":79,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateCallProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79],"name":"DelegateCallProxy","nameLocation":"66:17:0","scope":80,"usedErrors":[5],"usedEvents":[]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/op-e2e/e2eutils/contracts/build/ICrossL2Inbox.sol/ICrossL2Inbox.json b/op-e2e/e2eutils/contracts/build/ICrossL2Inbox.sol/ICrossL2Inbox.json index 00d0c90cbda..f060aac2565 100644 --- a/op-e2e/e2eutils/contracts/build/ICrossL2Inbox.sol/ICrossL2Inbox.json +++ b/op-e2e/e2eutils/contracts/build/ICrossL2Inbox.sol/ICrossL2Inbox.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"validateMessage","inputs":[{"name":"_id","type":"tuple","internalType":"struct Identifier","components":[{"name":"origin","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"_msgHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ExecutingMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"id","type":"tuple","indexed":false,"internalType":"struct Identifier","components":[{"name":"origin","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"BlockNumberTooHigh","inputs":[]},{"type":"error","name":"LogIndexTooHigh","inputs":[]},{"type":"error","name":"NoExecutingDeposits","inputs":[]},{"type":"error","name":"NotInAccessList","inputs":[]},{"type":"error","name":"TimestampTooHigh","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"validateMessage((address,uint256,uint256,uint256,uint256),bytes32)":"ab4d6f75","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BlockNumberTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LogIndexTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoExecutingDeposits\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInAccessList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampTooHigh\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct Identifier\",\"name\":\"id\",\"type\":\"tuple\"}],\"name\":\"ExecutingMessage\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct Identifier\",\"name\":\"_id\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"}],\"name\":\"validateMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ICrossL2Inbox.sol\":\"ICrossL2Inbox\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/ICrossL2Inbox.sol\":{\"keccak256\":\"0x9d31923d67c620293adcc180d6f6219f196dcca4d81425b932113537801749de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10456b2586608b6336f58ba78fa481c70ca0da48a459b9be42b2b52da738adfe\",\"dweb:/ipfs/QmVNkgm9YFv2HCYNEipCUbP3jdkC3Ma1XWLvWKVnb3xi8t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BlockNumberTooHigh"},{"inputs":[],"type":"error","name":"LogIndexTooHigh"},{"inputs":[],"type":"error","name":"NoExecutingDeposits"},{"inputs":[],"type":"error","name":"NotInAccessList"},{"inputs":[],"type":"error","name":"TimestampTooHigh"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true},{"internalType":"struct Identifier","name":"id","type":"tuple","components":[{"internalType":"address","name":"origin","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"indexed":false}],"type":"event","name":"ExecutingMessage","anonymous":false},{"inputs":[{"internalType":"struct Identifier","name":"_id","type":"tuple","components":[{"internalType":"address","name":"origin","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"bytes32","name":"_msgHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"validateMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/ICrossL2Inbox.sol":"ICrossL2Inbox"},"evmVersion":"cancun","libraries":{}},"sources":{"src/ICrossL2Inbox.sol":{"keccak256":"0x9d31923d67c620293adcc180d6f6219f196dcca4d81425b932113537801749de","urls":["bzz-raw://10456b2586608b6336f58ba78fa481c70ca0da48a459b9be42b2b52da738adfe","dweb:/ipfs/QmVNkgm9YFv2HCYNEipCUbP3jdkC3Ma1XWLvWKVnb3xi8t"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/ICrossL2Inbox.sol","id":45,"exportedSymbols":{"ICrossL2Inbox":[44],"Identifier":[13]},"nodeType":"SourceUnit","src":"32:604:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":13,"nodeType":"StructDefinition","src":"106:132:0","nodes":[],"canonicalName":"Identifier","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"57:49:0","text":"@notice Identifier of a cross chain message."},"members":[{"constant":false,"id":4,"mutability":"mutable","name":"origin","nameLocation":"138:6:0","nodeType":"VariableDeclaration","scope":13,"src":"130:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3,"name":"address","nodeType":"ElementaryTypeName","src":"130:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6,"mutability":"mutable","name":"blockNumber","nameLocation":"158:11:0","nodeType":"VariableDeclaration","scope":13,"src":"150:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5,"name":"uint256","nodeType":"ElementaryTypeName","src":"150:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8,"mutability":"mutable","name":"logIndex","nameLocation":"183:8:0","nodeType":"VariableDeclaration","scope":13,"src":"175:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10,"mutability":"mutable","name":"timestamp","nameLocation":"205:9:0","nodeType":"VariableDeclaration","scope":13,"src":"197:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"chainId","nameLocation":"228:7:0","nodeType":"VariableDeclaration","scope":13,"src":"220:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Identifier","nameLocation":"113:10:0","scope":45,"visibility":"public"},{"id":44,"nodeType":"ContractDefinition","src":"240:395:0","nodes":[{"id":15,"nodeType":"ErrorDefinition","src":"270:28:0","nodes":[],"errorSelector":"753f1072","name":"NoExecutingDeposits","nameLocation":"276:19:0","parameters":{"id":14,"nodeType":"ParameterList","parameters":[],"src":"295:2:0"}},{"id":17,"nodeType":"ErrorDefinition","src":"303:24:0","nodes":[],"errorSelector":"e3c00816","name":"NotInAccessList","nameLocation":"309:15:0","parameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"324:2:0"}},{"id":19,"nodeType":"ErrorDefinition","src":"332:27:0","nodes":[],"errorSelector":"d1f79e82","name":"BlockNumberTooHigh","nameLocation":"338:18:0","parameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"356:2:0"}},{"id":21,"nodeType":"ErrorDefinition","src":"364:25:0","nodes":[],"errorSelector":"596a19a9","name":"TimestampTooHigh","nameLocation":"370:16:0","parameters":{"id":20,"nodeType":"ParameterList","parameters":[],"src":"386:2:0"}},{"id":23,"nodeType":"ErrorDefinition","src":"394:24:0","nodes":[],"errorSelector":"94338eba","name":"LogIndexTooHigh","nameLocation":"400:15:0","parameters":{"id":22,"nodeType":"ParameterList","parameters":[],"src":"415:2:0"}},{"id":30,"nodeType":"EventDefinition","src":"424:63:0","nodes":[],"anonymous":false,"eventSelector":"5c37832d2e8d10e346e55ad62071a6a2f9fa5130614ef2ec6617555c6f467ba7","name":"ExecutingMessage","nameLocation":"430:16:0","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"463:7:0","nodeType":"VariableDeclaration","scope":30,"src":"447:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24,"name":"bytes32","nodeType":"ElementaryTypeName","src":"447:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"483:2:0","nodeType":"VariableDeclaration","scope":30,"src":"472:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$13_memory_ptr","typeString":"struct Identifier"},"typeName":{"id":27,"nodeType":"UserDefinedTypeName","pathNode":{"id":26,"name":"Identifier","nameLocations":["472:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":13,"src":"472:10:0"},"referencedDeclaration":13,"src":"472:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$13_storage_ptr","typeString":"struct Identifier"}},"visibility":"internal"}],"src":"446:40:0"}},{"id":35,"nodeType":"FunctionDefinition","src":"493:57:0","nodes":[],"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"502:7:0","parameters":{"id":31,"nodeType":"ParameterList","parameters":[],"src":"509:2:0"},"returnParameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35,"src":"535:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32,"name":"string","nodeType":"ElementaryTypeName","src":"535:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"534:15:0"},"scope":44,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43,"nodeType":"FunctionDefinition","src":"556:77:0","nodes":[],"functionSelector":"ab4d6f75","implemented":false,"kind":"function","modifiers":[],"name":"validateMessage","nameLocation":"565:15:0","parameters":{"id":41,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"_id","nameLocation":"601:3:0","nodeType":"VariableDeclaration","scope":43,"src":"581:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$13_calldata_ptr","typeString":"struct Identifier"},"typeName":{"id":37,"nodeType":"UserDefinedTypeName","pathNode":{"id":36,"name":"Identifier","nameLocations":["581:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":13,"src":"581:10:0"},"referencedDeclaration":13,"src":"581:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$13_storage_ptr","typeString":"struct Identifier"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"_msgHash","nameLocation":"614:8:0","nodeType":"VariableDeclaration","scope":43,"src":"606:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39,"name":"bytes32","nodeType":"ElementaryTypeName","src":"606:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"580:43:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[],"src":"632:0:0"},"scope":44,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ICrossL2Inbox","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[44],"name":"ICrossL2Inbox","nameLocation":"250:13:0","scope":45,"usedErrors":[15,17,19,21,23],"usedEvents":[30]}],"license":"MIT"},"id":0} \ No newline at end of file +{"abi":[{"type":"function","name":"validateMessage","inputs":[{"name":"_id","type":"tuple","internalType":"struct Identifier","components":[{"name":"origin","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"_msgHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ExecutingMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"id","type":"tuple","indexed":false,"internalType":"struct Identifier","components":[{"name":"origin","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"BlockNumberTooHigh","inputs":[]},{"type":"error","name":"LogIndexTooHigh","inputs":[]},{"type":"error","name":"NotInAccessList","inputs":[]},{"type":"error","name":"TimestampTooHigh","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"validateMessage((address,uint256,uint256,uint256,uint256),bytes32)":"ab4d6f75","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BlockNumberTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LogIndexTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInAccessList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampTooHigh\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct Identifier\",\"name\":\"id\",\"type\":\"tuple\"}],\"name\":\"ExecutingMessage\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct Identifier\",\"name\":\"_id\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"}],\"name\":\"validateMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ICrossL2Inbox.sol\":\"ICrossL2Inbox\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/ICrossL2Inbox.sol\":{\"keccak256\":\"0x40ed00ca46f8b6ddbd0c919680903207358105ce11e17d889ec4693f8a3651d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b9058ab9aabfc2c3a672186a10f08d001d993aa309f14e1cf66a843de61be9a\",\"dweb:/ipfs/QmQMjNSzFjJqUMAhhxTgsh4njBjPkptBQDQfkuj2SsgxsG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BlockNumberTooHigh"},{"inputs":[],"type":"error","name":"LogIndexTooHigh"},{"inputs":[],"type":"error","name":"NotInAccessList"},{"inputs":[],"type":"error","name":"TimestampTooHigh"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true},{"internalType":"struct Identifier","name":"id","type":"tuple","components":[{"internalType":"address","name":"origin","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"indexed":false}],"type":"event","name":"ExecutingMessage","anonymous":false},{"inputs":[{"internalType":"struct Identifier","name":"_id","type":"tuple","components":[{"internalType":"address","name":"origin","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"bytes32","name":"_msgHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"validateMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/ICrossL2Inbox.sol":"ICrossL2Inbox"},"evmVersion":"cancun","libraries":{}},"sources":{"src/ICrossL2Inbox.sol":{"keccak256":"0x40ed00ca46f8b6ddbd0c919680903207358105ce11e17d889ec4693f8a3651d2","urls":["bzz-raw://0b9058ab9aabfc2c3a672186a10f08d001d993aa309f14e1cf66a843de61be9a","dweb:/ipfs/QmQMjNSzFjJqUMAhhxTgsh4njBjPkptBQDQfkuj2SsgxsG"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/ICrossL2Inbox.sol","id":123,"exportedSymbols":{"ICrossL2Inbox":[122],"Identifier":[93]},"nodeType":"SourceUnit","src":"32:571:1","nodes":[{"id":81,"nodeType":"PragmaDirective","src":"32:23:1","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":93,"nodeType":"StructDefinition","src":"106:132:1","nodes":[],"canonicalName":"Identifier","documentation":{"id":82,"nodeType":"StructuredDocumentation","src":"57:49:1","text":"@notice Identifier of a cross chain message."},"members":[{"constant":false,"id":84,"mutability":"mutable","name":"origin","nameLocation":"138:6:1","nodeType":"VariableDeclaration","scope":93,"src":"130:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83,"name":"address","nodeType":"ElementaryTypeName","src":"130:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86,"mutability":"mutable","name":"blockNumber","nameLocation":"158:11:1","nodeType":"VariableDeclaration","scope":93,"src":"150:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85,"name":"uint256","nodeType":"ElementaryTypeName","src":"150:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88,"mutability":"mutable","name":"logIndex","nameLocation":"183:8:1","nodeType":"VariableDeclaration","scope":93,"src":"175:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90,"mutability":"mutable","name":"timestamp","nameLocation":"205:9:1","nodeType":"VariableDeclaration","scope":93,"src":"197:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":92,"mutability":"mutable","name":"chainId","nameLocation":"228:7:1","nodeType":"VariableDeclaration","scope":93,"src":"220:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Identifier","nameLocation":"113:10:1","scope":123,"visibility":"public"},{"id":122,"nodeType":"ContractDefinition","src":"240:362:1","nodes":[{"id":95,"nodeType":"ErrorDefinition","src":"270:24:1","nodes":[],"errorSelector":"e3c00816","name":"NotInAccessList","nameLocation":"276:15:1","parameters":{"id":94,"nodeType":"ParameterList","parameters":[],"src":"291:2:1"}},{"id":97,"nodeType":"ErrorDefinition","src":"299:27:1","nodes":[],"errorSelector":"d1f79e82","name":"BlockNumberTooHigh","nameLocation":"305:18:1","parameters":{"id":96,"nodeType":"ParameterList","parameters":[],"src":"323:2:1"}},{"id":99,"nodeType":"ErrorDefinition","src":"331:25:1","nodes":[],"errorSelector":"596a19a9","name":"TimestampTooHigh","nameLocation":"337:16:1","parameters":{"id":98,"nodeType":"ParameterList","parameters":[],"src":"353:2:1"}},{"id":101,"nodeType":"ErrorDefinition","src":"361:24:1","nodes":[],"errorSelector":"94338eba","name":"LogIndexTooHigh","nameLocation":"367:15:1","parameters":{"id":100,"nodeType":"ParameterList","parameters":[],"src":"382:2:1"}},{"id":108,"nodeType":"EventDefinition","src":"391:63:1","nodes":[],"anonymous":false,"eventSelector":"5c37832d2e8d10e346e55ad62071a6a2f9fa5130614ef2ec6617555c6f467ba7","name":"ExecutingMessage","nameLocation":"397:16:1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"430:7:1","nodeType":"VariableDeclaration","scope":108,"src":"414:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"414:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":106,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"450:2:1","nodeType":"VariableDeclaration","scope":108,"src":"439:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$93_memory_ptr","typeString":"struct Identifier"},"typeName":{"id":105,"nodeType":"UserDefinedTypeName","pathNode":{"id":104,"name":"Identifier","nameLocations":["439:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":93,"src":"439:10:1"},"referencedDeclaration":93,"src":"439:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$93_storage_ptr","typeString":"struct Identifier"}},"visibility":"internal"}],"src":"413:40:1"}},{"id":113,"nodeType":"FunctionDefinition","src":"460:57:1","nodes":[],"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"469:7:1","parameters":{"id":109,"nodeType":"ParameterList","parameters":[],"src":"476:2:1"},"returnParameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":113,"src":"502:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":110,"name":"string","nodeType":"ElementaryTypeName","src":"502:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"501:15:1"},"scope":122,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":121,"nodeType":"FunctionDefinition","src":"523:77:1","nodes":[],"functionSelector":"ab4d6f75","implemented":false,"kind":"function","modifiers":[],"name":"validateMessage","nameLocation":"532:15:1","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116,"mutability":"mutable","name":"_id","nameLocation":"568:3:1","nodeType":"VariableDeclaration","scope":121,"src":"548:23:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$93_calldata_ptr","typeString":"struct Identifier"},"typeName":{"id":115,"nodeType":"UserDefinedTypeName","pathNode":{"id":114,"name":"Identifier","nameLocations":["548:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":93,"src":"548:10:1"},"referencedDeclaration":93,"src":"548:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_Identifier_$93_storage_ptr","typeString":"struct Identifier"}},"visibility":"internal"},{"constant":false,"id":118,"mutability":"mutable","name":"_msgHash","nameLocation":"581:8:1","nodeType":"VariableDeclaration","scope":121,"src":"573:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"573:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"547:43:1"},"returnParameters":{"id":120,"nodeType":"ParameterList","parameters":[],"src":"599:0:1"},"scope":122,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ICrossL2Inbox","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[122],"name":"ICrossL2Inbox","nameLocation":"250:13:1","scope":123,"usedErrors":[95,97,99,101],"usedEvents":[108]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.abi b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.abi index 67051a1f48e..e035d5778e1 100644 --- a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.abi +++ b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.abi @@ -32,6 +32,12 @@ "type": "bytes", "indexed": false, "internalType": "bytes" + }, + { + "name": "delegateCallResult", + "type": "bytes", + "indexed": false, + "internalType": "bytes" } ], "anonymous": false diff --git a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.bin b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.bin index 5705b73fcbb..7342b9b2f69 100644 --- a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.bin +++ b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.bin @@ -1 +1 @@ -0x6080604052348015600e575f5ffd5b506102f58061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610164565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff1683604051610069919061027f565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff167fde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8826040516101299190610295565b60405180910390a250505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610175575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff81168114610198575f5ffd5b9150602083013567ffffffffffffffff8111156101b3575f5ffd5b8301601f810185136101c3575f5ffd5b803567ffffffffffffffff8111156101dd576101dd610137565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561024957610249610137565b604052818152828201602001871015610260575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c634300081c000a +0x6080604052348015600e575f5ffd5b506103bf8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610208565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516100699190610323565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608473ffffffffffffffffffffffffffffffffffffffff168460405161010a9190610323565b5f60405180830381855af49150503d805f8114610142576040519150601f19603f3d011682016040523d82523d5f602084013e610147565b606091505b50909350905082610184576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff167fc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e07983836040516101cc929190610385565b60405180910390a25050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610219575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461023c575f5ffd5b9150602083013567ffffffffffffffff811115610257575f5ffd5b8301601f81018513610267575f5ffd5b803567ffffffffffffffff811115610281576102816101db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156102ed576102ed6101db565b604052818152828201602001871015610304575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f6103976040830185610339565b82810360208401526103a98185610339565b9594505050505056fea164736f6c634300081c000a diff --git a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.json b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.json index be7e840ac88..84b53934e81 100644 --- a/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.json +++ b/op-e2e/e2eutils/contracts/build/Invoker.sol/Invoker.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"invokePrecompile","inputs":[{"name":"_precompile","type":"address","internalType":"address"},{"name":"_input","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PrecompileInvoked","inputs":[{"name":"precompile","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"PrecompileCallFailed","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102f58061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610164565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff1683604051610069919061027f565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff167fde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8826040516101299190610295565b60405180910390a250505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610175575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff81168114610198575f5ffd5b9150602083013567ffffffffffffffff8111156101b3575f5ffd5b8301601f810185136101c3575f5ffd5b803567ffffffffffffffff8111156101dd576101dd610137565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561024957610249610137565b604052818152828201602001871015610260575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c634300081c000a","sourceMap":"58:481:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610164565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff1683604051610069919061027f565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff167fde9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8826040516101299190610295565b60405180910390a250505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610175575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff81168114610198575f5ffd5b9150602083013567ffffffffffffffff8111156101b3575f5ffd5b8301601f810185136101c3575f5ffd5b803567ffffffffffffffff8111156101dd576101dd610137565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561024957610249610137565b604052818152828201602001871015610260575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c634300081c000a","sourceMap":"58:481:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:350;;;;;;:::i;:::-;;:::i;:::-;;;339:12;353:19;376:11;:16;;393:6;376:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;338:62;;;;415:7;410:68;;445:22;;;;;;;;;;;;;;410:68;510:11;492:38;;;523:6;492:38;;;;;;:::i;:::-;;;;;;;;264:273;;187:350;;:::o;14:184:1:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1259;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;396:9;383:23;446:42;439:5;435:54;428:5;425:65;415:93;;504:1;501;494:12;415:93;527:5;-1:-1:-1;583:2:1;568:18;;555:32;610:18;599:30;;596:50;;;642:1;639;632:12;596:50;665:22;;718:4;710:13;;706:27;-1:-1:-1;696:55:1;;747:1;744;737:12;696:55;787:2;774:16;813:18;805:6;802:30;799:56;;;835:18;;:::i;:::-;884:2;878:9;1031:66;1026:2;957:66;950:4;942:6;938:17;934:90;930:99;926:172;918:6;914:185;1165:6;1153:10;1150:22;1129:18;1117:10;1114:34;1111:62;1108:88;;;1176:18;;:::i;:::-;1212:2;1205:22;1236;;;1277:15;;;1294:2;1273:24;1270:37;-1:-1:-1;1267:57:1;;;1320:1;1317;1310:12;1267:57;1376:6;1371:2;1367;1363:11;1358:2;1350:6;1346:15;1333:50;1429:1;1424:2;1415:6;1407;1403:19;1399:28;1392:39;1450:6;1440:16;;;;;203:1259;;;;;:::o;1467:301::-;1596:3;1634:6;1628:13;1680:6;1673:4;1665:6;1661:17;1656:3;1650:37;1742:1;1706:16;;1731:13;;;-1:-1:-1;1706:16:1;1467:301;-1:-1:-1;1467:301:1:o;1773:475::-;1920:2;1909:9;1902:21;1883:4;1952:6;1946:13;1995:6;1990:2;1979:9;1975:18;1968:34;2054:6;2049:2;2041:6;2037:15;2032:2;2021:9;2017:18;2011:50;2110:1;2105:2;2096:6;2085:9;2081:22;2077:31;2070:42;2239:2;2169:66;2164:2;2156:6;2152:15;2148:88;2137:9;2133:104;2129:113;2121:121;;;1773:475;;;;:::o","linkReferences":{}},"methodIdentifiers":{"invokePrecompile(address,bytes)":"051f3bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"PrecompileCallFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"precompile\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"PrecompileInvoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precompile\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"invokePrecompile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Invoker.sol\":\"Invoker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/Invoker.sol\":{\"keccak256\":\"0xddfb3915e14861712ef66f325e48d931c06bd6f98efcc3ae7e591779dcf942af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b9f829106397fd5474e7ac870e18347d0762248c0c8698be25838a48d157d1a\",\"dweb:/ipfs/QmXKADnBTCewgGXyMGX9grdgyW3uz29AnLgniakKGouYBD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"PrecompileCallFailed"},{"inputs":[{"internalType":"address","name":"precompile","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false}],"type":"event","name":"PrecompileInvoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_precompile","type":"address"},{"internalType":"bytes","name":"_input","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"invokePrecompile"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/Invoker.sol":"Invoker"},"evmVersion":"cancun","libraries":{}},"sources":{"src/Invoker.sol":{"keccak256":"0xddfb3915e14861712ef66f325e48d931c06bd6f98efcc3ae7e591779dcf942af","urls":["bzz-raw://1b9f829106397fd5474e7ac870e18347d0762248c0c8698be25838a48d157d1a","dweb:/ipfs/QmXKADnBTCewgGXyMGX9grdgyW3uz29AnLgniakKGouYBD"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/Invoker.sol","id":40,"exportedSymbols":{"Invoker":[39]},"nodeType":"SourceUnit","src":"32:508:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:24:0","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":39,"nodeType":"ContractDefinition","src":"58:481:0","nodes":[{"id":7,"nodeType":"EventDefinition","src":"81:66:0","nodes":[],"anonymous":false,"eventSelector":"de9caeb04cbecadc4b3b08dd3b026ff047428c7c681a368b2b48d1097bf465a8","name":"PrecompileInvoked","nameLocation":"87:17:0","parameters":{"id":6,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"indexed":true,"mutability":"mutable","name":"precompile","nameLocation":"121:10:0","nodeType":"VariableDeclaration","scope":7,"src":"105:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"105:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5,"indexed":false,"mutability":"mutable","name":"result","nameLocation":"139:6:0","nodeType":"VariableDeclaration","scope":7,"src":"133:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4,"name":"bytes","nodeType":"ElementaryTypeName","src":"133:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"104:42:0"}},{"id":9,"nodeType":"ErrorDefinition","src":"152:29:0","nodes":[],"errorSelector":"fd23ff64","name":"PrecompileCallFailed","nameLocation":"158:20:0","parameters":{"id":8,"nodeType":"ParameterList","parameters":[],"src":"178:2:0"}},{"id":38,"nodeType":"FunctionDefinition","src":"187:350:0","nodes":[],"body":{"id":37,"nodeType":"Block","src":"264:273:0","nodes":[],"statements":[{"assignments":[17,19],"declarations":[{"constant":false,"id":17,"mutability":"mutable","name":"success","nameLocation":"344:7:0","nodeType":"VariableDeclaration","scope":37,"src":"339:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16,"name":"bool","nodeType":"ElementaryTypeName","src":"339:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"result","nameLocation":"366:6:0","nodeType":"VariableDeclaration","scope":37,"src":"353:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18,"name":"bytes","nodeType":"ElementaryTypeName","src":"353:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":24,"initialValue":{"arguments":[{"id":22,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"393:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20,"name":"_precompile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"376:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"388:4:0","memberName":"call","nodeType":"MemberAccess","src":"376:16:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":23,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"376:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"338:62:0"},{"condition":{"id":26,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"414:8:0","subExpression":{"id":25,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"415:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31,"nodeType":"IfStatement","src":"410:68:0","trueBody":{"id":30,"nodeType":"Block","src":"424:54:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27,"name":"PrecompileCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"445:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":28,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"445:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":29,"nodeType":"RevertStatement","src":"438:29:0"}]}},{"eventCall":{"arguments":[{"id":33,"name":"_precompile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"510:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":34,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"523:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32,"name":"PrecompileInvoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"492:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"492:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36,"nodeType":"EmitStatement","src":"487:43:0"}]},"functionSelector":"051f3bdf","implemented":true,"kind":"function","modifiers":[],"name":"invokePrecompile","nameLocation":"196:16:0","parameters":{"id":14,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"_precompile","nameLocation":"221:11:0","nodeType":"VariableDeclaration","scope":38,"src":"213:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13,"mutability":"mutable","name":"_input","nameLocation":"247:6:0","nodeType":"VariableDeclaration","scope":38,"src":"234:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12,"name":"bytes","nodeType":"ElementaryTypeName","src":"234:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"212:42:0"},"returnParameters":{"id":15,"nodeType":"ParameterList","parameters":[],"src":"264:0:0"},"scope":39,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Invoker","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39],"name":"Invoker","nameLocation":"67:7:0","scope":40,"usedErrors":[9],"usedEvents":[7]}],"license":"MIT"},"id":0} \ No newline at end of file +{"abi":[{"type":"function","name":"invokePrecompile","inputs":[{"name":"_precompile","type":"address","internalType":"address"},{"name":"_input","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PrecompileInvoked","inputs":[{"name":"precompile","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"delegateCallResult","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"PrecompileCallFailed","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506103bf8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610208565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516100699190610323565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608473ffffffffffffffffffffffffffffffffffffffff168460405161010a9190610323565b5f60405180830381855af49150503d805f8114610142576040519150601f19603f3d011682016040523d82523d5f602084013e610147565b606091505b50909350905082610184576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff167fc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e07983836040516101cc929190610385565b60405180910390a25050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610219575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461023c575f5ffd5b9150602083013567ffffffffffffffff811115610257575f5ffd5b8301601f81018513610267575f5ffd5b803567ffffffffffffffff811115610281576102816101db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156102ed576102ed6101db565b604052818152828201602001871015610304575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f6103976040830185610339565b82810360208401526103a98185610339565b9594505050505056fea164736f6c634300081c000a","sourceMap":"58:719:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063051f3bdf1461002d575b5f5ffd5b61004061003b366004610208565b610042565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516100699190610323565b5f604051808303815f865af19150503d805f81146100a2576040519150601f19603f3d011682016040523d82523d5f602084013e6100a7565b606091505b5091509150816100e3576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608473ffffffffffffffffffffffffffffffffffffffff168460405161010a9190610323565b5f60405180830381855af49150503d805f8114610142576040519150601f19603f3d011682016040523d82523d5f602084013e610147565b606091505b50909350905082610184576040517ffd23ff6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff167fc331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e07983836040516101cc929190610385565b60405180910390a25050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215610219575f5ffd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461023c575f5ffd5b9150602083013567ffffffffffffffff811115610257575f5ffd5b8301601f81018513610267575f5ffd5b803567ffffffffffffffff811115610281576102816101db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156102ed576102ed6101db565b604052818152828201602001871015610304575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f6103976040830185610339565b82810360208401526103a98185610339565b9594505050505056fea164736f6c634300081c000a","sourceMap":"58:719:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:562;;;;;;:::i;:::-;;:::i;:::-;;;365:12;379:19;402:11;:16;;419:6;402:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:62;;;;441:7;436:68;;471:22;;;;;;;;;;;;;;436:68;513:31;586:11;:24;;611:6;586:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;554:64:0;;-1:-1:-1;554:64:0;-1:-1:-1;554:64:0;628:68;;663:22;;;;;;;;;;;;;;628:68;728:11;710:58;;;741:6;749:18;710:58;;;;;;;:::i;:::-;;;;;;;;290:485;;;213:562;;:::o;14:184:1:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1259;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;396:9;383:23;446:42;439:5;435:54;428:5;425:65;415:93;;504:1;501;494:12;415:93;527:5;-1:-1:-1;583:2:1;568:18;;555:32;610:18;599:30;;596:50;;;642:1;639;632:12;596:50;665:22;;718:4;710:13;;706:27;-1:-1:-1;696:55:1;;747:1;744;737:12;696:55;787:2;774:16;813:18;805:6;802:30;799:56;;;835:18;;:::i;:::-;884:2;878:9;1031:66;1026:2;957:66;950:4;942:6;938:17;934:90;930:99;926:172;918:6;914:185;1165:6;1153:10;1150:22;1129:18;1117:10;1114:34;1111:62;1108:88;;;1176:18;;:::i;:::-;1212:2;1205:22;1236;;;1277:15;;;1294:2;1273:24;1270:37;-1:-1:-1;1267:57:1;;;1320:1;1317;1310:12;1267:57;1376:6;1371:2;1367;1363:11;1358:2;1350:6;1346:15;1333:50;1429:1;1424:2;1415:6;1407;1403:19;1399:28;1392:39;1450:6;1440:16;;;;;203:1259;;;;;:::o;1467:301::-;1596:3;1634:6;1628:13;1680:6;1673:4;1665:6;1661:17;1656:3;1650:37;1742:1;1706:16;;1731:13;;;-1:-1:-1;1706:16:1;1467:301;-1:-1:-1;1467:301:1:o;1773:347::-;1814:3;1852:5;1846:12;1879:6;1874:3;1867:19;1935:6;1928:4;1921:5;1917:16;1910:4;1905:3;1901:14;1895:47;1987:1;1980:4;1971:6;1966:3;1962:16;1958:27;1951:38;2109:4;2039:66;2034:2;2026:6;2022:15;2018:88;2013:3;2009:98;2005:109;1998:116;;;1773:347;;;;:::o;2125:377::-;2318:2;2307:9;2300:21;2281:4;2344:44;2384:2;2373:9;2369:18;2361:6;2344:44;:::i;:::-;2436:9;2428:6;2424:22;2419:2;2408:9;2404:18;2397:50;2464:32;2489:6;2481;2464:32;:::i;:::-;2456:40;2125:377;-1:-1:-1;;;;;2125:377:1:o","linkReferences":{}},"methodIdentifiers":{"invokePrecompile(address,bytes)":"051f3bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"PrecompileCallFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"precompile\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"delegateCallResult\",\"type\":\"bytes\"}],\"name\":\"PrecompileInvoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precompile\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"invokePrecompile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Invoker.sol\":\"Invoker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/Invoker.sol\":{\"keccak256\":\"0x88fbfd5d6b4685de3d3a07490cf9a7c74f2bf4f9ee3100b5d04ccd1110760135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d204eccb3f02bab15af9f5aa12ef62012ca712750c8646dcf00f5b250f6e2480\",\"dweb:/ipfs/QmVpopga7igWGJTYP5cZnNGwxLHGVHUpMJBRDyocM9Gtjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"PrecompileCallFailed"},{"inputs":[{"internalType":"address","name":"precompile","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false},{"internalType":"bytes","name":"delegateCallResult","type":"bytes","indexed":false}],"type":"event","name":"PrecompileInvoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_precompile","type":"address"},{"internalType":"bytes","name":"_input","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"invokePrecompile"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/Invoker.sol":"Invoker"},"evmVersion":"cancun","libraries":{}},"sources":{"src/Invoker.sol":{"keccak256":"0x88fbfd5d6b4685de3d3a07490cf9a7c74f2bf4f9ee3100b5d04ccd1110760135","urls":["bzz-raw://d204eccb3f02bab15af9f5aa12ef62012ca712750c8646dcf00f5b250f6e2480","dweb:/ipfs/QmVpopga7igWGJTYP5cZnNGwxLHGVHUpMJBRDyocM9Gtjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/Invoker.sol","id":62,"exportedSymbols":{"Invoker":[61]},"nodeType":"SourceUnit","src":"32:746:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:24:0","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":61,"nodeType":"ContractDefinition","src":"58:719:0","nodes":[{"id":9,"nodeType":"EventDefinition","src":"81:92:0","nodes":[],"anonymous":false,"eventSelector":"c331673664ab9732fd2c0b1a4aa0cd948da43af82aca20906b4c306c7228e079","name":"PrecompileInvoked","nameLocation":"87:17:0","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"indexed":true,"mutability":"mutable","name":"precompile","nameLocation":"121:10:0","nodeType":"VariableDeclaration","scope":9,"src":"105:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"105:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5,"indexed":false,"mutability":"mutable","name":"result","nameLocation":"139:6:0","nodeType":"VariableDeclaration","scope":9,"src":"133:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4,"name":"bytes","nodeType":"ElementaryTypeName","src":"133:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"delegateCallResult","nameLocation":"153:18:0","nodeType":"VariableDeclaration","scope":9,"src":"147:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"147:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"104:68:0"}},{"id":11,"nodeType":"ErrorDefinition","src":"178:29:0","nodes":[],"errorSelector":"fd23ff64","name":"PrecompileCallFailed","nameLocation":"184:20:0","parameters":{"id":10,"nodeType":"ParameterList","parameters":[],"src":"204:2:0"}},{"id":60,"nodeType":"FunctionDefinition","src":"213:562:0","nodes":[],"body":{"id":59,"nodeType":"Block","src":"290:485:0","nodes":[],"statements":[{"assignments":[19,21],"declarations":[{"constant":false,"id":19,"mutability":"mutable","name":"success","nameLocation":"370:7:0","nodeType":"VariableDeclaration","scope":59,"src":"365:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18,"name":"bool","nodeType":"ElementaryTypeName","src":"365:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"result","nameLocation":"392:6:0","nodeType":"VariableDeclaration","scope":59,"src":"379:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20,"name":"bytes","nodeType":"ElementaryTypeName","src":"379:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":26,"initialValue":{"arguments":[{"id":24,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"419:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22,"name":"_precompile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"402:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"414:4:0","memberName":"call","nodeType":"MemberAccess","src":"402:16:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":25,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"402:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"364:62:0"},{"condition":{"id":28,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"440:8:0","subExpression":{"id":27,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"441:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33,"nodeType":"IfStatement","src":"436:68:0","trueBody":{"id":32,"nodeType":"Block","src":"450:54:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":29,"name":"PrecompileCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"471:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":30,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"471:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":31,"nodeType":"RevertStatement","src":"464:29:0"}]}},{"assignments":[35],"declarations":[{"constant":false,"id":35,"mutability":"mutable","name":"delegateCallResult","nameLocation":"526:18:0","nodeType":"VariableDeclaration","scope":59,"src":"513:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34,"name":"bytes","nodeType":"ElementaryTypeName","src":"513:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":36,"nodeType":"VariableDeclarationStatement","src":"513:31:0"},{"expression":{"id":44,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"555:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38,"name":"delegateCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"564:18:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":39,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"554:29:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":42,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"611:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40,"name":"_precompile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"586:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"598:12:0","memberName":"delegatecall","nodeType":"MemberAccess","src":"586:24:0","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"586:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"554:64:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45,"nodeType":"ExpressionStatement","src":"554:64:0"},{"condition":{"id":47,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"632:8:0","subExpression":{"id":46,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"633:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52,"nodeType":"IfStatement","src":"628:68:0","trueBody":{"id":51,"nodeType":"Block","src":"642:54:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48,"name":"PrecompileCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"663:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"663:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":50,"nodeType":"RevertStatement","src":"656:29:0"}]}},{"eventCall":{"arguments":[{"id":54,"name":"_precompile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"728:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"741:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":56,"name":"delegateCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"749:18:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53,"name":"PrecompileInvoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"710:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory,bytes memory)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"710:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58,"nodeType":"EmitStatement","src":"705:63:0"}]},"functionSelector":"051f3bdf","implemented":true,"kind":"function","modifiers":[],"name":"invokePrecompile","nameLocation":"222:16:0","parameters":{"id":16,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13,"mutability":"mutable","name":"_precompile","nameLocation":"247:11:0","nodeType":"VariableDeclaration","scope":60,"src":"239:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15,"mutability":"mutable","name":"_input","nameLocation":"273:6:0","nodeType":"VariableDeclaration","scope":60,"src":"260:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14,"name":"bytes","nodeType":"ElementaryTypeName","src":"260:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"238:42:0"},"returnParameters":{"id":17,"nodeType":"ParameterList","parameters":[],"src":"290:0:0"},"scope":61,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Invoker","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61],"name":"Invoker","nameLocation":"67:7:0","scope":62,"usedErrors":[11],"usedEvents":[9]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/op-e2e/e2eutils/contracts/build/emit.sol/EmitEvent.json b/op-e2e/e2eutils/contracts/build/emit.sol/EmitEvent.json index 2c4e3a26dab..94828b96192 100644 --- a/op-e2e/e2eutils/contracts/build/emit.sol/EmitEvent.json +++ b/op-e2e/e2eutils/contracts/build/emit.sol/EmitEvent.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"emitData","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DataEmitted","inputs":[{"name":"_data","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b5060ff8061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063d836083e14602a575b5f80fd5b60396035366004607c565b603b565b005b8181604051604992919060e3565b604051908190038120907fe00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c905f90a25050565b5f8060208385031215608c575f80fd5b823567ffffffffffffffff8082111560a2575f80fd5b818501915085601f83011260b4575f80fd5b81358181111560c1575f80fd5b86602082850101111560d1575f80fd5b60209290920196919550909350505050565b818382375f910190815291905056fea164736f6c6343000819000a","sourceMap":"58:278:1:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106026575f3560e01c8063d836083e14602a575b5f80fd5b60396035366004607c565b603b565b005b8181604051604992919060e3565b604051908190038120907fe00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c905f90a25050565b5f8060208385031215608c575f80fd5b823567ffffffffffffffff8082111560a2575f80fd5b818501915085601f83011260b4575f80fd5b81358181111560c1575f80fd5b86602082850101111560d1575f80fd5b60209290920196919550909350505050565b818382375f910190815291905056fea164736f6c6343000819000a","sourceMap":"58:278:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:89;;;;;;:::i;:::-;;:::i;:::-;;;321:5;;309:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;245:89;;:::o;14:591:2:-;84:6;92;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;201:9;188:23;230:18;271:2;263:6;260:14;257:34;;;287:1;284;277:12;257:34;325:6;314:9;310:22;300:32;;370:7;363:4;359:2;355:13;351:27;341:55;;392:1;389;382:12;341:55;432:2;419:16;458:2;450:6;447:14;444:34;;;474:1;471;464:12;444:34;519:7;514:2;505:6;501:2;497:15;493:24;490:37;487:57;;;540:1;537;530:12;487:57;571:2;563:11;;;;;593:6;;-1:-1:-1;14:591:2;;-1:-1:-1;;;;14:591:2:o;610:271::-;793:6;785;780:3;767:33;749:3;819:16;;844:13;;;819:16;610:271;-1:-1:-1;610:271:2:o","linkReferences":{}},"methodIdentifiers":{"emitData(bytes)":"d836083e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"DataEmitted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"emitData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/emit.sol\":\"EmitEvent\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/emit.sol\":{\"keccak256\":\"0xe078378fd445ed0cbbf1087c5013110412ab6a44850af24a15bcde945467accc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66c218de0059688c75903c2ba6d4066661dc6f5fa17a329dd7c385d151f3993a\",\"dweb:/ipfs/Qmby4S4N44naZ2miw3Tgdpq5Qbj4DwzJbcGapgqtd7qd26\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes","indexed":true}],"type":"event","name":"DataEmitted","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"emitData"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/emit.sol":"EmitEvent"},"evmVersion":"cancun","libraries":{}},"sources":{"src/emit.sol":{"keccak256":"0xe078378fd445ed0cbbf1087c5013110412ab6a44850af24a15bcde945467accc","urls":["bzz-raw://66c218de0059688c75903c2ba6d4066661dc6f5fa17a329dd7c385d151f3993a","dweb:/ipfs/Qmby4S4N44naZ2miw3Tgdpq5Qbj4DwzJbcGapgqtd7qd26"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/emit.sol","id":62,"exportedSymbols":{"EmitEvent":[61]},"nodeType":"SourceUnit","src":"32:305:1","nodes":[{"id":46,"nodeType":"PragmaDirective","src":"32:24:1","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":61,"nodeType":"ContractDefinition","src":"58:278:1","nodes":[{"id":50,"nodeType":"EventDefinition","src":"133:39:1","nodes":[],"anonymous":false,"eventSelector":"e00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c","name":"DataEmitted","nameLocation":"139:11:1","parameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"indexed":true,"mutability":"mutable","name":"_data","nameLocation":"165:5:1","nodeType":"VariableDeclaration","scope":50,"src":"151:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47,"name":"bytes","nodeType":"ElementaryTypeName","src":"151:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"150:21:1"}},{"id":60,"nodeType":"FunctionDefinition","src":"245:89:1","nodes":[],"body":{"id":59,"nodeType":"Block","src":"294:40:1","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":56,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"321:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":55,"name":"DataEmitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"309:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58,"nodeType":"EmitStatement","src":"304:23:1"}]},"functionSelector":"d836083e","implemented":true,"kind":"function","modifiers":[],"name":"emitData","nameLocation":"254:8:1","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52,"mutability":"mutable","name":"_data","nameLocation":"278:5:1","nodeType":"VariableDeclaration","scope":60,"src":"263:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51,"name":"bytes","nodeType":"ElementaryTypeName","src":"263:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"262:22:1"},"returnParameters":{"id":54,"nodeType":"ParameterList","parameters":[],"src":"294:0:1"},"scope":61,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"EmitEvent","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61],"name":"EmitEvent","nameLocation":"67:9:1","scope":62,"usedErrors":[],"usedEvents":[50]}],"license":"MIT"},"id":1} \ No newline at end of file +{"abi":[{"type":"function","name":"emitData","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DataEmitted","inputs":[{"name":"data","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101018061001c5f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063d836083e14602a575b5f5ffd5b60396035366004607c565b603b565b005b8181604051604992919060e5565b604051908190038120907fe00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c905f90a25050565b5f5f60208385031215608c575f5ffd5b823567ffffffffffffffff81111560a1575f5ffd5b8301601f8101851360b0575f5ffd5b803567ffffffffffffffff81111560c5575f5ffd5b85602082840101111560d5575f5ffd5b6020919091019590945092505050565b818382375f910190815291905056fea164736f6c634300081c000a","sourceMap":"58:277:3:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063d836083e14602a575b5f5ffd5b60396035366004607c565b603b565b005b8181604051604992919060e5565b604051908190038120907fe00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c905f90a25050565b5f5f60208385031215608c575f5ffd5b823567ffffffffffffffff81111560a1575f5ffd5b8301601f8101851360b0575f5ffd5b803567ffffffffffffffff81111560c5575f5ffd5b85602082840101111560d5575f5ffd5b6020919091019590945092505050565b818382375f910190815291905056fea164736f6c634300081c000a","sourceMap":"58:277:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:89;;;;;;:::i;:::-;;:::i;:::-;;;320:5;;308:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;244:89;;:::o;14:586:4:-;84:6;92;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;201:9;188:23;234:18;226:6;223:30;220:50;;;266:1;263;256:12;220:50;289:22;;342:4;334:13;;330:27;-1:-1:-1;320:55:4;;371:1;368;361:12;320:55;411:2;398:16;437:18;429:6;426:30;423:50;;;469:1;466;459:12;423:50;514:7;509:2;500:6;496:2;492:15;488:24;485:37;482:57;;;535:1;532;525:12;482:57;566:2;558:11;;;;;588:6;;-1:-1:-1;14:586:4;-1:-1:-1;;;14:586:4:o;605:271::-;788:6;780;775:3;762:33;744:3;814:16;;839:13;;;814:16;605:271;-1:-1:-1;605:271:4:o","linkReferences":{}},"methodIdentifiers":{"emitData(bytes)":"d836083e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"DataEmitted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"emitData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/emit.sol\":\"EmitEvent\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"src/emit.sol\":{\"keccak256\":\"0x43f7daec3aae0105cf0e7cb8a2ecf6f53e7140601e08867d3b859d2350fd2b06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5de28fb969a4e6aee942e0558a34ec0fb572602384425d3c85744348e53e1e32\",\"dweb:/ipfs/QmTiug6PULK2Yzix44CxjdjSF75YrHRAUEKEAHHZFR7fPn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":true}],"type":"event","name":"DataEmitted","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"emitData"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/emit.sol":"EmitEvent"},"evmVersion":"cancun","libraries":{}},"sources":{"src/emit.sol":{"keccak256":"0x43f7daec3aae0105cf0e7cb8a2ecf6f53e7140601e08867d3b859d2350fd2b06","urls":["bzz-raw://5de28fb969a4e6aee942e0558a34ec0fb572602384425d3c85744348e53e1e32","dweb:/ipfs/QmTiug6PULK2Yzix44CxjdjSF75YrHRAUEKEAHHZFR7fPn"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/emit.sol","id":209,"exportedSymbols":{"EmitEvent":[208]},"nodeType":"SourceUnit","src":"32:304:3","nodes":[{"id":193,"nodeType":"PragmaDirective","src":"32:24:3","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":208,"nodeType":"ContractDefinition","src":"58:277:3","nodes":[{"id":197,"nodeType":"EventDefinition","src":"133:38:3","nodes":[],"anonymous":false,"eventSelector":"e00bbfe6f6f8f1bbed2da38e3f5a139c6f9da594ab248a3cf8b44fc73627772c","name":"DataEmitted","nameLocation":"139:11:3","parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"indexed":true,"mutability":"mutable","name":"data","nameLocation":"165:4:3","nodeType":"VariableDeclaration","scope":197,"src":"151:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":194,"name":"bytes","nodeType":"ElementaryTypeName","src":"151:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"150:20:3"}},{"id":207,"nodeType":"FunctionDefinition","src":"244:89:3","nodes":[],"body":{"id":206,"nodeType":"Block","src":"293:40:3","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":203,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"320:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":202,"name":"DataEmitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"308:11:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"308:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":205,"nodeType":"EmitStatement","src":"303:23:3"}]},"functionSelector":"d836083e","implemented":true,"kind":"function","modifiers":[],"name":"emitData","nameLocation":"253:8:3","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"mutability":"mutable","name":"_data","nameLocation":"277:5:3","nodeType":"VariableDeclaration","scope":207,"src":"262:20:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":198,"name":"bytes","nodeType":"ElementaryTypeName","src":"262:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"261:22:3"},"returnParameters":{"id":201,"nodeType":"ParameterList","parameters":[],"src":"293:0:3"},"scope":208,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"EmitEvent","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[208],"name":"EmitEvent","nameLocation":"67:9:3","scope":209,"usedErrors":[],"usedEvents":[197]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/op-e2e/e2eutils/contracts/src/Invoker.sol b/op-e2e/e2eutils/contracts/src/Invoker.sol index 6a8118ddb22..2181fdbcb90 100644 --- a/op-e2e/e2eutils/contracts/src/Invoker.sol +++ b/op-e2e/e2eutils/contracts/src/Invoker.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.15; contract Invoker { - event PrecompileInvoked(address indexed precompile, bytes result); + event PrecompileInvoked(address indexed precompile, bytes result, bytes delegateCallResult); error PrecompileCallFailed(); function invokePrecompile(address _precompile, bytes memory _input) external { @@ -11,6 +11,11 @@ contract Invoker { if (!success) { revert PrecompileCallFailed(); } - emit PrecompileInvoked(_precompile, result); + bytes memory delegateCallResult; + (success, delegateCallResult) = _precompile.delegatecall(_input); + if (!success) { + revert PrecompileCallFailed(); + } + emit PrecompileInvoked(_precompile, result, delegateCallResult); } } From 1861c98437daf7fd7ee9f946de8537843fb029ed Mon Sep 17 00:00:00 2001 From: inphi Date: Wed, 3 Dec 2025 12:03:47 -0500 Subject: [PATCH 2/2] go lint --- op-e2e/actions/proofs/precompile_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op-e2e/actions/proofs/precompile_test.go b/op-e2e/actions/proofs/precompile_test.go index cbd1f2068e3..04a4d0987dc 100644 --- a/op-e2e/actions/proofs/precompile_test.go +++ b/op-e2e/actions/proofs/precompile_test.go @@ -214,8 +214,8 @@ func runPrecompileTest(gt *testing.T, testCfg *helpers.TestCfg[PrecompileTestFix require.Equal(t, receipt.Logs[0].Address, invokerContract) require.Len(t, receipt.Logs[0].Topics, 2) precompileAddress := receipt.Logs[0].Topics[1] - var out struct{ - Result []byte + var out struct { + Result []byte DelegateCallResult []byte } err = abi.UnpackIntoInterface(&out, "PrecompileInvoked", receipt.Logs[0].Data)