Overview
ETH Balance
More Info
ContractCreator
Multichain Info
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x82529035...A954D31Df The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Source Code (Solidity)
/**
*Submitted for verification at Sepolia.Arbiscan.io on 2025-02-20
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
interface IERC7786Receiver {
/**
* @dev Endpoint for receiving cross-chain message.
* @param sourceChain {CAIP2} chain identifier
* @param sender {CAIP10} account address (does not include the chain identifier)
*
* This function may be called directly by the gateway.
*/
function executeMessage(
string calldata sourceChain, // CAIP-2 chain identifier
string calldata sender, // CAIP-10 account address (does not include the chain identifier)
bytes calldata payload,
bytes[] calldata attributes
) external payable returns (bytes4);
}
/**
* @dev Base implementation of an ERC-7786 compliant cross-chain message receiver.
*
* This abstract contract exposes the `executeMessage` function that is used for communication with (one or multiple)
* destination gateways. This contract leaves two functions unimplemented:
*
* {_isKnownGateway}, an internal getter used to verify whether an address is recognised by the contract as a valid
* ERC-7786 destination gateway. One or multiple gateway can be supported. Note that any malicious address for which
* this function returns true would be able to impersonate any account on any other chain sending any message.
*
* {_processMessage}, the internal function that will be called with any message that has been validated.
*/
abstract contract ERC7786Receiver is IERC7786Receiver {
error ERC7786ReceiverInvalidGateway(address gateway);
error ERC7786ReceivePassiveModeValue();
/// @inheritdoc IERC7786Receiver
function executeMessage(
string calldata source,
string calldata sender,
bytes calldata payload,
bytes[] calldata attributes
) public payable virtual returns (bytes4) {
require(_isKnownGateway(msg.sender), ERC7786ReceiverInvalidGateway(msg.sender));
_processMessage(msg.sender, source, sender, payload, attributes);
return IERC7786Receiver.executeMessage.selector;
}
/// @dev Virtual getter that returns whether an address is a valid ERC-7786 gateway.
function _isKnownGateway(address instance) internal view virtual returns (bool);
/// @dev Virtual function that should contain the logic to execute when a cross-chain message is received.
function _processMessage(
address gateway,
string calldata sourceChain,
string calldata sender,
bytes calldata payload,
bytes[] calldata attributes
) internal virtual;
}
contract ERC7786ReceiverMock is ERC7786Receiver {
address private immutable _gateway;
event MessageReceived(address gateway, string source, string sender, bytes payload, bytes[] attributes);
constructor(address gateway_) {
_gateway = gateway_;
}
function _isKnownGateway(address instance) internal view virtual override returns (bool) {
return instance == _gateway;
}
function _processMessage(
address gateway,
string calldata source,
string calldata sender,
bytes calldata payload,
bytes[] calldata attributes
) internal virtual override {
emit MessageReceived(gateway, source, sender, payload, attributes);
}
}Contract ABI
API[{"inputs":[{"internalType":"address","name":"gateway_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ERC7786ReceivePassiveModeValue","type":"error"},{"inputs":[{"internalType":"address","name":"gateway","type":"address"}],"name":"ERC7786ReceiverInvalidGateway","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"gateway","type":"address"},{"indexed":false,"internalType":"string","name":"source","type":"string"},{"indexed":false,"internalType":"string","name":"sender","type":"string"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes[]","name":"attributes","type":"bytes[]"}],"name":"MessageReceived","type":"event"},{"inputs":[{"internalType":"string","name":"source","type":"string"},{"internalType":"string","name":"sender","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes[]","name":"attributes","type":"bytes[]"}],"name":"executeMessage","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"payable","type":"function"}]Contract Creation Code
0x60a060405234801561000f575f5ffd5b506040516107b43803806107b4833981810160405281019061003191906100c9565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506100f4565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100988261006f565b9050919050565b6100a88161008e565b81146100b2575f5ffd5b50565b5f815190506100c38161009f565b92915050565b5f602082840312156100de576100dd61006b565b5b5f6100eb848285016100b5565b91505092915050565b6080516106a961010b5f395f60c801526106a95ff3fe60806040526004361061001d575f3560e01c8063675b049b14610021575b5f5ffd5b61003b60048036038101906100369190610281565b610051565b604051610048919061039f565b60405180910390f35b5f61005b336100c5565b339061009d576040517fd974795400000000000000000000000000000000000000000000000000000000815260040161009491906103f7565b60405180910390fd5b506100af338a8a8a8a8a8a8a8a61011c565b63675b049b60e01b905098975050505050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b7f9e79df02a552efb40d147d66bae22d6bc689cc028d51cc5c5faa7eff153a201f89898989898989898960405161015b999897969594939291906105fe565b60405180910390a1505050505050505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261019757610196610176565b5b8235905067ffffffffffffffff8111156101b4576101b361017a565b5b6020830191508360018202830111156101d0576101cf61017e565b5b9250929050565b5f5f83601f8401126101ec576101eb610176565b5b8235905067ffffffffffffffff8111156102095761020861017a565b5b6020830191508360018202830111156102255761022461017e565b5b9250929050565b5f5f83601f84011261024157610240610176565b5b8235905067ffffffffffffffff81111561025e5761025d61017a565b5b60208301915083602082028301111561027a5761027961017e565b5b9250929050565b5f5f5f5f5f5f5f5f6080898b03121561029d5761029c61016e565b5b5f89013567ffffffffffffffff8111156102ba576102b9610172565b5b6102c68b828c01610182565b9850985050602089013567ffffffffffffffff8111156102e9576102e8610172565b5b6102f58b828c01610182565b9650965050604089013567ffffffffffffffff81111561031857610317610172565b5b6103248b828c016101d7565b9450945050606089013567ffffffffffffffff81111561034757610346610172565b5b6103538b828c0161022c565b92509250509295985092959890939650565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61039981610365565b82525050565b5f6020820190506103b25f830184610390565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6104498385610410565b9350610456838584610420565b61045f8361042e565b840190509392505050565b5f82825260208201905092915050565b5f610485838561046a565b9350610492838584610420565b61049b8361042e565b840190509392505050565b5f82825260208201905092915050565b5f819050919050565b5f82825260208201905092915050565b5f6104da83856104bf565b93506104e7838584610420565b6104f08361042e565b840190509392505050565b5f6105078484846104cf565b90509392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f8335600160200384360303811261053857610537610518565b5b83810192508235915060208301925067ffffffffffffffff8211156105605761055f610510565b5b60018202360383131561057657610575610514565b5b509250929050565b5f602082019050919050565b5f61059583856104a6565b9350836020840285016105a7846104b6565b805f5b878110156105ec5784840389526105c1828461051c565b6105cc8682846104fb565b95506105d78461057e565b935060208b019a5050506001810190506105aa565b50829750879450505050509392505050565b5f60a0820190506106115f83018c6103e8565b8181036020830152610624818a8c61043e565b9050818103604083015261063981888a61043e565b9050818103606083015261064e81868861047a565b9050818103608083015261066381848661058a565b90509a995050505050505050505056fea26469706673582212203d400bdb55f4d15bbf48f2b15dda46e0310fb1d2910b1db7416096b5ce2a7ad264736f6c634300081b0033000000000000000000000000050193203845d4145dea5200c7ea49ef28b5f870
Deployed Bytecode
0x60806040526004361061001d575f3560e01c8063675b049b14610021575b5f5ffd5b61003b60048036038101906100369190610281565b610051565b604051610048919061039f565b60405180910390f35b5f61005b336100c5565b339061009d576040517fd974795400000000000000000000000000000000000000000000000000000000815260040161009491906103f7565b60405180910390fd5b506100af338a8a8a8a8a8a8a8a61011c565b63675b049b60e01b905098975050505050505050565b5f7f000000000000000000000000050193203845d4145dea5200c7ea49ef28b5f87073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b7f9e79df02a552efb40d147d66bae22d6bc689cc028d51cc5c5faa7eff153a201f89898989898989898960405161015b999897969594939291906105fe565b60405180910390a1505050505050505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261019757610196610176565b5b8235905067ffffffffffffffff8111156101b4576101b361017a565b5b6020830191508360018202830111156101d0576101cf61017e565b5b9250929050565b5f5f83601f8401126101ec576101eb610176565b5b8235905067ffffffffffffffff8111156102095761020861017a565b5b6020830191508360018202830111156102255761022461017e565b5b9250929050565b5f5f83601f84011261024157610240610176565b5b8235905067ffffffffffffffff81111561025e5761025d61017a565b5b60208301915083602082028301111561027a5761027961017e565b5b9250929050565b5f5f5f5f5f5f5f5f6080898b03121561029d5761029c61016e565b5b5f89013567ffffffffffffffff8111156102ba576102b9610172565b5b6102c68b828c01610182565b9850985050602089013567ffffffffffffffff8111156102e9576102e8610172565b5b6102f58b828c01610182565b9650965050604089013567ffffffffffffffff81111561031857610317610172565b5b6103248b828c016101d7565b9450945050606089013567ffffffffffffffff81111561034757610346610172565b5b6103538b828c0161022c565b92509250509295985092959890939650565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61039981610365565b82525050565b5f6020820190506103b25f830184610390565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6104498385610410565b9350610456838584610420565b61045f8361042e565b840190509392505050565b5f82825260208201905092915050565b5f610485838561046a565b9350610492838584610420565b61049b8361042e565b840190509392505050565b5f82825260208201905092915050565b5f819050919050565b5f82825260208201905092915050565b5f6104da83856104bf565b93506104e7838584610420565b6104f08361042e565b840190509392505050565b5f6105078484846104cf565b90509392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f8335600160200384360303811261053857610537610518565b5b83810192508235915060208301925067ffffffffffffffff8211156105605761055f610510565b5b60018202360383131561057657610575610514565b5b509250929050565b5f602082019050919050565b5f61059583856104a6565b9350836020840285016105a7846104b6565b805f5b878110156105ec5784840389526105c1828461051c565b6105cc8682846104fb565b95506105d78461057e565b935060208b019a5050506001810190506105aa565b50829750879450505050509392505050565b5f60a0820190506106115f83018c6103e8565b8181036020830152610624818a8c61043e565b9050818103604083015261063981888a61043e565b9050818103606083015261064e81868861047a565b9050818103608083015261066381848661058a565b90509a995050505050505050505056fea26469706673582212203d400bdb55f4d15bbf48f2b15dda46e0310fb1d2910b1db7416096b5ce2a7ad264736f6c634300081b0033
Deployed Bytecode Sourcemap
2614:738:0:-:0;;;;;;;;;;;;;;;;;;;;;1651:439;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1851:6;1878:27;1894:10;1878:15;:27::i;:::-;1937:10;1870:79;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1960:64;1976:10;1988:6;;1996;;2004:7;;2013:10;;1960:15;:64::i;:::-;2042:40;;;2035:47;;1651:439;;;;;;;;;;:::o;2900:135::-;2983:4;3019:8;3007:20;;:8;:20;;;3000:27;;2900:135;;;:::o;3043:306::-;3280:61;3296:7;3305:6;;3313;;3321:7;;3330:10;;3280:61;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3043:306;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;717:553;775:8;785:6;835:3;828:4;820:6;816:17;812:27;802:122;;843:79;;:::i;:::-;802:122;956:6;943:20;933:30;;986:18;978:6;975:30;972:117;;;1008:79;;:::i;:::-;972:117;1122:4;1114:6;1110:17;1098:29;;1176:3;1168:4;1160:6;1156:17;1146:8;1142:32;1139:41;1136:128;;;1183:79;;:::i;:::-;1136:128;717:553;;;;;:::o;1289:552::-;1346:8;1356:6;1406:3;1399:4;1391:6;1387:17;1383:27;1373:122;;1414:79;;:::i;:::-;1373:122;1527:6;1514:20;1504:30;;1557:18;1549:6;1546:30;1543:117;;;1579:79;;:::i;:::-;1543:117;1693:4;1685:6;1681:17;1669:29;;1747:3;1739:4;1731:6;1727:17;1717:8;1713:32;1710:41;1707:128;;;1754:79;;:::i;:::-;1707:128;1289:552;;;;;:::o;1862:579::-;1946:8;1956:6;2006:3;1999:4;1991:6;1987:17;1983:27;1973:122;;2014:79;;:::i;:::-;1973:122;2127:6;2114:20;2104:30;;2157:18;2149:6;2146:30;2143:117;;;2179:79;;:::i;:::-;2143:117;2293:4;2285:6;2281:17;2269:29;;2347:3;2339:4;2331:6;2327:17;2317:8;2313:32;2310:41;2307:128;;;2354:79;;:::i;:::-;2307:128;1862:579;;;;;:::o;2447:1615::-;2606:6;2614;2622;2630;2638;2646;2654;2662;2711:3;2699:9;2690:7;2686:23;2682:33;2679:120;;;2718:79;;:::i;:::-;2679:120;2866:1;2855:9;2851:17;2838:31;2896:18;2888:6;2885:30;2882:117;;;2918:79;;:::i;:::-;2882:117;3031:65;3088:7;3079:6;3068:9;3064:22;3031:65;:::i;:::-;3013:83;;;;2809:297;3173:2;3162:9;3158:18;3145:32;3204:18;3196:6;3193:30;3190:117;;;3226:79;;:::i;:::-;3190:117;3339:65;3396:7;3387:6;3376:9;3372:22;3339:65;:::i;:::-;3321:83;;;;3116:298;3481:2;3470:9;3466:18;3453:32;3512:18;3504:6;3501:30;3498:117;;;3534:79;;:::i;:::-;3498:117;3647:64;3703:7;3694:6;3683:9;3679:22;3647:64;:::i;:::-;3629:82;;;;3424:297;3788:2;3777:9;3773:18;3760:32;3819:18;3811:6;3808:30;3805:117;;;3841:79;;:::i;:::-;3805:117;3954:91;4037:7;4028:6;4017:9;4013:22;3954:91;:::i;:::-;3936:109;;;;3731:324;2447:1615;;;;;;;;;;;:::o;4068:149::-;4104:7;4144:66;4137:5;4133:78;4122:89;;4068:149;;;:::o;4223:115::-;4308:23;4325:5;4308:23;:::i;:::-;4303:3;4296:36;4223:115;;:::o;4344:218::-;4435:4;4473:2;4462:9;4458:18;4450:26;;4486:69;4552:1;4541:9;4537:17;4528:6;4486:69;:::i;:::-;4344:218;;;;:::o;4568:126::-;4605:7;4645:42;4638:5;4634:54;4623:65;;4568:126;;;:::o;4700:96::-;4737:7;4766:24;4784:5;4766:24;:::i;:::-;4755:35;;4700:96;;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4802:118;;:::o;4926:222::-;5019:4;5057:2;5046:9;5042:18;5034:26;;5070:71;5138:1;5127:9;5123:17;5114:6;5070:71;:::i;:::-;4926:222;;;;:::o;5154:169::-;5238:11;5272:6;5267:3;5260:19;5312:4;5307:3;5303:14;5288:29;;5154:169;;;;:::o;5329:148::-;5427:6;5422:3;5417;5404:30;5468:1;5459:6;5454:3;5450:16;5443:27;5329:148;;;:::o;5483:102::-;5524:6;5575:2;5571:7;5566:2;5559:5;5555:14;5551:28;5541:38;;5483:102;;;:::o;5615:317::-;5713:3;5734:71;5798:6;5793:3;5734:71;:::i;:::-;5727:78;;5815:56;5864:6;5859:3;5852:5;5815:56;:::i;:::-;5896:29;5918:6;5896:29;:::i;:::-;5891:3;5887:39;5880:46;;5615:317;;;;;:::o;5938:168::-;6021:11;6055:6;6050:3;6043:19;6095:4;6090:3;6086:14;6071:29;;5938:168;;;;:::o;6134:314::-;6230:3;6251:70;6314:6;6309:3;6251:70;:::i;:::-;6244:77;;6331:56;6380:6;6375:3;6368:5;6331:56;:::i;:::-;6412:29;6434:6;6412:29;:::i;:::-;6407:3;6403:39;6396:46;;6134:314;;;;;:::o;6454:193::-;6562:11;6596:6;6591:3;6584:19;6636:4;6631:3;6627:14;6612:29;;6454:193;;;;:::o;6653:113::-;6733:4;6756:3;6748:11;;6653:113;;;:::o;6772:158::-;6845:11;6879:6;6874:3;6867:19;6919:4;6914:3;6910:14;6895:29;;6772:158;;;;:::o;6958:294::-;7044:3;7065:60;7118:6;7113:3;7065:60;:::i;:::-;7058:67;;7135:56;7184:6;7179:3;7172:5;7135:56;:::i;:::-;7216:29;7238:6;7216:29;:::i;:::-;7211:3;7207:39;7200:46;;6958:294;;;;;:::o;7258:212::-;7355:10;7390:74;7460:3;7452:6;7444;7390:74;:::i;:::-;7376:88;;7258:212;;;;;:::o;7476:117::-;7585:1;7582;7575:12;7599:117;7708:1;7705;7698:12;7722:117;7831:1;7828;7821:12;7845:711;7909:5;7916:6;7972:3;7959:17;8064:1;8058:4;8054:12;8043:8;8027:14;8023:29;8019:48;7999:18;7995:73;7985:168;;8072:79;;:::i;:::-;7985:168;8195:8;8175:18;8171:33;8162:42;;8237:5;8224:19;8214:29;;8272:4;8265:5;8261:16;8252:25;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8458:4;8450:6;8446:17;8430:14;8426:38;8419:5;8415:50;8412:137;;;8468:79;;:::i;:::-;8412:137;7923:633;7845:711;;;;;:::o;8562:126::-;8645:4;8677;8672:3;8668:14;8660:22;;8562:126;;;:::o;8720:990::-;8869:3;8892:95;8980:6;8975:3;8892:95;:::i;:::-;8885:102;;9013:3;9058:4;9050:6;9046:17;9041:3;9037:27;9088:69;9151:5;9088:69;:::i;:::-;9180:7;9211:1;9196:469;9221:6;9218:1;9215:13;9196:469;;;9292:9;9286:4;9282:20;9277:3;9270:33;9352:53;9398:6;9389:7;9352:53;:::i;:::-;9426:99;9520:4;9505:13;9490;9426:99;:::i;:::-;9418:107;;9548:73;9614:6;9548:73;:::i;:::-;9538:83;;9650:4;9645:3;9641:14;9634:21;;9256:409;;9243:1;9240;9236:9;9231:14;;9196:469;;;9200:14;9681:4;9674:11;;9701:3;9694:10;;8874:836;;;;8720:990;;;;;:::o;9716:1204::-;10089:4;10127:3;10116:9;10112:19;10104:27;;10141:71;10209:1;10198:9;10194:17;10185:6;10141:71;:::i;:::-;10259:9;10253:4;10249:20;10244:2;10233:9;10229:18;10222:48;10287:88;10370:4;10361:6;10353;10287:88;:::i;:::-;10279:96;;10422:9;10416:4;10412:20;10407:2;10396:9;10392:18;10385:48;10450:88;10533:4;10524:6;10516;10450:88;:::i;:::-;10442:96;;10585:9;10579:4;10575:20;10570:2;10559:9;10555:18;10548:48;10613:86;10694:4;10685:6;10677;10613:86;:::i;:::-;10605:94;;10747:9;10741:4;10737:20;10731:3;10720:9;10716:19;10709:49;10775:138;10908:4;10899:6;10891;10775:138;:::i;:::-;10767:146;;9716:1204;;;;;;;;;;;;:::o
Swarm Source
ipfs://3d400bdb55f4d15bbf48f2b15dda46e0310fb1d2910b1db7416096b5ce2a7ad2
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.