UNPKG

@layerzerolabs/oapp-evm

Version:

LayerZero Labs reference EVM OmniChain Application (OApp) implementation

1 lines 48.7 kB
{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"count","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidEid","inputs":[]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50604051610a5b380380610a5b83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610966806100f55f395ff3fe60806040526004361061008f575f3560e01c8063b731ea0a11610057578063b731ea0a1461014a578063bd815db014610169578063d045a0dc1461017c578063d42438851461018f578063f2fde38b146101ae575f80fd5b806306661abd1461009357806352ae2879146100bb5780635a0dfe4d146100e1578063715018a6146101185780638da5cb5b1461012e575b5f80fd5b34801561009e575f80fd5b506100a860025481565b6040519081526020015b60405180910390f35b3480156100c6575f80fd5b50305b6040516001600160a01b0390911681526020016100b2565b3480156100ec575f80fd5b506101086100fb36600461050b565b63ffffffff919091161490565b60405190151581526020016100b2565b348015610123575f80fd5b5061012c6101cd565b005b348015610139575f80fd5b505f546001600160a01b03166100c9565b348015610155575f80fd5b506001546100c9906001600160a01b031681565b61012c610177366004610533565b6101e0565b61012c61018a3660046105fd565b610358565b34801561019a575f80fd5b5061012c6101a936600461069b565b610390565b3480156101b9575f80fd5b5061012c6101c836600461069b565b6103ec565b6101d5610429565b6101de5f610455565b565b5f5b818110156102d257368383838181106101fd576101fd6106bb565b905060200281019061020f91906106cf565b905061023061022160208301836106ee565b63ffffffff1660208301351490565b61023a57506102ca565b3063d045a0dc60c08301358360a0810135610259610100830183610707565b61026a610100890160e08a0161069b565b6102786101208a018a610707565b6040518963ffffffff1660e01b815260040161029a9796959493929190610772565b5f604051808303818588803b1580156102b1575f80fd5b505af11580156102c3573d5f803e3d5ffd5b5050505050505b6001016101e2565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa15801561030e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103359190810190610832565b604051638351eea760e01b815260040161034f91906108da565b60405180910390fd5b3330146103785760405163029a949d60e31b815260040160405180910390fd5b610387878787878787876104a4565b50505050505050565b610398610429565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6103f4610429565b6001600160a01b03811661041d57604051631e4fbdf760e01b81525f600482015260240161034f565b61042681610455565b50565b5f546001600160a01b031633146101de5760405163118cdaa760e01b815233600482015260240161034f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104b160208801886106ee565b63ffffffff165f036104d657604051634d30e69360e11b815260040160405180910390fd5b60028054905f6104e58361090c565b919050555050505050505050565b803563ffffffff81168114610506575f80fd5b919050565b5f806040838503121561051c575f80fd5b610525836104f3565b946020939093013593505050565b5f8060208385031215610544575f80fd5b823567ffffffffffffffff8082111561055b575f80fd5b818501915085601f83011261056e575f80fd5b81358181111561057c575f80fd5b8660208260051b8501011115610590575f80fd5b60209290920196919550909350505050565b5f8083601f8401126105b2575f80fd5b50813567ffffffffffffffff8111156105c9575f80fd5b6020830191508360208285010111156105e0575f80fd5b9250929050565b80356001600160a01b0381168114610506575f80fd5b5f805f805f805f87890360e0811215610614575f80fd5b6060811215610621575f80fd5b5087965060608801359550608088013567ffffffffffffffff80821115610646575f80fd5b6106528b838c016105a2565b909750955085915061066660a08b016105e7565b945060c08a013591508082111561067b575f80fd5b506106888a828b016105a2565b989b979a50959850939692959293505050565b5f602082840312156106ab575f80fd5b6106b4826105e7565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e198336030181126106e4575f80fd5b9190910192915050565b5f602082840312156106fe575f80fd5b6106b4826104f3565b5f808335601e1984360301811261071c575f80fd5b83018035915067ffffffffffffffff821115610736575f80fd5b6020019150368190038213156105e0575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff610780896104f3565b168152602088013560208201525f604089013567ffffffffffffffff81168082146107a9575f80fd5b806040850152505087606083015260e060808301526107cc60e08301878961074a565b6001600160a01b03861660a084015282810360c08401526107ee81858761074a565b9a9950505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561082a578181015183820152602001610812565b50505f910152565b5f60208284031215610842575f80fd5b815167ffffffffffffffff80821115610859575f80fd5b818401915084601f83011261086c575f80fd5b81518181111561087e5761087e6107fc565b604051601f8201601f19908116603f011681019083821181831017156108a6576108a66107fc565b816040528281528760208487010111156108be575f80fd5b6108cf836020830160208801610810565b979650505050505050565b602081525f82518060208401526108f8816040850160208701610810565b601f01601f19169190910160400192915050565b5f6001820161092957634e487b7160e01b5f52601160045260245ffd5b506001019056fea26469706673582212205c22f9f623f6812b4bfeaa589fd40e72ecc2973905714c042b2a598526f1efd364736f6c63430008160033","sourceMap":"334:608:136:-:0;;;450:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;486:6;-1:-1:-1;;;;;1273:26:112;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:112;;1350:1;1322:31;;;455:51:137;428:18;;1322:31:112;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;450:46:136;334:608;;2912:187:112;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:112;;;-1:-1:-1;;;;;;3020:17:112;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:137:-;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:137;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:137:o;309:203::-;334:608:136;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061008f575f3560e01c8063b731ea0a11610057578063b731ea0a1461014a578063bd815db014610169578063d045a0dc1461017c578063d42438851461018f578063f2fde38b146101ae575f80fd5b806306661abd1461009357806352ae2879146100bb5780635a0dfe4d146100e1578063715018a6146101185780638da5cb5b1461012e575b5f80fd5b34801561009e575f80fd5b506100a860025481565b6040519081526020015b60405180910390f35b3480156100c6575f80fd5b50305b6040516001600160a01b0390911681526020016100b2565b3480156100ec575f80fd5b506101086100fb36600461050b565b63ffffffff919091161490565b60405190151581526020016100b2565b348015610123575f80fd5b5061012c6101cd565b005b348015610139575f80fd5b505f546001600160a01b03166100c9565b348015610155575f80fd5b506001546100c9906001600160a01b031681565b61012c610177366004610533565b6101e0565b61012c61018a3660046105fd565b610358565b34801561019a575f80fd5b5061012c6101a936600461069b565b610390565b3480156101b9575f80fd5b5061012c6101c836600461069b565b6103ec565b6101d5610429565b6101de5f610455565b565b5f5b818110156102d257368383838181106101fd576101fd6106bb565b905060200281019061020f91906106cf565b905061023061022160208301836106ee565b63ffffffff1660208301351490565b61023a57506102ca565b3063d045a0dc60c08301358360a0810135610259610100830183610707565b61026a610100890160e08a0161069b565b6102786101208a018a610707565b6040518963ffffffff1660e01b815260040161029a9796959493929190610772565b5f604051808303818588803b1580156102b1575f80fd5b505af11580156102c3573d5f803e3d5ffd5b5050505050505b6001016101e2565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa15801561030e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103359190810190610832565b604051638351eea760e01b815260040161034f91906108da565b60405180910390fd5b3330146103785760405163029a949d60e31b815260040160405180910390fd5b610387878787878787876104a4565b50505050505050565b610398610429565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6103f4610429565b6001600160a01b03811661041d57604051631e4fbdf760e01b81525f600482015260240161034f565b61042681610455565b50565b5f546001600160a01b031633146101de5760405163118cdaa760e01b815233600482015260240161034f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104b160208801886106ee565b63ffffffff165f036104d657604051634d30e69360e11b815260040160405180910390fd5b60028054905f6104e58361090c565b919050555050505050505050565b803563ffffffff81168114610506575f80fd5b919050565b5f806040838503121561051c575f80fd5b610525836104f3565b946020939093013593505050565b5f8060208385031215610544575f80fd5b823567ffffffffffffffff8082111561055b575f80fd5b818501915085601f83011261056e575f80fd5b81358181111561057c575f80fd5b8660208260051b8501011115610590575f80fd5b60209290920196919550909350505050565b5f8083601f8401126105b2575f80fd5b50813567ffffffffffffffff8111156105c9575f80fd5b6020830191508360208285010111156105e0575f80fd5b9250929050565b80356001600160a01b0381168114610506575f80fd5b5f805f805f805f87890360e0811215610614575f80fd5b6060811215610621575f80fd5b5087965060608801359550608088013567ffffffffffffffff80821115610646575f80fd5b6106528b838c016105a2565b909750955085915061066660a08b016105e7565b945060c08a013591508082111561067b575f80fd5b506106888a828b016105a2565b989b979a50959850939692959293505050565b5f602082840312156106ab575f80fd5b6106b4826105e7565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e198336030181126106e4575f80fd5b9190910192915050565b5f602082840312156106fe575f80fd5b6106b4826104f3565b5f808335601e1984360301811261071c575f80fd5b83018035915067ffffffffffffffff821115610736575f80fd5b6020019150368190038213156105e0575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff610780896104f3565b168152602088013560208201525f604089013567ffffffffffffffff81168082146107a9575f80fd5b806040850152505087606083015260e060808301526107cc60e08301878961074a565b6001600160a01b03861660a084015282810360c08401526107ee81858761074a565b9a9950505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561082a578181015183820152602001610812565b50505f910152565b5f60208284031215610842575f80fd5b815167ffffffffffffffff80821115610859575f80fd5b818401915084601f83011261086c575f80fd5b81518181111561087e5761087e6107fc565b604051601f8201601f19908116603f011681019083821181831017156108a6576108a66107fc565b816040528281528760208487010111156108be575f80fd5b6108cf836020830160208801610810565b979650505050505050565b602081525f82518060208401526108f8816040850160208701610810565b601f01601f19169190910160400192915050565b5f6001820161092957634e487b7160e01b5f52601160045260245ffd5b506001019056fea26469706673582212205c22f9f623f6812b4bfeaa589fd40e72ecc2973905714c042b2a598526f1efd364736f6c63430008160033","sourceMap":"334:608:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;398:20;;;;;;;;;;;;;;;;;;;160:25:137;;;148:2;133:18;398:20:136;;;;;;;;875:93:16;;;;;;;;;;-1:-1:-1;956:4:16;875:93;;;-1:-1:-1;;;;;360:32:137;;;342:51;;330:2;315:18;875:93:16;196:203:137;805:135:136;;;;;;;;;;-1:-1:-1;805:135:136;;;;;:::i;:::-;910:13;;;;;902:31;;805:135;;;;994:14:137;;987:22;969:41;;957:2;942:18;805:135:136;829:187:137;2293:101:112;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;-1:-1:-1;1684:7:112;1710:6;-1:-1:-1;;;;;1710:6:112;1638:85;;559:23:16;;;;;;;;;;-1:-1:-1;559:23:16;;;;-1:-1:-1;;;;;559:23:16;;;1698:1333;;;;;;:::i;:::-;;:::i;3679:409::-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:16;;;;;:::i;:::-;;:::i;2543:215:112:-;;;;;;;;;;-1:-1:-1;2543:215:112;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1698:1333:16:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:16;1987:20;;;;1854:43;1987:20;:::i;:::-;910:13:136;;2009:20:16;;;;902:31:136;;805:135;1980:50:16;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:16;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:16;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:16;;;;;;;;:::i;:::-;;;;;;;;3679:409;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:16;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;:::-;3679:409;;;;;;;:::o;1100:139::-;1531:13:112;:11;:13::i;:::-;1175:8:16::1;:20:::0;;-1:-1:-1;;;;;;1175:20:16::1;-1:-1:-1::0;;;;;1175:20:16;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;342:51:137;;;1210:22:16::1;::::0;330:2:137;315:18;1210:22:16::1;;;;;;;1100:139:::0;:::o;2543:215:112:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:112;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:112;;2700:1:::1;2672:31;::::0;::::1;342:51:137::0;315:18;;2672:31:112::1;196:203:137::0;2623:91:112::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:112;735:10:120;1855:23:112;1851:101;;1901:40;;-1:-1:-1;;;1901:40:112;;735:10:120;1901:40:112;;;342:51:137;315:18;;1901:40:112;196:203:137;2912:187:112;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:112;;;-1:-1:-1;;;;;;3020:17:112;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;502:297:136:-;735:14;;;;:7;:14;:::i;:::-;:19;;753:1;735:19;731:44;;763:12;;-1:-1:-1;;;763:12:136;;;;;;;;;;;731:44;785:5;:7;;;:5;:7;;;:::i;:::-;;;;;;502:297;;;;;;;:::o;404:163:137:-;471:20;;531:10;520:22;;510:33;;500:61;;557:1;554;547:12;500:61;404:163;;;:::o;572:252::-;639:6;647;700:2;688:9;679:7;675:23;671:32;668:52;;;716:1;713;706:12;668:52;739:28;757:9;739:28;:::i;:::-;729:38;814:2;799:18;;;;786:32;;-1:-1:-1;;;572:252:137:o;1021:648::-;1140:6;1148;1201:2;1189:9;1180:7;1176:23;1172:32;1169:52;;;1217:1;1214;1207:12;1169:52;1257:9;1244:23;1286:18;1327:2;1319:6;1316:14;1313:34;;;1343:1;1340;1333:12;1313:34;1381:6;1370:9;1366:22;1356:32;;1426:7;1419:4;1415:2;1411:13;1407:27;1397:55;;1448:1;1445;1438:12;1397:55;1488:2;1475:16;1514:2;1506:6;1503:14;1500:34;;;1530:1;1527;1520:12;1500:34;1583:7;1578:2;1568:6;1565:1;1561:14;1557:2;1553:23;1549:32;1546:45;1543:65;;;1604:1;1601;1594:12;1543:65;1635:2;1627:11;;;;;1657:6;;-1:-1:-1;1021:648:137;;-1:-1:-1;;;;1021:648:137:o;1674:347::-;1725:8;1735:6;1789:3;1782:4;1774:6;1770:17;1766:27;1756:55;;1807:1;1804;1797:12;1756:55;-1:-1:-1;1830:20:137;;1873:18;1862:30;;1859:50;;;1905:1;1902;1895:12;1859:50;1942:4;1934:6;1930:17;1918:29;;1994:3;1987:4;1978:6;1970;1966:19;1962:30;1959:39;1956:59;;;2011:1;2008;2001:12;1956:59;1674:347;;;;;:::o;2026:173::-;2094:20;;-1:-1:-1;;;;;2143:31:137;;2133:42;;2123:70;;2189:1;2186;2179:12;2204:1005;2348:6;2356;2364;2372;2380;2388;2396;2440:9;2431:7;2427:23;2470:3;2466:2;2462:12;2459:32;;;2487:1;2484;2477:12;2459:32;2511:2;2507;2503:11;2500:31;;;2527:1;2524;2517:12;2500:31;;2550:9;2540:19;;2606:2;2595:9;2591:18;2578:32;2568:42;;2661:3;2650:9;2646:19;2633:33;2685:18;2726:2;2718:6;2715:14;2712:34;;;2742:1;2739;2732:12;2712:34;2781:58;2831:7;2822:6;2811:9;2807:22;2781:58;:::i;:::-;2858:8;;-1:-1:-1;2755:84:137;-1:-1:-1;2755:84:137;;-1:-1:-1;2912:39:137;2946:3;2931:19;;2912:39;:::i;:::-;2902:49;;3004:3;2993:9;2989:19;2976:33;2960:49;;3034:2;3024:8;3021:16;3018:36;;;3050:1;3047;3040:12;3018:36;;3089:60;3141:7;3130:8;3119:9;3115:24;3089:60;:::i;:::-;2204:1005;;;;-1:-1:-1;2204:1005:137;;-1:-1:-1;2204:1005:137;;;;3063:86;;-1:-1:-1;;;2204:1005:137:o;3214:186::-;3273:6;3326:2;3314:9;3305:7;3301:23;3297:32;3294:52;;;3342:1;3339;3332:12;3294:52;3365:29;3384:9;3365:29;:::i;:::-;3355:39;3214:186;-1:-1:-1;;;3214:186:137:o;3405:127::-;3466:10;3461:3;3457:20;3454:1;3447:31;3497:4;3494:1;3487:15;3521:4;3518:1;3511:15;3537:331;3636:4;3694:11;3681:25;3788:3;3784:8;3773;3757:14;3753:29;3749:44;3729:18;3725:69;3715:97;;3808:1;3805;3798:12;3715:97;3829:33;;;;;3537:331;-1:-1:-1;;3537:331:137:o;3873:184::-;3931:6;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;4023:28;4041:9;4023:28;:::i;4062:521::-;4139:4;4145:6;4205:11;4192:25;4299:2;4295:7;4284:8;4268:14;4264:29;4260:43;4240:18;4236:68;4226:96;;4318:1;4315;4308:12;4226:96;4345:33;;4397:20;;;-1:-1:-1;4440:18:137;4429:30;;4426:50;;;4472:1;4469;4462:12;4426:50;4505:4;4493:17;;-1:-1:-1;4536:14:137;4532:27;;;4522:38;;4519:58;;;4573:1;4570;4563:12;4588:266;4676:6;4671:3;4664:19;4728:6;4721:5;4714:4;4709:3;4705:14;4692:43;-1:-1:-1;4780:1:137;4755:16;;;4773:4;4751:27;;;4744:38;;;;4836:2;4815:15;;;-1:-1:-1;;4811:29:137;4802:39;;;4798:50;;4588:266::o;4859:1026::-;5239:10;5212:25;5230:6;5212:25;:::i;:::-;5208:42;5197:9;5190:61;5314:4;5306:6;5302:17;5289:31;5282:4;5271:9;5267:20;5260:61;5171:4;5368;5360:6;5356:17;5343:31;5404:18;5397:5;5393:30;5452:2;5445:5;5442:13;5432:41;;5469:1;5466;5459:12;5432:41;5511:2;5504:4;5493:9;5489:20;5482:32;;;5550:6;5545:2;5534:9;5530:18;5523:34;5594:3;5588;5577:9;5573:19;5566:32;5621:62;5678:3;5667:9;5663:19;5655:6;5647;5621:62;:::i;:::-;-1:-1:-1;;;;;5720:32:137;;5740:3;5699:19;;5692:61;5790:22;;;5784:3;5769:19;;5762:51;5830:49;5794:6;5864;5856;5830:49;:::i;:::-;5822:57;4859:1026;-1:-1:-1;;;;;;;;;;4859:1026:137:o;5890:127::-;5951:10;5946:3;5942:20;5939:1;5932:31;5982:4;5979:1;5972:15;6006:4;6003:1;5996:15;6022:250;6107:1;6117:113;6131:6;6128:1;6125:13;6117:113;;;6207:11;;;6201:18;6188:11;;;6181:39;6153:2;6146:10;6117:113;;;-1:-1:-1;;6264:1:137;6246:16;;6239:27;6022:250::o;6277:896::-;6356:6;6409:2;6397:9;6388:7;6384:23;6380:32;6377:52;;;6425:1;6422;6415:12;6377:52;6458:9;6452:16;6487:18;6528:2;6520:6;6517:14;6514:34;;;6544:1;6541;6534:12;6514:34;6582:6;6571:9;6567:22;6557:32;;6627:7;6620:4;6616:2;6612:13;6608:27;6598:55;;6649:1;6646;6639:12;6598:55;6678:2;6672:9;6700:2;6696;6693:10;6690:36;;;6706:18;;:::i;:::-;6781:2;6775:9;6749:2;6835:13;;-1:-1:-1;;6831:22:137;;;6855:2;6827:31;6823:40;6811:53;;;6879:18;;;6899:22;;;6876:46;6873:72;;;6925:18;;:::i;:::-;6965:10;6961:2;6954:22;7000:2;6992:6;6985:18;7040:7;7035:2;7030;7026;7022:11;7018:20;7015:33;7012:53;;;7061:1;7058;7051:12;7012:53;7074:68;7139:2;7134;7126:6;7122:15;7117:2;7113;7109:11;7074:68;:::i;:::-;7161:6;6277:896;-1:-1:-1;;;;;;;6277:896:137:o;7178:394::-;7325:2;7314:9;7307:21;7288:4;7357:6;7351:13;7400:6;7395:2;7384:9;7380:18;7373:34;7416:79;7488:6;7483:2;7472:9;7468:18;7463:2;7455:6;7451:15;7416:79;:::i;:::-;7556:2;7535:15;-1:-1:-1;;7531:29:137;7516:45;;;;7563:2;7512:54;;7178:394;-1:-1:-1;;7178:394:137:o;7577:232::-;7616:3;7637:17;;;7634:140;;7696:10;7691:3;7687:20;7684:1;7677:31;7731:4;7728:1;7721:15;7759:4;7756:1;7749:15;7634:140;-1:-1:-1;7801:1:137;7790:13;;7577:232::o","linkReferences":{}},"methodIdentifiers":{"count()":"06661abd","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","oApp()":"52ae2879","owner()":"8da5cb5b","preCrime()":"b731ea0a","renounceOwnership()":"715018a6","setPreCrime(address)":"d4243885","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"count\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/PreCrimeV2SimulatorMock.sol\":\"PreCrimeV2SimulatorMock\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"test/mocks/PreCrimeV2SimulatorMock.sol\":{\"keccak256\":\"0x3afe3cbfdea536d293c588100bbbee9575cead1b0bf53d99957a86732d187eb2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d38e2261b87302ca2c6e0dbcd2c2800e7695ac388df4a5ed31ef3109474e68f5\",\"dweb:/ipfs/QmQFz9mVM1MUk8oqDNDXCfuvGUq2KZcwbTRjfzp6jPqdGu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidEid"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/PreCrimeV2SimulatorMock.sol":"PreCrimeV2SimulatorMock"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"test/mocks/PreCrimeV2SimulatorMock.sol":{"keccak256":"0x3afe3cbfdea536d293c588100bbbee9575cead1b0bf53d99957a86732d187eb2","urls":["bzz-raw://d38e2261b87302ca2c6e0dbcd2c2800e7695ac388df4a5ed31ef3109474e68f5","dweb:/ipfs/QmQFz9mVM1MUk8oqDNDXCfuvGUq2KZcwbTRjfzp6jPqdGu"],"license":"UNLICENSED"}},"version":1},"id":136}