[{"data":1,"prerenderedAt":6577},["ShallowReactive",2],{"navigation":3,"/zksync-network/unique-features/zksync-connect/interop-messages":761,"/zksync-network/unique-features/zksync-connect/interop-messages-surround":6572},[4,325,440],{"title":5,"_path":6,"children":7},"ZKsync Network","/zksync-network",[8,10,25,37,86,248,262,316],{"title":9,"_path":6},"Introduction",{"title":11,"_path":12,"children":13},"Quickstart","/zksync-network/quick-start",[14,16,19,22],{"title":15,"_path":12},"Setup",{"title":17,"_path":18},"Deploy your first contract","/zksync-network/quick-start/deploy-your-first-contract",{"title":20,"_path":21},"Interact with your contract","/zksync-network/quick-start/interact-with-your-contract",{"title":23,"_path":24},"Build a Frontend","/zksync-network/quick-start/build-a-frontend",{"title":26,"_path":27,"children":28},"Environment","/zksync-network/environment",[29,31,34],{"title":30,"_path":27},"Elastic Network Chains",{"title":32,"_path":33},"L1 contracts","/zksync-network/environment/l1-contracts",{"title":35,"_path":36},"System contracts","/zksync-network/environment/l2-contracts",{"title":38,"_path":39,"children":40},"Unique features","/zksync-network/unique-features",[41,74],{"title":42,"_path":43,"children":44},"ZKsync SSO","/zksync-network/unique-features/zksync-sso",[45,47,50,53,56,59,62,65,68,71],{"title":46,"_path":43},"SSO Intro",{"title":48,"_path":49},"Getting Started","/zksync-network/unique-features/zksync-sso/getting-started",{"title":51,"_path":52},"Architecture","/zksync-network/unique-features/zksync-sso/architecture",{"title":54,"_path":55},"Auth Server","/zksync-network/unique-features/zksync-sso/auth-server",{"title":57,"_path":58},"Sessions","/zksync-network/unique-features/zksync-sso/sessions",{"title":60,"_path":61},"Passkeys","/zksync-network/unique-features/zksync-sso/passkeys",{"title":63,"_path":64},"Accounts","/zksync-network/unique-features/zksync-sso/accounts",{"title":66,"_path":67},"Account Recovery","/zksync-network/unique-features/zksync-sso/account-recovery",{"title":69,"_path":70},"Transaction Flow","/zksync-network/unique-features/zksync-sso/transaction-flow",{"title":72,"_path":73},"FAQs","/zksync-network/unique-features/zksync-sso/faqs",{"title":75,"_path":76,"children":77},"ZKsync Connect","/zksync-network/unique-features/zksync-connect",[78,80,83],{"title":79,"_path":76},"Overview",{"title":81,"_path":82},"Messaging","/zksync-network/unique-features/zksync-connect/messaging",{"title":84,"_path":85},"Interop Messages Guide","/zksync-network/unique-features/zksync-connect/interop-messages",{"title":87,"_path":88,"children":89},"Tooling","/zksync-network/tooling",[90,104,159,184,239,242,245],{"title":91,"_path":92,"children":93},"Local setup","/zksync-network/tooling/local-setup",[94,95,98,101],{"title":48,"_path":92},{"title":96,"_path":97},"anvil-zksync","/zksync-network/tooling/local-setup/anvil-zksync-node",{"title":99,"_path":100},"Docker L1 - L2 Nodes","/zksync-network/tooling/local-setup/dockerized-l1-l2-nodes",{"title":102,"_path":103},"Continuous Integration","/zksync-network/tooling/local-setup/continuous-integration",{"title":105,"_path":106,"children":107},"Hardhat","/zksync-network/tooling/hardhat",[108,109,112,125],{"title":79,"_path":106},{"title":110,"_path":111},"Installation","/zksync-network/tooling/hardhat/installation",{"title":113,"_path":114,"children":115},"Guides","/zksync-network/tooling/hardhat/guides",[116,119,122],{"title":117,"_path":118},"Getting started","/zksync-network/tooling/hardhat/guides/getting-started",{"title":120,"_path":121},"Migrating Hardhat project to ZKsync Era","/zksync-network/tooling/hardhat/guides/migrating-to-zksync",{"title":123,"_path":124},"Compiling non-inlinable libraries","/zksync-network/tooling/hardhat/guides/compiling-libraries",{"title":126,"_path":127,"children":128},"Plugins","/zksync-network/tooling/hardhat/plugins",[129,132,135,138,141,144,147,150,153,156],{"title":130,"_path":131},"hardhat-zksync","/zksync-network/tooling/hardhat/plugins/hardhat-zksync",{"title":133,"_path":134},"hardhat-zksync-solc","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-solc",{"title":136,"_path":137},"hardhat-zksync-vyper","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-vyper",{"title":139,"_path":140},"hardhat-zksync-deploy","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-deploy",{"title":142,"_path":143},"hardhat-zksync-upgradable","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-upgradable",{"title":145,"_path":146},"hardhat-zksync-verify","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-verify",{"title":148,"_path":149},"hardhat-zksync-verify-vyper","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-verify-vyper",{"title":151,"_path":152},"hardhat-zksync-ethers","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-ethers",{"title":154,"_path":155},"hardhat-zksync-node","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-node",{"title":157,"_path":158},"Hardhat Community Plugins","/zksync-network/tooling/hardhat/plugins/other-plugins",{"title":160,"_path":161,"children":162},"Foundry","/zksync-network/tooling/foundry",[163,165,167,169],{"title":79,"_path":164},"/zksync-network/tooling/foundry/overview",{"title":110,"_path":166},"/zksync-network/tooling/foundry/installation",{"title":48,"_path":168},"/zksync-network/tooling/foundry/getting-started",{"title":170,"_path":171,"children":172},"Migration Guide","/zksync-network/tooling/foundry/migration-guide",[173,175,178,181],{"title":79,"_path":174},"/zksync-network/tooling/foundry/migration-guide/overview",{"title":176,"_path":177},"Compilation","/zksync-network/tooling/foundry/migration-guide/compilation",{"title":179,"_path":180},"Deployment","/zksync-network/tooling/foundry/migration-guide/deployment",{"title":182,"_path":183},"Testing","/zksync-network/tooling/foundry/migration-guide/testing",{"title":185,"_path":186,"children":187},"ZKsync CLI","/zksync-network/tooling/zksync-cli",[188,189,192,195,198,201,204,207,210,213],{"title":48,"_path":186},{"title":190,"_path":191},"Reading transaction data","/zksync-network/tooling/zksync-cli/reading-transaction-data",{"title":193,"_path":194},"Wallet actions","/zksync-network/tooling/zksync-cli/wallet-actions",{"title":196,"_path":197},"Bridging","/zksync-network/tooling/zksync-cli/bridging",{"title":199,"_path":200},"Interact with contracts","/zksync-network/tooling/zksync-cli/interact-with-contracts",{"title":202,"_path":203},"Creating projects","/zksync-network/tooling/zksync-cli/creating-projects",{"title":205,"_path":206},"Running a node","/zksync-network/tooling/zksync-cli/running-a-node",{"title":208,"_path":209},"Configuring chains","/zksync-network/tooling/zksync-cli/configuring-chains",{"title":211,"_path":212},"Troubleshooting","/zksync-network/tooling/zksync-cli/troubleshooting",{"title":214,"_path":215,"children":216},"CLI Reference","/zksync-network/tooling/zksync-cli/reference",[217,218,221,224,227,230,233,236],{"title":79,"_path":215},{"title":219,"_path":220},"zksync-cli bridge","/zksync-network/tooling/zksync-cli/reference/zksync-cli-bridge",{"title":222,"_path":223},"zksync-cli config chains","/zksync-network/tooling/zksync-cli/reference/zksync-cli-config-chains",{"title":225,"_path":226},"zksync-cli contract","/zksync-network/tooling/zksync-cli/reference/zksync-cli-contract",{"title":228,"_path":229},"zksync-cli create","/zksync-network/tooling/zksync-cli/reference/zksync-cli-create",{"title":231,"_path":232},"zksync-cli dev","/zksync-network/tooling/zksync-cli/reference/zksync-cli-dev",{"title":234,"_path":235},"zksync-cli transaction","/zksync-network/tooling/zksync-cli/reference/zksync-cli-transaction",{"title":237,"_path":238},"zksync-cli wallet","/zksync-network/tooling/zksync-cli/reference/zksync-cli-wallet",{"title":240,"_path":241},"Block explorers","/zksync-network/tooling/block-explorers",{"title":243,"_path":244},"ZKsync External Node","/zksync-network/tooling/external-node",{"title":246,"_path":247},"ZKsync Easy On-Ramp","/zksync-network/tooling/zksync-easy-onramp",{"title":249,"_path":250,"children":251},"ZKsync OS Developer Preview","/zksync-network/zksync-os",[252,254,257,260],{"title":253,"_path":250},"ZKsync OS Overview",{"title":255,"_path":256},"Network Details","/zksync-network/zksync-os/network-details",{"title":258,"_path":259},"Developer Quickstart","/zksync-network/zksync-os/quickstart",{"title":72,"_path":261},"/zksync-network/zksync-os/faqs",{"title":263,"_path":264,"children":265},"ZKsync Era","/zksync-network/zksync-era",[266,268,271,274,313],{"title":267,"_path":264},"About ZKsync Era",{"title":269,"_path":270},"ZKsync Era RPC","/zksync-network/zksync-era/network-details",{"title":272,"_path":273},"Features","/zksync-network/zksync-era/unique-features",{"title":275,"_path":276,"children":277},"Ecosystem","/zksync-network/zksync-era/ecosystem",[278,280,283,286,289,292,295,298,301,304,307,310],{"title":279,"_path":276},"Explore the ecosystem",{"title":281,"_path":282},"Bridges","/zksync-network/zksync-era/ecosystem/bridges",{"title":284,"_path":285},"Cross chain","/zksync-network/zksync-era/ecosystem/cross-chain",{"title":287,"_path":288},"Data indexers","/zksync-network/zksync-era/ecosystem/data-indexers",{"title":290,"_path":291},"Monitoring","/zksync-network/zksync-era/ecosystem/monitoring",{"title":293,"_path":294},"Network faucets","/zksync-network/zksync-era/ecosystem/network-faucets",{"title":296,"_path":297},"NFT marketplaces","/zksync-network/zksync-era/ecosystem/nft-marketplaces",{"title":299,"_path":300},"Oracles","/zksync-network/zksync-era/ecosystem/oracles",{"title":302,"_path":303},"RPC providers","/zksync-network/zksync-era/ecosystem/node-providers",{"title":305,"_path":306},"Wallets","/zksync-network/zksync-era/ecosystem/wallets",{"title":308,"_path":309},"User Onboarding","/zksync-network/zksync-era/ecosystem/user-onboarding",{"title":311,"_path":312},"Paymasters","/zksync-network/zksync-era/ecosystem/paymasters",{"title":314,"_path":315},"Security and best practices","/zksync-network/zksync-era/security-best-practices",{"title":317,"_path":318,"children":319},"Contributing","/zksync-network/contributing",[320,322],{"title":321,"_path":318},"Contributing to Documentation",{"title":323,"_path":324},"Protocol Contributions","/zksync-network/contributing/protocol-contributions",{"title":326,"_path":327,"children":328},"ZK Stack","/zk-stack",[329,331,334,364,386,402,437],{"title":330,"_path":327},"ZK Stack Overview",{"title":332,"_path":333},"ZKsync Chains","/zk-stack/zk-chains",{"title":335,"_path":336,"children":337},"Components","/zk-stack/components",[338,340,343,346,355,358,361],{"title":339,"_path":336},"ZK Stack Components Overview",{"title":341,"_path":342},"ZKsync OS","/zk-stack/components/zksync-os",{"title":344,"_path":345},"ZKsync OS Server","/zk-stack/components/server",{"title":347,"_path":348,"children":349},"ZKsync Airbender","/zk-stack/components/zksync-airbender",[350,352],{"title":351,"_path":348},"Airbender Overview",{"title":353,"_path":354},"Airbender Deep Dive","/zk-stack/components/zksync-airbender/deepdive",{"title":356,"_path":357},"Block explorer","/zk-stack/components/block-explorer",{"title":359,"_path":360},"Portal","/zk-stack/components/portal",{"title":362,"_path":363},"Fee withdrawer","/zk-stack/components/fee-withdrawer",{"title":365,"_path":366,"children":367},"Run a ZKsync Chain","/zk-stack/running",[368,371,374,377,380,383],{"title":369,"_path":370},"Launch a ZKsync chain","/zk-stack/running/quickstart",{"title":372,"_path":373},"Interact with your chain","/zk-stack/running/using-a-local-zk-chain",{"title":375,"_path":376},"ZKsync Gateway","/zk-stack/running/gateway-settlement-layer",{"title":378,"_path":379},"Prover setup","/zk-stack/running/proving",{"title":381,"_path":382},"Ownership Model","/zk-stack/running/ownership-model",{"title":384,"_path":385},"Rollup as a Service","/zk-stack/running/raas",{"title":387,"_path":388,"children":389},"Customizations","/zk-stack/customizations",[390,393,396,399],{"title":391,"_path":392},"Custom base tokens","/zk-stack/customizations/custom-base-tokens",{"title":394,"_path":395},"Validium in ZK Stack","/zk-stack/customizations/validium",{"title":397,"_path":398},"Configurations","/zk-stack/customizations/configurations",{"title":400,"_path":401},"Transaction filtering","/zk-stack/customizations/transaction-filtering",{"title":403,"_path":404,"children":405},"Prividium™","/zk-stack/prividium",[406,409,411,413,416,419,422,425,428,431,434],{"title":407,"_path":408},"Prividium™ Overview","/zk-stack/prividium/overview",{"title":272,"_path":410},"/zk-stack/prividium/features",{"title":51,"_path":412},"/zk-stack/prividium/architecture",{"title":414,"_path":415},"Deployment Model","/zk-stack/prividium/deployment",{"title":417,"_path":418},"Proxy RPC API","/zk-stack/prividium/proxy",{"title":420,"_path":421},"Administration and User Management","/zk-stack/prividium/administration-user-management",{"title":423,"_path":424},"Permissions and Access Control","/zk-stack/prividium/permissions-overview",{"title":426,"_path":427},"Prividium™ SDK","/zk-stack/prividium/sdk",{"title":429,"_path":430},"Private Block Explorer","/zk-stack/prividium/explorer",{"title":432,"_path":433},"Developer Considerations","/zk-stack/prividium/developer-considerations",{"title":435,"_path":436},"Prividium™ License Model","/zk-stack/prividium/license",{"title":438,"_path":439},"Open Source License","/zk-stack/license",{"title":441,"_path":442,"children":443},"ZKsync Protocol","/zksync-protocol",[444,446,463,488,501,522,541,554,758],{"title":445,"_path":442},"Getting started with ZKsync protocol",{"title":447,"_path":448,"children":449},"ZKsync protocol overview","/zksync-protocol/rollup",[450,451,454,457,460],{"title":447,"_path":448},{"title":452,"_path":453},"Bridging assets","/zksync-protocol/rollup/bridging-assets",{"title":455,"_path":456},"Finality","/zksync-protocol/rollup/finality",{"title":458,"_path":459},"Data availability","/zksync-protocol/rollup/data-availability",{"title":461,"_path":462},"Pubdata compression","/zksync-protocol/rollup/pubdata-compression",{"title":341,"_path":464,"children":465},"/zksync-protocol/zksyncos",[466,467,470,473,476,479,482,485],{"title":253,"_path":464},{"title":468,"_path":469},"Double Resource Accounting","/zksync-protocol/zksyncos/double-accounting",{"title":471,"_path":472},"Bootloader","/zksync-protocol/zksyncos/bootloader",{"title":474,"_path":475},"Execution Environments","/zksync-protocol/zksyncos/execution-environment",{"title":477,"_path":478},"System","/zksync-protocol/zksyncos/system",{"title":480,"_path":481},"Processing of Transactions","/zksync-protocol/zksyncos/tx-processing",{"title":483,"_path":484},"System Hooks","/zksync-protocol/zksyncos/system-hooks",{"title":486,"_path":487},"Runner Flow","/zksync-protocol/zksyncos/runner-flow",{"title":375,"_path":489,"children":490},"/zksync-protocol/gateway",[491,493,495,498],{"title":492,"_path":489},"Gateway Overview",{"title":272,"_path":494},"/zksync-protocol/gateway/features",{"title":496,"_path":497},"Data Availability Considerations","/zksync-protocol/gateway/da-considerations",{"title":499,"_path":500},"Frequently Asked Questions","/zksync-protocol/gateway/gateway-faq",{"title":502,"_path":503,"children":504},"Web3 API","/zksync-protocol/api",[505,507,510,513,516,519],{"title":506,"_path":503},"API Overview",{"title":508,"_path":509},"Conventions","/zksync-protocol/api/conventions",{"title":511,"_path":512},"Ethereum JSON-RPC API","/zksync-protocol/api/ethereum-rpc",{"title":514,"_path":515},"Debug JSON-RPC API","/zksync-protocol/api/debug-rpc",{"title":517,"_path":518},"ZKsync JSON-RPC API","/zksync-protocol/api/zks-rpc",{"title":520,"_path":521},"PubSub JSON-RPC API","/zksync-protocol/api/pub-sub-rpc",{"title":523,"_path":524,"children":525},"Contracts","/zksync-protocol/contracts",[526,528],{"title":527,"_path":524},"ZKsync contracts",{"title":32,"_path":529,"children":530},"/zksync-protocol/contracts/l1-contracts",[531,532,535,538],{"title":32,"_path":529},{"title":533,"_path":534},"L1 ecosystem contracts","/zksync-protocol/contracts/l1-contracts/l1-ecosystem-contracts",{"title":536,"_path":537},"Shared bridges","/zksync-protocol/contracts/l1-contracts/shared-bridges",{"title":539,"_path":540},"ZKsync Chain addresses","/zksync-protocol/contracts/l1-contracts/zk-chain-addresses",{"title":542,"_path":543,"children":544},"Protocol security","/zksync-protocol/security",[545,548,551],{"title":546,"_path":547},"Audits","/zksync-protocol/security/audits",{"title":549,"_path":550},"Bug bounty","/zksync-protocol/security/bug-bounty",{"title":552,"_path":553},"Withdrawal delay","/zksync-protocol/security/withdrawal-delay",{"title":555,"_path":556,"children":557},"EraVM Chains","/zksync-protocol/era-vm",[558,560,587,596,613,678,690,712,739],{"title":559,"_path":556},"EraVM Overview",{"title":561,"_path":562,"children":563},"Transactions","/zksync-protocol/era-vm/transactions",[564,567,570,573],{"title":565,"_path":566},"Transaction lifecycle","/zksync-protocol/era-vm/transactions/transaction-lifecycle",{"title":568,"_path":569},"Blocks and batches","/zksync-protocol/era-vm/transactions/blocks",{"title":571,"_path":572},"L1 \u003C-> L2 communication","/zksync-protocol/era-vm/transactions/l1_l2_communication",{"title":574,"_path":575,"children":576},"Fee model","/zksync-protocol/era-vm/transactions/fee-model",[577,578,581,584],{"title":574,"_path":575},{"title":579,"_path":580},"How L2 gas price works","/zksync-protocol/era-vm/transactions/fee-model/how-l2-gas-price-works",{"title":582,"_path":583},"How ZKsync Chains charges for pubdata","/zksync-protocol/era-vm/transactions/fee-model/how-we-charge-for-pubdata",{"title":585,"_path":586},"ZKsync fee structure","/zksync-protocol/era-vm/transactions/fee-model/fee-structure",{"title":588,"_path":589,"children":590},"EraVM","/zksync-protocol/era-vm/vm",[591,593],{"title":592,"_path":589},"ZKsync Virtual Machine primer",{"title":594,"_path":595},"VM formal specification","/zksync-protocol/era-vm/vm/formal-spec",{"title":523,"_path":597,"children":598},"/zksync-protocol/era-vm/contracts",[599,600,602,604,607,610],{"title":527,"_path":597},{"title":471,"_path":601},"/zksync-protocol/era-vm/contracts/bootloader",{"title":35,"_path":603},"/zksync-protocol/era-vm/contracts/system-contracts",{"title":605,"_path":606},"Handling L1->L2 ops on ZKsync","/zksync-protocol/era-vm/contracts/handling-l1-l2-ops",{"title":608,"_path":609},"Handling pubdata","/zksync-protocol/era-vm/contracts/handling-pubdata",{"title":611,"_path":612},"Pubdata post 4844","/zksync-protocol/era-vm/contracts/pubdata-post-4844",{"title":614,"_path":615,"children":616},"Circuits","/zksync-protocol/era-vm/circuits",[617,618,621,672,675],{"title":79,"_path":615},{"title":619,"_path":620},"ZK terminology","/zksync-protocol/era-vm/circuits/zk-terminology",{"title":622,"_path":623,"children":624},"Concrete circuits","/zksync-protocol/era-vm/circuits/circuits",[625,626,629,632,635,638,641,644,647,650,653,656,659],{"title":79,"_path":623},{"title":627,"_path":628},"Circuit testing","/zksync-protocol/era-vm/circuits/circuits/circuit-testing",{"title":630,"_path":631},"CodeDecommitter","/zksync-protocol/era-vm/circuits/circuits/code-decommitter",{"title":633,"_path":634},"DemuxLogQueue","/zksync-protocol/era-vm/circuits/circuits/demux-log-queue",{"title":636,"_path":637},"ECRecover","/zksync-protocol/era-vm/circuits/circuits/ecrecover",{"title":639,"_path":640},"KeccakRoundFunction","/zksync-protocol/era-vm/circuits/circuits/keccak-round-function",{"title":642,"_path":643},"L1MessagesHasher","/zksync-protocol/era-vm/circuits/circuits/l1-messages-hasher",{"title":645,"_path":646},"LogSorter","/zksync-protocol/era-vm/circuits/circuits/log-sorter",{"title":648,"_path":649},"Main VM","/zksync-protocol/era-vm/circuits/circuits/main-vm",{"title":651,"_path":652},"RAMPermutation","/zksync-protocol/era-vm/circuits/circuits/ram-permutation",{"title":654,"_path":655},"Sha256RoundFunction","/zksync-protocol/era-vm/circuits/circuits/sha256-round-function",{"title":657,"_path":658},"StorageApplication","/zksync-protocol/era-vm/circuits/circuits/storage-application",{"title":660,"_path":661,"children":662},"Sorting and deduplicating","/zksync-protocol/era-vm/circuits/circuits/sorting",[663,664,667,670],{"title":79,"_path":661},{"title":665,"_path":666},"SortDecommitments","/zksync-protocol/era-vm/circuits/circuits/sorting/sort-decommitments",{"title":668,"_path":669},"StorageSorter","/zksync-protocol/era-vm/circuits/circuits/sorting/storage-sorter",{"title":645,"_path":671},"/zksync-protocol/era-vm/circuits/circuits/sorting/log-sorter",{"title":673,"_path":674},"Boojum gadgets","/zksync-protocol/era-vm/circuits/boojum-gadgets",{"title":676,"_path":677},"Boojum function - `check_if_satisfied`","/zksync-protocol/era-vm/circuits/boojum-function-check-if-satisfied",{"title":679,"_path":680,"children":681},"Compilers","/zksync-protocol/era-vm/compiler",[682],{"title":683,"_path":684,"children":685},"Compiler toolchain overview","/zksync-protocol/era-vm/compiler/toolchain",[686,687],{"title":683,"_path":684},{"title":688,"_path":689},"LLVM framework","/zksync-protocol/era-vm/compiler/toolchain/llvm",{"title":691,"_path":692,"children":693},"Differences from L1","/zksync-protocol/era-vm/differences",[694,697,700,703,706,709],{"title":695,"_path":696},"EVM instructions","/zksync-protocol/era-vm/differences/evm-instructions",{"title":698,"_path":699},"Nonces","/zksync-protocol/era-vm/differences/nonces",{"title":701,"_path":702},"Libraries","/zksync-protocol/era-vm/differences/libraries",{"title":704,"_path":705},"Precompiles","/zksync-protocol/era-vm/differences/pre-compiles",{"title":707,"_path":708},"Native AA vs EIP 4337","/zksync-protocol/era-vm/differences/native-vs-eip4337",{"title":710,"_path":711},"Contract deployment","/zksync-protocol/era-vm/differences/contract-deployment",{"title":713,"_path":714,"children":715},"EVM Bytecode Interpreter","/zksync-protocol/era-vm/evm-interpreter",[716,718,721,724,727,730,733,736],{"title":79,"_path":717},"/zksync-protocol/era-vm/evm-interpreter/overview",{"title":719,"_path":720},"EVM bytecode deployment and execution","/zksync-protocol/era-vm/evm-interpreter/deployment-execution",{"title":722,"_path":723},"EraVM ↔ EVM Contract Interactions","/zksync-protocol/era-vm/evm-interpreter/era-evm-interactions",{"title":725,"_path":726},"Differences Between the EVM Bytecode Interpreter and Ethereum","/zksync-protocol/era-vm/evm-interpreter/evm-differences",{"title":728,"_path":729},"Technical Architecture of the EVM Interpreter","/zksync-protocol/era-vm/evm-interpreter/technical-details",{"title":731,"_path":732},"EVM Gas Interpretation","/zksync-protocol/era-vm/evm-interpreter/evm-gas-interpretation",{"title":734,"_path":735},"Pre Deployed Contracts","/zksync-protocol/era-vm/evm-interpreter/pre-deployed-contracts",{"title":737,"_path":738},"EVM Bytecode Interpreter FAQ","/zksync-protocol/era-vm/evm-interpreter/faq",{"title":740,"_path":741,"children":742},"Account Abstraction","/zksync-protocol/era-vm/account-abstraction",[743,744,747,749,752,755],{"title":9,"_path":741},{"title":745,"_path":746},"Design","/zksync-protocol/era-vm/account-abstraction/design",{"title":311,"_path":748},"/zksync-protocol/era-vm/account-abstraction/paymasters",{"title":750,"_path":751},"Building smart accounts","/zksync-protocol/era-vm/account-abstraction/building-smart-accounts",{"title":753,"_path":754},"Signature validation","/zksync-protocol/era-vm/account-abstraction/signature-validation",{"title":756,"_path":757},"Extending EIP-4337","/zksync-protocol/era-vm/account-abstraction/extending-4337",{"title":759,"_path":760},"Upgrades and migrations","/zksync-protocol/upgrades-and-migrations",{"_path":85,"_dir":762,"_draft":763,"_partial":763,"_locale":764,"title":84,"description":765,"body":766,"_type":6565,"_id":6566,"_source":6567,"_file":6568,"_stem":6569,"_extension":6570,"sitemap":6571},"zksync-connect",false,"","A guide for sending and verifying interop messages with ZKsync Connect.",{"type":767,"children":768,"toc":6551},"root",[769,782,787,802,807,825,830,858,877,884,913,1524,1531,1552,1795,1801,1822,2253,2259,2280,2833,2839,2844,2850,2868,3406,3411,3417,3438,3444,3980,3986,3991,5558,5564,5569,5576,6102,6108,6545],{"type":770,"tag":771,"props":772,"children":773},"element","p",{},[774,780],{"type":770,"tag":775,"props":776,"children":777},"a",{"href":76},[778],{"type":779,"value":75},"text",{"type":779,"value":781}," enables sending and verifying messages across ZKsync chains via ZKsync Gateway.\nIt is the first phase of universal interoperability for the Elastic Network.",{"type":770,"tag":771,"props":783,"children":784},{},[785],{"type":779,"value":786},"An interop message consists of arbitrary data and has two simple properties:",{"type":770,"tag":788,"props":789,"children":790},"ol",{},[791,797],{"type":770,"tag":792,"props":793,"children":794},"li",{},[795],{"type":779,"value":796},"Anyone can send a message.",{"type":770,"tag":792,"props":798,"children":799},{},[800],{"type":779,"value":801},"Anyone can verify that a given message was successfully sent on some chain.",{"type":770,"tag":771,"props":803,"children":804},{},[805],{"type":779,"value":806},"The message itself has no destination chain or address.\nIt’s simply a payload created by a user or contract that gets broadcast.\nThere is no expiration for when messages can be verified.",{"type":770,"tag":771,"props":808,"children":809},{},[810,812,817,819,823],{"type":779,"value":811},"Messages can only be sent and verified on ZKsync chains that use ZKsync Gateway.\nTo set up a local multichain testing environment with Gateway, check out the ",{"type":770,"tag":775,"props":813,"children":814},{"href":376},[815],{"type":779,"value":816},"Running ZKsync Gateway locally guide",{"type":779,"value":818},".\nTo see which testnet and mainnet chains use ZKsync Gateway, check the ",{"type":770,"tag":775,"props":820,"children":821},{"href":27},[822],{"type":779,"value":30},{"type":779,"value":824}," table.",{"type":770,"tag":771,"props":826,"children":827},{},[828],{"type":779,"value":829},"Before verifying a message, the transaction that the message was sent in must be executed in a batch,\nand the interop root must be updated on the target chain.\nThe full flow for sending and verifying a message looks like this:",{"type":770,"tag":788,"props":831,"children":832},{},[833,838,843,848,853],{"type":770,"tag":792,"props":834,"children":835},{},[836],{"type":779,"value":837},"Send the message.",{"type":770,"tag":792,"props":839,"children":840},{},[841],{"type":779,"value":842},"Check that the message transaction is fully executed.",{"type":770,"tag":792,"props":844,"children":845},{},[846],{"type":779,"value":847},"Check that the gateway proof is ready.",{"type":770,"tag":792,"props":849,"children":850},{},[851],{"type":779,"value":852},"Check that the interop root is updated on the target chain.",{"type":770,"tag":792,"props":854,"children":855},{},[856],{"type":779,"value":857},"Verify the message.",{"type":770,"tag":859,"props":860,"children":862},"callout",{"icon":861},"i-heroicons-light-bulb",[863],{"type":770,"tag":771,"props":864,"children":865},{},[866,868,875],{"type":779,"value":867},"This guide is for EraVM-powered chains using the ",{"type":770,"tag":869,"props":870,"children":872},"code",{"className":871},[],[873],{"type":779,"value":874},"zksync-ethers",{"type":779,"value":876}," SDK.",{"type":770,"tag":878,"props":879,"children":881},"h2",{"id":880},"sending-a-message",[882],{"type":779,"value":883},"Sending a message",{"type":770,"tag":771,"props":885,"children":886},{},[887,889,895,897,903,905,911],{"type":779,"value":888},"You can use the ",{"type":770,"tag":869,"props":890,"children":892},{"className":891},[],[893],{"type":779,"value":894},"InteropClient",{"type":779,"value":896}," along with the ",{"type":770,"tag":869,"props":898,"children":900},{"className":899},[],[901],{"type":779,"value":902},"sendMessage",{"type":779,"value":904}," method to send any message.\nThe method accepts either a string or a ",{"type":770,"tag":869,"props":906,"children":908},{"className":907},[],[909],{"type":779,"value":910},"BytesLike",{"type":779,"value":912}," value, and returns the transaction hash.",{"type":770,"tag":914,"props":915,"children":919},"pre",{"className":916,"code":917,"language":918,"meta":764,"style":764},"language-ts shiki shiki-themes github-light github-light github-dark","import { Provider, Wallet, InteropClient } from 'zksync-ethers';\n\n// private key for local pre-configured rich wallet\nconst PRIVATE_KEY = '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110';\nconst CHAIN1_RPC = 'http://localhost:3050';\nconst GW_RPC = 'http://localhost:3150';\nconst L1_RPC = 'http://localhost:8545';\nconst GW_CHAIN_ID = BigInt('506');\n\nconst providerl2 = new Provider(CHAIN1_RPC);\nconst providerl1 = new Provider(L1_RPC);\nconst wallet = new Wallet(PRIVATE_KEY, providerl2, providerl1);\n\nconst interop = new InteropClient({\n  gateway: {\n    // 'testnet' | 'mainnet' | 'local'\n    env: 'local',\n    gwRpcUrl: GW_RPC,\n    gwChainId: GW_CHAIN_ID,\n  },\n});\n\nexport async function send() {\n  const message = 'Some L2->L1 message';\n  const sent = await interop.sendMessage(wallet, message);\n  console.log('Sent on source chain:', sent);\n  // -> { txHash, l1BatchNumber, l1BatchTxIndex, l2ToL1LogIndex, sender, messageHex }\n}\n\n","ts",[920],{"type":770,"tag":869,"props":921,"children":922},{"__ignoreMap":764},[923,957,967,977,1006,1032,1058,1084,1122,1130,1170,1208,1248,1256,1287,1296,1305,1324,1342,1360,1369,1378,1386,1415,1442,1478,1506,1515],{"type":770,"tag":924,"props":925,"children":928},"span",{"class":926,"line":927},"line",1,[929,935,941,946,952],{"type":770,"tag":924,"props":930,"children":932},{"style":931},"--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583",[933],{"type":779,"value":934},"import",{"type":770,"tag":924,"props":936,"children":938},{"style":937},"--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[939],{"type":779,"value":940}," { Provider, Wallet, InteropClient } ",{"type":770,"tag":924,"props":942,"children":943},{"style":931},[944],{"type":779,"value":945},"from",{"type":770,"tag":924,"props":947,"children":949},{"style":948},"--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[950],{"type":779,"value":951}," 'zksync-ethers'",{"type":770,"tag":924,"props":953,"children":954},{"style":937},[955],{"type":779,"value":956},";\n",{"type":770,"tag":924,"props":958,"children":960},{"class":926,"line":959},2,[961],{"type":770,"tag":924,"props":962,"children":964},{"emptyLinePlaceholder":963},true,[965],{"type":779,"value":966},"\n",{"type":770,"tag":924,"props":968,"children":970},{"class":926,"line":969},3,[971],{"type":770,"tag":924,"props":972,"children":974},{"style":973},"--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D",[975],{"type":779,"value":976},"// private key for local pre-configured rich wallet\n",{"type":770,"tag":924,"props":978,"children":980},{"class":926,"line":979},4,[981,986,992,997,1002],{"type":770,"tag":924,"props":982,"children":983},{"style":931},[984],{"type":779,"value":985},"const",{"type":770,"tag":924,"props":987,"children":989},{"style":988},"--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[990],{"type":779,"value":991}," PRIVATE_KEY",{"type":770,"tag":924,"props":993,"children":994},{"style":931},[995],{"type":779,"value":996}," =",{"type":770,"tag":924,"props":998,"children":999},{"style":948},[1000],{"type":779,"value":1001}," '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110'",{"type":770,"tag":924,"props":1003,"children":1004},{"style":937},[1005],{"type":779,"value":956},{"type":770,"tag":924,"props":1007,"children":1009},{"class":926,"line":1008},5,[1010,1014,1019,1023,1028],{"type":770,"tag":924,"props":1011,"children":1012},{"style":931},[1013],{"type":779,"value":985},{"type":770,"tag":924,"props":1015,"children":1016},{"style":988},[1017],{"type":779,"value":1018}," CHAIN1_RPC",{"type":770,"tag":924,"props":1020,"children":1021},{"style":931},[1022],{"type":779,"value":996},{"type":770,"tag":924,"props":1024,"children":1025},{"style":948},[1026],{"type":779,"value":1027}," 'http://localhost:3050'",{"type":770,"tag":924,"props":1029,"children":1030},{"style":937},[1031],{"type":779,"value":956},{"type":770,"tag":924,"props":1033,"children":1035},{"class":926,"line":1034},6,[1036,1040,1045,1049,1054],{"type":770,"tag":924,"props":1037,"children":1038},{"style":931},[1039],{"type":779,"value":985},{"type":770,"tag":924,"props":1041,"children":1042},{"style":988},[1043],{"type":779,"value":1044}," GW_RPC",{"type":770,"tag":924,"props":1046,"children":1047},{"style":931},[1048],{"type":779,"value":996},{"type":770,"tag":924,"props":1050,"children":1051},{"style":948},[1052],{"type":779,"value":1053}," 'http://localhost:3150'",{"type":770,"tag":924,"props":1055,"children":1056},{"style":937},[1057],{"type":779,"value":956},{"type":770,"tag":924,"props":1059,"children":1061},{"class":926,"line":1060},7,[1062,1066,1071,1075,1080],{"type":770,"tag":924,"props":1063,"children":1064},{"style":931},[1065],{"type":779,"value":985},{"type":770,"tag":924,"props":1067,"children":1068},{"style":988},[1069],{"type":779,"value":1070}," L1_RPC",{"type":770,"tag":924,"props":1072,"children":1073},{"style":931},[1074],{"type":779,"value":996},{"type":770,"tag":924,"props":1076,"children":1077},{"style":948},[1078],{"type":779,"value":1079}," 'http://localhost:8545'",{"type":770,"tag":924,"props":1081,"children":1082},{"style":937},[1083],{"type":779,"value":956},{"type":770,"tag":924,"props":1085,"children":1087},{"class":926,"line":1086},8,[1088,1092,1097,1101,1107,1112,1117],{"type":770,"tag":924,"props":1089,"children":1090},{"style":931},[1091],{"type":779,"value":985},{"type":770,"tag":924,"props":1093,"children":1094},{"style":988},[1095],{"type":779,"value":1096}," GW_CHAIN_ID",{"type":770,"tag":924,"props":1098,"children":1099},{"style":931},[1100],{"type":779,"value":996},{"type":770,"tag":924,"props":1102,"children":1104},{"style":1103},"--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[1105],{"type":779,"value":1106}," BigInt",{"type":770,"tag":924,"props":1108,"children":1109},{"style":937},[1110],{"type":779,"value":1111},"(",{"type":770,"tag":924,"props":1113,"children":1114},{"style":948},[1115],{"type":779,"value":1116},"'506'",{"type":770,"tag":924,"props":1118,"children":1119},{"style":937},[1120],{"type":779,"value":1121},");\n",{"type":770,"tag":924,"props":1123,"children":1125},{"class":926,"line":1124},9,[1126],{"type":770,"tag":924,"props":1127,"children":1128},{"emptyLinePlaceholder":963},[1129],{"type":779,"value":966},{"type":770,"tag":924,"props":1131,"children":1133},{"class":926,"line":1132},10,[1134,1138,1143,1147,1152,1157,1161,1166],{"type":770,"tag":924,"props":1135,"children":1136},{"style":931},[1137],{"type":779,"value":985},{"type":770,"tag":924,"props":1139,"children":1140},{"style":988},[1141],{"type":779,"value":1142}," providerl2",{"type":770,"tag":924,"props":1144,"children":1145},{"style":931},[1146],{"type":779,"value":996},{"type":770,"tag":924,"props":1148,"children":1149},{"style":931},[1150],{"type":779,"value":1151}," new",{"type":770,"tag":924,"props":1153,"children":1154},{"style":1103},[1155],{"type":779,"value":1156}," Provider",{"type":770,"tag":924,"props":1158,"children":1159},{"style":937},[1160],{"type":779,"value":1111},{"type":770,"tag":924,"props":1162,"children":1163},{"style":988},[1164],{"type":779,"value":1165},"CHAIN1_RPC",{"type":770,"tag":924,"props":1167,"children":1168},{"style":937},[1169],{"type":779,"value":1121},{"type":770,"tag":924,"props":1171,"children":1173},{"class":926,"line":1172},11,[1174,1178,1183,1187,1191,1195,1199,1204],{"type":770,"tag":924,"props":1175,"children":1176},{"style":931},[1177],{"type":779,"value":985},{"type":770,"tag":924,"props":1179,"children":1180},{"style":988},[1181],{"type":779,"value":1182}," providerl1",{"type":770,"tag":924,"props":1184,"children":1185},{"style":931},[1186],{"type":779,"value":996},{"type":770,"tag":924,"props":1188,"children":1189},{"style":931},[1190],{"type":779,"value":1151},{"type":770,"tag":924,"props":1192,"children":1193},{"style":1103},[1194],{"type":779,"value":1156},{"type":770,"tag":924,"props":1196,"children":1197},{"style":937},[1198],{"type":779,"value":1111},{"type":770,"tag":924,"props":1200,"children":1201},{"style":988},[1202],{"type":779,"value":1203},"L1_RPC",{"type":770,"tag":924,"props":1205,"children":1206},{"style":937},[1207],{"type":779,"value":1121},{"type":770,"tag":924,"props":1209,"children":1211},{"class":926,"line":1210},12,[1212,1216,1221,1225,1229,1234,1238,1243],{"type":770,"tag":924,"props":1213,"children":1214},{"style":931},[1215],{"type":779,"value":985},{"type":770,"tag":924,"props":1217,"children":1218},{"style":988},[1219],{"type":779,"value":1220}," wallet",{"type":770,"tag":924,"props":1222,"children":1223},{"style":931},[1224],{"type":779,"value":996},{"type":770,"tag":924,"props":1226,"children":1227},{"style":931},[1228],{"type":779,"value":1151},{"type":770,"tag":924,"props":1230,"children":1231},{"style":1103},[1232],{"type":779,"value":1233}," Wallet",{"type":770,"tag":924,"props":1235,"children":1236},{"style":937},[1237],{"type":779,"value":1111},{"type":770,"tag":924,"props":1239,"children":1240},{"style":988},[1241],{"type":779,"value":1242},"PRIVATE_KEY",{"type":770,"tag":924,"props":1244,"children":1245},{"style":937},[1246],{"type":779,"value":1247},", providerl2, providerl1);\n",{"type":770,"tag":924,"props":1249,"children":1251},{"class":926,"line":1250},13,[1252],{"type":770,"tag":924,"props":1253,"children":1254},{"emptyLinePlaceholder":963},[1255],{"type":779,"value":966},{"type":770,"tag":924,"props":1257,"children":1259},{"class":926,"line":1258},14,[1260,1264,1269,1273,1277,1282],{"type":770,"tag":924,"props":1261,"children":1262},{"style":931},[1263],{"type":779,"value":985},{"type":770,"tag":924,"props":1265,"children":1266},{"style":988},[1267],{"type":779,"value":1268}," interop",{"type":770,"tag":924,"props":1270,"children":1271},{"style":931},[1272],{"type":779,"value":996},{"type":770,"tag":924,"props":1274,"children":1275},{"style":931},[1276],{"type":779,"value":1151},{"type":770,"tag":924,"props":1278,"children":1279},{"style":1103},[1280],{"type":779,"value":1281}," InteropClient",{"type":770,"tag":924,"props":1283,"children":1284},{"style":937},[1285],{"type":779,"value":1286},"({\n",{"type":770,"tag":924,"props":1288,"children":1290},{"class":926,"line":1289},15,[1291],{"type":770,"tag":924,"props":1292,"children":1293},{"style":937},[1294],{"type":779,"value":1295},"  gateway: {\n",{"type":770,"tag":924,"props":1297,"children":1299},{"class":926,"line":1298},16,[1300],{"type":770,"tag":924,"props":1301,"children":1302},{"style":973},[1303],{"type":779,"value":1304},"    // 'testnet' | 'mainnet' | 'local'\n",{"type":770,"tag":924,"props":1306,"children":1308},{"class":926,"line":1307},17,[1309,1314,1319],{"type":770,"tag":924,"props":1310,"children":1311},{"style":937},[1312],{"type":779,"value":1313},"    env: ",{"type":770,"tag":924,"props":1315,"children":1316},{"style":948},[1317],{"type":779,"value":1318},"'local'",{"type":770,"tag":924,"props":1320,"children":1321},{"style":937},[1322],{"type":779,"value":1323},",\n",{"type":770,"tag":924,"props":1325,"children":1327},{"class":926,"line":1326},18,[1328,1333,1338],{"type":770,"tag":924,"props":1329,"children":1330},{"style":937},[1331],{"type":779,"value":1332},"    gwRpcUrl: ",{"type":770,"tag":924,"props":1334,"children":1335},{"style":988},[1336],{"type":779,"value":1337},"GW_RPC",{"type":770,"tag":924,"props":1339,"children":1340},{"style":937},[1341],{"type":779,"value":1323},{"type":770,"tag":924,"props":1343,"children":1345},{"class":926,"line":1344},19,[1346,1351,1356],{"type":770,"tag":924,"props":1347,"children":1348},{"style":937},[1349],{"type":779,"value":1350},"    gwChainId: ",{"type":770,"tag":924,"props":1352,"children":1353},{"style":988},[1354],{"type":779,"value":1355},"GW_CHAIN_ID",{"type":770,"tag":924,"props":1357,"children":1358},{"style":937},[1359],{"type":779,"value":1323},{"type":770,"tag":924,"props":1361,"children":1363},{"class":926,"line":1362},20,[1364],{"type":770,"tag":924,"props":1365,"children":1366},{"style":937},[1367],{"type":779,"value":1368},"  },\n",{"type":770,"tag":924,"props":1370,"children":1372},{"class":926,"line":1371},21,[1373],{"type":770,"tag":924,"props":1374,"children":1375},{"style":937},[1376],{"type":779,"value":1377},"});\n",{"type":770,"tag":924,"props":1379,"children":1381},{"class":926,"line":1380},22,[1382],{"type":770,"tag":924,"props":1383,"children":1384},{"emptyLinePlaceholder":963},[1385],{"type":779,"value":966},{"type":770,"tag":924,"props":1387,"children":1389},{"class":926,"line":1388},23,[1390,1395,1400,1405,1410],{"type":770,"tag":924,"props":1391,"children":1392},{"style":931},[1393],{"type":779,"value":1394},"export",{"type":770,"tag":924,"props":1396,"children":1397},{"style":931},[1398],{"type":779,"value":1399}," async",{"type":770,"tag":924,"props":1401,"children":1402},{"style":931},[1403],{"type":779,"value":1404}," function",{"type":770,"tag":924,"props":1406,"children":1407},{"style":1103},[1408],{"type":779,"value":1409}," send",{"type":770,"tag":924,"props":1411,"children":1412},{"style":937},[1413],{"type":779,"value":1414},"() {\n",{"type":770,"tag":924,"props":1416,"children":1418},{"class":926,"line":1417},24,[1419,1424,1429,1433,1438],{"type":770,"tag":924,"props":1420,"children":1421},{"style":931},[1422],{"type":779,"value":1423},"  const",{"type":770,"tag":924,"props":1425,"children":1426},{"style":988},[1427],{"type":779,"value":1428}," message",{"type":770,"tag":924,"props":1430,"children":1431},{"style":931},[1432],{"type":779,"value":996},{"type":770,"tag":924,"props":1434,"children":1435},{"style":948},[1436],{"type":779,"value":1437}," 'Some L2->L1 message'",{"type":770,"tag":924,"props":1439,"children":1440},{"style":937},[1441],{"type":779,"value":956},{"type":770,"tag":924,"props":1443,"children":1445},{"class":926,"line":1444},25,[1446,1450,1455,1459,1464,1469,1473],{"type":770,"tag":924,"props":1447,"children":1448},{"style":931},[1449],{"type":779,"value":1423},{"type":770,"tag":924,"props":1451,"children":1452},{"style":988},[1453],{"type":779,"value":1454}," sent",{"type":770,"tag":924,"props":1456,"children":1457},{"style":931},[1458],{"type":779,"value":996},{"type":770,"tag":924,"props":1460,"children":1461},{"style":931},[1462],{"type":779,"value":1463}," await",{"type":770,"tag":924,"props":1465,"children":1466},{"style":937},[1467],{"type":779,"value":1468}," interop.",{"type":770,"tag":924,"props":1470,"children":1471},{"style":1103},[1472],{"type":779,"value":902},{"type":770,"tag":924,"props":1474,"children":1475},{"style":937},[1476],{"type":779,"value":1477},"(wallet, message);\n",{"type":770,"tag":924,"props":1479,"children":1481},{"class":926,"line":1480},26,[1482,1487,1492,1496,1501],{"type":770,"tag":924,"props":1483,"children":1484},{"style":937},[1485],{"type":779,"value":1486},"  console.",{"type":770,"tag":924,"props":1488,"children":1489},{"style":1103},[1490],{"type":779,"value":1491},"log",{"type":770,"tag":924,"props":1493,"children":1494},{"style":937},[1495],{"type":779,"value":1111},{"type":770,"tag":924,"props":1497,"children":1498},{"style":948},[1499],{"type":779,"value":1500},"'Sent on source chain:'",{"type":770,"tag":924,"props":1502,"children":1503},{"style":937},[1504],{"type":779,"value":1505},", sent);\n",{"type":770,"tag":924,"props":1507,"children":1509},{"class":926,"line":1508},27,[1510],{"type":770,"tag":924,"props":1511,"children":1512},{"style":973},[1513],{"type":779,"value":1514},"  // -> { txHash, l1BatchNumber, l1BatchTxIndex, l2ToL1LogIndex, sender, messageHex }\n",{"type":770,"tag":924,"props":1516,"children":1518},{"class":926,"line":1517},28,[1519],{"type":770,"tag":924,"props":1520,"children":1521},{"style":937},[1522],{"type":779,"value":1523},"}\n",{"type":770,"tag":1525,"props":1526,"children":1528},"h3",{"id":1527},"sending-a-message-from-a-smart-contract",[1529],{"type":779,"value":1530},"Sending a message from a smart contract",{"type":770,"tag":771,"props":1532,"children":1533},{},[1534,1536,1542,1544,1550],{"type":779,"value":1535},"To send a message from a smart contract, you can use the ",{"type":770,"tag":869,"props":1537,"children":1539},{"className":1538},[],[1540],{"type":779,"value":1541},"sendToL1",{"type":779,"value":1543}," method on the ",{"type":770,"tag":869,"props":1545,"children":1547},{"className":1546},[],[1548],{"type":779,"value":1549},"L1Messenger",{"type":779,"value":1551}," contract.",{"type":770,"tag":914,"props":1553,"children":1557},{"className":1554,"code":1555,"language":1556,"meta":764,"style":764},"language-solidity shiki shiki-themes github-light github-light github-dark","//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.28;\nimport { IL1Messenger } from '@matterlabs/zksync-contracts/contracts/system-contracts/interfaces/IL1Messenger.sol';\n\ncontract InteropSendMessage {\n  address constant L2_TO_L1_MESSENGER_SYSTEM_CONTRACT_ADDR = 0x0000000000000000000000000000000000008008;\n  IL1Messenger public L1Messenger = IL1Messenger(L2_TO_L1_MESSENGER_SYSTEM_CONTRACT_ADDR);\n\n  function sendMessage(bytes calldata _message) public {\n    L1Messenger.sendToL1(_message);\n  }\n}\n\n","solidity",[1558],{"type":770,"tag":869,"props":1559,"children":1560},{"__ignoreMap":764},[1561,1569,1592,1627,1634,1652,1684,1716,1723,1763,1780,1788],{"type":770,"tag":924,"props":1562,"children":1563},{"class":926,"line":927},[1564],{"type":770,"tag":924,"props":1565,"children":1566},{"style":973},[1567],{"type":779,"value":1568},"//SPDX-License-Identifier: Unlicense\n",{"type":770,"tag":924,"props":1570,"children":1571},{"class":926,"line":959},[1572,1577,1583,1588],{"type":770,"tag":924,"props":1573,"children":1574},{"style":931},[1575],{"type":779,"value":1576},"pragma",{"type":770,"tag":924,"props":1578,"children":1580},{"style":1579},"--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D",[1581],{"type":779,"value":1582}," solidity",{"type":770,"tag":924,"props":1584,"children":1585},{"style":988},[1586],{"type":779,"value":1587}," ^0.8.28",{"type":770,"tag":924,"props":1589,"children":1590},{"style":937},[1591],{"type":779,"value":956},{"type":770,"tag":924,"props":1593,"children":1594},{"class":926,"line":969},[1595,1599,1604,1609,1614,1618,1623],{"type":770,"tag":924,"props":1596,"children":1597},{"style":931},[1598],{"type":779,"value":934},{"type":770,"tag":924,"props":1600,"children":1601},{"style":937},[1602],{"type":779,"value":1603}," { ",{"type":770,"tag":924,"props":1605,"children":1606},{"style":1103},[1607],{"type":779,"value":1608},"IL1Messenger",{"type":770,"tag":924,"props":1610,"children":1611},{"style":937},[1612],{"type":779,"value":1613}," } ",{"type":770,"tag":924,"props":1615,"children":1616},{"style":931},[1617],{"type":779,"value":945},{"type":770,"tag":924,"props":1619,"children":1620},{"style":948},[1621],{"type":779,"value":1622}," '@matterlabs/zksync-contracts/contracts/system-contracts/interfaces/IL1Messenger.sol'",{"type":770,"tag":924,"props":1624,"children":1625},{"style":937},[1626],{"type":779,"value":956},{"type":770,"tag":924,"props":1628,"children":1629},{"class":926,"line":979},[1630],{"type":770,"tag":924,"props":1631,"children":1632},{"emptyLinePlaceholder":963},[1633],{"type":779,"value":966},{"type":770,"tag":924,"props":1635,"children":1636},{"class":926,"line":1008},[1637,1642,1647],{"type":770,"tag":924,"props":1638,"children":1639},{"style":931},[1640],{"type":779,"value":1641},"contract",{"type":770,"tag":924,"props":1643,"children":1644},{"style":1103},[1645],{"type":779,"value":1646}," InteropSendMessage",{"type":770,"tag":924,"props":1648,"children":1649},{"style":937},[1650],{"type":779,"value":1651}," {\n",{"type":770,"tag":924,"props":1653,"children":1654},{"class":926,"line":1034},[1655,1660,1665,1670,1675,1680],{"type":770,"tag":924,"props":1656,"children":1657},{"style":988},[1658],{"type":779,"value":1659},"  address",{"type":770,"tag":924,"props":1661,"children":1662},{"style":931},[1663],{"type":779,"value":1664}," constant",{"type":770,"tag":924,"props":1666,"children":1667},{"style":937},[1668],{"type":779,"value":1669}," L2_TO_L1_MESSENGER_SYSTEM_CONTRACT_ADDR ",{"type":770,"tag":924,"props":1671,"children":1672},{"style":931},[1673],{"type":779,"value":1674},"=",{"type":770,"tag":924,"props":1676,"children":1677},{"style":988},[1678],{"type":779,"value":1679}," 0x0000000000000000000000000000000000008008",{"type":770,"tag":924,"props":1681,"children":1682},{"style":937},[1683],{"type":779,"value":956},{"type":770,"tag":924,"props":1685,"children":1686},{"class":926,"line":1060},[1687,1692,1697,1702,1706,1711],{"type":770,"tag":924,"props":1688,"children":1689},{"style":937},[1690],{"type":779,"value":1691},"  IL1Messenger ",{"type":770,"tag":924,"props":1693,"children":1694},{"style":931},[1695],{"type":779,"value":1696},"public",{"type":770,"tag":924,"props":1698,"children":1699},{"style":937},[1700],{"type":779,"value":1701}," L1Messenger ",{"type":770,"tag":924,"props":1703,"children":1704},{"style":931},[1705],{"type":779,"value":1674},{"type":770,"tag":924,"props":1707,"children":1708},{"style":1103},[1709],{"type":779,"value":1710}," IL1Messenger",{"type":770,"tag":924,"props":1712,"children":1713},{"style":937},[1714],{"type":779,"value":1715},"(L2_TO_L1_MESSENGER_SYSTEM_CONTRACT_ADDR);\n",{"type":770,"tag":924,"props":1717,"children":1718},{"class":926,"line":1086},[1719],{"type":770,"tag":924,"props":1720,"children":1721},{"emptyLinePlaceholder":963},[1722],{"type":779,"value":966},{"type":770,"tag":924,"props":1724,"children":1725},{"class":926,"line":1124},[1726,1731,1736,1740,1745,1750,1755,1759],{"type":770,"tag":924,"props":1727,"children":1728},{"style":931},[1729],{"type":779,"value":1730},"  function",{"type":770,"tag":924,"props":1732,"children":1733},{"style":1103},[1734],{"type":779,"value":1735}," sendMessage",{"type":770,"tag":924,"props":1737,"children":1738},{"style":937},[1739],{"type":779,"value":1111},{"type":770,"tag":924,"props":1741,"children":1742},{"style":988},[1743],{"type":779,"value":1744},"bytes",{"type":770,"tag":924,"props":1746,"children":1747},{"style":931},[1748],{"type":779,"value":1749}," calldata",{"type":770,"tag":924,"props":1751,"children":1752},{"style":937},[1753],{"type":779,"value":1754}," _message) ",{"type":770,"tag":924,"props":1756,"children":1757},{"style":931},[1758],{"type":779,"value":1696},{"type":770,"tag":924,"props":1760,"children":1761},{"style":937},[1762],{"type":779,"value":1651},{"type":770,"tag":924,"props":1764,"children":1765},{"class":926,"line":1132},[1766,1771,1775],{"type":770,"tag":924,"props":1767,"children":1768},{"style":937},[1769],{"type":779,"value":1770},"    L1Messenger.",{"type":770,"tag":924,"props":1772,"children":1773},{"style":1103},[1774],{"type":779,"value":1541},{"type":770,"tag":924,"props":1776,"children":1777},{"style":937},[1778],{"type":779,"value":1779},"(_message);\n",{"type":770,"tag":924,"props":1781,"children":1782},{"class":926,"line":1172},[1783],{"type":770,"tag":924,"props":1784,"children":1785},{"style":937},[1786],{"type":779,"value":1787},"  }\n",{"type":770,"tag":924,"props":1789,"children":1790},{"class":926,"line":1210},[1791],{"type":770,"tag":924,"props":1792,"children":1793},{"style":937},[1794],{"type":779,"value":1523},{"type":770,"tag":878,"props":1796,"children":1798},{"id":1797},"checking-the-execution-status",[1799],{"type":779,"value":1800},"Checking the execution status",{"type":770,"tag":771,"props":1802,"children":1803},{},[1804,1806,1812,1814,1820],{"type":779,"value":1805},"To check the execution status of a message, you can use the ",{"type":770,"tag":869,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":779,"value":1811},"getMessageStatus",{"type":779,"value":1813}," method.\nIn order to verify a message, the status must first be ",{"type":770,"tag":869,"props":1815,"children":1817},{"className":1816},[],[1818],{"type":779,"value":1819},"EXECUTED",{"type":779,"value":1821},".",{"type":770,"tag":914,"props":1823,"children":1825},{"className":916,"code":1824,"language":918,"meta":764,"style":764},"import { Provider, InteropClient } from 'zksync-ethers';\n\n// Testnet RPC URLS & Gateway chain ID\nconst CHAIN1_RPC = 'https://sepolia.era.zksync.dev'; // Era\nconst GW_RPC = 'https://rpc.era-gateway-testnet.zksync.dev'; // Gateway testnet\nconst GW_CHAIN_ID = BigInt('32657'); // Gateway testnet ID\n\n// Provider for message source chain\nconst providerChain1 = new Provider(CHAIN1_RPC);\n\nconst interop = new InteropClient({\n  gateway: {\n    // 'testnet' | 'mainnet' | 'local'\n    env: 'testnet',\n    gwRpcUrl: GW_RPC,\n    gwChainId: GW_CHAIN_ID,\n  },\n});\n\nexport async function checkStatus() {\n  const txHash = '0xd2ed8c2141996e123a2dbe153beb84404775300f654ba633994e8d48d2cbad2d';\n  const status = await interop.getMessageStatus(providerChain1, txHash);\n  console.log('status', status);\n  // -> \"QUEUED\" | \"SENDING\" | \"PROVING\" | \"EXECUTED\" | \"FAILED\" | \"REJECTED\" | \"UNKNOWN\"\n}\n\n",[1826],{"type":770,"tag":869,"props":1827,"children":1828},{"__ignoreMap":764},[1829,1853,1860,1868,1898,1927,1965,1972,1980,2016,2023,2050,2057,2064,2080,2095,2110,2117,2124,2131,2155,2180,2213,2238,2246],{"type":770,"tag":924,"props":1830,"children":1831},{"class":926,"line":927},[1832,1836,1841,1845,1849],{"type":770,"tag":924,"props":1833,"children":1834},{"style":931},[1835],{"type":779,"value":934},{"type":770,"tag":924,"props":1837,"children":1838},{"style":937},[1839],{"type":779,"value":1840}," { Provider, InteropClient } ",{"type":770,"tag":924,"props":1842,"children":1843},{"style":931},[1844],{"type":779,"value":945},{"type":770,"tag":924,"props":1846,"children":1847},{"style":948},[1848],{"type":779,"value":951},{"type":770,"tag":924,"props":1850,"children":1851},{"style":937},[1852],{"type":779,"value":956},{"type":770,"tag":924,"props":1854,"children":1855},{"class":926,"line":959},[1856],{"type":770,"tag":924,"props":1857,"children":1858},{"emptyLinePlaceholder":963},[1859],{"type":779,"value":966},{"type":770,"tag":924,"props":1861,"children":1862},{"class":926,"line":969},[1863],{"type":770,"tag":924,"props":1864,"children":1865},{"style":973},[1866],{"type":779,"value":1867},"// Testnet RPC URLS & Gateway chain ID\n",{"type":770,"tag":924,"props":1869,"children":1870},{"class":926,"line":979},[1871,1875,1879,1883,1888,1893],{"type":770,"tag":924,"props":1872,"children":1873},{"style":931},[1874],{"type":779,"value":985},{"type":770,"tag":924,"props":1876,"children":1877},{"style":988},[1878],{"type":779,"value":1018},{"type":770,"tag":924,"props":1880,"children":1881},{"style":931},[1882],{"type":779,"value":996},{"type":770,"tag":924,"props":1884,"children":1885},{"style":948},[1886],{"type":779,"value":1887}," 'https://sepolia.era.zksync.dev'",{"type":770,"tag":924,"props":1889,"children":1890},{"style":937},[1891],{"type":779,"value":1892},"; ",{"type":770,"tag":924,"props":1894,"children":1895},{"style":973},[1896],{"type":779,"value":1897},"// Era\n",{"type":770,"tag":924,"props":1899,"children":1900},{"class":926,"line":1008},[1901,1905,1909,1913,1918,1922],{"type":770,"tag":924,"props":1902,"children":1903},{"style":931},[1904],{"type":779,"value":985},{"type":770,"tag":924,"props":1906,"children":1907},{"style":988},[1908],{"type":779,"value":1044},{"type":770,"tag":924,"props":1910,"children":1911},{"style":931},[1912],{"type":779,"value":996},{"type":770,"tag":924,"props":1914,"children":1915},{"style":948},[1916],{"type":779,"value":1917}," 'https://rpc.era-gateway-testnet.zksync.dev'",{"type":770,"tag":924,"props":1919,"children":1920},{"style":937},[1921],{"type":779,"value":1892},{"type":770,"tag":924,"props":1923,"children":1924},{"style":973},[1925],{"type":779,"value":1926},"// Gateway testnet\n",{"type":770,"tag":924,"props":1928,"children":1929},{"class":926,"line":1034},[1930,1934,1938,1942,1946,1950,1955,1960],{"type":770,"tag":924,"props":1931,"children":1932},{"style":931},[1933],{"type":779,"value":985},{"type":770,"tag":924,"props":1935,"children":1936},{"style":988},[1937],{"type":779,"value":1096},{"type":770,"tag":924,"props":1939,"children":1940},{"style":931},[1941],{"type":779,"value":996},{"type":770,"tag":924,"props":1943,"children":1944},{"style":1103},[1945],{"type":779,"value":1106},{"type":770,"tag":924,"props":1947,"children":1948},{"style":937},[1949],{"type":779,"value":1111},{"type":770,"tag":924,"props":1951,"children":1952},{"style":948},[1953],{"type":779,"value":1954},"'32657'",{"type":770,"tag":924,"props":1956,"children":1957},{"style":937},[1958],{"type":779,"value":1959},"); ",{"type":770,"tag":924,"props":1961,"children":1962},{"style":973},[1963],{"type":779,"value":1964},"// Gateway testnet ID\n",{"type":770,"tag":924,"props":1966,"children":1967},{"class":926,"line":1060},[1968],{"type":770,"tag":924,"props":1969,"children":1970},{"emptyLinePlaceholder":963},[1971],{"type":779,"value":966},{"type":770,"tag":924,"props":1973,"children":1974},{"class":926,"line":1086},[1975],{"type":770,"tag":924,"props":1976,"children":1977},{"style":973},[1978],{"type":779,"value":1979},"// Provider for message source chain\n",{"type":770,"tag":924,"props":1981,"children":1982},{"class":926,"line":1124},[1983,1987,1992,1996,2000,2004,2008,2012],{"type":770,"tag":924,"props":1984,"children":1985},{"style":931},[1986],{"type":779,"value":985},{"type":770,"tag":924,"props":1988,"children":1989},{"style":988},[1990],{"type":779,"value":1991}," providerChain1",{"type":770,"tag":924,"props":1993,"children":1994},{"style":931},[1995],{"type":779,"value":996},{"type":770,"tag":924,"props":1997,"children":1998},{"style":931},[1999],{"type":779,"value":1151},{"type":770,"tag":924,"props":2001,"children":2002},{"style":1103},[2003],{"type":779,"value":1156},{"type":770,"tag":924,"props":2005,"children":2006},{"style":937},[2007],{"type":779,"value":1111},{"type":770,"tag":924,"props":2009,"children":2010},{"style":988},[2011],{"type":779,"value":1165},{"type":770,"tag":924,"props":2013,"children":2014},{"style":937},[2015],{"type":779,"value":1121},{"type":770,"tag":924,"props":2017,"children":2018},{"class":926,"line":1132},[2019],{"type":770,"tag":924,"props":2020,"children":2021},{"emptyLinePlaceholder":963},[2022],{"type":779,"value":966},{"type":770,"tag":924,"props":2024,"children":2025},{"class":926,"line":1172},[2026,2030,2034,2038,2042,2046],{"type":770,"tag":924,"props":2027,"children":2028},{"style":931},[2029],{"type":779,"value":985},{"type":770,"tag":924,"props":2031,"children":2032},{"style":988},[2033],{"type":779,"value":1268},{"type":770,"tag":924,"props":2035,"children":2036},{"style":931},[2037],{"type":779,"value":996},{"type":770,"tag":924,"props":2039,"children":2040},{"style":931},[2041],{"type":779,"value":1151},{"type":770,"tag":924,"props":2043,"children":2044},{"style":1103},[2045],{"type":779,"value":1281},{"type":770,"tag":924,"props":2047,"children":2048},{"style":937},[2049],{"type":779,"value":1286},{"type":770,"tag":924,"props":2051,"children":2052},{"class":926,"line":1210},[2053],{"type":770,"tag":924,"props":2054,"children":2055},{"style":937},[2056],{"type":779,"value":1295},{"type":770,"tag":924,"props":2058,"children":2059},{"class":926,"line":1250},[2060],{"type":770,"tag":924,"props":2061,"children":2062},{"style":973},[2063],{"type":779,"value":1304},{"type":770,"tag":924,"props":2065,"children":2066},{"class":926,"line":1258},[2067,2071,2076],{"type":770,"tag":924,"props":2068,"children":2069},{"style":937},[2070],{"type":779,"value":1313},{"type":770,"tag":924,"props":2072,"children":2073},{"style":948},[2074],{"type":779,"value":2075},"'testnet'",{"type":770,"tag":924,"props":2077,"children":2078},{"style":937},[2079],{"type":779,"value":1323},{"type":770,"tag":924,"props":2081,"children":2082},{"class":926,"line":1289},[2083,2087,2091],{"type":770,"tag":924,"props":2084,"children":2085},{"style":937},[2086],{"type":779,"value":1332},{"type":770,"tag":924,"props":2088,"children":2089},{"style":988},[2090],{"type":779,"value":1337},{"type":770,"tag":924,"props":2092,"children":2093},{"style":937},[2094],{"type":779,"value":1323},{"type":770,"tag":924,"props":2096,"children":2097},{"class":926,"line":1298},[2098,2102,2106],{"type":770,"tag":924,"props":2099,"children":2100},{"style":937},[2101],{"type":779,"value":1350},{"type":770,"tag":924,"props":2103,"children":2104},{"style":988},[2105],{"type":779,"value":1355},{"type":770,"tag":924,"props":2107,"children":2108},{"style":937},[2109],{"type":779,"value":1323},{"type":770,"tag":924,"props":2111,"children":2112},{"class":926,"line":1307},[2113],{"type":770,"tag":924,"props":2114,"children":2115},{"style":937},[2116],{"type":779,"value":1368},{"type":770,"tag":924,"props":2118,"children":2119},{"class":926,"line":1326},[2120],{"type":770,"tag":924,"props":2121,"children":2122},{"style":937},[2123],{"type":779,"value":1377},{"type":770,"tag":924,"props":2125,"children":2126},{"class":926,"line":1344},[2127],{"type":770,"tag":924,"props":2128,"children":2129},{"emptyLinePlaceholder":963},[2130],{"type":779,"value":966},{"type":770,"tag":924,"props":2132,"children":2133},{"class":926,"line":1362},[2134,2138,2142,2146,2151],{"type":770,"tag":924,"props":2135,"children":2136},{"style":931},[2137],{"type":779,"value":1394},{"type":770,"tag":924,"props":2139,"children":2140},{"style":931},[2141],{"type":779,"value":1399},{"type":770,"tag":924,"props":2143,"children":2144},{"style":931},[2145],{"type":779,"value":1404},{"type":770,"tag":924,"props":2147,"children":2148},{"style":1103},[2149],{"type":779,"value":2150}," checkStatus",{"type":770,"tag":924,"props":2152,"children":2153},{"style":937},[2154],{"type":779,"value":1414},{"type":770,"tag":924,"props":2156,"children":2157},{"class":926,"line":1371},[2158,2162,2167,2171,2176],{"type":770,"tag":924,"props":2159,"children":2160},{"style":931},[2161],{"type":779,"value":1423},{"type":770,"tag":924,"props":2163,"children":2164},{"style":988},[2165],{"type":779,"value":2166}," txHash",{"type":770,"tag":924,"props":2168,"children":2169},{"style":931},[2170],{"type":779,"value":996},{"type":770,"tag":924,"props":2172,"children":2173},{"style":948},[2174],{"type":779,"value":2175}," '0xd2ed8c2141996e123a2dbe153beb84404775300f654ba633994e8d48d2cbad2d'",{"type":770,"tag":924,"props":2177,"children":2178},{"style":937},[2179],{"type":779,"value":956},{"type":770,"tag":924,"props":2181,"children":2182},{"class":926,"line":1380},[2183,2187,2192,2196,2200,2204,2208],{"type":770,"tag":924,"props":2184,"children":2185},{"style":931},[2186],{"type":779,"value":1423},{"type":770,"tag":924,"props":2188,"children":2189},{"style":988},[2190],{"type":779,"value":2191}," status",{"type":770,"tag":924,"props":2193,"children":2194},{"style":931},[2195],{"type":779,"value":996},{"type":770,"tag":924,"props":2197,"children":2198},{"style":931},[2199],{"type":779,"value":1463},{"type":770,"tag":924,"props":2201,"children":2202},{"style":937},[2203],{"type":779,"value":1468},{"type":770,"tag":924,"props":2205,"children":2206},{"style":1103},[2207],{"type":779,"value":1811},{"type":770,"tag":924,"props":2209,"children":2210},{"style":937},[2211],{"type":779,"value":2212},"(providerChain1, txHash);\n",{"type":770,"tag":924,"props":2214,"children":2215},{"class":926,"line":1388},[2216,2220,2224,2228,2233],{"type":770,"tag":924,"props":2217,"children":2218},{"style":937},[2219],{"type":779,"value":1486},{"type":770,"tag":924,"props":2221,"children":2222},{"style":1103},[2223],{"type":779,"value":1491},{"type":770,"tag":924,"props":2225,"children":2226},{"style":937},[2227],{"type":779,"value":1111},{"type":770,"tag":924,"props":2229,"children":2230},{"style":948},[2231],{"type":779,"value":2232},"'status'",{"type":770,"tag":924,"props":2234,"children":2235},{"style":937},[2236],{"type":779,"value":2237},", status);\n",{"type":770,"tag":924,"props":2239,"children":2240},{"class":926,"line":1417},[2241],{"type":770,"tag":924,"props":2242,"children":2243},{"style":973},[2244],{"type":779,"value":2245},"  // -> \"QUEUED\" | \"SENDING\" | \"PROVING\" | \"EXECUTED\" | \"FAILED\" | \"REJECTED\" | \"UNKNOWN\"\n",{"type":770,"tag":924,"props":2247,"children":2248},{"class":926,"line":1444},[2249],{"type":770,"tag":924,"props":2250,"children":2251},{"style":937},[2252],{"type":779,"value":1523},{"type":770,"tag":878,"props":2254,"children":2256},{"id":2255},"checking-if-the-interop-root-is-updated",[2257],{"type":779,"value":2258},"Checking if the interop root is updated",{"type":770,"tag":771,"props":2260,"children":2261},{},[2262,2264,2270,2272,2278],{"type":779,"value":2263},"In order to verify a message, the interop root must be updated on the target chain.\nTo check if the interop root is ready, you can use the ",{"type":770,"tag":869,"props":2265,"children":2267},{"className":2266},[],[2268],{"type":779,"value":2269},"getGwBlockForBatch",{"type":779,"value":2271}," ",{"type":770,"tag":869,"props":2273,"children":2275},{"className":2274},[],[2276],{"type":779,"value":2277},"waitForGatewayInteropRoot",{"type":779,"value":2279}," methods.",{"type":770,"tag":914,"props":2281,"children":2283},{"className":916,"code":2282,"language":918,"meta":764,"style":764},"import { ethers } from 'ethers';\nimport { Provider, waitForGatewayInteropRoot, getGwBlockForBatch } from 'zksync-ethers';\n\n// Testnet RPC URLS & Gateway chain ID\nconst CHAIN1_RPC = 'https://sepolia.era.zksync.dev'; // Era\nconst CHAIN2_RPC = 'https://api.testnet.abs.xyz'; // Abstract\nconst GW_RPC = 'https://rpc.era-gateway-testnet.zksync.dev'; // Gateway testnet\nconst GW_CHAIN_ID = BigInt('32657'); // Gateway testnet ID\n\n// Provider for message source chain\nconst providerChain1 = new Provider(CHAIN1_RPC);\n// Provider for chain to verify on\nconst providerChain2 = new Provider(CHAIN2_RPC);\n\nexport async function checkInteropRoot() {\n  const txHash = '0xd2ed8c2141996e123a2dbe153beb84404775300f654ba633994e8d48d2cbad2d';\n  const receipt = await (await providerChain1.getTransaction(txHash)).waitFinalize();\n  const gw = new ethers.JsonRpcProvider(GW_RPC);\n  const gwBlock = await getGwBlockForBatch(BigInt(receipt.l1BatchNumber!), providerChain1, gw);\n  const root = await waitForGatewayInteropRoot(GW_CHAIN_ID, providerChain2, gwBlock);\n  console.log('interop root is updated', root);\n}\n\n",[2284],{"type":770,"tag":869,"props":2285,"children":2286},{"__ignoreMap":764},[2287,2312,2336,2343,2350,2377,2407,2434,2469,2476,2483,2518,2526,2563,2570,2594,2617,2672,2714,2763,2801,2826],{"type":770,"tag":924,"props":2288,"children":2289},{"class":926,"line":927},[2290,2294,2299,2303,2308],{"type":770,"tag":924,"props":2291,"children":2292},{"style":931},[2293],{"type":779,"value":934},{"type":770,"tag":924,"props":2295,"children":2296},{"style":937},[2297],{"type":779,"value":2298}," { ethers } ",{"type":770,"tag":924,"props":2300,"children":2301},{"style":931},[2302],{"type":779,"value":945},{"type":770,"tag":924,"props":2304,"children":2305},{"style":948},[2306],{"type":779,"value":2307}," 'ethers'",{"type":770,"tag":924,"props":2309,"children":2310},{"style":937},[2311],{"type":779,"value":956},{"type":770,"tag":924,"props":2313,"children":2314},{"class":926,"line":959},[2315,2319,2324,2328,2332],{"type":770,"tag":924,"props":2316,"children":2317},{"style":931},[2318],{"type":779,"value":934},{"type":770,"tag":924,"props":2320,"children":2321},{"style":937},[2322],{"type":779,"value":2323}," { Provider, waitForGatewayInteropRoot, getGwBlockForBatch } ",{"type":770,"tag":924,"props":2325,"children":2326},{"style":931},[2327],{"type":779,"value":945},{"type":770,"tag":924,"props":2329,"children":2330},{"style":948},[2331],{"type":779,"value":951},{"type":770,"tag":924,"props":2333,"children":2334},{"style":937},[2335],{"type":779,"value":956},{"type":770,"tag":924,"props":2337,"children":2338},{"class":926,"line":969},[2339],{"type":770,"tag":924,"props":2340,"children":2341},{"emptyLinePlaceholder":963},[2342],{"type":779,"value":966},{"type":770,"tag":924,"props":2344,"children":2345},{"class":926,"line":979},[2346],{"type":770,"tag":924,"props":2347,"children":2348},{"style":973},[2349],{"type":779,"value":1867},{"type":770,"tag":924,"props":2351,"children":2352},{"class":926,"line":1008},[2353,2357,2361,2365,2369,2373],{"type":770,"tag":924,"props":2354,"children":2355},{"style":931},[2356],{"type":779,"value":985},{"type":770,"tag":924,"props":2358,"children":2359},{"style":988},[2360],{"type":779,"value":1018},{"type":770,"tag":924,"props":2362,"children":2363},{"style":931},[2364],{"type":779,"value":996},{"type":770,"tag":924,"props":2366,"children":2367},{"style":948},[2368],{"type":779,"value":1887},{"type":770,"tag":924,"props":2370,"children":2371},{"style":937},[2372],{"type":779,"value":1892},{"type":770,"tag":924,"props":2374,"children":2375},{"style":973},[2376],{"type":779,"value":1897},{"type":770,"tag":924,"props":2378,"children":2379},{"class":926,"line":1034},[2380,2384,2389,2393,2398,2402],{"type":770,"tag":924,"props":2381,"children":2382},{"style":931},[2383],{"type":779,"value":985},{"type":770,"tag":924,"props":2385,"children":2386},{"style":988},[2387],{"type":779,"value":2388}," CHAIN2_RPC",{"type":770,"tag":924,"props":2390,"children":2391},{"style":931},[2392],{"type":779,"value":996},{"type":770,"tag":924,"props":2394,"children":2395},{"style":948},[2396],{"type":779,"value":2397}," 'https://api.testnet.abs.xyz'",{"type":770,"tag":924,"props":2399,"children":2400},{"style":937},[2401],{"type":779,"value":1892},{"type":770,"tag":924,"props":2403,"children":2404},{"style":973},[2405],{"type":779,"value":2406},"// Abstract\n",{"type":770,"tag":924,"props":2408,"children":2409},{"class":926,"line":1060},[2410,2414,2418,2422,2426,2430],{"type":770,"tag":924,"props":2411,"children":2412},{"style":931},[2413],{"type":779,"value":985},{"type":770,"tag":924,"props":2415,"children":2416},{"style":988},[2417],{"type":779,"value":1044},{"type":770,"tag":924,"props":2419,"children":2420},{"style":931},[2421],{"type":779,"value":996},{"type":770,"tag":924,"props":2423,"children":2424},{"style":948},[2425],{"type":779,"value":1917},{"type":770,"tag":924,"props":2427,"children":2428},{"style":937},[2429],{"type":779,"value":1892},{"type":770,"tag":924,"props":2431,"children":2432},{"style":973},[2433],{"type":779,"value":1926},{"type":770,"tag":924,"props":2435,"children":2436},{"class":926,"line":1086},[2437,2441,2445,2449,2453,2457,2461,2465],{"type":770,"tag":924,"props":2438,"children":2439},{"style":931},[2440],{"type":779,"value":985},{"type":770,"tag":924,"props":2442,"children":2443},{"style":988},[2444],{"type":779,"value":1096},{"type":770,"tag":924,"props":2446,"children":2447},{"style":931},[2448],{"type":779,"value":996},{"type":770,"tag":924,"props":2450,"children":2451},{"style":1103},[2452],{"type":779,"value":1106},{"type":770,"tag":924,"props":2454,"children":2455},{"style":937},[2456],{"type":779,"value":1111},{"type":770,"tag":924,"props":2458,"children":2459},{"style":948},[2460],{"type":779,"value":1954},{"type":770,"tag":924,"props":2462,"children":2463},{"style":937},[2464],{"type":779,"value":1959},{"type":770,"tag":924,"props":2466,"children":2467},{"style":973},[2468],{"type":779,"value":1964},{"type":770,"tag":924,"props":2470,"children":2471},{"class":926,"line":1124},[2472],{"type":770,"tag":924,"props":2473,"children":2474},{"emptyLinePlaceholder":963},[2475],{"type":779,"value":966},{"type":770,"tag":924,"props":2477,"children":2478},{"class":926,"line":1132},[2479],{"type":770,"tag":924,"props":2480,"children":2481},{"style":973},[2482],{"type":779,"value":1979},{"type":770,"tag":924,"props":2484,"children":2485},{"class":926,"line":1172},[2486,2490,2494,2498,2502,2506,2510,2514],{"type":770,"tag":924,"props":2487,"children":2488},{"style":931},[2489],{"type":779,"value":985},{"type":770,"tag":924,"props":2491,"children":2492},{"style":988},[2493],{"type":779,"value":1991},{"type":770,"tag":924,"props":2495,"children":2496},{"style":931},[2497],{"type":779,"value":996},{"type":770,"tag":924,"props":2499,"children":2500},{"style":931},[2501],{"type":779,"value":1151},{"type":770,"tag":924,"props":2503,"children":2504},{"style":1103},[2505],{"type":779,"value":1156},{"type":770,"tag":924,"props":2507,"children":2508},{"style":937},[2509],{"type":779,"value":1111},{"type":770,"tag":924,"props":2511,"children":2512},{"style":988},[2513],{"type":779,"value":1165},{"type":770,"tag":924,"props":2515,"children":2516},{"style":937},[2517],{"type":779,"value":1121},{"type":770,"tag":924,"props":2519,"children":2520},{"class":926,"line":1210},[2521],{"type":770,"tag":924,"props":2522,"children":2523},{"style":973},[2524],{"type":779,"value":2525},"// Provider for chain to verify on\n",{"type":770,"tag":924,"props":2527,"children":2528},{"class":926,"line":1250},[2529,2533,2538,2542,2546,2550,2554,2559],{"type":770,"tag":924,"props":2530,"children":2531},{"style":931},[2532],{"type":779,"value":985},{"type":770,"tag":924,"props":2534,"children":2535},{"style":988},[2536],{"type":779,"value":2537}," providerChain2",{"type":770,"tag":924,"props":2539,"children":2540},{"style":931},[2541],{"type":779,"value":996},{"type":770,"tag":924,"props":2543,"children":2544},{"style":931},[2545],{"type":779,"value":1151},{"type":770,"tag":924,"props":2547,"children":2548},{"style":1103},[2549],{"type":779,"value":1156},{"type":770,"tag":924,"props":2551,"children":2552},{"style":937},[2553],{"type":779,"value":1111},{"type":770,"tag":924,"props":2555,"children":2556},{"style":988},[2557],{"type":779,"value":2558},"CHAIN2_RPC",{"type":770,"tag":924,"props":2560,"children":2561},{"style":937},[2562],{"type":779,"value":1121},{"type":770,"tag":924,"props":2564,"children":2565},{"class":926,"line":1258},[2566],{"type":770,"tag":924,"props":2567,"children":2568},{"emptyLinePlaceholder":963},[2569],{"type":779,"value":966},{"type":770,"tag":924,"props":2571,"children":2572},{"class":926,"line":1289},[2573,2577,2581,2585,2590],{"type":770,"tag":924,"props":2574,"children":2575},{"style":931},[2576],{"type":779,"value":1394},{"type":770,"tag":924,"props":2578,"children":2579},{"style":931},[2580],{"type":779,"value":1399},{"type":770,"tag":924,"props":2582,"children":2583},{"style":931},[2584],{"type":779,"value":1404},{"type":770,"tag":924,"props":2586,"children":2587},{"style":1103},[2588],{"type":779,"value":2589}," checkInteropRoot",{"type":770,"tag":924,"props":2591,"children":2592},{"style":937},[2593],{"type":779,"value":1414},{"type":770,"tag":924,"props":2595,"children":2596},{"class":926,"line":1298},[2597,2601,2605,2609,2613],{"type":770,"tag":924,"props":2598,"children":2599},{"style":931},[2600],{"type":779,"value":1423},{"type":770,"tag":924,"props":2602,"children":2603},{"style":988},[2604],{"type":779,"value":2166},{"type":770,"tag":924,"props":2606,"children":2607},{"style":931},[2608],{"type":779,"value":996},{"type":770,"tag":924,"props":2610,"children":2611},{"style":948},[2612],{"type":779,"value":2175},{"type":770,"tag":924,"props":2614,"children":2615},{"style":937},[2616],{"type":779,"value":956},{"type":770,"tag":924,"props":2618,"children":2619},{"class":926,"line":1307},[2620,2624,2629,2633,2637,2642,2647,2652,2657,2662,2667],{"type":770,"tag":924,"props":2621,"children":2622},{"style":931},[2623],{"type":779,"value":1423},{"type":770,"tag":924,"props":2625,"children":2626},{"style":988},[2627],{"type":779,"value":2628}," receipt",{"type":770,"tag":924,"props":2630,"children":2631},{"style":931},[2632],{"type":779,"value":996},{"type":770,"tag":924,"props":2634,"children":2635},{"style":931},[2636],{"type":779,"value":1463},{"type":770,"tag":924,"props":2638,"children":2639},{"style":937},[2640],{"type":779,"value":2641}," (",{"type":770,"tag":924,"props":2643,"children":2644},{"style":931},[2645],{"type":779,"value":2646},"await",{"type":770,"tag":924,"props":2648,"children":2649},{"style":937},[2650],{"type":779,"value":2651}," providerChain1.",{"type":770,"tag":924,"props":2653,"children":2654},{"style":1103},[2655],{"type":779,"value":2656},"getTransaction",{"type":770,"tag":924,"props":2658,"children":2659},{"style":937},[2660],{"type":779,"value":2661},"(txHash)).",{"type":770,"tag":924,"props":2663,"children":2664},{"style":1103},[2665],{"type":779,"value":2666},"waitFinalize",{"type":770,"tag":924,"props":2668,"children":2669},{"style":937},[2670],{"type":779,"value":2671},"();\n",{"type":770,"tag":924,"props":2673,"children":2674},{"class":926,"line":1326},[2675,2679,2684,2688,2692,2697,2702,2706,2710],{"type":770,"tag":924,"props":2676,"children":2677},{"style":931},[2678],{"type":779,"value":1423},{"type":770,"tag":924,"props":2680,"children":2681},{"style":988},[2682],{"type":779,"value":2683}," gw",{"type":770,"tag":924,"props":2685,"children":2686},{"style":931},[2687],{"type":779,"value":996},{"type":770,"tag":924,"props":2689,"children":2690},{"style":931},[2691],{"type":779,"value":1151},{"type":770,"tag":924,"props":2693,"children":2694},{"style":937},[2695],{"type":779,"value":2696}," ethers.",{"type":770,"tag":924,"props":2698,"children":2699},{"style":1103},[2700],{"type":779,"value":2701},"JsonRpcProvider",{"type":770,"tag":924,"props":2703,"children":2704},{"style":937},[2705],{"type":779,"value":1111},{"type":770,"tag":924,"props":2707,"children":2708},{"style":988},[2709],{"type":779,"value":1337},{"type":770,"tag":924,"props":2711,"children":2712},{"style":937},[2713],{"type":779,"value":1121},{"type":770,"tag":924,"props":2715,"children":2716},{"class":926,"line":1344},[2717,2721,2726,2730,2734,2739,2743,2748,2753,2758],{"type":770,"tag":924,"props":2718,"children":2719},{"style":931},[2720],{"type":779,"value":1423},{"type":770,"tag":924,"props":2722,"children":2723},{"style":988},[2724],{"type":779,"value":2725}," gwBlock",{"type":770,"tag":924,"props":2727,"children":2728},{"style":931},[2729],{"type":779,"value":996},{"type":770,"tag":924,"props":2731,"children":2732},{"style":931},[2733],{"type":779,"value":1463},{"type":770,"tag":924,"props":2735,"children":2736},{"style":1103},[2737],{"type":779,"value":2738}," getGwBlockForBatch",{"type":770,"tag":924,"props":2740,"children":2741},{"style":937},[2742],{"type":779,"value":1111},{"type":770,"tag":924,"props":2744,"children":2745},{"style":1103},[2746],{"type":779,"value":2747},"BigInt",{"type":770,"tag":924,"props":2749,"children":2750},{"style":937},[2751],{"type":779,"value":2752},"(receipt.l1BatchNumber",{"type":770,"tag":924,"props":2754,"children":2755},{"style":931},[2756],{"type":779,"value":2757},"!",{"type":770,"tag":924,"props":2759,"children":2760},{"style":937},[2761],{"type":779,"value":2762},"), providerChain1, gw);\n",{"type":770,"tag":924,"props":2764,"children":2765},{"class":926,"line":1362},[2766,2770,2775,2779,2783,2788,2792,2796],{"type":770,"tag":924,"props":2767,"children":2768},{"style":931},[2769],{"type":779,"value":1423},{"type":770,"tag":924,"props":2771,"children":2772},{"style":988},[2773],{"type":779,"value":2774}," root",{"type":770,"tag":924,"props":2776,"children":2777},{"style":931},[2778],{"type":779,"value":996},{"type":770,"tag":924,"props":2780,"children":2781},{"style":931},[2782],{"type":779,"value":1463},{"type":770,"tag":924,"props":2784,"children":2785},{"style":1103},[2786],{"type":779,"value":2787}," waitForGatewayInteropRoot",{"type":770,"tag":924,"props":2789,"children":2790},{"style":937},[2791],{"type":779,"value":1111},{"type":770,"tag":924,"props":2793,"children":2794},{"style":988},[2795],{"type":779,"value":1355},{"type":770,"tag":924,"props":2797,"children":2798},{"style":937},[2799],{"type":779,"value":2800},", providerChain2, gwBlock);\n",{"type":770,"tag":924,"props":2802,"children":2803},{"class":926,"line":1371},[2804,2808,2812,2816,2821],{"type":770,"tag":924,"props":2805,"children":2806},{"style":937},[2807],{"type":779,"value":1486},{"type":770,"tag":924,"props":2809,"children":2810},{"style":1103},[2811],{"type":779,"value":1491},{"type":770,"tag":924,"props":2813,"children":2814},{"style":937},[2815],{"type":779,"value":1111},{"type":770,"tag":924,"props":2817,"children":2818},{"style":948},[2819],{"type":779,"value":2820},"'interop root is updated'",{"type":770,"tag":924,"props":2822,"children":2823},{"style":937},[2824],{"type":779,"value":2825},", root);\n",{"type":770,"tag":924,"props":2827,"children":2828},{"class":926,"line":1380},[2829],{"type":770,"tag":924,"props":2830,"children":2831},{"style":937},[2832],{"type":779,"value":1523},{"type":770,"tag":878,"props":2834,"children":2836},{"id":2835},"verifying-a-message",[2837],{"type":779,"value":2838},"Verifying a Message",{"type":770,"tag":771,"props":2840,"children":2841},{},[2842],{"type":779,"value":2843},"You can either verify a message using the SDK or onchain inside a smart contract.",{"type":770,"tag":1525,"props":2845,"children":2847},{"id":2846},"offchain-verification",[2848],{"type":779,"value":2849},"Offchain Verification",{"type":770,"tag":771,"props":2851,"children":2852},{},[2853,2855,2861,2862,2867],{"type":779,"value":2854},"You can verify a message directly using the SDK by calling the ",{"type":770,"tag":869,"props":2856,"children":2858},{"className":2857},[],[2859],{"type":779,"value":2860},"verifyMessage",{"type":779,"value":1543},{"type":770,"tag":869,"props":2863,"children":2865},{"className":2864},[],[2866],{"type":779,"value":894},{"type":779,"value":1821},{"type":770,"tag":914,"props":2869,"children":2871},{"className":916,"code":2870,"language":918,"meta":764,"style":764},"import { Provider, InteropClient } from 'zksync-ethers';\n\n// Testnet RPC URLS & Gateway chain ID\nconst CHAIN1_RPC = 'https://sepolia.era.zksync.dev'; // Era\nconst CHAIN2_RPC = 'https://api.testnet.abs.xyz'; // Abstract\nconst GW_RPC = 'https://rpc.era-gateway-testnet.zksync.dev'; // Gateway testnet\nconst GW_CHAIN_ID = BigInt('32657'); // Gateway testnet ID\n\n// Provider for message source chain\nconst providerChain1 = new Provider(CHAIN1_RPC);\n// Provider for chain to verify on\nconst providerChain2 = new Provider(CHAIN2_RPC);\n\nconst interop = new InteropClient({\n  gateway: {\n    // 'testnet' | 'mainnet' | 'local'\n    env: 'testnet',\n    gwRpcUrl: GW_RPC,\n    gwChainId: GW_CHAIN_ID,\n  },\n});\n\nexport async function verify() {\n  const txHash = '0xd2ed8c2141996e123a2dbe153beb84404775300f654ba633994e8d48d2cbad2d';\n\n  const verifyRes = await interop.verifyMessage({\n    txHash,\n    srcProvider: providerChain1, // source chain provider (to fetch proof + batch details)\n    targetChain: providerChain2, // target chain provider (to read interop root + verify)\n    // includeProofInputs: true, // optional debug info\n  });\n  console.log('Message is verified:', verifyRes.verified);\n}\n\n",[2872],{"type":770,"tag":869,"props":2873,"children":2874},{"__ignoreMap":764},[2875,2898,2905,2912,2939,2966,2993,3028,3035,3042,3077,3084,3119,3126,3153,3160,3167,3182,3197,3212,3219,3226,3233,3257,3280,3287,3319,3327,3340,3354,3363,3372,3398],{"type":770,"tag":924,"props":2876,"children":2877},{"class":926,"line":927},[2878,2882,2886,2890,2894],{"type":770,"tag":924,"props":2879,"children":2880},{"style":931},[2881],{"type":779,"value":934},{"type":770,"tag":924,"props":2883,"children":2884},{"style":937},[2885],{"type":779,"value":1840},{"type":770,"tag":924,"props":2887,"children":2888},{"style":931},[2889],{"type":779,"value":945},{"type":770,"tag":924,"props":2891,"children":2892},{"style":948},[2893],{"type":779,"value":951},{"type":770,"tag":924,"props":2895,"children":2896},{"style":937},[2897],{"type":779,"value":956},{"type":770,"tag":924,"props":2899,"children":2900},{"class":926,"line":959},[2901],{"type":770,"tag":924,"props":2902,"children":2903},{"emptyLinePlaceholder":963},[2904],{"type":779,"value":966},{"type":770,"tag":924,"props":2906,"children":2907},{"class":926,"line":969},[2908],{"type":770,"tag":924,"props":2909,"children":2910},{"style":973},[2911],{"type":779,"value":1867},{"type":770,"tag":924,"props":2913,"children":2914},{"class":926,"line":979},[2915,2919,2923,2927,2931,2935],{"type":770,"tag":924,"props":2916,"children":2917},{"style":931},[2918],{"type":779,"value":985},{"type":770,"tag":924,"props":2920,"children":2921},{"style":988},[2922],{"type":779,"value":1018},{"type":770,"tag":924,"props":2924,"children":2925},{"style":931},[2926],{"type":779,"value":996},{"type":770,"tag":924,"props":2928,"children":2929},{"style":948},[2930],{"type":779,"value":1887},{"type":770,"tag":924,"props":2932,"children":2933},{"style":937},[2934],{"type":779,"value":1892},{"type":770,"tag":924,"props":2936,"children":2937},{"style":973},[2938],{"type":779,"value":1897},{"type":770,"tag":924,"props":2940,"children":2941},{"class":926,"line":1008},[2942,2946,2950,2954,2958,2962],{"type":770,"tag":924,"props":2943,"children":2944},{"style":931},[2945],{"type":779,"value":985},{"type":770,"tag":924,"props":2947,"children":2948},{"style":988},[2949],{"type":779,"value":2388},{"type":770,"tag":924,"props":2951,"children":2952},{"style":931},[2953],{"type":779,"value":996},{"type":770,"tag":924,"props":2955,"children":2956},{"style":948},[2957],{"type":779,"value":2397},{"type":770,"tag":924,"props":2959,"children":2960},{"style":937},[2961],{"type":779,"value":1892},{"type":770,"tag":924,"props":2963,"children":2964},{"style":973},[2965],{"type":779,"value":2406},{"type":770,"tag":924,"props":2967,"children":2968},{"class":926,"line":1034},[2969,2973,2977,2981,2985,2989],{"type":770,"tag":924,"props":2970,"children":2971},{"style":931},[2972],{"type":779,"value":985},{"type":770,"tag":924,"props":2974,"children":2975},{"style":988},[2976],{"type":779,"value":1044},{"type":770,"tag":924,"props":2978,"children":2979},{"style":931},[2980],{"type":779,"value":996},{"type":770,"tag":924,"props":2982,"children":2983},{"style":948},[2984],{"type":779,"value":1917},{"type":770,"tag":924,"props":2986,"children":2987},{"style":937},[2988],{"type":779,"value":1892},{"type":770,"tag":924,"props":2990,"children":2991},{"style":973},[2992],{"type":779,"value":1926},{"type":770,"tag":924,"props":2994,"children":2995},{"class":926,"line":1060},[2996,3000,3004,3008,3012,3016,3020,3024],{"type":770,"tag":924,"props":2997,"children":2998},{"style":931},[2999],{"type":779,"value":985},{"type":770,"tag":924,"props":3001,"children":3002},{"style":988},[3003],{"type":779,"value":1096},{"type":770,"tag":924,"props":3005,"children":3006},{"style":931},[3007],{"type":779,"value":996},{"type":770,"tag":924,"props":3009,"children":3010},{"style":1103},[3011],{"type":779,"value":1106},{"type":770,"tag":924,"props":3013,"children":3014},{"style":937},[3015],{"type":779,"value":1111},{"type":770,"tag":924,"props":3017,"children":3018},{"style":948},[3019],{"type":779,"value":1954},{"type":770,"tag":924,"props":3021,"children":3022},{"style":937},[3023],{"type":779,"value":1959},{"type":770,"tag":924,"props":3025,"children":3026},{"style":973},[3027],{"type":779,"value":1964},{"type":770,"tag":924,"props":3029,"children":3030},{"class":926,"line":1086},[3031],{"type":770,"tag":924,"props":3032,"children":3033},{"emptyLinePlaceholder":963},[3034],{"type":779,"value":966},{"type":770,"tag":924,"props":3036,"children":3037},{"class":926,"line":1124},[3038],{"type":770,"tag":924,"props":3039,"children":3040},{"style":973},[3041],{"type":779,"value":1979},{"type":770,"tag":924,"props":3043,"children":3044},{"class":926,"line":1132},[3045,3049,3053,3057,3061,3065,3069,3073],{"type":770,"tag":924,"props":3046,"children":3047},{"style":931},[3048],{"type":779,"value":985},{"type":770,"tag":924,"props":3050,"children":3051},{"style":988},[3052],{"type":779,"value":1991},{"type":770,"tag":924,"props":3054,"children":3055},{"style":931},[3056],{"type":779,"value":996},{"type":770,"tag":924,"props":3058,"children":3059},{"style":931},[3060],{"type":779,"value":1151},{"type":770,"tag":924,"props":3062,"children":3063},{"style":1103},[3064],{"type":779,"value":1156},{"type":770,"tag":924,"props":3066,"children":3067},{"style":937},[3068],{"type":779,"value":1111},{"type":770,"tag":924,"props":3070,"children":3071},{"style":988},[3072],{"type":779,"value":1165},{"type":770,"tag":924,"props":3074,"children":3075},{"style":937},[3076],{"type":779,"value":1121},{"type":770,"tag":924,"props":3078,"children":3079},{"class":926,"line":1172},[3080],{"type":770,"tag":924,"props":3081,"children":3082},{"style":973},[3083],{"type":779,"value":2525},{"type":770,"tag":924,"props":3085,"children":3086},{"class":926,"line":1210},[3087,3091,3095,3099,3103,3107,3111,3115],{"type":770,"tag":924,"props":3088,"children":3089},{"style":931},[3090],{"type":779,"value":985},{"type":770,"tag":924,"props":3092,"children":3093},{"style":988},[3094],{"type":779,"value":2537},{"type":770,"tag":924,"props":3096,"children":3097},{"style":931},[3098],{"type":779,"value":996},{"type":770,"tag":924,"props":3100,"children":3101},{"style":931},[3102],{"type":779,"value":1151},{"type":770,"tag":924,"props":3104,"children":3105},{"style":1103},[3106],{"type":779,"value":1156},{"type":770,"tag":924,"props":3108,"children":3109},{"style":937},[3110],{"type":779,"value":1111},{"type":770,"tag":924,"props":3112,"children":3113},{"style":988},[3114],{"type":779,"value":2558},{"type":770,"tag":924,"props":3116,"children":3117},{"style":937},[3118],{"type":779,"value":1121},{"type":770,"tag":924,"props":3120,"children":3121},{"class":926,"line":1250},[3122],{"type":770,"tag":924,"props":3123,"children":3124},{"emptyLinePlaceholder":963},[3125],{"type":779,"value":966},{"type":770,"tag":924,"props":3127,"children":3128},{"class":926,"line":1258},[3129,3133,3137,3141,3145,3149],{"type":770,"tag":924,"props":3130,"children":3131},{"style":931},[3132],{"type":779,"value":985},{"type":770,"tag":924,"props":3134,"children":3135},{"style":988},[3136],{"type":779,"value":1268},{"type":770,"tag":924,"props":3138,"children":3139},{"style":931},[3140],{"type":779,"value":996},{"type":770,"tag":924,"props":3142,"children":3143},{"style":931},[3144],{"type":779,"value":1151},{"type":770,"tag":924,"props":3146,"children":3147},{"style":1103},[3148],{"type":779,"value":1281},{"type":770,"tag":924,"props":3150,"children":3151},{"style":937},[3152],{"type":779,"value":1286},{"type":770,"tag":924,"props":3154,"children":3155},{"class":926,"line":1289},[3156],{"type":770,"tag":924,"props":3157,"children":3158},{"style":937},[3159],{"type":779,"value":1295},{"type":770,"tag":924,"props":3161,"children":3162},{"class":926,"line":1298},[3163],{"type":770,"tag":924,"props":3164,"children":3165},{"style":973},[3166],{"type":779,"value":1304},{"type":770,"tag":924,"props":3168,"children":3169},{"class":926,"line":1307},[3170,3174,3178],{"type":770,"tag":924,"props":3171,"children":3172},{"style":937},[3173],{"type":779,"value":1313},{"type":770,"tag":924,"props":3175,"children":3176},{"style":948},[3177],{"type":779,"value":2075},{"type":770,"tag":924,"props":3179,"children":3180},{"style":937},[3181],{"type":779,"value":1323},{"type":770,"tag":924,"props":3183,"children":3184},{"class":926,"line":1326},[3185,3189,3193],{"type":770,"tag":924,"props":3186,"children":3187},{"style":937},[3188],{"type":779,"value":1332},{"type":770,"tag":924,"props":3190,"children":3191},{"style":988},[3192],{"type":779,"value":1337},{"type":770,"tag":924,"props":3194,"children":3195},{"style":937},[3196],{"type":779,"value":1323},{"type":770,"tag":924,"props":3198,"children":3199},{"class":926,"line":1344},[3200,3204,3208],{"type":770,"tag":924,"props":3201,"children":3202},{"style":937},[3203],{"type":779,"value":1350},{"type":770,"tag":924,"props":3205,"children":3206},{"style":988},[3207],{"type":779,"value":1355},{"type":770,"tag":924,"props":3209,"children":3210},{"style":937},[3211],{"type":779,"value":1323},{"type":770,"tag":924,"props":3213,"children":3214},{"class":926,"line":1362},[3215],{"type":770,"tag":924,"props":3216,"children":3217},{"style":937},[3218],{"type":779,"value":1368},{"type":770,"tag":924,"props":3220,"children":3221},{"class":926,"line":1371},[3222],{"type":770,"tag":924,"props":3223,"children":3224},{"style":937},[3225],{"type":779,"value":1377},{"type":770,"tag":924,"props":3227,"children":3228},{"class":926,"line":1380},[3229],{"type":770,"tag":924,"props":3230,"children":3231},{"emptyLinePlaceholder":963},[3232],{"type":779,"value":966},{"type":770,"tag":924,"props":3234,"children":3235},{"class":926,"line":1388},[3236,3240,3244,3248,3253],{"type":770,"tag":924,"props":3237,"children":3238},{"style":931},[3239],{"type":779,"value":1394},{"type":770,"tag":924,"props":3241,"children":3242},{"style":931},[3243],{"type":779,"value":1399},{"type":770,"tag":924,"props":3245,"children":3246},{"style":931},[3247],{"type":779,"value":1404},{"type":770,"tag":924,"props":3249,"children":3250},{"style":1103},[3251],{"type":779,"value":3252}," verify",{"type":770,"tag":924,"props":3254,"children":3255},{"style":937},[3256],{"type":779,"value":1414},{"type":770,"tag":924,"props":3258,"children":3259},{"class":926,"line":1417},[3260,3264,3268,3272,3276],{"type":770,"tag":924,"props":3261,"children":3262},{"style":931},[3263],{"type":779,"value":1423},{"type":770,"tag":924,"props":3265,"children":3266},{"style":988},[3267],{"type":779,"value":2166},{"type":770,"tag":924,"props":3269,"children":3270},{"style":931},[3271],{"type":779,"value":996},{"type":770,"tag":924,"props":3273,"children":3274},{"style":948},[3275],{"type":779,"value":2175},{"type":770,"tag":924,"props":3277,"children":3278},{"style":937},[3279],{"type":779,"value":956},{"type":770,"tag":924,"props":3281,"children":3282},{"class":926,"line":1444},[3283],{"type":770,"tag":924,"props":3284,"children":3285},{"emptyLinePlaceholder":963},[3286],{"type":779,"value":966},{"type":770,"tag":924,"props":3288,"children":3289},{"class":926,"line":1480},[3290,3294,3299,3303,3307,3311,3315],{"type":770,"tag":924,"props":3291,"children":3292},{"style":931},[3293],{"type":779,"value":1423},{"type":770,"tag":924,"props":3295,"children":3296},{"style":988},[3297],{"type":779,"value":3298}," verifyRes",{"type":770,"tag":924,"props":3300,"children":3301},{"style":931},[3302],{"type":779,"value":996},{"type":770,"tag":924,"props":3304,"children":3305},{"style":931},[3306],{"type":779,"value":1463},{"type":770,"tag":924,"props":3308,"children":3309},{"style":937},[3310],{"type":779,"value":1468},{"type":770,"tag":924,"props":3312,"children":3313},{"style":1103},[3314],{"type":779,"value":2860},{"type":770,"tag":924,"props":3316,"children":3317},{"style":937},[3318],{"type":779,"value":1286},{"type":770,"tag":924,"props":3320,"children":3321},{"class":926,"line":1508},[3322],{"type":770,"tag":924,"props":3323,"children":3324},{"style":937},[3325],{"type":779,"value":3326},"    txHash,\n",{"type":770,"tag":924,"props":3328,"children":3329},{"class":926,"line":1517},[3330,3335],{"type":770,"tag":924,"props":3331,"children":3332},{"style":937},[3333],{"type":779,"value":3334},"    srcProvider: providerChain1, ",{"type":770,"tag":924,"props":3336,"children":3337},{"style":973},[3338],{"type":779,"value":3339},"// source chain provider (to fetch proof + batch details)\n",{"type":770,"tag":924,"props":3341,"children":3343},{"class":926,"line":3342},29,[3344,3349],{"type":770,"tag":924,"props":3345,"children":3346},{"style":937},[3347],{"type":779,"value":3348},"    targetChain: providerChain2, ",{"type":770,"tag":924,"props":3350,"children":3351},{"style":973},[3352],{"type":779,"value":3353},"// target chain provider (to read interop root + verify)\n",{"type":770,"tag":924,"props":3355,"children":3357},{"class":926,"line":3356},30,[3358],{"type":770,"tag":924,"props":3359,"children":3360},{"style":973},[3361],{"type":779,"value":3362},"    // includeProofInputs: true, // optional debug info\n",{"type":770,"tag":924,"props":3364,"children":3366},{"class":926,"line":3365},31,[3367],{"type":770,"tag":924,"props":3368,"children":3369},{"style":937},[3370],{"type":779,"value":3371},"  });\n",{"type":770,"tag":924,"props":3373,"children":3375},{"class":926,"line":3374},32,[3376,3380,3384,3388,3393],{"type":770,"tag":924,"props":3377,"children":3378},{"style":937},[3379],{"type":779,"value":1486},{"type":770,"tag":924,"props":3381,"children":3382},{"style":1103},[3383],{"type":779,"value":1491},{"type":770,"tag":924,"props":3385,"children":3386},{"style":937},[3387],{"type":779,"value":1111},{"type":770,"tag":924,"props":3389,"children":3390},{"style":948},[3391],{"type":779,"value":3392},"'Message is verified:'",{"type":770,"tag":924,"props":3394,"children":3395},{"style":937},[3396],{"type":779,"value":3397},", verifyRes.verified);\n",{"type":770,"tag":924,"props":3399,"children":3401},{"class":926,"line":3400},33,[3402],{"type":770,"tag":924,"props":3403,"children":3404},{"style":937},[3405],{"type":779,"value":1523},{"type":770,"tag":771,"props":3407,"children":3408},{},[3409],{"type":779,"value":3410},"To verify a message on a local chain,\nyou must also send some transactions on the target chain in order to create a new batch so that the interop root gets updated.\nYou can see an example of this below under \"Local chains example\".",{"type":770,"tag":1525,"props":3412,"children":3414},{"id":3413},"onchain-verification",[3415],{"type":779,"value":3416},"Onchain Verification",{"type":770,"tag":771,"props":3418,"children":3419},{},[3420,3422,3428,3430,3436],{"type":779,"value":3421},"To verify a message inside a smart contract,\nyou can fetch the input args for ",{"type":770,"tag":869,"props":3423,"children":3425},{"className":3424},[],[3426],{"type":779,"value":3427},"proveL2MessageInclusionShared",{"type":779,"value":3429}," using the ",{"type":770,"tag":869,"props":3431,"children":3433},{"className":3432},[],[3434],{"type":779,"value":3435},"getVerificationArgs",{"type":779,"value":3437}," method.",{"type":770,"tag":1525,"props":3439,"children":3441},{"id":3440},"testnet-example",[3442],{"type":779,"value":3443},"Testnet example",{"type":770,"tag":914,"props":3445,"children":3447},{"className":916,"code":3446,"language":918,"meta":764,"style":764},"import { Provider, InteropClient } from 'zksync-ethers';\n\n// Testnet RPC URLS & Gateway chain ID\nconst CHAIN1_RPC = 'https://sepolia.era.zksync.dev'; // Era\nconst CHAIN2_RPC = 'https://api.testnet.abs.xyz'; // Abstract\nconst GW_RPC = 'https://rpc.era-gateway-testnet.zksync.dev'; // Gateway testnet\nconst GW_CHAIN_ID = BigInt('32657'); // Gateway testnet ID\n\n// Provider for message source chain\nconst providerChain1 = new Provider(CHAIN1_RPC);\n// Provider for chain to verify on\nconst providerChain2 = new Provider(CHAIN2_RPC);\n\nconst interop = new InteropClient({\n  gateway: {\n    // 'testnet' | 'mainnet' | 'local'\n    env: 'testnet',\n    gwRpcUrl: GW_RPC,\n    gwChainId: GW_CHAIN_ID,\n  },\n});\n\n// get args to pass into a contract for onchain verification\nexport async function getVerificationArgs() {\n  const txHash = '0xd2ed8c2141996e123a2dbe153beb84404775300f654ba633994e8d48d2cbad2d';\n\n  const args = await interop.getVerificationArgs({\n    txHash,\n    srcProvider: providerChain1, // source chain provider (to fetch proof + batch details)\n    targetChain: providerChain2, // target chain provider (to read interop root + verify)\n  });\n  console.log('Verification Args:', args);\n  // --> { srcChainId, l1BatchNumber, l2MessageIndex, msgData: { txNumberInBatch, sender, data }, gatewayProof }\n}\n\n",[3448],{"type":770,"tag":869,"props":3449,"children":3450},{"__ignoreMap":764},[3451,3474,3481,3488,3515,3542,3569,3604,3611,3618,3653,3660,3695,3702,3729,3736,3743,3758,3773,3788,3795,3802,3809,3817,3841,3864,3871,3903,3910,3921,3932,3939,3964,3972],{"type":770,"tag":924,"props":3452,"children":3453},{"class":926,"line":927},[3454,3458,3462,3466,3470],{"type":770,"tag":924,"props":3455,"children":3456},{"style":931},[3457],{"type":779,"value":934},{"type":770,"tag":924,"props":3459,"children":3460},{"style":937},[3461],{"type":779,"value":1840},{"type":770,"tag":924,"props":3463,"children":3464},{"style":931},[3465],{"type":779,"value":945},{"type":770,"tag":924,"props":3467,"children":3468},{"style":948},[3469],{"type":779,"value":951},{"type":770,"tag":924,"props":3471,"children":3472},{"style":937},[3473],{"type":779,"value":956},{"type":770,"tag":924,"props":3475,"children":3476},{"class":926,"line":959},[3477],{"type":770,"tag":924,"props":3478,"children":3479},{"emptyLinePlaceholder":963},[3480],{"type":779,"value":966},{"type":770,"tag":924,"props":3482,"children":3483},{"class":926,"line":969},[3484],{"type":770,"tag":924,"props":3485,"children":3486},{"style":973},[3487],{"type":779,"value":1867},{"type":770,"tag":924,"props":3489,"children":3490},{"class":926,"line":979},[3491,3495,3499,3503,3507,3511],{"type":770,"tag":924,"props":3492,"children":3493},{"style":931},[3494],{"type":779,"value":985},{"type":770,"tag":924,"props":3496,"children":3497},{"style":988},[3498],{"type":779,"value":1018},{"type":770,"tag":924,"props":3500,"children":3501},{"style":931},[3502],{"type":779,"value":996},{"type":770,"tag":924,"props":3504,"children":3505},{"style":948},[3506],{"type":779,"value":1887},{"type":770,"tag":924,"props":3508,"children":3509},{"style":937},[3510],{"type":779,"value":1892},{"type":770,"tag":924,"props":3512,"children":3513},{"style":973},[3514],{"type":779,"value":1897},{"type":770,"tag":924,"props":3516,"children":3517},{"class":926,"line":1008},[3518,3522,3526,3530,3534,3538],{"type":770,"tag":924,"props":3519,"children":3520},{"style":931},[3521],{"type":779,"value":985},{"type":770,"tag":924,"props":3523,"children":3524},{"style":988},[3525],{"type":779,"value":2388},{"type":770,"tag":924,"props":3527,"children":3528},{"style":931},[3529],{"type":779,"value":996},{"type":770,"tag":924,"props":3531,"children":3532},{"style":948},[3533],{"type":779,"value":2397},{"type":770,"tag":924,"props":3535,"children":3536},{"style":937},[3537],{"type":779,"value":1892},{"type":770,"tag":924,"props":3539,"children":3540},{"style":973},[3541],{"type":779,"value":2406},{"type":770,"tag":924,"props":3543,"children":3544},{"class":926,"line":1034},[3545,3549,3553,3557,3561,3565],{"type":770,"tag":924,"props":3546,"children":3547},{"style":931},[3548],{"type":779,"value":985},{"type":770,"tag":924,"props":3550,"children":3551},{"style":988},[3552],{"type":779,"value":1044},{"type":770,"tag":924,"props":3554,"children":3555},{"style":931},[3556],{"type":779,"value":996},{"type":770,"tag":924,"props":3558,"children":3559},{"style":948},[3560],{"type":779,"value":1917},{"type":770,"tag":924,"props":3562,"children":3563},{"style":937},[3564],{"type":779,"value":1892},{"type":770,"tag":924,"props":3566,"children":3567},{"style":973},[3568],{"type":779,"value":1926},{"type":770,"tag":924,"props":3570,"children":3571},{"class":926,"line":1060},[3572,3576,3580,3584,3588,3592,3596,3600],{"type":770,"tag":924,"props":3573,"children":3574},{"style":931},[3575],{"type":779,"value":985},{"type":770,"tag":924,"props":3577,"children":3578},{"style":988},[3579],{"type":779,"value":1096},{"type":770,"tag":924,"props":3581,"children":3582},{"style":931},[3583],{"type":779,"value":996},{"type":770,"tag":924,"props":3585,"children":3586},{"style":1103},[3587],{"type":779,"value":1106},{"type":770,"tag":924,"props":3589,"children":3590},{"style":937},[3591],{"type":779,"value":1111},{"type":770,"tag":924,"props":3593,"children":3594},{"style":948},[3595],{"type":779,"value":1954},{"type":770,"tag":924,"props":3597,"children":3598},{"style":937},[3599],{"type":779,"value":1959},{"type":770,"tag":924,"props":3601,"children":3602},{"style":973},[3603],{"type":779,"value":1964},{"type":770,"tag":924,"props":3605,"children":3606},{"class":926,"line":1086},[3607],{"type":770,"tag":924,"props":3608,"children":3609},{"emptyLinePlaceholder":963},[3610],{"type":779,"value":966},{"type":770,"tag":924,"props":3612,"children":3613},{"class":926,"line":1124},[3614],{"type":770,"tag":924,"props":3615,"children":3616},{"style":973},[3617],{"type":779,"value":1979},{"type":770,"tag":924,"props":3619,"children":3620},{"class":926,"line":1132},[3621,3625,3629,3633,3637,3641,3645,3649],{"type":770,"tag":924,"props":3622,"children":3623},{"style":931},[3624],{"type":779,"value":985},{"type":770,"tag":924,"props":3626,"children":3627},{"style":988},[3628],{"type":779,"value":1991},{"type":770,"tag":924,"props":3630,"children":3631},{"style":931},[3632],{"type":779,"value":996},{"type":770,"tag":924,"props":3634,"children":3635},{"style":931},[3636],{"type":779,"value":1151},{"type":770,"tag":924,"props":3638,"children":3639},{"style":1103},[3640],{"type":779,"value":1156},{"type":770,"tag":924,"props":3642,"children":3643},{"style":937},[3644],{"type":779,"value":1111},{"type":770,"tag":924,"props":3646,"children":3647},{"style":988},[3648],{"type":779,"value":1165},{"type":770,"tag":924,"props":3650,"children":3651},{"style":937},[3652],{"type":779,"value":1121},{"type":770,"tag":924,"props":3654,"children":3655},{"class":926,"line":1172},[3656],{"type":770,"tag":924,"props":3657,"children":3658},{"style":973},[3659],{"type":779,"value":2525},{"type":770,"tag":924,"props":3661,"children":3662},{"class":926,"line":1210},[3663,3667,3671,3675,3679,3683,3687,3691],{"type":770,"tag":924,"props":3664,"children":3665},{"style":931},[3666],{"type":779,"value":985},{"type":770,"tag":924,"props":3668,"children":3669},{"style":988},[3670],{"type":779,"value":2537},{"type":770,"tag":924,"props":3672,"children":3673},{"style":931},[3674],{"type":779,"value":996},{"type":770,"tag":924,"props":3676,"children":3677},{"style":931},[3678],{"type":779,"value":1151},{"type":770,"tag":924,"props":3680,"children":3681},{"style":1103},[3682],{"type":779,"value":1156},{"type":770,"tag":924,"props":3684,"children":3685},{"style":937},[3686],{"type":779,"value":1111},{"type":770,"tag":924,"props":3688,"children":3689},{"style":988},[3690],{"type":779,"value":2558},{"type":770,"tag":924,"props":3692,"children":3693},{"style":937},[3694],{"type":779,"value":1121},{"type":770,"tag":924,"props":3696,"children":3697},{"class":926,"line":1250},[3698],{"type":770,"tag":924,"props":3699,"children":3700},{"emptyLinePlaceholder":963},[3701],{"type":779,"value":966},{"type":770,"tag":924,"props":3703,"children":3704},{"class":926,"line":1258},[3705,3709,3713,3717,3721,3725],{"type":770,"tag":924,"props":3706,"children":3707},{"style":931},[3708],{"type":779,"value":985},{"type":770,"tag":924,"props":3710,"children":3711},{"style":988},[3712],{"type":779,"value":1268},{"type":770,"tag":924,"props":3714,"children":3715},{"style":931},[3716],{"type":779,"value":996},{"type":770,"tag":924,"props":3718,"children":3719},{"style":931},[3720],{"type":779,"value":1151},{"type":770,"tag":924,"props":3722,"children":3723},{"style":1103},[3724],{"type":779,"value":1281},{"type":770,"tag":924,"props":3726,"children":3727},{"style":937},[3728],{"type":779,"value":1286},{"type":770,"tag":924,"props":3730,"children":3731},{"class":926,"line":1289},[3732],{"type":770,"tag":924,"props":3733,"children":3734},{"style":937},[3735],{"type":779,"value":1295},{"type":770,"tag":924,"props":3737,"children":3738},{"class":926,"line":1298},[3739],{"type":770,"tag":924,"props":3740,"children":3741},{"style":973},[3742],{"type":779,"value":1304},{"type":770,"tag":924,"props":3744,"children":3745},{"class":926,"line":1307},[3746,3750,3754],{"type":770,"tag":924,"props":3747,"children":3748},{"style":937},[3749],{"type":779,"value":1313},{"type":770,"tag":924,"props":3751,"children":3752},{"style":948},[3753],{"type":779,"value":2075},{"type":770,"tag":924,"props":3755,"children":3756},{"style":937},[3757],{"type":779,"value":1323},{"type":770,"tag":924,"props":3759,"children":3760},{"class":926,"line":1326},[3761,3765,3769],{"type":770,"tag":924,"props":3762,"children":3763},{"style":937},[3764],{"type":779,"value":1332},{"type":770,"tag":924,"props":3766,"children":3767},{"style":988},[3768],{"type":779,"value":1337},{"type":770,"tag":924,"props":3770,"children":3771},{"style":937},[3772],{"type":779,"value":1323},{"type":770,"tag":924,"props":3774,"children":3775},{"class":926,"line":1344},[3776,3780,3784],{"type":770,"tag":924,"props":3777,"children":3778},{"style":937},[3779],{"type":779,"value":1350},{"type":770,"tag":924,"props":3781,"children":3782},{"style":988},[3783],{"type":779,"value":1355},{"type":770,"tag":924,"props":3785,"children":3786},{"style":937},[3787],{"type":779,"value":1323},{"type":770,"tag":924,"props":3789,"children":3790},{"class":926,"line":1362},[3791],{"type":770,"tag":924,"props":3792,"children":3793},{"style":937},[3794],{"type":779,"value":1368},{"type":770,"tag":924,"props":3796,"children":3797},{"class":926,"line":1371},[3798],{"type":770,"tag":924,"props":3799,"children":3800},{"style":937},[3801],{"type":779,"value":1377},{"type":770,"tag":924,"props":3803,"children":3804},{"class":926,"line":1380},[3805],{"type":770,"tag":924,"props":3806,"children":3807},{"emptyLinePlaceholder":963},[3808],{"type":779,"value":966},{"type":770,"tag":924,"props":3810,"children":3811},{"class":926,"line":1388},[3812],{"type":770,"tag":924,"props":3813,"children":3814},{"style":973},[3815],{"type":779,"value":3816},"// get args to pass into a contract for onchain verification\n",{"type":770,"tag":924,"props":3818,"children":3819},{"class":926,"line":1417},[3820,3824,3828,3832,3837],{"type":770,"tag":924,"props":3821,"children":3822},{"style":931},[3823],{"type":779,"value":1394},{"type":770,"tag":924,"props":3825,"children":3826},{"style":931},[3827],{"type":779,"value":1399},{"type":770,"tag":924,"props":3829,"children":3830},{"style":931},[3831],{"type":779,"value":1404},{"type":770,"tag":924,"props":3833,"children":3834},{"style":1103},[3835],{"type":779,"value":3836}," getVerificationArgs",{"type":770,"tag":924,"props":3838,"children":3839},{"style":937},[3840],{"type":779,"value":1414},{"type":770,"tag":924,"props":3842,"children":3843},{"class":926,"line":1444},[3844,3848,3852,3856,3860],{"type":770,"tag":924,"props":3845,"children":3846},{"style":931},[3847],{"type":779,"value":1423},{"type":770,"tag":924,"props":3849,"children":3850},{"style":988},[3851],{"type":779,"value":2166},{"type":770,"tag":924,"props":3853,"children":3854},{"style":931},[3855],{"type":779,"value":996},{"type":770,"tag":924,"props":3857,"children":3858},{"style":948},[3859],{"type":779,"value":2175},{"type":770,"tag":924,"props":3861,"children":3862},{"style":937},[3863],{"type":779,"value":956},{"type":770,"tag":924,"props":3865,"children":3866},{"class":926,"line":1480},[3867],{"type":770,"tag":924,"props":3868,"children":3869},{"emptyLinePlaceholder":963},[3870],{"type":779,"value":966},{"type":770,"tag":924,"props":3872,"children":3873},{"class":926,"line":1508},[3874,3878,3883,3887,3891,3895,3899],{"type":770,"tag":924,"props":3875,"children":3876},{"style":931},[3877],{"type":779,"value":1423},{"type":770,"tag":924,"props":3879,"children":3880},{"style":988},[3881],{"type":779,"value":3882}," args",{"type":770,"tag":924,"props":3884,"children":3885},{"style":931},[3886],{"type":779,"value":996},{"type":770,"tag":924,"props":3888,"children":3889},{"style":931},[3890],{"type":779,"value":1463},{"type":770,"tag":924,"props":3892,"children":3893},{"style":937},[3894],{"type":779,"value":1468},{"type":770,"tag":924,"props":3896,"children":3897},{"style":1103},[3898],{"type":779,"value":3435},{"type":770,"tag":924,"props":3900,"children":3901},{"style":937},[3902],{"type":779,"value":1286},{"type":770,"tag":924,"props":3904,"children":3905},{"class":926,"line":1517},[3906],{"type":770,"tag":924,"props":3907,"children":3908},{"style":937},[3909],{"type":779,"value":3326},{"type":770,"tag":924,"props":3911,"children":3912},{"class":926,"line":3342},[3913,3917],{"type":770,"tag":924,"props":3914,"children":3915},{"style":937},[3916],{"type":779,"value":3334},{"type":770,"tag":924,"props":3918,"children":3919},{"style":973},[3920],{"type":779,"value":3339},{"type":770,"tag":924,"props":3922,"children":3923},{"class":926,"line":3356},[3924,3928],{"type":770,"tag":924,"props":3925,"children":3926},{"style":937},[3927],{"type":779,"value":3348},{"type":770,"tag":924,"props":3929,"children":3930},{"style":973},[3931],{"type":779,"value":3353},{"type":770,"tag":924,"props":3933,"children":3934},{"class":926,"line":3365},[3935],{"type":770,"tag":924,"props":3936,"children":3937},{"style":937},[3938],{"type":779,"value":3371},{"type":770,"tag":924,"props":3940,"children":3941},{"class":926,"line":3374},[3942,3946,3950,3954,3959],{"type":770,"tag":924,"props":3943,"children":3944},{"style":937},[3945],{"type":779,"value":1486},{"type":770,"tag":924,"props":3947,"children":3948},{"style":1103},[3949],{"type":779,"value":1491},{"type":770,"tag":924,"props":3951,"children":3952},{"style":937},[3953],{"type":779,"value":1111},{"type":770,"tag":924,"props":3955,"children":3956},{"style":948},[3957],{"type":779,"value":3958},"'Verification Args:'",{"type":770,"tag":924,"props":3960,"children":3961},{"style":937},[3962],{"type":779,"value":3963},", args);\n",{"type":770,"tag":924,"props":3965,"children":3966},{"class":926,"line":3400},[3967],{"type":770,"tag":924,"props":3968,"children":3969},{"style":973},[3970],{"type":779,"value":3971},"  // --> { srcChainId, l1BatchNumber, l2MessageIndex, msgData: { txNumberInBatch, sender, data }, gatewayProof }\n",{"type":770,"tag":924,"props":3973,"children":3975},{"class":926,"line":3974},34,[3976],{"type":770,"tag":924,"props":3977,"children":3978},{"style":937},[3979],{"type":779,"value":1523},{"type":770,"tag":1525,"props":3981,"children":3983},{"id":3982},"local-chains-example",[3984],{"type":779,"value":3985},"Local chains example",{"type":770,"tag":771,"props":3987,"children":3988},{},[3989],{"type":779,"value":3990},"To verify a message on a local chain,\nyou must also send some transactions on the target chain in order to create a new batch so that the interop root gets updated.\nYou can see an example of this below:",{"type":770,"tag":914,"props":3992,"children":3994},{"className":916,"code":3993,"language":918,"meta":764,"style":764},"import { ethers } from 'ethers';\nimport { Provider, Wallet, InteropClient, getGwBlockForBatch, Contract, utils } from 'zksync-ethers';\n\n// private key for local pre-configured rich wallet\nconst PRIVATE_KEY = '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110';\n\nconst CHAIN1_RPC = 'http://localhost:3050';\nconst CHAIN2_RPC = 'http://localhost:3250';\nconst GW_RPC = 'http://localhost:3150'; // gateway\nconst L1_RPC = 'http://localhost:8545';\nconst GW_CHAIN_ID = BigInt('506');\n\n// Chain 1\nconst providerChain1 = new Provider(CHAIN1_RPC);\nconst providerl1 = new Provider(L1_RPC);\nconst walletChain1 = new Wallet(PRIVATE_KEY, providerChain1, providerl1);\n\n// Chain 2\nconst providerChain2 = new Provider(CHAIN2_RPC);\nconst walletChain2 = new Wallet(PRIVATE_KEY, providerChain2, providerl1);\n\nconst interop = new InteropClient({\n  gateway: {\n    // 'testnet' | 'mainnet' | 'local'\n    env: 'local',\n    gwRpcUrl: GW_RPC,\n    gwChainId: GW_CHAIN_ID,\n  },\n});\n\n// get args to pass into a contract for onchain verification\nexport async function getVerificationArgs() {\n  const txHash = '0x...';\n\n  // for local testing only\n  // needed to force interop root to update on local chain 2\n  const root = await updateLocalChainInteropRoot(txHash);\n  console.log('interop root is updated', root);\n\n  const args = await interop.getVerificationArgs({\n    txHash,\n    srcProvider: providerChain1, // source chain provider (to fetch proof + batch details)\n    targetChain: providerChain2, // target chain provider (to read interop root + verify)\n  });\n  console.log('Verification Args:', args);\n  // --> { srcChainId, l1BatchNumber, l2MessageIndex, msgData: { txNumberInBatch, sender, data }, gatewayProof }\n  return args;\n}\n\n// force interop root to update on local chain 2\nasync function updateLocalChainInteropRoot(txHash: `0x${string}`, timeoutMs = 120_000): Promise\u003Cstring> {\n  const receipt = await (await walletChain1.provider.getTransaction(txHash)).waitFinalize();\n  const gw = new ethers.JsonRpcProvider(GW_RPC);\n  const gwBlock = await getGwBlockForBatch(BigInt(receipt.l1BatchNumber!), providerChain1, gw);\n\n  // fetch the interop root from target chain\n  const InteropRootStorage = new Contract(\n    utils.L2_INTEROP_ROOT_STORAGE_ADDRESS,\n    utils.L2_INTEROP_ROOT_STORAGE_ABI,\n    walletChain2\n  );\n\n  const deadline = Date.now() + timeoutMs;\n  while (Date.now() \u003C deadline) {\n    const root: string = await InteropRootStorage.interopRoots(GW_CHAIN_ID, gwBlock);\n    if (root && root !== '0x' + '0'.repeat(64)) return root;\n    // send tx just to get chain2 to seal batch\n    const t = await walletChain2.sendTransaction({\n      to: walletChain2.address,\n      value: BigInt(1),\n    });\n    await (await walletChain2.provider.getTransaction(t.hash)).waitFinalize();\n  }\n  throw new Error(`Chain2 did not import interop root for (${GW_CHAIN_ID}, ${gwBlock}) in time`);\n}\n\n",[3995],{"type":770,"tag":869,"props":3996,"children":3997},{"__ignoreMap":764},[3998,4021,4045,4052,4059,4082,4089,4112,4136,4164,4187,4218,4225,4233,4268,4303,4340,4347,4355,4390,4427,4434,4461,4468,4475,4490,4505,4520,4527,4534,4541,4548,4571,4595,4602,4611,4620,4650,4674,4682,4714,4722,4734,4746,4754,4778,4786,4800,4808,4816,4825,4919,4968,5008,5052,5060,5069,5100,5118,5135,5144,5153,5161,5203,5234,5287,5364,5373,5408,5417,5444,5453,5492,5500,5550],{"type":770,"tag":924,"props":3999,"children":4000},{"class":926,"line":927},[4001,4005,4009,4013,4017],{"type":770,"tag":924,"props":4002,"children":4003},{"style":931},[4004],{"type":779,"value":934},{"type":770,"tag":924,"props":4006,"children":4007},{"style":937},[4008],{"type":779,"value":2298},{"type":770,"tag":924,"props":4010,"children":4011},{"style":931},[4012],{"type":779,"value":945},{"type":770,"tag":924,"props":4014,"children":4015},{"style":948},[4016],{"type":779,"value":2307},{"type":770,"tag":924,"props":4018,"children":4019},{"style":937},[4020],{"type":779,"value":956},{"type":770,"tag":924,"props":4022,"children":4023},{"class":926,"line":959},[4024,4028,4033,4037,4041],{"type":770,"tag":924,"props":4025,"children":4026},{"style":931},[4027],{"type":779,"value":934},{"type":770,"tag":924,"props":4029,"children":4030},{"style":937},[4031],{"type":779,"value":4032}," { Provider, Wallet, InteropClient, getGwBlockForBatch, Contract, utils } ",{"type":770,"tag":924,"props":4034,"children":4035},{"style":931},[4036],{"type":779,"value":945},{"type":770,"tag":924,"props":4038,"children":4039},{"style":948},[4040],{"type":779,"value":951},{"type":770,"tag":924,"props":4042,"children":4043},{"style":937},[4044],{"type":779,"value":956},{"type":770,"tag":924,"props":4046,"children":4047},{"class":926,"line":969},[4048],{"type":770,"tag":924,"props":4049,"children":4050},{"emptyLinePlaceholder":963},[4051],{"type":779,"value":966},{"type":770,"tag":924,"props":4053,"children":4054},{"class":926,"line":979},[4055],{"type":770,"tag":924,"props":4056,"children":4057},{"style":973},[4058],{"type":779,"value":976},{"type":770,"tag":924,"props":4060,"children":4061},{"class":926,"line":1008},[4062,4066,4070,4074,4078],{"type":770,"tag":924,"props":4063,"children":4064},{"style":931},[4065],{"type":779,"value":985},{"type":770,"tag":924,"props":4067,"children":4068},{"style":988},[4069],{"type":779,"value":991},{"type":770,"tag":924,"props":4071,"children":4072},{"style":931},[4073],{"type":779,"value":996},{"type":770,"tag":924,"props":4075,"children":4076},{"style":948},[4077],{"type":779,"value":1001},{"type":770,"tag":924,"props":4079,"children":4080},{"style":937},[4081],{"type":779,"value":956},{"type":770,"tag":924,"props":4083,"children":4084},{"class":926,"line":1034},[4085],{"type":770,"tag":924,"props":4086,"children":4087},{"emptyLinePlaceholder":963},[4088],{"type":779,"value":966},{"type":770,"tag":924,"props":4090,"children":4091},{"class":926,"line":1060},[4092,4096,4100,4104,4108],{"type":770,"tag":924,"props":4093,"children":4094},{"style":931},[4095],{"type":779,"value":985},{"type":770,"tag":924,"props":4097,"children":4098},{"style":988},[4099],{"type":779,"value":1018},{"type":770,"tag":924,"props":4101,"children":4102},{"style":931},[4103],{"type":779,"value":996},{"type":770,"tag":924,"props":4105,"children":4106},{"style":948},[4107],{"type":779,"value":1027},{"type":770,"tag":924,"props":4109,"children":4110},{"style":937},[4111],{"type":779,"value":956},{"type":770,"tag":924,"props":4113,"children":4114},{"class":926,"line":1086},[4115,4119,4123,4127,4132],{"type":770,"tag":924,"props":4116,"children":4117},{"style":931},[4118],{"type":779,"value":985},{"type":770,"tag":924,"props":4120,"children":4121},{"style":988},[4122],{"type":779,"value":2388},{"type":770,"tag":924,"props":4124,"children":4125},{"style":931},[4126],{"type":779,"value":996},{"type":770,"tag":924,"props":4128,"children":4129},{"style":948},[4130],{"type":779,"value":4131}," 'http://localhost:3250'",{"type":770,"tag":924,"props":4133,"children":4134},{"style":937},[4135],{"type":779,"value":956},{"type":770,"tag":924,"props":4137,"children":4138},{"class":926,"line":1124},[4139,4143,4147,4151,4155,4159],{"type":770,"tag":924,"props":4140,"children":4141},{"style":931},[4142],{"type":779,"value":985},{"type":770,"tag":924,"props":4144,"children":4145},{"style":988},[4146],{"type":779,"value":1044},{"type":770,"tag":924,"props":4148,"children":4149},{"style":931},[4150],{"type":779,"value":996},{"type":770,"tag":924,"props":4152,"children":4153},{"style":948},[4154],{"type":779,"value":1053},{"type":770,"tag":924,"props":4156,"children":4157},{"style":937},[4158],{"type":779,"value":1892},{"type":770,"tag":924,"props":4160,"children":4161},{"style":973},[4162],{"type":779,"value":4163},"// gateway\n",{"type":770,"tag":924,"props":4165,"children":4166},{"class":926,"line":1132},[4167,4171,4175,4179,4183],{"type":770,"tag":924,"props":4168,"children":4169},{"style":931},[4170],{"type":779,"value":985},{"type":770,"tag":924,"props":4172,"children":4173},{"style":988},[4174],{"type":779,"value":1070},{"type":770,"tag":924,"props":4176,"children":4177},{"style":931},[4178],{"type":779,"value":996},{"type":770,"tag":924,"props":4180,"children":4181},{"style":948},[4182],{"type":779,"value":1079},{"type":770,"tag":924,"props":4184,"children":4185},{"style":937},[4186],{"type":779,"value":956},{"type":770,"tag":924,"props":4188,"children":4189},{"class":926,"line":1172},[4190,4194,4198,4202,4206,4210,4214],{"type":770,"tag":924,"props":4191,"children":4192},{"style":931},[4193],{"type":779,"value":985},{"type":770,"tag":924,"props":4195,"children":4196},{"style":988},[4197],{"type":779,"value":1096},{"type":770,"tag":924,"props":4199,"children":4200},{"style":931},[4201],{"type":779,"value":996},{"type":770,"tag":924,"props":4203,"children":4204},{"style":1103},[4205],{"type":779,"value":1106},{"type":770,"tag":924,"props":4207,"children":4208},{"style":937},[4209],{"type":779,"value":1111},{"type":770,"tag":924,"props":4211,"children":4212},{"style":948},[4213],{"type":779,"value":1116},{"type":770,"tag":924,"props":4215,"children":4216},{"style":937},[4217],{"type":779,"value":1121},{"type":770,"tag":924,"props":4219,"children":4220},{"class":926,"line":1210},[4221],{"type":770,"tag":924,"props":4222,"children":4223},{"emptyLinePlaceholder":963},[4224],{"type":779,"value":966},{"type":770,"tag":924,"props":4226,"children":4227},{"class":926,"line":1250},[4228],{"type":770,"tag":924,"props":4229,"children":4230},{"style":973},[4231],{"type":779,"value":4232},"// Chain 1\n",{"type":770,"tag":924,"props":4234,"children":4235},{"class":926,"line":1258},[4236,4240,4244,4248,4252,4256,4260,4264],{"type":770,"tag":924,"props":4237,"children":4238},{"style":931},[4239],{"type":779,"value":985},{"type":770,"tag":924,"props":4241,"children":4242},{"style":988},[4243],{"type":779,"value":1991},{"type":770,"tag":924,"props":4245,"children":4246},{"style":931},[4247],{"type":779,"value":996},{"type":770,"tag":924,"props":4249,"children":4250},{"style":931},[4251],{"type":779,"value":1151},{"type":770,"tag":924,"props":4253,"children":4254},{"style":1103},[4255],{"type":779,"value":1156},{"type":770,"tag":924,"props":4257,"children":4258},{"style":937},[4259],{"type":779,"value":1111},{"type":770,"tag":924,"props":4261,"children":4262},{"style":988},[4263],{"type":779,"value":1165},{"type":770,"tag":924,"props":4265,"children":4266},{"style":937},[4267],{"type":779,"value":1121},{"type":770,"tag":924,"props":4269,"children":4270},{"class":926,"line":1289},[4271,4275,4279,4283,4287,4291,4295,4299],{"type":770,"tag":924,"props":4272,"children":4273},{"style":931},[4274],{"type":779,"value":985},{"type":770,"tag":924,"props":4276,"children":4277},{"style":988},[4278],{"type":779,"value":1182},{"type":770,"tag":924,"props":4280,"children":4281},{"style":931},[4282],{"type":779,"value":996},{"type":770,"tag":924,"props":4284,"children":4285},{"style":931},[4286],{"type":779,"value":1151},{"type":770,"tag":924,"props":4288,"children":4289},{"style":1103},[4290],{"type":779,"value":1156},{"type":770,"tag":924,"props":4292,"children":4293},{"style":937},[4294],{"type":779,"value":1111},{"type":770,"tag":924,"props":4296,"children":4297},{"style":988},[4298],{"type":779,"value":1203},{"type":770,"tag":924,"props":4300,"children":4301},{"style":937},[4302],{"type":779,"value":1121},{"type":770,"tag":924,"props":4304,"children":4305},{"class":926,"line":1298},[4306,4310,4315,4319,4323,4327,4331,4335],{"type":770,"tag":924,"props":4307,"children":4308},{"style":931},[4309],{"type":779,"value":985},{"type":770,"tag":924,"props":4311,"children":4312},{"style":988},[4313],{"type":779,"value":4314}," walletChain1",{"type":770,"tag":924,"props":4316,"children":4317},{"style":931},[4318],{"type":779,"value":996},{"type":770,"tag":924,"props":4320,"children":4321},{"style":931},[4322],{"type":779,"value":1151},{"type":770,"tag":924,"props":4324,"children":4325},{"style":1103},[4326],{"type":779,"value":1233},{"type":770,"tag":924,"props":4328,"children":4329},{"style":937},[4330],{"type":779,"value":1111},{"type":770,"tag":924,"props":4332,"children":4333},{"style":988},[4334],{"type":779,"value":1242},{"type":770,"tag":924,"props":4336,"children":4337},{"style":937},[4338],{"type":779,"value":4339},", providerChain1, providerl1);\n",{"type":770,"tag":924,"props":4341,"children":4342},{"class":926,"line":1307},[4343],{"type":770,"tag":924,"props":4344,"children":4345},{"emptyLinePlaceholder":963},[4346],{"type":779,"value":966},{"type":770,"tag":924,"props":4348,"children":4349},{"class":926,"line":1326},[4350],{"type":770,"tag":924,"props":4351,"children":4352},{"style":973},[4353],{"type":779,"value":4354},"// Chain 2\n",{"type":770,"tag":924,"props":4356,"children":4357},{"class":926,"line":1344},[4358,4362,4366,4370,4374,4378,4382,4386],{"type":770,"tag":924,"props":4359,"children":4360},{"style":931},[4361],{"type":779,"value":985},{"type":770,"tag":924,"props":4363,"children":4364},{"style":988},[4365],{"type":779,"value":2537},{"type":770,"tag":924,"props":4367,"children":4368},{"style":931},[4369],{"type":779,"value":996},{"type":770,"tag":924,"props":4371,"children":4372},{"style":931},[4373],{"type":779,"value":1151},{"type":770,"tag":924,"props":4375,"children":4376},{"style":1103},[4377],{"type":779,"value":1156},{"type":770,"tag":924,"props":4379,"children":4380},{"style":937},[4381],{"type":779,"value":1111},{"type":770,"tag":924,"props":4383,"children":4384},{"style":988},[4385],{"type":779,"value":2558},{"type":770,"tag":924,"props":4387,"children":4388},{"style":937},[4389],{"type":779,"value":1121},{"type":770,"tag":924,"props":4391,"children":4392},{"class":926,"line":1362},[4393,4397,4402,4406,4410,4414,4418,4422],{"type":770,"tag":924,"props":4394,"children":4395},{"style":931},[4396],{"type":779,"value":985},{"type":770,"tag":924,"props":4398,"children":4399},{"style":988},[4400],{"type":779,"value":4401}," walletChain2",{"type":770,"tag":924,"props":4403,"children":4404},{"style":931},[4405],{"type":779,"value":996},{"type":770,"tag":924,"props":4407,"children":4408},{"style":931},[4409],{"type":779,"value":1151},{"type":770,"tag":924,"props":4411,"children":4412},{"style":1103},[4413],{"type":779,"value":1233},{"type":770,"tag":924,"props":4415,"children":4416},{"style":937},[4417],{"type":779,"value":1111},{"type":770,"tag":924,"props":4419,"children":4420},{"style":988},[4421],{"type":779,"value":1242},{"type":770,"tag":924,"props":4423,"children":4424},{"style":937},[4425],{"type":779,"value":4426},", providerChain2, providerl1);\n",{"type":770,"tag":924,"props":4428,"children":4429},{"class":926,"line":1371},[4430],{"type":770,"tag":924,"props":4431,"children":4432},{"emptyLinePlaceholder":963},[4433],{"type":779,"value":966},{"type":770,"tag":924,"props":4435,"children":4436},{"class":926,"line":1380},[4437,4441,4445,4449,4453,4457],{"type":770,"tag":924,"props":4438,"children":4439},{"style":931},[4440],{"type":779,"value":985},{"type":770,"tag":924,"props":4442,"children":4443},{"style":988},[4444],{"type":779,"value":1268},{"type":770,"tag":924,"props":4446,"children":4447},{"style":931},[4448],{"type":779,"value":996},{"type":770,"tag":924,"props":4450,"children":4451},{"style":931},[4452],{"type":779,"value":1151},{"type":770,"tag":924,"props":4454,"children":4455},{"style":1103},[4456],{"type":779,"value":1281},{"type":770,"tag":924,"props":4458,"children":4459},{"style":937},[4460],{"type":779,"value":1286},{"type":770,"tag":924,"props":4462,"children":4463},{"class":926,"line":1388},[4464],{"type":770,"tag":924,"props":4465,"children":4466},{"style":937},[4467],{"type":779,"value":1295},{"type":770,"tag":924,"props":4469,"children":4470},{"class":926,"line":1417},[4471],{"type":770,"tag":924,"props":4472,"children":4473},{"style":973},[4474],{"type":779,"value":1304},{"type":770,"tag":924,"props":4476,"children":4477},{"class":926,"line":1444},[4478,4482,4486],{"type":770,"tag":924,"props":4479,"children":4480},{"style":937},[4481],{"type":779,"value":1313},{"type":770,"tag":924,"props":4483,"children":4484},{"style":948},[4485],{"type":779,"value":1318},{"type":770,"tag":924,"props":4487,"children":4488},{"style":937},[4489],{"type":779,"value":1323},{"type":770,"tag":924,"props":4491,"children":4492},{"class":926,"line":1480},[4493,4497,4501],{"type":770,"tag":924,"props":4494,"children":4495},{"style":937},[4496],{"type":779,"value":1332},{"type":770,"tag":924,"props":4498,"children":4499},{"style":988},[4500],{"type":779,"value":1337},{"type":770,"tag":924,"props":4502,"children":4503},{"style":937},[4504],{"type":779,"value":1323},{"type":770,"tag":924,"props":4506,"children":4507},{"class":926,"line":1508},[4508,4512,4516],{"type":770,"tag":924,"props":4509,"children":4510},{"style":937},[4511],{"type":779,"value":1350},{"type":770,"tag":924,"props":4513,"children":4514},{"style":988},[4515],{"type":779,"value":1355},{"type":770,"tag":924,"props":4517,"children":4518},{"style":937},[4519],{"type":779,"value":1323},{"type":770,"tag":924,"props":4521,"children":4522},{"class":926,"line":1517},[4523],{"type":770,"tag":924,"props":4524,"children":4525},{"style":937},[4526],{"type":779,"value":1368},{"type":770,"tag":924,"props":4528,"children":4529},{"class":926,"line":3342},[4530],{"type":770,"tag":924,"props":4531,"children":4532},{"style":937},[4533],{"type":779,"value":1377},{"type":770,"tag":924,"props":4535,"children":4536},{"class":926,"line":3356},[4537],{"type":770,"tag":924,"props":4538,"children":4539},{"emptyLinePlaceholder":963},[4540],{"type":779,"value":966},{"type":770,"tag":924,"props":4542,"children":4543},{"class":926,"line":3365},[4544],{"type":770,"tag":924,"props":4545,"children":4546},{"style":973},[4547],{"type":779,"value":3816},{"type":770,"tag":924,"props":4549,"children":4550},{"class":926,"line":3374},[4551,4555,4559,4563,4567],{"type":770,"tag":924,"props":4552,"children":4553},{"style":931},[4554],{"type":779,"value":1394},{"type":770,"tag":924,"props":4556,"children":4557},{"style":931},[4558],{"type":779,"value":1399},{"type":770,"tag":924,"props":4560,"children":4561},{"style":931},[4562],{"type":779,"value":1404},{"type":770,"tag":924,"props":4564,"children":4565},{"style":1103},[4566],{"type":779,"value":3836},{"type":770,"tag":924,"props":4568,"children":4569},{"style":937},[4570],{"type":779,"value":1414},{"type":770,"tag":924,"props":4572,"children":4573},{"class":926,"line":3400},[4574,4578,4582,4586,4591],{"type":770,"tag":924,"props":4575,"children":4576},{"style":931},[4577],{"type":779,"value":1423},{"type":770,"tag":924,"props":4579,"children":4580},{"style":988},[4581],{"type":779,"value":2166},{"type":770,"tag":924,"props":4583,"children":4584},{"style":931},[4585],{"type":779,"value":996},{"type":770,"tag":924,"props":4587,"children":4588},{"style":948},[4589],{"type":779,"value":4590}," '0x...'",{"type":770,"tag":924,"props":4592,"children":4593},{"style":937},[4594],{"type":779,"value":956},{"type":770,"tag":924,"props":4596,"children":4597},{"class":926,"line":3974},[4598],{"type":770,"tag":924,"props":4599,"children":4600},{"emptyLinePlaceholder":963},[4601],{"type":779,"value":966},{"type":770,"tag":924,"props":4603,"children":4605},{"class":926,"line":4604},35,[4606],{"type":770,"tag":924,"props":4607,"children":4608},{"style":973},[4609],{"type":779,"value":4610},"  // for local testing only\n",{"type":770,"tag":924,"props":4612,"children":4614},{"class":926,"line":4613},36,[4615],{"type":770,"tag":924,"props":4616,"children":4617},{"style":973},[4618],{"type":779,"value":4619},"  // needed to force interop root to update on local chain 2\n",{"type":770,"tag":924,"props":4621,"children":4623},{"class":926,"line":4622},37,[4624,4628,4632,4636,4640,4645],{"type":770,"tag":924,"props":4625,"children":4626},{"style":931},[4627],{"type":779,"value":1423},{"type":770,"tag":924,"props":4629,"children":4630},{"style":988},[4631],{"type":779,"value":2774},{"type":770,"tag":924,"props":4633,"children":4634},{"style":931},[4635],{"type":779,"value":996},{"type":770,"tag":924,"props":4637,"children":4638},{"style":931},[4639],{"type":779,"value":1463},{"type":770,"tag":924,"props":4641,"children":4642},{"style":1103},[4643],{"type":779,"value":4644}," updateLocalChainInteropRoot",{"type":770,"tag":924,"props":4646,"children":4647},{"style":937},[4648],{"type":779,"value":4649},"(txHash);\n",{"type":770,"tag":924,"props":4651,"children":4653},{"class":926,"line":4652},38,[4654,4658,4662,4666,4670],{"type":770,"tag":924,"props":4655,"children":4656},{"style":937},[4657],{"type":779,"value":1486},{"type":770,"tag":924,"props":4659,"children":4660},{"style":1103},[4661],{"type":779,"value":1491},{"type":770,"tag":924,"props":4663,"children":4664},{"style":937},[4665],{"type":779,"value":1111},{"type":770,"tag":924,"props":4667,"children":4668},{"style":948},[4669],{"type":779,"value":2820},{"type":770,"tag":924,"props":4671,"children":4672},{"style":937},[4673],{"type":779,"value":2825},{"type":770,"tag":924,"props":4675,"children":4677},{"class":926,"line":4676},39,[4678],{"type":770,"tag":924,"props":4679,"children":4680},{"emptyLinePlaceholder":963},[4681],{"type":779,"value":966},{"type":770,"tag":924,"props":4683,"children":4685},{"class":926,"line":4684},40,[4686,4690,4694,4698,4702,4706,4710],{"type":770,"tag":924,"props":4687,"children":4688},{"style":931},[4689],{"type":779,"value":1423},{"type":770,"tag":924,"props":4691,"children":4692},{"style":988},[4693],{"type":779,"value":3882},{"type":770,"tag":924,"props":4695,"children":4696},{"style":931},[4697],{"type":779,"value":996},{"type":770,"tag":924,"props":4699,"children":4700},{"style":931},[4701],{"type":779,"value":1463},{"type":770,"tag":924,"props":4703,"children":4704},{"style":937},[4705],{"type":779,"value":1468},{"type":770,"tag":924,"props":4707,"children":4708},{"style":1103},[4709],{"type":779,"value":3435},{"type":770,"tag":924,"props":4711,"children":4712},{"style":937},[4713],{"type":779,"value":1286},{"type":770,"tag":924,"props":4715,"children":4717},{"class":926,"line":4716},41,[4718],{"type":770,"tag":924,"props":4719,"children":4720},{"style":937},[4721],{"type":779,"value":3326},{"type":770,"tag":924,"props":4723,"children":4725},{"class":926,"line":4724},42,[4726,4730],{"type":770,"tag":924,"props":4727,"children":4728},{"style":937},[4729],{"type":779,"value":3334},{"type":770,"tag":924,"props":4731,"children":4732},{"style":973},[4733],{"type":779,"value":3339},{"type":770,"tag":924,"props":4735,"children":4737},{"class":926,"line":4736},43,[4738,4742],{"type":770,"tag":924,"props":4739,"children":4740},{"style":937},[4741],{"type":779,"value":3348},{"type":770,"tag":924,"props":4743,"children":4744},{"style":973},[4745],{"type":779,"value":3353},{"type":770,"tag":924,"props":4747,"children":4749},{"class":926,"line":4748},44,[4750],{"type":770,"tag":924,"props":4751,"children":4752},{"style":937},[4753],{"type":779,"value":3371},{"type":770,"tag":924,"props":4755,"children":4757},{"class":926,"line":4756},45,[4758,4762,4766,4770,4774],{"type":770,"tag":924,"props":4759,"children":4760},{"style":937},[4761],{"type":779,"value":1486},{"type":770,"tag":924,"props":4763,"children":4764},{"style":1103},[4765],{"type":779,"value":1491},{"type":770,"tag":924,"props":4767,"children":4768},{"style":937},[4769],{"type":779,"value":1111},{"type":770,"tag":924,"props":4771,"children":4772},{"style":948},[4773],{"type":779,"value":3958},{"type":770,"tag":924,"props":4775,"children":4776},{"style":937},[4777],{"type":779,"value":3963},{"type":770,"tag":924,"props":4779,"children":4781},{"class":926,"line":4780},46,[4782],{"type":770,"tag":924,"props":4783,"children":4784},{"style":973},[4785],{"type":779,"value":3971},{"type":770,"tag":924,"props":4787,"children":4789},{"class":926,"line":4788},47,[4790,4795],{"type":770,"tag":924,"props":4791,"children":4792},{"style":931},[4793],{"type":779,"value":4794},"  return",{"type":770,"tag":924,"props":4796,"children":4797},{"style":937},[4798],{"type":779,"value":4799}," args;\n",{"type":770,"tag":924,"props":4801,"children":4803},{"class":926,"line":4802},48,[4804],{"type":770,"tag":924,"props":4805,"children":4806},{"style":937},[4807],{"type":779,"value":1523},{"type":770,"tag":924,"props":4809,"children":4811},{"class":926,"line":4810},49,[4812],{"type":770,"tag":924,"props":4813,"children":4814},{"emptyLinePlaceholder":963},[4815],{"type":779,"value":966},{"type":770,"tag":924,"props":4817,"children":4819},{"class":926,"line":4818},50,[4820],{"type":770,"tag":924,"props":4821,"children":4822},{"style":973},[4823],{"type":779,"value":4824},"// force interop root to update on local chain 2\n",{"type":770,"tag":924,"props":4826,"children":4828},{"class":926,"line":4827},51,[4829,4834,4838,4842,4846,4852,4857,4862,4867,4872,4877,4882,4886,4891,4896,4900,4905,4910,4914],{"type":770,"tag":924,"props":4830,"children":4831},{"style":931},[4832],{"type":779,"value":4833},"async",{"type":770,"tag":924,"props":4835,"children":4836},{"style":931},[4837],{"type":779,"value":1404},{"type":770,"tag":924,"props":4839,"children":4840},{"style":1103},[4841],{"type":779,"value":4644},{"type":770,"tag":924,"props":4843,"children":4844},{"style":937},[4845],{"type":779,"value":1111},{"type":770,"tag":924,"props":4847,"children":4849},{"style":4848},"--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70",[4850],{"type":779,"value":4851},"txHash",{"type":770,"tag":924,"props":4853,"children":4854},{"style":931},[4855],{"type":779,"value":4856},":",{"type":770,"tag":924,"props":4858,"children":4859},{"style":948},[4860],{"type":779,"value":4861}," `0x${",{"type":770,"tag":924,"props":4863,"children":4864},{"style":988},[4865],{"type":779,"value":4866},"string",{"type":770,"tag":924,"props":4868,"children":4869},{"style":948},[4870],{"type":779,"value":4871},"}`",{"type":770,"tag":924,"props":4873,"children":4874},{"style":937},[4875],{"type":779,"value":4876},", ",{"type":770,"tag":924,"props":4878,"children":4879},{"style":4848},[4880],{"type":779,"value":4881},"timeoutMs",{"type":770,"tag":924,"props":4883,"children":4884},{"style":931},[4885],{"type":779,"value":996},{"type":770,"tag":924,"props":4887,"children":4888},{"style":988},[4889],{"type":779,"value":4890}," 120_000",{"type":770,"tag":924,"props":4892,"children":4893},{"style":937},[4894],{"type":779,"value":4895},")",{"type":770,"tag":924,"props":4897,"children":4898},{"style":931},[4899],{"type":779,"value":4856},{"type":770,"tag":924,"props":4901,"children":4902},{"style":1103},[4903],{"type":779,"value":4904}," Promise",{"type":770,"tag":924,"props":4906,"children":4907},{"style":937},[4908],{"type":779,"value":4909},"\u003C",{"type":770,"tag":924,"props":4911,"children":4912},{"style":988},[4913],{"type":779,"value":4866},{"type":770,"tag":924,"props":4915,"children":4916},{"style":937},[4917],{"type":779,"value":4918},"> {\n",{"type":770,"tag":924,"props":4920,"children":4922},{"class":926,"line":4921},52,[4923,4927,4931,4935,4939,4943,4947,4952,4956,4960,4964],{"type":770,"tag":924,"props":4924,"children":4925},{"style":931},[4926],{"type":779,"value":1423},{"type":770,"tag":924,"props":4928,"children":4929},{"style":988},[4930],{"type":779,"value":2628},{"type":770,"tag":924,"props":4932,"children":4933},{"style":931},[4934],{"type":779,"value":996},{"type":770,"tag":924,"props":4936,"children":4937},{"style":931},[4938],{"type":779,"value":1463},{"type":770,"tag":924,"props":4940,"children":4941},{"style":937},[4942],{"type":779,"value":2641},{"type":770,"tag":924,"props":4944,"children":4945},{"style":931},[4946],{"type":779,"value":2646},{"type":770,"tag":924,"props":4948,"children":4949},{"style":937},[4950],{"type":779,"value":4951}," walletChain1.provider.",{"type":770,"tag":924,"props":4953,"children":4954},{"style":1103},[4955],{"type":779,"value":2656},{"type":770,"tag":924,"props":4957,"children":4958},{"style":937},[4959],{"type":779,"value":2661},{"type":770,"tag":924,"props":4961,"children":4962},{"style":1103},[4963],{"type":779,"value":2666},{"type":770,"tag":924,"props":4965,"children":4966},{"style":937},[4967],{"type":779,"value":2671},{"type":770,"tag":924,"props":4969,"children":4971},{"class":926,"line":4970},53,[4972,4976,4980,4984,4988,4992,4996,5000,5004],{"type":770,"tag":924,"props":4973,"children":4974},{"style":931},[4975],{"type":779,"value":1423},{"type":770,"tag":924,"props":4977,"children":4978},{"style":988},[4979],{"type":779,"value":2683},{"type":770,"tag":924,"props":4981,"children":4982},{"style":931},[4983],{"type":779,"value":996},{"type":770,"tag":924,"props":4985,"children":4986},{"style":931},[4987],{"type":779,"value":1151},{"type":770,"tag":924,"props":4989,"children":4990},{"style":937},[4991],{"type":779,"value":2696},{"type":770,"tag":924,"props":4993,"children":4994},{"style":1103},[4995],{"type":779,"value":2701},{"type":770,"tag":924,"props":4997,"children":4998},{"style":937},[4999],{"type":779,"value":1111},{"type":770,"tag":924,"props":5001,"children":5002},{"style":988},[5003],{"type":779,"value":1337},{"type":770,"tag":924,"props":5005,"children":5006},{"style":937},[5007],{"type":779,"value":1121},{"type":770,"tag":924,"props":5009,"children":5011},{"class":926,"line":5010},54,[5012,5016,5020,5024,5028,5032,5036,5040,5044,5048],{"type":770,"tag":924,"props":5013,"children":5014},{"style":931},[5015],{"type":779,"value":1423},{"type":770,"tag":924,"props":5017,"children":5018},{"style":988},[5019],{"type":779,"value":2725},{"type":770,"tag":924,"props":5021,"children":5022},{"style":931},[5023],{"type":779,"value":996},{"type":770,"tag":924,"props":5025,"children":5026},{"style":931},[5027],{"type":779,"value":1463},{"type":770,"tag":924,"props":5029,"children":5030},{"style":1103},[5031],{"type":779,"value":2738},{"type":770,"tag":924,"props":5033,"children":5034},{"style":937},[5035],{"type":779,"value":1111},{"type":770,"tag":924,"props":5037,"children":5038},{"style":1103},[5039],{"type":779,"value":2747},{"type":770,"tag":924,"props":5041,"children":5042},{"style":937},[5043],{"type":779,"value":2752},{"type":770,"tag":924,"props":5045,"children":5046},{"style":931},[5047],{"type":779,"value":2757},{"type":770,"tag":924,"props":5049,"children":5050},{"style":937},[5051],{"type":779,"value":2762},{"type":770,"tag":924,"props":5053,"children":5055},{"class":926,"line":5054},55,[5056],{"type":770,"tag":924,"props":5057,"children":5058},{"emptyLinePlaceholder":963},[5059],{"type":779,"value":966},{"type":770,"tag":924,"props":5061,"children":5063},{"class":926,"line":5062},56,[5064],{"type":770,"tag":924,"props":5065,"children":5066},{"style":973},[5067],{"type":779,"value":5068},"  // fetch the interop root from target chain\n",{"type":770,"tag":924,"props":5070,"children":5072},{"class":926,"line":5071},57,[5073,5077,5082,5086,5090,5095],{"type":770,"tag":924,"props":5074,"children":5075},{"style":931},[5076],{"type":779,"value":1423},{"type":770,"tag":924,"props":5078,"children":5079},{"style":988},[5080],{"type":779,"value":5081}," InteropRootStorage",{"type":770,"tag":924,"props":5083,"children":5084},{"style":931},[5085],{"type":779,"value":996},{"type":770,"tag":924,"props":5087,"children":5088},{"style":931},[5089],{"type":779,"value":1151},{"type":770,"tag":924,"props":5091,"children":5092},{"style":1103},[5093],{"type":779,"value":5094}," Contract",{"type":770,"tag":924,"props":5096,"children":5097},{"style":937},[5098],{"type":779,"value":5099},"(\n",{"type":770,"tag":924,"props":5101,"children":5103},{"class":926,"line":5102},58,[5104,5109,5114],{"type":770,"tag":924,"props":5105,"children":5106},{"style":937},[5107],{"type":779,"value":5108},"    utils.",{"type":770,"tag":924,"props":5110,"children":5111},{"style":988},[5112],{"type":779,"value":5113},"L2_INTEROP_ROOT_STORAGE_ADDRESS",{"type":770,"tag":924,"props":5115,"children":5116},{"style":937},[5117],{"type":779,"value":1323},{"type":770,"tag":924,"props":5119,"children":5121},{"class":926,"line":5120},59,[5122,5126,5131],{"type":770,"tag":924,"props":5123,"children":5124},{"style":937},[5125],{"type":779,"value":5108},{"type":770,"tag":924,"props":5127,"children":5128},{"style":988},[5129],{"type":779,"value":5130},"L2_INTEROP_ROOT_STORAGE_ABI",{"type":770,"tag":924,"props":5132,"children":5133},{"style":937},[5134],{"type":779,"value":1323},{"type":770,"tag":924,"props":5136,"children":5138},{"class":926,"line":5137},60,[5139],{"type":770,"tag":924,"props":5140,"children":5141},{"style":937},[5142],{"type":779,"value":5143},"    walletChain2\n",{"type":770,"tag":924,"props":5145,"children":5147},{"class":926,"line":5146},61,[5148],{"type":770,"tag":924,"props":5149,"children":5150},{"style":937},[5151],{"type":779,"value":5152},"  );\n",{"type":770,"tag":924,"props":5154,"children":5156},{"class":926,"line":5155},62,[5157],{"type":770,"tag":924,"props":5158,"children":5159},{"emptyLinePlaceholder":963},[5160],{"type":779,"value":966},{"type":770,"tag":924,"props":5162,"children":5164},{"class":926,"line":5163},63,[5165,5169,5174,5178,5183,5188,5193,5198],{"type":770,"tag":924,"props":5166,"children":5167},{"style":931},[5168],{"type":779,"value":1423},{"type":770,"tag":924,"props":5170,"children":5171},{"style":988},[5172],{"type":779,"value":5173}," deadline",{"type":770,"tag":924,"props":5175,"children":5176},{"style":931},[5177],{"type":779,"value":996},{"type":770,"tag":924,"props":5179,"children":5180},{"style":937},[5181],{"type":779,"value":5182}," Date.",{"type":770,"tag":924,"props":5184,"children":5185},{"style":1103},[5186],{"type":779,"value":5187},"now",{"type":770,"tag":924,"props":5189,"children":5190},{"style":937},[5191],{"type":779,"value":5192},"() ",{"type":770,"tag":924,"props":5194,"children":5195},{"style":931},[5196],{"type":779,"value":5197},"+",{"type":770,"tag":924,"props":5199,"children":5200},{"style":937},[5201],{"type":779,"value":5202}," timeoutMs;\n",{"type":770,"tag":924,"props":5204,"children":5206},{"class":926,"line":5205},64,[5207,5212,5217,5221,5225,5229],{"type":770,"tag":924,"props":5208,"children":5209},{"style":931},[5210],{"type":779,"value":5211},"  while",{"type":770,"tag":924,"props":5213,"children":5214},{"style":937},[5215],{"type":779,"value":5216}," (Date.",{"type":770,"tag":924,"props":5218,"children":5219},{"style":1103},[5220],{"type":779,"value":5187},{"type":770,"tag":924,"props":5222,"children":5223},{"style":937},[5224],{"type":779,"value":5192},{"type":770,"tag":924,"props":5226,"children":5227},{"style":931},[5228],{"type":779,"value":4909},{"type":770,"tag":924,"props":5230,"children":5231},{"style":937},[5232],{"type":779,"value":5233}," deadline) {\n",{"type":770,"tag":924,"props":5235,"children":5237},{"class":926,"line":5236},65,[5238,5243,5247,5251,5256,5260,5264,5269,5274,5278,5282],{"type":770,"tag":924,"props":5239,"children":5240},{"style":931},[5241],{"type":779,"value":5242},"    const",{"type":770,"tag":924,"props":5244,"children":5245},{"style":988},[5246],{"type":779,"value":2774},{"type":770,"tag":924,"props":5248,"children":5249},{"style":931},[5250],{"type":779,"value":4856},{"type":770,"tag":924,"props":5252,"children":5253},{"style":988},[5254],{"type":779,"value":5255}," string",{"type":770,"tag":924,"props":5257,"children":5258},{"style":931},[5259],{"type":779,"value":996},{"type":770,"tag":924,"props":5261,"children":5262},{"style":931},[5263],{"type":779,"value":1463},{"type":770,"tag":924,"props":5265,"children":5266},{"style":937},[5267],{"type":779,"value":5268}," InteropRootStorage.",{"type":770,"tag":924,"props":5270,"children":5271},{"style":1103},[5272],{"type":779,"value":5273},"interopRoots",{"type":770,"tag":924,"props":5275,"children":5276},{"style":937},[5277],{"type":779,"value":1111},{"type":770,"tag":924,"props":5279,"children":5280},{"style":988},[5281],{"type":779,"value":1355},{"type":770,"tag":924,"props":5283,"children":5284},{"style":937},[5285],{"type":779,"value":5286},", gwBlock);\n",{"type":770,"tag":924,"props":5288,"children":5290},{"class":926,"line":5289},66,[5291,5296,5301,5306,5311,5316,5321,5326,5331,5335,5340,5344,5349,5354,5359],{"type":770,"tag":924,"props":5292,"children":5293},{"style":931},[5294],{"type":779,"value":5295},"    if",{"type":770,"tag":924,"props":5297,"children":5298},{"style":937},[5299],{"type":779,"value":5300}," (root ",{"type":770,"tag":924,"props":5302,"children":5303},{"style":931},[5304],{"type":779,"value":5305},"&&",{"type":770,"tag":924,"props":5307,"children":5308},{"style":937},[5309],{"type":779,"value":5310}," root ",{"type":770,"tag":924,"props":5312,"children":5313},{"style":931},[5314],{"type":779,"value":5315},"!==",{"type":770,"tag":924,"props":5317,"children":5318},{"style":948},[5319],{"type":779,"value":5320}," '0x'",{"type":770,"tag":924,"props":5322,"children":5323},{"style":931},[5324],{"type":779,"value":5325}," +",{"type":770,"tag":924,"props":5327,"children":5328},{"style":948},[5329],{"type":779,"value":5330}," '0'",{"type":770,"tag":924,"props":5332,"children":5333},{"style":937},[5334],{"type":779,"value":1821},{"type":770,"tag":924,"props":5336,"children":5337},{"style":1103},[5338],{"type":779,"value":5339},"repeat",{"type":770,"tag":924,"props":5341,"children":5342},{"style":937},[5343],{"type":779,"value":1111},{"type":770,"tag":924,"props":5345,"children":5346},{"style":988},[5347],{"type":779,"value":5348},"64",{"type":770,"tag":924,"props":5350,"children":5351},{"style":937},[5352],{"type":779,"value":5353},")) ",{"type":770,"tag":924,"props":5355,"children":5356},{"style":931},[5357],{"type":779,"value":5358},"return",{"type":770,"tag":924,"props":5360,"children":5361},{"style":937},[5362],{"type":779,"value":5363}," root;\n",{"type":770,"tag":924,"props":5365,"children":5367},{"class":926,"line":5366},67,[5368],{"type":770,"tag":924,"props":5369,"children":5370},{"style":973},[5371],{"type":779,"value":5372},"    // send tx just to get chain2 to seal batch\n",{"type":770,"tag":924,"props":5374,"children":5376},{"class":926,"line":5375},68,[5377,5381,5386,5390,5394,5399,5404],{"type":770,"tag":924,"props":5378,"children":5379},{"style":931},[5380],{"type":779,"value":5242},{"type":770,"tag":924,"props":5382,"children":5383},{"style":988},[5384],{"type":779,"value":5385}," t",{"type":770,"tag":924,"props":5387,"children":5388},{"style":931},[5389],{"type":779,"value":996},{"type":770,"tag":924,"props":5391,"children":5392},{"style":931},[5393],{"type":779,"value":1463},{"type":770,"tag":924,"props":5395,"children":5396},{"style":937},[5397],{"type":779,"value":5398}," walletChain2.",{"type":770,"tag":924,"props":5400,"children":5401},{"style":1103},[5402],{"type":779,"value":5403},"sendTransaction",{"type":770,"tag":924,"props":5405,"children":5406},{"style":937},[5407],{"type":779,"value":1286},{"type":770,"tag":924,"props":5409,"children":5411},{"class":926,"line":5410},69,[5412],{"type":770,"tag":924,"props":5413,"children":5414},{"style":937},[5415],{"type":779,"value":5416},"      to: walletChain2.address,\n",{"type":770,"tag":924,"props":5418,"children":5420},{"class":926,"line":5419},70,[5421,5426,5430,5434,5439],{"type":770,"tag":924,"props":5422,"children":5423},{"style":937},[5424],{"type":779,"value":5425},"      value: ",{"type":770,"tag":924,"props":5427,"children":5428},{"style":1103},[5429],{"type":779,"value":2747},{"type":770,"tag":924,"props":5431,"children":5432},{"style":937},[5433],{"type":779,"value":1111},{"type":770,"tag":924,"props":5435,"children":5436},{"style":988},[5437],{"type":779,"value":5438},"1",{"type":770,"tag":924,"props":5440,"children":5441},{"style":937},[5442],{"type":779,"value":5443},"),\n",{"type":770,"tag":924,"props":5445,"children":5447},{"class":926,"line":5446},71,[5448],{"type":770,"tag":924,"props":5449,"children":5450},{"style":937},[5451],{"type":779,"value":5452},"    });\n",{"type":770,"tag":924,"props":5454,"children":5456},{"class":926,"line":5455},72,[5457,5462,5466,5470,5475,5479,5484,5488],{"type":770,"tag":924,"props":5458,"children":5459},{"style":931},[5460],{"type":779,"value":5461},"    await",{"type":770,"tag":924,"props":5463,"children":5464},{"style":937},[5465],{"type":779,"value":2641},{"type":770,"tag":924,"props":5467,"children":5468},{"style":931},[5469],{"type":779,"value":2646},{"type":770,"tag":924,"props":5471,"children":5472},{"style":937},[5473],{"type":779,"value":5474}," walletChain2.provider.",{"type":770,"tag":924,"props":5476,"children":5477},{"style":1103},[5478],{"type":779,"value":2656},{"type":770,"tag":924,"props":5480,"children":5481},{"style":937},[5482],{"type":779,"value":5483},"(t.hash)).",{"type":770,"tag":924,"props":5485,"children":5486},{"style":1103},[5487],{"type":779,"value":2666},{"type":770,"tag":924,"props":5489,"children":5490},{"style":937},[5491],{"type":779,"value":2671},{"type":770,"tag":924,"props":5493,"children":5495},{"class":926,"line":5494},73,[5496],{"type":770,"tag":924,"props":5497,"children":5498},{"style":937},[5499],{"type":779,"value":1787},{"type":770,"tag":924,"props":5501,"children":5503},{"class":926,"line":5502},74,[5504,5509,5513,5518,5522,5527,5531,5536,5541,5546],{"type":770,"tag":924,"props":5505,"children":5506},{"style":931},[5507],{"type":779,"value":5508},"  throw",{"type":770,"tag":924,"props":5510,"children":5511},{"style":931},[5512],{"type":779,"value":1151},{"type":770,"tag":924,"props":5514,"children":5515},{"style":1103},[5516],{"type":779,"value":5517}," Error",{"type":770,"tag":924,"props":5519,"children":5520},{"style":937},[5521],{"type":779,"value":1111},{"type":770,"tag":924,"props":5523,"children":5524},{"style":948},[5525],{"type":779,"value":5526},"`Chain2 did not import interop root for (${",{"type":770,"tag":924,"props":5528,"children":5529},{"style":988},[5530],{"type":779,"value":1355},{"type":770,"tag":924,"props":5532,"children":5533},{"style":948},[5534],{"type":779,"value":5535},"}, ${",{"type":770,"tag":924,"props":5537,"children":5538},{"style":937},[5539],{"type":779,"value":5540},"gwBlock",{"type":770,"tag":924,"props":5542,"children":5543},{"style":948},[5544],{"type":779,"value":5545},"}) in time`",{"type":770,"tag":924,"props":5547,"children":5548},{"style":937},[5549],{"type":779,"value":1121},{"type":770,"tag":924,"props":5551,"children":5553},{"class":926,"line":5552},75,[5554],{"type":770,"tag":924,"props":5555,"children":5556},{"style":937},[5557],{"type":779,"value":1523},{"type":770,"tag":1525,"props":5559,"children":5561},{"id":5560},"verifying-onchain",[5562],{"type":779,"value":5563},"Verifying onchain",{"type":770,"tag":771,"props":5565,"children":5566},{},[5567],{"type":779,"value":5568},"Once you have the input args, you can pass them into a contract function as shown in the example below:",{"type":770,"tag":5570,"props":5571,"children":5573},"h4",{"id":5572},"onchain-verification-script",[5574],{"type":779,"value":5575},"Onchain verification script",{"type":770,"tag":914,"props":5577,"children":5579},{"className":916,"code":5578,"language":918,"meta":764,"style":764},"import { getVerificationArgs } from './get-verification-args-local';\nimport { Contract, Provider, Wallet } from 'zksync-ethers';\nimport ABI_JSON from '../../artifacts-zk/contracts/InteropVerification.sol/InteropVerification.json';\n\n// private key for local pre-configured rich wallet\nconst PRIVATE_KEY = '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110';\nconst CHAIN_RPC = 'http://localhost:3050';\nconst L1_RPC = 'http://localhost:8545';\n\nconst providerl2 = new Provider(CHAIN_RPC);\nconst providerl1 = new Provider(L1_RPC);\nconst wallet = new Wallet(PRIVATE_KEY, providerl2, providerl1);\n\nconst CONTRACT_ADDRESS = '0x...';\n\nexport async function testOnchainVerification() {\n  const args = await getVerificationArgs();\n  const contract = new Contract(CONTRACT_ADDRESS, ABI_JSON.abi, wallet);\n  const response = await contract.checkVerification(\n    args.srcChainId,\n    args.l1BatchNumber,\n    args.l2MessageIndex,\n    args.msgData,\n    args.gatewayProof\n  );\n  console.log('message is verified:', response);\n}\n\n",[5580],{"type":770,"tag":869,"props":5581,"children":5582},{"__ignoreMap":764},[5583,5608,5632,5657,5664,5671,5694,5718,5741,5748,5784,5819,5854,5861,5885,5892,5916,5943,5990,6023,6031,6039,6047,6055,6063,6070,6095],{"type":770,"tag":924,"props":5584,"children":5585},{"class":926,"line":927},[5586,5590,5595,5599,5604],{"type":770,"tag":924,"props":5587,"children":5588},{"style":931},[5589],{"type":779,"value":934},{"type":770,"tag":924,"props":5591,"children":5592},{"style":937},[5593],{"type":779,"value":5594}," { getVerificationArgs } ",{"type":770,"tag":924,"props":5596,"children":5597},{"style":931},[5598],{"type":779,"value":945},{"type":770,"tag":924,"props":5600,"children":5601},{"style":948},[5602],{"type":779,"value":5603}," './get-verification-args-local'",{"type":770,"tag":924,"props":5605,"children":5606},{"style":937},[5607],{"type":779,"value":956},{"type":770,"tag":924,"props":5609,"children":5610},{"class":926,"line":959},[5611,5615,5620,5624,5628],{"type":770,"tag":924,"props":5612,"children":5613},{"style":931},[5614],{"type":779,"value":934},{"type":770,"tag":924,"props":5616,"children":5617},{"style":937},[5618],{"type":779,"value":5619}," { Contract, Provider, Wallet } ",{"type":770,"tag":924,"props":5621,"children":5622},{"style":931},[5623],{"type":779,"value":945},{"type":770,"tag":924,"props":5625,"children":5626},{"style":948},[5627],{"type":779,"value":951},{"type":770,"tag":924,"props":5629,"children":5630},{"style":937},[5631],{"type":779,"value":956},{"type":770,"tag":924,"props":5633,"children":5634},{"class":926,"line":969},[5635,5639,5644,5648,5653],{"type":770,"tag":924,"props":5636,"children":5637},{"style":931},[5638],{"type":779,"value":934},{"type":770,"tag":924,"props":5640,"children":5641},{"style":937},[5642],{"type":779,"value":5643}," ABI_JSON ",{"type":770,"tag":924,"props":5645,"children":5646},{"style":931},[5647],{"type":779,"value":945},{"type":770,"tag":924,"props":5649,"children":5650},{"style":948},[5651],{"type":779,"value":5652}," '../../artifacts-zk/contracts/InteropVerification.sol/InteropVerification.json'",{"type":770,"tag":924,"props":5654,"children":5655},{"style":937},[5656],{"type":779,"value":956},{"type":770,"tag":924,"props":5658,"children":5659},{"class":926,"line":979},[5660],{"type":770,"tag":924,"props":5661,"children":5662},{"emptyLinePlaceholder":963},[5663],{"type":779,"value":966},{"type":770,"tag":924,"props":5665,"children":5666},{"class":926,"line":1008},[5667],{"type":770,"tag":924,"props":5668,"children":5669},{"style":973},[5670],{"type":779,"value":976},{"type":770,"tag":924,"props":5672,"children":5673},{"class":926,"line":1034},[5674,5678,5682,5686,5690],{"type":770,"tag":924,"props":5675,"children":5676},{"style":931},[5677],{"type":779,"value":985},{"type":770,"tag":924,"props":5679,"children":5680},{"style":988},[5681],{"type":779,"value":991},{"type":770,"tag":924,"props":5683,"children":5684},{"style":931},[5685],{"type":779,"value":996},{"type":770,"tag":924,"props":5687,"children":5688},{"style":948},[5689],{"type":779,"value":1001},{"type":770,"tag":924,"props":5691,"children":5692},{"style":937},[5693],{"type":779,"value":956},{"type":770,"tag":924,"props":5695,"children":5696},{"class":926,"line":1060},[5697,5701,5706,5710,5714],{"type":770,"tag":924,"props":5698,"children":5699},{"style":931},[5700],{"type":779,"value":985},{"type":770,"tag":924,"props":5702,"children":5703},{"style":988},[5704],{"type":779,"value":5705}," CHAIN_RPC",{"type":770,"tag":924,"props":5707,"children":5708},{"style":931},[5709],{"type":779,"value":996},{"type":770,"tag":924,"props":5711,"children":5712},{"style":948},[5713],{"type":779,"value":1027},{"type":770,"tag":924,"props":5715,"children":5716},{"style":937},[5717],{"type":779,"value":956},{"type":770,"tag":924,"props":5719,"children":5720},{"class":926,"line":1086},[5721,5725,5729,5733,5737],{"type":770,"tag":924,"props":5722,"children":5723},{"style":931},[5724],{"type":779,"value":985},{"type":770,"tag":924,"props":5726,"children":5727},{"style":988},[5728],{"type":779,"value":1070},{"type":770,"tag":924,"props":5730,"children":5731},{"style":931},[5732],{"type":779,"value":996},{"type":770,"tag":924,"props":5734,"children":5735},{"style":948},[5736],{"type":779,"value":1079},{"type":770,"tag":924,"props":5738,"children":5739},{"style":937},[5740],{"type":779,"value":956},{"type":770,"tag":924,"props":5742,"children":5743},{"class":926,"line":1124},[5744],{"type":770,"tag":924,"props":5745,"children":5746},{"emptyLinePlaceholder":963},[5747],{"type":779,"value":966},{"type":770,"tag":924,"props":5749,"children":5750},{"class":926,"line":1132},[5751,5755,5759,5763,5767,5771,5775,5780],{"type":770,"tag":924,"props":5752,"children":5753},{"style":931},[5754],{"type":779,"value":985},{"type":770,"tag":924,"props":5756,"children":5757},{"style":988},[5758],{"type":779,"value":1142},{"type":770,"tag":924,"props":5760,"children":5761},{"style":931},[5762],{"type":779,"value":996},{"type":770,"tag":924,"props":5764,"children":5765},{"style":931},[5766],{"type":779,"value":1151},{"type":770,"tag":924,"props":5768,"children":5769},{"style":1103},[5770],{"type":779,"value":1156},{"type":770,"tag":924,"props":5772,"children":5773},{"style":937},[5774],{"type":779,"value":1111},{"type":770,"tag":924,"props":5776,"children":5777},{"style":988},[5778],{"type":779,"value":5779},"CHAIN_RPC",{"type":770,"tag":924,"props":5781,"children":5782},{"style":937},[5783],{"type":779,"value":1121},{"type":770,"tag":924,"props":5785,"children":5786},{"class":926,"line":1172},[5787,5791,5795,5799,5803,5807,5811,5815],{"type":770,"tag":924,"props":5788,"children":5789},{"style":931},[5790],{"type":779,"value":985},{"type":770,"tag":924,"props":5792,"children":5793},{"style":988},[5794],{"type":779,"value":1182},{"type":770,"tag":924,"props":5796,"children":5797},{"style":931},[5798],{"type":779,"value":996},{"type":770,"tag":924,"props":5800,"children":5801},{"style":931},[5802],{"type":779,"value":1151},{"type":770,"tag":924,"props":5804,"children":5805},{"style":1103},[5806],{"type":779,"value":1156},{"type":770,"tag":924,"props":5808,"children":5809},{"style":937},[5810],{"type":779,"value":1111},{"type":770,"tag":924,"props":5812,"children":5813},{"style":988},[5814],{"type":779,"value":1203},{"type":770,"tag":924,"props":5816,"children":5817},{"style":937},[5818],{"type":779,"value":1121},{"type":770,"tag":924,"props":5820,"children":5821},{"class":926,"line":1210},[5822,5826,5830,5834,5838,5842,5846,5850],{"type":770,"tag":924,"props":5823,"children":5824},{"style":931},[5825],{"type":779,"value":985},{"type":770,"tag":924,"props":5827,"children":5828},{"style":988},[5829],{"type":779,"value":1220},{"type":770,"tag":924,"props":5831,"children":5832},{"style":931},[5833],{"type":779,"value":996},{"type":770,"tag":924,"props":5835,"children":5836},{"style":931},[5837],{"type":779,"value":1151},{"type":770,"tag":924,"props":5839,"children":5840},{"style":1103},[5841],{"type":779,"value":1233},{"type":770,"tag":924,"props":5843,"children":5844},{"style":937},[5845],{"type":779,"value":1111},{"type":770,"tag":924,"props":5847,"children":5848},{"style":988},[5849],{"type":779,"value":1242},{"type":770,"tag":924,"props":5851,"children":5852},{"style":937},[5853],{"type":779,"value":1247},{"type":770,"tag":924,"props":5855,"children":5856},{"class":926,"line":1250},[5857],{"type":770,"tag":924,"props":5858,"children":5859},{"emptyLinePlaceholder":963},[5860],{"type":779,"value":966},{"type":770,"tag":924,"props":5862,"children":5863},{"class":926,"line":1258},[5864,5868,5873,5877,5881],{"type":770,"tag":924,"props":5865,"children":5866},{"style":931},[5867],{"type":779,"value":985},{"type":770,"tag":924,"props":5869,"children":5870},{"style":988},[5871],{"type":779,"value":5872}," CONTRACT_ADDRESS",{"type":770,"tag":924,"props":5874,"children":5875},{"style":931},[5876],{"type":779,"value":996},{"type":770,"tag":924,"props":5878,"children":5879},{"style":948},[5880],{"type":779,"value":4590},{"type":770,"tag":924,"props":5882,"children":5883},{"style":937},[5884],{"type":779,"value":956},{"type":770,"tag":924,"props":5886,"children":5887},{"class":926,"line":1289},[5888],{"type":770,"tag":924,"props":5889,"children":5890},{"emptyLinePlaceholder":963},[5891],{"type":779,"value":966},{"type":770,"tag":924,"props":5893,"children":5894},{"class":926,"line":1298},[5895,5899,5903,5907,5912],{"type":770,"tag":924,"props":5896,"children":5897},{"style":931},[5898],{"type":779,"value":1394},{"type":770,"tag":924,"props":5900,"children":5901},{"style":931},[5902],{"type":779,"value":1399},{"type":770,"tag":924,"props":5904,"children":5905},{"style":931},[5906],{"type":779,"value":1404},{"type":770,"tag":924,"props":5908,"children":5909},{"style":1103},[5910],{"type":779,"value":5911}," testOnchainVerification",{"type":770,"tag":924,"props":5913,"children":5914},{"style":937},[5915],{"type":779,"value":1414},{"type":770,"tag":924,"props":5917,"children":5918},{"class":926,"line":1307},[5919,5923,5927,5931,5935,5939],{"type":770,"tag":924,"props":5920,"children":5921},{"style":931},[5922],{"type":779,"value":1423},{"type":770,"tag":924,"props":5924,"children":5925},{"style":988},[5926],{"type":779,"value":3882},{"type":770,"tag":924,"props":5928,"children":5929},{"style":931},[5930],{"type":779,"value":996},{"type":770,"tag":924,"props":5932,"children":5933},{"style":931},[5934],{"type":779,"value":1463},{"type":770,"tag":924,"props":5936,"children":5937},{"style":1103},[5938],{"type":779,"value":3836},{"type":770,"tag":924,"props":5940,"children":5941},{"style":937},[5942],{"type":779,"value":2671},{"type":770,"tag":924,"props":5944,"children":5945},{"class":926,"line":1326},[5946,5950,5955,5959,5963,5967,5971,5976,5980,5985],{"type":770,"tag":924,"props":5947,"children":5948},{"style":931},[5949],{"type":779,"value":1423},{"type":770,"tag":924,"props":5951,"children":5952},{"style":988},[5953],{"type":779,"value":5954}," contract",{"type":770,"tag":924,"props":5956,"children":5957},{"style":931},[5958],{"type":779,"value":996},{"type":770,"tag":924,"props":5960,"children":5961},{"style":931},[5962],{"type":779,"value":1151},{"type":770,"tag":924,"props":5964,"children":5965},{"style":1103},[5966],{"type":779,"value":5094},{"type":770,"tag":924,"props":5968,"children":5969},{"style":937},[5970],{"type":779,"value":1111},{"type":770,"tag":924,"props":5972,"children":5973},{"style":988},[5974],{"type":779,"value":5975},"CONTRACT_ADDRESS",{"type":770,"tag":924,"props":5977,"children":5978},{"style":937},[5979],{"type":779,"value":4876},{"type":770,"tag":924,"props":5981,"children":5982},{"style":988},[5983],{"type":779,"value":5984},"ABI_JSON",{"type":770,"tag":924,"props":5986,"children":5987},{"style":937},[5988],{"type":779,"value":5989},".abi, wallet);\n",{"type":770,"tag":924,"props":5991,"children":5992},{"class":926,"line":1344},[5993,5997,6002,6006,6010,6014,6019],{"type":770,"tag":924,"props":5994,"children":5995},{"style":931},[5996],{"type":779,"value":1423},{"type":770,"tag":924,"props":5998,"children":5999},{"style":988},[6000],{"type":779,"value":6001}," response",{"type":770,"tag":924,"props":6003,"children":6004},{"style":931},[6005],{"type":779,"value":996},{"type":770,"tag":924,"props":6007,"children":6008},{"style":931},[6009],{"type":779,"value":1463},{"type":770,"tag":924,"props":6011,"children":6012},{"style":937},[6013],{"type":779,"value":1551},{"type":770,"tag":924,"props":6015,"children":6016},{"style":1103},[6017],{"type":779,"value":6018},"checkVerification",{"type":770,"tag":924,"props":6020,"children":6021},{"style":937},[6022],{"type":779,"value":5099},{"type":770,"tag":924,"props":6024,"children":6025},{"class":926,"line":1362},[6026],{"type":770,"tag":924,"props":6027,"children":6028},{"style":937},[6029],{"type":779,"value":6030},"    args.srcChainId,\n",{"type":770,"tag":924,"props":6032,"children":6033},{"class":926,"line":1371},[6034],{"type":770,"tag":924,"props":6035,"children":6036},{"style":937},[6037],{"type":779,"value":6038},"    args.l1BatchNumber,\n",{"type":770,"tag":924,"props":6040,"children":6041},{"class":926,"line":1380},[6042],{"type":770,"tag":924,"props":6043,"children":6044},{"style":937},[6045],{"type":779,"value":6046},"    args.l2MessageIndex,\n",{"type":770,"tag":924,"props":6048,"children":6049},{"class":926,"line":1388},[6050],{"type":770,"tag":924,"props":6051,"children":6052},{"style":937},[6053],{"type":779,"value":6054},"    args.msgData,\n",{"type":770,"tag":924,"props":6056,"children":6057},{"class":926,"line":1417},[6058],{"type":770,"tag":924,"props":6059,"children":6060},{"style":937},[6061],{"type":779,"value":6062},"    args.gatewayProof\n",{"type":770,"tag":924,"props":6064,"children":6065},{"class":926,"line":1444},[6066],{"type":770,"tag":924,"props":6067,"children":6068},{"style":937},[6069],{"type":779,"value":5152},{"type":770,"tag":924,"props":6071,"children":6072},{"class":926,"line":1480},[6073,6077,6081,6085,6090],{"type":770,"tag":924,"props":6074,"children":6075},{"style":937},[6076],{"type":779,"value":1486},{"type":770,"tag":924,"props":6078,"children":6079},{"style":1103},[6080],{"type":779,"value":1491},{"type":770,"tag":924,"props":6082,"children":6083},{"style":937},[6084],{"type":779,"value":1111},{"type":770,"tag":924,"props":6086,"children":6087},{"style":948},[6088],{"type":779,"value":6089},"'message is verified:'",{"type":770,"tag":924,"props":6091,"children":6092},{"style":937},[6093],{"type":779,"value":6094},", response);\n",{"type":770,"tag":924,"props":6096,"children":6097},{"class":926,"line":1508},[6098],{"type":770,"tag":924,"props":6099,"children":6100},{"style":937},[6101],{"type":779,"value":1523},{"type":770,"tag":5570,"props":6103,"children":6105},{"id":6104},"smart-contract-verification",[6106],{"type":779,"value":6107},"Smart contract verification",{"type":770,"tag":914,"props":6109,"children":6111},{"className":1554,"code":6110,"language":1556,"meta":764,"style":764},"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.28;\n\nimport { IMessageVerification } from '@matterlabs/zksync-contracts/contracts/l1-contracts/state-transition/chain-interfaces/IMessageVerification.sol';\nimport { L2Message } from '@matterlabs/zksync-contracts/contracts/l1-contracts/common/Messaging.sol';\n\ncontract InteropVerification {\n  address constant L2_MESSAGE_VERIFICATION_ADDRESS = 0x0000000000000000000000000000000000010009;\n\n  IMessageVerification public l2MessageVerifier = IMessageVerification(L2_MESSAGE_VERIFICATION_ADDRESS);\n\n  function checkVerification(\n    uint256 _sourceChainId,\n    uint256 _l1BatchNumber,\n    uint256 _l2MessageIndex,\n    L2Message calldata _l2MessageData,\n    bytes32[] calldata _proof\n  ) public view returns (bool) {\n    bool result = l2MessageVerifier.proveL2MessageInclusionShared(\n      _sourceChainId,\n      _l1BatchNumber,\n      _l2MessageIndex,\n      _l2MessageData,\n      _proof\n    );\n    return result;\n  }\n}\n\n",[6112],{"type":770,"tag":869,"props":6113,"children":6114},{"__ignoreMap":764},[6115,6122,6141,6148,6181,6214,6221,6237,6266,6273,6304,6311,6327,6340,6352,6364,6381,6404,6440,6470,6478,6486,6494,6502,6510,6518,6531,6538],{"type":770,"tag":924,"props":6116,"children":6117},{"class":926,"line":927},[6118],{"type":770,"tag":924,"props":6119,"children":6120},{"style":973},[6121],{"type":779,"value":1568},{"type":770,"tag":924,"props":6123,"children":6124},{"class":926,"line":959},[6125,6129,6133,6137],{"type":770,"tag":924,"props":6126,"children":6127},{"style":931},[6128],{"type":779,"value":1576},{"type":770,"tag":924,"props":6130,"children":6131},{"style":1579},[6132],{"type":779,"value":1582},{"type":770,"tag":924,"props":6134,"children":6135},{"style":988},[6136],{"type":779,"value":1587},{"type":770,"tag":924,"props":6138,"children":6139},{"style":937},[6140],{"type":779,"value":956},{"type":770,"tag":924,"props":6142,"children":6143},{"class":926,"line":969},[6144],{"type":770,"tag":924,"props":6145,"children":6146},{"emptyLinePlaceholder":963},[6147],{"type":779,"value":966},{"type":770,"tag":924,"props":6149,"children":6150},{"class":926,"line":979},[6151,6155,6159,6164,6168,6172,6177],{"type":770,"tag":924,"props":6152,"children":6153},{"style":931},[6154],{"type":779,"value":934},{"type":770,"tag":924,"props":6156,"children":6157},{"style":937},[6158],{"type":779,"value":1603},{"type":770,"tag":924,"props":6160,"children":6161},{"style":1103},[6162],{"type":779,"value":6163},"IMessageVerification",{"type":770,"tag":924,"props":6165,"children":6166},{"style":937},[6167],{"type":779,"value":1613},{"type":770,"tag":924,"props":6169,"children":6170},{"style":931},[6171],{"type":779,"value":945},{"type":770,"tag":924,"props":6173,"children":6174},{"style":948},[6175],{"type":779,"value":6176}," '@matterlabs/zksync-contracts/contracts/l1-contracts/state-transition/chain-interfaces/IMessageVerification.sol'",{"type":770,"tag":924,"props":6178,"children":6179},{"style":937},[6180],{"type":779,"value":956},{"type":770,"tag":924,"props":6182,"children":6183},{"class":926,"line":1008},[6184,6188,6192,6197,6201,6205,6210],{"type":770,"tag":924,"props":6185,"children":6186},{"style":931},[6187],{"type":779,"value":934},{"type":770,"tag":924,"props":6189,"children":6190},{"style":937},[6191],{"type":779,"value":1603},{"type":770,"tag":924,"props":6193,"children":6194},{"style":1103},[6195],{"type":779,"value":6196},"L2Message",{"type":770,"tag":924,"props":6198,"children":6199},{"style":937},[6200],{"type":779,"value":1613},{"type":770,"tag":924,"props":6202,"children":6203},{"style":931},[6204],{"type":779,"value":945},{"type":770,"tag":924,"props":6206,"children":6207},{"style":948},[6208],{"type":779,"value":6209}," '@matterlabs/zksync-contracts/contracts/l1-contracts/common/Messaging.sol'",{"type":770,"tag":924,"props":6211,"children":6212},{"style":937},[6213],{"type":779,"value":956},{"type":770,"tag":924,"props":6215,"children":6216},{"class":926,"line":1034},[6217],{"type":770,"tag":924,"props":6218,"children":6219},{"emptyLinePlaceholder":963},[6220],{"type":779,"value":966},{"type":770,"tag":924,"props":6222,"children":6223},{"class":926,"line":1060},[6224,6228,6233],{"type":770,"tag":924,"props":6225,"children":6226},{"style":931},[6227],{"type":779,"value":1641},{"type":770,"tag":924,"props":6229,"children":6230},{"style":1103},[6231],{"type":779,"value":6232}," InteropVerification",{"type":770,"tag":924,"props":6234,"children":6235},{"style":937},[6236],{"type":779,"value":1651},{"type":770,"tag":924,"props":6238,"children":6239},{"class":926,"line":1086},[6240,6244,6248,6253,6257,6262],{"type":770,"tag":924,"props":6241,"children":6242},{"style":988},[6243],{"type":779,"value":1659},{"type":770,"tag":924,"props":6245,"children":6246},{"style":931},[6247],{"type":779,"value":1664},{"type":770,"tag":924,"props":6249,"children":6250},{"style":937},[6251],{"type":779,"value":6252}," L2_MESSAGE_VERIFICATION_ADDRESS ",{"type":770,"tag":924,"props":6254,"children":6255},{"style":931},[6256],{"type":779,"value":1674},{"type":770,"tag":924,"props":6258,"children":6259},{"style":988},[6260],{"type":779,"value":6261}," 0x0000000000000000000000000000000000010009",{"type":770,"tag":924,"props":6263,"children":6264},{"style":937},[6265],{"type":779,"value":956},{"type":770,"tag":924,"props":6267,"children":6268},{"class":926,"line":1124},[6269],{"type":770,"tag":924,"props":6270,"children":6271},{"emptyLinePlaceholder":963},[6272],{"type":779,"value":966},{"type":770,"tag":924,"props":6274,"children":6275},{"class":926,"line":1132},[6276,6281,6285,6290,6294,6299],{"type":770,"tag":924,"props":6277,"children":6278},{"style":937},[6279],{"type":779,"value":6280},"  IMessageVerification ",{"type":770,"tag":924,"props":6282,"children":6283},{"style":931},[6284],{"type":779,"value":1696},{"type":770,"tag":924,"props":6286,"children":6287},{"style":937},[6288],{"type":779,"value":6289}," l2MessageVerifier ",{"type":770,"tag":924,"props":6291,"children":6292},{"style":931},[6293],{"type":779,"value":1674},{"type":770,"tag":924,"props":6295,"children":6296},{"style":1103},[6297],{"type":779,"value":6298}," IMessageVerification",{"type":770,"tag":924,"props":6300,"children":6301},{"style":937},[6302],{"type":779,"value":6303},"(L2_MESSAGE_VERIFICATION_ADDRESS);\n",{"type":770,"tag":924,"props":6305,"children":6306},{"class":926,"line":1172},[6307],{"type":770,"tag":924,"props":6308,"children":6309},{"emptyLinePlaceholder":963},[6310],{"type":779,"value":966},{"type":770,"tag":924,"props":6312,"children":6313},{"class":926,"line":1210},[6314,6318,6323],{"type":770,"tag":924,"props":6315,"children":6316},{"style":931},[6317],{"type":779,"value":1730},{"type":770,"tag":924,"props":6319,"children":6320},{"style":1103},[6321],{"type":779,"value":6322}," checkVerification",{"type":770,"tag":924,"props":6324,"children":6325},{"style":937},[6326],{"type":779,"value":5099},{"type":770,"tag":924,"props":6328,"children":6329},{"class":926,"line":1250},[6330,6335],{"type":770,"tag":924,"props":6331,"children":6332},{"style":988},[6333],{"type":779,"value":6334},"    uint256",{"type":770,"tag":924,"props":6336,"children":6337},{"style":937},[6338],{"type":779,"value":6339}," _sourceChainId,\n",{"type":770,"tag":924,"props":6341,"children":6342},{"class":926,"line":1258},[6343,6347],{"type":770,"tag":924,"props":6344,"children":6345},{"style":988},[6346],{"type":779,"value":6334},{"type":770,"tag":924,"props":6348,"children":6349},{"style":937},[6350],{"type":779,"value":6351}," _l1BatchNumber,\n",{"type":770,"tag":924,"props":6353,"children":6354},{"class":926,"line":1289},[6355,6359],{"type":770,"tag":924,"props":6356,"children":6357},{"style":988},[6358],{"type":779,"value":6334},{"type":770,"tag":924,"props":6360,"children":6361},{"style":937},[6362],{"type":779,"value":6363}," _l2MessageIndex,\n",{"type":770,"tag":924,"props":6365,"children":6366},{"class":926,"line":1298},[6367,6372,6376],{"type":770,"tag":924,"props":6368,"children":6369},{"style":931},[6370],{"type":779,"value":6371},"    L2Message",{"type":770,"tag":924,"props":6373,"children":6374},{"style":931},[6375],{"type":779,"value":1749},{"type":770,"tag":924,"props":6377,"children":6378},{"style":937},[6379],{"type":779,"value":6380}," _l2MessageData,\n",{"type":770,"tag":924,"props":6382,"children":6383},{"class":926,"line":1307},[6384,6389,6394,6399],{"type":770,"tag":924,"props":6385,"children":6386},{"style":988},[6387],{"type":779,"value":6388},"    bytes32",{"type":770,"tag":924,"props":6390,"children":6391},{"style":937},[6392],{"type":779,"value":6393},"[] ",{"type":770,"tag":924,"props":6395,"children":6396},{"style":931},[6397],{"type":779,"value":6398},"calldata",{"type":770,"tag":924,"props":6400,"children":6401},{"style":937},[6402],{"type":779,"value":6403}," _proof\n",{"type":770,"tag":924,"props":6405,"children":6406},{"class":926,"line":1326},[6407,6412,6416,6421,6426,6430,6435],{"type":770,"tag":924,"props":6408,"children":6409},{"style":937},[6410],{"type":779,"value":6411},"  ) ",{"type":770,"tag":924,"props":6413,"children":6414},{"style":931},[6415],{"type":779,"value":1696},{"type":770,"tag":924,"props":6417,"children":6418},{"style":931},[6419],{"type":779,"value":6420}," view",{"type":770,"tag":924,"props":6422,"children":6423},{"style":931},[6424],{"type":779,"value":6425}," returns",{"type":770,"tag":924,"props":6427,"children":6428},{"style":937},[6429],{"type":779,"value":2641},{"type":770,"tag":924,"props":6431,"children":6432},{"style":988},[6433],{"type":779,"value":6434},"bool",{"type":770,"tag":924,"props":6436,"children":6437},{"style":937},[6438],{"type":779,"value":6439},") {\n",{"type":770,"tag":924,"props":6441,"children":6442},{"class":926,"line":1344},[6443,6448,6453,6457,6462,6466],{"type":770,"tag":924,"props":6444,"children":6445},{"style":988},[6446],{"type":779,"value":6447},"    bool",{"type":770,"tag":924,"props":6449,"children":6450},{"style":937},[6451],{"type":779,"value":6452}," result ",{"type":770,"tag":924,"props":6454,"children":6455},{"style":931},[6456],{"type":779,"value":1674},{"type":770,"tag":924,"props":6458,"children":6459},{"style":937},[6460],{"type":779,"value":6461}," l2MessageVerifier.",{"type":770,"tag":924,"props":6463,"children":6464},{"style":1103},[6465],{"type":779,"value":3427},{"type":770,"tag":924,"props":6467,"children":6468},{"style":937},[6469],{"type":779,"value":5099},{"type":770,"tag":924,"props":6471,"children":6472},{"class":926,"line":1362},[6473],{"type":770,"tag":924,"props":6474,"children":6475},{"style":937},[6476],{"type":779,"value":6477},"      _sourceChainId,\n",{"type":770,"tag":924,"props":6479,"children":6480},{"class":926,"line":1371},[6481],{"type":770,"tag":924,"props":6482,"children":6483},{"style":937},[6484],{"type":779,"value":6485},"      _l1BatchNumber,\n",{"type":770,"tag":924,"props":6487,"children":6488},{"class":926,"line":1380},[6489],{"type":770,"tag":924,"props":6490,"children":6491},{"style":937},[6492],{"type":779,"value":6493},"      _l2MessageIndex,\n",{"type":770,"tag":924,"props":6495,"children":6496},{"class":926,"line":1388},[6497],{"type":770,"tag":924,"props":6498,"children":6499},{"style":937},[6500],{"type":779,"value":6501},"      _l2MessageData,\n",{"type":770,"tag":924,"props":6503,"children":6504},{"class":926,"line":1417},[6505],{"type":770,"tag":924,"props":6506,"children":6507},{"style":937},[6508],{"type":779,"value":6509},"      _proof\n",{"type":770,"tag":924,"props":6511,"children":6512},{"class":926,"line":1444},[6513],{"type":770,"tag":924,"props":6514,"children":6515},{"style":937},[6516],{"type":779,"value":6517},"    );\n",{"type":770,"tag":924,"props":6519,"children":6520},{"class":926,"line":1480},[6521,6526],{"type":770,"tag":924,"props":6522,"children":6523},{"style":931},[6524],{"type":779,"value":6525},"    return",{"type":770,"tag":924,"props":6527,"children":6528},{"style":937},[6529],{"type":779,"value":6530}," result;\n",{"type":770,"tag":924,"props":6532,"children":6533},{"class":926,"line":1508},[6534],{"type":770,"tag":924,"props":6535,"children":6536},{"style":937},[6537],{"type":779,"value":1787},{"type":770,"tag":924,"props":6539,"children":6540},{"class":926,"line":1517},[6541],{"type":770,"tag":924,"props":6542,"children":6543},{"style":937},[6544],{"type":779,"value":1523},{"type":770,"tag":6546,"props":6547,"children":6548},"style",{},[6549],{"type":779,"value":6550},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":764,"searchDepth":959,"depth":959,"links":6552},[6553,6556,6557,6558],{"id":880,"depth":959,"text":883,"children":6554},[6555],{"id":1527,"depth":969,"text":1530},{"id":1797,"depth":959,"text":1800},{"id":2255,"depth":959,"text":2258},{"id":2835,"depth":959,"text":2838,"children":6559},[6560,6561,6562,6563,6564],{"id":2846,"depth":969,"text":2849},{"id":3413,"depth":969,"text":3416},{"id":3440,"depth":969,"text":3443},{"id":3982,"depth":969,"text":3985},{"id":5560,"depth":969,"text":5563},"markdown","content:00.zksync-network:30.unique-features:50.zksync-connect:20.interop-messages.md","content","00.zksync-network/30.unique-features/50.zksync-connect/20.interop-messages.md","00.zksync-network/30.unique-features/50.zksync-connect/20.interop-messages","md",{"loc":85},[6573,6575],{"_path":82,"title":81,"description":6574},"Learn about how send and verify messages with ZKsync Connect.",{"_path":92,"title":48,"description":6576},"Learn about the recommended paths of testing and debugging your projects on ZKsync.",1775831120878]