diff --git a/Cargo.lock b/Cargo.lock index 18abc7fda708f..b25c090ef51c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -509,7 +509,7 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -821,7 +821,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -838,7 +838,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "syn-solidity", "tiny-keccak", ] @@ -857,7 +857,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.109", + "syn 2.0.110", "syn-solidity", ] @@ -984,7 +984,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1371,7 +1371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1409,7 +1409,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1498,7 +1498,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1557,9 +1557,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" +checksum = "93c1f86859c1af3d514fa19e8323147ff10ea98684e6c7b307912509f50e67b2" dependencies = [ "compression-codecs", "compression-core", @@ -1596,7 +1596,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1607,7 +1607,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -1660,7 +1660,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -2179,7 +2179,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -2376,7 +2376,7 @@ dependencies = [ "cow-utils", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "synstructure", ] @@ -2434,7 +2434,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -2457,7 +2457,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -2516,7 +2516,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -2680,6 +2680,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cexpr" version = "0.6.0" @@ -2862,7 +2868,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3033,6 +3039,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.2.1" @@ -3066,9 +3082,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" +checksum = "680dc087785c5230f8e8843e2e57ac7c1c90488b6a91b88caa265410568f441b" dependencies = [ "compression-core", "flate2", @@ -3077,9 +3093,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" +checksum = "3a9b614a5787ef0c8802a55766480563cb3a93b435898c422ed2a359cf811582" [[package]] name = "concurrent-queue" @@ -3373,7 +3389,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3427,7 +3443,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3442,7 +3458,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3453,7 +3469,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3464,7 +3480,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3527,7 +3543,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3538,7 +3554,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3559,7 +3575,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3569,7 +3585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3590,7 +3606,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "unicode-xid", ] @@ -3673,7 +3689,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3747,7 +3763,7 @@ checksum = "1ec431cd708430d5029356535259c5d645d60edd3d39c54e5eea9782d46caa7d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3774,7 +3790,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3879,7 +3895,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -3928,7 +3944,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -4023,7 +4039,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -4420,7 +4436,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -5060,7 +5076,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -5112,6 +5128,7 @@ dependencies = [ "alloy-dyn-abi", "alloy-network", "alloy-primitives", + "alloy-rpc-types", "alloy-signer", "alloy-signer-aws", "alloy-signer-gcp", @@ -5122,16 +5139,24 @@ dependencies = [ "alloy-sol-types", "async-trait", "aws-config", + "axum", "clap", "derive_builder", "eth-keystore", "eyre", + "foundry-common", "foundry-config", + "reqwest", "rpassword", "serde", + "serde_json", "thiserror 2.0.17", "tokio", + "tower", + "tower-http", "tracing", + "uuid 1.18.1", + "webbrowser", ] [[package]] @@ -5268,7 +5293,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -5928,7 +5953,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -6063,7 +6088,7 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -6199,9 +6224,31 @@ checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.34" @@ -6501,7 +6548,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -6529,7 +6576,7 @@ checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -6630,7 +6677,7 @@ checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -6709,9 +6756,15 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -6972,7 +7025,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7019,6 +7072,16 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.10.0", + "objc2", +] + [[package]] name = "object" version = "0.37.3" @@ -7116,9 +7179,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "12.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcd8cb3274e87936b595eb2247ad3bda146695fceb7159afa76010529af53553" +checksum = "e31622d03b29c826e48800f4c8f389c8a9c440eb796a3e35203561a288f12985" dependencies = [ "auto_impl", "revm", @@ -7212,7 +7275,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7295,7 +7358,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7353,7 +7416,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7447,7 +7510,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7460,7 +7523,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7518,7 +7581,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7637,7 +7700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7688,7 +7751,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7708,7 +7771,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "version_check", "yansi", ] @@ -7754,7 +7817,7 @@ checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7797,7 +7860,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7810,7 +7873,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -7823,7 +7886,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -8171,7 +8234,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -8269,9 +8332,9 @@ dependencies = [ [[package]] name = "revm" -version = "31.0.1" +version = "31.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93df0ff5eb70facbc872f82da4b815d7bd8e36b7ee525c637cabcb2a6af8a708" +checksum = "bb67a5223602113cae59a305acde2d9936bc18f2478dda879a6124b267cebfb6" dependencies = [ "revm-bytecode", "revm-context", @@ -8300,9 +8363,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "11.0.1" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c80d674f51b28a0d0a7309bda0867bcb0fd41b4e34976eded145edbb089fc" +checksum = "92850e150f4f99d46c05a20ad0cd09286a7ad4ee21866fffb87101de6e602231" dependencies = [ "bitvec", "cfg-if", @@ -8333,9 +8396,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "9.0.4" +version = "9.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4505d9688482fe0c3b8c09d9afbc4656e2bf9b48855e1c86c93bd4508e496a" +checksum = "7b6c15bb255481fcf29f5ef7c97f00ed4c28a6ab6c490d77b990d73603031569" dependencies = [ "alloy-eips", "revm-bytecode", @@ -8360,9 +8423,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "12.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3da9e26f05ed723cf423b92f012a7775eef9e7d897633d11ec83535e92cda2d" +checksum = "b45418ed95cfdf0cb19effdbb7633cf2144cab7fb0e6ffd6b0eb9117a50adff6" dependencies = [ "auto_impl", "derive-where", @@ -8379,9 +8442,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "12.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57afb06e5985dbd2e8a48a3e6727cb0dd45148e4e6e028ac8222e262e440d3de" +checksum = "c99801eac7da06cc112df2244bd5a64024f4ef21240e923b26e73c4b4a0e5da6" dependencies = [ "auto_impl", "either", @@ -8877,7 +8940,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9072,7 +9135,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9083,7 +9146,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9178,7 +9241,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9508,7 +9571,7 @@ source = "git+https://github.com/paradigmxyz/solar.git?rev=0bea5f0#0bea5f09ac7a3 dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9721,7 +9784,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9733,7 +9796,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9864,9 +9927,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.109" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -9882,7 +9945,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -9902,7 +9965,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -10042,7 +10105,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -10053,7 +10116,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -10188,7 +10251,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -10486,7 +10549,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -11066,7 +11129,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "wasm-bindgen-shared", ] @@ -11193,6 +11256,22 @@ dependencies = [ "string_cache_codegen", ] +[[package]] +name = "webbrowser" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f1243ef785213e3a32fa0396093424a3a6ea566f9948497e5a2309261a4c97" +dependencies = [ + "core-foundation 0.10.1", + "jni", + "log", + "ndk-context", + "objc2", + "objc2-foundation", + "url", + "web-sys", +] + [[package]] name = "webpki-roots" version = "0.26.11" @@ -11326,7 +11405,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -11337,7 +11416,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -11409,6 +11488,15 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -11445,6 +11533,21 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -11487,6 +11590,12 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -11499,6 +11608,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -11511,6 +11626,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -11535,6 +11656,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -11547,6 +11674,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -11559,6 +11692,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -11571,6 +11710,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -11690,7 +11835,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "synstructure", ] @@ -11711,7 +11856,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -11731,7 +11876,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", "synstructure", ] @@ -11752,7 +11897,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] @@ -11786,7 +11931,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.109", + "syn 2.0.110", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d06e6a0c2f23a..16c8d8e4aa8e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -285,13 +285,14 @@ op-alloy-consensus = "0.22.0" op-alloy-rpc-types = "0.22.0" op-alloy-flz = "0.13.1" -## revm +## alloy-evm +alloy-evm = "0.23.2" +alloy-op-evm = "0.23.2" + +# revm revm = { version = "31.0.0", default-features = false } revm-inspectors = { version = "0.32.0", features = ["serde"] } op-revm = { version = "12.0.0", default-features = false } -## alloy-evm -alloy-evm = "0.23.1" -alloy-op-evm = "0.23.1" ## cli anstream = "0.6" diff --git a/crates/cast/src/cmd/send.rs b/crates/cast/src/cmd/send.rs index 8074486b7852b..05882439ee644 100644 --- a/crates/cast/src/cmd/send.rs +++ b/crates/cast/src/cmd/send.rs @@ -1,7 +1,5 @@ -use crate::{ - Cast, - tx::{self, CastTxBuilder}, -}; +use std::{path::PathBuf, str::FromStr, time::Duration}; + use alloy_ens::NameOrAddress; use alloy_network::{AnyNetwork, EthereumWallet}; use alloy_provider::{Provider, ProviderBuilder}; @@ -15,7 +13,12 @@ use foundry_cli::{ utils, utils::LoadConfig, }; -use std::{path::PathBuf, str::FromStr, time::Duration}; +use foundry_wallets::WalletSigner; + +use crate::{ + Cast, + tx::{self, CastTxBuilder}, +}; /// CLI arguments for `cast send`. #[derive(Debug, Parser)] @@ -158,7 +161,7 @@ impl SendTxArgs { // Default to sending via eth_sendTransaction if the --unlocked flag is passed. // This should be the only way this RPC method is used as it requires a local node // or remote RPC with unlocked accounts. - if unlocked { + if unlocked && !eth.wallet.browser { // only check current chain id if it was specified in the config if let Some(config_chain) = config.chain { let current_chain_id = provider.get_chain_id().await?; @@ -192,14 +195,33 @@ impl SendTxArgs { tx::validate_from_address(eth.wallet.from, from)?; - let (tx, _) = builder.build(&signer).await?; + // Browser wallets work differently as they sign and send the transaction in one step. + if eth.wallet.browser + && let WalletSigner::Browser(ref browser_signer) = signer + { + let (tx_request, _) = builder.build(from).await?; + let tx_hash = browser_signer.send_transaction_via_browser(tx_request.inner).await?; + + if cast_async { + sh_println!("{tx_hash:#x}")?; + } else { + let receipt = Cast::new(&provider) + .receipt(format!("{tx_hash:#x}"), None, confirmations, Some(timeout), false) + .await?; + sh_println!("{receipt}")?; + } + + return Ok(()); + } + + let (tx_request, _) = builder.build(&signer).await?; let wallet = EthereumWallet::from(signer); let provider = ProviderBuilder::<_, _, AnyNetwork>::default() .wallet(wallet) .connect_provider(&provider); - cast_send(provider, tx, cast_async, confirmations, timeout).await + cast_send(provider, tx_request, cast_async, confirmations, timeout).await } } } diff --git a/crates/cast/src/cmd/wallet/list.rs b/crates/cast/src/cmd/wallet/list.rs index 9f4fbffd29145..2e899247d7aff 100644 --- a/crates/cast/src/cmd/wallet/list.rs +++ b/crates/cast/src/cmd/wallet/list.rs @@ -4,7 +4,7 @@ use std::env; use foundry_common::{fs, sh_err, sh_println}; use foundry_config::Config; -use foundry_wallets::multi_wallet::MultiWalletOptsBuilder; +use foundry_wallets::wallet_multi::MultiWalletOptsBuilder; /// CLI arguments for `cast wallet list`. #[derive(Clone, Debug, Parser)] diff --git a/crates/cheatcodes/src/inspector.rs b/crates/cheatcodes/src/inspector.rs index 86c060ac2f9fc..6a80384ed83fc 100644 --- a/crates/cheatcodes/src/inspector.rs +++ b/crates/cheatcodes/src/inspector.rs @@ -46,7 +46,7 @@ use foundry_evm_core::{ use foundry_evm_traces::{ TracingInspector, TracingInspectorConfig, identifier::SignaturesIdentifier, }; -use foundry_wallets::multi_wallet::MultiWallet; +use foundry_wallets::wallet_multi::MultiWallet; use itertools::Itertools; use proptest::test_runner::{RngAlgorithm, TestRng, TestRunner}; use rand::Rng; diff --git a/crates/cheatcodes/src/script.rs b/crates/cheatcodes/src/script.rs index 6695688c4b968..ca9e9e8ccef86 100644 --- a/crates/cheatcodes/src/script.rs +++ b/crates/cheatcodes/src/script.rs @@ -7,7 +7,7 @@ use alloy_rpc_types::Authorization; use alloy_signer::SignerSync; use alloy_signer_local::PrivateKeySigner; use alloy_sol_types::SolValue; -use foundry_wallets::{WalletSigner, multi_wallet::MultiWallet}; +use foundry_wallets::{WalletSigner, wallet_multi::MultiWallet}; use parking_lot::Mutex; use revm::{ bytecode::Bytecode, diff --git a/crates/lint/Cargo.toml b/crates/lint/Cargo.toml index 5b0f57aec975d..87864721432d9 100644 --- a/crates/lint/Cargo.toml +++ b/crates/lint/Cargo.toml @@ -1,4 +1,3 @@ - [package] name = "forge-lint" diff --git a/crates/wallets/Cargo.toml b/crates/wallets/Cargo.toml index 438e604a5fc21..e399f29e87803 100644 --- a/crates/wallets/Cargo.toml +++ b/crates/wallets/Cargo.toml @@ -25,6 +25,15 @@ alloy-consensus.workspace = true alloy-sol-types.workspace = true alloy-dyn-abi.workspace = true +# browser wallet +alloy-rpc-types.workspace = true +axum.workspace = true +foundry-common.workspace = true +serde_json.workspace = true +tokio = { workspace = true, features = ["macros"] } +uuid.workspace = true +webbrowser = "1.0.6" + # aws-kms alloy-signer-aws = { workspace = true, features = ["eip712"], optional = true } aws-config = { version = "1", default-features = true, optional = true } @@ -42,11 +51,14 @@ eyre.workspace = true rpassword = "7" serde.workspace = true thiserror.workspace = true +tower.workspace = true +tower-http = { workspace = true, features = ["cors", "set-header"] } tracing.workspace = true eth-keystore = "0.5.0" [dev-dependencies] tokio = { workspace = true, features = ["macros"] } +reqwest = { workspace = true, features = ["json"] } [features] aws-kms = ["dep:alloy-signer-aws", "dep:aws-config"] diff --git a/crates/wallets/src/error.rs b/crates/wallets/src/error.rs index db83651eb7cfd..029da52cfdf86 100644 --- a/crates/wallets/src/error.rs +++ b/crates/wallets/src/error.rs @@ -13,6 +13,8 @@ use alloy_signer_gcp::GcpSignerError; #[cfg(feature = "turnkey")] use alloy_signer_turnkey::TurnkeySignerError; +use crate::wallet_browser::error::BrowserWalletError; + #[derive(Debug, thiserror::Error)] pub enum PrivateKeyError { #[error("Failed to create wallet from private key. Private key is invalid hex: {0}")] @@ -43,6 +45,8 @@ pub enum WalletSignerError { #[cfg(feature = "turnkey")] Turnkey(#[from] TurnkeySignerError), #[error(transparent)] + Browser(#[from] BrowserWalletError), + #[error(transparent)] Io(#[from] std::io::Error), #[error(transparent)] InvalidHex(#[from] FromHexError), @@ -64,4 +68,8 @@ impl WalletSignerError { pub fn turnkey_unsupported() -> Self { Self::UnsupportedSigner("Turnkey") } + + pub fn browser_unsupported() -> Self { + Self::UnsupportedSigner("Browser Wallet") + } } diff --git a/crates/wallets/src/lib.rs b/crates/wallets/src/lib.rs index 622e8a3b8d5a2..e29e6484e2c15 100644 --- a/crates/wallets/src/lib.rs +++ b/crates/wallets/src/lib.rs @@ -5,20 +5,24 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg))] +#[macro_use] +extern crate foundry_common; + #[macro_use] extern crate tracing; pub mod error; -pub mod multi_wallet; -pub mod raw_wallet; +pub mod opts; +pub mod signer; pub mod utils; -pub mod wallet; -pub mod wallet_signer; +pub mod wallet_browser; +pub mod wallet_multi; +pub mod wallet_raw; -pub use multi_wallet::MultiWalletOpts; -pub use raw_wallet::RawWalletOpts; -pub use wallet::WalletOpts; -pub use wallet_signer::{PendingSigner, WalletSigner}; +pub use opts::WalletOpts; +pub use signer::{PendingSigner, WalletSigner}; +pub use wallet_multi::MultiWalletOpts; +pub use wallet_raw::RawWalletOpts; #[cfg(feature = "aws-kms")] use aws_config as _; diff --git a/crates/wallets/src/wallet.rs b/crates/wallets/src/opts.rs similarity index 85% rename from crates/wallets/src/wallet.rs rename to crates/wallets/src/opts.rs index 0c39ef43f6051..9265a7c79ebbb 100644 --- a/crates/wallets/src/wallet.rs +++ b/crates/wallets/src/opts.rs @@ -1,4 +1,4 @@ -use crate::{raw_wallet::RawWalletOpts, utils, wallet_signer::WalletSigner}; +use crate::{signer::WalletSigner, utils, wallet_raw::RawWalletOpts}; use alloy_primitives::Address; use clap::Parser; use eyre::Result; @@ -6,12 +6,13 @@ use serde::Serialize; /// The wallet options can either be: /// 1. Raw (via private key / mnemonic file, see `RawWallet`) -/// 2. Ledger -/// 3. Trezor -/// 4. Keystore (via file path) +/// 2. Keystore (via file path) +/// 3. Ledger +/// 4. Trezor /// 5. AWS KMS /// 6. Google Cloud KMS /// 7. Turnkey +/// 8. Browser wallet #[derive(Clone, Debug, Default, Serialize, Parser)] #[command(next_help_heading = "Wallet options", about = None, long_about = None)] pub struct WalletOpts { @@ -101,6 +102,36 @@ pub struct WalletOpts { /// See: #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "turnkey"))] pub turnkey: bool, + + /// Use a browser wallet. + #[arg(long, help_heading = "Wallet options - browser")] + pub browser: bool, + + /// Port for the browser wallet server. + #[arg( + long, + help_heading = "Wallet options - browser", + value_name = "PORT", + default_value = "9545", + requires = "browser" + )] + pub browser_port: u16, + + /// Whether to open the browser for wallet connection. + #[arg( + long, + help_heading = "Wallet options - browser", + default_value_t = false, + requires = "browser" + )] + pub browser_disable_open: bool, + + /// Enable development mode for the browser wallet. + /// This relaxes certain security features for local development. + /// + /// **WARNING**: This should only be used in a development environment. + #[arg(long, help_heading = "Wallet options - browser", hide = true)] + pub browser_development: bool, } impl WalletOpts { @@ -138,6 +169,13 @@ impl WalletOpts { eyre::eyre!("TURNKEY_ADDRESS could not be parsed as an Ethereum address") })?; WalletSigner::from_turnkey(api_private_key, organization_id, address)? + } else if self.browser { + WalletSigner::from_browser( + self.browser_port, + !self.browser_disable_open, + self.browser_development, + ) + .await? } else if let Some(raw_wallet) = self.raw.signer()? { raw_wallet } else if let Some(path) = utils::maybe_get_keystore_path( @@ -173,6 +211,7 @@ flag to set your key via: --turnkey --trezor --ledger +--browser Alternatively, when using the `cast send` or `cast mktx` commands with a local node or RPC that has unlocked accounts, the --unlocked or --ethsign flags can be used, @@ -242,6 +281,10 @@ mod tests { aws: false, gcp: false, turnkey: false, + browser: false, + browser_port: 9545, + browser_development: false, + browser_disable_open: false, }; match wallet.signer().await { Ok(_) => { diff --git a/crates/wallets/src/wallet_signer.rs b/crates/wallets/src/signer.rs similarity index 93% rename from crates/wallets/src/wallet_signer.rs rename to crates/wallets/src/signer.rs index ef6c7aa759859..5a5c77c676587 100644 --- a/crates/wallets/src/wallet_signer.rs +++ b/crates/wallets/src/signer.rs @@ -1,4 +1,4 @@ -use crate::error::WalletSignerError; +use crate::{error::WalletSignerError, wallet_browser::signer::BrowserSigner}; use alloy_consensus::SignableTransaction; use alloy_dyn_abi::TypedData; use alloy_network::TxSigner; @@ -9,7 +9,7 @@ use alloy_signer_local::{MnemonicBuilder, PrivateKeySigner, coins_bip39::English use alloy_signer_trezor::{HDPath as TrezorHDPath, TrezorSigner}; use alloy_sol_types::{Eip712Domain, SolStruct}; use async_trait::async_trait; -use std::{collections::HashSet, path::PathBuf}; +use std::{collections::HashSet, path::PathBuf, time::Duration}; use tracing::warn; #[cfg(feature = "aws-kms")] @@ -38,6 +38,8 @@ pub enum WalletSigner { Ledger(LedgerSigner), /// Wrapper around Trezor signer. Trezor(TrezorSigner), + /// Wrapper around browser wallet. + Browser(BrowserSigner), /// Wrapper around AWS KMS signer. #[cfg(feature = "aws-kms")] Aws(AwsSigner), @@ -60,6 +62,18 @@ impl WalletSigner { Ok(Self::Trezor(trezor)) } + pub async fn from_browser( + port: u16, + open_browser: bool, + browser_development: bool, + ) -> Result { + let browser_signer = + BrowserSigner::new(port, open_browser, Duration::from_secs(300), browser_development) + .await + .map_err(|e| WalletSignerError::Browser(e.into()))?; + Ok(Self::Browser(browser_signer)) + } + pub async fn from_aws(key_id: String) -> Result { #[cfg(feature = "aws-kms")] { @@ -205,6 +219,9 @@ impl WalletSigner { } } } + Self::Browser(browser) => { + senders.insert(alloy_signer::Signer::address(browser)); + } #[cfg(feature = "aws-kms")] Self::Aws(aws) => { senders.insert(alloy_signer::Signer::address(aws)); @@ -249,6 +266,7 @@ macro_rules! delegate { Self::Local($inner) => $e, Self::Ledger($inner) => $e, Self::Trezor($inner) => $e, + Self::Browser($inner) => $e, #[cfg(feature = "aws-kms")] Self::Aws($inner) => $e, #[cfg(feature = "gcp-kms")] diff --git a/crates/wallets/src/wallet_browser/app/assets/banner.png b/crates/wallets/src/wallet_browser/app/assets/banner.png new file mode 100644 index 0000000000000..2a3752b97fc0c Binary files /dev/null and b/crates/wallets/src/wallet_browser/app/assets/banner.png differ diff --git a/crates/wallets/src/wallet_browser/app/assets/index.html b/crates/wallets/src/wallet_browser/app/assets/index.html new file mode 100644 index 0000000000000..052f6448dadde --- /dev/null +++ b/crates/wallets/src/wallet_browser/app/assets/index.html @@ -0,0 +1,14 @@ + + + + + + + Foundry + + + + +
+ + diff --git a/crates/wallets/src/wallet_browser/app/assets/logo.png b/crates/wallets/src/wallet_browser/app/assets/logo.png new file mode 100644 index 0000000000000..1f29796cdda68 Binary files /dev/null and b/crates/wallets/src/wallet_browser/app/assets/logo.png differ diff --git a/crates/wallets/src/wallet_browser/app/assets/main.js b/crates/wallets/src/wallet_browser/app/assets/main.js new file mode 100644 index 0000000000000..88265ee32ed48 --- /dev/null +++ b/crates/wallets/src/wallet_browser/app/assets/main.js @@ -0,0 +1,69 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=e=>{let n={};for(var r in e)t(n,r,{get:e[r],enumerable:!0});return n},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},ee=Object.prototype.hasOwnProperty;function te(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ne(e,t){return te(e.type,t,e.props)}function re(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ie(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ae=/\/+/g;function oe(e,t){return typeof e==`object`&&e&&e.key!=null?ie(``+e.key):t.toString(36)}function se(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ce(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ce(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+oe(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ae,`$&/`)+`/`),ce(o,r,i,``,function(e){return e})):o!=null&&(re(o)&&(o=ne(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ae,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=d()})),p=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}var S=!1,C=-1,w=5,ee=-1;function te(){return g?!0:!(e.unstable_now()-eet&&te());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?re():S=!1}}}var re;if(typeof y==`function`)re=function(){y(ne)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=ne,re=function(){ae.postMessage(null)}}else re=function(){_(ne,0)};function oe(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,re()))),r},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),m=s(((e,t)=>{t.exports=p()})),h=s((e=>{var t=f();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=s((e=>{var t=m(),n=f(),r=g();function i(e){var t=`https://react.dev/errors/`+e;if(1me||(e.current=pe[me],pe[me]=null,me--)}function _e(e,t){me++,pe[me]=e.current,e.current=t}var ve=he(null),ye=he(null),be=he(null),xe=he(null);function Se(e,t){switch(_e(be,t),_e(ye,e),_e(ve,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Sf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Sf(t),e=Cf(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ge(ve),_e(ve,e)}function Ce(){ge(ve),ge(ye),ge(be)}function we(e){e.memoizedState!==null&&_e(xe,e);var t=ve.current,n=Cf(t,e.type);t!==n&&(_e(ye,e),_e(ve,n))}function Te(e){ye.current===e&&(ge(ve),ge(ye)),xe.current===e&&(ge(xe),jp._currentValue=fe)}var Ee,De;function Oe(e){if(Ee===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ee=t&&t[1]||``,De=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ke=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Oe(n):``}function je(e,t){switch(e.tag){case 26:case 27:case 5:return Oe(e.type);case 16:return Oe(`Lazy`);case 13:return e.child!==t&&t!==null?Oe(`Suspense Fallback`):Oe(`Suspense`);case 19:return Oe(`SuspenseList`);case 0:case 15:return Ae(e.type,!1);case 11:return Ae(e.type.render,!1);case 1:return Ae(e.type,!0);case 31:return Oe(`Activity`);default:return``}}function Me(e){try{var t=``,n=null;do t+=je(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var Ne=Object.prototype.hasOwnProperty,Pe=t.unstable_scheduleCallback,Fe=t.unstable_cancelCallback,Ie=t.unstable_shouldYield,Le=t.unstable_requestPaint,Re=t.unstable_now,ze=t.unstable_getCurrentPriorityLevel,Be=t.unstable_ImmediatePriority,Ve=t.unstable_UserBlockingPriority,He=t.unstable_NormalPriority,Ue=t.unstable_LowPriority,We=t.unstable_IdlePriority,Ge=t.log,Ke=t.unstable_setDisableYieldValue,qe=null,Je=null;function Ye(e){if(typeof Ge==`function`&&Ke(e),Je&&typeof Je.setStrictMode==`function`)try{Je.setStrictMode(qe,e)}catch{}}var Xe=Math.clz32?Math.clz32:$e,Ze=Math.log,Qe=Math.LN2;function $e(e){return e>>>=0,e===0?32:31-(Ze(e)/Qe|0)|0}var et=256,tt=262144,nt=4194304;function rt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function it(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=rt(n))):i=rt(o):i=rt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=rt(n))):i=rt(o)):i=rt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function at(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ot(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function st(){var e=nt;return nt<<=1,!(nt&62914560)&&(nt=4194304),e}function ct(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function lt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ut(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),bn=!1;if(yn)try{var xn={};Object.defineProperty(xn,`passive`,{get:function(){bn=!0}}),window.addEventListener(`test`,xn,xn),window.removeEventListener(`test`,xn,xn)}catch{bn=!1}var Sn=null,Cn=null,wn=null;function Tn(){if(wn)return wn;var e,t=Cn,n=t.length,r,i=`value`in Sn?Sn.value:Sn.textContent,a=i.length;for(e=0;e=fr),hr=` `,gr=!1;function _r(e,t){switch(e){case`keyup`:return ur.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function vr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var yr=!1;function br(e,t){switch(e){case`compositionend`:return vr(t);case`keypress`:return t.which===32?(gr=!0,hr):null;case`textInput`:return e=t.data,e===hr&&gr?null:e;default:return null}}function xr(e,t){if(yr)return e===`compositionend`||!dr&&_r(e,t)?(e=Tn(),wn=Cn=Sn=null,yr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Ur(n)}}function Gr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Gr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Kr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kt(e.document)}return t}function qr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Jr=yn&&`documentMode`in document&&11>=document.documentMode,Yr=null,Xr=null,Zr=null,Qr=!1;function $r(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Qr||Yr==null||Yr!==Kt(r)||(r=Yr,`selectionStart`in r&&qr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Zr&&Hr(Zr,r)||(Zr=r,r=af(Xr,`onSelect`),0>=o,i-=o,Gi=1<<32-Xe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),ea&&qi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),ea&&qi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return ea&&qi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),ea&&qi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===re&&Ja(l)===r.type){n(e,r.sibling),c=a(r,o.props),to(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=Mi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ji(o.type,o.key,o.props,null,e.mode,c),to(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Fi(o,e.mode,c),c.return=e,e=c}return s(e);case re:return o=Ja(o),b(e,r,o,c)}if(ue(o))return h(e,r,o,c);if(se(o)){if(l=se(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,eo(o),c);if(o.$$typeof===C)return b(e,r,Sa(e,o),c);no(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Ni(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{$a=0;var i=b(e,t,n,r);return Qa=null,i}catch(t){if(t===Ha||t===Wa)throw t;var a=Di(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var io=ro(!0),ao=ro(!1),oo=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function co(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function lo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function uo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,fu&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=wi(e),Ci(e,null,n),t}return bi(e,r,t,n),wi(e)}function fo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var mo=!1;function ho(){if(mo){var e=Na;if(e!==null)throw e}}function go(e,t,n,r){mo=!1;var i=e.updateQueue;oo=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(N&f)===f:(r&f)===f){f!==0&&f===Ma&&(mo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:oo=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),xu|=o,e.lanes=o,e.memoizedState=d}}function _o(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function vo(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=T.T,s={};T.T=s,ac(e,!1,t,n);try{var c=i(),l=T.S;if(l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`){var u=Ia(c,r);ic(e,t,u,Uu(e))}else ic(e,t,r,Uu(e))}catch(n){ic(e,t,{then:function(){},status:`rejected`,reason:n},Uu())}finally{de.p=a,o!==null&&s.types!==null&&(o.types=s.types),T.T=o}}function Js(){}function Ys(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Xs(e).queue;qs(e,a,t,fe,n===null?Js:function(){return Zs(e),n(r)})}function Xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:fe,baseState:fe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:fe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Zs(e){var t=Xs(e);t.next===null&&(t=e.alternate.memoizedState),ic(e,t.next.queue,{},Uu())}function Qs(){return xa(jp)}function $s(){return $o().memoizedState}function ec(){return $o().memoizedState}function tc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Uu();e=lo(n);var r=uo(t,e,n);r!==null&&(Gu(r,t,n),fo(r,t,n)),t={cache:Oa()},e.payload=t;return}t=t.return}}function nc(e,t,n){var r=Uu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},oc(e)?sc(t,n):(n=xi(e,t,n,r),n!==null&&(Gu(n,e,r),cc(n,t,r)))}function rc(e,t,n){var r=Uu();ic(e,t,n,r)}function ic(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(oc(e))sc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Vr(s,o))return bi(e,t,i,0),pu===null&&yi(),!1}catch{}if(n=xi(e,t,i,r),n!==null)return Gu(n,e,r),cc(n,t,r),!0}return!1}function ac(e,t,n,r){if(r={lane:2,revertLane:Hd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},oc(e)){if(t)throw Error(i(479))}else t=xi(e,n,r,2),t!==null&&Gu(t,e,2)}function oc(e){var t=e.alternate;return e===j||t!==null&&t===j}function sc(e,t){Lo=Io=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function cc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}var lc={readContext:xa,use:ns,useCallback:Uo,useContext:Uo,useEffect:Uo,useImperativeHandle:Uo,useLayoutEffect:Uo,useInsertionEffect:Uo,useMemo:Uo,useReducer:Uo,useRef:Uo,useState:Uo,useDebugValue:Uo,useDeferredValue:Uo,useTransition:Uo,useSyncExternalStore:Uo,useId:Uo,useHostTransitionStatus:Uo,useFormState:Uo,useActionState:Uo,useOptimistic:Uo,useMemoCache:Uo,useCacheRefresh:Uo};lc.useEffectEvent=Uo;var uc={readContext:xa,use:ns,useCallback:function(e,t){return Qo().memoizedState=[e,t===void 0?null:t],e},useContext:xa,useEffect:Ps,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Ms(4194308,4,Bs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ms(4194308,4,e,t)},useInsertionEffect:function(e,t){Ms(4,2,e,t)},useMemo:function(e,t){var n=Qo();t=t===void 0?null:t;var r=e();if(Ro){Ye(!0);try{e()}finally{Ye(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Qo();if(n!==void 0){var i=n(t);if(Ro){Ye(!0);try{n(t)}finally{Ye(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=nc.bind(null,j,e),[r.memoizedState,e]},useRef:function(e){var t=Qo();return e={current:e},t.memoizedState=e},useState:function(e){e=gs(e);var t=e.queue,n=rc.bind(null,j,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Hs,useDeferredValue:function(e,t){var n=Qo();return Gs(n,e,t)},useTransition:function(){var e=gs(!1);return e=qs.bind(null,j,e.queue,!0,!1),Qo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=j,a=Qo();if(ea){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),pu===null)throw Error(i(349));N&127||ds(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Ps(ps.bind(null,r,o,e),[e]),r.flags|=2048,As(9,{destroy:void 0},fs.bind(null,r,o,n,t),null),n},useId:function(){var e=Qo(),t=pu.identifierPrefix;if(ea){var n=Ki,r=Gi;n=(r&~(1<<32-Xe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=zo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[yt]=t,o[bt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(hf(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&il(t)}}return ll(t),al(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&il(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=be.current,sa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Qi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[yt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ff(e.nodeValue,n)),e||ia(t,!0)}else e=xf(e).createTextNode(r),e[yt]=t,t.stateNode=e}return ll(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=sa(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[yt]=t}else ca(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ll(t),e=!1}else n=la(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Ao(t),t):(Ao(t),null);if(t.flags&128)throw Error(i(558))}return ll(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=sa(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[yt]=t}else ca(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ll(t),a=!1}else a=la(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Ao(t),t):(Ao(t),null)}return Ao(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),sl(t,t.updateQueue),ll(t),null);case 4:return Ce(),e===null&&ef(t.stateNode.containerInfo),ll(t),null;case 10:return ha(t.type),ll(t),null;case 19:if(ge(jo),r=t.memoizedState,r===null)return ll(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)cl(r,!1);else{if(bu!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Mo(e),o!==null){for(t.flags|=128,cl(r,!1),e=o.updateQueue,t.updateQueue=e,sl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ai(n,e),n=n.sibling;return _e(jo,jo.current&1|2),ea&&qi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Re()>ju&&(t.flags|=128,a=!0,cl(r,!1),t.lanes=4194304)}else{if(!a)if(e=Mo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,sl(t,e),cl(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!ea)return ll(t),null}else 2*Re()-r.renderingStartTime>ju&&n!==536870912&&(t.flags|=128,a=!0,cl(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(ll(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Re(),e.sibling=null,n=jo.current,_e(jo,a?n&1|2:n&1),ea&&qi(t,r.treeForkCount),e);case 22:case 23:return Ao(t),Co(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(ll(t),t.subtreeFlags&6&&(t.flags|=8192)):ll(t),n=t.updateQueue,n!==null&&sl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ge(Ra),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ha(Da),ll(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function dl(e,t){switch(Xi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ha(Da),Ce(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Te(t),null;case 31:if(t.memoizedState!==null){if(Ao(t),t.alternate===null)throw Error(i(340));ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Ao(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ge(jo),null;case 4:return Ce(),null;case 10:return ha(t.type),null;case 22:case 23:return Ao(t),Co(),e!==null&&ge(Ra),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ha(Da),null;case 25:return null;default:return null}}function fl(e,t){switch(Xi(t),t.tag){case 3:ha(Da),Ce();break;case 26:case 27:case 5:Te(t);break;case 4:Ce();break;case 31:t.memoizedState!==null&&Ao(t);break;case 13:Ao(t);break;case 19:ge(jo);break;case 10:ha(t.type);break;case 22:case 23:Ao(t),Co(),e!==null&&ge(Ra);break;case 24:ha(Da)}}function pl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){xd(t,t.return,e)}}function ml(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){xd(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){xd(t,t.return,e)}}function hl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{vo(t,n)}catch(t){xd(e,e.return,t)}}}function gl(e,t,n){n.props=_c(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){xd(e,t,n)}}function _l(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){xd(e,t,n)}}function vl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){xd(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){xd(e,t,n)}else n.current=null}function yl(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){xd(e,e.return,t)}}function bl(e,t,n){try{var r=e.stateNode;gf(r,e.type,n,t),r[bt]=t}catch(t){xd(e,e.return,t)}}function xl(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Mf(e.type)||e.tag===4}function Sl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||xl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Mf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Cl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=un));else if(r!==4&&(r===27&&Mf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Cl(e,t,n),e=e.sibling;e!==null;)Cl(e,t,n),e=e.sibling}function wl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Mf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(wl(e,t,n),e=e.sibling;e!==null;)wl(e,t,n),e=e.sibling}function Tl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);hf(t,r,n),t[yt]=e,t[bt]=n}catch(t){xd(e,e.return,t)}}var El=!1,Dl=!1,Ol=!1,kl=typeof WeakSet==`function`?WeakSet:Set,Al=null;function jl(e,t){if(e=e.containerInfo,yf=Bp,e=Kr(e),qr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(bf={focusedElem:e,selectionRange:n},Bp=!1,Al=t;Al!==null;)if(t=Al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Al=e;else for(;Al!==null;){switch(t=Al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),hf(o,r,n),o[yt]=e,jt(o),r=o;break a;case`link`:var s=bp(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Wr(s,h),v=Wr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,T.T=null,n=zu,zu=null;var o=Fu,s=Lu;if(Pu=0,Iu=Fu=null,Lu=0,fu&6)throw Error(i(331));var c=fu;if(fu|=4,su(o.current),$l(o,o.current,s,n),fu=c,Fd(0,!1),Je&&typeof Je.onPostCommitFiberRoot==`function`)try{Je.onPostCommitFiberRoot(qe,o)}catch{}return!0}finally{de.p=a,T.T=r,_d(e,t)}}function bd(e,t,n){t=Li(n,t),t=Cc(e.stateNode,t,2),e=uo(e,t,2),e!==null&&(lt(e,2),Pd(e))}function xd(e,t,n){if(e.tag===3)bd(e,e,n);else for(;t!==null;){if(t.tag===3){bd(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(Nu===null||!Nu.has(r))){e=Li(n,e),n=wc(2),r=uo(t,n,2),r!==null&&(Tc(n,r,t,e),lt(r,2),Pd(r));break}}t=t.return}}function Sd(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new du;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(vu=!0,i.add(n),e=Cd.bind(null,e,t,n),t.then(e,e))}function Cd(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,pu===e&&(N&n)===n&&(bu===4||bu===3&&(N&62914560)===N&&300>Re()-ku?!(fu&2)&&Qu(e,0):Cu|=n,Tu===N&&(Tu=0)),Pd(e)}function wd(e,t){t===0&&(t=st()),e=Si(e,t),e!==null&&(lt(e,t),Pd(e))}function Td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),wd(e,n)}function Ed(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),wd(e,n)}function Dd(e,t){return Pe(e,t)}var Od=null,kd=null,Ad=!1,jd=!1,Md=!1,Nd=0;function Pd(e){e!==kd&&e.next===null&&(kd===null?Od=kd=e:kd=kd.next=e),jd=!0,Ad||(Ad=!0,Vd())}function Fd(e,t){if(!Md&&jd){Md=!0;do for(var n=!1,r=Od;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Xe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Bd(r,a))}else a=N,a=it(r,r===pu?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||at(r,a)||(n=!0,Bd(r,a));r=r.next}while(n);Md=!1}}function Id(){Ld()}function Ld(){jd=Ad=!1;var e=0;Nd!==0&&Ef()&&(e=Nd);for(var t=Re(),n=null,r=Od;r!==null;){var i=r.next,a=Rd(r,t);a===0?(r.next=null,n===null?Od=i:n.next=i,i===null&&(kd=n)):(n=r,(e!==0||a&3)&&(jd=!0)),r=i}Pu!==0&&Pu!==5||Fd(e,!1),Nd!==0&&(Nd=0)}function Rd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&_f(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function ep(e,t,n){var r=$f;if(r&&typeof t==`string`&&t){var i=Jt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Jf.has(i)||(Jf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),hf(t,`link`,e),jt(t),r.head.appendChild(t)))}}function tp(e){Xf.D(e),ep(`dns-prefetch`,e,null)}function np(e,t){Xf.C(e,t),ep(`preconnect`,e,t)}function rp(e,t,n){Xf.L(e,t,n);var r=$f;if(r&&e&&t){var i=`link[rel="preload"][as="`+Jt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Jt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Jt(n.imageSizes)+`"]`)):i+=`[href="`+Jt(e)+`"]`;var a=i;switch(t){case`style`:a=lp(e);break;case`script`:a=pp(e)}qf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),qf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(up(a))||t===`script`&&r.querySelector(mp(a))||(t=r.createElement(`link`),hf(t,`link`,e),jt(t),r.head.appendChild(t)))}}function ip(e,t){Xf.m(e,t);var n=$f;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Jt(r)+`"][href="`+Jt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=pp(e)}if(!qf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),qf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(mp(a)))return}r=n.createElement(`link`),hf(r,`link`,e),jt(r),n.head.appendChild(r)}}}function ap(e,t,n){Xf.S(e,t,n);var r=$f;if(r&&e){var i=At(r).hoistableStyles,a=lp(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(up(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=qf.get(a))&&_p(e,n);var c=o=r.createElement(`link`);jt(c),hf(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,gp(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function op(e,t){Xf.X(e,t);var n=$f;if(n&&e){var r=At(n).hoistableScripts,i=pp(e),a=r.get(i);a||(a=n.querySelector(mp(i)),a||(e=p({src:e,async:!0},t),(t=qf.get(i))&&vp(e,t),a=n.createElement(`script`),jt(a),hf(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function sp(e,t){Xf.M(e,t);var n=$f;if(n&&e){var r=At(n).hoistableScripts,i=pp(e),a=r.get(i);a||(a=n.querySelector(mp(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=qf.get(i))&&vp(e,t),a=n.createElement(`script`),jt(a),hf(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function cp(e,t,n,r){var a=(a=be.current)?Yf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=lp(n.href),n=At(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=lp(n.href);var o=At(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(up(e)))&&!o._p&&(s.instance=o,s.state.loading=5),qf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},qf.set(e,n),o||fp(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=pp(n),n=At(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function lp(e){return`href="`+Jt(e)+`"`}function up(e){return`link[rel="stylesheet"][`+e+`]`}function dp(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function fp(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),hf(t,`link`,n),jt(t),e.head.appendChild(t))}function pp(e){return`[src="`+Jt(e)+`"]`}function mp(e){return`script[async]`+e}function hp(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Jt(n.href)+`"]`);if(r)return t.instance=r,jt(r),r;var a=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),jt(r),hf(r,`style`,a),gp(r,n.precedence,e),t.instance=r;case`stylesheet`:a=lp(n.href);var o=e.querySelector(up(a));if(o)return t.state.loading|=4,t.instance=o,jt(o),o;r=dp(n),(a=qf.get(a))&&_p(r,a),o=(e.ownerDocument||e).createElement(`link`),jt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),hf(o,`link`,r),t.state.loading|=4,gp(o,n.precedence,e),t.instance=o;case`script`:return o=pp(n.src),(a=e.querySelector(mp(o)))?(t.instance=a,jt(a),a):(r=n,(a=qf.get(o))&&(r=p({},n),vp(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),jt(a),hf(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,gp(r,n.precedence,e));return t.instance}function gp(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Sp(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Cp(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function wp(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=lp(r.href),a=t.querySelector(up(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Dp.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,jt(a);return}a=t.ownerDocument||t,r=dp(r),(i=qf.get(i))&&_p(r,i),a=a.createElement(`link`),jt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),hf(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Dp.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Tp=0;function Ep(e,t){return e.stylesheets&&e.count===0&&kp(e,e.stylesheets),0Tp?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Dp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)kp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Op=null;function kp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Op=new Map,t.forEach(Ap,e),Op=null,Dp.call(e))}function Ap(e,t){if(!(t.state.loading&4)){var n=Op.get(e);if(n)var r=n.get(null);else{n=new Map,Op.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=_()}))()),y=u(f()),b,x=o((()=>{b=`1.1.0`})),S,C=o((()=>{x(),S=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${b}`].join(` +`);super(a),Object.defineProperty(this,`details`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`docsPath`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`metaMessages`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`shortMessage`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`AbiTypeError`}),n.cause&&(this.cause=n.cause),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.shortMessage=t}}}));function w(e,t){return e.exec(t)?.groups}var ee,te,ne,re=o((()=>{ee=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,te=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,ne=/^\(.+?\).*?$/}));function ie(e){let t=e.type;if(ae.test(e.type)&&`components`in e){t=`(`;let n=e.components.length;for(let r=0;r{re(),ae=/^tuple(?(\[(\d*)\])*)$/}));function se(e){let t=``,n=e.length;for(let r=0;r{oe()}));function le(e){return e.type===`function`?`function ${e.name}(${se(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${se(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${se(e.inputs)})`:e.type===`error`?`error ${e.name}(${se(e.inputs)})`:e.type===`constructor`?`constructor(${se(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}var ue=o((()=>{ce()}));function T(e){return Ce.test(e)}function de(e){return w(Ce,e)}function fe(e){return we.test(e)}function pe(e){return w(we,e)}function me(e){return Te.test(e)}function he(e){return w(Te,e)}function ge(e){return Ee.test(e)}function _e(e){return w(Ee,e)}function ve(e){return De.test(e)}function ye(e){return w(De,e)}function be(e){return Oe.test(e)}function xe(e){return w(Oe,e)}function Se(e){return ke.test(e)}var Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne=o((()=>{re(),Ce=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/,we=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/,Te=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/,Ee=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/,De=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/,Oe=/^fallback\(\) external(?:\s(?payable{1}))?$/,ke=/^receive\(\) external payable$/,Ae=new Set([`memory`,`indexed`,`storage`,`calldata`]),je=new Set([`indexed`]),Me=new Set([`calldata`,`memory`,`storage`])})),Pe,Fe,Ie,Le=o((()=>{C(),Pe=class extends S{constructor({signature:e}){super(`Failed to parse ABI item.`,{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:`/api/human#parseabiitem-1`}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidAbiItemError`})}},Fe=class extends S{constructor({type:e}){super(`Unknown type.`,{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`UnknownTypeError`})}},Ie=class extends S{constructor({type:e}){super(`Unknown type.`,{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`UnknownSolidityTypeError`})}}})),Re,ze,Be,Ve,He,Ue,We=o((()=>{C(),Re=class extends S{constructor({params:e}){super(`Failed to parse ABI parameters.`,{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:`/api/human#parseabiparameters-1`}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidAbiParametersError`})}},ze=class extends S{constructor({param:e}){super(`Invalid ABI parameter.`,{details:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidParameterError`})}},Be=class extends S{constructor({param:e,name:t}){super(`Invalid ABI parameter.`,{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SolidityProtectedKeywordError`})}},Ve=class extends S{constructor({param:e,type:t,modifier:n}){super(`Invalid ABI parameter.`,{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:``}.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidModifierError`})}},He=class extends S{constructor({param:e,type:t,modifier:n}){super(`Invalid ABI parameter.`,{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:``}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidFunctionModifierError`})}},Ue=class extends S{constructor({abiParameter:e}){super(`Invalid ABI parameter.`,{details:JSON.stringify(e,null,2),metaMessages:[`ABI parameter type is invalid.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidAbiTypeParameterError`})}}})),Ge,Ke,qe,Je=o((()=>{C(),Ge=class extends S{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidSignatureError`})}},Ke=class extends S{constructor({signature:e}){super(`Unknown signature.`,{details:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`UnknownSignatureError`})}},qe=class extends S{constructor({signature:e}){super(`Invalid struct signature.`,{details:e,metaMessages:[`No properties exist.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidStructSignatureError`})}}})),Ye,Xe=o((()=>{C(),Ye=class extends S{constructor({type:e}){super(`Circular reference detected.`,{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`CircularReferenceError`})}}})),Ze,Qe=o((()=>{C(),Ze=class extends S{constructor({current:e,depth:t}){super(`Unbalanced parentheses.`,{metaMessages:[`"${e.trim()}" has too many ${t>0?`opening`:`closing`} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidParenthesisError`})}}}));function $e(e,t,n){let r=``;if(n)for(let e of Object.entries(n)){if(!e)continue;let t=``;for(let n of e[1])t+=`[${n.type}${n.name?`:${n.name}`:``}]`;r+=`(${e[0]}{${t}})`}return t?`${t}:${e}${r}`:e}var et,tt=o((()=>{et=new Map([[`address`,{type:`address`}],[`bool`,{type:`bool`}],[`bytes`,{type:`bytes`}],[`bytes32`,{type:`bytes32`}],[`int`,{type:`int256`}],[`int256`,{type:`int256`}],[`string`,{type:`string`}],[`uint`,{type:`uint256`}],[`uint8`,{type:`uint8`}],[`uint16`,{type:`uint16`}],[`uint24`,{type:`uint24`}],[`uint32`,{type:`uint32`}],[`uint64`,{type:`uint64`}],[`uint96`,{type:`uint96`}],[`uint112`,{type:`uint112`}],[`uint160`,{type:`uint160`}],[`uint192`,{type:`uint192`}],[`uint256`,{type:`uint256`}],[`address owner`,{type:`address`,name:`owner`}],[`address to`,{type:`address`,name:`to`}],[`bool approved`,{type:`bool`,name:`approved`}],[`bytes _data`,{type:`bytes`,name:`_data`}],[`bytes data`,{type:`bytes`,name:`data`}],[`bytes signature`,{type:`bytes`,name:`signature`}],[`bytes32 hash`,{type:`bytes32`,name:`hash`}],[`bytes32 r`,{type:`bytes32`,name:`r`}],[`bytes32 root`,{type:`bytes32`,name:`root`}],[`bytes32 s`,{type:`bytes32`,name:`s`}],[`string name`,{type:`string`,name:`name`}],[`string symbol`,{type:`string`,name:`symbol`}],[`string tokenURI`,{type:`string`,name:`tokenURI`}],[`uint tokenId`,{type:`uint256`,name:`tokenId`}],[`uint8 v`,{type:`uint8`,name:`v`}],[`uint256 balance`,{type:`uint256`,name:`balance`}],[`uint256 tokenId`,{type:`uint256`,name:`tokenId`}],[`uint256 value`,{type:`uint256`,name:`value`}],[`event:address indexed from`,{type:`address`,name:`from`,indexed:!0}],[`event:address indexed to`,{type:`address`,name:`to`,indexed:!0}],[`event:uint indexed tokenId`,{type:`uint256`,name:`tokenId`,indexed:!0}],[`event:uint256 indexed tokenId`,{type:`uint256`,name:`tokenId`,indexed:!0}]])}));function nt(e,t={}){if(me(e))return rt(e,t);if(fe(e))return it(e,t);if(T(e))return at(e,t);if(ve(e))return ot(e,t);if(be(e))return st(e);if(Se(e))return{type:`receive`,stateMutability:`payable`};throw new Ke({signature:e})}function rt(e,t={}){let n=he(e);if(!n)throw new Ge({signature:e,type:`function`});let r=lt(n.parameters),i=[],a=r.length;for(let e=0;e{re(),Le(),We(),Je(),Qe(),tt(),Ne(),pt=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,mt=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,ht=/^u?int$/,gt=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/}));function vt(e){let t={},n=e.length;for(let r=0;r{re(),Le(),We(),Je(),Xe(),Ne(),_t(),bt=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/}));function St(e){let t=vt(e),n=[],r=e.length;for(let i=0;i{Ne(),xt(),_t()}));function wt(e){let t;if(typeof e==`string`)t=nt(e);else{let n=vt(e),r=e.length;for(let i=0;i{Le(),Ne(),xt(),_t()}));function Et(e){let t=[];if(typeof e==`string`){let n=lt(e),r=n.length;for(let e=0;e{We(),Ne(),xt(),_t()})),Ot=o((()=>{ue(),ce(),Ct(),Tt(),Dt()}));function E(e,t,n){let r=e[t.name];if(typeof r==`function`)return r;let i=e[n];return typeof i==`function`?i:n=>t(e,n)}function kt(e,{includeName:t=!1}={}){if(e.type!==`function`&&e.type!==`event`&&e.type!==`error`)throw new on(e.type);return`${e.name}(${At(e.inputs,{includeName:t})})`}function At(e,{includeName:t=!1}={}){return e?e.map(e=>jt(e,{includeName:t})).join(t?`, `:`,`):``}function jt(e,{includeName:t}){return e.type.startsWith(`tuple`)?`(${At(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:``)}var Mt=o((()=>{sn()}));function Nt(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}var Pt=o((()=>{}));function Ft(e){return Nt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var It=o((()=>{Pt()})),Lt,Rt=o((()=>{Lt=`2.38.3`}));function zt(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?zt(e.cause,t):t?null:e}var Bt,D,O=o((()=>{Rt(),Bt={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${Lt}`},D=class e extends Error{constructor(t,n={}){let r=(()=>n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details)(),i=(()=>n.cause instanceof e&&n.cause.docsPath||n.docsPath)(),a=Bt.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...Bt.version?[`Version: ${Bt.version}`]:[]].join(` +`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,`details`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`docsPath`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`metaMessages`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`shortMessage`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`version`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=Lt}walk(e){return zt(this,e)}}})),Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn=o((()=>{Mt(),It(),O(),Vt=class extends D{constructor({docsPath:e}){super([`A constructor was not found on the ABI.`,`Make sure you are using the correct ABI and that the constructor exists on it.`].join(` +`),{docsPath:e,name:`AbiConstructorNotFoundError`})}},Ht=class extends D{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` +`),{docsPath:e,name:`AbiConstructorParamsNotFoundError`})}},Ut=class extends D{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` +`),{metaMessages:[`Params: (${At(t,{includeName:!0})})`,`Data: ${e} (${n} bytes)`],name:`AbiDecodingDataSizeTooSmallError`}),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`params`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`size`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=t,this.size=n}},Wt=class extends D{constructor(){super(`Cannot decode zero data ("0x") with ABI parameters.`,{name:`AbiDecodingZeroDataError`})}},Gt=class extends D{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join(` +`),{name:`AbiEncodingArrayLengthMismatchError`})}},Kt=class extends D{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Ft(t)}) does not match expected size (bytes${e}).`,{name:`AbiEncodingBytesSizeMismatchError`})}},qt=class extends D{constructor({expectedLength:e,givenLength:t}){super([`ABI encoding params/values length mismatch.`,`Expected length (params): ${e}`,`Given length (values): ${t}`].join(` +`),{name:`AbiEncodingLengthMismatchError`})}},Jt=class extends D{constructor(e,{docsPath:t}){super([`Arguments (\`args\`) were provided to "${e}", but "${e}" on the ABI does not contain any parameters (\`inputs\`).`,`Cannot encode error result without knowing what the parameter types are.`,`Make sure you are using the correct ABI and that the inputs exist on it.`].join(` +`),{docsPath:t,name:`AbiErrorInputsNotFoundError`})}},Yt=class extends D{constructor(e,{docsPath:t}={}){super([`Error ${e?`"${e}" `:``}not found on ABI.`,`Make sure you are using the correct ABI and that the error exists on it.`].join(` +`),{docsPath:t,name:`AbiErrorNotFoundError`})}},Xt=class extends D{constructor(e,{docsPath:t}){super([`Encoded error signature "${e}" not found on ABI.`,`Make sure you are using the correct ABI and that the error exists on it.`,`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join(` +`),{docsPath:t,name:`AbiErrorSignatureNotFoundError`}),Object.defineProperty(this,`signature`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}},Zt=class extends D{constructor(e,{docsPath:t}={}){super([`Function ${e?`"${e}" `:``}not found on ABI.`,`Make sure you are using the correct ABI and that the function exists on it.`].join(` +`),{docsPath:t,name:`AbiFunctionNotFoundError`})}},Qt=class extends D{constructor(e,{docsPath:t}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,`Cannot decode function result without knowing what the parameter types are.`,`Make sure you are using the correct ABI and that the function exists on it.`].join(` +`),{docsPath:t,name:`AbiFunctionOutputsNotFoundError`})}},$t=class extends D{constructor(e,{docsPath:t}){super([`Encoded function signature "${e}" not found on ABI.`,`Make sure you are using the correct ABI and that the function exists on it.`,`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(` +`),{docsPath:t,name:`AbiFunctionSignatureNotFoundError`})}},en=class extends D{constructor(e,t){super(`Found ambiguous types in overloaded ABI items.`,{metaMessages:[`\`${e.type}\` in \`${kt(e.abiItem)}\`, and`,`\`${t.type}\` in \`${kt(t.abiItem)}\``,``,`These types encode differently and cannot be distinguished at runtime.`,`Remove one of the ambiguous items in the ABI.`],name:`AbiItemAmbiguityError`})}},tn=class extends D{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:`BytesSizeMismatchError`})}},nn=class extends D{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,`Please provide a valid ABI type.`].join(` +`),{docsPath:t,name:`InvalidAbiEncodingType`})}},rn=class extends D{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,`Please provide a valid ABI type.`].join(` +`),{docsPath:t,name:`InvalidAbiDecodingType`})}},an=class extends D{constructor(e){super([`Value "${e}" is not a valid array.`].join(` +`),{name:`InvalidArrayError`})}},on=class extends D{constructor(e){super([`"${e}" is not a valid definition type.`,`Valid types: "function", "event", "error"`].join(` +`),{name:`InvalidDefinitionTypeError`})}}})),cn,ln,un,dn=o((()=>{O(),cn=class extends D{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},ln=class extends D{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}},un=class extends D{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${t} ${n} long, but is ${e} ${n} long.`,{name:`InvalidBytesLengthError`})}}}));function fn(e,{dir:t,size:n=32}={}){return typeof e==`string`?pn(e,{dir:t,size:n}):mn(e,{dir:t,size:n})}function pn(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new ln({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function mn(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new ln({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i{dn()})),gn,_n,vn,yn,bn=o((()=>{O(),gn=class extends D{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},_n=class extends D{constructor(e){super(`Bytes value "${e}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:`InvalidBytesBooleanError`})}},vn=class extends D{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:`InvalidHexBooleanError`})}},yn=class extends D{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}}}));function xn(e,{dir:t=`left`}={}){let n=typeof e==`string`?e.replace(`0x`,``):e,r=0;for(let e=0;e{}));function Cn(e,{size:t}){if(Ft(e)>t)throw new yn({givenSize:Ft(e),maxSize:t})}function wn(e,t={}){let{signed:n}=t;t.size&&Cn(e,{size:t.size});let r=BigInt(e);if(!n)return r;let i=(e.length-2)/2,a=(1n<{bn(),It(),Sn()}));function On(e,t={}){return typeof e==`number`||typeof e==`bigint`?k(e,t):typeof e==`string`?jn(e,t):typeof e==`boolean`?kn(e,t):An(e,t)}function kn(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(Cn(n,{size:t.size}),fn(n,{size:t.size})):n}function An(e,t={}){let n=``;for(let t=0;ta||i{bn(),hn(),Dn(),Mn=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),Nn=new TextEncoder}));function Pn(e,t={}){return typeof e==`number`||typeof e==`bigint`?Rn(e,t):typeof e==`boolean`?Fn(e,t):Nt(e)?Ln(e,t):zn(e,t)}function Fn(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(Cn(n,{size:t.size}),fn(n,{size:t.size})):n}function In(e){if(e>=Vn.zero&&e<=Vn.nine)return e-Vn.zero;if(e>=Vn.A&&e<=Vn.F)return e-(Vn.A-10);if(e>=Vn.a&&e<=Vn.f)return e-(Vn.a-10)}function Ln(e,t={}){let n=e;t.size&&(Cn(n,{size:t.size}),n=fn(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e{O(),Pt(),hn(),Dn(),A(),Bn=new TextEncoder,Vn={zero:48,nine:57,A:65,F:70,a:97,f:102}}));function Un(e,t=!1){return t?{h:Number(e&Kn),l:Number(e>>qn&Kn)}:{h:Number(e>>qn&Kn)|0,l:Number(e&Kn)|0}}function Wn(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur=o((()=>{Kn=BigInt(2**32-1),qn=BigInt(32),Jn=(e,t,n)=>e>>>n,Yn=(e,t,n)=>e<<32-n|t>>>n,Xn=(e,t,n)=>e>>>n|t<<32-n,Zn=(e,t,n)=>e<<32-n|t>>>n,Qn=(e,t,n)=>e<<64-n|t>>>n-32,$n=(e,t,n)=>e>>>n-32|t<<64-n,er=(e,t,n)=>e<>>32-n,tr=(e,t,n)=>t<>>32-n,nr=(e,t,n)=>t<>>64-n,rr=(e,t,n)=>e<>>64-n,ir=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ar=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,or=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),sr=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,cr=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),lr=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0})),dr,fr=o((()=>{dr=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0}));function pr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function mr(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function hr(e,...t){if(!pr(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function gr(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);mr(e.outputLen),mr(e.blockLen)}function _r(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function vr(e,t){hr(e);let n=t.outputLen;if(e.length>>t}function Cr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function wr(e){for(let t=0;te().update(Er(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function kr(e=32){if(dr&&typeof dr.getRandomValues==`function`)return dr.getRandomValues(new Uint8Array(e));if(dr&&typeof dr.randomBytes==`function`)return Uint8Array.from(dr.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var Ar,jr,Mr,Nr=o((()=>{fr(),Ar=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)(),jr=Ar?e=>e:wr,Mr=class{}}));function Pr(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=qr(a,o,1)^n[r],c=Jr(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=Hr[n],a=qr(t,i,r),o=Jr(t,i,r),s=Vr[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Gr[r],e[1]^=Kr[r]}br(n)}var Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr=o((()=>{ur(),Nr(),Fr=BigInt(0),Ir=BigInt(1),Lr=BigInt(2),Rr=BigInt(7),zr=BigInt(256),Br=BigInt(113),Vr=[],Hr=[],Ur=[];for(let e=0,t=Ir,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Vr.push(2*(5*r+n)),Hr.push((e+1)*(e+2)/2%64);let i=Fr;for(let e=0;e<7;e++)t=(t<>Rr)*Br)%zr,t&Lr&&(i^=Ir<<(Ir<n>32?nr(e,t,n):er(e,t,n),Jr=(e,t,n)=>n>32?rr(e,t,n):tr(e,t,n),Yr=class e extends Mr{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,mr(n),!(0=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return mr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(vr(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,br(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},Xr=(e,t,n)=>Or(()=>new Yr(t,e,n)),Zr=(()=>Xr(1,136,256/8))()}));function $r(e,t){let n=t||`hex`,r=Zr(Nt(e,{strict:!1})?Pn(e):e);return n===`bytes`?r:On(r)}var ei=o((()=>{Qr(),Pt(),Hn(),A()}));function ti(e){return ni(e)}var ni,ri=o((()=>{Hn(),ei(),ni=e=>$r(Pn(e))}));function ii(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;o{O()})),oi,si=o((()=>{Ot(),ai(),oi=e=>{let t=(()=>typeof e==`string`?e:le(e))();return ii(t)}}));function ci(e){return ti(oi(e))}var li=o((()=>{ri(),si()})),ui,di=o((()=>{li(),ui=ci})),fi,pi=o((()=>{O(),fi=class extends D{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:[`- Address must be a hex value of 20 bytes (40 hex characters).`,`- Address must match its checksum counterpart.`],name:`InvalidAddressError`})}}})),mi,hi=o((()=>{mi=class extends Map{constructor(e){super(),Object.defineProperty(this,`maxSize`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}}));function gi(e,t){if(vi.has(`${e}.${t}`))return vi.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=$r(zn(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return vi.set(`${e}.${t}`,a),a}function _i(e,t){if(!bi(e,{strict:!1}))throw new fi({address:e});return gi(e,t)}var vi,yi=o((()=>{pi(),Hn(),ei(),hi(),Ci(),vi=new mi(8192)}));function bi(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Si.has(r))return Si.get(r);let i=(()=>xi.test(e)?e.toLowerCase()===e?!0:n?gi(e)===e:!0:!1)();return Si.set(r,i),i}var xi,Si,Ci=o((()=>{hi(),yi(),xi=/^0x[a-fA-F0-9]{40}$/,Si=new mi(8192)}));function wi(e){return typeof e[0]==`string`?Ei(e):Ti(e)}function Ti(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Ei(e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}var Di=o((()=>{}));function Oi(e,t,n,{strict:r}={}){return Nt(e,{strict:!1})?Mi(e,t,n,{strict:r}):ji(e,t,n,{strict:r})}function ki(e,t){if(typeof t==`number`&&t>0&&t>Ft(e)-1)throw new cn({offset:t,position:`start`,size:Ft(e)})}function Ai(e,t,n){if(typeof t==`number`&&typeof n==`number`&&Ft(e)!==n-t)throw new cn({offset:n,position:`end`,size:Ft(e)})}function ji(e,t,n,{strict:r}={}){ki(e,t);let i=e.slice(t,n);return r&&Ai(i,t,n),i}function Mi(e,t,n,{strict:r}={}){ki(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&&Ai(i,t,n),i}var Ni=o((()=>{dn(),Pt(),It()})),Pi,Fi,Ii=o((()=>{Pi=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Fi=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/}));function Li(e,t){if(e.length!==t.length)throw new qt({expectedLength:e.length,givenLength:t.length});let n=Ri({params:e,values:t}),r=Bi(n);return r.length===0?`0x`:r}function Ri({params:e,values:t}){let n=[];for(let r=0;r0?wi([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:wi(a.map(({encoded:e})=>e))}}function Ui(e,{param:t}){let[,n]=t.type.split(`bytes`),r=Ft(e);if(!n){let t=e;return r%32!=0&&(t=pn(t,{dir:`right`,size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:wi([pn(k(r,{size:32})),t])}}if(r!==Number.parseInt(n,10))throw new Kt({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:pn(e,{dir:`right`})}}function Wi(e){if(typeof e!=`boolean`)throw new D(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:pn(kn(e))}}function Gi(e,{signed:t,size:n=256}){if(typeof n==`number`){let r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||ee))}}function Ji(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Yi=o((()=>{sn(),pi(),O(),bn(),Ci(),Di(),hn(),It(),Ni(),A(),Ii()})),Xi,Zi=o((()=>{Ni(),li(),Xi=e=>Oi(ci(e),0,4)}));function Qi(e){let{abi:t,args:n=[],name:r}=e,i=Nt(r,{strict:!1}),a=t.filter(e=>i?e.type===`function`?Xi(e)===r:e.type===`event`?ui(e)===r:!1:`name`in e&&e.name===r);if(a.length===0)return;if(a.length===1)return a[0];let o;for(let e of a)if(`inputs`in e){if(!n||n.length===0){if(!e.inputs||e.inputs.length===0)return e;continue}if(e.inputs&&e.inputs.length!==0&&e.inputs.length===n.length&&n.every((t,n)=>{let r=`inputs`in e&&e.inputs[n];return r?$i(t,r):!1})){if(o&&`inputs`in o&&o.inputs){let t=ea(e.inputs,o.inputs,n);if(t)throw new en({abiItem:e,type:t[0]},{abiItem:o,type:t[1]})}o=e}}return o||a[0]}function $i(e,t){let n=typeof e,r=t.type;switch(r){case`address`:return bi(e,{strict:!1});case`bool`:return n===`boolean`;case`function`:return n===`string`;case`string`:return n===`string`;default:return r===`tuple`&&`components`in t?Object.values(t.components).every((t,n)=>$i(Object.values(e)[n],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?n===`number`||n===`bigint`:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n===`string`||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(e=>$i(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,``)})):!1}}function ea(e,t,n){for(let r in e){let i=e[r],a=t[r];if(i.type===`tuple`&&a.type===`tuple`&&`components`in i&&`components`in a)return ea(i.components,a.components,n[r]);let o=[i.type,a.type];if((()=>o.includes(`address`)&&o.includes(`bytes20`)?!0:o.includes(`address`)&&o.includes(`string`)||o.includes(`address`)&&o.includes(`bytes`)?bi(n[r],{strict:!1}):!1)())return o}}var ta=o((()=>{sn(),Pt(),Ci(),di(),Zi()}));function na(e){return typeof e==`string`?{address:e,type:`json-rpc`}:e}var ra=o((()=>{}));function ia(e){let{abi:t,args:n,functionName:r}=e,i=t[0];if(r){let e=Qi({abi:t,args:n,name:r});if(!e)throw new Zt(r,{docsPath:aa});i=e}if(i.type!==`function`)throw new Zt(void 0,{docsPath:aa});return{abi:[i],functionName:Xi(kt(i))}}var aa,oa=o((()=>{sn(),Zi(),Mt(),ta(),aa=`/docs/contract/encodeFunctionData`}));function sa(e){let{args:t}=e,{abi:n,functionName:r}=(()=>e.abi.length===1&&e.functionName?.startsWith(`0x`)?e:ia(e))(),i=n[0],a=r,o=`inputs`in i&&i.inputs?Li(i.inputs,t??[]):void 0;return Ei([a,o??`0x`])}var ca=o((()=>{Di(),Yi(),oa()})),la,ua,da,fa=o((()=>{la={1:"An `assert` condition failed.",17:`Arithmetic operation resulted in underflow or overflow.`,18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:`Attempted to convert to an invalid type.`,34:`Attempted to access a storage byte array that is incorrectly encoded.`,49:"Performed `.pop()` on an empty array",50:`Array index is out of bounds.`,65:`Allocated too much memory or created an array which is too large.`,81:`Attempted to call a zero-initialized variable of internal function type.`},ua={inputs:[{name:`message`,type:`string`}],name:`Error`,type:`error`},da={inputs:[{name:`reason`,type:`uint256`}],name:`Panic`,type:`error`}})),pa,ma,ha,ga=o((()=>{O(),pa=class extends D{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:`NegativeOffsetError`})}},ma=class extends D{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:`PositionOutOfBoundsError`})}},ha=class extends D{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:`RecursiveReadLimitExceededError`})}}}));function _a(e,{recursiveReadLimit:t=8192}={}){let n=Object.create(va);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}var va,ya=o((()=>{ga(),va={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:1/0,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ha({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new ma({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new pa({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new pa({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===1/0)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}}}));function ba(e,t={}){t.size!==void 0&&Cn(e,{size:t.size});let n=An(e,t);return wn(n,t)}function xa(e,t={}){let n=e;if(t.size!==void 0&&(Cn(n,{size:t.size}),n=xn(n)),n.length>1||n[0]>1)throw new _n(n);return!!n[0]}function Sa(e,t={}){t.size!==void 0&&Cn(e,{size:t.size});let n=An(e,t);return En(n,t)}function Ca(e,t={}){let n=e;return t.size!==void 0&&(Cn(n,{size:t.size}),n=xn(n,{dir:`right`})),new TextDecoder().decode(n)}var wa=o((()=>{bn(),Sn(),Dn(),A()}));function Ta(e,t){let n=typeof t==`string`?Ln(t):t,r=_a(n);if(Ft(n)===0&&e.length>0)throw new Wt;if(Ft(t)&&Ft(t)<32)throw new Ut({data:typeof t==`string`?t:An(t),params:e,size:Ft(t)});let i=0,a=[];for(let t=0;t48?ba(i,{signed:n}):Sa(i,{signed:n}),32]}function Ma(e,t,{staticPosition:n}){let r=t.components.length===0||t.components.some(({name:e})=>!e),i=r?[]:{},a=0;if(Pa(t)){let o=Sa(e.readBytes(Ia)),s=n+o;for(let n=0;n{sn(),yi(),ya(),It(),Ni(),Sn(),wa(),Hn(),A(),Yi(),Fa=32,Ia=32}));function Ra(e){let{abi:t,data:n}=e,r=Oi(n,0,4);if(r===`0x`)throw new Wt;let i=[...t||[],ua,da].find(e=>e.type===`error`&&r===Xi(kt(e)));if(!i)throw new Xt(r,{docsPath:`/docs/contract/decodeErrorResult`});return{abiItem:i,args:`inputs`in i&&i.inputs&&i.inputs.length>0?Ta(i.inputs,Oi(n,4)):void 0,errorName:i.name}}var za=o((()=>{fa(),sn(),Ni(),Zi(),La(),Mt()})),Ba,Va=o((()=>{Ba=(e,t,n)=>JSON.stringify(e,(e,n)=>{let r=typeof n==`bigint`?n.toString():n;return typeof t==`function`?t(e,r):r},n)}));function Ha({abiItem:e,args:t,includeFunctionName:n=!0,includeName:r=!1}){if(`name`in e&&`inputs`in e&&e.inputs)return`${n?e.name:``}(${e.inputs.map((e,n)=>`${r&&e.name?`${e.name}: `:``}${typeof t[n]==`object`?Ba(t[n]):t[n]}`).join(`, `)})`}var Ua=o((()=>{Va()})),Wa,Ga,Ka=o((()=>{Wa={gwei:9,wei:18},Ga={ether:-9,wei:9}}));function qa(e,t){let n=e.toString(),r=n.startsWith(`-`);r&&(n=n.slice(1)),n=n.padStart(t,`0`);let[i,a]=[n.slice(0,n.length-t),n.slice(n.length-t)];return a=a.replace(/(0+)$/,``),`${r?`-`:``}${i||`0`}${a?`.${a}`:``}`}var Ja=o((()=>{}));function Ya(e,t=`wei`){return qa(e,Wa[t])}var Xa=o((()=>{Ka(),Ja()}));function Za(e,t=`wei`){return qa(e,Ga[t])}var Qa=o((()=>{Ka(),Ja()}));function $a(e){return e.reduce((e,{slot:t,value:n})=>`${e} ${t}: ${n}\n`,``)}function eo(e){return e.reduce((e,{address:t,...n})=>{let r=`${e} ${t}:\n`;return n.nonce&&(r+=` nonce: ${n.nonce}\n`),n.balance&&(r+=` balance: ${n.balance}\n`),n.code&&(r+=` code: ${n.code}\n`),n.state&&(r+=` state: +`,r+=$a(n.state)),n.stateDiff&&(r+=` stateDiff: +`,r+=$a(n.stateDiff)),r},` State Override: +`).slice(0,-1)}var to,no,ro=o((()=>{O(),to=class extends D{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:`AccountStateConflictError`})}},no=class extends D{constructor(){super(`state and stateDiff are set on the same account.`,{name:`StateAssignmentConflictError`})}}}));function io(e){let t=Object.entries(e).map(([e,t])=>t===void 0||t===!1?null:[e,t]).filter(Boolean),n=t.reduce((e,[t])=>Math.max(e,t.length),0);return t.map(([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`).join(` +`)}var ao,oo,so,co,lo,uo,fo,po,mo,ho=o((()=>{Xa(),Qa(),O(),ao=class extends D{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` +`),{name:`FeeConflictError`})}},oo=class extends D{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:`InvalidLegacyVError`})}},so=class extends D{constructor({transaction:e}){super(`Cannot infer a transaction type from provided transaction.`,{metaMessages:[`Provided Transaction:`,`{`,io(e),`}`,``,`To infer the type, either provide:`,"- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:`InvalidSerializableTransactionError`})}},co=class extends D{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:`InvalidStorageKeySizeError`})}},lo=class extends D{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:c,nonce:l,to:u,value:d}){let f=io({chain:r&&`${r?.name} (id: ${r?.id})`,from:t?.address,to:u,value:d!==void 0&&`${Ya(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${Za(o)} gwei`,maxFeePerGas:s!==void 0&&`${Za(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${Za(c)} gwei`,nonce:l});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages,` `]:[],`Request Arguments:`,f].filter(Boolean),name:`TransactionExecutionError`}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},uo=class extends D{constructor({blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){let a=`Transaction`;n&&i!==void 0&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&i!==void 0&&(a=`Transaction at block hash "${e}" at index "${i}"`),t&&i!==void 0&&(a=`Transaction at block number "${t}" at index "${i}"`),r&&(a=`Transaction with hash "${r}"`),super(`${a} could not be found.`,{name:`TransactionNotFoundError`})}},fo=class extends D{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`,{name:`TransactionReceiptNotFoundError`})}},po=class extends D{constructor({receipt:e}){super(`Transaction with hash "${e.transactionHash}" reverted.`,{metaMessages:[`The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.`,` `,`You can attempt to extract the revert reason by:`,"- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:`TransactionReceiptRevertedError`}),Object.defineProperty(this,`receipt`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=e}},mo=class extends D{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:`WaitForTransactionReceiptTimeoutError`})}}})),go,_o,vo=o((()=>{go=e=>e,_o=e=>e})),yo,bo,xo,So,Co,wo,To=o((()=>{ra(),fa(),za(),Mt(),Ua(),ta(),Xa(),Qa(),sn(),O(),ro(),ho(),vo(),yo=class extends D{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:c,nonce:l,to:u,value:d,stateOverride:f}){let p=t?na(t):void 0,m=io({from:p?.address,to:u,value:d!==void 0&&`${Ya(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${Za(o)} gwei`,maxFeePerGas:s!==void 0&&`${Za(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${Za(c)} gwei`,nonce:l});f&&(m+=`\n${eo(f)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages,` `]:[],`Raw Call Arguments:`,m].filter(Boolean),name:`CallExecutionError`}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},bo=class extends D{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){let s=Qi({abi:t,args:n,name:a}),c=s?Ha({abiItem:s,args:n,includeFunctionName:!1,includeName:!1}):void 0,l=s?kt(s,{includeName:!0}):void 0,u=io({address:r&&go(r),function:l,args:c&&c!==`()`&&`${[...Array(a?.length??0).keys()].map(()=>` `).join(``)}${c}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages,` `]:[],u&&`Contract Call:`,u].filter(Boolean),name:`ContractFunctionExecutionError`}),Object.defineProperty(this,`abi`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`args`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`contractAddress`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`formattedArgs`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`functionName`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`sender`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=t,this.args=n,this.cause=e,this.contractAddress=r,this.functionName=a,this.sender=o}},xo=class extends D{constructor({abi:e,data:t,functionName:n,message:r}){let i,a,o,s;if(t&&t!==`0x`)try{a=Ra({abi:e,data:t});let{abiItem:n,errorName:r,args:i}=a;if(r===`Error`)s=i[0];else if(r===`Panic`){let[e]=i;s=la[e]}else{let e=n?kt(n,{includeName:!0}):void 0,t=n&&i?Ha({abiItem:n,args:i,includeFunctionName:!1,includeName:!1}):void 0;o=[e?`Error: ${e}`:``,t&&t!==`()`?` ${[...Array(r?.length??0).keys()].map(()=>` `).join(``)}${t}`:``]}}catch(e){i=e}else r&&(s=r);let c;i instanceof Xt&&(c=i.signature,o=[`Unable to decode signature "${c}" as it was not found on the provided ABI.`,`Make sure you are using the correct ABI and that the error exists on it.`,`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${c}.`]),super(s&&s!==`execution reverted`||c?[`The contract function "${n}" reverted with the following ${c?`signature`:`reason`}:`,s||c].join(` +`):`The contract function "${n}" reverted.`,{cause:i,metaMessages:o,name:`ContractFunctionRevertedError`}),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`raw`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`reason`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`signature`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=t,this.reason=s,this.signature=c}},So=class extends D{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:[`This could be due to any of the following:`,` - The contract does not have the function "${e}",`,` - The parameters passed to the contract function may be invalid, or`,` - The address is not a contract.`],name:`ContractFunctionZeroDataError`})}},Co=class extends D{constructor({factory:e}){super(`Deployment for counterfactual contract call failed${e?` for factory "${e}".`:``}`,{metaMessages:[`Please ensure:`,"- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:`CounterfactualDeploymentFailedError`})}},wo=class extends D{constructor({data:e,message:t}){super(t||``,{name:`RawContractError`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}})),Eo,Do,Oo,ko=o((()=>{Va(),O(),vo(),Eo=class extends D{constructor({body:e,cause:t,details:n,headers:r,status:i,url:a}){super(`HTTP request failed.`,{cause:t,details:n,metaMessages:[i&&`Status: ${i}`,`URL: ${_o(a)}`,e&&`Request body: ${Ba(e)}`].filter(Boolean),name:`HttpRequestError`}),Object.defineProperty(this,`body`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`headers`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`status`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`url`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=r,this.status=i,this.url=a}},Do=class extends D{constructor({body:e,error:t,url:n}){super(`RPC Request failed.`,{cause:t,details:t.message,metaMessages:[`URL: ${_o(n)}`,`Request body: ${Ba(e)}`],name:`RpcRequestError`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code,this.data=t.data}},Oo=class extends D{constructor({body:e,url:t}){super(`The request took too long to respond.`,{details:`The request timed out.`,metaMessages:[`URL: ${_o(t)}`,`Request body: ${Ba(e)}`],name:`TimeoutError`})}}})),Ao,jo,Mo,No,j,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo,Zo,Qo,$o,es,ts,ns,rs,os=o((()=>{O(),ko(),Ao=-1,jo=class extends D{constructor(e,{code:t,docsPath:n,metaMessages:r,name:i,shortMessage:a}){super(a,{cause:e,docsPath:n,metaMessages:r||e?.metaMessages,name:i||`RpcError`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||e.name,this.code=e instanceof Do?e.code:t??Ao}},Mo=class extends jo{constructor(e,t){super(e,t),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}},No=class e extends jo{constructor(t){super(t,{code:e.code,name:`ParseRpcError`,shortMessage:`Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.`})}},Object.defineProperty(No,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32700}),j=class e extends jo{constructor(t){super(t,{code:e.code,name:`InvalidRequestRpcError`,shortMessage:`JSON is not a valid request object.`})}},Object.defineProperty(j,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Po=class e extends jo{constructor(t,{method:n}={}){super(t,{code:e.code,name:`MethodNotFoundRpcError`,shortMessage:`The method${n?` "${n}"`:``} does not exist / is not available.`})}},Object.defineProperty(Po,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Fo=class e extends jo{constructor(t){super(t,{code:e.code,name:`InvalidParamsRpcError`,shortMessage:[`Invalid parameters were provided to the RPC method.`,`Double check you have provided the correct parameters.`].join(` +`)})}},Object.defineProperty(Fo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Io=class e extends jo{constructor(t){super(t,{code:e.code,name:`InternalRpcError`,shortMessage:`An internal error was received.`})}},Object.defineProperty(Io,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32603}),Lo=class e extends jo{constructor(t){super(t,{code:e.code,name:`InvalidInputRpcError`,shortMessage:[`Missing or invalid parameters.`,`Double check you have provided the correct parameters.`].join(` +`)})}},Object.defineProperty(Lo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Ro=class e extends jo{constructor(t){super(t,{code:e.code,name:`ResourceNotFoundRpcError`,shortMessage:`Requested resource not found.`}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`ResourceNotFoundRpcError`})}},Object.defineProperty(Ro,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32001}),zo=class e extends jo{constructor(t){super(t,{code:e.code,name:`ResourceUnavailableRpcError`,shortMessage:`Requested resource not available.`})}},Object.defineProperty(zo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Bo=class e extends jo{constructor(t){super(t,{code:e.code,name:`TransactionRejectedRpcError`,shortMessage:`Transaction creation failed.`})}},Object.defineProperty(Bo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Vo=class e extends jo{constructor(t,{method:n}={}){super(t,{code:e.code,name:`MethodNotSupportedRpcError`,shortMessage:`Method${n?` "${n}"`:``} is not supported.`})}},Object.defineProperty(Vo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Ho=class e extends jo{constructor(t){super(t,{code:e.code,name:`LimitExceededRpcError`,shortMessage:`Request exceeds defined limit.`})}},Object.defineProperty(Ho,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Uo=class e extends jo{constructor(t){super(t,{code:e.code,name:`JsonRpcVersionUnsupportedError`,shortMessage:`Version of JSON-RPC protocol is not supported.`})}},Object.defineProperty(Uo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Wo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`UserRejectedRequestError`,shortMessage:`User rejected the request.`})}},Object.defineProperty(Wo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4001}),Go=class e extends Mo{constructor(t){super(t,{code:e.code,name:`UnauthorizedProviderError`,shortMessage:`The requested method and/or account has not been authorized by the user.`})}},Object.defineProperty(Go,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4100}),Ko=class e extends Mo{constructor(t,{method:n}={}){super(t,{code:e.code,name:`UnsupportedProviderMethodError`,shortMessage:`The Provider does not support the requested method${n?` " ${n}"`:``}.`})}},Object.defineProperty(Ko,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4200}),qo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`ProviderDisconnectedError`,shortMessage:`The Provider is disconnected from all chains.`})}},Object.defineProperty(qo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4900}),Jo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`ChainDisconnectedError`,shortMessage:`The Provider is not connected to the requested chain.`})}},Object.defineProperty(Jo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4901}),Yo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`SwitchChainError`,shortMessage:`An error occurred when attempting to switch chain.`})}},Object.defineProperty(Yo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4902}),Xo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`UnsupportedNonOptionalCapabilityError`,shortMessage:`This Wallet does not support a capability that was not marked as optional.`})}},Object.defineProperty(Xo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5700}),Zo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`UnsupportedChainIdError`,shortMessage:`This Wallet does not support the requested chain ID.`})}},Object.defineProperty(Zo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5710}),Qo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`DuplicateIdError`,shortMessage:`There is already a bundle submitted with this ID.`})}},Object.defineProperty(Qo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5720}),$o=class e extends Mo{constructor(t){super(t,{code:e.code,name:`UnknownBundleIdError`,shortMessage:`This bundle id is unknown / has not been submitted`})}},Object.defineProperty($o,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5730}),es=class e extends Mo{constructor(t){super(t,{code:e.code,name:`BundleTooLargeError`,shortMessage:`The call bundle is too large for the Wallet to process.`})}},Object.defineProperty(es,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5740}),ts=class e extends Mo{constructor(t){super(t,{code:e.code,name:`AtomicReadyWalletRejectedUpgradeError`,shortMessage:`The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.`})}},Object.defineProperty(ts,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5750}),ns=class e extends Mo{constructor(t){super(t,{code:e.code,name:`AtomicityNotSupportedError`,shortMessage:`The wallet does not support atomic execution but the request requires it.`})}},Object.defineProperty(ns,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5760}),rs=class extends jo{constructor(e){super(e,{name:`UnknownRpcError`,shortMessage:`An unknown RPC error occurred.`})}}}));sn(),O(),To(),ko(),os();var ss=3;function cs(e,{abi:t,address:n,args:r,docsPath:i,functionName:a,sender:o}){let s=e instanceof wo?e:e instanceof D?e.walk(e=>`data`in e)||e.walk():{},{code:c,data:l,details:u,message:d,shortMessage:f}=s,p=(()=>e instanceof Wt?new So({functionName:a}):[ss,Io.code].includes(c)&&(l||u||d||f)?new xo({abi:t,data:typeof l==`object`?l.data:l,functionName:a,message:s instanceof Do?u:f??d}):e)();return new bo(p,{abi:t,args:r,contractAddress:n,docsPath:i,functionName:a,sender:o})}yi(),ei();function ls(e){let t=$r(`0x${e.substring(4)}`).substring(26);return gi(`0x${t}`)}var us,ds,fs,ps,ms=o((()=>{us=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),ds=function(e){return`/`+e},fs={},ps=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ds(t,n),t in fs)return;fs[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:us,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})}}));function hs(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function gs(e,t,n){return e&t^~e&n}function _s(e,t,n){return e&t^e&n^t&n}var vs,ys,bs,xs,Ss=o((()=>{Nr(),vs=class extends Mr{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=xr(this.buffer)}update(e){_r(this),e=Er(e),hr(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;ar-a&&(this.process(n,0),a=0);for(let e=a;el.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e{Ss(),ur(),Nr(),Cs=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ws=new Uint32Array(64),Ts=class extends vs{constructor(e=32){super(64,e,8,!1),this.A=ys[0]|0,this.B=ys[1]|0,this.C=ys[2]|0,this.D=ys[3]|0,this.E=ys[4]|0,this.F=ys[5]|0,this.G=ys[6]|0,this.H=ys[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)ws[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=ws[e-15],n=ws[e-2],r=Sr(t,7)^Sr(t,18)^t>>>3;ws[e]=(Sr(n,17)^Sr(n,19)^n>>>10)+ws[e-7]+r+ws[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=Sr(o,6)^Sr(o,11)^Sr(o,25),u=l+t+gs(o,s,c)+Cs[e]+ws[e]|0,d=(Sr(n,2)^Sr(n,13)^Sr(n,22))+_s(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){br(ws)}destroy(){this.set(0,0,0,0,0,0,0,0),br(this.buffer)}},Es=(()=>Wn(`0x428a2f98d728ae22.0x7137449123ef65cd.0xb5c0fbcfec4d3b2f.0xe9b5dba58189dbbc.0x3956c25bf348b538.0x59f111f1b605d019.0x923f82a4af194f9b.0xab1c5ed5da6d8118.0xd807aa98a3030242.0x12835b0145706fbe.0x243185be4ee4b28c.0x550c7dc3d5ffb4e2.0x72be5d74f27b896f.0x80deb1fe3b1696b1.0x9bdc06a725c71235.0xc19bf174cf692694.0xe49b69c19ef14ad2.0xefbe4786384f25e3.0x0fc19dc68b8cd5b5.0x240ca1cc77ac9c65.0x2de92c6f592b0275.0x4a7484aa6ea6e483.0x5cb0a9dcbd41fbd4.0x76f988da831153b5.0x983e5152ee66dfab.0xa831c66d2db43210.0xb00327c898fb213f.0xbf597fc7beef0ee4.0xc6e00bf33da88fc2.0xd5a79147930aa725.0x06ca6351e003826f.0x142929670a0e6e70.0x27b70a8546d22ffc.0x2e1b21385c26c926.0x4d2c6dfc5ac42aed.0x53380d139d95b3df.0x650a73548baf63de.0x766a0abb3c77b2a8.0x81c2c92e47edaee6.0x92722c851482353b.0xa2bfe8a14cf10364.0xa81a664bbc423001.0xc24b8b70d0f89791.0xc76c51a30654be30.0xd192e819d6ef5218.0xd69906245565a910.0xf40e35855771202a.0x106aa07032bbd1b8.0x19a4c116b8d2d0c8.0x1e376c085141ab53.0x2748774cdf8eeb99.0x34b0bcb5e19b48a8.0x391c0cb3c5c95a63.0x4ed8aa4ae3418acb.0x5b9cca4f7763e373.0x682e6ff3d6b2b8a3.0x748f82ee5defb2fc.0x78a5636f43172f60.0x84c87814a1f0ab72.0x8cc702081a6439ec.0x90befffa23631e28.0xa4506cebde82bde9.0xbef9a3f7b2c67915.0xc67178f2e372532b.0xca273eceea26619c.0xd186b8c721c0c207.0xeada7dd6cde0eb1e.0xf57d4f7fee6ed178.0x06f067aa72176fba.0x0a637dc5a2c898a6.0x113f9804bef90dae.0x1b710b35131c471b.0x28db77f523047d84.0x32caab7b40c72493.0x3c9ebe0a15c9bebc.0x431d67c49c100d4c.0x4cc5d4becb3e42b6.0x597f299cfc657e2a.0x5fcb6fab3ad6faec.0x6c44198c4a475817`.split(`.`).map(e=>BigInt(e))))(),Ds=(()=>Es[0])(),Os=(()=>Es[1])(),ks=new Uint32Array(80),As=new Uint32Array(80),js=class extends vs{constructor(e=64){super(128,e,16,!1),this.Ah=xs[0]|0,this.Al=xs[1]|0,this.Bh=xs[2]|0,this.Bl=xs[3]|0,this.Ch=xs[4]|0,this.Cl=xs[5]|0,this.Dh=xs[6]|0,this.Dl=xs[7]|0,this.Eh=xs[8]|0,this.El=xs[9]|0,this.Fh=xs[10]|0,this.Fl=xs[11]|0,this.Gh=xs[12]|0,this.Gl=xs[13]|0,this.Hh=xs[14]|0,this.Hl=xs[15]|0}get(){let{Ah:e,Al:t,Bh:n,Bl:r,Ch:i,Cl:a,Dh:o,Dl:s,Eh:c,El:l,Fh:u,Fl:d,Gh:f,Gl:p,Hh:m,Hl:h}=this;return[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h]}set(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=r|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=s|0,this.Eh=c|0,this.El=l|0,this.Fh=u|0,this.Fl=d|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let n=0;n<16;n++,t+=4)ks[n]=e.getUint32(t),As[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=ks[e-15]|0,n=As[e-15]|0,r=Xn(t,n,1)^Xn(t,n,8)^Jn(t,n,7),i=Zn(t,n,1)^Zn(t,n,8)^Yn(t,n,7),a=ks[e-2]|0,o=As[e-2]|0,s=Xn(a,o,19)^Qn(a,o,61)^Jn(a,o,6),c=Zn(a,o,19)^$n(a,o,61)^Yn(a,o,6),l=or(i,c,As[e-7],As[e-16]);ks[e]=sr(l,r,s,ks[e-7],ks[e-16])|0,As[e]=l|0}let{Ah:n,Al:r,Bh:i,Bl:a,Ch:o,Cl:s,Dh:c,Dl:l,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:h,Hh:g,Hl:_}=this;for(let e=0;e<80;e++){let t=Xn(u,d,14)^Xn(u,d,18)^Qn(u,d,41),v=Zn(u,d,14)^Zn(u,d,18)^$n(u,d,41),y=u&f^~u&m,b=d&p^~d&h,x=cr(_,v,b,Os[e],As[e]),S=lr(x,g,t,y,Ds[e],ks[e]),C=x|0,w=Xn(n,r,28)^Qn(n,r,34)^Qn(n,r,39),ee=Zn(n,r,28)^$n(n,r,34)^$n(n,r,39),te=n&i^n&o^i&o,ne=r&a^r&s^a&s;g=m|0,_=h|0,m=f|0,h=p|0,f=u|0,p=d|0,{h:u,l:d}=Gn(c|0,l|0,S|0,C|0),c=o|0,l=s|0,o=i|0,s=a|0,i=n|0,a=r|0;let re=ir(C,ee,ne);n=ar(re,S,w,te),r=re|0}({h:n,l:r}=Gn(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=Gn(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=Gn(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=Gn(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=Gn(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=Gn(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=Gn(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=Gn(this.Hh|0,this.Hl|0,g|0,_|0),this.set(n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}roundClean(){br(ks,As)}destroy(){br(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ms=class extends js{constructor(){super(48),this.Ah=bs[0]|0,this.Al=bs[1]|0,this.Bh=bs[2]|0,this.Bl=bs[3]|0,this.Ch=bs[4]|0,this.Cl=bs[5]|0,this.Dh=bs[6]|0,this.Dl=bs[7]|0,this.Eh=bs[8]|0,this.El=bs[9]|0,this.Fh=bs[10]|0,this.Fl=bs[11]|0,this.Gh=bs[12]|0,this.Gl=bs[13]|0,this.Hh=bs[14]|0,this.Hl=bs[15]|0}},Ns=Or(()=>new Ts),Ps=Or(()=>new js),Fs=Or(()=>new Ms)})),Ls,Rs,zs=o((()=>{Nr(),Ls=class extends Mr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,gr(e);let n=Er(t);if(this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`Expected instance of class which extends utils.Hash`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;enew Ls(e,t).update(n).digest(),Rs.create=(e,t)=>new Ls(e,t)}));function Bs(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Vs(e){if(!Bs(e))throw Error(`Uint8Array expected`)}function Hs(e,t){if(typeof t!=`boolean`)throw Error(e+` boolean expected, got `+t)}function Us(e){let t=e.toString(16);return t.length&1?`0`+t:t}function Ws(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?sc:BigInt(`0x`+e)}function Gs(e){if(Vs(e),lc)return e.toHex();let t=``;for(let n=0;n=dc._0&&e<=dc._9)return e-dc._0;if(e>=dc.A&&e<=dc.F)return e-(dc.A-10);if(e>=dc.a&&e<=dc.f)return e-(dc.a-10)}function qs(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(lc)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;tsc;e>>=cc,t+=1);return t}function ic(e,t,n){if(typeof e!=`number`||e<2)throw Error(`hashLen must be a number`);if(typeof t!=`number`||t<2)throw Error(`qByteLen must be a number`);if(typeof n!=`function`)throw Error(`hmacFn must be a function`);let r=mc(e),i=mc(e),a=0,o=()=>{r.fill(1),i.fill(0),a=0},s=(...e)=>n(i,r,...e),c=(e=mc(0))=>{i=s(hc([0]),e),r=s(),e.length!==0&&(i=s(hc([1]),e),r=s())},l=()=>{if(a++>=1e3)throw Error(`drbg: tried 1000 values`);let e=0,n=[];for(;e{o(),c(e);let n;for(;!(n=t(l()));)c();return o(),n}}function ac(e,t,n={}){let r=(t,n,r)=>{let i=gc[n];if(typeof i!=`function`)throw Error(`invalid validator function`);let a=e[t];if(!(r&&a===void 0)&&!i(a,e))throw Error(`param `+String(t)+` is invalid. Expected `+n+`, got `+a)};for(let[e,n]of Object.entries(t))r(e,n,!1);for(let[e,t]of Object.entries(n))r(e,t,!0);return e}function oc(e){let t=new WeakMap;return(n,...r)=>{let i=t.get(n);if(i!==void 0)return i;let a=e(n,...r);return t.set(n,a),a}}var sc,cc,lc,uc,dc,fc,pc,mc,hc,gc,_c=o((()=>{sc=BigInt(0),cc=BigInt(1),lc=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,uc=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),dc={_0:48,_9:57,A:65,F:70,a:97,f:102},fc=e=>typeof e==`bigint`&&sc<=e,pc=e=>(cc<new Uint8Array(e),hc=e=>Uint8Array.from(e),gc={bigint:e=>typeof e==`bigint`,function:e=>typeof e==`function`,boolean:e=>typeof e==`boolean`,string:e=>typeof e==`string`,stringOrUint8Array:e=>typeof e==`string`||Bs(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e==`function`&&Number.isSafeInteger(e.outputLen)}}));function vc(e,t){let n=e%t;return n>=Pc?n:t+n}function yc(e,t,n){let r=e;for(;t-- >Pc;)r*=r,r%=n;return r}function bc(e,t){if(e===Pc)throw Error(`invert: expected non-zero number`);if(t<=Pc)throw Error(`invert: expected positive modulus, got `+t);let n=vc(e,t),r=t,i=Pc,a=Fc,o=Fc,s=Pc;for(;n!==Pc;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}if(r!==Fc)throw Error(`invert: does not exist`);return vc(i,t)}function xc(e,t){let n=(e.ORDER+Fc)/Rc,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw Error(`Cannot find square root`);return r}function Sc(e,t){let n=(e.ORDER-zc)/Bc,r=e.mul(t,Ic),i=e.pow(r,n),a=e.mul(t,i),o=e.mul(e.mul(a,Ic),i),s=e.mul(a,e.sub(o,e.ONE));if(!e.eql(e.sqr(s),t))throw Error(`Cannot find square root`);return s}function Cc(e){if(e1e3)throw Error(`Cannot find square root: probably non-prime P`);if(n===1)return xc;let a=i.pow(r,t),o=(t+Fc)/Ic;return function(e,r){if(e.is0(r))return r;if(Oc(e,r)!==1)throw Error(`Cannot find square root`);let i=n,s=e.mul(e.ONE,a),c=e.pow(r,t),l=e.pow(r,o);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,n=e.sqr(c);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw Error(`Cannot find square root`);let r=Fc<(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`isSafeInteger`,BITS:`isSafeInteger`});return ac(e,t)}function Ec(e,t,n){if(nPc;)n&Fc&&(r=e.mul(r,i)),i=e.sqr(i),n>>=Fc;return r}function Dc(e,t,n=!1){let r=Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),a=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),a),r}function Oc(e,t){let n=(e.ORDER-Fc)/Ic,r=e.pow(t,n),i=e.eql(r,e.ONE),a=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!i&&!a&&!o)throw Error(`invalid Legendre symbol result`);return i?1:a?0:-1}function kc(e,t){t!==void 0&&mr(t);let n=t===void 0?e.toString(2).length:t,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Ac(e,t,n=!1,r={}){if(e<=Pc)throw Error(`invalid field: expected ORDER > 0, got `+e);let{nBitLength:i,nByteLength:a}=kc(e,t);if(a>2048)throw Error(`invalid field: expected ORDER of <= 2048 bytes`);let o,s=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:a,MASK:pc(i),ZERO:Pc,ONE:Fc,create:t=>vc(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return Pc<=t&&te===Pc,isOdd:e=>(e&Fc)===Fc,neg:t=>vc(-t,e),eql:(e,t)=>e===t,sqr:t=>vc(t*t,e),add:(t,n)=>vc(t+n,e),sub:(t,n)=>vc(t-n,e),mul:(t,n)=>vc(t*n,e),pow:(e,t)=>Ec(s,e,t),div:(t,n)=>vc(t*bc(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>bc(t,e),sqrt:r.sqrt||(t=>(o||=wc(e),o(s,t))),toBytes:e=>n?Zs(e,a):Xs(e,a),fromBytes:e=>{if(e.length!==a)throw Error(`Field.fromBytes: expected `+a+` bytes, got `+e.length);return n?Ys(e):Js(e)},invertBatch:e=>Dc(s,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(s)}function jc(e){if(typeof e!=`bigint`)throw Error(`field order must be bigint`);let t=e.toString(2).length;return Math.ceil(t/8)}function Mc(e){let t=jc(e);return t+Math.ceil(t/2)}function Nc(e,t,n=!1){let r=e.length,i=jc(t),a=Mc(t);if(r<16||r1024)throw Error(`expected `+a+`-1024 bytes of input, got `+r);let o=n?Ys(e):Js(e),s=vc(o,t-Fc)+Fc;return n?Zs(s,i):Xs(s,i)}var Pc,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc=o((()=>{Nr(),_c(),Pc=BigInt(0),Fc=BigInt(1),Ic=BigInt(2),Lc=BigInt(3),Rc=BigInt(4),zc=BigInt(5),Bc=BigInt(8),Vc=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`]}));function Uc(e,t){let n=t.negate();return e?n:t}function Wc(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function Gc(e,t){Wc(e,t);let n=Math.ceil(t/e)+1,r=2**(e-1),i=2**e,a=pc(e),o=BigInt(e);return{windows:n,windowSize:r,mask:a,maxNumber:i,shiftBy:o}}function Kc(e,t,n){let{windowSize:r,mask:i,maxNumber:a,shiftBy:o}=n,s=Number(e&i),c=e>>o;s>r&&(s-=a,c+=el);let l=t*r,u=l+Math.abs(s)-1,d=s===0,f=s<0,p=t%2!=0;return{nextN:c,offset:u,isZero:d,isNeg:f,isNegF:p,offsetF:l}}function qc(e,t){if(!Array.isArray(e))throw Error(`array expected`);e.forEach((e,n)=>{if(!(e instanceof t))throw Error(`invalid point at index `+n)})}function Jc(e,t){if(!Array.isArray(e))throw Error(`array of scalars expected`);e.forEach((e,n)=>{if(!t.isValid(e))throw Error(`invalid scalar at index `+n)})}function Yc(e){return nl.get(e)||1}function Xc(e,t){return{constTimeNegate:Uc,hasPrecomputes(e){return Yc(e)!==1},unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>$c;)n&el&&(r=r.add(i)),i=i.double(),n>>=el;return r},precomputeWindow(e,n){let{windows:r,windowSize:i}=Gc(n,t),a=[],o=e,s=o;for(let e=0;e12?c=s-3:s>4?c=s-2:s>0&&(c=2);let l=pc(c),u=Array(Number(l)+1).fill(o),d=Math.floor((t.BITS-1)/c)*c,f=o;for(let e=d;e>=0;e-=c){u.fill(o);for(let t=0;t>BigInt(e)&l);u[a]=u[a].add(n[t])}let t=o;for(let e=u.length-1,n=o;e>0;e--)n=n.add(u[e]),t=t.add(n);if(f=f.add(t),e!==0)for(let e=0;e{Hc(),_c(),$c=BigInt(0),el=BigInt(1),tl=new WeakMap,nl=new WeakMap}));function il(e){e.lowS!==void 0&&Hs(`lowS`,e.lowS),e.prehash!==void 0&&Hs(`prehash`,e.prehash)}function al(e){let t=Qc(e);ac(t,{a:`field`,b:`field`},{allowInfinityPoint:`boolean`,allowedPrivateKeyLengths:`array`,clearCofactor:`function`,fromBytes:`function`,isTorsionFree:`function`,toBytes:`function`,wrapPrivateKey:`boolean`});let{endo:n,Fp:r,a:i}=t;if(n){if(!r.eql(i,r.ZERO))throw Error(`invalid endo: CURVE.a must be 0`);if(typeof n!=`object`||typeof n.beta!=`bigint`||typeof n.splitScalar!=`function`)throw Error(`invalid endo: expected "beta": bigint and "splitScalar": function`)}return Object.freeze({...t})}function ol(e,t){return Gs(Xs(e,t))}function sl(e){let t=al(e),{Fp:n}=t,r=Ac(t.n,t.nBitLength),i=t.toBytes||((e,t,r)=>{let i=t.toAffine();return $s(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),a=t.fromBytes||(e=>{let t=e.subarray(1),r=n.fromBytes(t.subarray(0,n.BYTES)),i=n.fromBytes(t.subarray(n.BYTES,2*n.BYTES));return{x:r,y:i}});function o(e){let{a:r,b:i}=t,a=n.sqr(e),o=n.mul(a,e);return n.add(n.add(o,n.mul(e,r)),i)}function s(e,t){let r=n.sqr(t),i=o(e);return n.eql(r,i)}if(!s(t.Gx,t.Gy))throw Error(`bad curve params: generator point`);let c=n.mul(n.pow(t.a,_l),vl),l=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(c,l)))throw Error(`bad curve params: a or b`);function u(e){return tc(e,hl,t.n)}function d(e){let{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:i,n:a}=t;if(n&&typeof e!=`bigint`){if(Bs(e)&&(e=Gs(e)),typeof e!=`string`||!n.includes(e.length))throw Error(`invalid private key`);e=e.padStart(r*2,`0`)}let o;try{o=typeof e==`bigint`?e:Js(Qs(`private key`,e,r))}catch{throw Error(`invalid private key, expected hex or `+r+` bytes, got `+typeof e)}return i&&(o=vc(o,a)),nc(`private key`,o,hl,a),o}function f(e){if(!(e instanceof h))throw Error(`ProjectivePoint expected`)}let p=oc((e,t)=>{let{px:r,py:i,pz:a}=e;if(n.eql(a,n.ONE))return{x:r,y:i};let o=e.is0();t??=o?n.ONE:n.inv(a);let s=n.mul(r,t),c=n.mul(i,t),l=n.mul(a,t);if(o)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw Error(`invZ was invalid`);return{x:s,y:c}}),m=oc(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw Error(`bad point: ZERO`)}let{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw Error(`bad point: x or y not FE`);if(!s(r,i))throw Error(`bad point: equation left != right`);if(!e.isTorsionFree())throw Error(`bad point: not in prime-order subgroup`);return!0});class h{constructor(e,t,r){if(e==null||!n.isValid(e))throw Error(`x required`);if(t==null||!n.isValid(t)||n.is0(t))throw Error(`y required`);if(r==null||!n.isValid(r))throw Error(`z required`);this.px=e,this.py=t,this.pz=r,Object.freeze(this)}static fromAffine(e){let{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw Error(`invalid affine point`);if(e instanceof h)throw Error(`projective point not allowed`);let i=e=>n.eql(e,n.ZERO);return i(t)&&i(r)?h.ZERO:new h(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){let t=Dc(n,e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(h.fromAffine)}static fromHex(e){let t=h.fromAffine(a(Qs(`pointHex`,e)));return t.assertValidity(),t}static fromPrivateKey(e){return h.BASE.multiply(d(e))}static msm(e,t){return Zc(h,r,e,t)}_setWindowSize(e){v.setWindowSize(this,e)}assertValidity(){m(this)}hasEvenY(){let{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw Error(`Field doesn't support isOdd`)}equals(e){f(e);let{px:t,py:r,pz:i}=this,{px:a,py:o,pz:s}=e,c=n.eql(n.mul(t,s),n.mul(a,i)),l=n.eql(n.mul(r,s),n.mul(o,i));return c&&l}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){let{a:e,b:r}=t,i=n.mul(r,_l),{px:a,py:o,pz:s}=this,c=n.ZERO,l=n.ZERO,u=n.ZERO,d=n.mul(a,a),f=n.mul(o,o),p=n.mul(s,s),m=n.mul(a,o);return m=n.add(m,m),u=n.mul(a,s),u=n.add(u,u),c=n.mul(e,u),l=n.mul(i,p),l=n.add(c,l),c=n.sub(f,l),l=n.add(f,l),l=n.mul(c,l),c=n.mul(m,c),u=n.mul(i,u),p=n.mul(e,p),m=n.sub(d,p),m=n.mul(e,m),m=n.add(m,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,p),d=n.mul(d,m),l=n.add(l,d),p=n.mul(o,s),p=n.add(p,p),d=n.mul(p,m),c=n.sub(c,d),u=n.mul(p,f),u=n.add(u,u),u=n.add(u,u),new h(c,l,u)}add(e){f(e);let{px:r,py:i,pz:a}=this,{px:o,py:s,pz:c}=e,l=n.ZERO,u=n.ZERO,d=n.ZERO,p=t.a,m=n.mul(t.b,_l),g=n.mul(r,o),_=n.mul(i,s),v=n.mul(a,c),y=n.add(r,i),b=n.add(o,s);y=n.mul(y,b),b=n.add(g,_),y=n.sub(y,b),b=n.add(r,a);let x=n.add(o,c);return b=n.mul(b,x),x=n.add(g,v),b=n.sub(b,x),x=n.add(i,a),l=n.add(s,c),x=n.mul(x,l),l=n.add(_,v),x=n.sub(x,l),d=n.mul(p,b),l=n.mul(m,v),d=n.add(l,d),l=n.sub(_,d),d=n.add(_,d),u=n.mul(l,d),_=n.add(g,g),_=n.add(_,g),v=n.mul(p,v),b=n.mul(m,b),_=n.add(_,v),v=n.sub(g,v),v=n.mul(p,v),b=n.add(b,v),g=n.mul(_,b),u=n.add(u,g),g=n.mul(x,b),l=n.mul(y,l),l=n.sub(l,g),g=n.mul(y,_),d=n.mul(x,d),d=n.add(d,g),new h(l,u,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(h.ZERO)}wNAF(e){return v.wNAFCached(this,e,h.normalizeZ)}multiplyUnsafe(e){let{endo:r,n:i}=t;nc(`scalar`,e,ml,i);let a=h.ZERO;if(e===ml)return a;if(this.is0()||e===hl)return this;if(!r||v.hasPrecomputes(this))return v.wNAFCachedUnsafe(this,e,h.normalizeZ);let{k1neg:o,k1:s,k2neg:c,k2:l}=r.splitScalar(e),u=a,d=a,f=this;for(;s>ml||l>ml;)s&hl&&(u=u.add(f)),l&hl&&(d=d.add(f)),f=f.double(),s>>=hl,l>>=hl;return o&&(u=u.negate()),c&&(d=d.negate()),d=new h(n.mul(d.px,r.beta),d.py,d.pz),u.add(d)}multiply(e){let{endo:r,n:i}=t;nc(`scalar`,e,hl,i);let a,o;if(r){let{k1neg:t,k1:i,k2neg:s,k2:c}=r.splitScalar(e),{p:l,f:u}=this.wNAF(i),{p:d,f}=this.wNAF(c);l=v.constTimeNegate(t,l),d=v.constTimeNegate(s,d),d=new h(n.mul(d.px,r.beta),d.py,d.pz),a=l.add(d),o=u.add(f)}else{let{p:t,f:n}=this.wNAF(e);a=t,o=n}return h.normalizeZ([a,o])[0]}multiplyAndAddUnsafe(e,t,n){let r=h.BASE,i=(e,t)=>t===ml||t===hl||!e.equals(r)?e.multiplyUnsafe(t):e.multiply(t),a=i(this,t).add(i(e,n));return a.is0()?void 0:a}toAffine(e){return p(this,e)}isTorsionFree(){let{h:e,isTorsionFree:n}=t;if(e===hl)return!0;if(n)return n(h,this);throw Error(`isTorsionFree() has not been declared for the elliptic curve`)}clearCofactor(){let{h:e,clearCofactor:n}=t;return e===hl?this:n?n(h,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return Hs(`isCompressed`,e),this.assertValidity(),i(h,this,e)}toHex(e=!0){return Hs(`isCompressed`,e),Gs(this.toRawBytes(e))}}h.BASE=new h(t.Gx,t.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);let{endo:g,nBitLength:_}=t,v=Xc(h,g?Math.ceil(_/2):_);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:d,weierstrassEquation:o,isWithinCurveOrder:u}}function cl(e){let t=Qc(e);return ac(t,{hash:`hash`,hmac:`function`,randomBytes:`function`},{bits2int:`function`,bits2int_modN:`function`,lowS:`boolean`}),Object.freeze({lowS:!0,...t})}function ll(e){let t=cl(e),{Fp:n,n:r,nByteLength:i,nBitLength:a}=t,o=n.BYTES+1,s=2*n.BYTES+1;function c(e){return vc(e,r)}function l(e){return bc(e,r)}let{ProjectivePoint:u,normPrivateKeyToScalar:d,weierstrassEquation:f,isWithinCurveOrder:p}=sl({...t,toBytes(e,t,r){let i=t.toAffine(),a=n.toBytes(i.x),o=$s;return Hs(`isCompressed`,r),r?o(Uint8Array.from([t.hasEvenY()?2:3]),a):o(Uint8Array.from([4]),a,n.toBytes(i.y))},fromBytes(e){let t=e.length,r=e[0],i=e.subarray(1);if(t===o&&(r===2||r===3)){let e=Js(i);if(!tc(e,hl,n.ORDER))throw Error(`Point is not on curve`);let t=f(e),a;try{a=n.sqrt(t)}catch(e){let t=e instanceof Error?`: `+e.message:``;throw Error(`Point is not on curve`+t)}let o=(a&hl)===hl;return(r&1)==1!==o&&(a=n.neg(a)),{x:e,y:a}}else if(t===s&&r===4){let e=n.fromBytes(i.subarray(0,n.BYTES)),t=n.fromBytes(i.subarray(n.BYTES,2*n.BYTES));return{x:e,y:t}}else{let e=o,n=s;throw Error(`invalid Point, expected length of `+e+`, or uncompressed `+n+`, got `+t)}}});function m(e){let t=r>>hl;return e>t}function h(e){return m(e)?c(-e):e}let g=(e,t,n)=>Js(e.slice(t,n));class _{constructor(e,t,n){nc(`r`,e,hl,r),nc(`s`,t,hl,r),this.r=e,this.s=t,n!=null&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){let t=i;return e=Qs(`compactSignature`,e,t*2),new _(g(e,0,t),g(e,t,2*t))}static fromDER(e){let{r:t,s:n}=pl.toSig(Qs(`DER`,e));return new _(t,n)}assertValidity(){}addRecoveryBit(e){return new _(this.r,this.s,e)}recoverPublicKey(e){let{r,s:i,recovery:a}=this,o=C(Qs(`msgHash`,e));if(a==null||![0,1,2,3].includes(a))throw Error(`recovery id invalid`);let s=a===2||a===3?r+t.n:r;if(s>=n.ORDER)throw Error(`recovery id 2 or 3 invalid`);let d=a&1?`03`:`02`,f=u.fromHex(d+ol(s,n.BYTES)),p=l(s),m=c(-o*p),h=c(i*p),g=u.BASE.multiplyAndAddUnsafe(f,m,h);if(!g)throw Error(`point at infinify`);return g.assertValidity(),g}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new _(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return qs(this.toDERHex())}toDERHex(){return pl.hexFromSig(this)}toCompactRawBytes(){return qs(this.toCompactHex())}toCompactHex(){let e=i;return ol(this.r,e)+ol(this.s,e)}}let v={isValidPrivateKey(e){try{return d(e),!0}catch{return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{let e=Mc(t.n);return Nc(t.randomBytes(e),t.n)},precompute(e=8,t=u.BASE){return t._setWindowSize(e),t.multiply(BigInt(3)),t}};function y(e,t=!0){return u.fromPrivateKey(e).toRawBytes(t)}function b(e){if(typeof e==`bigint`)return!1;if(e instanceof u)return!0;let r=Qs(`key`,e).length,a=n.BYTES,o=a+1,s=2*a+1;if(!(t.allowedPrivateKeyLengths||i===o))return r===o||r===s}function x(e,t,n=!0){if(b(e)===!0)throw Error(`first arg must be private key`);if(b(t)===!1)throw Error(`second arg must be public key`);return u.fromHex(t).multiply(d(e)).toRawBytes(n)}let S=t.bits2int||function(e){if(e.length>8192)throw Error(`input is too large`);let t=Js(e),n=e.length*8-a;return n>0?t>>BigInt(n):t},C=t.bits2int_modN||function(e){return c(S(e))},w=pc(a);function ee(e){return nc(`num < 2^`+a,e,ml,w),Xs(e,i)}function te(e,r,i=ne){if([`recovered`,`canonical`].some(e=>e in i))throw Error(`sign() legacy options not supported`);let{hash:a,randomBytes:o}=t,{lowS:s,prehash:f,extraEntropy:g}=i;s??=!0,e=Qs(`msgHash`,e),il(i),f&&(e=Qs(`prehashed msgHash`,a(e)));let v=C(e),y=d(r),b=[ee(y),ee(v)];if(g!=null&&g!==!1){let e=g===!0?o(n.BYTES):g;b.push(Qs(`extraEntropy`,e))}let x=$s(...b),w=v;function te(e){let t=S(e);if(!p(t))return;let n=l(t),r=u.BASE.multiply(t).toAffine(),i=c(r.x);if(i===ml)return;let a=c(n*c(w+i*y));if(a===ml)return;let o=(r.x===i?0:2)|Number(r.y&hl),d=a;return s&&m(a)&&(d=h(a),o^=1),new _(i,d,o)}return{seed:x,k2sig:te}}let ne={lowS:t.lowS,prehash:!1},re={lowS:t.lowS,prehash:!1};function ie(e,n,r=ne){let{seed:i,k2sig:a}=te(e,n,r),o=t;return ic(o.hash.outputLen,o.nByteLength,o.hmac)(i,a)}u.BASE._setWindowSize(8);function ae(e,n,r,i=re){let a=e;n=Qs(`msgHash`,n),r=Qs(`publicKey`,r);let{lowS:o,prehash:s,format:d}=i;if(il(i),`strict`in i)throw Error(`options.strict was renamed to lowS`);if(d!==void 0&&d!==`compact`&&d!==`der`)throw Error(`format must be compact or der`);let f=typeof a==`string`||Bs(a),p=!f&&!d&&typeof a==`object`&&!!a&&typeof a.r==`bigint`&&typeof a.s==`bigint`;if(!f&&!p)throw Error(`invalid signature, expected Uint8Array, hex string or Signature instance`);let m,h;try{if(p&&(m=new _(a.r,a.s)),f){try{d!==`compact`&&(m=_.fromDER(a))}catch(e){if(!(e instanceof pl.Err))throw e}!m&&d!==`der`&&(m=_.fromCompact(a))}h=u.fromHex(r)}catch{return!1}if(!m||o&&m.hasHighS())return!1;s&&(n=t.hash(n));let{r:g,s:v}=m,y=C(n),b=l(v),x=c(y*b),S=c(g*b),w=u.BASE.multiplyAndAddUnsafe(h,x,S)?.toAffine();return w?c(w.x)===g:!1}return{CURVE:t,getPublicKey:y,getSharedSecret:x,sign:ie,verify:ae,ProjectivePoint:u,Signature:_,utils:v}}function ul(e,t){let n=e.ORDER,r=ml;for(let e=n-hl;e%gl===ml;e/=gl)r+=hl;let i=r,a=gl<{let r=d,a=e.pow(n,l),o=e.sqr(a);o=e.mul(o,n);let s=e.mul(t,o);s=e.pow(s,c),s=e.mul(s,a),a=e.mul(s,n),o=e.mul(s,t);let p=e.mul(o,a);s=e.pow(p,u);let m=e.eql(s,e.ONE);a=e.mul(o,f),s=e.mul(p,r),o=e.cmov(a,o,m),p=e.cmov(s,p,m);for(let t=i;t>hl;t--){let n=t-gl;n=gl<{let a=e.sqr(i),o=e.mul(t,i);a=e.mul(a,o);let s=e.pow(a,n);s=e.mul(s,o);let c=e.mul(s,r),l=e.mul(e.sqr(s),i),u=e.eql(l,t),d=e.cmov(c,s,u);return{isValid:u,value:d}}}return p}function dl(e,t){if(Tc(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw Error(`mapToCurveSimpleSWU: invalid opts`);let n=ul(e,t.Z);if(!e.isOdd)throw Error(`Fp.isOdd is not implemented!`);return r=>{let i,a,o,s,c,l,u,d;i=e.sqr(r),i=e.mul(i,t.Z),a=e.sqr(i),a=e.add(a,i),o=e.add(a,e.ONE),o=e.mul(o,t.B),s=e.cmov(t.Z,e.neg(a),!e.eql(a,e.ZERO)),s=e.mul(s,t.A),a=e.sqr(o),l=e.sqr(s),c=e.mul(l,t.A),a=e.add(a,c),a=e.mul(a,o),l=e.mul(l,s),c=e.mul(l,t.B),a=e.add(a,c),u=e.mul(i,o);let{isValid:f,value:p}=n(a,l);d=e.mul(i,r),d=e.mul(d,p),u=e.cmov(u,o,f),d=e.cmov(d,p,f);let m=e.isOdd(r)===e.isOdd(d);d=e.cmov(e.neg(d),d,m);let h=Dc(e,[s],!0)[0];return u=e.mul(u,h),{x:u,y:d}}}var fl,pl,ml,hl,gl,_l,vl,yl=o((()=>{rl(),Hc(),_c(),fl=class extends Error{constructor(e=``){super(e)}},pl={Err:fl,_tlv:{encode:(e,t)=>{let{Err:n}=pl;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length&1)throw new n(`tlv.encode: unpadded data`);let r=t.length/2,i=Us(r);if(i.length/2&128)throw new n(`tlv.encode: long form length too big`);let a=r>127?Us(i.length/2|128):``;return Us(e)+a+i+t},decode(e,t){let{Err:n}=pl,r=0;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length<2||t[r++]!==e)throw new n(`tlv.decode: wrong tlv`);let i=t[r++],a=!!(i&128),o=0;if(!a)o=i;else{let e=i&127;if(!e)throw new n(`tlv.decode(long): indefinite length not supported`);if(e>4)throw new n(`tlv.decode(long): byte length is too big`);let a=t.subarray(r,r+e);if(a.length!==e)throw new n(`tlv.decode: length bytes not complete`);if(a[0]===0)throw new n(`tlv.decode(long): zero leftmost byte`);for(let e of a)o=o<<8|e;if(r+=e,o<128)throw new n(`tlv.decode(long): not minimal encoding`)}let s=t.subarray(r,r+o);if(s.length!==o)throw new n(`tlv.decode: wrong value length`);return{v:s,l:t.subarray(r+o)}}},_int:{encode(e){let{Err:t}=pl;if(eRs(e,t,Dr(...n)),randomBytes:kr}}function xl(e,t){let n=t=>ll({...e,...bl(t)});return{...n(t),create:n}}var Sl=o((()=>{zs(),Nr(),yl()}));function Cl(e,t){if(Tl(e),Tl(t),e<0||e>=1<<8*t)throw Error(`invalid I2OSP input: `+e);let n=Array.from({length:t}).fill(0);for(let r=t-1;r>=0;r--)n[r]=e&255,e>>>=8;return new Uint8Array(n)}function wl(e,t){let n=new Uint8Array(e.length);for(let r=0;r255&&(t=r($s(ec(`H2C-OVERSIZE-DST-`),t)));let{outputLen:i,blockLen:a}=r,o=Math.ceil(n/i);if(n>65535||o>255)throw Error(`expand_message_xmd: invalid lenInBytes`);let s=$s(t,Cl(t.length,1)),c=Cl(0,a),l=Cl(n,2),u=Array(o),d=r($s(c,e,l,Cl(0,1),s));u[0]=r($s(d,Cl(1,1),s));for(let e=1;e<=o;e++){let t=[wl(d,u[e-1]),Cl(e+1,1),s];u[e]=r($s(...t))}return $s(...u).slice(0,n)}function Dl(e,t,n,r,i){if(Vs(e),Vs(t),Tl(n),t.length>255){let e=Math.ceil(2*r/8);t=i.create({dkLen:e}).update(ec(`H2C-OVERSIZE-DST-`)).update(t).digest()}if(n>65535||t.length>255)throw Error(`expand_message_xof: invalid lenInBytes`);return i.create({dkLen:n}).update(e).update(Cl(n,2)).update(t).update(Cl(t.length,1)).digest()}function Ol(e,t,n){ac(n,{DST:`stringOrUint8Array`,p:`bigint`,m:`isSafeInteger`,k:`isSafeInteger`,hash:`hash`});let{p:r,k:i,m:a,hash:o,expand:s,DST:c}=n;Vs(e),Tl(t);let l=typeof c==`string`?ec(c):c,u=r.toString(2).length,d=Math.ceil((u+i)/8),f=t*a*d,p;if(s===`xmd`)p=El(e,l,f,o);else if(s===`xof`)p=Dl(e,l,f,i,o);else if(s===`_internal_pass`)p=e;else throw Error(`expand must be "xmd" or "xof"`);let m=Array(t);for(let e=0;eArray.from(e).reverse());return(t,r)=>{let[i,a,o,s]=n.map(n=>n.reduce((n,r)=>e.add(e.mul(n,t),r))),[c,l]=Dc(e,[a,s],!0);return t=e.mul(i,c),r=e.mul(r,e.mul(o,l)),{x:t,y:r}}}function Al(e,t,n){if(typeof t!=`function`)throw Error(`mapToCurve() must be defined`);function r(n){return e.fromAffine(t(n))}function i(t){let n=t.clearCofactor();return n.equals(e.ZERO)?e.ZERO:(n.assertValidity(),n)}return{defaults:n,hashToCurve(e,t){let a=Ol(e,2,{...n,DST:n.DST,...t}),o=r(a[0]),s=r(a[1]);return i(o.add(s))},encodeToCurve(e,t){let a=Ol(e,1,{...n,DST:n.encodeDST,...t});return i(r(a[0]))},mapToCurve(e){if(!Array.isArray(e))throw Error(`expected array of bigints`);for(let t of e)if(typeof t!=`bigint`)throw Error(`expected array of bigints`);return i(r(e))}}}var jl,Ml=o((()=>{Hc(),_c(),jl=Js})),Nl=c({encodeToCurve:()=>lu,hashToCurve:()=>cu,schnorr:()=>iu,secp256k1:()=>Yl,secp256k1_hasher:()=>su});function Pl(e){let t=Hl,n=BigInt(3),r=BigInt(6),i=BigInt(11),a=BigInt(22),o=BigInt(23),s=BigInt(44),c=BigInt(88),l=e*e*e%t,u=l*l*e%t,d=yc(u,n,t)*u%t,f=yc(d,n,t)*u%t,p=yc(f,Kl,t)*l%t,m=yc(p,i,t)*p%t,h=yc(m,a,t)*m%t,g=yc(h,s,t)*h%t,_=yc(g,c,t)*g%t,v=yc(_,s,t)*h%t,y=yc(v,n,t)*u%t,b=yc(y,o,t)*m%t,x=yc(b,r,t)*l%t,S=yc(x,Kl,t);if(!Jl.eql(Jl.sqr(S),e))throw Error(`Cannot find square root`);return S}function Fl(e,...t){let n=Xl[e];if(n===void 0){let t=Ns(Uint8Array.from(e,e=>e.charCodeAt(0)));n=$s(t,t),Xl[e]=n}return Ns($s(n,...t))}function Il(e){let t=Yl.utils.normPrivateKeyToScalar(e),n=tu.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:eu(-t),bytes:Zl(n)}}function Ll(e){nc(`x`,e,Gl,Hl);let t=$l(e*e),n=$l(t*e+BigInt(7)),r=Pl(n);r%Kl!==Wl&&(r=$l(-r));let i=new tu(e,r,Gl);return i.assertValidity(),i}function Rl(...e){return eu(ru(Fl(`BIP0340/challenge`,...e)))}function zl(e){return Il(e).bytes}function Bl(e,t,n=kr(32)){let r=Qs(`message`,e),{bytes:i,scalar:a}=Il(t),o=Qs(`auxRand`,n,32),s=Ql(a^ru(Fl(`BIP0340/aux`,o))),c=Fl(`BIP0340/nonce`,s,i,r),l=eu(ru(c));if(l===Wl)throw Error(`sign failed: k is zero`);let{bytes:u,scalar:d}=Il(l),f=Rl(u,i,r),p=new Uint8Array(64);if(p.set(u,0),p.set(Ql(eu(d+f*a)),32),!Vl(p,r,i))throw Error(`sign: Invalid signature produced`);return p}function Vl(e,t,n){let r=Qs(`signature`,e,64),i=Qs(`message`,t),a=Qs(`publicKey`,n,32);try{let e=Ll(ru(a)),t=ru(r.subarray(0,32));if(!tc(t,Gl,Hl))return!1;let n=ru(r.subarray(32,64));if(!tc(n,Gl,Ul))return!1;let o=Rl(Ql(t),Zl(e),i),s=nu(e,n,eu(-o));return!(!s||!s.hasEvenY()||s.toAffine().x!==t)}catch{return!1}}var Hl,Ul,Wl,Gl,Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu,tu,nu,ru,iu,au,ou,su,cu,lu,uu=o((()=>{Is(),Nr(),Sl(),Ml(),Hc(),_c(),yl(),Hl=BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f`),Ul=BigInt(`0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141`),Wl=BigInt(0),Gl=BigInt(1),Kl=BigInt(2),ql=(e,t)=>(e+t/Kl)/t,Jl=Ac(Hl,void 0,void 0,{sqrt:Pl}),Yl=xl({a:Wl,b:BigInt(7),Fp:Jl,n:Ul,Gx:BigInt(`55066263022277343669578718895168534326250603453777594175500187360389116729240`),Gy:BigInt(`32670510020758816978083085130507043184471273380659243275938904335757337482424`),h:BigInt(1),lowS:!0,endo:{beta:BigInt(`0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee`),splitScalar:e=>{let t=Ul,n=BigInt(`0x3086d221a7d46bcde86c90e49284eb15`),r=-Gl*BigInt(`0xe4437ed6010e88286f547fa90abfe4c3`),i=BigInt(`0x114ca50f7a8e2f3f657c1108d9d44cfd8`),a=n,o=BigInt(`0x100000000000000000000000000000000`),s=ql(a*e,t),c=ql(-r*e,t),l=vc(e-s*n-c*i,t),u=vc(-s*r-c*a,t),d=l>o,f=u>o;if(d&&(l=t-l),f&&(u=t-u),l>o||u>o)throw Error(`splitScalar: Endomorphism failed, k=`+e);return{k1neg:d,k1:l,k2neg:f,k2:u}}}},Ns),Xl={},Zl=e=>e.toRawBytes(!0).slice(1),Ql=e=>Xs(e,32),$l=e=>vc(e,Hl),eu=e=>vc(e,Ul),tu=(()=>Yl.ProjectivePoint)(),nu=(e,t,n)=>tu.BASE.multiplyAndAddUnsafe(e,t,n),ru=Js,iu=(()=>({getPublicKey:zl,sign:Bl,verify:Vl,utils:{randomPrivateKey:Yl.utils.randomPrivateKey,lift_x:Ll,pointToBytes:Zl,numberToBytesBE:Xs,bytesToNumberBE:Js,taggedHash:Fl,mod:vc}}))(),au=(()=>kl(Jl,[[`0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7`,`0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581`,`0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262`,`0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c`],[`0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b`,`0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14`,`0x0000000000000000000000000000000000000000000000000000000000000001`],[`0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c`,`0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3`,`0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931`,`0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84`],[`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b`,`0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573`,`0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f`,`0x0000000000000000000000000000000000000000000000000000000000000001`]].map(e=>e.map(e=>BigInt(e)))))(),ou=(()=>dl(Jl,{A:BigInt(`0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533`),B:BigInt(`1771`),Z:Jl.create(BigInt(`-11`))}))(),su=(()=>Al(Yl.ProjectivePoint,e=>{let{x:t,y:n}=ou(Jl.create(e[0]));return au(t,n)},{DST:`secp256k1_XMD:SHA-256_SSWU_RO_`,encodeDST:`secp256k1_XMD:SHA-256_SSWU_NU_`,p:Jl.ORDER,m:1,k:128,expand:`xmd`,hash:Ns}))(),cu=(()=>su.hashToCurve)(),lu=(()=>su.encodeToCurve)()}));Pt(),It(),Dn(),A(),ms();async function du({hash:e,signature:t}){let n=Nt(e)?e:On(e),{secp256k1:r}=await ps(async()=>{let{secp256k1:e}=await Promise.resolve().then(()=>(uu(),Nl));return{secp256k1:e}},void 0);return`0x${(()=>{if(typeof t==`object`&&`r`in t&&`s`in t){let{r:e,s:n,v:i,yParity:a}=t,o=fu(Number(a??i));return new r.Signature(wn(e),wn(n)).addRecoveryBit(o)}let e=Nt(t)?t:On(t);if(Ft(e)!==65)throw Error(`invalid signature length`);let n=En(`0x${e.slice(130)}`),i=fu(n);return r.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(i)})().recoverPublicKey(n.substring(2)).toHex(!1)}`}function fu(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw Error(`Invalid yParityOrV value`)}async function pu({hash:e,signature:t}){return ls(await du({hash:e,signature:t}))}O(),ya(),Hn(),A();function M(e,t=`hex`){let n=N(e),r=_a(new Uint8Array(n.length));return n.encode(r),t===`hex`?An(r.bytes):r.bytes}function N(e){return Array.isArray(e)?mu(e.map(e=>N(e))):hu(e)}function mu(e){let t=e.reduce((e,t)=>e+t.length,0),n=gu(t);return{length:(()=>t<=55?1+t:1+n+t)(),encode(r){t<=55?r.pushByte(192+t):(r.pushByte(247+n),n===1?r.pushUint8(t):n===2?r.pushUint16(t):n===3?r.pushUint24(t):r.pushUint32(t));for(let{encode:t}of e)t(r)}}}function hu(e){let t=typeof e==`string`?Ln(e):e,n=gu(t.length);return{length:(()=>t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length)(),encode(e){t.length===1&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),n===1?e.pushUint8(t.length):n===2?e.pushUint16(t.length):n===3?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}function gu(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new D(`Length is too large.`)}Di(),Hn(),A(),ei();function _u(e){let{chainId:t,nonce:n,to:r}=e,i=e.contractAddress??e.address,a=$r(Ei([`0x05`,M([t?k(t):`0x`,i,n?k(n):`0x`])]));return r===`bytes`?Ln(a):a}async function vu(e){let{authorization:t,signature:n}=e;return pu({hash:_u(t),signature:n??t})}Xa(),Qa(),O(),ho();var yu=class extends D{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:c,nonce:l,to:u,value:d}){let f=io({from:t?.address,to:u,value:d!==void 0&&`${Ya(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${Za(o)} gwei`,maxFeePerGas:s!==void 0&&`${Za(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${Za(c)} gwei`,nonce:l});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages,` `]:[],`Estimate Gas Arguments:`,f].filter(Boolean),name:`EstimateGasExecutionError`}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},bu,xu,Su,Cu,wu,Tu,Eu,Du,Ou,ku,Au,ju,Mu=o((()=>{Qa(),O(),bu=class extends D{constructor({cause:e,message:t}={}){let n=t?.replace(`execution reverted: `,``)?.replace(`execution reverted`,``);super(`Execution reverted ${n?`with reason: ${n}`:`for an unknown reason`}.`,{cause:e,name:`ExecutionRevertedError`})}},Object.defineProperty(bu,`code`,{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(bu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/}),xu=class extends D{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${Za(t)} gwei`:``}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:`FeeCapTooHighError`})}},Object.defineProperty(xu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/}),Su=class extends D{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${Za(t)}`:``} gwei) cannot be lower than the block base fee.`,{cause:e,name:`FeeCapTooLowError`})}},Object.defineProperty(Su,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/}),Cu=class extends D{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:``}is higher than the next one expected.`,{cause:e,name:`NonceTooHighError`})}},Object.defineProperty(Cu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/}),wu=class extends D{constructor({cause:e,nonce:t}={}){super([`Nonce provided for the transaction ${t?`(${t}) `:``}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` +`),{cause:e,name:`NonceTooLowError`})}},Object.defineProperty(wu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/}),Tu=class extends D{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:``}exceeds the maximum allowed nonce.`,{cause:e,name:`NonceMaxValueError`})}},Object.defineProperty(Tu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/}),Eu=class extends D{constructor({cause:e}={}){super([`The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.`].join(` +`),{cause:e,metaMessages:[`This error could arise when the account does not have enough funds to:`,` - pay for the total gas fee,`,` - pay for the value to send.`,` `,"The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:`InsufficientFundsError`})}},Object.defineProperty(Eu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/}),Du=class extends D{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:``}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:`IntrinsicGasTooHighError`})}},Object.defineProperty(Du,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/}),Ou=class extends D{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:``}provided for the transaction is too low.`,{cause:e,name:`IntrinsicGasTooLowError`})}},Object.defineProperty(Ou,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/}),ku=class extends D{constructor({cause:e}){super(`The transaction type is not supported for this chain.`,{cause:e,name:`TransactionTypeNotSupportedError`})}},Object.defineProperty(ku,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/}),Au=class extends D{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${Za(t)} gwei`:``}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Za(n)} gwei`:``}).`].join(` +`),{cause:e,name:`TipAboveFeeCapError`})}},Object.defineProperty(Au,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/}),ju=class extends D{constructor({cause:e}){super(`An error occurred while executing: ${e?.shortMessage}`,{cause:e,name:`UnknownNodeError`})}}}));function Nu(e,t){let n=(e.details||``).toLowerCase(),r=e instanceof D?e.walk(e=>e?.code===bu.code):e;return r instanceof D?new bu({cause:e,message:r.details}):bu.nodeMessage.test(n)?new bu({cause:e,message:e.details}):xu.nodeMessage.test(n)?new xu({cause:e,maxFeePerGas:t?.maxFeePerGas}):Su.nodeMessage.test(n)?new Su({cause:e,maxFeePerGas:t?.maxFeePerGas}):Cu.nodeMessage.test(n)?new Cu({cause:e,nonce:t?.nonce}):wu.nodeMessage.test(n)?new wu({cause:e,nonce:t?.nonce}):Tu.nodeMessage.test(n)?new Tu({cause:e,nonce:t?.nonce}):Eu.nodeMessage.test(n)?new Eu({cause:e}):Du.nodeMessage.test(n)?new Du({cause:e,gas:t?.gas}):Ou.nodeMessage.test(n)?new Ou({cause:e,gas:t?.gas}):ku.nodeMessage.test(n)?new ku({cause:e}):Au.nodeMessage.test(n)?new Au({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new ju({cause:e})}var Pu=o((()=>{O(),Mu()}));Mu(),Pu();function Fu(e,{docsPath:t,...n}){let r=(()=>{let t=Nu(e,n);return t instanceof ju?e:t})();return new yu(r,{docsPath:t,...n})}function Iu(e,{format:t}){if(!t)return{};let n={};function r(t){let i=Object.keys(t);for(let a of i)a in e&&(n[a]=e[a]),t[a]&&typeof t[a]==`object`&&!Array.isArray(t[a])&&r(t[a])}let i=t(e||{});return r(i),n}var Lu=o((()=>{}));function Ru(e,t){return({exclude:n,format:r})=>({exclude:n,format:(e,i)=>{let a=t(e,i);if(n)for(let e of n)delete a[e];return{...a,...r(e,i)}},type:e})}var zu=o((()=>{}));function Bu(e,t){let n={};return e.authorizationList!==void 0&&(n.authorizationList=Vu(e.authorizationList)),e.accessList!==void 0&&(n.accessList=e.accessList),e.blobVersionedHashes!==void 0&&(n.blobVersionedHashes=e.blobVersionedHashes),e.blobs!==void 0&&(typeof e.blobs[0]==`string`?n.blobs=e.blobs:n.blobs=e.blobs.map(e=>An(e))),e.data!==void 0&&(n.data=e.data),e.from!==void 0&&(n.from=e.from),e.gas!==void 0&&(n.gas=k(e.gas)),e.gasPrice!==void 0&&(n.gasPrice=k(e.gasPrice)),e.maxFeePerBlobGas!==void 0&&(n.maxFeePerBlobGas=k(e.maxFeePerBlobGas)),e.maxFeePerGas!==void 0&&(n.maxFeePerGas=k(e.maxFeePerGas)),e.maxPriorityFeePerGas!==void 0&&(n.maxPriorityFeePerGas=k(e.maxPriorityFeePerGas)),e.nonce!==void 0&&(n.nonce=k(e.nonce)),e.to!==void 0&&(n.to=e.to),e.type!==void 0&&(n.type=Hu[e.type]),e.value!==void 0&&(n.value=k(e.value)),n}function Vu(e){return e.map(e=>({address:e.address,r:e.r?k(BigInt(e.r)):e.r,s:e.s?k(BigInt(e.s)):e.s,chainId:k(e.chainId),nonce:k(e.nonce),...e.yParity===void 0?{}:{yParity:k(e.yParity)},...e.v!==void 0&&e.yParity===void 0?{v:k(e.v)}:{}}))}var Hu,Uu,Wu=o((()=>{A(),zu(),Hu={legacy:`0x0`,eip2930:`0x1`,eip1559:`0x2`,eip4844:`0x3`,eip7702:`0x4`},Uu=Ru(`transactionRequest`,Bu)}));function Gu(e){if(!(!e||e.length===0))return e.reduce((e,{slot:t,value:n})=>{if(t.length!==66)throw new un({size:t.length,targetSize:66,type:`hex`});if(n.length!==66)throw new un({size:n.length,targetSize:66,type:`hex`});return e[t]=n,e},{})}function Ku(e){let{balance:t,nonce:n,state:r,stateDiff:i,code:a}=e,o={};if(a!==void 0&&(o.code=a),t!==void 0&&(o.balance=k(t)),n!==void 0&&(o.nonce=k(n)),r!==void 0&&(o.state=Gu(r)),i!==void 0){if(o.state)throw new no;o.stateDiff=Gu(i)}return o}function qu(e){if(!e)return;let t={};for(let{address:n,...r}of e){if(!bi(n,{strict:!1}))throw new fi({address:n});if(t[n])throw new to({address:n});t[n]=Ku(r)}return t}var Ju=o((()=>{pi(),dn(),ro(),Ci(),A()})),Yu,Xu,Zu=o((()=>{2n**(8n-1n)-1n,2n**(16n-1n)-1n,2n**(24n-1n)-1n,2n**(32n-1n)-1n,2n**(40n-1n)-1n,2n**(48n-1n)-1n,2n**(56n-1n)-1n,2n**(64n-1n)-1n,2n**(72n-1n)-1n,2n**(80n-1n)-1n,2n**(88n-1n)-1n,2n**(96n-1n)-1n,2n**(104n-1n)-1n,2n**(112n-1n)-1n,2n**(120n-1n)-1n,2n**(128n-1n)-1n,2n**(136n-1n)-1n,2n**(144n-1n)-1n,2n**(152n-1n)-1n,2n**(160n-1n)-1n,2n**(168n-1n)-1n,2n**(176n-1n)-1n,2n**(184n-1n)-1n,2n**(192n-1n)-1n,2n**(200n-1n)-1n,2n**(208n-1n)-1n,2n**(216n-1n)-1n,2n**(224n-1n)-1n,2n**(232n-1n)-1n,2n**(240n-1n)-1n,2n**(248n-1n)-1n,2n**(256n-1n)-1n,-(2n**(8n-1n)),-(2n**(16n-1n)),-(2n**(24n-1n)),-(2n**(32n-1n)),-(2n**(40n-1n)),-(2n**(48n-1n)),-(2n**(56n-1n)),-(2n**(64n-1n)),-(2n**(72n-1n)),-(2n**(80n-1n)),-(2n**(88n-1n)),-(2n**(96n-1n)),-(2n**(104n-1n)),-(2n**(112n-1n)),-(2n**(120n-1n)),-(2n**(128n-1n)),-(2n**(136n-1n)),-(2n**(144n-1n)),-(2n**(152n-1n)),-(2n**(160n-1n)),-(2n**(168n-1n)),-(2n**(176n-1n)),-(2n**(184n-1n)),-(2n**(192n-1n)),-(2n**(200n-1n)),-(2n**(208n-1n)),-(2n**(216n-1n)),-(2n**(224n-1n)),-(2n**(232n-1n)),-(2n**(240n-1n)),-(2n**(248n-1n)),-(2n**(256n-1n)),Yu=2n**16n-1n,Xu=2n**256n-1n}));function Qu(e){let{account:t,gasPrice:n,maxFeePerGas:r,maxPriorityFeePerGas:i,to:a}=e,o=t?na(t):void 0;if(o&&!bi(o.address))throw new fi({address:o.address});if(a&&!bi(a))throw new fi({address:a});if(n!==void 0&&(r!==void 0||i!==void 0))throw new ao;if(r&&r>Xu)throw new xu({maxFeePerGas:r});if(i&&r&&i>r)throw new Au({maxFeePerGas:r,maxPriorityFeePerGas:i})}var $u=o((()=>{ra(),Zu(),pi(),Mu(),ho(),Ci()}));Qa(),O();var ed=class extends D{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:`BaseFeeScalarError`})}},td=class extends D{constructor(){super(`Chain does not support EIP-1559 fees.`,{name:`Eip1559FeesNotSupportedError`})}},nd=class extends D{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Za(e)} gwei).`,{name:`MaxFeePerGasTooLowError`})}};O();var rd=class extends D{constructor({blockHash:e,blockNumber:t}){let n=`Block`;e&&(n=`Block at hash "${e}"`),t&&(n=`Block at number "${t}"`),super(`${n} could not be found.`,{name:`BlockNotFoundError`})}};Dn(),zu();const id={"0x0":`legacy`,"0x1":`eip2930`,"0x2":`eip1559`,"0x3":`eip4844`,"0x4":`eip7702`};function ad(e,t){let n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?En(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?En(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?id[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=sd(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v==`bigint`){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n==0n?1:0}})(),n.type===`legacy`&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type===`eip2930`&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type===`eip1559`&&delete n.maxFeePerBlobGas,n}const od=Ru(`transaction`,ad);function sd(e){return e.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))}zu();function cd(e,t){let n=(e.transactions??[]).map(e=>typeof e==`string`?e:ad(e));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const ld=Ru(`block`,cd);A();async function ud(e,{blockHash:t,blockNumber:n,blockTag:r=e.experimental_blockTag??`latest`,includeTransactions:i}={}){let a=i??!1,o=n===void 0?void 0:k(n),s=null;if(s=t?await e.request({method:`eth_getBlockByHash`,params:[t,a]},{dedupe:!0}):await e.request({method:`eth_getBlockByNumber`,params:[o||r,a]},{dedupe:!!o}),!s)throw new rd({blockHash:t,blockNumber:n});return(e.chain?.formatters?.block?.format||cd)(s,`getBlock`)}async function dd(e){let t=await e.request({method:`eth_gasPrice`});return BigInt(t)}Dn();async function fd(e,t){let{block:n,chain:r=e.chain,request:i}=t||{};try{let t=r?.fees?.maxPriorityFeePerGas??r?.fees?.defaultPriorityFee;if(typeof t==`function`){let r=n||await E(e,ud,`getBlock`)({}),a=await t({block:r,client:e,request:i});if(a===null)throw Error();return a}if(t!==void 0)return t;let a=await e.request({method:`eth_maxPriorityFeePerGas`});return wn(a)}catch{let[t,r]=await Promise.all([n?Promise.resolve(n):E(e,ud,`getBlock`)({}),E(e,dd,`getGasPrice`)({})]);if(typeof t.baseFeePerGas!=`bigint`)throw new td;let i=r-t.baseFeePerGas;return i<0n?0n:i}}async function pd(e,t){let{block:n,chain:r=e.chain,request:i,type:a=`eip1559`}=t||{},o=await(async()=>typeof r?.fees?.baseFeeMultiplier==`function`?r.fees.baseFeeMultiplier({block:n,client:e,request:i}):r?.fees?.baseFeeMultiplier??1.2)();if(o<1)throw new ed;let s=10**(o.toString().split(`.`)[1]?.length??0),c=e=>e*BigInt(Math.ceil(o*s))/BigInt(s),l=n||await E(e,ud,`getBlock`)({});if(typeof r?.fees?.estimateFeesPerGas==`function`){let t=await r.fees.estimateFeesPerGas({block:n,client:e,multiply:c,request:i,type:a});if(t!==null)return t}if(a===`eip1559`){if(typeof l.baseFeePerGas!=`bigint`)throw new td;let t=typeof i?.maxPriorityFeePerGas==`bigint`?i.maxPriorityFeePerGas:await fd(e,{block:l,chain:r,request:i}),n=c(l.baseFeePerGas);return{maxFeePerGas:i?.maxFeePerGas??n+t,maxPriorityFeePerGas:t}}return{gasPrice:i?.gasPrice??c(await E(e,dd,`getGasPrice`)({}))}}Dn(),A();async function md(e,{address:t,blockTag:n=`latest`,blockNumber:r}){let i=await e.request({method:`eth_getTransactionCount`,params:[t,typeof r==`bigint`?k(r):n]},{dedupe:!!r});return En(i)}Wu(),Hn(),A();function hd(e){let{kzg:t}=e,n=e.to??(typeof e.blobs[0]==`string`?`hex`:`bytes`),r=typeof e.blobs[0]==`string`?e.blobs.map(e=>Ln(e)):e.blobs,i=[];for(let e of r)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return n===`bytes`?i:i.map(e=>An(e))}Hn(),A();function gd(e){let{kzg:t}=e,n=e.to??(typeof e.blobs[0]==`string`?`hex`:`bytes`),r=typeof e.blobs[0]==`string`?e.blobs.map(e=>Ln(e)):e.blobs,i=typeof e.commitments[0]==`string`?e.commitments.map(e=>Ln(e)):e.commitments,a=[];for(let e=0;eAn(e))}Is();const _d=Ns;Pt(),Hn(),A();function vd(e,t){let n=t||`hex`,r=_d(Nt(e,{strict:!1})?Pn(e):e);return n===`bytes`?r:On(r)}A();function yd(e){let{commitment:t,version:n=1}=e,r=e.to??(typeof t==`string`?`hex`:`bytes`),i=vd(t,`bytes`);return i.set([n],0),r===`bytes`?i:An(i)}function bd(e){let{commitments:t,version:n}=e,r=e.to??(typeof t[0]==`string`?`hex`:`bytes`),i=[];for(let e of t)i.push(yd({commitment:e,to:r,version:n}));return i}var xd=6;const Sd=4096,Cd=32*Sd,wd=Cd*xd-1-1*Sd*xd;O();var Td=class extends D{constructor({maxSize:e,size:t}){super(`Blob size is too large.`,{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:`BlobSizeTooLargeError`})}},Ed=class extends D{constructor(){super(`Blob data must not be empty.`,{name:`EmptyBlobError`})}},Dd=class extends D{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:[`Expected: 32`,`Received: ${t}`],name:`InvalidVersionedHashSizeError`})}},Od=class extends D{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: 1`,`Received: ${t}`],name:`InvalidVersionedHashVersionError`})}};ya(),It(),Hn(),A();function kd(e){let t=e.to??(typeof e.data==`string`?`hex`:`bytes`),n=typeof e.data==`string`?Ln(e.data):e.data,r=Ft(n);if(!r)throw new Ed;if(r>761855)throw new Td({maxSize:wd,size:r});let i=[],a=!0,o=0;for(;a;){let e=_a(new Uint8Array(Cd)),t=0;for(;te.bytes):i.map(e=>An(e.bytes))}function Ad(e){let{data:t,kzg:n,to:r}=e,i=e.blobs??kd({data:t,to:r}),a=e.commitments??hd({blobs:i,kzg:n,to:r}),o=e.proofs??gd({blobs:i,commitments:a,kzg:n,to:r}),s=[];for(let e=0;e{if(v.to)return v.to;if(i&&i.length>0)return await vu({authorization:i[0]}).catch(()=>{throw new D("`to` is required. Could not infer from `authorizationList`")})})();Qu(t);let S=e.chain?.formatters?.transactionRequest?.format,C=(S||Bu)({...Iu(v,{format:S}),from:r?.address,accessList:n,authorizationList:i,blobs:a,blobVersionedHashes:o,data:l,gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,to:x,value:g},`estimateGas`);return BigInt(await e.request({method:`eth_estimateGas`,params:b?[C,y??e.experimental_blockTag??`latest`,b]:y?[C,y]:[C]}))}catch(n){throw Fu(n,{...t,account:r,chain:e.chain})}}function Ld(e,t){if(!bi(e,{strict:!1}))throw new fi({address:e});if(!bi(t,{strict:!1}))throw new fi({address:t});return e.toLowerCase()===t.toLowerCase()}var Rd=o((()=>{pi(),Ci()}));function zd(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}function Bd(e){let{abi:t,args:n,functionName:r,data:i}=e,a=t[0];if(r){let e=Qi({abi:t,args:n,name:r});if(!e)throw new Zt(r,{docsPath:Vd});a=e}if(a.type!==`function`)throw new Zt(void 0,{docsPath:Vd});if(!a.outputs)throw new Qt(a.name,{docsPath:Vd});let o=Ta(a.outputs,i);if(o&&o.length>1)return o;if(o&&o.length===1)return o[0]}var Vd,Hd=o((()=>{sn(),La(),ta(),Vd=`/docs/contract/decodeFunctionResult`})),Ud,Wd=o((()=>{Ud=`0.1.1`}));function Gd(){return Ud}var Kd=o((()=>{Wd()}));function qd(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause?qd(e.cause,t):t?null:e}var P,Jd=o((()=>{Kd(),P=class e extends Error{constructor(t,n={}){let r=(()=>{if(n.cause instanceof e){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&`details`in n.cause&&typeof n.cause.details==`string`?n.cause.details:n.cause?.message?n.cause.message:n.details})(),i=(()=>n.cause instanceof e&&n.cause.docsPath||n.docsPath)(),a=`https://oxlib.sh${i??``}`,o=[t||`An error occurred.`,...n.metaMessages?[``,...n.metaMessages]:[],...r||i?[``,r?`Details: ${r}`:void 0,i?`See: ${a}`:void 0]:[]].filter(e=>typeof e==`string`).join(` +`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,`details`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`docs`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`docsPath`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`shortMessage`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),Object.defineProperty(this,`version`,{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Gd()}`}),this.cause=n.cause,this.details=r,this.docs=a,this.docsPath=i,this.shortMessage=t}walk(e){return qd(this,e)}}}));function Yd(e,t){if(bf(e)>t)throw new Pf({givenSize:bf(e),maxSize:t})}function Xd(e,t){if(typeof t==`number`&&t>0&&t>bf(e)-1)throw new Ff({offset:t,position:`start`,size:bf(e)})}function Zd(e,t,n){if(typeof t==`number`&&typeof n==`number`&&bf(e)!==n-t)throw new Ff({offset:n,position:`end`,size:bf(e)})}function F(e){if(e>=ef.zero&&e<=ef.nine)return e-ef.zero;if(e>=ef.A&&e<=ef.F)return e-(ef.A-10);if(e>=ef.a&&e<=ef.f)return e-(ef.a-10)}function Qd(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;if(e.length>r)throw new If({size:e.length,targetSize:r,type:`Bytes`});let i=new Uint8Array(r);for(let t=0;t{Lf(),ef={zero:48,nine:57,A:65,F:70,a:97,f:102}}));function nf(e,t){if(qf(e)>t)throw new rp({givenSize:qf(e),maxSize:t})}function rf(e,t){if(typeof t==`number`&&t>0&&t>qf(e)-1)throw new ip({offset:t,position:`start`,size:qf(e)})}function af(e,t,n){if(typeof t==`number`&&typeof n==`number`&&qf(e)!==n-t)throw new ip({offset:n,position:`end`,size:qf(e)})}function sf(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;let i=e.replace(`0x`,``);if(i.length>r*2)throw new ap({size:Math.ceil(i.length/2),targetSize:r,type:`Hex`});return`0x${i[n===`right`?`padEnd`:`padStart`](r*2,`0`)}`}function cf(e,t={}){let{dir:n=`left`}=t,r=e.replace(`0x`,``),i=0;for(let e=0;e{op()}));function uf(e,t){return JSON.parse(e,(e,n)=>{let r=n;return typeof r==`string`&&r.endsWith(ff)?BigInt(r.slice(0,-9)):typeof t==`function`?t(e,r):r})}function df(e,t,n){return JSON.stringify(e,(e,n)=>typeof t==`function`?t(e,n):typeof n==`bigint`?n.toString()+ff:n,n)}var ff,pf=o((()=>{ff=`#__bigint`}));function mf(e){if(!(e instanceof Uint8Array)&&(!e||typeof e!=`object`||!(`BYTES_PER_ELEMENT`in e)||e.BYTES_PER_ELEMENT!==1||e.constructor.name!==`Uint8Array`))throw new Nf(e)}function hf(e){return e instanceof Uint8Array?e:typeof e==`string`?_f(e):gf(e)}function gf(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function _f(e,t={}){let{size:n}=t,r=e;n&&(nf(e,n),r=Gf(e,n));let i=r.slice(2);i.length%2&&(i=`0${i}`);let a=i.length/2,o=new Uint8Array(a);for(let e=0,t=0;e1||r[0]>1)throw new Mf(r);return!!r[0]}function wf(e,t={}){return Hf(e,t)}function Tf(e,t={}){let{size:n}=t;n!==void 0&&Yd(e,n);let r=Hf(e,t);return Xf(r,t)}function Ef(e,t={}){let{size:n}=t,r=e;return n!==void 0&&(Yd(r,n),r=Of(r)),Af.decode(r)}function Df(e){return $d(e,{dir:`left`})}function Of(e){return $d(e,{dir:`right`})}function kf(e){try{return mf(e),!0}catch{return!1}}var Af,jf,Mf,Nf,Pf,Ff,If,Lf=o((()=>{Jd(),op(),tf(),lf(),pf(),Af=new TextDecoder,jf=new TextEncoder,Mf=class extends P{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.InvalidBytesBooleanError`})}},Nf=class extends P{constructor(e){super(`Value \`${typeof e==`object`?df(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.InvalidBytesTypeError`})}},Pf=class extends P{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.SizeOverflowError`})}},Ff=class extends P{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.SliceOffsetOutOfBoundsError`})}},If=class extends P{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.SizeExceedsPaddingSizeError`})}}}));function Rf(e,t={}){let{strict:n=!1}=t;if(!e||typeof e!=`string`)throw new tp(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e)||!e.startsWith(`0x`))throw new np(e)}function zf(...e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}function Bf(e){return e instanceof Uint8Array?Hf(e):Array.isArray(e)?Hf(new Uint8Array(e)):e}function Vf(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(nf(n,t.size),Wf(n,t.size)):n}function Hf(e,t={}){let n=``;for(let t=0;ta||i>1n;return r<=o?r:r-a-1n}function Xf(e,t={}){let{signed:n,size:r}=t;return!n&&!r?Number(e):Number(Yf(e,t))}function Zf(e,t={}){let{strict:n=!1}=t;try{return Rf(e,{strict:n}),!0}catch{return!1}}var Qf,$f,ep,tp,np,rp,ip,ap,op=o((()=>{Jd(),lf(),pf(),Qf=new TextEncoder,$f=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),ep=class extends P{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number \`${i}\` is not in safe${r?` ${r*8}-bit`:``}${n?` signed`:` unsigned`} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.IntegerOutOfRangeError`})}},tp=class extends P{constructor(e){super(`Value \`${typeof e==`object`?df(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.InvalidHexTypeError`})}},np=class extends P{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.InvalidHexValueError`})}},rp=class extends P{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SizeOverflowError`})}},ip=class extends P{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SliceOffsetOutOfBoundsError`})}},ap=class extends P{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SizeExceedsPaddingSizeError`})}}}));function sp(e){return{address:e.address,amount:I(e.amount),index:I(e.index),validatorIndex:I(e.validatorIndex)}}var cp=o((()=>{op()}));function lp(e){return{...typeof e.baseFeePerGas==`bigint`&&{baseFeePerGas:I(e.baseFeePerGas)},...typeof e.blobBaseFee==`bigint`&&{blobBaseFee:I(e.blobBaseFee)},...typeof e.feeRecipient==`string`&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit==`bigint`&&{gasLimit:I(e.gasLimit)},...typeof e.number==`bigint`&&{number:I(e.number)},...typeof e.prevRandao==`bigint`&&{prevRandao:I(e.prevRandao)},...typeof e.time==`bigint`&&{time:I(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(sp)}}}var up=o((()=>{op(),cp()})),dp,fp,pp,mp,hp,gp=o((()=>{dp=[{inputs:[{components:[{name:`target`,type:`address`},{name:`allowFailure`,type:`bool`},{name:`callData`,type:`bytes`}],name:`calls`,type:`tuple[]`}],name:`aggregate3`,outputs:[{components:[{name:`success`,type:`bool`},{name:`returnData`,type:`bytes`}],name:`returnData`,type:`tuple[]`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`}],fp=[{name:`query`,type:`function`,stateMutability:`view`,inputs:[{type:`tuple[]`,name:`queries`,components:[{type:`address`,name:`sender`},{type:`string[]`,name:`urls`},{type:`bytes`,name:`data`}]}],outputs:[{type:`bool[]`,name:`failures`},{type:`bytes[]`,name:`responses`}]},{name:`HttpError`,type:`error`,inputs:[{type:`uint16`,name:`status`},{type:`string`,name:`message`}]}],pp=[{inputs:[{name:`dns`,type:`bytes`}],name:`DNSDecodingFailed`,type:`error`},{inputs:[{name:`ens`,type:`string`}],name:`DNSEncodingFailed`,type:`error`},{inputs:[],name:`EmptyAddress`,type:`error`},{inputs:[{name:`status`,type:`uint16`},{name:`message`,type:`string`}],name:`HttpError`,type:`error`},{inputs:[],name:`InvalidBatchGatewayResponse`,type:`error`},{inputs:[{name:`errorData`,type:`bytes`}],name:`ResolverError`,type:`error`},{inputs:[{name:`name`,type:`bytes`},{name:`resolver`,type:`address`}],name:`ResolverNotContract`,type:`error`},{inputs:[{name:`name`,type:`bytes`}],name:`ResolverNotFound`,type:`error`},{inputs:[{name:`primary`,type:`string`},{name:`primaryAddress`,type:`bytes`}],name:`ReverseAddressMismatch`,type:`error`},{inputs:[{internalType:`bytes4`,name:`selector`,type:`bytes4`}],name:`UnsupportedResolverProfile`,type:`error`}],[...pp],[...pp],mp=[{name:`isValidSignature`,type:`function`,stateMutability:`view`,inputs:[{name:`hash`,type:`bytes32`},{name:`signature`,type:`bytes`}],outputs:[{name:``,type:`bytes4`}]}],hp=[{inputs:[{name:`_signer`,type:`address`},{name:`_hash`,type:`bytes32`},{name:`_signature`,type:`bytes`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{name:`_signer`,type:`address`},{name:`_hash`,type:`bytes32`},{name:`_signature`,type:`bytes`}],outputs:[{type:`bool`}],stateMutability:`nonpayable`,type:`function`,name:`isValidSig`}]})),_p=o((()=>{})),vp,yp,bp,xp,Sp=o((()=>{vp=`0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe`,yp=`0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe`,bp=`0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572`,xp=`0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033`})),Cp,wp,Tp,Ep,Dp,Op=o((()=>{O(),Cp=class extends D{constructor({blockNumber:e,chain:t,contract:n}){super(`Chain "${t.name}" does not support contract "${n.name}".`,{metaMessages:[`This could be due to any of the following:`,...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:`ChainDoesNotSupportContract`})}},wp=class extends D{constructor({chain:e,currentChainId:t}){super(`The current chain of the wallet (id: ${t}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${t}`,`Expected Chain ID: ${e.id} – ${e.name}`],name:`ChainMismatchError`})}},Tp=class extends D{constructor(){super([`No chain was provided to the request.`,"Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(` +`),{name:`ChainNotFoundError`})}},Ep=class extends D{constructor(){super(`No chain was provided to the Client.`,{name:`ClientChainNotConfiguredError`})}},Dp=class extends D{constructor({chainId:e}){super(typeof e==`number`?`Chain ID "${e}" is invalid.`:`Chain ID is invalid.`,{name:`InvalidChainIdError`})}}}));function kp(e){let{abi:t,args:n,bytecode:r}=e;if(!n||n.length===0)return r;let i=t.find(e=>`type`in e&&e.type===`constructor`);if(!i)throw new Vt({docsPath:Ap});if(!(`inputs`in i)||!i.inputs||i.inputs.length===0)throw new Ht({docsPath:Ap});let a=Li(i.inputs,n);return Ei([r,a])}var Ap,jp=o((()=>{sn(),Di(),Yi(),Ap=`/docs/contract/encodeDeployData`}));function Mp({blockNumber:e,chain:t,contract:n}){let r=t?.contracts?.[n];if(!r)throw new Cp({chain:t,contract:{name:n}});if(e&&r.blockCreated&&r.blockCreated>e)throw new Cp({blockNumber:e,chain:t,contract:{name:n,blockCreated:r.blockCreated}});return r.address}var Np=o((()=>{Op()}));function Pp(e,{docsPath:t,...n}){let r=(()=>{let t=Nu(e,n);return t instanceof ju?e:t})();return new yo(r,{docsPath:t,...n})}var Fp=o((()=>{To(),Mu(),Pu()}));function Ip(){let e=()=>void 0,t=()=>void 0;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Lp=o((()=>{}));function Rp({fn:e,id:t,shouldSplitBatch:n,wait:r=0,sort:i}){let a=async()=>{let t=c();o();let n=t.map(({args:e})=>e);n.length!==0&&e(n).then(e=>{i&&Array.isArray(e)&&e.sort(i);for(let n=0;n{for(let n=0;nzp.delete(t),s=()=>c().map(({args:e})=>e),c=()=>zp.get(t)||[],l=e=>zp.set(t,[...c(),e]);return{flush:o,async schedule(e){let{promise:t,resolve:i,reject:o}=Ip();return n?.([...s(),e])&&a(),c().length>0?(l({args:e,resolve:i,reject:o}),t):(l({args:e,resolve:i,reject:o}),setTimeout(a,r),t)}}}var zp,Bp=o((()=>{Lp(),zp=new Map})),Vp,Hp,Up,Wp=o((()=>{Va(),O(),vo(),Vp=class extends D{constructor({callbackSelector:e,cause:t,data:n,extraData:r,sender:i,urls:a}){super(t.shortMessage||`An error occurred while fetching for an offchain result.`,{cause:t,metaMessages:[...t.metaMessages||[],t.metaMessages?.length?``:[],`Offchain Gateway Call:`,a&&[` Gateway URL(s):`,...a.map(e=>` ${_o(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:`OffchainLookupError`})}},Hp=class extends D{constructor({result:e,url:t}){super(`Offchain gateway response is malformed. Response data must be a hex value.`,{metaMessages:[`Gateway URL: ${_o(t)}`,`Response: ${Ba(e)}`],name:`OffchainLookupResponseMalformedError`})}},Up=class extends D{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`],name:`OffchainLookupSenderMismatchError`})}}}));function Gp(e){let{abi:t,data:n}=e,r=Oi(n,0,4),i=t.find(e=>e.type===`function`&&r===Xi(kt(e)));if(!i)throw new $t(r,{docsPath:`/docs/contract/decodeFunctionData`});return{functionName:i.name,args:`inputs`in i&&i.inputs&&i.inputs.length>0?Ta(i.inputs,Oi(n,4)):void 0}}var Kp=o((()=>{sn(),Ni(),Zi(),La(),Mt()}));function qp(e){let{abi:t,errorName:n,args:r}=e,i=t[0];if(n){let e=Qi({abi:t,args:r,name:n});if(!e)throw new Yt(n,{docsPath:Jp});i=e}if(i.type!==`error`)throw new Yt(void 0,{docsPath:Jp});let a=kt(i),o=Xi(a),s=`0x`;if(r&&r.length>0){if(!i.inputs)throw new Jt(i.name,{docsPath:Jp});s=Li(i.inputs,r)}return Ei([o,s])}var Jp,Yp=o((()=>{sn(),Di(),Zi(),Yi(),Mt(),ta(),Jp=`/docs/contract/encodeErrorResult`}));function Xp(e){let{abi:t,functionName:n,result:r}=e,i=t[0];if(n){let e=Qi({abi:t,name:n});if(!e)throw new Zt(n,{docsPath:Zp});i=e}if(i.type!==`function`)throw new Zt(void 0,{docsPath:Zp});if(!i.outputs)throw new Qt(i.name,{docsPath:Zp});let a=(()=>{if(i.outputs.length===0)return[];if(i.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new an(r)})();return Li(i.outputs,a)}var Zp,Qp=o((()=>{sn(),Yi(),ta(),Zp=`/docs/contract/encodeFunctionResult`}));async function $p(e){let{data:t,ccipRequest:n}=e,{args:[r]}=Gp({abi:fp,data:t}),i=[],a=[];return await Promise.all(r.map(async(e,t)=>{try{a[t]=e.urls.includes(`x-batch-gateway:true`)?await $p({data:e.data,ccipRequest:n}):await n(e),i[t]=!1}catch(e){i[t]=!0,a[t]=em(e)}})),Xp({abi:fp,functionName:`query`,result:[i,a]})}function em(e){return e.name===`HttpRequestError`&&e.status?qp({abi:fp,errorName:`HttpError`,args:[e.status,e.shortMessage]}):qp({abi:[ua],errorName:`Error`,args:[`shortMessage`in e?e.shortMessage:e.message]})}var tm=o((()=>{gp(),fa(),Kp(),Yp(),Qp()})),nm=c({ccipRequest:()=>im,offchainLookup:()=>rm,offchainLookupAbiItem:()=>om,offchainLookupSignature:()=>am});async function rm(e,{blockNumber:t,blockTag:n,data:r,to:i}){let{args:a}=Ra({data:r,abi:[om]}),[o,s,c,l,u]=a,{ccipRead:d}=e,f=d&&typeof d?.request==`function`?d.request:im;try{if(!Ld(i,o))throw new Up({sender:o,to:i});let r=s.includes(`x-batch-gateway:true`)?await $p({data:c,ccipRequest:f}):await f({data:c,sender:o,urls:s}),{data:a}=await cm(e,{blockNumber:t,blockTag:n,data:wi([l,Li([{type:`bytes`},{type:`bytes`}],[r,u])]),to:i});return a}catch(e){throw new Vp({callbackSelector:l,cause:e,data:r,extraData:u,sender:o,urls:s})}}async function im({data:e,sender:t,urls:n}){let r=Error(`An unknown error occurred.`);for(let i=0;i{mm(),Wp(),ko(),za(),Yi(),Rd(),Di(),Pt(),tm(),Va(),am=`0x556f1830`,om={name:`OffchainLookup`,type:`error`,inputs:[{name:`sender`,type:`address`},{name:`urls`,type:`string[]`},{name:`callData`,type:`bytes`},{name:`callbackFunction`,type:`bytes4`},{name:`extraData`,type:`bytes`}]}}));async function cm(e,t){let{account:n=e.account,authorizationList:r,batch:i=!!e.batch?.multicall,blockNumber:a,blockTag:o=e.experimental_blockTag??`latest`,accessList:s,blobs:c,blockOverrides:l,code:u,data:d,factory:f,factoryData:p,gas:m,gasPrice:h,maxFeePerBlobGas:g,maxFeePerGas:_,maxPriorityFeePerGas:v,nonce:y,to:b,value:x,stateOverride:S,...C}=t,w=n?na(n):void 0;if(u&&(f||p))throw new D("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(u&&b)throw new D("Cannot provide both `code` & `to` as parameters.");let ee=u&&d,te=f&&p&&b&&d,ne=ee||te,re=(()=>ee?dm({code:u,data:d}):te?fm({data:d,factory:f,factoryData:p,to:b}):d)();try{Qu(t);let n=(typeof a==`bigint`?k(a):void 0)||o,u=l?lp(l):void 0,d=qu(S),f=e.chain?.formatters?.transactionRequest?.format,p=(f||Bu)({...Iu(C,{format:f}),from:w?.address,accessList:s,authorizationList:r,blobs:c,data:re,gas:m,gasPrice:h,maxFeePerBlobGas:g,maxFeePerGas:_,maxPriorityFeePerGas:v,nonce:y,to:ne?void 0:b,value:x},`call`);if(i&&lm({request:p})&&!d&&!u)try{return await um(e,{...p,blockNumber:a,blockTag:o})}catch(e){if(!(e instanceof Ep)&&!(e instanceof Cp))throw e}let ee=(()=>{let e=[p,n];return d&&u?[...e,d,u]:d?[...e,d]:u?[...e,{},u]:e})(),te=await e.request({method:`eth_call`,params:ee});return te===`0x`?{data:void 0}:{data:te}}catch(n){let r=pm(n),{offchainLookup:i,offchainLookupSignature:a}=await ps(async()=>{let{offchainLookup:e,offchainLookupSignature:t}=await Promise.resolve().then(()=>(sm(),nm));return{offchainLookup:e,offchainLookupSignature:t}},void 0);if(e.ccipRead!==!1&&r?.slice(0,10)===a&&b)return{data:await i(e,{data:r,to:b})};throw ne&&r?.slice(0,10)===`0x101bb98d`?new Co({factory:f}):Pp(n,{...t,account:w,chain:e.chain})}}function lm({request:e}){let{data:t,to:n,...r}=e;return!(!t||t.startsWith(`0x82ad56cb`)||!n||Object.values(r).filter(e=>e!==void 0).length>0)}async function um(e,t){let{batchSize:n=1024,deployless:r=!1,wait:i=0}=typeof e.batch?.multicall==`object`?e.batch.multicall:{},{blockNumber:a,blockTag:o=e.experimental_blockTag??`latest`,data:s,to:c}=t,l=(()=>{if(r)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return Mp({blockNumber:a,chain:e.chain,contract:`multicall3`});throw new Ep})(),u=(typeof a==`bigint`?k(a):void 0)||o,{schedule:d}=Rp({id:`${e.uid}.${u}`,wait:i,shouldSplitBatch(e){return e.reduce((e,{data:t})=>e+(t.length-2),0)>n*2},fn:async t=>{let n=t.map(e=>({allowFailure:!0,callData:e.data,target:e.to})),r=sa({abi:dp,args:[n],functionName:`aggregate3`}),i=await e.request({method:`eth_call`,params:[{...l===null?{data:dm({code:xp,data:r})}:{to:l,data:r}},u]});return Bd({abi:dp,args:[n],functionName:`aggregate3`,data:i||`0x`})}}),[{returnData:f,success:p}]=await d({data:s,to:c});if(!p)throw new wo({data:f});return f===`0x`?{data:void 0}:{data:f}}function dm(e){let{code:t,data:n}=e;return kp({abi:St([`constructor(bytes, bytes)`]),bytecode:vp,args:[t,n]})}function fm(e){let{data:t,factory:n,factoryData:r,to:i}=e;return kp({abi:St([`constructor(address, bytes, address, bytes)`]),bytecode:yp,args:[i,t,n,r]})}function pm(e){if(!(e instanceof D))return;let t=e.walk();return typeof t?.data==`object`?t.data?.data:t.data}var mm=o((()=>{Ot(),up(),ra(),gp(),_p(),Sp(),O(),Op(),To(),Hd(),jp(),ca(),Np(),A(),Fp(),Lu(),Wu(),Bp(),Ju(),$u(),ms()}));Hd(),ca(),mm();async function hm(e,t){let{abi:n,address:r,args:i,functionName:a,...o}=t,s=sa({abi:n,args:i,functionName:a});try{let{data:t}=await E(e,cm,`call`)({...o,data:s,to:r});return Bd({abi:n,args:i,functionName:a,data:t||`0x`})}catch(e){throw cs(e,{abi:n,address:r,args:i,docsPath:`/docs/contract/readContract`,functionName:a})}}const gm=new Map,_m=new Map;var vm=0;function ym(e,t,n){let r=++vm,i=()=>gm.get(e)||[],a=()=>{let t=i();gm.set(e,t.filter(e=>e.id!==r))},o=()=>{let t=i();if(!t.some(e=>e.id===r))return;let n=_m.get(e);if(t.length===1&&n){let e=n();e instanceof Promise&&e.catch(()=>{})}a()},s=i();if(gm.set(e,[...s,{id:r,fns:t}]),s&&s.length>0)return o;let c={};for(let e in t)c[e]=((...t)=>{let n=i();if(n.length!==0)for(let r of n)r.fns[e]?.(...t)});let l=n(c);return typeof l==`function`&&_m.set(e,l),o}async function bm(e){return new Promise(t=>setTimeout(t,e))}function xm(e,{emitOnBegin:t,initialWaitTime:n,interval:r}){let i=!0,a=()=>i=!1;return(async()=>{let o;t&&(o=await e({unpoll:a}));let s=await n?.(o)??r;await bm(s);let c=async()=>{i&&(await e({unpoll:a}),await bm(r),c())};c()})(),a}const Sm=new Map,Cm=new Map;function wm(e){let t=(e,t)=>({clear:()=>t.delete(e),get:()=>t.get(e),set:n=>t.set(e,n)}),n=t(e,Sm),r=t(e,Cm);return{clear:()=>{n.clear(),r.clear()},promise:n,response:r}}async function Tm(e,{cacheKey:t,cacheTime:n=1/0}){let r=wm(t),i=r.response.get();if(i&&n>0&&Date.now()-i.created.getTime()`blockNumber.${e}`;async function Dm(e,{cacheTime:t=e.cacheTime}={}){let n=await Tm(()=>e.request({method:`eth_blockNumber`}),{cacheKey:Em(e.uid),cacheTime:t});return BigInt(n)}O();var Om=class extends D{constructor({docsPath:e}={}){super([`Could not find an Account to execute with this Action.`,"Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(` +`),{docsPath:e,docsSlug:`account`,name:`AccountNotFoundError`})}},km=class extends D{constructor({docsPath:e,metaMessages:t,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:t,name:`AccountTypeNotSupportedError`})}};Op();function Am({chain:e,currentChainId:t}){if(!e)throw new Tp;if(t!==e.id)throw new wp({chain:e,currentChainId:t})}Mu(),ho(),Pu();function jm(e,{docsPath:t,...n}){let r=(()=>{let t=Nu(e,n);return t instanceof ju?e:t})();return new lo(r,{docsPath:t,...n})}async function Mm(e,{serializedTransaction:t}){return e.request({method:`eth_sendRawTransaction`,params:[t]},{retryCount:0})}ra(),O(),Lu(),Wu(),hi(),$u();var Nm=new mi(128);async function Pm(e,t){let{account:n=e.account,chain:r=e.chain,accessList:i,authorizationList:a,blobs:o,data:s,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,type:m,value:h,...g}=t;if(n===void 0)throw new Om({docsPath:`/docs/actions/wallet/sendTransaction`});let _=n?na(n):null;try{Qu(t);let n=await(async()=>{if(t.to)return t.to;if(t.to!==null&&a&&a.length>0)return await vu({authorization:a[0]}).catch(()=>{throw new D("`to` is required. Could not infer from `authorizationList`.")})})();if(_?.type===`json-rpc`||_===null){let t;r!==null&&(t=await E(e,Md,`getChainId`)({}),Am({currentChainId:t,chain:r}));let v=e.chain?.formatters?.transactionRequest?.format,y=(v||Bu)({...Iu(g,{format:v}),accessList:i,authorizationList:a,blobs:o,chainId:t,data:s,from:_?.address,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,to:n,type:m,value:h},`sendTransaction`),b=Nm.get(e.uid),x=b?`wallet_sendTransaction`:`eth_sendTransaction`;try{return await e.request({method:x,params:[y]},{retryCount:0})}catch(t){if(b===!1)throw t;let n=t;if(n.name===`InvalidInputRpcError`||n.name===`InvalidParamsRpcError`||n.name===`MethodNotFoundRpcError`||n.name===`MethodNotSupportedRpcError`)return await e.request({method:`wallet_sendTransaction`,params:[y]},{retryCount:0}).then(t=>(Nm.set(e.uid,!0),t)).catch(t=>{let r=t;throw r.name===`MethodNotFoundRpcError`||r.name===`MethodNotSupportedRpcError`?(Nm.set(e.uid,!1),n):r});throw n}}if(_?.type===`local`){let t=await E(e,Fd,`prepareTransactionRequest`)({account:_,accessList:i,authorizationList:a,blobs:o,chain:r,data:s,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,nonceManager:_.nonceManager,parameters:[...Nd,`sidecars`],type:m,value:h,...g,to:n}),v=r?.serializers?.transaction,y=await _.signTransaction(t,{serializer:v});return await E(e,Mm,`sendRawTransaction`)({serializedTransaction:y})}throw _?.type===`smart`?new km({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:`/docs/actions/bundler/sendUserOperation`,type:`smart`}):new km({docsPath:`/docs/actions/wallet/sendTransaction`,type:_?.type})}catch(e){throw e instanceof km?e:jm(e,{...t,account:_,chain:t.chain||void 0})}}ra(),ca();async function Fm(e,t){return Fm.internal(e,Pm,`sendTransaction`,t)}(function(e){async function t(e,t,n,r){let{abi:i,account:a=e.account,address:o,args:s,dataSuffix:c,functionName:l,...u}=r;if(a===void 0)throw new Om({docsPath:`/docs/contract/writeContract`});let d=a?na(a):null,f=sa({abi:i,args:s,functionName:l});try{return await E(e,t,n)({data:`${f}${c?c.replace(`0x`,``):``}`,to:o,account:d,...u})}catch(e){throw cs(e,{abi:i,address:o,args:s,docsPath:`/docs/contract/writeContract`,functionName:l,sender:d?.address})}}e.internal=t})(Fm||={}),O();var Im=class extends D{constructor(e){super(`Call bundle failed with status: ${e.statusCode}`,{name:`BundleFailedError`}),Object.defineProperty(this,`result`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=e}};function Lm(e,{delay:t=100,retryCount:n=2,shouldRetry:r=()=>!0}={}){return new Promise((i,a)=>{let o=async({count:s=0}={})=>{let c=async({error:e})=>{let n=typeof t==`function`?t({count:s,error:e}):t;n&&await bm(n),o({count:s+1})};try{let t=await e();i(t)}catch(e){if(szd(e)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?En(e.transactionIndex):null,status:e.status?Rm[e.status]:null,type:e.type?id[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const Bm=Ru(`transactionReceipt`,zm);ra(),O(),os(),ca(),Di(),Dn(),A();const Vm=k(0,{size:32});async function Hm(e,t){let{account:n=e.account,capabilities:r,chain:i=e.chain,experimental_fallback:a,experimental_fallbackDelay:o=32,forceAtomic:s=!1,id:c,version:l=`2.0.0`}=t,u=n?na(n):null,d=t.calls.map(e=>{let t=e,n=t.abi?sa({abi:t.abi,functionName:t.functionName,args:t.args}):t.data;return{data:t.dataSuffix&&n?wi([n,t.dataSuffix]):n,to:t.to,value:t.value?k(t.value):void 0}});try{let t=await e.request({method:`wallet_sendCalls`,params:[{atomicRequired:s,calls:d,capabilities:r,chainId:k(i.id),from:u?.address,id:c,version:l}]},{retryCount:0});return typeof t==`string`?{id:t}:t}catch(n){let c=n;if(a&&(c.name===`MethodNotFoundRpcError`||c.name===`MethodNotSupportedRpcError`||c.name===`UnknownRpcError`||c.details.toLowerCase().includes(`does not exist / is not available`)||c.details.toLowerCase().includes(`missing or invalid. request()`)||c.details.toLowerCase().includes(`did not match any variant of untagged enum`)||c.details.toLowerCase().includes(`account upgraded to unsupported contract`)||c.details.toLowerCase().includes(`eip-7702 not supported`)||c.details.toLowerCase().includes(`unsupported wc_ method`)||c.details.toLowerCase().includes(`feature toggled misconfigured`)||c.details.toLowerCase().includes(`jsonrpcengine: response has no error or result for request`))){if(r&&Object.values(r).some(e=>!e.optional)){let e="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new Xo(new D(e,{details:e}))}if(s&&d.length>1){let e="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new ns(new D(e,{details:e}))}let t=[];for(let n of d){let r=Pm(e,{account:u,chain:i,data:n.data,to:n.to,value:n.value?wn(n.value):void 0});t.push(r),o>0&&await new Promise(e=>setTimeout(e,o))}let n=await Promise.allSettled(t);if(n.every(e=>e.status===`rejected`))throw n[0].reason;let a=n.map(e=>e.status===`fulfilled`?e.value:Vm);return{id:wi([...a,k(i.id,{size:32}),`0x5792579257925792579257925792579257925792579257925792579257925792`])}}throw jm(n,{...t,account:u,chain:t.chain})}}Ni(),Sn(),Dn();async function Um(e,t){async function n(t){if(t.endsWith(`5792579257925792579257925792579257925792579257925792579257925792`)){let n=xn(Mi(t,-64,-32)),r=Mi(t,0,-64).slice(2).match(/.{1,64}/g),i=await Promise.all(r.map(t=>Vm.slice(2)===t?void 0:e.request({method:`eth_getTransactionReceipt`,params:[`0x${t}`]},{dedupe:!0}))),a=(()=>i.some(e=>e===null)?100:i.every(e=>e?.status===`0x1`)?200:i.every(e=>e?.status===`0x0`)?500:600)();return{atomic:!1,chainId:En(n),receipts:i.filter(Boolean),status:a,version:`2.0.0`}}return e.request({method:`wallet_getCallsStatus`,params:[t]})}let{atomic:r=!1,chainId:i,receipts:a,version:o=`2.0.0`,...s}=await n(t.id),[c,l]=(()=>{let e=s.status;return e>=100&&e<200?[`pending`,e]:e>=200&&e<300?[`success`,e]:e>=300&&e<700?[`failure`,e]:e===`CONFIRMED`?[`success`,200]:e===`PENDING`?[`pending`,100]:[void 0,e]})();return{...s,atomic:r,chainId:i?En(i):void 0,receipts:a?.map(e=>({...e,blockNumber:wn(e.blockNumber),gasUsed:wn(e.gasUsed),status:Rm[e.status]}))??[],statusCode:l,status:c,version:o}}O(),Lp(),Va();async function Wm(e,t){let{id:n,pollingInterval:r=e.pollingInterval,status:i=({statusCode:e})=>e===200||e>=300,retryCount:a=4,retryDelay:o=({count:e})=>~~(1<{let s=xm(async()=>{let r=e=>{clearTimeout(p),s(),e(),m()};try{let s=await Lm(async()=>{let t=await E(e,Um,`getCallsStatus`)({id:n});if(c&&t.status===`failure`)throw new Im(t);return t},{retryCount:a,delay:o});if(!i(s))return;r(()=>t.resolve(s))}catch(e){r(()=>t.reject(e))}},{interval:r,emitOnBegin:!0});return s});return p=s?setTimeout(()=>{m(),clearTimeout(p),f(new Gm({id:n}))},s):void 0,await u}var Gm=class extends D{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:`WaitForCallsStatusTimeoutError`})}},Km=256,qm=Km,Jm;function Ym(e=11){if(!Jm||qm+e>Km*2){Jm=``,qm=0;for(let e=0;e{let n=t(e);for(let e in _)delete n[e];let r={...e,...n};return Object.assign(r,{extend:v(r)})}}return Object.assign(_,{extend:v(_)})}A();async function Zm(e,{address:t,blockNumber:n,blockTag:r=`latest`}){let i=n===void 0?void 0:k(n),a=await e.request({method:`eth_getCode`,params:[t,i||r]},{dedupe:!!i});if(a!==`0x`)return a}O();var Qm=class extends D{constructor({address:e}){super(`No EIP-712 domain found on contract "${e}".`,{metaMessages:[`Ensure that:`,`- The contract is deployed at the address "${e}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:`Eip712DomainNotFoundError`})}};async function $m(e,t){let{address:n,factory:r,factoryData:i}=t;try{let[t,a,o,s,c,l,u]=await E(e,hm,`readContract`)({abi:eh,address:n,functionName:`eip712Domain`,factory:r,factoryData:i});return{domain:{name:a,version:o,chainId:Number(s),verifyingContract:c,salt:l},extensions:u,fields:t}}catch(e){let t=e;throw t.name===`ContractFunctionExecutionError`&&t.cause.name===`ContractFunctionZeroDataError`?new Qm({address:n}):t}}var eh=[{inputs:[],name:`eip712Domain`,outputs:[{name:`fields`,type:`bytes1`},{name:`name`,type:`string`},{name:`version`,type:`string`},{name:`chainId`,type:`uint256`},{name:`verifyingContract`,type:`address`},{name:`salt`,type:`bytes32`},{name:`extensions`,type:`uint256[]`}],stateMutability:`view`,type:`function`}];Zu(),pi(),O(),Op(),Mu(),Ci(),It(),Ni(),Dn();function th(e){let{authorizationList:t}=e;if(t)for(let e of t){let{chainId:t}=e,n=e.address;if(!bi(n))throw new fi({address:n});if(t<0)throw new Dp({chainId:t})}rh(e)}function nh(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Ed;for(let e of t){let t=Ft(e),n=En(Oi(e,0,1));if(t!==32)throw new Dd({hash:e,size:t});if(n!==1)throw new Od({hash:e,version:n})}}rh(e)}function rh(e){let{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:r,to:i}=e;if(t<=0)throw new Dp({chainId:t});if(i&&!bi(i))throw new fi({address:i});if(r&&r>Xu)throw new xu({maxFeePerGas:r});if(n&&r&&n>r)throw new Au({maxFeePerGas:r,maxPriorityFeePerGas:n})}function ih(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a}=e;if(t<=0)throw new Dp({chainId:t});if(a&&!bi(a))throw new fi({address:a});if(n||i)throw new D("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(r&&r>Xu)throw new xu({maxFeePerGas:r})}function ah(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a}=e;if(a&&!bi(a))throw new fi({address:a});if(t!==void 0&&t<=0)throw new Dp({chainId:t});if(n||i)throw new D("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(r&&r>Xu)throw new xu({maxFeePerGas:r})}pi(),ho(),Ci();function oh(e){if(!e||e.length===0)return[];let t=[];for(let n=0;nAn(e)),n=e.kzg,r=hd({blobs:t,kzg:n});if(f===void 0&&(f=bd({commitments:r})),p===void 0){let e=gd({blobs:t,commitments:r,kzg:n});p=Ad({blobs:t,commitments:r,proofs:e})}}let m=oh(u),h=[k(n),i?k(i):`0x`,l?k(l):`0x`,c?k(c):`0x`,r?k(r):`0x`,a??`0x`,o?k(o):`0x`,d??`0x`,m,s?k(s):`0x`,f??[],...ph(e,t)],g=[],_=[],v=[];if(p)for(let e=0;e{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);let e=27n+(t.v===27n?0n:1n);if(t.v!==e)throw new oo({v:t.v});return e})(),r=xn(t.r),i=xn(t.s);l=[...l,k(e),r===`0x00`?`0x`:r,i===`0x00`?`0x`:i]}else n>0&&(l=[...l,k(n),`0x`,`0x`]);return M(l)}function ph(e,t){let n=t??e,{v:r,yParity:i}=n;if(n.r===void 0||n.s===void 0||r===void 0&&i===void 0)return[];let a=xn(n.r),o=xn(n.s);return[(()=>typeof i==`number`?i?k(1):`0x`:r===0n?`0x`:r===1n?k(1):r===27n?`0x`:k(1))(),a===`0x00`?`0x`:a,o===`0x00`?`0x`:o]}A();function mh(e){if(!e||e.length===0)return[];let t=[];for(let n of e){let{chainId:e,nonce:r,...i}=n,a=n.address;t.push([e?On(e):`0x`,a,r?On(r):`0x`,...ph({},i)])}return t}yi(),Rd();async function hh({address:e,authorization:t,signature:n}){return Ld(_i(e),await vu({authorization:t,signature:n}))}hi();const gh=new mi(8192);function _h(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(gh.get(n))return gh.get(n);let r=e().finally(()=>gh.delete(n));return gh.set(n,r),r}O(),ko(),os(),A(),Va();function vh(e,t={}){return async(n,r={})=>{let{dedupe:i=!1,methods:a,retryDelay:o=150,retryCount:s=3,uid:c}={...t,...r},{method:l}=n;if(a?.exclude?.includes(l)||a?.include&&!a.include.includes(l))throw new Vo(Error(`method not supported`),{method:l});let u=i?jn(`${c}.${Ba(n)}`):void 0;return _h(()=>Lm(async()=>{try{return await e(n)}catch(e){let t=e;switch(t.code){case No.code:throw new No(t);case j.code:throw new j(t);case Po.code:throw new Po(t,{method:n.method});case Fo.code:throw new Fo(t);case Io.code:throw new Io(t);case Lo.code:throw new Lo(t);case Ro.code:throw new Ro(t);case zo.code:throw new zo(t);case Bo.code:throw new Bo(t);case Vo.code:throw new Vo(t,{method:n.method});case Ho.code:throw new Ho(t);case Uo.code:throw new Uo(t);case Wo.code:throw new Wo(t);case Go.code:throw new Go(t);case Ko.code:throw new Ko(t);case qo.code:throw new qo(t);case Jo.code:throw new Jo(t);case Yo.code:throw new Yo(t);case Xo.code:throw new Xo(t);case Zo.code:throw new Zo(t);case Qo.code:throw new Qo(t);case $o.code:throw new $o(t);case es.code:throw new es(t);case ts.code:throw new ts(t);case ns.code:throw new ns(t);case 5e3:throw new Wo(t);default:throw e instanceof D?e:new rs(t)}}},{delay:({count:e,error:t})=>{if(t&&t instanceof Eo){let e=t?.headers?.get(`Retry-After`);if(e?.match(/\d/))return Number.parseInt(e,10)*1e3}return~~(1<yh(e)}),{enabled:i,id:u})}}function yh(e){return`code`in e&&typeof e.code==`number`?e.code===-1||e.code===Ho.code||e.code===Io.code:e instanceof Eo&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function L(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}function bh(e,{errorInstance:t=Error(`timed out`),timeout:n,signal:r}){return new Promise((i,a)=>{(async()=>{let o;try{let s=new AbortController;n>0&&(o=setTimeout(()=>{r?s.abort():a(t)},n)),i(await e({signal:s?.signal||null}))}catch(e){e?.name===`AbortError`&&a(t),a(e)}finally{clearTimeout(o)}})()})}function xh(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const Sh=xh();ko(),Va();function Ch(e,t={}){return{async request(n){let{body:r,fetchFn:i=t.fetchFn??fetch,onRequest:a=t.onRequest,onResponse:o=t.onResponse,timeout:s=t.timeout??1e4}=n,c={...t.fetchOptions??{},...n.fetchOptions??{}},{headers:l,method:u,signal:d}=c;try{let t=await bh(async({signal:t})=>{let n={...c,body:Ba(Array.isArray(r)?r.map(e=>({jsonrpc:`2.0`,id:e.id??Sh.take(),...e})):{jsonrpc:`2.0`,id:r.id??Sh.take(),...r}),headers:{"Content-Type":`application/json`,...l},method:u||`POST`,signal:d||(s>0?t:null)},o=new Request(e,n),f=await a?.(o,n)??{...n,url:e};return await i(f.url??e,f)},{errorInstance:new Oo({body:r,url:e}),timeout:s,signal:!0});o&&await o(t);let n;if(t.headers.get(`Content-Type`)?.startsWith(`application/json`))n=await t.json();else{n=await t.text();try{n=JSON.parse(n||`{}`)}catch(e){if(t.ok)throw e;n={error:n}}}if(!t.ok)throw new Eo({body:r,details:Ba(n.error)||t.statusText,headers:t.headers,status:t.status,url:e});return n}catch(t){throw t instanceof Eo||t instanceof Oo?t:new Eo({body:r,cause:t,url:e})}}}}Di(),It(),A();function wh(e){let t=(()=>typeof e==`string`?jn(e):typeof e.raw==`string`?e.raw:An(e.raw))(),n=jn(`Ethereum Signed Message: +${Ft(t)}`);return wi([n,t])}ei();function Th(e,t){return $r(wh(e),t)}Va(),O();var Eh=class extends D{constructor({domain:e}){super(`Invalid domain "${Ba(e)}".`,{metaMessages:[`Must be a valid EIP-712 domain.`]})}},Dh=class extends D{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:`/api/glossary/Errors#typeddatainvalidprimarytypeerror`,metaMessages:["Check that the primary type is a key in `types`."]})}},Oh=class extends D{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:[`Struct type must not be a Solidity type.`],name:`InvalidStructTypeError`})}};sn(),pi(),Ci(),It(),A(),Ii(),Va();function kh(e){let{domain:t,message:n,primaryType:r,types:i}=e,a=(e,t)=>{let n={...t};for(let t of e){let{name:e,type:r}=t;r===`address`&&(n[e]=n[e].toLowerCase())}return n},o=(()=>!i.EIP712Domain||!t?{}:a(i.EIP712Domain,t))(),s=(()=>{if(r!==`EIP712Domain`)return a(i[r],n)})();return Ba({domain:o,message:s,primaryType:r,types:i})}function Ah(e){let{domain:t,message:n,primaryType:r,types:i}=e,a=(e,t)=>{for(let n of e){let{name:e,type:r}=n,o=t[e],s=r.match(Fi);if(s&&(typeof o==`number`||typeof o==`bigint`)){let[e,t,n]=s;k(o,{signed:t===`int`,size:Number.parseInt(n,10)/8})}if(r===`address`&&typeof o==`string`&&!bi(o))throw new fi({address:o});let c=r.match(Pi);if(c){let[e,t]=c;if(t&&Ft(o)!==Number.parseInt(t,10))throw new tn({expectedSize:Number.parseInt(t,10),givenSize:Ft(o)})}let l=i[r];l&&(Mh(r),a(l,o))}};if(i.EIP712Domain&&t){if(typeof t!=`object`)throw new Eh({domain:t});a(i.EIP712Domain,t)}if(r!==`EIP712Domain`)if(i[r])a(i[r],n);else throw new Dh({primaryType:r,types:i})}function jh({domain:e}){return[typeof e?.name==`string`&&{name:`name`,type:`string`},e?.version&&{name:`version`,type:`string`},(typeof e?.chainId==`number`||typeof e?.chainId==`bigint`)&&{name:`chainId`,type:`uint256`},e?.verifyingContract&&{name:`verifyingContract`,type:`address`},e?.salt&&{name:`salt`,type:`bytes32`}].filter(Boolean)}function Mh(e){if(e===`address`||e===`bool`||e===`string`||e.startsWith(`bytes`)||e.startsWith(`uint`)||e.startsWith(`int`))throw new Oh({type:e})}Yi(),Di(),A(),ei();function Nh(e){let{domain:t={},message:n,primaryType:r}=e,i={EIP712Domain:jh({domain:t}),...e.types};Ah({domain:t,message:n,primaryType:r,types:i});let a=[`0x1901`];return t&&a.push(Ph({domain:t,types:i})),r!==`EIP712Domain`&&a.push(Fh({data:n,primaryType:r,types:i})),$r(wi(a))}function Ph({domain:e,types:t}){return Fh({data:e,primaryType:`EIP712Domain`,types:t})}function Fh({data:e,primaryType:t,types:n}){let r=Ih({data:e,primaryType:t,types:n});return $r(r)}function Ih({data:e,primaryType:t,types:n}){let r=[{type:`bytes32`}],i=[Lh({primaryType:t,types:n})];for(let a of n[t]){let[t,o]=Bh({types:n,name:a.name,type:a.type,value:e[a.name]});r.push(t),i.push(o)}return Li(r,i)}function Lh({primaryType:e,types:t}){let n=On(Rh({primaryType:e,types:t}));return $r(n)}function Rh({primaryType:e,types:t}){let n=``,r=zh({primaryType:e,types:t});r.delete(e);let i=[e,...Array.from(r).sort()];for(let e of i)n+=`${e}(${t[e].map(({name:e,type:t})=>`${t} ${e}`).join(`,`)})`;return n}function zh({primaryType:e,types:t},n=new Set){let r=e.match(/^\w*/u)?.[0];if(n.has(r)||t[r]===void 0)return n;n.add(r);for(let e of t[r])zh({primaryType:e.type,types:t},n);return n}function Bh({types:e,name:t,type:n,value:r}){if(e[n]!==void 0)return[{type:`bytes32`},$r(Ih({data:r,primaryType:n,types:e}))];if(n===`bytes`)return r=`0x${(r.length%2?`0`:``)+r.slice(2)}`,[{type:`bytes32`},$r(r)];if(n===`string`)return[{type:`bytes32`},$r(On(r))];if(n.lastIndexOf(`]`)===n.length-1){let i=n.slice(0,n.lastIndexOf(`[`)),a=r.map(n=>Bh({name:t,type:i,types:e,value:n}));return[{type:`bytes32`},$r(Li(a.map(([e])=>e),a.map(([,e])=>e)))]}return[{type:n},r]}const Vh={checksum:new class extends Map{constructor(e){super(),Object.defineProperty(this,`maxSize`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}(8192)}.checksum;Qr(),Lf(),op();function Hh(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=Zr(hf(e));return n===`Bytes`?r:Hf(r)}function Uh(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=_d(hf(e));return n===`Bytes`?r:Hf(r)}Lf(),Jd(),op(),pf();function Wh(e,t={}){let{compressed:n}=t,{prefix:r,x:i,y:a}=e;if(n===!1||typeof i==`bigint`&&typeof a==`bigint`){if(r!==4)throw new Xh({prefix:r,cause:new Qh});return}if(n===!0||typeof i==`bigint`&&a===void 0){if(r!==3&&r!==2)throw new Xh({prefix:r,cause:new Zh});return}throw new Yh({publicKey:e})}function Gh(e){let t=(()=>{if(Zf(e))return qh(e);if(kf(e))return Kh(e);let{prefix:t,x:n,y:r}=e;return typeof n==`bigint`&&typeof r==`bigint`?{prefix:t??4,x:n,y:r}:{prefix:t,x:n}})();return Wh(t),t}function Kh(e){return qh(Hf(e))}function qh(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new $h({publicKey:e});if(e.length===130){let t=BigInt(Kf(e,0,32)),n=BigInt(Kf(e,32,64));return{prefix:4,x:t,y:n}}if(e.length===132){let t=Number(Kf(e,0,1)),n=BigInt(Kf(e,1,33)),r=BigInt(Kf(e,33,65));return{prefix:t,x:n,y:r}}let t=Number(Kf(e,0,1)),n=BigInt(Kf(e,1,33));return{prefix:t,x:n}}function Jh(e,t={}){Wh(e);let{prefix:n,x:r,y:i}=e,{includePrefix:a=!0}=t;return zf(a?I(n,{size:1}):`0x`,I(r,{size:32}),typeof i==`bigint`?I(i,{size:32}):`0x`)}var Yh=class extends P{constructor({publicKey:e}){super(`Value \`${df(e)}\` is not a valid public key.`,{metaMessages:[`Public key must contain:`,"- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidError`})}},Xh=class extends P{constructor({prefix:e,cause:t}){super(`Prefix "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidPrefixError`})}},Zh=class extends P{constructor(){super(`Prefix must be 2 or 3 for compressed public keys.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidCompressedPrefixError`})}},Qh=class extends P{constructor(){super(`Prefix must be 4 for uncompressed public keys.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidUncompressedPrefixError`})}},$h=class extends P{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:[`Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).`,`Received ${qf(Bf(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidSerializedSizeError`})}};Lf(),Jd();var eg=/^0x[a-fA-F0-9]{40}$/;function tg(e,t={}){let{strict:n=!0}=t;if(!eg.test(e))throw new sg({address:e,cause:new cg});if(n){if(e.toLowerCase()===e)return;if(ng(e)!==e)throw new sg({address:e,cause:new lg})}}function ng(e){if(Vh.has(e))return Vh.get(e);tg(e,{strict:!1});let t=e.substring(2).toLowerCase(),n=Hh(vf(t),{as:`Bytes`}),r=t.split(``);for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&r[e]&&(r[e]=r[e].toUpperCase()),(n[e>>1]&15)>=8&&r[e+1]&&(r[e+1]=r[e+1].toUpperCase());let i=`0x${r.join(``)}`;return Vh.set(e,i),i}function rg(e,t={}){let{checksum:n=!1}=t;return tg(e),n?ng(e):e}function ig(e,t={}){let n=Hh(`0x${Jh(e).slice(4)}`).substring(26);return rg(`0x${n}`,t)}function ag(e,t){return tg(e,{strict:!1}),tg(t,{strict:!1}),e.toLowerCase()===t.toLowerCase()}function og(e,t={}){let{strict:n=!0}=t??{};try{return tg(e,{strict:n}),!0}catch{return!1}}var sg=class extends P{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidAddressError`})}},cg=class extends P{constructor(){super(`Address is not a 20 byte (40 hexadecimal character) value.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidInputError`})}},lg=class extends P{constructor(){super(`Address does not match its checksum counterpart.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidChecksumError`})}};const ug=/^(.*)\[([0-9]*)\]$/,dg=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,fg=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;2n**(8n-1n)-1n,2n**(16n-1n)-1n,2n**(24n-1n)-1n,2n**(32n-1n)-1n,2n**(40n-1n)-1n,2n**(48n-1n)-1n,2n**(56n-1n)-1n,2n**(64n-1n)-1n,2n**(72n-1n)-1n,2n**(80n-1n)-1n,2n**(88n-1n)-1n,2n**(96n-1n)-1n,2n**(104n-1n)-1n,2n**(112n-1n)-1n,2n**(120n-1n)-1n,2n**(128n-1n)-1n,2n**(136n-1n)-1n,2n**(144n-1n)-1n,2n**(152n-1n)-1n,2n**(160n-1n)-1n,2n**(168n-1n)-1n,2n**(176n-1n)-1n,2n**(184n-1n)-1n,2n**(192n-1n)-1n,2n**(200n-1n)-1n,2n**(208n-1n)-1n,2n**(216n-1n)-1n,2n**(224n-1n)-1n,2n**(232n-1n)-1n,2n**(240n-1n)-1n,2n**(248n-1n)-1n,2n**(256n-1n)-1n,-(2n**(8n-1n)),-(2n**(16n-1n)),-(2n**(24n-1n)),-(2n**(32n-1n)),-(2n**(40n-1n)),-(2n**(48n-1n)),-(2n**(56n-1n)),-(2n**(64n-1n)),-(2n**(72n-1n)),-(2n**(80n-1n)),-(2n**(88n-1n)),-(2n**(96n-1n)),-(2n**(104n-1n)),-(2n**(112n-1n)),-(2n**(120n-1n)),-(2n**(128n-1n)),-(2n**(136n-1n)),-(2n**(144n-1n)),-(2n**(152n-1n)),-(2n**(160n-1n)),-(2n**(168n-1n)),-(2n**(176n-1n)),-(2n**(184n-1n)),-(2n**(192n-1n)),-(2n**(200n-1n)),-(2n**(208n-1n)),-(2n**(216n-1n)),-(2n**(224n-1n)),-(2n**(232n-1n)),-(2n**(240n-1n)),-(2n**(248n-1n)),-(2n**(256n-1n));const pg=2n**256n-1n;Lf(),Jd(),op();function mg(e,t,n){let{checksumAddress:r,staticPosition:i}=n,a=Pg(t.type);if(a){let[n,o]=a;return vg(e,{...t,type:o},{checksumAddress:r,length:n,staticPosition:i})}if(t.type===`tuple`)return Sg(e,t,{checksumAddress:r,staticPosition:i});if(t.type===`address`)return _g(e,{checksum:r});if(t.type===`bool`)return yg(e);if(t.type.startsWith(`bytes`))return bg(e,t,{staticPosition:i});if(t.type.startsWith(`uint`)||t.type.startsWith(`int`))return xg(e,t);if(t.type===`string`)return Cg(e,{staticPosition:i});throw new Zg(t.type)}var hg=32,gg=32;function _g(e,t={}){let{checksum:n=!1}=t,r=e.readBytes(32);return[(e=>n?ng(e):e)(Hf(xf(r,-20))),32]}function vg(e,t,n){let{checksumAddress:r,length:i,staticPosition:a}=n;if(!i){let n=Tf(e.readBytes(gg)),i=a+n,o=i+hg;e.setPosition(i);let s=Tf(e.readBytes(hg)),c=Fg(t),l=0,u=[];for(let n=0;n48?Sf(i,{signed:n}):Tf(i,{signed:n}),32]}function Sg(e,t,n){let{checksumAddress:r,staticPosition:i}=n,a=t.components.length===0||t.components.some(({name:e})=>!e),o=a?[]:{},s=0;if(Fg(t)){let n=Tf(e.readBytes(gg)),c=i+n;for(let n=0;n0?zf(t,e):t}}if(o)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:zf(...s.map(({encoded:e})=>e))}}function kg(e,{type:t}){let[,n]=t.split(`bytes`),r=qf(e);if(!n){let t=e;return r%32!=0&&(t=Gf(t,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:zf(Wf(I(r,{size:32})),t)}}if(r!==Number.parseInt(n,10))throw new Jg({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:Gf(e)}}function Ag(e){if(typeof e!=`boolean`)throw new P(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Wf(Vf(e))}}function jg(e,{signed:t,size:n}){if(typeof n==`number`){let r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||ee))}}function Pg(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function Fg(e){let{type:t}=e;if(t===`string`||t===`bytes`||t.endsWith(`[]`))return!0;if(t===`tuple`)return e.components?.some(Fg);let n=Pg(e.type);return!!(n&&Fg({...e,type:n[1]}))}Jd();var Ig={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:1/0,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Bg({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new zg({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Rg({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Rg({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===1/0)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function Lg(e,{recursiveReadLimit:t=8192}={}){let n=Object.create(Ig);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}var Rg=class extends P{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cursor.NegativeOffsetError`})}},zg=class extends P{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cursor.PositionOutOfBoundsError`})}},Bg=class extends P{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cursor.RecursiveReadLimitExceededError`})}};Ot(),Lf(),Jd(),op();function Vg(e,t,n={}){let{as:r=`Array`,checksumAddress:i=!1}=n,a=typeof t==`string`?_f(t):t,o=Lg(a);if(bf(a)===0&&e.length>0)throw new Kg;if(bf(a)&&bf(a)<32)throw new Gg({data:typeof t==`string`?t:Hf(t),parameters:e,size:bf(a)});let s=0,c=r===`Array`?[]:{};for(let t=0;te_(e))):n_(e)}function t_(e){let t=e.reduce((e,t)=>e+t.length,0),n=r_(t);return{length:(()=>t<=55?1+t:1+n+t)(),encode(r){t<=55?r.pushByte(192+t):(r.pushByte(247+n),n===1?r.pushUint8(t):n===2?r.pushUint16(t):n===3?r.pushUint24(t):r.pushUint32(t));for(let{encode:t}of e)t(r)}}}function n_(e){let t=typeof e==`string`?_f(e):e,n=r_(t.length);return{length:(()=>t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length)(),encode(e){t.length===1&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),n===1?e.pushUint8(t.length):n===2?e.pushUint16(t.length):n===3?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}function r_(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new P(`Length is too large.`)}Jd(),op(),pf();function i_(e,t={}){let{recovered:n}=t;if(e.r===void 0||e.s===void 0||n&&e.yParity===void 0)throw new g_({signature:e});if(e.r<0n||e.r>pg)throw new __({value:e.r});if(e.s<0n||e.s>pg)throw new v_({value:e.s});if(typeof e.yParity==`number`&&e.yParity!==0&&e.yParity!==1)throw new y_({value:e.yParity})}function a_(e){return o_(Hf(e))}function o_(e){if(e.length!==130&&e.length!==132)throw new h_({signature:e});let t=BigInt(Kf(e,0,32)),n=BigInt(Kf(e,32,64)),r=(()=>{let t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return p_(t)}catch{throw new y_({value:t})}})();return r===void 0?{r:t,s:n}:{r:t,s:n,yParity:r}}function s_(e){if(e.r!==void 0&&e.s!==void 0)return c_(e)}function c_(e){let t=(()=>typeof e==`string`?o_(e):e instanceof Uint8Array?a_(e):typeof e.r==`string`?u_(e):e.v?l_(e):{r:e.r,s:e.s,...e.yParity===void 0?{}:{yParity:e.yParity}})();return i_(t),t}function l_(e){return{r:e.r,s:e.s,yParity:p_(e.v)}}function u_(e){let t=(()=>{let t=e.v?Number(e.v):void 0,n=e.yParity?Number(e.yParity):void 0;if(typeof t==`number`&&typeof n!=`number`&&(n=p_(t)),typeof n!=`number`)throw new y_({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function d_(e){i_(e);let t=e.r,n=e.s;return zf(I(t,{size:32}),I(n,{size:32}),typeof e.yParity==`number`?I(m_(e.yParity),{size:1}):`0x`)}function f_(e){let{r:t,s:n,yParity:r}=e;return[r?`0x01`:`0x`,t===0n?`0x`:Jf(I(t)),n===0n?`0x`:Jf(I(n))]}function p_(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2==0?1:0;throw new b_({value:e})}function m_(e){if(e===0)return 27;if(e===1)return 28;throw new y_({value:e})}var h_=class extends P{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:[`Expected: 64 bytes or 65 bytes.`,`Received ${qf(Bf(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidSerializedSizeError`})}},g_=class extends P{constructor({signature:e}){super(`Signature \`${df(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.MissingPropertiesError`})}},__=class extends P{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidRError`})}},v_=class extends P{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidSError`})}},y_=class extends P{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidYParityError`})}},b_=class extends P{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidVError`})}};op();function x_(e,t={}){return typeof e.chainId==`string`?S_(e):{...e,...t.signature}}function S_(e){let{address:t,chainId:n,nonce:r}=e,i=s_(e);return{address:t,chainId:Number(n),nonce:BigInt(r),...i}}function C_(e){return w_(e,{presign:!0})}function w_(e,t={}){let{presign:n}=t;return Hh(zf(`0x05`,$g(T_(n?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function T_(e){let{address:t,chainId:n,nonce:r}=e,i=s_(e);return[n?I(n):`0x`,t,r?I(r):`0x`,...i?f_(i):[]]}uu(),Lf(),op();function E_(e){let{privateKey:t}=e,n=Yl.ProjectivePoint.fromPrivateKey(Bf(t).slice(2));return Gh(n)}function D_(e={}){let{as:t=`Hex`}=e,n=Yl.utils.randomPrivateKey();return t===`Hex`?Hf(n):n}function O_(e){return ig(k_(e))}function k_(e){let{payload:t,signature:n}=e,{r,s:i,yParity:a}=n,o=new Yl.Signature(BigInt(r),BigInt(i)).addRecoveryBit(a).recoverPublicKey(Bf(t).substring(2));return Gh(o)}function A_(e){let{extraEntropy:t=!1,hash:n,payload:r,privateKey:i}=e,{r:a,s:o,recovery:s}=Yl.sign(hf(r),hf(i),{extraEntropy:typeof t==`boolean`?t:Bf(t).slice(2),lowS:!0,...n?{prehash:!0}:{}});return{r:a,s:o,yParity:s}}Jd(),op();const j_=Wg(`(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data`);function M_(e){if(typeof e==`string`){if(Kf(e,-32)!==`0x8010801080108010801080108010801080108010801080108010801080108010`)throw new I_(e)}else i_(e.authorization)}function N_(e){M_(e);let t=Xf(Kf(e,-64,-32)),n=Kf(e,-t-64,-64),r=Kf(e,0,-t-64),[i,a,o]=Vg(j_,n);return{authorization:x_({address:i.delegation,chainId:Number(i.chainId),nonce:i.nonce,yParity:i.yParity,r:i.r,s:i.s}),signature:r,...o&&o!==`0x`?{data:o,to:a}:{}}}function P_(e){let{data:t,signature:n}=e;M_(e);let r=O_({payload:C_(e.authorization),signature:c_(e.authorization)}),i=Hg(j_,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??r,t??`0x`]),a=I(qf(i),{size:32});return zf(n,i,a,`0x8010801080108010801080108010801080108010801080108010801080108010`)}function F_(e){try{return M_(e),!0}catch{return!1}}var I_=class extends P{constructor(e){super(`Value \`${e}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SignatureErc8010.InvalidWrappedSignatureError`})}};ho(),A();async function L_(e,{blockHash:t,blockNumber:n,blockTag:r,hash:i,index:a}){let o=r||`latest`,s=n===void 0?void 0:k(n),c=null;if(i?c=await e.request({method:`eth_getTransactionByHash`,params:[i]},{dedupe:!0}):t?c=await e.request({method:`eth_getTransactionByBlockHashAndIndex`,params:[t,k(a)]},{dedupe:!0}):(s||o)&&(c=await e.request({method:`eth_getTransactionByBlockNumberAndIndex`,params:[s||o,k(a)]},{dedupe:!!s})),!c)throw new uo({blockHash:t,blockNumber:n,blockTag:o,hash:i,index:a});return(e.chain?.formatters?.transaction?.format||ad)(c,`getTransaction`)}ho();async function R_(e,{hash:t}){let n=await e.request({method:`eth_getTransactionReceipt`,params:[t]},{dedupe:!0});if(!n)throw new fo({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||zm)(n,`getTransactionReceipt`)}Jd();function z_(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;oB_(Object.values(e)[n],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?n===`number`||n===`bigint`:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n===`string`||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(e=>B_(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,``)})):!1}}function V_(e,t,n){for(let r in e){let i=e[r],a=t[r];if(i.type===`tuple`&&a.type===`tuple`&&`components`in i&&`components`in a)return V_(i.components,a.components,n[r]);let o=[i.type,a.type];if((()=>o.includes(`address`)&&o.includes(`bytes20`)?!0:o.includes(`address`)&&o.includes(`string`)||o.includes(`address`)&&o.includes(`bytes`)?og(n[r],{strict:!1}):!1)())return o}}Ot(),Jd(),op();function H_(e,t={}){let{prepare:n=!0}=t,r=(()=>Array.isArray(e)||typeof e==`string`?wt(e):e)();return{...r,...n?{hash:K_(r)}:{}}}function U_(e,t,n){let{args:r=[],prepare:i=!0}=n??{},a=Zf(t,{strict:!1}),o=e.filter(e=>a?e.type===`function`||e.type===`error`?W_(e)===Kf(t,0,4):e.type===`event`?K_(e)===t:!1:`name`in e&&e.name===t);if(o.length===0)throw new J_({name:t});if(o.length===1)return{...o[0],...i?{hash:K_(o[0])}:{}};let s;for(let e of o)if(`inputs`in e){if(!r||r.length===0){if(!e.inputs||e.inputs.length===0)return{...e,...i?{hash:K_(e)}:{}};continue}if(e.inputs&&e.inputs.length!==0&&e.inputs.length===r.length&&r.every((t,n)=>{let r=`inputs`in e&&e.inputs[n];return r?B_(t,r):!1})){if(s&&`inputs`in s&&s.inputs){let t=V_(e.inputs,s.inputs,r);if(t)throw new q_({abiItem:e,type:t[0]},{abiItem:s,type:t[1]})}s=e}}let c=(()=>{if(s)return s;let[e,...t]=o;return{...e,overloads:t}})();if(!c)throw new J_({name:t});return{...c,...i?{hash:K_(c)}:{}}}function W_(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return U_(t,n)}return e[0]})();return Kf(K_(t),0,4)}function G_(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return U_(t,n)}return e[0]})(),n=(()=>typeof t==`string`?t:le(t))();return z_(n)}function K_(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return U_(t,n)}return e[0]})();return typeof t!=`string`&&`hash`in t&&t.hash?t.hash:Hh(Uf(G_(t)))}var q_=class extends P{constructor(e,t){super(`Found ambiguous types in overloaded ABI Items.`,{metaMessages:[`\`${e.type}\` in \`${z_(le(e.abiItem))}\`, and`,`\`${t.type}\` in \`${z_(le(t.abiItem))}\``,``,`These types encode differently and cannot be distinguished at runtime.`,`Remove one of the ambiguous items in the ABI.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`AbiItem.AmbiguityError`})}},J_=class extends P{constructor({name:e,data:t,type:n=`item`}){let r=(()=>e?` with name "${e}"`:t?` with data "${t}"`:``)();super(`ABI ${n}${r} not found.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`AbiItem.NotFoundError`})}};op();function Y_(...e){let[t,n=[]]=(()=>{if(Array.isArray(e[0])){let[t,n,r]=e;return[X_(t,n,{args:r}),r]}let[t,n]=e;return[t,n]})(),{overloads:r}=t,i=r?X_([t,...r],t.name,{args:n}):t,a=Z_(i),o=n.length>0?Hg(i.inputs,n):void 0;return o?zf(a,o):a}function X_(e,t,n){let r=U_(e,t,n);if(r.type!==`function`)throw new J_({name:t,type:`function`});return r}function Z_(e){return W_(e)}const Q_=`0x0000000000000000000000000000000000000000`;Jd(),op();function $_(e){if(Kf(e,-32)!==`0x6492649264926492649264926492649264926492649264926492649264926492`)throw new nv(e)}function ev(e){let{data:t,signature:n,to:r}=e;return zf(Hg(Wg(`address, bytes, bytes`),[r,t,n]),`0x6492649264926492649264926492649264926492649264926492649264926492`)}function tv(e){try{return $_(e),!0}catch{return!1}}var nv=class extends P{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SignatureErc6492.InvalidWrappedSignatureError`})}};uu(),Dn(),Hn();function rv({r:e,s:t,to:n=`hex`,v:r,yParity:i}){let a=(()=>{if(i===0||i===1)return i;if(r&&(r===27n||r===28n||r>=35n))return r%2n==0n?1:0;throw Error("Invalid `v` or `yParity` value")})(),o=`0x${new Yl.Signature(wn(e),wn(t)).toCompactHex()}${a===0?`1b`:`1c`}`;return n===`hex`?o:Ln(o)}gp(),Sp(),To(),jp(),ca(),yi(),Rd(),Di(),Pt(),Dn(),A(),mm();async function iv(e,t){let{address:n,hash:r,erc6492VerifierAddress:i=t.universalSignatureVerifierAddress??e.chain?.contracts?.erc6492Verifier?.address,multicallAddress:a=t.multicallAddress??e.chain?.contracts?.multicall3?.address}=t,o=(()=>{let e=t.signature;return Nt(e)?e:typeof e==`object`&&`r`in e&&`s`in e?rv(e):An(e)})();try{return F_(o)?await av(e,{...t,multicallAddress:a,signature:o}):await ov(e,{...t,verifierAddress:i,signature:o})}catch(e){try{if(Ld(_i(n),await pu({hash:r,signature:o})))return!0}catch{}if(e instanceof cv)return!1;throw e}}async function av(e,t){let{address:n,blockNumber:r,blockTag:i,hash:a,multicallAddress:o}=t,{authorization:s,data:c,signature:l,to:u}=N_(t.signature);if(await Zm(e,{address:n,blockNumber:r,blockTag:i})===Ei([`0xef0100`,s.address]))return await sv(e,{address:n,blockNumber:r,blockTag:i,hash:a,signature:l});let d={address:s.address,chainId:Number(s.chainId),nonce:Number(s.nonce),r:k(s.r,{size:32}),s:k(s.s,{size:32}),yParity:s.yParity};if(!await hh({address:n,authorization:d}))throw new cv;let f=await E(e,hm,`readContract`)({...o?{address:o}:{code:xp},authorizationList:[d],abi:dp,blockNumber:r,blockTag:`pending`,functionName:`aggregate3`,args:[[...c?[{allowFailure:!0,target:u??n,callData:c}]:[],{allowFailure:!0,target:n,callData:sa({abi:mp,functionName:`isValidSignature`,args:[a,l]})}]]});if((f[f.length-1]?.returnData)?.startsWith(`0x1626ba7e`))return!0;throw new cv}async function ov(e,t){let{address:n,factory:r,factoryData:i,hash:a,signature:o,verifierAddress:s,...c}=t,l=await(async()=>!r&&!i||tv(o)?o:ev({data:i,signature:o,to:r}))(),u=s?{to:s,data:sa({abi:hp,functionName:`isValidSig`,args:[n,a,l]}),...c}:{data:kp({abi:hp,args:[n,a,l],bytecode:bp}),...c},{data:d}=await E(e,cm,`call`)(u).catch(e=>{throw e instanceof yo?new cv:e});if(Tn(d??`0x0`))return!0;throw new cv}async function sv(e,t){let{address:n,blockNumber:r,blockTag:i,hash:a,signature:o}=t;if((await E(e,hm,`readContract`)({address:n,abi:mp,args:[a,o],blockNumber:r,blockTag:i,functionName:`isValidSignature`}).catch(e=>{throw e instanceof bo?new cv:e})).startsWith(`0x1626ba7e`))return!0;throw new cv}var cv=class extends Error{};Dn(),Va();function lv(e,{emitOnBegin:t=!1,emitMissed:n=!1,onBlockNumber:r,onError:i,poll:a,pollingInterval:o=e.pollingInterval}){let s=(()=>a===void 0?!(e.transport.type===`webSocket`||e.transport.type===`ipc`||e.transport.type===`fallback`&&(e.transport.transports[0].config.type===`webSocket`||e.transport.transports[0].config.type===`ipc`)):a)(),c;return s?(()=>{let a=Ba([`watchBlockNumber`,e.uid,t,n,o]);return ym(a,{onBlockNumber:r,onError:i},r=>xm(async()=>{try{let t=await E(e,Dm,`getBlockNumber`)({cacheTime:0});if(c!==void 0){if(t===c)return;if(t-c>1&&n)for(let e=c+1n;ec)&&(r.onBlockNumber(t,c),c=t)}catch(e){r.onError?.(e)}},{emitOnBegin:t,interval:o}))})():(()=>{let a=Ba([`watchBlockNumber`,e.uid,t,n]);return ym(a,{onBlockNumber:r,onError:i},t=>{let n=!0,r=()=>n=!1;return(async()=>{try{let{unsubscribe:i}=await(()=>{if(e.transport.type===`fallback`){let t=e.transport.transports.find(e=>e.config.type===`webSocket`||e.config.type===`ipc`);return t?t.value:e.transport}return e.transport})().subscribe({params:[`newHeads`],onData(e){if(!n)return;let r=wn(e.result?.number);t.onBlockNumber(r,c),c=r},onError(e){t.onError?.(e)}});r=i,n||r()}catch(e){i?.(e)}})(),()=>r()})})()}ho(),Lp(),Va();async function uv(e,t){let{checkReplacement:n=!0,confirmations:r=1,hash:i,onReplaced:a,retryCount:o=6,retryDelay:s=({count:e})=>~~(1<t.pollingInterval?t.pollingInterval:e.chain?.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval)(),d,f,p,m=!1,h,g,{promise:_,resolve:v,reject:y}=Ip(),b=c?setTimeout(()=>{g?.(),h?.(),y(new mo({hash:i}))},c):void 0;return h=ym(l,{onReplaced:a,resolve:v,reject:y},async t=>{if(p=await E(e,R_,`getTransactionReceipt`)({hash:i}).catch(()=>void 0),p&&r<=1){clearTimeout(b),t.resolve(p),h?.();return}g=E(e,lv,`watchBlockNumber`)({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(a){let c=e=>{clearTimeout(b),g?.(),e(),h?.()},l=a;if(!m)try{if(p){if(r>1&&(!p.blockNumber||l-p.blockNumber+1nt.resolve(p));return}if(n&&!d&&(m=!0,await Lm(async()=>{d=await E(e,L_,`getTransaction`)({hash:i}),d.blockNumber&&(l=d.blockNumber)},{delay:s,retryCount:o}),m=!1),p=await E(e,R_,`getTransactionReceipt`)({hash:i}),r>1&&(!p.blockNumber||l-p.blockNumber+1nt.resolve(p))}catch(n){if(n instanceof uo||n instanceof fo){if(!d){m=!1;return}try{f=d,m=!0;let n=await Lm(()=>E(e,ud,`getBlock`)({blockNumber:l,includeTransactions:!0}),{delay:s,retryCount:o,shouldRetry:({error:e})=>e instanceof rd});m=!1;let i=n.transactions.find(({from:e,nonce:t})=>e===f.from&&t===f.nonce);if(!i||(p=await E(e,R_,`getTransactionReceipt`)({hash:i.hash}),r>1&&(!p.blockNumber||l-p.blockNumber+1n{t.onReplaced?.({reason:a,replacedTransaction:f,transaction:i,transactionReceipt:p}),t.resolve(p)})}catch(e){c(()=>t.reject(e))}}else c(()=>t.reject(n))}}})}),_}ho();async function dv(e,{serializedTransaction:t,throwOnReceiptRevert:n,timeout:r}){let i=await e.request({method:`eth_sendRawTransactionSync`,params:r?[t,k(r)]:[t]},{retryCount:0}),a=(e.chain?.formatters?.transactionReceipt?.format||zm)(i);if(a.status===`reverted`&&n)throw new po({receipt:a});return a}A();async function fv(e,{chain:t}){let{id:n,name:r,nativeCurrency:i,rpcUrls:a,blockExplorers:o}=t;await e.request({method:`wallet_addEthereumChain`,params:[{chainId:k(n),chainName:r,nativeCurrency:i,rpcUrls:a.default.http,blockExplorerUrls:o?Object.values(o).map(({url:e})=>e):void 0}]},{dedupe:!0,retryCount:0})}jp();function pv(e,t){let{abi:n,args:r,bytecode:i,...a}=t,o=kp({abi:n,args:r,bytecode:i});return Pm(e,{...a,...a.authorizationList?{to:null}:{},data:o})}yi();async function mv(e){return e.account?.type===`local`?[e.account.address]:(await e.request({method:`eth_accounts`},{dedupe:!0})).map(e=>gi(e))}ra(),A();async function hv(e,t={}){let{account:n=e.account,chainId:r}=t,i=n?na(n):void 0,a=r?[i?.address,[k(r)]]:[i?.address],o=await e.request({method:`wallet_getCapabilities`,params:a}),s={};for(let[e,t]of Object.entries(o)){s[Number(e)]={};for(let[n,r]of Object.entries(t))n===`addSubAccount`&&(n=`unstable_addSubAccount`),s[Number(e)][n]=r}return typeof r==`number`?s[r]:s}async function gv(e){return await e.request({method:`wallet_getPermissions`},{dedupe:!0})}ra(),Rd();async function _v(e,t){let{account:n=e.account,chainId:r,nonce:i}=t;if(!n)throw new Om({docsPath:`/docs/eip7702/prepareAuthorization`});let a=na(n),o=(()=>{if(t.executor)return t.executor===`self`?t.executor:na(t.executor)})(),s={address:t.contractAddress??t.address,chainId:r,nonce:i};return s.chainId===void 0&&(s.chainId=e.chain?.id??await E(e,Md,`getChainId`)({})),s.nonce===void 0&&(s.nonce=await E(e,md,`getTransactionCount`)({address:a.address,blockTag:`pending`}),(o===`self`||o?.address&&Ld(o.address,a.address))&&(s.nonce+=1)),s}yi();async function vv(e){return(await e.request({method:`eth_requestAccounts`},{dedupe:!0,retryCount:0})).map(e=>_i(e))}async function yv(e,t){return e.request({method:`wallet_requestPermissions`,params:[t]},{retryCount:0})}async function bv(e,t){let{chain:n=e.chain}=t,r=t.timeout??Math.max((n?.blockTime??0)*3,5e3),i=await Hm(e,t);return await Wm(e,{...t,id:i.id,timeout:r})}ra(),O(),ho(),Lu(),Wu(),hi(),$u();var xv=new mi(128);async function Sv(e,t){let{account:n=e.account,chain:r=e.chain,accessList:i,authorizationList:a,blobs:o,data:s,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,pollingInterval:m,throwOnReceiptRevert:h,type:g,value:_,...v}=t,y=t.timeout??Math.max((r?.blockTime??0)*3,5e3);if(n===void 0)throw new Om({docsPath:`/docs/actions/wallet/sendTransactionSync`});let b=n?na(n):null;try{Qu(t);let n=await(async()=>{if(t.to)return t.to;if(t.to!==null&&a&&a.length>0)return await vu({authorization:a[0]}).catch(()=>{throw new D("`to` is required. Could not infer from `authorizationList`.")})})();if(b?.type===`json-rpc`||b===null){let t;r!==null&&(t=await E(e,Md,`getChainId`)({}),Am({currentChainId:t,chain:r}));let x=e.chain?.formatters?.transactionRequest?.format,S=(x||Bu)({...Iu(v,{format:x}),accessList:i,authorizationList:a,blobs:o,chainId:t,data:s,from:b?.address,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,to:n,type:g,value:_},`sendTransaction`),C=xv.get(e.uid),w=C?`wallet_sendTransaction`:`eth_sendTransaction`,ee=await(async()=>{try{return await e.request({method:w,params:[S]},{retryCount:0})}catch(t){if(C===!1)throw t;let n=t;if(n.name===`InvalidInputRpcError`||n.name===`InvalidParamsRpcError`||n.name===`MethodNotFoundRpcError`||n.name===`MethodNotSupportedRpcError`)return await e.request({method:`wallet_sendTransaction`,params:[S]},{retryCount:0}).then(t=>(xv.set(e.uid,!0),t)).catch(t=>{let r=t;throw r.name===`MethodNotFoundRpcError`||r.name===`MethodNotSupportedRpcError`?(xv.set(e.uid,!1),n):r});throw n}})(),te=await E(e,uv,`waitForTransactionReceipt`)({checkReplacement:!1,hash:ee,pollingInterval:m,timeout:y});if(h&&te.status===`reverted`)throw new po({receipt:te});return te}if(b?.type===`local`){let t=await E(e,Fd,`prepareTransactionRequest`)({account:b,accessList:i,authorizationList:a,blobs:o,chain:r,data:s,gas:c,gasPrice:l,maxFeePerBlobGas:u,maxFeePerGas:d,maxPriorityFeePerGas:f,nonce:p,nonceManager:b.nonceManager,parameters:[...Nd,`sidecars`],type:g,value:_,...v,to:n}),m=r?.serializers?.transaction,y=await b.signTransaction(t,{serializer:m});return await E(e,dv,`sendRawTransactionSync`)({serializedTransaction:y,throwOnReceiptRevert:h})}throw b?.type===`smart`?new km({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:`/docs/actions/bundler/sendUserOperation`,type:`smart`}):new km({docsPath:`/docs/actions/wallet/sendTransactionSync`,type:b?.type})}catch(e){throw e instanceof km?e:jm(e,{...t,account:b,chain:t.chain||void 0})}}async function Cv(e,t){let{id:n}=t;await e.request({method:`wallet_showCallsStatus`,params:[n]})}ra();async function wv(e,t){let{account:n=e.account}=t;if(!n)throw new Om({docsPath:`/docs/eip7702/signAuthorization`});let r=na(n);if(!r.signAuthorization)throw new km({docsPath:`/docs/eip7702/signAuthorization`,metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:r.type});let i=await _v(e,t);return r.signAuthorization(i)}ra(),A();async function Tv(e,{account:t=e.account,message:n}){if(!t)throw new Om({docsPath:`/docs/actions/wallet/signMessage`});let r=na(t);if(r.signMessage)return r.signMessage({message:n});let i=(()=>typeof n==`string`?jn(n):n.raw instanceof Uint8Array?On(n.raw):n.raw)();return e.request({method:`personal_sign`,params:[i,r.address]},{retryCount:0})}ra(),A(),Wu(),$u();async function Ev(e,t){let{account:n=e.account,chain:r=e.chain,...i}=t;if(!n)throw new Om({docsPath:`/docs/actions/wallet/signTransaction`});let a=na(n);Qu({account:a,...t});let o=await E(e,Md,`getChainId`)({});r!==null&&Am({currentChainId:o,chain:r});let s=(r?.formatters||e.chain?.formatters)?.transactionRequest?.format||Bu;return a.signTransaction?a.signTransaction({...i,chainId:o},{serializer:e.chain?.serializers?.transaction}):await e.request({method:`eth_signTransaction`,params:[{...s(i,`signTransaction`),chainId:k(o),from:a.address}]},{retryCount:0})}ra();async function Dv(e,t){let{account:n=e.account,domain:r,message:i,primaryType:a}=t;if(!n)throw new Om({docsPath:`/docs/actions/wallet/signTypedData`});let o=na(n),s={EIP712Domain:jh({domain:r}),...t.types};if(Ah({domain:r,message:i,primaryType:a,types:s}),o.signTypedData)return o.signTypedData({domain:r,message:i,primaryType:a,types:s});let c=kh({domain:r,message:i,primaryType:a,types:s});return e.request({method:`eth_signTypedData_v4`,params:[o.address,c]},{retryCount:0})}A();async function Ov(e,{id:t}){await e.request({method:`wallet_switchEthereumChain`,params:[{chainId:k(t)}]},{retryCount:0})}async function kv(e,t){return await e.request({method:`wallet_watchAsset`,params:t},{retryCount:0})}async function Av(e,t){return Fm.internal(e,Sv,`sendTransactionSync`,t)}function jv(e){return{addChain:t=>fv(e,t),deployContract:t=>pv(e,t),getAddresses:()=>mv(e),getCallsStatus:t=>Um(e,t),getCapabilities:t=>hv(e,t),getChainId:()=>Md(e),getPermissions:()=>gv(e),prepareAuthorization:t=>_v(e,t),prepareTransactionRequest:t=>Fd(e,t),requestAddresses:()=>vv(e),requestPermissions:t=>yv(e,t),sendCalls:t=>Hm(e,t),sendCallsSync:t=>bv(e,t),sendRawTransaction:t=>Mm(e,t),sendRawTransactionSync:t=>dv(e,t),sendTransaction:t=>Pm(e,t),sendTransactionSync:t=>Sv(e,t),showCallsStatus:t=>Cv(e,t),signAuthorization:t=>wv(e,t),signMessage:t=>Tv(e,t),signTransaction:t=>Ev(e,t),signTypedData:t=>Dv(e,t),switchChain:t=>Ov(e,t),waitForCallsStatus:t=>Wm(e,t),watchAsset:t=>kv(e,t),writeContract:t=>Fm(e,t),writeContractSync:t=>Av(e,t)}}function Mv(e){let{key:t=`wallet`,name:n=`Wallet Client`,transport:r}=e;return Xm({...e,key:t,name:n,transport:r,type:`walletClient`}).extend(jv)}function Nv({key:e,methods:t,name:n,request:r,retryCount:i=3,retryDelay:a=150,timeout:o,type:s},c){let l=Ym();return{config:{key:e,methods:t,name:n,request:r,retryCount:i,retryDelay:a,timeout:o,type:s},request:vh(r,{methods:t,retryCount:i,retryDelay:a,uid:l}),value:c}}function Pv(e,t={}){let{key:n=`custom`,methods:r,name:i=`Custom Provider`,retryDelay:a}=t;return({retryCount:o})=>Nv({key:n,methods:r,name:i,request:e.request.bind(e),retryCount:t.retryCount??o,retryDelay:a,type:`custom`})}Mu(),os();function Fv(e,t={}){let{key:n=`fallback`,name:r=`Fallback`,rank:i=!1,shouldThrow:a=Iv,retryCount:o,retryDelay:s}=t;return(({chain:t,pollingInterval:c=4e3,timeout:l,...u})=>{let d=e,f=()=>{},p=Nv({key:n,name:r,async request({method:e,params:n}){let r,i=async(o=0)=>{let s=d[o]({...u,chain:t,retryCount:0,timeout:l});try{let t=await s.request({method:e,params:n});return f({method:e,params:n,response:t,transport:s,status:`success`}),t}catch(c){if(f({error:c,method:e,params:n,transport:s,status:`error`}),a(c)||o===d.length-1||(r??=d.slice(o+1).some(n=>{let{include:r,exclude:i}=n({chain:t}).config.methods||{};return r?r.includes(e):i?!i.includes(e):!0}),!r))throw c;return i(o+1)}};return i()},retryCount:o,retryDelay:s,type:`fallback`},{onResponse:e=>f=e,transports:d.map(e=>e({chain:t,retryCount:0}))});if(i){let e=typeof i==`object`?i:{};Lv({chain:t,interval:e.interval??c,onTransports:e=>d=e,ping:e.ping,sampleCount:e.sampleCount,timeout:e.timeout,transports:d,weights:e.weights})}return p})}function Iv(e){return!!(`code`in e&&typeof e.code==`number`&&(e.code===Bo.code||e.code===Wo.code||bu.nodeMessage.test(e.message)||e.code===5e3))}function Lv({chain:e,interval:t=4e3,onTransports:n,ping:r,sampleCount:i=10,timeout:a=1e3,transports:o,weights:s={}}){let{stability:c=.7,latency:l=.3}=s,u=[],d=async()=>{let s=await Promise.all(o.map(async t=>{let n=t({chain:e,retryCount:0,timeout:a}),i=Date.now(),o,s;try{await(r?r({transport:n}):n.request({method:`net_listening`})),s=1}catch{s=0}finally{o=Date.now()}return{latency:o-i,success:s}}));u.push(s),u.length>i&&u.shift();let f=Math.max(...u.map(e=>Math.max(...e.map(({latency:e})=>e)))),p=o.map((e,t)=>{let n=u.map(e=>e[t].latency),r=1-n.reduce((e,t)=>e+t,0)/n.length/f,i=u.map(e=>e[t].success),a=i.reduce((e,t)=>e+t,0)/i.length;return a===0?[0,t]:[l*r+c*a,t]}).sort((e,t)=>t[0]-e[0]);n(p.map(([,e])=>o[e])),await bm(t),d()};d()}O();var Rv=class extends D{constructor(){super(`No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.`,{docsPath:`/docs/clients/intro`,name:`UrlRequiredError`})}};ko(),Bp();function zv(e,t={}){let{batch:n,fetchFn:r,fetchOptions:i,key:a=`http`,methods:o,name:s=`HTTP JSON-RPC`,onFetchRequest:c,onFetchResponse:l,retryDelay:u,raw:d}=t;return({chain:f,retryCount:p,timeout:m})=>{let{batchSize:h=1e3,wait:g=0}=typeof n==`object`?n:{},_=t.retryCount??p,v=m??t.timeout??1e4,y=e||f?.rpcUrls.default.http[0];if(!y)throw new Rv;let b=Ch(y,{fetchFn:r,fetchOptions:i,onRequest:c,onResponse:l,timeout:v});return Nv({key:a,methods:o,name:s,async request({method:e,params:t}){let r={method:e,params:t},{schedule:i}=Rp({id:y,wait:g,shouldSplitBatch(e){return e.length>h},fn:e=>b.request({body:e}),sort:(e,t)=>e.id-t.id}),[{error:a,result:o}]=await(async e=>n?i(e):[await b.request({body:e})])(r);if(d)return{error:a,result:o};if(a)throw new Do({body:r,error:a,url:y});return o},retryCount:_,retryDelay:u,timeout:v,type:`http`},{fetchOptions:i,url:y})}}const Bv=L({id:16600,name:`0G Newton Testnet`,nativeCurrency:{name:`A0GI`,symbol:`A0GI`,decimals:18},rpcUrls:{default:{http:[`https://evmrpc-testnet.0g.ai`]}},blockExplorers:{default:{name:`0G BlockChain Explorer`,url:`https://chainscan-newton.0g.ai`}},testnet:!0}),Vv=L({id:16601,name:`0G Galileo Testnet`,nativeCurrency:{name:`A0GI`,symbol:`A0GI`,decimals:18},rpcUrls:{default:{http:[`https://evmrpc-testnet.0g.ai`]}},blockExplorers:{default:{name:`0G BlockChain Explorer`,url:`https://chainscan-galileo.0g.ai`}},testnet:!0}),Hv=L({id:16661,name:`0G Mainnet`,nativeCurrency:{name:`0G`,symbol:`0G`,decimals:18},rpcUrls:{default:{http:[`https://evmrpc.0g.ai`]}},blockExplorers:{default:{name:`0G BlockChain Explorer`,url:`https://chainscan.0g.ai`}},testnet:!1}),Uv=L({id:995,name:`5ireChain`,nativeCurrency:{name:`5ire Token`,symbol:`5IRE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.5ire.network`]}},blockExplorers:{default:{name:`5ireChain Mainnet Explorer`,url:`https://5irescan.io/`}},testnet:!1}),Wv=L({id:179,name:`ABEY Mainnet`,nativeCurrency:{name:`ABEY`,symbol:`ABEY`,decimals:18},rpcUrls:{default:{http:[`https://rpc.abeychain.com`]}},blockExplorers:{default:{name:`Abey Scan`,url:`https://abeyscan.com`}},testnet:!1});Zu();const Gv=50000n,Kv=Yu*32n;Dn(),Hn(),A(),Wu();const qv={block:ld({format(e){let t=e.transactions?.map(e=>{if(typeof e==`string`)return e;let t=qv.transaction?.format(e);return t.typeHex===`0x71`?t.type=`eip712`:t.typeHex===`0xff`&&(t.type=`priority`),t});return{l1BatchNumber:e.l1BatchNumber?wn(e.l1BatchNumber):null,l1BatchTimestamp:e.l1BatchTimestamp?wn(e.l1BatchTimestamp):null,transactions:t}}}),transaction:od({format(e){let t={};return e.type===`0x71`?t.type=`eip712`:e.type===`0xff`&&(t.type=`priority`),{...t,l1BatchNumber:e.l1BatchNumber?wn(e.l1BatchNumber):null,l1BatchTxIndex:e.l1BatchTxIndex?wn(e.l1BatchTxIndex):null}}}),transactionReceipt:Bm({format(e){return{l1BatchNumber:e.l1BatchNumber?wn(e.l1BatchNumber):null,l1BatchTxIndex:e.l1BatchTxIndex?wn(e.l1BatchTxIndex):null,logs:e.logs.map(e=>({...zd(e),l1BatchNumber:e.l1BatchNumber?wn(e.l1BatchNumber):null,transactionLogIndex:En(e.transactionLogIndex),logType:e.logType})),l2ToL1Logs:e.l2ToL1Logs.map(e=>({blockNumber:wn(e.blockHash),blockHash:e.blockHash,l1BatchNumber:e.l1BatchNumber?wn(e.l1BatchNumber):null,transactionIndex:wn(e.transactionIndex),shardId:wn(e.shardId),isService:e.isService,sender:e.sender,key:e.key,value:e.value,transactionHash:e.transactionHash,logIndex:wn(e.logIndex)}))}}}),transactionRequest:Uu({exclude:[`customSignature`,`factoryDeps`,`gasPerPubdata`,`paymaster`,`paymasterInput`],format(e){return e.gasPerPubdata||e.paymaster&&e.paymasterInput||e.factoryDeps||e.customSignature?{eip712Meta:{...e.gasPerPubdata?{gasPerPubdata:On(e.gasPerPubdata)}:{gasPerPubdata:On(Gv)},...e.paymaster&&e.paymasterInput?{paymasterParams:{paymaster:e.paymaster,paymasterInput:Array.from(Ln(e.paymasterInput))}}:{},...e.factoryDeps?{factoryDeps:e.factoryDeps.map(e=>Array.from(Ln(e)))}:{},...e.customSignature?{customSignature:Array.from(Ln(e.customSignature))}:{}},type:`0x71`}:{}}})};O();var Jv=class extends D{constructor(){super([`Transaction is not an EIP712 transaction.`,``,`Transaction must:`,' - include `type: "eip712"`'," - include one of the following: `customSignature`, `paymaster`, `paymasterInput`, `gasPerPubdata`, `factoryDeps`"].join(` +`),{name:`InvalidEip712TransactionError`})}};function Yv(e){return!!(e.type===`eip712`||`customSignature`in e&&e.customSignature||`paymaster`in e&&e.paymaster||`paymasterInput`in e&&e.paymasterInput||`gasPerPubdata`in e&&typeof e.gasPerPubdata==`bigint`||`factoryDeps`in e&&e.factoryDeps)}pi(),O(),Op(),Ci();function Xv(e){let{chainId:t,to:n,from:r,paymaster:i,paymasterInput:a}=e;if(!Yv(e))throw new Jv;if(!t||t<=0)throw new Dp({chainId:t});if(n&&!bi(n))throw new fi({address:n});if(r&&!bi(r))throw new fi({address:r});if(i&&!bi(i))throw new fi({address:i});if(i&&!a)throw new D("`paymasterInput` must be provided when `paymaster` is defined");if(!i&&a)throw new D("`paymaster` must be provided when `paymasterInput` is defined")}Di(),A();function Zv(e,t){return Yv(e)?$v(e):sh(e,t)}const Qv={transaction:Zv};function $v(e){let{chainId:t,gas:n,nonce:r,to:i,from:a,value:o,maxFeePerGas:s,maxPriorityFeePerGas:c,customSignature:l,factoryDeps:u,paymaster:d,paymasterInput:f,gasPerPubdata:p,data:m}=e;Xv(e);let h=[r?On(r):`0x`,c?On(c):`0x`,s?On(s):`0x`,n?On(n):`0x`,i??`0x`,o?On(o):`0x`,m??`0x`,On(t),On(``),On(``),On(t),a??`0x`,On(p||Gv),u??[],l??`0x`,d&&f?[d,f]:[]];return Ei([`0x71`,M(h)])}O();var ey=class extends D{constructor({givenLength:e,maxBytecodeSize:t}){super(`Bytecode cannot be longer than ${t} bytes. Given length: ${e}`,{name:`BytecodeLengthExceedsMaxSizeError`})}},ty=class extends D{constructor({givenLengthInWords:e}){super(`Bytecode length in 32-byte words must be odd. Given length in words: ${e}`,{name:`BytecodeLengthInWordsMustBeOddError`})}},ny=class extends D{constructor({givenLength:e}){super(`The bytecode length in bytes must be divisible by 32. Given length: ${e}`,{name:`BytecodeLengthMustBeDivisibleBy32Error`})}};hn(),Hn();function ry(e){let t=Pn(e);if(t.length%32!=0)throw new ny({givenLength:t.length});if(t.length>Kv)throw new ey({givenLength:t.length,maxBytecodeSize:Kv});let n=vd(t),r=Pn(n),i=t.length/32;if(i%2==0)throw new ty({givenLengthInWords:i});let a=Pn(i),o=fn(a,{size:2}),s=new Uint8Array([1,0]);return r.set(s,0),r.set(o,2),r}A();const iy=e=>{Xv(e);let t=ay(e);return{domain:{name:`zkSync`,version:`2`,chainId:e.chainId},types:{Transaction:[{name:`txType`,type:`uint256`},{name:`from`,type:`uint256`},{name:`to`,type:`uint256`},{name:`gasLimit`,type:`uint256`},{name:`gasPerPubdataByteLimit`,type:`uint256`},{name:`maxFeePerGas`,type:`uint256`},{name:`maxPriorityFeePerGas`,type:`uint256`},{name:`paymaster`,type:`uint256`},{name:`nonce`,type:`uint256`},{name:`value`,type:`uint256`},{name:`data`,type:`bytes`},{name:`factoryDeps`,type:`bytes32[]`},{name:`paymasterInput`,type:`bytes`}]},primaryType:`Transaction`,message:t}};function ay(e){let{gas:t,nonce:n,to:r,from:i,value:a,maxFeePerGas:o,maxPriorityFeePerGas:s,factoryDeps:c,paymaster:l,paymasterInput:u,gasPerPubdata:d,data:f}=e;return{txType:113n,from:BigInt(i),to:r?BigInt(r):0n,gasLimit:t??0n,gasPerPubdataByteLimit:d??50000n,maxFeePerGas:o??0n,maxPriorityFeePerGas:s??0n,paymaster:l?BigInt(l):0n,nonce:n?BigInt(n):0n,value:a??0n,data:f??`0x`,factoryDeps:c?.map(e=>On(ry(e)))??[],paymasterInput:u||`0x`}}const oy={blockTime:1e3,formatters:qv,serializers:Qv,custom:{getEip712Domain:iy}},sy=L({...oy,id:2741,name:`Abstract`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://api.mainnet.abs.xyz`],webSocket:[`wss://api.mainnet.abs.xyz/ws`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://abscan.org`},native:{name:`Abstract Explorer`,url:`https://explorer.mainnet.abs.xyz`}},contracts:{multicall3:{address:`0xAa4De41dba0Ca5dCBb288b7cC6b708F3aaC759E7`,blockCreated:5288},erc6492Verifier:{address:`0xfB688330379976DA81eB64Fe4BF50d7401763B9C`,blockCreated:5263}}}),cy=L({...oy,id:11124,name:`Abstract Testnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://api.testnet.abs.xyz`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://sepolia.abscan.org`},native:{name:`Abstract Explorer`,url:`https://explorer.testnet.abs.xyz`}},testnet:!0,contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`,blockCreated:358349},erc6492Verifier:{address:`0xfB688330379976DA81eB64Fe4BF50d7401763B9C`,blockCreated:431682}}}),ly=L({id:787,name:`Acala`,network:`acala`,nativeCurrency:{name:`Acala`,symbol:`ACA`,decimals:18},rpcUrls:{default:{http:[`https://eth-rpc-acala.aca-api.network`],webSocket:[`wss://eth-rpc-acala.aca-api.network`]}},blockExplorers:{default:{name:`Acala Blockscout`,url:`https://blockscout.acala.network`,apiUrl:`https://blockscout.acala.network/api`}},testnet:!1}),uy=L({id:47,name:`Acria IntelliChain`,nativeCurrency:{decimals:18,name:`ACRIA`,symbol:`ACRIA`},rpcUrls:{default:{http:[`https://aic.acria.ai`]}},blockExplorers:{default:{name:`Acria Explorer`,url:`https://explorer.acria.ai`}},testnet:!1}),dy=L({id:1215,name:`ADF Chain`,nativeCurrency:{name:`ADDFILL`,symbol:`ADF`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.adftechnology.com`]}},blockExplorers:{default:{name:`ADF Mainnet Explorer`,url:`https://explorer.adftechnology.com`}},testnet:!1}),fy=L({id:9990,name:`Agung Network`,nativeCurrency:{decimals:18,name:`Agung`,symbol:`AGNG`},rpcUrls:{default:{http:[`https://wss-async.agung.peaq.network`],webSocket:[`wss://wss-async.agung.peaq.network`]}},blockExplorers:{default:{name:`Subscan`,url:`https://agung-testnet.subscan.io`}},testnet:!0}),py=L({id:168,name:`AIOZ Network`,nativeCurrency:{decimals:18,name:`AIOZ`,symbol:`AIOZ`},rpcUrls:{default:{http:[`https://eth-dataseed.aioz.network`]}},blockExplorers:{default:{name:`AIOZ Explorer`,url:`https://explorer.aioz.network`}},testnet:!1}),my=L({id:41455,name:`Aleph Zero`,nativeCurrency:{name:`Aleph Zero`,symbol:`AZERO`,decimals:18},rpcUrls:{default:{http:[`https://rpc.alephzero.raas.gelato.cloud`]}},blockExplorers:{default:{name:`Aleph Zero EVM Explorer`,url:`https://evm-explorer.alephzero.org`,apiUrl:`https://evm-explorer.alephzero.org/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:4603377}}}),hy=L({id:2039,name:`Aleph Zero Testnet`,nativeCurrency:{name:`TZERO`,symbol:`TZERO`,decimals:18},rpcUrls:{default:{http:[`https://rpc.alephzero-testnet.gelato.digital`],webSocket:[`wss://ws.alephzero-testnet.gelato.digital`]}},blockExplorers:{default:{name:`Aleph Zero EVM Testnet explorer`,url:`https://evm-explorer-testnet.alephzero.org`,apiUrl:`https://evm-explorer-testnet.alephzero.org/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:2861745}},testnet:!0}),gy=L({id:10241024,name:`AlienX Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.alienxchain.io/http`]}},blockExplorers:{default:{name:`AlienX Explorer`,url:`https://explorer.alienxchain.io`}},testnet:!1}),_y=L({id:10241025,name:`ALIENX Hal Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://hal-rpc.alienxchain.io/http`]}},blockExplorers:{default:{name:`AlienX Explorer`,url:`https://hal-explorer.alienxchain.io`}},testnet:!0}),vy={gasPriceOracle:{address:`0x420000000000000000000000000000000000000F`},l1Block:{address:`0x4200000000000000000000000000000000000015`},l2CrossDomainMessenger:{address:`0x4200000000000000000000000000000000000007`},l2Erc721Bridge:{address:`0x4200000000000000000000000000000000000014`},l2StandardBridge:{address:`0x4200000000000000000000000000000000000010`},l2ToL1MessagePasser:{address:`0x4200000000000000000000000000000000000016`}};Dn();const yy={block:ld({format(e){return{transactions:e.transactions?.map(e=>{if(typeof e==`string`)return e;let t=ad(e);return t.typeHex===`0x7e`&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?wn(e.mint):void 0,t.sourceHash=e.sourceHash,t.type=`deposit`),t}),stateRoot:e.stateRoot}}}),transaction:od({format(e){let t={};return e.type===`0x7e`&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?wn(e.mint):void 0,t.sourceHash=e.sourceHash,t.type=`deposit`),t}}),transactionReceipt:Bm({format(e){return{l1GasPrice:e.l1GasPrice?wn(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?wn(e.l1GasUsed):null,l1Fee:e.l1Fee?wn(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};pi(),Ci(),Di(),A();function by(e,t){return Cy(e)?Sy(e):sh(e,t)}const xy={transaction:by};function Sy(e){wy(e);let{sourceHash:t,data:n,from:r,gas:i,isSystemTx:a,mint:o,to:s,value:c}=e,l=[t,r,s??`0x`,o?On(o):`0x`,c?On(c):`0x`,i?On(i):`0x`,a?`0x1`:`0x`,n??`0x`];return Ei([`0x7e`,M(l)])}function Cy(e){return e.type===`deposit`||e.sourceHash!==void 0}function wy(e){let{from:t,to:n}=e;if(t&&!bi(t))throw new fi({address:t});if(n&&!bi(n))throw new fi({address:n})}const R={blockTime:2e3,contracts:vy,formatters:yy,serializers:xy};var Ty=1;const Ey=L({...R,id:888888888,name:`Ancient8`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.ancient8.gg`]}},blockExplorers:{default:{name:`Ancient8 explorer`,url:`https://scan.ancient8.gg`,apiUrl:`https://scan.ancient8.gg/api`}},contracts:{...R.contracts,l2OutputOracle:{[Ty]:{address:`0xB09DC08428C8b4EFB4ff9C0827386CDF34277996`}},portal:{[Ty]:{address:`0x639F2AECE398Aa76b07e59eF6abe2cFe32bacb68`,blockCreated:19070571}},l1StandardBridge:{[Ty]:{address:`0xd5e3eDf5b68135D559D572E26bF863FBC1950033`,blockCreated:19070571}}},sourceId:Ty});var Dy=11155111;const Oy=L({...R,id:28122024,name:`Ancient8 Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpcv2-testnet.ancient8.gg`]}},blockExplorers:{default:{name:`Ancient8 Celestia Testnet explorer`,url:`https://scanv2-testnet.ancient8.gg`,apiUrl:`https://scanv2-testnet.ancient8.gg/api`}},contracts:{...R.contracts,l2OutputOracle:{[Dy]:{address:`0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB`}},portal:{[Dy]:{address:`0xfa1d9E26A6aCD7b22115D27572c1221B9803c960`,blockCreated:4972908}},l1StandardBridge:{[Dy]:{address:`0xF6Bc0146d3c74D48306e79Ae134A260E418C9335`,blockCreated:4972908}}},sourceId:Dy}),ky=L({id:31337,name:`Anvil`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`],webSocket:[`ws://127.0.0.1:8545`]}}}),Ay=L({id:33139,name:`Ape Chain`,nativeCurrency:{name:`ApeCoin`,symbol:`APE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.apechain.com/http`],webSocket:[`wss://rpc.apechain.com/ws`]}},blockExplorers:{default:{name:`Apescan`,url:`https://apescan.io`,apiUrl:`https://api.apescan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:20889}},sourceId:42161}),jy=L({id:3993,name:`APEX Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.apexlayer.xyz`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://exp-testnet.apexlayer.xyz`,apiUrl:`https://exp-testnet.apexlayer.xyz/api`}},contracts:{multicall3:{address:`0xf7642be33a6b18D16a995657adb5a68CD0438aE2`,blockCreated:283775}},testnet:!0}),My=L({id:42161,name:`Arbitrum One`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},blockTime:250,rpcUrls:{default:{http:[`https://arb1.arbitrum.io/rpc`]}},blockExplorers:{default:{name:`Arbiscan`,url:`https://arbiscan.io`,apiUrl:`https://api.arbiscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:7654707}}}),Ny=L({id:421613,name:`Arbitrum Goerli`,nativeCurrency:{name:`Arbitrum Goerli Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://goerli-rollup.arbitrum.io/rpc`]}},blockExplorers:{default:{name:`Arbiscan`,url:`https://goerli.arbiscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:88114}},testnet:!0}),Py=L({id:42170,name:`Arbitrum Nova`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://nova.arbitrum.io/rpc`]}},blockExplorers:{default:{name:`Arbiscan`,url:`https://nova.arbiscan.io`,apiUrl:`https://api-nova.arbiscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1746963}}}),Fy=L({id:421614,name:`Arbitrum Sepolia`,blockTime:250,nativeCurrency:{name:`Arbitrum Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia-rollup.arbitrum.io/rpc`]}},blockExplorers:{default:{name:`Arbiscan`,url:`https://sepolia.arbiscan.io`,apiUrl:`https://api-sepolia.arbiscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:81930}},testnet:!0}),Iy=L({id:7897,name:`Arena-Z`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.arena-z.gg`]}},blockExplorers:{default:{name:`Arena-Z Explorer`,url:`https://explorer.arena-z.gg`,apiUrl:`https://explorer.arena-z.gg`}}}),Ly=L({id:463,name:`Areon Network`,nativeCurrency:{decimals:18,name:`AREA`,symbol:`AREA`},rpcUrls:{default:{http:[`https://mainnet-rpc.areon.network`],webSocket:[`wss://mainnet-ws.areon.network`]}},blockExplorers:{default:{name:`Areonscan`,url:`https://areonscan.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:353286}},testnet:!1}),Ry=L({id:462,name:`Areon Network Testnet`,nativeCurrency:{decimals:18,name:`TAREA`,symbol:`TAREA`},rpcUrls:{default:{http:[`https://testnet-rpc.areon.network`],webSocket:[`wss://testnet-ws.areon.network`]}},blockExplorers:{default:{name:`Areonscan`,url:`https://areonscan.com`}},testnet:!0}),zy=L({id:463,name:`Areum`,nativeCurrency:{decimals:18,name:`AREA`,symbol:`AREA`},rpcUrls:{default:{http:[`https://mainnet-rpc.areum.network`],webSocket:[`wss://mainnet-ws.areum.network`]}},blockExplorers:{default:{name:`Areum Explorer`,url:`https://explorer.areum.network`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:353286}},testnet:!1}),By=L({id:11822,name:`Artela Testnet`,nativeCurrency:{name:`ART`,symbol:`ART`,decimals:18},rpcUrls:{default:{http:[`https://betanet-rpc1.artela.network`]}},blockExplorers:{default:{name:`Artela`,url:`https://betanet-scan.artela.network`,apiUrl:`https://betanet-scan.artela.network/api`}},contracts:{multicall3:{address:`0xd07c8635f76e8745Ee7092fbb6e8fbc5FeF09DD7`,blockCreated:7001871}},testnet:!0}),Vy=L({id:10242,name:`Arthera`,nativeCurrency:{name:`Arthera`,symbol:`AA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.arthera.net`]}},blockExplorers:{default:{name:`Arthera EVM Explorer`,url:`https://explorer.arthera.net`,apiUrl:`https://explorer.arthera.net/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:4502791}}}),Hy=L({id:10243,name:`Arthera Testnet`,nativeCurrency:{name:`Arthera`,symbol:`AA`,decimals:18},rpcUrls:{default:{http:[`https://rpc-test.arthera.net`]}},blockExplorers:{default:{name:`Arthera EVM Explorer`,url:`https://explorer-test.arthera.net`,apiUrl:`https://explorer-test.arthera.net/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:22051}}}),Uy=L({id:42420,name:`AssetChain Mainnet`,nativeCurrency:{decimals:18,name:`Real World Asset`,symbol:`RWA`},rpcUrls:{default:{http:[`https://mainnet-rpc.assetchain.org`]}},blockExplorers:{default:{name:`Asset Chain Explorer`,url:`https://scan.assetchain.org`,apiUrl:`https://scan.assetchain.org/api`}},testnet:!1,contracts:{}}),Wy=L({id:42421,name:`AssetChain Testnet`,nativeCurrency:{decimals:18,name:`Real World Asset`,symbol:`RWA`},rpcUrls:{default:{http:[`https://enugu-rpc.assetchain.org`]}},blockExplorers:{default:{name:`Asset Chain Testnet Explorer`,url:`https://scan-testnet.assetchain.org`,apiUrl:`https://scan-testnet.assetchain.org/api`}},testnet:!0,contracts:{multicall3:{address:`0x989F832D35988cb5e3eB001Fa2Fe789469EC31Ea`,blockCreated:17177}}}),Gy=L({id:592,name:`Astar`,network:`astar-mainnet`,nativeCurrency:{name:`Astar`,symbol:`ASTR`,decimals:18},rpcUrls:{default:{http:[`https://astar.api.onfinality.io/public`]}},blockExplorers:{default:{name:`Astar Subscan`,url:`https://astar.subscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:761794}},testnet:!1}),Ky=L({id:3776,name:`Astar zkEVM`,network:`AstarZkEVM`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-zkevm.astar.network`]}},blockExplorers:{default:{name:`Astar zkEVM Explorer`,url:`https://astar-zkevm.explorer.startale.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:93528}},testnet:!1}),qy=L({id:6038361,name:`Astar zkEVM Testnet zKyoto`,network:`zKyoto`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.startale.com/zkyoto`]}},blockExplorers:{default:{name:`zKyoto Explorer`,url:`https://zkyoto.explorer.startale.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:196153}},testnet:!0}),Jy=L({id:2340,name:`Atleta Olympia`,nativeCurrency:{decimals:18,name:`Atla`,symbol:`ATLA`},rpcUrls:{default:{http:[`https://testnet-rpc.atleta.network:9944`,`https://testnet-rpc.atleta.network`],ws:[`wss://testnet-rpc.atleta.network:9944`]}},blockExplorers:{default:{name:`Atleta Olympia Explorer`,url:`https://blockscout.atleta.network`,apiUrl:`https://blockscout.atleta.network/api`}},contracts:{multicall3:{address:`0x1472ec6392180fb84F345d2455bCC75B26577115`,blockCreated:1076473}},testnet:!0}),Yy=L({id:1313161554,name:`Aurora`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.aurora.dev`]}},blockExplorers:{default:{name:`Aurorascan`,url:`https://aurorascan.dev`,apiUrl:`https://aurorascan.dev/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:62907816}}}),Xy=L({id:1313161555,name:`Aurora Testnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://testnet.aurora.dev`]}},blockExplorers:{default:{name:`Aurorascan`,url:`https://testnet.aurorascan.dev`,apiUrl:`https://testnet.aurorascan.dev/api`}},testnet:!0}),Zy=L({id:205205,name:`Auroria Testnet`,network:`auroria`,nativeCurrency:{name:`Auroria Stratis`,symbol:`tSTRAX`,decimals:18},rpcUrls:{default:{http:[`https://auroria.rpc.stratisevm.com`]}},blockExplorers:{default:{name:`Auroria Testnet Explorer`,url:`https://auroria.explorer.stratisevm.com`}},testnet:!0}),Qy=L({id:785,name:`Autheo Testnet`,nativeCurrency:{decimals:18,name:`Autheo`,symbol:`THEO`},rpcUrls:{default:{http:[`https://testnet-rpc1.autheo.com`,`https://testnet-rpc2.autheo.com`]}},blockExplorers:{default:{name:`Autheo Testnet Block Explorer`,url:`https://testnet-explorer.autheo.com/`}}}),$y=L({id:43114,name:`Avalanche`,blockTime:1700,nativeCurrency:{decimals:18,name:`Avalanche`,symbol:`AVAX`},rpcUrls:{default:{http:[`https://api.avax.network/ext/bc/C/rpc`]}},blockExplorers:{default:{name:`SnowTrace`,url:`https://snowtrace.io`,apiUrl:`https://api.snowtrace.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:11907934}}}),eb=L({id:43113,name:`Avalanche Fuji`,nativeCurrency:{decimals:18,name:`Avalanche Fuji`,symbol:`AVAX`},rpcUrls:{default:{http:[`https://api.avax-test.network/ext/bc/C/rpc`]}},blockExplorers:{default:{name:`SnowTrace`,url:`https://testnet.snowtrace.io`,apiUrl:`https://api-testnet.snowtrace.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:7096959}},testnet:!0}),tb=L({id:8333,name:`B3`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-rpc.b3.fun/http`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.b3.fun`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0}},sourceId:8453}),nb=L({id:1993,name:`B3 Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.b3.fun/http`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://sepolia.explorer.b3.fun`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0}},testnet:!0,sourceId:168587773}),rb=L({id:5165,network:`bahamut`,name:`Bahamut`,nativeCurrency:{name:`Fasttoken`,symbol:`FTN`,decimals:18},rpcUrls:{default:{http:[`https://rpc1.bahamut.io`,`https://bahamut-rpc.publicnode.com`,`https://rpc2.bahamut.io`],webSocket:[`wss://ws1.sahara.bahamutchain.com`,`wss://bahamut-rpc.publicnode.com`,`wss://ws2.sahara.bahamutchain.com`]}},blockExplorers:{default:{name:`Ftnscan`,url:`https://www.ftnscan.com`,apiUrl:`https://www.ftnscan.com/api`}}});var ib=1;const ab=L({...R,id:8453,name:`Base`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.base.org`]}},blockExplorers:{default:{name:`Basescan`,url:`https://basescan.org`,apiUrl:`https://api.basescan.org/api`}},contracts:{...R.contracts,disputeGameFactory:{[ib]:{address:`0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e`}},l2OutputOracle:{[ib]:{address:`0x56315b90c40730925ec5485cf004d835058518A0`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:5022},portal:{[ib]:{address:`0x49048044D57e1C92A77f79988d21Fa8fAF74E97e`,blockCreated:17482143}},l1StandardBridge:{[ib]:{address:`0x3154Cf16ccdb4C6d922629664174b904d80F2C35`,blockCreated:17482143}}},sourceId:ib}),ob=L({...ab,experimental_preconfirmationTime:200,rpcUrls:{default:{http:[`https://mainnet-preconf.base.org`]}}}),sb=L({id:123420001114,name:`Basecamp Testnet`,nativeCurrency:{decimals:18,name:`Camp`,symbol:`CAMP`},rpcUrls:{default:{http:[`https://rpc.basecamp.t.raas.gelato.cloud`]}},blockExplorers:{default:{name:`basecamp`,url:`https://basecamp.cloud.blockscout.com`}},testnet:!0});var cb=5;const lb=L({...R,id:84531,name:`Base Goerli`,nativeCurrency:{name:`Goerli Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://goerli.base.org`]}},blockExplorers:{default:{name:`Basescan`,url:`https://goerli.basescan.org`,apiUrl:`https://goerli.basescan.org/api`}},contracts:{...R.contracts,l2OutputOracle:{[cb]:{address:`0x2A35891ff30313CcFa6CE88dcf3858bb075A2298`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1376988},portal:{[cb]:{address:`0xe93c8cD0D409341205A592f8c4Ac1A5fe5585cfA`}},l1StandardBridge:{[cb]:{address:`0xfA6D8Ee5BE770F84FC001D098C4bD604Fe01284a`}}},testnet:!0,sourceId:cb});var ub=11155111;const db=L({...R,id:84532,network:`base-sepolia`,name:`Base Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.base.org`]}},blockExplorers:{default:{name:`Basescan`,url:`https://sepolia.basescan.org`,apiUrl:`https://api-sepolia.basescan.org/api`}},contracts:{...R.contracts,disputeGameFactory:{[ub]:{address:`0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1`}},l2OutputOracle:{[ub]:{address:`0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254`}},portal:{[ub]:{address:`0x49f53e41452c74589e85ca1677426ba426459e85`,blockCreated:4446677}},l1StandardBridge:{[ub]:{address:`0xfd0Bf71F60660E2f608ed56e1659C450eB113120`,blockCreated:4446677}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1059647}},testnet:!0,sourceId:ub}),fb=L({...db,experimental_preconfirmationTime:200,rpcUrls:{default:{http:[`https://sepolia-preconf.base.org`]}}}),pb=L({id:4337,name:`Beam`,network:`beam`,nativeCurrency:{decimals:18,name:`Beam`,symbol:`BEAM`},rpcUrls:{default:{http:[`https://build.onbeam.com/rpc`],webSocket:[`wss://build.onbeam.com/ws`]}},blockExplorers:{default:{name:`Beam Explorer`,url:`https://subnets.avax.network/beam`}},contracts:{multicall3:{address:`0x4956f15efdc3dc16645e90cc356eafa65ffc65ec`,blockCreated:1}}}),mb=L({id:13337,name:`Beam Testnet`,network:`beam`,nativeCurrency:{decimals:18,name:`Beam`,symbol:`BEAM`},rpcUrls:{default:{http:[`https://build.onbeam.com/rpc/testnet`],webSocket:[`wss://build.onbeam.com/ws/testnet`]}},blockExplorers:{default:{name:`Beam Explorer`,url:`https://subnets-test.avax.network/beam`}},contracts:{multicall3:{address:`0x9bf49b704ee2a095b95c1f2d4eb9010510c41c9e`,blockCreated:3}},testnet:!0}),hb=L({id:641230,name:`Bear Network Chain Mainnet`,nativeCurrency:{decimals:18,name:`BearNetworkChain`,symbol:`BRNKC`},rpcUrls:{default:{http:[`https://brnkc-mainnet.bearnetwork.net`]}},blockExplorers:{default:{name:`BrnkScan`,url:`https://brnkscan.bearnetwork.net`,apiUrl:`https://brnkscan.bearnetwork.net/api`}}}),gb=L({id:751230,name:`Bear Network Chain Testnet`,nativeCurrency:{decimals:18,name:`tBRNKC`,symbol:`tBRNKC`},rpcUrls:{default:{http:[`https://brnkc-test.bearnetwork.net`]}},blockExplorers:{default:{name:`BrnkTestScan`,url:`https://brnktest-scan.bearnetwork.net`,apiUrl:`https://brnktest-scan.bearnetwork.net/api`}},testnet:!0}),_b=L({id:80094,name:`Berachain`,blockTime:2e3,nativeCurrency:{decimals:18,name:`BERA Token`,symbol:`BERA`},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},ensRegistry:{address:`0x5b22280886a2f5e09a49bea7e320eab0e5320e28`,blockCreated:877007},ensUniversalResolver:{address:`0x4D41762915F83c76EcaF6776d9b08076aA32b492`,blockCreated:9310021}},rpcUrls:{default:{http:[`https://rpc.berachain.com`]}},blockExplorers:{default:{name:`Berascan`,url:`https://berascan.com`}},ensTlds:[`.bera`],testnet:!1}),vb=L({id:80069,blockTime:2e3,name:`Berachain Bepolia`,nativeCurrency:{decimals:18,name:`BERA Token`,symbol:`BERA`},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},rpcUrls:{default:{http:[`https://bepolia.rpc.berachain.com`]}},blockExplorers:{default:{name:`Berascan`,url:`https://bepolia.beratrail.io`}},testnet:!0}),yb=L({id:80085,name:`Berachain Artio`,nativeCurrency:{decimals:18,name:`BERA Token`,symbol:`BERA`},rpcUrls:{default:{http:[`https://artio.rpc.berachain.com`]}},blockExplorers:{default:{name:`Berachain`,url:`https://artio.beratrail.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:866924}},testnet:!0}),bb=L({id:80084,name:`Berachain bArtio`,nativeCurrency:{decimals:18,name:`BERA Token`,symbol:`BERA`},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:109269},ensRegistry:{address:`0xB0eef18971290b333450586D33dcA6cE122651D2`,blockCreated:7736794},ensUniversalResolver:{address:`0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057`,blockCreated:7736795}},ensTlds:[`.bera`],rpcUrls:{default:{http:[`https://bartio.rpc.berachain.com`]}},blockExplorers:{default:{name:`Berachain bArtio Beratrail`,url:`https://bartio.beratrail.io`}},testnet:!0}),xb=L({id:11501,name:`BEVM Mainnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc-mainnet-1.bevm.io`]}},blockExplorers:{default:{name:`Bevmscan`,url:`https://scan-mainnet.bevm.io`,apiUrl:`https://scan-mainnet-api.bevm.io/api`}}}),Sb=L({id:3068,name:`Bifrost Mainnet`,nativeCurrency:{name:`BFC`,symbol:`BFC`,decimals:18},rpcUrls:{default:{http:[`https://public-01.mainnet.bifrostnetwork.com/rpc`]}},blockExplorers:{default:{name:`Bifrost Blockscout`,url:`https://explorer.mainnet.bifrostnetwork.com`}},testnet:!1}),Cb=L({id:53456,name:`BirdLayer`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.birdlayer.xyz`,`https://rpc1.birdlayer.xyz`],webSocket:[`wss://rpc.birdlayer.xyz/ws`]}},blockExplorers:{default:{name:`BirdLayer Explorer`,url:`https://scan.birdlayer.xyz`}}}),wb=L({id:32520,name:`Bitgert Mainnet`,nativeCurrency:{decimals:18,name:`Brise`,symbol:`Brise`},rpcUrls:{default:{http:[`https://rpc-bitgert.icecreamswap.com`]}},blockExplorers:{default:{name:`Bitgert Scan`,url:`https://brisescan.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2118034}},testnet:!1}),Tb=L({id:96,name:`KUB Mainnet`,nativeCurrency:{name:`KUB Coin`,symbol:`KUB`,decimals:18},rpcUrls:{default:{http:[`https://rpc.bitkubchain.io`]}},blockExplorers:{default:{name:`KUB Chain Mainnet Explorer`,url:`https://www.bkcscan.com`,apiUrl:`https://www.bkcscan.com/api`}}}),Eb=L({id:25925,name:`Bitkub Testnet`,network:`Bitkub Testnet`,nativeCurrency:{name:`Bitkub Test`,symbol:`tKUB`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.bitkubchain.io`]}},blockExplorers:{default:{name:`Bitkub Chain Testnet Explorer`,url:`https://testnet.bkcscan.com`,apiUrl:`https://testnet.bkcscan.com/api`}},testnet:!0}),Db=L({id:200901,name:`Bitlayer Mainnet`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.bitlayer.org`],webSocket:[`wss://ws.bitlayer.org`]}},blockExplorers:{default:{name:`bitlayer mainnet scan`,url:`https://www.btrscan.com`}},contracts:{multicall3:{address:`0x5B256fE9e993902eCe49D138a5b1162cBb529474`,blockCreated:2421963}}}),Ob=L({id:200810,name:`Bitlayer Testnet`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.bitlayer.org`],webSocket:[`wss://testnet-ws.bitlayer.org`]}},blockExplorers:{default:{name:`bitlayer testnet scan`,url:`https://testnet.btrscan.com`}},contracts:{multicall3:{address:`0x5B256fE9e993902eCe49D138a5b1162cBb529474`,blockCreated:4135671}},testnet:!0}),kb=L({id:7171,name:`Bitrock Mainnet`,nativeCurrency:{name:`BROCK`,symbol:`BROCK`,decimals:18},rpcUrls:{default:{http:[`https://brockrpc.io`]}},blockExplorers:{default:{name:`Bitrock Explorer`,url:`https://explorer.bit-rock.io`}},testnet:!1}),Ab=L({id:199,name:`BitTorrent`,network:`bittorrent-chain-mainnet`,nativeCurrency:{name:`BitTorrent`,symbol:`BTT`,decimals:18},rpcUrls:{default:{http:[`https://rpc.bittorrentchain.io`]}},blockExplorers:{default:{name:`Bttcscan`,url:`https://bttcscan.com`,apiUrl:`https://api.bttcscan.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:31078552}}}),jb=L({id:1028,name:`BitTorrent Chain Testnet`,network:`bittorrent-chain-testnet`,nativeCurrency:{name:`BitTorrent`,symbol:`BTT`,decimals:18},rpcUrls:{default:{http:[`https://testrpc.bittorrentchain.io`]}},blockExplorers:{default:{name:`Bttcscan`,url:`https://testnet.bttcscan.com`,apiUrl:`https://testnet.bttcscan.com/api`}},testnet:!0});var Mb=1;const Nb=L({...R,id:81457,name:`Blast`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.blast.io`]}},blockExplorers:{default:{name:`Blastscan`,url:`https://blastscan.io`,apiUrl:`https://api.blastscan.io/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:212929},l2OutputOracle:{[Mb]:{address:`0x826D1B0D4111Ad9146Eb8941D7Ca2B6a44215c76`,blockCreated:19300358}},portal:{[Mb]:{address:`0x0Ec68c5B10F21EFFb74f2A5C61DFe6b08C0Db6Cb`,blockCreated:19300357}},l1StandardBridge:{[Mb]:{address:`0x697402166Fbf2F22E970df8a6486Ef171dbfc524`,blockCreated:19300360}}},sourceId:Mb}),Pb=L({id:168587773,name:`Blast Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.blast.io`]}},blockExplorers:{default:{name:`Blastscan`,url:`https://sepolia.blastscan.io`,apiUrl:`https://api-sepolia.blastscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:756690}},testnet:!0,sourceId:11155111});var Fb=1;const Ib=L({...R,id:60808,name:`BOB`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.gobob.xyz`],webSocket:[`wss://rpc.gobob.xyz`]}},blockExplorers:{default:{name:`BOB Explorer`,url:`https://explorer.gobob.xyz`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:23131},l2OutputOracle:{[Fb]:{address:`0xdDa53E23f8a32640b04D7256e651C1db98dB11C1`,blockCreated:4462615}},portal:{[Fb]:{address:`0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E`,blockCreated:4462615}}},sourceId:Fb}),Lb=L({id:288,name:`Boba Network`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.boba.network`]}},blockExplorers:{default:{name:`BOBAScan`,url:`https://bobascan.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:446859}}}),Rb=L({id:28882,name:`Boba Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.boba.network`]}},blockExplorers:{default:{name:`BOBAScan`,url:`https://testnet.bobascan.com`}},testnet:!0});var zb=11155111;const Bb=L({...R,id:808813,name:`BOB Sepolia`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://bob-sepolia.rpc.gobob.xyz`],webSocket:[`wss://bob-sepolia.rpc.gobob.xyz`]}},blockExplorers:{default:{name:`BOB Sepolia Explorer`,url:`https://bob-sepolia.explorer.gobob.xyz`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:35677},l2OutputOracle:{[zb]:{address:`0x14D0069452b4AE2b250B395b8adAb771E4267d2f`,blockCreated:4462615}},portal:{[zb]:{address:`0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4`,blockCreated:4462615}}},testnet:!0,sourceId:zb}),Vb=L({id:11100,name:`Bool Beta Mainnet`,nativeCurrency:{decimals:18,name:`BOL`,symbol:`BOL`},rpcUrls:{default:{http:[`https://beta-rpc-node-http.bool.network`]}},blockExplorers:{default:{name:`BoolScan`,url:`https://beta-mainnet.boolscan.com/`}},testnet:!1}),Hb=L({id:3637,name:`Botanix`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.botanixlabs.com`],webSocket:[`wss://rpc.botanixlabs.com/ws`]}},blockExplorers:{default:{name:`Botanixscan`,url:`https://botanixscan.io`}}}),Ub=L({id:3636,name:`Botanix Testnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://node.botanixlabs.dev`]}},blockExplorers:{default:{name:`Botanix Testnet Explorer`,url:`https://testnet.botanixscan.io`}},testnet:!0}),Wb=L({id:6001,name:`BounceBit Mainnet`,nativeCurrency:{name:`BounceBit`,symbol:`BB`,decimals:18},rpcUrls:{default:{http:[`https://fullnode-mainnet.bouncebitapi.com`]}},blockExplorers:{default:{name:`BB Scan`,url:`https://bbscan.io`}},testnet:!1}),Gb=L({id:6e3,name:`BounceBit Testnet`,nativeCurrency:{name:`BounceBit`,symbol:`BB`,decimals:18},rpcUrls:{default:{http:[`https://fullnode-testnet.bouncebitapi.com`]}},blockExplorers:{default:{name:`BB Scan`,url:`https://testnet.bbscan.io`}},testnet:!0}),Kb=L({id:1039,name:`Bronos`,nativeCurrency:{decimals:18,name:`BRO`,symbol:`BRO`},rpcUrls:{default:{http:[`https://evm.bronos.org`]}},blockExplorers:{default:{name:`BronoScan`,url:`https://broscan.bronos.org`}}}),qb=L({id:1038,name:`Bronos Testnet`,nativeCurrency:{decimals:18,name:`Bronos Coin`,symbol:`tBRO`},rpcUrls:{default:{http:[`https://evm-testnet.bronos.org`]}},blockExplorers:{default:{name:`BronoScan`,url:`https://tbroscan.bronos.org`}},testnet:!0}),Jb=L({id:56,name:`BNB Smart Chain`,blockTime:750,nativeCurrency:{decimals:18,name:`BNB`,symbol:`BNB`},rpcUrls:{default:{http:[`https://56.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`BscScan`,url:`https://bscscan.com`,apiUrl:`https://api.bscscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:15921452}}}),Yb=L({id:1017,name:`BNB Greenfield Chain`,nativeCurrency:{decimals:18,name:`BNB`,symbol:`BNB`},rpcUrls:{default:{http:[`https://greenfield-chain.bnbchain.org`]}},blockExplorers:{default:{name:`BNB Greenfield Mainnet Scan`,url:`https://greenfieldscan.com`}},testnet:!1}),Xb=L({id:97,name:`BNB Smart Chain Testnet`,nativeCurrency:{decimals:18,name:`BNB`,symbol:`tBNB`},rpcUrls:{default:{http:[`https://data-seed-prebsc-1-s1.bnbchain.org:8545`]}},blockExplorers:{default:{name:`BscScan`,url:`https://testnet.bscscan.com`,apiUrl:`https://api-testnet.bscscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:17422483}},testnet:!0}),Zb=L({id:223,name:`B2`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.bsquared.network`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.bsquared.network`}}}),Qb=L({id:1123,name:`B2 Testnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.bsquared.network`]}},blockExplorers:{default:{name:`blockscout`,url:`https://testnet-explorer.bsquared.network`}},testnet:!0}),$b=L({id:200901,name:`Bitlayer`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.bitlayer.org`,`https://rpc.bitlayer-rpc.com`],webSocket:[`wss://ws.bitlayer.org`,`wss://ws.bitlayer-rpc.com`]}},blockExplorers:{default:{name:`Bitlayer(BTR) Scan`,url:`https://www.btrscan.com`}}}),ex=L({id:200810,name:`Bitlayer Testnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.bitlayer.org`],webSocket:[`wss://testnet-ws.bitlayer.org`,`wss://testnet-ws.bitlayer-rpc.com`]}},blockExplorers:{default:{name:`Bitlayer(BTR) Scan`,url:`https://testnet.btrscan.com`}},testnet:!0}),tx=L({id:4999,name:`BlackFort Exchange Network`,nativeCurrency:{name:`BlackFort Token`,symbol:`BXN`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.blackfort.network/rpc`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.blackfort.network`,apiUrl:`https://explorer.blackfort.network/api`}}}),nx=L({id:4777,name:`BlackFort Exchange Network Testnet`,nativeCurrency:{name:`BlackFort Testnet Token`,symbol:`TBXN`,decimals:18},rpcUrls:{default:{http:[`https://testnet.blackfort.network/rpc`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://testnet-explorer.blackfort.network`,apiUrl:`https://testnet-explorer.blackfort.network/api`}},testnet:!0}),rx=L({id:13370,name:`Cannon`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),ix=L({id:7700,name:`Canto`,nativeCurrency:{decimals:18,name:`Canto`,symbol:`CANTO`},rpcUrls:{default:{http:[`https://canto.gravitychain.io`]}},blockExplorers:{default:{name:`Tuber.Build (Blockscout)`,url:`https://tuber.build`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:2905789}}}),ax={estimateFeesPerGas:async e=>{if(!e.request?.feeCurrency)return null;let[t,n]=await Promise.all([ox(e.client,e.request.feeCurrency),sx(e.client,e.request.feeCurrency)]);return{maxFeePerGas:e.multiply(t-n)+n,maxPriorityFeePerGas:n}}};async function ox(e,t){let n=await e.request({method:`eth_gasPrice`,params:[t]});return BigInt(n)}async function sx(e,t){let n=await e.request({method:`eth_maxPriorityFeePerGas`,params:[t]});return BigInt(n)}Sn();function cx(e){return e===0||e===0n||e==null||e===`0`||e===``||typeof e==`string`&&(xn(e).toLowerCase()===`0x`||xn(e).toLowerCase()===`0x00`)}function lx(e){return!cx(e)}function ux(e){return e.maxFeePerGas!==void 0&&e.maxPriorityFeePerGas!==void 0}function dx(e){return e.type===`cip64`?!0:ux(e)&&lx(e.feeCurrency)}Dn(),Wu();const fx={block:ld({format(e){return{transactions:e.transactions?.map(e=>typeof e==`string`?e:{...ad(e),...e.gatewayFee?{gatewayFee:wn(e.gatewayFee),gatewayFeeRecipient:e.gatewayFeeRecipient}:{},feeCurrency:e.feeCurrency})}}}),transaction:od({format(e){if(e.type===`0x7e`)return{isSystemTx:e.isSystemTx,mint:e.mint?wn(e.mint):void 0,sourceHash:e.sourceHash,type:`deposit`};let t={feeCurrency:e.feeCurrency};return e.type===`0x7b`?t.type=`cip64`:(e.type===`0x7c`&&(t.type=`cip42`),t.gatewayFee=e.gatewayFee?wn(e.gatewayFee):null,t.gatewayFeeRecipient=e.gatewayFeeRecipient),t}}),transactionRequest:Uu({format(e){let t={};return e.feeCurrency&&(t.feeCurrency=e.feeCurrency),dx(e)&&(t.type=`0x7b`),t}})};Zu(),pi(),O(),Op(),Mu(),Ci(),Di(),A();function px(e,t){return dx(e)?hx(e,t):by(e,t)}const mx={transaction:px};function hx(e,t){_x(e);let{chainId:n,gas:r,nonce:i,to:a,value:o,maxFeePerGas:s,maxPriorityFeePerGas:c,accessList:l,feeCurrency:u,data:d}=e,f=[On(n),i?On(i):`0x`,c?On(c):`0x`,s?On(s):`0x`,r?On(r):`0x`,a??`0x`,o?On(o):`0x`,d??`0x`,oh(l),u,...ph(e,t)];return Ei([`0x7b`,M(f)])}var gx=Xu;function _x(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a,feeCurrency:o}=e;if(t<=0)throw new Dp({chainId:t});if(a&&!bi(a))throw new fi({address:a});if(r)throw new D("`gasPrice` is not a valid CIP-64 Transaction attribute.");if(lx(i)&&i>gx)throw new xu({maxFeePerGas:i});if(lx(n)&&lx(i)&&n>i)throw new Au({maxFeePerGas:i,maxPriorityFeePerGas:n});if(lx(o)&&!bi(o))throw new D("`feeCurrency` MUST be a token address for CIP-64 transactions.");if(cx(o))throw new D("`feeCurrency` must be provided for CIP-64 transactions.")}const vx={blockTime:1e3,contracts:vy,formatters:fx,serializers:mx,fees:ax},yx=L({...vx,id:42220,name:`Celo`,nativeCurrency:{decimals:18,name:`CELO`,symbol:`CELO`},rpcUrls:{default:{http:[`https://forno.celo.org`]}},blockExplorers:{default:{name:`Celo Explorer`,url:`https://celoscan.io`,apiUrl:`https://api.celoscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:13112599}},testnet:!1});var bx=17e3;const xx=L({...vx,id:44787,name:`Alfajores`,nativeCurrency:{decimals:18,name:`CELO`,symbol:`A-CELO`},rpcUrls:{default:{http:[`https://alfajores-forno.celo-testnet.org`]}},blockExplorers:{default:{name:`Celo Alfajores Explorer`,url:`https://celo-alfajores.blockscout.com`,apiUrl:`https://celo-alfajores.blockscout.com/api`}},contracts:{...vx.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:14569001},portal:{[bx]:{address:`0x82527353927d8D069b3B452904c942dA149BA381`,blockCreated:2411324}},disputeGameFactory:{[bx]:{address:`0xE28AAdcd9883746c0e5068F58f9ea06027b214cb`,blockCreated:2411324}},l2OutputOracle:{[bx]:{address:`0x4a2635e9e4f6e45817b1D402ac4904c1d1752438`,blockCreated:2411324}},l1StandardBridge:{[bx]:{address:`0xD1B0E0581973c9eB7f886967A606b9441A897037`,blockCreated:2411324}}},testnet:!0});var Sx=11155111;const Cx=L({...vx,id:11142220,name:`Celo Sepolia Testnet`,nativeCurrency:{decimals:18,name:`CELO`,symbol:`S-CELO`},rpcUrls:{default:{http:[`https://forno.celo-sepolia.celo-testnet.org`]}},blockExplorers:{default:{name:`Celo Sepolia Explorer`,url:`https://celo-sepolia.blockscout.com/`,apiUrl:`https://celo-sepolia.blockscout.com/api`}},contracts:{...vx.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1},portal:{[Sx]:{address:`0x44ae3d41a335a7d05eb533029917aad35662dcc2`,blockCreated:8825790}},disputeGameFactory:{[Sx]:{address:`0x57c45d82d1a995f1e135b8d7edc0a6bb5211cfaa`,blockCreated:8825790}},l1StandardBridge:{[Sx]:{address:`0xec18a3c30131a0db4246e785355fbc16e2eaf408`,blockCreated:8825790}}},testnet:!0}),wx=L({id:5858,name:`Chang Chain Foundation Mainnet`,nativeCurrency:{decimals:18,name:`CTH`,symbol:`CTH`},rpcUrls:{default:{http:[`https://rpc.cthscan.com`]}},blockExplorers:{default:{name:`Chang Chain explorer`,url:`https://cthscan.com`}}}),Tx=L({id:88888,name:`Chiliz Chain`,network:`chiliz-chain`,nativeCurrency:{decimals:18,name:`CHZ`,symbol:`CHZ`},rpcUrls:{default:{http:[`https://rpc.chiliz.com`]}},blockExplorers:{default:{name:`Chiliz Explorer`,url:`https://scan.chiliz.com`,apiUrl:`https://scan.chiliz.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:8080847}}}),Ex=L({id:2882,name:`Chips Network`,network:`CHIPS`,nativeCurrency:{decimals:18,name:`IOTA`,symbol:`IOTA`},rpcUrls:{default:{http:[`https://node.chips.ooo/wasp/api/v1/chains/iota1pp3d3mnap3ufmgqnjsnw344sqmf5svjh26y2khnmc89sv6788y3r207a8fn/evm`]}}}),Dx=L({id:5115,name:`Citrea Testnet`,nativeCurrency:{name:`cBTC`,symbol:`cBTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.citrea.xyz`]}},blockExplorers:{default:{name:`Citrea Explorer`,url:`https://explorer.testnet.citrea.xyz`,apiUrl:`https://explorer.testnet.citrea.xyz/api`}},testnet:!0}),Ox=L({id:61,name:`Ethereum Classic`,nativeCurrency:{decimals:18,name:`ETC`,symbol:`ETC`},rpcUrls:{default:{http:[`https://etc.rivet.link`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.com/etc/mainnet`}}}),kx=L({id:112,name:`Coinbit Mainnet`,nativeCurrency:{name:`GIDR`,symbol:`GIDR`,decimals:18},rpcUrls:{default:{http:[`https://coinbit-rpc-mainnet.chain.sbcrypto.app`]}},blockExplorers:{default:{name:`Coinbit Explorer`,url:`https://coinbit-explorer.chain.sbcrypto.app`}},testnet:!1}),Ax=L({id:52,name:`CoinEx Mainnet`,nativeCurrency:{name:`cet`,symbol:`cet`,decimals:18},rpcUrls:{default:{http:[`https://rpc.coinex.net`]}},blockExplorers:{default:{name:`CoinEx Explorer`,url:`https://www.coinex.net`}},testnet:!1}),jx=L({id:1030,name:`Conflux eSpace`,nativeCurrency:{name:`Conflux`,symbol:`CFX`,decimals:18},rpcUrls:{default:{http:[`https://evm.confluxrpc.com`],webSocket:[`wss://evm.confluxrpc.com/ws`]}},blockExplorers:{default:{name:`ConfluxScan`,url:`https://evm.confluxscan.org`}},contracts:{multicall3:{address:`0xEFf0078910f638cd81996cc117bccD3eDf2B072F`,blockCreated:68602935}}}),Mx=L({id:71,name:`Conflux eSpace Testnet`,network:`cfx-espace-testnet`,testnet:!0,nativeCurrency:{name:`Conflux`,symbol:`CFX`,decimals:18},rpcUrls:{default:{http:[`https://evmtestnet.confluxrpc.com`],webSocket:[`wss://evmtestnet.confluxrpc.com/ws`]}},blockExplorers:{default:{name:`ConfluxScan`,url:`https://evmtestnet.confluxscan.org`}},contracts:{multicall3:{address:`0xEFf0078910f638cd81996cc117bccD3eDf2B072F`,blockCreated:117499050}}}),Nx=L({id:1116,name:`Core Dao`,nativeCurrency:{decimals:18,name:`Core`,symbol:`CORE`},rpcUrls:{default:{http:[`https://rpc.coredao.org`]}},blockExplorers:{default:{name:`CoreDao`,url:`https://scan.coredao.org`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:11907934}},testnet:!1}),Px=L({id:1115,name:`Core Testnet`,nativeCurrency:{decimals:18,name:`tCore`,symbol:`TCORE`},rpcUrls:{default:{http:[`https://rpc.test.btcs.network`]}},blockExplorers:{default:{name:`Core Testnet`,url:`https://scan.test.btcs.network`,apiUrl:`https://api.test.btcs.network/api`}},contracts:{multicall3:{address:`0xCcddF20A1932537123C2E48Bd8e00b108B8f7569`,blockCreated:29350509}},testnet:!0}),Fx=L({id:1114,name:`Core Testnet2`,nativeCurrency:{decimals:18,name:`tCore2`,symbol:`TCORE2`},rpcUrls:{default:{http:[`https://rpc.test2.btcs.network`]}},blockExplorers:{default:{name:`Core Testnet2`,url:`https://scan.test2.btcs.network`,apiUrl:`https://api.test2.btcs.network/api`}},contracts:{multicall3:{address:`0x3CB285ff3Cd5C7C7e570b1E7DE3De17A0f985e56`,blockCreated:3838600}},testnet:!0}),Ix=L({id:21e6,name:`Corn`,nativeCurrency:{decimals:18,name:`Bitcorn`,symbol:`BTCN`},rpcUrls:{default:{http:[`https://21000000.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`Corn Explorer`,url:`https://cornscan.io`,apiUrl:`https://api.routescan.io/v2/network/mainnet/evm/21000000/etherscan/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3228}},sourceId:1}),Lx=L({id:21000001,name:`Corn Testnet`,nativeCurrency:{decimals:18,name:`Bitcorn`,symbol:`BTCN`},rpcUrls:{default:{http:[`https://21000001.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`Corn Testnet Explorer`,url:`https://testnet.cornscan.io`,apiUrl:`https://api.routescan.io/v2/network/testnet/evm/21000001/etherscan/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:4886}},testnet:!0,sourceId:11155111}),Rx=L({id:44,name:`Crab Network`,nativeCurrency:{decimals:18,name:`Crab Network Native Token`,symbol:`CRAB`},rpcUrls:{default:{http:[`https://crab-rpc.darwinia.network`],webSocket:[`wss://crab-rpc.darwinia.network`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://crab-scan.darwinia.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:3032593}}}),zx=L({id:66665,name:`Creator`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.creatorchain.io`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.creatorchain.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},testnet:!0}),Bx=L({id:102032,name:`Creditcoin Devnet`,nativeCurrency:{name:`Devnet CTC`,symbol:`devCTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.cc3-devnet.creditcoin.network`],webSocket:[`wss://rpc.cc3-devnet.creditcoin.network/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://creditcoin-devnet.blockscout.com`,apiUrl:`https://creditcoin3-dev.subscan.io`}},testnet:!0}),Vx=L({id:102030,name:`Creditcoin`,nativeCurrency:{name:`Creditcoin`,symbol:`CTC`,decimals:18},rpcUrls:{default:{http:[`https://mainnet3.creditcoin.network`],webSocket:[`wss://mainnet3.creditcoin.network`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://creditcoin.blockscout.com`,apiUrl:`https://creditcoin.blockscout.com/api`}},testnet:!1}),Hx=L({id:102031,name:`Creditcoin Testnet`,nativeCurrency:{name:`Creditcoin Testnet`,symbol:`tCTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.cc3-testnet.creditcoin.network`],webSocket:[`wss://rpc.cc3-testnet.creditcoin.network`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://creditcoin-testnet.blockscout.com`,apiUrl:`https://creditcoin-testnet.blockscout.com/api`}},testnet:!0}),Ux=L({id:25,name:`Cronos Mainnet`,nativeCurrency:{decimals:18,name:`Cronos`,symbol:`CRO`},rpcUrls:{default:{http:[`https://evm.cronos.org`]}},blockExplorers:{default:{name:`Cronos Explorer`,url:`https://explorer.cronos.org`,apiUrl:`https://explorer-api.cronos.org/mainnet/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1963112}}}),Wx=L({id:338,name:`Cronos Testnet`,nativeCurrency:{decimals:18,name:`CRO`,symbol:`tCRO`},rpcUrls:{default:{http:[`https://evm-t3.cronos.org`]}},blockExplorers:{default:{name:`Cronos Explorer (Testnet)`,url:`https://explorer.cronos.org/testnet`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:10191251}},testnet:!0}),Gx=L({id:388,name:`Cronos zkEVM Mainnet`,nativeCurrency:{decimals:18,name:`Cronos zkEVM CRO`,symbol:`zkCRO`},rpcUrls:{default:{http:[`https://mainnet.zkevm.cronos.org`]}},blockExplorers:{default:{name:`Cronos zkEVM (Mainnet) Chain Explorer`,url:`https://explorer.zkevm.cronos.org`}},contracts:{multicall3:{address:`0x06f4487d7c4a5983d2660db965cc6d2565e4cfaa`,blockCreated:72}}}),Kx=L({id:282,name:`Cronos zkEVM Testnet`,nativeCurrency:{decimals:18,name:`Cronos zkEVM Test Coin`,symbol:`zkTCRO`},rpcUrls:{default:{http:[`https://testnet.zkevm.cronos.org`]}},blockExplorers:{default:{name:`Cronos zkEVM Testnet Explorer`,url:`https://explorer.zkevm.cronos.org/testnet`}},testnet:!0}),qx=L({id:3737,name:`Crossbell`,nativeCurrency:{decimals:18,name:`CSB`,symbol:`CSB`},rpcUrls:{default:{http:[`https://rpc.crossbell.io`]}},blockExplorers:{default:{name:`CrossScan`,url:`https://scan.crossbell.io`,apiUrl:`https://scan.crossbell.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:38246031}}}),Jx=L({id:4158,name:`CrossFi Mainnet`,nativeCurrency:{decimals:18,name:`CrossFi`,symbol:`XFI`},rpcUrls:{default:{http:[`https://rpc.mainnet.ms`]}},blockExplorers:{default:{name:`CrossFi Blockchain Explorer`,url:`https://xfiscan.com`}},testnet:!1}),Yx=L({id:33111,name:`Curtis`,nativeCurrency:{name:`ApeCoin`,symbol:`APE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.curtis.apechain.com`]}},blockExplorers:{default:{name:`Curtis Explorer`,url:`https://explorer.curtis.apechain.com`}},testnet:!0}),Xx=L({id:7560,name:`Cyber`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://cyber.alt.technology`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://cyberscan.co`,apiUrl:`https://cyberscan.co/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}}}),Zx=L({id:111557560,name:`Cyber Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://cyber-testnet.alt.technology`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://testnet.cyberscan.co`,apiUrl:`https://testnet.cyberscan.co/api`}},contracts:{multicall3:{address:`0xffc391F0018269d4758AEA1a144772E8FB99545E`,blockCreated:304545}},testnet:!0}),Qx=L({id:824,name:`Daily Network Mainnet`,nativeCurrency:{decimals:18,name:`Daily`,symbol:`DLY`},rpcUrls:{default:{http:[`https://rpc.mainnet.dailycrypto.net`]}},blockExplorers:{default:{name:`Daily Mainnet Explorer`,url:`https://explorer.mainnet.dailycrypto.net`}},testnet:!1}),$x=L({id:825,name:`Daily Network Testnet`,nativeCurrency:{decimals:18,name:`Daily`,symbol:`DLY`},rpcUrls:{default:{http:[`https://rpc.testnet.dailycrypto.net`]}},blockExplorers:{default:{name:`Daily Testnet Explorer`,url:`https://explorer.testnet.dailycrypto.net`}},testnet:!0}),eS=L({id:46,name:`Darwinia Network`,nativeCurrency:{decimals:18,name:`RING`,symbol:`RING`},rpcUrls:{default:{http:[`https://rpc.darwinia.network`],webSocket:[`wss://rpc.darwinia.network`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.darwinia.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:69420}}}),tS=L({id:20240603,name:`DBK chain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.dbkchain.io`]}},blockExplorers:{default:{name:`DBK Chain Explorer`,url:`https://scan.dbkchain.io`}},testnet:!1}),nS=L({...R,id:0x9a697f88076c8,name:`Dchain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://dchain-2716446429837000-1.jsonrpc.sagarpc.io`]}},blockExplorers:{default:{name:`Dchain Explorer`,url:`https://dchain-2716446429837000-1.sagaexplorer.io`,apiUrl:`https://api-dchain-2716446429837000-1.sagaexplorer.io/api`}},contracts:{...R.contracts}}),rS=L({...R,id:0x9a379ba03cf10,name:`Dchain Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://dchaintestnet-2713017997578000-1.jsonrpc.testnet.sagarpc.io`]}},blockExplorers:{default:{name:`Dchain Explorer`,url:`https://dchaintestnet-2713017997578000-1.testnet.sagaexplorer.io`,apiUrl:`https://api-dchaintestnet-2713017997578000-1.testnet.sagaexplorer.io/api`}},contracts:{...R.contracts}}),iS=L({id:1130,network:`defichain-evm`,name:`DeFiChain EVM Mainnet`,nativeCurrency:{name:`DeFiChain`,symbol:`DFI`,decimals:18},rpcUrls:{default:{http:[`https://eth.mainnet.ocean.jellyfishsdk.com`]}},blockExplorers:{default:{name:`DeFiScan`,url:`https://meta.defiscan.live`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:137852}}}),aS=L({id:1131,network:`defichain-evm-testnet`,name:`DeFiChain EVM Testnet`,nativeCurrency:{name:`DeFiChain`,symbol:`DFI`,decimals:18},rpcUrls:{default:{http:[`https://eth.testnet.ocean.jellyfishsdk.com`]}},blockExplorers:{default:{name:`DeFiScan`,url:`https://meta.defiscan.live/?network=TestNet`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:156462}},testnet:!0}),oS=L({id:666666666,name:`Degen`,nativeCurrency:{decimals:18,name:`Degen`,symbol:`DEGEN`},rpcUrls:{default:{http:[`https://rpc.degen.tips`],webSocket:[`wss://rpc.degen.tips`]}},blockExplorers:{default:{name:`Degen Chain Explorer`,url:`https://explorer.degen.tips`,apiUrl:`https://explorer.degen.tips/api/v2`}}}),sS=L({id:53935,name:`DFK Chain`,nativeCurrency:{decimals:18,name:`Jewel`,symbol:`JEWEL`},rpcUrls:{default:{http:[`https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc`]}},blockExplorers:{default:{name:`DFKSubnetScan`,url:`https://subnets.avax.network/defi-kingdoms`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14790551}}}),cS=L({id:15,name:`Diode Prenet`,nativeCurrency:{decimals:18,name:`DIODE`,symbol:`DIODE`},rpcUrls:{default:{http:[`https://prenet.diode.io:8443`],webSocket:[`wss://prenet.diode.io:8443/ws`]}},blockExplorers:{default:{name:`Diode Explorer`,url:`https://diode.io/prenet`}},testnet:!1}),lS=L({id:513100,name:`DisChain`,nativeCurrency:{decimals:18,name:`DIS`,symbol:`DIS`},rpcUrls:{default:{http:[`https://rpc.dischain.xyz`]}},blockExplorers:{default:{name:`DisChain Explorer`,url:`https://www.oklink.com/dis`}}}),uS=L({id:53457,name:`DODOchain Testnet`,nativeCurrency:{decimals:18,name:`DODO`,symbol:`DODO`},rpcUrls:{default:{http:[`https://dodochain-testnet.alt.technology`],webSocket:[`wss://dodochain-testnet.alt.technology/ws`]}},blockExplorers:{default:{name:`DODOchain Testnet (Sepolia) Explorer`,url:`https://testnet-scan.dodochain.com`}},testnet:!0}),dS=L({id:2e3,name:`Dogechain`,nativeCurrency:{decimals:18,name:`Wrapped Dogecoin`,symbol:`WDOGE`},rpcUrls:{default:{http:[`https://rpc.dogechain.dog`]}},blockExplorers:{default:{name:`DogeChainExplorer`,url:`https://explorer.dogechain.dog`,apiUrl:`https://explorer.dogechain.dog/api`}},contracts:{multicall3:{address:`0x68a8609a60a008EFA633dfdec592c03B030cC508`,blockCreated:25384031}}}),fS=L({id:97476,name:`Doma Testnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc-testnet.doma.xyz`]}},blockExplorers:{default:{name:`Doma Testnet Explorer`,url:`https://explorer-testnet.doma.xyz`}},testnet:!0}),pS=L({id:42026,name:`Donatuz`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.donatuz.com`]}},blockExplorers:{default:{name:`Donatuz Explorer`,url:`https://explorer.donatuz.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0}}}),mS=L({id:7979,name:`DOS Chain`,nativeCurrency:{decimals:18,name:`DOS Chain`,symbol:`DOS`},rpcUrls:{default:{http:[`https://main.doschain.com`]}},blockExplorers:{default:{name:`DOS Chain Explorer`,url:`https://doscan.io`,apiUrl:`https://api.doscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:161908}}}),hS=L({id:3939,name:`DOS Chain Testnet`,nativeCurrency:{decimals:18,name:`DOS Chain Testnet`,symbol:`DOS`},rpcUrls:{default:{http:[`https://test.doschain.com`]}},blockExplorers:{default:{name:`DOS Chain Testnet Explorer`,url:`https://test.doscan.io`,apiUrl:`https://api-test.doscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:69623}},testnet:!0}),gS=L({id:23451,name:`DreyerX Mainnet`,nativeCurrency:{name:`DreyerX`,symbol:`DRX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.dreyerx.com`]}},blockExplorers:{default:{name:`DreyerX Scan`,url:`https://scan.dreyerx.com`}}}),_S=L({id:23452,name:`DreyerX Testnet`,nativeCurrency:{name:`DreyerX`,symbol:`DRX`,decimals:18},rpcUrls:{default:{http:[`http://testnet-rpc.dreyerx.com`]}},blockExplorers:{default:{name:`DreyerX Testnet Scan`,url:`https://testnet-scan.dreyerx.com`}},testnet:!0}),vS=L({id:555888,name:`DustBoy IoT`,nativeCurrency:{name:`Ether`,symbol:`DST`,decimals:18},rpcUrls:{default:{http:[`https://dustboy-rpc.jibl2.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://dustboy.jibl2.com`,apiUrl:`https://dustboy.jibl2.com/api`}},contracts:{multicall3:{address:`0xFFD34aa2C62B2D52E00A361e466C229788f4eD6a`,blockCreated:526569}},testnet:!1}),yS=L({id:1100,name:`Dymension`,nativeCurrency:{name:`DYM`,symbol:`DYM`,decimals:18},rpcUrls:{default:{http:[`https://dymension-evm-rpc.publicnode.com`],webSocket:[`wss://dymension-evm-rpc.publicnode.com`]}},blockExplorers:{default:{name:`Dym FYI`,url:`https://dym.fyi`}},testnet:!1}),bS=L({id:5424,name:`edeXa`,nativeCurrency:{name:`edeXa`,symbol:`EDX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.edexa.network`]}},blockExplorers:{default:{name:`edeXa Explorer`,url:`https://explorer.edexa.network`,apiUrl:`https://explorer.edexa.network/api/v2`}}}),xS=L({id:1995,name:`edeXa Testnet`,nativeCurrency:{name:`edeXa`,symbol:`tEDX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.edexa.network`]}},blockExplorers:{default:{name:`edeXa Testnet Explorer`,url:`https://explorer.testnet.edexa.network`,apiUrl:`https://explorer.testnet.edexa.network/api/v2`}},testnet:!0}),SS=L({id:2026,name:`Edgeless Network`,nativeCurrency:{name:`Edgeless Wrapped ETH`,symbol:`EwETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.edgeless.network/http`],webSocket:[`wss://rpc.edgeless.network/ws`]}},blockExplorers:{default:{name:`Edgeless Explorer`,url:`https://explorer.edgeless.network`}}}),CS=L({id:202,name:`Edgeless Testnet`,nativeCurrency:{name:`Edgeless Wrapped ETH`,symbol:`EwETH`,decimals:18},rpcUrls:{default:{http:[`https://edgeless-testnet.rpc.caldera.xyz/http`],webSocket:[`wss://edgeless-testnet.rpc.caldera.xyz/ws`]}},blockExplorers:{default:{name:`Edgeless Testnet Explorer`,url:`https://testnet.explorer.edgeless.network`}}}),wS=L({id:2021,name:`Edgeware EdgeEVM Mainnet`,nativeCurrency:{decimals:18,name:`Edgeware`,symbol:`EDG`},rpcUrls:{default:{http:[`https://edgeware-evm.jelliedowl.net`]}},blockExplorers:{default:{name:`Edgscan by Bharathcoorg`,url:`https://edgscan.live`,apiUrl:`https://edgscan.live/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:18117872}}}),TS=L({id:2022,name:`Beresheet BereEVM Testnet`,nativeCurrency:{decimals:18,name:`Testnet EDG`,symbol:`tEDG`},rpcUrls:{default:{http:[`https://beresheet-evm.jelliedowl.net`]}},blockExplorers:{default:{name:`Edgscan by Bharathcoorg`,url:`https://testnet.edgscan.live`,apiUrl:`https://testnet.edgscan.live/api`}}}),ES=L({id:41923,name:`EDU Chain`,nativeCurrency:{decimals:18,name:`EDU`,symbol:`EDU`},rpcUrls:{default:{http:[`https://rpc.edu-chain.raas.gelato.cloud`]}},blockExplorers:{default:{name:`EDU Chain Explorer`,url:`https://educhain.blockscout.com/`}},testnet:!1}),DS=L({id:656476,name:`EDU Chain Testnet`,nativeCurrency:{decimals:18,name:`EDU`,symbol:`EDU`},rpcUrls:{default:{http:[`https://rpc.open-campus-codex.gelato.digital/`],webSocket:[`wss://ws.open-campus-codex.gelato.digital`]}},blockExplorers:{default:{name:`EDU Chain Testnet Explorer`,url:`https://opencampus-codex.blockscout.com`,apiUrl:`https://opencampus-codex.blockscout.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:15514133}},testnet:!0}),OS=L({id:1994,name:`Ekta`,nativeCurrency:{decimals:18,name:`EKTA`,symbol:`EKTA`},rpcUrls:{default:{http:[`https://main.ekta.io`]}},blockExplorers:{default:{name:`Ektascan`,url:`https://ektascan.io`,apiUrl:`https://ektascan.io/api`}}}),kS=L({id:1004,name:`Ekta Testnet`,nativeCurrency:{decimals:18,name:`EKTA`,symbol:`EKTA`},rpcUrls:{default:{http:[`https://test.ekta.io:8545`]}},blockExplorers:{default:{name:`Test Ektascan`,url:`https://test.ektascan.io`,apiUrl:`https://test.ektascan.io/api`}},testnet:!0}),AS=L({id:20,name:`Elastos Smart Chain`,nativeCurrency:{name:`ELA`,symbol:`ELA`,decimals:18},rpcUrls:{default:{http:[`https://api2.elastos.io/eth`]}},blockExplorers:{default:{name:`Elastos Explorer`,url:`https://esc.elastos.io`}},testnet:!1}),jS=L({id:21,name:`Elastos Smart Chain Testnet`,nativeCurrency:{name:`tELA`,symbol:`tELA`,decimals:18},rpcUrls:{default:{http:[`https://api-testnet.elastos.io/eth`]}},blockExplorers:{default:{name:`Elastos Explorer`,url:`https://esc-testnet.elastos.io`}},testnet:!0}),MS=L({id:52014,name:`Electroneum Mainnet`,nativeCurrency:{name:`ETN`,symbol:`ETN`,decimals:18},rpcUrls:{default:{http:[`https://rpc.electroneum.com`]}},blockExplorers:{default:{name:`Electroneum Block Explorer`,url:`https://blockexplorer.electroneum.com`}},testnet:!1}),NS=L({id:5201420,name:`Electroneum Testnet`,nativeCurrency:{name:`ETN`,symbol:`ETN`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.electroneum.com`]}},blockExplorers:{default:{name:`Electroneum Block Explorer`,url:`https://blockexplorer.thesecurityteam.rocks`}},testnet:!0}),PS=L({...R,id:1338,name:`Elysium Testnet`,nativeCurrency:{decimals:18,name:`LAVA`,symbol:`LAVA`},rpcUrls:{default:{http:[`https://elysium-test-rpc.vulcanforged.com`]}},blockExplorers:{default:{name:`Elysium testnet explorer`,url:`https://elysium-explorer.vulcanforged.com`}},testnet:!0}),FS=L({id:246,name:`Energy Mainnet`,nativeCurrency:{name:`EWT`,symbol:`EWT`,decimals:18},rpcUrls:{default:{http:[`https://rpc.energyweb.org`]}},blockExplorers:{default:{name:`EnergyWeb Explorer`,url:`https://explorer.energyweb.org`}},testnet:!1}),IS=L({id:173,name:`ENI Mainnet`,nativeCurrency:{decimals:18,name:`ENI`,symbol:`ENI`},rpcUrls:{default:{http:[`https://rpc.eniac.network`]}},blockExplorers:{default:{name:`ENI Explorer`,url:`https://scan.eniac.network`}},testnet:!1}),LS=L({id:6912115,name:`ENI Testnet`,nativeCurrency:{decimals:18,name:`ENI Testnet Token`,symbol:`ENI`},rpcUrls:{default:{http:[`https://rpc-testnet.eniac.network`]}},blockExplorers:{default:{name:`ENI Testnet Explorer`,url:`https://scan-testnet.eniac.network`}},testnet:!0}),RS=L({id:119,name:`ENULS Mainnet`,nativeCurrency:{decimals:18,name:`NULS`,symbol:`NULS`},rpcUrls:{default:{http:[`https://evmapi2.nuls.io`]}},blockExplorers:{default:{name:`ENULS Explorer`,url:`https://evmscan.nuls.io`}},testnet:!1}),zS=L({id:7332,name:`Horizen EON`,nativeCurrency:{decimals:18,name:`ZEN`,symbol:`ZEN`},rpcUrls:{default:{http:[`https://eon-rpc.horizenlabs.io/ethv1`]}},blockExplorers:{default:{name:`EON Explorer`,url:`https://eon-explorer.horizenlabs.io`}},contracts:{}}),BS=L({id:17777,name:`EOS EVM`,nativeCurrency:{decimals:18,name:`EOS`,symbol:`EOS`},rpcUrls:{default:{http:[`https://api.evm.eosnetwork.com`]}},blockExplorers:{default:{name:`EOS EVM Explorer`,url:`https://explorer.evm.eosnetwork.com`,apiUrl:`https://explorer.evm.eosnetwork.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:7943933}}}),VS=L({id:15557,name:`EOS EVM Testnet`,nativeCurrency:{decimals:18,name:`EOS`,symbol:`EOS`},rpcUrls:{default:{http:[`https://api.testnet.evm.eosnetwork.com`]}},blockExplorers:{default:{name:`EOS EVM Testnet Explorer`,url:`https://explorer.testnet.evm.eosnetwork.com`,apiUrl:`https://explorer.testnet.evm.eosnetwork.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:9067940}},testnet:!0}),HS=L({id:140,name:`Eteria`,nativeCurrency:{name:`Eteria`,symbol:`ERA`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.eteria.io/v1`]}},blockExplorers:{default:{name:`Eteria Explorer`,url:`https://explorer.eteria.io`,apiUrl:`https://explorer.eteria.io/api`}}}),US=L({id:42793,name:`Etherlink`,blockTime:4830,nativeCurrency:{decimals:18,name:`Tez`,symbol:`XTZ`},rpcUrls:{default:{http:[`https://node.mainnet.etherlink.com`]}},blockExplorers:{default:{name:`Etherlink`,url:`https://explorer.etherlink.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:33899}}}),WS=L({id:128123,name:`Etherlink Testnet`,nativeCurrency:{decimals:18,name:`Tez`,symbol:`XTZ`},rpcUrls:{default:{http:[`https://node.ghostnet.etherlink.com`]}},blockExplorers:{default:{name:`Etherlink Testnet`,url:`https://testnet.explorer.etherlink.com`}},testnet:!0}),GS=L({id:183,name:`Ethernity`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.ethernitychain.io`]}},blockExplorers:{default:{name:`Ethernity Explorer`,url:`https://ernscan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},testnet:!1}),KS=L({id:20256789,name:`ETP Mainnet`,nativeCurrency:{decimals:18,name:`ETP Chain Native Token`,symbol:`ETP`},rpcUrls:{default:{http:[`https://rpc.etpscan.xyz`]}},blockExplorers:{default:{name:`ETP Scan`,url:`https://etpscan.xyz`}}}),qS=L({id:9001,name:`Evmos`,nativeCurrency:{decimals:18,name:`Evmos`,symbol:`EVMOS`},rpcUrls:{default:{http:[`https://eth.bd.evmos.org:8545`]}},blockExplorers:{default:{name:`Evmos Block Explorer`,url:`https://escan.live`}}}),JS=L({id:9e3,name:`Evmos Testnet`,nativeCurrency:{decimals:18,name:`Evmos`,symbol:`EVMOS`},rpcUrls:{default:{http:[`https://eth.bd.evmos.dev:8545`]}},blockExplorers:{default:{name:`Evmos Testnet Block Explorer`,url:`https://evm.evmos.dev/`}}}),YS=L({id:22052002,name:`Excelon Mainnet`,network:`XLON`,nativeCurrency:{decimals:18,name:`Excelon`,symbol:`xlon`},rpcUrls:{default:{http:[`https://edgewallet1.xlon.org`]}},blockExplorers:{default:{name:`Excelon explorer`,url:`https://explorer.excelon.io`}}}),XS=L({id:2,name:`Expanse Network`,nativeCurrency:{decimals:18,name:`EXP`,symbol:`EXP`},rpcUrls:{default:{http:[`https://node.expanse.tech`]}},blockExplorers:{default:{name:`Expanse Explorer`,url:`https://explorer.expanse.tech`}},testnet:!1}),ZS=L({id:7200,name:`exSat Network`,nativeCurrency:{decimals:18,name:`BTC`,symbol:`BTC`},rpcUrls:{default:{http:[`https://evm.exsat.network`]}},blockExplorers:{default:{name:`exSat Explorer`,url:`https://scan.exsat.network`,apiUrl:`https://scan.exsat.network/api`}}}),QS=L({id:839999,name:`exSat Testnet`,nativeCurrency:{decimals:18,name:`BTC`,symbol:`BTC`},rpcUrls:{default:{http:[`https://evm-tst3.exsat.network`]}},blockExplorers:{default:{name:`exSat Explorer`,url:`https://scan-testnet.exsat.network`,apiUrl:`https://scan-testnet.exsat.network/api`}}}),$S=L({id:250,name:`Fantom`,nativeCurrency:{decimals:18,name:`Fantom`,symbol:`FTM`},rpcUrls:{default:{http:[`https://250.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`FTMScan`,url:`https://ftmscan.com`,apiUrl:`https://api.ftmscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:33001987}}}),eC=L({id:64240,name:`Fantom Sonic Open Testnet`,network:`fantom-sonic-testnet`,nativeCurrency:{decimals:18,name:`Fantom`,symbol:`FTM`},rpcUrls:{default:{http:[`https://rpcapi.sonic.fantom.network`]}},blockExplorers:{default:{name:`Fantom Sonic Open Testnet Explorer`,url:`https://public-sonic.fantom.network`}},testnet:!0}),tC=L({id:4002,name:`Fantom Testnet`,nativeCurrency:{decimals:18,name:`Fantom`,symbol:`FTM`},rpcUrls:{default:{http:[`https://rpc.testnet.fantom.network`]}},blockExplorers:{default:{name:`FTMScan`,url:`https://testnet.ftmscan.com`,apiUrl:`https://testnet.ftmscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:8328688}},testnet:!0}),nC=L({id:12306,name:`Fibo Chain`,nativeCurrency:{decimals:18,name:`fibo`,symbol:`FIBO`},rpcUrls:{default:{http:[`https://network.hzroc.art`]}},blockExplorers:{default:{name:`FiboScan`,url:`https://scan.fibochain.org`}}}),rC=L({id:314,name:`Filecoin Mainnet`,nativeCurrency:{decimals:18,name:`filecoin`,symbol:`FIL`},rpcUrls:{default:{http:[`https://api.node.glif.io/rpc/v1`]}},blockExplorers:{default:{name:`Filfox`,url:`https://filfox.info/en`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3328594}}}),iC=L({id:314159,name:`Filecoin Calibration`,nativeCurrency:{decimals:18,name:`testnet filecoin`,symbol:`tFIL`},rpcUrls:{default:{http:[`https://api.calibration.node.glif.io/rpc/v1`]}},blockExplorers:{default:{name:`Filscan`,url:`https://calibration.filscan.io`}},testnet:!0}),aC=L({id:3141,name:`Filecoin Hyperspace`,nativeCurrency:{decimals:18,name:`testnet filecoin`,symbol:`tFIL`},rpcUrls:{default:{http:[`https://api.hyperspace.node.glif.io/rpc/v1`]}},blockExplorers:{default:{name:`Filfox`,url:`https://hyperspace.filfox.info/en`}},testnet:!0}),oC=L({id:253368190,name:`Flame`,network:`flame`,nativeCurrency:{symbol:`TIA`,name:`TIA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.flame.astria.org`],webSocket:[`wss://ws.flame.astria.org`]}},blockExplorers:{default:{name:`Flame Explorer`,url:`https://explorer.flame.astria.org`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:6829148}}}),sC=L({id:14,name:`Flare Mainnet`,nativeCurrency:{decimals:18,name:`Flare`,symbol:`FLR`},rpcUrls:{default:{http:[`https://flare-api.flare.network/ext/C/rpc`]}},blockExplorers:{default:{name:`Flare Explorer`,url:`https://flare-explorer.flare.network`,apiUrl:`https://flare-explorer.flare.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3002461}}}),cC=L({id:114,name:`Flare Testnet Coston2`,nativeCurrency:{decimals:18,name:`Coston2 Flare`,symbol:`C2FLR`},rpcUrls:{default:{http:[`https://coston2-api.flare.network/ext/C/rpc`]}},blockExplorers:{default:{name:`Coston2 Explorer`,url:`https://coston2-explorer.flare.network`,apiUrl:`https://coston2-explorer.flare.network/api`}},testnet:!0}),lC=L({id:747,name:`Flow EVM Mainnet`,nativeCurrency:{decimals:18,name:`Flow`,symbol:`FLOW`},rpcUrls:{default:{http:[`https://mainnet.evm.nodes.onflow.org`]}},blockExplorers:{default:{name:`Mainnet Explorer`,url:`https://evm.flowscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:6205}},blockTime:800}),uC=L({id:646,name:`Flow EVM Previewnet`,nativeCurrency:{decimals:18,name:`Flow`,symbol:`FLOW`},rpcUrls:{default:{http:[`https://previewnet.evm.nodes.onflow.org`]}},blockExplorers:{default:{name:`Previewnet Explorer`,url:`https://previewnet.flowdiver.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:6205}}}),dC=L({id:545,name:`Flow EVM Testnet`,nativeCurrency:{decimals:18,name:`Flow`,symbol:`FLOW`},rpcUrls:{default:{http:[`https://testnet.evm.nodes.onflow.org`]}},blockExplorers:{default:{name:`Flow Diver`,url:`https://evm-testnet.flowscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:137518}},testnet:!0,blockTime:800}),fC=L({id:9999999,name:`Fluence`,nativeCurrency:{name:`FLT`,symbol:`FLT`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.fluence.dev`],webSocket:[`wss://ws.mainnet.fluence.dev`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.mainnet.fluence.dev`,apiUrl:`https://blockscout.mainnet.fluence.dev/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:207583}}}),pC=L({id:123420000220,name:`Fluence Stage`,nativeCurrency:{name:`tFLT`,symbol:`tFLT`,decimals:18},rpcUrls:{default:{http:[`https://rpc.stage.fluence.dev`],webSocket:[`wss://ws.stage.fluence.dev`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.stage.fluence.dev`,apiUrl:`https://blockscout.stage.fluence.dev/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:83227}},testnet:!0}),mC=L({id:52164803,name:`Fluence Testnet`,nativeCurrency:{name:`tFLT`,symbol:`tFLT`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.fluence.dev`],webSocket:[`wss://ws.testnet.fluence.dev`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.testnet.fluence.dev`,apiUrl:`https://blockscout.testnet.fluence.dev/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:96424}},testnet:!0}),hC=L({id:20993,name:`Fluent Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.dev.gblend.xyz`]}},blockExplorers:{default:{name:`Fluent Explorer`,url:`https://blockscout.dev.gblend.xyz`}},testnet:!0});var gC=1;const _C=L({id:478,name:`Form Network`,nativeCurrency:{decimals:18,name:`Ethereum`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.form.network/http`],webSocket:[`wss://rpc.form.network/ws`]}},blockExplorers:{default:{name:`Form Explorer`,url:`https://explorer.form.network`}},contracts:{...R.contracts,addressManager:{[gC]:{address:`0x15c249E46A2F924C2dB3A1560CF86729bAD1f07B`}},l1CrossDomainMessenger:{[gC]:{address:`0xF333158DCCad1dF6C3F0a3aEe8BC31fA94d9eD5c`}},l2OutputOracle:{[gC]:{address:`0x4ccAAF69F41c5810cA875183648B577CaCf1F67E`}},portal:{[gC]:{address:`0x4E259Ee5F4136408908160dD32295A5031Fa426F`}},l1StandardBridge:{[gC]:{address:`0xdc20aA63D3DE59574E065957190D8f24e0F7B8Ba`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},sourceId:gC}),vC=L({id:984122,name:`Forma`,network:`forma`,nativeCurrency:{symbol:`TIA`,name:`TIA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.forma.art`],webSocket:[`wss://ws.forma.art`]}},blockExplorers:{default:{name:`Forma Explorer`,url:`https://explorer.forma.art`}},contracts:{multicall3:{address:`0xd53C6FFB123F7349A32980F87faeD8FfDc9ef079`,blockCreated:252705}}});var yC=11155111;const bC=L({id:132902,name:`Form Testnet`,nativeCurrency:{decimals:18,name:`Ethereum`,symbol:`ETH`},rpcUrls:{default:{http:[`https://sepolia-rpc.form.network/http`],webSocket:[`wss://sepolia-rpc.form.network/ws`]}},blockExplorers:{default:{name:`Form Testnet Explorer`,url:`https://sepolia-explorer.form.network`}},contracts:{...R.contracts,addressManager:{[yC]:{address:`0xd5C38fa934f7fd7477D4800F4f38a1c5BFdF1373`}},l1CrossDomainMessenger:{[yC]:{address:`0x37A68565c4BE9700b3E3Ec60cC4416cAC3052FAa`}},l2OutputOracle:{[yC]:{address:`0x9eA2239E65a59EC9C7F1ED4C116dD58Da71Fc1e2`}},portal:{[yC]:{address:`0x60377e3cE15dF4CCA24c4beF076b60314240b032`}},l1StandardBridge:{[yC]:{address:`0xD4531f633942b2725896F47cD2aFd260b44Ab1F7`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},testnet:!0,sourceId:yC}),xC=L({id:80931,name:`Forta Chain`,nativeCurrency:{symbol:`FORT`,name:`FORT`,decimals:18},rpcUrls:{default:{http:[`https://rpc-forta-chain-8gj1qndmfc.t.conduit.xyz`]}},blockExplorers:{default:{name:`Forta Explorer`,url:`https://explorer.forta.org`}}}),SC=L({id:31337,name:`Foundry`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`],webSocket:[`ws://127.0.0.1:8545`]}}});var CC=1;const wC=L({...R,id:252,name:`Fraxtal`,nativeCurrency:{name:`Frax`,symbol:`FRAX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.frax.com`]}},blockExplorers:{default:{name:`fraxscan`,url:`https://fraxscan.com`,apiUrl:`https://api.fraxscan.com/api`}},contracts:{...R.contracts,l2OutputOracle:{[CC]:{address:`0x66CC916Ed5C6C2FA97014f7D1cD141528Ae171e4`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[CC]:{address:`0x36cb65c1967A0Fb0EEE11569C51C2f2aA1Ca6f6D`,blockCreated:19135323}},l1StandardBridge:{[CC]:{address:`0x34C0bD5877A5Ee7099D0f5688D65F4bB9158BDE2`,blockCreated:19135323}}},sourceId:CC});var TC=17e3;const EC=L({...R,id:2522,name:`Fraxtal Testnet`,nativeCurrency:{name:`Frax`,symbol:`FRAX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.frax.com`]}},blockExplorers:{default:{name:`fraxscan testnet`,url:`https://holesky.fraxscan.com`,apiUrl:`https://api-holesky.fraxscan.com/api`}},contracts:{...R.contracts,l2OutputOracle:{[TC]:{address:`0x715EA64DA13F4d0831ece4Ad3E8c1aa013167F32`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[TC]:{address:`0xB9c64BfA498d5b9a8398Ed6f46eb76d90dE5505d`,blockCreated:318416}},l1StandardBridge:{[TC]:{address:`0x0BaafC217162f64930909aD9f2B27125121d6332`,blockCreated:318416}}},sourceId:TC});var DC=1;const OC=L({...R,id:33979,name:`Funki`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-mainnet.funkichain.com`]}},blockExplorers:{default:{name:`Funki Mainnet Explorer`,url:`https://funkiscan.io`}},contracts:{...R.contracts},sourceId:DC});var kC=11155111;const AC=L({...R,id:3397901,network:`funkiSepolia`,name:`Funki Sepolia Sandbox`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://funki-testnet.alt.technology`]}},blockExplorers:{default:{name:`Funki Sepolia Sandbox Explorer`,url:`https://sepolia-sandbox.funkichain.com/`}},testnet:!0,contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1620204}},sourceId:kC}),jC=L({id:122,name:`Fuse`,nativeCurrency:{name:`Fuse`,symbol:`FUSE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.fuse.io`]}},blockExplorers:{default:{name:`Fuse Explorer`,url:`https://explorer.fuse.io`,apiUrl:`https://explorer.fuse.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:16146628}}}),MC=L({id:123,name:`Fuse Sparknet`,nativeCurrency:{name:`Spark`,symbol:`SPARK`,decimals:18},rpcUrls:{default:{http:[`https://rpc.fusespark.io`]}},blockExplorers:{default:{name:`Sparkent Explorer`,url:`https://explorer.fusespark.io`,apiUrl:`https://explorer.fusespark.io/api`}}}),NC=L({id:32659,name:`Fusion Mainnet`,nativeCurrency:{name:`Fusion`,symbol:`FSN`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.fusionnetwork.io`],webSocket:[`wss://mainnet.fusionnetwork.io`]}},blockExplorers:{default:{name:`FSNscan`,url:`https://fsnscan.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:10441605}},testnet:!1}),PC=L({id:46688,name:`Fusion Testnet`,nativeCurrency:{name:`Fusion`,symbol:`FSN`,decimals:18},rpcUrls:{default:{http:[`https://testnet.fusionnetwork.io`],webSocket:[`wss://testnet.fusionnetwork.io`]}},blockExplorers:{default:{name:`FSNscan`,url:`https://testnet.fsnscan.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:10428309}},testnet:!0});var FC=17e3;const IC=L({...R,name:`Garnet Testnet`,testnet:!0,id:17069,sourceId:FC,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.garnetchain.com`],webSocket:[`wss://rpc.garnetchain.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.garnetchain.com`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[FC]:{address:`0x57ee40586fbE286AfC75E67cb69511A6D9aF5909`,blockCreated:1274684}},l2OutputOracle:{[FC]:{address:`0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B`,blockCreated:1274684}},l1StandardBridge:{[FC]:{address:`0x09bcDd311FE398F80a78BE37E489f5D440DB95DE`,blockCreated:1274684}}}}),LC=L({id:63157,name:`Geist Mainnet`,nativeCurrency:{decimals:18,name:`Aavegotchi GHST Token`,symbol:`GHST`},rpcUrls:{default:{http:[`https://geist-mainnet.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://geist-mainnet.explorer.alchemy.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:660735}}}),RC=L({id:16507,name:`Genesys Mainnet`,nativeCurrency:{decimals:18,name:`GSYS`,symbol:`GSYS`},rpcUrls:{default:{http:[`https://rpc.genesys.network`]}},blockExplorers:{default:{name:`Genesys Explorer`,url:`https://gchainexplorer.genesys.network`}},testnet:!1});var zC=11155111;const BC=L({...R,id:91342,network:`giwa-sepolia`,name:`GIWA Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},blockTime:1e3,rpcUrls:{default:{http:[`https://sepolia-rpc.giwa.io`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://sepolia-explorer.giwa.io`,apiUrl:`https://sepolia-explorer.giwa.io/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},disputeGameFactory:{[zC]:{address:`0x37347caB2afaa49B776372279143D71ad1f354F6`}},portal:{[zC]:{address:`0x956962C34687A954e611A83619ABaA37Ce6bC78A`}},l1StandardBridge:{[zC]:{address:`0x77b2ffc0F57598cAe1DB76cb398059cF5d10A7E7`}}},testnet:!0,sourceId:zC}),VC=L({id:251,name:`Glide L1 Protocol XP`,nativeCurrency:{name:`GLXP`,symbol:`GLXP`,decimals:18},rpcUrls:{default:{http:[`https://rpc-api.glideprotocol.xyz/l1-rpc`],webSocket:[`wss://rpc-api.glideprotocol.xyz/l1-rpc`]}},blockExplorers:{default:{name:`Glide Protocol Explore`,url:`https://blockchain-explorer.glideprotocol.xyz`}},testnet:!1}),HC=L({id:253,name:`Glide L2 Protocol XP`,nativeCurrency:{name:`GLXP`,symbol:`GLXP`,decimals:18},rpcUrls:{default:{http:[`https://rpc-api.glideprotocol.xyz/l2-rpc`],webSocket:[`wss://rpc-api.glideprotocol.xyz/l2-rpc`]}},blockExplorers:{default:{name:`Glide Protocol Explore`,url:`https://blockchain-explorer.glideprotocol.xyz`}},testnet:!1}),UC=L({id:100,name:`Gnosis`,nativeCurrency:{decimals:18,name:`xDAI`,symbol:`XDAI`},blockTime:5e3,rpcUrls:{default:{http:[`https://rpc.gnosischain.com`],webSocket:[`wss://rpc.gnosischain.com/wss`]}},blockExplorers:{default:{name:`Gnosisscan`,url:`https://gnosisscan.io`,apiUrl:`https://api.gnosisscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:21022491}}}),WC=L({id:10200,name:`Gnosis Chiado`,nativeCurrency:{decimals:18,name:`Gnosis`,symbol:`xDAI`},blockTime:5e3,rpcUrls:{default:{http:[`https://rpc.chiadochain.net`],webSocket:[`wss://rpc.chiadochain.net/wss`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.chiadochain.net`,apiUrl:`https://blockscout.chiadochain.net/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:4967313}},testnet:!0}),GC=L({id:2345,name:`GOAT`,nativeCurrency:{decimals:18,name:`Bitcoin`,symbol:`BTC`},rpcUrls:{default:{http:[`https://rpc.goat.network`]}},blockExplorers:{default:{name:`Goat Explorer`,url:`https://explorer.goat.network`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}}}),KC=L({id:1663,name:`Horizen Gobi Testnet`,nativeCurrency:{decimals:18,name:`Test ZEN`,symbol:`tZEN`},rpcUrls:{default:{http:[`https://gobi-testnet.horizenlabs.io/ethv1`]}},blockExplorers:{default:{name:`Gobi Explorer`,url:`https://gobi-explorer.horizen.io`}},contracts:{},testnet:!0}),qC=L({id:60,name:`GoChain`,nativeCurrency:{decimals:18,name:`GO`,symbol:`GO`},rpcUrls:{default:{http:[`https://rpc.gochain.io`]}},blockExplorers:{default:{name:`GoChain Explorer`,url:`https://explorer.gochain.io`}},testnet:!1}),JC=L({id:71402,name:`Godwoken Mainnet`,nativeCurrency:{decimals:18,name:`pCKB`,symbol:`pCKB`},rpcUrls:{default:{http:[`https://v1.mainnet.godwoken.io/rpc`]}},blockExplorers:{default:{name:`GW Scan`,url:`https://v1.gwscan.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:15034}},testnet:!1}),YC=L({id:5,name:`Goerli`,nativeCurrency:{name:`Goerli Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://5.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://goerli.etherscan.io`,apiUrl:`https://api-goerli.etherscan.io/api`}},contracts:{ensRegistry:{address:`0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e`},ensUniversalResolver:{address:`0xfc4AC75C46C914aF5892d6d3eFFcebD7917293F1`,blockCreated:10339206},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:6507670}},testnet:!0}),XC=L({id:440017,name:`Graphite Network`,nativeCurrency:{name:`Graphite`,symbol:`@G`,decimals:18},rpcUrls:{default:{http:[`https://anon-entrypoint-1.atgraphite.com`],webSocket:[`wss://ws-anon-entrypoint-1.atgraphite.com`]}},blockExplorers:{default:{name:`Graphite Spectre`,url:`https://main.atgraphite.com`,apiUrl:`https://api.main.atgraphite.com/api`}},testnet:!1}),ZC=L({id:54170,name:`Graphite Network Testnet`,nativeCurrency:{name:`Graphite`,symbol:`@G`,decimals:18},rpcUrls:{default:{http:[`https://anon-entrypoint-test-1.atgraphite.com`],webSocket:[`wss://ws-anon-entrypoint-test-1.atgraphite.com`]}},blockExplorers:{default:{name:`Graphite Testnet Spectre`,url:`https://test.atgraphite.com`,apiUrl:`https://api.test.atgraphite.com/api`}},testnet:!0}),QC=L({id:1625,name:`Gravity Alpha Mainnet`,nativeCurrency:{name:`G`,symbol:`G`,decimals:18},rpcUrls:{default:{http:[`https://rpc.gravity.xyz`]}},blockExplorers:{default:{name:`Gravity Explorer`,url:`https://explorer.gravity.xyz`,apiUrl:`https://explorer.gravity.xyz/api`}},contracts:{multicall3:{address:`0xf8ac4BEB2F75d2cFFb588c63251347fdD629B92c`,blockCreated:16851}}}),$C=L({id:43419,name:`Gunz Mainnet`,nativeCurrency:{name:`GUN`,symbol:`GUN`,decimals:18},rpcUrls:{default:{http:[`https://rpc.gunzchain.io/ext/bc/2M47TxWHGnhNtq6pM5zPXdATBtuqubxn5EPFgFmEawCQr9WFML/rpc`]}},blockExplorers:{default:{name:`Gunz Explorer`,url:`https://gunzscan.io/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:70502}}}),ew=L({id:260,name:`Guru Network Mainnet`,nativeCurrency:{name:`GURU Token`,symbol:`GURU`,decimals:18},rpcUrls:{default:{http:[`https://rpc-main.gurunetwork.ai`,`https://rpc.gurunetwork.ai/archive/260`]}},blockExplorers:{default:{name:`Guruscan`,url:`https://scan.gurunetwork.ai`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:271691}},testnet:!1}),tw=L({id:261,name:`Guru Network Testnet`,nativeCurrency:{name:`tGURU Token`,symbol:`tGURU`,decimals:18},rpcUrls:{default:{http:[`https://rpc-test.gurunetwork.ai`,`https://rpc.gurunetwork.ai/archive/261`]}},blockExplorers:{default:{name:`Guruscan`,url:`https://sepolia.gurunetwork.ai`}},testnet:!0}),nw=L({id:5112,name:`Ham`,nativeCurrency:{decimals:18,name:`Ham`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.ham.fun`],webSocket:[`wss://rpc.ham.fun`]}},blockExplorers:{default:{name:`Ham Chain Explorer`,url:`https://explorer.ham.fun`,apiUrl:`https://explorer.ham.fun/api/v2`}}}),rw=L({id:216,name:`Happychain Testnet`,nativeCurrency:{symbol:`HAPPY`,name:`HAPPY`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.happy.tech/http`],webSocket:[`wss://rpc.testnet.happy.tech/ws`]}},blockExplorers:{default:{name:`Happy Chain Testnet Explorer`,url:`https://explorer.testnet.happy.tech`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1}},testnet:!0}),iw=L({id:11235,name:`HAQQ Mainnet`,nativeCurrency:{decimals:18,name:`Islamic Coin`,symbol:`ISLM`},rpcUrls:{default:{http:[`https://rpc.eth.haqq.network`]}},blockExplorers:{default:{name:`HAQQ Explorer`,url:`https://explorer.haqq.network`,apiUrl:`https://explorer.haqq.network/api`}}}),aw=L({id:54211,name:`HAQQ Testedge 2`,nativeCurrency:{decimals:18,name:`Islamic Coin`,symbol:`ISLMT`},rpcUrls:{default:{http:[`https://rpc.eth.testedge2.haqq.network`]}},blockExplorers:{default:{name:`HAQQ Explorer`,url:`https://explorer.testedge2.haqq.network`,apiUrl:`https://explorer.testedge2.haqq.network/api`}}}),ow=L({id:31337,name:`Hardhat`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),sw=L({id:16666e5,name:`Harmony One`,nativeCurrency:{name:`Harmony`,symbol:`ONE`,decimals:18},rpcUrls:{default:{http:[`https://1666600000.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`Harmony Explorer`,url:`https://explorer.harmony.one`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:24185753}}}),cw=L({id:177,name:`HashKey Chain`,nativeCurrency:{decimals:18,name:`HashKey EcoPoints`,symbol:`HSK`},rpcUrls:{default:{http:[`https://mainnet.hsk.xyz`]}},blockExplorers:{default:{name:`HashKey Chain Explorer`,url:`https://hashkey.blockscout.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0}}}),lw=L({id:133,name:`HashKey Chain Testnet`,nativeCurrency:{decimals:18,name:`HashKey EcoPoints`,symbol:`HSK`},rpcUrls:{default:{http:[`https://hashkeychain-testnet.alt.technology`]}},blockExplorers:{default:{name:`HashKey Chain Explorer`,url:`https://hashkeychain-testnet-explorer.alt.technology`}},testnet:!0}),uw=L({id:1523903251,name:`Haust Network Testnet`,nativeCurrency:{decimals:18,name:`HAUST`,symbol:`HAUST`},rpcUrls:{default:{http:[`https://rpc-testnet.haust.app`]}},blockExplorers:{default:{name:`Haust Network Testnet Explorer`,url:`https://explorer-testnet.haust.app`}},testnet:!0}),dw=L({id:295,name:`Hedera Mainnet`,network:`hedera-mainnet`,nativeCurrency:{symbol:`HBAR`,name:`HBAR`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.hashio.io/api`]}},blockExplorers:{default:{name:`Hashscan`,url:`https://hashscan.io/mainnet`}},testnet:!1}),fw=L({id:297,name:`Hedera Previewnet`,network:`hedera-previewnet`,nativeCurrency:{symbol:`HBAR`,name:`HBAR`,decimals:18},rpcUrls:{default:{http:[`https://previewnet.hashio.io/api`]}},blockExplorers:{default:{name:`Hashscan`,url:`https://hashscan.io/previewnet`}},testnet:!0}),pw=L({id:296,name:`Hedera Testnet`,network:`hedera-testnet`,nativeCurrency:{symbol:`HBAR`,name:`HBAR`,decimals:18},rpcUrls:{default:{http:[`https://testnet.hashio.io/api`]}},blockExplorers:{default:{name:`Hashscan`,url:`https://hashscan.io/testnet`}},testnet:!0}),mw=L({id:8668,name:`Hela Mainnet`,nativeCurrency:{name:`HLUSD`,symbol:`HLUSD`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-rpc.helachain.com`]}},blockExplorers:{default:{name:`Hela explorer`,url:`https://mainnet-blockexplorer.helachain.com`}},testnet:!1}),hw=L({id:43111,name:`Hemi`,network:`Hemi`,blockTime:12e3,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hemi.network/rpc`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.hemi.xyz`}},testnet:!1}),gw=L({id:743111,name:`Hemi Sepolia`,network:`Hemi Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet.rpc.hemi.network/rpc`]}},blockExplorers:{default:{name:`Hemi Sepolia explorer`,url:`https://testnet.explorer.hemi.xyz`}},testnet:!0}),_w=L({id:17e3,name:`Holesky`,nativeCurrency:{name:`Holesky Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://ethereum-holesky-rpc.publicnode.com`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://holesky.etherscan.io`,apiUrl:`https://api-holesky.etherscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:77},ensUniversalResolver:{address:`0xeeeeeeee14d718c2b47d9923deab1335e144eeee`,blockCreated:4295055}},testnet:!0}),vw=L({id:560048,name:`Hoodi`,nativeCurrency:{name:`Hoodi Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hoodi.ethpandaops.io`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://hoodi.etherscan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2589}},testnet:!0}),yw=L({id:269,name:`High Performance Blockchain`,nativeCurrency:{name:`HPB`,symbol:`HPB`,decimals:18},rpcUrls:{default:{http:[`https://hpbnode.com`]}},blockExplorers:{default:{name:`hpbScan`,url:`https://hscan.org`}},testnet:!1}),bw=L({id:12323,name:`Huddle01 dRTC Chain`,nativeCurrency:{name:`Ethereum`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://huddle01.calderachain.xyz/http`],webSocket:[`wss://huddle01.calderachain.xyz/ws`]}},blockExplorers:{default:{name:`Huddle01 Caldera Explorer`,url:`https://huddle01.calderaexplorer.xyz`,apiUrl:`https://huddle01.calderaexplorer.xyz/api`}},sourceId:42161}),xw=L({id:2524852,name:`Huddle01 dRTC Chain Testnet`,nativeCurrency:{name:`Ethereum`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://huddle-testnet.rpc.caldera.xyz/http`],webSocket:[`wss://huddle-testnet.rpc.caldera.xyz/ws`]}},blockExplorers:{default:{name:`Huddle01 Caldera Explorer`,url:`https://huddle-testnet.explorer.caldera.xyz`,apiUrl:`https://huddle-testnet.explorer.caldera.xyz/api`}},sourceId:421614}),Sw=L({id:6985385,name:`Humanity`,nativeCurrency:{name:`H`,symbol:`H`,decimals:18},rpcUrls:{default:{http:[`https://humanity-mainnet.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Humanity Mainnet Explorer`,url:`https://humanity-mainnet.explorer.alchemy.com`,apiUrl:`https://humanity-mainnet.explorer.alchemy.com/api`}},testnet:!1}),Cw=L({id:7080969,name:`Humanity Testnet`,nativeCurrency:{name:`tHP`,symbol:`tHP`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.humanity.org`]}},blockExplorers:{default:{name:`Humanity Testnet Explorer`,url:`https://humanity-testnet.explorer.alchemy.com`,apiUrl:`https://humanity-testnet.explorer.alchemy.com/api`}},testnet:!0}),ww=L({id:5234,name:`Humanode`,nativeCurrency:{name:`HMND`,symbol:`HMND`,decimals:18},rpcUrls:{default:{http:[`https://explorer-rpc-http.mainnet.stages.humanode.io`],webSocket:[`wss://explorer-rpc-ws.mainnet.stages.humanode.io`]}},blockExplorers:{default:{name:`Subscan`,url:`https://humanode.subscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:4413097}}}),Tw=L({id:14853,name:`Humanode Testnet 5`,nativeCurrency:{name:`HMND`,symbol:`HMND`,decimals:18},rpcUrls:{default:{http:[`https://explorer-rpc-http.testnet5.stages.humanode.io`],webSocket:[`wss://explorer-rpc-ws.testnet5.stages.humanode.io`]}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}}}),Ew=L({id:2911,name:`HYCHAIN`,nativeCurrency:{name:`HYTOPIA`,symbol:`TOPIA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hychain.com/http`]}},blockExplorers:{default:{name:`HYCHAIN Explorer`,url:`https://explorer.hychain.com`}},testnet:!1}),Dw=L({id:29112,name:`HYCHAIN Testnet`,nativeCurrency:{name:`HYTOPIA`,symbol:`TOPIA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hychain.com/http`]}},blockExplorers:{default:{name:`HYCHAIN Explorer`,url:`https://testnet-rpc.hychain.com/http`}},testnet:!0}),Ow=L({id:998,name:`Hyperliquid EVM Testnet`,nativeCurrency:{name:`HYPE`,symbol:`HYPE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hyperliquid-testnet.xyz/evm`]}},testnet:!0}),kw=L({id:73115,name:`ICB Network`,nativeCurrency:{decimals:18,name:`ICB Native Token`,symbol:`ICBX`},rpcUrls:{default:{http:[`https://rpc1-mainnet.icbnetwork.info`]}},blockExplorers:{default:{name:`ICB Explorer`,url:`https://icbscan.io`,apiUrl:`https://icbscan.io/api`}},testnet:!1}),Aw=L({id:74,name:`IDChain Mainnet`,nativeCurrency:{decimals:18,name:`EIDI`,symbol:`EIDI`},rpcUrls:{default:{http:[`https://idchain.one/rpc`],webSocket:[`wss://idchain.one/ws`]}},blockExplorers:{default:{name:`IDChain Explorer`,url:`https://explorer.idchain.one`}},testnet:!1}),jw=L({id:13371,name:`Immutable zkEVM`,nativeCurrency:{decimals:18,name:`Immutable Coin`,symbol:`IMX`},rpcUrls:{default:{http:[`https://rpc.immutable.com`]}},blockExplorers:{default:{name:`Immutable Explorer`,url:`https://explorer.immutable.com`,apiUrl:`https://explorer.immutable.com/api`}},contracts:{multicall3:{address:`0x236bdA4589e44e6850f5aC6a74BfCa398a86c6c0`,blockCreated:4335972}}}),Mw=L({id:13473,name:`Immutable zkEVM Testnet`,nativeCurrency:{decimals:18,name:`Immutable Coin`,symbol:`IMX`},rpcUrls:{default:{http:[`https://rpc.testnet.immutable.com`]}},blockExplorers:{default:{name:`Immutable Testnet Explorer`,url:`https://explorer.testnet.immutable.com/`}},contracts:{multicall3:{address:`0x2CC787Ed364600B0222361C4188308Fa8E68bA60`,blockCreated:5977391}},testnet:!0}),Nw=L({id:2525,name:`inEVM Mainnet`,nativeCurrency:{decimals:18,name:`Injective`,symbol:`INJ`},rpcUrls:{default:{http:[`https://mainnet.rpc.inevm.com/http`]}},blockExplorers:{default:{name:`inEVM Explorer`,url:`https://inevm.calderaexplorer.xyz`,apiUrl:`https://inevm.calderaexplorer.xyz/api/v2`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:118606}}}),Pw=L({id:7233,name:`InitVerse Mainnet`,nativeCurrency:{decimals:18,name:`InitVerse`,symbol:`INI`},rpcUrls:{default:{http:[`https://rpc-mainnet.inichain.com`]}},blockExplorers:{default:{name:`InitVerseScan`,url:`https://www.iniscan.com`,apiUrl:`https://explorer-api.inichain.com/api`}},contracts:{multicall3:{address:`0x83466BE48A067115FFF91f7b892Ed1726d032e47`,blockCreated:2318}}}),Fw=L({id:7234,name:`InitVerse Genesis Testnet`,nativeCurrency:{decimals:18,name:`InitVerse`,symbol:`INI`},rpcUrls:{default:{http:[`https://rpc-testnet.inichain.com`]}},blockExplorers:{default:{name:`InitVerseGenesisScan`,url:`https://genesis-testnet.iniscan.com`,apiUrl:`https://explorer-testnet-api.inichain.com/api`}},contracts:{multicall3:{address:`0x0cF32CBDd6c437331EA4f85ed2d881A5379B5a6F`,blockCreated:16361}},testnet:!0}),Iw=L({id:1776,name:`Injective`,nativeCurrency:{decimals:18,name:`Injective`,symbol:`INJ`},rpcUrls:{default:{http:[`https://sentry.evm-rpc.injective.network`],webSocket:[`wss://sentry.evm-ws.injective.network`]}},blockExplorers:{default:{name:`Injective Explorer`,url:`https://blockscout.injective.network`,apiUrl:`https://blockscout.injective.network/api`}},testnet:!1}),Lw=L({id:1439,name:`Injective Testnet`,nativeCurrency:{decimals:18,name:`Injective`,symbol:`INJ`},rpcUrls:{default:{http:[`https://k8s.testnet.json-rpc.injective.network`],webSocket:[`wss://k8s.testnet.ws.injective.network`]}},blockExplorers:{default:{name:`Injective Explorer`,url:`https://testnet.blockscout.injective.network`,apiUrl:`https://testnet.blockscout.injective.network/api`}},testnet:!0});var Rw=1;const zw=L({...R,id:57073,name:`Ink`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-gel.inkonchain.com`,`https://rpc-qnd.inkonchain.com`],webSocket:[`wss://rpc-gel.inkonchain.com`,`wss://rpc-qnd.inkonchain.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.inkonchain.com`,apiUrl:`https://explorer.inkonchain.com/api/v2`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},...R.contracts,disputeGameFactory:{[Rw]:{address:`0x10d7b35078d3baabb96dd45a9143b94be65b12cd`}},portal:{[Rw]:{address:`0x5d66c1782664115999c47c9fa5cd031f495d3e4f`}},l1StandardBridge:{[Rw]:{address:`0x88ff1e5b602916615391f55854588efcbb7663f0`}}},testnet:!1,sourceId:Rw});var Bw=11155111;const Vw=L({...R,id:763373,name:`Ink Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-gel-sepolia.inkonchain.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer-sepolia.inkonchain.com/`,apiUrl:`https://explorer-sepolia.inkonchain.com/api/v2`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},disputeGameFactory:{[Bw]:{address:`0x860e626c700af381133d9f4af31412a2d1db3d5d`}},portal:{[Bw]:{address:`0x5c1d29c6c9c8b0800692acc95d700bcb4966a1d7`}},l1StandardBridge:{[Bw]:{address:`0x33f60714bbd74d62b66d79213c348614de51901c`}}},testnet:!0,sourceId:Bw}),Hw=L({id:8822,name:`IOTA EVM`,network:`iotaevm`,nativeCurrency:{decimals:18,name:`IOTA`,symbol:`IOTA`},rpcUrls:{default:{http:[`https://json-rpc.evm.iotaledger.net`],webSocket:[`wss://ws.json-rpc.evm.iotaledger.net`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.evm.iota.org`,apiUrl:`https://explorer.evm.iota.org/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:25022}}}),Uw=L({id:1075,name:`IOTA EVM Testnet`,network:`iotaevm-testnet`,nativeCurrency:{decimals:18,name:`IOTA`,symbol:`IOTA`},rpcUrls:{default:{http:[`https://json-rpc.evm.testnet.iotaledger.net`],webSocket:[`wss://ws.json-rpc.evm.testnet.iotaledger.net`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.evm.testnet.iotaledger.net`,apiUrl:`https://explorer.evm.testnet.iotaledger.net/api`}},testnet:!0}),Ww=L({id:4689,name:`IoTeX`,nativeCurrency:{decimals:18,name:`IoTeX`,symbol:`IOTX`},rpcUrls:{default:{http:[`https://babel-api.mainnet.iotex.io`],webSocket:[`wss://babel-api.mainnet.iotex.io`]}},blockExplorers:{default:{name:`IoTeXScan`,url:`https://iotexscan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:22163670}}}),Gw=L({id:4690,name:`IoTeX Testnet`,nativeCurrency:{decimals:18,name:`IoTeX`,symbol:`IOTX`},rpcUrls:{default:{http:[`https://babel-api.testnet.iotex.io`],webSocket:[`wss://babel-api.testnet.iotex.io`]}},blockExplorers:{default:{name:`IoTeXScan`,url:`https://testnet.iotexscan.io`}},contracts:{multicall3:{address:`0xb5cecD6894c6f473Ec726A176f1512399A2e355d`,blockCreated:24347592}},testnet:!0}),Kw=L({id:8017,name:`iSunCoin Mainnet`,nativeCurrency:{decimals:18,name:`ISC`,symbol:`ISC`},rpcUrls:{default:{http:[`https://mainnet.isuncoin.com`]}},blockExplorers:{default:{name:`iSunCoin Explorer`,url:`https://baifa.io/app/chains/8017`}}}),qw=L({id:8899,name:`JB Chain`,network:`jbc`,nativeCurrency:{name:`JBC`,symbol:`JBC`,decimals:18},rpcUrls:{default:{http:[`https://rpc-l1.jibchain.net`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://exp-l1.jibchain.net`,apiUrl:`https://exp-l1.jibchain.net/api`}},contracts:{multicall3:{address:`0xc0C8C486D1466C57Efe13C2bf000d4c56F47CBdC`,blockCreated:2299048}},testnet:!1}),Jw=L({id:88991,name:`Jibchain Testnet`,nativeCurrency:{name:`tJBC`,symbol:`tJBC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.jibchain.net`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://exp.testnet.jibchain.net`,apiUrl:`https://exp.testnet.jibchain.net/api`}},contracts:{multicall3:{address:`0xa1a858ad9041B4741e620355a3F96B3c78e70ecE`,blockCreated:32848}},testnet:!0}),Yw=L({id:81,name:`Japan Open Chain Mainnet`,nativeCurrency:{decimals:18,name:`Japan Open Chain Token`,symbol:`JOC`},rpcUrls:{default:{http:[`https://rpc-1.japanopenchain.org:8545`,`https://rpc-2.japanopenchain.org:8545`,`https://rpc-3.japanopenchain.org`]}},blockExplorers:{default:{name:`Block Explorer`,url:`https://explorer.japanopenchain.org`}},testnet:!1}),Xw=L({id:10081,name:`Japan Open Chain Testnet`,nativeCurrency:{decimals:18,name:`Japan Open Chain Testnet Token`,symbol:`JOCT`},rpcUrls:{default:{http:[`https://rpc-1.testnet.japanopenchain.org:8545`,`https://rpc-2.testnet.japanopenchain.org:8545`,`https://rpc-3.testnet.japanopenchain.org`]}},blockExplorers:{default:{name:`Testnet Block Explorer`,url:`https://explorer.testnet.japanopenchain.org`}},testnet:!0}),Zw=L({id:5734951,name:`Jovay Mainnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://api.zan.top/public/jovay-mainnet`]}},blockExplorers:{default:{name:`Jovay Explorer`,url:`https://explorer.jovay.io`}},testnet:!1}),Qw=L({id:2019775,name:`Jovay Sepolia Testnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://api.zan.top/public/jovay-testnet`]}},blockExplorers:{default:{name:`Jovay Testnet Explorer`,url:`https://sepolia-explorer.jovay.io/l2`}},testnet:!0}),$w=L({id:45003,name:`Juneo JUNE-Chain`,nativeCurrency:{decimals:18,name:`JUNE-Chain`,symbol:`JUNE`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/JUNE/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/2`,apiUrl:`https://juneoscan.io/chain/2/api`}}}),eT=L({id:45013,name:`Juneo BCH1-Chain`,nativeCurrency:{decimals:18,name:`Juneo BCH1-Chain`,symbol:`BCH1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/BCH1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/12`,apiUrl:`https://juneoscan.io/chain/12/api`}}}),tT=L({id:45004,name:`Juneo DAI1-Chain`,nativeCurrency:{decimals:18,name:`Juneo DAI1-Chain`,symbol:`DAI1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/DAI1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/5`,apiUrl:`https://juneoscan.io/chain/5/api`}}}),nT=L({id:45010,name:`Juneo DOGE1-Chain`,nativeCurrency:{decimals:18,name:`Juneo DOGE1-Chain`,symbol:`DOGE1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/DOGE1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/10`,apiUrl:`https://juneoscan.io/chain/10/api`}}}),rT=L({id:45011,name:`Juneo EUR1-Chain`,nativeCurrency:{decimals:18,name:`Juneo EUR1-Chain`,symbol:`EUR1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/EUR1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/6`,apiUrl:`https://juneoscan.io/chain/6/api`}}}),iT=L({id:45008,name:`Juneo GLD1-Chain`,nativeCurrency:{decimals:18,name:`Juneo GLD1-Chain`,symbol:`GLD1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/GLD1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/8`,apiUrl:`https://juneoscan.io/chain/8/api`}}}),aT=L({id:45014,name:`Juneo LINK1-Chain`,nativeCurrency:{decimals:18,name:`Juneo LINK1-Chain`,symbol:`LINK1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/LINK1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/13`,apiUrl:`https://juneoscan.io/chain/13/api`}}}),oT=L({id:45009,name:`Juneo LTC1-Chain`,nativeCurrency:{decimals:18,name:`Juneo LTC1-Chain`,symbol:`LTC1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/LTC1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/11`,apiUrl:`https://juneoscan.io/chain/11/api`}}}),sT=L({id:45007,name:`Juneo mBTC1-Chain`,nativeCurrency:{decimals:18,name:`Juneo mBTC1-Chain`,symbol:`mBTC1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/mBTC1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/9`,apiUrl:`https://juneoscan.io/chain/9/api`}}}),cT=L({id:45012,name:`Juneo SGD1-Chain`,nativeCurrency:{decimals:18,name:`Juneo SGD1-Chain`,symbol:`SGD1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/SGD1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/7`,apiUrl:`https://juneoscan.io/chain/7/api`}}}),lT=L({id:101003,name:`Socotra JUNE-Chain`,nativeCurrency:{decimals:18,name:`Socotra JUNE-Chain`,symbol:`JUNE`},rpcUrls:{default:{http:[`https://rpc.socotra-testnet.network/ext/bc/JUNE/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://socotra.juneoscan.io/chain/2`,apiUrl:`https://socotra.juneoscan.io/chain/2/api`}},testnet:!0}),uT=L({id:45006,name:`Juneo USD1-Chain`,nativeCurrency:{decimals:18,name:`Juneo USD1-Chain`,symbol:`USD1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/USD1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/4`,apiUrl:`https://juneoscan.io/chain/4/api`}}}),dT=L({id:45005,name:`Juneo USDT1-Chain`,nativeCurrency:{decimals:18,name:`Juneo USDT1-Chain`,symbol:`USDT1`},rpcUrls:{default:{http:[`https://rpc.juneo-mainnet.network/ext/bc/USDT1/rpc`]}},blockExplorers:{default:{name:`Juneo Scan`,url:`https://juneoscan.io/chain/3`,apiUrl:`https://juneoscan.io/chain/3/api`}}}),fT=L({id:8217,name:`Kaia`,nativeCurrency:{decimals:18,name:`Kaia`,symbol:`KAIA`},rpcUrls:{default:{http:[`https://public-en.node.kaia.io`]}},blockExplorers:{default:{name:`KaiaScan`,url:`https://kaiascan.io`,apiUrl:`https://api-cypress.klaytnscope.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:96002415}}}),pT=L({id:1001,name:`Kairos Testnet`,network:`kairos`,nativeCurrency:{decimals:18,name:`Kairos KAIA`,symbol:`KAIA`},rpcUrls:{default:{http:[`https://public-en-kairos.node.kaia.io`]}},blockExplorers:{default:{name:`KaiaScan`,url:`https://kairos.kaiascan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:123390593}},testnet:!0}),mT=L({id:1802203764,name:`Kakarot Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia-rpc.kakarot.org`]}},blockExplorers:{default:{name:`Kakarot Scan`,url:`https://sepolia.kakarotscan.org`}},testnet:!0}),hT=L({id:920637907288165,name:`Kakarot Starknet Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia-rpc.kakarot.org`]}},blockExplorers:{default:{name:`Kakarot Scan`,url:`https://sepolia.kakarotscan.org`}},testnet:!0}),gT=L({id:24,name:`KardiaChain Mainnet`,nativeCurrency:{name:`KAI`,symbol:`KAI`,decimals:18},rpcUrls:{default:{http:[`https://rpc.kardiachain.io`]}},blockExplorers:{default:{name:`KardiaChain Explorer`,url:`https://explorer.kardiachain.io`}},testnet:!1}),_T=L({id:686,name:`Karura`,network:`karura`,nativeCurrency:{name:`Karura`,symbol:`KAR`,decimals:18},rpcUrls:{default:{http:[`https://eth-rpc-karura.aca-api.network`],webSocket:[`wss://eth-rpc-karura.aca-api.network`]}},blockExplorers:{default:{name:`Karura Blockscout`,url:`https://blockscout.karura.network`,apiUrl:`https://blockscout.karura.network/api`}},testnet:!1}),vT=L({id:747474,name:`Katana`,network:`katana`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.katana.network`]}},blockExplorers:{default:{name:`katana explorer`,url:`https://explorer.katanarpc.com`}},testnet:!1}),yT=L({id:2222,name:`Kava EVM`,network:`kava-mainnet`,nativeCurrency:{name:`Kava`,symbol:`KAVA`,decimals:18},rpcUrls:{default:{http:[`https://evm.kava.io`]}},blockExplorers:{default:{name:`Kava EVM Explorer`,url:`https://kavascan.com`,apiUrl:`https://kavascan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:3661165}},testnet:!1}),bT=L({id:2221,name:`Kava EVM Testnet`,network:`kava-testnet`,nativeCurrency:{name:`Kava`,symbol:`KAVA`,decimals:18},rpcUrls:{default:{http:[`https://evm.testnet.kava.io`]}},blockExplorers:{default:{name:`Kava EVM Testnet Explorer`,url:`https://testnet.kavascan.com/`,apiUrl:`https://testnet.kavascan.com/api`}},contracts:{multicall3:{address:`0xDf1D724A7166261eEB015418fe8c7679BBEa7fd6`,blockCreated:7242179}},testnet:!0}),xT=L({id:321,name:`KCC Mainnet`,network:`KCC Mainnet`,nativeCurrency:{decimals:18,name:`KCS`,symbol:`KCS`},rpcUrls:{default:{http:[`https://kcc-rpc.com`]}},blockExplorers:{default:{name:`KCC Explorer`,url:`https://explorer.kcc.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:11760430}},testnet:!1}),ST=L({id:1336,name:`Kii Testnet Oro`,network:`kii-testnet-oro`,nativeCurrency:{name:`Kii`,symbol:`KII`,decimals:18},rpcUrls:{default:{http:[`https://json-rpc.uno.sentry.testnet.v3.kiivalidator.com`]}},blockExplorers:{default:{name:`KiiExplorer`,url:`https://explorer.kiichain.io/testnet`}},testnet:!0}),CT=L({id:7887,name:`Kinto Mainnet`,network:`Kinto Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.kinto.xyz/http`]}},blockExplorers:{default:{name:`Kinto Explorer`,url:`https://explorer.kinto.xyz`}},testnet:!1}),wT=L({id:8217,name:`Klaytn`,nativeCurrency:{decimals:18,name:`Klaytn`,symbol:`KLAY`},rpcUrls:{default:{http:[`https://public-en-cypress.klaytn.net`]}},blockExplorers:{default:{name:`KlaytnScope`,url:`https://scope.klaytn.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:96002415}}}),TT=L({id:1001,name:`Klaytn Baobab Testnet`,network:`klaytn-baobab`,nativeCurrency:{decimals:18,name:`Baobab Klaytn`,symbol:`KLAY`},rpcUrls:{default:{http:[`https://public-en-baobab.klaytn.net`]}},blockExplorers:{default:{name:`KlaytnScope`,url:`https://baobab.klaytnscope.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:123390593}},testnet:!0}),ET=L({id:701,name:`Koi Network`,nativeCurrency:{decimals:18,name:`Koi Network Native Token`,symbol:`KRING`},rpcUrls:{default:{http:[`https://koi-rpc.darwinia.network`],webSocket:[`wss://koi-rpc.darwinia.network`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://koi-scan.darwinia.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:180001}},testnet:!0}),DT=L({id:255,name:`Kroma`,nativeCurrency:{name:`ETH`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://api.kroma.network`]}},blockExplorers:{default:{name:`Kroma Explorer`,url:`https://blockscout.kroma.network`,apiUrl:`https://blockscout.kroma.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:16054868}},testnet:!1}),OT=L({id:2358,name:`Kroma Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://api.sepolia.kroma.network`]}},blockExplorers:{default:{name:`Kroma Sepolia Explorer`,url:`https://blockscout.sepolia.kroma.network`,apiUrl:`https://blockscout.sepolia.kroma.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:8900914}},testnet:!0}),kT=L({id:12324,name:`L3X Protocol`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-mainnet.l3x.com`],webSocket:[`wss://rpc-mainnet.l3x.com`]}},blockExplorers:{default:{name:`L3X Mainnet Explorer`,url:`https://explorer.l3x.com`,apiUrl:`https://explorer.l3x.com/api/v2`}},testnet:!1}),AT=L({id:12325,name:`L3X Protocol Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.l3x.com`],webSocket:[`wss://rpc-testnet.l3x.com`]}},blockExplorers:{default:{name:`L3X Testnet Explorer`,url:`https://explorer-testnet.l3x.com`,apiUrl:`https://explorer-testnet.l3x.com/api/v2`}},testnet:!0}),jT=L({id:360890,name:`LAVITA Mainnet`,nativeCurrency:{name:`vTFUEL`,symbol:`vTFUEL`,decimals:18},rpcUrls:{default:{http:[`https://tsub360890-eth-rpc.thetatoken.org/rpc`]}},blockExplorers:{default:{name:`LAVITA Explorer`,url:`https://tsub360890-explorer.thetatoken.org`}},testnet:!1}),MT=L({id:232,name:`Lens`,nativeCurrency:{name:`GHO`,symbol:`GHO`,decimals:18},rpcUrls:{default:{http:[`https://rpc.lens.xyz`]}},blockExplorers:{default:{name:`Lens Block Explorer`,url:`https://explorer.lens.xyz`,apiUrl:`https://explorer.lens.xyz/api`}}}),NT=L({id:37111,name:`Lens Testnet`,nativeCurrency:{name:`GRASS`,symbol:`GRASS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.lens.dev`],webSocket:[`wss://rpc.testnet.lens.dev/ws`]}},blockExplorers:{default:{name:`Lens Block Explorer`,url:`https://block-explorer.testnet.lens.dev`,apiUrl:`https://block-explorer-api.staging.lens.dev/api`}},testnet:!0}),PT=L({id:21363,name:`Lestnet`,nativeCurrency:{name:`Lestnet Ether`,symbol:`LETH`,decimals:18},rpcUrls:{default:{http:[`https://service.lestnet.org`]}},blockExplorers:{default:{name:`Lestnet Explorer`,url:`https://explore.lestnet.org`}},testnet:!0}),FT=L({id:1891,name:`LightLink Pegasus Testnet`,network:`lightlink-pegasus`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://replicator.pegasus.lightlink.io/rpc/v1`]}},blockExplorers:{default:{name:`LightLink Pegasus Explorer`,url:`https://pegasus.lightlink.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:127188532}},testnet:!0}),IT=L({id:1890,name:`LightLink Phoenix Mainnet`,network:`lightlink-phoenix`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://replicator.phoenix.lightlink.io/rpc/v1`]}},blockExplorers:{default:{name:`LightLink Phoenix Explorer`,url:`https://phoenix.lightlink.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:125499184}},testnet:!1});ra(),A(),Fp(),Lu(),Wu(),$u();async function LT(e,t){let{account:n=e.account}=t;if(!n)throw new Om;let r=na(n);try{let{accessList:n,blockNumber:i,blockTag:a,data:o,gas:s,gasPrice:c,maxFeePerGas:l,maxPriorityFeePerGas:u,nonce:d,to:f,value:p,...m}=t,h=(typeof i==`bigint`?k(i):void 0)||a;Qu(t);let g=e.chain?.formatters?.transactionRequest?.format,_=(g||Bu)({...Iu(m,{format:g}),from:r?.address,accessList:n,data:o,gas:s,gasPrice:c,maxFeePerGas:l,maxPriorityFeePerGas:u,nonce:d,to:f,value:p},`estimateGas`),{baseFeePerGas:v,gasLimit:y,priorityFeePerGas:b}=await e.request({method:`linea_estimateGas`,params:h?[_,h]:[_]});return{baseFeePerGas:BigInt(v),gasLimit:BigInt(y),priorityFeePerGas:BigInt(b)}}catch(n){throw Pp(n,{...t,account:r,chain:e.chain})}}const RT={fees:{estimateFeesPerGas:zT,async maxPriorityFeePerGas({block:e,client:t,request:n}){let r=await zT({block:e,client:t,multiply:e=>e,request:n,type:`eip1559`});return r?.maxPriorityFeePerGas?r.maxPriorityFeePerGas:null}}};async function zT({client:e,multiply:t,request:n,type:r}){try{let i=await LT(e,{...n,account:n?.account}),{priorityFeePerGas:a}=i,o=t(BigInt(i.baseFeePerGas))+a;return r===`legacy`?{gasPrice:o}:{maxFeePerGas:o,maxPriorityFeePerGas:a}}catch{return null}}const BT=L({...RT,id:59144,name:`Linea Mainnet`,blockTime:2e3,nativeCurrency:{name:`Linea Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.linea.build`],webSocket:[`wss://rpc.linea.build`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://lineascan.build`,apiUrl:`https://api.lineascan.build/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:42},ensRegistry:{address:`0x50130b669B28C339991d8676FA73CF122a121267`,blockCreated:6682888},ensUniversalResolver:{address:`0x4D41762915F83c76EcaF6776d9b08076aA32b492`,blockCreated:22222151}},ensTlds:[`.linea.eth`],testnet:!1}),VT=L({id:59140,name:`Linea Goerli Testnet`,nativeCurrency:{name:`Linea Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.goerli.linea.build`],webSocket:[`wss://rpc.goerli.linea.build`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://goerli.lineascan.build`,apiUrl:`https://api-goerli.lineascan.build/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:498623}},testnet:!0}),HT=L({...RT,id:59141,name:`Linea Sepolia Testnet`,nativeCurrency:{name:`Linea Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.sepolia.linea.build`],webSocket:[`wss://rpc.sepolia.linea.build`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://sepolia.lineascan.build`,apiUrl:`https://api-sepolia.lineascan.build/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:227427},ensRegistry:{address:`0x5B2636F0f2137B4aE722C01dd5122D7d3e9541f7`,blockCreated:2395094},ensUniversalResolver:{address:`0x4D41762915F83c76EcaF6776d9b08076aA32b492`,blockCreated:17168484}},ensTlds:[`.linea.eth`],testnet:!0}),UT=L({id:59140,name:`Linea Goerli Testnet`,nativeCurrency:{name:`Linea Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.goerli.linea.build`],webSocket:[`wss://rpc.goerli.linea.build`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://goerli.lineascan.build`,apiUrl:`https://goerli.lineascan.build/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:498623}},testnet:!0});var WT=1;const GT=L({...R,id:1135,name:`Lisk`,network:`lisk`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.api.lisk.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout.lisk.com`,apiUrl:`https://blockscout.lisk.com/api`}},contracts:{...R.contracts,multicall3:{address:`0xA9d71E1dd7ca26F26e656E66d6AA81ed7f745bf0`},l2OutputOracle:{[WT]:{address:`0x113cB99283AF242Da0A0C54347667edF531Aa7d6`}},portal:{[WT]:{address:`0x26dB93F8b8b4f7016240af62F7730979d353f9A7`}},l1StandardBridge:{[WT]:{address:`0x2658723Bf70c7667De6B25F99fcce13A16D25d08`}}},sourceId:WT});var KT=11155111;const qT=L({...R,id:4202,network:`lisk-sepolia`,name:`Lisk Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.sepolia-api.lisk.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://sepolia-blockscout.lisk.com`,apiUrl:`https://sepolia-blockscout.lisk.com/api`}},contracts:{...R.contracts,l2OutputOracle:{[KT]:{address:`0xA0E35F56C318DE1bD5D9ca6A94Fe7e37C5663348`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[KT]:{address:`0xe3d90F21490686Ec7eF37BE788E02dfC12787264`}},l1StandardBridge:{[KT]:{address:`0x1Fb30e446eA791cd1f011675E5F3f5311b70faF5`}}},testnet:!0,sourceId:KT}),JT=L({id:9496,name:`Load Alphanet`,nativeCurrency:{name:`Testnet LOAD`,symbol:`tLOAD`,decimals:18},rpcUrls:{default:{http:[`https://alphanet.load.network`]}},blockExplorers:{default:{name:`Load Alphanet Explorer`,url:`https://explorer.load.network`}},testnet:!0}),YT=L({id:1337,name:`Localhost`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),XT=L({id:15551,name:`LoopNetwork Mainnet`,nativeCurrency:{name:`LOOP`,symbol:`LOOP`,decimals:18},rpcUrls:{default:{http:[`https://api.mainnetloop.com`]}},blockExplorers:{default:{name:`LoopNetwork Blockchain Explorer`,url:`https://explorer.mainnetloop.com/`}},testnet:!1}),ZT=L({id:42,network:`lukso`,name:`LUKSO`,nativeCurrency:{name:`LUKSO`,symbol:`LYX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.lukso.network`],webSocket:[`wss://ws-rpc.mainnet.lukso.network`]}},blockExplorers:{default:{name:`LUKSO Mainnet Explorer`,url:`https://explorer.execution.mainnet.lukso.network`,apiUrl:`https://api.explorer.execution.mainnet.lukso.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:468183}}}),QT=L({id:4201,name:`LUKSO Testnet`,nativeCurrency:{decimals:18,name:`LUKSO Testnet`,symbol:`LYXt`},rpcUrls:{default:{http:[`https://rpc.testnet.lukso.network`],webSocket:[`wss://ws-rpc.testnet.lukso.network`]}},blockExplorers:{default:{name:`LUKSO Testnet Explorer`,url:`https://explorer.execution.testnet.lukso.network`,apiUrl:`https://api.explorer.execution.testnet.lukso.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:605348}},testnet:!0}),$T=L({id:994873017,name:`Lumia Mainnet`,network:`LumiaMainnet`,nativeCurrency:{name:`Lumia`,symbol:`LUMIA`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-rpc.lumia.org`]}},blockExplorers:{default:{name:`Lumia Explorer`,url:`https://explorer.lumia.org/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3975939}},testnet:!1}),eE=L({id:1952959480,name:`Lumia Testnet`,network:`LumiaTestnet`,nativeCurrency:{name:`Lumia`,symbol:`LUMIA`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.lumia.org`]}},blockExplorers:{default:{name:`Lumia Testnet Explorer`,url:`https://testnet-explorer.lumia.org/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2235063}},testnet:!0}),tE=L({id:96370,name:`Lumoz`,nativeCurrency:{decimals:18,name:`Lumoz Token`,symbol:`MOZ`},rpcUrls:{default:{http:[`https://rpc.lumoz.org`]}},blockExplorers:{default:{name:`Lumoz Scan`,url:`https://scan.lumoz.info`}},testnet:!1}),nE=L({id:105363,name:`Lumoz Testnet`,nativeCurrency:{decimals:18,name:`Lumoz Testnet Token`,symbol:`MOZ`},rpcUrls:{default:{http:[`https://testnet-rpc.lumoz.org`]}},testnet:!0}),rE=L({id:721,name:`Lycan`,nativeCurrency:{decimals:18,name:`Lycan`,symbol:`LYC`},rpcUrls:{default:{http:[`https://rpc.lycanchain.com`,`https://us-east.lycanchain.com`,`https://us-west.lycanchain.com`,`https://eu-north.lycanchain.com`,`https://eu-west.lycanchain.com`,`https://asia-southeast.lycanchain.com`],webSocket:[`wss://rpc.lycanchain.com`,`wss://us-east.lycanchain.com`,`wss://us-west.lycanchain.com`,`wss://eu-north.lycanchain.com`,`wss://eu-west.lycanchain.com`,`wss://asia-southeast.lycanchain.com`]}},blockExplorers:{default:{name:`Lycan Explorer`,url:`https://explorer.lycanchain.com`}}}),iE=L({id:957,name:`Lyra Chain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.lyra.finance`]}},blockExplorers:{default:{name:`Lyra Explorer`,url:`https://explorer.lyra.finance`,apiUrl:`https://explorer.lyra.finance/api/v2`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1935198}}}),aE=L({id:1,name:`Ethereum`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},blockTime:12e3,rpcUrls:{default:{http:[`https://eth.merkle.io`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://etherscan.io`,apiUrl:`https://api.etherscan.io/api`}},contracts:{ensUniversalResolver:{address:`0xeeeeeeee14d718c2b47d9923deab1335e144eeee`,blockCreated:23085558},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14353601}}}),oE=L({id:595,name:`Mandala TC9`,network:`mandala`,nativeCurrency:{name:`Mandala`,symbol:`mACA`,decimals:18},rpcUrls:{default:{http:[`https://eth-rpc-tc9.aca-staging.network`],webSocket:[`wss://eth-rpc-tc9.aca-staging.network`]}},blockExplorers:{default:{name:`Mandala Blockscout`,url:`https://blockscout.mandala.aca-staging.network`,apiUrl:`https://blockscout.mandala.aca-staging.network/api`}},testnet:!0}),sE=L({id:169,name:`Manta Pacific Mainnet`,network:`manta`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://pacific-rpc.manta.network/http`]}},blockExplorers:{default:{name:`Manta Explorer`,url:`https://pacific-explorer.manta.network`,apiUrl:`https://pacific-explorer.manta.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:332890}}}),cE=L({id:3441006,name:`Manta Pacific Sepolia Testnet`,network:`manta-sepolia`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://pacific-rpc.sepolia-testnet.manta.network/http`]}},blockExplorers:{default:{name:`Manta Sepolia Testnet Explorer`,url:`https://pacific-explorer.sepolia-testnet.manta.network`,apiUrl:`https://pacific-explorer.sepolia-testnet.manta.network/api`}},contracts:{multicall3:{address:`0xca54918f7B525C8df894668846506767412b53E3`,blockCreated:479584}},testnet:!0}),lE=L({id:3441005,name:`Manta Pacific Testnet`,network:`manta-testnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://manta-testnet.calderachain.xyz/http`]}},blockExplorers:{default:{name:`Manta Testnet Explorer`,url:`https://pacific-explorer.testnet.manta.network`,apiUrl:`https://pacific-explorer.testnet.manta.network/api`}},contracts:{multicall3:{address:`0x211B1643b95Fe76f11eD8880EE810ABD9A4cf56C`,blockCreated:419915}},testnet:!0}),uE=L({id:5e3,name:`Mantle`,nativeCurrency:{decimals:18,name:`MNT`,symbol:`MNT`},rpcUrls:{default:{http:[`https://rpc.mantle.xyz`]}},blockExplorers:{default:{name:`Mantle Explorer`,url:`https://mantlescan.xyz/`,apiUrl:`https://api.mantlescan.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:304717}}}),dE=L({id:5003,name:`Mantle Sepolia Testnet`,nativeCurrency:{decimals:18,name:`MNT`,symbol:`MNT`},rpcUrls:{default:{http:[`https://rpc.sepolia.mantle.xyz`]}},blockExplorers:{default:{name:`Mantle Testnet Explorer`,url:`https://explorer.sepolia.mantle.xyz/`,apiUrl:`https://explorer.sepolia.mantle.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:4584012}},testnet:!0}),fE=L({id:5001,name:`Mantle Testnet`,nativeCurrency:{decimals:18,name:`MNT`,symbol:`MNT`},rpcUrls:{default:{http:[`https://rpc.testnet.mantle.xyz`]}},blockExplorers:{default:{name:`Mantle Testnet Explorer`,url:`https://explorer.testnet.mantle.xyz`,apiUrl:`https://explorer.testnet.mantle.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:561333}},testnet:!0}),pE=L({id:5887,name:`MANTRA DuKong EVM Testnet`,nativeCurrency:{decimals:18,name:`OM`,symbol:`OM`},rpcUrls:{default:{http:[`https://evm.dukong.mantrachain.io`]}},blockExplorers:{default:{name:`MANTRAScan`,url:`https://mantrascan.io/dukong`}},testnet:!0}),mE=L({id:5888,name:`MANTRA EVM`,nativeCurrency:{decimals:18,name:`OM`,symbol:`OM`},rpcUrls:{default:{http:[`https://evm.mantrachain.io`],webSocket:[`https://evm.mantrachain.io/ws`]}},blockExplorers:{default:{name:`MANTRA Scan`,url:`https://mantrascan.io/mainnet`}}}),hE=L({id:22776,name:`MAP Protocol`,nativeCurrency:{decimals:18,name:`MAPO`,symbol:`MAPO`},rpcUrls:{default:{http:[`https://rpc.maplabs.io`]}},blockExplorers:{default:{name:`MAPO Scan`,url:`https://maposcan.io`}},testnet:!1}),gE=L({id:698,name:`Matchain`,nativeCurrency:{name:`BNB`,symbol:`BNB`,decimals:18},rpcUrls:{default:{http:[`https://rpc.matchain.io`]}},blockExplorers:{default:{name:`Matchain Scan`,url:`https://matchscan.io`}}}),_E=L({id:699,name:`Matchain Testnet`,nativeCurrency:{name:`BNB`,symbol:`BNB`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.matchain.io`]}},blockExplorers:{default:{name:`Matchain Scan`,url:`https://testnet.matchscan.io`}},testnet:!0}),vE=L({id:29548,name:`MCH Verse`,nativeCurrency:{name:`Oasys`,symbol:`OAS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.oasys.mycryptoheroes.net`]}},blockExplorers:{default:{name:`MCH Verse Explorer`,url:`https://explorer.oasys.mycryptoheroes.net`,apiUrl:`https://explorer.oasys.mycryptoheroes.net/api`}},testnet:!1}),yE=L({id:6342,blockTime:1e3,name:`MegaETH Testnet`,nativeCurrency:{name:`MegaETH Testnet Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://carrot.megaeth.com/rpc`],webSocket:[`wss://carrot.megaeth.com/ws`]}},blockExplorers:{default:{name:`MegaETH Testnet Explorer`,url:`https://www.megaexplorer.xyz/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},testnet:!0}),bE=L({id:7078815900,name:`Mekong Pectra Devnet`,nativeCurrency:{name:`eth`,symbol:`eth`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mekong.ethpandaops.io`]}},blockExplorers:{default:{name:`Block Explorer`,url:`https://explorer.mekong.ethpandaops.io`}},testnet:!0}),xE=L({id:333000333,name:`Meld`,nativeCurrency:{decimals:18,name:`Meld`,symbol:`MELD`},rpcUrls:{default:{http:[`https://rpc-1.meld.com`]}},blockExplorers:{default:{name:`MELDscan`,url:`https://meldscan.io`}},contracts:{multicall3:{address:`0x769ee5a8e82c15c1b6e358f62ac8eb6e3abe8dc5`,blockCreated:360069}}}),SE=L({id:4352,name:`MemeCore`,nativeCurrency:{decimals:18,name:`M`,symbol:`M`},rpcUrls:{default:{http:[`https://rpc.memecore.net`],webSocket:[`wss://ws.memecore.net`]}},blockExplorers:{default:{name:`MemeCore Explorer`,url:`https://memecorescan.io`,apiUrl:`https://api.memecorescan.io/api`},okx:{name:`MemeCore Explorer`,url:`https://web3.okx.com/explorer/memecore`},memecore:{name:`MemeCore Explorer`,url:`https://blockscout.memecore.com`,apiUrl:`https://blockscout.memecore.com/api`}}}),CE=L({id:43521,name:`Formicarium`,nativeCurrency:{decimals:18,name:`M`,symbol:`M`},rpcUrls:{default:{http:[`https://rpc.formicarium.memecore.net`],webSocket:[`wss://ws.formicarium.memecore.net`]}},blockExplorers:{default:{name:`MemeCore Testnet Explorer`,url:`https://formicarium.memecorescan.io`},okx:{name:`MemeCore Testnet Explorer`,url:`https://web3.okx.com/explorer/formicarium-testnet`},memecore:{name:`MemeCore Testnet Explorer`,url:`https://formicarium.blockscout.memecore.com`,apiUrl:`https://formicarium.blockscout.memecore.com/api`}},testnet:!0}),wE=L({id:4200,name:`Merlin`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.merlinchain.io`]}},blockExplorers:{default:{name:`blockscout`,url:`https://scan.merlinchain.io`,apiUrl:`https://scan.merlinchain.io/api`}}}),TE=L({id:4203,name:`Merlin Erigon Testnet`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://testnet-erigon-rpc.merlinchain.io`]}},blockExplorers:{default:{name:`blockscout`,url:`https://testnet-erigon-scan.merlinchain.io`,apiUrl:`https://testnet-erigon-scan.merlinchain.io/api`}},testnet:!0}),EE=L({id:571,name:`MetaChain Mainnet`,nativeCurrency:{name:`Metatime Coin`,symbol:`MTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.metatime.com`]}},blockExplorers:{default:{name:`MetaExplorer`,url:`https://explorer.metatime.com`}},contracts:{multicall3:{address:`0x0000000000000000000000000000000000003001`,blockCreated:0}}}),DE=L({id:1453,name:`MetaChain Istanbul`,nativeCurrency:{name:`Metatime Coin`,symbol:`MTC`,decimals:18},rpcUrls:{default:{http:[`https://istanbul-rpc.metachain.dev`]}},blockExplorers:{default:{name:`MetaExplorer`,url:`https://istanbul-explorer.metachain.dev`}},contracts:{multicall3:{address:`0x0000000000000000000000000000000000003001`,blockCreated:0}},testnet:!0}),OE=L({id:11,name:`Metadium Network`,nativeCurrency:{decimals:18,name:`META`,symbol:`META`},rpcUrls:{default:{http:[`https://api.metadium.com/prod`]}},blockExplorers:{default:{name:`Metadium Explorer`,url:`https://explorer.metadium.com`}},testnet:!1});var kE=1;const AE=L({...R,id:1750,name:`Metal L2`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.metall2.com`],webSocket:[`wss://rpc.metall2.com`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.metall2.com`,apiUrl:`https://explorer.metall2.com/api`}},contracts:{...R.contracts,l2OutputOracle:{[kE]:{address:`0x3B1F7aDa0Fcc26B13515af752Dd07fB1CAc11426`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},portal:{[kE]:{address:`0x3F37aBdE2C6b5B2ed6F8045787Df1ED1E3753956`}},l1StandardBridge:{[kE]:{address:`0x6d0f65D59b55B0FEC5d2d15365154DcADC140BF3`}}},sourceId:kE}),jE=L({id:82,name:`Meter`,nativeCurrency:{decimals:18,name:`MTR`,symbol:`MTR`},rpcUrls:{default:{http:[`https://rpc.meter.io`]}},blockExplorers:{default:{name:`MeterScan`,url:`https://scan.meter.io`}}}),ME=L({id:83,name:`Meter Testnet`,nativeCurrency:{decimals:18,name:`MTR`,symbol:`MTR`},rpcUrls:{default:{http:[`https://rpctest.meter.io`]}},blockExplorers:{default:{name:`MeterTestnetScan`,url:`https://scan-warringstakes.meter.io`}}}),NE=L({id:1088,name:`Metis`,nativeCurrency:{decimals:18,name:`Metis`,symbol:`METIS`},rpcUrls:{default:{http:[`https://metis.rpc.hypersync.xyz`,`https://metis-pokt.nodies.app`,`https://api.blockeden.xyz/metis/67nCBdZQSH9z3YqDDjdm`,`https://metis-andromeda.rpc.thirdweb.com`,`https://metis-andromeda.gateway.tenderly.co`,`https://metis.api.onfinality.io/public`,`https://andromeda.metis.io/?owner=1088`,`https://metis-mainnet.public.blastapi.io`],webSocket:[`wss://metis-rpc.publicnode.com`,`wss://metis.drpc.org`]}},blockExplorers:{default:{name:`Metis Explorer`,url:`https://explorer.metis.io`,apiUrl:`https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:2338552}}}),PE=L({id:599,name:`Metis Goerli`,nativeCurrency:{decimals:18,name:`Metis Goerli`,symbol:`METIS`},rpcUrls:{default:{http:[`https://goerli.gateway.metisdevops.link`]}},blockExplorers:{default:{name:`Metis Goerli Explorer`,url:`https://goerli.explorer.metisdevops.link`,apiUrl:`https://goerli.explorer.metisdevops.link/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1006207}}}),FE=L({id:59902,name:`Metis Sepolia`,nativeCurrency:{decimals:18,name:`Test Metis`,symbol:`tMETIS`},rpcUrls:{default:{http:[`https://sepolia.metisdevops.link`,`https://metis-sepolia-rpc.publicnode.com`,`https://metis-sepolia.gateway.tenderly.co`],webSocket:[`wss://metis-sepolia-rpc.publicnode.com`]}},blockExplorers:{default:{name:`Metis Sepolia Explorer`,url:`https://sepolia-explorer.metisdevops.link`,apiUrl:`https://sepolia-explorer.metisdevops.link/api-docs`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:224185}}}),IE=L({id:7518,name:`MEVerse Chain Mainnet`,nativeCurrency:{decimals:18,name:`MEVerse`,symbol:`MEV`},rpcUrls:{default:{http:[`https://rpc.meversemainnet.io`]}},blockExplorers:{default:{name:`Explorer`,url:`https://www.meversescan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:86881340}}}),LE=L({id:4759,name:`MEVerse Chain Testnet`,nativeCurrency:{decimals:18,name:`MEVerse`,symbol:`MEV`},rpcUrls:{default:{http:[`https://rpc.meversetestnet.io`]}},blockExplorers:{default:{name:`Explorer`,url:`https://testnet.meversescan.io/`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:64371115}},testnet:!0}),RE=L({id:185,name:`Mint Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mintchain.io`]}},blockExplorers:{default:{name:`Mintchain explorer`,url:`https://explorer.mintchain.io`}},testnet:!1}),zE=L({id:1686,name:`Mint Sepolia Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.mintchain.io`]}},blockExplorers:{default:{name:`Mintchain Testnet explorer`,url:`https://testnet-explorer.mintchain.io`}},testnet:!0}),BE=L({id:124832,name:`Mitosis Testnet`,nativeCurrency:{name:`MITO`,symbol:`MITO`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.mitosis.org`]}},blockExplorers:{default:{name:`Mitosis testnet explorer`,url:`https://testnet.mitosiscan.xyz`}},testnet:!0});var VE=1;const HE=L({...R,id:34443,name:`Mode Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.mode.network`]}},blockExplorers:{default:{name:`Modescan`,url:`https://modescan.io`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:2465882},l2OutputOracle:{[VE]:{address:`0x4317ba146D4933D889518a3e5E11Fe7a53199b04`}},portal:{[VE]:{address:`0x8B34b14c7c7123459Cf3076b8Cb929BE097d0C07`}},l1StandardBridge:{[VE]:{address:`0x735aDBbE72226BD52e818E7181953f42E3b0FF21`}}},sourceId:VE});var UE=11155111;const WE=L({...R,id:919,name:`Mode Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.mode.network`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://sepolia.explorer.mode.network`,apiUrl:`https://sepolia.explorer.mode.network/api`}},contracts:{...R.contracts,l2OutputOracle:{[UE]:{address:`0x2634BD65ba27AB63811c74A63118ACb312701Bfa`,blockCreated:3778393}},portal:{[UE]:{address:`0x320e1580effF37E008F1C92700d1eBa47c1B23fD`,blockCreated:3778395}},l1StandardBridge:{[UE]:{address:`0xbC5C679879B2965296756CD959C3C739769995E2`,blockCreated:3778392}},multicall3:{address:`0xBAba8373113Fb7a68f195deF18732e01aF8eDfCF`,blockCreated:3019007}},testnet:!0,sourceId:UE}),GE=L({id:10143,name:`Monad Testnet`,blockTime:400,nativeCurrency:{name:`Testnet MON Token`,symbol:`MON`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.monad.xyz`]}},blockExplorers:{default:{name:`Monad Testnet explorer`,url:`https://testnet.monadexplorer.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:251449}},testnet:!0}),KE=L({id:1287,name:`Moonbase Alpha`,nativeCurrency:{decimals:18,name:`DEV`,symbol:`DEV`},rpcUrls:{default:{http:[`https://rpc.api.moonbase.moonbeam.network`],webSocket:[`wss://wss.api.moonbase.moonbeam.network`]}},blockExplorers:{default:{name:`Moonscan`,url:`https://moonbase.moonscan.io`,apiUrl:`https://moonbase.moonscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1850686}},testnet:!0}),qE=L({id:1284,name:`Moonbeam`,nativeCurrency:{decimals:18,name:`GLMR`,symbol:`GLMR`},rpcUrls:{default:{http:[`https://moonbeam.public.blastapi.io`],webSocket:[`wss://moonbeam.public.blastapi.io`]}},blockExplorers:{default:{name:`Moonscan`,url:`https://moonscan.io`,apiUrl:`https://api-moonbeam.moonscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:609002}},testnet:!1}),JE=L({id:1281,name:`Moonbeam Development Node`,nativeCurrency:{decimals:18,name:`DEV`,symbol:`DEV`},rpcUrls:{default:{http:[`http://127.0.0.1:9944`],webSocket:[`wss://127.0.0.1:9944`]}}}),YE=L({id:1285,name:`Moonriver`,nativeCurrency:{decimals:18,name:`MOVR`,symbol:`MOVR`},rpcUrls:{default:{http:[`https://moonriver.public.blastapi.io`],webSocket:[`wss://moonriver.public.blastapi.io`]}},blockExplorers:{default:{name:`Moonscan`,url:`https://moonriver.moonscan.io`,apiUrl:`https://api-moonriver.moonscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1597904}},testnet:!1}),XE=L({id:2818,name:`Morph`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.morphl2.io`],webSocket:[`wss://rpc.morphl2.io:8443`]}},blockExplorers:{default:{name:`Morph Explorer`,url:`https://explorer.morphl2.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3654913}},testnet:!1}),ZE=L({id:2810,name:`Morph Holesky`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-quicknode-holesky.morphl2.io`],webSocket:[`wss://rpc-quicknode-holesky.morphl2.io`]}},blockExplorers:{default:{name:`Morph Holesky Explorer`,url:`https://explorer-holesky.morphl2.io`,apiUrl:`https://explorer-api-holesky.morphl2.io/api?`}},testnet:!0}),QE=L({id:2710,name:`Morph Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.morphl2.io`]}},blockExplorers:{default:{name:`Morph Testnet Explorer`,url:`https://explorer-testnet.morphl2.io`,apiUrl:`https://explorer-api-testnet.morphl2.io/api`}},testnet:!0}),$E=L({id:5551,name:`Nahmii 2 Mainnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://l2.nahmii.io`]}},blockExplorers:{default:{name:`Nahmii 2 Explorer`,url:`https://explorer.n2.nahmii.io`}},testnet:!1}),eD=L({id:22222,name:`Nautilus Mainnet`,nativeCurrency:{name:`ZBC`,symbol:`ZBC`,decimals:9},rpcUrls:{default:{http:[`https://api.nautilus.nautchain.xyz`]}},blockExplorers:{default:{name:`NautScan`,url:`https://nautscan.com`}}}),tD=L({id:397,name:`NEAR Protocol`,nativeCurrency:{decimals:18,name:`NEAR`,symbol:`NEAR`},rpcUrls:{default:{http:[`https://eth-rpc.mainnet.near.org`]}},blockExplorers:{default:{name:`NEAR Explorer`,url:`https://eth-explorer.near.org`}},testnet:!1}),nD=L({id:398,name:`NEAR Protocol Testnet`,nativeCurrency:{decimals:18,name:`NEAR`,symbol:`NEAR`},rpcUrls:{default:{http:[`https://eth-rpc.testnet.near.org`]}},blockExplorers:{default:{name:`NEAR Explorer`,url:`https://eth-explorer-testnet.near.org`}},testnet:!0}),rD=L({id:245022926,name:`Neon EVM DevNet`,nativeCurrency:{name:`NEON`,symbol:`NEON`,decimals:18},rpcUrls:{default:{http:[`https://devnet.neonevm.org`]}},blockExplorers:{default:{name:`Neonscan`,url:`https://devnet.neonscan.org`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:205206112}},testnet:!0}),iD=L({id:245022934,network:`neonMainnet`,name:`Neon EVM MainNet`,nativeCurrency:{name:`NEON`,symbol:`NEON`,decimals:18},rpcUrls:{default:{http:[`https://neon-proxy-mainnet.solana.p2p.org`]}},blockExplorers:{default:{name:`Neonscan`,url:`https://neonscan.org`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:206545524}},testnet:!1}),aD=L({id:47763,name:`Neo X Mainnet`,nativeCurrency:{name:`Gas`,symbol:`GAS`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-1.rpc.banelabs.org`,`https://mainnet-2.rpc.banelabs.org`]}},blockExplorers:{default:{name:`Neo X - Explorer`,url:`https://xexplorer.neo.org`}},testnet:!1}),oD=L({id:12227332,name:`Neo X Testnet T4`,nativeCurrency:{name:`Gas`,symbol:`GAS`,decimals:18},rpcUrls:{default:{http:[`https://testnet.rpc.banelabs.org/`]}},blockExplorers:{default:{name:`neox-scan`,url:`https://xt4scan.ngd.network`}},testnet:!0}),sD=L({id:1012,name:`Newton`,nativeCurrency:{name:`Newton`,symbol:`NEW`,decimals:18},rpcUrls:{default:{http:[`https://global.rpc.mainnet.newtonproject.org`]}},blockExplorers:{default:{name:`NewFi explorer`,url:`https://explorer.newtonproject.org/`}},testnet:!1}),cD=L({id:4242,name:`Nexi`,nativeCurrency:{name:`Nexi`,symbol:`NEXI`,decimals:18},rpcUrls:{default:{http:[`https://rpc.chain.nexi.technology`]}},blockExplorers:{default:{name:`NexiScan`,url:`https://www.nexiscan.com`,apiUrl:`https://www.nexiscan.com/api`}},contracts:{multicall3:{address:`0x0277A46Cc69A57eE3A6C8c158bA874832F718B8E`,blockCreated:25770160}}}),lD=L({id:240,name:`Nexilix Smart Chain`,nativeCurrency:{decimals:18,name:`Nexilix`,symbol:`NEXILIX`},rpcUrls:{default:{http:[`https://rpcurl.pos.nexilix.com`]}},blockExplorers:{default:{name:`NexilixScan`,url:`https://scan.nexilix.com`}},contracts:{multicall3:{address:`0x58381c8e2BF9d0C2C4259cA14BdA9Afe02831244`,blockCreated:74448}}}),uD=L({id:6900,name:`Nibiru`,nativeCurrency:{decimals:18,name:`NIBI`,symbol:`NIBI`},rpcUrls:{default:{http:[`https://evm-rpc.nibiru.fi`]}},blockExplorers:{default:{name:`NibiScan`,url:`https://nibiscan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:19587573}}}),dD=L({id:200024,name:`Nitrograph Testnet`,testnet:!0,rpcUrls:{default:{http:[`https://rpc-testnet.nitrograph.foundation`]}},nativeCurrency:{name:`Nitro`,symbol:`NOS`,decimals:18},blockExplorers:{default:{url:`https://explorer-testnet.nitrograph.foundation`,name:`Nitrograph Explorer`}}}),fD=L({id:4090,network:`oasis-testnet`,name:`Oasis Testnet`,nativeCurrency:{name:`Fasttoken`,symbol:`FTN`,decimals:18},rpcUrls:{default:{http:[`https://rpc1.oasis.bahamutchain.com`]}},blockExplorers:{default:{name:`Ftnscan`,url:`https://oasis.ftnscan.com`,apiUrl:`https://oasis.ftnscan.com/api`}},testnet:!0}),pD=L({id:248,name:`Oasys`,nativeCurrency:{name:`Oasys`,symbol:`OAS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.oasys.games`]}},blockExplorers:{default:{name:`OasysScan`,url:`https://scan.oasys.games`,apiUrl:`https://scan.oasys.games/api`}}}),mD=L({id:911867,name:`Odyssey Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://odyssey.ithaca.xyz`]}},blockExplorers:{default:{name:`Odyssey Explorer`,url:`https://odyssey-explorer.ithaca.xyz`,apiUrl:`https://odyssey-explorer.ithaca.xyz/api`}},testnet:!0}),hD=L({id:66,name:`OKC`,nativeCurrency:{decimals:18,name:`OKT`,symbol:`OKT`},rpcUrls:{default:{http:[`https://exchainrpc.okex.org`]}},blockExplorers:{default:{name:`oklink`,url:`https://www.oklink.com/okc`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:10364792}}}),gD=L({id:311,name:`Omax Mainnet`,nativeCurrency:{decimals:18,name:`OMAX`,symbol:`OMAX`},rpcUrls:{default:{http:[`https://mainapi.omaxray.com`]}},blockExplorers:{default:{name:`Omax Explorer`,url:`https://omaxscan.com`}},testnet:!1}),_D=L({id:166,name:`Omni`,nativeCurrency:{name:`Omni`,symbol:`OMNI`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.omni.network`],webSocket:[`wss://mainnet.omni.network`]}},blockExplorers:{default:{name:`OmniScan`,url:`https://omniscan.network`}},testnet:!1}),vD=L({id:164,name:`Omni Omega`,nativeCurrency:{name:`Omni`,symbol:`OMNI`,decimals:18},rpcUrls:{default:{http:[`https://omega.omni.network`],webSocket:[`wss://omega.omni.network`]}},blockExplorers:{default:{name:`Omega OmniScan`,url:`https://omega.omniscan.network/`}},testnet:!0}),yD=L({id:309075,name:`One World Chain Mainnet`,nativeCurrency:{decimals:18,name:`OWCT`,symbol:`OWCT`},rpcUrls:{default:{http:[`https://mainnet-rpc.oneworldchain.org`]}},blockExplorers:{default:{name:`One World Explorer`,url:`https://mainnet.oneworldchain.org`}},testnet:!1}),bD=L({id:9700,name:`OORT MainnetDev`,nativeCurrency:{decimals:18,name:`OORT`,symbol:`OORT`},rpcUrls:{default:{http:[`https://dev-rpc.oortech.com`]}},blockExplorers:{default:{name:`OORT MainnetDev Explorer`,url:`https://dev-scan.oortech.com`}}});var xD=56;const SD=L({id:204,name:`opBNB`,nativeCurrency:{name:`BNB`,symbol:`BNB`,decimals:18},rpcUrls:{default:{http:[`https://opbnb-mainnet-rpc.bnbchain.org`]}},blockExplorers:{default:{name:`opBNB (BSCScan)`,url:`https://opbnb.bscscan.com`,apiUrl:`https://api-opbnb.bscscan.com/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:512881},l2OutputOracle:{[xD]:{address:`0x153CAB79f4767E2ff862C94aa49573294B13D169`}},portal:{[xD]:{address:`0x1876EA7702C0ad0C6A2ae6036DE7733edfBca519`}},l1StandardBridge:{[xD]:{address:`0xF05F0e4362859c3331Cb9395CBC201E3Fa6757Ea`}}},sourceId:xD});var CD=97;const wD=L({id:5611,name:`opBNB Testnet`,nativeCurrency:{decimals:18,name:`tBNB`,symbol:`tBNB`},rpcUrls:{default:{http:[`https://opbnb-testnet-rpc.bnbchain.org`]}},blockExplorers:{default:{name:`opbnbscan`,url:`https://testnet.opbnbscan.com`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3705108},l2OutputOracle:{[CD]:{address:`0xFf2394Bb843012562f4349C6632a0EcB92fC8810`}},portal:{[CD]:{address:`0x4386C8ABf2009aC0c263462Da568DD9d46e52a31`}},l1StandardBridge:{[CD]:{address:`0x677311Fd2cCc511Bbc0f581E8d9a07B033D5E840`}}},testnet:!0,sourceId:CD}),TD=L({id:1612,name:`OpenLedger`,nativeCurrency:{name:`Open`,symbol:`OPEN`,decimals:18},rpcUrls:{default:{http:[`https://rpc.openledger.xyz`]}},blockExplorers:{default:{name:`OpenLedger Explorer`,url:`https://scan.openledger.xyz`}},testnet:!1});var ED=1;const DD=L({...R,id:10,name:`OP Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.optimism.io`]}},blockExplorers:{default:{name:`Optimism Explorer`,url:`https://optimistic.etherscan.io`,apiUrl:`https://api-optimistic.etherscan.io/api`}},contracts:{...R.contracts,disputeGameFactory:{[ED]:{address:`0xe5965Ab5962eDc7477C8520243A95517CD252fA9`}},l2OutputOracle:{[ED]:{address:`0xdfe97868233d1aa22e815a266982f2cf17685a27`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:4286263},portal:{[ED]:{address:`0xbEb5Fc579115071764c7423A4f12eDde41f106Ed`}},l1StandardBridge:{[ED]:{address:`0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1`}}},sourceId:ED});var OD=5;const kD=L({...R,id:420,name:`Optimism Goerli`,nativeCurrency:{name:`Goerli Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://goerli.optimism.io`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://goerli-optimism.etherscan.io`,apiUrl:`https://goerli-optimism.etherscan.io/api`}},contracts:{...R.contracts,l2OutputOracle:{[OD]:{address:`0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:49461},portal:{[OD]:{address:`0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383`}},l1StandardBridge:{[OD]:{address:`0x636Af16bf2f682dD3109e60102b8E1A089FedAa8`}}},testnet:!0,sourceId:OD});var AD=11155111;const jD=L({...R,id:11155420,name:`OP Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.optimism.io`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://optimism-sepolia.blockscout.com`,apiUrl:`https://optimism-sepolia.blockscout.com/api`}},contracts:{...R.contracts,disputeGameFactory:{[AD]:{address:`0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1`}},l2OutputOracle:{[AD]:{address:`0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1620204},portal:{[AD]:{address:`0x16Fc5058F25648194471939df75CF27A2fdC48BC`}},l1StandardBridge:{[AD]:{address:`0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1`}}},testnet:!0,sourceId:AD}),MD=L({id:62050,name:`Optopia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-mainnet.optopia.ai`]}},blockExplorers:{default:{name:`Optopia Explorer`,url:`https://scan.optopia.ai`}},testnet:!1}),ND=L({id:62049,name:`Optopia Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.optopia.ai`]}},blockExplorers:{default:{name:`Optopia Explorer`,url:`https://scan-testnet.optopia.ai`}},testnet:!0}),PD=L({id:291,name:`Orderly`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.orderly.network`]}},blockExplorers:{default:{name:`Orderly Explorer`,url:`https://explorer.orderly.network`}},testnet:!1}),FD=L({id:4460,name:`Orderly Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://l2-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz`]}},blockExplorers:{default:{name:`Orderly Explorer`,url:`https://explorerl2new-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz`}},testnet:!0}),ID=L({id:41144114,name:`Otim Devnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`http://devnet.otim.xyz`]}},contracts:{batchInvoker:{address:`0x5FbDB2315678afecb367f032d93F642f64180aa3`}}}),LD=L({id:11297108109,name:`Palm`,nativeCurrency:{decimals:18,name:`PALM`,symbol:`PALM`},rpcUrls:{default:{http:[`https://palm-mainnet.public.blastapi.io`],webSocket:[`wss://palm-mainnet.public.blastapi.io`]}},blockExplorers:{default:{name:`Chainlens`,url:`https://palm.chainlens.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:15429248}}}),RD=L({id:11297108099,name:`Palm Testnet`,nativeCurrency:{decimals:18,name:`PALM`,symbol:`PALM`},rpcUrls:{default:{http:[`https://palm-mainnet.public.blastapi.io`],webSocket:[`wss://palm-mainnet.public.blastapi.io`]}},blockExplorers:{default:{name:`Chainlens`,url:`https://palm.chainlens.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:15429248}},testnet:!0}),zD=L({id:3338,name:`Peaq`,nativeCurrency:{decimals:18,name:`peaq`,symbol:`PEAQ`},rpcUrls:{default:{http:[`https://quicknode1.peaq.xyz`,`https://quicknode2.peaq.xyz`,`https://quicknode3.peaq.xyz`],webSocket:[`wss://quicknode1.peaq.xyz`,`wss://quicknode2.peaq.xyz`,`wss://quicknode3.peaq.xyz`]}},blockExplorers:{default:{name:`Subscan`,url:`https://peaq.subscan.io`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:3566354}}});var BD=1;const VD=L({id:424,network:`pgn`,name:`PGN`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.publicgoods.network`]}},blockExplorers:{default:{name:`PGN Explorer`,url:`https://explorer.publicgoods.network`,apiUrl:`https://explorer.publicgoods.network/api`}},contracts:{l2OutputOracle:{[BD]:{address:`0x9E6204F750cD866b299594e2aC9eA824E2e5f95c`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3380209},portal:{[BD]:{address:`0xb26Fd985c5959bBB382BAFdD0b879E149e48116c`}},l1StandardBridge:{[BD]:{address:`0xD0204B9527C1bA7bD765Fa5CCD9355d38338272b`}}},formatters:yy,sourceId:BD});var HD=11155111;const UD=L({id:58008,network:`pgn-testnet`,name:`PGN `,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.publicgoods.network`]}},blockExplorers:{default:{name:`PGN Testnet Explorer`,url:`https://explorer.sepolia.publicgoods.network`,apiUrl:`https://explorer.sepolia.publicgoods.network/api`}},contracts:{l2OutputOracle:{[HD]:{address:`0xD5bAc3152ffC25318F848B3DD5dA6C85171BaEEe`}},portal:{[HD]:{address:`0xF04BdD5353Bb0EFF6CA60CfcC78594278eBfE179`}},l1StandardBridge:{[HD]:{address:`0xFaE6abCAF30D23e233AC7faF747F2fC3a5a6Bfa3`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3754925}},formatters:yy,sourceId:HD,testnet:!0}),WD=L({id:13381,name:`Phoenix Blockchain`,nativeCurrency:{name:`Phoenix`,symbol:`PHX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.phoenixplorer.com`]}},blockExplorers:{default:{name:`Phoenixplorer`,url:`https://phoenixplorer.com`,apiUrl:`https://phoenixplorer.com/api`}},contracts:{multicall3:{address:`0x498cF757a575cFF2c2Ed9f532f56Efa797f86442`,blockCreated:5620192}}}),GD=L({id:7070,name:`Planq Mainnet`,nativeCurrency:{decimals:18,name:`PLQ`,symbol:`PLQ`},rpcUrls:{default:{http:[`https://planq-rpc.nodies.app`,`https://evm-rpc.planq.network`,`https://jsonrpc.planq.nodestake.top`]}},blockExplorers:{default:{name:`Planq Explorer`,url:`https://evm.planq.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:8470015}},testnet:!1}),KD=L({id:9745,name:`Plasma`,blockTime:1e3,nativeCurrency:{name:`Plasma`,symbol:`XPL`,decimals:18},rpcUrls:{default:{http:[`https://rpc.plasma.to`]}},blockExplorers:{default:{name:`PlasmaScan`,url:`https://plasmascan.to`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}}}),qD=L({id:9747,name:`Plasma Devnet`,nativeCurrency:{name:`Devnet Plasma`,symbol:`XPL`,decimals:18},rpcUrls:{default:{http:[`https://devnet-rpc.plasma.to`]}},testnet:!0,contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}}}),JD=L({id:9746,name:`Plasma Testnet`,nativeCurrency:{name:`Testnet Plasma`,symbol:`XPL`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.plasma.to`]}},blockExplorers:{default:{name:`RouteScan`,url:`https://testnet.plasmascan.to`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},testnet:!0}),YD=L({...oy,id:1612127,name:`PlayFi Albireo Testnet`,network:`albireo`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://albireo-rpc.playfi.ai`],webSocket:[`wss://albireo-rpc-ws.playfi.ai/ws`]}},blockExplorers:{default:{name:`PlayFi Albireo Explorer`,url:`https://albireo-explorer.playfi.ai`}},contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`}},testnet:!0}),XD=L({id:242,name:`Plinga`,nativeCurrency:{name:`Plinga`,symbol:`PLINGA`,decimals:18},rpcUrls:{default:{http:[`https://rpcurl.mainnet.plgchain.com`]}},blockExplorers:{default:{name:`Plgscan`,url:`https://www.plgscan.com`}},contracts:{multicall3:{address:`0x0989576160f2e7092908BB9479631b901060b6e4`,blockCreated:204489}}}),ZD=L({id:98865,name:`Plume (Legacy)`,nativeCurrency:{name:`Plume Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.plumenetwork.xyz`],webSocket:[`wss://rpc.plumenetwork.xyz`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.plumenetwork.xyz`,apiUrl:`https://explorer.plumenetwork.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:48577}},sourceId:1}),QD=L({id:98864,name:`Plume Devnet (Legacy)`,nativeCurrency:{name:`Plume Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://test-rpc.plumenetwork.xyz`],webSocket:[`wss://test-rpc.plumenetwork.xyz`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://test-explorer.plumenetwork.xyz`,apiUrl:`https://test-explorer.plumenetwork.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:481948}},testnet:!0,sourceId:11155111}),$D=L({id:98866,name:`Plume`,nativeCurrency:{name:`Plume`,symbol:`PLUME`,decimals:18},rpcUrls:{default:{http:[`https://rpc.plume.org`],webSocket:[`wss://rpc.plume.org`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.plume.org`,apiUrl:`https://explorer.plume.org/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:39679}},sourceId:1}),eO=L({id:98867,name:`Plume Testnet`,nativeCurrency:{name:`Plume`,symbol:`PLUME`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.plume.org`],webSocket:[`wss://testnet-rpc.plume.org`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://testnet-explorer.plume.org`,apiUrl:`https://testnet-explorer.plume.org/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:199712}},testnet:!0,sourceId:11155111}),tO=L({id:161221135,name:`Plume Testnet (Legacy)`,nativeCurrency:{name:`Plume Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.plumenetwork.xyz/http`],webSocket:[`wss://testnet-rpc.plumenetwork.xyz/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://testnet-explorer.plumenetwork.xyz`,apiUrl:`https://testnet-explorer.plumenetwork.xyz/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:6022332}},testnet:!0,sourceId:11155111}),nO=L({id:631571,name:`Polter Testnet`,nativeCurrency:{decimals:18,name:`Polter GHST`,symbol:`GHST`},rpcUrls:{default:{http:[`https://geist-polter.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://polter-testnet.explorer.alchemy.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:11245}},testnet:!0}),rO=L({id:137,name:`Polygon`,blockTime:2e3,nativeCurrency:{name:`POL`,symbol:`POL`,decimals:18},rpcUrls:{default:{http:[`https://polygon-rpc.com`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://polygonscan.com`,apiUrl:`https://api.polygonscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:25770160}}}),iO=L({id:80002,name:`Polygon Amoy`,nativeCurrency:{name:`POL`,symbol:`POL`,decimals:18},rpcUrls:{default:{http:[`https://rpc-amoy.polygon.technology`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://amoy.polygonscan.com`,apiUrl:`https://api-amoy.polygonscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:3127388}},testnet:!0}),aO=L({id:80001,name:`Polygon Mumbai`,nativeCurrency:{name:`MATIC`,symbol:`MATIC`,decimals:18},rpcUrls:{default:{http:[`https://80001.rpc.thirdweb.com`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://mumbai.polygonscan.com`,apiUrl:`https://api-testnet.polygonscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:25770160}},testnet:!0}),oO=L({id:1101,name:`Polygon zkEVM`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://zkevm-rpc.com`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://zkevm.polygonscan.com`,apiUrl:`https://api-zkevm.polygonscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:57746}}}),sO=L({id:2442,name:`Polygon zkEVM Cardona`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.cardona.zkevm-rpc.com`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://cardona-zkevm.polygonscan.com`,apiUrl:`https://cardona-zkevm.polygonscan.com/api`}},testnet:!0,contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:114091}}}),cO=L({id:1442,name:`Polygon zkEVM Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.public.zkevm-test.net`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://testnet-zkevm.polygonscan.com`,apiUrl:`https://testnet-zkevm.polygonscan.com/api`}},testnet:!0,contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:525686}}}),lO=L({id:8008,name:`Polynomial`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.polynomial.fi`]}},blockExplorers:{default:{name:`Polynomial Scan`,url:`https://polynomialscan.io`}},testnet:!1,contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}}}),uO=L({id:80008,name:`Polynomia Sepolia`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.sepolia.polynomial.fi`]}},blockExplorers:{default:{name:`Polynomial Scan`,url:`https://sepolia.polynomialscan.io`}},testnet:!0,contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}}}),dO=L({id:23023,name:`PremiumBlock Testnet`,nativeCurrency:{name:`Premium Block`,symbol:`PBLK`,decimals:18},rpcUrls:{default:{http:[`https://rpc.premiumblock.org`]}},blockExplorers:{default:{name:`PremiumBlocks Explorer`,url:`https://scan.premiumblock.org`}},testnet:!0}),fO=L({id:369,name:`PulseChain`,nativeCurrency:{name:`Pulse`,symbol:`PLS`,decimals:18},testnet:!1,blockTime:1e4,rpcUrls:{default:{http:[`https://rpc.pulsechain.com`],webSocket:[`wss://ws.pulsechain.com`]}},blockExplorers:{default:{name:`PulseScan`,url:`https://ipfs.scan.pulsechain.com`,apiUrl:`https://api.scan.pulsechain.com/api`}},contracts:{ensRegistry:{address:`0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e`},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14353601}}}),pO=L({id:943,name:`PulseChain V4`,testnet:!0,nativeCurrency:{name:`V4 Pulse`,symbol:`v4PLS`,decimals:18},blockTime:1e4,rpcUrls:{default:{http:[`https://rpc.v4.testnet.pulsechain.com`],webSocket:[`wss://ws.v4.testnet.pulsechain.com`]}},blockExplorers:{default:{name:`PulseScan`,url:`https://scan.v4.testnet.pulsechain.com`,apiUrl:`https://scan.v4.testnet.pulsechain.com/api`}},contracts:{ensRegistry:{address:`0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e`},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14353601}}}),mO=L({id:490092,name:`Pumpfi Testnet`,nativeCurrency:{decimals:18,name:`PMPT`,symbol:`PMPT`},rpcUrls:{default:{http:[`https://rpc1testnet.pumpfi.me`]}},blockExplorers:{default:{name:`Pumpfi Testnet Scan`,url:`https://testnetscan.pumpfi.me`}},testnet:!0});var hO=11155111;const gO=L({...R,name:`Pyrope Testnet`,testnet:!0,id:695569,sourceId:hO,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.pyropechain.com`],webSocket:[`wss://rpc.pyropechain.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://pyrope.blockscout.com`}},contracts:{...R.contracts,l1StandardBridge:{[hO]:{address:`0xC24932c31D9621aE9e792576152B7ef010cFC2F8`}}}}),_O=L({id:766,name:`QL1`,nativeCurrency:{decimals:18,name:`QOM`,symbol:`QOM`},rpcUrls:{default:{http:[`https://rpc.qom.one`]}},blockExplorers:{default:{name:`Ql1 Explorer`,url:`https://scan.qom.one`}},contracts:{multicall3:{address:`0x7A52370716ea730585884F5BDB0f6E60C39b8C64`}},testnet:!1}),vO=L({id:35441,name:`Q Mainnet`,nativeCurrency:{decimals:18,name:`Q`,symbol:`Q`},rpcUrls:{default:{http:[`https://rpc.q.org`]}},blockExplorers:{default:{name:`Q Mainnet Explorer`,url:`https://explorer.q.org`,apiUrl:`https://explorer.q.org/api`}}}),yO=L({id:35443,name:`Q Testnet`,nativeCurrency:{decimals:18,name:`Q`,symbol:`Q`},rpcUrls:{default:{http:[`https://rpc.qtestnet.org`]}},blockExplorers:{default:{name:`Q Testnet Explorer`,url:`https://explorer.qtestnet.org`,apiUrl:`https://explorer.qtestnet.org/api`}},testnet:!0}),bO=L({id:111188,name:`re.al`,nativeCurrency:{name:`reETH`,decimals:18,symbol:`reETH`},rpcUrls:{default:{http:[`https://rpc.realforreal.gelato.digital`]}},blockExplorers:{default:{name:`re.al Explorer`,url:`https://explorer.re.al`,apiUrl:`https://explorer.re.al/api/v2`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:695}}}),xO=L({id:151,name:`Redbelly Network Mainnet`,nativeCurrency:{name:`Redbelly Native Coin`,symbol:`RBNT`,decimals:18},rpcUrls:{default:{http:[`https://governors.mainnet.redbelly.network`]}},blockExplorers:{default:{name:`Routescan`,url:`https://redbelly.routescan.io`,apiUrl:`https://api.routescan.io/v2/network/mainnet/evm/151/etherscan/api`}},testnet:!1}),SO=L({id:153,name:`Redbelly Network Testnet`,nativeCurrency:{name:`Redbelly Native Coin`,symbol:`RBNT`,decimals:18},rpcUrls:{default:{http:[`https://governors.testnet.redbelly.network`]}},blockExplorers:{default:{name:`Routescan`,url:`https://redbelly.testnet.routescan.io`,apiUrl:`https://api.routescan.io/v2/network/testnet/evm/153_2/etherscan/api`}},testnet:!0}),CO=L({id:50342,name:`Reddio`,nativeCurrency:{name:`Reddio`,symbol:`RED`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.reddio.com/rpc`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://reddio.cloud.blockscout.com`,apiUrl:`https://reddio.cloud.blockscout.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:848849}},testnet:!1}),wO=L({id:50341,name:`Reddio Sepolia`,nativeCurrency:{name:`Reddio`,symbol:`RED`,decimals:18},rpcUrls:{default:{http:[`https://reddio-dev.reddio.com`]}},blockExplorers:{default:{name:`Reddioscan`,url:`https://reddio-devnet.l2scan.co`,apiUrl:`https://reddio-devnet.l2scan.co/api`}},testnet:!0});var TO=1;const EO=L({...R,name:`Redstone`,id:690,sourceId:TO,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.redstonechain.com`],webSocket:[`wss://rpc.redstonechain.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.redstone.xyz`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[TO]:{address:`0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae`,blockCreated:19578329}},l2OutputOracle:{[TO]:{address:`0xa426A052f657AEEefc298b3B5c35a470e4739d69`,blockCreated:19578337}},l1StandardBridge:{[TO]:{address:`0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69`,blockCreated:19578331}}}}),DO=L({id:47805,name:`REI Mainnet`,nativeCurrency:{decimals:18,name:`REI`,symbol:`REI`},rpcUrls:{default:{http:[`https://rpc.rei.network`],webSocket:[`wss://rpc.rei.network`]}},blockExplorers:{default:{name:`REI Scan`,url:`https://scan.rei.network`}},testnet:!1}),OO=L({id:1729,name:`Reya Network`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.reya.network`],webSocket:[`wss://ws.reya.network`]}},blockExplorers:{default:{name:`Reya Network Explorer`,url:`https://explorer.reya.network`}},testnet:!1}),kO=L({id:11155931,name:`RISE Testnet`,nativeCurrency:{name:`RISE Testnet Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet.riselabs.xyz`],webSocket:[`wss://testnet.riselabs.xyz/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.testnet.riselabs.xyz/`,apiUrl:`https://explorer.testnet.riselabs.xyz/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}},testnet:!0}),AO=L({id:753,name:`Rivalz`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rivalz.calderachain.xyz/http`]}},blockExplorers:{default:{name:`Rivalz Caldera Explorer`,url:`https://rivalz.calderaexplorer.xyz`}},testnet:!1}),jO=L({id:570,name:`Rollux Mainnet`,nativeCurrency:{decimals:18,name:`Syscoin`,symbol:`SYS`},rpcUrls:{default:{http:[`https://rpc.rollux.com`],webSocket:[`wss://rpc.rollux.com/wss`]}},blockExplorers:{default:{name:`RolluxExplorer`,url:`https://explorer.rollux.com`,apiUrl:`https://explorer.rollux.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:119222}}}),MO=L({id:57e3,name:`Rollux Testnet`,nativeCurrency:{decimals:18,name:`Syscoin`,symbol:`SYS`},rpcUrls:{default:{http:[`https://rpc-tanenbaum.rollux.com/`],webSocket:[`wss://rpc-tanenbaum.rollux.com/wss`]}},blockExplorers:{default:{name:`RolluxTestnetExplorer`,url:`https://rollux.tanenbaum.io`,apiUrl:`https://rollux.tanenbaum.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1813675}}}),NO=L({id:2020,name:`Ronin`,nativeCurrency:{name:`RON`,symbol:`RON`,decimals:18},rpcUrls:{default:{http:[`https://api.roninchain.com/rpc`]}},blockExplorers:{default:{name:`Ronin Explorer`,url:`https://app.roninchain.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:26023535}}}),PO=L({id:7668,name:`The Root Network`,nativeCurrency:{decimals:18,name:`XRP`,symbol:`XRP`},rpcUrls:{default:{http:[`https://root.rootnet.live/archive`],webSocket:[`wss://root.rootnet.live/archive/ws`]}},blockExplorers:{default:{name:`Rootscan`,url:`https://rootscan.io`}},contracts:{multicall3:{address:`0xc9C2E2429AeC354916c476B30d729deDdC94988d`,blockCreated:9218338}}}),FO=L({id:7672,name:`The Root Network - Porcini`,nativeCurrency:{decimals:18,name:`XRP`,symbol:`XRP`},rpcUrls:{default:{http:[`https://porcini.rootnet.app/archive`],webSocket:[`wss://porcini.rootnet.app/archive/ws`]}},blockExplorers:{default:{name:`Rootscan`,url:`https://porcini.rootscan.io`}},contracts:{multicall3:{address:`0xc9C2E2429AeC354916c476B30d729deDdC94988d`,blockCreated:10555692}},testnet:!0}),IO=L({id:30,name:`Rootstock Mainnet`,network:`rootstock`,nativeCurrency:{decimals:18,name:`Rootstock Bitcoin`,symbol:`RBTC`},rpcUrls:{default:{http:[`https://public-node.rsk.co`]}},blockExplorers:{default:{name:`RSK Explorer`,url:`https://explorer.rsk.co`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:4249540}}}),LO=L({id:31,name:`Rootstock Testnet`,network:`rootstock`,nativeCurrency:{decimals:18,name:`Rootstock Bitcoin`,symbol:`tRBTC`},rpcUrls:{default:{http:[`https://public-node.testnet.rsk.co`]}},blockExplorers:{default:{name:`RSK Explorer`,url:`https://explorer.testnet.rootstock.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2771150}},testnet:!0});var RO=1;const zO=L({...R,id:12553,name:`RSS3 VSL Mainnet`,nativeCurrency:{name:`RSS3`,symbol:`RSS3`,decimals:18},rpcUrls:{default:{http:[`https://rpc.rss3.io`]}},blockExplorers:{default:{name:`RSS3 VSL Mainnet Scan`,url:`https://scan.rss3.io`,apiUrl:`https://scan.rss3.io/api`}},contracts:{...R.contracts,l2OutputOracle:{[RO]:{address:`0xE6f24d2C32B3109B18ed33cF08eFb490b1e09C10`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14193},portal:{[RO]:{address:`0x6A12432491bbbE8d3babf75F759766774C778Db4`,blockCreated:19387057}},l1StandardBridge:{[RO]:{address:`0x4cbab69108Aa72151EDa5A3c164eA86845f18438`}}},sourceId:RO});var BO=11155111;const VO=L({...R,id:2331,name:`RSS3 VSL Sepolia Testnet`,nativeCurrency:{name:`RSS3`,symbol:`RSS3`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.rss3.io`]}},blockExplorers:{default:{name:`RSS3 VSL Sepolia Testnet Scan`,url:`https://scan.testnet.rss3.io`,apiUrl:`https://scan.testnet.rss3.io/api`}},contracts:{...R.contracts,l2OutputOracle:{[BO]:{address:`0xDb5c46C3Eaa6Ed6aE8b2379785DF7dd029C0dC81`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:55697},portal:{[BO]:{address:`0xcBD77E8E1E7F06B25baDe67142cdE82652Da7b57`,blockCreated:5345035}},l1StandardBridge:{[BO]:{address:`0xdDD29bb63B0839FB1cE0eE439Ff027738595D07B`}}},testnet:!0,sourceId:BO}),HO=L({id:7225878,name:`Saakuru Mainnet`,nativeCurrency:{name:`OAS`,symbol:`OAS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.saakuru.network`]}},blockExplorers:{default:{name:`Saakuru Explorer`,url:`https://explorer.saakuru.network`}},testnet:!1}),UO=L({id:5464,name:`Saga`,network:`saga`,nativeCurrency:{decimals:18,name:`gas`,symbol:`GAS`},rpcUrls:{default:{http:[`https://sagaevm.jsonrpc.sagarpc.io`]}},blockExplorers:{default:{name:`Saga Explorer`,url:`https://sagaevm.sagaexplorer.io`}},contracts:{multicall3:{address:`0x864DDc9B50B9A0dF676d826c9B9EDe9F8913a160`,blockCreated:467530}}}),WO=L({id:2021,name:`Saigon Testnet`,nativeCurrency:{name:`RON`,symbol:`RON`,decimals:18},rpcUrls:{default:{http:[`https://saigon-testnet.roninchain.com/rpc`]}},blockExplorers:{default:{name:`Saigon Explorer`,url:`https://saigon-app.roninchain.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:18736871}},testnet:!0}),GO=L({id:1996,name:`Sanko`,nativeCurrency:{name:`DMT`,symbol:`DMT`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.sanko.xyz`]}},blockExplorers:{default:{name:`Sanko Explorer`,url:`https://explorer.sanko.xyz`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:37}},testnet:!1}),KO=L({id:23294,name:`Oasis Sapphire`,network:`sapphire`,nativeCurrency:{name:`Sapphire Rose`,symbol:`ROSE`,decimals:18},rpcUrls:{default:{http:[`https://sapphire.oasis.io`],webSocket:[`wss://sapphire.oasis.io/ws`]}},blockExplorers:{default:{name:`Oasis Explorer`,url:`https://explorer.oasis.io/mainnet/sapphire`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:734531}}}),qO=L({id:23295,name:`Oasis Sapphire Testnet`,network:`sapphire-testnet`,nativeCurrency:{name:`Sapphire Test Rose`,symbol:`TEST`,decimals:18},rpcUrls:{default:{http:[`https://testnet.sapphire.oasis.dev`],webSocket:[`wss://testnet.sapphire.oasis.dev/ws`]}},blockExplorers:{default:{name:`Oasis Explorer`,url:`https://explorer.oasis.io/testnet/sapphire`}},testnet:!0}),JO=L({id:3109,name:`SatoshiVM Alpha Mainnet`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://alpha-rpc-node-http.svmscan.io`]}},blockExplorers:{default:{name:`blockscout`,url:`https://svmscan.io`,apiUrl:`https://svmscan.io/api`}}}),YO=L({id:3110,name:`SatoshiVM Testnet`,nativeCurrency:{name:`BTC`,symbol:`BTC`,decimals:18},rpcUrls:{default:{http:[`https://test-rpc-node-http.svmscan.io`]}},blockExplorers:{default:{name:`blockscout`,url:`https://testnet.svmscan.io`,apiUrl:`https://testnet.svmscan.io/api`}},testnet:!0}),XO=L({id:534352,name:`Scroll`,blockTime:3e3,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.scroll.io`],webSocket:[`wss://wss-rpc.scroll.io/ws`]}},blockExplorers:{default:{name:`Scrollscan`,url:`https://scrollscan.com`,apiUrl:`https://api.scrollscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14}},testnet:!1}),ZO=L({id:534351,name:`Scroll Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia-rpc.scroll.io`]}},blockExplorers:{default:{name:`Scrollscan`,url:`https://sepolia.scrollscan.com`,apiUrl:`https://api-sepolia.scrollscan.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:9473}},testnet:!0}),QO=L({id:1329,name:`Sei Network`,nativeCurrency:{name:`Sei`,symbol:`SEI`,decimals:18},rpcUrls:{default:{http:[`https://evm-rpc.sei-apis.com/`],webSocket:[`wss://evm-ws.sei-apis.com/`]}},blockExplorers:{default:{name:`Seitrace`,url:`https://seitrace.com`,apiUrl:`https://seitrace.com/pacific-1/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}}}),$O=L({id:713715,name:`Sei Devnet`,nativeCurrency:{name:`Sei`,symbol:`SEI`,decimals:18},rpcUrls:{default:{http:[`https://evm-rpc-arctic-1.sei-apis.com`]}},blockExplorers:{default:{name:`Seitrace`,url:`https://seitrace.com`}},testnet:!0}),ek=L({id:5124,name:`Seismic Devnet`,nativeCurrency:{name:`Seismic Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://node-2.seismicdev.net/rpc`]}},blockExplorers:{default:{name:`Seismic Devnet Explorer`,url:`https://explorer-2.seismicdev.net`}},testnet:!0}),tk=L({id:1328,name:`Sei Testnet`,nativeCurrency:{name:`Sei`,symbol:`SEI`,decimals:18},rpcUrls:{default:{http:[`https://evm-rpc-testnet.sei-apis.com`],webSocket:[`wss://evm-ws-testnet.sei-apis.com`]}},blockExplorers:{default:{name:`Seitrace`,url:`https://seitrace.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:98697651}},testnet:!0}),nk=L({id:11155111,name:`Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.drpc.org`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://sepolia.etherscan.io`,apiUrl:`https://api-sepolia.etherscan.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:751532},ensUniversalResolver:{address:`0xeeeeeeee14d718c2b47d9923deab1335e144eeee`,blockCreated:8928790}},testnet:!0});var rk=1;const ik=L({...R,id:360,name:`Shape`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.shape.network`]}},blockExplorers:{default:{name:`shapescan`,url:`https://shapescan.xyz`,apiUrl:`https://shapescan.xyz/api`}},contracts:{...R.contracts,l2OutputOracle:{[rk]:{address:`0x6Ef8c69CfE4635d866e3E02732068022c06e724D`,blockCreated:20369940}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1},portal:{[rk]:{address:`0xEB06fFa16011B5628BaB98E29776361c83741dd3`,blockCreated:20369933}},l1StandardBridge:{[rk]:{address:`0x62Edd5f4930Ea92dCa3fB81689bDD9b9d076b57B`,blockCreated:20369935}}},sourceId:rk});var ak=11155111;const ok=L({...R,id:11011,name:`Shape Sepolia Testnet`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.shape.network`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer-sepolia.shape.network/`,apiUrl:`https://explorer-sepolia.shape.network/api/v2`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1}},testnet:!0,sourceId:ak}),sk=L({id:8118,name:`Shardeum`,nativeCurrency:{name:`Shardeum`,symbol:`SHM`,decimals:18},rpcUrls:{default:{http:[`https://api.shardeum.org`]}},blockExplorers:{default:{name:`Shardeum Explorer`,url:`https://explorer.shardeum.org`}},testnet:!1}),ck=L({id:8082,name:`Shardeum Sphinx`,nativeCurrency:{name:`SHARDEUM`,symbol:`SHM`,decimals:18},rpcUrls:{default:{http:[`https://sphinx.shardeum.org`]}},blockExplorers:{default:{name:`Shardeum Explorer`,url:`https://explorer-sphinx.shardeum.org`}},testnet:!0}),lk=L({id:109,name:`Shibarium`,network:`shibarium`,nativeCurrency:{name:`Bone`,symbol:`BONE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.shibrpc.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://shibariumscan.io`}},contracts:{multicall3:{address:`0x864Bf681ADD6052395188A89101A1B37d3B4C961`,blockCreated:265900}}}),uk=L({id:157,name:`Puppynet Shibarium`,nativeCurrency:{decimals:18,name:`Bone`,symbol:`BONE`},rpcUrls:{default:{http:[`https://puppynet.shibrpc.com`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://puppyscan.shib.io`,apiUrl:`https://puppyscan.shib.io/api`}},contracts:{multicall3:{address:`0xA4029b74FBA366c926eDFA7Dd10B21C621170a4c`,blockCreated:3035769}},testnet:!0}),dk=L({id:336,name:`Shiden`,nativeCurrency:{decimals:18,name:`SDN`,symbol:`SDN`},rpcUrls:{default:{http:[`https://shiden.public.blastapi.io`],webSocket:[`wss://shiden-rpc.dwellir.com`]}},blockExplorers:{default:{name:`Shiden Scan`,url:`https://shiden.subscan.io`}},testnet:!1}),fk=L({id:148,name:`Shimmer`,network:`shimmer`,nativeCurrency:{decimals:18,name:`Shimmer`,symbol:`SMR`},rpcUrls:{default:{http:[`https://json-rpc.evm.shimmer.network`]}},blockExplorers:{default:{name:`Shimmer Network Explorer`,url:`https://explorer.evm.shimmer.network`,apiUrl:`https://explorer.evm.shimmer.network/api`}}}),pk=L({id:1073,name:`Shimmer Testnet`,network:`shimmer-testnet`,nativeCurrency:{decimals:18,name:`Shimmer`,symbol:`SMR`},rpcUrls:{default:{http:[`https://json-rpc.evm.testnet.shimmer.network`]}},blockExplorers:{default:{name:`Shimmer Network Explorer`,url:`https://explorer.evm.testnet.shimmer.network`,apiUrl:`https://explorer.evm.testnet.shimmer.network/api`}},testnet:!0}),mk=L({id:97453,name:`Sidra Chain`,nativeCurrency:{decimals:18,name:`Sidra Digital Asset`,symbol:`SDA`},rpcUrls:{default:{http:[`https://node.sidrachain.com`]}},blockExplorers:{default:{name:`Sidra Chain Explorer`,url:`https://ledger.sidrachain.com`}}}),hk=L({id:2355,name:`Silicon zkEVM`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.silicon.network`,`https://silicon-mainnet.nodeinfra.com`]}},blockExplorers:{default:{name:`SiliconScope`,url:`https://scope.silicon.network`}}}),gk=L({id:1722641160,name:`Silicon Sepolia zkEVM`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-sepolia.silicon.network`,`https://silicon-testnet.nodeinfra.com`]}},blockExplorers:{default:{name:`SiliconSepoliaScope`,url:`https://scope-sepolia.silicon.network`}},testnet:!0}),_k=L({id:98,name:`Six Protocol`,nativeCurrency:{decimals:18,name:`SIX`,symbol:`SIX`},rpcUrls:{default:{http:[`https://sixnet-rpc-evm.sixprotocol.net`]}},blockExplorers:{default:{name:`Six Protocol Scan`,url:`https://sixscan.io/sixnet`}},testnet:!1}),vk=L({id:391845894,name:`SKALE | Block Brawlers`,nativeCurrency:{name:`BRAWL`,symbol:`BRAWL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/frayed-decent-antares`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/frayed-decent-antares`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://frayed-decent-antares.explorer.mainnet.skalenodes.com`}},contracts:{}}),yk=L({id:1564830818,name:`SKALE Calypso Hub`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/honorable-steel-rasalhague`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3107626}}}),bk=L({id:974399131,name:`SKALE Calypso Testnet`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://testnet.skalenodes.com/v1/giant-half-dual-testnet`],webSocket:[`wss://testnet.skalenodes.com/v1/ws/giant-half-dual-testnet`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://giant-half-dual-testnet.explorer.testnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:103220}},testnet:!0}),xk=L({id:1026062157,name:`SKALE | CryptoBlades`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/affectionate-immediate-pollux`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/affectionate-immediate-pollux`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://affectionate-immediate-pollux.explorer.mainnet.skalenodes.com`}},contracts:{}}),Sk=L({id:1032942172,name:`SKALE | Crypto Colosseum`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/haunting-devoted-deneb`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/haunting-devoted-deneb`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://haunting-devoted-deneb.explorer.mainnet.skalenodes.com`}},contracts:{}}),Ck=L({id:2046399126,name:`SKALE Europa Hub`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/elated-tan-skat`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/elated-tan-skat`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://elated-tan-skat.explorer.mainnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3113495}}}),wk=L({id:1444673419,name:`SKALE Europa Testnet`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://testnet.skalenodes.com/v1/juicy-low-small-testnet`],webSocket:[`wss://testnet.skalenodes.com/v1/ws/juicy-low-small-testnet`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://juicy-low-small-testnet.explorer.testnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:110858}},testnet:!0}),Tk=L({id:2139927552,name:`Exorde Network`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/light-vast-diphda`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/light-vast-diphda`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://light-vast-diphda.explorer.mainnet.skalenodes.com`}},contracts:{}}),Ek=L({id:1273227453,name:`SKALE | Human Protocol`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/wan-red-ain`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/wan-red-ain`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://wan-red-ain.explorer.mainnet.skalenodes.com`}},contracts:{}}),Dk=L({id:1482601649,name:`SKALE Nebula Hub`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/green-giddy-denebola`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/green-giddy-denebola`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://green-giddy-denebola.explorer.mainnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2372986}}}),Ok=L({id:37084624,name:`SKALE Nebula Testnet`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://testnet.skalenodes.com/v1/lanky-ill-funny-testnet`],webSocket:[`wss://testnet.skalenodes.com/v1/ws/lanky-ill-funny-testnet`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:105141}},testnet:!0}),kk=L({id:278611351,name:`SKALE | Razor Network`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/turbulent-unique-scheat`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/turbulent-unique-scheat`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com`}},contracts:{}}),Ak=L({id:1350216234,name:`SKALE Titan Hub`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.skalenodes.com/v1/parallel-stormy-spica`],webSocket:[`wss://mainnet.skalenodes.com/v1/ws/parallel-stormy-spica`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://parallel-stormy-spica.explorer.mainnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2076458}}}),jk=L({id:1020352220,name:`SKALE Titan Testnet`,nativeCurrency:{name:`sFUEL`,symbol:`sFUEL`,decimals:18},rpcUrls:{default:{http:[`https://testnet.skalenodes.com/v1/aware-fake-trim-testnet`],webSocket:[`wss://testnet.skalenodes.com/v1/ws/aware-fake-trim-testnet`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://aware-fake-trim-testnet.explorer.testnet.skalenodes.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:104072}},testnet:!0}),Mk=L({id:984123,name:`Forma Sketchpad`,network:`sketchpad`,nativeCurrency:{symbol:`TIA`,name:`TIA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.sketchpad-1.forma.art`],webSocket:[`wss://ws.sketchpad-1.forma.art`]}},blockExplorers:{default:{name:`Sketchpad Explorer`,url:`https://explorer.sketchpad-1.forma.art`}},testnet:!0});var Nk=1;const Pk=L({...R,id:2192,network:`snaxchain-mainnet`,name:`SnaxChain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.snaxchain.io`]}},blockExplorers:{default:{name:`Snax Explorer`,url:`https://explorer.snaxchain.io`,apiUrl:`https://explorer.snaxchain.io/api`}},contracts:{...R.contracts,disputeGameFactory:{[Nk]:{address:`0x472562Fcf26D6b2793f8E0b0fB660ba0E5e08A46`}},l2OutputOracle:{[Nk]:{address:`0x2172e492Fc807F5d5645D0E3543f139ECF539294`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[Nk]:{address:`0x79f446D024d74D0Bb6E699C131c703463c5D65E9`}},l1StandardBridge:{[Nk]:{address:`0x6534Bdb6b5c060d3e6aa833433333135eFE8E0aA`}}},sourceId:Nk});var Fk=11155111;const Ik=L({...R,id:13001,network:`snaxchain-testnet`,name:`SnaxChain Testnet`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet.snaxchain.io`]}},blockExplorers:{default:{name:`Snax Explorer`,url:`https://testnet-explorer.snaxchain.io`,apiUrl:`https://testnet-explorer.snaxchain.io/api`}},contracts:{...R.contracts,disputeGameFactory:{[Fk]:{address:`0x206a75d89d45F146C54020F132FF93bEDD09f55E`}},l2OutputOracle:{[Fk]:{address:`0x60e3A368a4cdCEf85ffB964e372726F56A46221e`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[Fk]:{address:`0xb5afdd0E8dDF081Ef90e8A3e0c7b5798e66E954E`}},l1StandardBridge:{[Fk]:{address:`0xbd37E1a59D4C00C9A46F75018dffd84061bC5f74`}}},testnet:!0,sourceId:Fk}),Lk=L({id:50312,name:`Somnia Testnet`,nativeCurrency:{name:`STT`,symbol:`STT`,decimals:18},rpcUrls:{default:{http:[`https://dream-rpc.somnia.network`]}},blockExplorers:{default:{name:`Somnia Testnet Explorer`,url:`https://shannon-explorer.somnia.network/`,apiUrl:`https://shannon-explorer.somnia.network/api`}},contracts:{multicall3:{address:`0x841b8199E6d3Db3C6f264f6C2bd8848b3cA64223`,blockCreated:71314235}},testnet:!0});var Rk=1;const zk=L({...R,id:1868,name:`Soneium Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.soneium.org`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://soneium.blockscout.com`,apiUrl:`https://soneium.blockscout.com/api`}},contracts:{...R.contracts,disputeGameFactory:{[Rk]:{address:`0x512a3d2c7a43bd9261d2b8e8c9c70d4bd4d503c0`}},l2OutputOracle:{[Rk]:{address:`0x0000000000000000000000000000000000000000`}},portal:{[Rk]:{address:`0x88e529a6ccd302c948689cd5156c83d4614fae92`,blockCreated:7061266}},l1StandardBridge:{[Rk]:{address:`0xeb9bf100225c214efc3e7c651ebbadcf85177607`,blockCreated:7061266}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}},sourceId:Rk});var Bk=11155111;const Vk=L({...R,id:1946,name:`Soneium Minato Testnet`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.minato.soneium.org`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://soneium-minato.blockscout.com`,apiUrl:`https://soneium-minato.blockscout.com/api`}},contracts:{...R.contracts,disputeGameFactory:{[Bk]:{address:`0xB3Ad2c38E6e0640d7ce6aA952AB3A60E81bf7a01`}},l2OutputOracle:{[Bk]:{address:`0x710e5286C746eC38beeB7538d0146f60D27be343`}},portal:{[Bk]:{address:`0x65ea1489741A5D72fFdD8e6485B216bBdcC15Af3`,blockCreated:6466136}},l1StandardBridge:{[Bk]:{address:`0x5f5a404A5edabcDD80DB05E8e54A78c9EBF000C2`,blockCreated:6466136}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}},testnet:!0,sourceId:Bk}),Hk=L({id:19,name:`Songbird Canary-Network`,nativeCurrency:{decimals:18,name:`Songbird`,symbol:`SGB`},rpcUrls:{default:{http:[`https://songbird-api.flare.network/ext/C/rpc`]}},blockExplorers:{default:{name:`Songbird Explorer`,url:`https://songbird-explorer.flare.network`,apiUrl:`https://songbird-explorer.flare.network/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:13382504}}}),Uk=L({id:16,name:`Songbird Testnet Coston`,nativeCurrency:{decimals:18,name:`Coston Flare`,symbol:`CFLR`},rpcUrls:{default:{http:[`https://coston-api.flare.network/ext/C/rpc`]}},blockExplorers:{default:{name:`Coston Explorer`,url:`https://coston-explorer.flare.network`,apiUrl:`https://coston-explorer.flare.network/api`}},testnet:!0}),Wk=L({id:146,name:`Sonic`,blockTime:630,nativeCurrency:{decimals:18,name:`Sonic`,symbol:`S`},rpcUrls:{default:{http:[`https://rpc.soniclabs.com`]}},blockExplorers:{default:{name:`Sonic Explorer`,url:`https://sonicscan.org`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:60}},testnet:!1}),Gk=L({id:57054,name:`Sonic Blaze Testnet`,nativeCurrency:{decimals:18,name:`Sonic`,symbol:`S`},rpcUrls:{default:{http:[`https://rpc.blaze.soniclabs.com`]}},blockExplorers:{default:{name:`Sonic Blaze Testnet Explorer`,url:`https://testnet.sonicscan.org`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1100}},testnet:!0}),Kk=L({id:64165,name:`Sonic Testnet`,nativeCurrency:{decimals:18,name:`Sonic`,symbol:`S`},rpcUrls:{default:{http:[`https://rpc.testnet.soniclabs.com`]}},blockExplorers:{default:{name:`Sonic Testnet Explorer`,url:`https://testnet.soniclabs.com/`}},testnet:!0}),qk=L({...oy,id:50104,name:`Sophon`,nativeCurrency:{decimals:18,name:`Sophon`,symbol:`SOPH`},rpcUrls:{default:{http:[`https://rpc.sophon.xyz`],webSocket:[`wss://rpc.sophon.xyz/ws`]}},blockExplorers:{default:{name:`Sophon Block Explorer`,url:`https://explorer.sophon.xyz`}},contracts:{multicall3:{address:`0x5f4867441d2416cA88B1b3fd38f21811680CD2C8`,blockCreated:116}},testnet:!1}),Jk=L({...oy,id:531050104,name:`Sophon Testnet`,nativeCurrency:{decimals:18,name:`Sophon`,symbol:`SOPH`},rpcUrls:{default:{http:[`https://rpc.testnet.sophon.xyz`],webSocket:[`wss://rpc.testnet.sophon.xyz/ws`]}},blockExplorers:{default:{name:`Sophon Block Explorer`,url:`https://explorer.testnet.sophon.xyz`}},contracts:{multicall3:{address:`0x83c04d112adedA2C6D9037bb6ecb42E7f0b108Af`,blockCreated:15642}},testnet:!0}),Yk=L({id:100021,name:`Sova`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.sova.io`]}},blockExplorers:{default:{name:`Sova Block Explorer`,url:`hhttps://explorer.sova.io`}},testnet:!1}),Xk=L({id:120893,name:`Sova Network Sepolia`,nativeCurrency:{decimals:18,name:`Sepolia Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.testnet.sova.io`]}},blockExplorers:{default:{name:`Sova Sepolia Explorer`,url:`https://explorer.testnet.sova.io`}},testnet:!0}),Zk=L({id:88882,name:`Chiliz Spicy Testnet`,network:`chiliz-spicy-Testnet`,nativeCurrency:{decimals:18,name:`CHZ`,symbol:`CHZ`},rpcUrls:{default:{http:[`https://spicy-rpc.chiliz.com`,`https://chiliz-spicy-rpc.publicnode.com`],webSocket:[`wss://spicy-rpc-ws.chiliz.com`,`wss://chiliz-spicy-rpc.publicnode.com`]}},blockExplorers:{default:{name:`Chiliz Explorer`,url:`http://spicy-explorer.chiliz.com`,apiUrl:`http://spicy-explorer.chiliz.com/api`}},testnet:!0}),Qk=L({...RT,id:1660990954,name:`Status Network Sepolia`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://public.sepolia.rpc.status.network`],webSocket:[`wss://public.sepolia.rpc.status.network/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://sepoliascan.status.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1578364}},testnet:!0}),$k=L({id:1234,name:`Step Network`,nativeCurrency:{name:`FITFI`,symbol:`FITFI`,decimals:18},rpcUrls:{default:{http:[`https://rpc.step.network`]}},blockExplorers:{default:{name:`Step Scan`,url:`https://stepscan.io`}},testnet:!1}),eA=L({id:1514,name:`Story`,nativeCurrency:{decimals:18,name:`IP Token`,symbol:`IP`},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:340998},ensRegistry:{address:`0x5dc881dda4e4a8d312be3544ad13118d1a04cb17`,blockCreated:648924},ensUniversalResolver:{address:`0xddfb18888a9466688235887dec2a10c4f5effee9`,blockCreated:649114}},rpcUrls:{default:{http:[`https://mainnet.storyrpc.io`]}},blockExplorers:{default:{name:`Story explorer`,url:`https://storyscan.io`,apiUrl:`https://storyscan.io/api/v2`}},ensTlds:[`.ip`],testnet:!1}),tA=L({id:1315,name:`Story Aeneid`,network:`story-aeneid`,nativeCurrency:{decimals:18,name:`IP`,symbol:`IP`},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1792},ensRegistry:{address:`0x5dC881dDA4e4a8d312be3544AD13118D1a04Cb17`,blockCreated:1322033},ensUniversalResolver:{address:`0x6D3B3F99177FB2A5de7F9E928a9BD807bF7b5BAD`,blockCreated:1322097}},rpcUrls:{default:{http:[`https://aeneid.storyrpc.io`]}},blockExplorers:{default:{name:`Story Aeneid Explorer`,url:`https://aeneid.storyscan.io`,apiUrl:`https://aeneid.storyscan.io/api/v2`}},ensTlds:[`.ip`],testnet:!0}),nA=L({id:1516,name:`Story Odyssey`,nativeCurrency:{decimals:18,name:`IP`,symbol:`IP`},rpcUrls:{default:{http:[`https://rpc.odyssey.storyrpc.io`]}},blockExplorers:{default:{name:`Story Odyssey Explorer`,url:`https://odyssey.storyscan.xyz`}},testnet:!0}),rA=L({id:1513,name:`Story Testnet`,nativeCurrency:{decimals:18,name:`IP`,symbol:`IP`},rpcUrls:{default:{http:[`https://testnet.storyrpc.io`]}},blockExplorers:{default:{name:`Story Testnet Explorer`,url:`https://testnet.storyscan.xyz`}},testnet:!0}),iA=L({id:105105,name:`Stratis Mainnet`,network:`stratis`,nativeCurrency:{name:`Stratis`,symbol:`STRAX`,decimals:18},rpcUrls:{default:{http:[`https://rpc.stratisevm.com`]}},blockExplorers:{default:{name:`Stratis Explorer`,url:`https://explorer.stratisevm.com`}}}),aA=L({id:8866,name:`SuperLumio`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.lumio.io`]}},blockExplorers:{default:{name:`Lumio explorer`,url:`https://explorer.lumio.io`}},testnet:!1}),oA=L({id:55244,name:`Superposition`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.superposition.so`]}},blockExplorers:{default:{name:`Superposition Explorer`,url:`https://explorer.superposition.so`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:39}},testnet:!1});var sA=1;const cA=L({...R,id:5330,name:`Superseed`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.superseed.xyz`]}},blockExplorers:{default:{name:`Superseed Explorer`,url:`https://explorer.superseed.xyz`,apiUrl:`https://explorer.superseed.xyz/api/v2`}},contracts:{...R.contracts,disputeGameFactory:{[sA]:{address:`0x8b097CF1f9BbD9cbFD0DD561858a1FCbC8857Be0`,blockCreated:20737481}},l2OutputOracle:{[sA]:{address:`0x693A0F8854F458D282DE3C5b69E8eE5EEE8aA949`,blockCreated:20737481}},portal:{[sA]:{address:`0x2c2150aa5c75A24fB93d4fD2F2a895D618054f07`,blockCreated:20737481}},l1StandardBridge:{[sA]:{address:`0x8b0576E39F1233679109F9b40cFcC2a7E0901Ede`,blockCreated:20737481}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},sourceId:sA});var lA=11155111;const uA=L({...R,id:53302,name:`Superseed Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.superseed.xyz`]}},blockExplorers:{default:{name:`Superseed Sepolia Explorer`,url:`https://sepolia-explorer.superseed.xyz`,apiUrl:`https://sepolia-explorer.superseed.xyz/api/v2`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`},portal:{[lA]:{address:`0x7A0db8C51432d2C3eb4e8f360a2EeB26FF2809fB`,blockCreated:5523438}},l1StandardBridge:{[lA]:{address:`0x2B227A603fAAdB3De0ED050b63ADD232B5f2c28C`,blockCreated:5523442}}},testnet:!0,sourceId:lA}),dA=L({id:763375,name:`Surge Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://l2-rpc.hoodi.surge.wtf`],webSocket:[`wss://l2-ws.hoodi.surge.wtf`]}},blockExplorers:{default:{name:`Surge Testnet Blockscout`,url:`https://explorer.hoodi.surge.wtf`}},testnet:!0}),fA=L({id:254,name:`Swan Chain Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-rpc.swanchain.org`]}},blockExplorers:{default:{name:`Swan Explorer`,url:`https://swanscan.io`}},testnet:!1}),pA=L({id:20241133,name:`Swan Proxima Testnet`,nativeCurrency:{name:`Swan Ether`,symbol:`sETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc-proxima.swanchain.io`]}},blockExplorers:{default:{name:`Swan Explorer`,url:`https://proxima-explorer.swanchain.io`}},testnet:!0}),mA=L({id:2024,name:`Swan Saturn Testnet`,nativeCurrency:{name:`Swan Ether`,symbol:`sETH`,decimals:18},rpcUrls:{default:{http:[`https://saturn-rpc.swanchain.io`]}},blockExplorers:{default:{name:`Swan Explorer`,url:`https://saturn-explorer.swanchain.io`}},testnet:!0}),hA=L({...R,id:1923,name:`Swellchain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://swell-mainnet.alt.technology`]}},blockExplorers:{default:{name:`Swell Explorer`,url:`https://explorer.swellnetwork.io`,apiUrl:`https://explorer.swellnetwork.io/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}}}),gA=L({...R,id:1924,name:`Swellchain Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://swell-testnet.alt.technology`]}},blockExplorers:{default:{name:`Swellchain Testnet Explorer`,url:`https://swell-testnet-explorer.alt.technology`,apiUrl:`https://swell-testnet-explorer.alt.technology/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}}}),_A=L({id:94,name:`SwissDLT Mainnet`,nativeCurrency:{decimals:18,name:`BCTS`,symbol:`BCTS`},rpcUrls:{default:{http:[`https://rpc.swissdlt.ch`]}},blockExplorers:{default:{name:`SwissDLT Explorer`,url:`https://explorer.swissdlt.ch`}},testnet:!1}),vA=L({id:57,name:`Syscoin Mainnet`,nativeCurrency:{decimals:18,name:`Syscoin`,symbol:`SYS`},rpcUrls:{default:{http:[`https://rpc.syscoin.org`],webSocket:[`wss://rpc.syscoin.org/wss`]}},blockExplorers:{default:{name:`SyscoinExplorer`,url:`https://explorer.syscoin.org`,apiUrl:`https://explorer.syscoin.org/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:287139}}}),yA=L({id:5700,name:`Syscoin Tanenbaum Testnet`,nativeCurrency:{decimals:18,name:`Syscoin`,symbol:`SYS`},rpcUrls:{default:{http:[`https://rpc.tanenbaum.io`],webSocket:[`wss://rpc.tanenbaum.io/wss`]}},blockExplorers:{default:{name:`SyscoinTestnetExplorer`,url:`https://tanenbaum.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:271288}}}),bA=L({id:239,name:`TAC`,nativeCurrency:{name:`TAC`,symbol:`TAC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.ankr.com/tac`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://tac.blockscout.com`,apiUrl:`https://tac.blockscout.com/api`},native:{name:`TAC Explorer`,url:`https://explorer.tac.build`,apiUrl:`https://explorer.tac.build/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0}}}),xA=L({id:2391,name:`TAC SPB Testnet`,nativeCurrency:{name:`TAC`,symbol:`TAC`,decimals:18},rpcUrls:{default:{http:[`https://spb.rpc.tac.build`]}},blockExplorers:{default:{name:`TAC`,url:`https://spb.explorer.tac.build`,apiUrl:`https://spb.explorer.tac.build/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:471429}},testnet:!0}),SA=L({id:167e3,name:`Taiko Mainnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.mainnet.taiko.xyz`],webSocket:[`wss://ws.mainnet.taiko.xyz`]}},blockExplorers:{default:{name:`Taikoscan`,url:`https://taikoscan.io`,apiUrl:`https://api.taikoscan.io/api`}},contracts:{multicall3:{address:`0xcb2436774C3e191c85056d248EF4260ce5f27A9D`}}}),CA=L({id:167009,name:`Taiko Hekla L2`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hekla.taiko.xyz`]}},blockExplorers:{default:{name:`Taikoscan`,url:`https://hekla.taikoscan.network`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:59757}},testnet:!0}),wA=L({id:167007,name:`Taiko Jolnir (Alpha-5 Testnet)`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.jolnir.taiko.xyz`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.jolnir.taiko.xyz`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:732706}},testnet:!0}),TA=L({id:167008,name:`Taiko Katla (Alpha-6 Testnet)`,network:`tko-katla`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.katla.taiko.xyz`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.katla.taiko.xyz`}}}),EA=L({id:167005,name:`Taiko (Alpha-3 Testnet)`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.test.taiko.xyz`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.test.taiko.xyz`}}}),DA=L({id:841,name:`Taraxa Mainnet`,nativeCurrency:{name:`Tara`,symbol:`TARA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.taraxa.io`]}},blockExplorers:{default:{name:`Taraxa Explorer`,url:`https://explorer.mainnet.taraxa.io`}}}),OA=L({id:842,name:`Taraxa Testnet`,nativeCurrency:{name:`Tara`,symbol:`TARA`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.taraxa.io`]}},blockExplorers:{default:{name:`Taraxa Explorer`,url:`https://explorer.testnet.taraxa.io`}},testnet:!0}),kA=L({id:10218,name:`Tea Sepolia`,nativeCurrency:{name:`Sepolia Tea`,symbol:`TEA`,decimals:18},rpcUrls:{default:{http:[`https://tea-sepolia.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Tea Sepolia Explorer`,url:`https://sepolia.tea.xyz`}},testnet:!0}),AA=L({id:2017,name:`Telcoin Adiri Testnet`,nativeCurrency:{name:`Telcoin`,symbol:`TEL`,decimals:18},rpcUrls:{default:{http:[`https://rpc.telcoin.network`]}},blockExplorers:{default:{name:`telscan`,url:`https://telscan.io`}},testnet:!0}),jA=L({id:40,name:`Telos`,nativeCurrency:{decimals:18,name:`Telos`,symbol:`TLOS`},rpcUrls:{default:{http:[`https://rpc.telos.net`]}},blockExplorers:{default:{name:`Teloscan`,url:`https://www.teloscan.io/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:246530709}}}),MA=L({id:41,name:`Telos`,nativeCurrency:{decimals:18,name:`Telos`,symbol:`TLOS`},rpcUrls:{default:{http:[`https://rpc.testnet.telos.net`]}},blockExplorers:{default:{name:`Teloscan (testnet)`,url:`https://testnet.teloscan.io/`}},testnet:!0}),NA=L({id:1559,name:`Tenet`,network:`tenet-mainnet`,nativeCurrency:{name:`TENET`,symbol:`TENET`,decimals:18},rpcUrls:{default:{http:[`https://rpc.tenet.org`]}},blockExplorers:{default:{name:`TenetScan Mainnet`,url:`https://tenetscan.io`,apiUrl:`https://tenetscan.io/api`}},testnet:!1}),PA=L({id:752025,name:`Ternoa`,nativeCurrency:{name:`Capsule Coin`,symbol:`CAPS`,decimals:18},rpcUrls:{default:{http:[`https://rpc-mainnet.zkevm.ternoa.network`]}},blockExplorers:{default:{name:`Ternoa Explorer`,url:`https://explorer-mainnet.zkevm.ternoa.network`}},testnet:!1}),FA=L({id:7,name:`ThaiChain`,nativeCurrency:{name:`TCH`,symbol:`TCH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.thaichain.org`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://exp.thaichain.org`,apiUrl:`https://exp.thaichain.org/api`}},contracts:{multicall3:{address:`0x0DaD6130e832c21719C5CE3bae93454E16A84826`,blockCreated:4806386}},testnet:!1}),IA=L({id:8428,name:`THAT Mainnet`,nativeCurrency:{name:`THAT`,symbol:`THAT`,decimals:18},rpcUrls:{default:{http:[`https://api.thatchain.io/mainnet`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://that.blockscout.com`}},testnet:!1}),LA=L({id:361,name:`Theta Mainnet`,nativeCurrency:{name:`TFUEL`,symbol:`TFUEL`,decimals:18},rpcUrls:{default:{http:[`https://eth-rpc-api.thetatoken.org/rpc`]}},blockExplorers:{default:{name:`Theta Explorer`,url:`https://explorer.thetatoken.org`}},testnet:!1}),RA=L({id:365,name:`Theta Testnet`,nativeCurrency:{name:`TFUEL`,symbol:`TFUEL`,decimals:18},rpcUrls:{default:{http:[`https://eth-rpc-api-testnet.thetatoken.org/rpc`]}},blockExplorers:{default:{name:`Theta Explorer`,url:`https://testnet-explorer.thetatoken.org`}},testnet:!0}),zA=L({id:108,name:`ThunderCore Mainnet`,nativeCurrency:{name:`TT`,symbol:`TT`,decimals:18},rpcUrls:{default:{http:[`https://mainnet-rpc.thundercore.com`]}},blockExplorers:{default:{name:`ThunderCore Explorer`,url:`https://explorer-mainnet.thundercore.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},testnet:!1}),BA=L({id:997,name:`5ireChain Thunder Testnet`,nativeCurrency:{name:`5ire Token`,symbol:`5IRE`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.5ire.network`]}},blockExplorers:{default:{name:`5ireChain Thunder Explorer`,url:`https://testnet.5irescan.io/`}},testnet:!0}),VA=L({id:62092,name:`TikTrix Testnet`,nativeCurrency:{name:`tTTX`,symbol:`tTTX`,decimals:18},rpcUrls:{default:{http:[`https://tiktrix-rpc.xyz`]}},blockExplorers:{default:{name:`TikTrix Testnet Explorer`,url:`https://tiktrix.xyz`}},testnet:!0}),HA=L({id:6969,name:`Tomb Mainnet`,nativeCurrency:{name:`TOMB`,symbol:`TOMB`,decimals:18},rpcUrls:{default:{http:[`https://rpc.tombchain.com`]}},blockExplorers:{default:{name:`Tomb Explorer`,url:`https://tombscout.com`}},testnet:!1}),UA=L({...oy,id:61166,name:`Treasure`,nativeCurrency:{decimals:18,name:`MAGIC`,symbol:`MAGIC`},rpcUrls:{default:{http:[`https://rpc.treasure.lol`],webSocket:[`wss://rpc.treasure.lol/ws`]}},blockExplorers:{default:{name:`Treasure Block Explorer`,url:`https://treasurescan.io`}},contracts:{multicall3:{address:`0x2e29fe39496a56856D8698bD43e1dF4D0CE6266a`,blockCreated:101}},testnet:!1}),WA=L({...oy,id:978658,name:`Treasure Topaz Testnet`,nativeCurrency:{decimals:18,name:`MAGIC`,symbol:`MAGIC`},rpcUrls:{default:{http:[`https://rpc.topaz.treasure.lol`],webSocket:[`wss://rpc.topaz.treasure.lol/ws`]}},blockExplorers:{default:{name:`Treasure Topaz Block Explorer`,url:`https://topaz.treasurescan.io`}},contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`,blockCreated:108112}},testnet:!0}),GA=L({id:728126428,name:`Tron`,nativeCurrency:{name:`TRON`,symbol:`TRX`,decimals:6},rpcUrls:{default:{http:[`https://api.trongrid.io/jsonrpc`]}},blockExplorers:{default:{name:`Tronscan`,url:`https://tronscan.org`,apiUrl:`https://apilist.tronscanapi.com/api`}}}),KA=L({id:3448148188,name:`Tron Nile`,nativeCurrency:{name:`TRON`,symbol:`TRX`,decimals:6},rpcUrls:{default:{http:[`https://nile.trongrid.io/jsonrpc`]}},blockExplorers:{default:{name:`Tronscan`,url:`https://nile.tronscan.org`}},testnet:!0}),qA=L({id:2494104990,name:`Tron Shasta`,nativeCurrency:{name:`TRON`,symbol:`TRX`,decimals:6},rpcUrls:{default:{http:[`https://api.shasta.trongrid.io/jsonrpc`]}},blockExplorers:{default:{name:`Tronscan`,url:`https://shasta.tronscan.org`}},testnet:!0}),JA=L({id:8,name:`Ubiq Mainnet`,nativeCurrency:{name:`UBQ`,symbol:`UBQ`,decimals:18},rpcUrls:{default:{http:[`https://pyrus2.ubiqscan.io`]}},blockExplorers:{default:{name:`Ubiq Scan`,url:`https://ubiqscan.io`}},testnet:!1}),YA=L({id:19991,name:`Ultra EVM`,nativeCurrency:{decimals:18,name:`Ultra Token`,symbol:`UOS`},rpcUrls:{default:{http:[`https://evm.ultra.eosusa.io`]}},blockExplorers:{default:{name:`Ultra EVM Explorer`,url:`https://evmexplorer.ultra.io`}}}),XA=L({id:18881,name:`Ultra EVM Testnet`,nativeCurrency:{decimals:18,name:`Ultra Token`,symbol:`UOS`},rpcUrls:{default:{http:[`https://evm.test.ultra.eosusa.io`]}},blockExplorers:{default:{name:`Ultra EVM Testnet Explorer`,url:`https://evmexplorer.testnet.ultra.io`}},testnet:!0}),ZA=L({id:1231,name:`Ultron Mainnet`,nativeCurrency:{name:`ULX`,symbol:`ULX`,decimals:18},rpcUrls:{default:{http:[`https://ultron-rpc.net`]}},blockExplorers:{default:{name:`Ultron Scan`,url:`https://ulxscan.com`}},testnet:!1}),QA=L({id:1230,name:`Ultron Testnet`,nativeCurrency:{name:`ULX`,symbol:`ULX`,decimals:18},rpcUrls:{default:{http:[`https://ultron-dev.io`]}},blockExplorers:{default:{name:`Ultron Scan`,url:`https://explorer.ultron-dev.io`}},testnet:!0});var $A=1;const ej=L({...R,id:130,name:`Unichain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},blockTime:1e3,rpcUrls:{default:{http:[`https://mainnet.unichain.org/`]}},blockExplorers:{default:{name:`Uniscan`,url:`https://uniscan.xyz`,apiUrl:`https://api.uniscan.xyz/api`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0},disputeGameFactory:{[$A]:{address:`0x2F12d621a16e2d3285929C9996f478508951dFe4`}},portal:{[$A]:{address:`0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2`}},l1StandardBridge:{[$A]:{address:`0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA`}}},sourceId:$A});var tj=11155111;const nj=L({...R,id:1301,name:`Unichain Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},blockTime:1e3,rpcUrls:{default:{http:[`https://sepolia.unichain.org`]}},blockExplorers:{default:{name:`Uniscan`,url:`https://sepolia.uniscan.xyz`,apiUrl:`https://api-sepolia.uniscan.xyz/api`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0},portal:{[tj]:{address:`0x0d83dab629f0e0F9d36c0Cbc89B69a489f0751bD`}},l1StandardBridge:{[tj]:{address:`0xea58fcA6849d79EAd1f26608855c2D6407d54Ce2`}},disputeGameFactory:{[tj]:{address:`0xeff73e5aa3B9AEC32c659Aa3E00444d20a84394b`}}},testnet:!0,sourceId:tj}),rj=L({id:8880,name:`Unique Mainnet`,nativeCurrency:{decimals:18,name:`UNQ`,symbol:`UNQ`},rpcUrls:{default:{http:[`https://rpc.unique.network`]}},blockExplorers:{default:{name:`Unique Subscan`,url:`https://unique.subscan.io/`}}}),ij=L({id:8882,name:`Opal Testnet`,nativeCurrency:{decimals:18,name:`OPL`,symbol:`OPL`},rpcUrls:{default:{http:[`https://rpc-opal.unique.network`]}},blockExplorers:{default:{name:`Opal Subscan`,url:`https://opal.subscan.io/`}},testnet:!0}),aj=L({id:8881,name:`Quartz Mainnet`,nativeCurrency:{decimals:18,name:`QTZ`,symbol:`QTZ`},rpcUrls:{default:{http:[`https://rpc-quartz.unique.network`]}},blockExplorers:{default:{name:`Quartz Subscan`,url:`https://quartz.subscan.io/`}}}),oj=L({id:18233,name:`Unreal`,nativeCurrency:{name:`reETH`,decimals:18,symbol:`reETH`},rpcUrls:{default:{http:[`https://rpc.unreal-orbit.gelato.digital`]}},blockExplorers:{default:{name:`Unreal Explorer`,url:`https://unreal.blockscout.com`,apiUrl:`https://unreal.blockscout.com/api/v2`}},testnet:!0,contracts:{multicall3:{address:`0x8b6B0e60D8CD84898Ea8b981065A12F876eA5677`,blockCreated:1745}}}),sj=L({id:1480,name:`Vana`,blockTime:6e3,nativeCurrency:{decimals:18,name:`Vana`,symbol:`VANA`},rpcUrls:{default:{http:[`https://rpc.vana.org/`]}},blockExplorers:{default:{name:`Vana Block Explorer`,url:`https://vanascan.io`,apiUrl:`https://vanascan.io/api`}},contracts:{multicall3:{address:`0xD8d2dFca27E8797fd779F8547166A2d3B29d360E`,blockCreated:716763}}}),cj=L({id:14800,name:`Vana Moksha Testnet`,blockTime:6e3,nativeCurrency:{decimals:18,name:`Vana`,symbol:`VANA`},rpcUrls:{default:{http:[`https://rpc.moksha.vana.org`]}},blockExplorers:{default:{name:`Vana Moksha Testnet`,url:`https://moksha.vanascan.io`,apiUrl:`https://moksha.vanascan.io/api`}},contracts:{multicall3:{address:`0xD8d2dFca27E8797fd779F8547166A2d3B29d360E`,blockCreated:732283}},testnet:!0}),lj=L({id:2040,name:`Vanar Mainnet`,nativeCurrency:{name:`VANRY`,symbol:`VANRY`,decimals:18},rpcUrls:{default:{http:[`https://rpc.vanarchain.com`]}},blockExplorers:{default:{name:`Vanar Mainnet Explorer`,url:`https://explorer.vanarchain.com/`}},testnet:!1}),uj=L({id:100009,name:`Vechain`,nativeCurrency:{name:`VeChain`,symbol:`VET`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.vechain.org`]}},blockExplorers:{default:{name:`Vechain Explorer`,url:`https://explore.vechain.org`},vechainStats:{name:`Vechain Stats`,url:`https://vechainstats.com`}}}),dj=L({id:106,name:`Velas EVM Mainnet`,nativeCurrency:{name:`VLX`,symbol:`VLX`,decimals:18},rpcUrls:{default:{http:[`https://evmexplorer.velas.com/rpc`]}},blockExplorers:{default:{name:`Velas Explorer`,url:`https://evmexplorer.velas.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:55883577}},testnet:!1}),fj=L({id:88,name:`Viction`,nativeCurrency:{name:`Viction`,symbol:`VIC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.viction.xyz`]}},blockExplorers:{default:{name:`VIC Scan`,url:`https://vicscan.xyz`}},testnet:!1}),pj=L({id:89,name:`Viction Testnet`,nativeCurrency:{name:`Viction`,symbol:`VIC`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet.viction.xyz`]}},blockExplorers:{default:{name:`VIC Scan`,url:`https://testnet.vicscan.xyz`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:12170179}},testnet:!0}),mj=L({id:888888,name:`Vision`,nativeCurrency:{name:`VISION`,symbol:`VS`,decimals:18},rpcUrls:{default:{http:[`https://infragrid.v.network/ethereum/compatible`]}},blockExplorers:{default:{name:`Vision Scan`,url:`https://visionscan.org`}},testnet:!1}),hj=L({id:666666,name:`Vision Testnet`,nativeCurrency:{name:`VISION`,symbol:`VS`,decimals:18},rpcUrls:{default:{http:[`https://vpioneer.infragrid.v.network/ethereum/compatible`]}},blockExplorers:{default:{name:`Vision Scan`,url:`https://visionscan.org/?chain=vpioneer`}},testnet:!0}),gj=L({id:888,name:`Wanchain`,nativeCurrency:{name:`WANCHAIN`,symbol:`WAN`,decimals:18},rpcUrls:{default:{http:[`https://gwan-ssl.wandevs.org:56891`,`https://gwan2-ssl.wandevs.org`]}},blockExplorers:{default:{name:`WanScan`,url:`https://wanscan.org`}},contracts:{multicall3:{address:`0xcDF6A1566e78EB4594c86Fe73Fcdc82429e97fbB`,blockCreated:25312390}}}),_j=L({id:999,name:`Wanchain Testnet`,nativeCurrency:{name:`WANCHAIN`,symbol:`WANt`,decimals:18},rpcUrls:{default:{http:[`https://gwan-ssl.wandevs.org:46891`]}},blockExplorers:{default:{name:`WanScanTest`,url:`https://wanscan.org`}},contracts:{multicall3:{address:`0x11c89bF4496c39FB80535Ffb4c92715839CC5324`,blockCreated:24743448}},testnet:!0}),vj=L({id:9496,name:`WeaveVM Alphanet`,nativeCurrency:{name:`Testnet WeaveVM`,symbol:`tWVM`,decimals:18},rpcUrls:{default:{http:[`https://testnet-rpc.wvm.dev`]}},blockExplorers:{default:{name:`WeaveVM Alphanet Explorer`,url:`https://explorer.wvm.dev`}},testnet:!0}),yj=L({id:1111,name:`WEMIX`,network:`wemix-mainnet`,nativeCurrency:{name:`WEMIX`,symbol:`WEMIX`,decimals:18},rpcUrls:{default:{http:[`https://api.wemix.com`]}},blockExplorers:{default:{name:`wemixExplorer`,url:`https://explorer.wemix.com`}}}),bj=L({id:1112,name:`WEMIX Testnet`,network:`wemix-testnet`,nativeCurrency:{name:`WEMIX`,symbol:`tWEMIX`,decimals:18},rpcUrls:{default:{http:[`https://api.test.wemix.com`]}},blockExplorers:{default:{name:`wemixExplorer`,url:`https://testnet.wemixscan.com`,apiUrl:`https://testnet.wemixscan.com/api`}},testnet:!0}),xj=L({id:420420421,name:`Westend Asset Hub`,nativeCurrency:{decimals:18,name:`Westies`,symbol:`WND`},rpcUrls:{default:{http:[`https://westend-asset-hub-eth-rpc.polkadot.io`]}},blockExplorers:{default:{name:`subscan`,url:`https://westend-asset-hub-eth-explorer.parity.io`}},testnet:!0}),Sj=L({testnet:!1,name:`Whitechain`,blockExplorers:{default:{name:`Whitechain Explorer`,url:`https://explorer.whitechain.io`}},id:1875,rpcUrls:{default:{http:[`https://rpc.whitechain.io`]}},nativeCurrency:{decimals:18,name:`WhiteBIT Coin`,symbol:`WBT`},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:25212237}}}),Cj=L({testnet:!0,name:`Whitechain Testnet`,blockExplorers:{default:{name:`Whitechain Explorer`,url:`https://testnet.whitechain.io`}},id:2625,rpcUrls:{default:{http:[`https://rpc-testnet.whitechain.io`]}},nativeCurrency:{decimals:18,name:`WhiteBIT Coin`,symbol:`WBT`}}),wj=L({id:42070,name:`WMC Testnet`,nativeCurrency:{name:`WMTx`,symbol:`WMTx`,decimals:18},rpcUrls:{default:{http:[`https://rpc-testnet-base.worldmobile.net`]}},blockExplorers:{default:{name:`WMC Explorer`,url:`https://explorer2-base-testnet.worldmobile.net`}},testnet:!0});var Tj=1;const Ej=L({...R,id:480,name:`World Chain`,network:`worldchain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://worldchain-mainnet.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Worldscan`,url:`https://worldscan.org`,apiUrl:`https://api.worldscan.org/api`},blockscout:{name:`Blockscout`,url:`https://worldchain-mainnet.explorer.alchemy.com`,apiUrl:`https://worldchain-mainnet.explorer.alchemy.com/api`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0},disputeGameFactory:{[Tj]:{address:`0x069c4c579671f8c120b1327a73217D01Ea2EC5ea`}},l2OutputOracle:{[Tj]:{address:`0x19A6d1E9034596196295CF148509796978343c5D`}},portal:{[Tj]:{address:`0xd5ec14a83B7d95BE1E2Ac12523e2dEE12Cbeea6C`}},l1StandardBridge:{[Tj]:{address:`0x470458C91978D2d929704489Ad730DC3E3001113`}}},testnet:!1,sourceId:Tj});var Dj=11155111;const Oj=L({...R,id:4801,name:`World Chain Sepolia`,network:`worldchain-sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://worldchain-sepolia.g.alchemy.com/public`]}},blockExplorers:{default:{name:`Worldscan Sepolia`,url:`https://sepolia.worldscan.org`,apiUrl:`https://api-sepolia.worldscan.org/api`},blockscout:{name:`Blockscout`,url:`https://worldchain-sepolia.explorer.alchemy.com`,apiUrl:`https://worldchain-sepolia.explorer.alchemy.com/api`}},contracts:{...R.contracts,multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:0},disputeGameFactory:{[Dj]:{address:`0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A`}},l2OutputOracle:{[Dj]:{address:`0xc8886f8BAb6Eaeb215aDB5f1c686BF699248300e`}},portal:{[Dj]:{address:`0xFf6EBa109271fe6d4237EeeD4bAb1dD9A77dD1A4`}},l1StandardBridge:{[Dj]:{address:`0xd7DF54b3989855eb66497301a4aAEc33Dbb3F8DE`}}},testnet:!0,sourceId:Dj}),kj=L({id:103,name:`WorldLand Mainnet`,nativeCurrency:{decimals:18,name:`WLC`,symbol:`WLC`},rpcUrls:{default:{http:[`https://seoul.worldland.foundation`]}},blockExplorers:{default:{name:`WorldLand Scan`,url:`https://scan.worldland.foundation`}},testnet:!1}),Aj=L({id:660279,name:`Xai Mainnet`,nativeCurrency:{name:`Xai`,symbol:`XAI`,decimals:18},rpcUrls:{default:{http:[`https://xai-chain.net/rpc`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.xai-chain.net`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:222549}},testnet:!1}),jj=L({id:37714555429,name:`Xai Testnet`,nativeCurrency:{name:`sXai`,symbol:`sXAI`,decimals:18},rpcUrls:{default:{http:[`https://testnet-v2.xai-chain.net/rpc`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://testnet-explorer-v2.xai-chain.net`}},testnet:!0}),Mj=L({id:50,name:`XDC Network`,nativeCurrency:{decimals:18,name:`XDC`,symbol:`XDC`},rpcUrls:{default:{http:[`https://rpc.xdcrpc.com`]}},blockExplorers:{default:{name:`XDCScan`,url:`https://xdcscan.com`}},contracts:{multicall3:{address:`0x0B1795ccA8E4eC4df02346a082df54D437F8D9aF`,blockCreated:75884020}}}),Nj=L({id:51,name:`Apothem Network`,nativeCurrency:{decimals:18,name:`TXDC`,symbol:`TXDC`},rpcUrls:{default:{http:[`https://erpc.apothem.network`]}},blockExplorers:{default:{name:`XDCScan`,url:`https://testnet.xdcscan.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:59765389}}}),Pj=L({id:196,name:`X Layer Mainnet`,nativeCurrency:{decimals:18,name:`OKB`,symbol:`OKB`},rpcUrls:{default:{http:[`https://rpc.xlayer.tech`]}},blockExplorers:{default:{name:`OKLink`,url:`https://www.oklink.com/xlayer`,apiUrl:`https://www.oklink.com/api/v5/explorer/xlayer/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:47416}}}),Fj=L({id:195,name:`X1 Testnet`,nativeCurrency:{decimals:18,name:`OKB`,symbol:`OKB`},rpcUrls:{default:{http:[`https://xlayertestrpc.okx.com`]}},blockExplorers:{default:{name:`OKLink`,url:`https://www.oklink.com/xlayer-test`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:624344}},testnet:!0}),Ij=L({id:20250217,name:`Xphere Mainnet`,nativeCurrency:{decimals:18,name:`XP`,symbol:`XP`},rpcUrls:{default:{http:[`https://en-bkk.x-phere.com`]}},blockExplorers:{default:{name:`Xphere Tamsa Explorer`,url:`https://xp.tamsa.io`}},testnet:!1}),Lj=L({id:1998991,name:`Xphere Testnet`,nativeCurrency:{decimals:18,name:`XPT`,symbol:`XPT`},rpcUrls:{default:{http:[`http://testnet.x-phere.com`]}},blockExplorers:{default:{name:`Xphere Tamsa Explorer`,url:`https://xpt.tamsa.io`}},testnet:!0}),Rj=L({id:273,name:`XR One`,nativeCurrency:{decimals:18,name:`XR1`,symbol:`XR1`},rpcUrls:{default:{http:[`https://xr1.calderachain.xyz/http`],webSocket:[`wss://xr1.calderachain.xyz/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://xr1.calderaexplorer.xyz`}},testnet:!1}),zj=L({id:1440002,name:`XRPL EVM Devnet`,nativeCurrency:{name:`XRP`,symbol:`XRP`,decimals:18},rpcUrls:{default:{http:[`https://rpc.xrplevm.org/`]},public:{http:[`https://rpc.xrplevm.org/`]}},blockExplorers:{default:{name:`XRPLEVM Devnet Explorer`,url:`https://explorer.xrplevm.org/`}},contracts:{multicall3:{address:`0x82Cc144D7d0AD4B1c27cb41420e82b82Ad6e9B31`,blockCreated:15237286}},testnet:!0}),Bj=L({id:1449e3,name:`XRPL EVM Testnet`,nativeCurrency:{name:`XRP`,symbol:`XRP`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.xrplevm.org`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.testnet.xrplevm.org`,apiUrl:`https://explorer.testnet.xrplevm.org/api/v2`}},contracts:{multicall3:{address:`0x82Cc144D7d0AD4B1c27cb41420e82b82Ad6e9B31`,blockCreated:492302}},testnet:!0}),Vj=L({id:2730,name:`XR Sepolia`,nativeCurrency:{decimals:18,name:`tXR`,symbol:`tXR`},rpcUrls:{default:{http:[`https://xr-sepolia-testnet.rpc.caldera.xyz/http`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://xr-sepolia-testnet.explorer.caldera.xyz`}},testnet:!0}),Hj=L({id:50005,name:`Yooldo Verse`,nativeCurrency:{name:`OAS`,symbol:`OAS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.yooldo-verse.xyz`]}},blockExplorers:{default:{name:`Yooldo Verse Explorer`,url:`https://explorer.yooldo-verse.xyz`}}}),Uj=L({id:50006,name:`Yooldo Verse Testnet`,nativeCurrency:{name:`OAS`,symbol:`OAS`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.yooldo-verse.xyz`]}},blockExplorers:{default:{name:`Yooldo Verse Testnet Explorer`,url:`https://explorer.testnet.yooldo-verse.xyz`}},testnet:!0}),Wj=L({id:8408,name:`ZenChain Testnet`,nativeCurrency:{decimals:18,name:`ZTC`,symbol:`ZTC`},rpcUrls:{default:{http:[`https://zenchain-testnet.api.onfinality.io/public`],webSocket:[`wss://zenchain-testnet.api.onfinality.io/public-ws`]}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:230019}},blockExplorers:{default:{name:`Zentrace`,url:`https://zentrace.io`}},testnet:!0}),Gj=L({id:383414847825,name:`Zeniq Mainnet`,nativeCurrency:{name:`ZENIQ`,symbol:`ZENIQ`,decimals:18},rpcUrls:{default:{http:[`https://api.zeniq.network`]}},blockExplorers:{default:{name:`Zeniq Explorer`,url:`https://zeniqscan.com`}},testnet:!1}),Kj=L({id:543210,name:`Zero Network`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.zerion.io/v1/zero`]}},blockExplorers:{default:{name:`Zero Network Explorer`,url:`https://explorer.zero.network`}},testnet:!1}),qj=L({id:7e3,name:`ZetaChain`,nativeCurrency:{decimals:18,name:`Zeta`,symbol:`ZETA`},rpcUrls:{default:{http:[`https://zetachain-evm.blockpi.network/v1/rpc/public`]}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1632781}},blockExplorers:{default:{name:`ZetaScan`,url:`https://zetascan.com`}},testnet:!1}),Jj=L({id:7001,name:`ZetaChain Athens Testnet`,nativeCurrency:{decimals:18,name:`Zeta`,symbol:`aZETA`},rpcUrls:{default:{http:[`https://zetachain-athens-evm.blockpi.network/v1/rpc/public`]}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2715217}},blockExplorers:{default:{name:`ZetaScan`,url:`https://testnet.zetascan.com`}},testnet:!0}),Yj=L({id:1337803,name:`Zhejiang`,nativeCurrency:{name:`Zhejiang Ether`,symbol:`ZhejETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.zhejiang.ethpandaops.io`]}},blockExplorers:{default:{name:`Beaconchain`,url:`https://zhejiang.beaconcha.in`}},testnet:!0}),Xj=L({id:32769,name:`Zilliqa`,network:`zilliqa`,nativeCurrency:{name:`Zilliqa`,symbol:`ZIL`,decimals:18},rpcUrls:{default:{http:[`https://api.zilliqa.com`]}},blockExplorers:{default:{name:`Ethernal`,url:`https://evmx.zilliqa.com`}},testnet:!1}),Zj=L({id:33101,name:`Zilliqa Testnet`,network:`zilliqa-testnet`,nativeCurrency:{name:`Zilliqa`,symbol:`ZIL`,decimals:18},rpcUrls:{default:{http:[`https://dev-api.zilliqa.com`]}},blockExplorers:{default:{name:`Ethernal`,url:`https://evmx.testnet.zilliqa.com`}},testnet:!0});var Qj=1;const $j=L({...R,id:48900,name:`Zircuit Mainnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.zircuit.com`,`https://zircuit1-mainnet.liquify.com`,`https://zircuit1-mainnet.p2pify.com`,`https://zircuit-mainnet.drpc.org`]}},blockExplorers:{default:{name:`Zircuit Explorer`,url:`https://explorer.zircuit.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`},l2OutputOracle:{[Qj]:{address:`0x92Ef6Af472b39F1b363da45E35530c24619245A4`}},portal:{[Qj]:{address:`0x17bfAfA932d2e23Bd9B909Fd5B4D2e2a27043fb1`}},l1StandardBridge:{[Qj]:{address:`0x386B76D9cA5F5Fb150B6BFB35CF5379B22B26dd8`}}},testnet:!1});var eM=11155111;const tM=L({...R,id:48898,name:`Zircuit Garfield Testnet`,nativeCurrency:{name:`ETH`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://garfield-testnet.zircuit.com/`]}},blockExplorers:{default:{name:`Zircuit Garfield Testnet Explorer`,url:`https://explorer.garfield-testnet.zircuit.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`},l2OutputOracle:{[eM]:{address:`0xd69D3AC5CA686cCF94b258291772bc520FEAf211`}},portal:{[eM]:{address:`0x4E21A71Ac3F7607Da5c06153A17B1DD20E702c21`}},l1StandardBridge:{[eM]:{address:`0x87a7E2bCA9E35BA49282E832a28A6023904460D8`}}},testnet:!0});var nM=11155111;const rM=L({...R,id:48899,name:`Zircuit Testnet`,nativeCurrency:{name:`ETH`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet.zircuit.com`,`https://zircuit1-testnet.p2pify.com`,`https://zircuit1-testnet.liquify.com`]}},blockExplorers:{default:{name:`Zircuit Testnet Explorer`,url:`https://explorer.testnet.zircuit.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:6040287},l2OutputOracle:{[nM]:{address:`0x740C2dac453aEf7140809F80b72bf0e647af8148`}},portal:{[nM]:{address:`0x787f1C8c5924178689E0560a43D848bF8E54b23e`}},l1StandardBridge:{[nM]:{address:`0x0545c5fe980098C16fcD0eCB5E79753afa6d9af9`}}},testnet:!0}),iM=L({id:42766,name:`ZKFair Mainnet`,network:`zkfair-mainnet`,nativeCurrency:{decimals:18,name:`USD Coin`,symbol:`USDC`},rpcUrls:{default:{http:[`https://rpc.zkfair.io`]}},blockExplorers:{default:{name:`zkFair Explorer`,url:`https://scan.zkfair.io`,apiUrl:`https://scan.zkfair.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:6090959}},testnet:!1}),aM=L({id:43851,name:`ZKFair Testnet`,network:`zkfair-testnet`,nativeCurrency:{decimals:18,name:`USD Coin`,symbol:`USDC`},rpcUrls:{default:{http:[`https://testnet-rpc.zkfair.io`]}},blockExplorers:{default:{name:`zkFair Explorer`,url:`https://testnet-scan.zkfair.io`}},testnet:!0}),oM=L({id:810180,name:`zkLink Nova`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.zklink.io`]}},blockExplorers:{default:{name:`zkLink Nova Block Explorer`,url:`https://explorer.zklink.io`}}}),sM=L({id:810181,name:`zkLink Nova Sepolia Testnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`https://sepolia.rpc.zklink.io`]}},blockExplorers:{default:{name:`zkLink Nova Block Explorer`,url:`https://sepolia.explorer.zklink.io`}}}),cM=L({...oy,id:324,name:`ZKsync Era`,network:`zksync-era`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.era.zksync.io`],webSocket:[`wss://mainnet.era.zksync.io/ws`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://era.zksync.network/`,apiUrl:`https://api-era.zksync.network/api`},native:{name:`ZKsync Explorer`,url:`https://explorer.zksync.io/`,apiUrl:`https://block-explorer-api.mainnet.zksync.io/api`}},contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`},erc6492Verifier:{address:`0xfB688330379976DA81eB64Fe4BF50d7401763B9C`,blockCreated:45659388}}}),lM=L({...oy,id:260,name:`ZKsync InMemory Node`,network:`zksync-in-memory-node`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`http://localhost:8011`]}},testnet:!0}),uM=L({...oy,id:272,name:`ZKsync CLI Local Custom Hyperchain`,nativeCurrency:{name:`BAT`,symbol:`BAT`,decimals:18},rpcUrls:{default:{http:[`http://localhost:15200`],webSocket:[`ws://localhost:15201`]}},blockExplorers:{default:{name:`ZKsync explorer`,url:`http://localhost:15005/`,apiUrl:`http://localhost:15005/api`}},testnet:!0}),dM=L({...oy,id:270,name:`ZKsync CLI Local Hyperchain`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`http://localhost:15100`],webSocket:[`ws://localhost:15101`]}},blockExplorers:{default:{name:`ZKsync explorer`,url:`http://localhost:15005/`,apiUrl:`http://localhost:15005/api`}},testnet:!0}),fM=L({id:9,name:`ZKsync CLI Local Hyperchain L1`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`http://localhost:15045`]}},blockExplorers:{default:{name:`Blockscout`,url:`http://localhost:15001/`,apiUrl:`http://localhost:15001/api/v2`}},testnet:!0}),pM=L({...oy,id:270,name:`ZKsync CLI Local Node`,network:`zksync-cli-local-node`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`http://localhost:3050`]}},testnet:!0}),mM=L({...oy,id:300,name:`ZKsync Sepolia Testnet`,network:`zksync-sepolia-testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://sepolia.era.zksync.dev`],webSocket:[`wss://sepolia.era.zksync.dev/ws`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://sepolia-era.zksync.network/`,apiUrl:`https://api-sepolia-era.zksync.network/api`},native:{name:`ZKsync Explorer`,url:`https://sepolia.explorer.zksync.io/`,blockExplorerApi:`https://block-explorer-api.sepolia.zksync.dev/api`}},contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`},erc6492Verifier:{address:`0xfB688330379976DA81eB64Fe4BF50d7401763B9C`,blockCreated:3855712}},testnet:!0});var hM=1;const gM=L({...R,id:7777777,name:`Zora`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.zora.energy`],webSocket:[`wss://rpc.zora.energy`]}},blockExplorers:{default:{name:`Explorer`,url:`https://explorer.zora.energy`,apiUrl:`https://explorer.zora.energy/api`}},contracts:{...R.contracts,l2OutputOracle:{[hM]:{address:`0x9E6204F750cD866b299594e2aC9eA824E2e5f95c`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:5882},portal:{[hM]:{address:`0x1a0ad011913A150f69f6A19DF447A0CfD9551054`}},l1StandardBridge:{[hM]:{address:`0x3e2Ea9B92B7E48A52296fD261dc26fd995284631`}}},sourceId:hM});var _M=11155111;const vM=L({...R,id:999999999,name:`Zora Sepolia`,network:`zora-sepolia`,nativeCurrency:{decimals:18,name:`Zora Sepolia`,symbol:`ETH`},rpcUrls:{default:{http:[`https://sepolia.rpc.zora.energy`],webSocket:[`wss://sepolia.rpc.zora.energy`]}},blockExplorers:{default:{name:`Zora Sepolia Explorer`,url:`https://sepolia.explorer.zora.energy/`,apiUrl:`https://sepolia.explorer.zora.energy/api`}},contracts:{...R.contracts,l2OutputOracle:{[_M]:{address:`0x2615B481Bd3E5A1C0C7Ca3Da1bdc663E8615Ade9`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:83160},portal:{[_M]:{address:`0xeffE2C6cA9Ab797D418f0D91eA60807713f3536f`}},l1StandardBridge:{[_M]:{address:`0x5376f1D543dcbB5BD416c56C189e4cB7399fCcCB`}}},sourceId:_M,testnet:!0});var yM=5;const bM=L({...R,id:999,name:`Zora Goerli Testnet`,nativeCurrency:{decimals:18,name:`Zora Goerli`,symbol:`ETH`},rpcUrls:{default:{http:[`https://testnet.rpc.zora.energy`],webSocket:[`wss://testnet.rpc.zora.energy`]}},blockExplorers:{default:{name:`Explorer`,url:`https://testnet.explorer.zora.energy`,apiUrl:`https://testnet.explorer.zora.energy/api`}},contracts:{...R.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:189123},portal:{[yM]:{address:`0xDb9F51790365e7dc196e7D072728df39Be958ACe`}}},sourceId:yM,testnet:!0});var xM=c({abey:()=>Wv,abstract:()=>sy,abstractTestnet:()=>cy,acala:()=>ly,acria:()=>uy,adf:()=>dy,agungTestnet:()=>fy,aioz:()=>py,alephZero:()=>my,alephZeroTestnet:()=>hy,alienx:()=>gy,alienxHalTestnet:()=>_y,ancient8:()=>Ey,ancient8Sepolia:()=>Oy,anvil:()=>ky,apeChain:()=>Ay,apexTestnet:()=>jy,arbitrum:()=>My,arbitrumGoerli:()=>Ny,arbitrumNova:()=>Py,arbitrumSepolia:()=>Fy,arenaz:()=>Iy,areonNetwork:()=>Ly,areonNetworkTestnet:()=>Ry,areum:()=>zy,artelaTestnet:()=>By,arthera:()=>Vy,artheraTestnet:()=>Hy,assetChain:()=>Uy,assetChainTestnet:()=>Wy,astar:()=>Gy,astarZkEVM:()=>Ky,astarZkyoto:()=>qy,atletaOlympia:()=>Jy,aurora:()=>Yy,auroraTestnet:()=>Xy,auroria:()=>Zy,autheoTestnet:()=>Qy,avalanche:()=>$y,avalancheFuji:()=>eb,b3:()=>tb,b3Sepolia:()=>nb,bahamut:()=>rb,base:()=>ab,baseGoerli:()=>lb,basePreconf:()=>ob,baseSepolia:()=>db,baseSepoliaPreconf:()=>fb,basecampTestnet:()=>sb,beam:()=>pb,beamTestnet:()=>mb,bearNetworkChainMainnet:()=>hb,bearNetworkChainTestnet:()=>gb,berachain:()=>_b,berachainBepolia:()=>vb,berachainTestnet:()=>yb,berachainTestnetbArtio:()=>bb,bevmMainnet:()=>xb,bifrost:()=>Sb,birdlayer:()=>Cb,bitTorrent:()=>Ab,bitTorrentTestnet:()=>jb,bitgert:()=>wb,bitkub:()=>Tb,bitkubTestnet:()=>Eb,bitlayer:()=>Db,bitlayerTestnet:()=>Ob,bitrock:()=>kb,blast:()=>Nb,blastSepolia:()=>Pb,bob:()=>Ib,bobSepolia:()=>Bb,boba:()=>Lb,bobaSepolia:()=>Rb,boolBetaMainnet:()=>Vb,botanix:()=>Hb,botanixTestnet:()=>Ub,bounceBit:()=>Wb,bounceBitTestnet:()=>Gb,bronos:()=>Kb,bronosTestnet:()=>qb,bsc:()=>Jb,bscGreenfield:()=>Yb,bscTestnet:()=>Xb,bsquared:()=>Zb,bsquaredTestnet:()=>Qb,btr:()=>$b,btrTestnet:()=>ex,bxn:()=>tx,bxnTestnet:()=>nx,cannon:()=>rx,canto:()=>ix,celo:()=>yx,celoAlfajores:()=>xx,celoSepolia:()=>Cx,chang:()=>wx,chiliz:()=>Tx,chips:()=>Ex,citreaTestnet:()=>Dx,classic:()=>Ox,coinbit:()=>kx,coinex:()=>Ax,confluxESpace:()=>jx,confluxESpaceTestnet:()=>Mx,coreDao:()=>Nx,coreTestnet1:()=>Px,coreTestnet2:()=>Fx,corn:()=>Ix,cornTestnet:()=>Lx,crab:()=>Rx,creatorTestnet:()=>zx,creditCoin3Devnet:()=>Bx,creditCoin3Mainnet:()=>Vx,creditCoin3Testnet:()=>Hx,cronos:()=>Ux,cronosTestnet:()=>Wx,cronoszkEVM:()=>Gx,cronoszkEVMTestnet:()=>Kx,crossbell:()=>qx,crossfi:()=>Jx,curtis:()=>Yx,cyber:()=>Xx,cyberTestnet:()=>Zx,dailyNetwork:()=>Qx,dailyNetworkTestnet:()=>$x,darwinia:()=>eS,dbkchain:()=>tS,dchain:()=>nS,dchainTestnet:()=>rS,defichainEvm:()=>iS,defichainEvmTestnet:()=>aS,degen:()=>oS,dfk:()=>sS,diode:()=>cS,disChain:()=>lS,dodochainTestnet:()=>uS,dogechain:()=>dS,domaTestnet:()=>fS,donatuz:()=>pS,dosChain:()=>mS,dosChainTestnet:()=>hS,dreyerxMainnet:()=>gS,dreyerxTestnet:()=>_S,dustboyIoT:()=>vS,dymension:()=>yS,edexa:()=>bS,edexaTestnet:()=>xS,edgeless:()=>SS,edgelessTestnet:()=>CS,edgeware:()=>wS,edgewareTestnet:()=>TS,eduChain:()=>ES,eduChainTestnet:()=>DS,ekta:()=>OS,ektaTestnet:()=>kS,elastos:()=>AS,elastosTestnet:()=>jS,electroneum:()=>MS,electroneumTestnet:()=>NS,elysiumTestnet:()=>PS,energy:()=>FS,eni:()=>IS,eniTestnet:()=>LS,enuls:()=>RS,eon:()=>zS,eos:()=>BS,eosTestnet:()=>VS,eteria:()=>HS,etherlink:()=>US,etherlinkTestnet:()=>WS,ethernity:()=>GS,etp:()=>KS,evmos:()=>qS,evmosTestnet:()=>JS,excelonMainnet:()=>YS,expanse:()=>XS,exsat:()=>ZS,exsatTestnet:()=>QS,fantom:()=>$S,fantomSonicTestnet:()=>eC,fantomTestnet:()=>tC,fibo:()=>nC,filecoin:()=>rC,filecoinCalibration:()=>iC,filecoinHyperspace:()=>aC,fireChain:()=>Uv,flame:()=>oC,flare:()=>sC,flareTestnet:()=>cC,flowMainnet:()=>lC,flowPreviewnet:()=>uC,flowTestnet:()=>dC,fluence:()=>fC,fluenceStage:()=>pC,fluenceTestnet:()=>mC,fluentTestnet:()=>hC,form:()=>_C,formTestnet:()=>bC,forma:()=>vC,formicarium:()=>CE,forta:()=>xC,foundry:()=>SC,fraxtal:()=>wC,fraxtalTestnet:()=>EC,funkiMainnet:()=>OC,funkiSepolia:()=>AC,fuse:()=>jC,fuseSparknet:()=>MC,fusion:()=>NC,fusionTestnet:()=>PC,garnet:()=>IC,geist:()=>LC,genesys:()=>RC,giwaSepolia:()=>BC,glideL1Protocol:()=>VC,glideL2Protocol:()=>HC,gnosis:()=>UC,gnosisChiado:()=>WC,goChain:()=>qC,goat:()=>GC,gobi:()=>KC,godwoken:()=>JC,goerli:()=>YC,graphite:()=>XC,graphiteTestnet:()=>ZC,gravity:()=>QC,gunz:()=>$C,guruNetwork:()=>ew,guruTestnet:()=>tw,ham:()=>nw,happychainTestnet:()=>rw,haqqMainnet:()=>iw,haqqTestedge2:()=>aw,hardhat:()=>ow,harmonyOne:()=>sw,hashkey:()=>cw,hashkeyTestnet:()=>lw,haustTestnet:()=>uw,hedera:()=>dw,hederaPreviewnet:()=>fw,hederaTestnet:()=>pw,hela:()=>mw,hemi:()=>hw,hemiSepolia:()=>gw,holesky:()=>_w,hoodi:()=>vw,hpb:()=>yw,huddle01Mainnet:()=>bw,huddle01Testnet:()=>xw,humanity:()=>Sw,humanityTestnet:()=>Cw,humanode:()=>ww,humanodeTestnet5:()=>Tw,hychain:()=>Ew,hychainTestnet:()=>Dw,hyperliquidEvmTestnet:()=>Ow,iSunCoin:()=>Kw,icbNetwork:()=>kw,idchain:()=>Aw,immutableZkEvm:()=>jw,immutableZkEvmTestnet:()=>Mw,inEVM:()=>Nw,initVerse:()=>Pw,initVerseGenesis:()=>Fw,injective:()=>Iw,injectiveTestnet:()=>Lw,ink:()=>zw,inkSepolia:()=>Vw,iota:()=>Hw,iotaTestnet:()=>Uw,iotex:()=>Ww,iotexTestnet:()=>Gw,jbc:()=>qw,jbcTestnet:()=>Jw,jocMainnet:()=>Yw,jocTestnet:()=>Xw,jovay:()=>Zw,jovaySepolia:()=>Qw,juneo:()=>$w,juneoBCH1Chain:()=>eT,juneoDAI1Chain:()=>tT,juneoDOGE1Chain:()=>nT,juneoEUR1Chain:()=>rT,juneoGLD1Chain:()=>iT,juneoLINK1Chain:()=>aT,juneoLTC1Chain:()=>oT,juneoSGD1Chain:()=>cT,juneoSocotraTestnet:()=>lT,juneoUSD1Chain:()=>uT,juneoUSDT1Chain:()=>dT,juneomBTC1Chain:()=>sT,kaia:()=>fT,kairos:()=>pT,kakarotSepolia:()=>mT,kakarotStarknetSepolia:()=>hT,kardiaChain:()=>gT,karura:()=>_T,katana:()=>vT,kava:()=>yT,kavaTestnet:()=>bT,kcc:()=>xT,kiiTestnetOro:()=>ST,kinto:()=>CT,klaytn:()=>wT,klaytnBaobab:()=>TT,koi:()=>ET,kroma:()=>DT,kromaSepolia:()=>OT,l3x:()=>kT,l3xTestnet:()=>AT,lavita:()=>jT,lens:()=>MT,lensTestnet:()=>NT,lestnet:()=>PT,lightlinkPegasus:()=>FT,lightlinkPhoenix:()=>IT,linea:()=>BT,lineaGoerli:()=>VT,lineaSepolia:()=>HT,lineaTestnet:()=>UT,lisk:()=>GT,liskSepolia:()=>qT,loadAlphanet:()=>JT,localhost:()=>YT,loop:()=>XT,lukso:()=>ZT,luksoTestnet:()=>QT,lumiaMainnet:()=>$T,lumiaTestnet:()=>eE,lumoz:()=>tE,lumozTestnet:()=>nE,lycan:()=>rE,lyra:()=>iE,mainnet:()=>aE,mandala:()=>oE,manta:()=>sE,mantaSepoliaTestnet:()=>cE,mantaTestnet:()=>lE,mantle:()=>uE,mantleSepoliaTestnet:()=>dE,mantleTestnet:()=>fE,mantraDuKongEVMTestnet:()=>pE,mantraEVM:()=>mE,mapProtocol:()=>hE,matchain:()=>gE,matchainTestnet:()=>_E,mchVerse:()=>vE,megaethTestnet:()=>yE,mekong:()=>bE,meld:()=>xE,memecore:()=>SE,merlin:()=>wE,merlinErigonTestnet:()=>TE,metachain:()=>EE,metachainIstanbul:()=>DE,metadium:()=>OE,metalL2:()=>AE,meter:()=>jE,meterTestnet:()=>ME,metis:()=>NE,metisGoerli:()=>PE,metisSepolia:()=>FE,mev:()=>IE,mevTestnet:()=>LE,mint:()=>RE,mintSepoliaTestnet:()=>zE,mitosisTestnet:()=>BE,mode:()=>HE,modeTestnet:()=>WE,monadTestnet:()=>GE,moonbaseAlpha:()=>KE,moonbeam:()=>qE,moonbeamDev:()=>JE,moonriver:()=>YE,morph:()=>XE,morphHolesky:()=>ZE,morphSepolia:()=>QE,nahmii:()=>$E,nautilus:()=>eD,near:()=>tD,nearTestnet:()=>nD,neonDevnet:()=>rD,neonMainnet:()=>iD,neoxMainnet:()=>aD,neoxT4:()=>oD,newton:()=>sD,nexi:()=>cD,nexilix:()=>lD,nibiru:()=>uD,nitrographTestnet:()=>dD,oasisTestnet:()=>fD,oasys:()=>pD,odysseyTestnet:()=>mD,okc:()=>hD,omax:()=>gD,omni:()=>_D,omniOmega:()=>vD,oneWorld:()=>yD,oortMainnetDev:()=>bD,opBNB:()=>SD,opBNBTestnet:()=>wD,openledger:()=>TD,optimism:()=>DD,optimismGoerli:()=>kD,optimismSepolia:()=>jD,optopia:()=>MD,optopiaTestnet:()=>ND,orderly:()=>PD,orderlySepolia:()=>FD,otimDevnet:()=>ID,palm:()=>LD,palmTestnet:()=>RD,peaq:()=>zD,pgn:()=>VD,pgnTestnet:()=>UD,phoenix:()=>WD,planq:()=>GD,plasma:()=>KD,plasmaDevnet:()=>qD,plasmaTestnet:()=>JD,playfiAlbireo:()=>YD,plinga:()=>XD,plume:()=>ZD,plumeDevnet:()=>QD,plumeMainnet:()=>$D,plumeSepolia:()=>eO,plumeTestnet:()=>tO,polterTestnet:()=>nO,polygon:()=>rO,polygonAmoy:()=>iO,polygonMumbai:()=>aO,polygonZkEvm:()=>oO,polygonZkEvmCardona:()=>sO,polygonZkEvmTestnet:()=>cO,polynomial:()=>lO,polynomialSepolia:()=>uO,premiumBlockTestnet:()=>dO,pulsechain:()=>fO,pulsechainV4:()=>pO,pumpfiTestnet:()=>mO,pyrope:()=>gO,qMainnet:()=>vO,qTestnet:()=>yO,ql1:()=>_O,real:()=>bO,redbellyMainnet:()=>xO,redbellyTestnet:()=>SO,reddio:()=>CO,reddioSepolia:()=>wO,redstone:()=>EO,rei:()=>DO,reyaNetwork:()=>OO,riseTestnet:()=>kO,rivalz:()=>AO,rollux:()=>jO,rolluxTestnet:()=>MO,ronin:()=>NO,root:()=>PO,rootPorcini:()=>FO,rootstock:()=>IO,rootstockTestnet:()=>LO,rss3:()=>zO,rss3Sepolia:()=>VO,saakuru:()=>HO,saga:()=>UO,saigon:()=>WO,sanko:()=>GO,sapphire:()=>KO,sapphireTestnet:()=>qO,satoshiVM:()=>JO,satoshiVMTestnet:()=>YO,scroll:()=>XO,scrollSepolia:()=>ZO,sei:()=>QO,seiDevnet:()=>$O,seiTestnet:()=>tk,seismicDevnet:()=>ek,sepolia:()=>nk,shape:()=>ik,shapeSepolia:()=>ok,shardeum:()=>sk,shardeumSphinx:()=>ck,shibarium:()=>lk,shibariumTestnet:()=>uk,shiden:()=>dk,shimmer:()=>fk,shimmerTestnet:()=>pk,sidraChain:()=>mk,silicon:()=>hk,siliconSepolia:()=>gk,sixProtocol:()=>_k,skaleBlockBrawlers:()=>vk,skaleCalypso:()=>yk,skaleCalypsoTestnet:()=>bk,skaleCryptoBlades:()=>xk,skaleCryptoColosseum:()=>Sk,skaleEuropa:()=>Ck,skaleEuropaTestnet:()=>wk,skaleExorde:()=>Tk,skaleHumanProtocol:()=>Ek,skaleNebula:()=>Dk,skaleNebulaTestnet:()=>Ok,skaleRazor:()=>kk,skaleTitan:()=>Ak,skaleTitanTestnet:()=>jk,sketchpad:()=>Mk,snax:()=>Pk,snaxTestnet:()=>Ik,somniaTestnet:()=>Lk,soneium:()=>zk,soneiumMinato:()=>Vk,songbird:()=>Hk,songbirdTestnet:()=>Uk,sonic:()=>Wk,sonicBlazeTestnet:()=>Gk,sonicTestnet:()=>Kk,sophon:()=>qk,sophonTestnet:()=>Jk,sova:()=>Yk,sovaSepolia:()=>Xk,spicy:()=>Zk,statusNetworkSepolia:()=>Qk,statusSepolia:()=>Qk,step:()=>$k,story:()=>eA,storyAeneid:()=>tA,storyOdyssey:()=>nA,storyTestnet:()=>rA,stratis:()=>iA,superlumio:()=>aA,superposition:()=>oA,superseed:()=>cA,superseedSepolia:()=>uA,surgeTestnet:()=>dA,swan:()=>fA,swanProximaTestnet:()=>pA,swanSaturnTestnet:()=>mA,swellchain:()=>hA,swellchainTestnet:()=>gA,swissdlt:()=>_A,syscoin:()=>vA,syscoinTestnet:()=>yA,tac:()=>bA,tacSPB:()=>xA,taiko:()=>SA,taikoHekla:()=>CA,taikoJolnir:()=>wA,taikoKatla:()=>TA,taikoTestnetSepolia:()=>EA,taraxa:()=>DA,taraxaTestnet:()=>OA,teaSepolia:()=>kA,telcoinTestnet:()=>AA,telos:()=>jA,telosTestnet:()=>MA,tenet:()=>NA,ternoa:()=>PA,thaiChain:()=>FA,that:()=>IA,theta:()=>LA,thetaTestnet:()=>RA,thunderCore:()=>zA,thunderTestnet:()=>BA,tiktrixTestnet:()=>VA,tomb:()=>HA,treasure:()=>UA,treasureTopaz:()=>WA,tron:()=>GA,tronNile:()=>KA,tronShasta:()=>qA,ubiq:()=>JA,ultra:()=>YA,ultraTestnet:()=>XA,ultron:()=>ZA,ultronTestnet:()=>QA,unichain:()=>ej,unichainSepolia:()=>nj,unique:()=>rj,uniqueOpal:()=>ij,uniqueQuartz:()=>aj,unreal:()=>oj,vana:()=>sj,vanaMoksha:()=>cj,vanar:()=>lj,vechain:()=>uj,velas:()=>dj,viction:()=>fj,victionTestnet:()=>pj,vision:()=>mj,visionTestnet:()=>hj,wanchain:()=>gj,wanchainTestnet:()=>_j,weaveVMAlphanet:()=>vj,wemix:()=>yj,wemixTestnet:()=>bj,westendAssetHub:()=>xj,whitechain:()=>Sj,whitechainTestnet:()=>Cj,wmcTestnet:()=>wj,worldLand:()=>kj,worldchain:()=>Ej,worldchainSepolia:()=>Oj,x1Testnet:()=>Fj,xLayer:()=>Pj,xLayerTestnet:()=>Fj,xai:()=>Aj,xaiTestnet:()=>jj,xdc:()=>Mj,xdcTestnet:()=>Nj,xphereMainnet:()=>Ij,xphereTestnet:()=>Lj,xrOne:()=>Rj,xrSepolia:()=>Vj,xrplevmDevnet:()=>zj,xrplevmTestnet:()=>Bj,yooldoVerse:()=>Hj,yooldoVerseTestnet:()=>Uj,zenchainTestnet:()=>Wj,zeniq:()=>Gj,zeroG:()=>Bv,zeroGGalileoTestnet:()=>Vv,zeroGMainnet:()=>Hv,zeroNetwork:()=>Kj,zetachain:()=>qj,zetachainAthensTestnet:()=>Jj,zhejiang:()=>Yj,zilliqa:()=>Xj,zilliqaTestnet:()=>Zj,zircuit:()=>$j,zircuitGarfieldTestnet:()=>tM,zircuitTestnet:()=>rM,zkFair:()=>iM,zkFairTestnet:()=>aM,zkLinkNova:()=>oM,zkLinkNovaSepoliaTestnet:()=>sM,zkSync:()=>cM,zkSyncInMemoryNode:()=>lM,zkSyncLocalNode:()=>pM,zkSyncSepoliaTestnet:()=>mM,zksync:()=>cM,zksyncInMemoryNode:()=>lM,zksyncLocalCustomHyperchain:()=>uM,zksyncLocalHyperchain:()=>dM,zksyncLocalHyperchainL1:()=>fM,zksyncLocalNode:()=>pM,zksyncSepoliaTestnet:()=>mM,zora:()=>gM,zoraSepolia:()=>vM,zoraTestnet:()=>bM}),SM=c({arbitrum:()=>My,arbitrumSepolia:()=>Fy,base:()=>ab,baseSepolia:()=>db,berachain:()=>_b,berachainBepolia:()=>vb,bsc:()=>Jb,celo:()=>yx,gnosis:()=>UC,hoodi:()=>vw,katana:()=>vT,mainnet:()=>aE,optimism:()=>DD,optimismSepolia:()=>jD,polygon:()=>rO,sepolia:()=>nk});const CM=[ab,...Object.values(SM).filter(e=>e&&e.id!==ab.id)],wM=ky;({...wM}),{...wM};var TM=u(s(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i`IntersectionObserver`in window&&`IntersectionObserverEntry`in window&&`intersectionRatio`in IntersectionObserverEntry.prototype&&`isVisible`in IntersectionObserverEntry.prototype;function oN(e={}){let{prefix:t=`[Porto]`}=e,n=new Set;return{error:cN(console.error,{prefix:t}),errorOnce:cN(console.error,{memo:n,prefix:t}),log:cN(console.log,{prefix:t}),logOnce:cN(console.log,{memo:n,prefix:t}),warn:cN(console.warn,{prefix:t}),warnOnce:cN(console.warn,{memo:n,prefix:t})}}const sN=oN();function cN(e,t={}){let{memo:n,prefix:r}=t;return(...t)=>{let i=t.join(` `);n?.has(i)||(n?.add(i),e(`${r} ${i}`))}}function lN(){let e=navigator.userAgent.toLowerCase();return e.includes(`safari`)&&!e.includes(`chrome`)}function uN(){let e=navigator.userAgent.toLowerCase();return(e.includes(`firefox`)||e.includes(`fxios`))&&!e.includes(`seamonkey`)}function dN(){return window.navigator?.userAgentData?.mobile?!0:navigator.maxTouchPoints>1||/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(navigator.userAgent.slice(0,4))}function fN(){let e=()=>void 0,t=()=>void 0;return{promise:new Promise((n,r)=>{e=n,t=r}),reject:t,resolve:e}}function pN(e){if(Array.isArray(e))return e.map(pN);if(typeof e==`function`)return;if(typeof e!=`object`||!e)return e;if(Object.getPrototypeOf(e)!==Object.prototype)try{return structuredClone(e)}catch{return}let t={};for(let[n,r]of Object.entries(e))t[n]=pN(r);return t}function mN(e,t){let n=[],r=new Set;for(let i of e){let e=t(i);r.has(e)||(r.add(e),n.push(i))}return n}function hN(){return typeof globalThis<`u`&&`crypto`in globalThis?globalThis.crypto.randomUUID():crypto.randomUUID()}function gN(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(gN.cache.get(n))return gN.cache.get(n);let r=e().finally(()=>gN.cache.delete(n));return gN.cache.set(n,r),r}(function(e){e.cache=new Map})(gN||={});function _N(e){return e}function vN(e,t={}){let{targetOrigin:n}=t,r=new Map;return _N({destroy(){for(let t of r.values())e.removeEventListener(`message`,t)},on(t,i,a){function o(e){e.data.topic===t&&(a&&e.data.id!==a||n&&e.origin!==n||i(e.data.payload,e))}return e.addEventListener(`message`,o),r.set(t,o),()=>e.removeEventListener(`message`,o)},async send(t,r,i){let a=hN();return e.postMessage(pN({id:a,payload:r,topic:t}),i??n??`*`),{id:a,payload:r,topic:t}},async sendAsync(e,t,n){let{id:r}=await this.send(e,t,n);return new Promise(t=>this.on(e,t,r))}})}function yN(e){let{from:t,to:n,waitForReady:r=!1}=e,i=!1,a=fN();t.on(`ready`,a.resolve);let o=_N({destroy(){t.destroy(),n.destroy(),i&&a.reject()},on(e,n,r){return t.on(e,n,r)},async send(e,t){return i=!0,r&&await a.promise.finally(()=>i=!1),n.send(e,t)},async sendAsync(e,t){return i=!0,r&&await a.promise.finally(()=>i=!1),n.sendAsync(e,t)}});return{...o,ready(e){o.send(`ready`,e)},waitForReady(){return a.promise}}}const bN={local:`http://localhost:5175/dialog/`,prod:`https://id.porto.sh/dialog`,stg:`https://stg.id.porto.sh/dialog`};function xN(e){return e}function SN(e={}){let{skipProtocolCheck:t,skipUnsupported:n}=e,r=e=>!n&&lN()&&e?.some(e=>[`wallet_connect`,`eth_requestAccounts`].includes(e.method));return typeof window>`u`?wN():xN({name:`iframe`,setup(e){let{host:n,internal:i,theme:a,themeController:o}=e,{store:s}=i,c=CN().setup(e),l=!1,u=new URL(n),d=document.createElement(`dialog`);d.dataset.porto=``,d.setAttribute(`role`,`dialog`),d.setAttribute(`aria-closed`,`true`),d.setAttribute(`aria-label`,`Porto Wallet`),d.setAttribute(`hidden`,`until-found`),Object.assign(d.style,{background:`transparent`,border:`0`,outline:`0`,padding:`0`,position:`fixed`}),document.body.appendChild(d);let f=document.createElement(`iframe`);f.setAttribute(`data-testid`,`porto`);let p=[`payment`,`publickey-credentials-get ${u.origin}`,`publickey-credentials-create ${u.origin}`];uN()||p.push(`clipboard-write`),f.setAttribute(`allow`,p.join(`; `)),f.setAttribute(`tabindex`,`0`),f.setAttribute(`sandbox`,`allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox`),f.setAttribute(`src`,AN(n)),f.setAttribute(`title`,`Porto`),Object.assign(f.style,{backgroundColor:`transparent`,border:`0`,colorScheme:`light dark`,height:`100%`,left:`0`,position:`fixed`,top:`0`,width:`100%`});let m=document.createElement(`style`);m.innerHTML=` + dialog[data-porto]::backdrop { + background: transparent!important; + } + `,d.appendChild(m),d.appendChild(f);let h=yN({from:vN(window,{targetOrigin:u.origin}),to:vN(f.contentWindow,{targetOrigin:u.origin}),waitForReady:!0});o?._setup(h,!0);let g=window.matchMedia(`(max-width: 460px)`),_=()=>{h.send(`__internal`,{type:`resize`,width:g.matches?460:461})};g.addEventListener(`change`,_),h.on(`ready`,t=>{let n=e.internal.store.getState().chainIds.filter(e=>t.chainIds.includes(e));n.length===0&&(n=t.chainIds),s.setState(e=>({...e,chainIds:n})),h.send(`__internal`,{chainIds:n,mode:`iframe`,referrer:DN(),theme:a,type:`init`}),_()}),h.on(`rpc-response`,e=>{r([e._request])&&(f.src=f.src),kN(s,e)}),h.on(`__internal`,e=>{e.type===`switch`&&e.mode===`popup`&&(c.open(),c.syncRequests(s.getState().requestQueue))});let v=null,y=null,b=()=>ON(s),x=e=>{e.key===`Escape`&&ON(s)},S=new MutationObserver(e=>{for(let t of e){if(t.type!==`attributes`)continue;let e=t.attributeName;e&&e===`inert`&&d.removeAttribute(e)}});S.observe(d,{attributeOldValue:!0,attributes:!0});let C=!1,w=()=>{C&&(C=!1,d.removeEventListener(`click`,b),document.removeEventListener(`keydown`,x),d.style.pointerEvents=`none`,y?.focus(),y=null,Object.assign(document.body.style,v??``),document.body.style.overflow=v?.overflow??``)},ee=()=>{C||(C=!0,d.addEventListener(`click`,b),document.addEventListener(`keydown`,x),f.focus(),d.style.pointerEvents=`auto`,v=Object.assign({},document.body.style),document.body.style.overflow=`hidden`)},te=!1,ne=()=>{te||(te=!0,document.activeElement instanceof HTMLElement&&(y=document.activeElement),d.removeAttribute(`hidden`),d.removeAttribute(`aria-closed`),d.showModal())},re=()=>{if(te){te=!1,d.setAttribute(`hidden`,`true`),d.setAttribute(`aria-closed`,`true`),d.close();for(let e of d.parentNode?Array.from(d.parentNode.children):[])e!==d&&e.hasAttribute(`inert`)&&e.removeAttribute(`inert`)}};return{close(){c.close(),l=!1,h.send(`__internal`,{mode:`iframe`,referrer:DN(),type:`init`}),re(),w()},destroy(){c.close(),l=!1,w(),re(),c.destroy(),h.destroy(),d.remove(),S.disconnect(),g.removeEventListener(`change`,_)},open(){l||(l=!0,ne(),ee(),h.send(`__internal`,{mode:`iframe`,referrer:DN(),type:`init`}))},async secure(){let{trustedHosts:e}=await h.waitForReady(),n=(()=>{if(t)return!0;let e=window.location.protocol.startsWith(`https`);return e||sN.warnOnce(`Detected insecure protocol (HTTP).`,`\n\nThe Porto iframe is not supported on HTTP origins (${window.location.origin})`,`due to lack of WebAuthn support.`,`See https://porto.sh/sdk#secure-origins-https for more information.`),e})(),r=aN(),i=!!e?.includes(window.location.hostname),a=!!(r||i);return a||sN.warnOnce([`Warning: Browser does not support IntersectionObserver v2 or host "${u.hostname}" is not trusted by Porto.`,`This may result in the dialog falling back to a popup.`,``,`Add "${u.hostname}" to the trusted hosts list to enable iframe dialog: https://github.com/ithacaxyz/porto/edit/main/src/trusted-hosts.ts`].join(` +`)),{frame:a,host:i,protocol:n}},async syncRequests(e){let{methodPolicies:t}=await h.waitForReady(),n=await this.secure(),i=e?.every(e=>t?.find(t=>t.method===e.request.method)?.modes?.headless===!0),a=r(e.map(e=>e.request));if(!i&&(a||!n.protocol||!n.frame))c.syncRequests(e);else{let n=e.some(e=>EN(e.request,{methodPolicies:t,targetOrigin:u.origin}));!l&&n&&this.open(),h.send(`rpc-requests`,e)}}}},supportsHeadless:!0})}function CN(e={}){if(typeof window>`u`)return wN();let{type:t=`auto`,size:n=TN}=e;return xN({name:`popup`,setup(e){let{host:r,internal:i,themeController:a}=e,{store:o}=i,s=new URL(r),c=null,l=t===`page`||t===`auto`&&dN()?`page`:`popup`;function u(){c&&ON(o)}let d=(()=>{let e=setInterval(()=>{c?.closed&&ON(o)},100);return()=>clearInterval(e)})(),f;return a?._setup(null,!0),{close(){c&&=(c.close(),null)},destroy(){this.close(),window.removeEventListener(`focus`,u),f?.destroy(),d()},open(){if(l===`popup`){let e=(window.innerWidth-n.width)/2+window.screenX,t=window.screenY+100;c=window.open(AN(r),`_blank`,`width=${n.width},height=${n.height},left=${e},top=${t}`)}else c=window.open(AN(r),`_blank`);if(!c)throw Error(`Failed to open popup`);f=yN({from:vN(window,{targetOrigin:s.origin}),to:vN(c,{targetOrigin:s.origin}),waitForReady:!0}),a?._setup(f,!1),f.send(`__internal`,{mode:l===`page`?`page`:`popup`,referrer:DN(),theme:a?.getTheme()??e.theme,type:`init`}),f.on(`rpc-response`,e=>kN(o,e)),window.removeEventListener(`focus`,u),window.addEventListener(`focus`,u)},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(e){e.some(e=>EN(e.request))&&((!c||c.closed)&&this.open(),c?.focus()),f?.send(`rpc-requests`,e)}}},supportsHeadless:!1})}function wN(){return xN({name:`noop`,setup(){return{close(){},destroy(){},open(){},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(){}}},supportsHeadless:!0})}const TN={height:282,width:360};function EN(e,t={}){let{methodPolicies:n,targetOrigin:r}=t,i=n?.find(t=>t.method===e.method);return i&&i.modes?.headless?!!(typeof i.modes.headless==`object`&&i.modes.headless.sameOrigin&&r!==window.location.origin):!0}function DN(){return{icon:(()=>{let e=document.querySelector(`link[rel="icon"][media="(prefers-color-scheme: dark)"]`)?.href,t=document.querySelector(`link[rel="icon"][media="(prefers-color-scheme: light)"]`)?.href??document.querySelector(`link[rel="icon"]`)?.href;return e&&t&&e!==t?{dark:e,light:t}:window.matchMedia(`(prefers-color-scheme: dark)`).matches?e:t})(),title:document.title}}function ON(e){e.setState(e=>({...e,requestQueue:e.requestQueue.map(e=>({account:e.account,error:new HM,request:e.request,status:`error`}))}))}function kN(e,t){e.setState(e=>({...e,requestQueue:e.requestQueue.map(e=>e.request.id===t.id?t.error?{account:e.account,error:t.error,request:e.request,status:`error`}:{account:e.account,request:e.request,result:t.result,status:`success`}:e)}))}function AN(e){let t=new URL(e),n=new URLSearchParams(window.location.search);for(let[e,r]of n.entries())e.startsWith(`porto.`)&&t.searchParams.set(e.slice(6),r);return t.toString()}function jN(e){let t=new CustomEvent(`eip6963:announceProvider`,{detail:Object.freeze(e)});window.dispatchEvent(t);let n=()=>window.dispatchEvent(t);return window.addEventListener(`eip6963:requestProvider`,n),()=>window.removeEventListener(`eip6963:requestProvider`,n)}Object.freeze({status:`aborted`});function z(e,t,n){function r(n,r){var i;for(let a in Object.defineProperty(n,`_zod`,{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,r),o.prototype)a in n||Object.defineProperty(n,a,{value:o.prototype[a].bind(n)});n._zod.constr=o,n._zod.def=r}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var MN=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}};const NN={};function PN(e){return e&&Object.assign(NN,e),NN}function FN(e,t){return typeof t==`bigint`?t.toString():t}function IN(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function LN(e){return e==null}function RN(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}var zN=Symbol(`evaluating`);function BN(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==zN)return r===void 0&&(r=zN,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function VN(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function HN(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}const UN=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function WN(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function GN(e){if(WN(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(WN(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}const KN=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]);function qN(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function JN(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function YN(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function XN(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}-Number.MAX_VALUE,Number.MAX_VALUE;function ZN(e,t){let n=e._zod.def,r=HN(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return VN(this,`shape`,e),e},checks:[]});return JN(e,r)}function QN(e,t){let n=e._zod.def,r=HN(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return VN(this,`shape`,r),r},checks:[]});return JN(e,r)}function $N(e,t,n){let r=HN(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return VN(this,`shape`,i),i},checks:[]});return JN(t,r)}function eP(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function nP(e){return typeof e==`string`?e:e?.message}function rP(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=nP(e.inst?._zod.def?.error?.(e))??nP(t?.error?.(e))??nP(n.customError?.(e))??nP(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function iP(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}var aP=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,FN,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})};const oP=z(`$ZodError`,aP),sP=z(`$ZodError`,aP,{Parent:Error}),cP=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new MN;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>rP(e,a,PN())));throw UN(t,i?.callee),t}return o.value},lP=cP(sP),uP=(e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>rP(e,a,PN())));throw UN(t,i?.callee),t}return o.value})(sP),dP=(e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new MN;return a.issues.length?{success:!1,error:new(e??oP)(a.issues.map(e=>rP(e,i,PN())))}:{success:!0,data:a.value}})(sP),fP=(e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>rP(e,i,PN())))}:{success:!0,data:a.value}})(sP),pP=(e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return cP(e)(t,n,i)})(sP),mP=(e=>(t,n,r)=>cP(e)(t,n,r))(sP),hP=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},gP=/^-?\d+n?$/,_P=/^-?\d+(?:\.\d+)?/,vP=/^(?:true|false)$/i;var yP=/^null$/i,bP=/^undefined$/i;const xP=z(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])});var SP={number:`number`,bigint:`bigint`,object:`date`};const CP=z(`$ZodCheckGreaterThan`,(e,t)=>{xP.init(e,t);let n=SP[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),wP=z(`$ZodCheckMinLength`,(e,t)=>{var n;xP.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!LN(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=iP(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),TP=z(`$ZodCheckStringFormat`,(e,t)=>{var n,r;xP.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),EP=z(`$ZodCheckRegex`,(e,t)=>{TP.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),DP={major:4,minor:1,patch:12},OP=z(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=DP;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=eP(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new MN;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=eP(e,t))});else{if(e.issues.length===t)continue;r||=eP(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(eP(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new MN;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new MN;return o.then(e=>t(e,r,a))}return t(o,r,a)}}e[`~standard`]={validate:t=>{try{let n=dP(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return fP(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),kP=z(`$ZodString`,(e,t)=>{OP.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??hP(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),AP=z(`$ZodNumber`,(e,t)=>{OP.init(e,t),e._zod.pattern=e._zod.bag.pattern??_P,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),jP=z(`$ZodBoolean`,(e,t)=>{OP.init(e,t),e._zod.pattern=vP,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),MP=z(`$ZodBigInt`,(e,t)=>{OP.init(e,t),e._zod.pattern=gP,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value==`bigint`||n.issues.push({expected:`bigint`,code:`invalid_type`,input:n.value,inst:e}),n}}),NP=z(`$ZodUndefined`,(e,t)=>{OP.init(e,t),e._zod.pattern=bP,e._zod.values=new Set([void 0]),e._zod.optin=`optional`,e._zod.optout=`optional`,e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`undefined`,code:`invalid_type`,input:r,inst:e}),t}}),PP=z(`$ZodNull`,(e,t)=>{OP.init(e,t),e._zod.pattern=yP,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),FP=z(`$ZodAny`,(e,t)=>{OP.init(e,t),e._zod.parse=e=>e}),IP=z(`$ZodUnknown`,(e,t)=>{OP.init(e,t),e._zod.parse=e=>e}),LP=z(`$ZodDate`,(e,t)=>{OP.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||n.issues.push({expected:`date`,code:`invalid_type`,input:i,...a?{received:`Invalid Date`}:{},inst:e}),n}});function RP(e,t,n){e.issues.length&&t.issues.push(...tP(n,e.issues)),t.value[n]=e.value}const zP=z(`$ZodArray`,(e,t)=>{OP.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;eRP(t,n,e))):RP(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function BP(e,t,n,r){e.issues.length&&t.issues.push(...tP(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function VP(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=XN(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function HP(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i of Object.keys(t)){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>BP(e,n,i,t))):BP(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const UP=z(`$ZodObject`,(e,t)=>{if(OP.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=IN(()=>VP(t));BN(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=WN,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>BP(n,t,e,s))):BP(n,t,e,s)}return i?HP(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}});function WP(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!eP(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>rP(e,r,PN())))}),t)}const GP=z(`$ZodUnion`,(e,t)=>{OP.init(e,t),BN(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),BN(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),BN(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),BN(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>RN(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>WP(t,i,e,a)):WP(s,i,e,a)}}),KP=z(`$ZodDiscriminatedUnion`,(e,t)=>{GP.init(e,t);let n=e._zod.parse;BN(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=IN(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!WN(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),qP=z(`$ZodTuple`,(e,t)=>{OP.init(e,t);let n=t.items,r=n.length-[...n].reverse().findIndex(e=>e._zod.optin!==`optional`);e._zod.parse=(i,a)=>{let o=i.value;if(!Array.isArray(o))return i.issues.push({input:o,inst:e,expected:`tuple`,code:`invalid_type`}),i;i.value=[];let s=[];if(!t.rest){let t=o.length>n.length,a=o.length=o.length&&c>=r)continue;let t=e._zod.run({value:o[c],issues:[]},a);t instanceof Promise?s.push(t.then(e=>JP(e,i,c))):JP(t,i,c)}if(t.rest){let e=o.slice(n.length);for(let n of e){c++;let e=t.rest._zod.run({value:n,issues:[]},a);e instanceof Promise?s.push(e.then(e=>JP(e,i,c))):JP(e,i,c)}}return s.length?Promise.all(s).then(()=>i):i}});function JP(e,t,n){e.issues.length&&t.issues.push(...tP(n,e.issues)),t.value[n]=e.value}const YP=z(`$ZodRecord`,(e,t)=>{OP.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GN(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...tP(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...tP(e,o.issues)),n.value[e]=o.value)}let s;for(let e in i)o.has(e)||(s??=[],s.push(e));s&&s.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:s})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>rP(e,r,PN())),input:o,path:[o],inst:e}),n.value[s.value]=s.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...tP(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...tP(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),XP=z(`$ZodLiteral`,(e,t)=>{if(OP.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);e._zod.values=new Set(t.values),e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?qN(e):e?qN(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:`invalid_value`,values:t.values,input:i,inst:e}),n}});function ZP(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const QP=z(`$ZodOptional`,(e,t)=>{OP.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,BN(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),BN(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${RN(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ZP(t,e.value)):ZP(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),$P=z(`$ZodNullable`,(e,t)=>{OP.init(e,t),BN(e._zod,`optin`,()=>t.innerType._zod.optin),BN(e._zod,`optout`,()=>t.innerType._zod.optout),BN(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${RN(e.source)}|null)$`):void 0}),BN(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),eF=z(`$ZodPipe`,(e,t)=>{OP.init(e,t),BN(e._zod,`values`,()=>t.in._zod.values),BN(e._zod,`optin`,()=>t.in._zod.optin),BN(e._zod,`optout`,()=>t.out._zod.optout),BN(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>tF(e,t.in,n)):tF(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>tF(e,t.out,n)):tF(r,t.out,n)}});function tF(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const nF=z(`$ZodCodec`,(e,t)=>{OP.init(e,t),BN(e._zod,`values`,()=>t.in._zod.values),BN(e._zod,`optin`,()=>t.in._zod.optin),BN(e._zod,`optout`,()=>t.out._zod.optout),BN(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if((n.direction||`forward`)===`forward`){let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>rF(e,t,n)):rF(r,t,n)}else{let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>rF(e,t,n)):rF(r,t,n)}}});function rF(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||`forward`)===`forward`){let r=t.transform(e.value,e);return r instanceof Promise?r.then(r=>iF(e,r,t.out,n)):iF(e,r,t.out,n)}else{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(r=>iF(e,r,t.in,n)):iF(e,r,t.in,n)}}function iF(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const aF=z(`$ZodReadonly`,(e,t)=>{OP.init(e,t),BN(e._zod,`propValues`,()=>t.innerType._zod.propValues),BN(e._zod,`values`,()=>t.innerType._zod.values),BN(e._zod,`optin`,()=>t.innerType._zod.optin),BN(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(oF):oF(r)}});function oF(e){return e.value=Object.freeze(e.value),e}const sF=z(`$ZodTemplateLiteral`,(e,t)=>{OP.init(e,t);let n=[];for(let e of t.parts)if(typeof e==`object`&&e){if(!e._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...e._zod.traits].shift()}`);let t=e._zod.pattern instanceof RegExp?e._zod.pattern.source:e._zod.pattern;if(!t)throw Error(`Invalid template literal part: ${e._zod.traits}`);let r=t.startsWith(`^`)?1:0,i=t.endsWith(`$`)?t.length-1:t.length;n.push(t.slice(r,i))}else if(e===null||KN.has(typeof e))n.push(qN(`${e}`));else throw Error(`Invalid template literal part: ${e}`);e._zod.pattern=RegExp(`^${n.join(``)}$`),e._zod.parse=(n,r)=>typeof n.value==`string`?(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:`invalid_format`,format:t.format??`template_literal`,pattern:e._zod.pattern.source}),n):(n.issues.push({input:n.value,inst:e,expected:`template_literal`,code:`invalid_type`}),n)});function cF(e,t){return new e({type:`string`,...YN(t)})}function lF(e,t){return new e({type:`number`,checks:[],...YN(t)})}function uF(e,t){return new e({type:`boolean`,...YN(t)})}function dF(e,t){return new e({type:`bigint`,...YN(t)})}function fF(e,t){return new e({type:`undefined`,...YN(t)})}function pF(e,t){return new e({type:`null`,...YN(t)})}function mF(e){return new e({type:`any`})}function hF(e){return new e({type:`unknown`})}function gF(e,t){return new e({type:`date`,...YN(t)})}function _F(e,t){return new CP({check:`greater_than`,...YN(t),value:e,inclusive:!0})}function vF(e,t){return new wP({check:`min_length`,...YN(t),minimum:e})}function yF(e,t){return new EP({check:`string_format`,format:`regex`,...YN(t),pattern:e})}const bF=z(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);OP.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>lP(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>dP(e,t,n),e.parseAsync=async(t,n)=>uP(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>fP(e,t,n),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),e.clone=(t,n)=>JN(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e))}),xF=z(`ZodMiniString`,(e,t)=>{kP.init(e,t),bF.init(e,t)});function B(e){return cF(xF,e)}const SF=z(`ZodMiniNumber`,(e,t)=>{AP.init(e,t),bF.init(e,t)});function V(e){return lF(SF,e)}const CF=z(`ZodMiniBoolean`,(e,t)=>{jP.init(e,t),bF.init(e,t)});function wF(e){return uF(CF,e)}const TF=z(`ZodMiniBigInt`,(e,t)=>{MP.init(e,t),bF.init(e,t)});function EF(e){return dF(TF,e)}const DF=z(`ZodMiniUndefined`,(e,t)=>{NP.init(e,t),bF.init(e,t)});function OF(e){return fF(DF,e)}const kF=z(`ZodMiniNull`,(e,t)=>{PP.init(e,t),bF.init(e,t)});function AF(e){return pF(kF,e)}const jF=z(`ZodMiniAny`,(e,t)=>{FP.init(e,t),bF.init(e,t)});function MF(){return mF(jF)}const NF=z(`ZodMiniUnknown`,(e,t)=>{IP.init(e,t),bF.init(e,t)});function PF(){return hF(NF)}const FF=z(`ZodMiniDate`,(e,t)=>{LP.init(e,t),bF.init(e,t)});function IF(e){return gF(FF,e)}const LF=z(`ZodMiniArray`,(e,t)=>{zP.init(e,t),bF.init(e,t)});function H(e,t){return new LF({type:`array`,element:e,...YN(t)})}const RF=z(`ZodMiniObject`,(e,t)=>{UP.init(e,t),bF.init(e,t),BN(e,`shape`,()=>t.shape)});function U(e,t){let n={type:`object`,shape:e??{},...YN(t)};return new RF(n)}function zF(e,t){return ZN(e,t)}function BF(e,t){return QN(e,t)}function VF(e,t){return $N(YF,e,t)}const HF=z(`ZodMiniUnion`,(e,t)=>{GP.init(e,t),bF.init(e,t)});function W(e,t){return new HF({type:`union`,options:e,...YN(t)})}const UF=z(`ZodMiniDiscriminatedUnion`,(e,t)=>{KP.init(e,t),bF.init(e,t)});function WF(e,t,n){return new UF({type:`union`,options:t,discriminator:e,...YN(n)})}const GF=z(`ZodMiniTuple`,(e,t)=>{qP.init(e,t),bF.init(e,t)});function G(e,t,n){let r=t instanceof OP;return new GF({type:`tuple`,items:e,rest:r?t:null,...YN(r?n:t)})}const KF=z(`ZodMiniRecord`,(e,t)=>{YP.init(e,t),bF.init(e,t)});function qF(e,t,n){return new KF({type:`record`,keyType:e,valueType:t,...YN(n)})}const JF=z(`ZodMiniLiteral`,(e,t)=>{XP.init(e,t),bF.init(e,t)});function K(e,t){return new JF({type:`literal`,values:Array.isArray(e)?e:[e],...YN(t)})}const YF=z(`ZodMiniOptional`,(e,t)=>{QP.init(e,t),bF.init(e,t)});function q(e){return new YF({type:`optional`,innerType:e})}const XF=z(`ZodMiniNullable`,(e,t)=>{$P.init(e,t),bF.init(e,t)});function ZF(e){return new XF({type:`nullable`,innerType:e})}function QF(e){return q(ZF(e))}const $F=z(`ZodMiniPipe`,(e,t)=>{eF.init(e,t),bF.init(e,t)}),eI=z(`ZodMiniCodec`,(e,t)=>{$F.init(e,t),nF.init(e,t)});function tI(e,t,n){return new eI({type:`pipe`,in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const nI=z(`ZodMiniReadonly`,(e,t)=>{aF.init(e,t),bF.init(e,t)});function J(e){return new nI({type:`readonly`,innerType:e})}const rI=z(`ZodMiniTemplateLiteral`,(e,t)=>{sF.init(e,t),bF.init(e,t)});function iI(e,t){return new rI({type:`template_literal`,parts:e,...YN(t)})}Lf(),Jd(),op(),pf();function aI(e){let{domain:t,message:n,primaryType:r,types:i}=e,a=(e,t)=>{for(let n of e){let{name:e,type:r}=n,o=t[e],s=r.match(fg);if(s&&(typeof o==`number`||typeof o==`bigint`)){let[,e,t]=s;I(o,{signed:e===`int`,size:Number.parseInt(t??``,10)/8})}if(r===`address`&&typeof o==`string`&&!og(o))throw new sg({address:o,cause:new cg});let c=r.match(dg);if(c){let[,e]=c;if(e&&qf(o)!==Number.parseInt(e,10))throw new fI({expectedSize:Number.parseInt(e,10),givenSize:qf(o)})}let l=i[r];l&&(bI(r),a(l,o))}};if(i.EIP712Domain&&t){if(typeof t!=`object`)throw new pI({domain:t});a(i.EIP712Domain,t)}if(r!==`EIP712Domain`)if(i[r])a(i[r],n);else throw new mI({primaryType:r,types:i})}function oI(e){let{domain:t={},message:n,primaryType:r}=e,i={EIP712Domain:cI(t),...e.types};aI({domain:t,message:n,primaryType:r,types:i});let a=[`0x19`,`0x01`];return t&&a.push(uI({domain:t,types:i})),r!==`EIP712Domain`&&a.push(dI({data:n,primaryType:r,types:i})),zf(...a)}function sI(e){let{primaryType:t,types:n}=e,r=``,i=yI({primaryType:t,types:n});i.delete(t);let a=[t,...Array.from(i).sort()];for(let e of a)r+=`${e}(${(n[e]??[]).map(({name:e,type:t})=>`${t} ${e}`).join(`,`)})`;return r}function cI(e){return[typeof e?.name==`string`&&{name:`name`,type:`string`},e?.version&&{name:`version`,type:`string`},(typeof e?.chainId==`number`||typeof e?.chainId==`bigint`)&&{name:`chainId`,type:`uint256`},e?.verifyingContract&&{name:`verifyingContract`,type:`address`},e?.salt&&{name:`salt`,type:`bytes32`}].filter(Boolean)}function lI(e){return Hh(oI(e))}function uI(e){let{domain:t,types:n}=e;return dI({data:t,primaryType:`EIP712Domain`,types:{...n,EIP712Domain:n?.EIP712Domain||cI(t)}})}function dI(e){let{data:t,primaryType:n,types:r}=e,i=gI({data:t,primaryType:n,types:r});return Hh(i)}var fI=class extends P{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TypedData.BytesSizeMismatchError`})}},pI=class extends P{constructor({domain:e}){super(`Invalid domain "${df(e)}".`,{metaMessages:[`Must be a valid EIP-712 domain.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TypedData.InvalidDomainError`})}},mI=class extends P{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{metaMessages:["Check that the primary type is a key in `types`."]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TypedData.InvalidPrimaryTypeError`})}},hI=class extends P{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:[`Struct type must not be a Solidity type.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TypedData.InvalidStructTypeError`})}};function gI(e){let{data:t,primaryType:n,types:r}=e,i=[{type:`bytes32`}],a=[_I({primaryType:n,types:r})];for(let e of r[n]??[]){let[n,o]=vI({types:r,name:e.name,type:e.type,value:t[e.name]});i.push(n),a.push(o)}return Hg(i,a)}function _I(e){let{primaryType:t,types:n}=e,r=Uf(sI({primaryType:t,types:n}));return Hh(r)}function vI(e){let{types:t,name:n,type:r,value:i}=e;if(t[r]!==void 0)return[{type:`bytes32`},Hh(gI({data:i,primaryType:r,types:t}))];if(r===`bytes`)return i=`0x${(i.length%2?`0`:``)+i.slice(2)}`,[{type:`bytes32`},Hh(i,{as:`Hex`})];if(r===`string`)return[{type:`bytes32`},Hh(vf(i),{as:`Hex`})];if(r.lastIndexOf(`]`)===r.length-1){let e=r.slice(0,r.lastIndexOf(`[`)),a=i.map(r=>vI({name:n,type:e,types:t,value:r}));return[{type:`bytes32`},Hh(Hg(a.map(([e])=>e),a.map(([,e])=>e)))]}return[{type:r},i]}function yI(e,t=new Set){let{primaryType:n,types:r}=e,i=n.match(/^\w*/u)?.[0];if(t.has(i)||r[i]===void 0)return t;t.add(i);for(let e of r[i])yI({primaryType:e.type,types:r},t);return t}function bI(e){if(e===`address`||e===`bool`||e===`string`||e.startsWith(`bytes`)||e.startsWith(`uint`)||e.startsWith(`int`))throw new hI({type:e})}pi(),Ci();function xI(e){if(typeof e==`string`){if(!bi(e,{strict:!1}))throw new fi({address:e});return{address:e,type:`json-rpc`}}if(!bi(e.address,{strict:!1}))throw new fi({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:`custom`,type:`local`}}Is(),Sl(),Hc();var SI=Ac(BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`)),CI=SI.create(BigInt(`-3`)),wI=BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`);const TI=xl({a:CI,b:wI,Fp:SI,n:BigInt(`0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551`),Gx:BigInt(`0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296`),Gy:BigInt(`0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5`),h:BigInt(1),lowS:!1},Ns);var EI=Ac(BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff`)),DI=EI.create(BigInt(`-3`)),OI=BigInt(`0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef`);xl({a:DI,b:OI,Fp:EI,n:BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973`),Gx:BigInt(`0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7`),Gy:BigInt(`0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f`),h:BigInt(1),lowS:!1},Fs);var kI=Ac(BigInt(`0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`)),AI=kI.create(BigInt(`-3`)),jI=BigInt(`0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00`);xl({a:AI,b:jI,Fp:kI,n:BigInt(`0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409`),Gx:BigInt(`0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66`),Gy:BigInt(`0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650`),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Ps);const MI=TI,NI=TI;Lf(),op();function PI(e){let{privateKey:t}=e,n=NI.ProjectivePoint.fromPrivateKey(typeof t==`string`?t.slice(2):Hf(t).slice(2));return Gh(n)}function FI(e={}){let{as:t=`Hex`}=e,n=NI.utils.randomPrivateKey();return t===`Hex`?Hf(n):n}function II(e){let{extraEntropy:t=!1,hash:n,payload:r,privateKey:i}=e,{r:a,s:o,recovery:s}=NI.sign(r instanceof Uint8Array?r:_f(r),i instanceof Uint8Array?i:_f(i),{extraEntropy:typeof t==`boolean`?t:Bf(t).slice(2),lowS:!0,...n?{prehash:!0}:{}});return{r:a,s:o,yParity:s}}Jd();function LI(e,t=0){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new RI({value:e});let[n=``,r=`0`]=e.split(`.`),i=n.startsWith(`-`);if(i&&(n=n.slice(1)),r=r.replace(/(0+)$/,``),t===0)Math.round(Number(`.${r}`))===1&&(n=`${BigInt(n)+1n}`),r=``;else if(r.length>t){let[e,i,a]=[r.slice(0,t-1),r.slice(t-1,t),r.slice(t)],o=Math.round(Number(`${i}.${a}`));r=o>9?`${BigInt(e)+BigInt(1)}0`.padStart(e.length+1,`0`):`${e}${o}`,r.length>t&&(r=r.slice(1),n=`${BigInt(n)+1n}`),r=r.slice(0,t)}else r=r.padEnd(t,`0`);return BigInt(`${i?`-`:``}${n}${r}`)}var RI=class extends P{constructor({value:e}){super(`Value \`${e}\` is not a valid decimal number.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Value.InvalidDecimalNumberError`})}};Lf();var zI=new TextEncoder,BI=new TextDecoder,VI=Object.fromEntries(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[t,e.charCodeAt(0)])),HI={...Object.fromEntries(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[e.charCodeAt(0),t])),61:0,45:62,95:63};function UI(e,t={}){let{pad:n=!0,url:r=!1}=t,i=new Uint8Array(Math.ceil(e.length/3)*4);for(let t=0,n=0;n>18],i[t+1]=VI[r>>12&63],i[t+2]=VI[r>>6&63],i[t+3]=VI[r&63]}let a=e.length%3,o=Math.floor(e.length/3)*4+(a&&a+1),s=BI.decode(new Uint8Array(i.buffer,0,o));return n&&a===1&&(s+=`==`),n&&a===2&&(s+=`=`),r&&(s=s.replaceAll(`+`,`-`).replaceAll(`/`,`_`)),s}function WI(e,t={}){return UI(_f(e),t)}function GI(e){let t=e.replace(/=+$/,``),n=t.length,r=new Uint8Array(n+3);zI.encodeInto(t+`===`,r);for(let e=0,n=0;e>16,r[n+1]=t>>8&255,r[n+2]=t&255}let i=(n>>2)*3+(n%4&&n%4-1);return new Uint8Array(r.buffer,0,i)}op();function KI(e){let t=e[4]===0?5:4,n=t+32,r=e[n+2]===0?n+3:n+2,i=BigInt(Hf(e.slice(t,n))),a=BigInt(Hf(e.slice(r)));return{r:i,s:a>MI.CURVE.n/2n?MI.CURVE.n-a:a}}async function qI(e){try{let t=e.getPublicKey();if(!t)throw new nL;let n=new Uint8Array(t),r=await crypto.subtle.importKey(`spki`,new Uint8Array(n),{name:`ECDSA`,namedCurve:`P-256`,hash:`SHA-256`},!0,[`verify`]),i=new Uint8Array(await crypto.subtle.exportKey(`raw`,r));return Gh(i)}catch(t){if(t.message!==`Permission denied to access object`)throw t;let n=new Uint8Array(e.attestationObject),r=e=>{let t=new Uint8Array([e,88,32]);for(let e=0;en[e+r]===t))return e+t.length;throw new nL},i=r(33),a=r(34);return Gh(new Uint8Array([4,...n.slice(i,i+32),...n.slice(a,a+32)]))}}Lf(),Jd(),op();const JI=Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]);async function YI(e){let{createFn:t=window.navigator.credentials.create.bind(window.navigator.credentials),...n}=e,r=QI(n);try{let e=await t(r);if(!e)throw new nL;let n=e.response,i=await qI(n);return{id:e.id,publicKey:i,raw:e}}catch(e){throw new nL({cause:e})}}function XI(e={}){let{flag:t=5,rpId:n=window.location.hostname,signCount:r=0}=e,i=Uh(Uf(n)),a=I(t,{size:1}),o=I(r,{size:4});return zf(i,a,o)}function ZI(e){let{challenge:t,crossOrigin:n=!1,extraClientData:r,origin:i=window.location.origin}=e;return JSON.stringify({type:`webauthn.get`,challenge:WI(t,{url:!0,pad:!1}),origin:i,crossOrigin:n,...r})}function QI(e){let{attestation:t=`none`,authenticatorSelection:n={residentKey:`preferred`,requireResidentKey:!1,userVerification:`required`},challenge:r=JI,excludeCredentialIds:i,extensions:a,name:o,rp:s={id:window.location.hostname,name:window.document.title},user:c}=e,l=c?.name??o;return{publicKey:{attestation:t,authenticatorSelection:n,challenge:r,...i?{excludeCredentials:i?.map(e=>({id:GI(e),type:`public-key`}))}:{},pubKeyCredParams:[{type:`public-key`,alg:-7}],...a&&{extensions:a},rp:s,user:{id:c?.id??Hh(vf(l),{as:`Bytes`}),name:l,displayName:c?.displayName??l}}}}function $I(e){let{credentialId:t,challenge:n,extensions:r,rpId:i=window.location.hostname,userVerification:a=`required`}=e;return{publicKey:{...t?{allowCredentials:Array.isArray(t)?t.map(e=>({id:GI(e),type:`public-key`})):[{id:GI(t),type:`public-key`}]}:{},challenge:_f(n),...r&&{extensions:r},rpId:i,userVerification:a}}}function eL(e){let{challenge:t,crossOrigin:n,extraClientData:r,flag:i,origin:a,rpId:o,signCount:s,userVerification:c=`required`}=e,l=XI({flag:i,rpId:o,signCount:s}),u=ZI({challenge:t,crossOrigin:n,extraClientData:r,origin:a}),d=Uh(Uf(u)),f=u.indexOf(`"challenge"`),p=u.indexOf(`"type"`),m={authenticatorData:l,clientDataJSON:u,challengeIndex:f,typeIndex:p,userVerificationRequired:c===`required`},h=zf(l,d);return{metadata:m,payload:h}}async function tL(e){let{getFn:t=window.navigator.credentials.get.bind(window.navigator.credentials),...n}=e,r=$I(n);try{let e=await t(r);if(!e)throw new rL;let n=e.response,i=String.fromCharCode(...new Uint8Array(n.clientDataJSON)),a=i.indexOf(`"challenge"`),o=i.indexOf(`"type"`),s=KI(new Uint8Array(n.signature));return{metadata:{authenticatorData:Hf(new Uint8Array(n.authenticatorData)),clientDataJSON:i,challengeIndex:a,typeIndex:o,userVerificationRequired:r.publicKey.userVerification===`required`},signature:s,raw:e}}catch(e){throw new rL({cause:e})}}var nL=class extends P{constructor({cause:e}={}){super(`Failed to create credential.`,{cause:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`WebAuthnP256.CredentialCreationFailedError`})}},rL=class extends P{constructor({cause:e}={}){super(`Failed to request credential.`,{cause:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`WebAuthnP256.CredentialRequestFailedError`})}};Lf();async function iL(e={}){let{extractable:t=!1}=e,n=await globalThis.crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},t,[`sign`,`verify`]),r=await globalThis.crypto.subtle.exportKey(`raw`,n.publicKey),i=Gh(new Uint8Array(r));return{privateKey:n.privateKey,publicKey:i}}async function aL(e){let{payload:t,privateKey:n}=e,r=await globalThis.crypto.subtle.sign({name:`ECDSA`,hash:`SHA-256`},n,hf(t)),i=gf(new Uint8Array(r)),a=Sf(xf(i,0,32)),o=Sf(xf(i,32,64));return o>MI.CURVE.n/2n&&(o=MI.CURVE.n-o),{r:a,s:o}}const oL=`0x32323232`;Lf(),op(),pf();const sL={p256:`p256`,secp256k1:`secp256k1`,webauthnp256:`webauthn-p256`},cL={admin:`admin`,normal:`session`},lL={0:`minute`,1:`hour`,2:`day`,3:`week`,4:`month`,5:`year`},uL={address:`secp256k1`,p256:`p256`,secp256k1:`secp256k1`,"webauthn-p256":`webauthnp256`},dL={admin:`admin`,session:`normal`},fL={address:2,p256:0,secp256k1:2,"webauthn-p256":1},pL={day:2,hour:1,minute:0,month:4,week:3,year:5};function mL(e={}){let t=FI();return yL({...e,privateKey:t})}async function hL(e){let{createFn:t,label:n,rpId:r,userId:i}=e,a=await YI({authenticatorSelection:{requireResidentKey:!0,residentKey:`required`,userVerification:`required`},createFn:t,extensions:{credProps:!0},rp:r?{id:r,name:r}:void 0,user:{displayName:n,id:new Uint8Array(i??vf(n)),name:n}});return xL({...e,credential:{id:a.id,publicKey:a.publicKey},id:i?wf(i):Jh(a.publicKey,{includePrefix:!1})})}function gL(e={}){let t=FI();return SL({...e,privateKey:t})}async function _L(e={}){let t=await iL();return CL({...e,keyPair:t})}function vL(e,t={}){let{chainId:n=e.chainId}=t,{expiry:r=0,id:i,prehash:a=!1,role:o=`admin`,type:s}=e,c=(()=>{let t=e.publicKey;return t===`0x`?t:s===`secp256k1`||s===`address`?qf(t)===20||Yf(Kf(t,0,12))===0n?Kf(t,-20):ig(qh(t)):t})();return{...e,chainId:n,expiry:r,hash:wL({publicKey:c,type:s}),id:(i??c).toLowerCase(),prehash:a,publicKey:c.toLowerCase(),role:o,type:s}}function yL(e){let{chainId:t,expiry:n,feeToken:r,permissions:i,privateKey:a,role:o}=e,s=Jh(PI({privateKey:a}),{includePrefix:!1});return vL({chainId:t,expiry:n,feeToken:r,permissions:i,privateKey(){return a},publicKey:s,role:o,type:`p256`})}function bL(e,t){let{chainId:n}=t,{publicKey:r}=e,i=qf(r)===20||Yf(Kf(r,0,12))===0n,a={};for(let t of e.permissions)t.type===`call`&&(a.calls??=[],a.calls.push({signature:t.selector,to:t.to===`0x3232323232323232323232323232323232323232`?void 0:t.to})),t.type===`spend`&&(a.spend??=[],a.spend.push({limit:t.limit,period:t.period,token:t.token}));return vL({chainId:n,expiry:e.expiry,permissions:a,publicKey:e.publicKey,role:cL[e.role],type:i?`address`:sL[e.type]})}function xL(e){let{credential:t,id:n,rpId:r}=e,i=Jh(t.publicKey,{includePrefix:!1});return vL({chainId:e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,id:n,permissions:e.permissions,privateKey:{credential:t,rpId:r},publicKey:i,role:e.role,type:`webauthn-p256`})}function SL(e){let{privateKey:t}=e,n=Jh(PI({privateKey:t}),{includePrefix:!1});return vL({chainId:e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,permissions:e.permissions,privateKey:{privateKey(){return t}},publicKey:n,role:e.role,type:`webauthn-p256`})}function CL(e){let{chainId:t,expiry:n,feeToken:r,keyPair:i,permissions:a,role:o}=e,{privateKey:s}=i,c=Jh(i.publicKey,{includePrefix:!1});return vL({chainId:t,expiry:n,feeToken:r,permissions:a,prehash:!0,privateKey:s,publicKey:c,role:o,type:`p256`})}function wL(e){let{type:t}=e,n=TL(e.publicKey);return Hh(Hg([{type:`uint8`},{type:`bytes32`}],[fL[t],Hh(n)]))}function TL(e){return qf(e)<32?Wf(e,32):e}async function EL(e,t){let{address:n,storage:r,webAuthn:i,wrap:a=!0}=t,{privateKey:o,publicKey:s,type:c}=e;if(!o)throw Error(`Key does not have a private key to sign with. + +Key: +`+df(e,null,2));let l=(()=>n?lI({domain:{verifyingContract:n},message:{digest:t.payload},primaryType:`ERC1271Sign`,types:{ERC1271Sign:[{name:`digest`,type:`bytes32`}]}}):t.payload)(),[u,d]=await(async()=>{if(c===`p256`){let{privateKey:t}=e;if(typeof t==`function`)return[d_(II({payload:l,privateKey:t()})),!1];if(t instanceof CryptoKey)return[d_(await aL({payload:l,privateKey:t})),!0]}if(c===`secp256k1`)return[d_(A_({payload:l,privateKey:o()})),!1];if(c===`webauthn-p256`){if(o.privateKey){let{payload:e,metadata:t}=eL({challenge:l,origin:`https://ithaca.xyz`,rpId:`ithaca.xyz`}),{r:n,s:r}=II({hash:!0,payload:e,privateKey:o.privateKey()});return[AL({metadata:t,signature:{r:n,s:r}}),!1]}let{credential:t,rpId:n}=o,a=`porto.webauthnVerified.${e.hash}`,s=Date.now(),c=!0;if(r){let e=await r.getItem(a);c=!e||s-e>6e5}let{signature:{r:u,s:d},raw:f,metadata:p}=await tL({challenge:l,credentialId:t.id,getFn:i?.getFn,rpId:n,userVerification:c?`required`:`preferred`}),m=f.response;if(!m?.userHandle)throw Error(`No user handle in response`,{cause:{response:m}});let h=wf(new Uint8Array(m.userHandle));if(e.id&&og(e.id)&&!ag(e.id,h))throw Error(`supplied webauthn key "${e.id}" does not match signature webauthn key "${h}"`,{cause:{id:h,key:e}});return c&&r&&await r.setItem(a,s),[AL({metadata:p,signature:{r:u,s:d}}),!1]}throw Error(`Key type "${c}" is not supported.\n\nKey:\n`+df(e,null,2))})();return a?jL(u,{keyType:c,prehash:d,publicKey:s}):u}function DL(e,t={}){let{expiry:n=0,prehash:r=!1,publicKey:i,role:a=`admin`,type:o}=e,{feeTokens:s,orchestrator:c}=t,l=Object.entries(OL(e,{feeTokens:s})).map(([e,t])=>{if(e===`calls`)return t.map(({signature:e,to:t})=>({selector:(()=>e?Zf(e)?e:Z_(e):oL)(),to:t??`0x3232323232323232323232323232323232323232`,type:`call`}));if(e!==`feeToken`){if(e===`spend`)return t.map(({limit:e,period:t,token:n})=>({limit:e,period:t,token:n,type:`spend`}));throw Error(`Invalid permission type "${e}".`)}}).flat().filter(Boolean);return e.role===`session`&&c&&l.push({selector:oL,to:c,type:`call`}),{expiry:n,permissions:l??[],prehash:r,publicKey:TL(i),role:dL[a],type:uL[o]}}function OL(e,t){let{permissions:n}=e,r=n?.calls?[...n.calls]:[],i=n?.spend?[...n.spend]:[],a=t.feeTokens?.filter(e=>e.feeToken);if(a&&a.length>0){let t=kL(e,{feeTokens:a});if(t){let e=-1,n=pL.year;for(let r=0;re.feeToken.symbol===t.symbol?!0:!e.feeToken.symbol||e.feeToken.symbol===`native`?t.address===Q_:!1);if(!r)return;let i=LI(e.feeToken.limit,r.decimals);return{...r,value:i}}function AL(e){let{metadata:t,signature:n}=e;return Hg(Wg([`struct WebAuthnAuth { bytes authenticatorData; string clientDataJSON; uint256 challengeIndex; uint256 typeIndex; bytes32 r; bytes32 s; }`,`WebAuthnAuth auth`]),[{authenticatorData:t.authenticatorData,challengeIndex:BigInt(t.challengeIndex),clientDataJSON:t.clientDataJSON,r:I(n.r,{size:32}),s:I(n.s,{size:32}),typeIndex:BigInt(t.typeIndex)}])}function jL(e,t){let{keyType:n,prehash:r=!1,publicKey:i}=t,a=wL({publicKey:i,type:n});return Ug([`bytes`,`bytes32`,`bool`],[e,a,r])}function ML(e){let t=typeof e==`string`?{address:e}:e,n=t.sign?`privateKey`:`porto`,{address:r,sign:i,signMessage:a,signTransaction:o,signTypedData:s,type:c}=xI({address:t.address,sign({hash:e}){if(n===`porto`)throw Error("`sign` not supported on porto accounts.");if(!t.sign)throw Error("`sign` not supported.");return t.sign({hash:e})},signMessage({message:e}){return this.sign({hash:Th(e)})},signTransaction(){throw Error("`signTransaction` not supported on porto accounts.")},signTypedData(e){return this.sign({hash:Nh(e)})}});return{address:r,keys:t.keys??void 0,sign:i,signMessage:a,signTransaction:o,signTypedData:s,source:n,type:c}}function NL(e,t={}){let{keys:n}=t,r=ig(E_({privateKey:e}));return ML({address:r,keys:n,async sign({hash:t}){return d_(A_({payload:t,privateKey:e}))},source:`privateKey`})}function PL(e,t={}){let{key:n,role:r}=t;if(n!==null){if(typeof n==`object`)return n;if(e.keys&&e.keys.length>0)return typeof n==`number`?e.keys[n]:e.keys.find(e=>e.privateKey&&(!r||e.role===r))}}async function FL(e,t){let{storage:n,replaySafe:r=!0,wrap:i=!0,webAuthn:a}=t,o=PL(e,t),s=(()=>r?lI({domain:{verifyingContract:e.address},message:{digest:t.payload},primaryType:`ERC1271Sign`,types:{ERC1271Sign:[{name:`digest`,type:`bytes32`}]}}):t.payload)(),c=(()=>o?({hash:e})=>EL(o,{address:null,payload:e,storage:n,webAuthn:a,wrap:i}):e.source===`privateKey`?e.sign:void 0)();if(!c)throw Error(`cannot find key to sign with.`);return await c({hash:s})}op();function IL(e,t={}){return H_(e,t)}function LL(e,t,n){if(t===`Error`)return zL;if(t===`Panic`)return BL;if(Zf(t,{strict:!1})){let e=Kf(t,0,4);if(e===`0x08c379a0`)return zL;if(e===`0x4e487b71`)return BL}let r=U_(e,t,n);if(r.type!==`error`)throw new J_({name:t,type:`error`});return r}function RL(e){return W_(e)}const zL=IL({inputs:[{name:`message`,type:`string`}],name:`Error`,type:`error`}),BL=IL({inputs:[{name:`reason`,type:`uint8`}],name:`Panic`,type:`error`});O();var VL=class extends D{constructor(){super(`Function is not recognized.`,{metaMessages:[`This could be due to any of the following:`,` - The contract does not have the function,`,` - The address is not a contract.`],name:`FunctionSelectorNotRecognizedError`})}};za();function HL(e,t){let n=e.walk(e=>`data`in e);if(!n?.data)return e;if(n.data===RL(IL(`error FnSelectorNotRecognized()`)))return new VL;let r=null;for(let e of t.calls){let t=e;if(t.abi)try{if(!Ra({abi:t.abi,data:n.data}))continue;r=t}catch{}}return r?cs(n,{abi:r.abi,address:r.to,args:r.args,functionName:r.functionName}):e}Jd(),op();const Y=()=>iI([`0x`,B()],{message:`Needs string in format ^0x[A-Fa-f0-9]{40}$.`}),X=()=>iI([`0x`,B()],{message:`Needs string in format ^0x[A-Fa-f0-9]+$.`}),Z=()=>tI(X(),V(),{decode:e=>Xf(e),encode:e=>I(e)}),Q=()=>tI(X(),EF({message:`Required bigint`}),{decode:e=>Yf(e),encode:e=>I(e)});function UL(e){return W(e)}var WL=class extends P{constructor(){super(...arguments),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Schema.ValidationError`})}};function GL(e){let t=e,n=`Validation failed with ${t.issues.length} error${t.issues.length===1?``:`s`}:`;n+=` +`;for(let e of t.issues)e&&(n+=` +`,n+=KL(e));return new WL(n)}function KL(e,t=0){let n=qL(e.path),r=`- ${n?`${n}: `:``}`,i=` `.repeat(t+1),a=r;switch(e.code){case`invalid_type`:{let t=e.expected,n=e.input?JL(e):`undefined`;a+=`Expected ${t}. ${e.message===`Invalid input`?``:e.message}`,n!==`undefined`&&(a+=`but received ${n}`);break}case`too_big`:{let t=e.maximum,n=e.inclusive??!0;e.exact??!1?a+=`${e.origin} must be exactly ${t}`:a+=`${e.origin} must be ${n?`at most`:`less than`} ${t}`;break}case`too_small`:{let t=e.minimum,n=e.inclusive??!0;e.exact??!1?a+=`${e.origin} must be exactly ${t}`:a+=`${e.origin} must be ${n?`at least`:`greater than`} ${t}`;break}case`invalid_format`:switch(e.format){case`regex`:a+=`Must match pattern: ${e.pattern}`;break;case`starts_with`:a+=`Must start with "${e.prefix}"`;break;case`ends_with`:a+=`Must end with "${e.suffix}"`;break;case`includes`:a+=`Must include "${e.includes}"`;break;case`template_literal`:a+=`Must match pattern: ${e.pattern}`;break;default:a+=`Invalid ${e.format} format`}break;case`not_multiple_of`:a+=`Number must be a multiple of ${e.divisor}`;break;case`unrecognized_keys`:{let t=e.keys.map(e=>`"${e}"`).join(`, `);a+=`Unrecognized key${e.keys.length>1?`s`:``}: ${t}`;break}case`invalid_union`:{let n=e.errors&&e.errors.length>0;a+=`Invalid union value.`,n&&e.errors.forEach(e=>{e.length>0&&e.forEach(e=>{a+=` +`,a+=i,a+=KL(e,t+1)})});break}case`invalid_key`:a+=`Invalid ${e.origin} key`,e.issues&&e.issues.length>0&&e.issues.forEach(e=>{a+=` +`,a+=i,a+=KL(e,t+1)});break;case`invalid_element`:a+=`Invalid ${e.origin} element at key "${e.key}"`,e.issues&&e.issues.length>0&&e.issues.forEach(e=>{a+=` +`,a+=i,a+=KL(e,t+1)});break;case`invalid_value`:{let t=e.values.map(e=>JSON.stringify(e)).join(`, `);e.values.length>1?a+=`Expected one of: ${t}`:a+=`Expected ${t}`;break}case`custom`:a+=e.message||`Custom validation failed`;break;default:a+=e.message||`Validation failed`}return a}function qL(e){return e.length===0?``:"at `"+e.map((e,t)=>typeof e==`number`?`[${e}]`:typeof e==`symbol`?`[${e.toString()}]`:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)&&t>0?`.${e}`:t===0&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`["${e}"]`).join(``)+"`"}function JL(e){let t=e.input;if(t===void 0)return`undefined`;if(t===null)return`null`;let n=typeof t;return n===`object`?Array.isArray(t)?`array`:t instanceof Date?`date`:t instanceof Map?`map`:t instanceof Set?`set`:`object`:n}const YL=U({selector:X(),to:Y(),type:K(`call`)}),XL=U({limit:Q(),period:W([K(`minute`),K(`hour`),K(`day`),K(`week`),K(`month`),K(`year`)]),token:q(W([Y(),AF()])),type:K(`spend`)}),ZL=W([YL,XL]),QL=U({expiry:Z(),prehash:q(wF()),publicKey:X(),role:W([K(`admin`),K(`normal`)]),type:W([K(`p256`),K(`secp256k1`),K(`webauthnp256`)])}),$L=U({...QL.shape,permissions:J(H(ZL))});var eR;(function(e){e.AssetDiffAsset=W([U({address:q(W([Y(),AF()])),decimals:q(W([V(),AF()])),direction:W([K(`incoming`),K(`outgoing`)]),fiat:q(U({currency:B(),value:tI(B(),V(),{decode:e=>Number(e),encode:e=>String(e)})})),name:q(W([B(),AF()])),symbol:B(),type:K(`erc20`),value:Q()}),U({address:q(W([Y(),AF()])),direction:W([K(`incoming`),K(`outgoing`)]),fiat:q(U({currency:B(),value:tI(B(),V(),{decode:e=>Number(e),encode:e=>String(e)})})),name:q(W([B(),AF()])),symbol:B(),type:K(`erc721`),uri:B(),value:Q()}),U({address:AF(),decimals:q(W([V(),AF()])),direction:W([K(`incoming`),K(`outgoing`)]),fiat:q(U({currency:B(),value:tI(B(),V(),{decode:e=>Number(e),encode:e=>String(e)})})),symbol:B(),type:AF(),value:Q()})]),e.Response=qF(X(),J(H(J(G([Y(),J(H(e.AssetDiffAsset))])))))})(eR||={});var tR;(function(e){e.Request=J(H($L)),e.Response=J(H(U({...$L.shape,hash:X()})))})(tR||={});var nR;(function(e){e.Response=qF(X(),U({currency:B(),value:B()}))})(nR||={});var rR;(function(e){e.Request=U({feePayer:q(Y()),feeToken:q(Y()),nonce:q(Q())})})(rR||={});var iR;(function(e){e.Request=J(H(U({address:Y(),value:Q()})))})(iR||={});var aR;(function(e){e.Request=J(H(U({hash:X()}))),e.Response=J(H(U({hash:X()})))})(aR||={});const oR=U({eoa:Y(),executionData:X(),nonce:X(),signature:X()}),sR=U({...oR.shape,chainId:Z()}),cR=W([U({combinedGas:Q(),encodedFundTransfers:J(H(X())),encodedPreCalls:J(H(X())),eoa:Y(),executionData:X(),expiry:Q(),funder:Y(),funderSignature:X(),isMultichain:wF(),nonce:Q(),payer:Y(),paymentAmount:Q(),paymentMaxAmount:Q(),paymentRecipient:Y(),paymentSignature:X(),paymentToken:Y(),settler:Y(),settlerContext:X(),signature:X(),supportedAccountImplementation:Y()}),U({combinedGas:Q(),encodedFundTransfers:J(H(X())),encodedPreCalls:J(H(X())),eoa:Y(),executionData:X(),expiry:Q(),funder:Y(),funderSignature:X(),isMultichain:wF(),nonce:Q(),payer:Y(),paymentRecipient:Y(),paymentSignature:X(),paymentToken:Y(),prePaymentAmount:Q(),prePaymentMaxAmount:Q(),settler:Y(),settlerContext:X(),signature:X(),supportedAccountImplementation:Y(),totalPaymentAmount:Q(),totalPaymentMaxAmount:Q()})]);U({eoa:Y(),executionData:X(),nonce:Q()});const lR=U({address:W([Y(),AF()]),decimals:q(V()),deficit:Q(),fiat:q(U({currency:B(),value:B()})),name:q(B()),required:Q(),symbol:q(B())}),uR=U({additionalAuthorization:QF(U({address:Y(),chainId:Z(),nonce:Z(),r:X(),s:X(),yParity:Z()})),assetDeficits:q(H(lR)),authorizationAddress:q(W([Y(),AF()])),chainId:Z(),ethPrice:Q(),extraPayment:Q(),feeTokenDeficit:Q(),intent:cR,nativeFeeEstimate:U({maxFeePerGas:Q(),maxPriorityFeePerGas:Q()}),orchestrator:Y(),paymentTokenDecimals:V(),txGas:Q()}),dR=U({multiChainRoot:q(W([X(),AF()])),quotes:J(H(uR)).check(vF(1)),ttl:V()}),fR=U({...dR.shape,hash:X(),r:X(),s:X(),v:q(X()),yParity:q(X())}),pR=U({address:Y(),decimals:V(),feeToken:q(wF()),interop:q(wF()),nativeRate:q(Q()),symbol:B(),uid:B()}),mR=B().check(yF(/^[A-Z0-9]+$/));var hR=U({address:Y(),chainId:Z(),nonce:Z()}),gR=U({...hR.shape,r:X(),s:X(),yParity:Z()}),_R=U({data:q(X()),to:Y(),value:q(Q())}),vR;(function(e){e.Parameters=U({address:Y(),secret:B()}),e.Request=U({method:K(`account_getOnrampContactInfo`),params:J(G([e.Parameters]))}),e.Response=U({email:q(B()),phone:q(B()),phoneVerifiedAt:q(V())})})(vR||={});var yR;(function(e){e.Parameters=U({address:Y()}),e.Request=U({method:K(`account_onrampStatus`),params:J(G([e.Parameters]))}),e.Response=U({email:q(V()),phone:q(V())})})(yR||={});var bR;(function(e){e.Parameters=U({phone:B(),walletAddress:Y()}),e.Request=U({method:K(`account_resendVerifyPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(bR||={});var xR;(function(e){e.Parameters=U({email:B().check(yF(/^.*@.*$/)),walletAddress:Y()}),e.Request=U({method:K(`account_setEmail`),params:J(G([e.Parameters]))}),e.Response=AF()})(xR||={});var SR;(function(e){e.Parameters=U({phone:B(),walletAddress:Y()}),e.Request=U({method:K(`account_setPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(SR||={});var CR;(function(e){e.Parameters=U({chainId:Z(),email:B(),signature:X(),token:B(),walletAddress:Y()}),e.Request=U({method:K(`account_verifyEmail`),params:J(G([e.Parameters]))}),e.Response=AF()})(CR||={});var wR;(function(e){e.Parameters=U({code:B(),phone:B(),walletAddress:Y()}),e.Request=U({method:K(`account_verifyPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(wR||={});var TR;(function(e){e.Request=U({method:K(`health`),params:OF()}),e.Response=U({quoteSigner:Y(),status:B(),version:B()})})(TR||={});var ER;(function(e){e.Parameters=U({address:Y(),chainId:Z(),tokenAddress:Y(),value:Q()}),e.Request=U({method:K(`wallet_addFaucetFunds`),params:J(G([e.Parameters]))}),e.Response=U({message:q(B()),transactionHash:X()})})(ER||={});var DR;(function(e){e.Parameters=U({chainId:Z(),id:X()}),e.Request=U({method:K(`wallet_getAccounts`),params:J(G([e.Parameters]))}),e.Response=J(H(U({address:Y(),keys:tR.Response})))})(DR||={});var OR;(function(e){e.Parameters=U({address:Y()}),e.Request=U({method:K(`wallet_getAuthorization`),params:J(G([e.Parameters]))}),e.Response=U({authorization:gR,data:X(),to:Y()})})(OR||={});var kR;(function(e){e.Request=U({method:K(`wallet_getCapabilities`),params:q(G([J(H(V()))]))});let t=U({address:Y(),version:q(W([B(),AF()]))});e.Response=qF(X(),U({contracts:U({accountImplementation:t,accountProxy:t,legacyAccountImplementations:J(H(t)),legacyOrchestrators:J(H(W([U({orchestrator:t,simulator:t}),t]))),orchestrator:t,simulator:t}),fees:U({quoteConfig:U({constantRate:q(W([V(),AF()])),gas:q(U({intentBuffer:q(V()),txBuffer:q(V())})),rateTtl:V(),ttl:V()}),recipient:Y(),tokens:J(H(pR))})}))})(kR||={});var AR;(function(e){let t=W([K(`native`),K(`erc20`),K(`erc721`),B()]);e.Parameters=U({account:Y(),assetFilter:q(qF(X(),J(H(U({address:W([Y(),K(`native`)]),type:t}))))),assetTypeFilter:q(J(H(t))),chainFilter:q(J(H(Z())))}),e.Request=U({method:K(`wallet_getAssets`),params:J(G([e.Parameters]))}),e.Price=U({currency:B(),value:tI(B(),V(),{decode:e=>Number(e),encode:e=>String(e)})}),e.Response=qF(B(),J(H(UL([U({address:Y(),balance:Q(),metadata:ZF(U({decimals:V(),fiat:QF(e.Price),name:B(),symbol:B()})),type:K(`erc20`)}),U({address:ZF(K(`native`)),balance:Q(),metadata:ZF(U({decimals:V(),fiat:QF(e.Price),name:q(B()),symbol:q(B())})),type:K(`native`)})]))))})(AR||={});var jR;(function(e){e.Request=U({method:K(`wallet_getCallsStatus`),params:J(G([X()]))}),e.Response=U({id:B(),receipts:q(J(H(U({blockHash:X(),blockNumber:Z(),chainId:Z(),gasUsed:Z(),logs:J(H(U({address:Y(),data:X(),topics:J(H(X()))}))),status:X(),transactionHash:X()})))),status:V()})})(jR||={});var MR;(function(e){e.Parameters=U({address:Y(),chainIds:q(J(H(Z())))}),e.Request=U({method:K(`wallet_getKeys`),params:J(G([e.Parameters]))}),e.Response=qF(X(),tR.Response)})(MR||={});var NR;(function(e){e.Capabilities=U({authorizeKeys:q(tR.Request),meta:rR.Request,preCall:q(wF()),preCalls:q(J(H(oR))),requiredFunds:q(iR.Request),revokeKeys:q(aR.Request)}),e.ResponseCapabilities=U({assetDiffs:q(eR.Response),authorizeKeys:QF(tR.Response),feePayerDigest:q(X()),feeSignature:q(X()),feeTotals:q(nR.Response),revokeKeys:QF(aR.Response)}),e.Parameters=U({calls:J(H(_R)),capabilities:e.Capabilities,chainId:Z(),from:q(Y()),key:q(U({prehash:wF(),publicKey:X(),type:QL.shape.type}))}),e.Request=U({method:K(`wallet_prepareCalls`),params:J(G([e.Parameters]))}),e.Response=U({capabilities:e.ResponseCapabilities,context:U({preCall:q(VF(sR)),quote:q(VF(fR))}),digest:X(),key:QF(U({prehash:wF(),publicKey:X(),type:QL.shape.type})),signature:X(),typedData:U({domain:W([U({chainId:W([Z(),V()]),name:B(),verifyingContract:Y(),version:B()}),U({})]),message:qF(B(),PF()),primaryType:B(),types:qF(B(),PF())})})})(NR||={});var PR;(function(e){e.Capabilities=U({authorizeKeys:tR.Request}),e.Parameters=U({address:Y(),capabilities:e.Capabilities,chainId:q(V()),delegation:Y()}),e.Request=U({method:K(`wallet_prepareUpgradeAccount`),params:J(G([e.Parameters]))}),e.Response=U({capabilities:e.Capabilities,chainId:Z(),context:U({address:Y(),authorization:hR,chainId:Z(),preCall:oR}),digests:U({auth:X(),exec:X()}),typedData:U({domain:W([U({chainId:W([Z(),V()]),name:B(),verifyingContract:Y(),version:B()}),U({})]),message:qF(B(),PF()),primaryType:B(),types:qF(B(),PF())})})})(PR||={});var FR;(function(e){e.Request=U({method:K(`wallet_feeTokens`),params:q(OF())}),e.Response=qF(X(),J(H(U({address:Y(),decimals:V(),nativeRate:q(Q()),symbol:B()}))))})(FR||={});var IR;(function(e){e.Parameters=U({capabilities:q(U({feeSignature:q(X())})),context:U({preCall:q(VF(sR)),quote:q(VF(fR))}),key:q(U({prehash:wF(),publicKey:X(),type:QL.shape.type})),signature:X()}),e.Request=U({method:K(`wallet_sendPreparedCalls`),params:J(G([e.Parameters]))}),e.Response=U({id:X()})})(IR||={});var LR;(function(e){e.Parameters=U({context:U({address:Y(),authorization:hR,chainId:Z(),preCall:oR}),signatures:U({auth:X(),exec:X()})}),e.Request=U({method:K(`wallet_upgradeAccount`),params:J(G([e.Parameters]))}),e.Response=OF()})(LR||={});var RR;(function(e){e.Parameters=U({address:X(),chainId:Z(),digest:X(),signature:X()}),e.Request=U({method:K(`wallet_verifySignature`),params:J(G([e.Parameters]))}),e.Response=U({proof:QF(U({account:Y(),initPreCall:QF(oR),keyHash:X()})),valid:wF()})})(RR||={}),Jd(),op();async function zR(e,t){try{let n=`wallet_getAuthorization`,r=await Tm(()=>e.request({method:n,params:[pP(OR.Parameters,t)]}),{cacheKey:`${e.uid}.${n}.${t.address}`});return mP(OR.Response,r)}catch(e){throw tz(e),e}}async function BR(e,t={}){let n=(()=>{if(t.chainId)return[t.chainId];if(t.chainIds!==`all`)return t.chainIds?t.chainIds:[e.chain.id]})();try{let r=`wallet_getCapabilities`,i=await Tm(()=>e.request({method:r,params:n?[n]:void 0},{retryCount:0}),{cacheKey:`${e.uid}.${r}.${n?.join(`,`)}`}),a=(()=>t.raw?i:mP(kR.Response,i))();return t.chainIds?a:Object.values(a)[0]}catch(e){throw tz(e),e}}async function VR(e,t){let{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a}=t;try{let t=await e.request({method:`wallet_getAssets`,params:[pP(AR.Parameters,{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a})]}),o=mP(AR.Response,t),s=Object.entries(o).reduce((e,[t,n])=>(e[Xf(t)]=n,e),{}),c={};for(let e of Object.values(s))for(let t of e){let e=JSON.stringify(t.metadata);c[e]={...t,balance:t.balance+(c[e]?.balance??0n)}}return{...s,0:Object.values(c)}}catch(e){throw tz(e),e}}async function HR(e,t){let{id:n}=t;try{let t=await e.request({method:`wallet_getCallsStatus`,params:[n]});return mP(jR.Response,t)}catch(e){throw tz(e),e}}async function UR(e,t){let{address:n,chainIds:r}=t;try{let t=await e.request({method:`wallet_getKeys`,params:[pP(MR.Parameters,{address:n,chainIds:r})]});return mP(MR.Response,t)}catch(e){throw tz(e),e}}async function WR(e){let t=`health`,n=await Tm(()=>e.request({method:t}),{cacheKey:`${e.uid}.${t}`});return mP(TR.Response,n)}async function GR(e,t){let{address:n,capabilities:r,chain:i=e.chain,key:a}=t,o=t.calls.map(e=>({data:e.abi?Y_(X_(e.abi,e.functionName),e.args):e.data??`0x`,to:e.to,value:e.value??0n}));try{let t=await e.request({method:`wallet_prepareCalls`,params:[pP(NR.Parameters,{calls:o,capabilities:{...r,meta:{...r?.meta}},chainId:i?.id,from:n,key:a?{prehash:a.prehash,publicKey:a.publicKey,type:a.type}:void 0})]},{retryCount:0});return Object.assign(mP(NR.Response,t),{_raw:t})}catch(e){throw tz(e),$R(e,{calls:t.calls}),e}}async function KR(e,t){let{address:n,chain:r=e.chain,delegation:i,...a}=t;try{let t=await e.request({method:`wallet_prepareUpgradeAccount`,params:[pP(PR.Parameters,pN({address:n,capabilities:a,chainId:r?.id,delegation:i}))]},{retryCount:0});return mP(PR.Response,t)}catch(e){throw tz(e),$R(e),e}}async function qR(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;try{let t=await e.request({method:`wallet_sendPreparedCalls`,params:[pP(IR.Parameters,{capabilities:n,context:{preCall:r.preCall,quote:r.quote},key:i?{prehash:i.prehash,publicKey:i.publicKey,type:i.type}:void 0,signature:a})]},{retryCount:0});return mP(IR.Response,t)}catch(e){throw tz(e),$R(e),e}}async function JR(e,t){let{email:n,walletAddress:r}=t;try{let t=await e.request({method:`account_setEmail`,params:[pP(xR.Parameters,{email:n,walletAddress:r})]},{retryCount:0});return mP(xR.Response,t)}catch(e){throw tz(e),$R(e),e}}async function YR(e,t){let{context:n,signatures:r}=t;try{await e.request({method:`wallet_upgradeAccount`,params:[pP(LR.Parameters,{context:n,signatures:r})]},{retryCount:0})}catch(e){throw tz(e),$R(e),e}}async function XR(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;try{let t=await e.request({method:`account_verifyEmail`,params:[pP(CR.Parameters,{chainId:n,email:r,signature:i,token:a,walletAddress:o})]},{retryCount:0});return mP(CR.Response,t)}catch(e){throw tz(e),$R(e),e}}async function ZR(e,t){let{signature:n}=t,{signature:r,capabilities:{feeSignature:i,...a},...o}=t.response,s=ez({capabilities:a,...o}),c=Hh(Uf(JSON.stringify(s))),l=O_({payload:c,signature:o_(n)}),{quoteSigner:u}=await WR(e);return l===u}async function QR(e,t){let{address:n,chain:r=e.chain,digest:i,signature:a}=t;try{async function t(){return{proof:null,valid:await iv(e,{address:n,hash:i,signature:a})}}let o=await(async()=>{let o=await e.request({method:`wallet_verifySignature`,params:[pP(RR.Parameters,{address:n,chainId:r?.id,digest:i,signature:a})]},{retryCount:0}).catch(t);return o.valid?o:t()})();return mP(RR.Response,o)}catch(e){throw tz(e),e}}function $R(e,{calls:t}={}){if(!(e instanceof D))return;let n=e=>{try{if(e.name===`ContractFunctionExecutionError`){let t=e.cause.name===`ContractFunctionRevertedError`?e.cause.data:void 0;if(t)return LL([t.abiItem],t.errorName)}let t=e.walk(e=>!(e instanceof Error)&&e.code===3);if(!t)return;let{data:n,message:r}=t;return n===`0xd0d5039b`?IL(`error Unauthorized()`):{inputs:[],name:(r??n).split(`(`)[0],type:`error`}}catch{return}},r=HL(e,{calls:t??[]}),i=n(r);if(!(r===e&&!i))throw new nz(Object.assign(r,{abiError:i}))}function ez(e){if(typeof e==`object`&&e){if(Array.isArray(e))return e.map(ez);let t={};for(let n of Object.keys(e).sort())t[n]=ez(e[n]);return t}return e}function tz(e){if(e.name===`$ZodError`)throw GL(e)}var nz=class extends P{constructor(e){super(`An error occurred while executing calls.`,{cause:e,metaMessages:[e.abiError&&`Reason: `+e.abiError.name].filter(Boolean)}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Rpc.ExecutionError`}),Object.defineProperty(this,`abiError`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiError=e.abiError}};const rz={anvil:{http:`http://localhost:9119`},prod:{http:`https://rpc.porto.sh`},stg:{http:`https://stg-rpc.porto.sh`}};function iz(e){return t=>{let n=e.public(t),r=e.relay(t);return Nv({key:iz.type,name:`Relay Proxy`,async request({method:e,params:t},i){return az(e)?r.request({method:e,params:t},i):n.request({method:e,params:t},i)},type:iz.type})}}(function(e){e.type=`relayProxy`})(iz||={});function az(e){return!!(e.startsWith(`wallet_`)||e.startsWith(`account_`)||e===`health`)}pf();var oz=new Map;function sz(e,t={}){let{config:n,id:r,store:i}=e._internal,{chains:a,relay:o}=n,s=i.getState(),c=t.chainId??s.chainIds[0],l=a.find(e=>e.id===c);if(!l)throw Error([`Could not find a compatible Porto chain on the given chain configuration.`,``,`Provided chains: [${a.map(e=>`${e.name} (id: ${e.id})`).join(`, `)}]`,`Needed chain (id): ${c}`,`Please add this chain (id) to your chain configuration.`].join(` +`));let u=iz({public:n.transports[l.id]??Fv(l.rpcUrls.default.http.map(e=>zv(e))),relay:o}),d=[r,df(l)].filter(Boolean).join(`:`);if(oz.has(d))return oz.get(d);let f=Xm({...t,chain:l,pollingInterval:1e3,transport:u});return oz.set(d,f),f}const cz=U({chainId:q(Z()),expiry:Z(),hash:X(),id:X(),prehash:q(wF()),publicKey:X(),role:W([K(`admin`),K(`session`)]),type:W([K(`address`),K(`p256`),K(`secp256k1`),K(`webauthn-p256`)])}),lz=J(H(UL([U({signature:B(),to:Y()}),U({signature:B()}),U({to:Y()})])).check(vF(1))),uz=U({limit:W([iI([V(),`.`,V()]),iI([V()])]).check(yF(/^\d+(\.\d+)?$/)),symbol:q(W([K(`native`),mR]))}),dz=U({addresses:J(H(Y()))}),fz=J(H(U({limit:Q(),period:W([K(`minute`),K(`hour`),K(`day`),K(`week`),K(`month`),K(`year`)]),token:q(Y())}))),pz=U({calls:q(lz),signatureVerification:q(dz),spend:q(fz)}),mz=U({...cz.shape,feeToken:q(ZF(uz)),permissions:q(pz)}),hz=U({address:Y(),chainId:q(Z()),expiry:V(),id:X(),key:zF(cz,{publicKey:!0,type:!0}),permissions:U({calls:lz,signatureVerification:q(dz),spend:q(fz)})}),gz=U({address:q(Y()),chainId:q(Z()),expiry:V().check(_F(1)),feeToken:ZF(uz),key:q(zF(cz,{publicKey:!0,type:!0})),permissions:U({calls:lz,signatureVerification:q(dz),spend:q(fz)})}),_z=hz;function vz(e,t){let{chainId:n,expiry:r,permissions:i,id:a,publicKey:o,type:s}=e,{address:c}=t;return{address:c,chainId:n,expiry:r,id:a,key:{publicKey:o,type:s},permissions:i??{}}}function yz(e){let{chainId:t,expiry:n,key:r}=e;return vL({chainId:t,expiry:n,permissions:e.permissions??{},publicKey:r.publicKey,role:`session`,type:r.type})}var bz;(function(e){e.GetCapabilitiesResponse=U({status:W([K(`supported`),K(`unsupported`)])})})(bz||={});var xz;(function(e){e.Request=W([wF(),U({chainId:q(Z()),label:q(B())})])})(xz||={});var Sz;(function(e){e.Request=UL([U({chainId:q(V()),domain:q(B()),expirationTime:q(IF()),issuedAt:q(IF()),nonce:B(),notBefore:q(IF()),requestId:q(B()),resources:q(J(H(B()))),scheme:q(B()),statement:q(B()),uri:q(B()),version:q(K(`1`))}),U({authUrl:W([B(),U({logout:B(),nonce:B(),verify:B()})]),chainId:q(Z()),domain:q(B()),expirationTime:q(IF()),issuedAt:q(IF()),notBefore:q(IF()),requestId:q(B()),resources:q(J(H(B()))),scheme:q(B()),statement:q(B()),uri:q(B()),version:q(K(`1`))})]),e.Response=U({message:B(),signature:X(),token:q(B())})})(Sz||={});var Cz;(function(e){e.GetCapabilitiesResponse=U({supported:wF(),tokens:J(H(pR))}),e.Request=W([mR,Y()])})(Cz||={});var wz;(function(e){e.Request=gz})(wz||={});var Tz;(function(e){e.GetCapabilitiesResponse=U({supported:wF()})})(Tz||={});var Ez;(function(e){e.GetCapabilitiesResponse=U({supported:wF()}),e.Request=U({id:q(W([X(),AF()]))}),e.Response=J(H(hz))})(Ez||={});var Dz;(function(e){e.Request=J(H(U({context:PF(),signature:X()}))),e.Response=e.Request})(Dz||={});var Oz;(function(e){e.Request=B()})(Oz||={});var kz;(function(e){e.GetCapabilitiesResponse=U({supported:wF(),tokens:J(H(pR))}),e.Request=J(H(UL([U({address:Y(),value:Q()}),U({symbol:mR,value:W([iI([V(),`.`,V()]),iI([V()])]).check(yF(/^\d+(\.\d+)?$/))})])))})(kz||={});var Az=U({...zF(cz,{id:!0,publicKey:!0,type:!0}).shape,credentialId:q(B()),privateKey:q(MF())}),jz;(function(e){e.Parameters=U({address:Y(),secret:B()}),e.Request=U({method:K(`account_getOnrampContactInfo`),params:J(G([e.Parameters]))}),e.Response=U({email:q(B()),phone:q(B()),phoneVerifiedAt:q(V())})})(jz||={});var Mz;(function(e){e.Parameters=U({address:Y()}),e.Request=U({method:K(`account_onrampStatus`),params:J(G([e.Parameters]))}),e.Response=U({email:q(V()),phone:q(V())})})(Mz||={});var Nz;(function(e){e.Parameters=U({email:B(),walletAddress:Y()}),e.Request=U({method:K(`account_resendVerifyPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(Nz||={});var Pz;(function(e){e.Parameters=U({email:B(),walletAddress:Y()}),e.Request=U({method:K(`account_setEmail`),params:J(G([e.Parameters]))}),e.Response=AF()})(Pz||={});var Fz;(function(e){e.Parameters=U({email:B(),walletAddress:Y()}),e.Request=U({method:K(`account_setPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(Fz||={});var Iz;(function(e){e.Parameters=U({chainId:Z(),email:B(),token:B(),walletAddress:Y()}),e.Request=U({method:K(`account_verifyEmail`),params:J(G([e.Parameters]))}),e.Response=AF()})(Iz||={});var Lz;(function(e){e.Parameters=U({code:B(),phone:B(),walletAddress:Y()}),e.Request=U({method:K(`account_verifyPhone`),params:J(G([e.Parameters]))}),e.Response=AF()})(Lz||={});var Rz;(function(e){e.Parameters=U({address:q(Y()),chainId:q(Z()),token:q(Y()),value:q(B())}),e.Request=U({method:K(`wallet_addFunds`),params:J(G([e.Parameters]))}),e.Response=U({id:X()})})(Rz||={});var zz;(function(e){e.Request=U({method:K(`eth_accounts`),params:q(PF())}),e.Response=J(H(Y()))})(zz||={});var Bz;(function(e){e.Request=U({method:K(`eth_chainId`),params:q(PF())}),e.Response=X()})(Bz||={});var Vz;(function(e){e.Request=U({method:K(`eth_requestAccounts`),params:q(PF())}),e.Response=J(H(Y()))})(Vz||={});var Hz;(function(e){e.Request=U({method:K(`eth_sendTransaction`),params:J(G([U({capabilities:q(U({feeToken:q(Cz.Request),merchantUrl:q(Oz.Request),preCalls:q(Dz.Request)})),chainId:q(Z()),data:q(X()),from:q(Y()),to:Y(),value:q(Q())})]))}),e.Response=X()})(Hz||={});var Uz;(function(e){e.Request=U({method:K(`eth_signTypedData_v4`),params:J(G([Y(),B()]))}),e.Response=X()})(Uz||={});var Wz;(function(e){e.Parameters=U({address:q(Y()),chainId:q(Z())}),e.Request=U({method:K(`wallet_getAdmins`),params:q(J(G([e.Parameters])))}),e.Key=Az,e.Response=U({address:Y(),chainId:Z(),keys:J(H(e.Key))})})(Wz||={});var Gz;(function(e){e.Capabilities=U({feeToken:q(Cz.Request)}),e.Parameters=U({address:q(Y()),capabilities:q(e.Capabilities),chainId:q(Z()),key:zF(cz,{publicKey:!0,type:!0})}),e.Request=U({method:K(`wallet_grantAdmin`),params:J(G([e.Parameters]))}),e.Response=U({address:Y(),chainId:Z(),key:Wz.Key})})(Gz||={});var Kz;(function(e){e.Parameters=gz,e.Request=U({method:K(`wallet_grantPermissions`),params:J(G([e.Parameters]))}),e.ResponseCapabilities=U({preCalls:q(Dz.Response)}),e.Response=U({...hz.shape,capabilities:q(MF())})})(Kz||={});var qz;(function(e){e.Parameters=U({address:q(Y())}),e.Request=U({method:K(`wallet_getAccountVersion`),params:q(J(G([e.Parameters])))}),e.Response=U({current:B(),latest:B()})})(qz||={});var Jz;(function(e){e.Parameters=U({address:q(Y()),chainIds:q(J(H(Z())))}),e.Request=U({method:K(`wallet_getPermissions`),params:q(J(G([e.Parameters])))}),e.Response=Ez.Response})(Jz||={});var Yz;(function(e){e.Capabilities=U({feeToken:q(Cz.Request)}),e.Parameters=U({address:q(Y()),capabilities:q(e.Capabilities),chainId:q(Z()),id:X()}),e.Request=U({method:K(`wallet_revokeAdmin`),params:J(G([e.Parameters]))}),e.Response=void 0})(Yz||={});var Xz;(function(e){e.Capabilities=U({feeToken:q(Cz.Request)}),e.Parameters=U({address:q(Y()),capabilities:q(e.Capabilities),id:X()}),e.Request=U({method:K(`wallet_revokePermissions`),params:J(G([e.Parameters]))}),e.Response=void 0})(Xz||={});var Zz;(function(e){e.Request=U({method:K(`wallet_switchEthereumChain`),params:J(G([U({chainId:X()})]))})})(Zz||={});var Qz;(function(e){e.Parameters=U({context:PF(),signatures:U({auth:X(),exec:X()})}),e.Request=U({method:K(`wallet_upgradeAccount`),params:J(G([e.Parameters]))}),e.ResponseCapabilities=U({admins:q(J(H(Wz.Key))),permissions:q(Ez.Response)}),e.Response=U({address:Y(),capabilities:q(e.ResponseCapabilities)})})(Qz||={});var $z;(function(e){e.Request=U({method:K(`personal_sign`),params:J(G([X(),Y()]))}),e.Response=X()})($z||={});var eB;(function(e){e.Request=U({method:K(`porto_ping`),params:q(OF())}),e.Response=K(`pong`)})(eB||={});var tB;(function(e){e.Capabilities=U({createAccount:q(xz.Request),email:q(wF()),grantAdmins:q(J(H(zF(cz,{publicKey:!0,type:!0})))),grantPermissions:q(wz.Request),preCalls:q(Dz.Request),selectAccount:q(W([wF(),U({address:Y(),key:q(U({credentialId:q(B()),publicKey:X()}))})])),signInWithEthereum:q(Sz.Request)}),e.Parameters=U({capabilities:q(e.Capabilities),chainIds:q(J(H(Z())))}),e.Request=U({method:K(`wallet_connect`),params:q(J(G([e.Parameters])))}),e.ResponseCapabilities=U({admins:q(J(H(U({...zF(cz,{id:!0,publicKey:!0,type:!0}).shape,credentialId:q(B())})))),permissions:q(Ez.Response),preCalls:q(Dz.Response),signInWithEthereum:q(Sz.Response)}),e.Response=U({accounts:J(H(U({address:Y(),capabilities:q(e.ResponseCapabilities)}))),chainIds:J(H(Z()))})})(tB||={});var nB;(function(e){e.Request=U({method:K(`wallet_disconnect`),params:q(PF())}),e.Response=void 0})(nB||={});var rB;(function(e){e.Parameters=AR.Parameters,e.Request=AR.Request,e.Response=AR.Response})(rB||={});var iB;(function(e){e.Request=U({method:K(`wallet_getCallsStatus`),params:G([X()])}),e.Response=U({atomic:wF(),chainId:Z(),id:B(),receipts:q(J(H(U({blockHash:X(),blockNumber:X(),gasUsed:X(),logs:J(H(U({address:Y(),data:X(),topics:J(H(X()))}))),status:X(),transactionHash:X()})))),status:V(),version:B()})})(iB||={});var aB;(function(e){e.Request=U({method:K(`wallet_getCapabilities`),params:q(W([J(G([W([X(),OF()])])),J(G([W([X(),OF()]),J(H(Z()))]))]))}),e.Response=qF(X(),U({atomic:bz.GetCapabilitiesResponse,feeToken:Cz.GetCapabilitiesResponse,merchant:Tz.GetCapabilitiesResponse,permissions:Ez.GetCapabilitiesResponse,requiredFunds:kz.GetCapabilitiesResponse}))})(aB||={});var oB;(function(e){e.Parameters=U({address:Y(),chainIds:q(J(H(Z())))}),e.Request=U({method:K(`wallet_getKeys`),params:J(G([e.Parameters]))}),e.Response=J(H(mz))})(oB||={});var sB;(function(e){e.Capabilities=U({feeToken:q(Cz.Request),merchantUrl:q(Oz.Request),permissions:q(Ez.Request),preCalls:q(Dz.Request),requiredFunds:q(kz.Request)}),e.Parameters=U({calls:J(H(U({data:q(X()),to:Y(),value:q(Q())}))),capabilities:q(e.Capabilities),chainId:q(Z()),from:q(Y()),key:q(zF(cz,{prehash:!0,publicKey:!0,type:!0})),version:q(B())}),e.Request=U({method:K(`wallet_prepareCalls`),params:J(G([e.Parameters]))}),e.Response=U({capabilities:q(U({...NR.ResponseCapabilities.shape,quote:q(fR)})),chainId:X(),context:U({account:U({address:Y()}),calls:e.Parameters.shape.calls,nonce:Q(),quote:q(VF(fR))}),digest:X(),key:zF(cz,{prehash:!0,publicKey:!0,type:!0}),typedData:U({domain:W([U({chainId:Z(),name:B(),verifyingContract:Y(),version:B()}),U({})]),message:qF(B(),PF()),primaryType:B(),types:qF(B(),PF())})})})(sB||={});var cB;(function(e){e.Capabilities=U({...tB.Capabilities.shape,label:q(B())}),e.Parameters=U({address:Y(),capabilities:q(e.Capabilities),chainId:q(Z())}),e.Request=U({method:K(`wallet_prepareUpgradeAccount`),params:J(G([e.Parameters]))}),e.Response=U({context:PF(),digests:U({auth:X(),exec:X()})})})(cB||={});var lB;(function(e){e.Capabilities=sB.Capabilities,e.Request=U({method:K(`wallet_sendCalls`),params:J(G([BF(sB.Parameters,{key:!0})]))}),e.Response=U({id:X()})})(lB||={});var uB;(function(e){e.Parameters=U({capabilities:sB.Response.shape.capabilities,chainId:X(),context:sB.Response.shape.context,key:sB.Response.shape.key,signature:X()}),e.Request=U({method:K(`wallet_sendPreparedCalls`),params:J(G([e.Parameters]))}),e.Response=J(H(U({capabilities:q(qF(B(),PF())),id:X()})))})(uB||={});var dB;(function(e){e.Parameters=U({address:Y(),chainId:q(Z()),digest:X(),signature:X()}),e.Request=U({method:K(`wallet_verifySignature`),params:J(G([e.Parameters]))}),e.Response=U({address:Y(),chainId:Z(),proof:q(PF()),valid:wF()})})(dB||={});const fB=WF(`method`,[Iz.Request,Rz.Request,zz.Request,Bz.Request,Vz.Request,Hz.Request,Uz.Request,qz.Request,Wz.Request,Jz.Request,Gz.Request,Kz.Request,cB.Request,Yz.Request,Xz.Request,Qz.Request,$z.Request,eB.Request,tB.Request,nB.Request,rB.Request,iB.Request,aB.Request,oB.Request,sB.Request,lB.Request,uB.Request,Zz.Request,dB.Request]);function pB(e,t){let n=dP(e,t);if(n.error){let e=n.error.issues.at(0);throw e?.code===`invalid_union`&&e.note===`No matching discriminator`?new NM:new RM(GL(n.error))}return{...t,_decoded:n.data}}async function mB(e){e.persist.hasHydrated()||await new Promise(t=>{e.persist.onFinishHydration(()=>t(!0)),setTimeout(()=>t(!0),100)})}function hB(e){if(e)return e.startsWith(`/`)?`${window.location.origin}${e}`:e}op(),pf();function gB(e){let{config:t,getMode:n,id:r,store:i}=e,{announceProvider:a}=t;function o(e={}){let a=s(),o=e.request??pB(fB,{method:`wallet_getCapabilities`,params:e.chainIds?[void 0,e.chainIds]:void 0});return Tm(()=>n().actions.getCapabilities({chainIds:e.chainIds,internal:{client:a,config:t,request:o,store:i}}),{cacheKey:`getCapabilities.${r}.${e.chainIds?.join(`,`)}`})}function s(t){let n=typeof t==`string`?Xf(t):t;return sz({_internal:e},{chainId:n})}let c=new Map,l=[],u=tN(),d=nN({...u,async request(e){await mB(i);let r=[`eth_accounts`,`eth_chainId`,`eth_requestAccounts`,`wallet_getAssets`,`wallet_getCapabilities`,`wallet_getKeys`,`wallet_getPermissions`,`wallet_getAccountVersion`,`wallet_connect`].includes(e.method);return gN(async()=>{let r;try{r=pB(fB,e)}catch(t){let n=t;if(!(n instanceof NM))throw n;if(e.method.startsWith(`wallet_`))throw new WM;return s().request(e)}let a=i.getState();switch(r.method){case`account_verifyEmail`:{if(a.accounts.length===0)throw new GM;let[e]=r._decoded.params,{chainId:o,email:c,token:l,walletAddress:u}=e,d=s(o);if(o&&o!==d.chain.id)throw new KM;let f=u?a.accounts.find(e=>ag(e.address,u)):a.accounts[0];if(!f)throw new UM;return await n().actions.verifyEmail({account:f,chainId:o,email:c,internal:{client:d,config:t,request:r,store:i},token:l,walletAddress:u})}case`wallet_addFunds`:{if(a.accounts.length===0)throw new GM;let{address:e,value:o,token:c}=r.params[0]??{},l=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!l)throw new UM;let d=s(),f=await n().actions.addFunds({address:l.address,internal:{client:d,config:t,request:r,store:i},token:c,value:o});return u.emit(`message`,{data:null,type:`assetsChanged`}),f}case`eth_accounts`:if(a.accounts.length===0)throw new GM;return a.accounts.map(bB);case`eth_chainId`:return I(a.chainIds[0]);case`eth_requestAccounts`:{if(a.accounts.length>0&&c.get(`eth_requestAccounts`))return a.accounts.map(bB);let e=s(),{accounts:o}=await n().actions.loadAccounts({internal:{client:e,config:t,request:r,store:i}});return i.setState(e=>({...e,accounts:o})),u.emit(`connect`,{chainId:I(e.chain.id)}),c.set(`eth_requestAccounts`,!0),setTimeout(()=>c.delete(`eth_requestAccounts`),1e3),o.map(bB)}case`eth_sendTransaction`:{if(a.accounts.length===0)throw new GM;let[{capabilities:e,chainId:o,data:c=`0x`,from:l,to:u,value:d}]=r._decoded.params,f=s(o);if(o&&o!==f.chain.id)throw new KM;let p=l?a.accounts.find(e=>ag(e.address,l)):a.accounts[0];if(!p)throw new UM;let{id:m}=await n().actions.sendCalls({account:p,asTxHash:!0,calls:[{data:c,to:u,value:d}],chainId:f.chain.id,internal:{client:f,config:t,request:r,store:i},merchantUrl:hB(t.merchantUrl??e?.merchantUrl)});return m}case`eth_signTypedData_v4`:{if(a.accounts.length===0)throw new GM;let[e,o]=r._decoded.params,c=a.accounts.find(t=>ag(t.address,e));if(!c)throw new UM;let l=s();return await n().actions.signTypedData({account:c,data:o,internal:{client:l,config:t,request:r,store:i}})}case`wallet_grantAdmin`:{if(a.accounts.length===0)throw new GM;let[{address:e,capabilities:o,chainId:c,key:l}]=r._decoded.params??[{}],d=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!d)throw new UM;let f=s(c);if(vB([...d.keys??[]])?.some(e=>e.publicKey?.toLowerCase()===l.publicKey.toLowerCase()))throw new RM({message:`Key already granted as admin.`});let{key:p}=await n().actions.grantAdmin({account:d,feeToken:o?.feeToken,internal:{client:f,config:t,request:r,store:i},key:l});i.setState(e=>{let t=e.accounts.findIndex(e=>d?ag(e.address,d.address):!0);return t===-1?e:{...e,accounts:e.accounts.map((e,n)=>n===t?{...e,keys:[...e.keys??[],p]}:e)}});let m=vB([...d.keys??[],p]);return u.emit(`message`,{data:null,type:`adminsChanged`}),pP(Gz.Response,{address:d.address,chainId:f.chain.id,key:m.at(-1)})}case`wallet_grantPermissions`:{if(a.accounts.length===0)throw new GM;let[{address:e,chainId:o,...c}]=r._decoded.params??[{}],l=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!l)throw new UM;let d=s(o),{key:f}=await n().actions.grantPermissions({account:l,internal:{client:d,config:t,request:r,store:i},permissions:c});return i.setState(e=>{let t=e.accounts.findIndex(e=>l?ag(e.address,l.address):!0);return t===-1?e:{...e,accounts:e.accounts.map((e,n)=>n===t?{...e,keys:[...e.keys??[],f]}:e)}}),u.emit(`message`,{data:null,type:`permissionsChanged`}),pP(Kz.Response,{...vz(f,{address:l.address})})}case`wallet_getAdmins`:{if(a.accounts.length===0)throw new GM;let[{address:e,chainId:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!c)throw new UM;let l=s(o),u=await n().actions.getKeys({account:c,internal:{client:l,config:t,request:r,store:i}}),d=vB(u);return pP(Wz.Response,{address:c.address,chainId:l.chain.id,keys:d})}case`wallet_prepareUpgradeAccount`:{let[{address:e,capabilities:a,chainId:o}]=r._decoded.params??[{}],{email:c,label:u,grantPermissions:d}=a??{},f=s(o),{context:p,digests:m}=await n().actions.prepareUpgradeAccount({address:e,email:c,internal:{client:f,config:t,request:r,store:i},label:u,permissions:d});return l.push(p.account),{context:p,digests:m}}case`wallet_getAccountVersion`:{if(a.accounts.length===0)throw new GM;let[{address:e}]=r._decoded.params??[{}],o=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!o)throw new UM;let c=s(),{current:l,latest:u}=await n().actions.getAccountVersion({address:o.address,internal:{client:c,config:t,request:r,store:i}});return{current:l,latest:u}}case`wallet_getKeys`:{if(a.accounts.length===0)throw new GM;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=a.accounts.find(t=>ag(t.address,e));if(!c)throw new UM;let l=s(),u=await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}});return pP(oB.Response,u)}case`wallet_getPermissions`:{if(a.accounts.length===0)throw new GM;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!c)throw new UM;let l=s(),u=await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}});return yB(u,{address:c.address})}case`wallet_revokeAdmin`:{if(a.accounts.length===0)throw new GM;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!l)throw new UM;let d=s();await n().actions.revokeAdmin({account:l,feeToken:o?.feeToken,id:c,internal:{client:d,config:t,request:r,store:i}});let f=l.keys?.filter(e=>e.id.toLowerCase()!==c.toLowerCase());i.setState(e=>({...e,accounts:e.accounts.map(e=>ag(e.address,l.address)?{...e,keys:f}:e)})),u.emit(`message`,{data:null,type:`adminsChanged`});return}case`wallet_revokePermissions`:{if(a.accounts.length===0)throw new GM;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>ag(t.address,e)):a.accounts[0];if(!l)throw new UM;let d=s();await n().actions.revokePermissions({account:l,feeToken:o?.feeToken,id:c,internal:{client:d,config:t,request:r,store:i}});let f=l.keys?.filter(e=>e.id.toLowerCase()!==c.toLowerCase());i.setState(e=>({...e,accounts:e.accounts.map(e=>ag(e.address,l.address)?{...e,keys:f}:e)})),u.emit(`message`,{data:null,type:`permissionsChanged`});return}case`wallet_upgradeAccount`:{let[{context:e,signatures:a}]=r._decoded.params??[{}],o=s(),c=l.find(t=>ag(t.address,e.account.address));if(!c)throw new UM;let{account:d}=await n().actions.upgradeAccount({account:c,context:e,internal:{client:o,config:t,request:r,store:i},signatures:a}),f=vB(d.keys??[]),p=yB(d.keys??[],{address:d.address});return i.setState(e=>({...e,accounts:[d]})),u.emit(`connect`,{chainId:I(o.chain.id)}),{address:d.address,capabilities:{admins:f,...p.length>0?{permissions:p}:{}}}}case`porto_ping`:return`pong`;case`personal_sign`:{if(a.accounts.length===0)throw new GM;let[e,o]=r._decoded.params,c=a.accounts.find(e=>ag(e.address,o));if(!c)throw new UM;let l=s();return await n().actions.signPersonalMessage({account:c,data:e,internal:{client:l,config:t,request:r,store:i}})}case`wallet_connect`:{let[{capabilities:e,chainIds:o}]=r._decoded.params??[{}],c=s(o?.[0]),l=c.chain.id,{createAccount:d,email:f,grantAdmins:p,grantPermissions:m,selectAccount:h,signInWithEthereum:g}=e??{},_={client:c,config:t,request:r,store:i},{accounts:v}=await(async()=>{if(f||d){let{label:e=void 0}=typeof d==`object`?d:{},{account:t}=await n().actions.createAccount({admins:p,email:f,internal:_,label:e,permissions:m,signInWithEthereum:g});return{accounts:[t]}}let e=a.accounts[0],{address:t,key:r}=(()=>{if(h)return typeof h==`object`?h:{address:void 0,key:void 0};for(let t of e?.keys??[])if(t.type===`webauthn-p256`&&t.role===`admin`)return{address:e?.address,key:{credentialId:t.credentialId??t.privateKey?.credential?.id,publicKey:t.publicKey}};return{address:void 0,key:void 0}})(),i={internal:_,permissions:m,signInWithEthereum:g};try{return await n().actions.loadAccounts({address:t,key:r,...i})}catch(e){if(e instanceof HM)throw e;if(t&&r)return await n().actions.loadAccounts(i);throw e}})();i.setState(e=>({...e,accounts:v}));let y=[l,...i.getState().chainIds.filter(e=>e!==l)];return u.emit(`connect`,{chainId:I(y[0])}),{accounts:v.map(e=>({address:bB(e),capabilities:{admins:e.keys?vB(e.keys):[],permissions:e.keys?yB(e.keys,{address:e.address}):[],...e.signInWithEthereum&&{signInWithEthereum:e.signInWithEthereum}}})),chainIds:y.map(e=>I(e))}}case`wallet_disconnect`:{let e=s();await n().actions.disconnect?.({internal:{client:e,config:t,request:r,store:i}}),i.setState(e=>({...e,accounts:[]})),u.emit(`disconnect`,new GM);return}case`wallet_getAssets`:{let[e]=r._decoded.params??[],{account:a,chainFilter:o,assetFilter:c,assetTypeFilter:l}=e,u=s(),d=await n().actions.getAssets({account:a,assetFilter:c,assetTypeFilter:l,chainFilter:o,internal:{client:u,config:t,request:r,store:i}}),f=Object.entries(d).reduce((e,[t,n])=>(e[I(Number(t))]=n,e),{});return pP(rB.Response,f)}case`wallet_getCallsStatus`:{let[e]=r._decoded.params??[],a=s();return await n().actions.getCallsStatus({id:e,internal:{client:a,config:t,request:r,store:i}})}case`wallet_getCapabilities`:{let[e,t]=r.params??[];return await o({chainIds:t,request:r})}case`wallet_prepareCalls`:{let[e]=r._decoded.params,{calls:o,capabilities:c,chainId:l,key:u,from:d}=e,f=s(l),p=d??a.accounts[0];if(!p)throw new UM;if(l&&l!==f.chain.id)throw new KM;let{digest:m,...h}=await n().actions.prepareCalls({account:ML(p),calls:o,feeToken:c?.feeToken,internal:{client:f,config:t,request:r,store:i},key:u,merchantUrl:hB(t.merchantUrl??c?.merchantUrl),requiredFunds:c?.requiredFunds});return pP(sB.Response,{capabilities:h.capabilities,chainId:I(h.chainId??f.chain.id),context:{...h.context,account:{address:h.account.address},calls:h.context.calls??[],nonce:h.context.nonce??0n},digest:m,key:h.key,typedData:h.typedData})}case`wallet_sendPreparedCalls`:{let[e]=r._decoded.params,{chainId:a,context:o,key:c,signature:l}=e,{account:u}=e.context,d=s(a);if(a&&Xf(a)!==d.chain.id)throw new KM;return[{id:await n().actions.sendPreparedCalls({account:ML(u),context:o,internal:{client:d,config:t,request:r,store:i},key:c,signature:l})}]}case`wallet_sendCalls`:{if(a.accounts.length===0)throw new GM;let[e]=r._decoded.params,{calls:o,capabilities:c,chainId:l,from:u}=e,d=s(l);if(l&&l!==d.chain.id)throw new KM;let f=u?a.accounts.find(e=>ag(e.address,u)):a.accounts[0];if(!f)throw new UM;let{id:p}=await n().actions.sendCalls({account:f,calls:o,chainId:d.chain.id,feeToken:c?.feeToken,internal:{client:d,config:t,request:r,store:i},merchantUrl:hB(t.merchantUrl??c?.merchantUrl),permissionsId:c?.permissions?.id,requiredFunds:c?.requiredFunds});return{id:p}}case`wallet_switchEthereumChain`:{let[e]=r._decoded.params,{chainId:a}=e,o=Xf(a);if(!t.chains.find(e=>e.id===o))throw new YM;let c=s(a);await n().actions.switchChain?.({chainId:c.chain.id,internal:{client:c,config:t,request:r,store:i}}),i.setState(e=>({...e,chainIds:[o,...e.chainIds.filter(e=>e!==o)]}));return}case`wallet_verifySignature`:{let[e]=r._decoded.params,{address:t,chainId:n,digest:i,signature:a}=e,o=s(n);return{...await QR(o,{address:t,digest:i,signature:a}),address:t,chainId:I(o.chain.id)}}}},{enabled:r,id:df(e)})}});function f(){let e=()=>{},t=()=>{};mB(i).then(()=>{o().catch(()=>{}),e(),e=i.subscribe(e=>e.accounts,e=>{u.emit(`accountsChanged`,e.map(bB))},{equalityFn:(e,t)=>e.every((e,n)=>e.address===t[n]?.address)}),t(),t=i.subscribe(e=>e.chainIds[0],(e,t)=>{e!==t&&u.emit(`chainChanged`,I(e))})});let n=_B(d,a);return()=>{e(),t(),n()}}let p=f();return Object.assign(d,{_internal:{destroy:p}})}function _B(e,t){if(!t||typeof window>`u`||!window.dispatchEvent)return()=>{};let{icon:n=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIyIiBoZWlnaHQ9IjQyMiIgdmlld0JveD0iMCAwIDQyMiA0MjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0MjIiIGhlaWdodD0iNDIyIiBmaWxsPSJibGFjayIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMV8xNSkiPgo8cGF0aCBkPSJNODEgMjg2LjM2NkM4MSAyODAuODkzIDg1LjQ1MDUgMjc2LjQ1NSA5MC45NDA0IDI3Ni40NTVIMzI5LjUxMUMzMzUuMDAxIDI3Ni40NTUgMzM5LjQ1MiAyODAuODkzIDMzOS40NTIgMjg2LjM2NlYzMDYuMTg4QzMzOS40NTIgMzExLjY2MiAzMzUuMDAxIDMxNi4wOTkgMzI5LjUxMSAzMTYuMDk5SDkwLjk0MDRDODUuNDUwNSAzMTYuMDk5IDgxIDMxMS42NjIgODEgMzA2LjE4OFYyODYuMzY2WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuOTQwNCAyMzQuODI4Qzg1LjQ1MDUgMjM0LjgyOCA4MSAyMzkuMjY2IDgxIDI0NC43MzlWMjcxLjUzMUM4My44NDMyIDI2OS42MzMgODcuMjYyMiAyNjguNTI2IDkwLjk0MDQgMjY4LjUyNkgzMjkuNTExQzMzMy4xODggMjY4LjUyNiAzMzYuNjA4IDI2OS42MzMgMzM5LjQ1MiAyNzEuNTMxVjI0NC43MzlDMzM5LjQ1MiAyMzkuMjY2IDMzNS4wMDEgMjM0LjgyOCAzMjkuNTExIDIzNC44MjhIOTAuOTQwNFpNMzM5LjQ1MiAyODYuMzY2QzMzOS40NTIgMjgwLjg5MyAzMzUuMDAxIDI3Ni40NTUgMzI5LjUxMSAyNzYuNDU1SDkwLjk0MDRDODUuNDUwNSAyNzYuNDU1IDgxIDI4MC44OTMgODEgMjg2LjM2NlYzMDYuMTlDODEgMzExLjY2NCA4NS40NTA1IDMxNi4xMDEgOTAuOTQwNCAzMTYuMTAxSDMyOS41MTFDMzM1LjAwMSAzMTYuMTAxIDMzOS40NTIgMzExLjY2NCAzMzkuNDUyIDMwNi4xOVYyODYuMzY2WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuOTQwNCAxOTMuMjAxQzg1LjQ1MDUgMTkzLjIwMSA4MSAxOTcuNjM4IDgxIDIwMy4xMTJWMjI5LjkwM0M4My44NDMyIDIyOC4wMDYgODcuMjYyMiAyMjYuODk5IDkwLjk0MDQgMjI2Ljg5OUgzMjkuNTExQzMzMy4xODggMjI2Ljg5OSAzMzYuNjA4IDIyOC4wMDYgMzM5LjQ1MiAyMjkuOTAzVjIwMy4xMTJDMzM5LjQ1MiAxOTcuNjM4IDMzNS4wMDEgMTkzLjIwMSAzMjkuNTExIDE5My4yMDFIOTAuOTQwNFpNMzM5LjQ1MiAyNDQuNzM5QzMzOS40NTIgMjM5LjI2NSAzMzUuMDAxIDIzNC44MjggMzI5LjUxMSAyMzQuODI4SDkwLjk0MDRDODUuNDUwNSAyMzQuODI4IDgxIDIzOS4yNjUgODEgMjQ0LjczOVYyNzEuNTNDODEuMjE3NSAyNzEuMzg1IDgxLjQzODMgMjcxLjI0NSA4MS42NjI0IDI3MS4xMDlDODMuODMyNSAyNjkuNzk0IDg2LjMwNTQgMjY4LjkyNyA4OC45NTIzIDI2OC42MzVDODkuNjA1MSAyNjguNTYzIDkwLjI2ODQgMjY4LjUyNiA5MC45NDA0IDI2OC41MjZIMzI5LjUxMUMzMzAuMTgzIDI2OC41MjYgMzMwLjg0NiAyNjguNTYzIDMzMS40OTggMjY4LjYzNUMzMzQuNDE5IDI2OC45NTcgMzM3LjEyOCAyNjkuOTggMzM5LjQ1MiAyNzEuNTNWMjQ0LjczOVpNMzM5LjQ1MiAyODYuMzY2QzMzOS40NTIgMjgxLjAyMSAzMzUuMjA2IDI3Ni42NjMgMzI5Ljg5MyAyNzYuNDYyQzMyOS43NjcgMjc2LjQ1NyAzMjkuNjQgMjc2LjQ1NSAzMjkuNTExIDI3Ni40NTVIOTAuOTQwNEM4NS40NTA1IDI3Ni40NTUgODEgMjgwLjg5MyA4MSAyODYuMzY2VjMwNi4xODhDODEgMzExLjY2MiA4NS40NTA1IDMxNi4xMDEgOTAuOTQwNCAzMTYuMTAxSDMyOS41MTFDMzM1LjAwMSAzMTYuMTAxIDMzOS40NTIgMzExLjY2MiAzMzkuNDUyIDMwNi4xODhWMjg2LjM2NloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8cGF0aCBvcGFjaXR5PSIwLjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTguMDE0NiAxMDRDODguNjE3NyAxMDQgODEgMTExLjU5NSA4MSAxMjAuOTY1VjE4OC4yNzZDODMuODQzMiAxODYuMzc5IDg3LjI2MjIgMTg1LjI3MiA5MC45NDA0IDE4NS4yNzJIMzI5LjUxMUMzMzMuMTg4IDE4NS4yNzIgMzM2LjYwOCAxODYuMzc5IDMzOS40NTIgMTg4LjI3NlYxMjAuOTY1QzMzOS40NTIgMTExLjU5NSAzMzEuODMzIDEwNCAzMjIuNDM3IDEwNEg5OC4wMTQ2Wk0zMzkuNDUyIDIwMy4xMTJDMzM5LjQ1MiAxOTcuNjM4IDMzNS4wMDEgMTkzLjIwMSAzMjkuNTExIDE5My4yMDFIOTAuOTQwNEM4NS40NTA1IDE5My4yMDEgODEgMTk3LjYzOCA4MSAyMDMuMTEyVjIyOS45MDNDODEuMjE3NSAyMjkuNzU4IDgxLjQzODMgMjI5LjYxOCA4MS42NjI0IDIyOS40ODJDODMuODMyNSAyMjguMTY3IDg2LjMwNTQgMjI3LjMgODguOTUyMyAyMjcuMDA4Qzg5LjYwNTEgMjI2LjkzNiA5MC4yNjg0IDIyNi44OTkgOTAuOTQwNCAyMjYuODk5SDMyOS41MTFDMzMwLjE4MyAyMjYuODk5IDMzMC44NDYgMjI2LjkzNiAzMzEuNDk4IDIyNy4wMDhDMzM0LjQxOSAyMjcuMzMgMzM3LjEyOCAyMjguMzUyIDMzOS40NTIgMjI5LjkwM1YyMDMuMTEyWk0zMzkuNDUyIDI0NC43MzlDMzM5LjQ1MiAyMzkuMzkzIDMzNS4yMDYgMjM1LjAzNiAzMjkuODkzIDIzNC44MzVDMzI5Ljc2NyAyMzQuODMgMzI5LjY0IDIzNC44MjggMzI5LjUxMSAyMzQuODI4SDkwLjk0MDRDODUuNDUwNSAyMzQuODI4IDgxIDIzOS4yNjUgODEgMjQ0LjczOVYyNzEuNTNMODEuMDcwNyAyNzEuNDgzQzgxLjI2NTMgMjcxLjM1NSA4MS40NjI1IDI3MS4yMyA4MS42NjI0IDI3MS4xMDlDODEuOTA4MyAyNzAuOTYgODIuMTU4MSAyNzAuODE3IDgyLjQxMTcgMjcwLjY3OUM4NC4zOTUzIDI2OS42MDUgODYuNjA1NCAyNjguODk0IDg4Ljk1MjMgMjY4LjYzNUM4OS4wMDUyIDI2OC42MjkgODkuMDU4IDI2OC42MjQgODkuMTExIDI2OC42MThDODkuNzEyNSAyNjguNTU3IDkwLjMyMjggMjY4LjUyNiA5MC45NDA0IDI2OC41MjZIMzI5LjUxMUMzMjkuNzM4IDI2OC41MjYgMzI5Ljk2NSAyNjguNTMgMzMwLjE5MiAyNjguNTM5QzMzMC42MzEgMjY4LjU1NSAzMzEuMDY3IDI2OC41ODcgMzMxLjQ5OCAyNjguNjM1QzMzNC40MTkgMjY4Ljk1NyAzMzcuMTI4IDI2OS45OCAzMzkuNDUyIDI3MS41M1YyNDQuNzM5Wk0zMzkuNDUyIDI4Ni4zNjZDMzM5LjQ1MiAyODEuMDIxIDMzNS4yMDYgMjc2LjY2MyAzMjkuODkzIDI3Ni40NjJMMzI5Ljg2NSAyNzYuNDYxQzMyOS43NDggMjc2LjQ1NyAzMjkuNjI5IDI3Ni40NTUgMzI5LjUxMSAyNzYuNDU1SDkwLjk0MDRDODUuNDUwNSAyNzYuNDU1IDgxIDI4MC44OTMgODEgMjg2LjM2NlYzMDYuMTg4QzgxIDMxMS42NjIgODUuNDUwNSAzMTYuMTAxIDkwLjk0MDQgMzE2LjEwMUgzMjkuNTExQzMzNS4wMDEgMzE2LjEwMSAzMzkuNDUyIDMxMS42NjIgMzM5LjQ1MiAzMDYuMTg4VjI4Ni4zNjZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjY5Ljg2OCAxMzEuNzUyQzI2OS44NjggMTI2LjI3OCAyNzQuMzE4IDEyMS44NCAyNzkuODA4IDEyMS44NEgzMTEuNjE4QzMxNy4xMDggMTIxLjg0IDMyMS41NTggMTI2LjI3OCAzMjEuNTU4IDEzMS43NTJWMTYxLjQ4NUMzMjEuNTU4IDE2Ni45NTkgMzE3LjEwOCAxNzEuMzk2IDMxMS42MTggMTcxLjM5NkgyNzkuODA4QzI3NC4zMTggMTcxLjM5NiAyNjkuODY4IDE2Ni45NTkgMjY5Ljg2OCAxNjEuNDg1VjEzMS43NTJaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzFfMTUiPgo8cmVjdCB3aWR0aD0iMjU5IiBoZWlnaHQ9IjIxMyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgxIDEwNCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K`,name:r=`Porto`,rdns:i=`xyz.ithaca.porto`}=typeof t==`object`?t:{};return jN({info:{icon:n,name:r,rdns:i,uuid:hN()},provider:e})}function vB(e){return e.map(e=>{if(e.role===`admin`)try{return pP(Wz.Key,{id:e.id??e.publicKey,publicKey:e.publicKey,type:e.type,...e.type===`webauthn-p256`?{credentialId:e.privateKey?.credential?.id,privateKey:{credential:{id:e.privateKey?.credential?.id},rpId:e.privateKey?.rpId}}:{}})}catch{return}}).filter(Boolean)}function yB(e,{address:t}){return e.map(e=>{if(e.chainId&&e.role===`session`&&!(e.expiry>0&&e.expiry()=>{})}}async function SB(e){let{account:t,calls:n,permissionsId:r}=e;if(r!==void 0){if(r===null)return;let e=t.keys?.find(e=>e.publicKey===r&&e.privateKey);if(!e)throw Error(`permission (id: ${r}) does not exist.`);return e}let i=t.keys?.find(e=>!e.privateKey||e.role!==`session`||e.expirye.permissions?.calls?.some(e=>{if(e.to&&e.to!==t.to)return!1;if(e.signature){if(!t.data)return!1;let n=Kf(t.data,0,4);if(Zf(e.signature))return e.signature===n;if(W_(e.signature)!==n)return!1}return!0}))),a=t.keys?.find(e=>e.role===`admin`&&e.privateKey);return i??a}function CB(e={}){let t=e.id??0;return{prepare(e){return wB({id:t++,...e})},get id(){return t}}}function wB(e){return{...e,jsonrpc:`2.0`}}function TB(){return null}const EB=gz;function DB(e){let{expiry:t,feeToken:n,permissions:r,publicKey:i,type:a}=e;return{expiry:t,feeToken:n??null,key:{publicKey:i,type:a},permissions:r??{}}}async function OB(e,t={}){if(!e)return;let n=t.chainId??e.chainId,r=e.expiry??0,i=e.feeToken,a=OL(e,{feeTokens:t.feeTokens}),o={chainId:n,expiry:r,feeToken:i,permissions:a,role:`session`};if(e?.key)return vL({...o,publicKey:e.key.publicKey,type:e.key.type??`secp256k1`});if(typeof globalThis.crypto?.subtle?.generateKey==`function`)try{return await _L(o)}catch(e){if(!kB(e))throw e}return mL(o)}function kB(e){if(!(e instanceof Error))return!1;let t=e.message?.toLowerCase()??``;return e.name===`TypeError`||e.name===`ReferenceError`||t.includes(`subtle`)||t.includes(`generatekey`)}Jd();const AB=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,jB=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/,MB=/^localhost(:[0-9]{1,5})?$/,NB=/^[a-zA-Z0-9]{8,}$/,PB=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/,FB=/^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?
0x[a-fA-F0-9]{40})\n\n(?:(?.*)\n\n)?/,IB=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;function LB(e){let{chainId:t,domain:n,expirationTime:r,issuedAt:i=new Date,nonce:a,notBefore:o,requestId:s,resources:c,scheme:l,uri:u,version:d}=e;{if(t!==Math.floor(t))throw new VB({field:`chainId`,metaMessages:[`- Chain ID must be a EIP-155 chain ID.`,`- See https://eips.ethereum.org/EIPS/eip-155`,``,`Provided value: ${t}`]});if(!(AB.test(n)||jB.test(n)||MB.test(n)))throw new VB({field:`domain`,metaMessages:[`- Domain must be an RFC 3986 authority.`,`- See https://www.rfc-editor.org/rfc/rfc3986`,``,`Provided value: ${n}`]});if(!NB.test(a))throw new VB({field:`nonce`,metaMessages:[`- Nonce must be at least 8 characters.`,`- Nonce must be alphanumeric.`,``,`Provided value: ${a}`]});if(!RB(u))throw new VB({field:`uri`,metaMessages:[`- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.`,`- See https://www.rfc-editor.org/rfc/rfc3986`,``,`Provided value: ${u}`]});if(d!==`1`)throw new VB({field:`version`,metaMessages:[`- Version must be '1'.`,``,`Provided value: ${d}`]});if(l&&!PB.test(l))throw new VB({field:`scheme`,metaMessages:[`- Scheme must be an RFC 3986 URI scheme.`,`- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1`,``,`Provided value: ${l}`]});let r=e.statement;if(r?.includes(` +`))throw new VB({field:`statement`,metaMessages:[`- Statement must not include '\\n'.`,``,`Provided value: ${r}`]})}let f=rg(e.address,{checksum:!0}),p=(()=>l?`${l}://${n}`:n)(),m=(()=>e.statement?`${e.statement}\n`:``)(),h=`${p} wants you to sign in with your Ethereum account:\n${f}\n\n${m}`,g=`URI: ${u}\nVersion: ${d}\nChain ID: ${t}\nNonce: ${a}\nIssued At: ${i.toISOString()}`;if(r&&(g+=`\nExpiration Time: ${r.toISOString()}`),o&&(g+=`\nNot Before: ${o.toISOString()}`),s&&(g+=`\nRequest ID: ${s}`),c){let e=` +Resources:`;for(let t of c){if(!RB(t))throw new VB({field:`resources`,metaMessages:[`- Every resource must be a RFC 3986 URI.`,`- See https://www.rfc-editor.org/rfc/rfc3986`,``,`Provided value: ${t}`]});e+=`\n- ${t}`}g+=e}return`${h}\n${g}`}function RB(e){if(/[^a-z0-9:/?#[\]@!$&'()*+,;=.\-_~%]/i.test(e)||/%[^0-9a-f]/i.test(e)||/%[0-9a-f](:?[^0-9a-f]|$)/i.test(e))return!1;let t=zB(e),n=t[1],r=t[2],i=t[3],a=t[4],o=t[5];if(!(n?.length&&i&&i.length>=0))return!1;if(r?.length){if(!(i.length===0||/^\//.test(i)))return!1}else if(/^\/\//.test(i))return!1;if(!/^[a-z][a-z0-9+\-.]*$/.test(n.toLowerCase()))return!1;let s=``;return s+=`${n}:`,r?.length&&(s+=`//${r}`),s+=i,a?.length&&(s+=`?${a}`),o?.length&&(s+=`#${o}`),s}function zB(e){return e.match(/(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)}function BB(e){let{scheme:t,statement:n,...r}=e.match(FB)?.groups??{},{chainId:i,expirationTime:a,issuedAt:o,notBefore:s,requestId:c,...l}=e.match(IB)?.groups??{},u=e.split(`Resources:`)[1]?.split(` +- `).slice(1);return{...r,...l,...i?{chainId:Number(i)}:{},...a?{expirationTime:new Date(a)}:{},...o?{issuedAt:new Date(o)}:{},...s?{notBefore:new Date(s)}:{},...c?{requestId:c}:{},...u?{resources:u}:{},...t?{scheme:t}:{},...n?{statement:n}:{}}}var VB=class extends P{constructor(e){let{field:t,metaMessages:n}=e;super(`Invalid Sign-In with Ethereum message field "${t}".`,{metaMessages:n}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Siwe.InvalidMessageFieldError`})}};async function HB(e){let{address:t,authUrl:n,message:r,signature:i,publicKey:a}=e,{chainId:o}=BB(r);return await fetch(n.verify,{body:JSON.stringify({address:t,chainId:o,message:r,signature:i,walletAddress:t,...a&&{publicKey:a}}),credentials:`include`,headers:{"Content-Type":`application/json`},method:`POST`}).then(e=>e.json())}async function UB(e,t,n){let{chainId:r=e.chain?.id,domain:i,uri:a,resources:o,version:s=`1`}=t,{address:c}=n,l=t.authUrl?WB(t.authUrl):void 0;if(!r)throw Error("`chainId` is required.");if(!i)throw Error("`domain` is required.");if(!t.nonce&&!l?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");if(!a)throw Error("`uri` is required.");let u=await(async()=>{if(t.nonce)return t.nonce;if(!l?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");let e=await(await fetch(l.nonce,{body:JSON.stringify({address:c,chainId:r,walletAddress:c}),headers:{"Content-Type":`application/json`},method:`POST`})).json().catch(()=>void 0);if(!e?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");return e.nonce})();return LB({...t,address:n.address,chainId:r,domain:i,nonce:u,resources:o,uri:a,version:s})}function WB(e,t=``){if(!e)return;let n=(()=>{if(typeof e==`string`){let t=e.replace(/\/$/,``);return{logout:t+`/logout`,nonce:t+`/nonce`,verify:t+`/verify`}}return e})();return{logout:GB(n.logout,t),nonce:GB(n.nonce,t),verify:GB(n.verify,t)}}function GB(e,t){return!t||!e.startsWith(`/`)?e:t+e}op();function KB(e){let t=Bf(e);return zf(`0x19`,Uf(`Ethereum Signed Message: +`+qf(t)),t)}function qB(e){return Hh(KB(e))}async function JB(e,t){let{account:n=e.account}=t,r=n?ML(n):void 0;if(!r)throw Error(`account is required.`);let{domain:{name:i,version:a}}=await $m(e,{address:r.address});if(!e.chain)throw Error(`client.chain is required`);return{chainId:e.chain.id,name:i,verifyingContract:r.address,version:a}}async function YB(e,t){let{account:n=e.account,chainIds:r}=t,i=n?ML(n):void 0;if(!i)throw Error(`account is required.`);let a=await UR(e,{address:i.address,chainIds:r});return Object.entries(a).flatMap(([e,t])=>t.map(t=>bL(t,{chainId:Number(e)})))}async function XB(e,t){let{account:n=e.account,calls:r,chain:i=e.chain,feePayer:a,merchantUrl:o,nonce:s,preCalls:c,requiredFunds:l,revokeKeys:u}=t,d=n?ML(n):void 0,f=t.key??(d?PL(d,{role:`admin`}):void 0),p=t.authorizeKeys?.some(e=>e.role===`session`),{contracts:m,fees:{tokens:h}}=await BR(e,{chainId:i?.id}),g=p?m.orchestrator.address:void 0,_=(t.authorizeKeys??[]).map(e=>DL(e,{feeTokens:h,orchestrator:g})),v=(()=>t.feeToken?t.feeToken:f?.permissions?.spend?.[0]?.token)(),y=typeof c==`boolean`?c:!1,b=typeof c==`object`?c.map(({context:e,signature:t})=>({...e.preCall,signature:t})):void 0,x={address:d?.address,calls:r??[],capabilities:{authorizeKeys:_,meta:{feePayer:a,feeToken:v,nonce:s},preCall:y,preCalls:b,requiredFunds:l,revokeKeys:u?.map(e=>({hash:e.hash}))},chain:i,key:f?DL(f,{feeTokens:h}):void 0},S=await(async()=>{if(o){let t=Xm({chain:e.chain,transport:zv(o)});return await GR(t,x).catch(t=>(console.error(t),GR(e,x)))}return await GR(e,x)})(),{capabilities:C,context:w,digest:ee,signature:te,typedData:ne}=S;if(o&&!await ZR(e,{response:S._raw,signature:te}))throw Error(`cannot verify integrity of \`wallet_prepareCalls\` response from ${o}`);return{capabilities:{...C,quote:w.quote},context:w,digest:ee,key:f,typedData:ne}}async function ZB(e,t){let{address:n,authorizeKeys:r,chain:i=e.chain}=t;if(!i)throw Error(`chain is required.`);let{contracts:a,fees:{tokens:o}}=await BR(e,{chainId:i.id}),s=t.delegation??a.accountProxy.address,c=r.some(e=>e.role===`session`)?a.orchestrator.address:void 0,l=r.map(e=>{let t=e.role===`session`?e.permissions:{};return DL({...e,permissions:t},{feeTokens:o,orchestrator:c})}),{capabilities:u,chainId:d,context:f,digests:p,typedData:m}=await KR(e,{address:n,authorizeKeys:l,chain:i,delegation:s}),h=ML({address:n,keys:r});return{capabilities:u,chainId:d,context:{...f,account:h},digests:p,typedData:m}}async function QB(e,t){let{account:n=e.account,chain:r=e.chain,webAuthn:i}=t;if(!r)throw Error("`chain` is required.");let a=n?ML(n):void 0;if(!a)throw Error("`account` is required.");let o=t.key??PL(a,t);if(!o&&!a.sign)throw Error("`key` or `account` with `sign` is required");let s=await Promise.all((t.preCalls??[]).map(async n=>{if(n.signature)return n;let{authorizeKeys:o,key:s,calls:c,revokeKeys:l}=n,{context:u,digest:d}=await XB(e,{account:a,authorizeKeys:o,calls:c,chain:r,feeToken:t.feeToken,key:s,preCalls:!0,revokeKeys:l}),f=await EL(s,{address:null,payload:d,webAuthn:i});return{context:u,signature:f}})),{capabilities:c,context:l,digest:u}=await XB(e,{...t,account:a,chain:r,key:o,preCalls:s}),d=await(async()=>o?await EL(o,{address:null,payload:u,webAuthn:i,wrap:!1}):await a.sign({hash:u}))();return await $B(e,{capabilities:c.feeSignature?{feeSignature:c.feeSignature}:void 0,context:l,key:o,signature:d})}async function $B(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;return await qR(e,{capabilities:n,context:r,key:i?DL(i):void 0,signature:a})}async function eV(e,t){let{email:n,walletAddress:r}=t;return await JR(e,{email:n,walletAddress:r})}async function tV(e,t){if(t.account){let{account:n}=t,r=[...n.keys??[],...t.authorizeKeys??[]].filter((e,t,n)=>n.findIndex(t=>t.id===e.id)===t),{digests:i,...a}=await ZB(e,{...t,address:n.address,authorizeKeys:r}),o={auth:await n.sign({hash:i.auth}),exec:await n.sign({hash:i.exec})};return await tV(e,{...a,signatures:o})}let{context:n,signatures:r}=t,i=ML(n.account);return await YR(e,{context:n,signatures:r}),i}async function nV(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;return await XR(e,{chainId:n,email:r,signature:i,token:a,walletAddress:o})}async function rV(e,t){let{address:n}=t,{authorization:r,data:i,to:a}=await zR(e,{address:n});return P_({authorization:{...r,nonce:BigInt(r.nonce),r:BigInt(r.r),s:BigInt(r.s)},data:i,signature:t.signature,to:a})}function iV(e,t){let{tokens:n}=t,r=n.filter(e=>e.interop);return e.map(e=>{if(e.address)return e;let t=r.find(t=>t.symbol===e.symbol);if(!t)throw Error(`interop token not found: ${e.symbol}`);return{address:t.address,value:LI(e.value,t.decimals)}})}async function aV(e,t){let{chain:n=e.chain}=t??{};return await BR(e,{chainId:n?.id}).then(e=>e.fees.tokens)}async function oV(e,t){let{addressOrSymbol:n}=t;return(await aV(e,t)).find(oV.predicate(n))}(function(e){function t(e){return t=>e?og(e)?ag(t.address,e):e===`native`?t.address===Q_:e===t.symbol:!1}e.predicate=t})(oV||={});async function sV(e,t){let{chain:n=e.chain,store:r}=t??{},i=r?.getState()??{},a=t?.addressOrSymbol??i.feeToken;return(await aV(e,{chain:n}).then(e=>e.filter(e=>e.feeToken)))?.find(e=>a?a===`native`&&e.address===`0x0000000000000000000000000000000000000000`||og(a)&&ag(e.address,a)?!0:a===e.symbol:!1)}Lf(),op(),pf();function cV(e={}){let t=e,{mock:n,multichain:r=!0,webAuthn:i}=t,a,o,s=(()=>{if(t.keystoreHost!==`self`&&!(typeof window<`u`&&window.location?.hostname===`localhost`))return t.keystoreHost})();return xB({actions:{async addFunds(){throw new WM},async createAccount(e){let{admins:t,email:r,label:o,permissions:c,internal:l,signInWithEthereum:u}=e,{client:d}=l,f=NL(D_()),p=await aV(d),m=n?gL():await hL({createFn:i?.createFn,label:o||`${f.address.slice(0,8)}\u2026${f.address.slice(-6)}`,rpId:s,userId:hf(f.address)}),h=await OB(c,{chainId:d.chain.id,feeTokens:p}),g=t?.map(e=>vL(e)),_=await tV(d,{account:f,authorizeKeys:[m,...g??[],...h?[h]:[]]});a=f.address,r&&o&&await eV(d,{email:o,walletAddress:_.address});let v=await(async()=>{if(!u)return;let e=await UB(d,u,{address:_.address}),t=await FL(f,{payload:qB(Uf(e))}),n=await rV(d,{address:_.address,signature:t});return{message:e,signature:n}})();return{account:{..._,signInWithEthereum:v}}},async getAccountVersion(e){let{address:t,internal:n}=e,{client:r}=n,{contracts:i}=await BR(r),{accountImplementation:a}=i,o=await JB(r,{account:ML(a)}).then(e=>e.version),s=await JB(r,{account:t}).then(e=>e.version).catch(()=>o);if(!s||!o)throw Error(`version not found.`);return{current:s,latest:o}},async getAssets(e){let{account:t,chainFilter:n,assetFilter:r,assetTypeFilter:i,internal:a}=e,{client:o}=a;return await VR(o,{account:t,assetFilter:r,assetTypeFilter:i,chainFilter:n})},async getCallsStatus(e){let{id:t,internal:n}=e,{client:r}=n,i=await HR(r,{id:t});return{atomic:!0,chainId:I(r.chain.id),id:t,receipts:i.receipts?.map(e=>({blockHash:e.blockHash,blockNumber:I(e.blockNumber),gasUsed:I(e.gasUsed),logs:e.logs,status:e.status,transactionHash:e.transactionHash})),status:i.status,version:`1.0`}},async getCapabilities(e){let{chainIds:t,internal:n}=e,{client:i}=n,a={atomic:{status:`supported`},atomicBatch:{supported:!0},feeToken:{supported:!0,tokens:[]},merchant:{supported:!0},permissions:{supported:!0},requiredFunds:{supported:!!r,tokens:[]}},o=await BR(i,{chainIds:t?t.map(e=>Xf(e)):`all`,raw:!0});return Object.entries(o).reduce((e,[t,n])=>({...e,[t]:{...a,...n,feeToken:{supported:!0,tokens:n.fees.tokens},requiredFunds:{supported:!!r,tokens:r?n.fees.tokens.filter(e=>e.interop):[]}}}),{})},async getKeys(e){let{account:t,chainIds:n,internal:r}=e,{client:i}=r,a=await YB(i,{account:t,chainIds:n});return mN([...a,...t.keys??[]],e=>e.publicKey)},async grantAdmin(e){let{account:t,internal:n}=e,{client:r}=n,a=vL(e.key,{chainId:r.chain.id}),o=await sV(r,{addressOrSymbol:e.feeToken,store:n.store}),{id:s}=await QB(r,{account:t,authorizeKeys:[a],feeToken:o?.address,webAuthn:i});return await Wm(r,{id:s,pollingInterval:500}),{key:a}},async grantPermissions(e){let{account:t,internal:n,permissions:r}=e,{client:i}=n,a=await aV(i),o=await OB(r,{chainId:i.chain.id,feeTokens:a});if(!o)throw Error(`key to authorize not found.`);let s=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!s)throw Error(`admin key not found.`);let{context:c,digest:l}=await XB(i,{account:t,authorizeKeys:[o],key:s,preCalls:!0}),u=await EL(s,{address:null,payload:l});return await $B(i,{context:c,key:s,signature:u}),{key:o}},async loadAccounts(e){let{internal:t,permissions:r,signInWithEthereum:o}=e,{client:c}=t,l=await aV(c),u=await OB(r,{chainId:c.chain.id,feeTokens:l}),{digest:d,digestType:f,message:p}=await(async()=>{if(o&&e.address){let t=await UB(c,o,{address:e.address});return{context:void 0,digest:qB(Uf(t)),digestType:`siwe`,message:t}}return{context:void 0,digest:`0x`,message:void 0}})(),{address:m,credentialId:h,webAuthnSignature:g}=await(async()=>{if(n){if(!a)throw Error(`address_internal not found.`);return{address:a,credentialId:void 0}}if(e.address&&e.key)return{address:e.address,credentialId:e.key.credentialId};let t=await tL({challenge:d,getFn:i?.getFn,rpId:s}),r=t.raw.response,o=wf(new Uint8Array(r.userHandle)),c=t.raw.id;return{address:o,credentialId:c,webAuthnSignature:t}})(),_=await YB(c,{account:m,chainIds:[c.chain.id]}),v=ML({address:m,keys:[..._,...u?[u]:[]].map((e,t)=>t===0&&e.type===`webauthn-p256`?xL({...e,credential:{id:h,publicKey:qh(e.publicKey)},id:m,rpId:s}):e)}),y=PL(v,{role:`admin`}),b=await(async()=>{if(d!==`0x`)return g?jL(AL(g),{keyType:`webauthn-p256`,publicKey:y.publicKey}):await EL(y,{address:v.address,payload:d})})();if(u){let{context:e,digest:t}=await XB(c,{account:v,authorizeKeys:[u],preCalls:!0}),n=await EL(y,{address:null,payload:t});await $B(c,{context:e,key:y,signature:n})}let x=await(async()=>{if(o){if(f===`siwe`&&p&&b){let e=await rV(c,{address:v.address,signature:b});return{message:p,signature:e}}{let e=await UB(c,o,{address:v.address}),t=await FL(v,{payload:qB(Uf(e)),role:`admin`}),n=await rV(c,{address:v.address,signature:t});return{message:e,signature:n}}}})();return{accounts:[{...v,signInWithEthereum:x}]}},async prepareCalls(e){let{account:t,calls:n,internal:i,merchantUrl:a}=e,{client:o}=i,s=e.key??await SB({account:t,calls:n});if(!s)throw Error(`cannot find authorized key to sign with.`);let[c,l]=await Promise.all([aV(o),sV(o,{addressOrSymbol:e.feeToken,store:i.store})]),u=iV(e.requiredFunds??[],{tokens:c}),{capabilities:d,context:f,digest:p,typedData:m}=await XB(o,{account:t,calls:n,feeToken:l?.address,key:s,merchantUrl:a,requiredFunds:r?u:void 0}),h=f.quote?.quotes??[],g=h[h.length-1];return{account:t,capabilities:{...d,quote:f.quote},chainId:o.chain.id,context:{...f,account:t,calls:n,nonce:g?.intent.nonce},digest:p,key:s,typedData:m}},async prepareUpgradeAccount(e){let{address:t,email:r,label:a,internal:c,permissions:l}=e,{client:u}=c,[d,f]=await Promise.all([aV(u),sV(u,{store:c.store})]),p=n?gL():await hL({createFn:i?.createFn,label:a||`${t.slice(0,8)}\u2026${t.slice(-6)}`,rpId:s,userId:hf(t)}),m=await OB(l,{chainId:u.chain.id,feeTokens:d}),{context:h,digests:g}=await ZB(u,{address:t,authorizeKeys:[p,...m?[m]:[]],feeToken:f?.address});return r&&(o=a),{context:h,digests:g}},async revokeAdmin(e){let{account:t,id:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.id===n);if(o){if(o.type===`webauthn-p256`&&t.keys?.filter(e=>e.type===`webauthn-p256`).length===1)throw Error(`revoke the only WebAuthn key left.`);try{let n=await sV(a,{addressOrSymbol:e.feeToken,store:r.store}),{id:s}=await QB(a,{account:t,feeToken:n?.address,revokeKeys:[o],webAuthn:i});await Wm(a,{id:s})}catch(e){let t=e;if(t.name===`Rpc.ExecutionError`&&t.abiError?.name===`KeyDoesNotExist`)return;throw e}}},async revokePermissions(e){let{account:t,id:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.id===n);if(o){if(o.role===`admin`)throw Error(`cannot revoke admins.`);try{let n=await sV(a,{addressOrSymbol:e.feeToken,store:r.store}),{id:s}=await QB(a,{account:t,feeToken:n?.address,revokeKeys:[o],webAuthn:i});await Wm(a,{id:s})}catch(e){let t=e;if(t.name===`Rpc.ExecutionError`&&t.abiError?.name===`KeyDoesNotExist`)return;throw e}}},async sendCalls(e){let{account:t,asTxHash:n,calls:a,chainId:o,internal:s,merchantUrl:c}=e,{client:l}=s,u=await SB({account:t,calls:a,permissionsId:e.permissionsId}),[d,f]=await Promise.all([aV(l),sV(l,{addressOrSymbol:e.feeToken,store:s.store})]),p=iV(e.requiredFunds??[],{tokens:d}),m=await QB(l,{account:t,calls:a,feeToken:f?.address,key:u,merchantUrl:c,requiredFunds:r?p:void 0,webAuthn:i,...o?{chain:{id:o}}:{}});if(n){let{id:e,receipts:t,status:n}=await Wm(l,{id:m.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new ZM({message:`Call bundle with id: `+e+` not found.`}):new MM({message:`Transaction failed under call bundle id: `+e+`.`});return{id:t[0].transactionHash}}return m},async sendPreparedCalls(e){let{context:t,key:n,internal:r,signature:i}=e,{client:a}=r,{id:o}=await $B(a,{context:t,key:n,signature:i});return o},async signPersonalMessage(e){let{account:t,data:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!o)throw Error(`cannot find admin key to sign with.`);let s=await FL(t,{key:o,payload:qB(n),webAuthn:i});return rV(a,{address:t.address,signature:s})},async signTypedData(e){let{account:t,internal:n}=e,{client:r}=n,a=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!a)throw Error(`cannot find admin key to sign with.`);let o=uf(e.data),s=o.domain?.name===`Orchestrator`,c=await FL(t,{key:a,payload:lI(o),replaySafe:!s,webAuthn:i});return s?c:rV(r,{address:t.address,signature:c})},async upgradeAccount(e){let{account:t,context:n,internal:r,signatures:i}=e,{client:a}=r;return await tV(a,{context:n,signatures:i}),o&&await eV(a,{email:o,walletAddress:t.address}),{account:t}},async verifyEmail(e){let{account:t,chainId:n,email:r,token:a,internal:o,walletAddress:s}=e,{client:c}=o,l=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!l)throw Error(`cannot find admin key to sign with.`);let u=await FL(t,{key:l,payload:Hh(Uf(`${r}${a}`)),webAuthn:i});return await nV(c,{chainId:n,email:r,signature:u,token:a,walletAddress:s})}},config:e,name:`rpc`})}op();function lV(e={}){let{fallback:t=cV(),host:n=bN.prod,renderer:r=SN(),theme:i,themeController:a}=e,o=new Set,s=CB();function c(e){return nN({async request(t){let n=s.prepare(t);return e.setState(e=>{let t=e.accounts[0],r=t?.keys?.find(e=>e.role===`admin`&&e.type===`webauthn-p256`);return{...e,requestQueue:[...e.requestQueue,{account:t?{address:t.address,key:r?{credentialId:r?.credentialId,publicKey:r.publicKey}:void 0}:void 0,request:n,status:`pending`}]}}),new Promise((t,r)=>{let i=a=>{let s=a.find(e=>e.request.id===n.id);if(!s&&a.length===0){o.delete(i),r(new HM);return}s&&(s.status!==`success`&&s.status!==`error`||(o.delete(i),s.status===`success`?t(s.result):r(rN(s.error)),e.setState(e=>({...e,requestQueue:e.requestQueue.filter(e=>e.request.id!==n.id)}))))};o.add(i)})}},{schema:TB()})}return xB({actions:{async addFunds(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`wallet_addFunds`)throw Error(`Cannot add funds for method: `+n.method);return await c(r).request(n)},async createAccount(e){let{internal:t}=e,{client:n,config:r,request:i,store:a}=t,{storage:o}=r,s=c(a);return{account:await(async()=>{if(i.method===`wallet_connect`){let[{capabilities:e,chainIds:t}]=i._decoded.params??[{}],a=dV(e?.signInWithEthereum?.authUrl??r.authUrl,{storage:o}),c=i.params?.[0]?.capabilities?.signInWithEthereum,l=await OB(e?.grantPermissions,{chainId:n.chain.id}),u=l?pP(EB,DB(l)):void 0,{accounts:d}=await s.request({...i,params:[{capabilities:{...i.params?.[0]?.capabilities,grantPermissions:u,signInWithEthereum:a||c?{...c,authUrl:a}:void 0},chainIds:t?.map(e=>I(e))}]}),[f]=d;if(!f)throw Error(`no account found.`);let p=f.capabilities?.admins?.map(e=>vL(e,{chainId:n.chain.id})).filter(Boolean),m=f.capabilities?.permissions?.map(e=>{try{let t=yz(mP(_z,e));return t.id===l?.id?{...t,...l,permissions:t.permissions}:t}catch{return}}).filter(Boolean),h=await(async()=>{if(!f.capabilities?.signInWithEthereum)return;let{message:e,signature:t}=f.capabilities.signInWithEthereum;if(!a)return{message:e,signature:t};let{token:n}=await HB({address:f.address,authUrl:a,message:e,publicKey:f.capabilities?.admins?.[0]?.publicKey,signature:t});return{message:e,signature:t,token:n}})();return{...ML({address:f.address,keys:[...p??[],...m??[]]}),signInWithEthereum:h}}throw Error(`Account creation not supported on method: ${i.method}`)})()}},async disconnect(e){let{internal:t}=e,{config:n}=t,{storage:r}=n,i=await r.getItem(`porto.authUrl`)||void 0,a=dV(n.authUrl??i,{storage:r});a&&await fetch(a.logout,{credentials:`include`,method:`POST`}).catch(()=>{})},async getAccountVersion(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getAccountVersion`)throw Error(`Cannot get version for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getAccountVersion(e)},async getAssets(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getAssets`)throw Error(`Cannot get assets for method: `+a.method);if(!r.supportsHeadless)return t.actions.getAssets(e);let o=await c(i).request(a);return mP(rB.Response,o)},async getCallsStatus(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getCallsStatus`)throw Error(`Cannot get status for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getCallsStatus(e)},async getCapabilities(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getCapabilities`)throw Error(`Cannot get capabilities for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getCapabilities(e)},async getKeys(e){let{account:n,chainIds:i,internal:a}=e,{store:o}=a,s=await(async()=>{if(!r.supportsHeadless)return t.actions.getKeys(e);let a=await c(o).request({method:`wallet_getKeys`,params:[pP(oB.Parameters,{address:n.address,chainIds:i})]});return mP(oB.Response,a)})();return mN([...s,...n.keys??[]],e=>e.publicKey)},async grantAdmin(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`wallet_grantAdmin`)throw Error(`Cannot authorize admin for method: `+n.method);let[i]=n._decoded.params,a=vL(i.key);if(!a)throw Error(`no key found.`);let o=await uV(t,e);return await c(r).request({method:`wallet_grantAdmin`,params:[{...n.params?.[0],capabilities:{...n.params?.[0]?.capabilities,feeToken:o}}]}),{key:a}},async grantPermissions(e){let{internal:t}=e,{client:n,request:r,store:i}=t;if(r.method!==`wallet_grantPermissions`)throw Error(`Cannot grant permissions for method: `+r.method);let[{address:a,...o}]=r._decoded.params,s=await OB(o,{chainId:n.chain.id});if(!s)throw Error(`no key found.`);let l=pP(EB,DB(s));return await c(i).request({method:`wallet_grantPermissions`,params:[l]}),{key:s}},async loadAccounts(e){let{internal:t}=e,{client:n,config:r,store:i}=t,{storage:a}=r,o=c(i),s=t.request;if(s.method!==`wallet_connect`&&s.method!==`eth_requestAccounts`)throw Error(`Cannot load accounts for method: `+s.method);return{accounts:await(async()=>{let[e]=s._decoded.params??[],{capabilities:t}=e??{},i=dV(t?.signInWithEthereum?.authUrl??r.authUrl,{storage:a}),c=s.params?.[0]?.capabilities?.signInWithEthereum,l=await OB(t?.grantPermissions,{chainId:n.chain.id}),u=l?pP(EB,DB(l)):void 0,{accounts:d}=await o.request({method:`wallet_connect`,params:[{...s.params?.[0],capabilities:{...s.params?.[0]?.capabilities,grantPermissions:u,signInWithEthereum:i||c?{...c,authUrl:i}:void 0}}]});return Promise.all(d.map(async e=>{let t=e.capabilities?.admins?.map(e=>vL(e)).filter(Boolean),n=e.capabilities?.permissions?.map(e=>{try{let t=yz(mP(_z,e));return t.id===l?.id?{...t,...l,permissions:t.permissions}:t}catch{return}}).filter(Boolean),r=await(async()=>{if(!e.capabilities?.signInWithEthereum)return;let{message:t,signature:n}=e.capabilities.signInWithEthereum;if(!i)return{message:t,signature:n};let{token:r}=await HB({address:e.address,authUrl:i,message:t,publicKey:e.capabilities?.admins?.[0]?.publicKey,signature:n});return{message:t,signature:n,token:r}})();return{...ML({address:e.address,keys:[...t??[],...n??[]]}),signInWithEthereum:r}}))})()}},async prepareCalls(e){let{account:n,internal:i}=e,{store:a,request:o}=i;if(o.method!==`wallet_prepareCalls`)throw Error(`Cannot prepare calls for method: `+o.method);if(!r.supportsHeadless)return t.actions.prepareCalls(e);let s=await uV(i,e),l=c(a),u=mP(sB.Response,await l.request({...o,params:[{...o.params?.[0],capabilities:{...o.params?.[0]?.capabilities,feeToken:s}}]}));return{account:n,chainId:Number(u.chainId),context:u.context,digest:u.digest,key:u.key,typedData:u.typedData}},async prepareUpgradeAccount(e){let{internal:n}=e,{client:i,store:a,request:o}=n;if(o.method!==`wallet_prepareUpgradeAccount`)throw Error(`Cannot prepare upgrade for method: `+o.method);if(!r.supportsHeadless)return t.actions.prepareUpgradeAccount(e);let[{capabilities:s}]=o._decoded.params??[{}],l=await OB(s?.grantPermissions,{chainId:i.chain.id}),u=l?pP(EB,DB(l)):void 0,{context:d,digests:f}=await c(a).request({...o,params:[{...o.params?.[0],capabilities:{...o.params?.[0]?.capabilities,grantPermissions:u}}]}),p=d.account.keys?.map(e=>e.id===l?.id?{...e,...l}:e);return{context:{...d,account:{...d.account,keys:p}},digests:f}},async revokeAdmin(e){let{account:t,id:n,internal:r}=e,{store:i,request:a}=r;if(a.method!==`wallet_revokeAdmin`)throw Error(`Cannot revoke admin for method: `+a.method);let o=t.keys?.find(e=>e.id===n);if(!o)return;if(o.type===`webauthn-p256`&&t.keys?.filter(e=>e.type===`webauthn-p256`).length===1)throw Error(`revoke the only WebAuthn key left.`);let s=await uV(r,e);return await c(i).request({...a,params:[{...a.params?.[0],capabilities:{...a.params?.[0]?.capabilities,feeToken:s}}]})},async revokePermissions(e){let{account:t,id:n,internal:r}=e,{store:i,request:a}=r;if(a.method!==`wallet_revokePermissions`)throw Error(`Cannot revoke permissions for method: `+a.method);let o=t.keys?.find(e=>e.id===n);if(o){if(o.role===`admin`)throw Error(`cannot revoke permissions.`);return await c(i).request(a)}},async sendCalls(e){let{account:n,asTxHash:i,calls:a,chainId:o,internal:s,merchantUrl:l,requiredFunds:u}=e,{client:d,store:f,request:p}=s,m=c(f),h=await uV(s,e),g=await SB({account:n,calls:a,permissionsId:e.permissionsId});if(g&&g.role===`session`){if(!r.supportsHeadless)return t.actions.sendCalls(e);try{let e=await m.request(pP(sB.Request,{method:`wallet_prepareCalls`,params:[{calls:a,capabilities:{...p._decoded.method===`wallet_sendCalls`?p._decoded.params?.[0]?.capabilities:void 0,feeToken:h,merchantUrl:l,requiredFunds:u},chainId:o,from:n.address,key:g}]})),t=e.capabilities?.quote?.quotes??[];if(t.some((e,n)=>n===t.length-1&&t.length>1?!1:Yf(e.feeTokenDeficit)>0n))throw Error(`insufficient funds`);let r=await EL(g,{address:null,payload:e.digest,wrap:!1}),s=(await m.request({method:`wallet_sendPreparedCalls`,params:[{...e,signature:r}]}))[0];if(!s)throw Error(`id not found`);if(i){let{id:e,receipts:t,status:n}=await Wm(d,{id:s.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new ZM({message:`Call bundle with id: `+e+` not found.`}):new MM({message:`Transaction failed under call bundle id: `+e+`.`});return{id:t[0].transactionHash}}return s}catch{}}if(p.method===`eth_sendTransaction`)return{id:await m.request({...p,params:[{...p.params?.[0],capabilities:{feeToken:h,merchantUrl:l},...o?{chainId:I(o)}:{}}]})};if(p.method===`wallet_sendCalls`)return await m.request({method:`wallet_sendCalls`,params:[{...p.params?.[0],capabilities:{...p.params?.[0]?.capabilities,feeToken:h,merchantUrl:l},...o?{chainId:I(o)}:{}}]});throw Error(`Cannot execute for method: `+p.method)},async sendPreparedCalls(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_sendPreparedCalls`)throw Error(`Cannot send prepared calls for method: `+a.method);if(!r.supportsHeadless)return t.actions.sendPreparedCalls(e);let o=(await c(i).request(a))[0]?.id;if(!o)throw Error(`id not found`);return o},async signPersonalMessage(e){let{internal:t}=e,{store:n,request:r}=t;if(r.method!==`personal_sign`)throw Error(`Cannot sign personal message for method: `+r.method);return await c(n).request(r)},async signTypedData(e){let{internal:t}=e,{store:n,request:r}=t;if(r.method!==`eth_signTypedData_v4`)throw Error(`Cannot sign typed data for method: `+r.method);return await c(n).request(r)},async switchChain(e){let{internal:t}=e,{store:n,request:i}=t;if(i.method!==`wallet_switchEthereumChain`)throw Error(`Cannot switch chain for method: `+i.method);if(r.supportsHeadless)return await c(n).request(i)},async upgradeAccount(e){let{account:t,internal:n}=e,{store:r,request:i}=n;if(i.method!==`wallet_upgradeAccount`)throw Error(`Cannot upgrade account for method: `+i.method);return await c(r).request(i),{account:t}},async verifyEmail(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`account_verifyEmail`)throw Error(`Cannot verify email for method: `+n.method);return await c(r).request(n)}},config:e,name:`dialog`,setup(e){let{internal:t}=e,{store:s}=t,c=r.setup({host:n,internal:t,theme:i,themeController:a}),l=s.subscribe(e=>e.requestQueue,e=>{for(let t of o)t(e);let t=e.map(e=>e.status===`pending`?e:void 0).filter(Boolean);c.syncRequests(t).catch(()=>{}),t.length===0&&c.close()});return()=>{l(),c.destroy()}}})}async function uV(e,t){let{config:{feeToken:n}}=e,{feeToken:r}=t??{};return r??n}function dV(e,{storage:t}){if(!e)return;let n=WB(e,typeof window<`u`?window.location.origin:void 0);return n&&t.setItem(`porto.authUrl`,n),n}var fV=new Map,pV=e=>{let t=fV.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},mV=(e,t,n)=>{if(e===void 0)return{type:`untracked`,connection:t.connect(n)};let r=fV.get(n.name);if(r)return{type:`tracked`,store:e,...r};let i={connection:t.connect(n),stores:{}};return fV.set(n.name,i),{type:`tracked`,store:e,...i}},hV=(e,t)=>{if(t===void 0)return;let n=fV.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&fV.delete(e))},gV=e=>{if(!e)return;let t=e.split(` +`),n=t.findIndex(e=>e.includes(`api.setState`));if(n<0)return;let r=t[n+1]?.trim()||``;return/.+ (.+) .+/.exec(r)?.[1]},_V=(e,t={})=>(n,r,i)=>{let{enabled:a,anonymousActionType:o,store:s,...c}=t,l;try{l=(a??!1)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!l)return e(n,r,i);let{connection:u,...d}=mV(s,l,c),f=!0;i.setState=((e,t,a)=>{let l=n(e,t);if(!f)return l;let d=a===void 0?{type:o||gV(Error().stack)||`anonymous`}:typeof a==`string`?{type:a}:a;return s===void 0?(u?.send(d,r()),l):(u?.send({...d,type:`${s}/${d.type}`},{...pV(c.name),[s]:i.getState()}),l)}),i.devtools={cleanup:()=>{u&&typeof u.unsubscribe==`function`&&u.unsubscribe(),hV(c.name,s)}};let p=(...e)=>{let t=f;f=!1,n(...e),f=t},m=e(i.setState,r,i);if(d.type===`untracked`?u?.init(m):(d.stores[d.store]=i,u?.init(Object.fromEntries(Object.entries(d.stores).map(([e,t])=>[e,e===d.store?m:t.getState()])))),i.dispatchFromDevtools&&typeof i.dispatch==`function`){let e=i.dispatch;i.dispatch=(...t)=>{e(...t)}}return u.subscribe(e=>{switch(e.type){case`ACTION`:if(typeof e.payload!=`string`){console.error(`[zustand devtools middleware] Unsupported action format`);return}return vV(e.payload,e=>{if(e.type===`__setState`){if(s===void 0){p(e.state);return}Object.keys(e.state).length!==1&&console.error(` + [zustand devtools middleware] Unsupported __setState action format. + When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(), + and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } } + `);let t=e.state[s];if(t==null)return;JSON.stringify(i.getState())!==JSON.stringify(t)&&p(t);return}i.dispatchFromDevtools&&typeof i.dispatch==`function`&&i.dispatch(e)});case`DISPATCH`:switch(e.payload.type){case`RESET`:return p(m),s===void 0?u?.init(i.getState()):u?.init(pV(c.name));case`COMMIT`:if(s===void 0){u?.init(i.getState());return}return u?.init(pV(c.name));case`ROLLBACK`:return vV(e.state,e=>{if(s===void 0){p(e),u?.init(i.getState());return}p(e[s]),u?.init(pV(c.name))});case`JUMP_TO_STATE`:case`JUMP_TO_ACTION`:return vV(e.state,e=>{if(s===void 0){p(e);return}JSON.stringify(i.getState())!==JSON.stringify(e[s])&&p(e[s])});case`IMPORT_STATE`:{let{nextLiftedState:t}=e.payload,n=t.computedStates.slice(-1)[0]?.state;if(!n)return;p(s===void 0?n:n[s]),u?.send(null,t);return}case`PAUSE_RECORDING`:return f=!f}return}}),m},vV=(e,t)=>{let n;try{n=JSON.parse(e)}catch(e){console.error(`[zustand devtools middleware] Could not parse the received json`,e)}n!==void 0&&t(n)},yV=e=>(t,n,r)=>{let i=r.subscribe;return r.subscribe=((e,t,n)=>{let a=e;if(t){let i=n?.equalityFn||Object.is,o=e(r.getState());a=n=>{let r=e(n);if(!i(o,r)){let e=o;t(o=r,e)}},n?.fireImmediately&&t(o,o)}return i(a)}),e(t,n,r)};function bV(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var xV=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return xV(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return xV(t)(e)}}}},SV=(e,t)=>(n,r,i)=>{let a={storage:bV(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=new Set,c=new Set,l=a.storage;if(!l)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let u=()=>{let e=a.partialize({...r()});return l.setItem(a.name,{state:e,version:a.version})},d=i.setState;i.setState=(e,t)=>(d(e,t),u());let f=e((...e)=>(n(...e),u()),r,i);i.getInitialState=()=>f;let p,m=()=>{if(!l)return;o=!1,s.forEach(e=>e(r()??f));let e=a.onRehydrateStorage?.call(a,r()??f)||void 0;return xV(l.getItem.bind(l))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(e=>{let[t,i]=e;if(p=a.merge(i,r()??f),n(p,!0),t)return u()}).then(()=>{e?.(p,void 0),p=r(),o=!0,c.forEach(e=>e(p))}).catch(t=>{e?.(void 0,t)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(l=e.storage)},clearStorage:()=>{l?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:e=>(s.add(e),()=>{s.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},a.skipHydration||m(),p||f},CV=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},wV=(e=>e?CV(e):CV);function TV(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function EV(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=TV(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var DV;function OV(){return DV||=EV(`keyval-store`,`keyval`),DV}function kV(e,t=OV()){return t(`readonly`,t=>TV(t.get(e)))}function AV(e,t,n=OV()){return n(`readwrite`,n=>(n.put(t,e),TV(n.transaction)))}function jV(e,t=OV()){return t(`readwrite`,t=>(t.delete(e),TV(t.transaction)))}function MV(e){return e}function NV(){let e=typeof indexedDB<`u`?EV(`porto`,`store`):void 0;return MV({async getItem(t){let n=await kV(t,e);return n===null?null:n},async removeItem(t){await jV(t,e)},async setItem(t,n){await AV(t,pN(n),e)},sizeLimit:1024*1024*50})}function PV(){let e=new Map;return MV({getItem(t){return e.get(t)??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,n)},sizeLimit:1/0})}var FV=typeof window<`u`&&typeof document<`u`;const IV={announceProvider:!0,chains:CM,mode:FV?lV({host:bN.prod}):cV(),relay:zv(rz.prod.http),storage:FV&&typeof indexedDB<`u`?NV():PV(),storageKey:`porto.store`};function LV(e={}){let t=e.chains??IV.chains,n=Object.fromEntries(t.map(t=>[t.id,e.transports?.[t.id]??zv()])),r={announceProvider:e.announceProvider??IV.announceProvider,authUrl:e.authUrl,chains:t,feeToken:e.feeToken,merchantUrl:e.merchantUrl,mode:e.mode??IV.mode,relay:e.relay??IV.relay,storage:e.storage??IV.storage,storageKey:e.storageKey??IV.storageKey,transports:n},i=wV(_V(yV(SV(e=>({accounts:[],chainIds:r.chains.map(e=>e.id),feeToken:r.feeToken,requestQueue:[]}),{merge(e,t){let n=e,i=r.chains.find(e=>e.id===n.chainIds[0])?.id??r.chains[0].id,a=[i,...r.chains.map(e=>e.id).filter(e=>e!==i)];return{...t,...n,chainIds:a}},name:r.storageKey,partialize:e=>({accounts:e.accounts.map(e=>pN(e)),chainIds:e.chainIds}),storage:r.storage,version:5})))),a=r.mode,o={config:r,getMode(){return a},id:hN(),setMode(e){return c?.(),a=e,c=e.setup({internal:o}),c},store:i},s=gB(o),c=a===null?()=>{}:a.setup({internal:o});return{_internal:o,config:r,destroy(){c(),s._internal.destroy()},provider:s}}const RV=Object.freeze(Object.values(xM)),zV=e=>RV.find(t=>t.id===e);var BV=e=>{if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(/^0x[0-9a-fA-F]+$/.test(t)){let e=Number.parseInt(t,16);return Number.isNaN(e)?void 0:e}if(/^\d+$/.test(t)){let e=Number.parseInt(t,10);return Number.isNaN(e)?void 0:e}};const VV=(e,t,n)=>{let r=BV(e);t(r),n(r==null?void 0:zV(r))},HV=async(e,t=`GET`,n)=>{let r={"Content-Type":`application/json`},i=typeof window<`u`?window.__SESSION_TOKEN__:void 0;i&&(r[`X-Session-Token`]=i);let a=await fetch(`http://127.0.0.1:9545${e}`,{method:t,headers:r,body:n===void 0?void 0:JSON.stringify(n)});if(!a.ok)throw Error(`API request failed: ${a.status} ${a.statusText}`);try{return await a.json()}catch{throw Error(`Invalid JSON response`)}},UV=e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2),WV=e=>{if(e==null)return UV(e);if(typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`){let t=e;try{let n=JSON.parse(t.message);return UV({...e,message:n})}catch{return UV(e)}}return UV(e)},GV=e=>!!e&&e.status===`ok`;var KV=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),$=u(s(((e,t)=>{t.exports=KV()}))());function qV(){(0,y.useEffect)(()=>{window.__PORTO__||(window.__PORTO__=LV())},[]);let[e,t]=(0,y.useState)([]),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),u=e.find(e=>e.info.uuid===c)??null,[d,f]=(0,y.useState)(),[p,m]=(0,y.useState)(),[h,g]=(0,y.useState)(),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),w=(0,y.useRef)(null),ee=(0,y.useRef)(null),te=(0,y.useRef)(null),ne=async()=>{if(!u||n)return;let e=await u.provider.request({method:`eth_requestAccounts`});f(e?.[0]??void 0);try{let e=await u.provider.request({method:`eth_chainId`});VV(e,m,g)}catch{m(void 0),g(void 0)}},re=async()=>{if(!(!d||p==null)){try{await HV(`/api/connection`,`POST`,[d,p])}catch{return}r(!0)}},ie=async()=>{if(!u||!o)return;let{id:e,signType:t,request:n}=o,r=n.address,i=n.message;try{let n;switch(t){case`PersonalSign`:n=await u.provider.request({method:`personal_sign`,params:[i,r]});break;case`SignTypedDataV4`:n=await u.provider.request({method:`eth_signTypedData_v4`,params:[r,i]});break;default:throw Error(`Unsupported signType: ${t}`)}await HV(`/api/signing/response`,`POST`,{id:e,signature:n,error:null}),C(n),s(null)}catch(t){let n=typeof t==`object`&&t&&`message`in t&&typeof t.message==`string`?t.message:String(t);try{await HV(`/api/signing/response`,`POST`,{id:e,signature:null,error:n})}catch{}C(null),s(null)}},ae=async()=>{if(!u||!i?.request)return;let e=Mv({transport:Pv(u.provider),chain:h??void 0});try{let t=await u.provider.request({method:`eth_sendTransaction`,params:[i.request]});x(t),await HV(`/api/transaction/response`,`POST`,{id:i.id,hash:t,error:null});let n=await uv(e,{hash:t});v(n)}catch(e){let t=typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`?e.message:String(e);console.error(`send failed:`,t);try{await HV(`/api/transaction/response`,`POST`,{id:i.id,hash:null,error:t})}catch{}}},oe=(0,y.useCallback)(()=>{w.current&&=(window.clearInterval(w.current),null),ee.current&&=(window.clearInterval(ee.current),null),a(null),s(null),x(null),v(null),f(void 0),m(void 0),g(void 0),r(!1),HV(`/api/connection`,`POST`,null)},[]);return(0,y.useEffect)(()=>{te.current&&c&&te.current!==c&&oe(),te.current=c},[c,oe]),(0,y.useEffect)(()=>{e.length===1&&!u&&l(e[0].info.uuid)},[e,u]),(0,y.useEffect)(()=>{let e=e=>{let{info:n,provider:r}=e.detail;t(e=>e.some(e=>e.info.uuid===n.uuid)?e:[...e,{info:n,provider:r}])};return window.addEventListener(`eip6963:announceProvider`,e),window.dispatchEvent(new Event(`eip6963:requestProvider`)),()=>window.removeEventListener(`eip6963:announceProvider`,e)},[]),(0,y.useEffect)(()=>{if(!u)return;let e=e=>{n||f(e[0]??void 0)},t=e=>{n||VV(e,m,g)};return u.provider.on?.(`accountsChanged`,e),u.provider.on?.(`chainChanged`,t),()=>{u.provider.removeListener?.(`accountsChanged`,e),u.provider.removeListener?.(`chainChanged`,t)}},[u,n]),(0,y.useEffect)(()=>{if(!n||i||o)return;let e=!0,t=window.setInterval(async()=>{if(e)try{let n=await HV(`/api/transaction/request`);GV(n)&&(window.clearInterval(t),e&&a(n.data))}catch{}},1e3);return w.current=t,()=>{e=!1,window.clearInterval(t),w.current===t&&(w.current=null)}},[n,i,o]),(0,y.useEffect)(()=>{if(!n||o||i)return;let e=!0,t=window.setInterval(async()=>{if(e)try{let n=await HV(`/api/signing/request`);GV(n)&&(window.clearInterval(t),e&&s(n.data))}catch{}},1e3);return ee.current=t,()=>{e=!1,window.clearInterval(t),ee.current===t&&(ee.current=null)}},[n,o,i]),(0,$.jsx)(`div`,{className:`wrapper`,children:(0,$.jsxs)(`div`,{className:`container`,children:[(0,$.jsx)(`div`,{className:`notice`,children:`Browser wallet is still in early development. Use with caution!`}),(0,$.jsx)(`img`,{className:`banner`,src:`banner.png`,alt:`Foundry Browser Wallet`}),e.length>1&&(0,$.jsx)(`div`,{className:`wallet-selector`,children:(0,$.jsx)(`label`,{children:(0,$.jsxs)(`select`,{value:c??``,onChange:e=>l(e.target.value||null),disabled:n,children:[(0,$.jsx)(`option`,{value:``,disabled:!0,children:`Select wallet…`}),e.map(({info:e})=>(0,$.jsxs)(`option`,{value:e.uuid,children:[e.name,` (`,e.rdns,`)`]},e.uuid))]})})}),e.length===0&&(0,$.jsx)(`p`,{children:`No wallets found.`}),u&&!d&&(0,$.jsx)(`button`,{type:`button`,className:`wallet-connect`,onClick:ne,disabled:n,children:`Connect Wallet`}),u&&d&&!n&&(0,$.jsx)(`button`,{type:`button`,className:`wallet-confirm`,onClick:re,disabled:!d||p==null,children:`Confirm Connection`}),u&&d&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Connected`}),(0,$.jsx)(`pre`,{className:`box`,children:`\ +account: ${d} +chain: ${h?`${h.name} (${p})`:p??`unknown`} +rpc: ${h?.rpcUrls?.default?.http?.[0]??h?.rpcUrls?.public?.http?.[0]??`unknown`}`})]}),u&&d&&n&&!i&&!o&&!b&&!S&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Transaction To Sign`}),(0,$.jsx)(`div`,{className:`box`,children:(0,$.jsx)(`pre`,{children:`No pending transaction or signing request`})})]}),u&&d&&n&&!b&&i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Transaction to Sign & Send`}),(0,$.jsx)(`div`,{className:`box`,children:(0,$.jsx)(`pre`,{children:UV(i.request)})}),(0,$.jsx)(`button`,{type:`button`,className:`wallet-send`,onClick:ae,children:`Sign & Send`})]}),u&&d&&n&&!i&&o&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Message / Data to Sign`}),(0,$.jsx)(`div`,{className:`box`,children:(0,$.jsx)(`pre`,{children:WV(o.request)})}),(0,$.jsx)(`button`,{type:`button`,className:`wallet-send`,onClick:ie,children:`Sign`})]}),u&&d&&b&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Transaction Hash`}),(0,$.jsx)(`pre`,{className:`box`,children:b}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Receipt`}),(0,$.jsx)(`pre`,{className:`box`,children:_?UV(_):`Waiting for receipt...`})]})]}),u&&d&&n&&S&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Signature Result`}),(0,$.jsx)(`pre`,{className:`box`,children:S})]})]})})}var JV=document.getElementById(`root`);if(JV)(0,v.createRoot)(JV).render((0,$.jsx)(y.StrictMode,{children:(0,$.jsx)(qV,{})}));else throw Error(`Root element with id "root" not found`); \ No newline at end of file diff --git a/crates/wallets/src/wallet_browser/app/assets/styles.css b/crates/wallets/src/wallet_browser/app/assets/styles.css new file mode 100644 index 0000000000000..b2c9cd369d41f --- /dev/null +++ b/crates/wallets/src/wallet_browser/app/assets/styles.css @@ -0,0 +1,2 @@ +*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;color:inherit;letter-spacing:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;color:inherit;letter-spacing:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body,#root{color:#f8f8f8;background-color:#13151b;width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button{color:#f8f8f8;cursor:pointer;background-color:#3a3f51;border:1px solid #e1e4e8;border-radius:4px;padding:8px 12px}button:hover{background-color:#50566e}select{color:#f8f8f8;cursor:pointer;background-color:#1e2026;border:1px solid #e1e4e8;border-radius:8px;margin-bottom:16px;padding:8px}option{color:#f8f8f8;background-color:#1e2026}pre{white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere}.wrapper{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.container{background-color:#3b3b3b;border-radius:8px;flex-direction:column;align-items:flex-start;max-width:600px;padding:16px;display:flex}.notice{color:#333;text-align:center;background-color:#fc0;border-radius:8px;width:100%;margin-bottom:16px;padding:8px;font-size:13px;font-weight:700}.banner{border-radius:8px;width:100%;height:auto}.wallet-selector,.wallet-connect,.wallet-send,.wallet-confirm{align-self:center;margin-top:16px}.title,.section-title{color:#f8f8f8}.title{margin-bottom:24px;font-size:36px}.section-title{margin-bottom:16px;font-size:24px}.box{border:1px solid #e1e4e8;border-radius:8px;margin-bottom:16px;padding:8px 12px;font-size:13px} +/*$vite$:1*/ \ No newline at end of file diff --git a/crates/wallets/src/wallet_browser/app/mod.rs b/crates/wallets/src/wallet_browser/app/mod.rs new file mode 100644 index 0000000000000..6b1adcdbe47c9 --- /dev/null +++ b/crates/wallets/src/wallet_browser/app/mod.rs @@ -0,0 +1,7 @@ +pub(crate) mod contents { + pub const INDEX_HTML: &str = include_str!("assets/index.html"); + pub const STYLES_CSS: &str = include_str!("assets/styles.css"); + pub const MAIN_JS: &str = include_str!("assets/main.js"); + pub const BANNER_PNG: &[u8] = include_bytes!("assets/banner.png"); + pub const LOGO_PNG: &[u8] = include_bytes!("assets/logo.png"); +} diff --git a/crates/wallets/src/wallet_browser/error.rs b/crates/wallets/src/wallet_browser/error.rs new file mode 100644 index 0000000000000..ace0f1c1cf3f5 --- /dev/null +++ b/crates/wallets/src/wallet_browser/error.rs @@ -0,0 +1,28 @@ +use alloy_signer::Error as SignerError; + +#[derive(Debug, thiserror::Error)] +pub enum BrowserWalletError { + #[error("{operation} request timed out")] + Timeout { operation: &'static str }, + + #[error("{operation} rejected: {reason}")] + Rejected { operation: &'static str, reason: String }, + + #[error("Wallet not connected")] + NotConnected, + + #[error("Server error: {0}")] + ServerError(String), +} + +impl From for SignerError { + fn from(err: BrowserWalletError) -> Self { + Self::other(err) + } +} + +impl From for BrowserWalletError { + fn from(err: SignerError) -> Self { + Self::ServerError(err.to_string()) + } +} diff --git a/crates/wallets/src/wallet_browser/handlers.rs b/crates/wallets/src/wallet_browser/handlers.rs new file mode 100644 index 0000000000000..918bdbb161131 --- /dev/null +++ b/crates/wallets/src/wallet_browser/handlers.rs @@ -0,0 +1,194 @@ +use std::sync::Arc; + +use axum::{ + Json, + extract::State, + http::{ + HeaderMap, HeaderValue, + header::{CACHE_CONTROL, CONTENT_TYPE, EXPIRES, PRAGMA}, + }, + response::Html, +}; + +use crate::wallet_browser::{ + app::contents, + state::BrowserWalletState, + types::{ + BrowserApiResponse, BrowserSignRequest, BrowserSignResponse, BrowserTransactionRequest, + BrowserTransactionResponse, Connection, + }, +}; + +/// Serve index.html +pub(crate) async fn serve_index() -> impl axum::response::IntoResponse { + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("text/html; charset=utf-8")); + headers.insert( + CACHE_CONTROL, + HeaderValue::from_static("no-store, no-cache, must-revalidate, max-age=0"), + ); + headers.insert(PRAGMA, HeaderValue::from_static("no-cache")); + headers.insert(EXPIRES, HeaderValue::from_static("0")); + (headers, Html(contents::INDEX_HTML)) +} + +/// Serve styles.css +pub(crate) async fn serve_css() -> impl axum::response::IntoResponse { + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("text/css; charset=utf-8")); + headers.insert( + CACHE_CONTROL, + HeaderValue::from_static("no-store, no-cache, must-revalidate, max-age=0"), + ); + headers.insert(PRAGMA, HeaderValue::from_static("no-cache")); + headers.insert(EXPIRES, HeaderValue::from_static("0")); + (headers, contents::STYLES_CSS) +} + +/// Serve main.js with injected session token. +pub(crate) async fn serve_js( + State(state): State>, +) -> impl axum::response::IntoResponse { + let token = state.session_token(); + let js = format!("window.__SESSION_TOKEN__ = \"{}\";\n{}", token, contents::MAIN_JS); + + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/javascript; charset=utf-8")); + headers.insert( + CACHE_CONTROL, + HeaderValue::from_static("no-store, no-cache, must-revalidate, max-age=0"), + ); + headers.insert(PRAGMA, HeaderValue::from_static("no-cache")); + headers.insert(EXPIRES, HeaderValue::from_static("0")); + (headers, js) +} + +/// Serve banner.png +pub(crate) async fn serve_banner_png() -> impl axum::response::IntoResponse { + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("image/png")); + headers.insert(CACHE_CONTROL, HeaderValue::from_static("public, max-age=31536000, immutable")); + (headers, contents::BANNER_PNG) +} + +/// Serve logo.png +pub(crate) async fn serve_logo_png() -> impl axum::response::IntoResponse { + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("image/png")); + headers.insert(CACHE_CONTROL, HeaderValue::from_static("public, max-age=31536000, immutable")); + (headers, contents::LOGO_PNG) +} + +/// Get the next pending transaction request. +/// Route: GET /api/transaction/request +pub(crate) async fn get_next_transaction_request( + State(state): State>, +) -> Json> { + match state.read_next_transaction_request().await { + Some(tx) => Json(BrowserApiResponse::with_data(tx)), + None => Json(BrowserApiResponse::error("No pending transaction request")), + } +} + +/// Post a transaction response (signed or error). +/// Route: POST /api/transaction/response +pub(crate) async fn post_transaction_response( + State(state): State>, + Json(body): Json, +) -> Json { + // Ensure that the transaction request exists. + if !state.has_transaction_request(&body.id).await { + return Json(BrowserApiResponse::error("Unknown transaction id")); + } + + // Ensure that exactly one of hash or error is provided. + match (&body.hash, &body.error) { + (None, None) => { + return Json(BrowserApiResponse::error("Either hash or error must be provided")); + } + (Some(_), Some(_)) => { + return Json(BrowserApiResponse::error("Only one of hash or error can be provided")); + } + _ => {} + } + + // Validate transaction hash if provided. + if let Some(hash) = &body.hash { + // Check for all-zero hash + if hash.is_zero() { + return Json(BrowserApiResponse::error("Invalid (zero) transaction hash")); + } + + // Sanity check: ensure the hash is exactly 32 bytes + if hash.as_slice().len() != 32 { + return Json(BrowserApiResponse::error( + "Malformed transaction hash (expected 32 bytes)", + )); + } + } + + state.add_transaction_response(body).await; + + Json(BrowserApiResponse::ok()) +} + +/// Get the next pending signing request. +/// Route: GET /api/signing/request +pub(crate) async fn get_next_signing_request( + State(state): State>, +) -> Json> { + match state.read_next_signing_request().await { + Some(req) => Json(BrowserApiResponse::with_data(req)), + None => Json(BrowserApiResponse::error("No pending signing request")), + } +} + +/// Post a signing response (signature or error). +/// Route: POST /api/signing/response +pub(crate) async fn post_signing_response( + State(state): State>, + Json(body): Json, +) -> Json { + // Ensure that the signing request exists. + if !state.has_signing_request(&body.id).await { + return Json(BrowserApiResponse::error("Unknown signing request id")); + } + + // Ensure that exactly one of signature or error is provided. + match (&body.signature, &body.error) { + (None, None) => { + return Json(BrowserApiResponse::error("Either signature or error must be provided")); + } + (Some(_), Some(_)) => { + return Json(BrowserApiResponse::error( + "Only one of signature or error can be provided", + )); + } + _ => {} + } + + state.add_signing_response(body).await; + + Json(BrowserApiResponse::ok()) +} + +/// Get current connection information. +/// Route: GET /api/connection +pub(crate) async fn get_connection_info( + State(state): State>, +) -> Json>> { + let connection = state.get_connection().await; + + Json(BrowserApiResponse::with_data(connection)) +} + +/// Post connection update (connect or disconnect). +/// Route: POST /api/connection +pub(crate) async fn post_connection_update( + State(state): State>, + Json(body): Json>, +) -> Json { + state.set_connection(body).await; + + Json(BrowserApiResponse::ok()) +} diff --git a/crates/wallets/src/wallet_browser/mod.rs b/crates/wallets/src/wallet_browser/mod.rs new file mode 100644 index 0000000000000..00cf2b46b1c44 --- /dev/null +++ b/crates/wallets/src/wallet_browser/mod.rs @@ -0,0 +1,975 @@ +pub mod error; +pub mod server; +pub mod signer; +pub mod state; + +mod app; +mod handlers; +mod queue; +mod router; +mod types; + +#[cfg(test)] +mod tests { + use std::time::Duration; + + use alloy_primitives::{Address, Bytes, TxHash, TxKind, U256, address}; + use alloy_rpc_types::TransactionRequest; + use axum::http::{HeaderMap, HeaderValue}; + use tokio::task::JoinHandle; + use uuid::Uuid; + + use crate::wallet_browser::{ + error::BrowserWalletError, + server::BrowserWalletServer, + types::{ + BrowserApiResponse, BrowserSignRequest, BrowserSignResponse, BrowserTransactionRequest, + BrowserTransactionResponse, Connection, SignRequest, SignType, + }, + }; + + const ALICE: Address = address!("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"); + const BOB: Address = address!("0x70997970C51812dc3A010C7d01b50e0d17dc79C8"); + + const DEFAULT_TIMEOUT: Duration = Duration::from_secs(1); + const DEFAULT_DEVELOPMENT: bool = false; + + #[tokio::test] + async fn test_setup_server() { + let mut server = create_server(); + let client = client_with_token(&server); + + // Check initial state + assert!(!server.is_connected().await); + assert!(!server.open_browser()); + assert!(server.timeout() == DEFAULT_TIMEOUT); + + // Start server + server.start().await.unwrap(); + + // Check that the transaction request queue is empty + check_transaction_request_queue_empty(&client, &server).await; + + // Stop server + server.stop().await.unwrap(); + } + + #[tokio::test] + async fn test_connect_disconnect_wallet() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + + // Check that the transaction request queue is empty + check_transaction_request_queue_empty(&client, &server).await; + + // Connect Alice's wallet + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Check connection state + let Connection { address, chain_id } = + server.get_connection().await.expect("expected an active wallet connection"); + assert_eq!(address, ALICE); + assert_eq!(chain_id, 1); + + // Disconnect wallet + disconnect_wallet(&client, &server).await; + + // Check disconnected state + assert!(!server.is_connected().await); + + // Connect Bob's wallet + connect_wallet(&client, &server, Connection::new(BOB, 42)).await; + + // Check connection state + let Connection { address, chain_id } = + server.get_connection().await.expect("expected an active wallet connection"); + assert_eq!(address, BOB); + assert_eq!(chain_id, 42); + + // Stop server + server.stop().await.unwrap(); + } + + #[tokio::test] + async fn test_switch_wallet() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + + // Connect Alice, assert connected + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + let Connection { address, chain_id } = + server.get_connection().await.expect("expected an active wallet connection"); + assert_eq!(address, ALICE); + assert_eq!(chain_id, 1); + + // Connect Bob, assert switched + connect_wallet(&client, &server, Connection::new(BOB, 42)).await; + let Connection { address, chain_id } = + server.get_connection().await.expect("expected an active wallet connection"); + assert_eq!(address, BOB); + assert_eq!(chain_id, 42); + + server.stop().await.unwrap(); + } + + #[tokio::test] + async fn test_transaction_response_both_hash_and_error_rejected() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Enqueue a tx + let (tx_request_id, tx_request) = create_browser_transaction_request(); + let _handle = wait_for_transaction_signing(&server, tx_request).await; + check_transaction_request_content(&client, &server, tx_request_id).await; + + // Wallet posts both hash and error -> should be rejected + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id, + hash: Some(TxHash::random()), + error: Some("should not have both".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Only one of hash or error can be provided"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_transaction_response_neither_hash_nor_error_rejected() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (tx_request_id, tx_request) = create_browser_transaction_request(); + let _handle = wait_for_transaction_signing(&server, tx_request).await; + check_transaction_request_content(&client, &server, tx_request_id).await; + + // Neither hash nor error -> rejected + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { id: tx_request_id, hash: None, error: None }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Either hash or error must be provided"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_transaction_response_zero_hash_rejected() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (tx_request_id, tx_request) = create_browser_transaction_request(); + let _handle = wait_for_transaction_signing(&server, tx_request).await; + check_transaction_request_content(&client, &server, tx_request_id).await; + + // Zero hash -> rejected + let zero = TxHash::new([0u8; 32]); + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { id: tx_request_id, hash: Some(zero), error: None }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + // Message text per your handler; adjust if you use a different string. + assert!( + message.contains("Invalid") || message.contains("Malformed"), + "unexpected message: {message}" + ); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_send_transaction_client_accept() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (tx_request_id, tx_request) = create_browser_transaction_request(); + let handle = wait_for_transaction_signing(&server, tx_request).await; + check_transaction_request_content(&client, &server, tx_request_id).await; + + // Simulate the wallet accepting and signing the tx + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id, + hash: Some(TxHash::random()), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // The join handle should now return the tx hash + let res = handle.await.expect("task panicked"); + match res { + Ok(hash) => { + assert!(hash != TxHash::new([0; 32])); + } + other => panic!("expected success, got {other:?}"), + } + } + + #[tokio::test] + async fn test_send_transaction_client_not_requested() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Create a random transaction response without a matching request + let tx_request_id = Uuid::new_v4(); + + // Simulate the wallet sending a response for an unknown request + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id, + hash: Some(TxHash::random()), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // Assert that no transaction without a matching request is accepted + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Unknown transaction id"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_send_transaction_invalid_response_format() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Simulate the wallet sending a response with an invalid UUID + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .body( + r#"{ + "id": "invalid-uuid", + "hash": "invalid-hash", + "error": null + }"#, + ) + .header("Content-Type", "application/json") + .send() + .await + .unwrap(); + + // The server should respond with a 422 Unprocessable Entity status + assert_eq!(resp.status(), reqwest::StatusCode::UNPROCESSABLE_ENTITY); + } + + #[tokio::test] + async fn test_send_transaction_client_reject() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Create a browser transaction request + let (tx_request_id, tx_request) = create_browser_transaction_request(); + + // Spawn the transaction signing flow in the background + let handle = wait_for_transaction_signing(&server, tx_request).await; + + // Check transaction request + check_transaction_request_content(&client, &server, tx_request_id).await; + + // Simulate the wallet rejecting the tx + let resp = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id, + hash: None, + error: Some("User rejected the transaction".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // The join handle should now return a rejection error + let res = handle.await.expect("task panicked"); + match res { + Err(BrowserWalletError::Rejected { operation, reason }) => { + assert_eq!(operation, "Transaction"); + assert_eq!(reason, "User rejected the transaction"); + } + other => panic!("expected rejection, got {other:?}"), + } + } + + #[tokio::test] + async fn test_send_multiple_transaction_requests() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Create multiple browser transaction requests + let (tx_request_id1, tx_request1) = create_browser_transaction_request(); + let (tx_request_id2, tx_request2) = create_different_browser_transaction_request(); + + // Spawn signing flows for both transactions concurrently + let handle1 = wait_for_transaction_signing(&server, tx_request1.clone()).await; + let handle2 = wait_for_transaction_signing(&server, tx_request2.clone()).await; + + // Check first transaction request + { + let resp = client + .get(format!("http://localhost:{}/api/transaction/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_tx) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending transaction"); + }; + + assert_eq!( + pending_tx.id, tx_request_id1, + "expected the first transaction to be at the front of the queue" + ); + assert_eq!(pending_tx.request.from, tx_request1.request.from); + assert_eq!(pending_tx.request.to, tx_request1.request.to); + assert_eq!(pending_tx.request.value, tx_request1.request.value); + } + + // Simulate the wallet accepting and signing the first transaction + let resp1 = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id1, + hash: Some(TxHash::random()), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp1.status(), reqwest::StatusCode::OK); + + let res1 = handle1.await.expect("first signing flow panicked"); + match res1 { + Ok(hash) => assert!(!hash.is_zero(), "first tx hash should not be zero"), + other => panic!("expected success, got {other:?}"), + } + + // Check second transaction request + { + let resp = client + .get(format!("http://localhost:{}/api/transaction/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_tx) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending transaction"); + }; + + assert_eq!( + pending_tx.id, tx_request_id2, + "expected the second transaction to be pending after the first one completed" + ); + assert_eq!(pending_tx.request.from, tx_request2.request.from); + assert_eq!(pending_tx.request.to, tx_request2.request.to); + assert_eq!(pending_tx.request.value, tx_request2.request.value); + } + + // Simulate the wallet rejecting the second transaction + let resp2 = client + .post(format!("http://localhost:{}/api/transaction/response", server.port())) + .json(&BrowserTransactionResponse { + id: tx_request_id2, + hash: None, + error: Some("User rejected the transaction".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp2.status(), reqwest::StatusCode::OK); + + let res2 = handle2.await.expect("second signing flow panicked"); + match res2 { + Err(BrowserWalletError::Rejected { operation, reason }) => { + assert_eq!(operation, "Transaction"); + assert_eq!(reason, "User rejected the transaction"); + } + other => panic!("expected BrowserWalletError::Rejected, got {other:?}"), + } + + check_transaction_request_queue_empty(&client, &server).await; + + server.stop().await.unwrap(); + } + + #[tokio::test] + async fn test_send_sign_response_both_signature_and_error_rejected() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (sign_request_id, sign_request) = create_browser_sign_request(); + let _handle = wait_for_message_signing(&server, sign_request).await; + check_sign_request_content(&client, &server, sign_request_id).await; + + // Both signature and error -> should be rejected + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id, + signature: Some(Bytes::from("Hello World")), + error: Some("Should not have both".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Only one of signature or error can be provided"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_send_sign_response_neither_hash_nor_error_rejected() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (sign_request_id, sign_request) = create_browser_sign_request(); + let _handle = wait_for_message_signing(&server, sign_request).await; + check_sign_request_content(&client, &server, sign_request_id).await; + + // Neither signature nor error -> rejected + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { id: sign_request_id, signature: None, error: None }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Either signature or error must be provided"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_send_sign_client_accept() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (sign_request_id, sign_request) = create_browser_sign_request(); + let handle = wait_for_message_signing(&server, sign_request).await; + check_sign_request_content(&client, &server, sign_request_id).await; + + // Simulate the wallet accepting and signing the message + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id, + signature: Some(Bytes::from("FakeSignature")), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // The join handle should now return the signature + let res = handle.await.expect("task panicked"); + match res { + Ok(signature) => { + assert_eq!(signature, Bytes::from("FakeSignature")); + } + other => panic!("expected success, got {other:?}"), + } + } + + #[tokio::test] + async fn test_send_sign_client_not_requested() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Create a random signing response without a matching request + let sign_request_id = Uuid::new_v4(); + + // Simulate the wallet sending a response for an unknown request + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id, + signature: Some(Bytes::from("FakeSignature")), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // Assert that no signing response without a matching request is accepted + let api: BrowserApiResponse<()> = resp.json().await.unwrap(); + match api { + BrowserApiResponse::Error { message } => { + assert_eq!(message, "Unknown signing request id"); + } + _ => panic!("expected error response"), + } + } + + #[tokio::test] + async fn test_send_sign_invalid_response_format() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Simulate the wallet sending a response with an invalid UUID + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .body( + r#"{ + "id": "invalid-uuid", + "signature": "invalid-signature", + "error": null + }"#, + ) + .header("Content-Type", "application/json") + .send() + .await + .unwrap(); + + // The server should respond with a 422 Unprocessable Entity status + assert_eq!(resp.status(), reqwest::StatusCode::UNPROCESSABLE_ENTITY); + } + + #[tokio::test] + async fn test_send_sign_client_reject() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + let (sign_request_id, sign_request) = create_browser_sign_request(); + let handle = wait_for_message_signing(&server, sign_request).await; + check_sign_request_content(&client, &server, sign_request_id).await; + + // Simulate the wallet rejecting the signing request + let resp = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id, + signature: None, + error: Some("User rejected the signing request".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::OK); + + // The join handle should now return a rejection error + let res = handle.await.expect("task panicked"); + match res { + Err(BrowserWalletError::Rejected { operation, reason }) => { + assert_eq!(operation, "Signing"); + assert_eq!(reason, "User rejected the signing request"); + } + other => panic!("expected rejection, got {other:?}"), + } + } + + #[tokio::test] + async fn test_send_multiple_sign_requests() { + let mut server = create_server(); + let client = client_with_token(&server); + server.start().await.unwrap(); + connect_wallet(&client, &server, Connection::new(ALICE, 1)).await; + + // Create multiple browser sign requests + let (sign_request_id1, sign_request1) = create_browser_sign_request(); + let (sign_request_id2, sign_request2) = create_different_browser_sign_request(); + + // Spawn signing flows for both sign requests concurrently + let handle1 = wait_for_message_signing(&server, sign_request1.clone()).await; + let handle2 = wait_for_message_signing(&server, sign_request2.clone()).await; + + // Check first sign request + { + let resp = client + .get(format!("http://localhost:{}/api/signing/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_sign) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending sign request"); + }; + + assert_eq!(pending_sign.id, sign_request_id1); + assert_eq!(pending_sign.sign_type, sign_request1.sign_type); + assert_eq!(pending_sign.request.address, sign_request1.request.address); + assert_eq!(pending_sign.request.message, sign_request1.request.message); + } + + // Simulate the wallet accepting and signing the first sign request + let resp1 = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id1, + signature: Some(Bytes::from("Signature1")), + error: None, + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp1.status(), reqwest::StatusCode::OK); + + let res1 = handle1.await.expect("first signing flow panicked"); + match res1 { + Ok(signature) => assert_eq!(signature, Bytes::from("Signature1")), + other => panic!("expected success, got {other:?}"), + } + + // Check second sign request + { + let resp = client + .get(format!("http://localhost:{}/api/signing/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_sign) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending sign request"); + }; + + assert_eq!(pending_sign.id, sign_request_id2,); + assert_eq!(pending_sign.sign_type, sign_request2.sign_type); + assert_eq!(pending_sign.request.address, sign_request2.request.address); + assert_eq!(pending_sign.request.message, sign_request2.request.message); + } + + // Simulate the wallet rejecting the second sign request + let resp2 = client + .post(format!("http://localhost:{}/api/signing/response", server.port())) + .json(&BrowserSignResponse { + id: sign_request_id2, + signature: None, + error: Some("User rejected the signing request".into()), + }) + .send() + .await + .unwrap() + .error_for_status() + .unwrap(); + assert_eq!(resp2.status(), reqwest::StatusCode::OK); + + let res2 = handle2.await.expect("second signing flow panicked"); + match res2 { + Err(BrowserWalletError::Rejected { operation, reason }) => { + assert_eq!(operation, "Signing"); + assert_eq!(reason, "User rejected the signing request"); + } + other => panic!("expected BrowserWalletError::Rejected, got {other:?}"), + } + + check_sign_request_queue_empty(&client, &server).await; + + server.stop().await.unwrap(); + } + + /// Helper to create a default browser wallet server. + fn create_server() -> BrowserWalletServer { + BrowserWalletServer::new(0, false, DEFAULT_TIMEOUT, DEFAULT_DEVELOPMENT) + } + + /// Helper to create a reqwest client with the session token header. + fn client_with_token(server: &BrowserWalletServer) -> reqwest::Client { + let mut headers = HeaderMap::new(); + headers.insert("X-Session-Token", HeaderValue::from_str(server.session_token()).unwrap()); + reqwest::Client::builder().default_headers(headers).build().unwrap() + } + + /// Helper to connect a wallet to the server. + async fn connect_wallet( + client: &reqwest::Client, + server: &BrowserWalletServer, + connection: Connection, + ) { + let resp = client + .post(format!("http://localhost:{}/api/connection", server.port())) + .json(&connection) + .send(); + assert!(resp.await.is_ok()); + } + + /// Helper to disconnect a wallet from the server. + async fn disconnect_wallet(client: &reqwest::Client, server: &BrowserWalletServer) { + let resp = client + .post(format!("http://localhost:{}/api/connection", server.port())) + .json(&Option::::None) + .send(); + assert!(resp.await.is_ok()); + } + + /// Spawn the transaction signing flow in the background and return the join handle. + async fn wait_for_transaction_signing( + server: &BrowserWalletServer, + tx_request: BrowserTransactionRequest, + ) -> JoinHandle> { + // Spawn the signing flow in the background + let browser_server = server.clone(); + let join_handle = + tokio::spawn(async move { browser_server.request_transaction(tx_request).await }); + tokio::task::yield_now().await; + tokio::time::sleep(Duration::from_millis(100)).await; + + join_handle + } + + /// Spawn the message signing flow in the background and return the join handle. + async fn wait_for_message_signing( + server: &BrowserWalletServer, + sign_request: BrowserSignRequest, + ) -> JoinHandle> { + // Spawn the signing flow in the background + let browser_server = server.clone(); + let join_handle = + tokio::spawn(async move { browser_server.request_signing(sign_request).await }); + tokio::task::yield_now().await; + tokio::time::sleep(Duration::from_millis(100)).await; + + join_handle + } + + /// Create a simple browser transaction request. + fn create_browser_transaction_request() -> (Uuid, BrowserTransactionRequest) { + let id = Uuid::new_v4(); + let tx = BrowserTransactionRequest { + id, + request: TransactionRequest { + from: Some(ALICE), + to: Some(TxKind::Call(BOB)), + value: Some(U256::from(1000)), + ..Default::default() + }, + }; + (id, tx) + } + + /// Create a different browser transaction request (from the first one). + fn create_different_browser_transaction_request() -> (Uuid, BrowserTransactionRequest) { + let id = Uuid::new_v4(); + let tx = BrowserTransactionRequest { + id, + request: TransactionRequest { + from: Some(BOB), + to: Some(TxKind::Call(ALICE)), + value: Some(U256::from(2000)), + ..Default::default() + }, + }; + (id, tx) + } + + /// Create a simple browser sign request. + fn create_browser_sign_request() -> (Uuid, BrowserSignRequest) { + let id = Uuid::new_v4(); + let req = BrowserSignRequest { + id, + sign_type: SignType::PersonalSign, + request: SignRequest { message: "Hello, world!".into(), address: ALICE }, + }; + (id, req) + } + + /// Create a different browser sign request (from the first one). + fn create_different_browser_sign_request() -> (Uuid, BrowserSignRequest) { + let id = Uuid::new_v4(); + let req = BrowserSignRequest { + id, + sign_type: SignType::SignTypedDataV4, + request: SignRequest { message: "Different message".into(), address: BOB }, + }; + (id, req) + } + + /// Check that the transaction request queue is empty, if not panic. + async fn check_transaction_request_queue_empty( + client: &reqwest::Client, + server: &BrowserWalletServer, + ) { + let resp = client + .get(format!("http://localhost:{}/api/transaction/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Error { message } = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Error (no pending transaction), but got Ok"); + }; + + assert_eq!(message, "No pending transaction request"); + } + + /// Check that the transaction request matches the expected request ID and fields. + async fn check_transaction_request_content( + client: &reqwest::Client, + server: &BrowserWalletServer, + tx_request_id: Uuid, + ) { + let resp = client + .get(format!("http://localhost:{}/api/transaction/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_tx) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending transaction"); + }; + + assert_eq!(pending_tx.id, tx_request_id); + assert_eq!(pending_tx.request.from, Some(ALICE)); + assert_eq!(pending_tx.request.to, Some(TxKind::Call(BOB))); + assert_eq!(pending_tx.request.value, Some(U256::from(1000))); + } + + /// Check that the sign request queue is empty, if not panic. + async fn check_sign_request_queue_empty( + client: &reqwest::Client, + server: &BrowserWalletServer, + ) { + let resp = client + .get(format!("http://localhost:{}/api/signing/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Error { message } = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Error (no pending signing request), but got Ok"); + }; + + assert_eq!(message, "No pending signing request"); + } + + /// Check that the sign request matches the expected request ID and fields. + async fn check_sign_request_content( + client: &reqwest::Client, + server: &BrowserWalletServer, + sign_request_id: Uuid, + ) { + let resp = client + .get(format!("http://localhost:{}/api/signing/request", server.port())) + .send() + .await + .unwrap(); + + let BrowserApiResponse::Ok(pending_req) = + resp.json::>().await.unwrap() + else { + panic!("expected BrowserApiResponse::Ok with a pending signing request"); + }; + + assert_eq!(pending_req.id, sign_request_id); + assert_eq!(pending_req.sign_type, SignType::PersonalSign); + assert_eq!(pending_req.request.address, ALICE); + assert_eq!(pending_req.request.message, "Hello, world!"); + } +} diff --git a/crates/wallets/src/wallet_browser/queue.rs b/crates/wallets/src/wallet_browser/queue.rs new file mode 100644 index 0000000000000..608c7e18dbbde --- /dev/null +++ b/crates/wallets/src/wallet_browser/queue.rs @@ -0,0 +1,82 @@ +use std::collections::{HashMap, VecDeque}; + +use uuid::Uuid; + +use crate::wallet_browser::types::{BrowserSignRequest, BrowserTransactionRequest}; + +#[derive(Debug)] +pub(crate) struct RequestQueue { + /// Pending requests from CLI to browser + requests: VecDeque, + /// Responses from browser indexed by request ID + responses: HashMap, +} + +impl Default for RequestQueue { + fn default() -> Self { + Self::new() + } +} + +impl RequestQueue { + /// Create a new request queue. + pub fn new() -> Self { + Self { requests: VecDeque::new(), responses: HashMap::new() } + } + + /// Add a new request to the queue. + pub fn add_request(&mut self, request: Req) { + self.requests.push_back(request); + } + + /// Check if the queue contains any pending requests matching the given ID. + pub fn has_request(&self, id: &Uuid) -> bool + where + Req: HasId, + { + self.requests.iter().any(|r| r.id() == id) + } + + /// Read the next request from the queue without removing it. + pub fn read_request(&self) -> Option<&Req> { + self.requests.front() + } + + /// Remove a request by its ID. + pub fn remove_request(&mut self, id: &Uuid) -> Option + where + Req: HasId, + { + if let Some(pos) = self.requests.iter().position(|r| r.id() == id) { + self.requests.remove(pos) + } else { + None + } + } + + /// Add a response to the queue. + pub fn add_response(&mut self, id: Uuid, response: Res) { + self.responses.insert(id, response); + } + + /// Get a response by its ID, removing it from the queue. + pub fn get_response(&mut self, id: &Uuid) -> Option { + self.responses.remove(id) + } +} + +pub(crate) trait HasId { + fn id(&self) -> &Uuid; +} + +impl HasId for BrowserTransactionRequest { + fn id(&self) -> &Uuid { + &self.id + } +} + +impl HasId for BrowserSignRequest { + fn id(&self) -> &Uuid { + &self.id + } +} diff --git a/crates/wallets/src/wallet_browser/router.rs b/crates/wallets/src/wallet_browser/router.rs new file mode 100644 index 0000000000000..f62a5d3977054 --- /dev/null +++ b/crates/wallets/src/wallet_browser/router.rs @@ -0,0 +1,105 @@ +use std::sync::Arc; + +use axum::{ + Router, + extract::{Request, State}, + http::{HeaderValue, Method, StatusCode, header}, + middleware::{self, Next}, + response::Response, + routing::{get, post}, +}; +use tower::ServiceBuilder; +use tower_http::{cors::CorsLayer, set_header::SetResponseHeaderLayer}; + +use crate::wallet_browser::{handlers, state::BrowserWalletState}; + +pub async fn build_router(state: Arc, port: u16) -> Router { + let api = Router::new() + .route("/transaction/request", get(handlers::get_next_transaction_request)) + .route("/transaction/response", post(handlers::post_transaction_response)) + .route("/signing/request", get(handlers::get_next_signing_request)) + .route("/signing/response", post(handlers::post_signing_response)) + .route("/connection", get(handlers::get_connection_info)) + .route("/connection", post(handlers::post_connection_update)) + .route_layer(middleware::from_fn_with_state(state.clone(), require_session_token)) + .with_state(state.clone()); + + let mut origins = vec![format!("http://127.0.0.1:{port}").parse().unwrap()]; + + // Allow default port of 5173 in development mode. + if state.is_development() { + origins.push("https://localhost:5173".to_string().parse().unwrap()); + } + + let security_headers = ServiceBuilder::new() + .layer(SetResponseHeaderLayer::if_not_present( + header::CONTENT_SECURITY_POLICY, + HeaderValue::from_static(concat!( + "default-src 'none'; ", + "object-src 'none'; ", + "base-uri 'none'; ", + "frame-ancestors 'none'; ", + "img-src 'self'; ", + "font-src 'none'; ", + "connect-src 'self' https: http: wss: ws:;", + "style-src 'self'; ", + "script-src 'self'; ", + "form-action 'none'; ", + "worker-src 'none'; ", + "frame-src https://id.porto.sh;" + )), + )) + .layer(SetResponseHeaderLayer::if_not_present( + header::REFERRER_POLICY, + HeaderValue::from_static("no-referrer"), + )) + .layer(SetResponseHeaderLayer::if_not_present( + header::X_CONTENT_TYPE_OPTIONS, + HeaderValue::from_static("nosniff"), + )) + .layer( + CorsLayer::new() + .allow_origin(origins) + .allow_methods([Method::GET, Method::POST, Method::OPTIONS]) + .allow_headers([header::CONTENT_TYPE]) + .allow_credentials(false), + ); + + Router::new() + .route("/", get(handlers::serve_index)) + .route("/styles.css", get(handlers::serve_css)) + .route("/main.js", get(handlers::serve_js)) + .route("/banner.png", get(handlers::serve_banner_png)) + .route("/logo.png", get(handlers::serve_logo_png)) + .nest("/api", api) + .layer(security_headers) + .with_state(state) +} + +async fn require_session_token( + State(state): State>, + req: Request, + next: Next, +) -> Result { + if req.method() == Method::OPTIONS { + return Ok(next.run(req).await); + } + + // In development mode, skip session token check. + if state.is_development() { + return Ok(next.run(req).await); + } + + let expected = state.session_token(); + let provided = req + .headers() + .get("X-Session-Token") + .and_then(|v| v.to_str().ok()) + .ok_or(StatusCode::FORBIDDEN)?; + + if provided != expected { + return Err(StatusCode::FORBIDDEN); + } + + Ok(next.run(req).await) +} diff --git a/crates/wallets/src/wallet_browser/server.rs b/crates/wallets/src/wallet_browser/server.rs new file mode 100644 index 0000000000000..4f067c3bbcbab --- /dev/null +++ b/crates/wallets/src/wallet_browser/server.rs @@ -0,0 +1,219 @@ +use std::{ + net::SocketAddr, + sync::Arc, + time::{Duration, Instant}, +}; + +use alloy_dyn_abi::TypedData; +use alloy_primitives::{Address, Bytes, TxHash}; +use tokio::{ + net::TcpListener, + sync::{Mutex, oneshot}, +}; +use uuid::Uuid; + +use crate::wallet_browser::{ + error::BrowserWalletError, + router::build_router, + state::BrowserWalletState, + types::{ + BrowserSignRequest, BrowserSignTypedDataRequest, BrowserTransactionRequest, Connection, + SignRequest, SignType, + }, +}; + +/// Browser wallet server. +#[derive(Debug, Clone)] +pub struct BrowserWalletServer { + port: u16, + state: Arc, + shutdown_tx: Option>>>>, + open_browser: bool, + timeout: Duration, +} + +impl BrowserWalletServer { + /// Create a new browser wallet server. + pub fn new(port: u16, open_browser: bool, timeout: Duration, development: bool) -> Self { + Self { + port, + state: Arc::new(BrowserWalletState::new(Uuid::new_v4().to_string(), development)), + shutdown_tx: None, + open_browser, + timeout, + } + } + + /// Start the server and open browser. + pub async fn start(&mut self) -> Result<(), BrowserWalletError> { + let router = build_router(self.state.clone(), self.port).await; + + let addr = SocketAddr::from(([127, 0, 0, 1], self.port)); + let listener = TcpListener::bind(addr) + .await + .map_err(|e| BrowserWalletError::ServerError(e.to_string()))?; + self.port = listener.local_addr().unwrap().port(); + + let (shutdown_tx, shutdown_rx) = oneshot::channel(); + self.shutdown_tx = Some(Arc::new(Mutex::new(Some(shutdown_tx)))); + + tokio::spawn(async move { + let server = axum::serve(listener, router); + let _ = server + .with_graceful_shutdown(async { + let _ = shutdown_rx.await; + }) + .await; + }); + + if self.open_browser { + webbrowser::open(&format!("http://127.0.0.1:{}", self.port)).map_err(|e| { + BrowserWalletError::ServerError(format!("Failed to open browser: {e}")) + })?; + } + + Ok(()) + } + + /// Stop the server. + pub async fn stop(&mut self) -> Result<(), BrowserWalletError> { + if let Some(shutdown_arc) = self.shutdown_tx.take() + && let Some(tx) = shutdown_arc.lock().await.take() + { + let _ = tx.send(()); + } + Ok(()) + } + + /// Get the server port. + pub fn port(&self) -> u16 { + self.port + } + + /// Check if the browser should be opened. + pub fn open_browser(&self) -> bool { + self.open_browser + } + + /// Get the timeout duration. + pub fn timeout(&self) -> Duration { + self.timeout + } + + /// Get the session token. + pub fn session_token(&self) -> &str { + self.state.session_token() + } + + /// Check if a wallet is connected. + pub async fn is_connected(&self) -> bool { + self.state.is_connected().await + } + + /// Get current wallet connection. + pub async fn get_connection(&self) -> Option { + self.state.get_connection().await + } + + /// Request a transaction to be signed and sent via the browser wallet. + pub async fn request_transaction( + &self, + request: BrowserTransactionRequest, + ) -> Result { + if !self.is_connected().await { + return Err(BrowserWalletError::NotConnected); + } + + let tx_id = request.id; + + self.state.add_transaction_request(request).await; + + let start = Instant::now(); + + loop { + if let Some(response) = self.state.get_transaction_response(&tx_id).await { + if let Some(hash) = response.hash { + return Ok(hash); + } else if let Some(error) = response.error { + return Err(BrowserWalletError::Rejected { + operation: "Transaction", + reason: error, + }); + } else { + return Err(BrowserWalletError::ServerError( + "Transaction response missing both hash and error".to_string(), + )); + } + } + + if start.elapsed() > self.timeout { + self.state.remove_transaction_request(&tx_id).await; + return Err(BrowserWalletError::Timeout { operation: "Transaction" }); + } + + tokio::time::sleep(Duration::from_millis(100)).await; + } + } + + /// Request a message to be signed via the browser wallet. + pub async fn request_signing( + &self, + request: BrowserSignRequest, + ) -> Result { + if !self.is_connected().await { + return Err(BrowserWalletError::NotConnected); + } + + let tx_id = request.id; + + self.state.add_signing_request(request).await; + + let start = Instant::now(); + + loop { + if let Some(response) = self.state.get_signing_response(&tx_id).await { + if let Some(signature) = response.signature { + return Ok(signature); + } else if let Some(error) = response.error { + return Err(BrowserWalletError::Rejected { + operation: "Signing", + reason: error, + }); + } else { + return Err(BrowserWalletError::ServerError( + "Signing response missing both signature and error".to_string(), + )); + } + } + + if start.elapsed() > self.timeout { + self.state.remove_signing_request(&tx_id).await; + return Err(BrowserWalletError::Timeout { operation: "Signing" }); + } + + tokio::time::sleep(Duration::from_millis(100)).await; + } + } + + /// Request EIP-712 typed data signing via the browser wallet. + pub async fn request_typed_data_signing( + &self, + address: Address, + typed_data: TypedData, + ) -> Result { + let request = BrowserSignTypedDataRequest { id: Uuid::new_v4(), address, typed_data }; + + let sign_request = BrowserSignRequest { + id: request.id, + sign_type: SignType::SignTypedDataV4, + request: SignRequest { + message: serde_json::to_string(&request.typed_data).map_err(|e| { + BrowserWalletError::ServerError(format!("Failed to serialize typed data: {e}")) + })?, + address: request.address, + }, + }; + + self.request_signing(sign_request).await + } +} diff --git a/crates/wallets/src/wallet_browser/signer.rs b/crates/wallets/src/wallet_browser/signer.rs new file mode 100644 index 0000000000000..1e3df775e2598 --- /dev/null +++ b/crates/wallets/src/wallet_browser/signer.rs @@ -0,0 +1,200 @@ +use std::{ + sync::Arc, + time::{Duration, Instant}, +}; + +use alloy_consensus::SignableTransaction; +use alloy_dyn_abi::TypedData; +use alloy_network::TxSigner; +use alloy_primitives::{Address, B256, ChainId, hex}; +use alloy_rpc_types::TransactionRequest; +use alloy_signer::{Result, Signature, Signer, SignerSync}; +use alloy_sol_types::{Eip712Domain, SolStruct}; +use async_trait::async_trait; +use tokio::sync::Mutex; +use uuid::Uuid; + +use crate::wallet_browser::{ + server::BrowserWalletServer, + types::{BrowserSignRequest, BrowserTransactionRequest, Connection, SignRequest, SignType}, +}; + +#[derive(Clone, Debug)] +pub struct BrowserSigner { + server: Arc>, + address: Address, + chain_id: ChainId, +} + +impl BrowserSigner { + pub async fn new( + port: u16, + open_browser: bool, + timeout: Duration, + development: bool, + ) -> Result { + let mut server = BrowserWalletServer::new(port, open_browser, timeout, development); + + server.start().await.map_err(alloy_signer::Error::other)?; + + let _ = sh_warn!("Browser wallet is still in early development. Use with caution!"); + let _ = sh_println!("Opening browser for wallet connection..."); + let _ = sh_println!("Waiting for wallet connection..."); + + let start = Instant::now(); + + loop { + if let Some(Connection { address, chain_id }) = server.get_connection().await { + let _ = sh_println!("Wallet connected: {}", address); + let _ = sh_println!("Chain ID: {}", chain_id); + + return Ok(Self { server: Arc::new(Mutex::new(server)), address, chain_id }); + } + + if start.elapsed() > timeout { + return Err(alloy_signer::Error::other("Wallet connection timeout")); + } + + tokio::time::sleep(Duration::from_secs(1)).await; + } + } + + /// Send a transaction through the browser wallet. + pub async fn send_transaction_via_browser( + &self, + tx_request: TransactionRequest, + ) -> Result { + if let Some(from) = tx_request.from + && from != self.address + { + return Err(alloy_signer::Error::other( + "Transaction `from` address does not match connected wallet address", + )); + } + + if let Some(chain_id) = tx_request.chain_id + && chain_id != self.chain_id + { + return Err(alloy_signer::Error::other( + "Transaction `chainId` does not match connected wallet chain ID", + )); + } + + let request = BrowserTransactionRequest { id: Uuid::new_v4(), request: tx_request }; + + let server = self.server.lock().await; + let tx_hash = + server.request_transaction(request).await.map_err(alloy_signer::Error::other)?; + + tokio::time::sleep(Duration::from_millis(500)).await; + + Ok(tx_hash) + } +} + +impl SignerSync for BrowserSigner { + fn sign_hash_sync(&self, _hash: &B256) -> Result { + Err(alloy_signer::Error::other( + "Browser wallets cannot sign raw hashes. Use sign_message or send_transaction instead.", + )) + } + + fn sign_message_sync(&self, _message: &[u8]) -> Result { + Err(alloy_signer::Error::other( + "Browser signer requires async operations. Use sign_message instead.", + )) + } + + fn chain_id_sync(&self) -> Option { + Some(self.chain_id) + } +} + +#[async_trait] +impl Signer for BrowserSigner { + async fn sign_hash(&self, _hash: &B256) -> Result { + Err(alloy_signer::Error::other( + "Browser wallets sign and send transactions in one step. Use eth_sendTransaction instead.", + )) + } + + async fn sign_typed_data( + &self, + _payload: &T, + _domain: &Eip712Domain, + ) -> Result + where + Self: Sized, + { + // Not directly supported - use sign_dynamic_typed_data instead + Err(alloy_signer::Error::other( + "Browser wallets cannot sign typed data directly. Use sign_dynamic_typed_data instead.", + )) + } + + async fn sign_message(&self, message: &[u8]) -> Result { + let request = BrowserSignRequest { + id: Uuid::new_v4(), + sign_type: SignType::PersonalSign, + request: SignRequest { message: hex::encode_prefixed(message), address: self.address }, + }; + + let server = self.server.lock().await; + let signature = + server.request_signing(request).await.map_err(alloy_signer::Error::other)?; + + Signature::try_from(signature.as_ref()) + .map_err(|e| alloy_signer::Error::other(format!("Invalid signature: {e}"))) + } + + async fn sign_dynamic_typed_data(&self, payload: &TypedData) -> Result { + let server = self.server.lock().await; + let signature = server + .request_typed_data_signing(self.address, payload.clone()) + .await + .map_err(alloy_signer::Error::other)?; + + // Parse the signature + Signature::try_from(signature.as_ref()) + .map_err(|e| alloy_signer::Error::other(format!("Invalid signature: {e}"))) + } + + fn address(&self) -> Address { + self.address + } + + fn chain_id(&self) -> Option { + Some(self.chain_id) + } + + fn set_chain_id(&mut self, chain_id: Option) { + if let Some(id) = chain_id { + self.chain_id = id; + } + } +} + +#[async_trait] +impl TxSigner for BrowserSigner { + fn address(&self) -> Address { + self.address + } + + async fn sign_transaction( + &self, + _tx: &mut dyn SignableTransaction, + ) -> Result { + Err(alloy_signer::Error::other("Use send_transaction_via_browser for browser wallets")) + } +} + +impl Drop for BrowserSigner { + fn drop(&mut self) { + let server = self.server.clone(); + + tokio::spawn(async move { + let mut server = server.lock().await; + let _ = server.stop().await; + }); + } +} diff --git a/crates/wallets/src/wallet_browser/state.rs b/crates/wallets/src/wallet_browser/state.rs new file mode 100644 index 0000000000000..07954654a7185 --- /dev/null +++ b/crates/wallets/src/wallet_browser/state.rs @@ -0,0 +1,137 @@ +use std::sync::Arc; + +use tokio::sync::{Mutex, RwLock}; +use uuid::Uuid; + +use crate::wallet_browser::{ + queue::RequestQueue, + types::{ + BrowserSignRequest, BrowserSignResponse, BrowserTransactionRequest, + BrowserTransactionResponse, Connection, + }, +}; + +#[derive(Debug, Clone)] +pub(crate) struct BrowserWalletState { + /// Current information about the wallet connection. + connection: Arc>>, + /// Request/response queue for transactions. + transactions: Arc>>, + /// Request/response queue for signings. + signings: Arc>>, + /// Unique session token for the wallet browser instance. + /// The CSP on the served page prevents this token from being loaded by other origins. + session_token: String, + /// If true, the server is running in development mode. + /// This relaxes certain security restrictions for local development. + /// + /// **WARNING**: This should only be used in a development environment. + development: bool, +} + +impl BrowserWalletState { + /// Create a new browser wallet state. + pub fn new(session_token: String, development: bool) -> Self { + Self { + connection: Arc::new(RwLock::new(None)), + transactions: Arc::new(Mutex::new(RequestQueue::new())), + signings: Arc::new(Mutex::new(RequestQueue::new())), + session_token, + development, + } + } + + /// Get the session token. + pub fn session_token(&self) -> &str { + &self.session_token + } + + /// Check if in development mode. + /// This relaxes certain security restrictions for local development. + /// + /// **WARNING**: This should only be used in a development environment. + pub fn is_development(&self) -> bool { + self.development + } + + /// Check if wallet is connected. + pub async fn is_connected(&self) -> bool { + self.connection.read().await.is_some() + } + + /// Get current connection information. + pub async fn get_connection(&self) -> Option { + *self.connection.read().await + } + + /// Set connection information. + pub async fn set_connection(&self, connection: Option) { + *self.connection.write().await = connection; + } + + /// Add a transaction request. + pub async fn add_transaction_request(&self, request: BrowserTransactionRequest) { + self.transactions.lock().await.add_request(request); + } + + /// Check if a transaction request exists. + pub async fn has_transaction_request(&self, id: &Uuid) -> bool { + self.transactions.lock().await.has_request(id) + } + + /// Read the next transaction request. + pub async fn read_next_transaction_request(&self) -> Option { + self.transactions.lock().await.read_request().cloned() + } + + // Remove a transaction request. + pub async fn remove_transaction_request(&self, id: &Uuid) { + self.transactions.lock().await.remove_request(id); + } + + /// Add transaction response. + pub async fn add_transaction_response(&self, response: BrowserTransactionResponse) { + let id = response.id; + let mut transactions = self.transactions.lock().await; + transactions.add_response(id, response); + transactions.remove_request(&id); + } + + /// Get transaction response, removing it from the queue. + pub async fn get_transaction_response(&self, id: &Uuid) -> Option { + self.transactions.lock().await.get_response(id) + } + + /// Add a signing request. + pub async fn add_signing_request(&self, request: BrowserSignRequest) { + self.signings.lock().await.add_request(request); + } + + /// Check if a signing request exists. + pub async fn has_signing_request(&self, id: &Uuid) -> bool { + self.signings.lock().await.has_request(id) + } + + /// Read the next signing request. + pub async fn read_next_signing_request(&self) -> Option { + self.signings.lock().await.read_request().cloned() + } + + /// Remove a signing request. + pub async fn remove_signing_request(&self, id: &Uuid) { + self.signings.lock().await.remove_request(id); + } + + /// Add signing response. + pub async fn add_signing_response(&self, response: BrowserSignResponse) { + let id = response.id; + let mut signings = self.signings.lock().await; + signings.add_response(id, response); + signings.remove_request(&id); + } + + /// Get signing response, removing it from the queue. + pub async fn get_signing_response(&self, id: &Uuid) -> Option { + self.signings.lock().await.get_response(id) + } +} diff --git a/crates/wallets/src/wallet_browser/types.rs b/crates/wallets/src/wallet_browser/types.rs new file mode 100644 index 0000000000000..61f3edf3d85ca --- /dev/null +++ b/crates/wallets/src/wallet_browser/types.rs @@ -0,0 +1,127 @@ +use alloy_dyn_abi::TypedData; +use alloy_primitives::{Address, Bytes, ChainId, TxHash}; +use alloy_rpc_types::TransactionRequest; +use serde::{Deserialize, Serialize}; +use uuid::Uuid; + +/// Response format for API endpoints. +/// - `Ok(T)` serializes as: {"status":"ok","data": ...} +/// - `Ok(())` serializes as: {"status":"ok"} (no data key) +/// - `Error { message }` as: {"status":"error","message":"..."} +#[derive(Serialize, Deserialize, Debug)] +#[serde(tag = "status", content = "data", rename_all = "lowercase")] +pub(crate) enum BrowserApiResponse { + Ok(T), + Error { message: String }, +} + +impl BrowserApiResponse<()> { + /// Create a successful response with no data. + pub fn ok() -> Self { + Self::Ok(()) + } +} + +impl BrowserApiResponse { + /// Create a successful response with the given data. + pub fn with_data(data: T) -> Self { + Self::Ok(data) + } + + /// Create an error response with the given message. + pub fn error(msg: impl Into) -> Self { + Self::Error { message: msg.into() } + } +} + +/// Represents a transaction request sent to the browser wallet. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct BrowserTransactionRequest { + /// The unique identifier for the transaction. + pub id: Uuid, + /// The transaction request details. + pub request: TransactionRequest, +} + +/// Represents a transaction response sent from the browser wallet. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub(crate) struct BrowserTransactionResponse { + /// The unique identifier for the transaction, must match the request ID sent earlier. + pub id: Uuid, + /// The transaction hash if the transaction was successful. + pub hash: Option, + /// The error message if the transaction failed. + pub error: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub enum SignType { + /// Standard personal sign: `eth_sign` / `personal_sign` + PersonalSign, + /// EIP-712 typed data sign: `eth_signTypedData_v4` + SignTypedDataV4, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct SignRequest { + /// The message to be signed. + pub message: String, + /// The address that should sign the message. + pub address: Address, +} + +/// Represents a signing request sent to the browser wallet. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields, rename_all = "camelCase")] +pub struct BrowserSignRequest { + /// The unique identifier for the signing request. + pub id: Uuid, + /// The type of signing operation. + pub sign_type: SignType, + /// The sign request details. + pub request: SignRequest, +} + +/// Represents a typed data signing request sent to the browser wallet. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields, rename_all = "camelCase")] +pub struct BrowserSignTypedDataRequest { + /// The unique identifier for the signing request. + pub id: Uuid, + /// The address that should sign the typed data. + pub address: Address, + /// The typed data to be signed. + pub typed_data: TypedData, +} + +/// Represents a signing response sent from the browser wallet. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub(crate) struct BrowserSignResponse { + /// The unique identifier for the signing request, must match the request ID sent earlier. + pub id: Uuid, + /// The signature if the signing was successful. + pub signature: Option, + /// The error message if the signing failed. + pub error: Option, +} + +/// Represents an active connection to a browser wallet. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +pub struct Connection { + /// The address of the connected wallet. + pub address: Address, + /// The chain ID of the connected wallet. + pub chain_id: ChainId, +} + +impl Connection { + /// Create a new connection instance. + pub fn new(address: Address, chain_id: ChainId) -> Self { + Self { address, chain_id } + } +} diff --git a/crates/wallets/src/multi_wallet.rs b/crates/wallets/src/wallet_multi/mod.rs similarity index 99% rename from crates/wallets/src/multi_wallet.rs rename to crates/wallets/src/wallet_multi/mod.rs index fcaf81ca384b8..bb492d7331c23 100644 --- a/crates/wallets/src/multi_wallet.rs +++ b/crates/wallets/src/wallet_multi/mod.rs @@ -1,6 +1,6 @@ use crate::{ + signer::{PendingSigner, WalletSigner}, utils, - wallet_signer::{PendingSigner, WalletSigner}, }; use alloy_primitives::map::AddressHashMap; use alloy_signer::Signer; diff --git a/crates/wallets/src/raw_wallet.rs b/crates/wallets/src/wallet_raw/mod.rs similarity index 100% rename from crates/wallets/src/raw_wallet.rs rename to crates/wallets/src/wallet_raw/mod.rs diff --git a/typos.toml b/typos.toml index 72676b5b577b9..2e86c7c3aaffe 100644 --- a/typos.toml +++ b/typos.toml @@ -6,6 +6,9 @@ extend-exclude = [ "Cargo.toml", "Cargo.lock", "*.json", + "*.js", + "*.css", + "*.html", "**/tests/**", "**/test/**", "**/*_test.*",