{ "abi": [ { "inputs": [ { "internalType": "address", "name": "_core_bridge_address", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "getCurrentMsg", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "encodedMsg", "type": "bytes" } ], "name": "receiveEncodedMsg", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "chainId", "type": "uint16" }, { "internalType": "bytes32", "name": "applicationAddr", "type": "bytes32" } ], "name": "registerApplicationContracts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "str", "type": "bytes" } ], "name": "sendMsg", "outputs": [ { "internalType": "uint64", "name": "sequence", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50604051610b44380380610b4483398101604081905261003f91610072565b60038054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100a2565b60006020828403121561008457600080fd5b81516001600160a01b038116811461009b57600080fd5b9392505050565b610a93806100b16000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063496d76ff146100515780635f327e1c14610066578063737a3ca414610079578063ff206cf8146100aa575b600080fd5b61006461005f3660046105a2565b6100bf565b005b610064610074366004610635565b610276565b61008c6100873660046105a2565b6102f3565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6100b26103bb565b6040516100a191906106bd565b60015460405163607ec5ef60e11b8152600091829182916001600160a01b03169063c0fd8bde906100f49087906004016106bd565b600060405180830381865afa158015610111573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101399190810190610847565b9250925092508181906101685760405162461bcd60e51b815260040161015f91906106bd565b60405180910390fd5b506080830151606084015161ffff16600090815260026020526040902054146101d35760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420456d69747465722041646472657373210000000000000000604482015260640161015f565b61014083015160009081526004602052604090205460ff16156102385760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c72656164792070726f63657373656400000000000000604482015260640161015f565b61014083015160009081526004602090815260408220805460ff1916600117905560e0850151805161026f9392919091019061044d565b5050505050565b6003546001600160a01b031633146102dc5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f776e65722063616e207265676973746572206e657720636861696044820152626e732160e81b606482015260840161015f565b61ffff909116600090815260026020526040902055565b600180546040516358cd21bf60e11b81526000926001600160a01b0383169263b19a437e9261033592600160a01b90920463ffffffff1691879160040161099f565b6020604051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906109d1565b6001805491925061039691600160a01b900463ffffffff16906109ec565b600160146101000a81548163ffffffff021916908363ffffffff160217905550919050565b6060600080546103ca90610a22565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610a22565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b5050505050905090565b82805461045990610a22565b90600052602060002090601f01602090048101928261047b57600085556104c1565b82601f1061049457805160ff19168380011785556104c1565b828001600101855582156104c1579182015b828111156104c15782518255916020019190600101906104a6565b506104cd9291506104d1565b5090565b5b808211156104cd57600081556001016104d2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561051f5761051f6104e6565b60405290565b604051610160810167ffffffffffffffff8111828210171561051f5761051f6104e6565b604051601f8201601f1916810167ffffffffffffffff81118282101715610572576105726104e6565b604052919050565b600067ffffffffffffffff821115610594576105946104e6565b50601f01601f191660200190565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b8201601f810184136105dc57600080fd5b80356105ef6105ea8261057a565b610549565b81815285602083850101111561060457600080fd5b81602084016020830137600091810160200191909152949350505050565b61ffff8116811461063257600080fd5b50565b6000806040838503121561064857600080fd5b823561065381610622565b946020939093013593505050565b60005b8381101561067c578181015183820152602001610664565b8381111561068b576000848401525b50505050565b600081518084526106a9816020860160208601610661565b601f01601f19169290920160200192915050565b6020815260006106d06020830184610691565b9392505050565b805160ff811681146106e857600080fd5b919050565b805163ffffffff811681146106e857600080fd5b80516106e881610622565b805167ffffffffffffffff811681146106e857600080fd5b600082601f83011261073557600080fd5b81516107436105ea8261057a565b81815284602083860101111561075857600080fd5b610769826020830160208701610661565b949350505050565b600082601f83011261078257600080fd5b8151602067ffffffffffffffff82111561079e5761079e6104e6565b6107ac818360051b01610549565b82815260079290921b840181019181810190868411156107cb57600080fd5b8286015b8481101561082c57608081890312156107e85760008081fd5b6107f06104fc565b81518152848201518582015260406108098184016106d7565b90820152606061081a8382016106d7565b908201528352918301916080016107cf565b509695505050505050565b805180151581146106e857600080fd5b60008060006060848603121561085c57600080fd5b835167ffffffffffffffff8082111561087457600080fd5b90850190610160828803121561088957600080fd5b610891610525565b61089a836106d7565b81526108a8602084016106ed565b60208201526108b9604084016106ed565b60408201526108ca60608401610701565b6060820152608083015160808201526108e560a0840161070c565b60a08201526108f660c084016106d7565b60c082015260e08301518281111561090d57600080fd5b61091989828601610724565b60e08301525061010061092d8185016106ed565b90820152610120838101518381111561094557600080fd5b6109518a828701610771565b91830191909152506101408381015190820152945061097260208701610837565b9350604086015191508082111561098857600080fd5b5061099586828701610724565b9150509250925092565b63ffffffff841681526060602082015260006109be6060830185610691565b905060ff83166040830152949350505050565b6000602082840312156109e357600080fd5b6106d08261070c565b600063ffffffff808316818516808303821115610a1957634e487b7160e01b600052601160045260246000fd5b01949350505050565b600181811c90821680610a3657607f821691505b60208210811415610a5757634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220dca09b4cfafc25b78e152282ddbe06bb71431d32743ce15106254fd727ad285b64736f6c634300080a0033", "sourceMap": "98:1823:0:-:0;;;182:16;;;-1:-1:-1;;;;182:16:0;;;327:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:5;:18;;386:10;-1:-1:-1;;;;;;378:18:0;;;;;;;-1:-1:-1;406:45:0;;;;;-1:-1:-1;;;;;406:45:0;;;;;;;;;;98:1823;;14:290:3;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:3;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:3:o;:::-;98:1823:0;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063496d76ff146100515780635f327e1c14610066578063737a3ca414610079578063ff206cf8146100aa575b600080fd5b61006461005f3660046105a2565b6100bf565b005b610064610074366004610635565b610276565b61008c6100873660046105a2565b6102f3565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6100b26103bb565b6040516100a191906106bd565b60015460405163607ec5ef60e11b8152600091829182916001600160a01b03169063c0fd8bde906100f49087906004016106bd565b600060405180830381865afa158015610111573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101399190810190610847565b9250925092508181906101685760405162461bcd60e51b815260040161015f91906106bd565b60405180910390fd5b506080830151606084015161ffff16600090815260026020526040902054146101d35760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420456d69747465722041646472657373210000000000000000604482015260640161015f565b61014083015160009081526004602052604090205460ff16156102385760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c72656164792070726f63657373656400000000000000604482015260640161015f565b61014083015160009081526004602090815260408220805460ff1916600117905560e0850151805161026f9392919091019061044d565b5050505050565b6003546001600160a01b031633146102dc5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f776e65722063616e207265676973746572206e657720636861696044820152626e732160e81b606482015260840161015f565b61ffff909116600090815260026020526040902055565b600180546040516358cd21bf60e11b81526000926001600160a01b0383169263b19a437e9261033592600160a01b90920463ffffffff1691879160040161099f565b6020604051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906109d1565b6001805491925061039691600160a01b900463ffffffff16906109ec565b600160146101000a81548163ffffffff021916908363ffffffff160217905550919050565b6060600080546103ca90610a22565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610a22565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b5050505050905090565b82805461045990610a22565b90600052602060002090601f01602090048101928261047b57600085556104c1565b82601f1061049457805160ff19168380011785556104c1565b828001600101855582156104c1579182015b828111156104c15782518255916020019190600101906104a6565b506104cd9291506104d1565b5090565b5b808211156104cd57600081556001016104d2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561051f5761051f6104e6565b60405290565b604051610160810167ffffffffffffffff8111828210171561051f5761051f6104e6565b604051601f8201601f1916810167ffffffffffffffff81118282101715610572576105726104e6565b604052919050565b600067ffffffffffffffff821115610594576105946104e6565b50601f01601f191660200190565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b8201601f810184136105dc57600080fd5b80356105ef6105ea8261057a565b610549565b81815285602083850101111561060457600080fd5b81602084016020830137600091810160200191909152949350505050565b61ffff8116811461063257600080fd5b50565b6000806040838503121561064857600080fd5b823561065381610622565b946020939093013593505050565b60005b8381101561067c578181015183820152602001610664565b8381111561068b576000848401525b50505050565b600081518084526106a9816020860160208601610661565b601f01601f19169290920160200192915050565b6020815260006106d06020830184610691565b9392505050565b805160ff811681146106e857600080fd5b919050565b805163ffffffff811681146106e857600080fd5b80516106e881610622565b805167ffffffffffffffff811681146106e857600080fd5b600082601f83011261073557600080fd5b81516107436105ea8261057a565b81815284602083860101111561075857600080fd5b610769826020830160208701610661565b949350505050565b600082601f83011261078257600080fd5b8151602067ffffffffffffffff82111561079e5761079e6104e6565b6107ac818360051b01610549565b82815260079290921b840181019181810190868411156107cb57600080fd5b8286015b8481101561082c57608081890312156107e85760008081fd5b6107f06104fc565b81518152848201518582015260406108098184016106d7565b90820152606061081a8382016106d7565b908201528352918301916080016107cf565b509695505050505050565b805180151581146106e857600080fd5b60008060006060848603121561085c57600080fd5b835167ffffffffffffffff8082111561087457600080fd5b90850190610160828803121561088957600080fd5b610891610525565b61089a836106d7565b81526108a8602084016106ed565b60208201526108b9604084016106ed565b60408201526108ca60608401610701565b6060820152608083015160808201526108e560a0840161070c565b60a08201526108f660c084016106d7565b60c082015260e08301518281111561090d57600080fd5b61091989828601610724565b60e08301525061010061092d8185016106ed565b90820152610120838101518381111561094557600080fd5b6109518a828701610771565b91830191909152506101408381015190820152945061097260208701610837565b9350604086015191508082111561098857600080fd5b5061099586828701610724565b9150509250925092565b63ffffffff841681526060602082015260006109be6060830185610691565b905060ff83166040830152949350505050565b6000602082840312156109e357600080fd5b6106d08261070c565b600063ffffffff808316818516808303821115610a1957634e487b7160e01b600052601160045260246000fd5b01949350505050565b600181811c90821680610a3657607f821691505b60208210811415610a5757634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220dca09b4cfafc25b78e152282ddbe06bb71431d32743ce15106254fd727ad285b64736f6c634300080a0033", "sourceMap": "98:1823:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;633:822;;;;;;:::i;:::-;;:::i;:::-;;1691:228;;;;;;:::i;:::-;;:::i;465:162::-;;;;;;:::i;:::-;;:::i;:::-;;;2425:18:3;2413:31;;;2395:50;;2383:2;2368:18;465:162:0;;;;;;;;1461:95;;;:::i;:::-;;;;;;;:::i;633:822::-;763:11;;:40;;-1:-1:-1;;;763:40:0;;703:22;;;;;;-1:-1:-1;;;;;763:11:0;;:28;;:40;;792:10;;763:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;763:40:0;;;;;;;;;;;;:::i;:::-;702:101;;;;;;1005:5;1012:6;997:22;;;;;-1:-1:-1;;;997:22:0;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1145:17:0;;;;1123;;;;1101:40;;;;;;:21;:40;;;;;;:61;1093:98;;;;-1:-1:-1;;;1093:98:0;;7862:2:3;1093:98:0;;;7844:21:3;7901:2;7881:18;;;7874:30;7940:26;7920:18;;;7913:54;7984:18;;1093:98:0;7660:348:3;1093:98:0;1300:7;;;;1281:27;;;;:18;:27;;;;;;;;1280:28;1272:66;;;;-1:-1:-1;;;1272:66:0;;8215:2:3;1272:66:0;;;8197:21:3;8254:2;8234:18;;;8227:30;8293:27;8273:18;;;8266:55;8338:18;;1272:66:0;8013:349:3;1272:66:0;1367:7;;;;1348:27;;;;:18;:27;;;;;;;:34;;-1:-1:-1;;1348:34:0;1378:4;1348:34;;;1437:10;;;;1416:32;;;;1348:27;1416:32;;;;;;:::i;:::-;;692:763;;;633:822;:::o;1691:228::-;1809:5;;-1:-1:-1;;;;;1809:5:0;1795:10;:19;1787:67;;;;-1:-1:-1;;;1787:67:0;;8569:2:3;1787:67:0;;;8551:21:3;8608:2;8588:18;;;8581:30;8647:34;8627:18;;;8620:62;-1:-1:-1;;;8698:18:3;;;8691:33;8741:19;;1787:67:0;8367:399:3;1787:67:0;1864:30;;;;;;;;:21;:30;;;;;:48;1691:228::o;465:162::-;554:11;;;:41;;-1:-1:-1;;;554:41:0;;516:15;;-1:-1:-1;;;;;554:11:0;;;:26;;:41;;-1:-1:-1;;;581:5:0;;;;;;588:3;;554:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;613:5;;;543:52;;-1:-1:-1;613:7:0;;-1:-1:-1;;;613:5:0;;;;;:7;:::i;:::-;605:5;;:15;;;;;;;;;;;;;;;;;;465:162;;;:::o;1461:95::-;1507:13;1538:11;1531:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1461:95;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:3;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:255::-;476:2;470:9;518:6;506:19;;555:18;540:34;;576:22;;;537:62;534:88;;;602:18;;:::i;664:275::-;735:2;729:9;800:2;781:13;;-1:-1:-1;;777:27:3;765:40;;835:18;820:34;;856:22;;;817:62;814:88;;;882:18;;:::i;:::-;918:2;911:22;664:275;;-1:-1:-1;664:275:3:o;944:186::-;992:4;1025:18;1017:6;1014:30;1011:56;;;1047:18;;:::i;:::-;-1:-1:-1;1113:2:3;1092:15;-1:-1:-1;;1088:29:3;1119:4;1084:40;;944:186::o;1135:671::-;1203:6;1256:2;1244:9;1235:7;1231:23;1227:32;1224:52;;;1272:1;1269;1262:12;1224:52;1312:9;1299:23;1345:18;1337:6;1334:30;1331:50;;;1377:1;1374;1367:12;1331:50;1400:22;;1453:4;1445:13;;1441:27;-1:-1:-1;1431:55:3;;1482:1;1479;1472:12;1431:55;1518:2;1505:16;1543:48;1559:31;1587:2;1559:31;:::i;:::-;1543:48;:::i;:::-;1614:2;1607:5;1600:17;1654:7;1649:2;1644;1640;1636:11;1632:20;1629:33;1626:53;;;1675:1;1672;1665:12;1626:53;1730:2;1725;1721;1717:11;1712:2;1705:5;1701:14;1688:45;1774:1;1753:14;;;1769:2;1749:23;1742:34;;;;1757:5;1135:671;-1:-1:-1;;;;1135:671:3:o;1811:117::-;1896:6;1889:5;1885:18;1878:5;1875:29;1865:57;;1918:1;1915;1908:12;1865:57;1811:117;:::o;1933:313::-;2000:6;2008;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2116:9;2103:23;2135:30;2159:5;2135:30;:::i;:::-;2184:5;2236:2;2221:18;;;;2208:32;;-1:-1:-1;;;1933:313:3:o;2456:258::-;2528:1;2538:113;2552:6;2549:1;2546:13;2538:113;;;2628:11;;;2622:18;2609:11;;;2602:39;2574:2;2567:10;2538:113;;;2669:6;2666:1;2663:13;2660:48;;;2704:1;2695:6;2690:3;2686:16;2679:27;2660:48;;2456:258;;;:::o;2719:::-;2761:3;2799:5;2793:12;2826:6;2821:3;2814:19;2842:63;2898:6;2891:4;2886:3;2882:14;2875:4;2868:5;2864:16;2842:63;:::i;:::-;2959:2;2938:15;-1:-1:-1;;2934:29:3;2925:39;;;;2966:4;2921:50;;2719:258;-1:-1:-1;;2719:258:3:o;2982:220::-;3131:2;3120:9;3113:21;3094:4;3151:45;3192:2;3181:9;3177:18;3169:6;3151:45;:::i;:::-;3143:53;2982:220;-1:-1:-1;;;2982:220:3:o;3430:160::-;3507:13;;3560:4;3549:16;;3539:27;;3529:55;;3580:1;3577;3570:12;3529:55;3430:160;;;:::o;3595:167::-;3673:13;;3726:10;3715:22;;3705:33;;3695:61;;3752:1;3749;3742:12;3767:136;3845:13;;3867:30;3845:13;3867:30;:::i;3908:175::-;3986:13;;4039:18;4028:30;;4018:41;;4008:69;;4073:1;4070;4063:12;4088:428;4141:5;4194:3;4187:4;4179:6;4175:17;4171:27;4161:55;;4212:1;4209;4202:12;4161:55;4241:6;4235:13;4272:48;4288:31;4316:2;4288:31;:::i;4272:48::-;4345:2;4336:7;4329:19;4391:3;4384:4;4379:2;4371:6;4367:15;4363:26;4360:35;4357:55;;;4408:1;4405;4398:12;4357:55;4421:64;4482:2;4475:4;4466:7;4462:18;4455:4;4447:6;4443:17;4421:64;:::i;:::-;4503:7;4088:428;-1:-1:-1;;;;4088:428:3:o;4521:1177::-;4595:5;4648:3;4641:4;4633:6;4629:17;4625:27;4615:55;;4666:1;4663;4656:12;4615:55;4695:6;4689:13;4721:4;4744:18;4740:2;4737:26;4734:52;;;4766:18;;:::i;:::-;4806:36;4838:2;4833;4830:1;4826:10;4822:19;4806:36;:::i;:::-;4876:15;;;4962:1;4958:10;;;;4946:23;;4942:32;;;4907:12;;;;4986:15;;;4983:35;;;5014:1;5011;5004:12;4983:35;5050:2;5042:6;5038:15;5062:607;5078:6;5073:3;5070:15;5062:607;;;5156:4;5150:3;5145;5141:13;5137:24;5134:114;;;5202:1;5231:2;5227;5220:14;5134:114;5274:22;;:::i;:::-;5329:3;5323:10;5316:5;5309:25;5385:2;5380:3;5376:12;5370:19;5365:2;5358:5;5354:14;5347:43;5413:2;5451:41;5488:2;5483:3;5479:12;5451:41;:::i;:::-;5435:14;;;5428:65;5516:2;5554:41;5582:12;;;5554:41;:::i;:::-;5538:14;;;5531:65;5609:18;;5647:12;;;;5104:4;5095:14;5062:607;;;-1:-1:-1;5687:5:3;4521:1177;-1:-1:-1;;;;;;4521:1177:3:o;5703:164::-;5779:13;;5828;;5821:21;5811:32;;5801:60;;5857:1;5854;5847:12;5872:1783;5986:6;5994;6002;6055:2;6043:9;6034:7;6030:23;6026:32;6023:52;;;6071:1;6068;6061:12;6023:52;6104:9;6098:16;6133:18;6174:2;6166:6;6163:14;6160:34;;;6190:1;6187;6180:12;6160:34;6213:22;;;;6269:6;6251:16;;;6247:29;6244:49;;;6289:1;6286;6279:12;6244:49;6315:22;;:::i;:::-;6360:31;6388:2;6360:31;:::i;:::-;6353:5;6346:46;6424:41;6461:2;6457;6453:11;6424:41;:::i;:::-;6419:2;6412:5;6408:14;6401:65;6498:41;6535:2;6531;6527:11;6498:41;:::i;:::-;6493:2;6486:5;6482:14;6475:65;6572:41;6609:2;6605;6601:11;6572:41;:::i;:::-;6567:2;6560:5;6556:14;6549:65;6661:3;6657:2;6653:12;6647:19;6641:3;6634:5;6630:15;6623:44;6700:42;6737:3;6733:2;6729:12;6700:42;:::i;:::-;6694:3;6687:5;6683:15;6676:67;6776:41;6812:3;6808:2;6804:12;6776:41;:::i;:::-;6770:3;6763:5;6759:15;6752:66;6857:3;6853:2;6849:12;6843:19;6887:2;6877:8;6874:16;6871:36;;;6903:1;6900;6893:12;6871:36;6940:55;6987:7;6976:8;6972:2;6968:17;6940:55;:::i;:::-;6934:3;6927:5;6923:15;6916:80;;7015:3;7050:41;7087:2;7083;7079:11;7050:41;:::i;:::-;7034:14;;;7027:65;7111:3;7145:11;;;7139:18;7169:16;;;7166:36;;;7198:1;7195;7188:12;7166:36;7234:76;7302:7;7291:8;7287:2;7283:17;7234:76;:::i;:::-;7218:14;;;7211:100;;;;-1:-1:-1;7330:3:3;7371:11;;;7365:18;7349:14;;;7342:42;7222:5;-1:-1:-1;7427:46:3;7469:2;7454:18;;7427:46;:::i;:::-;7417:56;;7519:2;7508:9;7504:18;7498:25;7482:41;;7548:2;7538:8;7535:16;7532:36;;;7564:1;7561;7554:12;7532:36;;7587:62;7641:7;7630:8;7619:9;7615:24;7587:62;:::i;:::-;7577:72;;;5872:1783;;;;;:::o;8771:392::-;8990:10;8982:6;8978:23;8967:9;8960:42;9038:2;9033;9022:9;9018:18;9011:30;8941:4;9058:45;9099:2;9088:9;9084:18;9076:6;9058:45;:::i;:::-;9050:53;;9151:4;9143:6;9139:17;9134:2;9123:9;9119:18;9112:45;8771:392;;;;;;:::o;9168:206::-;9237:6;9290:2;9278:9;9269:7;9265:23;9261:32;9258:52;;;9306:1;9303;9296:12;9258:52;9329:39;9358:9;9329:39;:::i;9379:325::-;9418:3;9446:10;9483:2;9480:1;9476:10;9513:2;9510:1;9506:10;9544:3;9540:2;9536:12;9531:3;9528:21;9525:144;;;9591:10;9586:3;9582:20;9579:1;9572:31;9626:4;9623:1;9616:15;9654:4;9651:1;9644:15;9525:144;9685:13;;9379:325;-1:-1:-1;;;;9379:325:3:o;9709:380::-;9788:1;9784:12;;;;9831;;;9852:61;;9906:4;9898:6;9894:17;9884:27;;9852:61;9959:2;9951:6;9948:14;9928:18;9925:38;9922:161;;;10005:10;10000:3;9996:20;9993:1;9986:31;10040:4;10037:1;10030:15;10068:4;10065:1;10058:15;9922:161;;9709:380;;;:::o", "linkReferences": {} }, "methodIdentifiers": { "getCurrentMsg()": "ff206cf8", "receiveEncodedMsg(bytes)": "496d76ff", "registerApplicationContracts(uint16,bytes32)": "5f327e1c", "sendMsg(bytes)": "737a3ca4" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_core_bridge_address\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getCurrentMsg\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedMsg\",\"type\":\"bytes\"}],\"name\":\"receiveEncodedMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"applicationAddr\",\"type\":\"bytes32\"}],\"name\":\"registerApplicationContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"str\",\"type\":\"bytes\"}],\"name\":\"sendMsg\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"registerApplicationContracts(uint16,bytes32)\":{\"notice\":\"Registers it's sibling applications on other chains as the only ones that can send this instance messages\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Messenger.sol\":\"Messenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Messenger.sol\":{\"keccak256\":\"0xc1612910472d31c40c466dd0607e3252d9d3ed8fc61cc21cd691d0777f0ea603\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://6aa09e11177d17a247c62d1edfbfdd9a39ecd6adf1916de6699e1a4b8db161a9\",\"dweb:/ipfs/QmeJKe52xxRgTPYAzYGfWxd6etp4FMQf64DDFEjN1kJuaB\"]},\"src/Wormhole/IWormhole.sol\":{\"keccak256\":\"0xa83711083ba6529aeedafc74593865aecece3904dc0ca18b624a3212e038c8f5\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://88e7ef004e8802e44517ddb91ab00669a79ab6814b8bbcb3dc4bbb3d13b3ebd6\",\"dweb:/ipfs/QmXcGqQpUPV9so9RzdYhD2konP679fLCiXEZr44bgGVVJe\"]},\"src/Wormhole/Structs.sol\":{\"keccak256\":\"0xf6067f3a7ac8ccd239a50aa2ef5620ffe31bc86a3757571e13e57a3a0f476b37\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://813db91e92feacdf21da3986e1a59d38befc34103cd09e61d30471c228e3a6f2\",\"dweb:/ipfs/QmWeRrqvbite8YCHu97Lsta1Y3TR9WzQ9k2spaF6S3VQZZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.10+commit.fc410830" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_core_bridge_address", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getCurrentMsg", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "bytes", "name": "encodedMsg", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function", "name": "receiveEncodedMsg" }, { "inputs": [ { "internalType": "uint16", "name": "chainId", "type": "uint16" }, { "internalType": "bytes32", "name": "applicationAddr", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function", "name": "registerApplicationContracts" }, { "inputs": [ { "internalType": "bytes", "name": "str", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function", "name": "sendMsg", "outputs": [ { "internalType": "uint64", "name": "sequence", "type": "uint64" } ] } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": { "registerApplicationContracts(uint16,bytes32)": { "notice": "Registers it's sibling applications on other chains as the only ones that can send this instance messages" } }, "version": 1 } }, "settings": { "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/Messenger.sol": "Messenger" }, "libraries": {} }, "sources": { "src/Messenger.sol": { "keccak256": "0xc1612910472d31c40c466dd0607e3252d9d3ed8fc61cc21cd691d0777f0ea603", "urls": [ "bzz-raw://6aa09e11177d17a247c62d1edfbfdd9a39ecd6adf1916de6699e1a4b8db161a9", "dweb:/ipfs/QmeJKe52xxRgTPYAzYGfWxd6etp4FMQf64DDFEjN1kJuaB" ], "license": "Unlicense" }, "src/Wormhole/IWormhole.sol": { "keccak256": "0xa83711083ba6529aeedafc74593865aecece3904dc0ca18b624a3212e038c8f5", "urls": [ "bzz-raw://88e7ef004e8802e44517ddb91ab00669a79ab6814b8bbcb3dc4bbb3d13b3ebd6", "dweb:/ipfs/QmXcGqQpUPV9so9RzdYhD2konP679fLCiXEZr44bgGVVJe" ], "license": "Apache 2" }, "src/Wormhole/Structs.sol": { "keccak256": "0xf6067f3a7ac8ccd239a50aa2ef5620ffe31bc86a3757571e13e57a3a0f476b37", "urls": [ "bzz-raw://813db91e92feacdf21da3986e1a59d38befc34103cd09e61d30471c228e3a6f2", "dweb:/ipfs/QmWeRrqvbite8YCHu97Lsta1Y3TR9WzQ9k2spaF6S3VQZZ" ], "license": "Apache 2" } }, "version": 1 }, "ast": { "absolutePath": "src/Messenger.sol", "id": 153, "exportedSymbols": { "IWormhole": [ 279 ], "Messenger": [ 152 ], "Structs": [ 329 ] }, "nodeType": "SourceUnit", "src": "37:1885:0", "nodes": [ { "id": 1, "nodeType": "PragmaDirective", "src": "37:23:0", "literals": [ "solidity", "^", "0.8", ".0" ] }, { "id": 2, "nodeType": "ImportDirective", "src": "62:34:0", "absolutePath": "src/Wormhole/IWormhole.sol", "file": "./Wormhole/IWormhole.sol", "nameLocation": "-1:-1:-1", "scope": 153, "sourceUnit": 280, "symbolAliases": [], "unitAlias": "" }, { "id": 152, "nodeType": "ContractDefinition", "src": "98:1823:0", "nodes": [ { "id": 4, "nodeType": "VariableDeclaration", "src": "123:26:0", "constant": false, "mutability": "mutable", "name": "current_msg", "nameLocation": "138:11:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3, "name": "string", "nodeType": "ElementaryTypeName", "src": "123:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "id": 7, "nodeType": "VariableDeclaration", "src": "155:21:0", "constant": false, "mutability": "mutable", "name": "core_bridge", "nameLocation": "165:11:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" }, "typeName": { "id": 6, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5, "name": "IWormhole", "nodeType": "IdentifierPath", "referencedDeclaration": 279, "src": "155:9:0" }, "referencedDeclaration": 279, "src": "155:9:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "visibility": "internal" }, { "id": 10, "nodeType": "VariableDeclaration", "src": "182:16:0", "constant": false, "mutability": "mutable", "name": "nonce", "nameLocation": "189:5:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 8, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "182:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "30", "id": 9, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "197:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "internal" }, { "id": 14, "nodeType": "VariableDeclaration", "src": "204:48:0", "constant": false, "mutability": "mutable", "name": "_applicationContracts", "nameLocation": "231:21:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$", "typeString": "mapping(uint16 => bytes32)" }, "typeName": { "id": 13, "keyType": { "id": 11, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "212:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "Mapping", "src": "204:26:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$", "typeString": "mapping(uint16 => bytes32)" }, "valueType": { "id": 12, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "222:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } }, "visibility": "internal" }, { "id": 16, "nodeType": "VariableDeclaration", "src": "258:13:0", "constant": false, "mutability": "mutable", "name": "owner", "nameLocation": "266:5:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15, "name": "address", "nodeType": "ElementaryTypeName", "src": "258:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "id": 20, "nodeType": "VariableDeclaration", "src": "277:43:0", "constant": false, "mutability": "mutable", "name": "_completedMessages", "nameLocation": "302:18:0", "scope": 152, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "typeName": { "id": 19, "keyType": { "id": 17, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "285:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "277:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { "id": 18, "name": "bool", "nodeType": "ElementaryTypeName", "src": "296:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "visibility": "internal" }, { "id": 37, "nodeType": "FunctionDefinition", "src": "327:131:0", "body": { "id": 36, "nodeType": "Block", "src": "368:90:0", "statements": [ { "expression": { "id": 28, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 25, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16, "src": "378:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 26, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "386:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 27, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "386:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "378:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 29, "nodeType": "ExpressionStatement", "src": "378:18:0" }, { "expression": { "id": 34, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 30, "name": "core_bridge", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "406:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 32, "name": "_core_bridge_address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "430:20:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 31, "name": "IWormhole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, "src": "420:9:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IWormhole_$279_$", "typeString": "type(contract IWormhole)" } }, "id": 33, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "420:31:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "src": "406:45:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "id": 35, "nodeType": "ExpressionStatement", "src": "406:45:0" } ] }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 23, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 22, "mutability": "mutable", "name": "_core_bridge_address", "nameLocation": "347:20:0", "nodeType": "VariableDeclaration", "scope": 37, "src": "339:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21, "name": "address", "nodeType": "ElementaryTypeName", "src": "339:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "338:30:0" }, "returnParameters": { "id": 24, "nodeType": "ParameterList", "parameters": [], "src": "368:0:0" }, "scope": 152, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 60, "nodeType": "FunctionDefinition", "src": "465:162:0", "body": { "id": 59, "nodeType": "Block", "src": "533:94:0", "statements": [ { "expression": { "id": 51, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 44, "name": "sequence", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 42, "src": "543:8:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 47, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "581:5:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 48, "name": "str", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39, "src": "588:3:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "31", "id": 49, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "593:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "expression": { "id": 45, "name": "core_bridge", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "554:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "id": 46, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "publishMessage", "nodeType": "MemberAccess", "referencedDeclaration": 180, "src": "554:26:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint32_$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_uint64_$", "typeString": "function (uint32,bytes memory,uint8) payable external returns (uint64)" } }, "id": 50, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "554:41:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "543:52:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 52, "nodeType": "ExpressionStatement", "src": "543:52:0" }, { "expression": { "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 53, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "605:5:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 56, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 54, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "613:5:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 55, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "619:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "613:7:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "605:15:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 58, "nodeType": "ExpressionStatement", "src": "605:15:0" } ] }, "functionSelector": "737a3ca4", "implemented": true, "kind": "function", "modifiers": [], "name": "sendMsg", "nameLocation": "474:7:0", "parameters": { "id": 40, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39, "mutability": "mutable", "name": "str", "nameLocation": "495:3:0", "nodeType": "VariableDeclaration", "scope": 60, "src": "482:16:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 38, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "482:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "481:18:0" }, "returnParameters": { "id": 43, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 42, "mutability": "mutable", "name": "sequence", "nameLocation": "523:8:0", "nodeType": "VariableDeclaration", "scope": 60, "src": "516:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 41, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "516:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "515:17:0" }, "scope": 152, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 120, "nodeType": "FunctionDefinition", "src": "633:822:0", "body": { "id": 119, "nodeType": "Block", "src": "692:763:0", "statements": [ { "assignments": [ 69, 71, 73 ], "declarations": [ { "constant": false, "id": 69, "mutability": "mutable", "name": "vm", "nameLocation": "723:2:0", "nodeType": "VariableDeclaration", "scope": 119, "src": "703:22:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM" }, "typeName": { "id": 68, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 67, "name": "IWormhole.VM", "nodeType": "IdentifierPath", "referencedDeclaration": 328, "src": "703:12:0" }, "referencedDeclaration": 328, "src": "703:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_storage_ptr", "typeString": "struct Structs.VM" } }, "visibility": "internal" }, { "constant": false, "id": 71, "mutability": "mutable", "name": "valid", "nameLocation": "732:5:0", "nodeType": "VariableDeclaration", "scope": 119, "src": "727:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 70, "name": "bool", "nodeType": "ElementaryTypeName", "src": "727:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 73, "mutability": "mutable", "name": "reason", "nameLocation": "753:6:0", "nodeType": "VariableDeclaration", "scope": 119, "src": "739:20:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 72, "name": "string", "nodeType": "ElementaryTypeName", "src": "739:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "id": 78, "initialValue": { "arguments": [ { "id": 76, "name": "encodedMsg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, "src": "792:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 74, "name": "core_bridge", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "763:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IWormhole_$279", "typeString": "contract IWormhole" } }, "id": 75, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "parseAndVerifyVM", "nodeType": "MemberAccess", "referencedDeclaration": 192, "src": "763:28:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_struct$_VM_$328_memory_ptr_$_t_bool_$_t_string_memory_ptr_$", "typeString": "function (bytes memory) view external returns (struct Structs.VM memory,bool,string memory)" } }, "id": 77, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "763:40:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_struct$_VM_$328_memory_ptr_$_t_bool_$_t_string_memory_ptr_$", "typeString": "tuple(struct Structs.VM memory,bool,string memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "702:101:0" }, { "expression": { "arguments": [ { "id": 80, "name": "valid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 71, "src": "1005:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 81, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "1012:6:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 79, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "997:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 82, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "997:22:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 83, "nodeType": "ExpressionStatement", "src": "997:22:0" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 91, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 85, "name": "_applicationContracts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14, "src": "1101:21:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$", "typeString": "mapping(uint16 => bytes32)" } }, "id": 88, "indexExpression": { "expression": { "id": 86, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1123:2:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM memory" } }, "id": 87, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "emitterChainId", "nodeType": "MemberAccess", "referencedDeclaration": 311, "src": "1123:17:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1101:40:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 89, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1145:2:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM memory" } }, "id": 90, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "emitterAddress", "nodeType": "MemberAccess", "referencedDeclaration": 313, "src": "1145:17:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1101:61:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "496e76616c696420456d6974746572204164647265737321", "id": 92, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1164:26:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f496f877e2734cc33859d6eebf6eb783eb0c07a93151b05d0dc70cb8571cfab1", "typeString": "literal_string \"Invalid Emitter Address!\"" }, "value": "Invalid Emitter Address!" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f496f877e2734cc33859d6eebf6eb783eb0c07a93151b05d0dc70cb8571cfab1", "typeString": "literal_string \"Invalid Emitter Address!\"" } ], "id": 84, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1093:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 93, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1093:98:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 94, "nodeType": "ExpressionStatement", "src": "1093:98:0" }, { "expression": { "arguments": [ { "id": 100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1280:28:0", "subExpression": { "baseExpression": { "id": 96, "name": "_completedMessages", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20, "src": "1281:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 99, "indexExpression": { "expression": { "id": 97, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1300:2:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM memory" } }, "id": 98, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", "referencedDeclaration": 327, "src": "1300:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1281:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4d65737361676520616c72656164792070726f636573736564", "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1310:27:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ce52e83d839057c6eded6c3ade48bb15cfa535fddf47c137ba979ab4aea203cc", "typeString": "literal_string \"Message already processed\"" }, "value": "Message already processed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ce52e83d839057c6eded6c3ade48bb15cfa535fddf47c137ba979ab4aea203cc", "typeString": "literal_string \"Message already processed\"" } ], "id": 95, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1272:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1272:66:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 103, "nodeType": "ExpressionStatement", "src": "1272:66:0" }, { "expression": { "id": 109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 104, "name": "_completedMessages", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20, "src": "1348:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 107, "indexExpression": { "expression": { "id": 105, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1367:2:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM memory" } }, "id": 106, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", "referencedDeclaration": 327, "src": "1367:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1348:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1378:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1348:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 110, "nodeType": "ExpressionStatement", "src": "1348:34:0" }, { "expression": { "id": 117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 111, "name": "current_msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4, "src": "1416:11:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "id": 114, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1437:2:0", "typeDescriptions": { "typeIdentifier": "t_struct$_VM_$328_memory_ptr", "typeString": "struct Structs.VM memory" } }, "id": 115, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "payload", "nodeType": "MemberAccess", "referencedDeclaration": 319, "src": "1437:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1430:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { "id": 112, "name": "string", "nodeType": "ElementaryTypeName", "src": "1430:6:0", "typeDescriptions": {} } }, "id": 116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1430:18:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1416:32:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 118, "nodeType": "ExpressionStatement", "src": "1416:32:0" } ] }, "functionSelector": "496d76ff", "implemented": true, "kind": "function", "modifiers": [], "name": "receiveEncodedMsg", "nameLocation": "642:17:0", "parameters": { "id": 63, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 62, "mutability": "mutable", "name": "encodedMsg", "nameLocation": "673:10:0", "nodeType": "VariableDeclaration", "scope": 120, "src": "660:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 61, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "660:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "659:25:0" }, "returnParameters": { "id": 64, "nodeType": "ParameterList", "parameters": [], "src": "692:0:0" }, "scope": 152, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 128, "nodeType": "FunctionDefinition", "src": "1461:95:0", "body": { "id": 127, "nodeType": "Block", "src": "1521:35:0", "statements": [ { "expression": { "id": 125, "name": "current_msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4, "src": "1538:11:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 124, "id": 126, "nodeType": "Return", "src": "1531:18:0" } ] }, "functionSelector": "ff206cf8", "implemented": true, "kind": "function", "modifiers": [], "name": "getCurrentMsg", "nameLocation": "1470:13:0", "parameters": { "id": 121, "nodeType": "ParameterList", "parameters": [], "src": "1483:2:0" }, "returnParameters": { "id": 124, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 123, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 128, "src": "1507:13:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 122, "name": "string", "nodeType": "ElementaryTypeName", "src": "1507:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1506:15:0" }, "scope": 152, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 151, "nodeType": "FunctionDefinition", "src": "1691:228:0", "body": { "id": 150, "nodeType": "Block", "src": "1777:142:0", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 137, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1795:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "1795:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16, "src": "1809:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1795:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4f6e6c79206f776e65722063616e207265676973746572206e657720636861696e7321", "id": 141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1816:37:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_698f093739048e0d0d04d257a772e914828254033190db3d927fdda8176c85a9", "typeString": "literal_string \"Only owner can register new chains!\"" }, "value": "Only owner can register new chains!" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_698f093739048e0d0d04d257a772e914828254033190db3d927fdda8176c85a9", "typeString": "literal_string \"Only owner can register new chains!\"" } ], "id": 136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1787:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1787:67:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 143, "nodeType": "ExpressionStatement", "src": "1787:67:0" }, { "expression": { "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 144, "name": "_applicationContracts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14, "src": "1864:21:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$", "typeString": "mapping(uint16 => bytes32)" } }, "id": 146, "indexExpression": { "id": 145, "name": "chainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 131, "src": "1886:7:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1864:30:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 147, "name": "applicationAddr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 133, "src": "1897:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "1864:48:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 149, "nodeType": "ExpressionStatement", "src": "1864:48:0" } ] }, "documentation": { "id": 129, "nodeType": "StructuredDocumentation", "src": "1561:125:0", "text": "Registers it's sibling applications on other chains as the only ones that can send this instance messages" }, "functionSelector": "5f327e1c", "implemented": true, "kind": "function", "modifiers": [], "name": "registerApplicationContracts", "nameLocation": "1700:28:0", "parameters": { "id": 134, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 131, "mutability": "mutable", "name": "chainId", "nameLocation": "1736:7:0", "nodeType": "VariableDeclaration", "scope": 151, "src": "1729:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 130, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "1729:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 133, "mutability": "mutable", "name": "applicationAddr", "nameLocation": "1753:15:0", "nodeType": "VariableDeclaration", "scope": 151, "src": "1745:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 132, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1745:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "1728:41:0" }, "returnParameters": { "id": 135, "nodeType": "ParameterList", "parameters": [], "src": "1777:0:0" }, "scope": 152, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, "baseContracts": [], "canonicalName": "Messenger", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 152 ], "name": "Messenger", "nameLocation": "107:9:0", "scope": 153, "usedErrors": [] } ], "license": "Unlicense" }, "id": 0 }