diff --git a/Cargo.lock b/Cargo.lock index da4f2db6a2275..d15f7c092e642 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5543,7 +5543,8 @@ dependencies = [ [[package]] name = "foundry-wallets" -version = "1.6.0" +version = "0.1.0" +source = "git+https://github.com/foundry-rs/foundry-core?rev=7f401c1397af90a0a94ef7424a48bbf3dc0248cc#7f401c1397af90a0a94ef7424a48bbf3dc0248cc" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -5566,9 +5567,6 @@ dependencies = [ "dirs", "eth-keystore", "eyre", - "foundry-common", - "foundry-config", - "reqwest 0.13.2", "rpassword", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 92393cf26ca56..f902786070d81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -338,7 +338,6 @@ foundry-evm-sancov = { path = "crates/evm/sancov" } foundry-evm-traces = { path = "crates/evm/traces" } foundry-macros = { path = "crates/macros" } foundry-test-utils = { path = "crates/test-utils" } -foundry-wallets = { path = "crates/wallets" } foundry-linking = { path = "crates/linking" } foundry-primitives = { path = "crates/primitives" } @@ -355,6 +354,9 @@ svm = { package = "svm-rs", version = "0.5", default-features = false, features "rustls", ] } +## foundry-core +foundry-wallets = { git = "https://github.com/foundry-rs/foundry-core", rev = "7f401c1397af90a0a94ef7424a48bbf3dc0248cc", default-features = false } + ## alloy alloy-consensus = { version = "2.0.0", default-features = false } alloy-contract = { version = "2.0.0", default-features = false } diff --git a/crates/wallets/Cargo.toml b/crates/wallets/Cargo.toml deleted file mode 100644 index 0f30346c72039..0000000000000 --- a/crates/wallets/Cargo.toml +++ /dev/null @@ -1,69 +0,0 @@ -[package] -name = "foundry-wallets" - -version.workspace = true -edition.workspace = true -rust-version.workspace = true -authors.workspace = true -license.workspace = true -homepage.workspace = true -repository.workspace = true - -[lints] -workspace = true - -[dependencies] -foundry-config.workspace = true - -alloy-primitives.workspace = true -alloy-signer = { workspace = true, features = ["eip712"] } -alloy-signer-local = { workspace = true, features = ["mnemonic", "keystore"] } -alloy-signer-ledger = { workspace = true, features = ["eip712"] } -alloy-signer-trezor.workspace = true -alloy-network.workspace = true -alloy-consensus.workspace = true -alloy-sol-types.workspace = true -alloy-dyn-abi.workspace = true - -# browser wallet -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 } - -# gcp-kms -alloy-signer-gcp = { workspace = true, features = ["eip712"], optional = true } - -# turnkey -alloy-signer-turnkey = { workspace = true, features = ["eip712"], optional = true } - -tempo-primitives.workspace = true -alloy-rlp.workspace = true - -async-trait.workspace = true -clap = { version = "4", features = ["derive", "env", "unicode", "wrap_help"] } -derive_builder = "0.20" -dirs.workspace = true -eyre.workspace = true -rpassword = "7" -serde.workspace = true -thiserror.workspace = true -toml.workspace = true -tower.workspace = true -tower-http = { workspace = true, features = ["cors", "set-header"] } -tracing.workspace = true -eth-keystore = "0.5.0" - -[dev-dependencies] -reqwest = { workspace = true, features = ["json"] } - -[features] -aws-kms = ["dep:alloy-signer-aws", "dep:aws-config"] -gcp-kms = ["dep:alloy-signer-gcp"] -turnkey = ["dep:alloy-signer-turnkey"] diff --git a/crates/wallets/src/error.rs b/crates/wallets/src/error.rs deleted file mode 100644 index a0f9628956469..0000000000000 --- a/crates/wallets/src/error.rs +++ /dev/null @@ -1,75 +0,0 @@ -use alloy_primitives::hex::FromHexError; -use alloy_signer::k256::ecdsa; -use alloy_signer_ledger::LedgerError; -use alloy_signer_local::LocalSignerError; -use alloy_signer_trezor::TrezorError; - -#[cfg(feature = "aws-kms")] -use alloy_signer_aws::AwsSignerError; - -#[cfg(feature = "gcp-kms")] -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}")] - InvalidHex(#[from] FromHexError), - #[error( - "Failed to create wallet from private key. Invalid private key. But env var {0} exists. Is the `$` anchor missing?" - )] - ExistsAsEnvVar(String), -} - -#[derive(Debug, thiserror::Error)] -pub enum WalletSignerError { - #[error(transparent)] - Local(#[from] LocalSignerError), - #[error("Failed to decrypt keystore: incorrect password")] - IncorrectKeystorePassword, - #[error(transparent)] - Ledger(#[from] LedgerError), - #[error(transparent)] - Trezor(#[from] TrezorError), - #[error(transparent)] - #[cfg(feature = "aws-kms")] - Aws(#[from] Box), - #[error(transparent)] - #[cfg(feature = "gcp-kms")] - Gcp(#[from] Box), - #[error(transparent)] - #[cfg(feature = "turnkey")] - Turnkey(#[from] TurnkeySignerError), - #[error(transparent)] - Browser(#[from] BrowserWalletError), - #[error(transparent)] - Io(#[from] std::io::Error), - #[error(transparent)] - InvalidHex(#[from] FromHexError), - #[error(transparent)] - Ecdsa(#[from] ecdsa::Error), - #[error("foundry was not built with support for {0} signer")] - UnsupportedSigner(&'static str), -} - -impl WalletSignerError { - pub const fn aws_unsupported() -> Self { - Self::UnsupportedSigner("AWS KMS") - } - - pub const fn gcp_unsupported() -> Self { - Self::UnsupportedSigner("Google Cloud KMS") - } - - pub const fn turnkey_unsupported() -> Self { - Self::UnsupportedSigner("Turnkey") - } - - pub const fn browser_unsupported() -> Self { - Self::UnsupportedSigner("Browser Wallet") - } -} diff --git a/crates/wallets/src/lib.rs b/crates/wallets/src/lib.rs deleted file mode 100644 index 435da79ace3d8..0000000000000 --- a/crates/wallets/src/lib.rs +++ /dev/null @@ -1,31 +0,0 @@ -//! # foundry-wallets -//! -//! Utilities for working with multiple signers. - -#![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 opts; -pub mod signer; -pub mod tempo; -pub mod utils; -pub mod wallet_browser; -pub mod wallet_multi; -pub mod wallet_raw; - -pub use opts::WalletOpts; -pub use signer::{PendingSigner, WalletSigner}; -pub use tempo::TempoAccessKeyConfig; -pub use wallet_browser::opts::BrowserWalletOpts; -pub use wallet_multi::MultiWalletOpts; -pub use wallet_raw::RawWalletOpts; - -#[cfg(feature = "aws-kms")] -use aws_config as _; diff --git a/crates/wallets/src/opts.rs b/crates/wallets/src/opts.rs deleted file mode 100644 index 49a15a6365979..0000000000000 --- a/crates/wallets/src/opts.rs +++ /dev/null @@ -1,330 +0,0 @@ -use crate::{signer::WalletSigner, tempo::TempoAccessKeyConfig, utils, wallet_raw::RawWalletOpts}; -use alloy_primitives::Address; -use alloy_signer::Signer; -use clap::Parser; -use eyre::Result; -use serde::Serialize; - -/// The wallet options can either be: -/// 1. Raw (via private key / mnemonic file, see `RawWallet`) -/// 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 { - /// The sender account. - #[arg( - long, - short, - value_name = "ADDRESS", - help_heading = "Wallet options - raw", - env = "ETH_FROM" - )] - pub from: Option
, - - #[command(flatten)] - pub raw: RawWalletOpts, - - /// Use the keystore in the given folder or file. - #[arg( - long = "keystore", - help_heading = "Wallet options - keystore", - value_name = "PATH", - env = "ETH_KEYSTORE" - )] - pub keystore_path: Option, - - /// Use a keystore from the default keystores folder (~/.foundry/keystores) by its filename - #[arg( - long = "account", - help_heading = "Wallet options - keystore", - value_name = "ACCOUNT_NAME", - env = "ETH_KEYSTORE_ACCOUNT", - conflicts_with = "keystore_path" - )] - pub keystore_account_name: Option, - - /// The keystore password. - /// - /// Used with --keystore. - #[arg( - long = "password", - help_heading = "Wallet options - keystore", - requires = "keystore_path", - value_name = "PASSWORD" - )] - pub keystore_password: Option, - - /// The keystore password file path. - /// - /// Used with --keystore. - #[arg( - long = "password-file", - help_heading = "Wallet options - keystore", - requires = "keystore_path", - value_name = "PASSWORD_FILE", - env = "ETH_PASSWORD" - )] - pub keystore_password_file: Option, - - /// Use a Ledger hardware wallet. - #[arg(long, short, help_heading = "Wallet options - hardware wallet")] - pub ledger: bool, - - /// Use a Trezor hardware wallet. - #[arg(long, short, help_heading = "Wallet options - hardware wallet")] - pub trezor: bool, - - /// Use AWS Key Management Service. - /// - /// Ensure the AWS_KMS_KEY_ID environment variable is set. - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "aws-kms"))] - pub aws: bool, - - /// Use Google Cloud Key Management Service. - /// - /// Ensure the following environment variables are set: GCP_PROJECT_ID, GCP_LOCATION, - /// GCP_KEY_RING, GCP_KEY_NAME, GCP_KEY_VERSION. - /// - /// See: - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "gcp-kms"))] - pub gcp: bool, - - /// Use Turnkey. - /// - /// Ensure the following environment variables are set: TURNKEY_API_PRIVATE_KEY, - /// TURNKEY_ORGANIZATION_ID, TURNKEY_ADDRESS. - /// - /// See: - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "turnkey"))] - pub turnkey: bool, - - /// Tempo access key private key. - /// - /// When set, the transaction is signed with this access key on behalf of - /// `--tempo.root-account`. - #[arg( - long = "tempo.access-key", - help_heading = "Wallet options - Tempo", - value_name = "PRIVATE_KEY", - env = "TEMPO_ACCESS_KEY" - )] - pub tempo_access_key: Option, - - /// Tempo root account address (the `from` address for keychain transactions). - /// - /// Required when `--tempo.access-key` is set. - #[arg( - long = "tempo.root-account", - help_heading = "Wallet options - Tempo", - value_name = "ADDRESS", - requires = "tempo_access_key", - env = "TEMPO_ROOT_ACCOUNT" - )] - pub tempo_root_account: Option
, -} - -impl WalletOpts { - /// Attempts to resolve a signer from the configured wallet options. - /// - /// Returns the signer and, for Tempo keychain mode, an [`TempoAccessKeyConfig`] describing the - /// root wallet and provisioning data. - /// - /// Returns `Ok((None, None))` if no wallet option was configured and no Tempo fallback - /// matched. - pub async fn maybe_signer( - &self, - ) -> Result<(Option, Option)> { - trace!("start finding signer"); - - // If a Tempo access key is provided on the CLI, use it directly. - if let Some(ref access_key) = self.tempo_access_key { - let root_account = self.tempo_root_account.ok_or_else(|| { - eyre::eyre!("--tempo.root-account is required when --tempo.access-key is set") - })?; - let signer = utils::create_private_key_signer(access_key)?; - let key_address = signer.address(); - let config = TempoAccessKeyConfig { - wallet_address: root_account, - key_address, - key_authorization: None, - }; - return Ok((Some(signer), Some(config))); - } - - let get_env = |key: &str| { - std::env::var(key) - .map_err(|_| eyre::eyre!("{key} environment variable is required for signer")) - }; - - let signer = if self.ledger { - utils::create_ledger_signer(self.raw.hd_path.as_deref(), self.raw.mnemonic_index) - .await? - } else if self.trezor { - utils::create_trezor_signer(self.raw.hd_path.as_deref(), self.raw.mnemonic_index) - .await? - } else if self.aws { - let key_id = get_env("AWS_KMS_KEY_ID")?; - WalletSigner::from_aws(key_id).await? - } else if self.gcp { - let project_id = get_env("GCP_PROJECT_ID")?; - let location = get_env("GCP_LOCATION")?; - let keyring = get_env("GCP_KEY_RING")?; - let key_name = get_env("GCP_KEY_NAME")?; - let key_version = get_env("GCP_KEY_VERSION")? - .parse() - .map_err(|_| eyre::eyre!("GCP_KEY_VERSION could not be parsed into u64"))?; - WalletSigner::from_gcp(project_id, location, keyring, key_name, key_version).await? - } else if self.turnkey { - let api_private_key = get_env("TURNKEY_API_PRIVATE_KEY")?; - let organization_id = get_env("TURNKEY_ORGANIZATION_ID")?; - let address_str = get_env("TURNKEY_ADDRESS")?; - let address = address_str.parse().map_err(|_| { - eyre::eyre!("TURNKEY_ADDRESS could not be parsed as an Ethereum address") - })?; - WalletSigner::from_turnkey(api_private_key, organization_id, address)? - } else if let Some(raw_wallet) = self.raw.signer()? { - raw_wallet - } else if let Some(path) = utils::maybe_get_keystore_path( - self.keystore_path.as_deref(), - self.keystore_account_name.as_deref(), - )? { - let (maybe_signer, maybe_pending) = utils::create_keystore_signer( - &path, - self.keystore_password.as_deref(), - self.keystore_password_file.as_deref(), - )?; - if let Some(pending) = maybe_pending { - pending.unlock()? - } else if let Some(signer) = maybe_signer { - signer - } else { - unreachable!() - } - } else { - // No explicit wallet option was provided. Try Tempo wallet as a fallback - // if `--from` is set. - if let Some(from) = self.from { - match crate::tempo::lookup_signer(from)? { - crate::tempo::TempoLookup::Direct(signer) => { - return Ok((Some(signer), None)); - } - crate::tempo::TempoLookup::Keychain(signer, config) => { - return Ok((Some(signer), Some(*config))); - } - crate::tempo::TempoLookup::NotFound => {} - } - } - - return Ok((None, None)); - }; - - Ok((Some(signer), None)) - } - - pub async fn signer(&self) -> Result { - self.maybe_signer().await?.0.ok_or_else(|| { - eyre::eyre!( - "\ -Error accessing local wallet. Did you pass a keystore, hardware wallet, private key or mnemonic? - -Run the command with --help flag for more information or use the corresponding CLI -flag to set your key via: - ---keystore ---interactive ---private-key ---mnemonic-path ---aws ---gcp ---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, -respectively. The sender address can be specified by setting the `ETH_FROM` environment -variable to the desired unlocked account address, or by providing the address directly -using the --from flag." - ) - }) - } -} - -impl From for WalletOpts { - fn from(options: RawWalletOpts) -> Self { - Self { raw: options, ..Default::default() } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use std::{path::Path, str::FromStr}; - - #[tokio::test] - async fn find_keystore() { - let keystore = - Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../cast/tests/fixtures/keystore")); - let keystore_file = keystore - .join("UTC--2022-12-20T10-30-43.591916000Z--ec554aeafe75601aaab43bd4621a22284db566c2"); - let password_file = keystore.join("password-ec554"); - let wallet: WalletOpts = WalletOpts::parse_from([ - "foundry-cli", - "--from", - "560d246fcddc9ea98a8b032c9a2f474efb493c28", - "--keystore", - keystore_file.to_str().unwrap(), - "--password-file", - password_file.to_str().unwrap(), - ]); - let signer = wallet.signer().await.unwrap(); - assert_eq!( - signer.address(), - Address::from_str("ec554aeafe75601aaab43bd4621a22284db566c2").unwrap() - ); - } - - #[tokio::test] - async fn illformed_private_key_generates_user_friendly_error() { - let wallet = WalletOpts { - raw: RawWalletOpts { - interactive: false, - private_key: Some("123".to_string()), - mnemonic: None, - mnemonic_passphrase: None, - hd_path: None, - mnemonic_index: 0, - }, - from: None, - keystore_path: None, - keystore_account_name: None, - keystore_password: None, - keystore_password_file: None, - ledger: false, - trezor: false, - aws: false, - gcp: false, - turnkey: false, - tempo_access_key: None, - tempo_root_account: None, - }; - match wallet.signer().await { - Ok(_) => { - panic!("illformed private key shouldn't decode") - } - Err(x) => { - assert!( - x.to_string().contains("Failed to decode private key"), - "Error message is not user-friendly" - ); - } - } - } -} diff --git a/crates/wallets/src/signer.rs b/crates/wallets/src/signer.rs deleted file mode 100644 index ddbd5a47fe978..0000000000000 --- a/crates/wallets/src/signer.rs +++ /dev/null @@ -1,348 +0,0 @@ -use crate::error::WalletSignerError; -use alloy_consensus::SignableTransaction; -use alloy_dyn_abi::TypedData; -use alloy_network::TxSigner; -use alloy_primitives::{Address, B256, ChainId, Signature, hex}; -use alloy_signer::Signer; -use alloy_signer_ledger::{HDPath as LedgerHDPath, LedgerSigner}; -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 tracing::warn; - -#[cfg(feature = "aws-kms")] -use alloy_signer_aws::{AwsSigner, aws_config::BehaviorVersion, aws_sdk_kms::Client as AwsClient}; - -#[cfg(feature = "gcp-kms")] -use alloy_signer_gcp::{ - GcpKeyRingRef, GcpSigner, GcpSignerError, KeySpecifier, - gcloud_sdk::{ - GoogleApi, - google::cloud::kms::v1::key_management_service_client::KeyManagementServiceClient, - }, -}; - -#[cfg(feature = "turnkey")] -use alloy_signer_turnkey::TurnkeySigner; - -pub type Result = std::result::Result; - -/// Wrapper enum around different signers. -#[derive(Debug)] -pub enum WalletSigner { - /// Wrapper around local wallet. e.g. private key, mnemonic - Local(PrivateKeySigner), - /// Wrapper around Ledger signer. - Ledger(LedgerSigner), - /// Wrapper around Trezor signer. - Trezor(TrezorSigner), - /// Wrapper around AWS KMS signer. - #[cfg(feature = "aws-kms")] - Aws(AwsSigner), - /// Wrapper around Google Cloud KMS signer. - #[cfg(feature = "gcp-kms")] - Gcp(GcpSigner), - /// Wrapper around Turnkey signer. - #[cfg(feature = "turnkey")] - Turnkey(TurnkeySigner), -} - -impl WalletSigner { - pub async fn from_ledger_path(path: LedgerHDPath) -> Result { - let ledger = LedgerSigner::new(path, None).await?; - Ok(Self::Ledger(ledger)) - } - - pub async fn from_trezor_path(path: TrezorHDPath) -> Result { - let trezor = TrezorSigner::new(path, None).await?; - Ok(Self::Trezor(trezor)) - } - - pub async fn from_aws(key_id: String) -> Result { - #[cfg(feature = "aws-kms")] - { - let config = - alloy_signer_aws::aws_config::load_defaults(BehaviorVersion::latest()).await; - let client = AwsClient::new(&config); - - Ok(Self::Aws( - AwsSigner::new(client, key_id, None) - .await - .map_err(|e| WalletSignerError::Aws(Box::new(e)))?, - )) - } - - #[cfg(not(feature = "aws-kms"))] - { - let _ = key_id; - Err(WalletSignerError::aws_unsupported()) - } - } - - pub async fn from_gcp( - project_id: String, - location: String, - keyring: String, - key_name: String, - key_version: u64, - ) -> Result { - #[cfg(feature = "gcp-kms")] - { - let keyring = GcpKeyRingRef::new(&project_id, &location, &keyring); - let client = match GoogleApi::from_function( - KeyManagementServiceClient::new, - "https://cloudkms.googleapis.com", - None, - ) - .await - { - Ok(c) => c, - Err(e) => { - return Err(WalletSignerError::Gcp(Box::new(GcpSignerError::GoogleKmsError( - e, - )))); - } - }; - - let specifier = KeySpecifier::new(keyring, &key_name, key_version); - - Ok(Self::Gcp( - GcpSigner::new(client, specifier, None) - .await - .map_err(|e| WalletSignerError::Gcp(Box::new(e)))?, - )) - } - - #[cfg(not(feature = "gcp-kms"))] - { - let _ = project_id; - let _ = location; - let _ = keyring; - let _ = key_name; - let _ = key_version; - Err(WalletSignerError::gcp_unsupported()) - } - } - - pub fn from_turnkey( - api_private_key: String, - organization_id: String, - address: Address, - ) -> Result { - #[cfg(feature = "turnkey")] - { - Ok(Self::Turnkey(TurnkeySigner::from_api_key( - &api_private_key, - organization_id, - address, - None, - )?)) - } - - #[cfg(not(feature = "turnkey"))] - { - let _ = api_private_key; - let _ = organization_id; - let _ = address; - Err(WalletSignerError::turnkey_unsupported()) - } - } - - pub fn from_private_key(private_key: &B256) -> Result { - Ok(Self::Local(PrivateKeySigner::from_bytes(private_key)?)) - } - - /// Returns a list of addresses available to use with current signer - /// - /// - for Ledger and Trezor signers the number of addresses to retrieve is specified as argument - /// - the result for Ledger signers includes addresses available for both LedgerLive and Legacy - /// derivation paths - /// - for Local and AWS signers the result contains a single address - /// - errors when retrieving addresses are logged but do not prevent returning available - /// addresses - pub async fn available_senders(&self, max: usize) -> Result> { - let mut senders = HashSet::new(); - - match self { - Self::Local(local) => { - senders.insert(local.address()); - } - Self::Ledger(ledger) => { - // Try LedgerLive derivation path - for i in 0..max { - match ledger.get_address_with_path(&LedgerHDPath::LedgerLive(i)).await { - Ok(address) => { - senders.insert(address); - } - Err(e) => { - warn!("Failed to get Ledger address at index {i} (LedgerLive): {e}"); - } - } - } - // Try Legacy derivation path - for i in 0..max { - match ledger.get_address_with_path(&LedgerHDPath::Legacy(i)).await { - Ok(address) => { - senders.insert(address); - } - Err(e) => { - warn!("Failed to get Ledger address at index {i} (Legacy): {e}"); - } - } - } - } - Self::Trezor(trezor) => { - for i in 0..max { - match trezor.get_address_with_path(&TrezorHDPath::TrezorLive(i)).await { - Ok(address) => { - senders.insert(address); - } - Err(e) => { - warn!("Failed to get Trezor address at index {i} (TrezorLive): {e}",); - } - } - } - } - #[cfg(feature = "aws-kms")] - Self::Aws(aws) => { - senders.insert(alloy_signer::Signer::address(aws)); - } - #[cfg(feature = "gcp-kms")] - Self::Gcp(gcp) => { - senders.insert(alloy_signer::Signer::address(gcp)); - } - #[cfg(feature = "turnkey")] - Self::Turnkey(turnkey) => { - senders.insert(alloy_signer::Signer::address(turnkey)); - } - } - Ok(senders.into_iter().collect()) - } - - pub fn from_mnemonic( - mnemonic: &str, - passphrase: Option<&str>, - derivation_path: Option<&str>, - index: u32, - ) -> Result { - let mut builder = MnemonicBuilder::::default().phrase(mnemonic); - - if let Some(passphrase) = passphrase { - builder = builder.password(passphrase) - } - - builder = if let Some(hd_path) = derivation_path { - builder.derivation_path(hd_path)? - } else { - builder.index(index)? - }; - - Ok(Self::Local(builder.build()?)) - } -} - -macro_rules! delegate { - ($s:ident, $inner:ident => $e:expr) => { - match $s { - Self::Local($inner) => $e, - Self::Ledger($inner) => $e, - Self::Trezor($inner) => $e, - #[cfg(feature = "aws-kms")] - Self::Aws($inner) => $e, - #[cfg(feature = "gcp-kms")] - Self::Gcp($inner) => $e, - #[cfg(feature = "turnkey")] - Self::Turnkey($inner) => $e, - } - }; -} - -#[async_trait] -impl Signer for WalletSigner { - /// Signs the given hash. - async fn sign_hash(&self, hash: &B256) -> alloy_signer::Result { - delegate!(self, inner => inner.sign_hash(hash)).await - } - - async fn sign_message(&self, message: &[u8]) -> alloy_signer::Result { - delegate!(self, inner => inner.sign_message(message)).await - } - - fn address(&self) -> Address { - delegate!(self, inner => alloy_signer::Signer::address(inner)) - } - - fn chain_id(&self) -> Option { - delegate!(self, inner => inner.chain_id()) - } - - fn set_chain_id(&mut self, chain_id: Option) { - delegate!(self, inner => inner.set_chain_id(chain_id)) - } - - async fn sign_typed_data( - &self, - payload: &T, - domain: &Eip712Domain, - ) -> alloy_signer::Result - where - Self: Sized, - { - delegate!(self, inner => inner.sign_typed_data(payload, domain)).await - } - - async fn sign_dynamic_typed_data( - &self, - payload: &TypedData, - ) -> alloy_signer::Result { - delegate!(self, inner => inner.sign_dynamic_typed_data(payload)).await - } -} - -#[async_trait] -impl TxSigner for WalletSigner { - fn address(&self) -> Address { - Signer::address(self) - } - - async fn sign_transaction( - &self, - tx: &mut dyn SignableTransaction, - ) -> alloy_signer::Result { - delegate!(self, inner => TxSigner::sign_transaction(inner, tx)).await - } -} - -/// Signers that require user action to be obtained. -#[derive(Debug, Clone)] -pub enum PendingSigner { - Keystore(PathBuf), - Interactive, -} - -impl PendingSigner { - pub fn unlock(self) -> Result { - match self { - Self::Keystore(path) => { - let password = rpassword::prompt_password("Enter keystore password:")?; - match PrivateKeySigner::decrypt_keystore(path, password) { - Ok(signer) => Ok(WalletSigner::Local(signer)), - Err(e) => match e { - // Catch the `MacMismatch` error, which indicates an incorrect password and - // return a more user-friendly `IncorrectKeystorePassword`. - alloy_signer_local::LocalSignerError::EthKeystoreError( - eth_keystore::KeystoreError::MacMismatch, - ) => Err(WalletSignerError::IncorrectKeystorePassword), - _ => Err(WalletSignerError::Local(e)), - }, - } - } - Self::Interactive => { - let private_key = rpassword::prompt_password("Enter private key:")?; - Ok(WalletSigner::from_private_key(&hex::FromHex::from_hex(private_key)?)?) - } - } - } -} diff --git a/crates/wallets/src/tempo.rs b/crates/wallets/src/tempo.rs deleted file mode 100644 index e0a05d1212eae..0000000000000 --- a/crates/wallets/src/tempo.rs +++ /dev/null @@ -1,160 +0,0 @@ -use alloy_primitives::{Address, hex}; -use alloy_rlp::Decodable; -use eyre::Result; -use std::path::PathBuf; -use tempo_primitives::transaction::SignedKeyAuthorization; - -use crate::{WalletSigner, utils}; - -/// Wallet type: how this wallet was created. -#[derive(Clone, Copy, Default, serde::Deserialize)] -#[serde(rename_all = "lowercase")] -enum WalletType { - #[default] - Local, - Passkey, -} - -/// Cryptographic key type. -#[derive(Clone, Copy, Default, serde::Deserialize)] -#[serde(rename_all = "lowercase")] -enum KeyType { - #[default] - Secp256k1, - P256, - WebAuthn, -} - -/// A single entry from Tempo's `keys.toml`. -#[derive(serde::Deserialize)] -#[allow(dead_code)] -struct KeyEntry { - #[serde(default)] - wallet_type: WalletType, - #[serde(default)] - wallet_address: Address, - #[serde(default)] - chain_id: u64, - #[serde(default)] - key_type: KeyType, - #[serde(default)] - key_address: Option
, - #[serde(default)] - key: Option, - #[serde(default)] - key_authorization: Option, - #[serde(default)] - expiry: Option, - #[serde(default)] - limits: Vec, -} - -/// Per-token spending limit stored in `keys.toml`. -#[derive(serde::Deserialize)] -struct StoredTokenLimit { - #[allow(dead_code)] - currency: Address, - #[allow(dead_code)] - limit: String, -} - -/// The top-level structure of `~/.tempo/wallet/keys.toml`. -#[derive(serde::Deserialize)] -struct KeysFile { - #[serde(default)] - keys: Vec, -} - -/// Configuration for a Tempo access key (keychain mode). -/// -/// When a Tempo wallet entry uses keychain mode (`wallet_address != key_address`), the signer -/// is an access key that signs on behalf of the root wallet. This struct carries the metadata -/// needed to construct the correct transaction. -#[derive(Debug, Clone)] -pub struct TempoAccessKeyConfig { - /// The root wallet address (the `from` address for transactions). - pub wallet_address: Address, - /// The access key's address (derived from the private key that actually signs). - pub key_address: Address, - /// Decoded key authorization for on-chain provisioning. - /// - /// When present, callers should check whether the key is already provisioned on-chain - /// (via the AccountKeychain precompile) before including this in a transaction. - pub key_authorization: Option, -} - -/// Result of looking up an address in Tempo's key store. -pub enum TempoLookup { - /// A direct (EOA) signer was found — `wallet_address == key_address`. - Direct(WalletSigner), - /// A keychain (access key) signer was found — `wallet_address != key_address`. - Keychain(WalletSigner, Box), - /// No matching entry was found. - NotFound, -} - -/// Returns the path to Tempo's keys file. -/// -/// Respects `TEMPO_HOME` env var, defaulting to `~/.tempo`. -fn keys_path() -> Option { - let base = std::env::var_os("TEMPO_HOME") - .map(PathBuf::from) - .or_else(|| dirs::home_dir().map(|h| h.join(".tempo")))?; - Some(base.join("wallet").join("keys.toml")) -} - -/// Decodes a hex-encoded, RLP-encoded [`SignedKeyAuthorization`]. -fn decode_key_authorization(hex_str: &str) -> Result { - let bytes = hex::decode(hex_str)?; - let auth = SignedKeyAuthorization::decode(&mut bytes.as_slice())?; - Ok(auth) -} - -/// Looks up a signer for the given address in Tempo's `keys.toml`. -/// -/// Returns [`TempoLookup::Direct`] if a direct-mode (EOA) key is found, -/// [`TempoLookup::Keychain`] if a keychain-mode access key is found, -/// or [`TempoLookup::NotFound`] if no entry matches. -pub fn lookup_signer(from: Address) -> Result { - let path = match keys_path() { - Some(p) if p.is_file() => p, - _ => return Ok(TempoLookup::NotFound), - }; - - let contents = std::fs::read_to_string(&path)?; - let file: KeysFile = toml::from_str(&contents)?; - - for entry in &file.keys { - if entry.wallet_address != from { - continue; - } - - let Some(key) = &entry.key else { - continue; - }; - - // Direct mode: wallet_address == key_address (or key_address is absent). - let is_direct = - entry.key_address.is_none() || entry.key_address == Some(entry.wallet_address); - - let signer = utils::create_private_key_signer(key)?; - - if is_direct { - return Ok(TempoLookup::Direct(signer)); - } - - // Keychain mode: the key is an access key signing on behalf of wallet_address. - let key_authorization = - entry.key_authorization.as_deref().map(decode_key_authorization).transpose()?; - - let config = TempoAccessKeyConfig { - wallet_address: entry.wallet_address, - // SAFETY: `is_direct` was false, so `key_address` is `Some` and != wallet_address - key_address: entry.key_address.unwrap(), - key_authorization, - }; - return Ok(TempoLookup::Keychain(signer, Box::new(config))); - } - - Ok(TempoLookup::NotFound) -} diff --git a/crates/wallets/src/utils.rs b/crates/wallets/src/utils.rs deleted file mode 100644 index 6849125e3f084..0000000000000 --- a/crates/wallets/src/utils.rs +++ /dev/null @@ -1,164 +0,0 @@ -use crate::{PendingSigner, WalletSigner, error::PrivateKeyError}; -use alloy_primitives::{B256, hex::FromHex}; -use alloy_signer_ledger::HDPath as LedgerHDPath; -use alloy_signer_local::PrivateKeySigner; -use alloy_signer_trezor::HDPath as TrezorHDPath; -use eyre::{Context, Result}; -use foundry_config::Config; -use std::{ - fs, - path::{Path, PathBuf}, -}; - -fn ensure_pk_not_env(pk: &str) -> Result<()> { - if !pk.starts_with("0x") && std::env::var(pk).is_ok() { - return Err(PrivateKeyError::ExistsAsEnvVar(pk.to_string()).into()); - } - Ok(()) -} - -/// Validates and sanitizes user inputs, returning configured [WalletSigner]. -pub fn create_private_key_signer(private_key_str: &str) -> Result { - let Ok(private_key) = B256::from_hex(private_key_str) else { - ensure_pk_not_env(private_key_str)?; - eyre::bail!("Failed to decode private key") - }; - match PrivateKeySigner::from_bytes(&private_key) { - Ok(pk) => Ok(WalletSigner::Local(pk)), - Err(err) => { - ensure_pk_not_env(private_key_str)?; - eyre::bail!("Failed to create wallet from private key: {err}") - } - } -} - -/// Creates [WalletSigner] instance from given mnemonic parameters. -/// -/// Mnemonic can be either a file path or a mnemonic phrase. -pub fn create_mnemonic_signer( - mnemonic: &str, - passphrase: Option<&str>, - hd_path: Option<&str>, - index: u32, -) -> Result { - let mnemonic = if Path::new(mnemonic).is_file() { - fs::read_to_string(mnemonic)? - } else { - mnemonic.to_owned() - }; - let mnemonic = mnemonic.split_whitespace().collect::>().join(" "); - - Ok(WalletSigner::from_mnemonic(&mnemonic, passphrase, hd_path, index)?) -} - -/// Creates [WalletSigner] instance from given Ledger parameters. -pub async fn create_ledger_signer( - hd_path: Option<&str>, - mnemonic_index: u32, -) -> Result { - let derivation = if let Some(hd_path) = hd_path { - LedgerHDPath::Other(hd_path.to_owned()) - } else { - LedgerHDPath::LedgerLive(mnemonic_index as usize) - }; - - WalletSigner::from_ledger_path(derivation).await.wrap_err_with(|| { - "\ -Could not connect to Ledger device. -Make sure it's connected and unlocked, with no other desktop wallet apps open." - }) -} - -/// Creates [WalletSigner] instance from given Trezor parameters. -pub async fn create_trezor_signer( - hd_path: Option<&str>, - mnemonic_index: u32, -) -> Result { - let derivation = if let Some(hd_path) = hd_path { - TrezorHDPath::Other(hd_path.to_owned()) - } else { - TrezorHDPath::TrezorLive(mnemonic_index as usize) - }; - - WalletSigner::from_trezor_path(derivation).await.wrap_err_with(|| { - "\ -Could not connect to Trezor device. -Make sure it's connected and unlocked, with no other conflicting desktop wallet apps open." - }) -} - -pub fn maybe_get_keystore_path( - maybe_path: Option<&str>, - maybe_name: Option<&str>, -) -> Result> { - let default_keystore_dir = Config::foundry_keystores_dir() - .ok_or_else(|| eyre::eyre!("Could not find the default keystore directory."))?; - Ok(maybe_path - .map(PathBuf::from) - .or_else(|| maybe_name.map(|name| default_keystore_dir.join(name)))) -} - -/// Creates keystore signer from given parameters. -/// -/// If correct password or password file is provided, the keystore is decrypted and a [WalletSigner] -/// is returned. -/// -/// Otherwise, a [PendingSigner] is returned, which can be used to unlock the keystore later, -/// prompting user for password. -pub fn create_keystore_signer( - path: &PathBuf, - maybe_password: Option<&str>, - maybe_password_file: Option<&str>, -) -> Result<(Option, Option)> { - if !path.exists() { - eyre::bail!("Keystore file `{path:?}` does not exist") - } - - if path.is_dir() { - eyre::bail!( - "Keystore path `{path:?}` is a directory. Please specify the keystore file directly." - ) - } - - let password = match (maybe_password, maybe_password_file) { - (Some(password), _) => Ok(Some(password.to_string())), - (_, Some(password_file)) => { - let password_file = Path::new(password_file); - if password_file.is_file() { - Ok(Some( - fs::read_to_string(password_file) - .wrap_err_with(|| { - format!("Failed to read keystore password file at {password_file:?}") - })? - .trim_end() - .to_string(), - )) - } else { - Err(eyre::eyre!("Keystore password file `{password_file:?}` does not exist")) - } - } - (None, None) => Ok(None), - }?; - - if let Some(password) = password { - let wallet = PrivateKeySigner::decrypt_keystore(path, password) - .wrap_err_with(|| format!("Failed to decrypt keystore {path:?}"))?; - Ok((Some(WalletSigner::Local(wallet)), None)) - } else { - Ok((None, Some(PendingSigner::Keystore(path.clone())))) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn parse_private_key_signer() { - let pk = B256::random(); - let pk_str = pk.to_string(); - assert!(create_private_key_signer(&pk_str).is_ok()); - // skip 0x - assert!(create_private_key_signer(&pk_str[2..]).is_ok()); - } -} diff --git a/crates/wallets/src/wallet_browser/app/assets/banner.png b/crates/wallets/src/wallet_browser/app/assets/banner.png deleted file mode 100644 index 2a3752b97fc0c..0000000000000 Binary files a/crates/wallets/src/wallet_browser/app/assets/banner.png and /dev/null differ diff --git a/crates/wallets/src/wallet_browser/app/assets/index.html b/crates/wallets/src/wallet_browser/app/assets/index.html deleted file mode 100644 index 052f6448dadde..0000000000000 --- a/crates/wallets/src/wallet_browser/app/assets/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Foundry - - - - -
- - diff --git a/crates/wallets/src/wallet_browser/app/assets/logo.png b/crates/wallets/src/wallet_browser/app/assets/logo.png deleted file mode 100644 index 1f29796cdda68..0000000000000 Binary files a/crates/wallets/src/wallet_browser/app/assets/logo.png and /dev/null differ diff --git a/crates/wallets/src/wallet_browser/app/assets/main.js b/crates/wallets/src/wallet_browser/app/assets/main.js deleted file mode 100644 index 6d89aa9e303f1..0000000000000 --- a/crates/wallets/src/wallet_browser/app/assets/main.js +++ /dev/null @@ -1,71 +0,0 @@ -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,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},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 ee(){}var C={H:null,A:null,T:null,S:null},te=Object.prototype.hasOwnProperty;function ne(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function re(e,t){return ne(e.type,t,e.props)}function ie(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ae(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var oe=/\/+/g;function se(e,t){return typeof e==`object`&&e&&e.key!=null?ae(``+e.key):t.toString(36)}function ce(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(ee,ee):(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 le(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,le(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+se(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(oe,`$&/`)+`/`),le(o,r,i,``,function(e){return e})):o!=null&&(ie(o)&&(o=re(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(oe,`$&/`)+`/`)+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,ie());else{var t=n(l);t!==null&&se(x,t.startTime-e)}}var S=!1,ee=-1,C=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-tet&&ne());){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&&se(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?ie():S=!1}}}var ie;if(typeof y==`function`)ie=function(){y(re)};else if(typeof MessageChannel<`u`){var ae=new MessageChannel,oe=ae.port2;ae.port1.onmessage=re,ie=function(){oe.postMessage(null)}}else ie=function(){_(re,0)};function se(t,n){ee=_(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(ee),ee=-1):h=!0,se(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,ie()))),r},e.unstable_shouldYield=ne,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(1he||(e.current=me[he],me[he]=null,he--)}function ve(e,t){he++,me[he]=e.current,e.current=t}var ye=ge(null),be=ge(null),xe=ge(null),Se=ge(null);function Ce(e,t){switch(ve(xe,t),ve(be,e),ve(ye,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}}_e(ye),ve(ye,e)}function we(){_e(ye),_e(be),_e(xe)}function Te(e){e.memoizedState!==null&&ve(Se,e);var t=ye.current,n=cf(t,e.type);t!==n&&(ve(be,e),ve(ye,n))}function Ee(e){be.current===e&&(_e(ye),_e(be)),Se.current===e&&(_e(Se),hp._currentValue=pe)}var De,Oe;function ke(e){if(De===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);De=t&&t[1]||``,Oe=-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{Ae=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ke(n):``}function Me(e,t){switch(e.tag){case 26:case 27:case 5:return ke(e.type);case 16:return ke(`Lazy`);case 13:return e.child!==t&&t!==null?ke(`Suspense Fallback`):ke(`Suspense`);case 19:return ke(`SuspenseList`);case 0:case 15:return je(e.type,!1);case 11:return je(e.type.render,!1);case 1:return je(e.type,!0);case 31:return ke(`Activity`);default:return``}}function Ne(e){try{var t=``,n=null;do t+=Me(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var Pe=Object.prototype.hasOwnProperty,Fe=t.unstable_scheduleCallback,Ie=t.unstable_cancelCallback,Le=t.unstable_shouldYield,Re=t.unstable_requestPaint,ze=t.unstable_now,Be=t.unstable_getCurrentPriorityLevel,Ve=t.unstable_ImmediatePriority,He=t.unstable_UserBlockingPriority,Ue=t.unstable_NormalPriority,We=t.unstable_LowPriority,Ge=t.unstable_IdlePriority,Ke=t.log,qe=t.unstable_setDisableYieldValue,Je=null,Ye=null;function Xe(e){if(typeof Ke==`function`&&qe(e),Ye&&typeof Ye.setStrictMode==`function`)try{Ye.setStrictMode(Je,e)}catch{}}var Ze=Math.clz32?Math.clz32:et,Qe=Math.log,$e=Math.LN2;function et(e){return e>>>=0,e===0?32:31-(Qe(e)/$e|0)|0}var tt=256,nt=262144,rt=4194304;function it(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 at(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=it(n))):i=it(o):i=it(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=it(n))):i=it(o)):i=it(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 ot(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function st(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 ct(){var e=rt;return rt<<=1,!(rt&62914560)&&(rt=4194304),e}function lt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ut(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function dt(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),xn=!1;if(bn)try{var Sn={};Object.defineProperty(Sn,`passive`,{get:function(){xn=!0}}),window.addEventListener(`test`,Sn,Sn),window.removeEventListener(`test`,Sn,Sn)}catch{xn=!1}var Cn=null,wn=null,Tn=null;function En(){if(Tn)return Tn;var e,t=wn,n=t.length,r,i=`value`in Cn?Cn.value:Cn.textContent,a=i.length;for(e=0;e=nr),ar=` `,or=!1;function sr(e,t){switch(e){case`keyup`:return er.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function cr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var lr=!1;function ur(e,t){switch(e){case`compositionend`:return cr(t);case`keypress`:return t.which===32?(or=!0,ar):null;case`textInput`:return e=t.data,e===ar&&or?null:e;default:return null}}function dr(e,t){if(lr)return e===`compositionend`||!tr&&sr(e,t)?(e=En(),Tn=wn=Cn=null,lr=!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=Nr(n)}}function Fr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ir(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=qt(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=qt(e.document)}return t}function Lr(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 Rr=bn&&`documentMode`in document&&11>=document.documentMode,zr=null,Br=null,Vr=null,Hr=!1;function Ur(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hr||zr==null||zr!==qt(r)||(r=zr,`selectionStart`in r&&Lr(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}),Vr&&Mr(Vr,r)||(Vr=r,r=Gd(Br,`onSelect`),0>=o,i-=o,Fi=1<<32-Ze(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),Wi&&Li(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),Wi&&Li(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 Wi&&Li(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)}),Wi&&Li(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===ie&&Ra(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ga(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=Si(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=xi(o.type,o.key,o.props,null,e.mode,c),Ga(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=Ti(o,e.mode,c),c.return=e,e=c}return s(e);case ie:return o=Ra(o),b(e,r,o,c)}if(de(o))return h(e,r,o,c);if(ce(o)){if(l=ce(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,Wa(o),c);if(o.$$typeof===ee)return b(e,r,fa(e,o),c);Ka(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=Ci(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ua=0;var i=b(e,t,n,r);return Ha=null,i}catch(t){if(t===Ma||t===Pa)throw t;var a=_i(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ja=qa(!0),Ya=qa(!1),Xa=!1;function Za(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Qa(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 $a(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function eo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,eu&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=mi(e),pi(e,null,n),t}return ui(e,r,t,n),mi(e)}function to(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,pt(e,n)}}function no(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 ro=!1;function io(){if(ro){var e=Ca;if(e!==null)throw e}}function ao(e,t,n,r){ro=!1;var i=e.updateQueue;Xa=!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?(M&f)===f:(r&f)===f){f!==0&&f===Sa&&(ro=!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:Xa=!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),lu|=o,e.lanes=o,e.memoizedState=d}}function oo(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function so(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=w.T,s={};w.T=s,qs(e,!1,t,n);try{var c=i(),l=w.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ks(e,t,Ea(c,r),ju(e)):Ks(e,t,r,ju(e))}catch(n){Ks(e,t,{then:function(){},status:`rejected`,reason:n},ju())}finally{fe.p=a,o!==null&&s.types!==null&&(o.types=s.types),w.T=o}}function Is(){}function Ls(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Rs(e).queue;Fs(e,a,t,pe,n===null?Is:function(){return zs(e),n(r)})}function Rs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:pe,baseState:pe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Jo,lastRenderedState:pe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Jo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function zs(e){var t=Rs(e);t.next===null&&(t=e.alternate.memoizedState),Ks(e,t.next.queue,{},ju())}function Bs(){return da(hp)}function Vs(){return Uo().memoizedState}function Hs(){return Uo().memoizedState}function Us(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=ju();e=$a(n);var r=eo(t,e,n);r!==null&&(Nu(r,t,n),to(r,t,n)),t={cache:va()},e.payload=t;return}t=t.return}}function Ws(e,t,n){var r=ju();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Js(e)?Ys(t,n):(n=di(e,t,n,r),n!==null&&(Nu(n,e,r),Xs(n,t,r)))}function Gs(e,t,n){Ks(e,t,n,ju())}function Ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Js(e))Ys(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,jr(s,o))return ui(e,t,i,0),tu===null&&li(),!1}catch{}if(n=di(e,t,i,r),n!==null)return Nu(n,e,r),Xs(n,t,r),!0}return!1}function qs(e,t,n,r){if(r={lane:2,revertLane:Ad(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Js(e)){if(t)throw Error(i(479))}else t=di(e,n,r,2),t!==null&&Nu(t,e,2)}function Js(e){var t=e.alternate;return e===A||t!==null&&t===A}function Ys(e,t){Do=Eo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,pt(e,n)}}var Zs={readContext:da,use:Ko,useCallback:No,useContext:No,useEffect:No,useImperativeHandle:No,useLayoutEffect:No,useInsertionEffect:No,useMemo:No,useReducer:No,useRef:No,useState:No,useDebugValue:No,useDeferredValue:No,useTransition:No,useSyncExternalStore:No,useId:No,useHostTransitionStatus:No,useFormState:No,useActionState:No,useOptimistic:No,useMemoCache:No,useCacheRefresh:No};Zs.useEffectEvent=No;var Qs={readContext:da,use:Ko,useCallback:function(e,t){return Ho().memoizedState=[e,t===void 0?null:t],e},useContext:da,useEffect:Ss,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),bs(4194308,4,Os.bind(null,t,e),n)},useLayoutEffect:function(e,t){return bs(4194308,4,e,t)},useInsertionEffect:function(e,t){bs(4,2,e,t)},useMemo:function(e,t){var n=Ho();t=t===void 0?null:t;var r=e();if(Oo){Xe(!0);try{e()}finally{Xe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Ho();if(n!==void 0){var i=n(t);if(Oo){Xe(!0);try{n(t)}finally{Xe(!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=Ws.bind(null,A,e),[r.memoizedState,e]},useRef:function(e){var t=Ho();return e={current:e},t.memoizedState=e},useState:function(e){e=is(e);var t=e.queue,n=Gs.bind(null,A,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:As,useDeferredValue:function(e,t){return Ns(Ho(),e,t)},useTransition:function(){var e=is(!1);return e=Fs.bind(null,A,e.queue,!0,!1),Ho().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=A,a=Ho();if(Wi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),tu===null)throw Error(i(349));M&127||$o(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Ss(ts.bind(null,r,o,e),[e]),r.flags|=2048,vs(9,{destroy:void 0},es.bind(null,r,o,n,t),null),n},useId:function(){var e=Ho(),t=tu.identifierPrefix;if(Wi){var n=Ii,r=Fi;n=(r&~(1<<32-Ze(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=ko++,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[bt]=t,o[xt]=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($d(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&&Kc(t)}}return Zc(t),qc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Kc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=xe.current,Zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Hi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[bt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Zd(e.nodeValue,n)),e||Ji(t,!0)}else e=of(e).createTextNode(r),e[bt]=t,t.stateNode=e}return Zc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Zi(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[bt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Zc(t),e=!1}else n=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(bo(t),t):(bo(t),null);if(t.flags&128)throw Error(i(558))}return Zc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Zi(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[bt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Zc(t),a=!1}else a=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(bo(t),t):(bo(t),null)}return bo(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),Yc(t,t.updateQueue),Zc(t),null);case 4:return we(),e===null&&Vd(t.stateNode.containerInfo),Zc(t),null;case 10:return aa(t.type),Zc(t),null;case 19:if(_e(xo),r=t.memoizedState,r===null)return Zc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Xc(r,!1);else{if(cu!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=So(e),o!==null){for(t.flags|=128,Xc(r,!1),e=o.updateQueue,t.updateQueue=e,Yc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)bi(n,e),n=n.sibling;return ve(xo,xo.current&1|2),Wi&&Li(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&ze()>yu&&(t.flags|=128,a=!0,Xc(r,!1),t.lanes=4194304)}else{if(!a)if(e=So(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Yc(t,e),Xc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Wi)return Zc(t),null}else 2*ze()-r.renderingStartTime>yu&&n!==536870912&&(t.flags|=128,a=!0,Xc(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?(Zc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ze(),e.sibling=null,n=xo.current,ve(xo,a?n&1|2:n&1),Wi&&Li(t,r.treeForkCount),e);case 22:case 23:return bo(t),po(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Zc(t),t.subtreeFlags&6&&(t.flags|=8192)):Zc(t),n=t.updateQueue,n!==null&&Yc(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&&_e(Oa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),aa(_a),Zc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function $c(e,t){switch(Bi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return aa(_a),we(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ee(t),null;case 31:if(t.memoizedState!==null){if(bo(t),t.alternate===null)throw Error(i(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(bo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return _e(xo),null;case 4:return we(),null;case 10:return aa(t.type),null;case 22:case 23:return bo(t),po(),e!==null&&_e(Oa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return aa(_a),null;case 25:return null;default:return null}}function el(e,t){switch(Bi(t),t.tag){case 3:aa(_a),we();break;case 26:case 27:case 5:Ee(t);break;case 4:we();break;case 31:t.memoizedState!==null&&bo(t);break;case 13:bo(t);break;case 19:_e(xo);break;case 10:aa(t.type);break;case 22:case 23:bo(t),po(),e!==null&&_e(Oa);break;case 24:aa(_a)}}function tl(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){ld(t,t.return,e)}}function nl(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){ld(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){ld(t,t.return,e)}}function rl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{so(t,n)}catch(t){ld(e,e.return,t)}}}function il(e,t,n){n.props=ac(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){ld(e,t,n)}}function al(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){ld(e,t,n)}}function ol(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){ld(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){ld(e,t,n)}else n.current=null}function sl(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){ld(e,e.return,t)}}function cl(e,t,n){try{var r=e.stateNode;ef(r,e.type,n,t),r[xt]=t}catch(t){ld(e,e.return,t)}}function ll(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&_f(e.type)||e.tag===4}function ul(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||ll(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&&_f(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 dl(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=dn));else if(r!==4&&(r===27&&_f(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(dl(e,t,n),e=e.sibling;e!==null;)dl(e,t,n),e=e.sibling}function fl(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&&_f(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(fl(e,t,n),e=e.sibling;e!==null;)fl(e,t,n),e=e.sibling}function pl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);$d(t,r,n),t[bt]=e,t[xt]=n}catch(t){ld(e,e.return,t)}}var ml=!1,hl=!1,gl=!1,_l=typeof WeakSet==`function`?WeakSet:Set,vl=null;function yl(e,t){if(e=e.containerInfo,rf=wp,e=Ir(e),Lr(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(af={focusedElem:e,selectionRange:n},wp=!1,vl=t;vl!==null;)if(t=vl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,vl=e;else for(;vl!==null;){switch(t=vl,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`))),$d(o,r,n),o[bt]=e,Mt(o),r=o;break a;case`link`:var s=ip(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Pr(s,h),v=Pr(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,w.T=null,n=Du,Du=null;var o=Cu,s=Tu;if(Su=0,wu=Cu=null,Tu=0,eu&6)throw Error(i(331));var c=eu;if(eu|=4,Yl(o.current),Vl(o,o.current,s,n),eu=c,Cd(0,!1),Ye&&typeof Ye.onPostCommitFiberRoot==`function`)try{Ye.onPostCommitFiberRoot(Je,o)}catch{}return!0}finally{fe.p=a,w.T=r,ad(e,t)}}function cd(e,t,n){t=Di(n,t),t=dc(e.stateNode,t,2),e=eo(e,t,2),e!==null&&(ut(e,2),Sd(e))}function ld(e,t,n){if(e.tag===3)cd(e,e,n);else for(;t!==null;){if(t.tag===3){cd(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(xu===null||!xu.has(r))){e=Di(n,e),n=fc(2),r=eo(t,n,2),r!==null&&(pc(n,r,t,e),ut(r,2),Sd(r));break}}t=t.return}}function ud(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new $l;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)||(ou=!0,i.add(n),e=dd.bind(null,e,t,n),t.then(e,e))}function dd(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,tu===e&&(M&n)===n&&(cu===4||cu===3&&(M&62914560)===M&&300>ze()-_u?!(eu&2)&&Bu(e,0):du|=n,pu===M&&(pu=0)),Sd(e)}function fd(e,t){t===0&&(t=ct()),e=fi(e,t),e!==null&&(ut(e,t),Sd(e))}function pd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fd(e,n)}function md(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),fd(e,n)}function hd(e,t){return Fe(e,t)}var gd=null,_d=null,vd=!1,yd=!1,bd=!1,xd=0;function Sd(e){e!==_d&&e.next===null&&(_d===null?gd=_d=e:_d=_d.next=e),yd=!0,vd||(vd=!0,kd())}function Cd(e,t){if(!bd&&yd){bd=!0;do for(var n=!1,r=gd;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-Ze(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Od(r,a))}else a=M,a=at(r,r===tu?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||ot(r,a)||(n=!0,Od(r,a));r=r.next}while(n);bd=!1}}function wd(){Td()}function Td(){yd=vd=!1;var e=0;xd!==0&&df()&&(e=xd);for(var t=ze(),n=null,r=gd;r!==null;){var i=r.next,a=Ed(r,t);a===0?(r.next=null,n===null?gd=i:n.next=i,i===null&&(_d=n)):(n=r,(e!==0||a&3)&&(yd=!0)),r=i}Su!==0&&Su!==5||Cd(e,!1),xd!==0&&(xd=0)}function Ed(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&&tf(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Bf(e,t,n){var r=zf;if(r&&typeof t==`string`&&t){var i=Yt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Pf.has(i)||(Pf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),$d(t,`link`,e),Mt(t),r.head.appendChild(t)))}}function Vf(e){If.D(e),Bf(`dns-prefetch`,e,null)}function Hf(e,t){If.C(e,t),Bf(`preconnect`,e,t)}function Uf(e,t,n){If.L(e,t,n);var r=zf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Yt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Yt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Yt(n.imageSizes)+`"]`)):i+=`[href="`+Yt(e)+`"]`;var a=i;switch(t){case`style`:a=Jf(e);break;case`script`:a=I(e)}Nf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Nf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Yf(a))||t===`script`&&r.querySelector(Qf(a))||(t=r.createElement(`link`),$d(t,`link`,e),Mt(t),r.head.appendChild(t)))}}function Wf(e,t){If.m(e,t);var n=zf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Yt(r)+`"][href="`+Yt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=I(e)}if(!Nf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),Nf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Qf(a)))return}r=n.createElement(`link`),$d(r,`link`,e),Mt(r),n.head.appendChild(r)}}}function Gf(e,t,n){If.S(e,t,n);var r=zf;if(r&&e){var i=jt(r).hoistableStyles,a=Jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Yf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Nf.get(a))&&tp(e,n);var c=o=r.createElement(`link`);Mt(c),$d(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,ep(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Kf(e,t){If.X(e,t);var n=zf;if(n&&e){var r=jt(n).hoistableScripts,i=I(e),a=r.get(i);a||(a=n.querySelector(Qf(i)),a||(e=p({src:e,async:!0},t),(t=Nf.get(i))&&np(e,t),a=n.createElement(`script`),Mt(a),$d(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function qf(e,t){If.M(e,t);var n=zf;if(n&&e){var r=jt(n).hoistableScripts,i=I(e),a=r.get(i);a||(a=n.querySelector(Qf(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=Nf.get(i))&&np(e,t),a=n.createElement(`script`),Mt(a),$d(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function F(e,t,n,r){var a=(a=xe.current)?Ff(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=Jf(n.href),n=jt(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=Jf(n.href);var o=jt(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(Yf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),Nf.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},Nf.set(e,n),o||Zf(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=I(n),n=jt(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 Jf(e){return`href="`+Yt(e)+`"`}function Yf(e){return`link[rel="stylesheet"][`+e+`]`}function Xf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Zf(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}),$d(t,`link`,n),Mt(t),e.head.appendChild(t))}function I(e){return`[src="`+Yt(e)+`"]`}function Qf(e){return`script[async]`+e}function $f(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Yt(n.href)+`"]`);if(r)return t.instance=r,Mt(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`),Mt(r),$d(r,`style`,a),ep(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Jf(n.href);var o=e.querySelector(Yf(a));if(o)return t.state.loading|=4,t.instance=o,Mt(o),o;r=Xf(n),(a=Nf.get(a))&&tp(r,a),o=(e.ownerDocument||e).createElement(`link`),Mt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),$d(o,`link`,r),t.state.loading|=4,ep(o,n.precedence,e),t.instance=o;case`script`:return o=I(n.src),(a=e.querySelector(Qf(o)))?(t.instance=a,Mt(a),a):(r=n,(a=Nf.get(o))&&(r=p({},n),np(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Mt(a),$d(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,ep(r,n.precedence,e));return t.instance}function ep(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 op(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 sp(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function cp(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=Jf(r.href),a=t.querySelector(Yf(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,Mt(a);return}a=t.ownerDocument||t,r=Xf(r),(i=Nf.get(i))&&tp(r,i),a=a.createElement(`link`),Mt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$d(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 lp=0;function up(e,t){return e.stylesheets&&e.count===0&&pp(e,e.stylesheets),0lp?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)pp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var fp=null;function pp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,fp=new Map,t.forEach(mp,e),fp=null,dp.call(e))}function mp(e,t){if(!(t.state.loading&4)){var n=fp.get(e);if(n)var r=n.get(null);else{n=new Map,fp.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=f(),b,x=o((()=>{b=`1.2.3`})),S,ee=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 C(e,t){return e.exec(t)?.groups}var te,ne,re,ie=o((()=>{te=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,ne=/^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)?$/,re=/^\(.+?\).*?$/}));function ae(e){let t=e.type;if(oe.test(e.type)&&`components`in e){t=`(`;let n=e.components.length;for(let r=0;r{ie(),oe=/^tuple(?(\[(\d*)\])*)$/}));function ce(e){let t=``,n=e.length;for(let r=0;r{se()}));function ue(e){return e.type===`function`?`function ${e.name}(${ce(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${ce(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${ce(e.inputs)})`:e.type===`error`?`error ${e.name}(${ce(e.inputs)})`:e.type===`constructor`?`constructor(${ce(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}var de=o((()=>{le()}));function w(e){return we.test(e)}function fe(e){return C(we,e)}function pe(e){return Te.test(e)}function me(e){return C(Te,e)}function he(e){return Ee.test(e)}function ge(e){return C(Ee,e)}function _e(e){return De.test(e)}function ve(e){return C(De,e)}function ye(e){return Oe.test(e)}function be(e){return C(Oe,e)}function xe(e){return ke.test(e)}function Se(e){return C(ke,e)}function Ce(e){return Ae.test(e)}var we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe=o((()=>{ie(),we=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/,Te=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/,Ee=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/,De=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/,Oe=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/,ke=/^fallback\(\) external(?:\s(?payable{1}))?$/,Ae=/^receive\(\) external payable$/,je=new Set([`memory`,`indexed`,`storage`,`calldata`]),Me=new Set([`indexed`]),Ne=new Set([`calldata`,`memory`,`storage`])})),Fe,Ie,Le,Re=o((()=>{ee(),Fe=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`})}},Ie=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`})}},Le=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`})}}})),ze,Be,Ve,He,Ue,We,Ge=o((()=>{ee(),ze=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`})}},Be=class extends S{constructor({param:e}){super(`Invalid ABI parameter.`,{details:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidParameterError`})}},Ve=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`})}},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`:``}.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`InvalidModifierError`})}},Ue=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`})}},We=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`})}}})),Ke,qe,Je,Ye=o((()=>{ee(),Ke=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`})}},qe=class extends S{constructor({signature:e}){super(`Unknown signature.`,{details:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`UnknownSignatureError`})}},Je=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`})}}})),Xe,Ze=o((()=>{ee(),Xe=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`})}}})),Qe,$e=o((()=>{ee(),Qe=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 et(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}${r}`}var tt,nt=o((()=>{tt=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 rt(e,t={}){if(he(e))return it(e,t);if(pe(e))return at(e,t);if(w(e))return ot(e,t);if(ye(e))return st(e,t);if(xe(e))return ct(e);if(Ce(e))return{type:`receive`,stateMutability:`payable`};throw new qe({signature:e})}function it(e,t={}){let n=ge(e);if(!n)throw new Ke({signature:e,type:`function`});let r=ut(n.parameters),i=[],a=r.length;for(let e=0;e{ie(),Re(),Ge(),Ye(),$e(),nt(),Pe(),mt=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,ht=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,gt=/^u?int$/,_t=/^(?: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 yt(e){let t={},n=e.length;for(let r=0;r{ie(),Re(),Ge(),Ye(),Ze(),Pe(),vt(),xt=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/}));function Ct(e){let t=yt(e),n=[],r=e.length;for(let i=0;i{Pe(),St(),vt()}));function Tt(e){let t;if(typeof e==`string`)t=rt(e);else{let n=yt(e),r=e.length;for(let i=0;i{Re(),Pe(),St(),vt()}));function Dt(e){let t=[];if(typeof e==`string`){let n=ut(e),r=n.length;for(let e=0;e{Ge(),Pe(),St(),vt()})),kt=o((()=>{de(),le(),wt(),Et(),Ot()}));kt();function T(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 At(e,{includeName:t=!1}={}){if(e.type!==`function`&&e.type!==`event`&&e.type!==`error`)throw new sn(e.type);return`${e.name}(${jt(e.inputs,{includeName:t})})`}function jt(e,{includeName:t=!1}={}){return e?e.map(e=>Mt(e,{includeName:t})).join(t?`, `:`,`):``}function Mt(e,{includeName:t}){return e.type.startsWith(`tuple`)?`(${jt(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:``)}var Nt=o((()=>{cn()}));function Pt(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}var Ft=o((()=>{}));function It(e){return Pt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Lt=o((()=>{Ft()})),Rt,zt=o((()=>{Rt=`2.47.6`}));function Bt(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?Bt(e.cause,t):t?null:e}var Vt,E,D=o((()=>{zt(),Vt={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${Rt}`},E=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=Vt.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...Vt.version?[`Version: ${Vt.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=Rt}walk(e){return Bt(this,e)}}})),Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn=o((()=>{Nt(),Lt(),D(),Ht=class extends E{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`})}},Ut=class extends E{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`})}},Wt=class extends E{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` -`),{metaMessages:[`Params: (${jt(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}},Gt=class extends E{constructor({cause:e}={}){super(`Cannot decode zero data ("0x") with ABI parameters.`,{name:`AbiDecodingZeroDataError`,cause:e})}},Kt=class extends E{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`})}},qt=class extends E{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${It(t)}) does not match expected size (bytes${e}).`,{name:`AbiEncodingBytesSizeMismatchError`})}},Jt=class extends E{constructor({expectedLength:e,givenLength:t}){super([`ABI encoding params/values length mismatch.`,`Expected length (params): ${e}`,`Given length (values): ${t}`].join(` -`),{name:`AbiEncodingLengthMismatchError`})}},Yt=class extends E{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`})}},Xt=class extends E{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`})}},Zt=class extends E{constructor(e,{docsPath:t,cause:n}){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://4byte.sourcify.dev/?q=${e}.`].join(` -`),{docsPath:t,name:`AbiErrorSignatureNotFoundError`,cause:n}),Object.defineProperty(this,`signature`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}},Qt=class extends E{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`})}},$t=class extends E{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`})}},en=class extends E{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://4byte.sourcify.dev/?q=${e}.`].join(` -`),{docsPath:t,name:`AbiFunctionSignatureNotFoundError`})}},tn=class extends E{constructor(e,t){super(`Found ambiguous types in overloaded ABI items.`,{metaMessages:[`\`${e.type}\` in \`${At(e.abiItem)}\`, and`,`\`${t.type}\` in \`${At(t.abiItem)}\``,``,`These types encode differently and cannot be distinguished at runtime.`,`Remove one of the ambiguous items in the ABI.`],name:`AbiItemAmbiguityError`})}},nn=class extends E{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:`BytesSizeMismatchError`})}},rn=class extends E{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,`Please provide a valid ABI type.`].join(` -`),{docsPath:t,name:`InvalidAbiEncodingType`})}},an=class extends E{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,`Please provide a valid ABI type.`].join(` -`),{docsPath:t,name:`InvalidAbiDecodingType`})}},on=class extends E{constructor(e){super([`Value "${e}" is not a valid array.`].join(` -`),{name:`InvalidArrayError`})}},sn=class extends E{constructor(e){super([`"${e}" is not a valid definition type.`,`Valid types: "function", "event", "error"`].join(` -`),{name:`InvalidDefinitionTypeError`})}}})),ln,un,dn,fn=o((()=>{D(),ln=class extends E{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},un=class extends E{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}},dn=class extends E{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 pn(e,{dir:t,size:n=32}={}){return typeof e==`string`?mn(e,{dir:t,size:n}):hn(e,{dir:t,size:n})}function mn(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new un({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function hn(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new un({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i{fn()})),_n,vn,yn,bn,xn=o((()=>{D(),_n=class extends E{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`})}},vn=class extends E{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`})}},yn=class extends E{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:`InvalidHexBooleanError`})}},bn=class extends E{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}}}));function Sn(e,{dir:t=`left`}={}){let n=typeof e==`string`?e.replace(`0x`,``):e,r=0;for(let e=0;e{}));function wn(e,{size:t}){if(It(e)>t)throw new bn({givenSize:It(e),maxSize:t})}function Tn(e,t={}){let{signed:n}=t;t.size&&wn(e,{size:t.size});let r=BigInt(e);if(!n)return r;let i=(e.length-2)/2;return r<=(1n<{xn(),Lt(),Cn()}));function kn(e,t={}){return typeof e==`number`||typeof e==`bigint`?O(e,t):typeof e==`string`?Mn(e,t):typeof e==`boolean`?An(e,t):jn(e,t)}function An(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(wn(n,{size:t.size}),pn(n,{size:t.size})):n}function jn(e,t={}){let n=``;for(let t=0;ta||i{xn(),gn(),On(),Nn=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),Pn=new TextEncoder}));function Fn(e,t={}){return typeof e==`number`||typeof e==`bigint`?zn(e,t):typeof e==`boolean`?In(e,t):Pt(e)?Rn(e,t):Bn(e,t)}function In(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(wn(n,{size:t.size}),pn(n,{size:t.size})):n}function Ln(e){if(e>=Hn.zero&&e<=Hn.nine)return e-Hn.zero;if(e>=Hn.A&&e<=Hn.F)return e-(Hn.A-10);if(e>=Hn.a&&e<=Hn.f)return e-(Hn.a-10)}function Rn(e,t={}){let n=e;t.size&&(wn(n,{size:t.size}),n=pn(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{D(),Ft(),gn(),On(),k(),Vn=new TextEncoder,Hn={zero:48,nine:57,A:65,F:70,a:97,f:102}}));function Wn(e,t=!1){return t?{h:Number(e&qn),l:Number(e>>Jn&qn)}:{h:Number(e>>Jn&qn)|0,l:Number(e&qn)|0}}function Gn(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 qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr=o((()=>{qn=BigInt(2**32-1),Jn=BigInt(32),Yn=(e,t,n)=>e>>>n,Xn=(e,t,n)=>e<<32-n|t>>>n,Zn=(e,t,n)=>e>>>n|t<<32-n,Qn=(e,t,n)=>e<<32-n|t>>>n,$n=(e,t,n)=>e<<64-n|t>>>n-32,er=(e,t,n)=>e>>>n-32|t<<64-n,tr=(e,t,n)=>e<>>32-n,nr=(e,t,n)=>t<>>32-n,rr=(e,t,n)=>t<>>64-n,ir=(e,t,n)=>e<>>64-n,ar=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),or=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,sr=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),cr=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,lr=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),ur=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0})),fr,pr=o((()=>{fr=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0}));function mr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function hr(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function gr(e,...t){if(!mr(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 _r(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);hr(e.outputLen),hr(e.blockLen)}function vr(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 yr(e,t){gr(e);let n=t.outputLen;if(e.length>>t}function wr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Tr(e){for(let t=0;te().update(Dr(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ar(e){let t=(t,n)=>e(n).update(Dr(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function jr(e=32){if(fr&&typeof fr.getRandomValues==`function`)return fr.getRandomValues(new Uint8Array(e));if(fr&&typeof fr.randomBytes==`function`)return Uint8Array.from(fr.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var Mr,Nr,Pr,Fr=o((()=>{pr(),Mr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Nr=Mr?e=>e:Tr,typeof Uint8Array.from([]).toHex==`function`&&Uint8Array.fromHex,Pr=class{}}));function Ir(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=Yr(a,o,1)^n[r],c=Xr(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=Wr[n],a=Yr(t,i,r),o=Xr(t,i,r),s=Ur[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]^=qr[r],e[1]^=Jr[r]}xr(n)}var Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti=o((()=>{dr(),Fr(),Lr=BigInt(0),Rr=BigInt(1),zr=BigInt(2),Br=BigInt(7),Vr=BigInt(256),Hr=BigInt(113),Ur=[],Wr=[],Gr=[];for(let e=0,t=Rr,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Ur.push(2*(5*r+n)),Wr.push((e+1)*(e+2)/2%64);let i=Lr;for(let e=0;e<7;e++)t=(t<>Br)*Hr)%Vr,t&zr&&(i^=Rr<<(Rr<n>32?rr(e,t,n):tr(e,t,n),Xr=(e,t,n)=>n>32?ir(e,t,n):nr(e,t,n),Zr=class e extends Pr{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,hr(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 hr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(yr(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,xr(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}},Qr=(e,t,n)=>kr(()=>new Zr(t,e,n)),Qr(6,144,224/8),Qr(6,136,256/8),Qr(6,104,384/8),Qr(6,72,512/8),Qr(1,144,224/8),$r=Qr(1,136,256/8),Qr(1,104,384/8),Qr(1,72,512/8),ei=(e,t,n)=>Ar((r={})=>new Zr(t,e,r.dkLen===void 0?n:r.dkLen,!0)),ei(31,168,128/8),ei(31,136,256/8)}));function ni(e,t){let n=t||`hex`,r=$r(Pt(e,{strict:!1})?Fn(e):e);return n===`bytes`?r:kn(r)}var ri=o((()=>{ti(),Ft(),Un(),k()}));function ii(e){return ai(e)}var ai,oi=o((()=>{Un(),ri(),ai=e=>ni(Fn(e))}));function si(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;o{D()})),li,ui=o((()=>{ci(),li=e=>si(typeof e==`string`?e:ue(e))}));function di(e){return ii(li(e))}var fi=o((()=>{oi(),ui()})),pi,mi=o((()=>{fi(),pi=di})),hi,gi=o((()=>{D(),hi=class extends E{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`})}}})),_i,vi=o((()=>{_i=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)&&(super.delete(e),super.set(e,t)),t}set(e,t){if(super.has(e)&&super.delete(e),super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=super.keys().next().value;e!==void 0&&super.delete(e)}return this}}}));function yi(e,t){if(xi.has(`${e}.${t}`))return xi.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=ni(Bn(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 xi.set(`${e}.${t}`,a),a}function bi(e,t){if(!Ci(e,{strict:!1}))throw new hi({address:e});return yi(e,t)}var xi,Si=o((()=>{gi(),Un(),ri(),vi(),Ei(),xi=new _i(8192)}));function Ci(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Ti.has(r))return Ti.get(r);let i=wi.test(e)?e.toLowerCase()===e?!0:n?yi(e)===e:!0:!1;return Ti.set(r,i),i}var wi,Ti,Ei=o((()=>{vi(),Si(),wi=/^0x[a-fA-F0-9]{40}$/,Ti=new _i(8192)}));function Di(e){return typeof e[0]==`string`?ki(e):Oi(e)}function Oi(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 ki(e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}var Ai=o((()=>{}));function ji(e,t,n,{strict:r}={}){return Pt(e,{strict:!1})?Fi(e,t,n,{strict:r}):Pi(e,t,n,{strict:r})}function Mi(e,t){if(typeof t==`number`&&t>0&&t>It(e)-1)throw new ln({offset:t,position:`start`,size:It(e)})}function Ni(e,t,n){if(typeof t==`number`&&typeof n==`number`&&It(e)!==n-t)throw new ln({offset:n,position:`end`,size:It(e)})}function Pi(e,t,n,{strict:r}={}){Mi(e,t);let i=e.slice(t,n);return r&&Ni(i,t,n),i}function Fi(e,t,n,{strict:r}={}){Mi(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&&Ni(i,t,n),i}var Ii=o((()=>{fn(),Ft(),Lt()})),Li,Ri,zi=o((()=>{Li=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Ri=/^(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 Bi(e,t){if(e.length!==t.length)throw new Jt({expectedLength:e.length,givenLength:t.length});let n=Ui(Vi({params:e,values:t}));return n.length===0?`0x`:n}function Vi({params:e,values:t}){let n=[];for(let r=0;r0?Di([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Di(a.map(({encoded:e})=>e))}}function Ki(e,{param:t}){let[,n]=t.type.split(`bytes`),r=It(e);if(!n){let t=e;return r%32!=0&&(t=mn(t,{dir:`right`,size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Di([mn(O(r,{size:32})),t])}}if(r!==Number.parseInt(n,10))throw new qt({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:mn(e,{dir:`right`})}}function qi(e){if(typeof e!=`boolean`)throw new E(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:mn(An(e))}}function Ji(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 Zi(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Qi=o((()=>{cn(),gi(),D(),xn(),Ei(),Ai(),gn(),Lt(),Ii(),k(),zi()})),$i,ea=o((()=>{Ii(),fi(),$i=e=>ji(di(e),0,4)}));function ta(e){let{abi:t,args:n=[],name:r}=e,i=Pt(r,{strict:!1}),a=t.filter(e=>i?e.type===`function`?$i(e)===r:e.type===`event`?pi(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?na(t,r):!1})){if(o&&`inputs`in o&&o.inputs){let t=ra(e.inputs,o.inputs,n);if(t)throw new tn({abiItem:e,type:t[0]},{abiItem:o,type:t[1]})}o=e}}return o||a[0]}function na(e,t){let n=typeof e,r=t.type;switch(r){case`address`:return Ci(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,r)=>n===`object`&&na(Object.values(e)[r],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=>na(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,``)})):!1}}function ra(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 ra(i.components,a.components,n[r]);let o=[i.type,a.type];if(o.includes(`address`)&&o.includes(`bytes20`)||(o.includes(`address`)&&o.includes(`string`)||o.includes(`address`)&&o.includes(`bytes`))&&Ci(n[r],{strict:!1}))return o}}var ia=o((()=>{cn(),Ft(),Ei(),mi(),ea()}));function aa(e){return typeof e==`string`?{address:e,type:`json-rpc`}:e}var oa=o((()=>{}));function sa(e){let{abi:t,args:n,functionName:r}=e,i=t[0];if(r){let e=ta({abi:t,args:n,name:r});if(!e)throw new Qt(r,{docsPath:ca});i=e}if(i.type!==`function`)throw new Qt(void 0,{docsPath:ca});return{abi:[i],functionName:$i(At(i))}}var ca,la=o((()=>{cn(),ea(),Nt(),ia(),ca=`/docs/contract/encodeFunctionData`}));function ua(e){let{args:t}=e,{abi:n,functionName:r}=e.abi.length===1&&e.functionName?.startsWith(`0x`)?e:sa(e),i=n[0];return ki([r,(`inputs`in i&&i.inputs?Bi(i.inputs,t??[]):void 0)??`0x`])}var da=o((()=>{Ai(),Qi(),la()})),fa,pa,ma,ha=o((()=>{fa={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.`},pa={inputs:[{name:`message`,type:`string`}],name:`Error`,type:`error`},ma={inputs:[{name:`reason`,type:`uint256`}],name:`Panic`,type:`error`}})),ga,_a,va,ya=o((()=>{D(),ga=class extends E{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:`NegativeOffsetError`})}},_a=class extends E{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:`PositionOutOfBoundsError`})}},va=class extends E{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:`RecursiveReadLimitExceededError`})}}}));function ba(e,{recursiveReadLimit:t=8192}={}){let n=Object.create(xa);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}var xa,Sa=o((()=>{ya(),xa={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 va({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new _a({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new ga({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 ga({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 Ca(e,t={}){return t.size!==void 0&&wn(e,{size:t.size}),Tn(jn(e,t),t)}function wa(e,t={}){let n=e;if(t.size!==void 0&&(wn(n,{size:t.size}),n=Sn(n)),n.length>1||n[0]>1)throw new vn(n);return!!n[0]}function Ta(e,t={}){return t.size!==void 0&&wn(e,{size:t.size}),Dn(jn(e,t),t)}function Ea(e,t={}){let n=e;return t.size!==void 0&&(wn(n,{size:t.size}),n=Sn(n,{dir:`right`})),new TextDecoder().decode(n)}var Da=o((()=>{xn(),Cn(),On(),k()}));function Oa(e,t){let n=typeof t==`string`?Rn(t):t,r=ba(n);if(It(n)===0&&e.length>0)throw new Gt;if(It(t)&&It(t)<32)throw new Wt({data:typeof t==`string`?t:jn(t),params:e,size:It(t)});let i=0,a=[];for(let t=0;t48?Ca(i,{signed:n}):Ta(i,{signed:n}),32]}function Fa(e,t,{staticPosition:n}){let r=t.components.length===0||t.components.some(({name:e})=>!e),i=r?[]:{},a=0;if(La(t)){let o=n+Ta(e.readBytes(za));for(let n=0;n{cn(),Si(),Sa(),Lt(),Ii(),Cn(),Da(),Un(),k(),Qi(),Ra=32,za=32}));function Va(e){let{abi:t,data:n,cause:r}=e,i=ji(n,0,4);if(i===`0x`)throw new Gt({cause:r});let a=[...t||[],pa,ma].find(e=>e.type===`error`&&i===$i(At(e)));if(!a)throw new Zt(i,{docsPath:`/docs/contract/decodeErrorResult`,cause:r});return{abiItem:a,args:`inputs`in a&&a.inputs&&a.inputs.length>0?Oa(a.inputs,ji(n,4)):void 0,errorName:a.name}}var Ha=o((()=>{ha(),cn(),Ii(),ea(),Ba(),Nt()})),Ua,Wa=o((()=>{Ua=(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 Ga({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`?Ua(t[n]):t[n]}`).join(`, `)})`}var Ka=o((()=>{Wa()})),qa,Ja,Ya=o((()=>{qa={gwei:9,wei:18},Ja={ether:-9,wei:9}}));function Xa(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 Za=o((()=>{}));function Qa(e,t=`wei`){return Xa(e,qa[t])}var $a=o((()=>{Ya(),Za()}));function eo(e,t=`wei`){return Xa(e,Ja[t])}var to=o((()=>{Ya(),Za()}));function no(e){return e.reduce((e,{slot:t,value:n})=>`${e} ${t}: ${n}\n`,``)}function ro(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+=no(n.state)),n.stateDiff&&(r+=` stateDiff: -`,r+=no(n.stateDiff)),r},` State Override: -`).slice(0,-1)}var io,ao,oo=o((()=>{D(),io=class extends E{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:`AccountStateConflictError`})}},ao=class extends E{constructor(){super(`state and stateDiff are set on the same account.`,{name:`StateAssignmentConflictError`})}}}));function so(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 co,lo,uo,fo,po,mo,ho,go,_o=o((()=>{$a(),to(),D(),co=class extends E{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:`InvalidLegacyVError`})}},lo=class extends E{constructor({transaction:e}){super(`Cannot infer a transaction type from provided transaction.`,{metaMessages:[`Provided Transaction:`,`{`,so(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`})}},uo=class extends E{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:`InvalidStorageKeySizeError`})}},fo=class extends E{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=so({chain:r&&`${r?.name} (id: ${r?.id})`,from:t?.address,to:u,value:d!==void 0&&`${Qa(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${eo(o)} gwei`,maxFeePerGas:s!==void 0&&`${eo(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${eo(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}},po=class extends E{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`})}},mo=class extends E{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`})}},ho=class extends E{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}},go=class extends E{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:`WaitForTransactionReceiptTimeoutError`})}}})),vo,yo,bo=o((()=>{vo=e=>e,yo=e=>e})),xo,So,Co,A,wo,To,Eo=o((()=>{oa(),ha(),Ha(),Nt(),Ka(),ia(),$a(),to(),cn(),D(),oo(),_o(),bo(),xo=class extends E{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=so({from:(t?aa(t):void 0)?.address,to:u,value:d!==void 0&&`${Qa(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${eo(o)} gwei`,maxFeePerGas:s!==void 0&&`${eo(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${eo(c)} gwei`,nonce:l});f&&(p+=`\n${ro(f)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages,` `]:[],`Raw Call Arguments:`,p].filter(Boolean),name:`CallExecutionError`}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},So=class extends E{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){let s=ta({abi:t,args:n,name:a}),c=s?Ga({abiItem:s,args:n,includeFunctionName:!1,includeName:!1}):void 0,l=s?At(s,{includeName:!0}):void 0,u=so({address:r&&vo(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}},Co=class extends E{constructor({abi:e,data:t,functionName:n,message:r,cause:i}){let a,o,s,c;if(t&&t!==`0x`)try{o=Va({abi:e,data:t,cause:i});let{abiItem:n,errorName:r,args:a}=o;if(r===`Error`)c=a[0];else if(r===`Panic`){let[e]=a;c=fa[e]}else{let e=n?At(n,{includeName:!0}):void 0,t=n&&a?Ga({abiItem:n,args:a,includeFunctionName:!1,includeName:!1}):void 0;s=[e?`Error: ${e}`:``,t&&t!==`()`?` ${[...Array(r?.length??0).keys()].map(()=>` `).join(``)}${t}`:``]}}catch(e){a=e}else r&&(c=r);let l;a instanceof Zt&&(l=a.signature,s=[`Unable to decode signature "${l}" 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://4byte.sourcify.dev/?q=${l}.`]),super(c&&c!==`execution reverted`||l?[`The contract function "${n}" reverted with the following ${l?`signature`:`reason`}:`,c||l].join(` -`):`The contract function "${n}" reverted.`,{cause:a??i,metaMessages:s,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=o,this.raw=t,this.reason=c,this.signature=l}},A=class extends E{constructor({functionName:e,cause:t}){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`,cause:t})}},wo=class extends E{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`})}},To=class extends E{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}}})),Do,Oo,ko,Ao=o((()=>{Wa(),D(),bo(),Do=class extends E{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: ${yo(a)}`,e&&`Request body: ${Ua(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}},Oo=class extends E{constructor({body:e,error:t,url:n}){super(`RPC Request failed.`,{cause:t,details:t.message,metaMessages:[`URL: ${yo(n)}`,`Request body: ${Ua(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}),Object.defineProperty(this,`url`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code,this.data=t.data,this.url=n}},ko=class extends E{constructor({body:e,url:t}){super(`The request took too long to respond.`,{details:`The request timed out.`,metaMessages:[`URL: ${yo(t)}`,`Request body: ${Ua(e)}`],name:`TimeoutError`}),Object.defineProperty(this,`url`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=t}}})),jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo,Zo,Qo,$o,es,ts,ns,rs,is,as,os,ss=o((()=>{D(),Ao(),jo=-1,Mo=class extends E{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 Oo?e.code:t??jo}},No=class extends Mo{constructor(e,t){super(e,t),Object.defineProperty(this,`data`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}},Po=class e extends Mo{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(Po,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32700}),Fo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`InvalidRequestRpcError`,shortMessage:`JSON is not a valid request object.`})}},Object.defineProperty(Fo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Io=class e extends Mo{constructor(t,{method:n}={}){super(t,{code:e.code,name:`MethodNotFoundRpcError`,shortMessage:`The method${n?` "${n}"`:``} does not exist / is not available.`})}},Object.defineProperty(Io,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Lo=class e extends Mo{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(Lo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Ro=class e extends Mo{constructor(t){super(t,{code:e.code,name:`InternalRpcError`,shortMessage:`An internal error was received.`})}},Object.defineProperty(Ro,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32603}),zo=class e extends Mo{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(zo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Bo=class e extends Mo{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(Bo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32001}),Vo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`ResourceUnavailableRpcError`,shortMessage:`Requested resource not available.`})}},Object.defineProperty(Vo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Ho=class e extends Mo{constructor(t){super(t,{code:e.code,name:`TransactionRejectedRpcError`,shortMessage:`Transaction creation failed.`})}},Object.defineProperty(Ho,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Uo=class e extends Mo{constructor(t,{method:n}={}){super(t,{code:e.code,name:`MethodNotSupportedRpcError`,shortMessage:`Method${n?` "${n}"`:``} is not supported.`})}},Object.defineProperty(Uo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Wo=class e extends Mo{constructor(t){super(t,{code:e.code,name:`LimitExceededRpcError`,shortMessage:`Request exceeds defined limit.`})}},Object.defineProperty(Wo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Go=class e extends Mo{constructor(t){super(t,{code:e.code,name:`JsonRpcVersionUnsupportedError`,shortMessage:`Version of JSON-RPC protocol is not supported.`})}},Object.defineProperty(Go,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Ko=class e extends No{constructor(t){super(t,{code:e.code,name:`UserRejectedRequestError`,shortMessage:`User rejected the request.`})}},Object.defineProperty(Ko,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4001}),qo=class e extends No{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(qo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4100}),Jo=class e extends No{constructor(t,{method:n}={}){super(t,{code:e.code,name:`UnsupportedProviderMethodError`,shortMessage:`The Provider does not support the requested method${n?` " ${n}"`:``}.`})}},Object.defineProperty(Jo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4200}),Yo=class e extends No{constructor(t){super(t,{code:e.code,name:`ProviderDisconnectedError`,shortMessage:`The Provider is disconnected from all chains.`})}},Object.defineProperty(Yo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4900}),Xo=class e extends No{constructor(t){super(t,{code:e.code,name:`ChainDisconnectedError`,shortMessage:`The Provider is not connected to the requested chain.`})}},Object.defineProperty(Xo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4901}),Zo=class e extends No{constructor(t){super(t,{code:e.code,name:`SwitchChainError`,shortMessage:`An error occurred when attempting to switch chain.`})}},Object.defineProperty(Zo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4902}),Qo=class e extends No{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(Qo,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5700}),$o=class e extends No{constructor(t){super(t,{code:e.code,name:`UnsupportedChainIdError`,shortMessage:`This Wallet does not support the requested chain ID.`})}},Object.defineProperty($o,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5710}),es=class e extends No{constructor(t){super(t,{code:e.code,name:`DuplicateIdError`,shortMessage:`There is already a bundle submitted with this ID.`})}},Object.defineProperty(es,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5720}),ts=class e extends No{constructor(t){super(t,{code:e.code,name:`UnknownBundleIdError`,shortMessage:`This bundle id is unknown / has not been submitted`})}},Object.defineProperty(ts,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5730}),ns=class e extends No{constructor(t){super(t,{code:e.code,name:`BundleTooLargeError`,shortMessage:`The call bundle is too large for the Wallet to process.`})}},Object.defineProperty(ns,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5740}),rs=class e extends No{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(rs,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5750}),is=class e extends No{constructor(t){super(t,{code:e.code,name:`AtomicityNotSupportedError`,shortMessage:`The wallet does not support atomic execution but the request requires it.`})}},Object.defineProperty(is,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5760}),as=class e extends No{constructor(t){super(t,{code:e.code,name:`WalletConnectSessionSettlementError`,shortMessage:`WalletConnect session settlement failed.`})}},Object.defineProperty(as,`code`,{enumerable:!0,configurable:!0,writable:!0,value:7e3}),os=class extends Mo{constructor(e){super(e,{name:`UnknownRpcError`,shortMessage:`An unknown RPC error occurred.`})}}}));da(),cn(),D(),Eo(),Ao(),ss();var cs=3;function ls(e,{abi:t,address:n,args:r,docsPath:i,functionName:a,sender:o}){let s=e instanceof To?e:e instanceof E?e.walk(e=>`data`in e)||e.walk():{},{code:c,data:l,details:u,message:d,shortMessage:f}=s;return new So(e instanceof Gt?new A({functionName:a,cause:e}):[cs,Ro.code].includes(c)&&(l||u||d||f)||c===zo.code&&u===`execution reverted`&&l?new Co({abi:t,data:typeof l==`object`?l.data:l,functionName:a,message:s instanceof Oo?u:f??d,cause:e}):e,{abi:t,args:r,contractAddress:n,docsPath:i,functionName:a,sender:o})}Si(),ri();function us(e){return yi(`0x${ni(`0x${e.substring(4)}`).substring(26)}`)}var ds,fs,ps,ms,hs=o((()=>{ds=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),fs=function(e){return`/`+e},ps={},ms=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=fs(t,n),t in ps)return;ps[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`:ds,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 gs(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 _s(e,t,n){return e&t^~e&n}function vs(e,t,n){return e&t^e&n^t&n}var ys,bs,xs,Ss,Cs=o((()=>{Fr(),ys=class extends Pr{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=Sr(this.buffer)}update(e){vr(this),e=Dr(e),gr(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{Cs(),dr(),Fr(),ws=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]),Ts=new Uint32Array(64),Es=class extends ys{constructor(e=32){super(64,e,8,!1),this.A=bs[0]|0,this.B=bs[1]|0,this.C=bs[2]|0,this.D=bs[3]|0,this.E=bs[4]|0,this.F=bs[5]|0,this.G=bs[6]|0,this.H=bs[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)Ts[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=Ts[e-15],n=Ts[e-2],r=Cr(t,7)^Cr(t,18)^t>>>3;Ts[e]=(Cr(n,17)^Cr(n,19)^n>>>10)+Ts[e-7]+r+Ts[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=Cr(o,6)^Cr(o,11)^Cr(o,25),u=l+t+_s(o,s,c)+ws[e]+Ts[e]|0,d=(Cr(n,2)^Cr(n,13)^Cr(n,22))+vs(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(){xr(Ts)}destroy(){this.set(0,0,0,0,0,0,0,0),xr(this.buffer)}},Ds=Gn(`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))),Os=Ds[0],ks=Ds[1],As=new Uint32Array(80),js=new Uint32Array(80),Ms=class extends ys{constructor(e=64){super(128,e,16,!1),this.Ah=Ss[0]|0,this.Al=Ss[1]|0,this.Bh=Ss[2]|0,this.Bl=Ss[3]|0,this.Ch=Ss[4]|0,this.Cl=Ss[5]|0,this.Dh=Ss[6]|0,this.Dl=Ss[7]|0,this.Eh=Ss[8]|0,this.El=Ss[9]|0,this.Fh=Ss[10]|0,this.Fl=Ss[11]|0,this.Gh=Ss[12]|0,this.Gl=Ss[13]|0,this.Hh=Ss[14]|0,this.Hl=Ss[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)As[n]=e.getUint32(t),js[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=As[e-15]|0,n=js[e-15]|0,r=Zn(t,n,1)^Zn(t,n,8)^Yn(t,n,7),i=Qn(t,n,1)^Qn(t,n,8)^Xn(t,n,7),a=As[e-2]|0,o=js[e-2]|0,s=Zn(a,o,19)^$n(a,o,61)^Yn(a,o,6),c=Qn(a,o,19)^er(a,o,61)^Xn(a,o,6),l=sr(i,c,js[e-7],js[e-16]);As[e]=cr(l,r,s,As[e-7],As[e-16])|0,js[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=Zn(u,d,14)^Zn(u,d,18)^$n(u,d,41),v=Qn(u,d,14)^Qn(u,d,18)^er(u,d,41),y=u&f^~u&m,b=d&p^~d&h,x=lr(_,v,b,ks[e],js[e]),S=ur(x,g,t,y,Os[e],As[e]),ee=x|0,C=Zn(n,r,28)^$n(n,r,34)^$n(n,r,39),te=Qn(n,r,28)^er(n,r,34)^er(n,r,39),ne=n&i^n&o^i&o,re=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}=Kn(c|0,l|0,S|0,ee|0),c=o|0,l=s|0,o=i|0,s=a|0,i=n|0,a=r|0;let ie=ar(ee,te,re);n=or(ie,S,C,ne),r=ie|0}({h:n,l:r}=Kn(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=Kn(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=Kn(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=Kn(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=Kn(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=Kn(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=Kn(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=Kn(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(){xr(As,js)}destroy(){xr(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ns=class extends Ms{constructor(){super(48),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}},Ps=kr(()=>new Es),Fs=kr(()=>new Ms),Is=kr(()=>new Ns)})),Rs,zs,Bs=o((()=>{Fr(),Rs=class extends Pr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,_r(e);let n=Dr(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 Rs(e,t).update(n).digest(),zs.create=(e,t)=>new Rs(e,t)}));function Vs(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Hs(e){if(!Vs(e))throw Error(`Uint8Array expected`)}function Us(e,t){if(typeof t!=`boolean`)throw Error(e+` boolean expected, got `+t)}function Ws(e){let t=e.toString(16);return t.length&1?`0`+t:t}function Gs(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?lc:BigInt(`0x`+e)}function Ks(e){if(Hs(e),dc)return e.toHex();let t=``;for(let n=0;n=pc._0&&e<=pc._9)return e-pc._0;if(e>=pc.A&&e<=pc.F)return e-(pc.A-10);if(e>=pc.a&&e<=pc.f)return e-(pc.a-10)}function Js(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(dc)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;tlc;e>>=uc,t+=1);return t}function oc(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=gc(e),i=gc(e),a=0,o=()=>{r.fill(1),i.fill(0),a=0},s=(...e)=>n(i,r,...e),c=(e=gc(0))=>{i=s(_c([0]),e),r=s(),e.length!==0&&(i=s(_c([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 sc(e,t,n={}){let r=(t,n,r)=>{let i=vc[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 cc(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 lc,uc,dc,fc,pc,mc,hc,gc,_c,vc,yc=o((()=>{lc=BigInt(0),uc=BigInt(1),dc=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,fc=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),pc={_0:48,_9:57,A:65,F:70,a:97,f:102},mc=e=>typeof e==`bigint`&&lc<=e,hc=e=>(uc<new Uint8Array(e),_c=e=>Uint8Array.from(e),vc={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`||Vs(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 bc(e,t){let n=e%t;return n>=Ic?n:t+n}function xc(e,t,n){let r=e;for(;t-- >Ic;)r*=r,r%=n;return r}function Sc(e,t){if(e===Ic)throw Error(`invert: expected non-zero number`);if(t<=Ic)throw Error(`invert: expected positive modulus, got `+t);let n=bc(e,t),r=t,i=Ic,a=Lc,o=Lc,s=Ic;for(;n!==Ic;){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!==Lc)throw Error(`invert: does not exist`);return bc(i,t)}function Cc(e,t){let n=(e.ORDER+Lc)/Bc,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw Error(`Cannot find square root`);return r}function wc(e,t){let n=(e.ORDER-Vc)/Hc,r=e.mul(t,Rc),i=e.pow(r,n),a=e.mul(t,i),o=e.mul(e.mul(a,Rc),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 Tc(e){if(e1e3)throw Error(`Cannot find square root: probably non-prime P`);if(n===1)return Cc;let a=i.pow(r,t),o=(t+Lc)/Rc;return function(e,r){if(e.is0(r))return r;if(Ac(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=Lc<(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`isSafeInteger`,BITS:`isSafeInteger`}))}function Oc(e,t,n){if(nIc;)n&Lc&&(r=e.mul(r,i)),i=e.sqr(i),n>>=Lc;return r}function kc(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 Ac(e,t){let n=(e.ORDER-Lc)/Rc,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 jc(e,t){t!==void 0&&hr(t);let n=t===void 0?e.toString(2).length:t;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Mc(e,t,n=!1,r={}){if(e<=Ic)throw Error(`invalid field: expected ORDER > 0, got `+e);let{nBitLength:i,nByteLength:a}=jc(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:hc(i),ZERO:Ic,ONE:Lc,create:t=>bc(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return Ic<=t&&te===Ic,isOdd:e=>(e&Lc)===Lc,neg:t=>bc(-t,e),eql:(e,t)=>e===t,sqr:t=>bc(t*t,e),add:(t,n)=>bc(t+n,e),sub:(t,n)=>bc(t-n,e),mul:(t,n)=>bc(t*n,e),pow:(e,t)=>Oc(s,e,t),div:(t,n)=>bc(t*Sc(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Sc(t,e),sqrt:r.sqrt||(t=>(o||=Ec(e),o(s,t))),toBytes:e=>n?Qs(e,a):Zs(e,a),fromBytes:e=>{if(e.length!==a)throw Error(`Field.fromBytes: expected `+a+` bytes, got `+e.length);return n?Xs(e):Ys(e)},invertBatch:e=>kc(s,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(s)}function Nc(e){if(typeof e!=`bigint`)throw Error(`field order must be bigint`);let t=e.toString(2).length;return Math.ceil(t/8)}function Pc(e){let t=Nc(e);return t+Math.ceil(t/2)}function Fc(e,t,n=!1){let r=e.length,i=Nc(t),a=Pc(t);if(r<16||r1024)throw Error(`expected `+a+`-1024 bytes of input, got `+r);let o=bc(n?Xs(e):Ys(e),t-Lc)+Lc;return n?Qs(o,i):Zs(o,i)}var Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc=o((()=>{Fr(),yc(),Ic=BigInt(0),Lc=BigInt(1),Rc=BigInt(2),zc=BigInt(3),Bc=BigInt(4),Vc=BigInt(5),Hc=BigInt(8),Uc=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`]}));function Gc(e,t){let n=t.negate();return e?n:t}function Kc(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function qc(e,t){Kc(e,t);let n=Math.ceil(t/e)+1,r=2**(e-1),i=2**e;return{windows:n,windowSize:r,mask:hc(e),maxNumber:i,shiftBy:BigInt(e)}}function Jc(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+=nl);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 Yc(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 Xc(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 Zc(e){return il.get(e)||1}function Qc(e,t){return{constTimeNegate:Gc,hasPrecomputes(e){return Zc(e)!==1},unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>tl;)n&nl&&(r=r.add(i)),i=i.double(),n>>=nl;return r},precomputeWindow(e,n){let{windows:r,windowSize:i}=qc(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=hc(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{Wc(),yc(),tl=BigInt(0),nl=BigInt(1),rl=new WeakMap,il=new WeakMap}));function ol(e){e.lowS!==void 0&&Us(`lowS`,e.lowS),e.prehash!==void 0&&Us(`prehash`,e.prehash)}function sl(e){let t=el(e);sc(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 cl(e,t){return Ks(Zs(e,t))}function ll(e){let t=sl(e),{Fp:n}=t,r=Mc(t.n,t.nBitLength),i=t.toBytes||((e,t,r)=>{let i=t.toAffine();return ec(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),a=t.fromBytes||(e=>{let t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});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,yl),bl),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 rc(e,_l,t.n)}function d(e){let{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:i,n:a}=t;if(n&&typeof e!=`bigint`){if(Vs(e)&&(e=Ks(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:Ys($s(`private key`,e,r))}catch{throw Error(`invalid private key, expected hex or `+r+` bytes, got `+typeof e)}return i&&(o=bc(o,a)),ic(`private key`,o,_l,a),o}function f(e){if(!(e instanceof h))throw Error(`ProjectivePoint expected`)}let p=cc((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=cc(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=kc(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($s(`pointHex`,e)));return t.assertValidity(),t}static fromPrivateKey(e){return h.BASE.multiply(d(e))}static msm(e,t){return $c(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,yl),{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,yl),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;ic(`scalar`,e,gl,i);let a=h.ZERO;if(e===gl)return a;if(this.is0()||e===_l)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>gl||l>gl;)s&_l&&(u=u.add(f)),l&_l&&(d=d.add(f)),f=f.double(),s>>=_l,l>>=_l;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;ic(`scalar`,e,_l,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===gl||t===_l||!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===_l)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===_l?this:n?n(h,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return Us(`isCompressed`,e),this.assertValidity(),i(h,this,e)}toHex(e=!0){return Us(`isCompressed`,e),Ks(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=Qc(h,g?Math.ceil(_/2):_);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:d,weierstrassEquation:o,isWithinCurveOrder:u}}function ul(e){let t=el(e);return sc(t,{hash:`hash`,hmac:`function`,randomBytes:`function`},{bits2int:`function`,bits2int_modN:`function`,lowS:`boolean`}),Object.freeze({lowS:!0,...t})}function dl(e){let t=ul(e),{Fp:n,n:r,nByteLength:i,nBitLength:a}=t,o=n.BYTES+1,s=2*n.BYTES+1;function c(e){return bc(e,r)}function l(e){return Sc(e,r)}let{ProjectivePoint:u,normPrivateKeyToScalar:d,weierstrassEquation:f,isWithinCurveOrder:p}=ll({...t,toBytes(e,t,r){let i=t.toAffine(),a=n.toBytes(i.x),o=ec;return Us(`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=Ys(i);if(!rc(e,_l,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&_l)===_l;return(r&1)==1!==o&&(a=n.neg(a)),{x:e,y:a}}else if(t===s&&r===4)return{x:n.fromBytes(i.subarray(0,n.BYTES)),y:n.fromBytes(i.subarray(n.BYTES,2*n.BYTES))};else{let e=o,n=s;throw Error(`invalid Point, expected length of `+e+`, or uncompressed `+n+`, got `+t)}}});function m(e){return e>r>>_l}function h(e){return m(e)?c(-e):e}let g=(e,t,n)=>Ys(e.slice(t,n));class _{constructor(e,t,n){ic(`r`,e,_l,r),ic(`s`,t,_l,r),this.r=e,this.s=t,n!=null&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){let t=i;return e=$s(`compactSignature`,e,t*2),new _(g(e,0,t),g(e,t,2*t))}static fromDER(e){let{r:t,s:n}=hl.toSig($s(`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=ee($s(`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+cl(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 Js(this.toDERHex())}toDERHex(){return hl.hexFromSig(this)}toCompactRawBytes(){return Js(this.toCompactHex())}toCompactHex(){let e=i;return cl(this.r,e)+cl(this.s,e)}}let v={isValidPrivateKey(e){try{return d(e),!0}catch{return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{let e=Pc(t.n);return Fc(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=$s(`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=Ys(e),n=e.length*8-a;return n>0?t>>BigInt(n):t},ee=t.bits2int_modN||function(e){return c(S(e))},C=hc(a);function te(e){return ic(`num < 2^`+a,e,gl,C),Zs(e,i)}function ne(e,r,i=re){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=$s(`msgHash`,e),ol(i),f&&(e=$s(`prehashed msgHash`,a(e)));let v=ee(e),y=d(r),b=[te(y),te(v)];if(g!=null&&g!==!1){let e=g===!0?o(n.BYTES):g;b.push($s(`extraEntropy`,e))}let x=ec(...b),C=v;function ne(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===gl)return;let a=c(n*c(C+i*y));if(a===gl)return;let o=(r.x===i?0:2)|Number(r.y&_l),d=a;return s&&m(a)&&(d=h(a),o^=1),new _(i,d,o)}return{seed:x,k2sig:ne}}let re={lowS:t.lowS,prehash:!1},ie={lowS:t.lowS,prehash:!1};function ae(e,n,r=re){let{seed:i,k2sig:a}=ne(e,n,r),o=t;return oc(o.hash.outputLen,o.nByteLength,o.hmac)(i,a)}u.BASE._setWindowSize(8);function oe(e,n,r,i=ie){let a=e;n=$s(`msgHash`,n),r=$s(`publicKey`,r);let{lowS:o,prehash:s,format:d}=i;if(ol(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`||Vs(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 hl.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=ee(n),b=l(v),x=c(y*b),S=c(g*b),C=u.BASE.multiplyAndAddUnsafe(h,x,S)?.toAffine();return C?c(C.x)===g:!1}return{CURVE:t,getPublicKey:y,getSharedSecret:x,sign:ae,verify:oe,ProjectivePoint:u,Signature:_,utils:v}}function fl(e,t){let n=e.ORDER,r=gl;for(let e=n-_l;e%vl===gl;e/=vl)r+=_l;let i=r,a=vl<{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>_l;t--){let n=t-vl;n=vl<{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);return{isValid:u,value:e.cmov(c,s,u)}}}return p}function pl(e,t){if(Dc(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw Error(`mapToCurveSimpleSWU: invalid opts`);let n=fl(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=kc(e,[s],!0)[0];return u=e.mul(u,h),{x:u,y:d}}}var ml,hl,gl,_l,vl,yl,bl,xl=o((()=>{al(),Wc(),yc(),ml=class extends Error{constructor(e=``){super(e)}},hl={Err:ml,_tlv:{encode:(e,t)=>{let{Err:n}=hl;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=Ws(r);if(i.length/2&128)throw new n(`tlv.encode: long form length too big`);let a=r>127?Ws(i.length/2|128):``;return Ws(e)+a+i+t},decode(e,t){let{Err:n}=hl,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}=hl;if(ezs(e,t,Or(...n)),randomBytes:jr}}function Cl(e,t){let n=t=>dl({...e,...Sl(t)});return{...n(t),create:n}}var wl=o((()=>{Bs(),Fr(),xl()}));function Tl(e,t){if(Dl(e),Dl(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 El(e,t){let n=new Uint8Array(e.length);for(let r=0;r255&&(t=r(ec(nc(`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=ec(t,Tl(t.length,1)),c=Tl(0,a),l=Tl(n,2),u=Array(o),d=r(ec(c,e,l,Tl(0,1),s));u[0]=r(ec(d,Tl(1,1),s));for(let e=1;e<=o;e++)u[e]=r(ec(El(d,u[e-1]),Tl(e+1,1),s));return ec(...u).slice(0,n)}function kl(e,t,n,r,i){if(Hs(e),Hs(t),Dl(n),t.length>255){let e=Math.ceil(2*r/8);t=i.create({dkLen:e}).update(nc(`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(Tl(n,2)).update(t).update(Tl(t.length,1)).digest()}function Al(e,t,n){sc(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;Hs(e),Dl(t);let l=typeof c==`string`?nc(c):c,u=r.toString(2).length,d=Math.ceil((u+i)/8),f=t*a*d,p;if(s===`xmd`)p=Ol(e,l,f,o);else if(s===`xof`)p=kl(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]=kc(e,[a,s],!0);return t=e.mul(i,c),r=e.mul(r,e.mul(o,l)),{x:t,y:r}}}function Ml(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=Al(e,2,{...n,DST:n.DST,...t}),o=r(a[0]),s=r(a[1]);return i(o.add(s))},encodeToCurve(e,t){return i(r(Al(e,1,{...n,DST:n.encodeDST,...t})[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 Nl,Pl=o((()=>{Wc(),yc(),Nl=Ys})),Fl=c({encodeToCurve:()=>lu,hashToCurve:()=>cu,schnorr:()=>iu,secp256k1:()=>Zl,secp256k1_hasher:()=>su});function Il(e){let t=Wl,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=xc(xc(xc(u,n,t)*u%t,n,t)*u%t,Jl,t)*l%t,f=xc(d,i,t)*d%t,p=xc(f,a,t)*f%t,m=xc(p,s,t)*p%t,h=xc(xc(xc(xc(xc(xc(m,c,t)*m%t,s,t)*p%t,n,t)*u%t,o,t)*f%t,r,t)*l%t,Jl,t);if(!Xl.eql(Xl.sqr(h),e))throw Error(`Cannot find square root`);return h}function Ll(e,...t){let n=Ql[e];if(n===void 0){let t=Ps(Uint8Array.from(e,e=>e.charCodeAt(0)));n=ec(t,t),Ql[e]=n}return Ps(ec(n,...t))}function Rl(e){let t=Zl.utils.normPrivateKeyToScalar(e),n=M.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:j(-t),bytes:$l(n)}}function zl(e){ic(`x`,e,ql,Wl);let t=Il(tu(tu(e*e)*e+BigInt(7)));t%Jl!==Kl&&(t=tu(-t));let n=new M(e,t,ql);return n.assertValidity(),n}function Bl(...e){return j(ru(Ll(`BIP0340/challenge`,...e)))}function Vl(e){return Rl(e).bytes}function Hl(e,t,n=jr(32)){let r=$s(`message`,e),{bytes:i,scalar:a}=Rl(t),o=j(ru(Ll(`BIP0340/nonce`,eu(a^ru(Ll(`BIP0340/aux`,$s(`auxRand`,n,32)))),i,r)));if(o===Kl)throw Error(`sign failed: k is zero`);let{bytes:s,scalar:c}=Rl(o),l=Bl(s,i,r),u=new Uint8Array(64);if(u.set(s,0),u.set(eu(j(c+l*a)),32),!Ul(u,r,i))throw Error(`sign: Invalid signature produced`);return u}function Ul(e,t,n){let r=$s(`signature`,e,64),i=$s(`message`,t),a=$s(`publicKey`,n,32);try{let e=zl(ru(a)),t=ru(r.subarray(0,32));if(!rc(t,ql,Wl))return!1;let n=ru(r.subarray(32,64));if(!rc(n,ql,Gl))return!1;let o=nu(e,n,j(-Bl(eu(t),$l(e),i)));return!(!o||!o.hasEvenY()||o.toAffine().x!==t)}catch{return!1}}var Wl,Gl,Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu,tu,j,M,nu,ru,iu,au,ou,su,cu,lu,uu=o((()=>{Ls(),Fr(),wl(),Pl(),Wc(),yc(),xl(),Wl=BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f`),Gl=BigInt(`0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141`),Kl=BigInt(0),ql=BigInt(1),Jl=BigInt(2),Yl=(e,t)=>(e+t/Jl)/t,Xl=Mc(Wl,void 0,void 0,{sqrt:Il}),Zl=Cl({a:Kl,b:BigInt(7),Fp:Xl,n:Gl,Gx:BigInt(`55066263022277343669578718895168534326250603453777594175500187360389116729240`),Gy:BigInt(`32670510020758816978083085130507043184471273380659243275938904335757337482424`),h:BigInt(1),lowS:!0,endo:{beta:BigInt(`0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee`),splitScalar:e=>{let t=Gl,n=BigInt(`0x3086d221a7d46bcde86c90e49284eb15`),r=-ql*BigInt(`0xe4437ed6010e88286f547fa90abfe4c3`),i=BigInt(`0x114ca50f7a8e2f3f657c1108d9d44cfd8`),a=n,o=BigInt(`0x100000000000000000000000000000000`),s=Yl(a*e,t),c=Yl(-r*e,t),l=bc(e-s*n-c*i,t),u=bc(-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}}}},Ps),Ql={},$l=e=>e.toRawBytes(!0).slice(1),eu=e=>Zs(e,32),tu=e=>bc(e,Wl),j=e=>bc(e,Gl),M=Zl.ProjectivePoint,nu=(e,t,n)=>M.BASE.multiplyAndAddUnsafe(e,t,n),ru=Ys,iu={getPublicKey:Vl,sign:Hl,verify:Ul,utils:{randomPrivateKey:Zl.utils.randomPrivateKey,lift_x:zl,pointToBytes:$l,numberToBytesBE:Zs,bytesToNumberBE:Ys,taggedHash:Ll,mod:bc}},au=jl(Xl,[[`0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7`,`0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581`,`0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262`,`0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c`],[`0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b`,`0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14`,`0x0000000000000000000000000000000000000000000000000000000000000001`],[`0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c`,`0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3`,`0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931`,`0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84`],[`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b`,`0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573`,`0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f`,`0x0000000000000000000000000000000000000000000000000000000000000001`]].map(e=>e.map(e=>BigInt(e)))),ou=pl(Xl,{A:BigInt(`0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533`),B:BigInt(`1771`),Z:Xl.create(BigInt(`-11`))}),su=Ml(Zl.ProjectivePoint,e=>{let{x:t,y:n}=ou(Xl.create(e[0]));return au(t,n)},{DST:`secp256k1_XMD:SHA-256_SSWU_RO_`,encodeDST:`secp256k1_XMD:SHA-256_SSWU_NU_`,p:Xl.ORDER,m:1,k:128,expand:`xmd`,hash:Ps}),cu=su.hashToCurve,lu=su.encodeToCurve}));Ft(),Lt(),On(),k(),hs();async function du({hash:e,signature:t}){let n=Pt(e)?e:kn(e),{secp256k1:r}=await ms(async()=>{let{secp256k1:e}=await Promise.resolve().then(()=>(uu(),Fl));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(Tn(e),Tn(n)).addRecoveryBit(o)}let e=Pt(t)?t:kn(t);if(It(e)!==65)throw Error(`invalid signature length`);let n=fu(Dn(`0x${e.slice(130)}`));return r.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().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 us(await du({hash:e,signature:t}))}D(),Sa(),Un(),k();function mu(e,t=`hex`){let n=hu(e),r=ba(new Uint8Array(n.length));return n.encode(r),t===`hex`?jn(r.bytes):r.bytes}function hu(e){return Array.isArray(e)?gu(e.map(e=>hu(e))):_u(e)}function gu(e){let t=e.reduce((e,t)=>e+t.length,0),n=vu(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 _u(e){let t=typeof e==`string`?Rn(e):e,n=vu(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 vu(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 E(`Length is too large.`)}Ai(),Un(),k(),ri();function yu(e){let{chainId:t,nonce:n,to:r}=e,i=e.contractAddress??e.address,a=ni(ki([`0x05`,mu([t?O(t):`0x`,i,n?O(n):`0x`])]));return r===`bytes`?Rn(a):a}async function bu(e){let{authorization:t,signature:n}=e;return pu({hash:yu(t),signature:n??t})}$a(),to(),D(),_o();var xu=class extends E{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=so({from:t?.address,to:u,value:d!==void 0&&`${Qa(d)} ${r?.nativeCurrency?.symbol||`ETH`}`,data:i,gas:a,gasPrice:o!==void 0&&`${eo(o)} gwei`,maxFeePerGas:s!==void 0&&`${eo(s)} gwei`,maxPriorityFeePerGas:c!==void 0&&`${eo(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}},Su,Cu,wu,Tu,Eu,Du,Ou,ku,Au,ju,Mu,Nu,Pu=o((()=>{to(),D(),Su=class extends E{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(Su,`code`,{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(Su,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/}),Cu=class extends E{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${eo(t)} gwei`:``}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:`FeeCapTooHighError`})}},Object.defineProperty(Cu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/}),wu=class extends E{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${eo(t)}`:``} gwei) cannot be lower than the block base fee.`,{cause:e,name:`FeeCapTooLowError`})}},Object.defineProperty(wu,`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/}),Tu=class extends E{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(Tu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/}),Eu=class extends E{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(Eu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/}),Du=class extends E{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:``}exceeds the maximum allowed nonce.`,{cause:e,name:`NonceMaxValueError`})}},Object.defineProperty(Du,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/}),Ou=class extends E{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(Ou,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/}),ku=class extends E{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(ku,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/}),Au=class extends E{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(Au,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/}),ju=class extends E{constructor({cause:e}){super(`The transaction type is not supported for this chain.`,{cause:e,name:`TransactionTypeNotSupportedError`})}},Object.defineProperty(ju,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/}),Mu=class extends E{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${eo(t)} gwei`:``}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${eo(n)} gwei`:``}).`].join(` -`),{cause:e,name:`TipAboveFeeCapError`})}},Object.defineProperty(Mu,`nodeMessage`,{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/}),Nu=class extends E{constructor({cause:e}){super(`An error occurred while executing: ${e?.shortMessage}`,{cause:e,name:`UnknownNodeError`})}}}));function Fu(e,t){let n=(e.details||``).toLowerCase(),r=e instanceof E?e.walk(e=>e?.code===Su.code):e;return r instanceof E?new Su({cause:e,message:r.details}):Su.nodeMessage.test(n)?new Su({cause:e,message:e.details}):Cu.nodeMessage.test(n)?new Cu({cause:e,maxFeePerGas:t?.maxFeePerGas}):wu.nodeMessage.test(n)?new wu({cause:e,maxFeePerGas:t?.maxFeePerGas}):Tu.nodeMessage.test(n)?new Tu({cause:e,nonce:t?.nonce}):Eu.nodeMessage.test(n)?new Eu({cause:e,nonce:t?.nonce}):Du.nodeMessage.test(n)?new Du({cause:e,nonce:t?.nonce}):Ou.nodeMessage.test(n)?new Ou({cause:e}):ku.nodeMessage.test(n)?new ku({cause:e,gas:t?.gas}):Au.nodeMessage.test(n)?new Au({cause:e,gas:t?.gas}):ju.nodeMessage.test(n)?new ju({cause:e}):Mu.nodeMessage.test(n)?new Mu({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Nu({cause:e})}var Iu=o((()=>{D(),Pu()}));Pu(),Iu();function Lu(e,{docsPath:t,...n}){return new xu((()=>{let t=Fu(e,n);return t instanceof Nu?e:t})(),{docsPath:t,...n})}function Ru(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])}return r(t(e||{})),n}var zu=o((()=>{}));function Bu(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 Vu=o((()=>{}));function Hu(e,t){let n={};return e.authorizationList!==void 0&&(n.authorizationList=Uu(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=>jn(e))),e.data!==void 0&&(n.data=e.data),e.account&&(n.from=e.account.address),e.from!==void 0&&(n.from=e.from),e.gas!==void 0&&(n.gas=O(e.gas)),e.gasPrice!==void 0&&(n.gasPrice=O(e.gasPrice)),e.maxFeePerBlobGas!==void 0&&(n.maxFeePerBlobGas=O(e.maxFeePerBlobGas)),e.maxFeePerGas!==void 0&&(n.maxFeePerGas=O(e.maxFeePerGas)),e.maxPriorityFeePerGas!==void 0&&(n.maxPriorityFeePerGas=O(e.maxPriorityFeePerGas)),e.nonce!==void 0&&(n.nonce=O(e.nonce)),e.to!==void 0&&(n.to=e.to),e.type!==void 0&&(n.type=Wu[e.type]),e.value!==void 0&&(n.value=O(e.value)),n}function Uu(e){return e.map(e=>({address:e.address,r:e.r?O(BigInt(e.r)):e.r,s:e.s?O(BigInt(e.s)):e.s,chainId:O(e.chainId),nonce:O(e.nonce),...e.yParity===void 0?{}:{yParity:O(e.yParity)},...e.v!==void 0&&e.yParity===void 0?{v:O(e.v)}:{}}))}var Wu,Gu,Ku=o((()=>{k(),Vu(),Wu={legacy:`0x0`,eip2930:`0x1`,eip1559:`0x2`,eip4844:`0x3`,eip7702:`0x4`},Gu=Bu(`transactionRequest`,Hu)}));function qu(e){if(!(!e||e.length===0))return e.reduce((e,{slot:t,value:n})=>{if(t.length!==66)throw new dn({size:t.length,targetSize:66,type:`hex`});if(n.length!==66)throw new dn({size:n.length,targetSize:66,type:`hex`});return e[t]=n,e},{})}function Ju(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=O(t)),n!==void 0&&(o.nonce=O(n)),r!==void 0&&(o.state=qu(r)),i!==void 0){if(o.state)throw new ao;o.stateDiff=qu(i)}return o}function Yu(e){if(!e)return;let t={};for(let{address:n,...r}of e){if(!Ci(n,{strict:!1}))throw new hi({address:n});if(t[n])throw new io({address:n});t[n]=Ju(r)}return t}var Xu=o((()=>{gi(),fn(),oo(),Ei(),k()})),Zu,Qu,$u=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)),Zu=2n**16n-1n,Qu=2n**256n-1n}));function ed(e){let{account:t,maxFeePerGas:n,maxPriorityFeePerGas:r,to:i}=e,a=t?aa(t):void 0;if(a&&!Ci(a.address))throw new hi({address:a.address});if(i&&!Ci(i))throw new hi({address:i});if(n&&n>Qu)throw new Cu({maxFeePerGas:n});if(r&&n&&r>n)throw new Mu({maxFeePerGas:n,maxPriorityFeePerGas:r})}var td=o((()=>{oa(),$u(),gi(),Pu(),Ei()}));to(),D();var nd=class extends E{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:`BaseFeeScalarError`})}},rd=class extends E{constructor(){super(`Chain does not support EIP-1559 fees.`,{name:`Eip1559FeesNotSupportedError`})}},id=class extends E{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${eo(e)} gwei).`,{name:`MaxFeePerGasTooLowError`})}};D();var ad=class extends E{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`})}};On(),Vu();var od={"0x0":`legacy`,"0x1":`eip2930`,"0x2":`eip1559`,"0x3":`eip4844`,"0x4":`eip7702`};function sd(e,t){let n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?Dn(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?Dn(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?od[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=ld(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}var cd=Bu(`transaction`,sd);function ld(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)}))}Vu();function ud(e,t){let n=(e.transactions??[]).map(e=>typeof e==`string`?e:sd(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}}var dd=Bu(`block`,ud);k();async function fd(e,{blockHash:t,blockNumber:n,blockTag:r=e.experimental_blockTag??`latest`,includeTransactions:i}={}){let a=i??!1,o=n===void 0?void 0:O(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 ad({blockHash:t,blockNumber:n});return(e.chain?.formatters?.block?.format||ud)(s,`getBlock`)}async function pd(e){let t=await e.request({method:`eth_gasPrice`});return BigInt(t)}On();async function md(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=await t({block:n||await T(e,fd,`getBlock`)({}),client:e,request:i});if(r===null)throw Error();return r}return t===void 0?Tn(await e.request({method:`eth_maxPriorityFeePerGas`})):t}catch{let[t,r]=await Promise.all([n?Promise.resolve(n):T(e,fd,`getBlock`)({}),T(e,pd,`getGasPrice`)({})]);if(typeof t.baseFeePerGas!=`bigint`)throw new rd;let i=r-t.baseFeePerGas;return i<0n?0n:i}}async function hd(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 nd;let s=10**(o.toString().split(`.`)[1]?.length??0),c=e=>e*BigInt(Math.ceil(o*s))/BigInt(s),l=n||await T(e,fd,`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 rd;let t=typeof i?.maxPriorityFeePerGas==`bigint`?i.maxPriorityFeePerGas:await md(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 T(e,pd,`getGasPrice`)({}))}}On(),k();async function gd(e,{address:t,blockTag:n=`latest`,blockNumber:r}){return Dn(await e.request({method:`eth_getTransactionCount`,params:[t,typeof r==`bigint`?O(r):n]},{dedupe:!!r}))}Ku(),Un(),k();function _d(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=>Rn(e)):e.blobs,i=[];for(let e of r)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return n===`bytes`?i:i.map(e=>jn(e))}Un(),k();function vd(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=>Rn(e)):e.blobs,i=typeof e.commitments[0]==`string`?e.commitments.map(e=>Rn(e)):e.commitments,a=[];for(let e=0;ejn(e))}Ls();var yd=Ps;Ft(),Un(),k();function bd(e,t){let n=t||`hex`,r=yd(Pt(e,{strict:!1})?Fn(e):e);return n===`bytes`?r:kn(r)}k();function xd(e){let{commitment:t,version:n=1}=e,r=e.to??(typeof t==`string`?`hex`:`bytes`),i=bd(t,`bytes`);return i.set([n],0),r===`bytes`?i:jn(i)}function Sd(e){let{commitments:t,version:n}=e,r=e.to??(typeof t[0]==`string`?`hex`:`bytes`),i=[];for(let e of t)i.push(xd({commitment:e,to:r,version:n}));return i}var Cd=6,wd=4096,Td=32*wd,Ed=Td*Cd-1-1*wd*Cd;D();var Dd=class extends E{constructor({maxSize:e,size:t}){super(`Blob size is too large.`,{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:`BlobSizeTooLargeError`})}},Od=class extends E{constructor(){super(`Blob data must not be empty.`,{name:`EmptyBlobError`})}},kd=class extends E{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:[`Expected: 32`,`Received: ${t}`],name:`InvalidVersionedHashSizeError`})}},Ad=class extends E{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: 1`,`Received: ${t}`],name:`InvalidVersionedHashVersionError`})}};Sa(),Lt(),Un(),k();function jd(e){let t=e.to??(typeof e.data==`string`?`hex`:`bytes`),n=typeof e.data==`string`?Rn(e.data):e.data,r=It(n);if(!r)throw new Od;if(r>761855)throw new Dd({maxSize:Ed,size:r});let i=[],a=!0,o=0;for(;a;){let e=ba(new Uint8Array(Td)),t=0;for(;te.bytes):i.map(e=>jn(e.bytes))}function Md(e){let{data:t,kzg:n,to:r}=e,i=e.blobs??jd({data:t,to:r}),a=e.commitments??_d({blobs:i,kzg:n,to:r}),o=e.proofs??vd({blobs:i,commitments:a,kzg:n,to:r}),s=[];for(let e=0;e{let t=Fu(e,n);return t instanceof Nu?e:t})(),{docsPath:t,...n})}On();async function Fd(e){return Dn(await e.request({method:`eth_chainId`},{dedupe:!0}))}oa(),zu(),td();async function Id(e,t){let{account:n=e.account,accessList:r,authorizationList:i,chain:a=e.chain,blobVersionedHashes:o,blobs:s,data:c,gas:l,gasPrice:u,maxFeePerBlobGas:d,maxFeePerGas:f,maxPriorityFeePerGas:p,nonce:m,nonceManager:h,to:g,type:_,value:v,...y}=t,b=await(async()=>{if(!n||!h||m!==void 0)return m;let t=aa(n),r=a?a.id:await T(e,Fd,`getChainId`)({});return await h.consume({address:t.address,chainId:r,client:e})})();ed(t);let x=a?.formatters?.transactionRequest?.format,S=(x||Hu)({...Ru(y,{format:x}),account:n?aa(n):void 0,accessList:r,authorizationList:i,blobs:s,blobVersionedHashes:o,data:c,gas:l,gasPrice:u,maxFeePerBlobGas:d,maxFeePerGas:f,maxPriorityFeePerGas:p,nonce:b,to:g,type:_,value:v},`fillTransaction`);try{let n=await e.request({method:`eth_fillTransaction`,params:[S]}),r=(a?.formatters?.transaction?.format||sd)(n.tx);delete r.blockHash,delete r.blockNumber,delete r.r,delete r.s,delete r.transactionIndex,delete r.v,delete r.yParity,r.data=r.input,r.gas&&=t.gas??r.gas,r.gasPrice&&=t.gasPrice??r.gasPrice,r.maxFeePerBlobGas&&=t.maxFeePerBlobGas??r.maxFeePerBlobGas,r.maxFeePerGas&&=t.maxFeePerGas??r.maxFeePerGas,r.maxPriorityFeePerGas&&=t.maxPriorityFeePerGas??r.maxPriorityFeePerGas,r.nonce&&=t.nonce??r.nonce;let i=await(async()=>{if(typeof a?.fees?.baseFeeMultiplier==`function`){let n=await T(e,fd,`getBlock`)({});return a.fees.baseFeeMultiplier({block:n,client:e,request:t})}return a?.fees?.baseFeeMultiplier??1.2})();if(i<1)throw new nd;let o=10**(i.toString().split(`.`)[1]?.length??0),s=e=>e*BigInt(Math.ceil(i*o))/BigInt(o);return r.maxFeePerGas&&!t.maxFeePerGas&&(r.maxFeePerGas=s(r.maxFeePerGas)),r.gasPrice&&!t.gasPrice&&(r.gasPrice=s(r.gasPrice)),{raw:n.raw,transaction:{from:S.from,...r}}}catch(n){throw Pd(n,{...t,chain:e.chain})}}oa(),vi(),td();var Ld=[`blobVersionedHashes`,`chainId`,`fees`,`gas`,`nonce`,`type`],Rd=new Map,N=new _i(128);async function zd(e,t){let n=t;n.account??=e.account,n.parameters??=Ld;let{account:r,chain:i=e.chain,nonceManager:a,parameters:o}=n,s=(()=>{if(typeof i?.prepareTransactionRequest==`function`)return{fn:i.prepareTransactionRequest,runAt:[`beforeFillTransaction`]};if(Array.isArray(i?.prepareTransactionRequest))return{fn:i.prepareTransactionRequest[0],runAt:i.prepareTransactionRequest[1].runAt}})(),c;async function l(){return c||(n.chainId===void 0?i?i.id:(c=await T(e,Fd,`getChainId`)({}),c):n.chainId)}let u=r&&aa(r),d=n.nonce;if(o.includes(`nonce`)&&d===void 0&&u&&a){let t=await l();d=await a.consume({address:u.address,chainId:t,client:e})}s?.fn&&s.runAt?.includes(`beforeFillTransaction`)&&(n=await s.fn({...n,chain:i},{phase:`beforeFillTransaction`}),d??=n.nonce);let f=!((o.includes(`blobVersionedHashes`)||o.includes(`sidecars`))&&n.kzg&&n.blobs||N.get(e.uid)===!1||![`fees`,`gas`].some(e=>o.includes(e)))&&(o.includes(`chainId`)&&typeof n.chainId!=`number`||o.includes(`nonce`)&&typeof d!=`number`||o.includes(`fees`)&&typeof n.gasPrice!=`bigint`&&(typeof n.maxFeePerGas!=`bigint`||typeof n.maxPriorityFeePerGas!=`bigint`)||o.includes(`gas`)&&typeof n.gas!=`bigint`)?await T(e,Id,`fillTransaction`)({...n,nonce:d}).then(t=>{let{chainId:r,from:i,gas:a,gasPrice:o,nonce:s,maxFeePerBlobGas:c,maxFeePerGas:l,maxPriorityFeePerGas:u,type:d,...f}=t.transaction;return N.set(e.uid,!0),{...n,...i?{from:i}:{},...d&&!n.type?{type:d}:{},...r===void 0?{}:{chainId:r},...a===void 0?{}:{gas:a},...o===void 0?{}:{gasPrice:o},...s===void 0?{}:{nonce:s},...c!==void 0&&n.type!==`legacy`&&n.type!==`eip2930`?{maxFeePerBlobGas:c}:{},...l!==void 0&&n.type!==`legacy`&&n.type!==`eip2930`?{maxFeePerGas:l}:{},...u!==void 0&&n.type!==`legacy`&&n.type!==`eip2930`?{maxPriorityFeePerGas:u}:{},...`nonceKey`in f&&f.nonceKey!==void 0?{nonceKey:f.nonceKey}:{}}}).catch(t=>{let r=t;return r.name===`TransactionExecutionError`&&r.walk?.(e=>{let t=e;return t.name===`MethodNotFoundRpcError`||t.name===`MethodNotSupportedRpcError`||t.message?.includes(`eth_fillTransaction is not available`)})&&N.set(e.uid,!1),n}):n;d??=f.nonce,n={...f,...u?{from:u?.address}:{},...d?{nonce:d}:{}};let{blobs:p,gas:m,kzg:h,type:g}=n;s?.fn&&s.runAt?.includes(`beforeFillParameters`)&&(n=await s.fn({...n,chain:i},{phase:`beforeFillParameters`}));let _;async function v(){return _||(_=await T(e,fd,`getBlock`)({blockTag:`latest`}),_)}if(o.includes(`nonce`)&&d===void 0&&u&&!a&&(n.nonce=await T(e,gd,`getTransactionCount`)({address:u.address,blockTag:`pending`})),(o.includes(`blobVersionedHashes`)||o.includes(`sidecars`))&&p&&h){let e=_d({blobs:p,kzg:h});if(o.includes(`blobVersionedHashes`)){let t=Sd({commitments:e,to:`hex`});n.blobVersionedHashes=t}if(o.includes(`sidecars`)){let t=Md({blobs:p,commitments:e,proofs:vd({blobs:p,commitments:e,kzg:h}),to:`hex`});n.sidecars=t}}if(o.includes(`chainId`)&&(n.chainId=await l()),(o.includes(`fees`)||o.includes(`type`))&&g===void 0)try{n.type=Nd(n)}catch{let t=Rd.get(e.uid);t===void 0&&(t=typeof(await v())?.baseFeePerGas==`bigint`,Rd.set(e.uid,t)),n.type=t?`eip1559`:`legacy`}if(o.includes(`fees`))if(n.type!==`legacy`&&n.type!==`eip2930`){if(n.maxFeePerGas===void 0||n.maxPriorityFeePerGas===void 0){let{maxFeePerGas:t,maxPriorityFeePerGas:r}=await hd(e,{block:await v(),chain:i,request:n});if(n.maxPriorityFeePerGas===void 0&&n.maxFeePerGas&&n.maxFeePerGas{if(Array.isArray(r))return r;if(i?.type!==`local`)return[`blobVersionedHashes`]})();try{let n=await(async()=>{if(t.to)return t.to;if(t.authorizationList&&t.authorizationList.length>0)return await bu({authorization:t.authorizationList[0]}).catch(()=>{throw new E("`to` is required. Could not infer from `authorizationList`")})})(),{accessList:o,authorizationList:s,blobs:c,blobVersionedHashes:l,blockNumber:u,blockTag:d,data:f,gas:p,gasPrice:m,maxFeePerBlobGas:h,maxFeePerGas:g,maxPriorityFeePerGas:_,nonce:v,value:y,stateOverride:b,...x}=r?await zd(e,{...t,parameters:a,to:n}):t;if(p&&t.gas!==p)return p;let S=(typeof u==`bigint`?O(u):void 0)||d,ee=Yu(b);ed(t);let C=e.chain?.formatters?.transactionRequest?.format,te=(C||Hu)({...Ru(x,{format:C}),account:i,accessList:o,authorizationList:s,blobs:c,blobVersionedHashes:l,data:f,gasPrice:m,maxFeePerBlobGas:h,maxFeePerGas:g,maxPriorityFeePerGas:_,nonce:v,to:n,value:y},`estimateGas`);return BigInt(await e.request({method:`eth_estimateGas`,params:ee?[te,S??e.experimental_blockTag??`latest`,ee]:S?[te,S]:[te]}))}catch(n){throw Lu(n,{...t,account:i,chain:e.chain})}}function Vd(e,t){if(!Ci(e,{strict:!1}))throw new hi({address:e});if(!Ci(t,{strict:!1}))throw new hi({address:t});return e.toLowerCase()===t.toLowerCase()}var Hd=o((()=>{gi(),Ei()}));function Ud(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):e.blockTimestamp===null?null:void 0,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 Wd(e){let{abi:t,args:n,functionName:r,data:i}=e,a=t[0];if(r){let e=ta({abi:t,args:n,name:r});if(!e)throw new Qt(r,{docsPath:Gd});a=e}if(a.type!==`function`)throw new Qt(void 0,{docsPath:Gd});if(!a.outputs)throw new $t(a.name,{docsPath:Gd});let o=Oa(a.outputs,i);if(o&&o.length>1)return o;if(o&&o.length===1)return o[0]}var Gd,Kd=o((()=>{cn(),Ba(),ia(),Gd=`/docs/contract/decodeFunctionResult`})),qd,Jd=o((()=>{qd=`0.1.1`}));function Yd(){return qd}var Xd=o((()=>{Jd()}));function Zd(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause?Zd(e.cause,t):t?null:e}var P,Qd=o((()=>{Xd(),P=class e extends Error{static setStaticOptions(t){e.prototype.docsOrigin=t.docsOrigin,e.prototype.showVersion=t.showVersion,e.prototype.version=t.version}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=n.docsOrigin??e.prototype.docsOrigin,o=`${a}${i??``}`,s=!!(n.version??e.prototype.showVersion),c=n.version??e.prototype.version,l=[t||`An error occurred.`,...n.metaMessages?[``,...n.metaMessages]:[],...r||i||s?[``,r?`Details: ${r}`:void 0,i?`See: ${o}`:void 0,s?`Version: ${c}`:void 0]:[]].filter(e=>typeof e==`string`).join(` -`);super(l,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,`docsOrigin`,{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,`showVersion`,{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,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.cause=n.cause,this.details=r,this.docs=o,this.docsOrigin=a,this.docsPath=i,this.shortMessage=t,this.showVersion=s,this.version=c}walk(e){return Zd(this,e)}},Object.defineProperty(P,`defaultStaticOptions`,{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:`https://oxlib.sh`,showVersion:!1,version:`ox@${Yd()}`}}),P.setStaticOptions(P.defaultStaticOptions)}));function $d(e,t){if(Ef(e)>t)throw new zf({givenSize:Ef(e),maxSize:t})}function ef(e,t){if(typeof t==`number`&&t>0&&t>Ef(e)-1)throw new Bf({offset:t,position:`start`,size:Ef(e)})}function tf(e,t,n){if(typeof t==`number`&&typeof n==`number`&&Ef(e)!==n-t)throw new Bf({offset:n,position:`end`,size:Ef(e)})}function nf(e){if(e>=of.zero&&e<=of.nine)return e-of.zero;if(e>=of.A&&e<=of.F)return e-(of.A-10);if(e>=of.a&&e<=of.f)return e-(of.a-10)}function rf(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;if(e.length>r)throw new Vf({size:e.length,targetSize:r,type:`Bytes`});let i=new Uint8Array(r);for(let t=0;t{Hf(),of={zero:48,nine:57,A:65,F:70,a:97,f:102}}));function cf(e,t){if(Qf(e)>t)throw new up({givenSize:Qf(e),maxSize:t})}function lf(e,t){if(typeof t==`number`&&t>0&&t>Qf(e)-1)throw new dp({offset:t,position:`start`,size:Qf(e)})}function uf(e,t,n){if(typeof t==`number`&&typeof n==`number`&&Qf(e)!==n-t)throw new dp({offset:n,position:`end`,size:Qf(e)})}function df(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 fp({size:Math.ceil(i.length/2),targetSize:r,type:`Hex`});return`0x${i[n===`right`?`padEnd`:`padStart`](r*2,`0`)}`}function ff(e,t={}){let{dir:n=`left`}=t,r=e.replace(`0x`,``),i=0;for(let e=0;e{pp()}));function mf(e,t,n){return JSON.stringify(e,(e,n)=>typeof t==`function`?t(e,n):typeof n==`bigint`?n.toString()+hf:n,n)}var hf,gf=o((()=>{hf=`#__bigint`}));function _f(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 Rf(e)}function vf(...e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t);for(let t=0,r=0;t1||r[0]>1)throw new Lf(r);return!!r[0]}function Af(e,t={}){let{size:n}=t;return n!==void 0&&$d(e,n),tp(qf(e,t),t)}function jf(e,t={}){let{size:n}=t,r=e;return n!==void 0&&($d(r,n),r=Nf(r)),Ff.decode(r)}function Mf(e){return af(e,{dir:`left`})}function Nf(e){return af(e,{dir:`right`})}function Pf(e){try{return _f(e),!0}catch{return!1}}var Ff,If,Lf,Rf,zf,Bf,Vf,Hf=o((()=>{yc(),Qd(),pp(),sf(),pf(),gf(),Ff=new TextDecoder,If=new TextEncoder,Lf=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`})}},Rf=class extends P{constructor(e){super(`Value \`${typeof e==`object`?mf(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`})}},zf=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`})}},Bf=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`})}},Vf=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 Uf(e,t={}){let{strict:n=!1}=t;if(!e||typeof e!=`string`)throw new sp(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e)||!e.startsWith(`0x`))throw new cp(e)}function Wf(...e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}function Gf(e){return e instanceof Uint8Array?qf(e):Array.isArray(e)?qf(new Uint8Array(e)):e}function Kf(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(cf(n,t.size),Yf(n,t.size)):n}function qf(e,t={}){let n=``;for(let t=0;ta||i>1n?r:r-a-1n}function tp(e,t={}){let{signed:n,size:r}=t;return Number(!n&&!r?e:ep(e,t))}function np(e,t={}){let{size:n}=t,r=xf(e);return n&&($d(r,n),r=Nf(r)),new TextDecoder().decode(r)}function rp(e,t={}){let{strict:n=!1}=t;try{return Uf(e,{strict:n}),!0}catch{return!1}}var ip,ap,op,sp,cp,lp,up,dp,fp,pp=o((()=>{Hf(),Qd(),sf(),pf(),gf(),ip=new TextEncoder,ap=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),op=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`})}},sp=class extends P{constructor(e){super(`Value \`${typeof e==`object`?mf(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`})}},cp=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`})}},lp=class extends P{constructor(e){super(`Hex value \`"${e}"\` is an odd length (${e.length-2} nibbles).`,{metaMessages:[`It must be an even length.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Hex.InvalidLengthError`})}},up=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`})}},dp=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`})}},fp=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 mp(e){return{address:e.address,amount:F(e.amount),index:F(e.index),validatorIndex:F(e.validatorIndex)}}var hp=o((()=>{pp()}));function gp(e){return{...typeof e.baseFeePerGas==`bigint`&&{baseFeePerGas:F(e.baseFeePerGas)},...typeof e.blobBaseFee==`bigint`&&{blobBaseFee:F(e.blobBaseFee)},...typeof e.feeRecipient==`string`&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit==`bigint`&&{gasLimit:F(e.gasLimit)},...typeof e.number==`bigint`&&{number:F(e.number)},...typeof e.prevRandao==`bigint`&&{prevRandao:F(e.prevRandao)},...typeof e.time==`bigint`&&{time:F(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(mp)}}}var _p=o((()=>{pp(),hp()})),vp,yp,bp,xp,Sp,Cp=o((()=>{vp=[{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:`addr`,type:`address`}],name:`getEthBalance`,outputs:[{name:`balance`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`}],yp=[{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`}]}],bp=[{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`}],[...bp],[...bp],xp=[{name:`isValidSignature`,type:`function`,stateMutability:`view`,inputs:[{name:`hash`,type:`bytes32`},{name:`signature`,type:`bytes`}],outputs:[{name:``,type:`bytes4`}]}],Sp=[{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`}]})),wp=o((()=>{})),Tp,Ep,Dp,Op,kp=o((()=>{Tp=`0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe`,Ep=`0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe`,Dp=`0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572`,Op=`0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033`})),Ap,jp,Mp,Np,Pp,Fp=o((()=>{D(),Ap=class extends E{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`})}},jp=class extends E{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`})}},Mp=class extends E{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`})}},Np=class extends E{constructor(){super(`No chain was provided to the Client.`,{name:`ClientChainNotConfiguredError`})}},Pp=class extends E{constructor({chainId:e}){super(typeof e==`number`?`Chain ID "${e}" is invalid.`:`Chain ID is invalid.`,{name:`InvalidChainIdError`})}}}));function Ip(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 Ht({docsPath:Lp});if(!(`inputs`in i)||!i.inputs||i.inputs.length===0)throw new Ut({docsPath:Lp});return ki([r,Bi(i.inputs,n)])}var Lp,Rp=o((()=>{cn(),Ai(),Qi(),Lp=`/docs/contract/encodeDeployData`}));function zp({blockNumber:e,chain:t,contract:n}){let r=t?.contracts?.[n];if(!r)throw new Ap({chain:t,contract:{name:n}});if(e&&r.blockCreated&&r.blockCreated>e)throw new Ap({blockNumber:e,chain:t,contract:{name:n,blockCreated:r.blockCreated}});return r.address}var Bp=o((()=>{Fp()}));function Vp(e,{docsPath:t,...n}){return new xo((()=>{let t=Fu(e,n);return t instanceof Nu?e:t})(),{docsPath:t,...n})}var Hp=o((()=>{Eo(),Pu(),Iu()}));function Up(){let e=()=>void 0,t=()=>void 0;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Wp=o((()=>{}));function Gp({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;nKp.delete(t),s=()=>c().map(({args:e})=>e),c=()=>Kp.get(t)||[],l=e=>Kp.set(t,[...c(),e]);return{flush:o,async schedule(e){let{promise:t,resolve:i,reject:o}=Up();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 Kp,qp=o((()=>{Wp(),Kp=new Map})),Jp,Yp,Xp,Zp=o((()=>{Wa(),D(),bo(),Jp=class extends E{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=>` ${yo(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:`OffchainLookupError`})}},Yp=class extends E{constructor({result:e,url:t}){super(`Offchain gateway response is malformed. Response data must be a hex value.`,{metaMessages:[`Gateway URL: ${yo(t)}`,`Response: ${Ua(e)}`],name:`OffchainLookupResponseMalformedError`})}},Xp=class extends E{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 Qp(e){let{abi:t,data:n}=e,r=ji(n,0,4),i=t.find(e=>e.type===`function`&&r===$i(At(e)));if(!i)throw new en(r,{docsPath:`/docs/contract/decodeFunctionData`});return{functionName:i.name,args:`inputs`in i&&i.inputs&&i.inputs.length>0?Oa(i.inputs,ji(n,4)):void 0}}var $p=o((()=>{cn(),Ii(),ea(),Ba(),Nt()}));function em(e){let{abi:t,errorName:n,args:r}=e,i=t[0];if(n){let e=ta({abi:t,args:r,name:n});if(!e)throw new Xt(n,{docsPath:tm});i=e}if(i.type!==`error`)throw new Xt(void 0,{docsPath:tm});let a=$i(At(i)),o=`0x`;if(r&&r.length>0){if(!i.inputs)throw new Yt(i.name,{docsPath:tm});o=Bi(i.inputs,r)}return ki([a,o])}var tm,nm=o((()=>{cn(),Ai(),ea(),Qi(),Nt(),ia(),tm=`/docs/contract/encodeErrorResult`}));function rm(e){let{abi:t,functionName:n,result:r}=e,i=t[0];if(n){let e=ta({abi:t,name:n});if(!e)throw new Qt(n,{docsPath:im});i=e}if(i.type!==`function`)throw new Qt(void 0,{docsPath:im});if(!i.outputs)throw new $t(i.name,{docsPath:im});let a=(()=>{if(i.outputs.length===0)return[];if(i.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new on(r)})();return Bi(i.outputs,a)}var im,am=o((()=>{cn(),Qi(),ia(),im=`/docs/contract/encodeFunctionResult`}));async function om(e){let{data:t,ccipRequest:n}=e,{args:[r]}=Qp({abi:yp,data:t}),i=[],a=[];return await Promise.all(r.map(async(e,t)=>{try{a[t]=e.urls.includes(`x-batch-gateway:true`)?await om({data:e.data,ccipRequest:n}):await n(e),i[t]=!1}catch(e){i[t]=!0,a[t]=sm(e)}})),rm({abi:yp,functionName:`query`,result:[i,a]})}function sm(e){return e.name===`HttpRequestError`&&e.status?em({abi:yp,errorName:`HttpError`,args:[e.status,e.shortMessage]}):em({abi:[pa],errorName:`Error`,args:[`shortMessage`in e?e.shortMessage:e.message]})}var cm=o((()=>{Cp(),ha(),$p(),nm(),am()})),lm=c({ccipRequest:()=>dm,offchainLookup:()=>um,offchainLookupAbiItem:()=>pm,offchainLookupSignature:()=>fm});async function um(e,{blockNumber:t,blockTag:n,data:r,to:i}){let{args:a}=Va({data:r,abi:[pm]}),[o,s,c,l,u]=a,{ccipRead:d}=e,f=d&&typeof d?.request==`function`?d.request:dm;try{if(!Vd(i,o))throw new Xp({sender:o,to:i});let{data:r}=await hm(e,{blockNumber:t,blockTag:n,data:Di([l,Bi([{type:`bytes`},{type:`bytes`}],[s.includes(`x-batch-gateway:true`)?await om({data:c,ccipRequest:f}):await f({data:c,sender:o,urls:s}),u])]),to:i});return r}catch(e){throw new Jp({callbackSelector:l,cause:e,data:r,extraData:u,sender:o,urls:s})}}async function dm({data:e,sender:t,urls:n}){let r=Error(`An unknown error occurred.`);for(let i=0;i{xm(),Zp(),Ao(),Ha(),Qi(),Hd(),Ai(),Ft(),cm(),Wa(),fm=`0x556f1830`,pm={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 hm(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,...ee}=t,C=n?aa(n):void 0;if(u&&(f||p))throw new E("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(u&&b)throw new E("Cannot provide both `code` & `to` as parameters.");let te=u&&d,ne=f&&p&&b&&d,re=te||ne,ie=te?vm({code:u,data:d}):ne?ym({data:d,factory:f,factoryData:p,to:b}):d;try{ed(t);let n=(typeof a==`bigint`?O(a):void 0)||o,u=l?gp(l):void 0,d=Yu(S),f=e.chain?.formatters?.transactionRequest?.format,p=(f||Hu)({...Ru(ee,{format:f}),accessList:s,account:C,authorizationList:r,blobs:c,data:ie,gas:m,gasPrice:h,maxFeePerBlobGas:g,maxFeePerGas:_,maxPriorityFeePerGas:v,nonce:y,to:re?void 0:b,value:x},`call`);if(i&&gm({request:p})&&!d&&!u)try{return await _m(e,{...p,blockNumber:a,blockTag:o})}catch(e){if(!(e instanceof Np)&&!(e instanceof Ap))throw e}let te=(()=>{let e=[p,n];return d&&u?[...e,d,u]:d?[...e,d]:u?[...e,{},u]:e})(),ne=await e.request({method:`eth_call`,params:te});return ne===`0x`?{data:void 0}:{data:ne}}catch(n){let r=bm(n),{offchainLookup:i,offchainLookupSignature:a}=await ms(async()=>{let{offchainLookup:e,offchainLookupSignature:t}=await Promise.resolve().then(()=>(mm(),lm));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 re&&r?.slice(0,10)===`0x101bb98d`?new wo({factory:f}):Vp(n,{...t,account:C,chain:e.chain})}}function gm({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 _m(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 zp({blockNumber:a,chain:e.chain,contract:`multicall3`});throw new Np})(),u=(typeof a==`bigint`?O(a):void 0)||o,{schedule:d}=Gp({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=ua({abi:vp,args:[n],functionName:`aggregate3`}),i=await e.request({method:`eth_call`,params:[{...l===null?{data:vm({code:Op,data:r})}:{to:l,data:r}},u]});return Wd({abi:vp,args:[n],functionName:`aggregate3`,data:i||`0x`})}}),[{returnData:f,success:p}]=await d({data:s,to:c});if(!p)throw new To({data:f});return f===`0x`?{data:void 0}:{data:f}}function vm(e){let{code:t,data:n}=e;return Ip({abi:Ct([`constructor(bytes, bytes)`]),bytecode:Tp,args:[t,n]})}function ym(e){let{data:t,factory:n,factoryData:r,to:i}=e;return Ip({abi:Ct([`constructor(address, bytes, address, bytes)`]),bytecode:Ep,args:[i,t,n,r]})}function bm(e){if(!(e instanceof E))return;let t=e.walk();return typeof t?.data==`object`?t.data?.data:t.data}var xm=o((()=>{kt(),_p(),oa(),Cp(),wp(),kp(),D(),Fp(),Eo(),Kd(),Rp(),Bp(),k(),Hp(),zu(),Ku(),qp(),Xu(),td(),hs()}));Kd(),da(),xm();async function Sm(e,t){let{abi:n,address:r,args:i,functionName:a,...o}=t,s=ua({abi:n,args:i,functionName:a});try{let{data:t}=await T(e,hm,`call`)({...o,data:s,to:r});return Wd({abi:n,args:i,functionName:a,data:t||`0x`})}catch(e){throw ls(e,{abi:n,address:r,args:i,docsPath:`/docs/contract/readContract`,functionName:a})}}var Cm=new Map,wm=new Map,Tm=0;function Em(e,t,n){let r=++Tm,i=()=>Cm.get(e)||[],a=()=>{let t=i();Cm.set(e,t.filter(e=>e.id!==r))},o=()=>{let t=i();if(!t.some(e=>e.id===r))return;let n=wm.get(e);if(t.length===1&&n){let e=n();e instanceof Promise&&e.catch(()=>{})}a()},s=i();if(Cm.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`&&wm.set(e,l),o}async function Dm(e){return new Promise(t=>setTimeout(t,e))}function Om(e,{emitOnBegin:t,initialWaitTime:n,interval:r}){let i=!0,a=()=>i=!1;return(async()=>{let o;t&&(o=await e({unpoll:a})),await Dm(await n?.(o)??r);let s=async()=>{i&&(await e({unpoll:a}),await Dm(r),s())};s()})(),a}var km=new Map,Am=new Map;function jm(e){let t=(e,t)=>({clear:()=>t.delete(e),get:()=>t.get(e),set:n=>t.set(e,n)}),n=t(e,km),r=t(e,Am);return{clear:()=>{n.clear(),r.clear()},promise:n,response:r}}async function Mm(e,{cacheKey:t,cacheTime:n=1/0}){let r=jm(t),i=r.response.get();if(i&&n>0&&Date.now()-i.created.getTime()`blockNumber.${e}`;async function Pm(e,{cacheTime:t=e.cacheTime}={}){let n=await Mm(()=>e.request({method:`eth_blockNumber`}),{cacheKey:Nm(e.uid),cacheTime:t});return BigInt(n)}D();var Fm=class extends E{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`})}},Im=class extends E{constructor({docsPath:e,metaMessages:t,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:t,name:`AccountTypeNotSupportedError`})}};Fp();function Lm({chain:e,currentChainId:t}){if(!e)throw new Mp;if(t!==e.id)throw new jp({chain:e,currentChainId:t})}async function Rm(e,{serializedTransaction:t}){return e.request({method:`eth_sendRawTransaction`,params:[t]},{retryCount:0})}oa(),D(),Ai(),zu(),Ku(),vi(),td();var zm=new _i(128);async function Bm(e,t){let{account:n=e.account,assertChainId:r=!0,chain:i=e.chain,accessList:a,authorizationList:o,blobs:s,data:c,dataSuffix:l=typeof e.dataSuffix==`string`?e.dataSuffix:e.dataSuffix?.value,gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,type:g,value:_,...v}=t;if(n===void 0)throw new Fm({docsPath:`/docs/actions/wallet/sendTransaction`});let y=n?aa(n):null;try{ed(t);let n=await(async()=>{if(t.to)return t.to;if(t.to!==null&&o&&o.length>0)return await bu({authorization:o[0]}).catch(()=>{throw new E("`to` is required. Could not infer from `authorizationList`.")})})();if(y?.type===`json-rpc`||y===null){let t;i!==null&&(t=await T(e,Fd,`getChainId`)({}),r&&Lm({currentChainId:t,chain:i}));let b=e.chain?.formatters?.transactionRequest?.format,x=(b||Hu)({...Ru(v,{format:b}),accessList:a,account:y,authorizationList:o,blobs:s,chainId:t,data:l?Di([c??`0x`,l]):c,gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,to:n,type:g,value:_},`sendTransaction`),S=zm.get(e.uid),ee=S?`wallet_sendTransaction`:`eth_sendTransaction`;try{return await e.request({method:ee,params:[x]},{retryCount:0})}catch(t){if(S===!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:[x]},{retryCount:0}).then(t=>(zm.set(e.uid,!0),t)).catch(t=>{let r=t;throw r.name===`MethodNotFoundRpcError`||r.name===`MethodNotSupportedRpcError`?(zm.set(e.uid,!1),n):r});throw n}}if(y?.type===`local`){let t=await T(e,zd,`prepareTransactionRequest`)({account:y,accessList:a,authorizationList:o,blobs:s,chain:i,data:l?Di([c??`0x`,l]):c,gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,nonceManager:y.nonceManager,parameters:[...Ld,`sidecars`],type:g,value:_,...v,to:n}),r=i?.serializers?.transaction,b=await y.signTransaction(t,{serializer:r});return await T(e,Rm,`sendRawTransaction`)({serializedTransaction:b})}throw y?.type===`smart`?new Im({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:`/docs/actions/bundler/sendUserOperation`,type:`smart`}):new Im({docsPath:`/docs/actions/wallet/sendTransaction`,type:y?.type})}catch(e){throw e instanceof Im?e:Pd(e,{...t,account:y,chain:t.chain||void 0})}}oa(),da();async function Vm(e,t){return Vm.internal(e,Bm,`sendTransaction`,t)}(function(e){async function t(e,t,n,r){let{abi:i,account:a=e.account,address:o,args:s,functionName:c,...l}=r;if(a===void 0)throw new Fm({docsPath:`/docs/contract/writeContract`});let u=a?aa(a):null,d=ua({abi:i,args:s,functionName:c});try{return await T(e,t,n)({data:d,to:o,account:u,...l})}catch(e){throw ls(e,{abi:i,address:o,args:s,docsPath:`/docs/contract/writeContract`,functionName:c,sender:u?.address})}}e.internal=t})(Vm||={}),D();var Hm=class extends E{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 Um(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 Dm(n),o({count:s+1})};try{i(await e())}catch(e){if(sUd(e)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Dn(e.transactionIndex):null,status:e.status?Wm[e.status]:null,type:e.type?od[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}var Km=Bu(`transactionReceipt`,Gm);oa(),D(),ss(),da(),Ai(),On(),k();var qm=`0x5792579257925792579257925792579257925792579257925792579257925792`,Jm=O(0,{size:32});async function Ym(e,t){let{account:n=e.account,chain:r=e.chain,experimental_fallback:i,experimental_fallbackDelay:a=32,forceAtomic:o=!1,id:s,version:c=`2.0.0`}=t,l=n?aa(n):null,u=t.capabilities;e.dataSuffix&&!t.capabilities?.dataSuffix&&(u=typeof e.dataSuffix==`string`?{...t.capabilities,dataSuffix:{value:e.dataSuffix,optional:!0}}:{...t.capabilities,dataSuffix:{value:e.dataSuffix.value,...e.dataSuffix.required?{}:{optional:!0}}});let d=t.calls.map(e=>{let t=e,n=t.abi?ua({abi:t.abi,functionName:t.functionName,args:t.args}):t.data;return{data:t.dataSuffix&&n?Di([n,t.dataSuffix]):n,to:t.to,value:t.value?O(t.value):void 0}});try{let t=await e.request({method:`wallet_sendCalls`,params:[{atomicRequired:o,calls:d,capabilities:u,chainId:O(r.id),from:l?.address,id:s,version:c}]},{retryCount:0});return typeof t==`string`?{id:t}:t}catch(n){let s=n;if(i&&(s.name===`MethodNotFoundRpcError`||s.name===`MethodNotSupportedRpcError`||s.name===`UnknownRpcError`||s.details.toLowerCase().includes(`does not exist / is not available`)||s.details.toLowerCase().includes(`missing or invalid. request()`)||s.details.toLowerCase().includes(`did not match any variant of untagged enum`)||s.details.toLowerCase().includes(`account upgraded to unsupported contract`)||s.details.toLowerCase().includes(`eip-7702 not supported`)||s.details.toLowerCase().includes(`unsupported wc_ method`)||s.details.toLowerCase().includes(`feature toggled misconfigured`)||s.details.toLowerCase().includes(`jsonrpcengine: response has no error or result for request`))){if(u&&Object.values(u).some(e=>!e.optional)){let e="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new Qo(new E(e,{details:e}))}if(o&&d.length>1){let e="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new is(new E(e,{details:e}))}let t=[];for(let n of d){let i=Bm(e,{account:l,chain:r,data:n.data,to:n.to,value:n.value?Tn(n.value):void 0});t.push(i),a>0&&await new Promise(e=>setTimeout(e,a))}let n=await Promise.allSettled(t);if(n.every(e=>e.status===`rejected`))throw n[0].reason;return{id:Di([...n.map(e=>e.status===`fulfilled`?e.value:Jm),O(r.id,{size:32}),qm])}}throw Pd(n,{...t,account:l,chain:t.chain})}}Ii(),Cn(),On();async function Xm(e,t){async function n(t){if(t.endsWith(`5792579257925792579257925792579257925792579257925792579257925792`)){let n=Sn(Fi(t,-64,-32)),r=Fi(t,0,-64).slice(2).match(/.{1,64}/g),i=await Promise.all(r.map(t=>Jm.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:Dn(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?Dn(i):void 0,receipts:a?.map(e=>({...e,blockNumber:Tn(e.blockNumber),gasUsed:Tn(e.gasUsed),status:Wm[e.status]}))??[],statusCode:l,status:c,version:o}}D(),Wp(),Wa();async function Zm(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=Om(async()=>{let r=e=>{clearTimeout(p),s(),e(),m()};try{let s=await Um(async()=>{let t=await T(e,Xm,`getCallsStatus`)({id:n});if(c&&t.status===`failure`)throw new Hm(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 Qm({id:n}))},s):void 0,await u}var Qm=class extends E{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:`WaitForCallsStatusTimeoutError`})}},$m=256,eh=$m,th;function nh(e=11){if(!th||eh+e>$m*2){th=``,eh=0;for(let e=0;e<$m;e++)th+=(256+Math.random()*256|0).toString(16).substring(1)}return th.substring(eh,eh+++e)}oa();function rh(e){let{batch:t,chain:n,ccipRead:r,dataSuffix:i,key:a=`base`,name:o=`Base Client`,type:s=`base`}=e,c=e.experimental_blockTag??(typeof n?.experimental_preconfirmationTime==`number`?`pending`:void 0),l=n?.blockTime??12e3,u=Math.min(Math.max(Math.floor(l/2),500),4e3),d=e.pollingInterval??u,f=e.cacheTime??d,p=e.account?aa(e.account):void 0,{config:m,request:h,value:g}=e.transport({account:p,chain:n,pollingInterval:d}),_={account:p,batch:t,cacheTime:f,ccipRead:r,chain:n,dataSuffix:i,key:a,name:o,pollingInterval:d,request:h,transport:{...m,...g},type:s,uid:nh(),...c?{experimental_blockTag:c}:{}};function v(e){return t=>{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(_)})}k();async function ih(e,{address:t,blockNumber:n,blockTag:r=`latest`}){let i=n===void 0?void 0:O(n),a=await e.request({method:`eth_getCode`,params:[t,i||r]},{dedupe:!!i});if(a!==`0x`)return a}D();var ah=class extends E{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 oh(e,t){let{address:n,factory:r,factoryData:i}=t;try{let[t,a,o,s,c,l,u]=await T(e,Sm,`readContract`)({abi:sh,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 ah({address:n}):t}}var sh=[{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`}];$u(),gi(),D(),Fp(),Pu(),Ei(),Lt(),Ii(),On();function ch(e){let{authorizationList:t}=e;if(t)for(let e of t){let{chainId:t}=e,n=e.address;if(!Ci(n))throw new hi({address:n});if(t<0)throw new Pp({chainId:t})}uh(e)}function lh(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Od;for(let e of t){let t=It(e),n=Dn(ji(e,0,1));if(t!==32)throw new kd({hash:e,size:t});if(n!==1)throw new Ad({hash:e,version:n})}}uh(e)}function uh(e){let{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:r,to:i}=e;if(t<=0)throw new Pp({chainId:t});if(i&&!Ci(i))throw new hi({address:i});if(r&&r>Qu)throw new Cu({maxFeePerGas:r});if(n&&r&&n>r)throw new Mu({maxFeePerGas:r,maxPriorityFeePerGas:n})}function dh(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a}=e;if(t<=0)throw new Pp({chainId:t});if(a&&!Ci(a))throw new hi({address:a});if(n||i)throw new E("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(r&&r>Qu)throw new Cu({maxFeePerGas:r})}function fh(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a}=e;if(a&&!Ci(a))throw new hi({address:a});if(t!==void 0&&t<=0)throw new Pp({chainId:t});if(n||i)throw new E("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(r&&r>Qu)throw new Cu({maxFeePerGas:r})}gi(),_o(),Ei();function ph(e){if(!e||e.length===0)return[];let t=[];for(let n=0;njn(e)),n=e.kzg,r=_d({blobs:t,kzg:n});f===void 0&&(f=Sd({commitments:r})),p===void 0&&(p=Md({blobs:t,commitments:r,proofs:vd({blobs:t,commitments:r,kzg:n})}))}let m=ph(u),h=[O(n),i?O(i):`0x`,l?O(l):`0x`,c?O(c):`0x`,r?O(r):`0x`,a??`0x`,o?O(o):`0x`,d??`0x`,m,s?O(s):`0x`,f??[],...bh(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 co({v:t.v});return e})(),r=Sn(t.r),i=Sn(t.s);l=[...l,O(e),r===`0x00`?`0x`:r,i===`0x00`?`0x`:i]}else n>0&&(l=[...l,O(n),`0x`,`0x`]);return mu(l)}function bh(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=Sn(n.r),o=Sn(n.s);return[typeof i==`number`?i?O(1):`0x`:r===0n?`0x`:r===1n?O(1):r===27n?`0x`:O(1),a===`0x00`?`0x`:a,o===`0x00`?`0x`:o]}k();function xh(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?kn(e):`0x`,a,r?kn(r):`0x`,...bh({},i)])}return t}Si(),Hd();async function Sh({address:e,authorization:t,signature:n}){return Vd(bi(e),await bu({authorization:t,signature:n}))}vi();var Ch=new _i(8192);function wh(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(Ch.get(n))return Ch.get(n);let r=e().finally(()=>Ch.delete(n));return Ch.set(n,r),r}D(),Ao(),ss(),k(),Wa();function Th(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 Uo(Error(`method not supported`),{method:l});return wh(()=>Um(async()=>{try{return await e(n)}catch(e){let t=e;switch(t.code){case Po.code:throw new Po(t);case Fo.code:throw new Fo(t);case Io.code:throw new Io(t,{method:n.method});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);case Ho.code:throw new Ho(t);case Uo.code:throw new Uo(t,{method:n.method});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 rs.code:throw new rs(t);case is.code:throw new is(t);case 5e3:throw new Ko(t);case as.code:throw new as(t);default:throw e instanceof E?e:new os(t)}}},{delay:({count:e,error:t})=>{if(t&&t instanceof Do){let e=t?.headers?.get(`Retry-After`);if(e?.match(/\d/))return Number.parseInt(e,10)*1e3}return~~(1<Eh(e)}),{enabled:i,id:i?Mn(`${c}.${Ua(n)}`):void 0})}}function Eh(e){return`code`in e&&typeof e.code==`number`?e.code===-1||e.code===Wo.code||e.code===Ro.code:e instanceof Do&&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){let t={formatters:void 0,fees:void 0,serializers:void 0,...e};function n(e){return t=>{let r=typeof t==`function`?t(e):t,i={...e,...r};return Object.assign(i,{extend:n(i)})}}return Object.assign(t,{extend:n(t)})}function Dh(){return{}}function Oh(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 kh(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Ah=kh();Ao(),Wa();function jh(e,t={}){let{url:n,headers:r}=Mh(e);return{async request(e){let{body:i,fetchFn:a=t.fetchFn??fetch,onRequest:o=t.onRequest,onResponse:s=t.onResponse,timeout:c=t.timeout??1e4}=e,l={...t.fetchOptions??{},...e.fetchOptions??{}},{headers:u,method:d,signal:f}=l;try{let e=await Oh(async({signal:e})=>{let t={...l,body:Ua(Array.isArray(i)?i.map(e=>({jsonrpc:`2.0`,id:e.id??Ah.take(),...e})):{jsonrpc:`2.0`,id:i.id??Ah.take(),...i}),headers:{...r,"Content-Type":`application/json`,...u},method:d||`POST`,signal:f||(c>0?e:null)},s=new Request(n,t),p=await o?.(s,t)??{...t,url:n};return await a(p.url??n,p)},{errorInstance:new ko({body:i,url:n}),timeout:c,signal:!0});s&&await s(e);let t;if(e.headers.get(`Content-Type`)?.startsWith(`application/json`))t=await e.json();else{t=await e.text();try{t=JSON.parse(t||`{}`)}catch(n){if(e.ok)throw n;t={error:t}}}if(!e.ok){if(typeof t.error?.code==`number`&&typeof t.error?.message==`string`)return t;throw new Do({body:i,details:Ua(t.error)||e.statusText,headers:e.headers,status:e.status,url:n})}return t}catch(e){throw e instanceof Do||e instanceof ko?e:new Do({body:i,cause:e,url:n})}}}}function Mh(e){try{let t=new URL(e),n=(()=>{if(t.username){let e=`${decodeURIComponent(t.username)}:${decodeURIComponent(t.password)}`;return t.username=``,t.password=``,{url:t.toString(),headers:{Authorization:`Basic ${btoa(e)}`}}}})();return{url:t.toString(),...n}}catch{return{url:e}}}var Nh=`Ethereum Signed Message: -`;Ai(),Lt(),k();function Ph(e){let t=typeof e==`string`?Mn(e):typeof e.raw==`string`?e.raw:jn(e.raw);return Di([Mn(`${Nh}${It(t)}`),t])}ri();function Fh(e,t){return ni(Ph(e),t)}Wa(),D();var Ih=class extends E{constructor({domain:e}){super(`Invalid domain "${Ua(e)}".`,{metaMessages:[`Must be a valid EIP-712 domain.`]})}},Lh=class extends E{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`."]})}},Rh=class extends E{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:[`Struct type must not be a Solidity type.`],name:`InvalidStructTypeError`})}};cn(),gi(),Ei(),Lt(),k(),zi(),Wa();function zh(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};return Ua({domain:!i.EIP712Domain||!t?{}:a(i.EIP712Domain,t),message:(()=>{if(r!==`EIP712Domain`)return a(i[r],n)})(),primaryType:r,types:i})}function Bh(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(Ri);if(s&&(typeof o==`number`||typeof o==`bigint`)){let[e,t,n]=s;O(o,{signed:t===`int`,size:Number.parseInt(n,10)/8})}if(r===`address`&&typeof o==`string`&&!Ci(o))throw new hi({address:o});let c=r.match(Li);if(c){let[e,t]=c;if(t&&It(o)!==Number.parseInt(t,10))throw new nn({expectedSize:Number.parseInt(t,10),givenSize:It(o)})}let l=i[r];l&&(Hh(r),a(l,o))}};if(i.EIP712Domain&&t){if(typeof t!=`object`)throw new Ih({domain:t});a(i.EIP712Domain,t)}if(r!==`EIP712Domain`)if(i[r])a(i[r],n);else throw new Lh({primaryType:r,types:i})}function Vh({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 Hh(e){if(e===`address`||e===`bool`||e===`string`||e.startsWith(`bytes`)||e.startsWith(`uint`)||e.startsWith(`int`))throw new Rh({type:e})}Qi(),Ai(),k(),ri();function Uh(e){let{domain:t={},message:n,primaryType:r}=e,i={EIP712Domain:Vh({domain:t}),...e.types};Bh({domain:t,message:n,primaryType:r,types:i});let a=[`0x1901`];return t&&a.push(Wh({domain:t,types:i})),r!==`EIP712Domain`&&a.push(Gh({data:n,primaryType:r,types:i})),ni(Di(a))}function Wh({domain:e,types:t}){return Gh({data:e,primaryType:`EIP712Domain`,types:t})}function Gh({data:e,primaryType:t,types:n}){return ni(Kh({data:e,primaryType:t,types:n}))}function Kh({data:e,primaryType:t,types:n}){let r=[{type:`bytes32`}],i=[qh({primaryType:t,types:n})];for(let a of n[t]){let[t,o]=Xh({types:n,name:a.name,type:a.type,value:e[a.name]});r.push(t),i.push(o)}return Bi(r,i)}function qh({primaryType:e,types:t}){return ni(kn(Jh({primaryType:e,types:t})))}function Jh({primaryType:e,types:t}){let n=``,r=Yh({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 Yh({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])Yh({primaryType:e.type,types:t},n);return n}function Xh({types:e,name:t,type:n,value:r}){if(e[n]!==void 0)return[{type:`bytes32`},ni(Kh({data:r,primaryType:n,types:e}))];if(n===`bytes`)return[{type:`bytes32`},ni(r)];if(n===`string`)return[{type:`bytes32`},ni(kn(r))];if(n.lastIndexOf(`]`)===n.length-1){let i=n.slice(0,n.lastIndexOf(`[`)),a=r.map(n=>Xh({name:t,type:i,types:e,value:n}));return[{type:`bytes32`},ni(Bi(a.map(([e])=>e),a.map(([,e])=>e)))]}return[{type:n},r]}var Zh={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;ti(),Hf(),pp();function Qh(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=$r(yf(e));return n===`Bytes`?r:qf(r)}function $h(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=yd(yf(e));return n===`Bytes`?r:qf(r)}function eg(e){return rp(e)&&Qf(e)===32}Hf(),Qd(),pp(),gf();function tg(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 cg({prefix:r,cause:new ug});return}if(n===!0||typeof i==`bigint`&&a===void 0){if(r!==3&&r!==2)throw new cg({prefix:r,cause:new lg});return}throw new sg({publicKey:e})}function ng(e){let t=(()=>{if(rp(e))return ig(e);if(Pf(e))return rg(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 tg(t),t}function rg(e){return ig(qf(e))}function ig(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new dg({publicKey:e});return e.length===130?{prefix:4,x:BigInt(I(e,0,32)),y:BigInt(I(e,32,64))}:e.length===132?{prefix:Number(I(e,0,1)),x:BigInt(I(e,1,33)),y:BigInt(I(e,33,65))}:{prefix:Number(I(e,0,1)),x:BigInt(I(e,1,33))}}function ag(e,t={}){return xf(og(e,t))}function og(e,t={}){tg(e);let{prefix:n,x:r,y:i}=e,{includePrefix:a=!0}=t;return Wf(a?F(n,{size:1}):`0x`,F(r,{size:32}),typeof i==`bigint`?F(i,{size:32}):`0x`)}var sg=class extends P{constructor({publicKey:e}){super(`Value \`${mf(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`})}},cg=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`})}},lg=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`})}},ug=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`})}},dg=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(Gf(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidSerializedSizeError`})}};Hf(),Qd();var fg=/^0x[a-fA-F0-9]{40}$/;function pg(e,t={}){let{strict:n=!0}=t;if(!fg.test(e))throw new yg({address:e,cause:new bg});if(n){if(e.toLowerCase()===e)return;if(mg(e)!==e)throw new yg({address:e,cause:new xg})}}function mg(e){if(Zh.has(e))return Zh.get(e);pg(e,{strict:!1});let t=e.substring(2).toLowerCase(),n=Qh(Sf(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 Zh.set(e,i),i}function hg(e,t={}){let{checksum:n=!1}=t;return pg(e),n?mg(e):e}function gg(e,t={}){return hg(`0x${Qh(`0x${og(e).slice(4)}`).substring(26)}`,t)}function _g(e,t){return pg(e,{strict:!1}),pg(t,{strict:!1}),e.toLowerCase()===t.toLowerCase()}function vg(e,t={}){let{strict:n=!0}=t??{};try{return pg(e,{strict:n}),!0}catch{return!1}}var yg=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`})}},bg=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`})}},xg=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`})}},Sg=/^(.*)\[([0-9]*)\]$/,Cg=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,wg=/^(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));var Tg=2n**256n-1n;Hf(),Qd(),pp();function Eg(e,t,n){let{checksumAddress:r,staticPosition:i}=n,a=Kg(t.type);if(a){let[n,o]=a;return Ag(e,{...t,type:o},{checksumAddress:r,length:n,staticPosition:i})}if(t.type===`tuple`)return Pg(e,t,{checksumAddress:r,staticPosition:i});if(t.type===`address`)return kg(e,{checksum:r});if(t.type===`bool`)return jg(e);if(t.type.startsWith(`bytes`))return Mg(e,t,{staticPosition:i});if(t.type.startsWith(`uint`)||t.type.startsWith(`int`))return Ng(e,t);if(t.type===`string`)return Fg(e,{staticPosition:i});throw new l_(t.type)}var Dg=32,Og=32;function kg(e,t={}){let{checksum:n=!1}=t;return[(e=>n?mg(e):e)(qf(Df(e.readBytes(32),-20))),32]}function Ag(e,t,n){let{checksumAddress:r,length:i,staticPosition:a}=n;if(!i){let n=a+Af(e.readBytes(Og)),i=n+Dg;e.setPosition(n);let o=Af(e.readBytes(Dg)),s=qg(t),c=0,l=[];for(let n=0;n48?Of(i,{signed:n}):Af(i,{signed:n}),32]}function Pg(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(qg(t)){let n=i+Af(e.readBytes(Og));for(let i=0;i0?Wf(t,e):t}}if(o)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Wf(...s.map(({encoded:e})=>e))}}function Vg(e,{type:t}){let[,n]=t.split(`bytes`),r=Qf(e);if(!n){let t=e;return r%32!=0&&(t=Xf(t,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Wf(Yf(F(r,{size:32})),t)}}if(r!==Number.parseInt(n,10))throw new o_({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:Xf(e)}}function Hg(e){if(typeof e!=`boolean`)throw new P(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Yf(Kf(e))}}function Ug(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 Kg(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function qg(e){let{type:t}=e;if(t===`string`||t===`bytes`||t.endsWith(`[]`))return!0;if(t===`tuple`)return e.components?.some(qg);let n=Kg(e.type);return!!(n&&qg({...e,type:n[1]}))}Qd();var Jg={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 Qg({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 Xg({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 Xg({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 Yg(e,{recursiveReadLimit:t=8192}={}){let n=Object.create(Jg);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}var Xg=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`})}},Qg=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`})}};kt(),Hf(),Qd(),pp();function $g(e,t,n={}){let{as:r=`Array`,checksumAddress:i=!1}=n,a=typeof t==`string`?xf(t):t,o=Yg(a);if(Ef(a)===0&&e.length>0)throw new i_;if(Ef(a)&&Ef(a)<32)throw new r_({data:typeof t==`string`?t:qf(t),parameters:e,size:Ef(a)});let s=0,c=r===`Array`?[]:{};for(let t=0;t{if(typeof e==`string`){if(e.length>3&&e.length%2!=0)throw new lp(e);return xf(e)}return e})(),{recursiveReadLimit:1/0}),n)}function f_(e,t=`Hex`){if(e.bytes.length===0)return t===`Hex`?qf(e.bytes):e.bytes;let n=e.readByte();if(n<128&&e.decrementPosition(1),n<192){let r=p_(e,n,128),i=e.readBytes(r);return t===`Hex`?qf(i):i}return m_(e,p_(e,n,192),t)}function p_(e,t,n){if(n===128&&t<128)return 1;if(t<=n+55)return t-n;if(t===n+55+1)return e.readUint8();if(t===n+55+2)return e.readUint16();if(t===n+55+3)return e.readUint24();if(t===n+55+4)return e.readUint32();throw new P(`Invalid RLP prefix`)}function m_(e,t,n){let r=e.position,i=[];for(;e.position-r__(e))):y_(e)}function v_(e){let t=e.reduce((e,t)=>e+t.length,0),n=b_(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 y_(e){let t=typeof e==`string`?xf(e):e,n=b_(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 b_(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=16777215)return 3;if(e<=4294967295)return 4;throw new P(`Length is too large.`)}Qd(),pp(),gf();function x_(e,t={}){let{recovered:n}=t;if(e.r===void 0||e.s===void 0||n&&e.yParity===void 0)throw new F_({signature:e});if(e.r<0n||e.r>Tg)throw new I_({value:e.r});if(e.s<0n||e.s>Tg)throw new L_({value:e.s});if(typeof e.yParity==`number`&&e.yParity!==0&&e.yParity!==1)throw new R_({value:e.yParity})}function S_(e){return C_(qf(e))}function C_(e){if(e.length!==130&&e.length!==132)throw new P_({signature:e});let t=BigInt(I(e,0,32)),n=BigInt(I(e,32,64)),r=(()=>{let t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return M_(t)}catch{throw new R_({value:t})}})();return r===void 0?{r:t,s:n}:{r:t,s:n,yParity:r}}function w_(e){if(e.r!==void 0&&e.s!==void 0)return T_(e)}function T_(e){let t=typeof e==`string`?C_(e):e instanceof Uint8Array?S_(e):typeof e.r==`string`?D_(e):e.v?E_(e):{r:e.r,s:e.s,...e.yParity===void 0?{}:{yParity:e.yParity}};return x_(t),t}function E_(e){return{r:e.r,s:e.s,yParity:M_(e.v)}}function D_(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=M_(t)),typeof n!=`number`)throw new R_({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function O_(e){let[t,n,r]=e;return T_({r:n===`0x`?0n:BigInt(n),s:r===`0x`?0n:BigInt(r),yParity:t===`0x`?0:Number(t)})}function k_(e){x_(e);let t=e.r,n=e.s;return Wf(F(t,{size:32}),F(n,{size:32}),typeof e.yParity==`number`?F(N_(e.yParity),{size:1}):`0x`)}function A_(e){let{r:t,s:n,yParity:r}=e;return{r:F(t,{size:32}),s:F(n,{size:32}),yParity:r===0?`0x0`:`0x1`}}function j_(e){let{r:t,s:n,yParity:r}=e;return[r?`0x01`:`0x`,t===0n?`0x`:$f(F(t)),n===0n?`0x`:$f(F(n))]}function M_(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 z_({value:e})}function N_(e){if(e===0)return 27;if(e===1)return 28;throw new R_({value:e})}var P_=class extends P{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:[`Expected: 64 bytes or 65 bytes.`,`Received ${Qf(Gf(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidSerializedSizeError`})}},F_=class extends P{constructor({signature:e}){super(`Signature \`${mf(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.MissingPropertiesError`})}},I_=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`})}},L_=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`})}},R_=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`})}},z_=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`})}};pp();function B_(e,t={}){return typeof e.chainId==`string`?V_(e):{...e,...t.signature}}function V_(e){let{address:t,chainId:n,nonce:r}=e,i=w_(e);return{address:t,chainId:Number(n),nonce:BigInt(r),...i}}function H_(e){return e.map(V_)}function U_(e){let{address:t,chainId:n,nonce:r,...i}=e;return{address:t,chainId:F(n),nonce:F(r),...A_(i)}}function W_(e){return e.map(U_)}uu(),Hf(),pp();function G_(e){return gg(K_(e))}function K_(e){let{payload:t,signature:n}=e,{r,s:i,yParity:a}=n;return ng(new Zl.Signature(BigInt(r),BigInt(i)).addRecoveryBit(a).recoverPublicKey(Gf(t).substring(2)))}function q_(e){let{address:t,hash:n,payload:r,publicKey:i,signature:a}=e;return t?_g(t,G_({payload:r,signature:a})):Zl.verify(a,yf(r),ag(i),...n?[{prehash:!0,lowS:!0}]:[])}Qd(),pp();var J_=n_(`(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data`);function Y_(e){if(typeof e==`string`){if(I(e,-32)!==`0x8010801080108010801080108010801080108010801080108010801080108010`)throw new Q_(e)}else x_(e.authorization)}function X_(e){Y_(e);let t=tp(I(e,-64,-32)),n=I(e,-t-64,-64),r=I(e,0,-t-64),[i,a,o]=$g(J_,n);return{authorization:B_({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 Z_(e){try{return Y_(e),!0}catch{return!1}}var Q_=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`})}};_o(),k();async function $_(e,{blockHash:t,blockNumber:n,blockTag:r,hash:i,index:a,sender:o,nonce:s}){let c=r||`latest`,l=n===void 0?void 0:O(n),u=null;if(i?u=await e.request({method:`eth_getTransactionByHash`,params:[i]},{dedupe:!0}):t?u=await e.request({method:`eth_getTransactionByBlockHashAndIndex`,params:[t,O(a)]},{dedupe:!0}):(l||c)&&typeof a==`number`?u=await e.request({method:`eth_getTransactionByBlockNumberAndIndex`,params:[l||c,O(a)]},{dedupe:!!l}):o&&typeof s==`number`&&(u=await e.request({method:`eth_getTransactionBySenderAndNonce`,params:[o,O(s)]},{dedupe:!0})),!u)throw new po({blockHash:t,blockNumber:n,blockTag:c,hash:i,index:a});return(e.chain?.formatters?.transaction?.format||sd)(u,`getTransaction`)}_o();async function ev(e,{hash:t}){let n=await e.request({method:`eth_getTransactionReceipt`,params:[t]},{dedupe:!0});if(!n)throw new mo({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Gm)(n,`getTransactionReceipt`)}Qd();function tv(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;onv(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=>nv(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,``)})):!1}}function rv(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 rv(i.components,a.components,n[r]);let o=[i.type,a.type];if(o.includes(`address`)&&o.includes(`bytes20`)||(o.includes(`address`)&&o.includes(`string`)||o.includes(`address`)&&o.includes(`bytes`))&&vg(n[r],{strict:!1}))return o}}kt(),Qd(),pp();function iv(e,t={}){let{prepare:n=!0}=t,r=Array.isArray(e)||typeof e==`string`?Tt(e):e;return{...r,...n?{hash:cv(r)}:{}}}function av(e,t,n){let{args:r=[],prepare:i=!0}=n??{},a=rp(t,{strict:!1}),o=e.filter(e=>a?e.type===`function`||e.type===`error`?ov(e)===I(t,0,4):e.type===`event`?cv(e)===t:!1:`name`in e&&e.name===t);if(o.length===0)throw new uv({name:t});if(o.length===1)return{...o[0],...i?{hash:cv(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:cv(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?nv(t,r):!1})){if(s&&`inputs`in s&&s.inputs){let t=rv(e.inputs,s.inputs,r);if(t)throw new lv({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 uv({name:t});return{...c,...i?{hash:cv(c)}:{}}}function ov(...e){return I(cv((()=>{if(Array.isArray(e[0])){let[t,n]=e;return av(t,n)}return e[0]})()),0,4)}function sv(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return av(t,n)}return e[0]})();return tv(typeof t==`string`?t:ue(t))}function cv(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return av(t,n)}return e[0]})();return typeof t!=`string`&&`hash`in t&&t.hash?t.hash:Qh(Jf(sv(t)))}var lv=class extends P{constructor(e,t){super(`Found ambiguous types in overloaded ABI Items.`,{metaMessages:[`\`${e.type}\` in \`${tv(ue(e.abiItem))}\`, and`,`\`${t.type}\` in \`${tv(ue(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`})}},uv=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`})}},dv=`0x0000000000000000000000000000000000000000`;Qd(),pp();var fv=`0x6492649264926492649264926492649264926492649264926492649264926492`;function pv(e){if(I(e,-32)!==`0x6492649264926492649264926492649264926492649264926492649264926492`)throw new gv(e)}function mv(e){let{data:t,signature:n,to:r}=e;return Wf(e_(n_(`address, bytes, bytes`),[r,t,n]),fv)}function hv(e){try{return pv(e),!0}catch{return!1}}var gv=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(),On(),Un();function _v({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 Zl.Signature(Tn(e),Tn(t)).toCompactHex()}${a===0?`1b`:`1c`}`;return n===`hex`?o:Rn(o)}Cp(),kp(),Eo(),Rp(),da(),Si(),Hd(),Ai(),Ft(),On(),k(),xm();async function vv(e,t){let{address:n,chain:r=e.chain,hash:i,erc6492VerifierAddress:a=t.universalSignatureVerifierAddress??r?.contracts?.erc6492Verifier?.address,multicallAddress:o=t.multicallAddress??r?.contracts?.multicall3?.address,mode:s=`auto`}=t;if(r?.verifyHash)return await r.verifyHash(e,t);let c=(()=>{let e=t.signature;return Pt(e)?e:typeof e==`object`&&`r`in e&&`s`in e?_v(e):jn(e)})();try{if(s===`eoa`)try{if(Vd(bi(n),await pu({hash:i,signature:c})))return!0}catch{}return Z_(c)?await yv(e,{...t,multicallAddress:o,signature:c}):await bv(e,{...t,verifierAddress:a,signature:c})}catch(e){if(s!==`eoa`)try{if(Vd(bi(n),await pu({hash:i,signature:c})))return!0}catch{}if(e instanceof Sv)return!1;throw e}}async function yv(e,t){let{address:n,blockNumber:r,blockTag:i,hash:a,multicallAddress:o}=t,{authorization:s,data:c,signature:l,to:u}=X_(t.signature);if(await ih(e,{address:n,blockNumber:r,blockTag:i})===ki([`0xef0100`,s.address]))return await xv(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:O(s.r,{size:32}),s:O(s.s,{size:32}),yParity:s.yParity};if(!await Sh({address:n,authorization:d}))throw new Sv;let f=await T(e,Sm,`readContract`)({...o?{address:o}:{code:Op},authorizationList:[d],abi:vp,blockNumber:r,blockTag:`pending`,functionName:`aggregate3`,args:[[...c?[{allowFailure:!0,target:u??n,callData:c}]:[],{allowFailure:!0,target:n,callData:ua({abi:xp,functionName:`isValidSignature`,args:[a,l]})}]]});if((f[f.length-1]?.returnData)?.startsWith(`0x1626ba7e`))return!0;throw new Sv}async function bv(e,t){let{address:n,factory:r,factoryData:i,hash:a,signature:o,verifierAddress:s,...c}=t,l=await(async()=>!r&&!i||hv(o)?o:mv({data:i,signature:o,to:r}))(),u=s?{to:s,data:ua({abi:Sp,functionName:`isValidSig`,args:[n,a,l]}),...c}:{data:Ip({abi:Sp,args:[n,a,l],bytecode:Dp}),...c},{data:d}=await T(e,hm,`call`)(u).catch(e=>{throw e instanceof xo?new Sv:e});if(En(d??`0x0`))return!0;throw new Sv}async function xv(e,t){let{address:n,blockNumber:r,blockTag:i,hash:a,signature:o}=t;if((await T(e,Sm,`readContract`)({address:n,abi:xp,args:[a,o],blockNumber:r,blockTag:i,functionName:`isValidSignature`}).catch(e=>{throw e instanceof So?new Sv:e})).startsWith(`0x1626ba7e`))return!0;throw new Sv}var Sv=class extends Error{};On(),Wa();function Cv(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?Em(Ua([`watchBlockNumber`,e.uid,t,n,o]),{onBlockNumber:r,onError:i},r=>Om(async()=>{try{let t=await T(e,Pm,`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})):Em(Ua([`watchBlockNumber`,e.uid,t,n]),{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=Tn(e.result?.number);t.onBlockNumber(r,c),c=r},onError(e){t.onError?.(e)}});r=i,n||r()}catch(e){i?.(e)}})(),()=>r()})}_o(),Wp(),Wa();async function wv(e,t){let{checkReplacement:n=!0,confirmations:r=1,hash:i,onReplaced:a,retryCount:o=6,retryDelay:s=({count:e})=>~~(1<{g?.(),h?.(),y(new go({hash:i}))},c):void 0;return h=Em(l,{onReplaced:a,resolve:v,reject:y},async t=>{if(p=await T(e,ev,`getTransactionReceipt`)({hash:i}).catch(()=>void 0),p&&r<=1){clearTimeout(b),t.resolve(p),h?.();return}g=T(e,Cv,`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 Um(async()=>{d=await T(e,$_,`getTransaction`)({hash:i}),d.blockNumber&&(l=d.blockNumber)},{delay:s,retryCount:o}),m=!1),p=await T(e,ev,`getTransactionReceipt`)({hash:i}),r>1&&(!p.blockNumber||l-p.blockNumber+1nt.resolve(p))}catch(n){if(n instanceof po||n instanceof mo){if(!d){m=!1;return}try{f=d,m=!0;let n=await Um(()=>T(e,fd,`getBlock`)({blockNumber:l,includeTransactions:!0}),{delay:s,retryCount:o,shouldRetry:({error:e})=>e instanceof ad});m=!1;let i=n.transactions.find(({from:e,nonce:t})=>e===f.from&&t===f.nonce);if(!i||(p=await T(e,ev,`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))}}})}),_}_o();async function Tv(e,{serializedTransaction:t,throwOnReceiptRevert:n,timeout:r}){let i=await e.request({method:`eth_sendRawTransactionSync`,params:r?[t,r]:[t]},{retryCount:0}),a=(e.chain?.formatters?.transactionReceipt?.format||Gm)(i);if(a.status===`reverted`&&n)throw new ho({receipt:a});return a}k();async function Ev(e,{chain:t}){let{id:n,name:r,nativeCurrency:i,rpcUrls:a,blockExplorers:o}=t;await e.request({method:`wallet_addEthereumChain`,params:[{chainId:O(n),chainName:r,nativeCurrency:i,rpcUrls:a.default.http,blockExplorerUrls:o?Object.values(o).map(({url:e})=>e):void 0}]},{dedupe:!0,retryCount:0})}Rp();function Dv(e,t){let{abi:n,args:r,bytecode:i,...a}=t,o=Ip({abi:n,args:r,bytecode:i});return Bm(e,{...a,...a.authorizationList?{to:null}:{},data:o})}Si();async function Ov(e){return e.account?.type===`local`?[e.account.address]:(await e.request({method:`eth_accounts`},{dedupe:!0})).map(e=>yi(e))}oa(),k();async function kv(e,t={}){let{account:n=e.account,chainId:r}=t,i=n?aa(n):void 0,a=r?[i?.address,[O(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 Av(e){return await e.request({method:`wallet_getPermissions`},{dedupe:!0})}oa(),Hd();async function jv(e,t){let{account:n=e.account,chainId:r,nonce:i}=t;if(!n)throw new Fm({docsPath:`/docs/eip7702/prepareAuthorization`});let a=aa(n),o=(()=>{if(t.executor)return t.executor===`self`?t.executor:aa(t.executor)})(),s={address:t.contractAddress??t.address,chainId:r,nonce:i};return s.chainId===void 0&&(s.chainId=e.chain?.id??await T(e,Fd,`getChainId`)({})),s.nonce===void 0&&(s.nonce=await T(e,gd,`getTransactionCount`)({address:a.address,blockTag:`pending`}),(o===`self`||o?.address&&Vd(o.address,a.address))&&(s.nonce+=1)),s}Si();async function Mv(e){return(await e.request({method:`eth_requestAccounts`},{dedupe:!0,retryCount:0})).map(e=>bi(e))}async function Nv(e,t){return e.request({method:`wallet_requestPermissions`,params:[t]},{retryCount:0})}async function Pv(e,t){let{chain:n=e.chain}=t,r=t.timeout??Math.max((n?.blockTime??0)*3,5e3),i=await T(e,Ym,`sendCalls`)(t);return await T(e,Zm,`waitForCallsStatus`)({...t,id:i.id,timeout:r})}oa(),D(),_o(),Ai(),zu(),Ku(),vi(),td();var Fv=new _i(128);async function Iv(e,t){let{account:n=e.account,assertChainId:r=!0,chain:i=e.chain,accessList:a,authorizationList:o,blobs:s,data:c,dataSuffix:l=typeof e.dataSuffix==`string`?e.dataSuffix:e.dataSuffix?.value,gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,pollingInterval:g,throwOnReceiptRevert:_,type:v,value:y,...b}=t,x=t.timeout??Math.max((i?.blockTime??0)*3,5e3);if(n===void 0)throw new Fm({docsPath:`/docs/actions/wallet/sendTransactionSync`});let S=n?aa(n):null;try{ed(t);let n=await(async()=>{if(t.to)return t.to;if(t.to!==null&&o&&o.length>0)return await bu({authorization:o[0]}).catch(()=>{throw new E("`to` is required. Could not infer from `authorizationList`.")})})();if(S?.type===`json-rpc`||S===null){let t;i!==null&&(t=await T(e,Fd,`getChainId`)({}),r&&Lm({currentChainId:t,chain:i}));let ee=e.chain?.formatters?.transactionRequest?.format,C=(ee||Hu)({...Ru(b,{format:ee}),accessList:a,account:S,authorizationList:o,blobs:s,chainId:t,data:c&&Di([c,l??`0x`]),gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,to:n,type:v,value:y},`sendTransaction`),te=Fv.get(e.uid),ne=te?`wallet_sendTransaction`:`eth_sendTransaction`,re=await(async()=>{try{return await e.request({method:ne,params:[C]},{retryCount:0})}catch(t){if(te===!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:[C]},{retryCount:0}).then(t=>(Fv.set(e.uid,!0),t)).catch(t=>{let r=t;throw r.name===`MethodNotFoundRpcError`||r.name===`MethodNotSupportedRpcError`?(Fv.set(e.uid,!1),n):r});throw n}})(),ie=await T(e,wv,`waitForTransactionReceipt`)({checkReplacement:!1,hash:re,pollingInterval:g,timeout:x});if(_&&ie.status===`reverted`)throw new ho({receipt:ie});return ie}if(S?.type===`local`){let r=await T(e,zd,`prepareTransactionRequest`)({account:S,accessList:a,authorizationList:o,blobs:s,chain:i,data:c&&Di([c,l??`0x`]),gas:u,gasPrice:d,maxFeePerBlobGas:f,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,nonceManager:S.nonceManager,parameters:[...Ld,`sidecars`],type:v,value:y,...b,to:n}),g=i?.serializers?.transaction,x=await S.signTransaction(r,{serializer:g});return await T(e,Tv,`sendRawTransactionSync`)({serializedTransaction:x,throwOnReceiptRevert:_,timeout:t.timeout})}throw S?.type===`smart`?new Im({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:`/docs/actions/bundler/sendUserOperation`,type:`smart`}):new Im({docsPath:`/docs/actions/wallet/sendTransactionSync`,type:S?.type})}catch(e){throw e instanceof Im?e:Pd(e,{...t,account:S,chain:t.chain||void 0})}}async function Lv(e,t){let{id:n}=t;await e.request({method:`wallet_showCallsStatus`,params:[n]})}oa();async function Rv(e,t){let{account:n=e.account}=t;if(!n)throw new Fm({docsPath:`/docs/eip7702/signAuthorization`});let r=aa(n);if(!r.signAuthorization)throw new Im({docsPath:`/docs/eip7702/signAuthorization`,metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:r.type});let i=await jv(e,t);return r.signAuthorization(i)}oa(),k();async function zv(e,{account:t=e.account,message:n}){if(!t)throw new Fm({docsPath:`/docs/actions/wallet/signMessage`});let r=aa(t);if(r.signMessage)return r.signMessage({message:n});let i=typeof n==`string`?Mn(n):n.raw instanceof Uint8Array?kn(n.raw):n.raw;return e.request({method:`personal_sign`,params:[i,r.address]},{retryCount:0})}oa(),k(),Ku(),td();async function Bv(e,t){let{account:n=e.account,chain:r=e.chain,...i}=t;if(!n)throw new Fm({docsPath:`/docs/actions/wallet/signTransaction`});let a=aa(n);ed({account:a,...t});let o=await T(e,Fd,`getChainId`)({});r!==null&&Lm({currentChainId:o,chain:r});let s=(r?.formatters||e.chain?.formatters)?.transactionRequest?.format||Hu;return a.signTransaction?a.signTransaction({...i,chainId:o},{serializer:e.chain?.serializers?.transaction}):await e.request({method:`eth_signTransaction`,params:[{...s({...i,account:a},`signTransaction`),chainId:O(o),from:a.address}]},{retryCount:0})}oa();async function Vv(e,t){let{account:n=e.account,domain:r,message:i,primaryType:a}=t;if(!n)throw new Fm({docsPath:`/docs/actions/wallet/signTypedData`});let o=aa(n),s={EIP712Domain:Vh({domain:r}),...t.types};if(Bh({domain:r,message:i,primaryType:a,types:s}),o.signTypedData)return o.signTypedData({domain:r,message:i,primaryType:a,types:s});let c=zh({domain:r,message:i,primaryType:a,types:s});return e.request({method:`eth_signTypedData_v4`,params:[o.address,c]},{retryCount:0})}k();async function Hv(e,{id:t}){await e.request({method:`wallet_switchEthereumChain`,params:[{chainId:O(t)}]},{retryCount:0})}async function Uv(e,t){return await e.request({method:`wallet_watchAsset`,params:t},{retryCount:0})}async function Wv(e,t){return Vm.internal(e,Iv,`sendTransactionSync`,t)}function Gv(e){return{addChain:t=>Ev(e,t),deployContract:t=>Dv(e,t),fillTransaction:t=>Id(e,t),getAddresses:()=>Ov(e),getCallsStatus:t=>Xm(e,t),getCapabilities:t=>kv(e,t),getChainId:()=>Fd(e),getPermissions:()=>Av(e),prepareAuthorization:t=>jv(e,t),prepareTransactionRequest:t=>zd(e,t),requestAddresses:()=>Mv(e),requestPermissions:t=>Nv(e,t),sendCalls:t=>Ym(e,t),sendCallsSync:t=>Pv(e,t),sendRawTransaction:t=>Rm(e,t),sendRawTransactionSync:t=>Tv(e,t),sendTransaction:t=>Bm(e,t),sendTransactionSync:t=>Iv(e,t),showCallsStatus:t=>Lv(e,t),signAuthorization:t=>Rv(e,t),signMessage:t=>zv(e,t),signTransaction:t=>Bv(e,t),signTypedData:t=>Vv(e,t),switchChain:t=>Hv(e,t),waitForCallsStatus:t=>Zm(e,t),watchAsset:t=>Uv(e,t),writeContract:t=>Vm(e,t),writeContractSync:t=>Wv(e,t)}}function Kv(e){let{key:t=`wallet`,name:n=`Wallet Client`,transport:r}=e;return rh({...e,key:t,name:n,transport:r,type:`walletClient`}).extend(Gv)}function qv({key:e,methods:t,name:n,request:r,retryCount:i=3,retryDelay:a=150,timeout:o,type:s},c){let l=nh();return{config:{key:e,methods:t,name:n,request:r,retryCount:i,retryDelay:a,timeout:o,type:s},request:Th(r,{methods:t,retryCount:i,retryDelay:a,uid:l}),value:c}}function Jv(e,t={}){let{key:n=`custom`,methods:r,name:i=`Custom Provider`,retryDelay:a}=t;return({retryCount:o})=>qv({key:n,methods:r,name:i,request:e.request.bind(e),retryCount:t.retryCount??o,retryDelay:a,type:`custom`})}Pu(),ss();function Yv(e,t={}){let{key:n=`fallback`,name:r=`Fallback`,rank:i=!1,shouldThrow:a=Xv,retryCount:o,retryDelay:s}=t;return(({chain:t,pollingInterval:c=4e3,timeout:l,...u})=>{let d=e,f=()=>{},p=qv({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:{};Zv({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 Xv(e){return!!(`code`in e&&typeof e.code==`number`&&(e.code===Ho.code||e.code===Ko.code||e.code===as.code||Su.nodeMessage.test(e.message)||e.code===5e3))}function Zv({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))));n(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]).map(([,e])=>o[e])),await Dm(t),d()};d()}D();var Qv=class extends E{constructor(){super(`No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.`,{docsPath:`/docs/clients/intro`,name:`UrlRequiredError`})}};Ao(),qp();function $v(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 Qv;let b=jh(y,{fetchFn:r,fetchOptions:i,onRequest:c,onResponse:l,timeout:v});return qv({key:a,methods:o,name:s,async request({method:e,params:t}){let r={method:e,params:t},{schedule:i}=Gp({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 Oo({body:r,error:a,url:y});return o},retryCount:_,retryDelay:u,timeout:v,type:`http`},{fetchOptions:i,url:y})}}var ey=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}),ty=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}),ny=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}),ry=L({id:16602,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}),iy=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}),ay=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});$u();var oy=50000n,sy=Zu*32n;On(),Un(),k(),Ku();var cy={block:dd({format(e){let t=e.transactions?.map(e=>{if(typeof e==`string`)return e;let t=cy.transaction?.format(e);return t.typeHex===`0x71`?t.type=`eip712`:t.typeHex===`0xff`&&(t.type=`priority`),t});return{l1BatchNumber:e.l1BatchNumber?Tn(e.l1BatchNumber):null,l1BatchTimestamp:e.l1BatchTimestamp?Tn(e.l1BatchTimestamp):null,transactions:t}}}),transaction:cd({format(e){let t={};return e.type===`0x71`?t.type=`eip712`:e.type===`0xff`&&(t.type=`priority`),{...t,l1BatchNumber:e.l1BatchNumber?Tn(e.l1BatchNumber):null,l1BatchTxIndex:e.l1BatchTxIndex?Tn(e.l1BatchTxIndex):null}}}),transactionReceipt:Km({format(e){return{l1BatchNumber:e.l1BatchNumber?Tn(e.l1BatchNumber):null,l1BatchTxIndex:e.l1BatchTxIndex?Tn(e.l1BatchTxIndex):null,logs:e.logs.map(e=>({...Ud(e),l1BatchNumber:e.l1BatchNumber?Tn(e.l1BatchNumber):null,transactionLogIndex:Dn(e.transactionLogIndex),logType:e.logType})),l2ToL1Logs:e.l2ToL1Logs.map(e=>({blockNumber:Tn(e.blockHash),blockHash:e.blockHash,l1BatchNumber:e.l1BatchNumber?Tn(e.l1BatchNumber):null,transactionIndex:Tn(e.transactionIndex),shardId:Tn(e.shardId),isService:e.isService,sender:e.sender,key:e.key,value:e.value,transactionHash:e.transactionHash,logIndex:Tn(e.logIndex)}))}}}),transactionRequest:Gu({exclude:[`customSignature`,`factoryDeps`,`gasPerPubdata`,`paymaster`,`paymasterInput`],format(e){return e.gasPerPubdata||e.paymaster&&e.paymasterInput||e.factoryDeps||e.customSignature?{eip712Meta:{...e.gasPerPubdata?{gasPerPubdata:kn(e.gasPerPubdata)}:{gasPerPubdata:kn(oy)},...e.paymaster&&e.paymasterInput?{paymasterParams:{paymaster:e.paymaster,paymasterInput:Array.from(Rn(e.paymasterInput))}}:{},...e.factoryDeps?{factoryDeps:e.factoryDeps.map(e=>Array.from(Rn(e)))}:{},...e.customSignature?{customSignature:Array.from(Rn(e.customSignature))}:{}},type:`0x71`}:{}}})};D();var ly=class extends E{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 uy(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)}gi(),D(),Fp(),Ei();function dy(e){let{chainId:t,to:n,from:r,paymaster:i,paymasterInput:a}=e;if(!uy(e))throw new ly;if(!t||t<=0)throw new Pp({chainId:t});if(n&&!Ci(n))throw new hi({address:n});if(r&&!Ci(r))throw new hi({address:r});if(i&&!Ci(i))throw new hi({address:i});if(i&&!a)throw new E("`paymasterInput` must be provided when `paymaster` is defined");if(!i&&a)throw new E("`paymaster` must be provided when `paymasterInput` is defined")}Ai(),k();function fy(e,t){return uy(e)?my(e):mh(e,t)}var py={transaction:fy};function my(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;return dy(e),ki([`0x71`,mu([r?kn(r):`0x`,c?kn(c):`0x`,s?kn(s):`0x`,n?kn(n):`0x`,i??`0x`,o?kn(o):`0x`,m??`0x`,kn(t),kn(``),kn(``),kn(t),a??`0x`,kn(p||oy),u??[],l??`0x`,d&&f?[d,f]:[]])])}D();var hy=class extends E{constructor({givenLength:e,maxBytecodeSize:t}){super(`Bytecode cannot be longer than ${t} bytes. Given length: ${e}`,{name:`BytecodeLengthExceedsMaxSizeError`})}},gy=class extends E{constructor({givenLengthInWords:e}){super(`Bytecode length in 32-byte words must be odd. Given length in words: ${e}`,{name:`BytecodeLengthInWordsMustBeOddError`})}},_y=class extends E{constructor({givenLength:e}){super(`The bytecode length in bytes must be divisible by 32. Given length: ${e}`,{name:`BytecodeLengthMustBeDivisibleBy32Error`})}};gn(),Un();function vy(e){let t=Fn(e);if(t.length%32!=0)throw new _y({givenLength:t.length});if(t.length>sy)throw new hy({givenLength:t.length,maxBytecodeSize:sy});let n=Fn(bd(t)),r=t.length/32;if(r%2==0)throw new gy({givenLengthInWords:r});let i=pn(Fn(r),{size:2}),a=new Uint8Array([1,0]);return n.set(a,0),n.set(i,2),n}k();var yy=e=>{dy(e);let t=by(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 by(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=>kn(vy(e)))??[],paymasterInput:u||`0x`}}var xy={blockTime:1e3,formatters:cy,serializers:py,custom:{getEip712Domain:yy}},Sy=L({...xy,blockTime:200,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({...xy,blockTime:200,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}}}),wy=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}),Ty=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}),Ey=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}),Dy=L({id:36900,name:`ADI_Chain`,nativeCurrency:{decimals:18,name:`ADI`,symbol:`ADI`},rpcUrls:{default:{http:[`https://rpc.adifoundation.ai`]}},blockExplorers:{default:{name:`ADI Explorer`,url:`https://explorer.adifoundation.ai`}},testnet:!1}),Oy=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}),ky=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}),Ay=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}}}),jy=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}),My=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}),Ny=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}),Py=L({id:8150,name:`Alpen Testnet`,nativeCurrency:{name:`Signet BTC`,symbol:`sBTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.alpenlabs.io`]}},blockExplorers:{default:{name:`Alpen Explorer`,url:`https://explorer.testnet.alpenlabs.io`,apiUrl:`https://explorer.testnet.alpenlabs.io/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:290408}},testnet:!0}),Fy={gasPriceOracle:{address:`0x420000000000000000000000000000000000000F`},l1Block:{address:`0x4200000000000000000000000000000000000015`},l2CrossDomainMessenger:{address:`0x4200000000000000000000000000000000000007`},l2Erc721Bridge:{address:`0x4200000000000000000000000000000000000014`},l2StandardBridge:{address:`0x4200000000000000000000000000000000000010`},l2ToL1MessagePasser:{address:`0x4200000000000000000000000000000000000016`}};On();var Iy={block:dd({format(e){return{transactions:e.transactions?.map(e=>{if(typeof e==`string`)return e;let t=sd(e);return t.typeHex===`0x7e`&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Tn(e.mint):void 0,t.sourceHash=e.sourceHash,t.type=`deposit`),t}),stateRoot:e.stateRoot}}}),transaction:cd({format(e){let t={};return e.type===`0x7e`&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Tn(e.mint):void 0,t.sourceHash=e.sourceHash,t.type=`deposit`),t}}),transactionReceipt:Km({format(e){return{l1GasPrice:e.l1GasPrice?Tn(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Tn(e.l1GasUsed):null,l1Fee:e.l1Fee?Tn(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};gi(),Ei(),Ai(),k();function Ly(e,t){return By(e)?zy(e):mh(e,t)}var Ry={transaction:Ly};function zy(e){Vy(e);let{sourceHash:t,data:n,from:r,gas:i,isSystemTx:a,mint:o,to:s,value:c}=e;return ki([`0x7e`,mu([t,r,s??`0x`,o?kn(o):`0x`,c?kn(c):`0x`,i?kn(i):`0x`,a?`0x1`:`0x`,n??`0x`])])}function By(e){return e.type===`deposit`||e.sourceHash!==void 0}function Vy(e){let{from:t,to:n}=e;if(t&&!Ci(t))throw new hi({address:t});if(n&&!Ci(n))throw new hi({address:n})}var R={blockTime:2e3,contracts:Fy,formatters:Iy,serializers:Ry},Hy=1,Uy=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:{[Hy]:{address:`0xB09DC08428C8b4EFB4ff9C0827386CDF34277996`}},portal:{[Hy]:{address:`0x639F2AECE398Aa76b07e59eF6abe2cFe32bacb68`,blockCreated:19070571}},l1StandardBridge:{[Hy]:{address:`0xd5e3eDf5b68135D559D572E26bF863FBC1950033`,blockCreated:19070571}}},sourceId:Hy}),Wy=11155111,Gy=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:{[Wy]:{address:`0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB`}},portal:{[Wy]:{address:`0xfa1d9E26A6aCD7b22115D27572c1221B9803c960`,blockCreated:4972908}},l1StandardBridge:{[Wy]:{address:`0xF6Bc0146d3c74D48306e79Ae134A260E418C9335`,blockCreated:4972908}}},sourceId:Wy}),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`]}}}),qy=L({id:33139,name:`ApeChain`,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}),Yy=L({id:62606,name:`Apollo`,nativeCurrency:{decimals:18,name:`Apollo`,symbol:`APOLLO`},rpcUrls:{default:{http:[`https://mainnet-rpc.apolloscan.io`]}},blockExplorers:{default:{name:`Apollo Explorer`,url:`https://apolloscan.io`}}}),Xy=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}}}),Zy=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}),Qy=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}}}),$y=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}),eb=L({id:5042002,name:`Arc Testnet`,nativeCurrency:{name:`USDC`,symbol:`USDC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.arc.network`,`https://rpc.quicknode.testnet.arc.network`,`https://rpc.blockdaemon.testnet.arc.network`],webSocket:[`wss://rpc.testnet.arc.network`,`wss://rpc.quicknode.testnet.arc.network`]}},blockExplorers:{default:{name:`ArcScan`,url:`https://testnet.arcscan.app`,apiUrl:`https://testnet.arcscan.app/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},testnet:!0}),tb=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`}}}),nb=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}),rb=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}),ib=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}),ab=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}),ob=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}}}),sb=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}}}),cb=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:{}}),lb=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}}}),ub=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}),db=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}),fb=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}),pb=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}),mb=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}}}),hb=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}),gb=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}),_b=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/`}}}),vb=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}}}),yb=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}),bb=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}),xb=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}),Sb=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`}}}),Cb=1,wb=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:{[Cb]:{address:`0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e`}},l2OutputOracle:{[Cb]:{address:`0x56315b90c40730925ec5485cf004d835058518A0`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:5022},portal:{[Cb]:{address:`0x49048044D57e1C92A77f79988d21Fa8fAF74E97e`,blockCreated:17482143}},l1StandardBridge:{[Cb]:{address:`0x3154Cf16ccdb4C6d922629664174b904d80F2C35`,blockCreated:17482143}}},sourceId:Cb}),Tb=L({...wb,experimental_preconfirmationTime:200,rpcUrls:{default:{http:[`https://mainnet-preconf.base.org`]}}}),Eb=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}),Db=5,Ob=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:{[Db]:{address:`0x2A35891ff30313CcFa6CE88dcf3858bb075A2298`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1376988},portal:{[Db]:{address:`0xe93c8cD0D409341205A592f8c4Ac1A5fe5585cfA`}},l1StandardBridge:{[Db]:{address:`0xfA6D8Ee5BE770F84FC001D098C4bD604Fe01284a`}}},testnet:!0,sourceId:Db}),kb=11155111,Ab=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:{[kb]:{address:`0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1`}},l2OutputOracle:{[kb]:{address:`0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254`}},portal:{[kb]:{address:`0x49f53e41452c74589e85ca1677426ba426459e85`,blockCreated:4446677}},l1StandardBridge:{[kb]:{address:`0xfd0Bf71F60660E2f608ed56e1659C450eB113120`,blockCreated:4446677}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1059647}},testnet:!0,sourceId:kb}),jb=L({...Ab,experimental_preconfirmationTime:200,rpcUrls:{default:{http:[`https://sepolia-preconf.base.org`]}}}),Mb=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}}}),Nb=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}),Pb=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`}}}),Fb=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}),Ib=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}),Lb=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}),Rb=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}),zb=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}),Bb=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`}}}),Vb=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}),Hb=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`}}}),Ub=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}),Wb=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`}}}),Gb=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}),Kb=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}}}),qb=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}),Jb=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}),Yb=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}}}),Xb=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}),Zb=1,Qb=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:{[Zb]:{address:`0x826D1B0D4111Ad9146Eb8941D7Ca2B6a44215c76`,blockCreated:19300358}},portal:{[Zb]:{address:`0x0Ec68c5B10F21EFFb74f2A5C61DFe6b08C0Db6Cb`,blockCreated:19300357}},l1StandardBridge:{[Zb]:{address:`0x697402166Fbf2F22E970df8a6486Ef171dbfc524`,blockCreated:19300360}}},sourceId:Zb}),$b=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}),ex=1,tx=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:{[ex]:{address:`0xdDa53E23f8a32640b04D7256e651C1db98dB11C1`,blockCreated:4462615}},portal:{[ex]:{address:`0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E`,blockCreated:4462615}}},sourceId:ex}),nx=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}}}),rx=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}),ix=11155111,ax=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:{[ix]:{address:`0x14D0069452b4AE2b250B395b8adAb771E4267d2f`,blockCreated:4462615}},portal:{[ix]:{address:`0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4`,blockCreated:4462615}}},testnet:!0,sourceId:ix}),ox=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}),sx=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`}}}),cx=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}),lx=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}),ux=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}),dx=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`}}}),fx=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}),px=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}}}),mx=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}),hx=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}),gx=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`}}}),_x=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}),vx=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`}}}),yx=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}),bx=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`}}}),xx=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}),Sx=L({id:13370,name:`Cannon`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),Cx=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}}}),wx={estimateFeesPerGas:async e=>{if(!e.request?.feeCurrency)return null;let[t,n]=await Promise.all([Tx(e.client,e.request.feeCurrency),Ex(e.client,e.request.feeCurrency)]);return{maxFeePerGas:e.multiply(t-n)+n,maxPriorityFeePerGas:n}}};async function Tx(e,t){let n=await e.request({method:`eth_gasPrice`,params:[t]});return BigInt(n)}async function Ex(e,t){let n=await e.request({method:`eth_maxPriorityFeePerGas`,params:[t]});return BigInt(n)}Cn();function Dx(e){return e===0||e===0n||e==null||e===`0`||e===``||typeof e==`string`&&(Sn(e).toLowerCase()===`0x`||Sn(e).toLowerCase()===`0x00`)}function Ox(e){return!Dx(e)}function kx(e){return e.maxFeePerGas!==void 0&&e.maxPriorityFeePerGas!==void 0}function Ax(e){return e.type===`cip64`?!0:kx(e)&&Ox(e.feeCurrency)}On(),Ku();var jx={block:dd({format(e){return{transactions:e.transactions?.map(e=>typeof e==`string`?e:{...sd(e),...e.gatewayFee?{gatewayFee:Tn(e.gatewayFee),gatewayFeeRecipient:e.gatewayFeeRecipient}:{},feeCurrency:e.feeCurrency})}}}),transaction:cd({format(e){if(e.type===`0x7e`)return{isSystemTx:e.isSystemTx,mint:e.mint?Tn(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?Tn(e.gatewayFee):null,t.gatewayFeeRecipient=e.gatewayFeeRecipient),t}}),transactionRequest:Gu({format(e){let t={};return e.feeCurrency&&(t.feeCurrency=e.feeCurrency),Ax(e)&&(t.type=`0x7b`),t}})};$u(),gi(),D(),Fp(),Pu(),Ei(),Ai(),k();function Mx(e,t){return Ax(e)?Px(e,t):Ly(e,t)}var Nx={transaction:Mx};function Px(e,t){Ix(e);let{chainId:n,gas:r,nonce:i,to:a,value:o,maxFeePerGas:s,maxPriorityFeePerGas:c,accessList:l,feeCurrency:u,data:d}=e;return ki([`0x7b`,mu([kn(n),i?kn(i):`0x`,c?kn(c):`0x`,s?kn(s):`0x`,r?kn(r):`0x`,a??`0x`,o?kn(o):`0x`,d??`0x`,ph(l),u,...bh(e,t)])])}var Fx=Qu;function Ix(e){let{chainId:t,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:i,to:a,feeCurrency:o}=e;if(t<=0)throw new Pp({chainId:t});if(a&&!Ci(a))throw new hi({address:a});if(r)throw new E("`gasPrice` is not a valid CIP-64 Transaction attribute.");if(Ox(i)&&i>Fx)throw new Cu({maxFeePerGas:i});if(Ox(n)&&Ox(i)&&n>i)throw new Mu({maxFeePerGas:i,maxPriorityFeePerGas:n});if(Ox(o)&&!Ci(o))throw new E("`feeCurrency` MUST be a token address for CIP-64 transactions.");if(Dx(o))throw new E("`feeCurrency` must be provided for CIP-64 transactions.")}var Lx={blockTime:1e3,contracts:Fy,formatters:jx,serializers:Nx,fees:wx},Rx=L({...Lx,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}),zx=17e3,Bx=L({...Lx,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:{...Lx.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:14569001},portal:{[zx]:{address:`0x82527353927d8D069b3B452904c942dA149BA381`,blockCreated:2411324}},disputeGameFactory:{[zx]:{address:`0xE28AAdcd9883746c0e5068F58f9ea06027b214cb`,blockCreated:2411324}},l2OutputOracle:{[zx]:{address:`0x4a2635e9e4f6e45817b1D402ac4904c1d1752438`,blockCreated:2411324}},l1StandardBridge:{[zx]:{address:`0xD1B0E0581973c9eB7f886967A606b9441A897037`,blockCreated:2411324}}},testnet:!0}),Vx=11155111,Hx=L({...Lx,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:{...Lx.contracts,multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1},portal:{[Vx]:{address:`0x44ae3d41a335a7d05eb533029917aad35662dcc2`,blockCreated:8825790}},disputeGameFactory:{[Vx]:{address:`0x57c45d82d1a995f1e135b8d7edc0a6bb5211cfaa`,blockCreated:8825790}},l1StandardBridge:{[Vx]:{address:`0xec18a3c30131a0db4246e785355fbc16e2eaf408`,blockCreated:8825790}}},testnet:!0}),Ux=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`}}}),Wx=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}}}),Gx=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`]}}}),Kx=L({id:4114,name:`Citrea Mainnet`,nativeCurrency:{name:`Citrea Bitcoin`,symbol:`cBTC`,decimals:18},rpcUrls:{default:{http:[`https://rpc.mainnet.citrea.xyz`]}},blockExplorers:{default:{name:`Citrea Explorer`,url:`https://explorer.mainnet.citrea.xyz`,apiUrl:`https://explorer.mainnet.citrea.xyz/api`}},testnet:!1}),qx=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}),Jx=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`}}}),Yx=1,Xx=L({...R,id:81224,name:`Codex`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.codex.xyz`]}},blockExplorers:{default:{name:`Codex Explorer`,url:`https://explorer.codex.xyz`,apiUrl:`https://explorer.codex.xyz/api`}},contracts:{...R.contracts,disputeGameFactory:{[Yx]:{address:`0x6A3855dc26e2beA8Ac73f82Cda79f3808B6C6F6C`}},portal:{[Yx]:{address:`0x52759C07A759c81BAab28AE1BE5A19e6450959bD`}},l1StandardBridge:{[Yx]:{address:`0xa6b1A05a592719B0C8a70c69eac114C48410aDE4`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}},sourceId:Yx}),Zx=11155111,Qx=L({...R,id:812242,name:`Codex Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.codex-stg.xyz`]}},blockExplorers:{default:{name:`Codex Testnet Explorer`,url:`https://explorer.codex-stg.xyz`,apiUrl:`https://explorer.codex-stg.xyz/api`}},contracts:{...R.contracts,disputeGameFactory:{[Zx]:{address:`0x390e24E8324E56f13A8d48eB938b6f9De24CD205`}},portal:{[Zx]:{address:`0x037F161D12c829A9ca4742eEd9371830CA54fcB2`}},l1StandardBridge:{[Zx]:{address:`0xCf4df2bDB14C8FDB25FdacCEC10Ce5C4bAEDB3De`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}},sourceId:Zx}),$x=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}),eS=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}),tS=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}}}),nS=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}}}),rS=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}),iS=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}),aS=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}),oS=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}),sS=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}),cS=L({id:86608,name:`CpChain`,nativeCurrency:{decimals:18,name:`CpChain`,symbol:`CP`},rpcUrls:{default:{http:[`https://rpc.cpchain.com`]}},blockExplorers:{default:{name:`CpChain Explorer`,url:`https://explorer.cpchain.com`}},testnet:!1}),lS=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}}}),uS=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}),dS=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}),fS=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}),pS=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}),mS=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}}}),hS=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}),gS=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}}}),_S=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}),vS=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}}}),yS=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}),bS=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}),xS=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}}}),SS=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}),CS=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}),wS=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}),TS=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}}}),ES=L({id:55931,name:`Datahaven Testnet`,nativeCurrency:{decimals:18,name:`MOCK`,symbol:`MOCK`},rpcUrls:{default:{http:[`https://services.datahaven-testnet.network/testnet`],webSocket:[`wss://services.datahaven-testnet.network/testnet`]}},blockExplorers:{default:{name:`DhScan`,url:`https://testnet.dhscan.io/`,apiUrl:`https://testnet.dhscan.io/api-docs`}},contracts:{},testnet:!0}),DS=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}),OS=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}}),kS=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}}),AS=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}}}),jS=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}),MS=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`}}}),NS=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}}}),PS=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}),FS=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`}}}),IS=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}),LS=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}}}),RS=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}),zS=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}}}),BS=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}}}),VS=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}),HS=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`}}}),US=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}),WS=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}),GS=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}),KS=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`}}}),qS=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}),JS=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`}}}),YS=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`}}}),XS=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}}}),ZS=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`}}}),QS=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}),$S=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}),eC=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}),tC=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}),nC=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}),rC=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}),iC=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}),aC=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}),oC=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}),sC=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}),cC=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}),lC=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:{}}),uC=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}}}),dC=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}),fC=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`}}}),pC=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}}}),mC=L({id:127823,name:`Etherlink Shadownet Testnet`,nativeCurrency:{decimals:18,name:`tez`,symbol:`XTZ`},rpcUrls:{default:{http:[`https://node.shadownet.etherlink.com`]}},blockExplorers:{default:{name:`Etherlink Shadownet Testnet Explorer`,url:`https://shadownet.explorer.etherlink.com`}},testnet:!0}),hC=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}),gC=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}),_C=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`}}}),vC=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`}}}),yC=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/`}}}),bC=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`}}}),xC=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}),SC=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`}}}),CC=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`}}}),wC=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}}}),TC=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}),EC=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}),DC=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`}}}),OC=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}}}),kC=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}),jC=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}}}),MC=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}}}),NC=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}),PC=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}),FC=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}}}),IC=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}),LC=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}}}),RC=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}),zC=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}),BC=L({id:20993,name:`Fluent Devnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.devnet.fluent.xyz`]}},blockExplorers:{default:{name:`Fluent Devnet Explorer`,url:`https://devnet.fluentscan.xyz`}},testnet:!0}),VC=L({id:20994,name:`Fluent Testnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.fluent.xyz`]}},blockExplorers:{default:{name:`Fluent Testnet Explorer`,url:`https://testnet.fluentscan.xyz`}},testnet:!0}),HC=1,UC=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:{[HC]:{address:`0x15c249E46A2F924C2dB3A1560CF86729bAD1f07B`}},l1CrossDomainMessenger:{[HC]:{address:`0xF333158DCCad1dF6C3F0a3aEe8BC31fA94d9eD5c`}},l2OutputOracle:{[HC]:{address:`0x4ccAAF69F41c5810cA875183648B577CaCf1F67E`}},portal:{[HC]:{address:`0x4E259Ee5F4136408908160dD32295A5031Fa426F`}},l1StandardBridge:{[HC]:{address:`0xdc20aA63D3DE59574E065957190D8f24e0F7B8Ba`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},sourceId:HC}),WC=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}}}),GC=11155111,KC=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:{[GC]:{address:`0xd5C38fa934f7fd7477D4800F4f38a1c5BFdF1373`}},l1CrossDomainMessenger:{[GC]:{address:`0x37A68565c4BE9700b3E3Ec60cC4416cAC3052FAa`}},l2OutputOracle:{[GC]:{address:`0x9eA2239E65a59EC9C7F1ED4C116dD58Da71Fc1e2`}},portal:{[GC]:{address:`0x60377e3cE15dF4CCA24c4beF076b60314240b032`}},l1StandardBridge:{[GC]:{address:`0xD4531f633942b2725896F47cD2aFd260b44Ab1F7`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},testnet:!0,sourceId:GC}),qC=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`}}}),JC=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`]}}}),YC=1,XC=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:{[YC]:{address:`0x66CC916Ed5C6C2FA97014f7D1cD141528Ae171e4`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[YC]:{address:`0x36cb65c1967A0Fb0EEE11569C51C2f2aA1Ca6f6D`,blockCreated:19135323}},l1StandardBridge:{[YC]:{address:`0x34C0bD5877A5Ee7099D0f5688D65F4bB9158BDE2`,blockCreated:19135323}}},sourceId:YC}),ZC=17e3,QC=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:{[ZC]:{address:`0x715EA64DA13F4d0831ece4Ad3E8c1aa013167F32`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[ZC]:{address:`0xB9c64BfA498d5b9a8398Ed6f46eb76d90dE5505d`,blockCreated:318416}},l1StandardBridge:{[ZC]:{address:`0x0BaafC217162f64930909aD9f2B27125121d6332`,blockCreated:318416}}},sourceId:ZC}),$C=1,ew=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:$C}),tw=11155111,nw=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:tw}),rw=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}}}),iw=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`}}}),aw=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}),ow=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}),sw=17e3,cw=L({...R,name:`Garnet Testnet`,testnet:!0,id:17069,sourceId:sw,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:{[sw]:{address:`0x57ee40586fbE286AfC75E67cb69511A6D9aF5909`,blockCreated:1274684}},l2OutputOracle:{[sw]:{address:`0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B`,blockCreated:1274684}},l1StandardBridge:{[sw]:{address:`0x09bcDd311FE398F80a78BE37E489f5D440DB95DE`,blockCreated:1274684}}}}),lw=L({id:86,name:`GateChain Mainnet`,nativeCurrency:{name:`GateChainToken`,symbol:`GT`,decimals:18},rpcUrls:{default:{http:[`https://evm.nodeinfo.cc`],webSocket:[`wss://evm-ws.gatenode.cc`]}},blockExplorers:{default:{name:`Gate Scan`,url:`https://www.gatescan.org`,apiUrl:`https://gatescan.org/api`}},testnet:!1}),uw=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}}}),dw=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}),fw=11155111,pw=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:{[fw]:{address:`0x37347caB2afaa49B776372279143D71ad1f354F6`}},portal:{[fw]:{address:`0x956962C34687A954e611A83619ABaA37Ce6bC78A`}},l1StandardBridge:{[fw]:{address:`0x77b2ffc0F57598cAe1DB76cb398059cF5d10A7E7`}}},testnet:!0,sourceId:fw}),mw=L({...pw,experimental_preconfirmationTime:200,rpcUrls:{default:{http:[`https://sepolia-rpc-flashblocks.giwa.io`]}}}),hw=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}),gw=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}),_w=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}}}),vw=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}),yw=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}}}),bw=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}),xw=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}),Sw=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}),Cw=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}),ww=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}),Tw=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}),Ew=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}}}),Dw=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}}}),Ow=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}),kw=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}),Aw=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`}}}),jw=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}),Mw=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`}}}),Nw=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`}}}),Pw=L({id:31337,name:`Hardhat`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),Fw=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}}}),Iw=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://testnet.hsk.xyz`]}},blockExplorers:{default:{name:`HashKey Chain Testnet explorer`,url:`https://testnet-explorer.hsk.xyz`}},testnet:!0}),Rw=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}),zw=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}),Bw=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}),Vw=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}),Hw=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}),Uw=L({id:42e3,name:`Helios Testnet`,network:`helios-testnet`,nativeCurrency:{symbol:`HLS`,name:`Helios`,decimals:18},rpcUrls:{default:{http:[`https://testnet1.helioschainlabs.org`]}},blockExplorers:{default:{name:`Helios Testnet Explorer`,url:`https://explorer.helioschainlabs.org/`}},testnet:!0}),Ww=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}),Kw=L({id:68414,name:`Henesys`,nativeCurrency:{name:`NEXPACE`,symbol:`NXPC`,decimals:18},rpcUrls:{default:{http:[`https://henesys-rpc.msu.io`]}},blockExplorers:{default:{name:`Avalanche Explorer`,url:`https://subnets.avax.network/henesys`}}}),qw=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}),Jw=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:2651420,name:`Horizen Testnet`,network:`horizen-testnet`,nativeCurrency:{symbol:`Sepolia Ether`,name:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://horizen-testnet.rpc.caldera.xyz/http`]}},blockExplorers:{default:{name:`Horizen Testnet Caldera Explorer`,url:`https://horizen-testnet.explorer.caldera.xyz`}},testnet:!0}),Xw=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}),Zw=L({id:190415,name:`HPP Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.hpp.io`],webSocket:[`wss://mainnet.hpp.io`]}},blockExplorers:{default:{name:`HPP Mainnet Explorer`,url:`https://explorer.hpp.io`}},testnet:!1}),Qw=L({id:181228,name:`HPP Sepolia`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://testnet.hpp.io`],webSocket:[`wss://testnet.hpp.io`]}},blockExplorers:{default:{name:`HPP Sepolia Explorer`,url:`https://sepolia-explorer.hpp.io`}},testnet:!0}),$w=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}),eT=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}),tT=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}),nT=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}),rT=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}}}),iT=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`}}}),aT=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}),oT=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}),sT=L({id:999,name:`HyperEVM`,nativeCurrency:{name:`HYPE`,symbol:`HYPE`,decimals:18},blockExplorers:{default:{name:`HyperEVMScan`,url:`https://hyperevmscan.io`}},rpcUrls:{default:{http:[`https://rpc.hyperliquid.xyz/evm`]}},testnet:!1}),cT=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}),lT=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}),uT=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}),dT=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}}}),fT=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}),pT=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}}}),mT=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}}}),hT=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}),gT=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}),_T=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}),vT=1,yT=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:{[vT]:{address:`0x10d7b35078d3baabb96dd45a9143b94be65b12cd`}},portal:{[vT]:{address:`0x5d66c1782664115999c47c9fa5cd031f495d3e4f`}},l1StandardBridge:{[vT]:{address:`0x88ff1e5b602916615391f55854588efcbb7663f0`}}},testnet:!1,sourceId:vT}),bT=11155111,xT=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:{[bT]:{address:`0x860e626c700af381133d9f4af31412a2d1db3d5d`}},portal:{[bT]:{address:`0x5c1d29c6c9c8b0800692acc95d700bcb4966a1d7`}},l1StandardBridge:{[bT]:{address:`0x33f60714bbd74d62b66d79213c348614de51901c`}}},testnet:!0,sourceId:bT}),ST=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}}}),CT=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}),wT=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}}}),TT=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}),ET=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`}}}),DT=L({id:680,name:`Jasmy Chain`,network:`jasmyChain`,nativeCurrency:{name:`JasmyCoin`,symbol:`JASMY`,decimals:18},rpcUrls:{default:{http:[`https://rpc.jasmychain.io`],webSocket:[`wss://rpc.jasmychain.io`]}},testnet:!1}),OT=L({id:681,name:`Jasmy Chain Testnet`,network:`jasmyChainTestnet`,nativeCurrency:{name:`JasmyCoin`,symbol:`JASMY`,decimals:18},rpcUrls:{default:{http:[`https://rpc_testnet.jasmychain.io`],webSocket:[`wss://rpc_testnet.jasmychain.io`]}},testnet:!0}),kT=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}),AT=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}),jT=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}),MT=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}),NT=L({id:5734951,name:`Jovay Mainnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.jovay.io`]}},blockExplorers:{default:{name:`Jovay Explorer`,url:`https://explorer.jovay.io/l2`}},testnet:!1}),PT=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}),FT=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`}}}),IT=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`}}}),LT=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`}}}),RT=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`}}}),zT=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`}}}),BT=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`}}}),VT=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`}}}),HT=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`}}}),UT=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`}}}),WT=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`}}}),GT=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}),KT=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`}}}),qT=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`}}}),JT=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}}}),YT=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}),XT=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}),ZT=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}),QT=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}),eE=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://katanascan.com`}},testnet:!1}),tE=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}),nE=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}),rE=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}),iE=L({id:1783,name:`KiiChain`,network:`kii-chain`,nativeCurrency:{name:`Kii`,symbol:`KII`,decimals:18},rpcUrls:{default:{http:[`https://json-rpc.kiivalidator.com`]}},blockExplorers:{default:{name:`KiiExplorer`,url:`https://explorer.kiichain.io`}}}),aE=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://testnet.explorer.kiichain.io`}},testnet:!0}),oE=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}),sE=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}}}),cE=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}),lE=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}),uE=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}),dE=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}),fE=L({id:1983,name:`Krown`,nativeCurrency:{decimals:18,name:`Krown`,symbol:`KROWN`},rpcUrls:{default:{http:[`https://mainnet.krown.network`]}},blockExplorers:{default:{name:`Krown Explorer`,url:`https://explorer.krown.network`}},testnet:!1}),pE=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}),mE=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}),hE=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}),gE=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`}}}),_E=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}),vE=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}),yE=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}),bE=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});oa(),k(),Hp(),zu(),Ku(),td();async function xE(e,t){let{account:n=e.account}=t;if(!n)throw new Fm;let r=aa(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`?O(i):void 0)||a;ed(t);let g=e.chain?.formatters?.transactionRequest?.format,_=(g||Hu)({...Ru(m,{format:g}),account:r,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 Vp(n,{...t,account:r,chain:e.chain})}}var SE={fees:{estimateFeesPerGas:CE,async maxPriorityFeePerGas({block:e,client:t,request:n}){let r=await CE({block:e,client:t,multiply:e=>e,request:n,type:`eip1559`});return r?.maxPriorityFeePerGas?r.maxPriorityFeePerGas:null}}};async function CE({client:e,multiply:t,request:n,type:r}){try{let i=await xE(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}}var wE=L({...SE,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}),TE=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}),EE=L({...SE,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}),DE=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}),OE=1,kE=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,disputeGameFactory:{[OE]:{address:`0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C`}},multicall3:{address:`0xA9d71E1dd7ca26F26e656E66d6AA81ed7f745bf0`},l2OutputOracle:{[OE]:{address:`0x113cB99283AF242Da0A0C54347667edF531Aa7d6`}},portal:{[OE]:{address:`0x26dB93F8b8b4f7016240af62F7730979d353f9A7`}},l1StandardBridge:{[OE]:{address:`0x2658723Bf70c7667De6B25F99fcce13A16D25d08`}}},sourceId:OE}),AE=11155111,jE=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:{[AE]:{address:`0xA0E35F56C318DE1bD5D9ca6A94Fe7e37C5663348`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[AE]:{address:`0xe3d90F21490686Ec7eF37BE788E02dfC12787264`}},l1StandardBridge:{[AE]:{address:`0x1Fb30e446eA791cd1f011675E5F3f5311b70faF5`}}},testnet:!0,sourceId:AE}),ME=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}),NE=L({id:1337,name:`Localhost`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`http://127.0.0.1:8545`]}}}),PE=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}),FE=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}}}),IE=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}),LE=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}),RE=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}),zE=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}),BE=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}),VE=L({id:1122,name:`LuxePorts`,network:`luxeports`,nativeCurrency:{name:`LuxePorts`,symbol:`LXP`,decimals:18},rpcUrls:{default:{http:[`https://rpc.luxeports.com`,`https://erpc.luxeports.com`],webSocket:[`wss://rpc.luxeports.com/ws`,`wss://erpc.luxeports.com/ws`]}},blockExplorers:{default:{name:`LXPScan`,url:`https://lxpscan.com`}},testnet:!1}),HE=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`}}}),UE=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}}}),WE=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}}}),GE=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}),KE=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}}}),qE=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}),JE=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}),YE=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}}}),XE=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}),ZE=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}),QE=L({id:5887,name:`MANTRA DuKong EVM Testnet`,nativeCurrency:{decimals:18,name:`MANTRA`,symbol:`MANTRA`},rpcUrls:{default:{http:[`https://evm.dukong.mantrachain.io`]}},blockExplorers:{default:{name:`MANTRAScan`,url:`https://mantrascan.io/dukong`}},testnet:!0}),$E=L({id:5888,name:`MANTRA EVM`,nativeCurrency:{decimals:18,name:`MANTRA`,symbol:`MANTRA`},rpcUrls:{default:{http:[`https://evm.mantrachain.io`],webSocket:[`https://evm.mantrachain.io/ws`]}},blockExplorers:{default:{name:`MANTRA Blockscout Explorer`,url:`https://blockscout.mantrascan.io`}}}),eD=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}),tD=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`}}}),nD=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}),rD=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}),iD=L({id:4326,blockTime:1e3,name:`MegaETH`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.megaeth.com/rpc`],webSocket:[`wss://mainnet.megaeth.com/ws`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://mega.etherscan.io`,apiUrl:`https://api.etherscan.io/v2/api`},blockscout:{name:`Etherscan`,url:`https://mega.etherscan.io`,apiUrl:`https://api.etherscan.io/v2/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}}}),aD=L({id:6343,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:`Etherscan`,url:`https://testnet-mega.etherscan.io`,apiUrl:`https://api.etherscan.io/v2/api`},blockscout:{name:`Blockscout`,url:`https://megaeth-testnet-v2.blockscout.com`,apiUrl:`https://megaeth-testnet-v2.blockscout.com/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0}},testnet:!0}),oD=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}),sD=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}}}),cD=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`}}}),lD=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}),uD=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`}}}),dD=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}),fD=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}}}),pD=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}),mD=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}),hD=1,gD=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:{[hD]:{address:`0x3B1F7aDa0Fcc26B13515af752Dd07fB1CAc11426`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:0},portal:{[hD]:{address:`0x3F37aBdE2C6b5B2ed6F8045787Df1ED1E3753956`}},l1StandardBridge:{[hD]:{address:`0x6d0f65D59b55B0FEC5d2d15365154DcADC140BF3`}}},sourceId:hD}),_D=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`}}}),vD=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`}}}),yD=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}}}),bD=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}}}),xD=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}}}),SD=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}}}),CD=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}),wD=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}),TD=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}),ED=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}),DD=1,OD=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,disputeGameFactory:{[DD]:{address:`0x6f13EFadABD9269D6cEAd22b448d434A1f1B433E`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:2465882},l2OutputOracle:{[DD]:{address:`0x4317ba146D4933D889518a3e5E11Fe7a53199b04`}},portal:{[DD]:{address:`0x8B34b14c7c7123459Cf3076b8Cb929BE097d0C07`}},l1StandardBridge:{[DD]:{address:`0x735aDBbE72226BD52e818E7181953f42E3b0FF21`}}},sourceId:DD}),kD=11155111,AD=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:{[kD]:{address:`0x2634BD65ba27AB63811c74A63118ACb312701Bfa`,blockCreated:3778393}},portal:{[kD]:{address:`0x320e1580effF37E008F1C92700d1eBa47c1B23fD`,blockCreated:3778395}},l1StandardBridge:{[kD]:{address:`0xbC5C679879B2965296756CD959C3C739769995E2`,blockCreated:3778392}},multicall3:{address:`0xBAba8373113Fb7a68f195deF18732e01aF8eDfCF`,blockCreated:3019007}},testnet:!0,sourceId:kD}),jD=L({id:143,name:`Monad`,blockTime:400,nativeCurrency:{name:`Monad`,symbol:`MON`,decimals:18},rpcUrls:{default:{http:[`https://rpc.monad.xyz`,`https://rpc1.monad.xyz`],webSocket:[`wss://rpc.monad.xyz`,`wss://rpc1.monad.xyz`]}},blockExplorers:{default:{name:`MonadVision`,url:`https://monadvision.com`},monadscan:{name:`Monadscan`,url:`https://monadscan.com`,apiUrl:`https://api.monadscan.com/api`}},testnet:!1,contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:9248132}}}),MD=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}),ND=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}),PD=L({id:1284,name:`Moonbeam`,nativeCurrency:{decimals:18,name:`GLMR`,symbol:`GLMR`},rpcUrls:{default:{http:[`https://rpc.api.moonbeam.network`],webSocket:[`wss://wss.api.moonbeam.network`]}},blockExplorers:{default:{name:`Moonscan`,url:`https://moonscan.io`,apiUrl:`https://api-moonbeam.moonscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:609002}},testnet:!1}),FD=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`]}}}),ID=L({id:1285,name:`Moonriver`,nativeCurrency:{decimals:18,name:`MOVR`,symbol:`MOVR`},rpcUrls:{default:{http:[`https://rpc.api.moonriver.moonbeam.network`],webSocket:[`wss://wss.api.moonriver.moonbeam.network`]}},blockExplorers:{default:{name:`Moonscan`,url:`https://moonriver.moonscan.io`,apiUrl:`https://api-moonriver.moonscan.io/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1597904}},testnet:!1}),LD=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}),RD=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}),zD=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}),BD=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}),VD=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`}}}),HD=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}),UD=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}),WD=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}),GD=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}),KD=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}),qD=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}),JD=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}),YD=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}}}),XD=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}}}),ZD=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}}}),QD=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`}}}),$D=L({id:166,name:`Nomina`,nativeCurrency:{name:`Nomina`,symbol:`NOM`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.nomina.io`],webSocket:[`wss://mainnet.nomina.io`]}},blockExplorers:{default:{name:`Nomina Explorer`,url:`https://nomscan.io`}},testnet:!1}),eO=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}),tO=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`}}}),nO=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}),rO=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}}}),iO=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}),aO=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}),oO=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}),sO=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}),cO=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`}}}),lO=56,uO=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:{[lO]:{address:`0x153CAB79f4767E2ff862C94aa49573294B13D169`}},portal:{[lO]:{address:`0x1876EA7702C0ad0C6A2ae6036DE7733edfBca519`}},l1StandardBridge:{[lO]:{address:`0xF05F0e4362859c3331Cb9395CBC201E3Fa6757Ea`}}},sourceId:lO}),dO=97,fO=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:{[dO]:{address:`0xFf2394Bb843012562f4349C6632a0EcB92fC8810`}},portal:{[dO]:{address:`0x4386C8ABf2009aC0c263462Da568DD9d46e52a31`}},l1StandardBridge:{[dO]:{address:`0x677311Fd2cCc511Bbc0f581E8d9a07B033D5E840`}}},testnet:!0,sourceId:dO}),pO=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}),mO=1,hO=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:{[mO]:{address:`0xe5965Ab5962eDc7477C8520243A95517CD252fA9`}},l2OutputOracle:{[mO]:{address:`0xdfe97868233d1aa22e815a266982f2cf17685a27`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:4286263},portal:{[mO]:{address:`0xbEb5Fc579115071764c7423A4f12eDde41f106Ed`}},l1StandardBridge:{[mO]:{address:`0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1`}}},sourceId:mO}),gO=5,_O=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:{[gO]:{address:`0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:49461},portal:{[gO]:{address:`0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383`}},l1StandardBridge:{[gO]:{address:`0x636Af16bf2f682dD3109e60102b8E1A089FedAa8`}}},testnet:!0,sourceId:gO}),vO=11155111,yO=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:{[vO]:{address:`0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1`}},l2OutputOracle:{[vO]:{address:`0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1620204},portal:{[vO]:{address:`0x16Fc5058F25648194471939df75CF27A2fdC48BC`}},l1StandardBridge:{[vO]:{address:`0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1`}}},testnet:!0,sourceId:vO}),bO=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}),xO=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}),SO=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}),CO=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}),wO=L({id:41144114,name:`Otim Devnet`,nativeCurrency:{decimals:18,name:`ETH`,symbol:`ETH`},rpcUrls:{default:{http:[`http://devnet.otim.xyz`]}},contracts:{batchInvoker:{address:`0x5FbDB2315678afecb367f032d93F642f64180aa3`}}}),TO=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}}}),EO=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}),DO=L({id:420420422,name:`Paseo PassetHub`,nativeCurrency:{name:`PAS`,symbol:`PAS`,decimals:18},rpcUrls:{default:{http:[`https://testnet-passet-hub-eth-rpc.polkadot.io`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://blockscout-passet-hub.parity-testnet.parity.io`}},testnet:!0}),OO=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}}}),kO=1,AO=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:{[kO]:{address:`0x9E6204F750cD866b299594e2aC9eA824E2e5f95c`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3380209},portal:{[kO]:{address:`0xb26Fd985c5959bBB382BAFdD0b879E149e48116c`}},l1StandardBridge:{[kO]:{address:`0xD0204B9527C1bA7bD765Fa5CCD9355d38338272b`}}},formatters:Iy,sourceId:kO}),jO=11155111,MO=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:{[jO]:{address:`0xD5bAc3152ffC25318F848B3DD5dA6C85171BaEEe`}},portal:{[jO]:{address:`0xF04BdD5353Bb0EFF6CA60CfcC78594278eBfE179`}},l1StandardBridge:{[jO]:{address:`0xFaE6abCAF30D23e233AC7faF747F2fC3a5a6Bfa3`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:3754925}},formatters:Iy,sourceId:jO,testnet:!0}),NO=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}}}),PO=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}),FO=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}}}),IO=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}}}),LO=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}),RO=L({...xy,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}),zO=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}}}),BO=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}),VO=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}),HO=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}),UO=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}),WO=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}),GO=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}),KO=L({id:137,name:`Polygon`,blockTime:2e3,nativeCurrency:{name:`POL`,symbol:`POL`,decimals:18},rpcUrls:{default:{http:[`https://polygon.drpc.org`]}},blockExplorers:{default:{name:`PolygonScan`,url:`https://polygonscan.com`,apiUrl:`https://api.etherscan.io/v2/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:25770160}}}),qO=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.etherscan.io/v2/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:3127388}},testnet:!0}),JO=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}),YO=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}}}),XO=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}}}),ZO=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}}}),QO=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`}}}),$O=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`}}}),ek=L({id:60603,name:`POTOS Mainnet`,nativeCurrency:{decimals:18,name:`POTOS Token`,symbol:`POT`},rpcUrls:{default:{http:[`https://rpc.potos.hk`]}},blockExplorers:{default:{name:`POTOS Mainnet explorer`,url:`https://scan.potos.hk`}},testnet:!1}),tk=L({id:60600,name:`POTOS Testnet`,nativeCurrency:{decimals:18,name:`POTOS Token`,symbol:`POT`},rpcUrls:{default:{http:[`https://rpc-testnet.potos.hk`]}},blockExplorers:{default:{name:`POTOS Testnet explorer`,url:`https://scan-testnet.potos.hk`}},testnet:!0}),nk=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}),rk=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}}}),ik=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}}}),ak=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}),ok=11155111,sk=L({...R,name:`Pyrope Testnet`,testnet:!0,id:695569,sourceId:ok,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:{[ok]:{address:`0xC24932c31D9621aE9e792576152B7ef010cFC2F8`}}}}),ck=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}),lk=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`}}}),uk=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}),dk=L({id:9,name:`Quai Network Mainnet`,nativeCurrency:{decimals:18,name:`Quai`,symbol:`QUAI`},rpcUrls:{default:{http:[`https://rpc.quai.network/cyprus1`]}},blockExplorers:{default:{name:`Quaiscan`,url:`https://quaiscan.io`,apiUrl:`https://quaiscan.io/api`}},testnet:!1}),fk=L({id:15e3,name:`Quai Network Testnet`,nativeCurrency:{decimals:18,name:`Quai`,symbol:`QUAI`},rpcUrls:{default:{http:[`https://orchard.rpc.quai.network/cyprus1`]}},blockExplorers:{default:{name:`Orchard Quaiscan`,url:`https://orchard.quaiscan.io`,apiUrl:`https://orchard.quaiscan.io/api`}},testnet:!0}),pk=L({id:5318007,name:`Reactive Lasna Testnet`,nativeCurrency:{decimals:18,name:`Lasna React`,symbol:`lREACT`},rpcUrls:{default:{http:[`https://lasna-rpc.rnk.dev`]}},blockExplorers:{default:{name:`Reactscan`,url:`https://lasna.reactscan.net`}},testnet:!0}),mk=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}}}),hk=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}),gk=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}),_k=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}),vk=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}),yk=1,bk=L({...R,name:`Redstone`,id:690,sourceId:yk,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:{[yk]:{address:`0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae`,blockCreated:19578329}},l2OutputOracle:{[yk]:{address:`0xa426A052f657AEEefc298b3B5c35a470e4739d69`,blockCreated:19578337}},l1StandardBridge:{[yk]:{address:`0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69`,blockCreated:19578331}}}}),xk=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}),Sk=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}),Ck=L({id:4153,name:`RISE`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.risechain.com`],webSocket:[`wss://rpc.risechain.com/ws`]}},blockExplorers:{default:{name:`Blockscout`,url:`https://explorer.risechain.com`,apiUrl:`https://explorer.risechain.com/api`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`}}}),wk=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}),Tk=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}),Ek=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}}}),Dk=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}}}),Ok=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}}}),kk=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}}}),Ak=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}),jk=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}}}),Mk=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}),Nk=1,Pk=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:{[Nk]:{address:`0xE6f24d2C32B3109B18ed33cF08eFb490b1e09C10`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:14193},portal:{[Nk]:{address:`0x6A12432491bbbE8d3babf75F759766774C778Db4`,blockCreated:19387057}},l1StandardBridge:{[Nk]:{address:`0x4cbab69108Aa72151EDa5A3c164eA86845f18438`}}},sourceId:Nk}),Fk=11155111,Ik=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:{[Fk]:{address:`0xDb5c46C3Eaa6Ed6aE8b2379785DF7dd029C0dC81`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:55697},portal:{[Fk]:{address:`0xcBD77E8E1E7F06B25baDe67142cdE82652Da7b57`,blockCreated:5345035}},l1StandardBridge:{[Fk]:{address:`0xdDD29bb63B0839FB1cE0eE439Ff027738595D07B`}}},testnet:!0,sourceId:Fk}),Lk=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}),Rk=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}}}),zk=L({id:202601,name:`Ronin 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-explorer.roninchain.com`}},contracts:{multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:18736871}},testnet:!0}),Bk=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}),Vk=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}}}),Hk=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}),Uk=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`}}}),Wk=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}),Gk=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}),Kk=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}),qk=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:`Seiscan`,url:`https://seiscan.io`,apiUrl:`https://api.etherscan.io/v2/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}}}),Jk=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}),Yk=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:`Seiscan`,url:`https://testnet.seiscan.io`,apiUrl:`https://api.etherscan.io/v2/api`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:98697651}},testnet:!0}),Xk=L({id:11155111,name:`Sepolia`,nativeCurrency:{name:`Sepolia Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://11155111.rpc.thirdweb.com`]}},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}),Zk=1,Qk=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:{[Zk]:{address:`0x6Ef8c69CfE4635d866e3E02732068022c06e724D`,blockCreated:20369940}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`,blockCreated:1},portal:{[Zk]:{address:`0xEB06fFa16011B5628BaB98E29776361c83741dd3`,blockCreated:20369933}},l1StandardBridge:{[Zk]:{address:`0x62Edd5f4930Ea92dCa3fB81689bDD9b9d076b57B`,blockCreated:20369935}}},sourceId:Zk}),$k=11155111,eA=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:$k}),tA=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}),nA=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}),rA=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}}}),iA=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}),aA=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}),oA=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`}}}),sA=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}),cA=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`}}}),lA=L({id:380929,name:`Silent Data Mainnet`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.silentdata.com`]}},blockExplorers:{default:{name:`Silent Data Mainnet Explorer`,url:`https://explorer-mainnet.rollup.silentdata.com`}},testnet:!1}),uA=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`}}}),dA=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}),fA=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}),pA=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:{}}),mA=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}}}),hA=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}),gA=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:{}}),_A=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:{}}),vA=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}}}),yA=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}),bA=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:{}}),xA=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:{}}),SA=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}}}),CA=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}),wA=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:{}}),TA=L({id:1187947933,name:`SKALE Base`,nativeCurrency:{name:`Credits`,symbol:`CREDIT`,decimals:18},rpcUrls:{default:{http:[`https://skale-base.skalenodes.com/v1/base`],webSocket:[`wss://skale-base.skalenodes.com/v1/ws/base`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://skale-base-explorer.skalenodes.com/`}},testnet:!0}),EA=L({id:324705682,name:`SKALE Base Sepolia Testnet`,nativeCurrency:{name:`Credits`,symbol:`CREDIT`,decimals:18},rpcUrls:{default:{http:[`https://base-sepolia-testnet.skalenodes.com/v1/base-testnet`],webSocket:[`wss://base-sepolia-testnet.skalenodes.com/v1/ws/base-testnet`]}},blockExplorers:{default:{name:`SKALE Explorer`,url:`https://base-sepolia-testnet-explorer.skalenodes.com/`}},testnet:!0}),DA=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}}}),OA=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}),kA=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}),AA=1,jA=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:{[AA]:{address:`0x472562Fcf26D6b2793f8E0b0fB660ba0E5e08A46`}},l2OutputOracle:{[AA]:{address:`0x2172e492Fc807F5d5645D0E3543f139ECF539294`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[AA]:{address:`0x79f446D024d74D0Bb6E699C131c703463c5D65E9`}},l1StandardBridge:{[AA]:{address:`0x6534Bdb6b5c060d3e6aa833433333135eFE8E0aA`}}},sourceId:AA}),MA=11155111,NA=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:{[MA]:{address:`0x206a75d89d45F146C54020F132FF93bEDD09f55E`}},l2OutputOracle:{[MA]:{address:`0x60e3A368a4cdCEf85ffB964e372726F56A46221e`}},multicall3:{address:`0xca11bde05977b3631167028862be2a173976ca11`},portal:{[MA]:{address:`0xb5afdd0E8dDF081Ef90e8A3e0c7b5798e66E954E`}},l1StandardBridge:{[MA]:{address:`0xbd37E1a59D4C00C9A46F75018dffd84061bC5f74`}}},testnet:!0,sourceId:MA}),PA=L({id:5031,name:`Somnia`,nativeCurrency:{name:`Somnia`,symbol:`SOMI`,decimals:18},rpcUrls:{default:{http:[`https://api.infra.mainnet.somnia.network`]}},blockExplorers:{default:{name:`Somnia Explorer`,url:`https://explorer.somnia.network`,apiUrl:`https://explorer.somnia.network/api`}},testnet:!1}),FA=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}),IA=1,LA=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:{[IA]:{address:`0x512a3d2c7a43bd9261d2b8e8c9c70d4bd4d503c0`}},l2OutputOracle:{[IA]:{address:`0x0000000000000000000000000000000000000000`}},portal:{[IA]:{address:`0x88e529a6ccd302c948689cd5156c83d4614fae92`,blockCreated:7061266}},l1StandardBridge:{[IA]:{address:`0xeb9bf100225c214efc3e7c651ebbadcf85177607`,blockCreated:7061266}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}},sourceId:IA}),RA=11155111,zA=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:{[RA]:{address:`0xB3Ad2c38E6e0640d7ce6aA952AB3A60E81bf7a01`}},l2OutputOracle:{[RA]:{address:`0x710e5286C746eC38beeB7538d0146f60D27be343`}},portal:{[RA]:{address:`0x65ea1489741A5D72fFdD8e6485B216bBdcC15Af3`,blockCreated:6466136}},l1StandardBridge:{[RA]:{address:`0x5f5a404A5edabcDD80DB05E8e54A78c9EBF000C2`,blockCreated:6466136}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:1}},testnet:!0,sourceId:RA}),BA=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}}}),VA=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}),HA=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}),UA=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}),WA=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}),GA=L({...xy,blockTime:200,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}),KA=L({...xy,blockTime:200,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}),qA=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}),JA=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}),YA=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}),XA=L({id:988,name:`Stable Mainnet`,blockTime:700,nativeCurrency:{name:`USDT0`,symbol:`USDT0`,decimals:18},rpcUrls:{default:{http:[`https://rpc.stable.xyz`],webSocket:[`wss://rpc.stable.xyz`]}},blockExplorers:{default:{name:`Stablescan`,url:`https://stablescan.xyz`,apiUrl:`https://api.etherscan.io/v2/api?chainid=988`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:2423647}},testnet:!1}),ZA=L({id:2201,name:`Stable Testnet`,blockTime:700,nativeCurrency:{name:`USDT0`,symbol:`USDT0`,decimals:18},rpcUrls:{default:{http:[`https://rpc.testnet.stable.xyz`],webSocket:[`wss://rpc.testnet.stable.xyz`]}},blockExplorers:{default:{name:`Stablescan`,url:`https://testnet.stablescan.xyz`,apiUrl:`https://api.etherscan.io/v2/api?chainid=2201`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:22364430}},testnet:!0}),QA=L({...SE,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}),$A=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}),ej=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}),tj=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}),nj=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}),rj=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}),ij=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`}}}),aj=L({id:964,name:`Subtensor EVM`,nativeCurrency:{decimals:18,name:`TAO`,symbol:`TAO`},rpcUrls:{default:{http:[`https://lite.chain.opentensor.ai`]}},blockExplorers:{default:{name:`Taostats EVM Explorer`,url:`https://evm.taostats.io`,apiUrl:`https://evm.taostats.io/api`}},testnet:!1}),oj=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}),sj=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}),cj=1,lj=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:{[cj]:{address:`0x8b097CF1f9BbD9cbFD0DD561858a1FCbC8857Be0`,blockCreated:20737481}},l2OutputOracle:{[cj]:{address:`0x693A0F8854F458D282DE3C5b69E8eE5EEE8aA949`,blockCreated:20737481}},portal:{[cj]:{address:`0x2c2150aa5c75A24fB93d4fD2F2a895D618054f07`,blockCreated:20737481}},l1StandardBridge:{[cj]:{address:`0x8b0576E39F1233679109F9b40cFcC2a7E0901Ede`,blockCreated:20737481}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`}},sourceId:cj}),uj=11155111,dj=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:{[uj]:{address:`0x7A0db8C51432d2C3eb4e8f360a2EeB26FF2809fB`,blockCreated:5523438}},l1StandardBridge:{[uj]:{address:`0x2B227A603fAAdB3De0ED050b63ADD232B5f2c28C`,blockCreated:5523442}}},testnet:!0,sourceId:uj}),fj=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}),pj=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}),mj=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}),hj=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}),gj=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}}}),_j=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}}}),vj=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}),yj=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}}}),bj=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}}}),xj=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}}}),Sj=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}),Cj=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:`Etherscan`,url:`https://taikoscan.io`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:11269}}}),wj=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}),Tj=L({id:167013,name:`Taiko Hoodi`,nativeCurrency:{name:`Ether`,symbol:`ETH`,decimals:18},rpcUrls:{default:{http:[`https://rpc.hoodi.taiko.xyz`],webSocket:[`wss://ws.hoodi.taiko.xyz`]}},blockExplorers:{default:{name:`Etherscan`,url:`https://hoodi.taikoscan.io/`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:581116}},testnet:!0}),Ej=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}),Dj=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`}}}),Oj=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`}}}),kj=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`}}}),Aj=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}),jj=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}),Mj=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}),Nj=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}}}),Pj=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});Ls(),wl(),Pl(),Wc(),xl();var Fj=Mc(BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`)),Ij=Fj.create(BigInt(`-3`)),Lj=BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`),Rj=Cl({a:Ij,b:Lj,Fp:Fj,n:BigInt(`0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551`),Gx:BigInt(`0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296`),Gy:BigInt(`0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5`),h:BigInt(1),lowS:!1},Ps),zj=Rj,Bj=pl(Fj,{A:Ij,B:Lj,Z:Fj.create(BigInt(`-10`))}),Vj=Ml(zj.ProjectivePoint,e=>Bj(e[0]),{DST:`P256_XMD:SHA-256_SSWU_RO_`,encodeDST:`P256_XMD:SHA-256_SSWU_NU_`,p:Fj.ORDER,m:1,k:128,expand:`xmd`,hash:Ps}),Hj=Mc(BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff`)),Uj=Hj.create(BigInt(`-3`)),Wj=BigInt(`0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef`),Gj=Cl({a:Uj,b:Wj,Fp:Hj,n:BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973`),Gx:BigInt(`0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7`),Gy:BigInt(`0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f`),h:BigInt(1),lowS:!1},Is),Kj=pl(Hj,{A:Uj,B:Wj,Z:Hj.create(BigInt(`-12`))});Ml(Gj.ProjectivePoint,e=>Kj(e[0]),{DST:`P384_XMD:SHA-384_SSWU_RO_`,encodeDST:`P384_XMD:SHA-384_SSWU_NU_`,p:Hj.ORDER,m:1,k:192,expand:`xmd`,hash:Is});var qj=Mc(BigInt(`0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`)),Jj=qj.create(BigInt(`-3`)),Yj=BigInt(`0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00`),Xj=Cl({a:Jj,b:Yj,Fp:qj,n:BigInt(`0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409`),Gx:BigInt(`0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66`),Gy:BigInt(`0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650`),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Fs),Zj=pl(qj,{A:Jj,B:Yj,Z:qj.create(BigInt(`-4`))});Ml(Xj.ProjectivePoint,e=>Zj(e[0]),{DST:`P521_XMD:SHA-512_SSWU_RO_`,encodeDST:`P521_XMD:SHA-512_SSWU_NU_`,p:qj.ORDER,m:1,k:256,expand:`xmd`,hash:Fs});var Qj=Rj,$j=Rj;Vj.hashToCurve,Vj.encodeToCurve,Hf();function eM(e){let{hash:t,payload:n,publicKey:r,signature:i}=e;return $j.verify(i,n instanceof Uint8Array?n:xf(n),og(r).substring(2),{lowS:!0,...t?{prehash:!0}:{}})}Hf();var tM=new TextEncoder;Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[t,e.charCodeAt(0)]);var nM={...Object.fromEntries(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[e.charCodeAt(0),t])),61:0,45:62,95:63};function rM(e){let t=e.replace(/=+$/,``),n=t.length,r=new Uint8Array(n+3);tM.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)}Hf(),Qd(),pp();var iM=class extends P{constructor({majorType:e}){super(`Invalid CBOR major type: ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.InvalidMajorTypeError`})}},aM=class extends P{constructor({additionalInfo:e}){super(`Invalid CBOR additional info: ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.InvalidAdditionalInfoError`})}},oM=class extends P{constructor(){super(`64-bit integers are not supported in CBOR decoding.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.Unsupported64BitIntegerError`})}},sM=class extends P{constructor({tag:e}){super(`CBOR tagged data (tag ${e}) is not yet supported.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.UnsupportedTagError`})}},cM=class extends P{constructor({type:e}){super(`Invalid chunk type in indefinite-length ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.InvalidIndefiniteLengthChunkError`})}},lM=class extends P{constructor({value:e}){super(`Invalid CBOR simple value: ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.InvalidSimpleValueError`})}},uM=class extends P{constructor(){super(`BigInt values are not supported in CBOR encoding.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.UnsupportedBigIntError`})}},dM=class extends P{constructor({token:e}){super(`Unexpected token: ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.UnexpectedTokenError`})}},fM=class extends P{constructor({number:e}){super(`Number exceeds maximum safe integer (${2**53-1}): ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.NumberTooLargeError`})}},pM=class extends P{constructor({size:e}){super(`String length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.StringTooLargeError`})}},mM=class extends P{constructor({size:e}){super(`Array length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.ArrayTooLargeError`})}},hM=class extends P{constructor({size:e}){super(`Object size exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.ObjectTooLargeError`})}},gM=class extends P{constructor({size:e}){super(`Byte string length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cbor.ByteStringTooLargeError`})}};function _M(e){if(e===void 0)return{length:1,encode:e=>e.pushUint8(247)};if(e===null)return{length:1,encode:e=>e.pushUint8(246)};if(typeof e==`boolean`)return{length:1,encode:t=>t.pushUint8(e?245:244)};if(typeof e==`number`)return _M.number(e);if(typeof e==`bigint`)throw new uM;if(typeof e==`string`)return _M.string(e);if(Array.isArray(e))return _M.array(e);if(e instanceof Uint8Array)return _M.byteString(e);if(e instanceof ArrayBuffer)return _M.byteString(new Uint8Array(e));if(ArrayBuffer.isView(e))return _M.byteString(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));if(e instanceof Map)return _M.map(e);if(typeof e==`object`)return _M.object(e);throw new dM({token:String(e)})}(function(e){function t(e){if(!Number.isSafeInteger(e)){let t=Math.fround(e);return Number.isNaN(e)||e===t?{length:5,encode(t){t.pushUint8(250),t.dataView.setFloat32(t.position,e,!1),t.position+=4}}:{length:9,encode(t){t.pushUint8(251),t.dataView.setFloat64(t.position,e,!1),t.position+=8}}}if(e>=0){if(e<=23)return{length:1,encode:t=>t.pushUint8(e)};if(e<=255)return{length:2,encode:t=>{t.pushUint8(24),t.pushUint8(e)}};if(e<=65535)return{length:3,encode:t=>{t.pushUint8(25),t.pushUint16(e)}};if(e<=4294967295)return{length:5,encode:t=>{t.pushUint8(26),t.pushUint32(e)}};throw new fM({number:e.toString(10)})}let t=-1-e;if(e>=-24)return{length:1,encode:e=>e.pushUint8(32+t)};if(t<=255)return{length:2,encode:e=>{e.pushUint8(56),e.pushUint8(t)}};if(t<=65535)return{length:3,encode:e=>{e.pushUint8(57),e.pushUint16(t)}};if(t<=4294967295)return{length:5,encode:e=>{e.pushUint8(58),e.pushUint32(t)}};throw new fM({number:e.toString(10)})}e.number=t;function n(e){let t=Sf(e),n=t.length;if(n<=23)return{length:1+n,encode(e){e.pushUint8(96+n),n>0&&e.pushBytes(t)}};if(n<=255)return{length:2+n,encode(e){e.pushUint8(120),e.pushUint8(n),e.pushBytes(t)}};if(n<=65535)return{length:3+n,encode(e){e.pushUint8(121),e.pushUint16(n),e.pushBytes(t)}};if(n<=4294967295)return{length:5+n,encode(e){e.pushUint8(122),e.pushUint32(n),e.pushBytes(t)}};throw new pM({size:n})}e.string=n;function r(t){let n=t.map(t=>e(t)),r=n.reduce((e,t)=>e+t.length,0),i=t.length;if(i<=23)return{length:1+r,encode(e){e.pushUint8(128+i);for(let t of n)t.encode(e)}};if(i<=255)return{length:2+r,encode(e){e.pushUint8(152),e.pushUint8(i);for(let t of n)t.encode(e)}};if(i<=65535)return{length:3+r,encode(e){e.pushUint8(153),e.pushUint16(i);for(let t of n)t.encode(e)}};if(i<=4294967295)return{length:5+r,encode(e){e.pushUint8(154),e.pushUint32(i);for(let t of n)t.encode(e)}};throw new mM({size:i})}e.array=r;function i(e){let t=e.byteLength;if(t<=23)return{length:1+t,encode(n){n.pushUint8(64+t),n.pushBytes(e)}};if(t<=255)return{length:2+t,encode(n){n.pushUint8(88),n.pushUint8(t),n.pushBytes(e)}};if(t<=65535)return{length:3+t,encode(n){n.pushUint8(89),n.pushUint16(t),n.pushBytes(e)}};if(t<=4294967295)return{length:5+t,encode(n){n.pushUint8(90),n.pushUint32(t),n.pushBytes(e)}};throw new gM({size:t})}e.byteString=i;function a(t){let n=Object.keys(t),r=n.map(n=>({key:e(n),value:e(t[n])})),i=r.reduce((e,t)=>e+t.key.length+t.value.length,0),a=n.length;if(a<=23)return{length:1+i,encode(e){e.pushUint8(160+a);for(let t of r)t.key.encode(e),t.value.encode(e)}};if(a<=255)return{length:2+i,encode(e){e.pushUint8(184),e.pushUint8(a);for(let t of r)t.key.encode(e),t.value.encode(e)}};if(a<=65535)return{length:3+i,encode(e){e.pushUint8(185),e.pushUint16(a);for(let t of r)t.key.encode(e),t.value.encode(e)}};if(a<=4294967295)return{length:5+i,encode(e){e.pushUint8(186),e.pushUint32(a);for(let t of r)t.key.encode(e),t.value.encode(e)}};throw new hM({size:a})}e.object=a;function o(t){let n=[];for(let[r,i]of t)n.push({key:e(r),value:e(i)});let r=n.reduce((e,t)=>e+t.key.length+t.value.length,0),i=t.size;if(i<=23)return{length:1+r,encode(e){e.pushUint8(160+i);for(let t of n)t.key.encode(e),t.value.encode(e)}};if(i<=255)return{length:2+r,encode(e){e.pushUint8(184),e.pushUint8(i);for(let t of n)t.key.encode(e),t.value.encode(e)}};if(i<=65535)return{length:3+r,encode(e){e.pushUint8(185),e.pushUint16(i);for(let t of n)t.key.encode(e),t.value.encode(e)}};if(i<=4294967295)return{length:5+r,encode(e){e.pushUint8(186),e.pushUint32(i);for(let t of n)t.key.encode(e),t.value.encode(e)}};throw new hM({size:i})}e.map=o})(_M||={});function vM(e){let t=e.readUint8(),n=t>>5,r=t&31;switch(n){case 0:return vM.readUnsignedInteger(e,r);case 1:return vM.readNegativeInteger(e,r);case 2:return vM.readByteString(e,r);case 3:return vM.readTextString(e,r);case 4:return vM.readArray(e,r);case 5:return vM.readMap(e,r);case 6:throw new sM({tag:r});case 7:return vM.readSimpleOrFloat(e,r);default:throw new iM({majorType:n})}}(function(e){function t(e,t){if(t<24)return t;if(t===24)return e.readUint8();if(t===25)return e.readUint16();if(t===26)return e.readUint32();throw t===27?new oM:new aM({additionalInfo:t})}function n(e,n){return t(e,n)}e.readUnsignedInteger=n;function r(e,n){return-1-t(e,n)}e.readNegativeInteger=r;function i(n,r){if(r===31){let t=[],r=0;for(;;){if(n.inspectUint8()===255){n.readUint8();break}let i=e(n);if(!(i instanceof Uint8Array))throw new cM({type:`byte string`});t.push(i),r+=i.length}let i=new Uint8Array(r),a=0;for(let e of t)i.set(e,a),a+=e.length;return i}let i=t(n,r);return n.readBytes(i)}e.readByteString=i;function a(n,r){if(r===31){let t=[];for(;;){if(n.inspectUint8()===255){n.readUint8();break}let r=e(n);if(typeof r!=`string`)throw new cM({type:`text string`});t.push(r)}return t.join(``)}let i=t(n,r);return jf(n.readBytes(i))}e.readTextString=a;function o(n,r){if(r===31){let t=[];for(;;){if(n.inspectUint8()===255){n.readUint8();break}t.push(e(n))}return t}let i=t(n,r),a=[];for(let t=0;t>15&1,n=e>>10&31,r=e&1023;if(n===0){if(r===0)return t?-0:0;let e=2**-14*(r/1024);return t?-e:e}if(n===31)return r===0?t?-1/0:1/0:NaN;let i=2**(n-15)*(1+r/1024);return t?-i:i}})(vM||={}),Hf(),Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]),pp(),Hf(),pp();function yM(e){let{challenge:t,metadata:n,origin:r,publicKey:i,rpId:a,signature:o}=e,{authenticatorData:s,clientDataJSON:c,userVerificationRequired:l}=n,u=xf(s);if(u.length<37||a!==void 0&&!Cf(u.slice(0,32),$h(Jf(a),{as:`Bytes`})))return!1;let d=u[32];if((d&1)!=1||l&&(d&4)!=4||(d&8)!=8&&(d&16)==16)return!1;let f=JSON.parse(c);return f.type!==`webauthn.get`||!f.challenge||qf(rM(f.challenge))!==t||r!==void 0&&!(Array.isArray(r)?r:[r]).includes(f.origin)?!1:eM({hash:!0,payload:vf(u,$h(Sf(c),{as:`Bytes`})),publicKey:i,signature:o})}function bM(e){return yM(e)}Qd(),pp(),gf();var xM=`0x01`,SM=`0x02`,CM=`0x03`,wM=`0x04`,TM=`0x7777777777777777777777777777777777777777777777777777777777777777`;function EM(e){let{signature:t,root:n}=e;return t.type===`keychain`?n?t.userAddress:EM({...e,signature:t.inner}):gg(DM(e))}function DM(e){let{payload:t,signature:n}=e;switch(n.type){case`secp256k1`:return K_({payload:t,signature:n.signature});case`p256`:case`webAuthn`:return n.publicKey;case`keychain`:return DM({payload:t,signature:n.inner})}}function OM(e){let t=e.endsWith(`7777777777777777777777777777777777777777777777777777777777777777`)?I(e,0,-Qf(TM)):e;if(Qf(t)===65){let e=C_(t);return x_(e),{signature:e,type:`secp256k1`}}let n=I(t,0,1),r=I(t,1),i=Qf(r);if(n===xM){if(i!==129)throw new IM({reason:`Invalid P256 signature envelope size: expected 129 bytes, got ${i} bytes`,serialized:t});return{publicKey:{prefix:4,x:ep(I(r,64,96)),y:ep(I(r,96,128))},prehash:tp(I(r,128,129))!==0,signature:{r:ep(I(r,0,32)),s:ep(I(r,32,64))},type:`p256`}}if(n===SM){if(i<128)throw new IM({reason:`Invalid WebAuthn signature envelope size: expected at least 128 bytes, got ${i} bytes`,serialized:t});let e=i-128,n=I(r,0,e),a,o;for(let t=37;t{let n=e.inner;return n.type===`p256`||n.type===`webAuthn`?{keyId:gg(n.publicKey)}:n.type===`secp256k1`&&t?.payload?{keyId:gg(K_({payload:t.payload,signature:n.signature}))}:{}})()}:{},type:n}}function AM(e){if(e.type===`secp256k1`)return{signature:D_(e),type:`secp256k1`};if(e.type===`p256`)return{prehash:e.preHash,publicKey:{prefix:4,x:ep(e.pubKeyX),y:ep(e.pubKeyY)},signature:{r:ep(e.r),s:ep(e.s)},type:`p256`};if(e.type===`webAuthn`){let t=e.webauthnData,n=Qf(t),r,i;for(let e=37;e{if(t.address)return t.address;if(t.publicKey)return gg(t.publicKey)})();if(!r)return!1;let i=kM(e);if(i.type===`secp256k1`)return r?q_({address:r,payload:n,signature:i.signature}):!1;if(i.type===`p256`)return _g(gg(i.publicKey),r)?eM({hash:i.prehash,publicKey:i.publicKey,payload:n,signature:i.signature}):!1;if(i.type===`webAuthn`)return _g(gg(i.publicKey),r)?bM({challenge:Gf(n),metadata:i.metadata,publicKey:i.publicKey,signature:i.signature}):!1;throw new LM(`Unable to verify signature envelope of type "${i.type}".`)}var FM=class extends P{constructor({envelope:e}){super(`Unable to coerce value (\`${mf(e)}\`) to a valid signature envelope.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SignatureEnvelope.CoercionError`})}},IM=class extends P{constructor({reason:e,serialized:t}){super(`Unable to deserialize signature envelope: ${e}`,{metaMessages:[`Serialized: ${t}`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SignatureEnvelope.InvalidSerializedError`})}},LM=class extends P{constructor(){super(...arguments),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`SignatureEnvelope.VerificationError`})}};Qd(),pp();function RM(e){return e.startsWith(`tempo`)?zM(e).address:e}function zM(e){if(!e.startsWith(`tempox`))throw new BM({address:e});let t=e.slice(6);return Uf(t,{strict:!0}),{address:mg(t)}}var BM=class extends P{constructor({address:e}){super(`Tempo address "${e}" has an invalid prefix. Expected "tempox".`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TempoAddress.InvalidPrefixError`})}};pp();function VM(e,t={}){if(typeof e.chainId==`string`)return HM(e);let n={...e,address:RM(e.address)};return t.signature?{...n,signature:t.signature}:n}function HM(e){let{address:t,chainId:n,nonce:r}=e,i=AM(e.signature);return{address:t,chainId:Number(n),nonce:BigInt(r),signature:i}}function UM(e){return e.map(e=>HM(e))}function WM(e){let[t,n,r,i]=e,a={address:n,chainId:t===`0x`?0:Number(t),nonce:r===`0x`?0n:BigInt(r)};return i&&(a.signature=OM(i)),VM(a)}function GM(e){let t=[];for(let n of e)t.push(WM(n));return t}function KM(e){let{address:t,chainId:n,nonce:r,signature:i}=e;return{address:t,chainId:F(n),nonce:F(r),signature:NM(i)}}function qM(e){return e.map(e=>KM(e))}function JM(e){let{address:t,chainId:n,nonce:r}=e,i=e.signature?MM(e.signature):void 0;return[n?F(n):`0x`,t,r?F(r):`0x`,...i?[i]:[]]}function YM(e){if(!e||e.length===0)return[];let t=[];for(let n of e)t.push(JM(n));return t}pp();function XM(e,t={}){if(`keyId`in e)return ZM(e);let n=e,r={...n,address:RM(n.address),...n.limits?{limits:n.limits.map(e=>({...e,token:RM(e.token)}))}:{}};return t.signature?{...r,signature:kM(t.signature)}:r}function ZM(e){let{chainId:t,keyId:n,expiry:r=0,limits:i,keyType:a}=e,o=AM(e.signature);return{address:n,chainId:t===`0x`?0n:ep(t),expiry:Number(r),limits:i?.map(e=>({token:e.token,limit:BigInt(e.limit)})),signature:o,type:a}}function QM(e){let[t,n]=e,[r,i,a,o,s]=t,c=(()=>{switch(i){case`0x`:case`0x00`:return`secp256k1`;case`0x01`:return`p256`;case`0x02`:return`webAuthn`;default:throw Error(`Invalid key type: ${i}`)}})(),l={address:a,expiry:o===void 0?void 0:iN(o),type:c,chainId:r===`0x`?0n:ep(r),...o===void 0?{}:{expiry:iN(o)},...s===void 0?{}:{limits:s.map(([e,t])=>({token:e,limit:rN(t)}))}};return n&&(l.signature=OM(n)),XM(l)}function $M(e){let{address:t,chainId:n,expiry:r,limits:i,type:a,signature:o}=e;return{chainId:n===0n?`0x`:F(n),expiry:typeof r==`number`?F(r):null,limits:i?.map(({token:e,limit:t})=>({token:e,limit:F(t)})),keyId:RM(t),signature:NM(o),keyType:a}}function eN(e){let{address:t,chainId:n,expiry:r,limits:i}=e,a=e.signature?MM(e.signature):void 0,o=(()=>{switch(e.type){case`secp256k1`:return`0x`;case`p256`:return`0x01`;case`webAuthn`:return`0x02`;default:throw Error(`Invalid key type: ${e.type}`)}})(),s=i?.map(e=>[e.token,tN(e.limit)]);return[[tN(n),o,t,typeof r==`number`||s?nN(r??0):void 0,s].filter(Boolean),...a?[a]:[]]}function tN(e){return e===0n?`0x`:F(e)}function nN(e){return e===0?`0x`:F(e)}function rN(e){return e===`0x`?0n:BigInt(e)}function iN(e){return e===`0x`?0:tp(e)}pp();var aN=`0x20c0`;function oN(e){if(typeof e==`string`){let t=RM(e);return pg(t),t}return Wf(aN,F(e,{size:18}))}var sN={legacy:`0x0`,eip2930:`0x1`,eip1559:`0x2`,eip4844:`0x3`,eip7702:`0x4`},cN={"0x0":`legacy`,"0x1":`eip2930`,"0x2":`eip1559`,"0x3":`eip4844`,"0x4":`eip7702`};function lN(e,t={}){if(!e)return null;let n=w_(e),r={...e,...n};return r.blockNumber=e.blockNumber?BigInt(e.blockNumber):null,r.data=e.input,r.gas=BigInt(e.gas??0n),r.nonce=BigInt(e.nonce??0n),r.transactionIndex=e.transactionIndex?Number(e.transactionIndex):null,r.value=BigInt(e.value??0n),e.authorizationList&&(r.authorizationList=H_(e.authorizationList)),e.chainId&&(r.chainId=Number(e.chainId)),e.gasPrice&&(r.gasPrice=BigInt(e.gasPrice)),e.maxFeePerBlobGas&&(r.maxFeePerBlobGas=BigInt(e.maxFeePerBlobGas)),e.maxFeePerGas&&(r.maxFeePerGas=BigInt(e.maxFeePerGas)),e.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=BigInt(e.maxPriorityFeePerGas)),e.type&&(r.type=cN[e.type]??e.type),n&&(r.v=N_(n.yParity)),r}var uN={...sN,tempo:`0x76`},dN={...cN,"0x76":`tempo`};function fN(e,t={}){if(!e)return null;let n=lN(e);return n.type=dN[e.type],e.aaAuthorizationList&&(n.authorizationList=UM(e.aaAuthorizationList),delete n.aaAuthorizationList),e.calls&&(n.calls=e.calls.map(e=>({to:e.to,value:e.value&&e.value!==`0x`?BigInt(e.value):void 0,data:e.input||e.data||`0x`}))),e.feeToken&&(n.feeToken=e.feeToken),e.nonceKey&&(n.nonceKey=BigInt(e.nonceKey)),e.signature&&(n.signature=AM(e.signature)),e.validAfter&&(n.validAfter=Number(e.validAfter)),e.validBefore&&(n.validBefore=Number(e.validBefore)),e.keyAuthorization&&(n.keyAuthorization=ZM(e.keyAuthorization)),e.feePayerSignature&&(n.feePayerSignature=D_(e.feePayerSignature),n.feePayerSignature.v=N_(n.feePayerSignature.yParity)),n}pp();function pN(e){let t={};return e.accessList!==void 0&&(t.accessList=e.accessList),e.authorizationList!==void 0&&(t.authorizationList=W_(e.authorizationList)),e.blobVersionedHashes!==void 0&&(t.blobVersionedHashes=e.blobVersionedHashes),e.blobs!==void 0&&(t.blobs=e.blobs),e.chainId!==void 0&&(t.chainId=F(e.chainId)),e.data===void 0?e.input!==void 0&&(t.data=e.input,t.input=e.input):(t.data=e.data,t.input=e.data),e.from!==void 0&&(t.from=e.from),e.gas!==void 0&&(t.gas=F(e.gas)),e.gasPrice!==void 0&&(t.gasPrice=F(e.gasPrice)),e.maxFeePerBlobGas!==void 0&&(t.maxFeePerBlobGas=F(e.maxFeePerBlobGas)),e.maxFeePerGas!==void 0&&(t.maxFeePerGas=F(e.maxFeePerGas)),e.maxPriorityFeePerGas!==void 0&&(t.maxPriorityFeePerGas=F(e.maxPriorityFeePerGas)),e.maxPriorityFeePerGas!==void 0&&(t.maxPriorityFeePerGas=F(e.maxPriorityFeePerGas)),e.nonce!==void 0&&(t.nonce=F(e.nonce)),e.to!==void 0&&(t.to=e.to),e.type!==void 0&&(t.type=sN[e.type]||e.type),e.value!==void 0&&(t.value=F(e.value)),t}pp();function mN(e){let t=pN({...e,authorizationList:void 0});e.authorizationList&&(t.authorizationList=qM(e.authorizationList)),e.calls&&(t.calls=e.calls.map(e=>({to:e.to?RM(e.to):e.to,value:e.value?F(e.value):`0x`,data:e.data??`0x`}))),e.feeToken!==void 0&&(t.feeToken=oN(e.feeToken)),e.keyAuthorization&&(t.keyAuthorization=$M(e.keyAuthorization)),e.validBefore!==void 0&&(t.validBefore=F(e.validBefore)),e.validAfter!==void 0&&(t.validAfter=F(e.validAfter));let n=(()=>{if(e.nonceKey===`random`)return Zf(6);if(typeof e.nonceKey==`bigint`)return F(e.nonceKey)})();return n&&(t.nonceKey=n),(e.calls!==void 0||e.feeToken!==void 0||e.keyAuthorization!==void 0||e.nonceKey!==void 0||e.validBefore!==void 0||e.validAfter!==void 0||e.type===`tempo`)&&(t.type=uN.tempo,delete t.data,delete t.input,delete t.to,delete t.value),t}Qd(),pp();function hN(e){let t=[];for(let n=0;neg(e)?e:$f(e))})}return t}function gN(e){if(!e||e.length===0)return[];let t=[];for(let{address:n,storageKeys:r}of e){for(let e=0;et===void 0?e:void 0).filter(Boolean);super(`Invalid serialized transaction of type "${n}" was provided.`,{metaMessages:[`Serialized Transaction: "${t}"`,r.length>0?`Missing Attributes: ${r.join(`, `)}`:``].filter(Boolean)}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TransactionEnvelope.InvalidSerializedError`})}},wN=class extends P{constructor({maxPriorityFeePerGas:e,maxFeePerGas:t}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${e?` = ${bN(e)} gwei`:``}) cannot be higher than the fee cap (\`maxFeePerGas\`${t?` = ${bN(t)} gwei`:``}).`].join(` -`)),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TransactionEnvelope.TipAboveFeeCapError`})}};Qd(),pp();var TN=`0x78`,EN=`0x76`,DN=`tempo`;function ON(e){let{calls:t,chainId:n,maxFeePerGas:r,maxPriorityFeePerGas:i,validBefore:a,validAfter:o}=e;if(!t||t.length===0)throw new FN;if(typeof a==`number`&&typeof o==`number`&&a<=o)throw new IN({validBefore:a,validAfter:o});if(t)for(let e of t)e.to&&pg(e.to,{strict:!1});if(n<=0)throw new SN({chainId:n});if(r&&BigInt(r)>2n**256n-1n)throw new xN({feeCap:r});if(i&&r&&i>r)throw new wN({maxFeePerGas:r,maxPriorityFeePerGas:i})}function kN(e){let t=u_(I(e,1)),[n,r,i,a,o,s,c,l,u,d,f,p,m,h,g]=t,_=Array.isArray(h)?h:void 0,v=_?g:h;if(!(t.length===13||t.length===14||t.length===15))throw new CN({attributes:{authorizationList:m,chainId:n,maxPriorityFeePerGas:r,maxFeePerGas:i,gas:a,calls:o,accessList:s,keyAuthorization:_,nonceKey:c,nonce:l,validBefore:u,validAfter:d,feeToken:f,feePayerSignatureOrSender:p,...t.length>12?{signature:v}:{}},serialized:e,type:DN});let y={chainId:Number(n),type:DN};rp(a)&&a!==`0x`&&(y.gas=BigInt(a)),rp(l)&&(y.nonce=l===`0x`?0n:BigInt(l)),rp(i)&&i!==`0x`&&(y.maxFeePerGas=BigInt(i)),rp(r)&&r!==`0x`&&(y.maxPriorityFeePerGas=BigInt(r)),rp(c)&&(y.nonceKey=c===`0x`?0n:BigInt(c)),rp(u)&&u!==`0x`&&(y.validBefore=Number(u)),rp(d)&&d!==`0x`&&(y.validAfter=Number(d)),rp(f)&&f!==`0x`&&(y.feeToken=f),o&&o!==`0x`&&(y.calls=o.map(e=>{let[t,n,r]=e,i={};return t&&t!==`0x`&&(i.to=t),n&&n!==`0x`&&(i.value=BigInt(n)),r&&r!==`0x`&&(i.data=r),i})),s?.length!==0&&s!==`0x`&&(y.accessList=hN(s)),m?.length!==0&&m!==`0x`&&(y.authorizationList=GM(m)),p!==`0x`&&p!==void 0&&(p===`0x00`||vg(p)?(y.feePayerSignature=null,vg(p)&&(y.from=p)):y.feePayerSignature=O_(p)),_&&(y.keyAuthorization=QM(_));let b=v?OM(v):void 0;if(b&&(y={...y,signature:b}),!y.from&&b)try{y.from=EM({payload:MN(AN(y)),signature:b,root:!0})}catch{}return ON(y),y}function AN(e,t={}){let{feePayerSignature:n,signature:r}=t,i=typeof e==`string`?kN(e):e;return i.from&&=RM(i.from),i.calls&&=i.calls.map(e=>({...e,...e.to?{to:RM(e.to)}:{}})),ON(i),{...i,...r?{signature:kM(r)}:{},...n?{feePayerSignature:T_(n)}:{},type:`tempo`}}function jN(e,t={}){let{accessList:n,authorizationList:r,calls:i,chainId:a,feeToken:o,gas:s,keyAuthorization:c,nonce:l,nonceKey:u,maxFeePerGas:d,maxPriorityFeePerGas:f,validBefore:p,validAfter:m}=e;ON(e);let h=gN(n),g=t.signature||e.signature,_=YM(r),v=i.map(e=>[e.to?RM(e.to):`0x`,e.value?F(e.value):`0x`,e.data??`0x`]),y=!1,b=(()=>{if(t.sender)return t.sender;if(t.format===`feePayer`&&g){let t=kM(g);if(t.type===`keychain`)return t.userAddress;if(t.type===`p256`||t.type===`webAuthn`)return gg(t.publicKey);if(t.type===`secp256k1`)return G_({payload:MN(AN(e)),signature:t.signature})}let n=t.feePayerSignature===void 0?e.feePayerSignature:t.feePayerSignature;return n===null?(y=!0,`0x00`):n?j_(n):`0x`})(),x=[F(a),f?F(f):`0x`,d?F(d):`0x`,s?F(s):`0x`,v,h,u?F(u):`0x`,l?F(l):`0x`,typeof p==`number`?F(p):`0x`,typeof m==`number`?F(m):`0x`,!y&&(typeof o==`bigint`||typeof o==`string`)?oN(o):`0x`,b,_,...c?[eN(c)]:[],...g?[MM(kM(g))]:[]];return Wf(t.format===`feePayer`?TN:EN,g_(x))}function MN(e,t={}){let n=NN(e,{presign:!0});return t.from?Qh(Wf(`0x04`,n,RM(t.from))):n}function NN(e,t={}){return Qh(jN({...e,...t.presign?{signature:void 0,...e.feePayerSignature===void 0?{}:{feePayerSignature:null}}:{}}))}function PN(e,t){let n=RM(t.sender);return Qh(jN({...e,signature:void 0},{sender:n,format:`feePayer`}))}var FN=class extends P{constructor(){super(`Calls list cannot be empty.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TxEnvelopeTempo.CallsEmptyError`})}},IN=class extends P{constructor({validBefore:e,validAfter:t}){super(`validBefore (${e}) must be greater than validAfter (${t}).`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TxEnvelopeTempo.InvalidValidityWindowError`})}};pp();function LN(e){let t=e.account;return t?.keyType&&t.keyType!==`secp256k1`||e.calls!==void 0||e.feePayer!==void 0||e.feeToken!==void 0||e.keyAuthorization!==void 0||e.nonceKey!==void 0||e.signature!==void 0||e.validBefore!==void 0||e.validAfter!==void 0?`tempo`:e.type?e.type:Nd(e)}function RN(e){try{return LN(e)===`tempo`}catch{return!1}}async function zN(e,t){if(!RN(e)){if(t&&`type`in t&&t.type!==`secp256k1`)throw Error("Unsupported signature type. Expected `secp256k1` but got `"+t.type+"`.");if(t&&`type`in t){let{r:n,s:r,yParity:i}=t?.signature;return mh(e,{r:F(n,{size:32}),s:F(r,{size:32}),yParity:i})}return mh(e,t)}if(LN(e)===`tempo`)return BN(e,t);throw Error(`Unsupported transaction type`)}async function BN(e,t){let n=(()=>{if(e.signature)return e.signature;if(t&&`type`in t)return t;if(t)return kM({r:BigInt(t.r),s:BigInt(t.s),yParity:Number(t.yParity)})})(),{chainId:r,feePayer:i,feePayerSignature:a,nonce:o,...s}=e,c={...s,calls:s.calls?.length?s.calls:[{to:s.to||(!s.data||s.data===`0x`?`0x0000000000000000000000000000000000000000`:void 0),value:s.value,data:s.data}],chainId:Number(r),feePayerSignature:a?{r:BigInt(a.r),s:BigInt(a.s),yParity:Number(a.yParity)}:i?null:void 0,type:`tempo`,...o?{nonce:BigInt(o)}:{}};if(i===!0&&delete c.feeToken,n&&typeof e.feePayer==`object`){let t=AN(c,{signature:n}),r=PN(t,{sender:(()=>{if(e.from)return e.from;if(n.type===`secp256k1`)return G_({payload:MN(t),signature:n.signature});throw Error(`Unable to extract sender from transaction or signature.`)})()});return jN(t,{feePayerSignature:T_(await e.feePayer.sign({hash:r}))})}return i===!0?n?jN(c,{format:`feePayer`,sender:e.from,signature:n}):jN(c,{feePayerSignature:null}):jN({...c,...i?{feeToken:void 0}:{}},{feePayerSignature:void 0,signature:n})}pp(),oa(),Ku();function VN(e){if(!RN(e))return sd(e);let{feePayerSignature:t,gasPrice:n,nonce:r,...i}=fN(e);return{...i,accessList:i.accessList,feePayerSignature:t?{r:F(t.r,{size:32}),s:F(t.s,{size:32}),v:BigInt(t.v??27),yParity:t.yParity}:void 0,nonce:Number(r),typeHex:uN[i.type],type:i.type}}function HN(e){return Gm(e)}function UN(e,t){let n=e,r=n.account?aa(n.account):void 0;if(!RN(n))return Hu(e,t);t&&(n.calls=n.calls??[{to:e.to||(!e.data||e.data===`0x`?`0x0000000000000000000000000000000000000000`:void 0),value:e.value,data:e.data}]),n.feePayer===!0&&delete n.feeToken;let i=mN({...n,type:`tempo`});t===`estimateGas`&&(i.maxFeePerGas=void 0,i.maxPriorityFeePerGas=void 0),i.to=void 0,i.data=void 0,i.value=void 0;let[a,o]=(()=>{let e=r&&`keyType`in r?r.keyType:r?.source;return e?e===`webAuthn`?[`webAuthn`,`0x${`ff`.repeat(1400)}`]:[`p256`,`secp256k1`].includes(e)?[e,void 0]:[void 0,void 0]:[void 0,void 0]})(),s=r&&`accessKeyAddress`in r?r.accessKeyAddress:void 0;return{...i,...o?{keyData:o}:{},...s?{keyId:s}:{},...a?{keyType:a}:{},...n.feePayer?{feePayer:typeof n.feePayer==`object`?aa(n.feePayer):n.feePayer}:{}}}var WN=new Map;async function GN(e){WN.set(e,(WN.get(e)??0)+1),await Promise.resolve();let t=(WN.get(e)??0)>1;return queueMicrotask(()=>{let t=WN.get(e)??0;t<=1?WN.delete(e):WN.set(e,t-1)}),t}$u(),Ku();var KN=25,qN={blockTime:1e3,extendSchema:Dh(),formatters:{transaction:cd({exclude:[`aaAuthorizationList`],format:VN}),transactionReceipt:Km({format:HN}),transactionRequest:Gu({format:UN})},prepareTransactionRequest:[async(e,{phase:t})=>{let n=e;return t===`afterFillParameters`?(n.feePayer&&n.keyAuthorization?.signature.type===`webAuthn`&&(n.gas=(n.gas??0n)+20000n),n):(await(async()=>{if(n.nonceKey===`expiring`||n.feePayer&&n.nonceKey===void 0)return!0;let e=n.account?.address;return e&&n.nonceKey===void 0?await GN(e):!1})()?(n.nonceKey=Qu,n.nonce=0,n.validBefore===void 0&&(n.validBefore=Math.floor(Date.now()/1e3)+KN)):n.nonceKey!==void 0&&(n.nonce=typeof n.nonce==`number`?n.nonce:0),!n.feeToken&&n.chain?.feeToken&&(n.feeToken=n.chain.feeToken),n)},{runAt:[`beforeFillTransaction`,`afterFillParameters`]}],serializers:{transaction:((e,t)=>zN(e,t))},async verifyHash(e,t){let{address:n,hash:r,signature:i}=t;if(typeof i==`string`&&i.endsWith(`7777777777777777777777777777777777777777777777777777777777777777`)){let a=OM(i);if(a.type!==`keychain`){let i=await ih(e,{address:n,blockNumber:t.blockNumber,blockTag:t.blockTag});if(!i||i===`0xef01007702c00000000000000000000000000000000000`)return PM(a,{address:n,payload:r})}}return await T(e,vv,`verifyHash`)({...t,chain:null})}},JN=L({...qN,id:4217,blockExplorers:{default:{name:`Tempo Explorer`,url:`https://explore.tempo.xyz`}},name:`Tempo Mainnet`,nativeCurrency:{name:`USD`,symbol:`USD`,decimals:6},rpcUrls:{default:{http:[`https://rpc.presto.tempo.xyz`],webSocket:[`wss://rpc.presto.tempo.xyz`]}}}),YN=L({...qN,id:42429,blockExplorers:{default:{name:`Tempo Explorer`,url:`https://explore.testnet.tempo.xyz`}},name:`Tempo Testnet (Andantino)`,nativeCurrency:{name:`USD`,symbol:`USD`,decimals:6},rpcUrls:{default:{http:[`https://rpc.testnet.tempo.xyz`],webSocket:[`wss://rpc.testnet.tempo.xyz`]}}}),XN=L({...qN,id:31318,name:`Tempo Devnet`,blockExplorers:{default:{name:`Tempo Explorer`,url:`https://explore.devnet.tempo.xyz`}},nativeCurrency:{name:`USD`,symbol:`USD`,decimals:6},rpcUrls:{default:{http:[`https://rpc.devnet.tempoxyz.dev`],webSocket:[`wss://rpc.devnet.tempoxyz.dev`]}}}),ZN=L({...qN,id:1337,name:`Tempo`,nativeCurrency:{name:`USD`,symbol:`USD`,decimals:6},rpcUrls:{default:{http:[`http://localhost:8545`]}}}),QN=L({...qN,id:42431,blockExplorers:{default:{name:`Tempo Explorer`,url:`https://explore.moderato.tempo.xyz`}},name:`Tempo Testnet (Moderato)`,nativeCurrency:{name:`USD`,symbol:`USD`,decimals:6},rpcUrls:{default:{http:[`https://rpc.moderato.tempo.xyz`],webSocket:[`wss://rpc.moderato.tempo.xyz`]}}}),$N=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}),eP=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}),tP=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}),nP=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}),rP=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}),iP=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}),aP=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}),oP=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}),sP=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}),cP=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}),lP=L({...xy,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}),uP=L({...xy,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}),dP=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`}}}),fP=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}),pP=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}),mP=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}),hP=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`}}}),gP=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}),_P=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}),vP=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}),yP=1,bP=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:{[yP]:{address:`0x2F12d621a16e2d3285929C9996f478508951dFe4`}},portal:{[yP]:{address:`0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2`}},l1StandardBridge:{[yP]:{address:`0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA`}}},sourceId:yP}),xP=11155111,SP=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:{[xP]:{address:`0x0d83dab629f0e0F9d36c0Cbc89B69a489f0751bD`}},l1StandardBridge:{[xP]:{address:`0xea58fcA6849d79EAd1f26608855c2D6407d54Ce2`}},disputeGameFactory:{[xP]:{address:`0xeff73e5aa3B9AEC32c659Aa3E00444d20a84394b`}}},testnet:!0,sourceId:xP}),CP=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/`}}}),wP=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}),TP=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/`}}}),EP=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}}}),DP=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}}}),OP=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}),kP=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}),AP=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`}}}),jP=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}),MP=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}),NP=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}),PP=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}),FP=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}),IP=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}}}),LP=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}),RP=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}),zP=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`}}}),BP=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}),VP=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}),HP=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}}}),UP=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`}}),WP=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}),GP=1,KP=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:{[GP]:{address:`0x069c4c579671f8c120b1327a73217D01Ea2EC5ea`}},l2OutputOracle:{[GP]:{address:`0x19A6d1E9034596196295CF148509796978343c5D`}},portal:{[GP]:{address:`0xd5ec14a83B7d95BE1E2Ac12523e2dEE12Cbeea6C`}},l1StandardBridge:{[GP]:{address:`0x470458C91978D2d929704489Ad730DC3E3001113`}}},testnet:!1,sourceId:GP}),qP=11155111,JP=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:{[qP]:{address:`0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A`}},l2OutputOracle:{[qP]:{address:`0xc8886f8BAb6Eaeb215aDB5f1c686BF699248300e`}},portal:{[qP]:{address:`0xFf6EBa109271fe6d4237EeeD4bAb1dD9A77dD1A4`}},l1StandardBridge:{[qP]:{address:`0xd7DF54b3989855eb66497301a4aAEc33Dbb3F8DE`}}},testnet:!0,sourceId:qP}),YP=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}),XP=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}),ZP=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}),QP=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}}}),$P=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}}}),eF=L({id:1643,name:`XGR Mainnet`,nativeCurrency:{name:`XGR`,symbol:`XGR`,decimals:18},rpcUrls:{default:{http:[`https://rpc.xgr.network`]}},blockExplorers:{default:{name:`XGR Explorer`,url:`https://explorer.xgr.network`}}}),tF=L({id:196,name:`X Layer Mainnet`,nativeCurrency:{decimals:18,name:`OKB`,symbol:`OKB`},rpcUrls:{default:{http:[`https://xlayerrpc.okx.com`]}},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}}}),nF=L({id:1952,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}),rF=L({id:3721,name:`Xone Chain Mainnet`,nativeCurrency:{decimals:18,name:`XOC`,symbol:`XOC`},rpcUrls:{default:{http:[`https://rpc.xone.org`]}},blockExplorers:{default:{name:`Xone Mainnet Explorer`,url:`https://xonescan.com`,apiUrl:`http://api.xonescan.com/api`}},testnet:!1}),iF=L({id:33772211,name:`Xone Chain Testnet`,nativeCurrency:{decimals:18,name:`XOC`,symbol:`XOC`},rpcUrls:{default:{http:[`https://rpc-testnet.xone.org`,`https://rpc-testnet.xone.plus`,`https://rpc-testnet.knight.center`]}},blockExplorers:{default:{name:`Xone Testnet Explorer`,url:`https://testnet.xonescan.com`,apiUrl:`http://api.testnet.xonescan.com/api`}},testnet:!0}),aF=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}),oF=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}),sF=L({id:37,name:`CONX Chain`,nativeCurrency:{decimals:18,name:`XPLA`,symbol:`XPLA`},rpcUrls:{default:{http:[`https://dimension-evm-rpc.xpla.dev`]}},blockExplorers:{default:{name:`CONX Explorer`,url:`https://explorer.conx.xyz`}},testnet:!1}),cF=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}),lF=L({id:144e4,name:`XRPL EVM`,nativeCurrency:{name:`XRP`,symbol:`XRP`,decimals:18},rpcUrls:{default:{http:[`https://rpc.xrplevm.org`]}},blockExplorers:{default:{name:`blockscout`,url:`https://explorer.xrplevm.org`,apiUrl:`https://explorer.xrplevm.org/api/v2`}},testnet:!1}),uF=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}),dF=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}),fF=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}),pF=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`}}}),mF=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}),hF=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}),gF=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}),_F=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}),vF=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}),yF=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}),bF=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}),xF=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}),SF=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}),CF=1,wF=L({...R,id:48900,name:`Zircuit Mainnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://mainnet.zircuit.com`]}},blockExplorers:{default:{name:`Zircuit Explorer`,url:`https://explorer.zircuit.com`}},contracts:{multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`},l2OutputOracle:{[CF]:{address:`0x92Ef6Af472b39F1b363da45E35530c24619245A4`}},portal:{[CF]:{address:`0x17bfAfA932d2e23Bd9B909Fd5B4D2e2a27043fb1`}},l1StandardBridge:{[CF]:{address:`0x386B76D9cA5F5Fb150B6BFB35CF5379B22B26dd8`}}},testnet:!1}),TF=11155111,EF=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:{[TF]:{address:`0xd69D3AC5CA686cCF94b258291772bc520FEAf211`}},portal:{[TF]:{address:`0x4E21A71Ac3F7607Da5c06153A17B1DD20E702c21`}},l1StandardBridge:{[TF]:{address:`0x87a7E2bCA9E35BA49282E832a28A6023904460D8`}}},testnet:!0}),DF=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}),OF=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}),kF=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`}}}),AF=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`}}}),jF=L({...xy,blockTime:200,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:`ZKsync Explorer`,url:`https://explorer.zksync.io/`,apiUrl:`https://block-explorer-api.mainnet.zksync.io/api`}},contracts:{multicall3:{address:`0xF9cda624FBC7e059355ce98a31693d299FACd963`,blockCreated:3908235},erc6492Verifier:{address:`0xfB688330379976DA81eB64Fe4BF50d7401763B9C`,blockCreated:45659388}}}),MF=L({...xy,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}),NF=L({...xy,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}),PF=L({...xy,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}),FF=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}),IF=L({...xy,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}),LF=L({...xy,blockTime:200,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:`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}),RF=L({id:375,name:`zkXPLA Mainnet`,network:`zkxpla`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://rpc.zkxpla.io`]}},blockExplorers:{default:{name:`zkXPLA Mainnet Explorer`,url:`https://explorer.zkxpla.io`,apiUrl:`https://explorer.zkxpla.io/api`}},testnet:!1}),zF=L({id:475,name:`zkXPLA Testnet`,network:`zkxpla-testnet`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[`https://testnet-rpc.zkxpla.io`]}},blockExplorers:{default:{name:`zkXPLA Testnet Explorer`,url:`https://testnet-explorer.zkxpla.io`,apiUrl:`https://testnet-explorer.zkxpla.io/api`}},testnet:!0}),BF=1,VF=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,disputeGameFactory:{[BF]:{address:`0xB0F15106fa1e473Ddb39790f197275BC979Aa37e`}},l2OutputOracle:{[BF]:{address:`0x9E6204F750cD866b299594e2aC9eA824E2e5f95c`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:5882},portal:{[BF]:{address:`0x1a0ad011913A150f69f6A19DF447A0CfD9551054`}},l1StandardBridge:{[BF]:{address:`0x3e2Ea9B92B7E48A52296fD261dc26fd995284631`}}},sourceId:BF}),HF=11155111,UF=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:{[HF]:{address:`0x2615B481Bd3E5A1C0C7Ca3Da1bdc663E8615Ade9`}},multicall3:{address:`0xcA11bde05977b3631167028862bE2a173976CA11`,blockCreated:83160},portal:{[HF]:{address:`0xeffE2C6cA9Ab797D418f0D91eA60807713f3536f`}},l1StandardBridge:{[HF]:{address:`0x5376f1D543dcbB5BD416c56C189e4cB7399fCcCB`}}},sourceId:HF,testnet:!0}),WF=5,GF=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:{[WF]:{address:`0xDb9F51790365e7dc196e7D072728df39Be958ACe`}}},sourceId:WF,testnet:!0}),KF=c({abey:()=>ay,abstract:()=>Sy,abstractTestnet:()=>Cy,acala:()=>wy,acria:()=>Ty,adf:()=>Ey,adi:()=>Dy,agungTestnet:()=>Oy,aioz:()=>ky,alephZero:()=>Ay,alephZeroTestnet:()=>jy,alienx:()=>My,alienxHalTestnet:()=>Ny,alpenTestnet:()=>Py,ancient8:()=>Uy,ancient8Sepolia:()=>Gy,anvil:()=>Ky,apeChain:()=>qy,apexTestnet:()=>Jy,apollo:()=>Yy,arbitrum:()=>Xy,arbitrumGoerli:()=>Zy,arbitrumNova:()=>Qy,arbitrumSepolia:()=>$y,arcTestnet:()=>eb,arenaz:()=>tb,areonNetwork:()=>nb,areonNetworkTestnet:()=>rb,areum:()=>ib,artelaTestnet:()=>ab,arthera:()=>ob,artheraTestnet:()=>sb,assetChain:()=>cb,assetChainTestnet:()=>lb,astar:()=>ub,astarZkEVM:()=>db,astarZkyoto:()=>fb,atletaOlympia:()=>pb,aurora:()=>mb,auroraTestnet:()=>hb,auroria:()=>gb,autheoTestnet:()=>_b,avalanche:()=>vb,avalancheFuji:()=>yb,b3:()=>bb,b3Sepolia:()=>xb,bahamut:()=>Sb,base:()=>wb,baseGoerli:()=>Ob,basePreconf:()=>Tb,baseSepolia:()=>Ab,baseSepoliaPreconf:()=>jb,basecampTestnet:()=>Eb,beam:()=>Mb,beamTestnet:()=>Nb,bearNetworkChainMainnet:()=>Pb,bearNetworkChainTestnet:()=>Fb,berachain:()=>Ib,berachainBepolia:()=>Lb,berachainTestnet:()=>Rb,berachainTestnetbArtio:()=>zb,bevmMainnet:()=>Bb,bifrost:()=>Vb,birdlayer:()=>Hb,bitTorrent:()=>Yb,bitTorrentTestnet:()=>Xb,bitgert:()=>Ub,bitkub:()=>Wb,bitkubTestnet:()=>Gb,bitlayer:()=>Kb,bitlayerTestnet:()=>qb,bitrock:()=>Jb,blast:()=>Qb,blastSepolia:()=>$b,bob:()=>tx,bobSepolia:()=>ax,boba:()=>nx,bobaSepolia:()=>rx,boolBetaMainnet:()=>ox,botanix:()=>sx,botanixTestnet:()=>cx,bounceBit:()=>lx,bounceBitTestnet:()=>ux,bronos:()=>dx,bronosTestnet:()=>fx,bsc:()=>px,bscGreenfield:()=>mx,bscTestnet:()=>hx,bsquared:()=>gx,bsquaredTestnet:()=>_x,btr:()=>vx,btrTestnet:()=>yx,bxn:()=>bx,bxnTestnet:()=>xx,cannon:()=>Sx,canto:()=>Cx,celo:()=>Rx,celoAlfajores:()=>Bx,celoSepolia:()=>Hx,chang:()=>Ux,chiliz:()=>Wx,chips:()=>Gx,citrea:()=>Kx,citreaTestnet:()=>qx,classic:()=>Jx,codex:()=>Xx,codexTestnet:()=>Qx,coinbit:()=>$x,coinex:()=>eS,confluxESpace:()=>tS,confluxESpaceTestnet:()=>nS,coreDao:()=>rS,coreTestnet1:()=>iS,coreTestnet2:()=>aS,corn:()=>oS,cornTestnet:()=>sS,cpchain:()=>cS,crab:()=>lS,creatorTestnet:()=>uS,creditCoin3Devnet:()=>dS,creditCoin3Mainnet:()=>fS,creditCoin3Testnet:()=>pS,cronos:()=>mS,cronosTestnet:()=>hS,cronoszkEVM:()=>gS,cronoszkEVMTestnet:()=>_S,crossbell:()=>vS,crossfi:()=>yS,curtis:()=>bS,cyber:()=>xS,cyberTestnet:()=>SS,dailyNetwork:()=>CS,dailyNetworkTestnet:()=>wS,darwinia:()=>TS,datahavenTestnet:()=>ES,dbkchain:()=>DS,dchain:()=>OS,dchainTestnet:()=>kS,defichainEvm:()=>AS,defichainEvmTestnet:()=>jS,degen:()=>MS,dfk:()=>NS,diode:()=>PS,disChain:()=>FS,dodochainTestnet:()=>IS,dogechain:()=>LS,domaTestnet:()=>RS,donatuz:()=>zS,dosChain:()=>BS,dosChainTestnet:()=>VS,dreyerxMainnet:()=>HS,dreyerxTestnet:()=>US,dustboyIoT:()=>WS,dymension:()=>GS,edexa:()=>KS,edexaTestnet:()=>qS,edgeless:()=>JS,edgelessTestnet:()=>YS,edgeware:()=>XS,edgewareTestnet:()=>ZS,eduChain:()=>QS,eduChainTestnet:()=>$S,elastos:()=>eC,elastosTestnet:()=>tC,electroneum:()=>nC,electroneumTestnet:()=>rC,elysiumTestnet:()=>iC,energy:()=>aC,eni:()=>oC,eniTestnet:()=>sC,enuls:()=>cC,eon:()=>lC,eos:()=>uC,eosTestnet:()=>dC,eteria:()=>fC,etherlink:()=>pC,etherlinkShadownetTestnet:()=>mC,etherlinkTestnet:()=>hC,ethernity:()=>gC,etp:()=>_C,evmos:()=>vC,evmosTestnet:()=>yC,excelonMainnet:()=>bC,expanse:()=>xC,exsat:()=>SC,exsatTestnet:()=>CC,fantom:()=>wC,fantomSonicTestnet:()=>TC,fantomTestnet:()=>EC,fibo:()=>DC,filecoin:()=>OC,filecoinCalibration:()=>kC,filecoinHyperspace:()=>AC,fireChain:()=>iy,flame:()=>jC,flare:()=>MC,flareTestnet:()=>NC,flowMainnet:()=>PC,flowPreviewnet:()=>FC,flowTestnet:()=>IC,fluence:()=>LC,fluenceStage:()=>RC,fluenceTestnet:()=>zC,fluentDevnet:()=>BC,fluentTestnet:()=>VC,form:()=>UC,formTestnet:()=>KC,forma:()=>WC,formicarium:()=>lD,forta:()=>qC,foundry:()=>JC,fraxtal:()=>XC,fraxtalTestnet:()=>QC,funkiMainnet:()=>ew,funkiSepolia:()=>nw,fuse:()=>rw,fuseSparknet:()=>iw,fusion:()=>aw,fusionTestnet:()=>ow,garnet:()=>cw,gatechain:()=>lw,geist:()=>uw,genesys:()=>dw,giwaSepolia:()=>pw,giwaSepoliaPreconf:()=>mw,glideL1Protocol:()=>hw,glideL2Protocol:()=>gw,gnosis:()=>_w,gnosisChiado:()=>vw,goChain:()=>xw,goat:()=>yw,gobi:()=>bw,godwoken:()=>Sw,goerli:()=>Cw,graphite:()=>ww,graphiteTestnet:()=>Tw,gravity:()=>Ew,gunz:()=>Dw,guruNetwork:()=>Ow,guruTestnet:()=>kw,ham:()=>Aw,happychainTestnet:()=>jw,haqqMainnet:()=>Mw,haqqTestedge2:()=>Nw,hardhat:()=>Pw,harmonyOne:()=>Fw,hashkey:()=>Iw,hashkeyTestnet:()=>Lw,haustTestnet:()=>Rw,hedera:()=>zw,hederaPreviewnet:()=>Bw,hederaTestnet:()=>Vw,hela:()=>Hw,heliosTestnet:()=>Uw,hemi:()=>Ww,hemiSepolia:()=>Gw,henesys:()=>Kw,holesky:()=>qw,hoodi:()=>Jw,horizenTestnet:()=>Yw,hpb:()=>Xw,hpp:()=>Zw,hppSepolia:()=>Qw,huddle01Mainnet:()=>$w,huddle01Testnet:()=>eT,humanity:()=>tT,humanityTestnet:()=>nT,humanode:()=>rT,humanodeTestnet5:()=>iT,hychain:()=>aT,hychainTestnet:()=>oT,hyperEvm:()=>sT,hyperliquid:()=>sT,hyperliquidEvmTestnet:()=>cT,iSunCoin:()=>ET,icbNetwork:()=>lT,idchain:()=>uT,immutableZkEvm:()=>dT,immutableZkEvmTestnet:()=>fT,inEVM:()=>pT,initVerse:()=>mT,initVerseGenesis:()=>hT,injective:()=>gT,injectiveTestnet:()=>_T,ink:()=>yT,inkSepolia:()=>xT,iota:()=>ST,iotaTestnet:()=>CT,iotex:()=>wT,iotexTestnet:()=>TT,jasmyChain:()=>DT,jasmyChainTestnet:()=>OT,jbc:()=>kT,jbcTestnet:()=>AT,jocMainnet:()=>jT,jocTestnet:()=>MT,jovay:()=>NT,jovaySepolia:()=>PT,juneo:()=>FT,juneoBCH1Chain:()=>IT,juneoDAI1Chain:()=>LT,juneoDOGE1Chain:()=>RT,juneoEUR1Chain:()=>zT,juneoGLD1Chain:()=>BT,juneoLINK1Chain:()=>VT,juneoLTC1Chain:()=>HT,juneoSGD1Chain:()=>WT,juneoSocotraTestnet:()=>GT,juneoUSD1Chain:()=>KT,juneoUSDT1Chain:()=>qT,juneomBTC1Chain:()=>UT,kaia:()=>JT,kairos:()=>YT,kakarotSepolia:()=>XT,kakarotStarknetSepolia:()=>ZT,kardiaChain:()=>QT,karura:()=>$T,katana:()=>eE,kava:()=>tE,kavaTestnet:()=>nE,kcc:()=>rE,kii:()=>iE,kiiTestnetOro:()=>aE,kinto:()=>oE,klaytn:()=>sE,klaytnBaobab:()=>cE,koi:()=>lE,kroma:()=>uE,kromaSepolia:()=>dE,krown:()=>fE,l3x:()=>pE,l3xTestnet:()=>mE,lavita:()=>hE,lens:()=>gE,lensTestnet:()=>_E,lestnet:()=>vE,lightlinkPegasus:()=>yE,lightlinkPhoenix:()=>bE,linea:()=>wE,lineaGoerli:()=>TE,lineaSepolia:()=>EE,lineaTestnet:()=>DE,lisk:()=>kE,liskSepolia:()=>jE,loadAlphanet:()=>ME,localhost:()=>NE,loop:()=>PE,lukso:()=>FE,luksoTestnet:()=>IE,lumiaMainnet:()=>LE,lumiaTestnet:()=>RE,lumoz:()=>zE,lumozTestnet:()=>BE,luxeports:()=>VE,lycan:()=>HE,lyra:()=>UE,mainnet:()=>WE,mandala:()=>GE,manta:()=>KE,mantaSepoliaTestnet:()=>qE,mantaTestnet:()=>JE,mantle:()=>YE,mantleSepoliaTestnet:()=>XE,mantleTestnet:()=>ZE,mantraDuKongEVMTestnet:()=>QE,mantraEVM:()=>$E,mapProtocol:()=>eD,matchain:()=>tD,matchainTestnet:()=>nD,mchVerse:()=>rD,megaeth:()=>iD,megaethTestnet:()=>aD,mekong:()=>oD,meld:()=>sD,memecore:()=>cD,merlin:()=>uD,merlinErigonTestnet:()=>dD,metachain:()=>fD,metachainIstanbul:()=>pD,metadium:()=>mD,metalL2:()=>gD,meter:()=>_D,meterTestnet:()=>vD,metis:()=>yD,metisGoerli:()=>bD,metisSepolia:()=>xD,mev:()=>SD,mevTestnet:()=>CD,mint:()=>wD,mintSepoliaTestnet:()=>TD,mitosisTestnet:()=>ED,mode:()=>OD,modeTestnet:()=>AD,monad:()=>jD,monadTestnet:()=>MD,moonbaseAlpha:()=>ND,moonbeam:()=>PD,moonbeamDev:()=>FD,moonriver:()=>ID,morph:()=>LD,morphHolesky:()=>RD,morphSepolia:()=>zD,nahmii:()=>BD,nautilus:()=>VD,near:()=>HD,nearTestnet:()=>UD,neonDevnet:()=>WD,neonMainnet:()=>GD,neoxMainnet:()=>KD,neoxT4:()=>qD,newton:()=>JD,nexi:()=>YD,nexilix:()=>XD,nibiru:()=>ZD,nitrographTestnet:()=>QD,nomina:()=>$D,oasisTestnet:()=>eO,oasys:()=>tO,odysseyTestnet:()=>nO,okc:()=>rO,omax:()=>iO,omni:()=>aO,omniOmega:()=>oO,oneWorld:()=>sO,oortMainnetDev:()=>cO,opBNB:()=>uO,opBNBTestnet:()=>fO,openledger:()=>pO,optimism:()=>hO,optimismGoerli:()=>_O,optimismSepolia:()=>yO,optopia:()=>bO,optopiaTestnet:()=>xO,orderly:()=>SO,orderlySepolia:()=>CO,otimDevnet:()=>wO,palm:()=>TO,palmTestnet:()=>EO,paseoPassetHub:()=>DO,peaq:()=>OO,pgn:()=>AO,pgnTestnet:()=>MO,phoenix:()=>NO,planq:()=>PO,plasma:()=>FO,plasmaDevnet:()=>IO,plasmaTestnet:()=>LO,playfiAlbireo:()=>RO,plinga:()=>zO,plume:()=>BO,plumeDevnet:()=>VO,plumeMainnet:()=>HO,plumeSepolia:()=>UO,plumeTestnet:()=>WO,polterTestnet:()=>GO,polygon:()=>KO,polygonAmoy:()=>qO,polygonMumbai:()=>JO,polygonZkEvm:()=>YO,polygonZkEvmCardona:()=>XO,polygonZkEvmTestnet:()=>ZO,polynomial:()=>QO,polynomialSepolia:()=>$O,potos:()=>ek,potosTestnet:()=>tk,premiumBlockTestnet:()=>nk,pulsechain:()=>rk,pulsechainV4:()=>ik,pumpfiTestnet:()=>ak,pyrope:()=>sk,qMainnet:()=>lk,qTestnet:()=>uk,ql1:()=>ck,quai:()=>dk,quaiTestnet:()=>fk,reactiveTestnet:()=>pk,real:()=>mk,redbellyMainnet:()=>hk,redbellyTestnet:()=>gk,reddio:()=>_k,reddioSepolia:()=>vk,redstone:()=>bk,rei:()=>xk,reyaNetwork:()=>Sk,rise:()=>Ck,riseTestnet:()=>wk,rivalz:()=>Tk,rollux:()=>Ek,rolluxTestnet:()=>Dk,ronin:()=>Ok,root:()=>kk,rootPorcini:()=>Ak,rootstock:()=>jk,rootstockTestnet:()=>Mk,rss3:()=>Pk,rss3Sepolia:()=>Ik,saakuru:()=>Lk,saga:()=>Rk,saigon:()=>zk,sanko:()=>Bk,sapphire:()=>Vk,sapphireTestnet:()=>Hk,satoshiVM:()=>Uk,satoshiVMTestnet:()=>Wk,scroll:()=>Gk,scrollSepolia:()=>Kk,sei:()=>qk,seiTestnet:()=>Yk,seismicDevnet:()=>Jk,sepolia:()=>Xk,shape:()=>Qk,shapeSepolia:()=>eA,shardeum:()=>tA,shardeumSphinx:()=>nA,shibarium:()=>rA,shibariumTestnet:()=>iA,shiden:()=>aA,shimmer:()=>oA,shimmerTestnet:()=>sA,sidraChain:()=>cA,silentData:()=>lA,silicon:()=>uA,siliconSepolia:()=>dA,sixProtocol:()=>fA,skaleBase:()=>TA,skaleBaseSepoliaTestnet:()=>EA,skaleBlockBrawlers:()=>pA,skaleCalypso:()=>mA,skaleCalypsoTestnet:()=>hA,skaleCryptoBlades:()=>gA,skaleCryptoColosseum:()=>_A,skaleEuropa:()=>vA,skaleEuropaTestnet:()=>yA,skaleExorde:()=>bA,skaleHumanProtocol:()=>xA,skaleNebula:()=>SA,skaleNebulaTestnet:()=>CA,skaleRazor:()=>wA,skaleTitan:()=>DA,skaleTitanTestnet:()=>OA,sketchpad:()=>kA,snax:()=>jA,snaxTestnet:()=>NA,somnia:()=>PA,somniaTestnet:()=>FA,soneium:()=>LA,soneiumMinato:()=>zA,songbird:()=>BA,songbirdTestnet:()=>VA,sonic:()=>HA,sonicBlazeTestnet:()=>UA,sonicTestnet:()=>WA,sophon:()=>GA,sophonTestnet:()=>KA,sova:()=>qA,sovaSepolia:()=>JA,spicy:()=>YA,stable:()=>XA,stableTestnet:()=>ZA,statusNetworkSepolia:()=>QA,statusSepolia:()=>QA,step:()=>$A,story:()=>ej,storyAeneid:()=>tj,storyOdyssey:()=>nj,storyTestnet:()=>rj,stratis:()=>ij,subtensorEvm:()=>aj,superlumio:()=>oj,superposition:()=>sj,superseed:()=>lj,superseedSepolia:()=>dj,surgeTestnet:()=>fj,swan:()=>pj,swanProximaTestnet:()=>mj,swanSaturnTestnet:()=>hj,swellchain:()=>gj,swellchainTestnet:()=>_j,swissdlt:()=>vj,syscoin:()=>yj,syscoinTestnet:()=>bj,tac:()=>xj,tacSPB:()=>Sj,taiko:()=>Cj,taikoHekla:()=>wj,taikoHoodi:()=>Tj,taikoJolnir:()=>Ej,taikoKatla:()=>Dj,taikoTestnetSepolia:()=>Oj,taraxa:()=>kj,taraxaTestnet:()=>Aj,teaSepolia:()=>jj,telcoinTestnet:()=>Mj,telos:()=>Nj,telosTestnet:()=>Pj,tempo:()=>JN,tempoAndantino:()=>YN,tempoDevnet:()=>XN,tempoLocalnet:()=>ZN,tempoModerato:()=>QN,tempoTestnet:()=>YN,tenet:()=>$N,ternoa:()=>eP,thaiChain:()=>tP,that:()=>nP,theta:()=>rP,thetaTestnet:()=>iP,thunderCore:()=>aP,thunderTestnet:()=>oP,tiktrixTestnet:()=>sP,tomb:()=>cP,treasure:()=>lP,treasureTopaz:()=>uP,tron:()=>dP,tronNile:()=>fP,tronShasta:()=>pP,ubiq:()=>mP,ultra:()=>hP,ultraTestnet:()=>gP,ultron:()=>_P,ultronTestnet:()=>vP,unichain:()=>bP,unichainSepolia:()=>SP,unique:()=>CP,uniqueOpal:()=>wP,uniqueQuartz:()=>TP,unreal:()=>EP,vana:()=>DP,vanaMoksha:()=>OP,vanar:()=>kP,vechain:()=>AP,velas:()=>jP,viction:()=>MP,victionTestnet:()=>NP,vision:()=>PP,visionTestnet:()=>FP,wanchain:()=>IP,wanchainTestnet:()=>LP,weaveVMAlphanet:()=>RP,wemix:()=>zP,wemixTestnet:()=>BP,westendAssetHub:()=>VP,whitechain:()=>HP,whitechainTestnet:()=>UP,wmcTestnet:()=>WP,worldLand:()=>YP,worldchain:()=>KP,worldchainSepolia:()=>JP,x1Testnet:()=>nF,xLayer:()=>tF,xLayerTestnet:()=>nF,xai:()=>XP,xaiTestnet:()=>ZP,xdc:()=>QP,xdcTestnet:()=>$P,xgr:()=>eF,xoneMainnet:()=>rF,xoneTestnet:()=>iF,xphereMainnet:()=>aF,xphereTestnet:()=>oF,xpla:()=>sF,xrOne:()=>cF,xrSepolia:()=>fF,xrplevm:()=>lF,xrplevmDevnet:()=>uF,xrplevmTestnet:()=>dF,yooldoVerse:()=>pF,yooldoVerseTestnet:()=>mF,zenchainTestnet:()=>hF,zeniq:()=>gF,zeroG:()=>ey,zeroGGalileoTestnet:()=>ty,zeroGMainnet:()=>ny,zeroGTestnet:()=>ry,zeroNetwork:()=>_F,zetachain:()=>vF,zetachainAthensTestnet:()=>yF,zhejiang:()=>bF,zilliqa:()=>xF,zilliqaTestnet:()=>SF,zircuit:()=>wF,zircuitGarfieldTestnet:()=>EF,zkFair:()=>DF,zkFairTestnet:()=>OF,zkLinkNova:()=>kF,zkLinkNovaSepoliaTestnet:()=>AF,zkSync:()=>jF,zkSyncInMemoryNode:()=>MF,zkSyncLocalNode:()=>IF,zkSyncSepoliaTestnet:()=>LF,zkXPLA:()=>RF,zkXPLATestnet:()=>zF,zksync:()=>jF,zksyncInMemoryNode:()=>MF,zksyncLocalCustomHyperchain:()=>NF,zksyncLocalHyperchain:()=>PF,zksyncLocalHyperchainL1:()=>FF,zksyncLocalNode:()=>IF,zksyncSepoliaTestnet:()=>LF,zora:()=>VF,zoraSepolia:()=>UF,zoraTestnet:()=>GF}),qF=[wb,...Object.values(c({arbitrum:()=>Xy,arbitrumSepolia:()=>$y,base:()=>wb,baseSepolia:()=>Ab,berachain:()=>Ib,berachainBepolia:()=>Lb,bsc:()=>px,celo:()=>Rx,gnosis:()=>_w,hoodi:()=>Jw,katana:()=>eE,mainnet:()=>WE,optimism:()=>hO,optimismSepolia:()=>yO,polygon:()=>KO,sepolia:()=>Xk})).filter(e=>e&&e.id!==wb.id)],JF=Ky;({...JF}),{...JF};var YF=`#__bigint`;function XF(e,t){return JSON.parse(e,(e,n)=>{let r=n;return typeof r==`string`&&r.endsWith(YF)?BigInt(r.slice(0,-9)):typeof t==`function`?t(e,r):r})}function ZF(e,t,n){return JSON.stringify(e,(e,n)=>typeof t==`function`?t(e,n):typeof n==`bigint`?n.toString()+YF:n,n)}var QF=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{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=n.docsOrigin??e.prototype.docsOrigin,o=`${a}${i??``}`,s=!!(n.version??e.prototype.showVersion),c=n.version??e.prototype.version,l=[t||`An error occurred.`,...n.metaMessages?[``,...n.metaMessages]:[],...r||i||s?[``,r?`Details: ${r}`:void 0,i?`See: ${o}`:void 0,s?`Version: ${c}`:void 0]:[]].filter(e=>typeof e==`string`).join(` -`);super(l,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,`docsOrigin`,{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,`showVersion`,{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,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.cause=n.cause,this.details=r,this.docs=o,this.docsOrigin=a,this.docsPath=i,this.shortMessage=t,this.showVersion=s,this.version=c}walk(e){return tI(this,e)}};Object.defineProperty(z,`defaultStaticOptions`,{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:`https://oxlib.sh`,showVersion:!1,version:`ox@${eI()}`}}),z.setStaticOptions(z.defaultStaticOptions);function tI(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause?tI(e.cause,t):t?null:e}function nI(e,t={}){let{raw:n=!1}=t,r=e;if(n)return e;if(r.error)throw rI(r.error);return r.result}function rI(e){let t=e;if(t instanceof Error&&!(`code`in t))return new hI({cause:t,data:t,message:t.message,stack:t.stack});let{code:n}=t;return n===hI.code?new hI(t):n===aI.code?new aI(t):n===mI.code?new mI(t):n===fI.code?new fI(t):n===uI.code?new uI(t):n===pI.code?new pI(t):n===lI.code?new lI(t):n===gI.code?new gI(t):n===oI.code?new oI(t):n===sI.code?new sI(t):n===cI.code?new cI(t):n===dI.code?new dI(t):new hI({cause:t instanceof Error?t:void 0,data:t,message:t.message,stack:t instanceof Error?t.stack:void 0})}var iI=class extends Error{constructor(e){let{cause:t,code:n,message:r,data:i,stack:a}=e;super(r,{cause:t}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.BaseError`}),Object.defineProperty(this,`cause`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`stack`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),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.cause=t,this.code=n,this.data=i,this.stack=a??``}},aI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Missing or invalid parameters.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.InvalidInputError`})}};Object.defineProperty(aI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32e3});var oI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Requested resource not found.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32001}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.ResourceNotFoundError`})}};Object.defineProperty(oI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32001});var sI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Requested resource not available.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.ResourceUnavailableError`})}};Object.defineProperty(sI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32002});var cI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Transaction creation failed.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.TransactionRejectedError`})}};Object.defineProperty(cI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32003});var lI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Method is not implemented.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.MethodNotSupportedError`})}};Object.defineProperty(lI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32004});var uI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Rate limit exceeded.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.LimitExceededError`})}};Object.defineProperty(uI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32005});var dI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`JSON-RPC version not supported.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.VersionNotSupportedError`})}};Object.defineProperty(dI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32006});var fI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Input is not a valid JSON-RPC request.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.InvalidRequestError`})}};Object.defineProperty(fI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32600});var pI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Method does not exist.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.MethodNotFoundError`})}};Object.defineProperty(pI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32601});var mI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Invalid method parameters.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.InvalidParamsError`})}};Object.defineProperty(mI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32602});var hI=class e extends iI{constructor(t={}){super({cause:t.cause,code:e.code,data:t.data,message:t.message??`Internal JSON-RPC error.`,stack:t.stack}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32603}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.InternalError`})}};Object.defineProperty(hI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32603});var gI=class e extends iI{constructor(t={}){super({code:e.code,data:t.data,message:t.message??`Failed to parse JSON-RPC response.`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32700}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`RpcResponse.ParseError`})}};Object.defineProperty(gI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:-32700});var _I=class extends Error{constructor(e,t){super(t),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`ProviderRpcError`}),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,`details`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=e,this.details=t}},vI=class extends _I{constructor({message:e=`The user rejected the request.`}={}){super(4001,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4001}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UserRejectedRequestError`})}};Object.defineProperty(vI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4001});var yI=class extends _I{constructor({message:e=`The requested method and/or account has not been authorized by the user.`}={}){super(4100,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4100}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UnauthorizedError`})}};Object.defineProperty(yI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4100});var bI=class extends _I{constructor({message:e=`The provider does not support the requested method.`}={}){super(4200,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4200}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UnsupportedMethodError`})}};Object.defineProperty(bI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4200});var xI=class extends _I{constructor({message:e=`The provider is disconnected from all chains.`}={}){super(4900,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4900}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.DisconnectedError`})}};Object.defineProperty(xI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4900});var SI=class extends _I{constructor({message:e=`The provider is not connected to the requested chain.`}={}){super(4901,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4901}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.ChainDisconnectedError`})}};Object.defineProperty(SI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4901});var CI=class extends _I{constructor({message:e=`An error occurred when attempting to switch chain.`}={}){super(4902,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4902}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.SwitchChainError`})}};Object.defineProperty(CI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:4902});var wI=class extends _I{constructor({message:e=`This Wallet does not support a capability that was not marked as optional.`}={}){super(5700,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5700}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UnsupportedNonOptionalCapabilityError`})}};Object.defineProperty(wI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5700});var TI=class extends _I{constructor({message:e=`This Wallet does not support the requested chain ID.`}={}){super(5710,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5710}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UnsupportedChainIdError`})}};Object.defineProperty(TI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5710});var EI=class extends _I{constructor({message:e=`There is already a bundle submitted with this ID.`}={}){super(5720,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5720}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.DuplicateIdError`})}};Object.defineProperty(EI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5720});var DI=class extends _I{constructor({message:e=`This bundle id is unknown / has not been submitted.`}={}){super(5730,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5730}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.UnknownBundleIdError`})}};Object.defineProperty(DI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5730});var OI=class extends _I{constructor({message:e=`The call bundle is too large for the Wallet to process.`}={}){super(5740,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5740}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.BundleTooLargeError`})}};Object.defineProperty(OI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5740});var kI=class extends _I{constructor({message:e=`The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.`}={}){super(5750,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5750}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.AtomicReadyWalletRejectedUpgradeError`})}};Object.defineProperty(kI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5750});var AI=class extends _I{constructor({message:e=`The wallet does not support atomic execution but the request requires it.`}={}){super(5760,e),Object.defineProperty(this,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5760}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.AtomicityNotSupportedError`})}};Object.defineProperty(AI,`code`,{enumerable:!0,configurable:!0,writable:!0,value:5760});function jI(){let e=new QF.default;return{get eventNames(){return e.eventNames.bind(e)},get listenerCount(){return e.listenerCount.bind(e)},get listeners(){return e.listeners.bind(e)},addListener:e.addListener.bind(e),emit:e.emit.bind(e),off:e.off.bind(e),on:e.on.bind(e),once:e.once.bind(e),removeAllListeners:e.removeAllListeners.bind(e),removeListener:e.removeListener.bind(e)}}function MI(e,t={}){if(!e)throw new PI;return{...e,async request(t){try{let n=await e.request(t);return n&&typeof n==`object`&&`jsonrpc`in n?nI(n):n}catch(e){throw NI(e)}}}}function NI(e){let t=rI(e);if(t instanceof hI){if(!t.data)return t;let{code:e}=t.data;if(e===xI.code)return new xI(t);if(e===SI.code)return new SI(t);if(e===vI.code)return new vI(t);if(e===yI.code)return new yI(t);if(e===bI.code)return new bI(t);if(e===CI.code)return new CI(t);if(e===kI.code)return new kI(t);if(e===AI.code)return new AI(t);if(e===OI.code)return new OI(t);if(e===DI.code)return new DI(t);if(e===EI.code)return new EI(t);if(e===TI.code)return new TI(t);if(e===wI.code)return new wI(t)}return t}var PI=class extends z{constructor(){super("`provider` is undefined."),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Provider.IsUndefinedError`})}};function FI(e,t){if(SL(e)>t)throw new OL({givenSize:SL(e),maxSize:t})}function II(e,t){if(typeof t==`number`&&t>0&&t>SL(e)-1)throw new kL({offset:t,position:`start`,size:SL(e)})}function LI(e,t,n){if(typeof t==`number`&&typeof n==`number`&&SL(e)!==n-t)throw new kL({offset:n,position:`end`,size:SL(e)})}var RI={zero:48,nine:57,A:65,F:70,a:97,f:102};function zI(e){if(e>=RI.zero&&e<=RI.nine)return e-RI.zero;if(e>=RI.A&&e<=RI.F)return e-(RI.A-10);if(e>=RI.a&&e<=RI.f)return e-(RI.a-10)}function BI(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;if(e.length>r)throw new AL({size:e.length,targetSize:r,type:`Bytes`});let i=new Uint8Array(r);for(let t=0;tt)throw new fL({givenSize:iL(e),maxSize:t})}function HI(e,t){if(typeof t==`number`&&t>0&&t>iL(e)-1)throw new pL({offset:t,position:`start`,size:iL(e)})}function UI(e,t,n){if(typeof t==`number`&&typeof n==`number`&&iL(e)!==n-t)throw new pL({offset:n,position:`end`,size:iL(e)})}function WI(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 mL({size:Math.ceil(i.length/2),targetSize:r,type:`Hex`});return`0x${i[n===`right`?`padEnd`:`padStart`](r*2,`0`)}`}function GI(e,t={}){let{dir:n=`left`}=t,r=e.replace(`0x`,``),i=0;for(let e=0;et.toString(16).padStart(2,`0`));function JI(e,t={}){let{strict:n=!1}=t;if(!e||typeof e!=`string`)throw new uL(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e)||!e.startsWith(`0x`))throw new dL(e)}function YI(...e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}function XI(e){return e instanceof Uint8Array?QI(e):Array.isArray(e)?QI(new Uint8Array(e)):e}function ZI(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(VI(n,t.size),tL(n,t.size)):n}function QI(e,t={}){let n=``;for(let t=0;ta||i>1n?r:r-a-1n}function sL(e,t={}){let{signed:n,size:r}=t;return Number(!n&&!r?e:oL(e,t))}function cL(e,t={}){let{strict:n=!1}=t;try{return JI(e,{strict:n}),!0}catch{return!1}}var lL=class extends z{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`})}},uL=class extends z{constructor(e){super(`Value \`${typeof e==`object`?ZF(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`})}},dL=class extends z{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`})}},fL=class extends z{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`})}},pL=class extends z{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`})}},mL=class extends z{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`})}},hL=new TextEncoder;function gL(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 DL(e)}function _L(e){return e instanceof Uint8Array?e:typeof e==`string`?yL(e):vL(e)}function vL(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function yL(e,t={}){let{size:n}=t,r=e;n&&(VI(e,n),r=nL(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;ethis.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}(8192)}.checksum;ti();function ML(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=$r(_L(e));return n===`Bytes`?r:QI(r)}function NL(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=yd(_L(e));return n===`Bytes`?r:QI(r)}function PL(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 BL({prefix:r,cause:new HL});return}if(n===!0||typeof i==`bigint`&&a===void 0){if(r!==3&&r!==2)throw new BL({prefix:r,cause:new VL});return}throw new zL({publicKey:e})}function FL(e){let t=(()=>{if(cL(e))return LL(e);if(EL(e))return IL(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 PL(t),t}function IL(e){return LL(QI(e))}function LL(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new UL({publicKey:e});return e.length===130?{prefix:4,x:BigInt(rL(e,0,32)),y:BigInt(rL(e,32,64))}:e.length===132?{prefix:Number(rL(e,0,1)),x:BigInt(rL(e,1,33)),y:BigInt(rL(e,33,65))}:{prefix:Number(rL(e,0,1)),x:BigInt(rL(e,1,33))}}function RL(e,t={}){PL(e);let{prefix:n,x:r,y:i}=e,{includePrefix:a=!0}=t;return YI(a?$I(n,{size:1}):`0x`,$I(r,{size:32}),typeof i==`bigint`?$I(i,{size:32}):`0x`)}var zL=class extends z{constructor({publicKey:e}){super(`Value \`${ZF(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`})}},BL=class extends z{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`})}},VL=class extends z{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`})}},HL=class extends z{constructor(){super(`Prefix must be 4 for uncompressed public keys.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidUncompressedPrefixError`})}},UL=class extends z{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 ${iL(XI(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidSerializedSizeError`})}},WL=/^0x[a-fA-F0-9]{40}$/;function GL(e,t={}){let{strict:n=!0}=t;if(!WL.test(e))throw new ZL({address:e,cause:new QL});if(n){if(e.toLowerCase()===e)return;if(KL(e)!==e)throw new ZL({address:e,cause:new $L})}}function KL(e){if(jL.has(e))return jL.get(e);GL(e,{strict:!1});let t=e.substring(2).toLowerCase(),n=ML(bL(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 jL.set(e,i),i}function qL(e,t={}){let{checksum:n=!1}=t;return GL(e),n?KL(e):e}function JL(e,t={}){return qL(`0x${ML(`0x${RL(e).slice(4)}`).substring(26)}`,t)}function YL(e,t){return GL(e,{strict:!1}),GL(t,{strict:!1}),e.toLowerCase()===t.toLowerCase()}function XL(e,t={}){let{strict:n=!0}=t??{};try{return GL(e,{strict:n}),!0}catch{return!1}}var ZL=class extends z{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`})}},QL=class extends z{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`})}},$L=class extends z{constructor(){super(`Address does not match its checksum counterpart.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidChecksumError`})}},eR=!1;uu();function tR(e){let{privateKey:t}=e;return FL(Zl.ProjectivePoint.fromPrivateKey(XI(t).slice(2)))}function nR(e={}){let{as:t=`Hex`}=e,n=Zl.utils.randomPrivateKey();return t===`Hex`?QI(n):n}function rR(e){return JL(iR(e))}function iR(e){let{payload:t,signature:n}=e,{r,s:i,yParity:a}=n;return FL(new Zl.Signature(BigInt(r),BigInt(i)).addRecoveryBit(a).recoverPublicKey(XI(t).substring(2)))}function aR(e){let{extraEntropy:t=eR,hash:n,payload:r,privateKey:i}=e,{r:a,s:o,recovery:s}=Zl.sign(_L(r),_L(i),{extraEntropy:typeof t==`boolean`?t:XI(t).slice(2),lowS:!0,...n?{prehash:!0}:{}});return{r:a,s:o,yParity:s}}var oR=/^(.*)\[([0-9]*)\]$/,sR=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,cR=/^(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));var lR=2n**256n-1n;function uR(e,t={}){let{recovered:n}=t;if(e.r===void 0||e.s===void 0||n&&e.yParity===void 0)throw new SR({signature:e});if(e.r<0n||e.r>lR)throw new CR({value:e.r});if(e.s<0n||e.s>lR)throw new wR({value:e.s});if(typeof e.yParity==`number`&&e.yParity!==0&&e.yParity!==1)throw new TR({value:e.yParity})}function dR(e){return fR(QI(e))}function fR(e){if(e.length!==130&&e.length!==132)throw new xR({signature:e});let t=BigInt(rL(e,0,32)),n=BigInt(rL(e,32,64)),r=(()=>{let t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return yR(t)}catch{throw new TR({value:t})}})();return r===void 0?{r:t,s:n}:{r:t,s:n,yParity:r}}function pR(e){if(e.r!==void 0&&e.s!==void 0)return mR(e)}function mR(e){let t=typeof e==`string`?fR(e):e instanceof Uint8Array?dR(e):typeof e.r==`string`?gR(e):e.v?hR(e):{r:e.r,s:e.s,...e.yParity===void 0?{}:{yParity:e.yParity}};return uR(t),t}function hR(e){return{r:e.r,s:e.s,yParity:yR(e.v)}}function gR(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=yR(t)),typeof n!=`number`)throw new TR({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function _R(e){uR(e);let t=e.r,n=e.s;return YI($I(t,{size:32}),$I(n,{size:32}),typeof e.yParity==`number`?$I(bR(e.yParity),{size:1}):`0x`)}function vR(e){let{r:t,s:n,yParity:r}=e;return[r?`0x01`:`0x`,t===0n?`0x`:aL($I(t)),n===0n?`0x`:aL($I(n))]}function yR(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 ER({value:e})}function bR(e){if(e===0)return 27;if(e===1)return 28;throw new TR({value:e})}var xR=class extends z{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:[`Expected: 64 bytes or 65 bytes.`,`Received ${iL(XI(e))} bytes.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidSerializedSizeError`})}},SR=class extends z{constructor({signature:e}){super(`Signature \`${ZF(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Signature.MissingPropertiesError`})}},CR=class extends z{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`})}},wR=class extends z{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`})}},TR=class extends z{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`})}},ER=class extends z{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`})}};function DR({checksumAddress:e,parameters:t,values:n}){let r=[];for(let i=0;i0?YI(t,e):t}}if(o)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:YI(...s.map(({encoded:e})=>e))}}function MR(e,{type:t}){let[,n]=t.split(`bytes`),r=iL(e);if(!n){let t=e;return r%32!=0&&(t=nL(t,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:YI(tL($I(r,{size:32})),t)}}if(r!==Number.parseInt(n,10))throw new qR({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:nL(e)}}function NR(e){if(typeof e!=`boolean`)throw new z(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:tL(ZI(e))}}function PR(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 LR(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var RR={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 HR({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new VR({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new BR({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 BR({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 zR(e,{recursiveReadLimit:t=8192}={}){let n=Object.create(RR);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}var BR=class extends z{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Cursor.NegativeOffsetError`})}},VR=class extends z{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`})}},HR=class extends z{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`})}};kt();function UR(e,t,n){let{checksumAddress:r=!1}=n??{};if(e.length!==t.length)throw new JR({expectedLength:e.length,givenLength:t.length});let i=kR(DR({checksumAddress:r,parameters:e,values:t}));return i.length===0?`0x`:i}function WR(e,t){if(e.length!==t.length)throw new JR({expectedLength:e.length,givenLength:t.length});let n=[];for(let r=0;r{for(let n of e){let{name:e,type:r}=n,o=t[e],s=r.match(cR);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`&&!XL(o))throw new ZL({address:o,cause:new QL});let c=r.match(sR);if(c){let[,e]=c;if(e&&iL(o)!==Number.parseInt(e,10))throw new iz({expectedSize:Number.parseInt(e,10),givenSize:iL(o)})}let l=i[r];l&&(fz(r),a(l,o))}};if(i.EIP712Domain&&t){if(typeof t!=`object`)throw new az({domain:t});a(i.EIP712Domain,t)}if(r!==`EIP712Domain`)if(i[r])a(i[r],n);else throw new oz({primaryType:r,types:i})}function QR(e){let{domain:t={},message:n,primaryType:r}=e,i={EIP712Domain:ez(t),...e.types};ZR({domain:t,message:n,primaryType:r,types:i});let a=[`0x19`,`0x01`];return t&&a.push(nz({domain:t,types:i})),r!==`EIP712Domain`&&a.push(rz({data:n,primaryType:r,types:i})),YI(...a)}function $R(e){let{primaryType:t,types:n}=e,r=``,i=dz({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 ez(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 tz(e){return ML(QR(e))}function nz(e){let{domain:t,types:n}=e;return rz({data:t,primaryType:`EIP712Domain`,types:{...n,EIP712Domain:n?.EIP712Domain||ez(t)}})}function rz(e){let{data:t,primaryType:n,types:r}=e;return ML(cz({data:t,primaryType:n,types:r}))}var iz=class extends z{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`})}},az=class extends z{constructor({domain:e}){super(`Invalid domain "${ZF(e)}".`,{metaMessages:[`Must be a valid EIP-712 domain.`]}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`TypedData.InvalidDomainError`})}},oz=class extends z{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`})}},sz=class extends z{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 cz(e){let{data:t,primaryType:n,types:r}=e,i=[{type:`bytes32`}],a=[lz({primaryType:n,types:r})];for(let e of r[n]??[]){let[n,o]=uz({types:r,name:e.name,type:e.type,value:t[e.name]});i.push(n),a.push(o)}return UR(i,a)}function lz(e){let{primaryType:t,types:n}=e;return ML(eL($R({primaryType:t,types:n})))}function uz(e){let{types:t,name:n,type:r,value:i}=e;if(t[r]!==void 0)return[{type:`bytes32`},ML(cz({data:i,primaryType:r,types:t}))];if(r===`bytes`)return i=`0x${(i.length%2?`0`:``)+i.slice(2)}`,[{type:`bytes32`},ML(i,{as:`Hex`})];if(r===`string`)return[{type:`bytes32`},ML(bL(i),{as:`Hex`})];if(r.lastIndexOf(`]`)===r.length-1){let e=r.slice(0,r.lastIndexOf(`[`)),a=i.map(r=>uz({name:n,type:e,types:t,value:r}));return[{type:`bytes32`},ML(UR(a.map(([e])=>e),a.map(([,e])=>e)))]}return[{type:r},i]}function dz(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])dz({primaryType:e.type,types:r},t);return t}function fz(e){if(e===`address`||e===`bool`||e===`string`||e.startsWith(`bytes`)||e.startsWith(`uint`)||e.startsWith(`int`))throw new sz({type:e})}gi(),Ei();function pz(e){if(typeof e==`string`){if(!Ci(e,{strict:!1}))throw new hi({address:e});return{address:e,type:`json-rpc`}}if(!Ci(e.address,{strict:!1}))throw new hi({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`}}function mz(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;ohz(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=>hz(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,``)})):!1}}function gz(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 gz(i.components,a.components,n[r]);let o=[i.type,a.type];if(o.includes(`address`)&&o.includes(`bytes20`)||(o.includes(`address`)&&o.includes(`string`)||o.includes(`address`)&&o.includes(`bytes`))&&XL(n[r],{strict:!1}))return o}}kt();function _z(e,t={}){let{prepare:n=!0}=t,r=Array.isArray(e)||typeof e==`string`?Tt(e):e;return{...r,...n?{hash:xz(r)}:{}}}function vz(e,t,n){let{args:r=[],prepare:i=!0}=n??{},a=cL(t,{strict:!1}),o=e.filter(e=>a?e.type===`function`||e.type===`error`?yz(e)===rL(t,0,4):e.type===`event`?xz(e)===t:!1:`name`in e&&e.name===t);if(o.length===0)throw new Cz({name:t});if(o.length===1)return{...o[0],...i?{hash:xz(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:xz(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?hz(t,r):!1})){if(s&&`inputs`in s&&s.inputs){let t=gz(e.inputs,s.inputs,r);if(t)throw new Sz({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 Cz({name:t});return{...c,...i?{hash:xz(c)}:{}}}function yz(...e){return rL(xz((()=>{if(Array.isArray(e[0])){let[t,n]=e;return vz(t,n)}return e[0]})()),0,4)}function bz(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return vz(t,n)}return e[0]})();return mz(typeof t==`string`?t:ue(t))}function xz(...e){let t=(()=>{if(Array.isArray(e[0])){let[t,n]=e;return vz(t,n)}return e[0]})();return typeof t!=`string`&&`hash`in t&&t.hash?t.hash:ML(eL(bz(t)))}var Sz=class extends z{constructor(e,t){super(`Found ambiguous types in overloaded ABI Items.`,{metaMessages:[`\`${e.type}\` in \`${mz(ue(e.abiItem))}\`, and`,`\`${t.type}\` in \`${mz(ue(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`})}},Cz=class extends z{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`})}};function wz(...e){let[t,n=[]]=(()=>{if(Array.isArray(e[0])){let[t,n,r]=e;return[Tz(t,n,{args:r}),r]}let[t,n]=e;return[t,n]})(),{overloads:r}=t,i=r?Tz([t,...r],t.name,{args:n}):t,a=Ez(i),o=n.length>0?UR(i.inputs,n):void 0;return o?YI(a,o):a}function Tz(e,t,n){let r=vz(e,t,n);if(r.type!==`function`)throw new Cz({name:t,type:`function`});return r}function Ez(e){return yz(e)}function Dz(e){let{privateKey:t}=e;return FL($j.ProjectivePoint.fromPrivateKey(typeof t==`string`?t.slice(2):QI(t).slice(2)))}function Oz(e={}){let{as:t=`Hex`}=e,n=$j.utils.randomPrivateKey();return t===`Hex`?QI(n):n}function kz(e){let{extraEntropy:t=eR,hash:n,payload:r,privateKey:i}=e,{r:a,s:o,recovery:s}=$j.sign(r instanceof Uint8Array?r:yL(r),i instanceof Uint8Array?i:yL(i),{extraEntropy:typeof t==`boolean`?t:XI(t).slice(2),lowS:!0,...n?{prehash:!0}:{}});return{r:a,s:o,yParity:s}}function Az(e,t=0){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new jz({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 jz=class extends z{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`})}},Mz=new TextEncoder,Nz=new TextDecoder,Pz=Object.fromEntries(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[t,e.charCodeAt(0)])),Fz={...Object.fromEntries(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`).map((e,t)=>[e.charCodeAt(0),t])),61:0,45:62,95:63};function Iz(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]=Pz[r>>12&63],i[t+2]=Pz[r>>6&63],i[t+3]=Pz[r&63]}let a=e.length%3,o=Math.floor(e.length/3)*4+(a&&a+1),s=Nz.decode(new Uint8Array(i.buffer,0,o));return n&&a===1&&(s+=`==`),n&&a===2&&(s+=`=`),r&&(s=s.replaceAll(`+`,`-`).replaceAll(`/`,`_`)),s}function Lz(e,t={}){return Iz(yL(e),t)}function Rz(e){let t=e.replace(/=+$/,``),n=t.length,r=new Uint8Array(n+3);Mz.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)}function zz(e){let t=e[4]===0?5:4,n=t+32,r=e[n+2]===0?n+3:n+2,i=BigInt(QI(e.slice(t,n))),a=BigInt(QI(e.slice(r)));return{r:i,s:a>Qj.CURVE.n/2n?Qj.CURVE.n-a:a}}async function Bz(e){try{let t=e.getPublicKey();if(!t)throw new Yz;let n=new Uint8Array(t),r=await crypto.subtle.importKey(`spki`,new Uint8Array(n),{name:`ECDSA`,namedCurve:`P-256`,hash:`SHA-256`},!0,[`verify`]);return FL(new Uint8Array(await crypto.subtle.exportKey(`raw`,r)))}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 Yz},i=r(33),a=r(34);return FL(new Uint8Array([4,...n.slice(i,i+32),...n.slice(a,a+32)]))}}var Vz=Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]);async function Hz(e){let{createFn:t=window.navigator.credentials.create.bind(window.navigator.credentials),...n}=e,r=Gz(n);try{let e=await t(r);if(!e)throw new Yz;let n=e.response,i=await Bz(n);return{id:e.id,publicKey:i,raw:e}}catch(e){throw new Yz({cause:e})}}function Uz(e={}){let{flag:t=5,rpId:n=window.location.hostname,signCount:r=0}=e;return YI(NL(eL(n)),$I(t,{size:1}),$I(r,{size:4}))}function Wz(e){let{challenge:t,crossOrigin:n=!1,extraClientData:r,origin:i=window.location.origin}=e;return JSON.stringify({type:`webauthn.get`,challenge:Lz(t,{url:!0,pad:!1}),origin:i,crossOrigin:n,...r})}function Gz(e){let{attestation:t=`none`,authenticatorSelection:n={residentKey:`preferred`,requireResidentKey:!1,userVerification:`required`},challenge:r=Vz,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:typeof r==`string`?yL(r):r,...i?{excludeCredentials:i?.map(e=>({id:Rz(e),type:`public-key`}))}:{},pubKeyCredParams:[{type:`public-key`,alg:-7}],...a&&{extensions:a},rp:s,user:{id:c?.id??ML(bL(l),{as:`Bytes`}),name:l,displayName:c?.displayName??l}}}}function Kz(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:Rz(e),type:`public-key`})):[{id:Rz(t),type:`public-key`}]}:{},challenge:yL(n),...r&&{extensions:r},rpId:i,userVerification:a}}}function qz(e){let{challenge:t,crossOrigin:n,extraClientData:r,flag:i,origin:a,rpId:o,signCount:s,userVerification:c=`required`}=e,l=Uz({flag:i,rpId:o,signCount:s}),u=Wz({challenge:t,crossOrigin:n,extraClientData:r,origin:a}),d=NL(eL(u));return{metadata:{authenticatorData:l,clientDataJSON:u,challengeIndex:u.indexOf(`"challenge"`),typeIndex:u.indexOf(`"type"`),userVerificationRequired:c===`required`},payload:YI(l,d)}}async function Jz(e){let{getFn:t=window.navigator.credentials.get.bind(window.navigator.credentials),...n}=e,r=Kz(n);try{let e=await t(r);if(!e)throw new Xz;let n=e.response,i=String.fromCharCode(...new Uint8Array(n.clientDataJSON)),a=i.indexOf(`"challenge"`),o=i.indexOf(`"type"`),s=zz(new Uint8Array(n.signature));return{metadata:{authenticatorData:QI(new Uint8Array(n.authenticatorData)),clientDataJSON:i,challengeIndex:a,typeIndex:o,userVerificationRequired:r.publicKey.userVerification===`required`},signature:s,raw:e}}catch(e){throw new Xz({cause:e})}}var Yz=class extends z{constructor({cause:e}={}){super(`Failed to create credential.`,{cause:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`WebAuthnP256.CredentialCreationFailedError`})}},Xz=class extends z{constructor({cause:e}={}){super(`Failed to request credential.`,{cause:e}),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`WebAuthnP256.CredentialRequestFailedError`})}};async function Zz(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=FL(new Uint8Array(r));return{privateKey:n.privateKey,publicKey:i}}async function Qz(e){let{payload:t,privateKey:n}=e,r=await globalThis.crypto.subtle.sign({name:`ECDSA`,hash:`SHA-256`},n,_L(t)),i=vL(new Uint8Array(r)),a=wL(CL(i,0,32)),o=wL(CL(i,32,64));return o>Qj.CURVE.n/2n&&(o=Qj.CURVE.n-o),{r:a,s:o}}var $z=`0x32323232`,eB={p256:`p256`,secp256k1:`secp256k1`,webauthnp256:`webauthn-p256`},tB={admin:`admin`,normal:`session`},nB={0:`minute`,1:`hour`,2:`day`,3:`week`,4:`month`,5:`year`},rB={address:`secp256k1`,p256:`p256`,secp256k1:`secp256k1`,"webauthn-p256":`webauthnp256`},iB={admin:`admin`,session:`normal`},aB={address:2,p256:0,secp256k1:2,"webauthn-p256":1},oB={day:2,hour:1,minute:0,month:4,week:3,year:5};function sB(e={}){let t=Oz();return fB({...e,privateKey:t})}async function cB(e){let{createFn:t,label:n,rpId:r,userId:i}=e,a=await Hz({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??bL(n)),name:n}});return mB({...e,credential:{id:a.id,publicKey:a.publicKey},id:i?TL(i):RL(a.publicKey,{includePrefix:!1})})}function lB(e={}){let t=Oz();return hB({...e,privateKey:t})}async function uB(e={}){let t=await Zz();return gB({...e,keyPair:t})}function dB(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`?iL(t)===20||oL(rL(t,0,12))===0n?rL(t,-20):JL(LL(t)):t})();return{...e,chainId:n,expiry:r,hash:_B({publicKey:c,type:s}),id:(i??c).toLowerCase(),prehash:a,publicKey:c.toLowerCase(),role:o,type:s}}function fB(e){let{chainId:t,expiry:n,feeToken:r,permissions:i,privateKey:a,role:o}=e;return dB({chainId:t,expiry:n,feeToken:r,permissions:i,privateKey(){return a},publicKey:RL(Dz({privateKey:a}),{includePrefix:!1}),role:o,type:`p256`})}function pB(e,t){let{chainId:n}=t,{publicKey:r}=e,i=iL(r)===20||oL(rL(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 dB({chainId:n,expiry:e.expiry,permissions:a,publicKey:e.publicKey,role:tB[e.role],type:i?`address`:eB[e.type]})}function mB(e){let{credential:t,id:n,rpId:r}=e,i=RL(t.publicKey,{includePrefix:!1});return dB({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 hB(e){let{privateKey:t}=e,n=RL(Dz({privateKey:t}),{includePrefix:!1});return dB({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 gB(e){let{chainId:t,expiry:n,feeToken:r,keyPair:i,permissions:a,role:o}=e,{privateKey:s}=i;return dB({chainId:t,expiry:n,feeToken:r,permissions:a,prehash:!0,privateKey:s,publicKey:RL(i.publicKey,{includePrefix:!1}),role:o,type:`p256`})}function _B(e){let{type:t}=e,n=vB(e.publicKey);return ML(UR([{type:`uint8`},{type:`bytes32`}],[aB[t],ML(n)]))}function vB(e){return iL(e)<32?tL(e,32):e}async function yB(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: -`+ZF(e,null,2));let l=n?tz({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[_R(kz({payload:l,privateKey:t()})),!1];if(t instanceof CryptoKey)return[_R(await Qz({payload:l,privateKey:t})),!0]}if(c===`secp256k1`)return[_R(aR({payload:l,privateKey:o()})),!1];if(c===`webauthn-p256`){if(o.privateKey){let{payload:e,metadata:t}=qz({challenge:l,origin:`https://ithaca.xyz`,rpId:`ithaca.xyz`}),{r:n,s:r}=kz({hash:!0,payload:e,privateKey:o.privateKey()});return[CB({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 Jz({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=TL(new Uint8Array(m.userHandle));if(e.id&&XL(e.id)&&!YL(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),[CB({metadata:p,signature:{r:u,s:d}}),!1]}throw Error(`Key type "${c}" is not supported.\n\nKey:\n`+ZF(e,null,2))})();return a?wB(u,{keyType:c,prehash:d,publicKey:s}):u}function bB(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(xB(e,{feeTokens:s})).map(([e,t])=>{if(e===`calls`)return t.map(({signature:e,to:t})=>({selector:e?cL(e)?e:Ez(e):$z,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:$z,to:c,type:`call`}),{expiry:n,permissions:l??[],prehash:r,publicKey:vB(i),role:iB[a],type:rB[o]}}function xB(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=SB(e,{feeTokens:a});if(t){let e=-1,n=oB.year;for(let r=0;re.feeToken.symbol===t.symbol?!0:!e.feeToken.symbol||e.feeToken.symbol===`native`?t.address===dv:!1);if(!r)return;let i=Az(e.feeToken.limit,r.decimals);return{...r,value:i}}function CB(e){let{metadata:t,signature:n}=e;return UR(GR([`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 wB(e,t){let{keyType:n,prehash:r=!1,publicKey:i}=t,a=_B({publicKey:i,type:n});return WR([`bytes`,`bytes32`,`bool`],[e,a,r])}function TB(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}=pz({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:Fh(e)})},signTransaction(){throw Error("`signTransaction` not supported on porto accounts.")},signTypedData(e){return this.sign({hash:Uh(e)})}});return{address:r,keys:t.keys??void 0,sign:i,signMessage:a,signTransaction:o,signTypedData:s,source:n,type:c}}function EB(e,t={}){let{keys:n}=t;return TB({address:JL(tR({privateKey:e})),keys:n,async sign({hash:t}){return _R(aR({payload:t,privateKey:e}))},source:`privateKey`})}function DB(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 OB(e,t){let{storage:n,replaySafe:r=!0,wrap:i=!0,webAuthn:a}=t,o=DB(e,t),s=r?tz({domain:{verifyingContract:e.address},message:{digest:t.payload},primaryType:`ERC1271Sign`,types:{ERC1271Sign:[{name:`digest`,type:`bytes32`}]}}):t.payload,c=o?({hash:e})=>yB(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})}var kB=()=>`IntersectionObserver`in window&&`IntersectionObserverEntry`in window&&`intersectionRatio`in IntersectionObserverEntry.prototype&&`isVisible`in IntersectionObserverEntry.prototype;function AB(e={}){let{prefix:t=`[Porto]`}=e,n=new Set;return{error:MB(console.error,{prefix:t}),errorOnce:MB(console.error,{memo:n,prefix:t}),log:MB(console.log,{prefix:t}),logOnce:MB(console.log,{memo:n,prefix:t}),warn:MB(console.warn,{prefix:t}),warnOnce:MB(console.warn,{memo:n,prefix:t})}}var jB=AB();function MB(e,t={}){let{memo:n,prefix:r}=t;return(...t)=>{let i=t.join(` `);n?.has(i)||(n?.add(i),e(`${r} ${i}`))}}function NB(){let e=navigator.userAgent.toLowerCase();return e.includes(`safari`)&&!e.includes(`chrome`)}function PB(){let e=navigator.userAgent.toLowerCase();return(e.includes(`firefox`)||e.includes(`fxios`))&&!e.includes(`seamonkey`)}function FB(){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 IB(){let e=()=>void 0,t=()=>void 0;return{promise:new Promise((n,r)=>{e=n,t=r}),reject:t,resolve:e}}function LB(e){if(Array.isArray(e))return e.map(LB);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]=LB(r);return t}function RB(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 zB(){return typeof globalThis<`u`&&`crypto`in globalThis?globalThis.crypto.randomUUID():crypto.randomUUID()}function BB(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(BB.cache.get(n))return BB.cache.get(n);let r=e().finally(()=>BB.cache.delete(n));return BB.cache.set(n,r),r}(function(e){e.cache=new Map})(BB||={});function VB(e){return e}function HB(e,t={}){let{targetOrigin:n}=t,r=new Map;return VB({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=zB();return e.postMessage(LB({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 UB(e){let{from:t,to:n,waitForReady:r=!1}=e,i=!1,a=IB();t.on(`ready`,a.resolve);let o=VB({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}}}var WB={local:`http://localhost:5175/dialog/`,prod:`https://id.porto.sh/dialog`,stg:`https://stg.id.porto.sh/dialog`};function GB(e){return e}function KB(e={}){let{skipProtocolCheck:t,skipUnsupported:n}=e,r=e=>!n&&NB()&&e?.some(e=>[`wallet_connect`,`eth_requestAccounts`].includes(e.method));return typeof window>`u`?JB():GB({name:`iframe`,setup(e){let{host:n,internal:i,theme:a,themeController:o}=e,{store:s}=i,c=qB().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}`];PB()||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`,tV(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=UB({from:HB(window,{targetOrigin:u.origin}),to:HB(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:ZB(),theme:a,type:`init`}),_()}),h.on(`rpc-response`,e=>{r([e._request])&&(f.src=f.src),$B(s,e)}),h.on(`account`,e=>{eV(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=()=>QB(s),x=e=>{e.key===`Escape`&&QB(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 ee=!1,C=()=>{ee&&(ee=!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??``)},te=()=>{ee||(ee=!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`)},ne=!1,re=()=>{ne||(ne=!0,document.activeElement instanceof HTMLElement&&(y=document.activeElement),d.removeAttribute(`hidden`),d.removeAttribute(`aria-closed`),d.showModal())},ie=()=>{if(ne){ne=!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:ZB(),type:`init`}),ie(),C()},destroy(){c.close(),l=!1,C(),ie(),c.destroy(),h.destroy(),d.remove(),S.disconnect(),g.removeEventListener(`change`,_)},open(){l||(l=!0,re(),te(),h.send(`__internal`,{mode:`iframe`,referrer:ZB(),type:`init`}))},async secure(){let{trustedHosts:e}=await h.waitForReady(),n=(()=>{if(t)return!0;let e=window.location.protocol.startsWith(`https`);return e||jB.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=kB(),i=!!e?.includes(window.location.hostname),a=!!(r||i);return a||jB.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=>XB(e.request,{methodPolicies:t,targetOrigin:u.origin}));!l&&n&&this.open(),h.send(`rpc-requests`,e)}}}},supportsHeadless:!0})}function qB(e={}){if(typeof window>`u`)return JB();let{type:t=`auto`,size:n=YB}=e;return GB({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`&&FB()?`page`:`popup`;function u(){c&&QB(o)}let d=(()=>{let e=setInterval(()=>{c?.closed&&QB(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(tV(r),`_blank`,`width=${n.width},height=${n.height},left=${e},top=${t}`)}else c=window.open(tV(r),`_blank`);if(!c)throw Error(`Failed to open popup`);f=UB({from:HB(window,{targetOrigin:s.origin}),to:HB(c,{targetOrigin:s.origin}),waitForReady:!0}),a?._setup(f,!1),f.send(`__internal`,{mode:l===`page`?`page`:`popup`,referrer:ZB(),theme:a?.getTheme()??e.theme,type:`init`}),f.on(`rpc-response`,e=>$B(o,e)),f.on(`account`,e=>{eV(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=>XB(e.request))&&((!c||c.closed)&&this.open(),c?.focus()),f?.send(`rpc-requests`,e)}}},supportsHeadless:!1})}function JB(){return GB({name:`noop`,setup(){return{close(){},destroy(){},open(){},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(){}}},supportsHeadless:!0})}var YB={height:282,width:360};function XB(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 ZB(){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 QB(e){e.setState(e=>({...e,requestQueue:e.requestQueue.map(e=>({account:e.account,error:new vI,request:e.request,status:`error`}))}))}function $B(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 eV(e,t){let{account:n}=t;e.setState(e=>({...e,accounts:[TB({address:n.address,keys:n.capabilities?.admins?.map(e=>dB(e))??[]})]}))}function tV(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 nV(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 B(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;en?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var rV=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},iV={};function aV(e){return e&&Object.assign(iV,e),iV}function oV(e,t){return typeof t==`bigint`?t.toString():t}function sV(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function cV(e){return e==null}function lV(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}var uV=Symbol(`evaluating`);function dV(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==uV)return r===void 0&&(r=uV,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function fV(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function pV(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}var mV=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function hV(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function gV(e){if(hV(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(hV(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}var _V=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]);function vV(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function yV(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function bV(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 xV(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}-Number.MAX_VALUE,Number.MAX_VALUE;function SV(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return yV(e,pV(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 fV(this,`shape`,e),e},checks:[]}))}function CV(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return yV(e,pV(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 fV(this,`shape`,r),r},checks:[]}))}function wV(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return yV(t,pV(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 fV(this,`shape`,i),i},checks:[]}))}function TV(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 DV(e){return typeof e==`string`?e:e?.message}function OV(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=DV(e.inst?._zod.def?.error?.(e))??DV(t?.error?.(e))??DV(n.customError?.(e))??DV(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function kV(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}var AV=(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,oV,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},jV=B(`$ZodError`,AV),MV=B(`$ZodError`,AV,{Parent:Error}),NV=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 rV;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>OV(e,a,aV())));throw mV(t,i?.callee),t}return o.value},PV=NV(MV),FV=(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=>OV(e,a,aV())));throw mV(t,i?.callee),t}return o.value})(MV),IV=(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 rV;return a.issues.length?{success:!1,error:new(e??jV)(a.issues.map(e=>OV(e,i,aV())))}:{success:!0,data:a.value}})(MV),LV=(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=>OV(e,i,aV())))}:{success:!0,data:a.value}})(MV),RV=(e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return NV(e)(t,n,i)})(MV),zV=(e=>(t,n,r)=>NV(e)(t,n,r))(MV),BV=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},VV=/^-?\d+n?$/,HV=/^-?\d+(?:\.\d+)?$/,UV=/^(?:true|false)$/i,WV=/^null$/i,GV=/^undefined$/i,KV=B(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),qV={number:`number`,bigint:`bigint`,object:`date`},JV=B(`$ZodCheckGreaterThan`,(e,t)=>{KV.init(e,t);let n=qV[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:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),YV=B(`$ZodCheckMinLength`,(e,t)=>{var n;KV.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!cV(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=kV(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),XV=B(`$ZodCheckStringFormat`,(e,t)=>{var n,r;KV.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=()=>{})}),ZV=B(`$ZodCheckRegex`,(e,t)=>{XV.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})}}),QV={major:4,minor:3,patch:6},$V=B(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=QV;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=TV(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 rV;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=TV(e,t))});else{if(e.issues.length===t)continue;r||=TV(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(TV(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new rV;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 rV;return o.then(e=>t(e,r,a))}return t(o,r,a)}}dV(e,`~standard`,()=>({validate:t=>{try{let n=IV(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return LV(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),eH=B(`$ZodString`,(e,t)=>{$V.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??BV(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}}),tH=B(`$ZodNumber`,(e,t)=>{$V.init(e,t),e._zod.pattern=e._zod.bag.pattern??HV,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}}),nH=B(`$ZodBoolean`,(e,t)=>{$V.init(e,t),e._zod.pattern=UV,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}}),rH=B(`$ZodBigInt`,(e,t)=>{$V.init(e,t),e._zod.pattern=VV,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}}),iH=B(`$ZodUndefined`,(e,t)=>{$V.init(e,t),e._zod.pattern=GV,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}}),aH=B(`$ZodNull`,(e,t)=>{$V.init(e,t),e._zod.pattern=WV,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}}),oH=B(`$ZodAny`,(e,t)=>{$V.init(e,t),e._zod.parse=e=>e}),sH=B(`$ZodUnknown`,(e,t)=>{$V.init(e,t),e._zod.parse=e=>e}),cH=B(`$ZodDate`,(e,t)=>{$V.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 lH(e,t,n){e.issues.length&&t.issues.push(...EV(n,e.issues)),t.value[n]=e.value}var uH=B(`$ZodArray`,(e,t)=>{$V.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;elH(t,n,e))):lH(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function dH(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...EV(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function fH(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=xV(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function pH(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in 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=>dH(e,n,i,t,u))):dH(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var mH=B(`$ZodObject`,(e,t)=>{if($V.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=sV(()=>fH(t));dV(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=hV,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],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>dH(n,t,e,s,r))):dH(i,t,e,s,r)}return i?pH(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}});function hH(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=>!TV(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=>OV(e,r,aV())))}),t)}var gH=B(`$ZodUnion`,(e,t)=>{$V.init(e,t),dV(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),dV(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),dV(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),dV(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=>lV(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=>hH(t,i,e,a)):hH(s,i,e,a)}}),_H=B(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,gH.init(e,t);let n=e._zod.parse;dV(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=sV(()=>{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(!hV(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)}}),vH=B(`$ZodTuple`,(e,t)=>{$V.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=[...n].reverse().findIndex(e=>e._zod.optin!==`optional`),c=s===-1?0:n.length-s;if(!t.rest){let t=a.length>n.length,i=a.length=a.length&&l>=c)continue;let t=e._zod.run({value:a[l],issues:[]},i);t instanceof Promise?o.push(t.then(e=>yH(e,r,l))):yH(t,r,l)}if(t.rest){let e=a.slice(n.length);for(let n of e){l++;let e=t.rest._zod.run({value:n,issues:[]},i);e instanceof Promise?o.push(e.then(e=>yH(e,r,l))):yH(e,r,l)}}return o.length?Promise.all(o).then(()=>r):r}});function yH(e,t,n){e.issues.length&&t.issues.push(...EV(n,e.issues)),t.value[n]=e.value}var bH=B(`$ZodRecord`,(e,t)=>{$V.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!gV(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);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(...EV(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...EV(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}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(typeof o==`string`&&HV.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>OV(e,r,aV())),input:o,path:[o],inst:e});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(...EV(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...EV(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),xH=B(`$ZodLiteral`,(e,t)=>{if($V.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?vV(e):e?vV(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}});function SH(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var CH=B(`$ZodOptional`,(e,t)=>{$V.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,dV(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),dV(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${lV(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=>SH(t,e.value)):SH(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),wH=B(`$ZodNullable`,(e,t)=>{$V.init(e,t),dV(e._zod,`optin`,()=>t.innerType._zod.optin),dV(e._zod,`optout`,()=>t.innerType._zod.optout),dV(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${lV(e.source)}|null)$`):void 0}),dV(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)}),TH=B(`$ZodPipe`,(e,t)=>{$V.init(e,t),dV(e._zod,`values`,()=>t.in._zod.values),dV(e._zod,`optin`,()=>t.in._zod.optin),dV(e._zod,`optout`,()=>t.out._zod.optout),dV(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=>EH(e,t.in,n)):EH(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>EH(e,t.out,n)):EH(r,t.out,n)}});function EH(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var DH=B(`$ZodCodec`,(e,t)=>{$V.init(e,t),dV(e._zod,`values`,()=>t.in._zod.values),dV(e._zod,`optin`,()=>t.in._zod.optin),dV(e._zod,`optout`,()=>t.out._zod.optout),dV(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=>OH(e,t,n)):OH(r,t,n)}else{let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>OH(e,t,n)):OH(r,t,n)}}});function OH(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=>kH(e,r,t.out,n)):kH(e,r,t.out,n)}else{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(r=>kH(e,r,t.in,n)):kH(e,r,t.in,n)}}function kH(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}var AH=B(`$ZodReadonly`,(e,t)=>{$V.init(e,t),dV(e._zod,`propValues`,()=>t.innerType._zod.propValues),dV(e._zod,`values`,()=>t.innerType._zod.values),dV(e._zod,`optin`,()=>t.innerType?._zod?.optin),dV(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(jH):jH(r)}});function jH(e){return e.value=Object.freeze(e.value),e}var MH=B(`$ZodTemplateLiteral`,(e,t)=>{$V.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||_V.has(typeof e))n.push(vV(`${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:`string`,code:`invalid_type`}),n)}),NH,PH=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function FH(){return new PH}(NH=globalThis).__zod_globalRegistry??(NH.__zod_globalRegistry=FH()),globalThis.__zod_globalRegistry;function IH(e,t){return new e({type:`string`,...bV(t)})}function LH(e,t){return new e({type:`number`,checks:[],...bV(t)})}function RH(e,t){return new e({type:`boolean`,...bV(t)})}function zH(e,t){return new e({type:`bigint`,...bV(t)})}function BH(e,t){return new e({type:`undefined`,...bV(t)})}function VH(e,t){return new e({type:`null`,...bV(t)})}function HH(e){return new e({type:`any`})}function UH(e){return new e({type:`unknown`})}function WH(e,t){return new e({type:`date`,...bV(t)})}function GH(e,t){return new JV({check:`greater_than`,...bV(t),value:e,inclusive:!0})}function KH(e,t){return new YV({check:`min_length`,...bV(t),minimum:e})}function qH(e,t){return new ZV({check:`string_format`,format:`regex`,...bV(t),pattern:e})}var JH=B(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);$V.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>PV(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>IV(e,t,n),e.parseAsync=async(t,n)=>FV(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>LV(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)]},{parent:!0}),e.with=e.check,e.clone=(t,n)=>yV(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),YH=B(`ZodMiniString`,(e,t)=>{eH.init(e,t),JH.init(e,t)});function V(e){return IH(YH,e)}var XH=B(`ZodMiniNumber`,(e,t)=>{tH.init(e,t),JH.init(e,t)});function H(e){return LH(XH,e)}var ZH=B(`ZodMiniBoolean`,(e,t)=>{nH.init(e,t),JH.init(e,t)});function QH(e){return RH(ZH,e)}var $H=B(`ZodMiniBigInt`,(e,t)=>{rH.init(e,t),JH.init(e,t)});function eU(e){return zH($H,e)}var tU=B(`ZodMiniUndefined`,(e,t)=>{iH.init(e,t),JH.init(e,t)});function nU(e){return BH(tU,e)}var rU=B(`ZodMiniNull`,(e,t)=>{aH.init(e,t),JH.init(e,t)});function iU(e){return VH(rU,e)}var aU=B(`ZodMiniAny`,(e,t)=>{oH.init(e,t),JH.init(e,t)});function oU(){return HH(aU)}var sU=B(`ZodMiniUnknown`,(e,t)=>{sH.init(e,t),JH.init(e,t)});function cU(){return UH(sU)}var lU=B(`ZodMiniDate`,(e,t)=>{cH.init(e,t),JH.init(e,t)});function uU(e){return WH(lU,e)}var dU=B(`ZodMiniArray`,(e,t)=>{uH.init(e,t),JH.init(e,t)});function U(e,t){return new dU({type:`array`,element:e,...bV(t)})}var fU=B(`ZodMiniObject`,(e,t)=>{mH.init(e,t),JH.init(e,t),dV(e,`shape`,()=>t.shape)});function W(e,t){return new fU({type:`object`,shape:e??{},...bV(t)})}function pU(e,t){return SV(e,t)}function mU(e,t){return CV(e,t)}function hU(e,t){return wV(CU,e,t)}var gU=B(`ZodMiniUnion`,(e,t)=>{gH.init(e,t),JH.init(e,t)});function G(e,t){return new gU({type:`union`,options:e,...bV(t)})}var _U=B(`ZodMiniDiscriminatedUnion`,(e,t)=>{_H.init(e,t),JH.init(e,t)});function vU(e,t,n){return new _U({type:`union`,options:t,discriminator:e,...bV(n)})}var yU=B(`ZodMiniTuple`,(e,t)=>{vH.init(e,t),JH.init(e,t)});function K(e,t,n){let r=t instanceof $V;return new yU({type:`tuple`,items:e,rest:r?t:null,...bV(r?n:t)})}var bU=B(`ZodMiniRecord`,(e,t)=>{bH.init(e,t),JH.init(e,t)});function xU(e,t,n){return new bU({type:`record`,keyType:e,valueType:t,...bV(n)})}var SU=B(`ZodMiniLiteral`,(e,t)=>{xH.init(e,t),JH.init(e,t)});function q(e,t){return new SU({type:`literal`,values:Array.isArray(e)?e:[e],...bV(t)})}var CU=B(`ZodMiniOptional`,(e,t)=>{CH.init(e,t),JH.init(e,t)});function J(e){return new CU({type:`optional`,innerType:e})}var wU=B(`ZodMiniNullable`,(e,t)=>{wH.init(e,t),JH.init(e,t)});function TU(e){return new wU({type:`nullable`,innerType:e})}function EU(e){return J(TU(e))}var DU=B(`ZodMiniPipe`,(e,t)=>{TH.init(e,t),JH.init(e,t)}),OU=B(`ZodMiniCodec`,(e,t)=>{DU.init(e,t),DH.init(e,t)});function kU(e,t,n){return new OU({type:`pipe`,in:e,out:t,transform:n.decode,reverseTransform:n.encode})}var AU=B(`ZodMiniReadonly`,(e,t)=>{AH.init(e,t),JH.init(e,t)});function Y(e){return new AU({type:`readonly`,innerType:e})}var jU=B(`ZodMiniTemplateLiteral`,(e,t)=>{MH.init(e,t),JH.init(e,t)});function MU(e,t){return new jU({type:`template_literal`,parts:e,...bV(t)})}function NU(e,t={}){return _z(e,t)}function PU(e,t,n){if(t===`Error`)return FU;if(t===`Panic`)return IU;if(cL(t,{strict:!1})){let e=rL(t,0,4);if(e===`0x08c379a0`)return FU;if(e===`0x4e487b71`)return IU}let r=vz(e,t,n);if(r.type!==`error`)throw new Cz({name:t,type:`error`});return r}var FU=NU({inputs:[{name:`message`,type:`string`}],name:`Error`,type:`error`}),IU=NU({inputs:[{name:`reason`,type:`uint8`}],name:`Panic`,type:`error`});D();var LU=class extends E{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`})}};function RU(e,t={}){return iv(e,t)}function zU(e){return ov(e)}Ha();function BU(e,t){let n=e.walk(e=>`data`in e);if(!n?.data)return e;if(n.data===zU(RU(`error FnSelectorNotRecognized()`)))return new LU;let r=null;for(let e of t.calls){let t=e;if(t.abi)try{if(!Va({abi:t.abi,data:n.data}))continue;r=t}catch{}}return r?ls(n,{abi:r.abi,address:r.to,args:r.args,functionName:r.functionName}):e}var X=()=>MU([`0x`,V()],{message:`Needs string in format ^0x[A-Fa-f0-9]{40}$.`}),Z=()=>MU([`0x`,V()],{message:`Needs string in format ^0x[A-Fa-f0-9]+$.`}),Q=()=>kU(Z(),H(),{decode:e=>sL(e),encode:e=>$I(e)}),VU=()=>kU(Z(),eU({message:`Required bigint`}),{decode:e=>oL(e),encode:e=>$I(e)});function HU(e){return G(e)}var UU=class extends z{constructor(){super(...arguments),Object.defineProperty(this,`name`,{enumerable:!0,configurable:!0,writable:!0,value:`Schema.ValidationError`})}};function WU(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+=GU(e));return new UU(n)}function GU(e,t=0){let n=KU(e.path),r=`- ${n?`${n}: `:``}`,i=` `.repeat(t+1),a=r;switch(e.code){case`invalid_type`:{let t=e.expected,n=e.input?qU(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+=GU(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+=GU(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+=GU(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 KU(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 qU(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}var JU=G([W({selector:Z(),to:X(),type:q(`call`)}),W({limit:VU(),period:G([q(`minute`),q(`hour`),q(`day`),q(`week`),q(`month`),q(`year`)]),token:J(G([X(),iU()])),type:q(`spend`)})]),YU=W({expiry:Q(),prehash:J(QH()),publicKey:Z(),role:G([q(`admin`),q(`normal`)]),type:G([q(`p256`),q(`secp256k1`),q(`webauthnp256`)])}),XU=W({...YU.shape,permissions:Y(U(JU))}),ZU;(function(e){e.AssetDiffAsset=G([W({address:J(G([X(),iU()])),decimals:J(G([H(),iU()])),direction:G([q(`incoming`),q(`outgoing`)]),fiat:J(W({currency:V(),value:kU(V(),H(),{decode:e=>Number(e),encode:e=>String(e)})})),name:J(G([V(),iU()])),symbol:V(),type:q(`erc20`),value:VU()}),W({address:J(G([X(),iU()])),direction:G([q(`incoming`),q(`outgoing`)]),fiat:J(W({currency:V(),value:kU(V(),H(),{decode:e=>Number(e),encode:e=>String(e)})})),name:J(G([V(),iU()])),symbol:V(),type:q(`erc721`),uri:V(),value:VU()}),W({address:iU(),decimals:J(G([H(),iU()])),direction:G([q(`incoming`),q(`outgoing`)]),fiat:J(W({currency:V(),value:kU(V(),H(),{decode:e=>Number(e),encode:e=>String(e)})})),symbol:V(),type:iU(),value:VU()})]),e.Response=xU(Z(),Y(U(Y(K([X(),Y(U(e.AssetDiffAsset))])))))})(ZU||={});var QU;(function(e){e.Request=Y(U(XU)),e.Response=Y(U(W({...XU.shape,hash:Z()})))})(QU||={});var $U;(function(e){e.Response=xU(Z(),W({currency:V(),value:V()}))})($U||={});var eW;(function(e){e.Request=W({feePayer:J(X()),feeToken:J(X()),nonce:J(VU())})})(eW||={});var tW;(function(e){e.Request=Y(U(W({address:X(),value:VU()})))})(tW||={});var nW;(function(e){e.Request=Y(U(W({hash:Z()}))),e.Response=Y(U(W({hash:Z()})))})(nW||={});var rW=W({eoa:X(),executionData:Z(),nonce:Z(),signature:Z()}),iW=W({...rW.shape,chainId:Q()}),aW=G([W({combinedGas:VU(),encodedFundTransfers:Y(U(Z())),encodedPreCalls:Y(U(Z())),eoa:X(),executionData:Z(),expiry:VU(),funder:X(),funderSignature:Z(),isMultichain:QH(),nonce:VU(),payer:X(),paymentAmount:VU(),paymentMaxAmount:VU(),paymentRecipient:X(),paymentSignature:Z(),paymentToken:X(),settler:X(),settlerContext:Z(),signature:Z(),supportedAccountImplementation:X()}),W({combinedGas:VU(),encodedFundTransfers:Y(U(Z())),encodedPreCalls:Y(U(Z())),eoa:X(),executionData:Z(),expiry:VU(),funder:X(),funderSignature:Z(),isMultichain:QH(),nonce:VU(),payer:X(),paymentRecipient:X(),paymentSignature:Z(),paymentToken:X(),prePaymentAmount:VU(),prePaymentMaxAmount:VU(),settler:X(),settlerContext:Z(),signature:Z(),supportedAccountImplementation:X(),totalPaymentAmount:VU(),totalPaymentMaxAmount:VU()})]);VU();var oW=W({address:G([X(),iU()]),decimals:J(H()),deficit:VU(),fiat:J(W({currency:V(),value:V()})),name:J(V()),required:VU(),symbol:J(V())}),sW=W({additionalAuthorization:EU(W({address:X(),chainId:Q(),nonce:Q(),r:Z(),s:Z(),yParity:Q()})),assetDeficits:J(U(oW)),authorizationAddress:J(G([X(),iU()])),chainId:Q(),ethPrice:VU(),extraPayment:VU(),feeTokenDeficit:VU(),intent:aW,nativeFeeEstimate:W({maxFeePerGas:VU(),maxPriorityFeePerGas:VU()}),orchestrator:X(),paymentTokenDecimals:H(),txGas:VU()}),cW=W({...W({multiChainRoot:J(G([Z(),iU()])),quotes:Y(U(sW)).check(KH(1)),ttl:H()}).shape,hash:Z(),r:Z(),s:Z(),v:J(Z()),yParity:J(Z())}),lW=W({address:X(),decimals:H(),feeToken:J(QH()),interop:J(QH()),nativeRate:J(VU()),symbol:V(),uid:V()}),uW=V().check(qH(/^[A-Z0-9]+$/)),dW=W({address:X(),chainId:Q(),nonce:Q()}),fW=W({...dW.shape,r:Z(),s:Z(),yParity:Q()}),pW=W({data:J(Z()),to:X(),value:J(VU())}),mW;(function(e){e.Parameters=W({address:X(),secret:V()}),e.Request=W({method:q(`account_getOnrampContactInfo`),params:Y(K([e.Parameters]))}),e.Response=W({email:J(V()),phone:J(V()),phoneVerifiedAt:J(H())})})(mW||={});var hW;(function(e){e.Parameters=W({address:X()}),e.Request=W({method:q(`account_onrampStatus`),params:Y(K([e.Parameters]))}),e.Response=W({email:J(H()),phone:J(H())})})(hW||={});var gW;(function(e){e.Parameters=W({phone:V(),walletAddress:X()}),e.Request=W({method:q(`account_resendVerifyPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(gW||={});var _W;(function(e){e.Parameters=W({email:V().check(qH(/^.*@.*$/)),walletAddress:X()}),e.Request=W({method:q(`account_setEmail`),params:Y(K([e.Parameters]))}),e.Response=iU()})(_W||={});var vW;(function(e){e.Parameters=W({phone:V(),walletAddress:X()}),e.Request=W({method:q(`account_setPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(vW||={});var yW;(function(e){e.Parameters=W({chainId:Q(),email:V(),signature:Z(),token:V(),walletAddress:X()}),e.Request=W({method:q(`account_verifyEmail`),params:Y(K([e.Parameters]))}),e.Response=iU()})(yW||={});var bW;(function(e){e.Parameters=W({code:V(),phone:V(),walletAddress:X()}),e.Request=W({method:q(`account_verifyPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(bW||={});var xW;(function(e){e.Request=W({method:q(`health`),params:nU()}),e.Response=W({quoteSigner:X(),status:V(),version:V()})})(xW||={});var SW;(function(e){e.Parameters=W({address:X(),chainId:Q(),tokenAddress:X(),value:VU()}),e.Request=W({method:q(`wallet_addFaucetFunds`),params:Y(K([e.Parameters]))}),e.Response=W({message:J(V()),transactionHash:Z()})})(SW||={});var CW;(function(e){e.Parameters=W({chainId:Q(),id:Z()}),e.Request=W({method:q(`wallet_getAccounts`),params:Y(K([e.Parameters]))}),e.Response=Y(U(W({address:X(),keys:QU.Response})))})(CW||={});var wW;(function(e){e.Parameters=W({address:X()}),e.Request=W({method:q(`wallet_getAuthorization`),params:Y(K([e.Parameters]))}),e.Response=W({authorization:fW,data:Z(),to:X()})})(wW||={});var TW;(function(e){e.Request=W({method:q(`wallet_getCapabilities`),params:J(K([Y(U(H()))]))});let t=W({address:X(),version:J(G([V(),iU()]))});e.Response=xU(Z(),W({contracts:W({accountImplementation:t,accountProxy:t,legacyAccountImplementations:Y(U(t)),legacyOrchestrators:Y(U(G([W({orchestrator:t,simulator:t}),t]))),orchestrator:t,simulator:t}),fees:W({quoteConfig:W({constantRate:J(G([H(),iU()])),gas:J(W({intentBuffer:J(H()),txBuffer:J(H())})),rateTtl:H(),ttl:H()}),recipient:X(),tokens:Y(U(lW))})}))})(TW||={});var EW;(function(e){let t=G([q(`native`),q(`erc20`),q(`erc721`),V()]);e.Parameters=W({account:X(),assetFilter:J(xU(Z(),Y(U(W({address:G([X(),q(`native`)]),type:t}))))),assetTypeFilter:J(Y(U(t))),chainFilter:J(Y(U(Q())))}),e.Request=W({method:q(`wallet_getAssets`),params:Y(K([e.Parameters]))}),e.Price=W({currency:V(),value:kU(V(),H(),{decode:e=>Number(e),encode:e=>String(e)})}),e.Response=xU(V(),Y(U(HU([W({address:X(),balance:VU(),metadata:TU(W({decimals:H(),fiat:EU(e.Price),name:V(),symbol:V()})),type:q(`erc20`)}),W({address:TU(q(`native`)),balance:VU(),metadata:TU(W({decimals:H(),fiat:EU(e.Price),name:J(V()),symbol:J(V())})),type:q(`native`)})]))))})(EW||={});var DW;(function(e){e.Request=W({method:q(`wallet_getCallsStatus`),params:Y(K([Z()]))}),e.Response=W({id:V(),receipts:J(Y(U(W({blockHash:Z(),blockNumber:Q(),chainId:Q(),gasUsed:Q(),logs:Y(U(W({address:X(),data:Z(),topics:Y(U(Z()))}))),status:Z(),transactionHash:Z()})))),status:H()})})(DW||={});var OW;(function(e){e.Parameters=W({address:X(),index:J(H()),limit:H(),sort:G([q(`asc`),q(`desc`)])}),e.Request=W({method:q(`wallet_getCallsHistory`),params:Y(K([e.Parameters]))}),e.Transaction=W({chainId:Q(),transactionHash:Z()}),e.Capabilities=W({assetDiffs:J(ZU.Response),feeTotals:J($U.Response),quotes:J(Y(U(sW)))}),e.Entry=W({capabilities:e.Capabilities,id:Z(),index:H(),keyHash:Z(),status:H(),timestamp:H(),transactions:Y(U(e.Transaction))}),e.Response=Y(U(e.Entry))})(OW||={});var kW;(function(e){e.Parameters=W({address:X(),chainIds:J(Y(U(Q())))}),e.Request=W({method:q(`wallet_getKeys`),params:Y(K([e.Parameters]))}),e.Response=xU(Z(),QU.Response)})(kW||={});var AW;(function(e){e.Capabilities=W({authorizeKeys:J(QU.Request),meta:eW.Request,preCall:J(QH()),preCalls:J(Y(U(rW))),requiredFunds:J(tW.Request),revokeKeys:J(nW.Request)}),e.ResponseCapabilities=W({assetDiffs:J(ZU.Response),authorizeKeys:EU(QU.Response),feePayerDigest:J(Z()),feeSignature:J(Z()),feeTotals:J($U.Response),revokeKeys:EU(nW.Response)}),e.Parameters=W({calls:Y(U(pW)),capabilities:e.Capabilities,chainId:Q(),from:J(X()),key:J(W({prehash:QH(),publicKey:Z(),type:YU.shape.type}))}),e.Request=W({method:q(`wallet_prepareCalls`),params:Y(K([e.Parameters]))}),e.Response=W({capabilities:e.ResponseCapabilities,context:W({preCall:J(hU(iW)),quote:J(hU(cW))}),digest:Z(),key:EU(W({prehash:QH(),publicKey:Z(),type:YU.shape.type})),signature:Z(),typedData:W({domain:G([W({chainId:G([Q(),H()]),name:V(),verifyingContract:X(),version:V()}),W({})]),message:xU(V(),cU()),primaryType:V(),types:xU(V(),cU())})})})(AW||={});var jW;(function(e){e.Capabilities=W({authorizeKeys:QU.Request}),e.Parameters=W({address:X(),capabilities:e.Capabilities,chainId:J(H()),delegation:X()}),e.Request=W({method:q(`wallet_prepareUpgradeAccount`),params:Y(K([e.Parameters]))}),e.Response=W({capabilities:e.Capabilities,chainId:Q(),context:W({address:X(),authorization:dW,chainId:Q(),preCall:rW}),digests:W({auth:Z(),exec:Z()}),typedData:W({domain:G([W({chainId:G([Q(),H()]),name:V(),verifyingContract:X(),version:V()}),W({})]),message:xU(V(),cU()),primaryType:V(),types:xU(V(),cU())})})})(jW||={});var MW;(function(e){e.Request=W({method:q(`wallet_feeTokens`),params:J(nU())}),e.Response=xU(Z(),Y(U(W({address:X(),decimals:H(),nativeRate:J(VU()),symbol:V()}))))})(MW||={});var NW;(function(e){e.Parameters=W({capabilities:J(W({feeSignature:J(Z())})),context:W({preCall:J(hU(iW)),quote:J(hU(cW))}),key:J(W({prehash:QH(),publicKey:Z(),type:YU.shape.type})),signature:Z()}),e.Request=W({method:q(`wallet_sendPreparedCalls`),params:Y(K([e.Parameters]))}),e.Response=W({id:Z()})})(NW||={});var PW;(function(e){e.Parameters=W({context:W({address:X(),authorization:dW,chainId:Q(),preCall:rW}),signatures:W({auth:Z(),exec:Z()})}),e.Request=W({method:q(`wallet_upgradeAccount`),params:Y(K([e.Parameters]))}),e.Response=nU()})(PW||={});var FW;(function(e){e.Parameters=W({address:Z(),chainId:Q(),digest:Z(),signature:Z()}),e.Request=W({method:q(`wallet_verifySignature`),params:Y(K([e.Parameters]))}),e.Response=W({proof:EU(W({account:X(),initPreCall:EU(rW),keyHash:Z()})),valid:QH()})})(FW||={});async function IW(e,t){try{let n=`wallet_getAuthorization`,r=await Mm(()=>e.request({method:n,params:[RV(wW.Parameters,t)]}),{cacheKey:`${e.uid}.${n}.${t.address}`});return zV(wW.Response,r)}catch(e){throw $W(e),e}}async function LW(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 Mm(()=>e.request({method:r,params:n?[n]:void 0},{retryCount:0}),{cacheKey:`${e.uid}.${r}.${n?.join(`,`)}`}),a=t.raw?i:zV(TW.Response,i);return t.chainIds?a:Object.values(a)[0]}catch(e){throw $W(e),e}}async function RW(e,t){let{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a}=t;try{let t=await e.request({method:`wallet_getAssets`,params:[RV(EW.Parameters,{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a})]}),o=zV(EW.Response,t),s=Object.entries(o).reduce((e,[t,n])=>(e[sL(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 $W(e),e}}async function zW(e,t){let{id:n}=t;try{let t=await e.request({method:`wallet_getCallsStatus`,params:[n]});return zV(DW.Response,t)}catch(e){throw $W(e),e}}async function BW(e,t){try{let n=await e.request({method:`wallet_getCallsHistory`,params:[RV(OW.Parameters,t)]});return zV(OW.Response,n)}catch(e){throw $W(e),e}}async function VW(e,t){let{address:n,chainIds:r}=t;try{let t=await e.request({method:`wallet_getKeys`,params:[RV(kW.Parameters,{address:n,chainIds:r})]});return zV(kW.Response,t)}catch(e){throw $W(e),e}}async function HW(e){let t=`health`,n=await Mm(()=>e.request({method:t}),{cacheKey:`${e.uid}.${t}`});return zV(xW.Response,n)}async function UW(e,t){let{address:n,capabilities:r,chain:i=e.chain,key:a}=t,o=t.calls.map(e=>({data:e.abi?wz(Tz(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:[RV(AW.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(zV(AW.Response,t),{_raw:t})}catch(e){throw $W(e),ZW(e,{calls:t.calls}),e}}async function WW(e,t){let{address:n,chain:r=e.chain,delegation:i,...a}=t;try{let t=await e.request({method:`wallet_prepareUpgradeAccount`,params:[RV(jW.Parameters,LB({address:n,capabilities:a,chainId:r?.id,delegation:i}))]},{retryCount:0});return zV(jW.Response,t)}catch(e){throw $W(e),ZW(e),e}}async function GW(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;try{let t=await e.request({method:`wallet_sendPreparedCalls`,params:[RV(NW.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 zV(NW.Response,t)}catch(e){throw $W(e),ZW(e),e}}async function KW(e,t){let{email:n,walletAddress:r}=t;try{let t=await e.request({method:`account_setEmail`,params:[RV(_W.Parameters,{email:n,walletAddress:r})]},{retryCount:0});return zV(_W.Response,t)}catch(e){throw $W(e),ZW(e),e}}async function qW(e,t){let{context:n,signatures:r}=t;try{await e.request({method:`wallet_upgradeAccount`,params:[RV(PW.Parameters,{context:n,signatures:r})]},{retryCount:0})}catch(e){throw $W(e),ZW(e),e}}async function JW(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;try{let t=await e.request({method:`account_verifyEmail`,params:[RV(yW.Parameters,{chainId:n,email:r,signature:i,token:a,walletAddress:o})]},{retryCount:0});return zV(yW.Response,t)}catch(e){throw $W(e),ZW(e),e}}async function YW(e,t){let{signature:n}=t,{signature:r,capabilities:{feeSignature:i,...a},...o}=t.response,s=QW({capabilities:a,...o}),c=rR({payload:ML(eL(JSON.stringify(s))),signature:fR(n)}),{quoteSigner:l}=await HW(e);return c===l}async function XW(e,t){let{address:n,chain:r=e.chain,digest:i,signature:a}=t;try{async function t(){return{proof:null,valid:await vv(e,{address:n,hash:i,signature:a})}}let o=await(async()=>{let o=await e.request({method:`wallet_verifySignature`,params:[RV(FW.Parameters,{address:n,chainId:r?.id,digest:i,signature:a})]},{retryCount:0}).catch(t);return o.valid?o:t()})();return zV(FW.Response,o)}catch(e){throw $W(e),e}}function ZW(e,{calls:t}={}){if(!(e instanceof E))return;let n=e=>{try{if(e.name===`ContractFunctionExecutionError`){let t=e.cause.name===`ContractFunctionRevertedError`?e.cause.data:void 0;if(t)return PU([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`?NU(`error Unauthorized()`):{inputs:[],name:(r??n).split(`(`)[0],type:`error`}}catch{return}},r=BU(e,{calls:t??[]}),i=n(r);if(!(r===e&&!i))throw new eG(Object.assign(r,{abiError:i}))}function QW(e){if(typeof e==`object`&&e){if(Array.isArray(e))return e.map(QW);let t={};for(let n of Object.keys(e).sort())t[n]=QW(e[n]);return t}return e}function $W(e){if(e.name===`$ZodError`)throw WU(e)}var eG=class extends z{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}},tG={anvil:{http:`http://localhost:9119`},prod:{http:`https://rpc.porto.sh`},stg:{http:`https://stg-rpc.porto.sh`}};function nG(e){return t=>{let n=e.public(t),r=e.relay(t);return qv({key:nG.type,name:`Relay Proxy`,async request({method:e,params:t},i){return rG(e)?r.request({method:e,params:t},i):n.request({method:e,params:t},i)},type:nG.type})}}(function(e){e.type=`relayProxy`})(nG||={});function rG(e){return!!(e.startsWith(`wallet_`)||e.startsWith(`account_`)||e===`health`)}var iG=new Map;function aG(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=nG({public:n.transports[l.id]??Yv(l.rpcUrls.default.http.map(e=>$v(e))),relay:o}),d=[r,ZF(l)].filter(Boolean).join(`:`);if(iG.has(d))return iG.get(d);let f=rh({...t,chain:l,pollingInterval:1e3,transport:u});return iG.set(d,f),f}var oG=W({chainId:J(Q()),expiry:Q(),hash:Z(),id:Z(),prehash:J(QH()),publicKey:Z(),role:G([q(`admin`),q(`session`)]),type:G([q(`address`),q(`p256`),q(`secp256k1`),q(`webauthn-p256`)])}),sG=Y(U(HU([W({signature:V(),to:X()}),W({signature:V()}),W({to:X()})])).check(KH(1))),cG=W({limit:G([MU([H(),`.`,H()]),MU([H()])]).check(qH(/^\d+(\.\d+)?$/)),symbol:J(G([q(`native`),uW]))}),lG=W({addresses:Y(U(X()))}),uG=Y(U(W({limit:VU(),period:G([q(`minute`),q(`hour`),q(`day`),q(`week`),q(`month`),q(`year`)]),token:J(X())}))),dG=W({calls:J(sG),signatureVerification:J(lG),spend:J(uG)}),fG=W({...oG.shape,feeToken:J(TU(cG)),permissions:J(dG)}),pG=W({address:X(),chainId:J(Q()),expiry:H(),id:Z(),key:pU(oG,{publicKey:!0,type:!0}),permissions:W({calls:sG,signatureVerification:J(lG),spend:J(uG)})}),mG=W({address:J(X()),chainId:J(Q()),expiry:H().check(GH(1)),feeToken:TU(cG),key:J(pU(oG,{publicKey:!0,type:!0})),permissions:W({calls:sG,signatureVerification:J(lG),spend:J(uG)})}),hG=pG;function gG(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 _G(e){let{chainId:t,expiry:n,key:r}=e;return dB({chainId:t,expiry:n,permissions:e.permissions??{},publicKey:r.publicKey,role:`session`,type:r.type})}var vG;(function(e){e.GetCapabilitiesResponse=W({status:G([q(`supported`),q(`unsupported`)])})})(vG||={});var yG;(function(e){e.Request=G([QH(),W({chainId:J(Q()),label:J(V())})])})(yG||={});var bG;(function(e){e.Request=HU([W({chainId:J(H()),domain:J(V()),expirationTime:J(uU()),issuedAt:J(uU()),nonce:V(),notBefore:J(uU()),requestId:J(V()),resources:J(Y(U(V()))),scheme:J(V()),statement:J(V()),uri:J(V()),version:J(q(`1`))}),W({authUrl:G([V(),W({logout:V(),nonce:V(),verify:V()})]),chainId:J(Q()),domain:J(V()),expirationTime:J(uU()),issuedAt:J(uU()),notBefore:J(uU()),requestId:J(V()),resources:J(Y(U(V()))),scheme:J(V()),statement:J(V()),uri:J(V()),version:J(q(`1`))})]),e.Response=W({message:V(),signature:Z(),token:J(V())})})(bG||={});var xG;(function(e){e.GetCapabilitiesResponse=W({supported:QH(),tokens:Y(U(lW))}),e.Request=G([uW,X()])})(xG||={});var SG;(function(e){e.Request=mG})(SG||={});var CG;(function(e){e.GetCapabilitiesResponse=W({supported:QH()})})(CG||={});var wG;(function(e){e.GetCapabilitiesResponse=W({supported:QH()}),e.Request=W({id:J(G([Z(),iU()]))}),e.Response=Y(U(pG))})(wG||={});var TG;(function(e){e.Request=Y(U(W({context:cU(),signature:Z()}))),e.Response=e.Request})(TG||={});var EG;(function(e){e.Request=V()})(EG||={});var DG;(function(e){e.GetCapabilitiesResponse=W({supported:QH(),tokens:Y(U(lW))}),e.Request=Y(U(HU([W({address:X(),value:VU()}),W({symbol:uW,value:G([MU([H(),`.`,H()]),MU([H()])]).check(qH(/^\d+(\.\d+)?$/))})])))})(DG||={});var OG=W({...pU(oG,{id:!0,publicKey:!0,type:!0}).shape,credentialId:J(V()),privateKey:J(oU())}),kG;(function(e){e.Parameters=W({address:X(),secret:V()}),e.Request=W({method:q(`account_getOnrampContactInfo`),params:Y(K([e.Parameters]))}),e.Response=W({email:J(V()),phone:J(V()),phoneVerifiedAt:J(H())})})(kG||={});var AG;(function(e){e.Parameters=W({address:X()}),e.Request=W({method:q(`account_onrampStatus`),params:Y(K([e.Parameters]))}),e.Response=W({email:J(H()),phone:J(H())})})(AG||={});var jG;(function(e){e.Parameters=W({email:V(),walletAddress:X()}),e.Request=W({method:q(`account_resendVerifyPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(jG||={});var MG;(function(e){e.Parameters=W({email:V(),walletAddress:X()}),e.Request=W({method:q(`account_setEmail`),params:Y(K([e.Parameters]))}),e.Response=iU()})(MG||={});var NG;(function(e){e.Parameters=W({email:V(),walletAddress:X()}),e.Request=W({method:q(`account_setPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(NG||={});var PG;(function(e){e.Parameters=W({chainId:Q(),email:V(),token:V(),walletAddress:X()}),e.Request=W({method:q(`account_verifyEmail`),params:Y(K([e.Parameters]))}),e.Response=iU()})(PG||={});var FG;(function(e){e.Parameters=W({code:V(),phone:V(),walletAddress:X()}),e.Request=W({method:q(`account_verifyPhone`),params:Y(K([e.Parameters]))}),e.Response=iU()})(FG||={});var IG;(function(e){e.Parameters=W({address:J(X()),chainId:J(Q()),token:J(X()),value:J(V())}),e.Request=W({method:q(`wallet_addFunds`),params:Y(K([e.Parameters]))}),e.Response=W({id:Z()})})(IG||={});var LG;(function(e){e.Request=W({method:q(`eth_accounts`),params:J(cU())}),e.Response=Y(U(X()))})(LG||={});var RG;(function(e){e.Request=W({method:q(`eth_chainId`),params:J(cU())}),e.Response=Z()})(RG||={});var zG;(function(e){e.Request=W({method:q(`eth_requestAccounts`),params:J(cU())}),e.Response=Y(U(X()))})(zG||={});var BG;(function(e){e.Request=W({method:q(`eth_sendTransaction`),params:Y(K([W({capabilities:J(W({feeToken:J(xG.Request),merchantUrl:J(EG.Request),preCalls:J(TG.Request)})),chainId:J(Q()),data:J(Z()),from:J(X()),to:X(),value:J(VU())})]))}),e.Response=Z()})(BG||={});var VG;(function(e){e.Request=W({method:q(`eth_signTypedData_v4`),params:Y(K([X(),V()]))}),e.Response=Z()})(VG||={});var HG;(function(e){e.Parameters=W({address:J(X()),chainId:J(Q())}),e.Request=W({method:q(`wallet_getAdmins`),params:J(Y(K([e.Parameters])))}),e.Key=OG,e.Response=W({address:X(),chainId:Q(),keys:Y(U(e.Key))})})(HG||={});var UG;(function(e){e.Capabilities=W({feeToken:J(xG.Request)}),e.Parameters=W({address:J(X()),capabilities:J(e.Capabilities),chainId:J(Q()),key:pU(oG,{publicKey:!0,type:!0})}),e.Request=W({method:q(`wallet_grantAdmin`),params:Y(K([e.Parameters]))}),e.Response=W({address:X(),chainId:Q(),key:HG.Key})})(UG||={});var WG;(function(e){e.Parameters=mG,e.Request=W({method:q(`wallet_grantPermissions`),params:Y(K([e.Parameters]))}),e.ResponseCapabilities=W({preCalls:J(TG.Response)}),e.Response=W({...pG.shape,capabilities:J(oU())})})(WG||={});var GG;(function(e){e.Parameters=W({address:J(X())}),e.Request=W({method:q(`wallet_getAccountVersion`),params:J(Y(K([e.Parameters])))}),e.Response=W({current:V(),latest:V()})})(GG||={});var KG;(function(e){e.Parameters=W({address:J(X()),chainIds:J(Y(U(Q())))}),e.Request=W({method:q(`wallet_getPermissions`),params:J(Y(K([e.Parameters])))}),e.Response=wG.Response})(KG||={});var qG;(function(e){e.Capabilities=W({feeToken:J(xG.Request)}),e.Parameters=W({address:J(X()),capabilities:J(e.Capabilities),chainId:J(Q()),id:Z()}),e.Request=W({method:q(`wallet_revokeAdmin`),params:Y(K([e.Parameters]))}),e.Response=void 0})(qG||={});var JG;(function(e){e.Capabilities=W({feeToken:J(xG.Request)}),e.Parameters=W({address:J(X()),capabilities:J(e.Capabilities),id:Z()}),e.Request=W({method:q(`wallet_revokePermissions`),params:Y(K([e.Parameters]))}),e.Response=void 0})(JG||={});var YG;(function(e){e.Request=W({method:q(`wallet_switchEthereumChain`),params:Y(K([W({chainId:Z()})]))})})(YG||={});var XG;(function(e){e.Parameters=W({context:cU(),signatures:W({auth:Z(),exec:Z()})}),e.Request=W({method:q(`wallet_upgradeAccount`),params:Y(K([e.Parameters]))}),e.ResponseCapabilities=W({admins:J(Y(U(HG.Key))),permissions:J(wG.Response)}),e.Response=W({address:X(),capabilities:J(e.ResponseCapabilities)})})(XG||={});var ZG;(function(e){e.Request=W({method:q(`personal_sign`),params:Y(K([Z(),X()]))}),e.Response=Z()})(ZG||={});var QG;(function(e){e.Request=W({method:q(`porto_ping`),params:J(nU())}),e.Response=q(`pong`)})(QG||={});var $G;(function(e){e.Capabilities=W({createAccount:J(yG.Request),email:J(QH()),grantAdmins:J(Y(U(pU(oG,{publicKey:!0,type:!0})))),grantPermissions:J(SG.Request),preCalls:J(TG.Request),selectAccount:J(G([QH(),W({address:X(),key:J(W({credentialId:J(V()),publicKey:Z()}))})])),signInWithEthereum:J(bG.Request)}),e.Parameters=W({capabilities:J(e.Capabilities),chainIds:J(Y(U(Q())))}),e.Request=W({method:q(`wallet_connect`),params:J(Y(K([e.Parameters])))}),e.ResponseCapabilities=W({admins:J(Y(U(W({...pU(oG,{id:!0,publicKey:!0,type:!0}).shape,credentialId:J(V())})))),permissions:J(wG.Response),preCalls:J(TG.Response),signInWithEthereum:J(bG.Response)}),e.Response=W({accounts:Y(U(W({address:X(),capabilities:J(e.ResponseCapabilities)}))),chainIds:Y(U(Q()))})})($G||={});var eK;(function(e){e.Request=W({method:q(`wallet_disconnect`),params:J(cU())}),e.Response=void 0})(eK||={});var tK;(function(e){e.Parameters=EW.Parameters,e.Request=EW.Request,e.Response=EW.Response})(tK||={});var nK;(function(e){e.Request=W({method:q(`wallet_getCallsStatus`),params:K([Z()])}),e.Response=W({atomic:QH(),chainId:Q(),id:V(),receipts:J(Y(U(W({blockHash:Z(),blockNumber:Z(),gasUsed:Z(),logs:Y(U(W({address:X(),data:Z(),topics:Y(U(Z()))}))),status:Z(),transactionHash:Z()})))),status:H(),version:V()})})(nK||={});var rK;(function(e){e.Parameters=OW.Parameters,e.Request=OW.Request,e.Transaction=OW.Transaction,e.Capabilities=OW.Capabilities,e.Entry=OW.Entry,e.Response=OW.Response})(rK||={});var iK;(function(e){e.Request=W({method:q(`wallet_getCapabilities`),params:J(G([Y(K([G([Z(),nU()])])),Y(K([G([Z(),nU()]),Y(U(Q()))]))]))}),e.Response=xU(Z(),W({atomic:vG.GetCapabilitiesResponse,feeToken:xG.GetCapabilitiesResponse,merchant:CG.GetCapabilitiesResponse,permissions:wG.GetCapabilitiesResponse,requiredFunds:DG.GetCapabilitiesResponse}))})(iK||={});var aK;(function(e){e.Parameters=W({address:X(),chainIds:J(Y(U(Q())))}),e.Request=W({method:q(`wallet_getKeys`),params:Y(K([e.Parameters]))}),e.Response=Y(U(fG))})(aK||={});var oK;(function(e){e.Capabilities=W({feeToken:J(xG.Request),merchantUrl:J(EG.Request),permissions:J(wG.Request),preCalls:J(TG.Request),requiredFunds:J(DG.Request)}),e.Parameters=W({calls:Y(U(W({data:J(Z()),to:X(),value:J(VU())}))),capabilities:J(e.Capabilities),chainId:J(Q()),from:J(X()),key:J(pU(oG,{prehash:!0,publicKey:!0,type:!0})),version:J(V())}),e.Request=W({method:q(`wallet_prepareCalls`),params:Y(K([e.Parameters]))}),e.Response=W({capabilities:J(W({...AW.ResponseCapabilities.shape,quote:J(cW)})),chainId:Z(),context:W({account:W({address:X()}),calls:e.Parameters.shape.calls,nonce:VU(),quote:J(hU(cW))}),digest:Z(),key:pU(oG,{prehash:!0,publicKey:!0,type:!0}),typedData:W({domain:G([W({chainId:Q(),name:V(),verifyingContract:X(),version:V()}),W({})]),message:xU(V(),cU()),primaryType:V(),types:xU(V(),cU())})})})(oK||={});var sK;(function(e){e.Capabilities=W({...$G.Capabilities.shape,label:J(V())}),e.Parameters=W({address:X(),capabilities:J(e.Capabilities),chainId:J(Q())}),e.Request=W({method:q(`wallet_prepareUpgradeAccount`),params:Y(K([e.Parameters]))}),e.Response=W({context:cU(),digests:W({auth:Z(),exec:Z()})})})(sK||={});var cK;(function(e){e.Capabilities=oK.Capabilities,e.Request=W({method:q(`wallet_sendCalls`),params:Y(K([mU(oK.Parameters,{key:!0})]))}),e.Response=W({id:Z()})})(cK||={});var lK;(function(e){e.Parameters=W({capabilities:oK.Response.shape.capabilities,chainId:Z(),context:oK.Response.shape.context,key:oK.Response.shape.key,signature:Z()}),e.Request=W({method:q(`wallet_sendPreparedCalls`),params:Y(K([e.Parameters]))}),e.Response=Y(U(W({capabilities:J(xU(V(),cU())),id:Z()})))})(lK||={});var uK;(function(e){e.Parameters=W({address:X(),chainId:J(Q()),digest:Z(),signature:Z()}),e.Request=W({method:q(`wallet_verifySignature`),params:Y(K([e.Parameters]))}),e.Response=W({address:X(),chainId:Q(),proof:J(cU()),valid:QH()})})(uK||={});var dK=vU(`method`,[PG.Request,IG.Request,LG.Request,RG.Request,zG.Request,BG.Request,VG.Request,GG.Request,HG.Request,KG.Request,UG.Request,WG.Request,sK.Request,qG.Request,JG.Request,XG.Request,ZG.Request,QG.Request,$G.Request,eK.Request,tK.Request,nK.Request,rK.Request,iK.Request,aK.Request,oK.Request,cK.Request,lK.Request,YG.Request,uK.Request]);function fK(e,t){let n=IV(e,t);if(n.error){let e=n.error.issues.at(0);throw e?.code===`invalid_union`&&e.note===`No matching discriminator`?new lI:new mI(WU(n.error))}return{...t,_decoded:n.data}}async function pK(e){e.persist.hasHydrated()||await new Promise(t=>{e.persist.onFinishHydration(()=>t(!0)),setTimeout(()=>t(!0),100)})}function mK(e){if(e)return e.startsWith(`/`)?`${window.location.origin}${e}`:e}function hK(e){let{config:t,getMode:n,id:r,store:i}=e,{announceProvider:a}=t;function o(e={}){let a=s(),o=e.request??fK(dK,{method:`wallet_getCapabilities`,params:e.chainIds?[void 0,e.chainIds]:void 0});return Mm(()=>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`?sL(t):t;return aG({_internal:e},{chainId:n})}let c=new Map,l=[],u=jI(),d=MI({...u,async request(e){return await pK(i),BB(async()=>{let r;try{r=fK(dK,e)}catch(t){let n=t;if(!(n instanceof lI))throw n;if(e.method.startsWith(`wallet_`))throw new bI;return s().request(e)}let a=i.getState();switch(r.method){case`account_verifyEmail`:{if(a.accounts.length===0)throw new xI;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 SI;let f=u?a.accounts.find(e=>YL(e.address,u)):a.accounts[0];if(!f)throw new yI;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`:{let{address:e,value:o,token:c}=r.params[0]??{},l=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0],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 xI;return a.accounts.map(yK);case`eth_chainId`:return $I(a.chainIds[0]);case`eth_requestAccounts`:{if(a.accounts.length>0&&c.get(`eth_requestAccounts`))return a.accounts.map(yK);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(yK)}case`eth_sendTransaction`:{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 SI;let p=l?a.accounts.find(e=>YL(e.address,l)):a.accounts[0];if(l&&!p)throw new yI;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:mK(t.merchantUrl??e?.merchantUrl)});return m}case`eth_signTypedData_v4`:{if(a.accounts.length===0)throw new xI;let[e,o]=r._decoded.params,c=a.accounts.find(t=>YL(t.address,e));if(!c)throw new yI;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 xI;let[{address:e,capabilities:o,chainId:c,key:l}]=r._decoded.params??[{}],d=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!d)throw new yI;let f=s(c);if(_K([...d.keys??[]])?.some(e=>e.publicKey?.toLowerCase()===l.publicKey.toLowerCase()))throw new mI({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?YL(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=_K([...d.keys??[],p]);return u.emit(`message`,{data:null,type:`adminsChanged`}),RV(UG.Response,{address:d.address,chainId:f.chain.id,key:m.at(-1)})}case`wallet_grantPermissions`:{if(a.accounts.length===0)throw new xI;let[{address:e,chainId:o,...c}]=r._decoded.params??[{}],l=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!l)throw new yI;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?YL(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`}),RV(WG.Response,{...gG(f,{address:l.address})})}case`wallet_getAdmins`:{if(a.accounts.length===0)throw new xI;let[{address:e,chainId:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!c)throw new yI;let l=s(o),u=_K(await n().actions.getKeys({account:c,internal:{client:l,config:t,request:r,store:i}}));return RV(HG.Response,{address:c.address,chainId:l.chain.id,keys:u})}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 xI;let[{address:e}]=r._decoded.params??[{}],o=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!o)throw new yI;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 xI;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=a.accounts.find(t=>YL(t.address,e));if(!c)throw new yI;let l=s(),u=await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}});return RV(aK.Response,u)}case`wallet_getPermissions`:{if(a.accounts.length===0)throw new xI;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!c)throw new yI;let l=s();return vK(await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}}),{address:c.address})}case`wallet_revokeAdmin`:{if(a.accounts.length===0)throw new xI;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!l)throw new yI;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=>YL(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 xI;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>YL(t.address,e)):a.accounts[0];if(!l)throw new yI;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=>YL(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=>YL(t.address,e.account.address));if(!c)throw new yI;let{account:d}=await n().actions.upgradeAccount({account:c,context:e,internal:{client:o,config:t,request:r,store:i},signatures:a}),f=_K(d.keys??[]),p=vK(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 xI;let[e,o]=r._decoded.params,c=a.accounts.find(e=>YL(e.address,o));if(!c)throw new yI;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 vI)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:yK(e),capabilities:{admins:e.keys?_K(e.keys):[],permissions:e.keys?vK(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 xI);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 RV(tK.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_getCallsHistory`:{let[e]=r._decoded.params??[],a=s(),o=await n().actions.getCallsHistory({...e,internal:{client:a,config:t,request:r,store:i}});return RV(rK.Response,o)}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 yI;if(l&&l!==f.chain.id)throw new SI;let{digest:m,...h}=await n().actions.prepareCalls({account:TB(p),calls:o,feeToken:c?.feeToken,internal:{client:f,config:t,request:r,store:i},key:u,merchantUrl:mK(t.merchantUrl??c?.merchantUrl),requiredFunds:c?.requiredFunds});return RV(oK.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&&sL(a)!==d.chain.id)throw new SI;return[{id:await n().actions.sendPreparedCalls({account:TB(u),context:o,internal:{client:d,config:t,request:r,store:i},key:c,signature:l})}]}case`wallet_sendCalls`:{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 SI;let f=u?a.accounts.find(e=>YL(e.address,u)):a.accounts[0];if(u&&!f)throw new yI;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:mK(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=sL(a);if(!t.chains.find(e=>e.id===o))throw new TI;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 XW(o,{address:t,digest:i,signature:a}),address:t,chainId:$I(o.chain.id)}}}},{enabled:[`eth_accounts`,`eth_chainId`,`eth_requestAccounts`,`wallet_getAssets`,`wallet_getCapabilities`,`wallet_getKeys`,`wallet_getPermissions`,`wallet_getAccountVersion`,`wallet_connect`].includes(e.method),id:ZF(e)})}});function f(){let e=()=>{},t=()=>{};pK(i).then(()=>{o().catch(()=>{}),e(),e=i.subscribe(e=>e.accounts,e=>{u.emit(`accountsChanged`,e.map(yK))},{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=gK(d,a);return()=>{e(),t(),n()}}let p=f();return Object.assign(d,{_internal:{destroy:p}})}function gK(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 nV({info:{icon:n,name:r,rdns:i,uuid:zB()},provider:e})}function _K(e){return e.map(e=>{if(e.role===`admin`)try{return RV(HG.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 vK(e,{address:t}){return e.map(e=>{if(e.chainId&&e.role===`session`&&!(e.expiry>0&&e.expiry()=>{})}}async function xK(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=rL(t.data,0,4);if(cL(e.signature))return e.signature===n;if(yz(e.signature)!==n)return!1}return!0}))),a=t.keys?.find(e=>e.role===`admin`&&e.privateKey);return i??a}function SK(e={}){let t=e.id??0;return{prepare(e){return CK({id:t++,...e})},get id(){return t}}}function CK(e){return{...e,jsonrpc:`2.0`}}function wK(){return null}var TK=mG;function EK(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 DK(e,t={}){if(!e)return;let n={chainId:t.chainId??e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,permissions:xB(e,{feeTokens:t.feeTokens}),role:`session`};if(e?.key)return dB({...n,publicKey:e.key.publicKey,type:e.key.type??`secp256k1`});if(typeof globalThis.crypto?.subtle?.generateKey==`function`)try{return await uB(n)}catch(e){if(!OK(e))throw e}return sB(n)}function OK(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`)}var kK=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,AK=/^(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})?$/,jK=/^localhost(:[0-9]{1,5})?$/,MK=/^[a-zA-Z0-9]{8,}$/,NK=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/,PK=/^(?:(?[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)?/,FK=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;function IK(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 BK({field:`chainId`,metaMessages:[`- Chain ID must be a EIP-155 chain ID.`,`- See https://eips.ethereum.org/EIPS/eip-155`,``,`Provided value: ${t}`]});if(!(kK.test(n)||AK.test(n)||jK.test(n)))throw new BK({field:`domain`,metaMessages:[`- Domain must be an RFC 3986 authority.`,`- See https://www.rfc-editor.org/rfc/rfc3986`,``,`Provided value: ${n}`]});if(!MK.test(a))throw new BK({field:`nonce`,metaMessages:[`- Nonce must be at least 8 characters.`,`- Nonce must be alphanumeric.`,``,`Provided value: ${a}`]});if(!LK(u))throw new BK({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 BK({field:`version`,metaMessages:[`- Version must be '1'.`,``,`Provided value: ${d}`]});if(l&&!NK.test(l))throw new BK({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 BK({field:`statement`,metaMessages:[`- Statement must not include '\\n'.`,``,`Provided value: ${r}`]})}let f=qL(e.address,{checksum:!0}),p=`${l?`${l}://${n}`:n} wants you to sign in with your Ethereum account:\n${f}\n\n${e.statement?`${e.statement}\n`:``}`,m=`URI: ${u}\nVersion: ${d}\nChain ID: ${t}\nNonce: ${a}\nIssued At: ${i.toISOString()}`;if(r&&(m+=`\nExpiration Time: ${r.toISOString()}`),o&&(m+=`\nNot Before: ${o.toISOString()}`),s&&(m+=`\nRequest ID: ${s}`),c){let e=` -Resources:`;for(let t of c){if(!LK(t))throw new BK({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}`}m+=e}return`${p}\n${m}`}function LK(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=RK(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 RK(e){return e.match(/(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)}function zK(e){let{scheme:t,statement:n,...r}=e.match(PK)?.groups??{},{chainId:i,expirationTime:a,issuedAt:o,notBefore:s,requestId:c,...l}=e.match(FK)?.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 BK=class extends z{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 VK(e){let{address:t,authUrl:n,message:r,signature:i,publicKey:a}=e,{chainId:o}=zK(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 HK(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?UK(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 IK({...t,address:n.address,chainId:r,domain:i,nonce:u,resources:o,uri:a,version:s})}function UK(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:WK(n.logout,t),nonce:WK(n.nonce,t),verify:WK(n.verify,t)}}function WK(e,t){return!t||!e.startsWith(`/`)?e:t+e}function GK(e){let t=XI(e);return YI(`0x19`,eL(`Ethereum Signed Message: -`+iL(t)),t)}function KK(e){return ML(GK(e))}function qK(e,t){let{as:n}=t,r=YK(e),i=zR(new Uint8Array(r.length));return r.encode(i),n===`Hex`?QI(i.bytes):i.bytes}function JK(e,t={}){let{as:n=`Hex`}=t;return qK(e,{as:n})}function YK(e){return Array.isArray(e)?XK(e.map(e=>YK(e))):ZK(e)}function XK(e){let t=e.reduce((e,t)=>e+t.length,0),n=QK(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 ZK(e){let t=typeof e==`string`?yL(e):e,n=QK(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 QK(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=16777215)return 3;if(e<=4294967295)return 4;throw new z(`Length is too large.`)}function $K(e){return eq(e,{presign:!0})}function eq(e,t={}){let{presign:n}=t;return ML(YI(`0x05`,JK(tq(n?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function tq(e){let{address:t,chainId:n,nonce:r}=e,i=pR(e);return[n?$I(n):`0x`,t,r?$I(r):`0x`,...i?vR(i):[]]}async function nq(e,t){let{account:n=e.account}=t,r=n?TB(n):void 0;if(!r)throw Error(`account is required.`);let{domain:{name:i,version:a}}=await oh(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 rq(e,t){let{account:n=e.account,chainIds:r}=t,i=n?TB(n):void 0;if(!i)throw Error(`account is required.`);let a=await VW(e,{address:i.address,chainIds:r});return Object.entries(a).flatMap(([e,t])=>t.map(t=>pB(t,{chainId:Number(e)})))}async function iq(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?TB(n):void 0,f=t.key??(d?DB(d,{role:`admin`}):void 0),p=t.authorizeKeys?.some(e=>e.role===`session`),{contracts:m,fees:{tokens:h}}=await LW(e,{chainId:i?.id}),g=p?m.orchestrator.address:void 0,_=(t.authorizeKeys??[]).map(e=>bB(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?bB(f,{feeTokens:h}):void 0},S=await(async()=>o?await UW(rh({chain:e.chain,transport:$v(o)}),x).catch(t=>(console.error(t),UW(e,x))):await UW(e,x))(),{capabilities:ee,context:C,digest:te,signature:ne,typedData:re}=S;if(o&&!await YW(e,{response:S._raw,signature:ne}))throw Error(`cannot verify integrity of \`wallet_prepareCalls\` response from ${o}`);return{capabilities:{...ee,quote:C.quote},context:C,digest:te,key:f,typedData:re}}async function aq(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 LW(e,{chainId:i.id}),s=t.delegation??a.accountProxy.address,c=r.some(e=>e.role===`session`)?a.orchestrator.address:void 0,{capabilities:l,chainId:u,context:d,digests:f,typedData:p}=await WW(e,{address:n,authorizeKeys:r.map(e=>{let t=e.role===`session`?e.permissions:{};return bB({...e,permissions:t},{feeTokens:o,orchestrator:c})}),chain:i,delegation:s}),m=TB({address:n,keys:r});return{capabilities:l,chainId:u,context:{...d,account:m},digests:f,typedData:p}}async function oq(e,t){let{account:n=e.account,chain:r=e.chain,webAuthn:i}=t;if(!r)throw Error("`chain` is required.");let a=n?TB(n):void 0;if(!a)throw Error("`account` is required.");let o=t.key??DB(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 iq(e,{account:a,authorizeKeys:o,calls:c,chain:r,feeToken:t.feeToken,key:s,preCalls:!0,revokeKeys:l});return{context:u,signature:await yB(s,{address:null,payload:d,webAuthn:i})}})),{capabilities:c,context:l,digest:u}=await iq(e,{...t,account:a,chain:r,key:o,preCalls:s}),d=await(async()=>o?await yB(o,{address:null,payload:u,webAuthn:i,wrap:!1}):await a.sign({hash:u}))();return await sq(e,{capabilities:c.feeSignature?{feeSignature:c.feeSignature}:void 0,context:l,key:o,signature:d})}async function sq(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;return await GW(e,{capabilities:n,context:r,key:i?bB(i):void 0,signature:a})}async function cq(e,t){let{email:n,walletAddress:r}=t;return await KW(e,{email:n,walletAddress:r})}async function lq(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 aq(e,{...t,address:n.address,authorizeKeys:r}),o={auth:await n.sign({hash:i.auth}),exec:await n.sign({hash:i.exec})};return await lq(e,{...a,signatures:o})}let{context:n,signatures:r}=t,i=TB(n.account);return await qW(e,{context:n,signatures:r}),i}async function uq(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;return await JW(e,{chainId:n,email:r,signature:i,token:a,walletAddress:o})}var dq=`0x8010801080108010801080108010801080108010801080108010801080108010`,fq=GR(`(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data`);function pq(e){if(typeof e==`string`){if(rL(e,-32)!==`0x8010801080108010801080108010801080108010801080108010801080108010`)throw new hq(e)}else uR(e.authorization)}function mq(e){let{data:t,signature:n}=e;pq(e);let r=rR({payload:$K(e.authorization),signature:mR(e.authorization)}),i=UR(fq,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??r,t??`0x`]);return YI(n,i,$I(iL(i),{size:32}),dq)}var hq=class extends z{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`})}};async function gq(e,t){let{address:n}=t,{authorization:r,data:i,to:a}=await IW(e,{address:n});return mq({authorization:{...r,nonce:BigInt(r.nonce),r:BigInt(r.r),s:BigInt(r.s)},data:i,signature:t.signature,to:a})}function _q(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:Az(e.value,t.decimals)}})}async function vq(e,t){let{chain:n=e.chain}=t??{};return await LW(e,{chainId:n?.id}).then(e=>e.fees.tokens)}async function yq(e,t){let{addressOrSymbol:n}=t;return(await vq(e,t)).find(yq.predicate(n))}(function(e){function t(e){return t=>e?XL(e)?YL(t.address,e):e===`native`?t.address===dv:e===t.symbol:!1}e.predicate=t})(yq||={});async function bq(e,t){let{chain:n=e.chain,store:r}=t??{},i=r?.getState()??{},a=t?.addressOrSymbol??i.feeToken;return(await vq(e,{chain:n}).then(e=>e.filter(e=>e.feeToken)))?.find(e=>a?a===`native`&&e.address===`0x0000000000000000000000000000000000000000`||XL(a)&&YL(e.address,a)?!0:a===e.symbol:!1)}function xq(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 bK({actions:{async addFunds(){throw new bI},async createAccount(e){let{admins:t,email:r,eoa:o,label:c,permissions:l,internal:u,signInWithEthereum:d}=e,{client:f}=u,p=o??EB(nR()),m=await vq(f),h=n?lB():await cB({createFn:i?.createFn,label:c||`${p.address.slice(0,8)}\u2026${p.address.slice(-6)}`,rpId:s,userId:_L(p.address)}),g=await DK(l,{chainId:f.chain.id,feeTokens:m}),_=t?.map(e=>dB(e)),v=await lq(f,{account:p,authorizeKeys:[h,..._??[],...g?[g]:[]]});a=p.address,r&&c&&await cq(f,{email:c,walletAddress:v.address});let y=await(async()=>{if(!d)return;let e=await HK(f,d,{address:v.address}),t=await OB(p,{payload:KK(eL(e))});return{message:e,signature:await gq(f,{address:v.address,signature:t})}})();return{account:{...v,signInWithEthereum:y}}},async getAccountVersion(e){let{address:t,internal:n}=e,{client:r}=n,{contracts:i}=await LW(r),{accountImplementation:a}=i,o=await nq(r,{account:TB(a)}).then(e=>e.version),s=await nq(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 RW(o,{account:t,assetFilter:r,assetTypeFilter:i,chainFilter:n})},async getCallsHistory(e){let{internal:t,...n}=e,{client:r}=t;return await BW(r,n)},async getCallsStatus(e){let{id:t,internal:n}=e,{client:r}=n,i=await zW(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 LW(i,{chainIds:t?t.map(e=>sL(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;return RB([...await rq(i,{account:t,chainIds:n}),...t.keys??[]],e=>e.publicKey)},async grantAdmin(e){let{account:t,internal:n}=e,{client:r}=n,a=dB(e.key,{chainId:r.chain.id}),o=await bq(r,{addressOrSymbol:e.feeToken,store:n.store}),{id:s}=await oq(r,{account:t,authorizeKeys:[a],feeToken:o?.address,webAuthn:i});return await Zm(r,{id:s,pollingInterval:500}),{key:a}},async grantPermissions(e){let{account:t,internal:n,permissions:r}=e,{client:i}=n,a=await vq(i),o=await DK(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 iq(i,{account:t,authorizeKeys:[o],key:s,preCalls:!0});return await sq(i,{context:c,key:s,signature:await yB(s,{address:null,payload:l})}),{key:o}},async loadAccounts(e){let{internal:t,permissions:r,signInWithEthereum:o}=e,{client:c}=t,l=await vq(c),u=await DK(r,{chainId:c.chain.id,feeTokens:l}),{digest:d,digestType:f,message:p}=await(async()=>{if(o&&e.address){let t=await HK(c,o,{address:e.address});return{context:void 0,digest:KK(eL(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 Jz({challenge:d,getFn:i?.getFn,rpId:s}),r=t.raw.response;return{address:TL(new Uint8Array(r.userHandle)),credentialId:t.raw.id,webAuthnSignature:t}})(),_=TB({address:m,keys:[...await rq(c,{account:m,chainIds:[c.chain.id]}),...u?[u]:[]].map((e,t)=>t===0&&e.type===`webauthn-p256`?mB({...e,credential:{id:h,publicKey:LL(e.publicKey)},id:m,rpId:s}):e)}),v=DB(_,{role:`admin`}),y=await(async()=>{if(d!==`0x`)return g?wB(CB(g),{keyType:`webauthn-p256`,publicKey:v.publicKey}):await yB(v,{address:_.address,payload:d})})();if(u){let{context:e,digest:t}=await iq(c,{account:_,authorizeKeys:[u],preCalls:!0});await sq(c,{context:e,key:v,signature:await yB(v,{address:null,payload:t})})}let b=await(async()=>{if(o){if(f===`siwe`&&p&&y)return{message:p,signature:await gq(c,{address:_.address,signature:y})};{let e=await HK(c,o,{address:_.address}),t=await OB(_,{payload:KK(eL(e)),role:`admin`});return{message:e,signature:await gq(c,{address:_.address,signature:t})}}}})();return{accounts:[{..._,signInWithEthereum:b}]}},async prepareCalls(e){let{account:t,calls:n,internal:i,merchantUrl:a}=e,{client:o}=i,s=e.key??await xK({account:t,calls:n});if(!s)throw Error(`cannot find authorized key to sign with.`);let[c,l]=await Promise.all([vq(o),bq(o,{addressOrSymbol:e.feeToken,store:i.store})]),u=_q(e.requiredFunds??[],{tokens:c}),{capabilities:d,context:f,digest:p,typedData:m}=await iq(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([vq(u),bq(u,{store:c.store})]),p=n?lB():await cB({createFn:i?.createFn,label:a||`${t.slice(0,8)}\u2026${t.slice(-6)}`,rpId:s,userId:_L(t)}),m=await DK(l,{chainId:u.chain.id,feeTokens:d}),{context:h,digests:g}=await aq(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{id:n}=await oq(a,{account:t,feeToken:(await bq(a,{addressOrSymbol:e.feeToken,store:r.store}))?.address,revokeKeys:[o],webAuthn:i});await Zm(a,{id:n})}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{id:n}=await oq(a,{account:t,feeToken:(await bq(a,{addressOrSymbol:e.feeToken,store:r.store}))?.address,revokeKeys:[o],webAuthn:i});await Zm(a,{id:n})}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;if(!t)throw Error(`account required for relay mode`);let u=await xK({account:t,calls:a,permissionsId:e.permissionsId}),[d,f]=await Promise.all([vq(l),bq(l,{addressOrSymbol:e.feeToken,store:s.store})]),p=_q(e.requiredFunds??[],{tokens:d}),m=await oq(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 Zm(l,{id:m.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new DI({message:`Call bundle with id: `+e+` not found.`}):new cI({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 sq(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 OB(t,{key:o,payload:KK(n),webAuthn:i});return gq(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=XF(e.data),s=o.domain?.name===`Orchestrator`,c=await OB(t,{key:a,payload:tz(o),replaySafe:!s,webAuthn:i});return s?c:gq(r,{address:t.address,signature:c})},async upgradeAccount(e){let{account:t,context:n,internal:r,signatures:i}=e,{client:a}=r;return await lq(a,{context:n,signatures:i}),o&&await cq(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.`);return await uq(c,{chainId:n,email:r,signature:await OB(t,{key:l,payload:ML(eL(`${r}${a}`)),webAuthn:i}),token:a,walletAddress:s})}},config:e,name:`rpc`})}function Sq(e={}){let{fallback:t=xq(),host:n=WB.prod,renderer:r=KB(),theme:i,themeController:a}=e,o=new Set,s=SK();function c(e,t){return new Promise((n,r)=>{let i=a=>{let s=a.find(t=>t.request.id===e);if(!s&&a.length===0){o.delete(i),r(new vI);return}s&&(s.status!==`success`&&s.status!==`error`||(o.delete(i),s.status===`success`?n(s.result):r(NI(s.error)),t.setState(t=>({...t,requestQueue:t.requestQueue.filter(t=>t.request.id!==e)}))))};o.add(i)})}function l(e){return MI({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`}]}}),c(n.id,e)}},{schema:wK()})}return bK({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 l(r).request(n)},async createAccount(e){let{internal:t}=e,{client:n,config:r,request:i,store:a}=t,{storage:o}=r,s=l(a);return{account:await(async()=>{if(i.method===`wallet_connect`){let[{capabilities:e,chainIds:t}]=i._decoded.params??[{}],a=wq(e?.signInWithEthereum?.authUrl??r.authUrl,{storage:o}),c=i.params?.[0]?.capabilities?.signInWithEthereum,l=await DK(e?.grantPermissions,{chainId:n.chain.id}),u=l?RV(TK,EK(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=>dB(e,{chainId:n.chain.id})).filter(Boolean),m=f.capabilities?.permissions?.map(e=>{try{let t=_G(zV(hG,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 VK({address:f.address,authUrl:a,message:e,publicKey:f.capabilities?.admins?.[0]?.publicKey,signature:t});return{message:e,signature:t,token:n}})();return{...TB({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=wq(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 l(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 l(i).request(a);return zV(tK.Response,o)},async getCallsHistory(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getCallsHistory`)throw Error(`Cannot get history for method: `+a.method);if(!r.supportsHeadless)return t.actions.getCallsHistory(e);let o=await l(i).request(a);return zV(rK.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 l(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 l(i).request(a):t.actions.getCapabilities(e)},async getKeys(e){let{account:n,chainIds:i,internal:a}=e,{store:o}=a;return RB([...await(async()=>{if(!r.supportsHeadless)return t.actions.getKeys(e);let a=await l(o).request({method:`wallet_getKeys`,params:[RV(aK.Parameters,{address:n.address,chainIds:i})]});return zV(aK.Response,a)})(),...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=dB(i.key);if(!a)throw Error(`no key found.`);let o=await Cq(t,e);return await l(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 DK(o,{chainId:n.chain.id});if(!s)throw Error(`no key found.`);let c=RV(TK,EK(s));return await l(i).request({method:`wallet_grantPermissions`,params:[c]}),{key:s}},async loadAccounts(e){let{internal:t}=e,{client:n,config:r,store:i}=t,{storage:a}=r,o=l(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=wq(t?.signInWithEthereum?.authUrl??r.authUrl,{storage:a}),c=s.params?.[0]?.capabilities?.signInWithEthereum,l=await DK(t?.grantPermissions,{chainId:n.chain.id}),u=l?RV(TK,EK(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=>dB(e)).filter(Boolean),n=e.capabilities?.permissions?.map(e=>{try{let t=_G(zV(hG,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 VK({address:e.address,authUrl:i,message:t,publicKey:e.capabilities?.admins?.[0]?.publicKey,signature:n});return{message:t,signature:n,token:r}})();return{...TB({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 Cq(i,e),c=l(a),u=zV(oK.Response,await c.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??[{}],c=await DK(s?.grantPermissions,{chainId:i.chain.id}),u=c?RV(TK,EK(c)):void 0,{context:d,digests:f}=await l(a).request({...o,params:[{...o.params?.[0],capabilities:{...o.params?.[0]?.capabilities,grantPermissions:u}}]}),p=d.account.keys?.map(e=>e.id===c?.id?{...e,...c}: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 Cq(r,e);return await l(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 l(i).request(a)}},async sendCalls(e){let{account:n,asTxHash:i,calls:a,chainId:o,internal:s,merchantUrl:c,requiredFunds:u}=e,{client:d,store:f,request:p}=s,m=l(f),h=await Cq(s,e),g=n?await xK({account:n,calls:a,permissionsId:e.permissionsId}):void 0;if(g?.role===`session`&&n){if(!r.supportsHeadless)return t.actions.sendCalls(e);try{let e=await m.request(RV(oK.Request,{method:`wallet_prepareCalls`,params:[{calls:a,capabilities:{...p._decoded.method===`wallet_sendCalls`?p._decoded.params?.[0]?.capabilities:void 0,feeToken:h,merchantUrl:c,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:oL(e.feeTokenDeficit)>0n))throw Error(`insufficient funds`);let r=await yB(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 Zm(d,{id:s.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new DI({message:`Call bundle with id: `+e+` not found.`}):new cI({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:c},...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:c},...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 l(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 l(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 l(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 l(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 l(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 l(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 Cq(e,t){let{config:{feeToken:n}}=e,{feeToken:r}=t??{};return r??n}function wq(e,{storage:t}){if(!e)return;let n=UK(e,typeof window<`u`?window.location.origin:void 0);return n&&t.setItem(`porto.authUrl`,n),n}var Tq=e=>!!e.dispatchFromDevtools&&typeof e.dispatch==`function`,Eq=new Map,Dq=e=>{let t=Eq.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},Oq=(e,t,n)=>{if(e===void 0)return{type:`untracked`,connection:t.connect(n)};let r=Eq.get(n.name);if(r)return{type:`tracked`,store:e,...r};let i={connection:t.connect(n),stores:{}};return Eq.set(n.name,i),{type:`tracked`,store:e,...i}},kq=(e,t)=>{if(t===void 0)return;let n=Eq.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&Eq.delete(e))},Aq=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]},jq=(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}=Oq(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||Aq(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}`},{...Dq(c.name),[s]:i.getState()}),l)}),i.devtools={cleanup:()=>{u&&typeof u.unsubscribe==`function`&&u.unsubscribe(),kq(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()])))),Tq(i)){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 Mq(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}Tq(i)&&i.dispatch(e)});case`DISPATCH`:switch(e.payload.type){case`RESET`:return p(m),s===void 0?u?.init(i.getState()):u?.init(Dq(c.name));case`COMMIT`:if(s===void 0){u?.init(i.getState());return}return u?.init(Dq(c.name));case`ROLLBACK`:return Mq(e.state,e=>{if(s===void 0){p(e),u?.init(i.getState());return}p(e[s]),u?.init(Dq(c.name))});case`JUMP_TO_STATE`:case`JUMP_TO_ACTION`:return Mq(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},Mq=(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)},Nq=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 Pq(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 Fq=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Fq(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Fq(t)(e)}}}},Iq=(e,t)=>(n,r,i)=>{let a={storage:Pq(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)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 d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Fq(u.getItem.bind(u))(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(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Lq=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},Rq=(e=>e?Lq(e):Lq);function zq(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function Bq(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=zq(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var Vq;function Hq(){return Vq||=Bq(`keyval-store`,`keyval`),Vq}function Uq(e,t=Hq()){return t(`readonly`,t=>zq(t.get(e)))}function Wq(e,t,n=Hq()){return n(`readwrite`,n=>(n.put(t,e),zq(n.transaction)))}function Gq(e,t=Hq()){return t(`readwrite`,t=>(t.delete(e),zq(t.transaction)))}function Kq(e){return e}function qq(){let e=typeof indexedDB<`u`?Bq(`porto`,`store`):void 0;return Kq({async getItem(t){let n=await Uq(t,e);return n===null?null:n},async removeItem(t){await Gq(t,e)},async setItem(t,n){await Wq(t,LB(n),e)},sizeLimit:1024*1024*50})}function Jq(){let e=new Map;return Kq({getItem(t){return e.get(t)??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,n)},sizeLimit:1/0})}var Yq=typeof window<`u`&&typeof document<`u`,Xq={announceProvider:!0,chains:qF,mode:Yq?Sq({host:WB.prod}):xq(),relay:$v(tG.prod.http),storage:Yq&&typeof indexedDB<`u`?qq():Jq(),storageKey:`porto.store`};function Zq(e={}){let t=e.chains??Xq.chains,n=Object.fromEntries(t.map(t=>[t.id,e.transports?.[t.id]??$v()])),r={announceProvider:e.announceProvider??Xq.announceProvider,authUrl:e.authUrl,chains:t,feeToken:e.feeToken,merchantUrl:e.merchantUrl,mode:e.mode??Xq.mode,relay:e.relay??Xq.relay,storage:e.storage??Xq.storage,storageKey:e.storageKey??Xq.storageKey,transports:n},i=Rq(jq(Nq(Iq(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=>LB(e)),chainIds:e.chainIds}),storage:r.storage,version:5})))),a=r.mode,o={config:r,getMode(){return a},id:zB(),setMode(e){return c?.(),a=e,c=e.setup({internal:o}),c},store:i},s=hK(o),c=a===null?()=>{}:a.setup({internal:o});return{_internal:o,config:r,destroy(){c(),s._internal.destroy()},provider:s}}var Qq=`http://127.0.0.1:9545`,$q=Object.freeze(Object.values(KF)),eJ=e=>$q.find(t=>t.id===e),tJ=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}},nJ=(e,t,n)=>{let r=tJ(e);if(t(r),r!=null){let e=eJ(r);e||={id:r,name:`Chain ${r}`,network:`chain-${r}`,nativeCurrency:{decimals:18,name:`Ether`,symbol:`ETH`},rpcUrls:{default:{http:[]},public:{http:[]}}},n(e)}else n(void 0)},rJ=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(`${Qq}${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`)}},iJ=e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2),aJ=e=>{if(e==null)return iJ(e);if(typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`){let t=e;try{let n=JSON.parse(t.message);return iJ({...e,message:n})}catch{return iJ(e)}}return iJ(e)},oJ=e=>!!e&&e.status===`ok`,sJ=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})),$=s(((e,t)=>{t.exports=sJ()}))();function cJ(){(0,y.useEffect)(()=>{window.__PORTO__||(window.__PORTO__=Zq())},[]);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,ee]=(0,y.useState)(null),C=(0,y.useRef)(null),te=(0,y.useRef)(null),ne=(0,y.useRef)(null),re=async()=>{if(!(!u||n)){f((await u.provider.request({method:`eth_requestAccounts`}))?.[0]??void 0);try{nJ(await u.provider.request({method:`eth_chainId`}),m,g)}catch{m(void 0),g(void 0)}}},ie=async()=>{if(!(!d||p==null)){try{await rJ(`/api/connection`,`POST`,[d,p])}catch{return}r(!0)}},ae=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 rJ(`/api/signing/response`,`POST`,{id:e,signature:n,error:null}),ee(n),s(null)}catch(t){let n=typeof t==`object`&&t&&`message`in t&&typeof t.message==`string`?t.message:String(t);try{await rJ(`/api/signing/response`,`POST`,{id:e,signature:null,error:n})}catch{}ee(null),s(null)}},oe=async()=>{if(!u||!i?.request)return;let e=Kv({transport:Jv(u.provider),chain:h});try{let{from:t,input:n,to:r,...a}=i.request,o=await e.sendTransaction({...a,account:t||(await e.getAddresses())[0],...n?{data:n}:{},...r?{to:r}:{},chain:h});x(o),await rJ(`/api/transaction/response`,`POST`,{id:i.id,hash:o,error:null}),v(await wv(e,{hash:o}))}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 rJ(`/api/transaction/response`,`POST`,{id:i.id,hash:null,error:t})}catch{}}},se=(0,y.useCallback)(()=>{C.current&&=(window.clearInterval(C.current),null),te.current&&=(window.clearInterval(te.current),null),a(null),s(null),x(null),v(null),f(void 0),m(void 0),g(void 0),r(!1),rJ(`/api/connection`,`POST`,null)},[]);return(0,y.useEffect)(()=>{ne.current&&c&&ne.current!==c&&se(),ne.current=c},[c,se]),(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||nJ(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 rJ(`/api/transaction/request`);oJ(n)&&(window.clearInterval(t),e&&a(n.data))}catch{}},1e3);return C.current=t,()=>{e=!1,window.clearInterval(t),C.current===t&&(C.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 rJ(`/api/signing/request`);oJ(n)&&(window.clearInterval(t),e&&s(n.data))}catch{}},1e3);return te.current=t,()=>{e=!1,window.clearInterval(t),te.current===t&&(te.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:re,disabled:n,children:`Connect Wallet`}),u&&d&&!n&&(0,$.jsx)(`button`,{type:`button`,className:`wallet-confirm`,onClick:ie,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)(`button`,{type:`button`,className:`wallet-send`,onClick:oe,children:`Sign & Send`}),(0,$.jsx)(`div`,{className:`box`,children:(0,$.jsx)(`pre`,{children:iJ(i.request)})})]}),u&&d&&n&&!i&&o&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`section-title`,children:`Message / Data to Sign`}),(0,$.jsx)(`button`,{type:`button`,className:`wallet-send`,onClick:ae,children:`Sign`}),(0,$.jsx)(`div`,{className:`box`,children:(0,$.jsx)(`pre`,{children:aJ(o.request)})})]}),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:_?iJ(_):`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 lJ=document.getElementById(`root`);if(lJ)(0,v.createRoot)(lJ).render((0,$.jsx)(y.StrictMode,{children:(0,$.jsx)(cJ,{})}));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 deleted file mode 100644 index 3e00c2bb172d8..0000000000000 --- a/crates/wallets/src/wallet_browser/app/assets/styles.css +++ /dev/null @@ -1,2 +0,0 @@ -*,: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}.wallet-send{margin-bottom: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 deleted file mode 100644 index 6b1adcdbe47c9..0000000000000 --- a/crates/wallets/src/wallet_browser/app/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index ace0f1c1cf3f5..0000000000000 --- a/crates/wallets/src/wallet_browser/error.rs +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index 4b210dca60d7f..0000000000000 --- a/crates/wallets/src/wallet_browser/handlers.rs +++ /dev/null @@ -1,195 +0,0 @@ -use std::sync::Arc; - -use alloy_network::Network; -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 deleted file mode 100644 index dc7df0a01b107..0000000000000 --- a/crates/wallets/src/wallet_browser/mod.rs +++ /dev/null @@ -1,976 +0,0 @@ -pub mod error; -pub mod opts; -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_network::{Ethereum, Network, TransactionBuilder}; - use alloy_primitives::{Address, Bytes, TxHash, TxKind, U256, address}; - 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 request = N::TransactionRequest::default() - .with_from(ALICE) - .with_to(BOB) - .with_value(U256::from(1000)); - let tx = BrowserTransactionRequest { id, request }; - (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 request = N::TransactionRequest::default() - .with_from(BOB) - .with_to(ALICE) - .with_value(U256::from(2000)); - let tx = BrowserTransactionRequest { id, request }; - (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.kind(), 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/opts.rs b/crates/wallets/src/wallet_browser/opts.rs deleted file mode 100644 index b8a30727115a5..0000000000000 --- a/crates/wallets/src/wallet_browser/opts.rs +++ /dev/null @@ -1,50 +0,0 @@ -use std::time::Duration; - -use alloy_network::Network; -use clap::Parser; -use eyre::Result; -use serde::Serialize; - -use crate::wallet_browser::signer::BrowserSigner; - -/// Browser wallet options -#[derive(Clone, Debug, Default, Serialize, Parser)] -#[command(next_help_heading = "Wallet options - browser wallet")] -pub struct BrowserWalletOpts { - /// Use a browser wallet. - #[arg(long)] - pub browser: bool, - - /// Port for the browser wallet server. - #[arg(long, value_name = "PORT", default_value = "9545", requires = "browser")] - pub browser_port: u16, - - /// Whether to open the browser for wallet connection. - #[arg(long, 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, hide = true)] - pub browser_development: bool, -} - -impl BrowserWalletOpts { - pub async fn run(&self) -> Result>> { - Ok(if self.browser { - Some( - BrowserSigner::new( - self.browser_port, - !self.browser_disable_open, - Duration::from_secs(300), - self.browser_development, - ) - .await?, - ) - } else { - None - }) - } -} diff --git a/crates/wallets/src/wallet_browser/queue.rs b/crates/wallets/src/wallet_browser/queue.rs deleted file mode 100644 index 5df44a09e9fde..0000000000000 --- a/crates/wallets/src/wallet_browser/queue.rs +++ /dev/null @@ -1,83 +0,0 @@ -use std::collections::{HashMap, VecDeque}; - -use alloy_network::Network; -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 deleted file mode 100644 index cb29e9122a5d8..0000000000000 --- a/crates/wallets/src/wallet_browser/router.rs +++ /dev/null @@ -1,106 +0,0 @@ -use std::sync::Arc; - -use alloy_network::Network; -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 deleted file mode 100644 index 0361416640c3a..0000000000000 --- a/crates/wallets/src/wallet_browser/server.rs +++ /dev/null @@ -1,218 +0,0 @@ -use std::{ - net::SocketAddr, - sync::Arc, - time::{Duration, Instant}, -}; - -use alloy_dyn_abi::TypedData; -use alloy_network::Network; -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 const fn port(&self) -> u16 { - self.port - } - - /// Check if the browser should be opened. - pub const fn open_browser(&self) -> bool { - self.open_browser - } - - /// Get the timeout duration. - pub const 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, - }); - } - 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, - }); - } - 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 deleted file mode 100644 index 55f3bad5a4394..0000000000000 --- a/crates/wallets/src/wallet_browser/signer.rs +++ /dev/null @@ -1,103 +0,0 @@ -use std::{ - sync::Arc, - time::{Duration, Instant}, -}; - -use alloy_network::{Network, TransactionBuilder}; -use alloy_primitives::{Address, B256, ChainId}; -use alloy_signer::Result; -use tokio::sync::Mutex; -use uuid::Uuid; - -use crate::wallet_browser::{ - server::BrowserWalletServer, - types::{BrowserTransactionRequest, Connection}, -}; - -#[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: N::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) - } - - pub const fn address(&self) -> Address { - self.address - } -} - -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 deleted file mode 100644 index c7c9859ebdcf4..0000000000000 --- a/crates/wallets/src/wallet_browser/state.rs +++ /dev/null @@ -1,139 +0,0 @@ -use std::sync::Arc; - -use alloy_network::Network; -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, BrowserTransactionResponse>>>, - /// 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 const 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 deleted file mode 100644 index 3e37498bb1e19..0000000000000 --- a/crates/wallets/src/wallet_browser/types.rs +++ /dev/null @@ -1,127 +0,0 @@ -use alloy_dyn_abi::TypedData; -use alloy_network::Network; -use alloy_primitives::{Address, Bytes, ChainId, TxHash}; -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 const fn ok() -> Self { - Self::Ok(()) - } -} - -impl BrowserApiResponse { - /// Create a successful response with the given data. - pub const 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: N::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 const fn new(address: Address, chain_id: ChainId) -> Self { - Self { address, chain_id } - } -} diff --git a/crates/wallets/src/wallet_multi/mod.rs b/crates/wallets/src/wallet_multi/mod.rs deleted file mode 100644 index a6d85581e19f0..0000000000000 --- a/crates/wallets/src/wallet_multi/mod.rs +++ /dev/null @@ -1,621 +0,0 @@ -use crate::{ - BrowserWalletOpts, - signer::{PendingSigner, WalletSigner}, - utils, - wallet_browser::signer::BrowserSigner, -}; -use alloy_network::Network; -use alloy_primitives::map::AddressHashMap; -use alloy_signer::Signer; -use clap::Parser; -use derive_builder::Builder; -use eyre::Result; -use foundry_config::Config; -use serde::Serialize; -use std::path::PathBuf; - -/// Container for multiple wallets. -#[derive(Debug, Default)] -pub struct MultiWallet { - /// Vector of wallets that require an action to be unlocked. - /// Those are lazily unlocked on the first access of the signers. - pending_signers: Vec, - /// Contains unlocked signers. - signers: AddressHashMap, -} - -impl MultiWallet { - pub fn new(pending_signers: Vec, signers: Vec) -> Self { - let signers = signers.into_iter().map(|signer| (signer.address(), signer)).collect(); - Self { pending_signers, signers } - } - - fn maybe_unlock_pending(&mut self) -> Result<()> { - for pending in self.pending_signers.drain(..) { - let signer = pending.unlock()?; - self.signers.insert(signer.address(), signer); - } - Ok(()) - } - - pub fn signers(&mut self) -> Result<&AddressHashMap> { - self.maybe_unlock_pending()?; - Ok(&self.signers) - } - - pub fn into_signers(mut self) -> Result> { - self.maybe_unlock_pending()?; - Ok(self.signers) - } - - pub fn add_signer(&mut self, signer: WalletSigner) { - self.signers.insert(signer.address(), signer); - } -} - -/// A macro that initializes multiple wallets -/// -/// Should be used with a [`MultiWallet`] instance -macro_rules! create_hw_wallets { - ($self:ident, $create_signer:expr, $signers:ident) => { - let mut $signers = vec![]; - - if let Some(hd_paths) = &$self.hd_paths { - for path in hd_paths { - let hw = $create_signer(Some(path), 0).await?; - $signers.push(hw); - } - } - - if let Some(mnemonic_indexes) = &$self.mnemonic_indexes { - for index in mnemonic_indexes { - let hw = $create_signer(None, *index).await?; - $signers.push(hw); - } - } - - if $signers.is_empty() { - let hw = $create_signer(None, 0).await?; - $signers.push(hw); - } - }; -} - -/// The wallet options can either be: -/// 1. Ledger -/// 2. Trezor -/// 3. Mnemonics (via file path) -/// 4. Keystores (via file path) -/// 5. Private Keys (cleartext in CLI) -/// 6. Private Keys (interactively via secure prompt) -/// 7. AWS KMS -/// 8. Turnkey -#[derive(Builder, Clone, Debug, Default, Serialize, Parser)] -#[command(next_help_heading = "Wallet options", about = None, long_about = None)] -pub struct MultiWalletOpts { - /// Open an interactive prompt to enter your private key. - /// - /// Takes a value for the number of keys to enter. - #[arg(long, help_heading = "Wallet options - raw", default_value = "0", value_name = "NUM")] - pub interactives: u32, - - /// Open an interactive prompt to enter your private key. - #[arg(long, short, help_heading = "Wallet options - raw", conflicts_with = "interactives")] - pub interactive: bool, - - /// Use the provided private keys. - #[arg(long, help_heading = "Wallet options - raw", value_name = "RAW_PRIVATE_KEYS")] - #[builder(default = "None")] - pub private_keys: Option>, - - /// Use the provided private key. - #[arg( - long, - help_heading = "Wallet options - raw", - conflicts_with = "private_keys", - value_name = "RAW_PRIVATE_KEY" - )] - #[builder(default = "None")] - pub private_key: Option, - - /// Use the mnemonic phrases of mnemonic files at the specified paths. - #[arg(long, alias = "mnemonic-paths", help_heading = "Wallet options - raw")] - #[builder(default = "None")] - pub mnemonics: Option>, - - /// Use a BIP39 passphrases for the mnemonic. - #[arg(long, help_heading = "Wallet options - raw", value_name = "PASSPHRASE")] - #[builder(default = "None")] - pub mnemonic_passphrases: Option>, - - /// The wallet derivation path. - /// - /// Works with both --mnemonic-path and hardware wallets. - #[arg( - long = "mnemonic-derivation-paths", - alias = "hd-paths", - help_heading = "Wallet options - raw", - value_name = "PATH" - )] - #[builder(default = "None")] - pub hd_paths: Option>, - - /// Use the private key from the given mnemonic index. - /// - /// Can be used with --mnemonics, --ledger, --aws and --trezor. - #[arg( - long, - conflicts_with = "hd_paths", - help_heading = "Wallet options - raw", - default_value = "0", - value_name = "INDEXES" - )] - pub mnemonic_indexes: Option>, - - /// Use the keystore by its filename in the given folder. - #[arg( - long = "keystore", - visible_alias = "keystores", - help_heading = "Wallet options - keystore", - value_name = "PATHS", - env = "ETH_KEYSTORE" - )] - #[builder(default = "None")] - pub keystore_paths: Option>, - - /// Use a keystore from the default keystores folder (~/.foundry/keystores) by its filename. - #[arg( - long = "account", - visible_alias = "accounts", - help_heading = "Wallet options - keystore", - value_name = "ACCOUNT_NAMES", - env = "ETH_KEYSTORE_ACCOUNT", - conflicts_with = "keystore_paths" - )] - #[builder(default = "None")] - pub keystore_account_names: Option>, - - /// The keystore password. - /// - /// Used with --keystore. - #[arg( - long = "password", - help_heading = "Wallet options - keystore", - requires = "keystore_paths", - value_name = "PASSWORDS" - )] - #[builder(default = "None")] - pub keystore_passwords: Option>, - - /// The keystore password file path. - /// - /// Used with --keystore. - #[arg( - long = "password-file", - help_heading = "Wallet options - keystore", - requires = "keystore_paths", - value_name = "PATHS", - env = "ETH_PASSWORD" - )] - #[builder(default = "None")] - pub keystore_password_files: Option>, - - /// Use a Ledger hardware wallet. - #[arg(long, short, help_heading = "Wallet options - hardware wallet")] - pub ledger: bool, - - /// Use a Trezor hardware wallet. - #[arg(long, short, help_heading = "Wallet options - hardware wallet")] - pub trezor: bool, - - /// Use AWS Key Management Service. - /// - /// Ensure either one of AWS_KMS_KEY_IDS (comma-separated) or AWS_KMS_KEY_ID environment - /// variables are set. - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "aws-kms"))] - pub aws: bool, - - /// Use Google Cloud Key Management Service. - /// - /// Ensure the following environment variables are set: GCP_PROJECT_ID, GCP_LOCATION, - /// GCP_KEY_RING, GCP_KEY_NAME, GCP_KEY_VERSION. - /// - /// See: - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "gcp-kms"))] - pub gcp: bool, - - /// Use Turnkey. - /// - /// Ensure the following environment variables are set: TURNKEY_API_PRIVATE_KEY, - /// TURNKEY_ORGANIZATION_ID, TURNKEY_ADDRESS. - /// - /// See: - #[arg(long, help_heading = "Wallet options - remote", hide = !cfg!(feature = "turnkey"))] - pub turnkey: bool, - - /// Browser wallet options - #[command(flatten)] - pub browser: BrowserWalletOpts, -} - -impl MultiWalletOpts { - /// Returns [MultiWallet] container configured with provided options. - pub async fn get_multi_wallet(&self) -> Result { - let mut pending = Vec::new(); - let mut signers: Vec = Vec::new(); - - if let Some(ledgers) = self.ledgers().await? { - signers.extend(ledgers); - } - if let Some(trezors) = self.trezors().await? { - signers.extend(trezors); - } - if let Some(aws_signers) = self.aws_signers().await? { - signers.extend(aws_signers); - } - if let Some(gcp_signer) = self.gcp_signers().await? { - signers.extend(gcp_signer); - } - if let Some(turnkey_signers) = self.turnkey_signers()? { - signers.extend(turnkey_signers); - } - if let Some((pending_keystores, unlocked)) = self.keystores()? { - pending.extend(pending_keystores); - signers.extend(unlocked); - } - if let Some(pks) = self.private_keys()? { - signers.extend(pks); - } - if let Some(mnemonics) = self.mnemonics()? { - signers.extend(mnemonics); - } - if self.interactive { - pending.push(PendingSigner::Interactive); - } - if self.interactives > 0 { - pending.extend(std::iter::repeat_n( - PendingSigner::Interactive, - self.interactives as usize, - )); - } - - Ok(MultiWallet::new(pending, signers)) - } - - pub fn private_keys(&self) -> Result>> { - let mut pks = vec![]; - if let Some(private_key) = &self.private_key { - pks.push(private_key); - } - if let Some(private_keys) = &self.private_keys { - for pk in private_keys { - pks.push(pk); - } - } - if pks.is_empty() { - Ok(None) - } else { - let wallets = pks - .into_iter() - .map(|pk| utils::create_private_key_signer(pk)) - .collect::>>()?; - Ok(Some(wallets)) - } - } - - fn keystore_paths(&self) -> Result>> { - if let Some(keystore_paths) = &self.keystore_paths { - return Ok(Some(keystore_paths.iter().map(PathBuf::from).collect())); - } - if let Some(keystore_account_names) = &self.keystore_account_names { - let default_keystore_dir = Config::foundry_keystores_dir() - .ok_or_else(|| eyre::eyre!("Could not find the default keystore directory."))?; - return Ok(Some( - keystore_account_names - .iter() - .map(|keystore_name| default_keystore_dir.join(keystore_name)) - .collect(), - )); - } - Ok(None) - } - - /// Returns all wallets read from the provided keystores arguments - /// - /// Returns `Ok(None)` if no keystore provided. - pub fn keystores(&self) -> Result, Vec)>> { - if let Some(keystore_paths) = self.keystore_paths()? { - let mut pending = Vec::new(); - let mut signers = Vec::new(); - - let mut passwords_iter = - self.keystore_passwords.iter().flat_map(|passwords| passwords.iter()); - - let mut password_files_iter = self - .keystore_password_files - .iter() - .flat_map(|password_files| password_files.iter()); - - for path in &keystore_paths { - let (maybe_signer, maybe_pending) = utils::create_keystore_signer( - path, - passwords_iter.next().map(|password| password.as_str()), - password_files_iter.next().map(|password_file| password_file.as_str()), - )?; - if let Some(pending_signer) = maybe_pending { - pending.push(pending_signer); - } else if let Some(signer) = maybe_signer { - signers.push(signer); - } - } - return Ok(Some((pending, signers))); - } - Ok(None) - } - - pub fn mnemonics(&self) -> Result>> { - if let Some(ref mnemonics) = self.mnemonics { - let mut wallets = vec![]; - - let mut hd_paths_iter = - self.hd_paths.iter().flat_map(|paths| paths.iter().map(String::as_str)); - - let mut passphrases_iter = self - .mnemonic_passphrases - .iter() - .flat_map(|passphrases| passphrases.iter().map(String::as_str)); - - let mut indexes_iter = - self.mnemonic_indexes.iter().flat_map(|indexes| indexes.iter().copied()); - - for mnemonic in mnemonics { - let wallet = utils::create_mnemonic_signer( - mnemonic, - passphrases_iter.next(), - hd_paths_iter.next(), - indexes_iter.next().unwrap_or(0), - )?; - wallets.push(wallet); - } - return Ok(Some(wallets)); - } - Ok(None) - } - - pub async fn ledgers(&self) -> Result>> { - if self.ledger { - let mut args = self.clone(); - - if let Some(paths) = &args.hd_paths { - if paths.len() > 1 { - eyre::bail!("Ledger only supports one signer."); - } - args.mnemonic_indexes = None; - } - - create_hw_wallets!(args, utils::create_ledger_signer, wallets); - return Ok(Some(wallets)); - } - Ok(None) - } - - pub async fn trezors(&self) -> Result>> { - if self.trezor { - let mut args = self.clone(); - - if args.hd_paths.is_some() { - args.mnemonic_indexes = None; - } - - create_hw_wallets!(args, utils::create_trezor_signer, wallets); - return Ok(Some(wallets)); - } - Ok(None) - } - - pub async fn aws_signers(&self) -> Result>> { - #[cfg(feature = "aws-kms")] - if self.aws { - let mut wallets = vec![]; - let aws_keys = std::env::var("AWS_KMS_KEY_IDS") - .or(std::env::var("AWS_KMS_KEY_ID"))? - .split(',') - .map(|k| k.to_string()) - .collect::>(); - - for key in aws_keys { - let aws_signer = WalletSigner::from_aws(key).await?; - wallets.push(aws_signer) - } - - return Ok(Some(wallets)); - } - - Ok(None) - } - - /// Returns a list of GCP signers if the GCP flag is set. - /// - /// The GCP signers are created from the following environment variables: - /// - GCP_PROJECT_ID: The GCP project ID. e.g. `my-project-123456`. - /// - GCP_LOCATION: The GCP location. e.g. `us-central1`. - /// - GCP_KEY_RING: The GCP key ring name. e.g. `my-key-ring`. - /// - GCP_KEY_NAME: The GCP key name. e.g. `my-key`. - /// - GCP_KEY_VERSION: The GCP key version. e.g. `1`. - /// - /// For more information on GCP KMS, see the [official documentation](https://cloud.google.com/kms/docs). - pub async fn gcp_signers(&self) -> Result>> { - #[cfg(feature = "gcp-kms")] - if self.gcp { - let mut wallets = vec![]; - - let project_id = std::env::var("GCP_PROJECT_ID")?; - let location = std::env::var("GCP_LOCATION")?; - let key_ring = std::env::var("GCP_KEY_RING")?; - let key_name = std::env::var("GCP_KEY_NAME")?; - let key_version = std::env::var("GCP_KEY_VERSION")?; - - let gcp_signer = WalletSigner::from_gcp( - project_id, - location, - key_ring, - key_name, - key_version.parse()?, - ) - .await?; - wallets.push(gcp_signer); - - return Ok(Some(wallets)); - } - - Ok(None) - } - - pub fn turnkey_signers(&self) -> Result>> { - #[cfg(feature = "turnkey")] - if self.turnkey { - let api_private_key = std::env::var("TURNKEY_API_PRIVATE_KEY")?; - let organization_id = std::env::var("TURNKEY_ORGANIZATION_ID")?; - let address = std::env::var("TURNKEY_ADDRESS")?.parse()?; - - let signer = WalletSigner::from_turnkey(api_private_key, organization_id, address)?; - return Ok(Some(vec![signer])); - } - - Ok(None) - } - - /// Returns the Turnkey address if `--turnkey` flag is set and `TURNKEY_ADDRESS` is available. - pub fn turnkey_address(&self) -> Option { - #[cfg(feature = "turnkey")] - if self.turnkey { - return std::env::var("TURNKEY_ADDRESS").ok().and_then(|addr| addr.parse().ok()); - } - - None - } - - /// Launches and returns the Browser signer if `--browser` flag is set - pub async fn browser_signer(&self) -> Result>> { - self.browser.run().await - } -} - -#[cfg(test)] -mod tests { - use super::*; - use alloy_primitives::address; - use std::path::Path; - - #[test] - fn parse_keystore_args() { - let args: MultiWalletOpts = - MultiWalletOpts::parse_from(["foundry-cli", "--keystores", "my/keystore/path"]); - assert_eq!(args.keystore_paths, Some(vec!["my/keystore/path".to_string()])); - - unsafe { - std::env::set_var("ETH_KEYSTORE", "MY_KEYSTORE"); - } - let args: MultiWalletOpts = MultiWalletOpts::parse_from(["foundry-cli"]); - assert_eq!(args.keystore_paths, Some(vec!["MY_KEYSTORE".to_string()])); - - unsafe { - std::env::remove_var("ETH_KEYSTORE"); - } - } - - #[test] - fn parse_keystore_password_file() { - let keystore = - Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../cast/tests/fixtures/keystore")); - let keystore_file = keystore - .join("UTC--2022-12-20T10-30-43.591916000Z--ec554aeafe75601aaab43bd4621a22284db566c2"); - - let keystore_password_file = keystore.join("password-ec554").into_os_string(); - - let args: MultiWalletOpts = MultiWalletOpts::parse_from([ - "foundry-cli", - "--keystores", - keystore_file.to_str().unwrap(), - "--password-file", - keystore_password_file.to_str().unwrap(), - ]); - assert_eq!( - args.keystore_password_files, - Some(vec![keystore_password_file.to_str().unwrap().to_string()]) - ); - - let (_, unlocked) = args.keystores().unwrap().unwrap(); - assert_eq!(unlocked.len(), 1); - assert_eq!(unlocked[0].address(), address!("0xec554aeafe75601aaab43bd4621a22284db566c2")); - } - - // https://github.com/foundry-rs/foundry/issues/12916 - #[test] - #[cfg(feature = "turnkey")] - fn turnkey_address_returns_address_when_flag_set() { - let args: MultiWalletOpts = MultiWalletOpts::parse_from(["foundry-cli", "--turnkey"]); - assert!(args.turnkey); - - unsafe { - std::env::set_var("TURNKEY_ADDRESS", "0x1234567890123456789012345678901234567890"); - } - - let addr = args.turnkey_address(); - assert_eq!(addr, Some(address!("0x1234567890123456789012345678901234567890"))); - - unsafe { - std::env::remove_var("TURNKEY_ADDRESS"); - } - } - - #[test] - fn turnkey_address_returns_none_when_flag_not_set() { - let args: MultiWalletOpts = MultiWalletOpts::parse_from(["foundry-cli"]); - assert!(!args.turnkey); - - unsafe { - std::env::set_var("TURNKEY_ADDRESS", "0x1234567890123456789012345678901234567890"); - } - - let addr = args.turnkey_address(); - assert_eq!(addr, None); - - unsafe { - std::env::remove_var("TURNKEY_ADDRESS"); - } - } - - // https://github.com/foundry-rs/foundry/issues/5179 - #[test] - fn should_not_require_the_mnemonics_flag_with_mnemonic_indexes() { - let wallet_options = vec![ - ("ledger", "--mnemonic-indexes", 1), - ("trezor", "--mnemonic-indexes", 2), - ("aws", "--mnemonic-indexes", 10), - ("turnkey", "--mnemonic-indexes", 11), - ]; - - for test_case in wallet_options { - let args: MultiWalletOpts = MultiWalletOpts::parse_from([ - "foundry-cli", - &format!("--{}", test_case.0), - test_case.1, - &test_case.2.to_string(), - ]); - - match test_case.0 { - "ledger" => assert!(args.ledger), - "trezor" => assert!(args.trezor), - "aws" => assert!(args.aws), - "turnkey" => assert!(args.turnkey), - _ => panic!("Should have matched one of the previous wallet options"), - } - - assert_eq!( - args.mnemonic_indexes.expect("--mnemonic-indexes should have been set")[0], - test_case.2 - ) - } - } -} diff --git a/crates/wallets/src/wallet_raw/mod.rs b/crates/wallets/src/wallet_raw/mod.rs deleted file mode 100644 index c13076dafaf51..0000000000000 --- a/crates/wallets/src/wallet_raw/mod.rs +++ /dev/null @@ -1,62 +0,0 @@ -use crate::{PendingSigner, WalletSigner, utils}; -use clap::Parser; -use eyre::Result; -use serde::Serialize; - -/// A wrapper for the raw data options for `Wallet`, extracted to also be used standalone. -/// The raw wallet options can either be: -/// 1. Private Key (cleartext in CLI) -/// 2. Private Key (interactively via secure prompt) -/// 3. Mnemonic (via file path) -#[derive(Clone, Debug, Default, Serialize, Parser)] -#[command(next_help_heading = "Wallet options - raw", about = None, long_about = None)] -pub struct RawWalletOpts { - /// Open an interactive prompt to enter your private key. - #[arg(long, short)] - pub interactive: bool, - - /// Use the provided private key. - #[arg(long, value_name = "RAW_PRIVATE_KEY")] - pub private_key: Option, - - /// Use the mnemonic phrase of mnemonic file at the specified path. - #[arg(long, alias = "mnemonic-path")] - pub mnemonic: Option, - - /// Use a BIP39 passphrase for the mnemonic. - #[arg(long, value_name = "PASSPHRASE")] - pub mnemonic_passphrase: Option, - - /// The wallet derivation path. - /// - /// Works with both --mnemonic-path and hardware wallets. - #[arg(long = "mnemonic-derivation-path", alias = "hd-path", value_name = "PATH")] - pub hd_path: Option, - - /// Use the private key from the given mnemonic index. - /// - /// Used with --mnemonic-path. - #[arg(long, conflicts_with = "hd_path", default_value_t = 0, value_name = "INDEX")] - pub mnemonic_index: u32, -} - -impl RawWalletOpts { - /// Returns signer configured by provided parameters. - pub fn signer(&self) -> Result> { - if self.interactive { - return Ok(Some(PendingSigner::Interactive.unlock()?)); - } - if let Some(private_key) = &self.private_key { - return Ok(Some(utils::create_private_key_signer(private_key)?)); - } - if let Some(mnemonic) = &self.mnemonic { - return Ok(Some(utils::create_mnemonic_signer( - mnemonic, - self.mnemonic_passphrase.as_deref(), - self.hd_path.as_deref(), - self.mnemonic_index, - )?)); - } - Ok(None) - } -} diff --git a/deny.toml b/deny.toml index 15f839ae72189..b9dae10bfabf3 100644 --- a/deny.toml +++ b/deny.toml @@ -102,6 +102,7 @@ allow-git = [ "https://github.com/alloy-rs/evm", "https://github.com/foundry-rs/compilers", "https://github.com/foundry-rs/foundry-fork-db", + "https://github.com/foundry-rs/foundry-core", "https://github.com/foundry-rs/optimism", "https://github.com/paradigmxyz/revm-inspectors", "https://github.com/paradigmxyz/solar",