UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 142 kB
{"abi":[{"type":"function","name":"crossDomainMessageSender","inputs":[],"outputs":[{"name":"_sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"crossDomainMessageSource","inputs":[],"outputs":[{"name":"_source","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"messageVersion","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_destination","type":"uint256","internalType":"uint256"},{"name":"_source","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_destination","type":"uint256","internalType":"uint256"},{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"messageHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"messageHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":true},{"type":"error","name":"CrossL2InboxOriginNotL2ToL2CrossDomainMessenger","inputs":[]},{"type":"error","name":"MessageAlreadyRelayed","inputs":[]},{"type":"error","name":"MessageDestinationNotRelayChain","inputs":[]},{"type":"error","name":"MessageDestinationSameChain","inputs":[]},{"type":"error","name":"MessageTargetCrossL2Inbox","inputs":[]},{"type":"error","name":"MessageTargetL2ToL2CrossDomainMessenger","inputs":[]},{"type":"error","name":"NotEntered","inputs":[]},{"type":"error","name":"ReentrantCall","inputs":[]},{"type":"error","name":"RelayMessageCallerNotCrossL2Inbox","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610dd78061001c5f395ff3fe608060405260043610610079575f3560e01c806354fd4d501161004c57806354fd4d50146101185780637056f41f1461016d578063b1b1b20914610180578063ecc70428146101be575f80fd5b80631ecd26f21461007d578063247944621461009257806338ffde18146100b957806352617f3c146100f2575b5f80fd5b61009061008b366004610a67565b6101f2565b005b34801561009d575f80fd5b506100a6610647565b6040519081526020015b60405180910390f35b3480156100c4575f80fd5b506100cd6106c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b0565b3480156100fd575f80fd5b506101055f81565b60405161ffff90911681526020016100b0565b348015610123575f80fd5b506101606040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b09190610bbb565b61009061017b366004610bd4565b610745565b34801561018b575f80fd5b506101ae61019a366004610c56565b5f6020819052908152604090205460ff1681565b60405190151581526020016100b0565b3480156101c9575f80fd5b506001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff166100a6565b7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c1561024b576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60017ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255d33734200000000000000000000000000000000000022146102bc576040517f1fc35f9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff1673420000000000000000000000000000000000002273ffffffffffffffffffffffffffffffffffffffff1663938b5f326040518163ffffffff1660e01b8152600401602060405180830381865afa158015610344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103689190610c6d565b73ffffffffffffffffffffffffffffffffffffffff16146103b5576040517fccc4e33800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4686146103ee576040517f31ac221100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffde73ffffffffffffffffffffffffffffffffffffffff83160161045d576040517fa9040b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff8316016104cc576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8686868686866040516020016104e896959493929190610c88565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301205f8181529283905291205490915060ff1615610566576040517f9ca9480b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057086856109b8565b5f61057b8484610a02565b905080156105e5575f8281526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610610565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b61061a5f806109b8565b50505f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255d505050505050565b5f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c6106a0576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b5f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c61071f576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c90565b46840361077e576040517f8ed9a95d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffde73ffffffffffffffffffffffffffffffffffffffff8416016107ed576040517fa9040b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff84160161085c576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84466108886001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b338787876040516024016108a29796959493929190610cde565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1ecd26f20000000000000000000000000000000000000000000000000000000017905251909150610927908290610bbb565b60405180910390a0600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905f61095e83610d69565b91906101000a8154817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b807fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35d817f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75d5050565b5f805f83516020850134875af19392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a37575f80fd5b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f805f8060c08789031215610a7c575f80fd5b8635955060208701359450604087013593506060870135610a9c81610a16565b92506080870135610aac81610a16565b915060a087013567ffffffffffffffff80821115610ac8575f80fd5b818901915089601f830112610adb575f80fd5b813581811115610aed57610aed610a3a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610b3357610b33610a3a565b816040528281528c6020848701011115610b4b575f80fd5b826020860160208301375f6020848301015280955050505050509295509295509295565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610bcd6020830184610b6f565b9392505050565b5f805f8060608587031215610be7575f80fd5b843593506020850135610bf981610a16565b9250604085013567ffffffffffffffff80821115610c15575f80fd5b818701915087601f830112610c28575f80fd5b813581811115610c36575f80fd5b886020828501011115610c47575f80fd5b95989497505060200194505050565b5f60208284031215610c66575f80fd5b5035919050565b5f60208284031215610c7d575f80fd5b8151610bcd81610a16565b8681528560208201528460408201525f73ffffffffffffffffffffffffffffffffffffffff808616606084015280851660808401525060c060a0830152610cd260c0830184610b6f565b98975050505050505050565b8781528660208201528560408201525f73ffffffffffffffffffffffffffffffffffffffff808716606084015280861660808401525060c060a08301528260c0830152828460e08401375f60e0848401015260e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116830101905098975050505050505050565b5f7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316818103610dc0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600101939250505056fea164736f6c6343000819000a","sourceMap":"2031:8913:26:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610079575f3560e01c806354fd4d501161004c57806354fd4d50146101185780637056f41f1461016d578063b1b1b20914610180578063ecc70428146101be575f80fd5b80631ecd26f21461007d578063247944621461009257806338ffde18146100b957806352617f3c146100f2575b5f80fd5b61009061008b366004610a67565b6101f2565b005b34801561009d575f80fd5b506100a6610647565b6040519081526020015b60405180910390f35b3480156100c4575f80fd5b506100cd6106c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b0565b3480156100fd575f80fd5b506101055f81565b60405161ffff90911681526020016100b0565b348015610123575f80fd5b506101606040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b09190610bbb565b61009061017b366004610bd4565b610745565b34801561018b575f80fd5b506101ae61019a366004610c56565b5f6020819052908152604090205460ff1681565b60405190151581526020016100b0565b3480156101c9575f80fd5b506001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff166100a6565b7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c1561024b576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60017ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255d33734200000000000000000000000000000000000022146102bc576040517f1fc35f9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff1673420000000000000000000000000000000000002273ffffffffffffffffffffffffffffffffffffffff1663938b5f326040518163ffffffff1660e01b8152600401602060405180830381865afa158015610344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103689190610c6d565b73ffffffffffffffffffffffffffffffffffffffff16146103b5576040517fccc4e33800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4686146103ee576040517f31ac221100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffde73ffffffffffffffffffffffffffffffffffffffff83160161045d576040517fa9040b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff8316016104cc576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8686868686866040516020016104e896959493929190610c88565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301205f8181529283905291205490915060ff1615610566576040517f9ca9480b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057086856109b8565b5f61057b8484610a02565b905080156105e5575f8281526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610610565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b61061a5f806109b8565b50505f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255d505050505050565b5f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c6106a0576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b5f7ff53fc38c5e461bdcbbeb47887fecf014abd399293109cd50f65e5f9078cfd0255c61071f576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c90565b46840361077e576040517f8ed9a95d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffde73ffffffffffffffffffffffffffffffffffffffff8416016107ed576040517fa9040b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff84160161085c576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84466108886001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b338787876040516024016108a29796959493929190610cde565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1ecd26f20000000000000000000000000000000000000000000000000000000017905251909150610927908290610bbb565b60405180910390a0600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905f61095e83610d69565b91906101000a8154817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b807fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35d817f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75d5050565b5f805f83516020850134875af19392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a37575f80fd5b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f805f8060c08789031215610a7c575f80fd5b8635955060208701359450604087013593506060870135610a9c81610a16565b92506080870135610aac81610a16565b915060a087013567ffffffffffffffff80821115610ac8575f80fd5b818901915089601f830112610adb575f80fd5b813581811115610aed57610aed610a3a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610b3357610b33610a3a565b816040528281528c6020848701011115610b4b575f80fd5b826020860160208301375f6020848301015280955050505050509295509295509295565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610bcd6020830184610b6f565b9392505050565b5f805f8060608587031215610be7575f80fd5b843593506020850135610bf981610a16565b9250604085013567ffffffffffffffff80821115610c15575f80fd5b818701915087601f830112610c28575f80fd5b813581811115610c36575f80fd5b886020828501011115610c47575f80fd5b95989497505060200194505050565b5f60208284031215610c66575f80fd5b5035919050565b5f60208284031215610c7d575f80fd5b8151610bcd81610a16565b8681528560208201528460408201525f73ffffffffffffffffffffffffffffffffffffffff808616606084015280851660808401525060c060a0830152610cd260c0830184610b6f565b98975050505050505050565b8781528660208201528560408201525f73ffffffffffffffffffffffffffffffffffffffff808716606084015280861660808401525060c060a08301528260c0830152828460e08401375f60e0848401015260e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116830101905098975050505050505050565b5f7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316818103610dc0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600101939250505056fea164736f6c6343000819000a","sourceMap":"2031:8913:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7550:1424;;;;;;:::i;:::-;;:::i;:::-;;5518:187;;;;;;;;;;;;;:::i;:::-;;;1976:25:36;;;1964:2;1949:18;5518:187:26;;;;;;;;5142;;;;;;;;;;;;;:::i;:::-;;;2188:42:36;2176:55;;;2158:74;;2146:2;2131:18;5142:187:26;2012:226:36;3058:49:26;;;;;;;;;;;;3105:1;3058:49;;;;;2417:6:36;2405:19;;;2387:38;;2375:2;2360:18;3058:49:26;2243:188:36;3177:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6245:643::-;;;;;;:::i;:::-;;:::i;3457:50::-;;;;;;;;;;-1:-1:-1;3457:50:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4163:14:36;;4156:22;4138:41;;4126:2;4111:18;3457:50:26;3998:187:36;9279:133:26;;;;;;;;;;-1:-1:-1;9380:8:26;;;;9279:133;;7550:1424;9684:12;9678:19;9723:10;4503:38;;4526:15;;;;;;;;;;;;;;4503:38;4595:1;4581:12;4574:23;7810:10:::1;6844:42:29;7810:39:26;7806:87;;7858:35;;;;;;;;;;;;;;7806:87;7022:42:29;7907:94:26;;6844:42:29;7907:46:26;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;;7903:181;;8024:49;;;;;;;;;;;;;;7903:181;8113:13;8097:12;:29;8093:75;;8135:33;;;;;;;;;;;;;;8093:75;8182:36:::0;::::1;::::0;::::1;::::0;8178:76:::1;;8227:27;;;;;;;;;;;;;;8178:76;8268:53:::0;::::1;::::0;::::1;::::0;8264:132:::1;;8344:41;;;;;;;;;;;;;;8264:132;8406:19;8449:12;8463:7;8472:6;8480:7;8489;8498:8;8438:69;;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;8428:80;;8438:69:::1;8428:80:::0;;::::1;::::0;8522:18:::1;:31:::0;;;;;;;;;;8428:80;;-1:-1:-1;8522:31:26::1;;8518:92;;;8576:23;;;;;;;;;;;;;;8518:92;8620:39;8642:7;8651;8620:21;:39::i;:::-;8670:12;8685:34;8701:7;8710:8;8685:15;:34::i;:::-;8670:49;;8734:7;8730:191;;;8757:18;:31:::0;;;::::1;::::0;;;;;;;:38;;;::::1;8791:4;8757:38;::::0;;8814:27;8776:11;;8814:27:::1;::::0;::::1;8730:191;;;8877:33;::::0;8898:11;;8877:33:::1;::::0;;;::::1;8730:191;8931:36;8953:1;8964::::0;8931:21:::1;:36::i;:::-;7796:1178;;4671:1:::0;4657:12;4650:23;7550:1424;;;;;;:::o;5518:187::-;5589:15;9684:12;9678:19;4900:36;;4924:12;;;;;;;;;;;;;;4900:36;-1:-1:-1;5656:32:26::1;5650:39;::::0;5518:187::o;5142:::-;5213:15;9684:12;9678:19;4900:36;;4924:12;;;;;;;;;;;;;;4900:36;-1:-1:-1;5280:32:26::1;5274:39;::::0;5142:187::o;6245:643::-;6377:13;6361:12;:29;6357:71;;6399:29;;;;;;;;;;;;;;6357:71;6442:36;;;;;6438:76;;6487:27;;;;;;;;;;;;;;6438:76;6528:53;;;;;6524:107;;6590:41;;;;;;;;;;;;;;6524:107;6642:17;6744:12;6758:13;6773:14;9380:8;;;;;9279:133;6773:14;6789:10;6801:7;6810:8;;6662:167;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6844:17;6662:167;;-1:-1:-1;6844:17:26;;6662:167;;6844:17;:::i;:::-;;;;;;;;6871:8;:10;;;;;:8;:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6347:541;6245:643;;;;:::o;9944:234::-;10092:7;10058:32;10051:49;10154:7;10120:32;10113:49;9944:234;;:::o;10461:481::-;10544:13;10897:1;10864;10824:8;10818:15;10784:2;10774:8;10770:17;10722:11;10680:7;10646:5;10620:306;10592:334;10461:481;-1:-1:-1;;;10461:481:26:o;14:154:36:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:184::-;225:77;222:1;215:88;322:4;319:1;312:15;346:4;343:1;336:15;362:1463;475:6;483;491;499;507;515;568:3;556:9;547:7;543:23;539:33;536:53;;;585:1;582;575:12;536:53;621:9;608:23;598:33;;678:2;667:9;663:18;650:32;640:42;;729:2;718:9;714:18;701:32;691:42;;783:2;772:9;768:18;755:32;796:31;821:5;796:31;:::i;:::-;846:5;-1:-1:-1;903:3:36;888:19;;875:33;917;875;917;:::i;:::-;969:7;-1:-1:-1;1027:3:36;1012:19;;999:33;1051:18;1081:14;;;1078:34;;;1108:1;1105;1098:12;1078:34;1146:6;1135:9;1131:22;1121:32;;1191:7;1184:4;1180:2;1176:13;1172:27;1162:55;;1213:1;1210;1203:12;1162:55;1249:2;1236:16;1271:2;1267;1264:10;1261:36;;;1277:18;;:::i;:::-;1411:2;1405:9;1473:4;1465:13;;1316:66;1461:22;;;1485:2;1457:31;1453:40;1441:53;;;1509:18;;;1529:22;;;1506:46;1503:72;;;1555:18;;:::i;:::-;1595:10;1591:2;1584:22;1630:2;1622:6;1615:18;1670:7;1665:2;1660;1656;1652:11;1648:20;1645:33;1642:53;;;1691:1;1688;1681:12;1642:53;1747:2;1742;1738;1734:11;1729:2;1721:6;1717:15;1704:46;1792:1;1787:2;1782;1774:6;1770:15;1766:24;1759:35;1813:6;1803:16;;;;;;;362:1463;;;;;;;;:::o;2436:348::-;2478:3;2516:5;2510:12;2543:6;2538:3;2531:19;2599:6;2592:4;2585:5;2581:16;2574:4;2569:3;2565:14;2559:47;2651:1;2644:4;2635:6;2630:3;2626:16;2622:27;2615:38;2773:4;2703:66;2698:2;2690:6;2686:15;2682:88;2677:3;2673:98;2669:109;2662:116;;;2436:348;;;;:::o;2789:220::-;2938:2;2927:9;2920:21;2901:4;2958:45;2999:2;2988:9;2984:18;2976:6;2958:45;:::i;:::-;2950:53;2789:220;-1:-1:-1;;;2789:220:36:o;3014:794::-;3102:6;3110;3118;3126;3179:2;3167:9;3158:7;3154:23;3150:32;3147:52;;;3195:1;3192;3185:12;3147:52;3231:9;3218:23;3208:33;;3291:2;3280:9;3276:18;3263:32;3304:31;3329:5;3304:31;:::i;:::-;3354:5;-1:-1:-1;3410:2:36;3395:18;;3382:32;3433:18;3463:14;;;3460:34;;;3490:1;3487;3480:12;3460:34;3528:6;3517:9;3513:22;3503:32;;3573:7;3566:4;3562:2;3558:13;3554:27;3544:55;;3595:1;3592;3585:12;3544:55;3635:2;3622:16;3661:2;3653:6;3650:14;3647:34;;;3677:1;3674;3667:12;3647:34;3722:7;3717:2;3708:6;3704:2;3700:15;3696:24;3693:37;3690:57;;;3743:1;3740;3733:12;3690:57;3014:794;;;;-1:-1:-1;;3774:2:36;3766:11;;-1:-1:-1;;;3014:794:36:o;3813:180::-;3872:6;3925:2;3913:9;3904:7;3900:23;3896:32;3893:52;;;3941:1;3938;3931:12;3893:52;-1:-1:-1;3964:23:36;;3813:180;-1:-1:-1;3813:180:36:o;4190:251::-;4260:6;4313:2;4301:9;4292:7;4288:23;4284:32;4281:52;;;4329:1;4326;4319:12;4281:52;4361:9;4355:16;4380:31;4405:5;4380:31;:::i;4446:656::-;4733:6;4722:9;4715:25;4776:6;4771:2;4760:9;4756:18;4749:34;4819:6;4814:2;4803:9;4799:18;4792:34;4696:4;4845:42;4935:2;4927:6;4923:15;4918:2;4907:9;4903:18;4896:43;4988:2;4980:6;4976:15;4970:3;4959:9;4955:19;4948:44;;5029:3;5023;5012:9;5008:19;5001:32;5050:46;5091:3;5080:9;5076:19;5068:6;5050:46;:::i;:::-;5042:54;4446:656;-1:-1:-1;;;;;;;;4446:656:36:o;5107:888::-;5404:6;5393:9;5386:25;5447:6;5442:2;5431:9;5427:18;5420:34;5490:6;5485:2;5474:9;5470:18;5463:34;5367:4;5516:42;5606:2;5598:6;5594:15;5589:2;5578:9;5574:18;5567:43;5659:2;5651:6;5647:15;5641:3;5630:9;5626:19;5619:44;;5700:3;5694;5683:9;5679:19;5672:32;5741:6;5735:3;5724:9;5720:19;5713:35;5799:6;5791;5785:3;5774:9;5770:19;5757:49;5856:1;5850:3;5841:6;5830:9;5826:22;5822:32;5815:43;5985:3;5915:66;5910:2;5902:6;5898:15;5894:88;5883:9;5879:104;5875:114;5867:122;;5107:888;;;;;;;;;;:::o;6223:408::-;6262:3;6290:62;6387:2;6380:5;6376:14;6414:2;6405:7;6402:15;6399:195;;6450:77;6447:1;6440:88;6551:4;6548:1;6541:15;6579:4;6576:1;6569:15;6399:195;6623:1;6610:15;;6223:408;-1:-1:-1;;;6223:408:36:o","linkReferences":{}},"methodIdentifiers":{"crossDomainMessageSender()":"38ffde18","crossDomainMessageSource()":"24794462","messageNonce()":"ecc70428","messageVersion()":"52617f3c","relayMessage(uint256,uint256,uint256,address,address,bytes)":"1ecd26f2","sendMessage(uint256,address,bytes)":"7056f41f","successfulMessages(bytes32)":"b1b1b209","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CrossL2InboxOriginNotL2ToL2CrossDomainMessenger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageAlreadyRelayed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageDestinationNotRelayChain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageDestinationSameChain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageTargetCrossL2Inbox\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageTargetL2ToL2CrossDomainMessenger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEntered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RelayMessageCallerNotCrossL2Inbox\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"crossDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessageSource\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_source\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_destination\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_source\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_destination\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"successfulMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000023\",\"events\":{\"FailedRelayedMessage(bytes32)\":{\"params\":{\"messageHash\":\"Hash of the message that failed to be relayed.\"}},\"RelayedMessage(bytes32)\":{\"params\":{\"messageHash\":\"Hash of the message that was relayed.\"}},\"SentMessage(bytes)\":{\"params\":{\"data\":\"Encoded data of the message that was sent.\"}}},\"kind\":\"dev\",\"methods\":{\"crossDomainMessageSender()\":{\"returns\":{\"_sender\":\"Address of the sender of the current cross domain message.\"}},\"crossDomainMessageSource()\":{\"returns\":{\"_source\":\"Chain ID of the source of the current cross domain message.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}},\"relayMessage(uint256,uint256,uint256,address,address,bytes)\":{\"params\":{\"_destination\":\"Chain ID of the destination chain.\",\"_message\":\"Message payload to call target with.\",\"_nonce\":\"Nonce of the message being relayed.\",\"_sender\":\"Address of the user who sent the message.\",\"_source\":\"Chain ID of the source chain.\",\"_target\":\"Address that the message is targeted at.\"}},\"sendMessage(uint256,address,bytes)\":{\"params\":{\"_destination\":\"Chain ID of the destination chain.\",\"_message\":\"Message payload to call target with.\",\"_target\":\"Target contract or wallet address.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"0.1.0\"}},\"title\":\"L2ToL2CrossDomainMessenger\",\"version\":1},\"userdoc\":{\"errors\":{\"CrossL2InboxOriginNotL2ToL2CrossDomainMessenger()\":[{\"notice\":\"Thrown when attempting to relay a message where CrossL2Inbox's origin is not L2ToL2CrossDomainMessenger.\"}],\"MessageAlreadyRelayed()\":[{\"notice\":\"Thrown when attempting to relay a message that has already been relayed.\"}],\"MessageDestinationNotRelayChain()\":[{\"notice\":\"Thrown when attempting to relay a message whose destination chain is not the chain relaying it.\"}],\"MessageDestinationSameChain()\":[{\"notice\":\"Thrown when attempting to send a message to the chain that the message is being sent from.\"}],\"MessageTargetCrossL2Inbox()\":[{\"notice\":\"Thrown when attempting to relay a message whose target is CrossL2Inbox.\"}],\"MessageTargetL2ToL2CrossDomainMessenger()\":[{\"notice\":\"Thrown when attempting to relay a message whose target is L2ToL2CrossDomainMessenger.\"}],\"NotEntered()\":[{\"notice\":\"Thrown when a non-written slot in transient storage is attempted to be read from.\"}],\"ReentrantCall()\":[{\"notice\":\"Thrown when a reentrant call is detected.\"}],\"RelayMessageCallerNotCrossL2Inbox()\":[{\"notice\":\"Thrown when attempting to relay a message and the function caller (msg.sender) is not CrossL2Inbox.\"}]},\"events\":{\"FailedRelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message fails to be relayed on this chain.\"},\"RelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message is successfully relayed on this chain.\"},\"SentMessage(bytes)\":{\"notice\":\"Emitted whenever a message is sent to the other chain.\"}},\"kind\":\"user\",\"methods\":{\"crossDomainMessageSender()\":{\"notice\":\"Retrieves the sender of the current cross domain message. If not entered, reverts.\"},\"crossDomainMessageSource()\":{\"notice\":\"Retrieves the source of the current cross domain message. If not entered, reverts.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\"},\"messageVersion()\":{\"notice\":\"Current message version identifier.\"},\"relayMessage(uint256,uint256,uint256,address,address,bytes)\":{\"notice\":\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\"},\"sendMessage(uint256,address,bytes)\":{\"notice\":\"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\"},\"successfulMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The L2ToL2CrossDomainMessenger is a higher level abstraction on top of the CrossL2Inbox that provides features necessary for secure transfers ERC20 tokens between L2 chains. Messages sent through the L2ToL2CrossDomainMessenger on the source chain receive both replay protection as well as domain binding.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2ToL2CrossDomainMessenger.sol\":\"L2ToL2CrossDomainMessenger\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/CrossL2Inbox.sol\":{\"keccak256\":\"0x43bbf0554ccc19e597ef52d8b1e08e0ff719b70e864f05ccb6a36c56b7f985f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a113ef0eb24575c4c9f264bff823810662e398aa7fd81afc3142fd57118db\",\"dweb:/ipfs/QmPje4qvpvj4wwUE2FF1E1LobJhg2vK4Zy3Ew95d6d79S3\"]},\"src/L2/ICrossL2Inbox.sol\":{\"keccak256\":\"0x2a7a9d55f12bd8c39ad3c2f1d328377e5fba9feafcd2be2f9c857baad4d411a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bfb00cd40939c7fa1e6a5596267399c7f6b4580be895e73ee890a7d49659125\",\"dweb:/ipfs/QmXQU3CphmhpWgXk2L7KaZLCP2eNnMQtJkvSEYeuZ6Fw82\"]},\"src/L2/IL2ToL2CrossDomainMessenger.sol\":{\"keccak256\":\"0x0bc5519108a6077e3918968f9812c6f20fcb036c8473b845c065b3cd9d6ef2a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56d64a5a169d54b16b02423faaf98fe9947780957678ec849596cb68880f3e97\",\"dweb:/ipfs/QmRXkq7ABqUffim7foK5EiZRwZPk8Ln6vArafjABHySBbR\"]},\"src/L2/L2ToL2CrossDomainMessenger.sol\":{\"keccak256\":\"0xaae58981509e3eb3eed16e492a68b9a168ba0c38ba1a2e74192e005d7c410e72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fdbc3ec2621df8e3dadee0879abe8f3faa5a3b9a17f799b6e83aef2cf28fd652\",\"dweb:/ipfs/QmbdRMdGhj9Yqh6Kn7BGk2xsYcjZeWn4Yz9BSUbGhgBshr\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3\",\"dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3\"]},\"src/libraries/TransientContext.sol\":{\"keccak256\":\"0x7ae128d512768e928b3cd2d7604fcded205e5a99465360985fb0aaf985e888f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://555255ed8deedb8cb090d5f979b51356a98c12b259ec07664de33280d24738fd\",\"dweb:/ipfs/QmPUAfTpoqqUDEaRC2gRPr2CFbKSaz8J4yBQgLc9wM6Hss\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CrossL2InboxOriginNotL2ToL2CrossDomainMessenger"},{"inputs":[],"type":"error","name":"MessageAlreadyRelayed"},{"inputs":[],"type":"error","name":"MessageDestinationNotRelayChain"},{"inputs":[],"type":"error","name":"MessageDestinationSameChain"},{"inputs":[],"type":"error","name":"MessageTargetCrossL2Inbox"},{"inputs":[],"type":"error","name":"MessageTargetL2ToL2CrossDomainMessenger"},{"inputs":[],"type":"error","name":"NotEntered"},{"inputs":[],"type":"error","name":"ReentrantCall"},{"inputs":[],"type":"error","name":"RelayMessageCallerNotCrossL2Inbox"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"SentMessage","anonymous":true},{"inputs":[],"stateMutability":"view","type":"function","name":"crossDomainMessageSender","outputs":[{"internalType":"address","name":"_sender","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossDomainMessageSource","outputs":[{"internalType":"uint256","name":"_source","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"uint256","name":"_source","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"crossDomainMessageSender()":{"returns":{"_sender":"Address of the sender of the current cross domain message."}},"crossDomainMessageSource()":{"returns":{"_source":"Chain ID of the source of the current cross domain message."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message payload to call target with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_source":"Chain ID of the source chain.","_target":"Address that the message is targeted at."}},"sendMessage(uint256,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message payload to call target with.","_target":"Target contract or wallet address."}}},"version":1},"userdoc":{"kind":"user","methods":{"crossDomainMessageSender()":{"notice":"Retrieves the sender of the current cross domain message. If not entered, reverts."},"crossDomainMessageSource()":{"notice":"Retrieves the source of the current cross domain message. If not entered, reverts."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"messageVersion()":{"notice":"Current message version identifier."},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(uint256,address,bytes)":{"notice":"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ToL2CrossDomainMessenger.sol":"L2ToL2CrossDomainMessenger"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/L2/CrossL2Inbox.sol":{"keccak256":"0x43bbf0554ccc19e597ef52d8b1e08e0ff719b70e864f05ccb6a36c56b7f985f5","urls":["bzz-raw://a79a113ef0eb24575c4c9f264bff823810662e398aa7fd81afc3142fd57118db","dweb:/ipfs/QmPje4qvpvj4wwUE2FF1E1LobJhg2vK4Zy3Ew95d6d79S3"],"license":"MIT"},"src/L2/ICrossL2Inbox.sol":{"keccak256":"0x2a7a9d55f12bd8c39ad3c2f1d328377e5fba9feafcd2be2f9c857baad4d411a8","urls":["bzz-raw://5bfb00cd40939c7fa1e6a5596267399c7f6b4580be895e73ee890a7d49659125","dweb:/ipfs/QmXQU3CphmhpWgXk2L7KaZLCP2eNnMQtJkvSEYeuZ6Fw82"],"license":"MIT"},"src/L2/IL2ToL2CrossDomainMessenger.sol":{"keccak256":"0x0bc5519108a6077e3918968f9812c6f20fcb036c8473b845c065b3cd9d6ef2a3","urls":["bzz-raw://56d64a5a169d54b16b02423faaf98fe9947780957678ec849596cb68880f3e97","dweb:/ipfs/QmRXkq7ABqUffim7foK5EiZRwZPk8Ln6vArafjABHySBbR"],"license":"MIT"},"src/L2/L2ToL2CrossDomainMessenger.sol":{"keccak256":"0xaae58981509e3eb3eed16e492a68b9a168ba0c38ba1a2e74192e005d7c410e72","urls":["bzz-raw://fdbc3ec2621df8e3dadee0879abe8f3faa5a3b9a17f799b6e83aef2cf28fd652","dweb:/ipfs/QmbdRMdGhj9Yqh6Kn7BGk2xsYcjZeWn4Yz9BSUbGhgBshr"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f","urls":["bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3","dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3"],"license":"MIT"},"src/libraries/TransientContext.sol":{"keccak256":"0x7ae128d512768e928b3cd2d7604fcded205e5a99465360985fb0aaf985e888f8","urls":["bzz-raw://555255ed8deedb8cb090d5f979b51356a98c12b259ec07664de33280d24738fd","dweb:/ipfs/QmPUAfTpoqqUDEaRC2gRPr2CFbKSaz8J4yBQgLc9wM6Hss"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47190,"contract":"src/L2/L2ToL2CrossDomainMessenger.sol:L2ToL2CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"},{"astId":47193,"contract":"src/L2/L2ToL2CrossDomainMessenger.sol:L2ToL2CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"1","type":"t_uint240"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"}}},"userdoc":{"version":1,"kind":"user","methods":{"crossDomainMessageSender()":{"notice":"Retrieves the sender of the current cross domain message. If not entered, reverts."},"crossDomainMessageSource()":{"notice":"Retrieves the source of the current cross domain message. If not entered, reverts."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"messageVersion()":{"notice":"Current message version identifier."},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(uint256,address,bytes)":{"notice":"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"version()":{"notice":"Semantic version."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."},"SentMessage(bytes)":{"notice":"Emitted whenever a message is sent to the other chain."}},"errors":{"CrossL2InboxOriginNotL2ToL2CrossDomainMessenger()":[{"notice":"Thrown when attempting to relay a messag