@layerzerolabs/oapp-evm
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 49 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"options","type":"bytes","internalType":"bytes"},{"name":"applyEnforcedOptions","type":"bool","internalType":"bool"},{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"assertOptionsType3","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b50604051620012593803806200125983398101604081905262000033916200031a565b806001600160a01b0381166200006357604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6200006e816200010e565b50811562000105576040805160018082528183019092525f91816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816200008c575050604080516060810182526001808252602082015290810186905281519192509082905f90620000ed57620000ed620003f3565b602090810291909101015262000103816200015d565b505b50505062000632565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b815181101562000246576200019a828281518110620001825762000182620003f3565b6020026020010151604001516200028360201b60201c565b818181518110620001af57620001af620003f3565b60200260200101516040015160015f848481518110620001d357620001d3620003f3565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f8484815181106200020d576200020d620003f3565b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816200023c919062000491565b506001016200015f565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516200027891906200058a565b60405180910390a150565b600281015161ffff8116600314620002b25781604051639a6d49cd60e01b81526004016200005a919062000617565b5050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620002e6578181015183820152602001620002cc565b50505f910152565b80518015158114620002fe575f80fd5b919050565b80516001600160a01b0381168114620002fe575f80fd5b5f805f606084860312156200032d575f80fd5b83516001600160401b038082111562000344575f80fd5b818601915086601f83011262000358575f80fd5b8151818111156200036d576200036d620002b6565b604051601f8201601f19908116603f01168101908382118183101715620003985762000398620002b6565b81604052828152896020848701011115620003b1575f80fd5b620003c4836020830160208801620002ca565b8097505050505050620003da60208501620002ee565b9150620003ea6040850162000303565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806200041c57607f821691505b6020821081036200043b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200048c57805f5260205f20601f840160051c81016020851015620004685750805b601f840160051c820191505b8181101562000489575f815560010162000474565b50505b505050565b81516001600160401b03811115620004ad57620004ad620002b6565b620004c581620004be845462000407565b8462000441565b602080601f831160018114620004fb575f8415620004e35750858301515b5f19600386901b1c1916600185901b17855562000555565b5f85815260208120601f198616915b828110156200052b578886015182559484019460019091019084016200050a565b50858210156200054957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f815180845262000576816020860160208601620002ca565b601f01601f19169290920160200192915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200060957888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052620005f4818601836200055d565b968901969450505090860190600101620005b1565b509098975050505050505050565b602081525f6200062b60208301846200055d565b9392505050565b610c1980620006405f395ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638da5cb5b116100585780638da5cb5b146100c4578063b98bd070146100de578063bc70b354146100f1578063f2fde38b14610104575f80fd5b806333a6ebd51461007e5780635535d46114610093578063715018a6146100bc575b5f80fd5b61009161008c36600461060f565b610117565b005b6100a66100a1366004610677565b610159565b6040516100b391906106f5565b60405180910390f35b6100916101fb565b5f546040516001600160a01b0390911681526020016100b3565b6100916100ec36600461070e565b61020e565b6100a66100ff36600461077d565b610228565b6100916101123660046107da565b6103da565b61015582828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061041792505050565b5050565b600160209081525f92835260408084209091529082529020805461017c90610800565b80601f01602080910402602001604051908101604052809291908181526020018280546101a890610800565b80156101f35780601f106101ca576101008083540402835291602001916101f3565b820191905f5260205f20905b8154815290600101906020018083116101d657829003601f168201915b505050505081565b610203610443565b61020c5f61046f565b565b610216610443565b61015561022382846108a6565b6104be565b63ffffffff84165f90815260016020908152604080832061ffff8716845290915281208054606092919061025b90610800565b80601f016020809104026020016040519081016040528092919081815260200182805461028790610800565b80156102d25780601f106102a9576101008083540402835291602001916102d2565b820191905f5260205f20905b8154815290600101906020018083116102b557829003601f168201915b5050505050905080515f036103205783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152509294506103d29350505050565b5f83900361032f5790506103d2565b600283106103ac5761037584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061041792505050565b8061038384600281886109bf565b604051602001610395939291906109e6565b6040516020818303038152906040529150506103d2565b8383604051639a6d49cd60e01b81526004016103c9929190610a0c565b60405180910390fd5b949350505050565b6103e2610443565b6001600160a01b03811661040b57604051631e4fbdf760e01b81525f60048201526024016103c9565b6104148161046f565b50565b600281015161ffff81166003146101555781604051639a6d49cd60e01b81526004016103c991906106f5565b5f546001600160a01b0316331461020c5760405163118cdaa760e01b81523360048201526024016103c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b815181101561058f576104ef8282815181106104de576104de610a3a565b602002602001015160400151610417565b81818151811061050157610501610a3a565b60200260200101516040015160015f84848151811061052257610522610a3a565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061055957610559610a3a565b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816105869190610a9a565b506001016104c0565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516105bf9190610b5a565b60405180910390a150565b5f8083601f8401126105da575f80fd5b50813567ffffffffffffffff8111156105f1575f80fd5b602083019150836020828501011115610608575f80fd5b9250929050565b5f8060208385031215610620575f80fd5b823567ffffffffffffffff811115610636575f80fd5b610642858286016105ca565b90969095509350505050565b803563ffffffff81168114610661575f80fd5b919050565b803561ffff81168114610661575f80fd5b5f8060408385031215610688575f80fd5b6106918361064e565b915061069f60208401610666565b90509250929050565b5f5b838110156106c25781810151838201526020016106aa565b50505f910152565b5f81518084526106e18160208601602086016106a8565b601f01601f19169290920160200192915050565b602081525f61070760208301846106ca565b9392505050565b5f806020838503121561071f575f80fd5b823567ffffffffffffffff80821115610736575f80fd5b818501915085601f830112610749575f80fd5b813581811115610757575f80fd5b8660208260051b850101111561076b575f80fd5b60209290920196919550909350505050565b5f805f8060608587031215610790575f80fd5b6107998561064e565b93506107a760208601610666565b9250604085013567ffffffffffffffff8111156107c2575f80fd5b6107ce878288016105ca565b95989497509550505050565b5f602082840312156107ea575f80fd5b81356001600160a01b0381168114610707575f80fd5b600181811c9082168061081457607f821691505b60208210810361083257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561086f5761086f610838565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561089e5761089e610838565b604052919050565b5f67ffffffffffffffff808411156108c0576108c0610838565b8360051b60206108d1818301610875565b8681529185019181810190368411156108e8575f80fd5b865b848110156109b357803586811115610900575f80fd5b88016060368290031215610912575f80fd5b61091a61084c565b6109238261064e565b8152610930868301610666565b8682015260408083013589811115610946575f80fd5b9290920191601f368185011261095a575f80fd5b83358a81111561096c5761096c610838565b61097d818301601f19168a01610875565b91508082523689828701011115610992575f80fd5b808986018a8401375f908201890152908201528452509183019183016108ea565b50979650505050505050565b5f80858511156109cd575f80fd5b838611156109d9575f80fd5b5050820193919092039150565b5f84516109f78184602089016106a8565b8201838582375f930192835250909392505050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b5f52603260045260245ffd5b601f821115610a9557805f5260205f20601f840160051c81016020851015610a735750805b601f840160051c820191505b81811015610a92575f8155600101610a7f565b50505b505050565b815167ffffffffffffffff811115610ab457610ab4610838565b610ac881610ac28454610800565b84610a4e565b602080601f831160018114610afb575f8415610ae45750858301515b5f19600386901b1c1916600185901b178555610b52565b5f85815260208120601f198616915b82811015610b2957888601518255948401946001909101908401610b0a565b5085821015610b4657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015610bd557888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052610bc1818601836106ca565b968901969450505090860190600101610b81565b50909897505050505050505056fea2646970667358221220376a930e4412e657017ac2acaaf14d0da05a1e05e50404085164464c23f5889b64736f6c63430008160033","sourceMap":"320:554:132:-:0;;;373:384;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;458:6;-1:-1:-1;;;;;1273:26:112;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:112;;1350:1;1322:31;;;1971:51:137;1944:18;;1322:31:112;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;480:20:132::1;476:275;;;554:28;::::0;;580:1:::1;554:28:::0;;;;;::::1;::::0;;;516:35:::1;::::0;554:28:::1;;;;320:554:::0;;;;;;;;;-1:-1:-1;320:554:132;;;;;;;;;;;;;;554:28:::1;;;;;;;;;;;;-1:-1:-1::0;;608:34:132::1;::::0;;::::1;::::0;::::1;::::0;;628:1:::1;608:34:::0;;;::::1;::::0;::::1;::::0;;;;;;;596:9;;516:66;;-1:-1:-1;608:34:132;516:66;;-1:-1:-1;;596:9:132::1;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:46;656:27:::1;676:6:::0;656:19:::1;:27::i;:::-;502:249;476:275;373:384:::0;;;320:554;;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;2237:514:12:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;;;:48;;:::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:12;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;:::-;;;;;;;;2237:514;:::o;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:12;;;;;;;;:::i;4823:65::-;4705:190;4631:264;:::o;14:127:137:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:137;370:16;;363:27;146:250::o;401:164::-;477:13;;526;;519:21;509:32;;499:60;;555:1;552;545:12;499:60;401:164;;;:::o;570:177::-;649:13;;-1:-1:-1;;;;;691:31:137;;681:42;;671:70;;737:1;734;727:12;752:1068;846:6;854;862;915:2;903:9;894:7;890:23;886:32;883:52;;;931:1;928;921:12;883:52;958:16;;-1:-1:-1;;;;;1023:14:137;;;1020:34;;;1050:1;1047;1040:12;1020:34;1088:6;1077:9;1073:22;1063:32;;1133:7;1126:4;1122:2;1118:13;1114:27;1104:55;;1155:1;1152;1145:12;1104:55;1184:2;1178:9;1206:2;1202;1199:10;1196:36;;;1212:18;;:::i;:::-;1287:2;1281:9;1255:2;1341:13;;-1:-1:-1;;1337:22:137;;;1361:2;1333:31;1329:40;1317:53;;;1385:18;;;1405:22;;;1382:46;1379:72;;;1431:18;;:::i;:::-;1471:10;1467:2;1460:22;1506:2;1498:6;1491:18;1548:7;1541:4;1536:2;1532;1528:11;1524:22;1521:35;1518:55;;;1569:1;1566;1559:12;1518:55;1582:72;1651:2;1644:4;1636:6;1632:17;1625:4;1621:2;1617:13;1582:72;:::i;:::-;1673:6;1663:16;;;;;;;1698:48;1740:4;1729:9;1725:20;1698:48;:::i;:::-;1688:58;;1765:49;1810:2;1799:9;1795:18;1765:49;:::i;:::-;1755:59;;752:1068;;;;;:::o;2033:127::-;2094:10;2089:3;2085:20;2082:1;2075:31;2125:4;2122:1;2115:15;2149:4;2146:1;2139:15;2165:380;2244:1;2240:12;;;;2287;;;2308:61;;2362:4;2354:6;2350:17;2340:27;;2308:61;2415:2;2407:6;2404:14;2384:18;2381:38;2378:161;;2461:10;2456:3;2452:20;2449:1;2442:31;2496:4;2493:1;2486:15;2524:4;2521:1;2514:15;2378:161;;2165:380;;;:::o;2675:517::-;2776:2;2771:3;2768:11;2765:421;;;2812:5;2809:1;2802:16;2856:4;2853:1;2843:18;2926:2;2914:10;2910:19;2907:1;2903:27;2897:4;2893:38;2962:4;2950:10;2947:20;2944:47;;;-1:-1:-1;2985:4:137;2944:47;3040:2;3035:3;3031:12;3028:1;3024:20;3018:4;3014:31;3004:41;;3095:81;3113:2;3106:5;3103:13;3095:81;;;3172:1;3158:16;;3139:1;3128:13;3095:81;;;3099:3;;2765:421;2675:517;;;:::o;3368:1341::-;3486:10;;-1:-1:-1;;;;;3508:30:137;;3505:56;;;3541:18;;:::i;:::-;3570:96;3659:6;3619:38;3651:4;3645:11;3619:38;:::i;:::-;3613:4;3570:96;:::i;:::-;3721:4;;3778:2;3767:14;;3795:1;3790:662;;;;4496:1;4513:6;4510:89;;;-1:-1:-1;4565:19:137;;;4559:26;4510:89;-1:-1:-1;;3325:1:137;3321:11;;;3317:24;3313:29;3303:40;3349:1;3345:11;;;3300:57;4612:81;;3760:943;;3790:662;2622:1;2615:14;;;2659:4;2646:18;;-1:-1:-1;;3826:20:137;;;3943:236;3957:7;3954:1;3951:14;3943:236;;;4046:19;;;4040:26;4025:42;;4138:27;;;;4106:1;4094:14;;;;3973:19;;3943:236;;;3947:3;4207:6;4198:7;4195:19;4192:201;;;4268:19;;;4262:26;-1:-1:-1;;4351:1:137;4347:14;;;4363:3;4343:24;4339:37;4335:42;4320:58;4305:74;;4192:201;;;4439:1;4430:6;4427:1;4423:14;4419:22;4413:4;4406:36;3760:943;;;;;3368:1341;;:::o;4714:270::-;4755:3;4793:5;4787:12;4820:6;4815:3;4808:19;4836:76;4905:6;4898:4;4893:3;4889:14;4882:4;4875:5;4871:16;4836:76;:::i;:::-;4966:2;4945:15;-1:-1:-1;;4941:29:137;4932:39;;;;4973:4;4928:50;;4714:270;-1:-1:-1;;4714:270:137:o;4989:1161::-;5203:4;5232:2;5272;5261:9;5257:18;5302:2;5291:9;5284:21;5325:6;5360;5354:13;5391:6;5383;5376:22;5417:2;5407:12;;5450:2;5439:9;5435:18;5428:25;;5512:2;5502:6;5499:1;5495:14;5484:9;5480:30;5476:39;5550:2;5542:6;5538:15;5571:1;5581:540;5595:6;5592:1;5589:13;5581:540;;;5660:22;;;-1:-1:-1;;5656:36:137;5644:49;;5716:13;;5788:9;;5799:10;5784:26;5769:42;;5858:11;;;5852:18;5872:6;5848:31;5831:15;;;5824:56;5919:11;;5913:18;5752:4;5951:15;;;5944:27;;;5994:47;6025:15;;;5913:18;5994:47;:::i;:::-;6099:12;;;;5984:57;-1:-1:-1;;;6064:15:137;;;;5617:1;5610:9;5581:540;;;-1:-1:-1;6138:6:137;;4989:1161;-1:-1:-1;;;;;;;;4989:1161:137:o;6155:217::-;6302:2;6291:9;6284:21;6265:4;6322:44;6362:2;6351:9;6347:18;6339:6;6322:44;:::i;:::-;6314:52;6155:217;-1:-1:-1;;;6155:217:137:o;:::-;320:554:132;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638da5cb5b116100585780638da5cb5b146100c4578063b98bd070146100de578063bc70b354146100f1578063f2fde38b14610104575f80fd5b806333a6ebd51461007e5780635535d46114610093578063715018a6146100bc575b5f80fd5b61009161008c36600461060f565b610117565b005b6100a66100a1366004610677565b610159565b6040516100b391906106f5565b60405180910390f35b6100916101fb565b5f546040516001600160a01b0390911681526020016100b3565b6100916100ec36600461070e565b61020e565b6100a66100ff36600461077d565b610228565b6100916101123660046107da565b6103da565b61015582828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061041792505050565b5050565b600160209081525f92835260408084209091529082529020805461017c90610800565b80601f01602080910402602001604051908101604052809291908181526020018280546101a890610800565b80156101f35780601f106101ca576101008083540402835291602001916101f3565b820191905f5260205f20905b8154815290600101906020018083116101d657829003601f168201915b505050505081565b610203610443565b61020c5f61046f565b565b610216610443565b61015561022382846108a6565b6104be565b63ffffffff84165f90815260016020908152604080832061ffff8716845290915281208054606092919061025b90610800565b80601f016020809104026020016040519081016040528092919081815260200182805461028790610800565b80156102d25780601f106102a9576101008083540402835291602001916102d2565b820191905f5260205f20905b8154815290600101906020018083116102b557829003601f168201915b5050505050905080515f036103205783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152509294506103d29350505050565b5f83900361032f5790506103d2565b600283106103ac5761037584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061041792505050565b8061038384600281886109bf565b604051602001610395939291906109e6565b6040516020818303038152906040529150506103d2565b8383604051639a6d49cd60e01b81526004016103c9929190610a0c565b60405180910390fd5b949350505050565b6103e2610443565b6001600160a01b03811661040b57604051631e4fbdf760e01b81525f60048201526024016103c9565b6104148161046f565b50565b600281015161ffff81166003146101555781604051639a6d49cd60e01b81526004016103c991906106f5565b5f546001600160a01b0316331461020c5760405163118cdaa760e01b81523360048201526024016103c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b815181101561058f576104ef8282815181106104de576104de610a3a565b602002602001015160400151610417565b81818151811061050157610501610a3a565b60200260200101516040015160015f84848151811061052257610522610a3a565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061055957610559610a3a565b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816105869190610a9a565b506001016104c0565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516105bf9190610b5a565b60405180910390a150565b5f8083601f8401126105da575f80fd5b50813567ffffffffffffffff8111156105f1575f80fd5b602083019150836020828501011115610608575f80fd5b9250929050565b5f8060208385031215610620575f80fd5b823567ffffffffffffffff811115610636575f80fd5b610642858286016105ca565b90969095509350505050565b803563ffffffff81168114610661575f80fd5b919050565b803561ffff81168114610661575f80fd5b5f8060408385031215610688575f80fd5b6106918361064e565b915061069f60208401610666565b90509250929050565b5f5b838110156106c25781810151838201526020016106aa565b50505f910152565b5f81518084526106e18160208601602086016106a8565b601f01601f19169290920160200192915050565b602081525f61070760208301846106ca565b9392505050565b5f806020838503121561071f575f80fd5b823567ffffffffffffffff80821115610736575f80fd5b818501915085601f830112610749575f80fd5b813581811115610757575f80fd5b8660208260051b850101111561076b575f80fd5b60209290920196919550909350505050565b5f805f8060608587031215610790575f80fd5b6107998561064e565b93506107a760208601610666565b9250604085013567ffffffffffffffff8111156107c2575f80fd5b6107ce878288016105ca565b95989497509550505050565b5f602082840312156107ea575f80fd5b81356001600160a01b0381168114610707575f80fd5b600181811c9082168061081457607f821691505b60208210810361083257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561086f5761086f610838565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561089e5761089e610838565b604052919050565b5f67ffffffffffffffff808411156108c0576108c0610838565b8360051b60206108d1818301610875565b8681529185019181810190368411156108e8575f80fd5b865b848110156109b357803586811115610900575f80fd5b88016060368290031215610912575f80fd5b61091a61084c565b6109238261064e565b8152610930868301610666565b8682015260408083013589811115610946575f80fd5b9290920191601f368185011261095a575f80fd5b83358a81111561096c5761096c610838565b61097d818301601f19168a01610875565b91508082523689828701011115610992575f80fd5b808986018a8401375f908201890152908201528452509183019183016108ea565b50979650505050505050565b5f80858511156109cd575f80fd5b838611156109d9575f80fd5b5050820193919092039150565b5f84516109f78184602089016106a8565b8201838582375f930192835250909392505050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b5f52603260045260245ffd5b601f821115610a9557805f5260205f20601f840160051c81016020851015610a735750805b601f840160051c820191505b81811015610a92575f8155600101610a7f565b50505b505050565b815167ffffffffffffffff811115610ab457610ab4610838565b610ac881610ac28454610800565b84610a4e565b602080601f831160018114610afb575f8415610ae45750858301515b5f19600386901b1c1916600185901b178555610b52565b5f85815260208120601f198616915b82811015610b2957888601518255948401946001909101908401610b0a565b5085821015610b4657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015610bd557888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052610bc1818601836106ca565b968901969450505090860190600101610b81565b50909897505050505050505056fea2646970667358221220376a930e4412e657017ac2acaaf14d0da05a1e05e50404085164464c23f5889b64736f6c63430008160033","sourceMap":"320:554:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:109;;;;;;:::i;:::-;;:::i;:::-;;538:93:12;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:112;;;:::i;1638:85::-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:112;;;2271:51:137;;2259:2;2244:18;1638:85:112;2125:203:137;1391:156:12;;;;;;:::i;:::-;;:::i;3510:981::-;;;;;;:::i;:::-;;:::i;2543:215:112:-;;;;;;:::i;:::-;;:::i;763:109:132:-;837:28;857:7;;837:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;837:19:132;;-1:-1:-1;;;837:28:132:i;:::-;763:109;;:::o;538:93:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:112:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1391:156:12:-;1531:13:112;:11;:13::i;:::-;1503:37:12::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:12;;-1:-1:-1;3883:20:12;;-1:-1:-1;;;;3883:20:12;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:12;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:12;;-1:-1:-1;;;4170:34:12:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:12;;;;;;;;;:::i;:::-;;;;;;;;3510:981;;;;;;;:::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;2271:51:137::0;2244:18;;2672:31:112::1;2125:203:137::0;2623:91:112::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4631:264:12:-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:12;;;;;;;;:::i;1796:162:112:-;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;;;2271:51:137;2244:18;;1901:40:112;2125: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;2237:514:12:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:12;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;:::-;;;;;;;;2237:514;:::o;14:347:137:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:137;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:409::-;436:6;444;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;553:9;540:23;586:18;578:6;575:30;572:50;;;618:1;615;608:12;572:50;657:58;707:7;698:6;687:9;683:22;657:58;:::i;:::-;734:8;;631:84;;-1:-1:-1;366:409:137;-1:-1:-1;;;;366:409:137:o;780:163::-;847:20;;907:10;896:22;;886:33;;876:61;;933:1;930;923:12;876:61;780:163;;;:::o;948:159::-;1015:20;;1075:6;1064:18;;1054:29;;1044:57;;1097:1;1094;1087:12;1112:256;1178:6;1186;1239:2;1227:9;1218:7;1214:23;1210:32;1207:52;;;1255:1;1252;1245:12;1207:52;1278:28;1296:9;1278:28;:::i;:::-;1268:38;;1325:37;1358:2;1347:9;1343:18;1325:37;:::i;:::-;1315:47;;1112:256;;;;;:::o;1373:250::-;1458:1;1468:113;1482:6;1479:1;1476:13;1468:113;;;1558:11;;;1552:18;1539:11;;;1532:39;1504:2;1497:10;1468:113;;;-1:-1:-1;;1615:1:137;1597:16;;1590:27;1373:250::o;1628:270::-;1669:3;1707:5;1701:12;1734:6;1729:3;1722:19;1750:76;1819:6;1812:4;1807:3;1803:14;1796:4;1789:5;1785:16;1750:76;:::i;:::-;1880:2;1859:15;-1:-1:-1;;1855:29:137;1846:39;;;;1887:4;1842:50;;1628:270;-1:-1:-1;;1628:270:137:o;1903:217::-;2050:2;2039:9;2032:21;2013:4;2070:44;2110:2;2099:9;2095:18;2087:6;2070:44;:::i;:::-;2062:52;1903:217;-1:-1:-1;;;1903:217:137:o;2333:653::-;2457:6;2465;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;2574:9;2561:23;2603:18;2644:2;2636:6;2633:14;2630:34;;;2660:1;2657;2650:12;2630:34;2698:6;2687:9;2683:22;2673:32;;2743:7;2736:4;2732:2;2728:13;2724:27;2714:55;;2765:1;2762;2755:12;2714:55;2805:2;2792:16;2831:2;2823:6;2820:14;2817:34;;;2847:1;2844;2837:12;2817:34;2900:7;2895:2;2885:6;2882:1;2878:14;2874:2;2870:23;2866:32;2863:45;2860:65;;;2921:1;2918;2911:12;2860:65;2952:2;2944:11;;;;;2974:6;;-1:-1:-1;2333:653:137;;-1:-1:-1;;;;2333:653:137:o;2991:553::-;3077:6;3085;3093;3101;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;3193:28;3211:9;3193:28;:::i;:::-;3183:38;;3240:37;3273:2;3262:9;3258:18;3240:37;:::i;:::-;3230:47;;3328:2;3317:9;3313:18;3300:32;3355:18;3347:6;3344:30;3341:50;;;3387:1;3384;3377:12;3341:50;3426:58;3476:7;3467:6;3456:9;3452:22;3426:58;:::i;:::-;2991:553;;;;-1:-1:-1;3503:8:137;-1:-1:-1;;;;2991:553:137:o;3549:286::-;3608:6;3661:2;3649:9;3640:7;3636:23;3632:32;3629:52;;;3677:1;3674;3667:12;3629:52;3703:23;;-1:-1:-1;;;;;3755:31:137;;3745:42;;3735:70;;3801:1;3798;3791:12;3840:380;3919:1;3915:12;;;;3962;;;3983:61;;4037:4;4029:6;4025:17;4015:27;;3983:61;4090:2;4082:6;4079:14;4059:18;4056:38;4053:161;;4136:10;4131:3;4127:20;4124:1;4117:31;4171:4;4168:1;4161:15;4199:4;4196:1;4189:15;4053:161;;3840:380;;;:::o;4225:127::-;4286:10;4281:3;4277:20;4274:1;4267:31;4317:4;4314:1;4307:15;4341:4;4338:1;4331:15;4357:253;4429:2;4423:9;4471:4;4459:17;;4506:18;4491:34;;4527:22;;;4488:62;4485:88;;;4553:18;;:::i;:::-;4589:2;4582:22;4357:253;:::o;4615:275::-;4686:2;4680:9;4751:2;4732:13;;-1:-1:-1;;4728:27:137;4716:40;;4786:18;4771:34;;4807:22;;;4768:62;4765:88;;;4833:18;;:::i;:::-;4869:2;4862:22;4615:275;;-1:-1:-1;4615:275:137:o;4895:1830::-;5085:9;5119:18;5160:2;5152:6;5149:14;5146:40;;;5166:18;;:::i;:::-;5212:6;5209:1;5205:14;5238:4;5262:28;5286:2;5282;5278:11;5262:28;:::i;:::-;5324:19;;;5394:14;;;;5359:12;;;;5431:14;5420:26;;5417:46;;;5459:1;5456;5449:12;5417:46;5483:5;5497:1195;5513:6;5508:3;5505:15;5497:1195;;;5599:3;5586:17;5635:2;5622:11;5619:19;5616:39;;;5651:1;5648;5641:12;5616:39;5678:23;;5746:4;5725:14;5721:23;;;5717:34;5714:54;;;5764:1;5761;5754:12;5714:54;5796:22;;:::i;:::-;5847:21;5865:2;5847:21;:::i;:::-;5838:7;5831:38;5907:30;5933:2;5929;5925:11;5907:30;:::i;:::-;5902:2;5893:7;5889:16;5882:56;5961:2;6011;6007;6003:11;5990:25;6042:2;6034:6;6031:14;6028:34;;;6058:1;6055;6048:12;6028:34;6085:15;;;;;6123:4;6167:14;6154:11;;;6150:32;6140:60;;6196:1;6193;6186:12;6140:60;6236:2;6223:16;6262:2;6258;6255:10;6252:36;;;6268:18;;:::i;:::-;6314:51;6338:11;;;-1:-1:-1;;6334:25:137;6330:34;;6314:51;:::i;:::-;6301:64;;6392:2;6385:5;6378:17;6436:14;6431:2;6426;6422;6418:11;6414:20;6411:40;6408:60;;;6464:1;6461;6454:12;6408:60;6523:2;6518;6514;6510:11;6505:2;6498:5;6494:14;6481:45;6571:1;6550:14;;;6546:23;;6539:34;6593:16;;;6586:31;6630:20;;-1:-1:-1;6670:12:137;;;;5530;;5497:1195;;;-1:-1:-1;6714:5:137;4895:1830;-1:-1:-1;;;;;;;4895:1830:137:o;6730:331::-;6835:9;6846;6888:8;6876:10;6873:24;6870:44;;;6910:1;6907;6900:12;6870:44;6939:6;6929:8;6926:20;6923:40;;;6959:1;6956;6949:12;6923:40;-1:-1:-1;;6985:23:137;;;7030:25;;;;;-1:-1:-1;6730:331:137:o;7066:476::-;7257:3;7295:6;7289:13;7311:66;7370:6;7365:3;7358:4;7350:6;7346:17;7311:66;:::i;:::-;7399:16;;7452:6;7444;7399:16;7424:35;7516:1;7478:18;;7505:13;;;-1:-1:-1;7478:18:137;;7066:476;-1:-1:-1;;;7066:476:137:o;7547:388::-;7704:2;7693:9;7686:21;7743:6;7738:2;7727:9;7723:18;7716:34;7800:6;7792;7787:2;7776:9;7772:18;7759:48;7856:1;7827:22;;;7851:2;7823:31;;;7816:42;;;;7919:2;7898:15;;;-1:-1:-1;;7894:29:137;7879:45;7875:54;;7547:388;-1:-1:-1;7547:388:137:o;7940:127::-;8001:10;7996:3;7992:20;7989:1;7982:31;8032:4;8029:1;8022:15;8056:4;8053:1;8046:15;8197:517;8298:2;8293:3;8290:11;8287:421;;;8334:5;8331:1;8324:16;8378:4;8375:1;8365:18;8448:2;8436:10;8432:19;8429:1;8425:27;8419:4;8415:38;8484:4;8472:10;8469:20;8466:47;;;-1:-1:-1;8507:4:137;8466:47;8562:2;8557:3;8553:12;8550:1;8546:20;8540:4;8536:31;8526:41;;8617:81;8635:2;8628:5;8625:13;8617:81;;;8694:1;8680:16;;8661:1;8650:13;8617:81;;;8621:3;;8287:421;8197:517;;;:::o;8890:1341::-;9014:3;9008:10;9041:18;9033:6;9030:30;9027:56;;;9063:18;;:::i;:::-;9092:96;9181:6;9141:38;9173:4;9167:11;9141:38;:::i;:::-;9135:4;9092:96;:::i;:::-;9243:4;;9300:2;9289:14;;9317:1;9312:662;;;;10018:1;10035:6;10032:89;;;-1:-1:-1;10087:19:137;;;10081:26;10032:89;-1:-1:-1;;8847:1:137;8843:11;;;8839:24;8835:29;8825:40;8871:1;8867:11;;;8822:57;10134:81;;9282:943;;9312:662;8144:1;8137:14;;;8181:4;8168:18;;-1:-1:-1;;9348:20:137;;;9465:236;9479:7;9476:1;9473:14;9465:236;;;9568:19;;;9562:26;9547:42;;9660:27;;;;9628:1;9616:14;;;;9495:19;;9465:236;;;9469:3;9729:6;9720:7;9717:19;9714:201;;;9790:19;;;9784:26;-1:-1:-1;;9873:1:137;9869:14;;;9885:3;9865:24;9861:37;9857:42;9842:58;9827:74;;9714:201;;;9961:1;9952:6;9949:1;9945:14;9941:22;9935:4;9928:36;9282:943;;;;;8890:1341;;:::o;10236:1161::-;10450:4;10479:2;10519;10508:9;10504:18;10549:2;10538:9;10531:21;10572:6;10607;10601:13;10638:6;10630;10623:22;10664:2;10654:12;;10697:2;10686:9;10682:18;10675:25;;10759:2;10749:6;10746:1;10742:14;10731:9;10727:30;10723:39;10797:2;10789:6;10785:15;10818:1;10828:540;10842:6;10839:1;10836:13;10828:540;;;10907:22;;;-1:-1:-1;;10903:36:137;10891:49;;10963:13;;11035:9;;11046:10;11031:26;11016:42;;11105:11;;;11099:18;11119:6;11095:31;11078:15;;;11071:56;11166:11;;11160:18;10999:4;11198:15;;;11191:27;;;11241:47;11272:15;;;11160:18;11241:47;:::i;:::-;11346:12;;;;11231:57;-1:-1:-1;;;11311:15:137;;;;10864:1;10857:9;10828:540;;;-1:-1:-1;11385:6:137;;10236:1161;-1:-1:-1;;;;;;;;10236:1161:137:o","linkReferences":{}},"methodIdentifiers":{"assertOptionsType3(bytes)":"33a6ebd5","combineOptions(uint32,uint16,bytes)":"bc70b354","enforcedOptions(uint32,uint16)":"5535d461","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"applyEnforcedOptions\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"assertOptionsType3\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"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.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"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\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/lib/mock/OptionsType3Mock.sol\":\"OptionsType3Mock\"},\"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/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"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\"]},\"test/lib/mock/OptionsType3Mock.sol\":{\"keccak256\":\"0xca04eb0d0c7d784da255907ec190460ea67779bf0eae08c859e56169693eb76b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://46ddc652b91bee6aaa33452bf5b01aba1f95656f055d1f389fdf49f3f1c5bd13\",\"dweb:/ipfs/QmPZjMBocXzEe3QqJ8ABcSevJqNKPBvgbw4ien2rdMA6ky\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"applyEnforcedOptions","type":"bool"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"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":"bytes","name":"options","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertOptionsType3"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"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."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"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":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."}},"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/lib/mock/OptionsType3Mock.sol":"OptionsType3Mock"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"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"},"test/lib/mock/OptionsType3Mock.sol":{"keccak256":"0xca04eb0d0c7d784da255907ec190460ea67779bf0eae08c859e56169693eb76b","urls":["bzz-raw://46ddc652b91bee6aaa33452bf5b01aba1f95656f055d1f389fdf49f3f1c5bd13","dweb:/ipfs/QmPZjMBocXzEe3QqJ8ABcSevJqNKPBvgbw4ien2rdMA6ky"],"license":"UNLICENSED"}},"version":1},"id":132}