xdapp-book/projects/messenger/chains/evm/out/Messenger.sol/Messenger.json

2156 lines
101 KiB
JSON
Raw Normal View History

2022-07-05 08:37:49 -07:00
{
"abi": [
{
2022-12-18 22:27:59 -08:00
"inputs": [
{
"internalType": "address",
"name": "_core_bridge_address",
"type": "address"
}
],
2022-07-05 08:37:49 -07:00
"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": {
2022-12-18 22:27:59 -08:00
"object": "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50604051610b44380380610b4483398101604081905261003f91610072565b60038054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100a2565b60006020828403121561008457600080fd5b81516001600160a01b038116811461009b57600080fd5b9392505050565b610a93806100b16000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063496d76ff146100515780635f327e1c14610066578063737a3ca414610079578063ff206cf8146100aa575b600080fd5b61006461005f3660046105a2565b6100bf565b005b610064610074366004610635565b610276565b61008c6100873660046105a2565b6102f3565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6100b26103bb565b6040516100a191906106bd565b60015460405163607ec5ef60e11b8152600091829182916001600160a01b03169063c0fd8bde906100f49087906004016106bd565b600060405180830381865afa158015610111573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101399190810190610847565b9250925092508181906101685760405162461bcd60e51b815260040161015f91906106bd565b60405180910390fd5b506080830151606084015161ffff16600090815260026020526040902054146101d35760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420456d69747465722041646472657373210000000000000000604482015260640161015f565b61014083015160009081526004602052604090205460ff16156102385760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c72656164792070726f63657373656400000000000000604482015260640161015f565b61014083015160009081526004602090815260408220805460ff1916600117905560e0850151805161026f9392919091019061044d565b5050505050565b6003546001600160a01b031633146102dc5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f776e65722063616e207265676973746572206e657720636861696044820152626e732160e81b606482015260840161015f565b61ffff909116600090815260026020526040902055565b600180546040516358cd21bf60e11b81526000926001600160a01b0383169263b19a437e9261033592600160a01b90920463ffffffff1691879160040161099f565b6020604051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906109d1565b6001805491925061039691600160a01b900463ffffffff16906109ec565b600160146101000a81548163ffffffff021916908363ffffffff160217905550919050565b6060600080546103ca90610a22565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610a22565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b5050505050905090565b82805461045990610a22565b90600052602060002090601f01602090048101928261047b57600085556104c1565b82601f1061049457805160ff19168380011785556104c1565b828001600101855582156104c1579182015b828111156104c15782518255916020019190600101906104a6565b506104cd9291506104d1565b5090565b5b808211156104cd57600081556001016104d2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561051f5761051f6104e6565b60405290565b604051610160810167ffffffffffffffff8111828210171561051f5761051f6104e6565b604051601f8201601f1916810167ffffffffffffffff81118282101715610572576105726104e6565b604052919050565b600067ffffffffffffffff821115610594576105946104e6565b50601f01601f191660200190565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b8201601f810184136105dc57600080fd5b80356105ef6105ea8261057a565b610549565b81815285602083850101111561060457600080fd5b81602084016020830137600091810160200191909152949350505050565b61ffff8116811461063257600080fd5b50565b6000806040838503121561064857600080fd5b823561065381610622565b946020939093013593505050565b60005b8381101561067c578181015183820152602001610664565b8381111561068b576000848401525b50505050565b600081518084526106a9816020860160208601610661565b601f01601f19169290920160200192915050565b6020815260006106d06020830184610691565b9392505050565b805160ff811681146106e857600080fd5b919050565b805163ffffffff811681146106e857600080fd5b80516106e881610622565b805167ffffffffffffffff811681146106e857600080fd5b600082601f83011261073557600080fd5b81516107436105ea8261057a565b8181
"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;;;;;;",
2022-07-05 08:37:49 -07:00
"linkReferences": {}
},
"deployedBytecode": {
2022-12-18 22:27:59 -08:00
"object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063496d76ff146100515780635f327e1c14610066578063737a3ca414610079578063ff206cf8146100aa575b600080fd5b61006461005f3660046105a2565b6100bf565b005b610064610074366004610635565b610276565b61008c6100873660046105a2565b6102f3565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6100b26103bb565b6040516100a191906106bd565b60015460405163607ec5ef60e11b8152600091829182916001600160a01b03169063c0fd8bde906100f49087906004016106bd565b600060405180830381865afa158015610111573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101399190810190610847565b9250925092508181906101685760405162461bcd60e51b815260040161015f91906106bd565b60405180910390fd5b506080830151606084015161ffff16600090815260026020526040902054146101d35760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420456d69747465722041646472657373210000000000000000604482015260640161015f565b61014083015160009081526004602052604090205460ff16156102385760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c72656164792070726f63657373656400000000000000604482015260640161015f565b61014083015160009081526004602090815260408220805460ff1916600117905560e0850151805161026f9392919091019061044d565b5050505050565b6003546001600160a01b031633146102dc5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f776e65722063616e207265676973746572206e657720636861696044820152626e732160e81b606482015260840161015f565b61ffff909116600090815260026020526040902055565b600180546040516358cd21bf60e11b81526000926001600160a01b0383169263b19a437e9261033592600160a01b90920463ffffffff1691879160040161099f565b6020604051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906109d1565b6001805491925061039691600160a01b900463ffffffff16906109ec565b600160146101000a81548163ffffffff021916908363ffffffff160217905550919050565b6060600080546103ca90610a22565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610a22565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b5050505050905090565b82805461045990610a22565b90600052602060002090601f01602090048101928261047b57600085556104c1565b82601f1061049457805160ff19168380011785556104c1565b828001600101855582156104c1579182015b828111156104c15782518255916020019190600101906104a6565b506104cd9291506104d1565b5090565b5b808211156104cd57600081556001016104d2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561051f5761051f6104e6565b60405290565b604051610160810167ffffffffffffffff8111828210171561051f5761051f6104e6565b604051601f8201601f1916810167ffffffffffffffff81118282101715610572576105726104e6565b604052919050565b600067ffffffffffffffff821115610594576105946104e6565b50601f01601f191660200190565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b8201601f810184136105dc57600080fd5b80356105ef6105ea8261057a565b610549565b81815285602083850101111561060457600080fd5b81602084016020830137600091810160200191909152949350505050565b61ffff8116811461063257600080fd5b50565b6000806040838503121561064857600080fd5b823561065381610622565b946020939093013593505050565b60005b8381101561067c578181015183820152602001610664565b8381111561068b576000848401525b50505050565b600081518084526106a9816020860160208601610661565b601f01601f19169290920160200192915050565b6020815260006106d06020830184610691565b9392505050565b805160ff811681146106e857600080fd5b919050565b805163ffffffff811681146106e857600080fd5b80516106e881610622565b805167ffffffffffffffff811681146106e857600080fd5b600082601f83011261073557600080fd5b81516107436105ea8261057a565b81815284602083860101111561075857600080fd5b610769826020830160208701610661565b949350505050565b600082601f83011261078257600080fd5b8151602067ffffffffffffffff82111561079e5761079e6104e6565b6107ac818360051b01610549565b82815260079290921b840181019181810190868411156107cb57600080fd5b8286015b8481101561082c57608081890312156107e85760008081fd5b6107f06104fc565b815181528482
"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;
2022-07-05 08:37:49 -07:00
"linkReferences": {}
},
"methodIdentifiers": {
"getCurrentMsg()": "ff206cf8",
"receiveEncodedMsg(bytes)": "496d76ff",
"registerApplicationContracts(uint16,bytes32)": "5f327e1c",
"sendMsg(bytes)": "737a3ca4"
},
2022-12-18 22:27:59 -08:00
"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
},
2022-07-05 08:37:49 -07:00
"ast": {
"absolutePath": "src/Messenger.sol",
2022-12-18 22:27:59 -08:00
"id": 153,
2022-07-05 08:37:49 -07:00
"exportedSymbols": {
"IWormhole": [
2022-12-18 22:27:59 -08:00
279
2022-07-05 08:37:49 -07:00
],
"Messenger": [
2022-12-18 22:27:59 -08:00
152
2022-07-05 08:37:49 -07:00
],
"Structs": [
2022-12-18 22:27:59 -08:00
329
2022-07-05 08:37:49 -07:00
]
},
"nodeType": "SourceUnit",
2022-12-18 22:27:59 -08:00
"src": "37:1885:0",
2022-07-05 08:37:49 -07:00
"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",
2022-12-18 22:27:59 -08:00
"scope": 153,
"sourceUnit": 280,
2022-07-05 08:37:49 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
2022-12-18 22:27:59 -08:00
"id": 152,
2022-07-05 08:37:49 -07:00
"nodeType": "ContractDefinition",
2022-12-18 22:27:59 -08:00
"src": "98:1823:0",
2022-07-05 08:37:49 -07:00
"nodes": [
{
"id": 4,
"nodeType": "VariableDeclaration",
"src": "123:26:0",
"constant": false,
"mutability": "mutable",
"name": "current_msg",
"nameLocation": "138:11:0",
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"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"
},
{
2022-12-18 22:27:59 -08:00
"id": 7,
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"src": "155:21:0",
2022-07-05 08:37:49 -07:00
"constant": false,
"mutability": "mutable",
"name": "core_bridge",
2022-12-18 22:27:59 -08:00
"nameLocation": "165:11:0",
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_contract$_IWormhole_$279",
2022-07-05 08:37:49 -07:00
"typeString": "contract IWormhole"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 6,
2022-07-05 08:37:49 -07:00
"nodeType": "UserDefinedTypeName",
"pathNode": {
2022-12-18 22:27:59 -08:00
"id": 5,
2022-07-05 08:37:49 -07:00
"name": "IWormhole",
"nodeType": "IdentifierPath",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 279,
"src": "155:9:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 279,
"src": "155:9:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_contract$_IWormhole_$279",
2022-07-05 08:37:49 -07:00
"typeString": "contract IWormhole"
}
},
"visibility": "internal"
},
{
2022-12-18 22:27:59 -08:00
"id": 10,
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"src": "182:16:0",
2022-07-05 08:37:49 -07:00
"constant": false,
"mutability": "mutable",
"name": "nonce",
2022-12-18 22:27:59 -08:00
"nameLocation": "189:5:0",
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 8,
2022-07-05 08:37:49 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "182:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": {
"hexValue": "30",
2022-12-18 22:27:59 -08:00
"id": 9,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "197:1:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"visibility": "internal"
},
{
2022-12-18 22:27:59 -08:00
"id": 14,
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"src": "204:48:0",
2022-07-05 08:37:49 -07:00
"constant": false,
"mutability": "mutable",
"name": "_applicationContracts",
2022-12-18 22:27:59 -08:00
"nameLocation": "231:21:0",
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$",
"typeString": "mapping(uint16 => bytes32)"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 13,
2022-07-05 08:37:49 -07:00
"keyType": {
2022-12-18 22:27:59 -08:00
"id": 11,
2022-07-05 08:37:49 -07:00
"name": "uint16",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "212:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"nodeType": "Mapping",
2022-12-18 22:27:59 -08:00
"src": "204:26:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$",
"typeString": "mapping(uint16 => bytes32)"
},
"valueType": {
2022-12-18 22:27:59 -08:00
"id": 12,
2022-07-05 08:37:49 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "222:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
},
"visibility": "internal"
},
{
2022-12-18 22:27:59 -08:00
"id": 16,
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"src": "258:13:0",
2022-07-05 08:37:49 -07:00
"constant": false,
"mutability": "mutable",
"name": "owner",
2022-12-18 22:27:59 -08:00
"nameLocation": "266:5:0",
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 15,
2022-07-05 08:37:49 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "258:7:0",
2022-07-05 08:37:49 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
2022-12-18 22:27:59 -08:00
"id": 20,
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"src": "277:43:0",
2022-07-05 08:37:49 -07:00
"constant": false,
"mutability": "mutable",
"name": "_completedMessages",
2022-12-18 22:27:59 -08:00
"nameLocation": "302:18:0",
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 19,
2022-07-05 08:37:49 -07:00
"keyType": {
2022-12-18 22:27:59 -08:00
"id": 17,
2022-07-05 08:37:49 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "285:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
2022-12-18 22:27:59 -08:00
"src": "277:24:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueType": {
2022-12-18 22:27:59 -08:00
"id": 18,
2022-07-05 08:37:49 -07:00
"name": "bool",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "296:4:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"visibility": "internal"
},
{
2022-12-18 22:27:59 -08:00
"id": 37,
2022-07-05 08:37:49 -07:00
"nodeType": "FunctionDefinition",
2022-12-18 22:27:59 -08:00
"src": "327:131:0",
2022-07-05 08:37:49 -07:00
"body": {
2022-12-18 22:27:59 -08:00
"id": 36,
2022-07-05 08:37:49 -07:00
"nodeType": "Block",
2022-12-18 22:27:59 -08:00
"src": "368:90:0",
2022-07-05 08:37:49 -07:00
"statements": [
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 28,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
2022-12-18 22:27:59 -08:00
"id": 25,
2022-07-05 08:37:49 -07:00
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 16,
"src": "378:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 26,
2022-07-05 08:37:49 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2022-12-18 22:27:59 -08:00
"src": "386:3:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2022-12-18 22:27:59 -08:00
"id": 27,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"src": "386:10:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2022-12-18 22:27:59 -08:00
"src": "378:18:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2022-12-18 22:27:59 -08:00
"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,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "406:45:0"
2022-07-05 08:37:49 -07:00
}
]
},
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"parameters": {
2022-12-18 22:27:59 -08:00
"id": 23,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
2022-12-18 22:27:59 -08:00
"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"
2022-07-05 08:37:49 -07:00
},
"returnParameters": {
2022-12-18 22:27:59 -08:00
"id": 24,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [],
2022-12-18 22:27:59 -08:00
"src": "368:0:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
2022-12-18 22:27:59 -08:00
"id": 60,
2022-07-05 08:37:49 -07:00
"nodeType": "FunctionDefinition",
2022-12-18 22:27:59 -08:00
"src": "465:162:0",
2022-07-05 08:37:49 -07:00
"body": {
2022-12-18 22:27:59 -08:00
"id": 59,
2022-07-05 08:37:49 -07:00
"nodeType": "Block",
2022-12-18 22:27:59 -08:00
"src": "533:94:0",
2022-07-05 08:37:49 -07:00
"statements": [
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 51,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
2022-12-18 22:27:59 -08:00
"id": 44,
2022-07-05 08:37:49 -07:00
"name": "sequence",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 42,
"src": "543:8:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
2022-12-18 22:27:59 -08:00
"id": 47,
2022-07-05 08:37:49 -07:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 10,
"src": "581:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
{
2022-12-18 22:27:59 -08:00
"id": 48,
2022-07-05 08:37:49 -07:00
"name": "str",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 39,
"src": "588:3:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"hexValue": "31",
2022-12-18 22:27:59 -08:00
"id": 49,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "593:1:0",
2022-07-05 08:37:49 -07:00
"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": {
2022-12-18 22:27:59 -08:00
"id": 45,
2022-07-05 08:37:49 -07:00
"name": "core_bridge",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 7,
"src": "554:11:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_contract$_IWormhole_$279",
2022-07-05 08:37:49 -07:00
"typeString": "contract IWormhole"
}
},
2022-12-18 22:27:59 -08:00
"id": 46,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "publishMessage",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 180,
"src": "554:26:0",
2022-07-05 08:37:49 -07:00
"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)"
}
},
2022-12-18 22:27:59 -08:00
"id": 50,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "554:41:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
2022-12-18 22:27:59 -08:00
"src": "543:52:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
2022-12-18 22:27:59 -08:00
"id": 52,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "543:52:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 57,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
2022-12-18 22:27:59 -08:00
"id": 53,
2022-07-05 08:37:49 -07:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 10,
"src": "605:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2022-12-18 22:27:59 -08:00
"id": 56,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2022-12-18 22:27:59 -08:00
"id": 54,
2022-07-05 08:37:49 -07:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 10,
"src": "613:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"hexValue": "31",
2022-12-18 22:27:59 -08:00
"id": 55,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "619:1:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
2022-12-18 22:27:59 -08:00
"src": "613:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2022-12-18 22:27:59 -08:00
"src": "605:15:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2022-12-18 22:27:59 -08:00
"id": 58,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "605:15:0"
2022-07-05 08:37:49 -07:00
}
]
},
"functionSelector": "737a3ca4",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sendMsg",
2022-12-18 22:27:59 -08:00
"nameLocation": "474:7:0",
2022-07-05 08:37:49 -07:00
"parameters": {
2022-12-18 22:27:59 -08:00
"id": 40,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 39,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "str",
2022-12-18 22:27:59 -08:00
"nameLocation": "495:3:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 60,
"src": "482:16:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 38,
2022-07-05 08:37:49 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "482:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"src": "481:18:0"
2022-07-05 08:37:49 -07:00
},
"returnParameters": {
2022-12-18 22:27:59 -08:00
"id": 43,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 42,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "sequence",
2022-12-18 22:27:59 -08:00
"nameLocation": "523:8:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 60,
"src": "516:15:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 41,
2022-07-05 08:37:49 -07:00
"name": "uint64",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "516:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"src": "515:17:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
2022-12-18 22:27:59 -08:00
"id": 120,
2022-07-05 08:37:49 -07:00
"nodeType": "FunctionDefinition",
2022-12-18 22:27:59 -08:00
"src": "633:822:0",
2022-07-05 08:37:49 -07:00
"body": {
2022-12-18 22:27:59 -08:00
"id": 119,
2022-07-05 08:37:49 -07:00
"nodeType": "Block",
2022-12-18 22:27:59 -08:00
"src": "692:763:0",
2022-07-05 08:37:49 -07:00
"statements": [
{
"assignments": [
2022-12-18 22:27:59 -08:00
69,
71,
73
2022-07-05 08:37:49 -07:00
],
"declarations": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 69,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "vm",
2022-12-18 22:27:59 -08:00
"nameLocation": "723:2:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 119,
"src": "703:22:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 68,
2022-07-05 08:37:49 -07:00
"nodeType": "UserDefinedTypeName",
"pathNode": {
2022-12-18 22:27:59 -08:00
"id": 67,
2022-07-05 08:37:49 -07:00
"name": "IWormhole.VM",
"nodeType": "IdentifierPath",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 328,
"src": "703:12:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 328,
"src": "703:12:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_storage_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM"
}
},
"visibility": "internal"
},
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 71,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "valid",
2022-12-18 22:27:59 -08:00
"nameLocation": "732:5:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 119,
"src": "727:10:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 70,
2022-07-05 08:37:49 -07:00
"name": "bool",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "727:4:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 73,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "reason",
2022-12-18 22:27:59 -08:00
"nameLocation": "753:6:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 119,
"src": "739:20:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 72,
2022-07-05 08:37:49 -07:00
"name": "string",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "739:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"id": 78,
2022-07-05 08:37:49 -07:00
"initialValue": {
"arguments": [
{
2022-12-18 22:27:59 -08:00
"id": 76,
2022-07-05 08:37:49 -07:00
"name": "encodedMsg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 62,
"src": "792:10:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
2022-12-18 22:27:59 -08:00
"id": 74,
2022-07-05 08:37:49 -07:00
"name": "core_bridge",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 7,
"src": "763:11:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_contract$_IWormhole_$279",
2022-07-05 08:37:49 -07:00
"typeString": "contract IWormhole"
}
},
2022-12-18 22:27:59 -08:00
"id": 75,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "parseAndVerifyVM",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 192,
"src": "763:28:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_struct$_VM_$328_memory_ptr_$_t_bool_$_t_string_memory_ptr_$",
2022-07-05 08:37:49 -07:00
"typeString": "function (bytes memory) view external returns (struct Structs.VM memory,bool,string memory)"
}
},
2022-12-18 22:27:59 -08:00
"id": 77,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "763:40:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_tuple$_t_struct$_VM_$328_memory_ptr_$_t_bool_$_t_string_memory_ptr_$",
2022-07-05 08:37:49 -07:00
"typeString": "tuple(struct Structs.VM memory,bool,string memory)"
}
},
"nodeType": "VariableDeclarationStatement",
2022-12-18 22:27:59 -08:00
"src": "702:101:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
"arguments": [
{
2022-12-18 22:27:59 -08:00
"id": 80,
2022-07-05 08:37:49 -07:00
"name": "valid",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 71,
"src": "1005:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
2022-12-18 22:27:59 -08:00
"id": 81,
2022-07-05 08:37:49 -07:00
"name": "reason",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 73,
"src": "1012:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
2022-12-18 22:27:59 -08:00
"id": 79,
2022-07-05 08:37:49 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2022-12-18 22:27:59 -08:00
"src": "997:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2022-12-18 22:27:59 -08:00
"id": 82,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "997:22:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2022-12-18 22:27:59 -08:00
"id": 83,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "997:22:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
2022-12-18 22:27:59 -08:00
"id": 91,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
2022-12-18 22:27:59 -08:00
"id": 85,
2022-07-05 08:37:49 -07:00
"name": "_applicationContracts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 14,
"src": "1101:21:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$",
"typeString": "mapping(uint16 => bytes32)"
}
},
2022-12-18 22:27:59 -08:00
"id": 88,
2022-07-05 08:37:49 -07:00
"indexExpression": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 86,
2022-07-05 08:37:49 -07:00
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 69,
"src": "1123:2:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM memory"
}
},
2022-12-18 22:27:59 -08:00
"id": 87,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "emitterChainId",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 311,
"src": "1123:17:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2022-12-18 22:27:59 -08:00
"src": "1101:40:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 89,
2022-07-05 08:37:49 -07:00
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 69,
"src": "1145:2:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM memory"
}
},
2022-12-18 22:27:59 -08:00
"id": 90,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "emitterAddress",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 313,
"src": "1145:17:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2022-12-18 22:27:59 -08:00
"src": "1101:61:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "496e76616c696420456d6974746572204164647265737321",
2022-12-18 22:27:59 -08:00
"id": 92,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "1164:26:0",
2022-07-05 08:37:49 -07:00
"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!\""
}
],
2022-12-18 22:27:59 -08:00
"id": 84,
2022-07-05 08:37:49 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2022-12-18 22:27:59 -08:00
"src": "1093:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2022-12-18 22:27:59 -08:00
"id": 93,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "1093:98:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2022-12-18 22:27:59 -08:00
"id": 94,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1093:98:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
"arguments": [
{
2022-12-18 22:27:59 -08:00
"id": 100,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
2022-12-18 22:27:59 -08:00
"src": "1280:28:0",
2022-07-05 08:37:49 -07:00
"subExpression": {
"baseExpression": {
2022-12-18 22:27:59 -08:00
"id": 96,
2022-07-05 08:37:49 -07:00
"name": "_completedMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 20,
"src": "1281:18:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
2022-12-18 22:27:59 -08:00
"id": 99,
2022-07-05 08:37:49 -07:00
"indexExpression": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 97,
2022-07-05 08:37:49 -07:00
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 69,
"src": "1300:2:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM memory"
}
},
2022-12-18 22:27:59 -08:00
"id": 98,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "hash",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 327,
"src": "1300:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2022-12-18 22:27:59 -08:00
"src": "1281:27:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4d65737361676520616c72656164792070726f636573736564",
2022-12-18 22:27:59 -08:00
"id": 101,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "1310:27:0",
2022-07-05 08:37:49 -07:00
"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\""
}
],
2022-12-18 22:27:59 -08:00
"id": 95,
2022-07-05 08:37:49 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2022-12-18 22:27:59 -08:00
"src": "1272:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2022-12-18 22:27:59 -08:00
"id": 102,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "1272:66:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2022-12-18 22:27:59 -08:00
"id": 103,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1272:66:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 109,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
2022-12-18 22:27:59 -08:00
"id": 104,
2022-07-05 08:37:49 -07:00
"name": "_completedMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 20,
"src": "1348:18:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
2022-12-18 22:27:59 -08:00
"id": 107,
2022-07-05 08:37:49 -07:00
"indexExpression": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 105,
2022-07-05 08:37:49 -07:00
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 69,
"src": "1367:2:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM memory"
}
},
2022-12-18 22:27:59 -08:00
"id": 106,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "hash",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 327,
"src": "1367:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2022-12-18 22:27:59 -08:00
"src": "1348:27:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
2022-12-18 22:27:59 -08:00
"id": 108,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "1378:4:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
2022-12-18 22:27:59 -08:00
"src": "1348:34:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2022-12-18 22:27:59 -08:00
"id": 110,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1348:34:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 117,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
2022-12-18 22:27:59 -08:00
"id": 111,
2022-07-05 08:37:49 -07:00
"name": "current_msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4,
2022-12-18 22:27:59 -08:00
"src": "1416:11:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 114,
2022-07-05 08:37:49 -07:00
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 69,
"src": "1437:2:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
2022-12-18 22:27:59 -08:00
"typeIdentifier": "t_struct$_VM_$328_memory_ptr",
2022-07-05 08:37:49 -07:00
"typeString": "struct Structs.VM memory"
}
},
2022-12-18 22:27:59 -08:00
"id": 115,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "payload",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 319,
"src": "1437:10:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2022-12-18 22:27:59 -08:00
"id": 113,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2022-12-18 22:27:59 -08:00
"src": "1430:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 112,
2022-07-05 08:37:49 -07:00
"name": "string",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "1430:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {}
}
},
2022-12-18 22:27:59 -08:00
"id": 116,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "1430:18:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
2022-12-18 22:27:59 -08:00
"src": "1416:32:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
2022-12-18 22:27:59 -08:00
"id": 118,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1416:32:0"
2022-07-05 08:37:49 -07:00
}
]
},
"functionSelector": "496d76ff",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "receiveEncodedMsg",
2022-12-18 22:27:59 -08:00
"nameLocation": "642:17:0",
2022-07-05 08:37:49 -07:00
"parameters": {
2022-12-18 22:27:59 -08:00
"id": 63,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 62,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "encodedMsg",
2022-12-18 22:27:59 -08:00
"nameLocation": "673:10:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 120,
"src": "660:23:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 61,
2022-07-05 08:37:49 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "660:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"src": "659:25:0"
2022-07-05 08:37:49 -07:00
},
"returnParameters": {
2022-12-18 22:27:59 -08:00
"id": 64,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [],
2022-12-18 22:27:59 -08:00
"src": "692:0:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
2022-12-18 22:27:59 -08:00
"id": 128,
2022-07-05 08:37:49 -07:00
"nodeType": "FunctionDefinition",
2022-12-18 22:27:59 -08:00
"src": "1461:95:0",
2022-07-05 08:37:49 -07:00
"body": {
2022-12-18 22:27:59 -08:00
"id": 127,
2022-07-05 08:37:49 -07:00
"nodeType": "Block",
2022-12-18 22:27:59 -08:00
"src": "1521:35:0",
2022-07-05 08:37:49 -07:00
"statements": [
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 125,
2022-07-05 08:37:49 -07:00
"name": "current_msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4,
2022-12-18 22:27:59 -08:00
"src": "1538:11:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
2022-12-18 22:27:59 -08:00
"functionReturnParameters": 124,
"id": 126,
2022-07-05 08:37:49 -07:00
"nodeType": "Return",
2022-12-18 22:27:59 -08:00
"src": "1531:18:0"
2022-07-05 08:37:49 -07:00
}
]
},
"functionSelector": "ff206cf8",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCurrentMsg",
2022-12-18 22:27:59 -08:00
"nameLocation": "1470:13:0",
2022-07-05 08:37:49 -07:00
"parameters": {
2022-12-18 22:27:59 -08:00
"id": 121,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [],
2022-12-18 22:27:59 -08:00
"src": "1483:2:0"
2022-07-05 08:37:49 -07:00
},
"returnParameters": {
2022-12-18 22:27:59 -08:00
"id": 124,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 123,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 128,
"src": "1507:13:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 122,
2022-07-05 08:37:49 -07:00
"name": "string",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "1507:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"src": "1506:15:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
2022-12-18 22:27:59 -08:00
"id": 151,
2022-07-05 08:37:49 -07:00
"nodeType": "FunctionDefinition",
2022-12-18 22:27:59 -08:00
"src": "1691:228:0",
2022-07-05 08:37:49 -07:00
"body": {
2022-12-18 22:27:59 -08:00
"id": 150,
2022-07-05 08:37:49 -07:00
"nodeType": "Block",
2022-12-18 22:27:59 -08:00
"src": "1777:142:0",
2022-07-05 08:37:49 -07:00
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
2022-12-18 22:27:59 -08:00
"id": 140,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
2022-12-18 22:27:59 -08:00
"id": 137,
2022-07-05 08:37:49 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2022-12-18 22:27:59 -08:00
"src": "1795:3:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2022-12-18 22:27:59 -08:00
"id": 138,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
2022-12-18 22:27:59 -08:00
"src": "1795:10:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
2022-12-18 22:27:59 -08:00
"id": 139,
2022-07-05 08:37:49 -07:00
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 16,
"src": "1809:5:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2022-12-18 22:27:59 -08:00
"src": "1795:19:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4f6e6c79206f776e65722063616e207265676973746572206e657720636861696e7321",
2022-12-18 22:27:59 -08:00
"id": 141,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2022-12-18 22:27:59 -08:00
"src": "1816:37:0",
2022-07-05 08:37:49 -07:00
"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!\""
}
],
2022-12-18 22:27:59 -08:00
"id": 136,
2022-07-05 08:37:49 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2022-12-18 22:27:59 -08:00
"src": "1787:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2022-12-18 22:27:59 -08:00
"id": 142,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2022-12-18 22:27:59 -08:00
"src": "1787:67:0",
2022-07-05 08:37:49 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2022-12-18 22:27:59 -08:00
"id": 143,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1787:67:0"
2022-07-05 08:37:49 -07:00
},
{
"expression": {
2022-12-18 22:27:59 -08:00
"id": 148,
2022-07-05 08:37:49 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
2022-12-18 22:27:59 -08:00
"id": 144,
2022-07-05 08:37:49 -07:00
"name": "_applicationContracts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 14,
"src": "1864:21:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint16_$_t_bytes32_$",
"typeString": "mapping(uint16 => bytes32)"
}
},
2022-12-18 22:27:59 -08:00
"id": 146,
2022-07-05 08:37:49 -07:00
"indexExpression": {
2022-12-18 22:27:59 -08:00
"id": 145,
2022-07-05 08:37:49 -07:00
"name": "chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 131,
"src": "1886:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2022-12-18 22:27:59 -08:00
"src": "1864:30:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
2022-12-18 22:27:59 -08:00
"id": 147,
2022-07-05 08:37:49 -07:00
"name": "applicationAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2022-12-18 22:27:59 -08:00
"referencedDeclaration": 133,
"src": "1897:15:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2022-12-18 22:27:59 -08:00
"src": "1864:48:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2022-12-18 22:27:59 -08:00
"id": 149,
2022-07-05 08:37:49 -07:00
"nodeType": "ExpressionStatement",
2022-12-18 22:27:59 -08:00
"src": "1864:48:0"
2022-07-05 08:37:49 -07:00
}
]
},
"documentation": {
2022-12-18 22:27:59 -08:00
"id": 129,
2022-07-05 08:37:49 -07:00
"nodeType": "StructuredDocumentation",
2022-12-18 22:27:59 -08:00
"src": "1561:125:0",
2022-07-05 08:37:49 -07:00
"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",
2022-12-18 22:27:59 -08:00
"nameLocation": "1700:28:0",
2022-07-05 08:37:49 -07:00
"parameters": {
2022-12-18 22:27:59 -08:00
"id": 134,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 131,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "chainId",
2022-12-18 22:27:59 -08:00
"nameLocation": "1736:7:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 151,
"src": "1729:14:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 130,
2022-07-05 08:37:49 -07:00
"name": "uint16",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "1729:6:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
},
{
"constant": false,
2022-12-18 22:27:59 -08:00
"id": 133,
2022-07-05 08:37:49 -07:00
"mutability": "mutable",
"name": "applicationAddr",
2022-12-18 22:27:59 -08:00
"nameLocation": "1753:15:0",
2022-07-05 08:37:49 -07:00
"nodeType": "VariableDeclaration",
2022-12-18 22:27:59 -08:00
"scope": 151,
"src": "1745:23:0",
2022-07-05 08:37:49 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2022-12-18 22:27:59 -08:00
"id": 132,
2022-07-05 08:37:49 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2022-12-18 22:27:59 -08:00
"src": "1745:7:0",
2022-07-05 08:37:49 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
2022-12-18 22:27:59 -08:00
"src": "1728:41:0"
2022-07-05 08:37:49 -07:00
},
"returnParameters": {
2022-12-18 22:27:59 -08:00
"id": 135,
2022-07-05 08:37:49 -07:00
"nodeType": "ParameterList",
"parameters": [],
2022-12-18 22:27:59 -08:00
"src": "1777:0:0"
2022-07-05 08:37:49 -07:00
},
2022-12-18 22:27:59 -08:00
"scope": 152,
2022-07-05 08:37:49 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "Messenger",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
2022-12-18 22:27:59 -08:00
152
2022-07-05 08:37:49 -07:00
],
"name": "Messenger",
"nameLocation": "107:9:0",
2022-12-18 22:27:59 -08:00
"scope": 153,
2022-07-05 08:37:49 -07:00
"usedErrors": []
}
],
"license": "Unlicense"
},
"id": 0
}