{
  "version": 3,
  "sources": ["../src/errors/minter.errors.ts", "../src/minter.canister.ts", "../src/candid/minter.certified.idl.js", "../src/candid/minter.idl.js", "../src/types/minter.params.ts", "../src/orchestrator.canister.ts", "../src/candid/orchestrator.certified.idl.js", "../src/candid/orchestrator.idl.js", "../src/utils/minter.utils.ts"],
  "sourcesContent": ["import { nonNullish } from \"@dfinity/utils\";\nimport type {\n  LedgerError as LedgerErrorType,\n  WithdrawErc20Error,\n  WithdrawalError,\n} from \"../candid/minter\";\n\nexport class DetailedError<T> extends Error {\n  public details: T | undefined;\n  constructor({ msg, details }: { msg?: string; details?: T }) {\n    super(msg);\n    this.details = details;\n  }\n}\n\nexport class MinterGenericError extends Error {}\n\nexport class MinterError<T> extends DetailedError<T> {}\n\nexport class MinterTemporaryUnavailableError extends MinterGenericError {}\nexport class MinterInsufficientFundsError<T> extends MinterError<T> {}\nexport class MinterInsufficientAllowanceError<T> extends MinterError<T> {}\nexport class MinterAmountTooLowError<T> extends MinterError<T> {}\nexport class MinterRecipientAddressBlockedError<T> extends MinterError<T> {}\nexport class MinterTokenNotSupported<T> extends MinterError<T> {}\n\nexport class LedgerGenericError extends Error {}\n\nexport class LedgerError<T> extends DetailedError<T> {}\n\nexport class LedgerWithdrawalError<T> extends LedgerError<T> {}\nexport class LedgerTemporaryUnavailableError<T> extends LedgerError<T> {}\nexport class LedgerInsufficientAllowanceError<T> extends LedgerError<T> {}\nexport class LedgerAmountTooLowError<T> extends LedgerError<T> {}\nexport class LedgerInsufficientFundsError<T> extends LedgerError<T> {}\n\nexport const createWithdrawEthError = (\n  Err: WithdrawalError,\n): MinterGenericError => {\n  if (\"TemporarilyUnavailable\" in Err) {\n    return new MinterTemporaryUnavailableError(Err.TemporarilyUnavailable);\n  }\n\n  if (\"InsufficientAllowance\" in Err) {\n    return new MinterInsufficientAllowanceError({\n      details: Err.InsufficientAllowance.allowance,\n    });\n  }\n\n  if (\"AmountTooLow\" in Err) {\n    return new MinterAmountTooLowError({\n      details: Err.AmountTooLow.min_withdrawal_amount,\n    });\n  }\n\n  if (\"RecipientAddressBlocked\" in Err) {\n    return new MinterRecipientAddressBlockedError({\n      details: Err.RecipientAddressBlocked.address,\n    });\n  }\n\n  if (\"InsufficientFunds\" in Err) {\n    return new MinterInsufficientFundsError({\n      details: Err.InsufficientFunds.balance,\n    });\n  }\n\n  // Handle types added in the backend but not yet added in the frontend\n  return new MinterError({\n    msg: `Unsupported response type in minter.withdrawEth`,\n    details: Err,\n  });\n};\n\nexport const createWithdrawErc20Error = (\n  Err: WithdrawErc20Error,\n): MinterGenericError => {\n  if (\"TemporarilyUnavailable\" in Err) {\n    return new MinterTemporaryUnavailableError(Err.TemporarilyUnavailable);\n  }\n\n  if (\"RecipientAddressBlocked\" in Err) {\n    return new MinterRecipientAddressBlockedError({\n      details: Err.RecipientAddressBlocked.address,\n    });\n  }\n\n  if (\"TokenNotSupported\" in Err) {\n    return new MinterTokenNotSupported({\n      details: Err.TokenNotSupported.supported_tokens,\n    });\n  }\n\n  const createLedgerError = ({\n    Err,\n    ckEthBlockIndex,\n  }: {\n    Err: LedgerErrorType;\n    ckEthBlockIndex?: bigint;\n  }): LedgerGenericError => {\n    const createDetailsError = <T>(\n      error: T,\n    ): { error: T; ckEthBlockIndex?: bigint } => ({ error, ckEthBlockIndex });\n\n    if (\"TemporarilyUnavailable\" in Err) {\n      return new LedgerTemporaryUnavailableError({\n        msg: Err.TemporarilyUnavailable,\n        ...(nonNullish(ckEthBlockIndex) && {\n          details: {\n            ckEthBlockIndex,\n          },\n        }),\n      });\n    }\n\n    if (\"InsufficientAllowance\" in Err) {\n      return new LedgerInsufficientAllowanceError({\n        details: createDetailsError(Err.InsufficientAllowance),\n      });\n    }\n\n    if (\"AmountTooLow\" in Err) {\n      return new LedgerAmountTooLowError({\n        details: createDetailsError(Err.AmountTooLow),\n      });\n    }\n\n    if (\"InsufficientFunds\" in Err) {\n      return new LedgerInsufficientFundsError({\n        details: createDetailsError(Err.InsufficientFunds),\n      });\n    }\n\n    // Handle types added in the backend but not yet added in the frontend\n    return new LedgerWithdrawalError({\n      msg: `Unsupported response type in ledger for minter.withdrawErc20`,\n      details: createDetailsError(Err),\n    });\n  };\n\n  if (\"CkErc20LedgerError\" in Err) {\n    return createLedgerError({\n      Err: Err.CkErc20LedgerError.error,\n      ckEthBlockIndex: Err.CkErc20LedgerError.cketh_block_index,\n    });\n  }\n\n  if (\"CkEthLedgerError\" in Err) {\n    return createLedgerError({ Err: Err.CkEthLedgerError.error });\n  }\n\n  // Handle types added in the backend but not yet added in the frontend\n  return new MinterError({\n    msg: `Unsupported response type in minter.withdrawErc20`,\n    details: Err,\n  });\n};\n", "import {\n  Canister,\n  createServices,\n  toNullable,\n  type QueryParams,\n} from \"@dfinity/utils\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport type {\n  _SERVICE as CkETHMinterService,\n  Eip1559TransactionPrice,\n  MinterInfo,\n  RetrieveErc20Request,\n  RetrieveEthRequest,\n  RetrieveEthStatus,\n  Subaccount,\n} from \"./candid/minter\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/minter.certified.idl\";\nimport { idlFactory } from \"./candid/minter.idl\";\nimport {\n  createWithdrawErc20Error,\n  createWithdrawEthError,\n} from \"./errors/minter.errors\";\nimport type { CkETHMinterCanisterOptions } from \"./types/canister.options\";\nimport {\n  toEip1559TransactionPriceParams,\n  type Eip1559TransactionPriceParams,\n} from \"./types/minter.params\";\n\nexport class CkETHMinterCanister extends Canister<CkETHMinterService> {\n  static create(options: CkETHMinterCanisterOptions<CkETHMinterService>) {\n    const { service, certifiedService, canisterId } =\n      createServices<CkETHMinterService>({\n        options,\n        idlFactory,\n        certifiedIdlFactory,\n      });\n\n    return new CkETHMinterCanister(canisterId, service, certifiedService);\n  }\n\n  /**\n   * The address of the helper smart contract may change in the future when the minter is upgraded. Please verify the address of the helper contract before any important transfer by querying the minter as follows.\n   *\n   * @param {QueryParams} params The parameters to resolve the ckETH smart contract address.\n   * @param {boolean} params.certified query or update call\n   * @returns {Promise<string>} Address of the helper smart contract.\n   */\n  getSmartContractAddress = ({\n    certified,\n  }: QueryParams = {}): Promise<string> => {\n    const { smart_contract_address } = this.caller({ certified });\n    return smart_contract_address();\n  };\n\n  /**\n   * Submits a request to convert ckETH to ETH after making an ICRC-2 approval.\n   *\n   * Preconditions:\n   *\n   * The caller allowed the minter's principal to spend its funds using\n   * [icrc2_approve] on the ckETH ledger.\n   *\n   * @param {Object} params The parameters to withdrawal ckETH to ETH.\n   * @param {string} params.address The destination ETH address.\n   * @param {bigint} params.amount The ETH amount in wei.\n   * @param {Subacount} params.fromSubaccount The optional subaccount to burn ckETH from.\n   * @returns {Promise<RetrieveEthRequest>} The successful result or the operation.\n   */\n  withdrawEth = async ({\n    address,\n    fromSubaccount,\n    ...rest\n  }: {\n    address: string;\n    amount: bigint;\n    fromSubaccount?: Subaccount;\n  }): Promise<RetrieveEthRequest> => {\n    const { withdraw_eth } = this.caller({\n      certified: true,\n    });\n\n    const response = await withdraw_eth({\n      recipient: address,\n      from_subaccount: toNullable(fromSubaccount),\n      ...rest,\n    });\n\n    if (\"Err\" in response) {\n      throw createWithdrawEthError(response.Err);\n    }\n\n    return response.Ok;\n  };\n\n  /**\n   * Submits a request to convert ckErc20 to Erc20 - e.g. ckUSDC to USDC - after making ICRC-2 approvals for the ckETH and related ckErc20 ledgers.\n   *\n   * Preconditions:\n   *\n   * The caller allowed the minter's principal to spend its funds using\n   * [icrc2_approve] on the ckErc20 ledger and to burn some of the user\u2019s ckETH tokens to pay for the transaction fees on the CkETH ledger.\n   *\n   * @param {Object} params The parameters to withdrawal ckErc20 to Erc20.\n   * @param {string} params.address The destination ETH address.\n   * @param {bigint} params.amount The ETH amount in wei.\n   * @param {Subaccount} params.fromCkEthSubaccount The optional subaccount to burn ckETH from to pay for the transaction fee.\n   * @param {Subaccount} params.fromCkEthSubaccount The optional subaccount to burn ckERC20 from.\n   * @returns {Promise<RetrieveErc20Request>} The successful result or the operation.\n   */\n  withdrawErc20 = async ({\n    address,\n    ledgerCanisterId,\n    fromCkEthSubaccount,\n    fromCkErc20Subaccount,\n    ...rest\n  }: {\n    address: string;\n    amount: bigint;\n    ledgerCanisterId: Principal;\n    fromCkEthSubaccount?: Subaccount;\n    fromCkErc20Subaccount?: Subaccount;\n  }): Promise<RetrieveErc20Request> => {\n    const { withdraw_erc20 } = this.caller({\n      certified: true,\n    });\n\n    const response = await withdraw_erc20({\n      recipient: address,\n      ckerc20_ledger_id: ledgerCanisterId,\n      from_cketh_subaccount: toNullable(fromCkEthSubaccount),\n      from_ckerc20_subaccount: toNullable(fromCkErc20Subaccount),\n      ...rest,\n    });\n\n    if (\"Err\" in response) {\n      throw createWithdrawErc20Error(response.Err);\n    }\n\n    return response.Ok;\n  };\n\n  /**\n   * Estimate the price of a transaction issued by the minter when converting ckETH to ETH and ckER20 to ERC20.\n   *\n   * @param {Eip1559TransactionPriceParams} params - The parameters to get the minter info.\n   * @param {Principal} [params.ckErc20LedgerId] - The optional identifier for a particular ckERC20 ledger.\n   * @param {boolean} [params.certified] - Indicates whether this is a certified query or an update call.\n   *\n   * @returns {Promise<Eip1559TransactionPrice>} - The estimated gas fee and limit.\n   */\n  eip1559TransactionPrice = ({\n    certified,\n    ...rest\n  }: Eip1559TransactionPriceParams): Promise<Eip1559TransactionPrice> => {\n    const { eip_1559_transaction_price } = this.caller({\n      certified,\n    });\n    return eip_1559_transaction_price(toEip1559TransactionPriceParams(rest));\n  };\n\n  /**\n   * Retrieve the status of a withdrawal request.\n   *\n   * @returns {Promise<RetrieveEthStatus>} The current status of an Ethereum transaction for a block index resulting from a withdrawal.\n   */\n  retrieveEthStatus = (blockIndex: bigint): Promise<RetrieveEthStatus> => {\n    const { retrieve_eth_status } = this.caller({\n      certified: true,\n    });\n    return retrieve_eth_status(blockIndex);\n  };\n\n  /**\n   * Returns internal minter parameters such as the minimal withdrawal amount, the last observed block number, etc.\n   *\n   * @param {QueryParams} params The parameters to get the minter info.\n   * @param {boolean} params.certified query or update call\n   */\n  getMinterInfo = ({ certified }: QueryParams): Promise<MinterInfo> => {\n    const { get_minter_info } = this.caller({ certified });\n    return get_minter_info();\n  };\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0-patch-typed-arrays.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n  const BlockTag = IDL.Variant({\n    Safe: IDL.Null,\n    Finalized: IDL.Null,\n    Latest: IDL.Null,\n  });\n  const UpgradeArg = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    next_transaction_nonce: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_suite_orchestrator_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthereumNetwork = IDL.Variant({\n    Mainnet: IDL.Null,\n    Sepolia: IDL.Null,\n  });\n  const InitArg = IDL.Record({\n    ethereum_network: EthereumNetwork,\n    last_scraped_block_number: IDL.Nat,\n    ecdsa_key_name: IDL.Text,\n    next_transaction_nonce: IDL.Nat,\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_id: IDL.Principal,\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Nat,\n    ethereum_block_height: BlockTag,\n  });\n  const MinterArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n  });\n  const AddCkErc20Token = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const Eip1559TransactionPriceArg = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n  });\n  const Eip1559TransactionPrice = IDL.Record({\n    max_priority_fee_per_gas: IDL.Nat,\n    max_fee_per_gas: IDL.Nat,\n    max_transaction_fee: IDL.Nat,\n    timestamp: IDL.Opt(IDL.Nat64),\n    gas_limit: IDL.Nat,\n  });\n  const CanisterStatusType = IDL.Variant({\n    stopped: IDL.Null,\n    stopping: IDL.Null,\n    running: IDL.Null,\n  });\n  const LogVisibility = IDL.Variant({\n    controllers: IDL.Null,\n    public: IDL.Null,\n    allowed_viewers: IDL.Vec(IDL.Principal),\n  });\n  const DefiniteCanisterSettings = IDL.Record({\n    freezing_threshold: IDL.Nat,\n    controllers: IDL.Vec(IDL.Principal),\n    reserved_cycles_limit: IDL.Nat,\n    log_visibility: LogVisibility,\n    wasm_memory_limit: IDL.Nat,\n    memory_allocation: IDL.Nat,\n    compute_allocation: IDL.Nat,\n  });\n  const QueryStats = IDL.Record({\n    response_payload_bytes_total: IDL.Nat,\n    num_instructions_total: IDL.Nat,\n    num_calls_total: IDL.Nat,\n    request_payload_bytes_total: IDL.Nat,\n  });\n  const CanisterStatusResponse = IDL.Record({\n    status: CanisterStatusType,\n    memory_size: IDL.Nat,\n    cycles: IDL.Nat,\n    settings: DefiniteCanisterSettings,\n    query_stats: QueryStats,\n    idle_cycles_burned_per_day: IDL.Nat,\n    module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    reserved_cycles: IDL.Nat,\n  });\n  const Subaccount = IDL.Vec(IDL.Nat8);\n  const EventSource = IDL.Record({\n    transaction_hash: IDL.Text,\n    log_index: IDL.Nat,\n  });\n  const UnsignedTransaction = IDL.Record({\n    destination: IDL.Text,\n    value: IDL.Nat,\n    max_priority_fee_per_gas: IDL.Nat,\n    data: IDL.Vec(IDL.Nat8),\n    max_fee_per_gas: IDL.Nat,\n    chain_id: IDL.Nat,\n    nonce: IDL.Nat,\n    gas_limit: IDL.Nat,\n    access_list: IDL.Vec(\n      IDL.Record({\n        storage_keys: IDL.Vec(IDL.Vec(IDL.Nat8)),\n        address: IDL.Text,\n      }),\n    ),\n  });\n  const ReimbursementIndex = IDL.Variant({\n    CkErc20: IDL.Record({\n      cketh_ledger_burn_index: IDL.Nat,\n      ledger_id: IDL.Principal,\n      ckerc20_ledger_burn_index: IDL.Nat,\n    }),\n    CkEth: IDL.Record({ ledger_burn_index: IDL.Nat }),\n  });\n  const TransactionReceipt = IDL.Record({\n    effective_gas_price: IDL.Nat,\n    status: IDL.Variant({ Success: IDL.Null, Failure: IDL.Null }),\n    transaction_hash: IDL.Text,\n    block_hash: IDL.Text,\n    block_number: IDL.Nat,\n    gas_used: IDL.Nat,\n  });\n  const Event = IDL.Record({\n    timestamp: IDL.Nat64,\n    payload: IDL.Variant({\n      SkippedBlock: IDL.Record({\n        block_number: IDL.Nat,\n        contract_address: IDL.Opt(IDL.Text),\n      }),\n      AcceptedErc20Deposit: IDL.Record({\n        principal: IDL.Principal,\n        transaction_hash: IDL.Text,\n        value: IDL.Nat,\n        log_index: IDL.Nat,\n        subaccount: IDL.Opt(Subaccount),\n        block_number: IDL.Nat,\n        erc20_contract_address: IDL.Text,\n        from_address: IDL.Text,\n      }),\n      SignedTransaction: IDL.Record({\n        raw_transaction: IDL.Text,\n        withdrawal_id: IDL.Nat,\n      }),\n      Upgrade: UpgradeArg,\n      Init: InitArg,\n      AddedCkErc20Token: IDL.Record({\n        ckerc20_ledger_id: IDL.Principal,\n        chain_id: IDL.Nat,\n        address: IDL.Text,\n        ckerc20_token_symbol: IDL.Text,\n      }),\n      SyncedDepositWithSubaccountToBlock: IDL.Record({\n        block_number: IDL.Nat,\n      }),\n      QuarantinedDeposit: IDL.Record({ event_source: EventSource }),\n      SyncedToBlock: IDL.Record({ block_number: IDL.Nat }),\n      AcceptedDeposit: IDL.Record({\n        principal: IDL.Principal,\n        transaction_hash: IDL.Text,\n        value: IDL.Nat,\n        log_index: IDL.Nat,\n        subaccount: IDL.Opt(Subaccount),\n        block_number: IDL.Nat,\n        from_address: IDL.Text,\n      }),\n      ReplacedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction: UnsignedTransaction,\n      }),\n      QuarantinedReimbursement: IDL.Record({ index: ReimbursementIndex }),\n      MintedCkEth: IDL.Record({\n        event_source: EventSource,\n        mint_block_index: IDL.Nat,\n      }),\n      ReimbursedEthWithdrawal: IDL.Record({\n        transaction_hash: IDL.Opt(IDL.Text),\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        reimbursed_in_block: IDL.Nat,\n      }),\n      FailedErc20WithdrawalRequest: IDL.Record({\n        to: IDL.Principal,\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        to_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n      }),\n      ReimbursedErc20Withdrawal: IDL.Record({\n        burn_in_block: IDL.Nat,\n        transaction_hash: IDL.Opt(IDL.Text),\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        ledger_id: IDL.Principal,\n        reimbursed_in_block: IDL.Nat,\n      }),\n      MintedCkErc20: IDL.Record({\n        event_source: EventSource,\n        erc20_contract_address: IDL.Text,\n        mint_block_index: IDL.Nat,\n        ckerc20_token_symbol: IDL.Text,\n      }),\n      CreatedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction: UnsignedTransaction,\n      }),\n      InvalidDeposit: IDL.Record({\n        event_source: EventSource,\n        reason: IDL.Text,\n      }),\n      SyncedErc20ToBlock: IDL.Record({ block_number: IDL.Nat }),\n      AcceptedErc20WithdrawalRequest: IDL.Record({\n        cketh_ledger_burn_index: IDL.Nat,\n        destination: IDL.Text,\n        ckerc20_ledger_id: IDL.Principal,\n        withdrawal_amount: IDL.Nat,\n        from: IDL.Principal,\n        created_at: IDL.Nat64,\n        from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n        erc20_contract_address: IDL.Text,\n        ckerc20_ledger_burn_index: IDL.Nat,\n        max_transaction_fee: IDL.Nat,\n      }),\n      AcceptedEthWithdrawalRequest: IDL.Record({\n        ledger_burn_index: IDL.Nat,\n        destination: IDL.Text,\n        withdrawal_amount: IDL.Nat,\n        from: IDL.Principal,\n        created_at: IDL.Opt(IDL.Nat64),\n        from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n      }),\n      FinalizedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction_receipt: TransactionReceipt,\n      }),\n    }),\n  });\n  const CkErc20Token = IDL.Record({\n    erc20_contract_address: IDL.Text,\n    ledger_canister_id: IDL.Principal,\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const GasFeeEstimate = IDL.Record({\n    max_priority_fee_per_gas: IDL.Nat,\n    max_fee_per_gas: IDL.Nat,\n    timestamp: IDL.Nat64,\n  });\n  const MinterInfo = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    eth_balance: IDL.Opt(IDL.Nat),\n    eth_helper_contract_address: IDL.Opt(IDL.Text),\n    last_observed_block_number: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    supported_ckerc20_tokens: IDL.Opt(IDL.Vec(CkErc20Token)),\n    last_gas_fee_estimate: IDL.Opt(GasFeeEstimate),\n    cketh_ledger_id: IDL.Opt(IDL.Principal),\n    smart_contract_address: IDL.Opt(IDL.Text),\n    last_eth_scraped_block_number: IDL.Opt(IDL.Nat),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    erc20_balances: IDL.Opt(\n      IDL.Vec(\n        IDL.Record({ balance: IDL.Nat, erc20_contract_address: IDL.Text }),\n      ),\n    ),\n    minter_address: IDL.Opt(IDL.Text),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthTransaction = IDL.Record({ transaction_hash: IDL.Text });\n  const TxFinalizedStatus = IDL.Variant({\n    Success: IDL.Record({\n      transaction_hash: IDL.Text,\n      effective_transaction_fee: IDL.Opt(IDL.Nat),\n    }),\n    Reimbursed: IDL.Record({\n      transaction_hash: IDL.Text,\n      reimbursed_amount: IDL.Nat,\n      reimbursed_in_block: IDL.Nat,\n    }),\n    PendingReimbursement: EthTransaction,\n  });\n  const RetrieveEthStatus = IDL.Variant({\n    NotFound: IDL.Null,\n    TxFinalized: TxFinalizedStatus,\n    TxSent: EthTransaction,\n    TxCreated: IDL.Null,\n    Pending: IDL.Null,\n  });\n  const WithdrawErc20Arg = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n    recipient: IDL.Text,\n    from_cketh_subaccount: IDL.Opt(Subaccount),\n    from_ckerc20_subaccount: IDL.Opt(Subaccount),\n    amount: IDL.Nat,\n  });\n  const RetrieveErc20Request = IDL.Record({\n    ckerc20_block_index: IDL.Nat,\n    cketh_block_index: IDL.Nat,\n  });\n  const LedgerError = IDL.Variant({\n    TemporarilyUnavailable: IDL.Text,\n    InsufficientAllowance: IDL.Record({\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      allowance: IDL.Nat,\n      failed_burn_amount: IDL.Nat,\n    }),\n    AmountTooLow: IDL.Record({\n      minimum_burn_amount: IDL.Nat,\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      failed_burn_amount: IDL.Nat,\n    }),\n    InsufficientFunds: IDL.Record({\n      balance: IDL.Nat,\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      failed_burn_amount: IDL.Nat,\n    }),\n  });\n  const WithdrawErc20Error = IDL.Variant({\n    TokenNotSupported: IDL.Record({\n      supported_tokens: IDL.Vec(CkErc20Token),\n    }),\n    TemporarilyUnavailable: IDL.Text,\n    CkErc20LedgerError: IDL.Record({\n      error: LedgerError,\n      cketh_block_index: IDL.Nat,\n    }),\n    CkEthLedgerError: IDL.Record({ error: LedgerError }),\n    RecipientAddressBlocked: IDL.Record({ address: IDL.Text }),\n  });\n  const WithdrawalArg = IDL.Record({\n    recipient: IDL.Text,\n    from_subaccount: IDL.Opt(Subaccount),\n    amount: IDL.Nat,\n  });\n  const RetrieveEthRequest = IDL.Record({ block_index: IDL.Nat });\n  const WithdrawalError = IDL.Variant({\n    TemporarilyUnavailable: IDL.Text,\n    InsufficientAllowance: IDL.Record({ allowance: IDL.Nat }),\n    AmountTooLow: IDL.Record({ min_withdrawal_amount: IDL.Nat }),\n    RecipientAddressBlocked: IDL.Record({ address: IDL.Text }),\n    InsufficientFunds: IDL.Record({ balance: IDL.Nat }),\n  });\n  const Account = IDL.Record({\n    owner: IDL.Principal,\n    subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n  });\n  const WithdrawalSearchParameter = IDL.Variant({\n    ByRecipient: IDL.Text,\n    BySenderAccount: Account,\n    ByWithdrawalId: IDL.Nat64,\n  });\n  const WithdrawalStatus = IDL.Variant({\n    TxFinalized: TxFinalizedStatus,\n    TxSent: EthTransaction,\n    TxCreated: IDL.Null,\n    Pending: IDL.Null,\n  });\n  const WithdrawalDetail = IDL.Record({\n    status: WithdrawalStatus,\n    token_symbol: IDL.Text,\n    withdrawal_amount: IDL.Nat,\n    withdrawal_id: IDL.Nat64,\n    from: IDL.Principal,\n    from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    max_transaction_fee: IDL.Opt(IDL.Nat),\n    recipient_address: IDL.Text,\n  });\n\n  return IDL.Service({\n    add_ckerc20_token: IDL.Func([AddCkErc20Token], [], []),\n    eip_1559_transaction_price: IDL.Func(\n      [IDL.Opt(Eip1559TransactionPriceArg)],\n      [Eip1559TransactionPrice],\n      [],\n    ),\n    get_canister_status: IDL.Func([], [CanisterStatusResponse], []),\n    get_events: IDL.Func(\n      [IDL.Record({ start: IDL.Nat64, length: IDL.Nat64 })],\n      [\n        IDL.Record({\n          total_event_count: IDL.Nat64,\n          events: IDL.Vec(Event),\n        }),\n      ],\n      [],\n    ),\n    get_minter_info: IDL.Func([], [MinterInfo], []),\n    is_address_blocked: IDL.Func([IDL.Text], [IDL.Bool], []),\n    minter_address: IDL.Func([], [IDL.Text], []),\n    retrieve_eth_status: IDL.Func([IDL.Nat64], [RetrieveEthStatus], []),\n    smart_contract_address: IDL.Func([], [IDL.Text], []),\n    withdraw_erc20: IDL.Func(\n      [WithdrawErc20Arg],\n      [\n        IDL.Variant({\n          Ok: RetrieveErc20Request,\n          Err: WithdrawErc20Error,\n        }),\n      ],\n      [],\n    ),\n    withdraw_eth: IDL.Func(\n      [WithdrawalArg],\n      [IDL.Variant({ Ok: RetrieveEthRequest, Err: WithdrawalError })],\n      [],\n    ),\n    withdrawal_status: IDL.Func(\n      [WithdrawalSearchParameter],\n      [IDL.Vec(WithdrawalDetail)],\n      [],\n    ),\n  });\n};\n\nexport const init = ({ IDL }) => {\n  const BlockTag = IDL.Variant({\n    Safe: IDL.Null,\n    Finalized: IDL.Null,\n    Latest: IDL.Null,\n  });\n  const UpgradeArg = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    next_transaction_nonce: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_suite_orchestrator_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthereumNetwork = IDL.Variant({\n    Mainnet: IDL.Null,\n    Sepolia: IDL.Null,\n  });\n  const InitArg = IDL.Record({\n    ethereum_network: EthereumNetwork,\n    last_scraped_block_number: IDL.Nat,\n    ecdsa_key_name: IDL.Text,\n    next_transaction_nonce: IDL.Nat,\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_id: IDL.Principal,\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Nat,\n    ethereum_block_height: BlockTag,\n  });\n  const MinterArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n  });\n\n  return [MinterArg];\n};\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0-patch-typed-arrays.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n  const BlockTag = IDL.Variant({\n    Safe: IDL.Null,\n    Finalized: IDL.Null,\n    Latest: IDL.Null,\n  });\n  const UpgradeArg = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    next_transaction_nonce: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_suite_orchestrator_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthereumNetwork = IDL.Variant({\n    Mainnet: IDL.Null,\n    Sepolia: IDL.Null,\n  });\n  const InitArg = IDL.Record({\n    ethereum_network: EthereumNetwork,\n    last_scraped_block_number: IDL.Nat,\n    ecdsa_key_name: IDL.Text,\n    next_transaction_nonce: IDL.Nat,\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_id: IDL.Principal,\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Nat,\n    ethereum_block_height: BlockTag,\n  });\n  const MinterArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n  });\n  const AddCkErc20Token = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const Eip1559TransactionPriceArg = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n  });\n  const Eip1559TransactionPrice = IDL.Record({\n    max_priority_fee_per_gas: IDL.Nat,\n    max_fee_per_gas: IDL.Nat,\n    max_transaction_fee: IDL.Nat,\n    timestamp: IDL.Opt(IDL.Nat64),\n    gas_limit: IDL.Nat,\n  });\n  const CanisterStatusType = IDL.Variant({\n    stopped: IDL.Null,\n    stopping: IDL.Null,\n    running: IDL.Null,\n  });\n  const LogVisibility = IDL.Variant({\n    controllers: IDL.Null,\n    public: IDL.Null,\n    allowed_viewers: IDL.Vec(IDL.Principal),\n  });\n  const DefiniteCanisterSettings = IDL.Record({\n    freezing_threshold: IDL.Nat,\n    controllers: IDL.Vec(IDL.Principal),\n    reserved_cycles_limit: IDL.Nat,\n    log_visibility: LogVisibility,\n    wasm_memory_limit: IDL.Nat,\n    memory_allocation: IDL.Nat,\n    compute_allocation: IDL.Nat,\n  });\n  const QueryStats = IDL.Record({\n    response_payload_bytes_total: IDL.Nat,\n    num_instructions_total: IDL.Nat,\n    num_calls_total: IDL.Nat,\n    request_payload_bytes_total: IDL.Nat,\n  });\n  const CanisterStatusResponse = IDL.Record({\n    status: CanisterStatusType,\n    memory_size: IDL.Nat,\n    cycles: IDL.Nat,\n    settings: DefiniteCanisterSettings,\n    query_stats: QueryStats,\n    idle_cycles_burned_per_day: IDL.Nat,\n    module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    reserved_cycles: IDL.Nat,\n  });\n  const Subaccount = IDL.Vec(IDL.Nat8);\n  const EventSource = IDL.Record({\n    transaction_hash: IDL.Text,\n    log_index: IDL.Nat,\n  });\n  const UnsignedTransaction = IDL.Record({\n    destination: IDL.Text,\n    value: IDL.Nat,\n    max_priority_fee_per_gas: IDL.Nat,\n    data: IDL.Vec(IDL.Nat8),\n    max_fee_per_gas: IDL.Nat,\n    chain_id: IDL.Nat,\n    nonce: IDL.Nat,\n    gas_limit: IDL.Nat,\n    access_list: IDL.Vec(\n      IDL.Record({\n        storage_keys: IDL.Vec(IDL.Vec(IDL.Nat8)),\n        address: IDL.Text,\n      }),\n    ),\n  });\n  const ReimbursementIndex = IDL.Variant({\n    CkErc20: IDL.Record({\n      cketh_ledger_burn_index: IDL.Nat,\n      ledger_id: IDL.Principal,\n      ckerc20_ledger_burn_index: IDL.Nat,\n    }),\n    CkEth: IDL.Record({ ledger_burn_index: IDL.Nat }),\n  });\n  const TransactionReceipt = IDL.Record({\n    effective_gas_price: IDL.Nat,\n    status: IDL.Variant({ Success: IDL.Null, Failure: IDL.Null }),\n    transaction_hash: IDL.Text,\n    block_hash: IDL.Text,\n    block_number: IDL.Nat,\n    gas_used: IDL.Nat,\n  });\n  const Event = IDL.Record({\n    timestamp: IDL.Nat64,\n    payload: IDL.Variant({\n      SkippedBlock: IDL.Record({\n        block_number: IDL.Nat,\n        contract_address: IDL.Opt(IDL.Text),\n      }),\n      AcceptedErc20Deposit: IDL.Record({\n        principal: IDL.Principal,\n        transaction_hash: IDL.Text,\n        value: IDL.Nat,\n        log_index: IDL.Nat,\n        subaccount: IDL.Opt(Subaccount),\n        block_number: IDL.Nat,\n        erc20_contract_address: IDL.Text,\n        from_address: IDL.Text,\n      }),\n      SignedTransaction: IDL.Record({\n        raw_transaction: IDL.Text,\n        withdrawal_id: IDL.Nat,\n      }),\n      Upgrade: UpgradeArg,\n      Init: InitArg,\n      AddedCkErc20Token: IDL.Record({\n        ckerc20_ledger_id: IDL.Principal,\n        chain_id: IDL.Nat,\n        address: IDL.Text,\n        ckerc20_token_symbol: IDL.Text,\n      }),\n      SyncedDepositWithSubaccountToBlock: IDL.Record({\n        block_number: IDL.Nat,\n      }),\n      QuarantinedDeposit: IDL.Record({ event_source: EventSource }),\n      SyncedToBlock: IDL.Record({ block_number: IDL.Nat }),\n      AcceptedDeposit: IDL.Record({\n        principal: IDL.Principal,\n        transaction_hash: IDL.Text,\n        value: IDL.Nat,\n        log_index: IDL.Nat,\n        subaccount: IDL.Opt(Subaccount),\n        block_number: IDL.Nat,\n        from_address: IDL.Text,\n      }),\n      ReplacedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction: UnsignedTransaction,\n      }),\n      QuarantinedReimbursement: IDL.Record({ index: ReimbursementIndex }),\n      MintedCkEth: IDL.Record({\n        event_source: EventSource,\n        mint_block_index: IDL.Nat,\n      }),\n      ReimbursedEthWithdrawal: IDL.Record({\n        transaction_hash: IDL.Opt(IDL.Text),\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        reimbursed_in_block: IDL.Nat,\n      }),\n      FailedErc20WithdrawalRequest: IDL.Record({\n        to: IDL.Principal,\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        to_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n      }),\n      ReimbursedErc20Withdrawal: IDL.Record({\n        burn_in_block: IDL.Nat,\n        transaction_hash: IDL.Opt(IDL.Text),\n        withdrawal_id: IDL.Nat,\n        reimbursed_amount: IDL.Nat,\n        ledger_id: IDL.Principal,\n        reimbursed_in_block: IDL.Nat,\n      }),\n      MintedCkErc20: IDL.Record({\n        event_source: EventSource,\n        erc20_contract_address: IDL.Text,\n        mint_block_index: IDL.Nat,\n        ckerc20_token_symbol: IDL.Text,\n      }),\n      CreatedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction: UnsignedTransaction,\n      }),\n      InvalidDeposit: IDL.Record({\n        event_source: EventSource,\n        reason: IDL.Text,\n      }),\n      SyncedErc20ToBlock: IDL.Record({ block_number: IDL.Nat }),\n      AcceptedErc20WithdrawalRequest: IDL.Record({\n        cketh_ledger_burn_index: IDL.Nat,\n        destination: IDL.Text,\n        ckerc20_ledger_id: IDL.Principal,\n        withdrawal_amount: IDL.Nat,\n        from: IDL.Principal,\n        created_at: IDL.Nat64,\n        from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n        erc20_contract_address: IDL.Text,\n        ckerc20_ledger_burn_index: IDL.Nat,\n        max_transaction_fee: IDL.Nat,\n      }),\n      AcceptedEthWithdrawalRequest: IDL.Record({\n        ledger_burn_index: IDL.Nat,\n        destination: IDL.Text,\n        withdrawal_amount: IDL.Nat,\n        from: IDL.Principal,\n        created_at: IDL.Opt(IDL.Nat64),\n        from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n      }),\n      FinalizedTransaction: IDL.Record({\n        withdrawal_id: IDL.Nat,\n        transaction_receipt: TransactionReceipt,\n      }),\n    }),\n  });\n  const CkErc20Token = IDL.Record({\n    erc20_contract_address: IDL.Text,\n    ledger_canister_id: IDL.Principal,\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const GasFeeEstimate = IDL.Record({\n    max_priority_fee_per_gas: IDL.Nat,\n    max_fee_per_gas: IDL.Nat,\n    timestamp: IDL.Nat64,\n  });\n  const MinterInfo = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    eth_balance: IDL.Opt(IDL.Nat),\n    eth_helper_contract_address: IDL.Opt(IDL.Text),\n    last_observed_block_number: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    supported_ckerc20_tokens: IDL.Opt(IDL.Vec(CkErc20Token)),\n    last_gas_fee_estimate: IDL.Opt(GasFeeEstimate),\n    cketh_ledger_id: IDL.Opt(IDL.Principal),\n    smart_contract_address: IDL.Opt(IDL.Text),\n    last_eth_scraped_block_number: IDL.Opt(IDL.Nat),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    erc20_balances: IDL.Opt(\n      IDL.Vec(\n        IDL.Record({ balance: IDL.Nat, erc20_contract_address: IDL.Text }),\n      ),\n    ),\n    minter_address: IDL.Opt(IDL.Text),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthTransaction = IDL.Record({ transaction_hash: IDL.Text });\n  const TxFinalizedStatus = IDL.Variant({\n    Success: IDL.Record({\n      transaction_hash: IDL.Text,\n      effective_transaction_fee: IDL.Opt(IDL.Nat),\n    }),\n    Reimbursed: IDL.Record({\n      transaction_hash: IDL.Text,\n      reimbursed_amount: IDL.Nat,\n      reimbursed_in_block: IDL.Nat,\n    }),\n    PendingReimbursement: EthTransaction,\n  });\n  const RetrieveEthStatus = IDL.Variant({\n    NotFound: IDL.Null,\n    TxFinalized: TxFinalizedStatus,\n    TxSent: EthTransaction,\n    TxCreated: IDL.Null,\n    Pending: IDL.Null,\n  });\n  const WithdrawErc20Arg = IDL.Record({\n    ckerc20_ledger_id: IDL.Principal,\n    recipient: IDL.Text,\n    from_cketh_subaccount: IDL.Opt(Subaccount),\n    from_ckerc20_subaccount: IDL.Opt(Subaccount),\n    amount: IDL.Nat,\n  });\n  const RetrieveErc20Request = IDL.Record({\n    ckerc20_block_index: IDL.Nat,\n    cketh_block_index: IDL.Nat,\n  });\n  const LedgerError = IDL.Variant({\n    TemporarilyUnavailable: IDL.Text,\n    InsufficientAllowance: IDL.Record({\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      allowance: IDL.Nat,\n      failed_burn_amount: IDL.Nat,\n    }),\n    AmountTooLow: IDL.Record({\n      minimum_burn_amount: IDL.Nat,\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      failed_burn_amount: IDL.Nat,\n    }),\n    InsufficientFunds: IDL.Record({\n      balance: IDL.Nat,\n      token_symbol: IDL.Text,\n      ledger_id: IDL.Principal,\n      failed_burn_amount: IDL.Nat,\n    }),\n  });\n  const WithdrawErc20Error = IDL.Variant({\n    TokenNotSupported: IDL.Record({\n      supported_tokens: IDL.Vec(CkErc20Token),\n    }),\n    TemporarilyUnavailable: IDL.Text,\n    CkErc20LedgerError: IDL.Record({\n      error: LedgerError,\n      cketh_block_index: IDL.Nat,\n    }),\n    CkEthLedgerError: IDL.Record({ error: LedgerError }),\n    RecipientAddressBlocked: IDL.Record({ address: IDL.Text }),\n  });\n  const WithdrawalArg = IDL.Record({\n    recipient: IDL.Text,\n    from_subaccount: IDL.Opt(Subaccount),\n    amount: IDL.Nat,\n  });\n  const RetrieveEthRequest = IDL.Record({ block_index: IDL.Nat });\n  const WithdrawalError = IDL.Variant({\n    TemporarilyUnavailable: IDL.Text,\n    InsufficientAllowance: IDL.Record({ allowance: IDL.Nat }),\n    AmountTooLow: IDL.Record({ min_withdrawal_amount: IDL.Nat }),\n    RecipientAddressBlocked: IDL.Record({ address: IDL.Text }),\n    InsufficientFunds: IDL.Record({ balance: IDL.Nat }),\n  });\n  const Account = IDL.Record({\n    owner: IDL.Principal,\n    subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n  });\n  const WithdrawalSearchParameter = IDL.Variant({\n    ByRecipient: IDL.Text,\n    BySenderAccount: Account,\n    ByWithdrawalId: IDL.Nat64,\n  });\n  const WithdrawalStatus = IDL.Variant({\n    TxFinalized: TxFinalizedStatus,\n    TxSent: EthTransaction,\n    TxCreated: IDL.Null,\n    Pending: IDL.Null,\n  });\n  const WithdrawalDetail = IDL.Record({\n    status: WithdrawalStatus,\n    token_symbol: IDL.Text,\n    withdrawal_amount: IDL.Nat,\n    withdrawal_id: IDL.Nat64,\n    from: IDL.Principal,\n    from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    max_transaction_fee: IDL.Opt(IDL.Nat),\n    recipient_address: IDL.Text,\n  });\n\n  return IDL.Service({\n    add_ckerc20_token: IDL.Func([AddCkErc20Token], [], []),\n    eip_1559_transaction_price: IDL.Func(\n      [IDL.Opt(Eip1559TransactionPriceArg)],\n      [Eip1559TransactionPrice],\n      [\"query\"],\n    ),\n    get_canister_status: IDL.Func([], [CanisterStatusResponse], []),\n    get_events: IDL.Func(\n      [IDL.Record({ start: IDL.Nat64, length: IDL.Nat64 })],\n      [\n        IDL.Record({\n          total_event_count: IDL.Nat64,\n          events: IDL.Vec(Event),\n        }),\n      ],\n      [\"query\"],\n    ),\n    get_minter_info: IDL.Func([], [MinterInfo], [\"query\"]),\n    is_address_blocked: IDL.Func([IDL.Text], [IDL.Bool], [\"query\"]),\n    minter_address: IDL.Func([], [IDL.Text], []),\n    retrieve_eth_status: IDL.Func([IDL.Nat64], [RetrieveEthStatus], []),\n    smart_contract_address: IDL.Func([], [IDL.Text], [\"query\"]),\n    withdraw_erc20: IDL.Func(\n      [WithdrawErc20Arg],\n      [\n        IDL.Variant({\n          Ok: RetrieveErc20Request,\n          Err: WithdrawErc20Error,\n        }),\n      ],\n      [],\n    ),\n    withdraw_eth: IDL.Func(\n      [WithdrawalArg],\n      [IDL.Variant({ Ok: RetrieveEthRequest, Err: WithdrawalError })],\n      [],\n    ),\n    withdrawal_status: IDL.Func(\n      [WithdrawalSearchParameter],\n      [IDL.Vec(WithdrawalDetail)],\n      [\"query\"],\n    ),\n  });\n};\n\nexport const init = ({ IDL }) => {\n  const BlockTag = IDL.Variant({\n    Safe: IDL.Null,\n    Finalized: IDL.Null,\n    Latest: IDL.Null,\n  });\n  const UpgradeArg = IDL.Record({\n    deposit_with_subaccount_helper_contract_address: IDL.Opt(IDL.Text),\n    next_transaction_nonce: IDL.Opt(IDL.Nat),\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_suite_orchestrator_id: IDL.Opt(IDL.Principal),\n    erc20_helper_contract_address: IDL.Opt(IDL.Text),\n    last_erc20_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Opt(IDL.Nat),\n    last_deposit_with_subaccount_scraped_block_number: IDL.Opt(IDL.Nat),\n    ethereum_block_height: IDL.Opt(BlockTag),\n  });\n  const EthereumNetwork = IDL.Variant({\n    Mainnet: IDL.Null,\n    Sepolia: IDL.Null,\n  });\n  const InitArg = IDL.Record({\n    ethereum_network: EthereumNetwork,\n    last_scraped_block_number: IDL.Nat,\n    ecdsa_key_name: IDL.Text,\n    next_transaction_nonce: IDL.Nat,\n    evm_rpc_id: IDL.Opt(IDL.Principal),\n    ledger_id: IDL.Principal,\n    ethereum_contract_address: IDL.Opt(IDL.Text),\n    minimum_withdrawal_amount: IDL.Nat,\n    ethereum_block_height: BlockTag,\n  });\n  const MinterArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n  });\n\n  return [MinterArg];\n};\n", "import { isNullish, toNullable, type QueryParams } from \"@dfinity/utils\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport type { Eip1559TransactionPriceArg } from \"../candid/minter\";\n\nexport type Eip1559TransactionPriceParams = {\n  ckErc20LedgerId?: Principal;\n} & QueryParams;\n\nexport const toEip1559TransactionPriceParams = ({\n  ckErc20LedgerId: ckerc20_ledger_id,\n}: Eip1559TransactionPriceParams): [] | [Eip1559TransactionPriceArg] =>\n  toNullable(isNullish(ckerc20_ledger_id) ? undefined : { ckerc20_ledger_id });\n", "import { Canister, createServices, type QueryParams } from \"@dfinity/utils\";\nimport type {\n  _SERVICE as CkETHOrchestratorService,\n  OrchestratorInfo,\n} from \"./candid/orchestrator\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/orchestrator.certified.idl\";\nimport { idlFactory } from \"./candid/orchestrator.idl\";\nimport type { CkETHOrchestratorCanisterOptions } from \"./types/canister.options\";\n\n/**\n * Class representing the CkETH Orchestrator Canister, which manages the Ledger and Index canisters of ckERC20 tokens.\n * @extends {Canister<CkETHOrchestratorService>}\n * @see {@link https://github.com/dfinity/ic/tree/master/rs/ethereum/ledger-suite-orchestrator|Source Code}\n */\nexport class CkETHOrchestratorCanister extends Canister<CkETHOrchestratorService> {\n  /**\n   * Creates an instance of CkETHOrchestratorCanister.\n   * @param {CkETHOrchestratorCanisterOptions<CkETHOrchestratorService>} options - Options for creating the canister.\n   * @returns {CkETHOrchestratorCanister} A new instance of CkETHOrchestratorCanister.\n   */\n  static create(\n    options: CkETHOrchestratorCanisterOptions<CkETHOrchestratorService>,\n  ): CkETHOrchestratorCanister {\n    const { service, certifiedService, canisterId } =\n      createServices<CkETHOrchestratorService>({\n        options,\n        idlFactory,\n        certifiedIdlFactory,\n      });\n\n    return new CkETHOrchestratorCanister(canisterId, service, certifiedService);\n  }\n\n  /**\n   * Retrieves orchestrator information, which contains the list of existing ckERC20 Ledger and Index canisters.\n   * @param {QueryParams} [params={}] - The query parameters.\n   * @param {boolean} [params.certified] - Whether to execute a certified (update) call.\n   * @returns {Promise<OrchestratorInfo>} A promise that resolves to the orchestrator information.\n   */\n  getOrchestratorInfo = ({\n    certified,\n  }: QueryParams = {}): Promise<OrchestratorInfo> => {\n    const { get_orchestrator_info } = this.caller({ certified });\n    return get_orchestrator_info();\n  };\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0-patch-typed-arrays.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n  const InstalledCanister = IDL.Record({\n    canister_id: IDL.Principal,\n    installed_wasm_hash: IDL.Text,\n  });\n  const InstalledLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: InstalledCanister,\n    index: InstalledCanister,\n    archives: IDL.Opt(IDL.Vec(IDL.Principal)),\n  });\n  const UpdateCyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Opt(IDL.Nat),\n    cycles_for_ledger_creation: IDL.Opt(IDL.Nat),\n    cycles_for_archive_creation: IDL.Opt(IDL.Nat),\n    cycles_for_index_creation: IDL.Opt(IDL.Nat),\n  });\n  const UpgradeArg = IDL.Record({\n    manage_ledger_suites: IDL.Opt(IDL.Vec(InstalledLedgerSuite)),\n    cycles_management: IDL.Opt(UpdateCyclesManagement),\n    archive_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    git_commit_hash: IDL.Opt(IDL.Text),\n    ledger_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    index_compressed_wasm_hash: IDL.Opt(IDL.Text),\n  });\n  const CyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Nat,\n    cycles_for_ledger_creation: IDL.Nat,\n    cycles_for_archive_creation: IDL.Nat,\n    cycles_for_index_creation: IDL.Nat,\n  });\n  const InitArg = IDL.Record({\n    cycles_management: IDL.Opt(CyclesManagement),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n  const Erc20Contract = IDL.Record({\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n  });\n  const LedgerInitArg = IDL.Record({\n    decimals: IDL.Nat8,\n    token_symbol: IDL.Text,\n    transfer_fee: IDL.Nat,\n    token_logo: IDL.Text,\n    token_name: IDL.Text,\n  });\n  const AddErc20Arg = IDL.Record({\n    contract: Erc20Contract,\n    ledger_init_arg: LedgerInitArg,\n  });\n  const OrchestratorArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n    AddErc20Arg: AddErc20Arg,\n  });\n  const ManagedCanisterIds = IDL.Record({\n    ledger: IDL.Opt(IDL.Principal),\n    index: IDL.Opt(IDL.Principal),\n    archives: IDL.Vec(IDL.Principal),\n  });\n  const CanisterStatusType = IDL.Variant({\n    stopped: IDL.Null,\n    stopping: IDL.Null,\n    running: IDL.Null,\n  });\n  const LogVisibility = IDL.Variant({\n    controllers: IDL.Null,\n    public: IDL.Null,\n    allowed_viewers: IDL.Vec(IDL.Principal),\n  });\n  const DefiniteCanisterSettings = IDL.Record({\n    freezing_threshold: IDL.Nat,\n    controllers: IDL.Vec(IDL.Principal),\n    reserved_cycles_limit: IDL.Nat,\n    log_visibility: LogVisibility,\n    wasm_memory_limit: IDL.Nat,\n    memory_allocation: IDL.Nat,\n    compute_allocation: IDL.Nat,\n  });\n  const QueryStats = IDL.Record({\n    response_payload_bytes_total: IDL.Nat,\n    num_instructions_total: IDL.Nat,\n    num_calls_total: IDL.Nat,\n    request_payload_bytes_total: IDL.Nat,\n  });\n  const CanisterStatusResponse = IDL.Record({\n    status: CanisterStatusType,\n    memory_size: IDL.Nat,\n    cycles: IDL.Nat,\n    settings: DefiniteCanisterSettings,\n    query_stats: QueryStats,\n    idle_cycles_burned_per_day: IDL.Nat,\n    module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    reserved_cycles: IDL.Nat,\n  });\n  const ManagedCanisterStatus = IDL.Variant({\n    Created: IDL.Record({ canister_id: IDL.Principal }),\n    Installed: IDL.Record({\n      canister_id: IDL.Principal,\n      installed_wasm_hash: IDL.Text,\n    }),\n  });\n  const ManagedCanisters = IDL.Record({\n    erc20_contract: Erc20Contract,\n    ledger: IDL.Opt(ManagedCanisterStatus),\n    index: IDL.Opt(ManagedCanisterStatus),\n    archives: IDL.Vec(IDL.Principal),\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const ManagedLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: IDL.Opt(ManagedCanisterStatus),\n    index: IDL.Opt(ManagedCanisterStatus),\n    archives: IDL.Vec(IDL.Principal),\n  });\n  const LedgerSuiteVersion = IDL.Record({\n    archive_compressed_wasm_hash: IDL.Text,\n    ledger_compressed_wasm_hash: IDL.Text,\n    index_compressed_wasm_hash: IDL.Text,\n  });\n  const OrchestratorInfo = IDL.Record({\n    cycles_management: CyclesManagement,\n    managed_canisters: IDL.Vec(ManagedCanisters),\n    managed_pre_existing_ledger_suites: IDL.Opt(IDL.Vec(ManagedLedgerSuite)),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    ledger_suite_version: IDL.Opt(LedgerSuiteVersion),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n\n  return IDL.Service({\n    canister_ids: IDL.Func([Erc20Contract], [IDL.Opt(ManagedCanisterIds)], []),\n    get_canister_status: IDL.Func([], [CanisterStatusResponse], []),\n    get_orchestrator_info: IDL.Func([], [OrchestratorInfo], []),\n  });\n};\n\nexport const init = ({ IDL }) => {\n  const InstalledCanister = IDL.Record({\n    canister_id: IDL.Principal,\n    installed_wasm_hash: IDL.Text,\n  });\n  const InstalledLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: InstalledCanister,\n    index: InstalledCanister,\n    archives: IDL.Opt(IDL.Vec(IDL.Principal)),\n  });\n  const UpdateCyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Opt(IDL.Nat),\n    cycles_for_ledger_creation: IDL.Opt(IDL.Nat),\n    cycles_for_archive_creation: IDL.Opt(IDL.Nat),\n    cycles_for_index_creation: IDL.Opt(IDL.Nat),\n  });\n  const UpgradeArg = IDL.Record({\n    manage_ledger_suites: IDL.Opt(IDL.Vec(InstalledLedgerSuite)),\n    cycles_management: IDL.Opt(UpdateCyclesManagement),\n    archive_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    git_commit_hash: IDL.Opt(IDL.Text),\n    ledger_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    index_compressed_wasm_hash: IDL.Opt(IDL.Text),\n  });\n  const CyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Nat,\n    cycles_for_ledger_creation: IDL.Nat,\n    cycles_for_archive_creation: IDL.Nat,\n    cycles_for_index_creation: IDL.Nat,\n  });\n  const InitArg = IDL.Record({\n    cycles_management: IDL.Opt(CyclesManagement),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n  const Erc20Contract = IDL.Record({\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n  });\n  const LedgerInitArg = IDL.Record({\n    decimals: IDL.Nat8,\n    token_symbol: IDL.Text,\n    transfer_fee: IDL.Nat,\n    token_logo: IDL.Text,\n    token_name: IDL.Text,\n  });\n  const AddErc20Arg = IDL.Record({\n    contract: Erc20Contract,\n    ledger_init_arg: LedgerInitArg,\n  });\n  const OrchestratorArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n    AddErc20Arg: AddErc20Arg,\n  });\n\n  return [OrchestratorArg];\n};\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0-patch-typed-arrays.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n  const InstalledCanister = IDL.Record({\n    canister_id: IDL.Principal,\n    installed_wasm_hash: IDL.Text,\n  });\n  const InstalledLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: InstalledCanister,\n    index: InstalledCanister,\n    archives: IDL.Opt(IDL.Vec(IDL.Principal)),\n  });\n  const UpdateCyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Opt(IDL.Nat),\n    cycles_for_ledger_creation: IDL.Opt(IDL.Nat),\n    cycles_for_archive_creation: IDL.Opt(IDL.Nat),\n    cycles_for_index_creation: IDL.Opt(IDL.Nat),\n  });\n  const UpgradeArg = IDL.Record({\n    manage_ledger_suites: IDL.Opt(IDL.Vec(InstalledLedgerSuite)),\n    cycles_management: IDL.Opt(UpdateCyclesManagement),\n    archive_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    git_commit_hash: IDL.Opt(IDL.Text),\n    ledger_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    index_compressed_wasm_hash: IDL.Opt(IDL.Text),\n  });\n  const CyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Nat,\n    cycles_for_ledger_creation: IDL.Nat,\n    cycles_for_archive_creation: IDL.Nat,\n    cycles_for_index_creation: IDL.Nat,\n  });\n  const InitArg = IDL.Record({\n    cycles_management: IDL.Opt(CyclesManagement),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n  const Erc20Contract = IDL.Record({\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n  });\n  const LedgerInitArg = IDL.Record({\n    decimals: IDL.Nat8,\n    token_symbol: IDL.Text,\n    transfer_fee: IDL.Nat,\n    token_logo: IDL.Text,\n    token_name: IDL.Text,\n  });\n  const AddErc20Arg = IDL.Record({\n    contract: Erc20Contract,\n    ledger_init_arg: LedgerInitArg,\n  });\n  const OrchestratorArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n    AddErc20Arg: AddErc20Arg,\n  });\n  const ManagedCanisterIds = IDL.Record({\n    ledger: IDL.Opt(IDL.Principal),\n    index: IDL.Opt(IDL.Principal),\n    archives: IDL.Vec(IDL.Principal),\n  });\n  const CanisterStatusType = IDL.Variant({\n    stopped: IDL.Null,\n    stopping: IDL.Null,\n    running: IDL.Null,\n  });\n  const LogVisibility = IDL.Variant({\n    controllers: IDL.Null,\n    public: IDL.Null,\n    allowed_viewers: IDL.Vec(IDL.Principal),\n  });\n  const DefiniteCanisterSettings = IDL.Record({\n    freezing_threshold: IDL.Nat,\n    controllers: IDL.Vec(IDL.Principal),\n    reserved_cycles_limit: IDL.Nat,\n    log_visibility: LogVisibility,\n    wasm_memory_limit: IDL.Nat,\n    memory_allocation: IDL.Nat,\n    compute_allocation: IDL.Nat,\n  });\n  const QueryStats = IDL.Record({\n    response_payload_bytes_total: IDL.Nat,\n    num_instructions_total: IDL.Nat,\n    num_calls_total: IDL.Nat,\n    request_payload_bytes_total: IDL.Nat,\n  });\n  const CanisterStatusResponse = IDL.Record({\n    status: CanisterStatusType,\n    memory_size: IDL.Nat,\n    cycles: IDL.Nat,\n    settings: DefiniteCanisterSettings,\n    query_stats: QueryStats,\n    idle_cycles_burned_per_day: IDL.Nat,\n    module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n    reserved_cycles: IDL.Nat,\n  });\n  const ManagedCanisterStatus = IDL.Variant({\n    Created: IDL.Record({ canister_id: IDL.Principal }),\n    Installed: IDL.Record({\n      canister_id: IDL.Principal,\n      installed_wasm_hash: IDL.Text,\n    }),\n  });\n  const ManagedCanisters = IDL.Record({\n    erc20_contract: Erc20Contract,\n    ledger: IDL.Opt(ManagedCanisterStatus),\n    index: IDL.Opt(ManagedCanisterStatus),\n    archives: IDL.Vec(IDL.Principal),\n    ckerc20_token_symbol: IDL.Text,\n  });\n  const ManagedLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: IDL.Opt(ManagedCanisterStatus),\n    index: IDL.Opt(ManagedCanisterStatus),\n    archives: IDL.Vec(IDL.Principal),\n  });\n  const LedgerSuiteVersion = IDL.Record({\n    archive_compressed_wasm_hash: IDL.Text,\n    ledger_compressed_wasm_hash: IDL.Text,\n    index_compressed_wasm_hash: IDL.Text,\n  });\n  const OrchestratorInfo = IDL.Record({\n    cycles_management: CyclesManagement,\n    managed_canisters: IDL.Vec(ManagedCanisters),\n    managed_pre_existing_ledger_suites: IDL.Opt(IDL.Vec(ManagedLedgerSuite)),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    ledger_suite_version: IDL.Opt(LedgerSuiteVersion),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n\n  return IDL.Service({\n    canister_ids: IDL.Func(\n      [Erc20Contract],\n      [IDL.Opt(ManagedCanisterIds)],\n      [\"query\"],\n    ),\n    get_canister_status: IDL.Func([], [CanisterStatusResponse], []),\n    get_orchestrator_info: IDL.Func([], [OrchestratorInfo], [\"query\"]),\n  });\n};\n\nexport const init = ({ IDL }) => {\n  const InstalledCanister = IDL.Record({\n    canister_id: IDL.Principal,\n    installed_wasm_hash: IDL.Text,\n  });\n  const InstalledLedgerSuite = IDL.Record({\n    token_symbol: IDL.Text,\n    ledger: InstalledCanister,\n    index: InstalledCanister,\n    archives: IDL.Opt(IDL.Vec(IDL.Principal)),\n  });\n  const UpdateCyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Opt(IDL.Nat),\n    cycles_for_ledger_creation: IDL.Opt(IDL.Nat),\n    cycles_for_archive_creation: IDL.Opt(IDL.Nat),\n    cycles_for_index_creation: IDL.Opt(IDL.Nat),\n  });\n  const UpgradeArg = IDL.Record({\n    manage_ledger_suites: IDL.Opt(IDL.Vec(InstalledLedgerSuite)),\n    cycles_management: IDL.Opt(UpdateCyclesManagement),\n    archive_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    git_commit_hash: IDL.Opt(IDL.Text),\n    ledger_compressed_wasm_hash: IDL.Opt(IDL.Text),\n    index_compressed_wasm_hash: IDL.Opt(IDL.Text),\n  });\n  const CyclesManagement = IDL.Record({\n    cycles_top_up_increment: IDL.Nat,\n    cycles_for_ledger_creation: IDL.Nat,\n    cycles_for_archive_creation: IDL.Nat,\n    cycles_for_index_creation: IDL.Nat,\n  });\n  const InitArg = IDL.Record({\n    cycles_management: IDL.Opt(CyclesManagement),\n    more_controller_ids: IDL.Vec(IDL.Principal),\n    minter_id: IDL.Opt(IDL.Principal),\n  });\n  const Erc20Contract = IDL.Record({\n    chain_id: IDL.Nat,\n    address: IDL.Text,\n  });\n  const LedgerInitArg = IDL.Record({\n    decimals: IDL.Nat8,\n    token_symbol: IDL.Text,\n    transfer_fee: IDL.Nat,\n    token_logo: IDL.Text,\n    token_name: IDL.Text,\n  });\n  const AddErc20Arg = IDL.Record({\n    contract: Erc20Contract,\n    ledger_init_arg: LedgerInitArg,\n  });\n  const OrchestratorArg = IDL.Variant({\n    UpgradeArg: UpgradeArg,\n    InitArg: InitArg,\n    AddErc20Arg: AddErc20Arg,\n  });\n\n  return [OrchestratorArg];\n};\n", "import { decodeBase32 } from \"@dfinity/utils\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\n\n/**\n * Encode a principal to a byte array as Ethereum data hex (staring with 0x).\n * Such a conversion is required to deposit ETH to the ckETH helper contract.\n *\n * Code adapted from the ckETH minter dashboard JS function: https://github.com/dfinity/ic/blob/master/rs/ethereum/cketh/minter/templates/principal_to_bytes.js\n *\n * @param principal The principal to encode into a fixed 32-byte representation suitable for calling Ethereum smart contracts.\n */\nexport const encodePrincipalToEthAddress = (principal: Principal): string => {\n  const rawBytes = decodeBase32(principal.toText().replace(/-/g, \"\"));\n  return bytes32Encode(rawBytes.slice(4));\n};\n\n/**\n * Appends a hex representation of a number to string.\n * @param {string} s A string to append the hex to.\n * @param {number} b A byte.\n * @return {string} An updated string.\n */\nconst appendHexByte = ({\n  stringToAppend,\n  bytes,\n}: {\n  stringToAppend: string;\n  bytes: number;\n}): string => {\n  stringToAppend += ((bytes >> 4) & 0x0f).toString(16);\n  stringToAppend += (bytes & 0x0f).toString(16);\n  return stringToAppend;\n};\n\n/**\n * Encodes a byte array as Ethereum data hex (staring with 0x).\n * @param {Array<number>} bytes A byte array.\n * @return {string} A hex string.\n */\nconst bytes32Encode = (bytes: Uint8Array): string => {\n  const n = bytes.length;\n  let s = \"0x\";\n  s = appendHexByte({ stringToAppend: s, bytes: n });\n  for (let i = 0; i < bytes.length; i++) {\n    s = appendHexByte({ stringToAppend: s, bytes: bytes[i] });\n  }\n  for (let i = 0; i < 31 - bytes.length; i++) {\n    s += \"00\";\n  }\n  return s;\n};\n"],
  "mappings": ";;AAAA,OAAS,cAAAA,OAAkB,iBAOpB,IAAMC,EAAN,cAA+B,KAAM,CACnC,QACP,YAAY,CAAE,IAAAC,EAAK,QAAAC,CAAQ,EAAkC,CAC3D,MAAMD,CAAG,EACT,KAAK,QAAUC,CACjB,CACF,EAEaC,EAAN,cAAiC,KAAM,CAAC,EAElCC,EAAN,cAA6BJ,CAAiB,CAAC,EAEzCK,EAAN,cAA8CF,CAAmB,CAAC,EAC5DG,EAAN,cAA8CF,CAAe,CAAC,EACxDG,EAAN,cAAkDH,CAAe,CAAC,EAC5DI,EAAN,cAAyCJ,CAAe,CAAC,EACnDK,EAAN,cAAoDL,CAAe,CAAC,EAC9DM,EAAN,cAAyCN,CAAe,CAAC,EAEnDO,GAAN,cAAiC,KAAM,CAAC,EAElCC,EAAN,cAA6BZ,CAAiB,CAAC,EAEzCa,EAAN,cAAuCD,CAAe,CAAC,EACjDE,EAAN,cAAiDF,CAAe,CAAC,EAC3DG,EAAN,cAAkDH,CAAe,CAAC,EAC5DI,EAAN,cAAyCJ,CAAe,CAAC,EACnDK,EAAN,cAA8CL,CAAe,CAAC,EAExDM,GACXC,GAEI,2BAA4BA,EACvB,IAAId,EAAgCc,EAAI,sBAAsB,EAGnE,0BAA2BA,EACtB,IAAIZ,EAAiC,CAC1C,QAASY,EAAI,sBAAsB,SACrC,CAAC,EAGC,iBAAkBA,EACb,IAAIX,EAAwB,CACjC,QAASW,EAAI,aAAa,qBAC5B,CAAC,EAGC,4BAA6BA,EACxB,IAAIV,EAAmC,CAC5C,QAASU,EAAI,wBAAwB,OACvC,CAAC,EAGC,sBAAuBA,EAClB,IAAIb,EAA6B,CACtC,QAASa,EAAI,kBAAkB,OACjC,CAAC,EAII,IAAIf,EAAY,CACrB,IAAK,kDACL,QAASe,CACX,CAAC,EAGUC,GACXD,GACuB,CACvB,GAAI,2BAA4BA,EAC9B,OAAO,IAAId,EAAgCc,EAAI,sBAAsB,EAGvE,GAAI,4BAA6BA,EAC/B,OAAO,IAAIV,EAAmC,CAC5C,QAASU,EAAI,wBAAwB,OACvC,CAAC,EAGH,GAAI,sBAAuBA,EACzB,OAAO,IAAIT,EAAwB,CACjC,QAASS,EAAI,kBAAkB,gBACjC,CAAC,EAGH,IAAME,EAAoB,CAAC,CACzB,IAAAF,EACA,gBAAAG,CACF,IAG0B,CACxB,IAAMC,EACJC,IAC4C,CAAE,MAAAA,EAAO,gBAAAF,CAAgB,GAEvE,MAAI,2BAA4BH,EACvB,IAAIL,EAAgC,CACzC,IAAKK,EAAI,uBACT,GAAIpB,GAAWuB,CAAe,GAAK,CACjC,QAAS,CACP,gBAAAA,CACF,CACF,CACF,CAAC,EAGC,0BAA2BH,EACtB,IAAIJ,EAAiC,CAC1C,QAASQ,EAAmBJ,EAAI,qBAAqB,CACvD,CAAC,EAGC,iBAAkBA,EACb,IAAIH,EAAwB,CACjC,QAASO,EAAmBJ,EAAI,YAAY,CAC9C,CAAC,EAGC,sBAAuBA,EAClB,IAAIF,EAA6B,CACtC,QAASM,EAAmBJ,EAAI,iBAAiB,CACnD,CAAC,EAII,IAAIN,EAAsB,CAC/B,IAAK,+DACL,QAASU,EAAmBJ,CAAG,CACjC,CAAC,CACH,EAEA,MAAI,uBAAwBA,EACnBE,EAAkB,CACvB,IAAKF,EAAI,mBAAmB,MAC5B,gBAAiBA,EAAI,mBAAmB,iBAC1C,CAAC,EAGC,qBAAsBA,EACjBE,EAAkB,CAAE,IAAKF,EAAI,iBAAiB,KAAM,CAAC,EAIvD,IAAIf,EAAY,CACrB,IAAK,oDACL,QAASe,CACX,CAAC,CACH,EC5JA,OACE,YAAAM,GACA,kBAAAC,GACA,cAAAC,MAEK,iBCGA,IAAMC,GAAa,CAAC,CAAE,IAAAC,CAAI,IAAM,CACrC,IAAMC,EAAWD,EAAI,QAAQ,CAC3B,KAAMA,EAAI,KACV,UAAWA,EAAI,KACf,OAAQA,EAAI,IACd,CAAC,EACKE,EAAaF,EAAI,OAAO,CAC5B,gDAAiDA,EAAI,IAAIA,EAAI,IAAI,EACjE,uBAAwBA,EAAI,IAAIA,EAAI,GAAG,EACvC,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,6BAA8BA,EAAI,IAAIA,EAAI,SAAS,EACnD,8BAA+BA,EAAI,IAAIA,EAAI,IAAI,EAC/C,gCAAiCA,EAAI,IAAIA,EAAI,GAAG,EAChD,0BAA2BA,EAAI,IAAIA,EAAI,IAAI,EAC3C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,EAC1C,kDAAmDA,EAAI,IAAIA,EAAI,GAAG,EAClE,sBAAuBA,EAAI,IAAIC,CAAQ,CACzC,CAAC,EACKE,EAAkBH,EAAI,QAAQ,CAClC,QAASA,EAAI,KACb,QAASA,EAAI,IACf,CAAC,EACKI,EAAUJ,EAAI,OAAO,CACzB,iBAAkBG,EAClB,0BAA2BH,EAAI,IAC/B,eAAgBA,EAAI,KACpB,uBAAwBA,EAAI,IAC5B,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,UAAWA,EAAI,UACf,0BAA2BA,EAAI,IAAIA,EAAI,IAAI,EAC3C,0BAA2BA,EAAI,IAC/B,sBAAuBC,CACzB,CAAC,EACKI,EAAYL,EAAI,QAAQ,CAC5B,WAAYE,EACZ,QAASE,CACX,CAAC,EACKE,EAAkBN,EAAI,OAAO,CACjC,kBAAmBA,EAAI,UACvB,SAAUA,EAAI,IACd,QAASA,EAAI,KACb,qBAAsBA,EAAI,IAC5B,CAAC,EACKO,EAA6BP,EAAI,OAAO,CAC5C,kBAAmBA,EAAI,SACzB,CAAC,EACKQ,EAA0BR,EAAI,OAAO,CACzC,yBAA0BA,EAAI,IAC9B,gBAAiBA,EAAI,IACrB,oBAAqBA,EAAI,IACzB,UAAWA,EAAI,IAAIA,EAAI,KAAK,EAC5B,UAAWA,EAAI,GACjB,CAAC,EACKS,EAAqBT,EAAI,QAAQ,CACrC,QAASA,EAAI,KACb,SAAUA,EAAI,KACd,QAASA,EAAI,IACf,CAAC,EACKU,EAAgBV,EAAI,QAAQ,CAChC,YAAaA,EAAI,KACjB,OAAQA,EAAI,KACZ,gBAAiBA,EAAI,IAAIA,EAAI,SAAS,CACxC,CAAC,EACKW,EAA2BX,EAAI,OAAO,CAC1C,mBAAoBA,EAAI,IACxB,YAAaA,EAAI,IAAIA,EAAI,SAAS,EAClC,sBAAuBA,EAAI,IAC3B,eAAgBU,EAChB,kBAAmBV,EAAI,IACvB,kBAAmBA,EAAI,IACvB,mBAAoBA,EAAI,GAC1B,CAAC,EACKY,EAAaZ,EAAI,OAAO,CAC5B,6BAA8BA,EAAI,IAClC,uBAAwBA,EAAI,IAC5B,gBAAiBA,EAAI,IACrB,4BAA6BA,EAAI,GACnC,CAAC,EACKa,EAAyBb,EAAI,OAAO,CACxC,OAAQS,EACR,YAAaT,EAAI,IACjB,OAAQA,EAAI,IACZ,SAAUW,EACV,YAAaC,EACb,2BAA4BZ,EAAI,IAChC,YAAaA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACtC,gBAAiBA,EAAI,GACvB,CAAC,EACKc,EAAad,EAAI,IAAIA,EAAI,IAAI,EAC7Be,EAAcf,EAAI,OAAO,CAC7B,iBAAkBA,EAAI,KACtB,UAAWA,EAAI,GACjB,CAAC,EACKgB,EAAsBhB,EAAI,OAAO,CACrC,YAAaA,EAAI,KACjB,MAAOA,EAAI,IACX,yBAA0BA,EAAI,IAC9B,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,gBAAiBA,EAAI,IACrB,SAAUA,EAAI,IACd,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,YAAaA,EAAI,IACfA,EAAI,OAAO,CACT,aAAcA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACvC,QAASA,EAAI,IACf,CAAC,CACH,CACF,CAAC,EACKiB,EAAqBjB,EAAI,QAAQ,CACrC,QAASA,EAAI,OAAO,CAClB,wBAAyBA,EAAI,IAC7B,UAAWA,EAAI,UACf,0BAA2BA,EAAI,GACjC,CAAC,EACD,MAAOA,EAAI,OAAO,CAAE,kBAAmBA,EAAI,GAAI,CAAC,CAClD,CAAC,EACKkB,EAAqBlB,EAAI,OAAO,CACpC,oBAAqBA,EAAI,IACzB,OAAQA,EAAI,QAAQ,CAAE,QAASA,EAAI,KAAM,QAASA,EAAI,IAAK,CAAC,EAC5D,iBAAkBA,EAAI,KACtB,WAAYA,EAAI,KAChB,aAAcA,EAAI,IAClB,SAAUA,EAAI,GAChB,CAAC,EACKmB,EAAQnB,EAAI,OAAO,CACvB,UAAWA,EAAI,MACf,QAASA,EAAI,QAAQ,CACnB,aAAcA,EAAI,OAAO,CACvB,aAAcA,EAAI,IAClB,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,CACpC,CAAC,EACD,qBAAsBA,EAAI,OAAO,CAC/B,UAAWA,EAAI,UACf,iBAAkBA,EAAI,KACtB,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,WAAYA,EAAI,IAAIc,CAAU,EAC9B,aAAcd,EAAI,IAClB,uBAAwBA,EAAI,KAC5B,aAAcA,EAAI,IACpB,CAAC,EACD,kBAAmBA,EAAI,OAAO,CAC5B,gBAAiBA,EAAI,KACrB,cAAeA,EAAI,GACrB,CAAC,EACD,QAASE,EACT,KAAME,EACN,kBAAmBJ,EAAI,OAAO,CAC5B,kBAAmBA,EAAI,UACvB,SAAUA,EAAI,IACd,QAASA,EAAI,KACb,qBAAsBA,EAAI,IAC5B,CAAC,EACD,mCAAoCA,EAAI,OAAO,CAC7C,aAAcA,EAAI,GACpB,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAAE,aAAce,CAAY,CAAC,EAC5D,cAAef,EAAI,OAAO,CAAE,aAAcA,EAAI,GAAI,CAAC,EACnD,gBAAiBA,EAAI,OAAO,CAC1B,UAAWA,EAAI,UACf,iBAAkBA,EAAI,KACtB,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,WAAYA,EAAI,IAAIc,CAAU,EAC9B,aAAcd,EAAI,IAClB,aAAcA,EAAI,IACpB,CAAC,EACD,oBAAqBA,EAAI,OAAO,CAC9B,cAAeA,EAAI,IACnB,YAAagB,CACf,CAAC,EACD,yBAA0BhB,EAAI,OAAO,CAAE,MAAOiB,CAAmB,CAAC,EAClE,YAAajB,EAAI,OAAO,CACtB,aAAce,EACd,iBAAkBf,EAAI,GACxB,CAAC,EACD,wBAAyBA,EAAI,OAAO,CAClC,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,EAClC,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,oBAAqBA,EAAI,GAC3B,CAAC,EACD,6BAA8BA,EAAI,OAAO,CACvC,GAAIA,EAAI,UACR,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,cAAeA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CAC1C,CAAC,EACD,0BAA2BA,EAAI,OAAO,CACpC,cAAeA,EAAI,IACnB,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,EAClC,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,UAAWA,EAAI,UACf,oBAAqBA,EAAI,GAC3B,CAAC,EACD,cAAeA,EAAI,OAAO,CACxB,aAAce,EACd,uBAAwBf,EAAI,KAC5B,iBAAkBA,EAAI,IACtB,qBAAsBA,EAAI,IAC5B,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAC7B,cAAeA,EAAI,IACnB,YAAagB,CACf,CAAC,EACD,eAAgBhB,EAAI,OAAO,CACzB,aAAce,EACd,OAAQf,EAAI,IACd,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAAE,aAAcA,EAAI,GAAI,CAAC,EACxD,+BAAgCA,EAAI,OAAO,CACzC,wBAAyBA,EAAI,IAC7B,YAAaA,EAAI,KACjB,kBAAmBA,EAAI,UACvB,kBAAmBA,EAAI,IACvB,KAAMA,EAAI,UACV,WAAYA,EAAI,MAChB,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EAC1C,uBAAwBA,EAAI,KAC5B,0BAA2BA,EAAI,IAC/B,oBAAqBA,EAAI,GAC3B,CAAC,EACD,6BAA8BA,EAAI,OAAO,CACvC,kBAAmBA,EAAI,IACvB,YAAaA,EAAI,KACjB,kBAAmBA,EAAI,IACvB,KAAMA,EAAI,UACV,WAAYA,EAAI,IAAIA,EAAI,KAAK,EAC7B,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CAC5C,CAAC,EACD,qBAAsBA,EAAI,OAAO,CAC/B,cAAeA,EAAI,IACnB,oBAAqBkB,CACvB,CAAC,CACH,CAAC,CACH,CAAC,EACKE,EAAepB,EAAI,OAAO,CAC9B,uBAAwBA,EAAI,KAC5B,mBAAoBA,EAAI,UACxB,qBAAsBA,EAAI,IAC5B,CAAC,EACKqB,EAAiBrB,EAAI,OAAO,CAChC,yBAA0BA,EAAI,IAC9B,gBAAiBA,EAAI,IACrB,UAAWA,EAAI,KACjB,CAAC,EACKsB,EAAatB,EAAI,OAAO,CAC5B,gDAAiDA,EAAI,IAAIA,EAAI,IAAI,EACjE,YAAaA,EAAI,IAAIA,EAAI,GAAG,EAC5B,4BAA6BA,EAAI,IAAIA,EAAI,IAAI,EAC7C,2BAA4BA,EAAI,IAAIA,EAAI,GAAG,EAC3C,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,8BAA+BA,EAAI,IAAIA,EAAI,IAAI,EAC/C,gCAAiCA,EAAI,IAAIA,EAAI,GAAG,EAChD,yBAA0BA,EAAI,IAAIA,EAAI,IAAIoB,CAAY,CAAC,EACvD,sBAAuBpB,EAAI,IAAIqB,CAAc,EAC7C,gBAAiBrB,EAAI,IAAIA,EAAI,SAAS,EACtC,uBAAwBA,EAAI,IAAIA,EAAI,IAAI,EACxC,8BAA+BA,EAAI,IAAIA,EAAI,GAAG,EAC9C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,EAC1C,eAAgBA,EAAI,IAClBA,EAAI,IACFA,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,uBAAwBA,EAAI,IAAK,CAAC,CACnE,CACF,EACA,eAAgBA,EAAI,IAAIA,EAAI,IAAI,EAChC,kDAAmDA,EAAI,IAAIA,EAAI,GAAG,EAClE,sBAAuBA,EAAI,IAAIC,CAAQ,CACzC,CAAC,EACKsB,EAAiBvB,EAAI,OAAO,CAAE,iBAAkBA,EAAI,IAAK,CAAC,EAC1DwB,EAAoBxB,EAAI,QAAQ,CACpC,QAASA,EAAI,OAAO,CAClB,iBAAkBA,EAAI,KACtB,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,CAC5C,CAAC,EACD,WAAYA,EAAI,OAAO,CACrB,iBAAkBA,EAAI,KACtB,kBAAmBA,EAAI,IACvB,oBAAqBA,EAAI,GAC3B,CAAC,EACD,qBAAsBuB,CACxB,CAAC,EACKE,EAAoBzB,EAAI,QAAQ,CACpC,SAAUA,EAAI,KACd,YAAawB,EACb,OAAQD,EACR,UAAWvB,EAAI,KACf,QAASA,EAAI,IACf,CAAC,EACK0B,EAAmB1B,EAAI,OAAO,CAClC,kBAAmBA,EAAI,UACvB,UAAWA,EAAI,KACf,sBAAuBA,EAAI,IAAIc,CAAU,EACzC,wBAAyBd,EAAI,IAAIc,CAAU,EAC3C,OAAQd,EAAI,GACd,CAAC,EACK2B,EAAuB3B,EAAI,OAAO,CACtC,oBAAqBA,EAAI,IACzB,kBAAmBA,EAAI,GACzB,CAAC,EACK4B,EAAc5B,EAAI,QAAQ,CAC9B,uBAAwBA,EAAI,KAC5B,sBAAuBA,EAAI,OAAO,CAChC,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,UAAWA,EAAI,IACf,mBAAoBA,EAAI,GAC1B,CAAC,EACD,aAAcA,EAAI,OAAO,CACvB,oBAAqBA,EAAI,IACzB,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,mBAAoBA,EAAI,GAC1B,CAAC,EACD,kBAAmBA,EAAI,OAAO,CAC5B,QAASA,EAAI,IACb,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,mBAAoBA,EAAI,GAC1B,CAAC,CACH,CAAC,EACK6B,EAAqB7B,EAAI,QAAQ,CACrC,kBAAmBA,EAAI,OAAO,CAC5B,iBAAkBA,EAAI,IAAIoB,CAAY,CACxC,CAAC,EACD,uBAAwBpB,EAAI,KAC5B,mBAAoBA,EAAI,OAAO,CAC7B,MAAO4B,EACP,kBAAmB5B,EAAI,GACzB,CAAC,EACD,iBAAkBA,EAAI,OAAO,CAAE,MAAO4B,CAAY,CAAC,EACnD,wBAAyB5B,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,CAAC,CAC3D,CAAC,EACK8B,EAAgB9B,EAAI,OAAO,CAC/B,UAAWA,EAAI,KACf,gBAAiBA,EAAI,IAAIc,CAAU,EACnC,OAAQd,EAAI,GACd,CAAC,EACK+B,EAAqB/B,EAAI,OAAO,CAAE,YAAaA,EAAI,GAAI,CAAC,EACxDgC,EAAkBhC,EAAI,QAAQ,CAClC,uBAAwBA,EAAI,KAC5B,sBAAuBA,EAAI,OAAO,CAAE,UAAWA,EAAI,GAAI,CAAC,EACxD,aAAcA,EAAI,OAAO,CAAE,sBAAuBA,EAAI,GAAI,CAAC,EAC3D,wBAAyBA,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,CAAC,EACzD,kBAAmBA,EAAI,OAAO,CAAE,QAASA,EAAI,GAAI,CAAC,CACpD,CAAC,EACKiC,EAAUjC,EAAI,OAAO,CACzB,MAAOA,EAAI,UACX,WAAYA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CACvC,CAAC,EACKkC,EAA4BlC,EAAI,QAAQ,CAC5C,YAAaA,EAAI,KACjB,gBAAiBiC,EACjB,eAAgBjC,EAAI,KACtB,CAAC,EACKmC,EAAmBnC,EAAI,QAAQ,CACnC,YAAawB,EACb,OAAQD,EACR,UAAWvB,EAAI,KACf,QAASA,EAAI,IACf,CAAC,EACKoC,EAAmBpC,EAAI,OAAO,CAClC,OAAQmC,EACR,aAAcnC,EAAI,KAClB,kBAAmBA,EAAI,IACvB,cAAeA,EAAI,MACnB,KAAMA,EAAI,UACV,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EAC1C,oBAAqBA,EAAI,IAAIA,EAAI,GAAG,EACpC,kBAAmBA,EAAI,IACzB,CAAC,EAED,OAAOA,EAAI,QAAQ,CACjB,kBAAmBA,EAAI,KAAK,CAACM,CAAe,EAAG,CAAC,EAAG,CAAC,CAAC,EACrD,2BAA4BN,EAAI,KAC9B,CAACA,EAAI,IAAIO,CAA0B,CAAC,EACpC,CAACC,CAAuB,EACxB,CAAC,CACH,EACA,oBAAqBR,EAAI,KAAK,CAAC,EAAG,CAACa,CAAsB,EAAG,CAAC,CAAC,EAC9D,WAAYb,EAAI,KACd,CAACA,EAAI,OAAO,CAAE,MAAOA,EAAI,MAAO,OAAQA,EAAI,KAAM,CAAC,CAAC,EACpD,CACEA,EAAI,OAAO,CACT,kBAAmBA,EAAI,MACvB,OAAQA,EAAI,IAAImB,CAAK,CACvB,CAAC,CACH,EACA,CAAC,CACH,EACA,gBAAiBnB,EAAI,KAAK,CAAC,EAAG,CAACsB,CAAU,EAAG,CAAC,CAAC,EAC9C,mBAAoBtB,EAAI,KAAK,CAACA,EAAI,IAAI,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,CAAC,EACvD,eAAgBA,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,CAAC,EAC3C,oBAAqBA,EAAI,KAAK,CAACA,EAAI,KAAK,EAAG,CAACyB,CAAiB,EAAG,CAAC,CAAC,EAClE,uBAAwBzB,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,CAAC,EACnD,eAAgBA,EAAI,KAClB,CAAC0B,CAAgB,EACjB,CACE1B,EAAI,QAAQ,CACV,GAAI2B,EACJ,IAAKE,CACP,CAAC,CACH,EACA,CAAC,CACH,EACA,aAAc7B,EAAI,KAChB,CAAC8B,CAAa,EACd,CAAC9B,EAAI,QAAQ,CAAE,GAAI+B,EAAoB,IAAKC,CAAgB,CAAC,CAAC,EAC9D,CAAC,CACH,EACA,kBAAmBhC,EAAI,KACrB,CAACkC,CAAyB,EAC1B,CAAClC,EAAI,IAAIoC,CAAgB,CAAC,EAC1B,CAAC,CACH,CACF,CAAC,CACH,EClaO,IAAMC,GAAa,CAAC,CAAE,IAAAC,CAAI,IAAM,CACrC,IAAMC,EAAWD,EAAI,QAAQ,CAC3B,KAAMA,EAAI,KACV,UAAWA,EAAI,KACf,OAAQA,EAAI,IACd,CAAC,EACKE,EAAaF,EAAI,OAAO,CAC5B,gDAAiDA,EAAI,IAAIA,EAAI,IAAI,EACjE,uBAAwBA,EAAI,IAAIA,EAAI,GAAG,EACvC,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,6BAA8BA,EAAI,IAAIA,EAAI,SAAS,EACnD,8BAA+BA,EAAI,IAAIA,EAAI,IAAI,EAC/C,gCAAiCA,EAAI,IAAIA,EAAI,GAAG,EAChD,0BAA2BA,EAAI,IAAIA,EAAI,IAAI,EAC3C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,EAC1C,kDAAmDA,EAAI,IAAIA,EAAI,GAAG,EAClE,sBAAuBA,EAAI,IAAIC,CAAQ,CACzC,CAAC,EACKE,EAAkBH,EAAI,QAAQ,CAClC,QAASA,EAAI,KACb,QAASA,EAAI,IACf,CAAC,EACKI,EAAUJ,EAAI,OAAO,CACzB,iBAAkBG,EAClB,0BAA2BH,EAAI,IAC/B,eAAgBA,EAAI,KACpB,uBAAwBA,EAAI,IAC5B,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,UAAWA,EAAI,UACf,0BAA2BA,EAAI,IAAIA,EAAI,IAAI,EAC3C,0BAA2BA,EAAI,IAC/B,sBAAuBC,CACzB,CAAC,EACKI,EAAYL,EAAI,QAAQ,CAC5B,WAAYE,EACZ,QAASE,CACX,CAAC,EACKE,EAAkBN,EAAI,OAAO,CACjC,kBAAmBA,EAAI,UACvB,SAAUA,EAAI,IACd,QAASA,EAAI,KACb,qBAAsBA,EAAI,IAC5B,CAAC,EACKO,EAA6BP,EAAI,OAAO,CAC5C,kBAAmBA,EAAI,SACzB,CAAC,EACKQ,EAA0BR,EAAI,OAAO,CACzC,yBAA0BA,EAAI,IAC9B,gBAAiBA,EAAI,IACrB,oBAAqBA,EAAI,IACzB,UAAWA,EAAI,IAAIA,EAAI,KAAK,EAC5B,UAAWA,EAAI,GACjB,CAAC,EACKS,EAAqBT,EAAI,QAAQ,CACrC,QAASA,EAAI,KACb,SAAUA,EAAI,KACd,QAASA,EAAI,IACf,CAAC,EACKU,EAAgBV,EAAI,QAAQ,CAChC,YAAaA,EAAI,KACjB,OAAQA,EAAI,KACZ,gBAAiBA,EAAI,IAAIA,EAAI,SAAS,CACxC,CAAC,EACKW,EAA2BX,EAAI,OAAO,CAC1C,mBAAoBA,EAAI,IACxB,YAAaA,EAAI,IAAIA,EAAI,SAAS,EAClC,sBAAuBA,EAAI,IAC3B,eAAgBU,EAChB,kBAAmBV,EAAI,IACvB,kBAAmBA,EAAI,IACvB,mBAAoBA,EAAI,GAC1B,CAAC,EACKY,EAAaZ,EAAI,OAAO,CAC5B,6BAA8BA,EAAI,IAClC,uBAAwBA,EAAI,IAC5B,gBAAiBA,EAAI,IACrB,4BAA6BA,EAAI,GACnC,CAAC,EACKa,EAAyBb,EAAI,OAAO,CACxC,OAAQS,EACR,YAAaT,EAAI,IACjB,OAAQA,EAAI,IACZ,SAAUW,EACV,YAAaC,EACb,2BAA4BZ,EAAI,IAChC,YAAaA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACtC,gBAAiBA,EAAI,GACvB,CAAC,EACKc,EAAad,EAAI,IAAIA,EAAI,IAAI,EAC7Be,EAAcf,EAAI,OAAO,CAC7B,iBAAkBA,EAAI,KACtB,UAAWA,EAAI,GACjB,CAAC,EACKgB,EAAsBhB,EAAI,OAAO,CACrC,YAAaA,EAAI,KACjB,MAAOA,EAAI,IACX,yBAA0BA,EAAI,IAC9B,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,gBAAiBA,EAAI,IACrB,SAAUA,EAAI,IACd,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,YAAaA,EAAI,IACfA,EAAI,OAAO,CACT,aAAcA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACvC,QAASA,EAAI,IACf,CAAC,CACH,CACF,CAAC,EACKiB,EAAqBjB,EAAI,QAAQ,CACrC,QAASA,EAAI,OAAO,CAClB,wBAAyBA,EAAI,IAC7B,UAAWA,EAAI,UACf,0BAA2BA,EAAI,GACjC,CAAC,EACD,MAAOA,EAAI,OAAO,CAAE,kBAAmBA,EAAI,GAAI,CAAC,CAClD,CAAC,EACKkB,EAAqBlB,EAAI,OAAO,CACpC,oBAAqBA,EAAI,IACzB,OAAQA,EAAI,QAAQ,CAAE,QAASA,EAAI,KAAM,QAASA,EAAI,IAAK,CAAC,EAC5D,iBAAkBA,EAAI,KACtB,WAAYA,EAAI,KAChB,aAAcA,EAAI,IAClB,SAAUA,EAAI,GAChB,CAAC,EACKmB,EAAQnB,EAAI,OAAO,CACvB,UAAWA,EAAI,MACf,QAASA,EAAI,QAAQ,CACnB,aAAcA,EAAI,OAAO,CACvB,aAAcA,EAAI,IAClB,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,CACpC,CAAC,EACD,qBAAsBA,EAAI,OAAO,CAC/B,UAAWA,EAAI,UACf,iBAAkBA,EAAI,KACtB,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,WAAYA,EAAI,IAAIc,CAAU,EAC9B,aAAcd,EAAI,IAClB,uBAAwBA,EAAI,KAC5B,aAAcA,EAAI,IACpB,CAAC,EACD,kBAAmBA,EAAI,OAAO,CAC5B,gBAAiBA,EAAI,KACrB,cAAeA,EAAI,GACrB,CAAC,EACD,QAASE,EACT,KAAME,EACN,kBAAmBJ,EAAI,OAAO,CAC5B,kBAAmBA,EAAI,UACvB,SAAUA,EAAI,IACd,QAASA,EAAI,KACb,qBAAsBA,EAAI,IAC5B,CAAC,EACD,mCAAoCA,EAAI,OAAO,CAC7C,aAAcA,EAAI,GACpB,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAAE,aAAce,CAAY,CAAC,EAC5D,cAAef,EAAI,OAAO,CAAE,aAAcA,EAAI,GAAI,CAAC,EACnD,gBAAiBA,EAAI,OAAO,CAC1B,UAAWA,EAAI,UACf,iBAAkBA,EAAI,KACtB,MAAOA,EAAI,IACX,UAAWA,EAAI,IACf,WAAYA,EAAI,IAAIc,CAAU,EAC9B,aAAcd,EAAI,IAClB,aAAcA,EAAI,IACpB,CAAC,EACD,oBAAqBA,EAAI,OAAO,CAC9B,cAAeA,EAAI,IACnB,YAAagB,CACf,CAAC,EACD,yBAA0BhB,EAAI,OAAO,CAAE,MAAOiB,CAAmB,CAAC,EAClE,YAAajB,EAAI,OAAO,CACtB,aAAce,EACd,iBAAkBf,EAAI,GACxB,CAAC,EACD,wBAAyBA,EAAI,OAAO,CAClC,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,EAClC,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,oBAAqBA,EAAI,GAC3B,CAAC,EACD,6BAA8BA,EAAI,OAAO,CACvC,GAAIA,EAAI,UACR,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,cAAeA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CAC1C,CAAC,EACD,0BAA2BA,EAAI,OAAO,CACpC,cAAeA,EAAI,IACnB,iBAAkBA,EAAI,IAAIA,EAAI,IAAI,EAClC,cAAeA,EAAI,IACnB,kBAAmBA,EAAI,IACvB,UAAWA,EAAI,UACf,oBAAqBA,EAAI,GAC3B,CAAC,EACD,cAAeA,EAAI,OAAO,CACxB,aAAce,EACd,uBAAwBf,EAAI,KAC5B,iBAAkBA,EAAI,IACtB,qBAAsBA,EAAI,IAC5B,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAC7B,cAAeA,EAAI,IACnB,YAAagB,CACf,CAAC,EACD,eAAgBhB,EAAI,OAAO,CACzB,aAAce,EACd,OAAQf,EAAI,IACd,CAAC,EACD,mBAAoBA,EAAI,OAAO,CAAE,aAAcA,EAAI,GAAI,CAAC,EACxD,+BAAgCA,EAAI,OAAO,CACzC,wBAAyBA,EAAI,IAC7B,YAAaA,EAAI,KACjB,kBAAmBA,EAAI,UACvB,kBAAmBA,EAAI,IACvB,KAAMA,EAAI,UACV,WAAYA,EAAI,MAChB,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EAC1C,uBAAwBA,EAAI,KAC5B,0BAA2BA,EAAI,IAC/B,oBAAqBA,EAAI,GAC3B,CAAC,EACD,6BAA8BA,EAAI,OAAO,CACvC,kBAAmBA,EAAI,IACvB,YAAaA,EAAI,KACjB,kBAAmBA,EAAI,IACvB,KAAMA,EAAI,UACV,WAAYA,EAAI,IAAIA,EAAI,KAAK,EAC7B,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CAC5C,CAAC,EACD,qBAAsBA,EAAI,OAAO,CAC/B,cAAeA,EAAI,IACnB,oBAAqBkB,CACvB,CAAC,CACH,CAAC,CACH,CAAC,EACKE,EAAepB,EAAI,OAAO,CAC9B,uBAAwBA,EAAI,KAC5B,mBAAoBA,EAAI,UACxB,qBAAsBA,EAAI,IAC5B,CAAC,EACKqB,EAAiBrB,EAAI,OAAO,CAChC,yBAA0BA,EAAI,IAC9B,gBAAiBA,EAAI,IACrB,UAAWA,EAAI,KACjB,CAAC,EACKsB,EAAatB,EAAI,OAAO,CAC5B,gDAAiDA,EAAI,IAAIA,EAAI,IAAI,EACjE,YAAaA,EAAI,IAAIA,EAAI,GAAG,EAC5B,4BAA6BA,EAAI,IAAIA,EAAI,IAAI,EAC7C,2BAA4BA,EAAI,IAAIA,EAAI,GAAG,EAC3C,WAAYA,EAAI,IAAIA,EAAI,SAAS,EACjC,8BAA+BA,EAAI,IAAIA,EAAI,IAAI,EAC/C,gCAAiCA,EAAI,IAAIA,EAAI,GAAG,EAChD,yBAA0BA,EAAI,IAAIA,EAAI,IAAIoB,CAAY,CAAC,EACvD,sBAAuBpB,EAAI,IAAIqB,CAAc,EAC7C,gBAAiBrB,EAAI,IAAIA,EAAI,SAAS,EACtC,uBAAwBA,EAAI,IAAIA,EAAI,IAAI,EACxC,8BAA+BA,EAAI,IAAIA,EAAI,GAAG,EAC9C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,EAC1C,eAAgBA,EAAI,IAClBA,EAAI,IACFA,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,uBAAwBA,EAAI,IAAK,CAAC,CACnE,CACF,EACA,eAAgBA,EAAI,IAAIA,EAAI,IAAI,EAChC,kDAAmDA,EAAI,IAAIA,EAAI,GAAG,EAClE,sBAAuBA,EAAI,IAAIC,CAAQ,CACzC,CAAC,EACKsB,EAAiBvB,EAAI,OAAO,CAAE,iBAAkBA,EAAI,IAAK,CAAC,EAC1DwB,EAAoBxB,EAAI,QAAQ,CACpC,QAASA,EAAI,OAAO,CAClB,iBAAkBA,EAAI,KACtB,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,CAC5C,CAAC,EACD,WAAYA,EAAI,OAAO,CACrB,iBAAkBA,EAAI,KACtB,kBAAmBA,EAAI,IACvB,oBAAqBA,EAAI,GAC3B,CAAC,EACD,qBAAsBuB,CACxB,CAAC,EACKE,EAAoBzB,EAAI,QAAQ,CACpC,SAAUA,EAAI,KACd,YAAawB,EACb,OAAQD,EACR,UAAWvB,EAAI,KACf,QAASA,EAAI,IACf,CAAC,EACK0B,EAAmB1B,EAAI,OAAO,CAClC,kBAAmBA,EAAI,UACvB,UAAWA,EAAI,KACf,sBAAuBA,EAAI,IAAIc,CAAU,EACzC,wBAAyBd,EAAI,IAAIc,CAAU,EAC3C,OAAQd,EAAI,GACd,CAAC,EACK2B,EAAuB3B,EAAI,OAAO,CACtC,oBAAqBA,EAAI,IACzB,kBAAmBA,EAAI,GACzB,CAAC,EACK4B,EAAc5B,EAAI,QAAQ,CAC9B,uBAAwBA,EAAI,KAC5B,sBAAuBA,EAAI,OAAO,CAChC,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,UAAWA,EAAI,IACf,mBAAoBA,EAAI,GAC1B,CAAC,EACD,aAAcA,EAAI,OAAO,CACvB,oBAAqBA,EAAI,IACzB,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,mBAAoBA,EAAI,GAC1B,CAAC,EACD,kBAAmBA,EAAI,OAAO,CAC5B,QAASA,EAAI,IACb,aAAcA,EAAI,KAClB,UAAWA,EAAI,UACf,mBAAoBA,EAAI,GAC1B,CAAC,CACH,CAAC,EACK6B,EAAqB7B,EAAI,QAAQ,CACrC,kBAAmBA,EAAI,OAAO,CAC5B,iBAAkBA,EAAI,IAAIoB,CAAY,CACxC,CAAC,EACD,uBAAwBpB,EAAI,KAC5B,mBAAoBA,EAAI,OAAO,CAC7B,MAAO4B,EACP,kBAAmB5B,EAAI,GACzB,CAAC,EACD,iBAAkBA,EAAI,OAAO,CAAE,MAAO4B,CAAY,CAAC,EACnD,wBAAyB5B,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,CAAC,CAC3D,CAAC,EACK8B,EAAgB9B,EAAI,OAAO,CAC/B,UAAWA,EAAI,KACf,gBAAiBA,EAAI,IAAIc,CAAU,EACnC,OAAQd,EAAI,GACd,CAAC,EACK+B,EAAqB/B,EAAI,OAAO,CAAE,YAAaA,EAAI,GAAI,CAAC,EACxDgC,EAAkBhC,EAAI,QAAQ,CAClC,uBAAwBA,EAAI,KAC5B,sBAAuBA,EAAI,OAAO,CAAE,UAAWA,EAAI,GAAI,CAAC,EACxD,aAAcA,EAAI,OAAO,CAAE,sBAAuBA,EAAI,GAAI,CAAC,EAC3D,wBAAyBA,EAAI,OAAO,CAAE,QAASA,EAAI,IAAK,CAAC,EACzD,kBAAmBA,EAAI,OAAO,CAAE,QAASA,EAAI,GAAI,CAAC,CACpD,CAAC,EACKiC,EAAUjC,EAAI,OAAO,CACzB,MAAOA,EAAI,UACX,WAAYA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,CACvC,CAAC,EACKkC,EAA4BlC,EAAI,QAAQ,CAC5C,YAAaA,EAAI,KACjB,gBAAiBiC,EACjB,eAAgBjC,EAAI,KACtB,CAAC,EACKmC,EAAmBnC,EAAI,QAAQ,CACnC,YAAawB,EACb,OAAQD,EACR,UAAWvB,EAAI,KACf,QAASA,EAAI,IACf,CAAC,EACKoC,EAAmBpC,EAAI,OAAO,CAClC,OAAQmC,EACR,aAAcnC,EAAI,KAClB,kBAAmBA,EAAI,IACvB,cAAeA,EAAI,MACnB,KAAMA,EAAI,UACV,gBAAiBA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EAC1C,oBAAqBA,EAAI,IAAIA,EAAI,GAAG,EACpC,kBAAmBA,EAAI,IACzB,CAAC,EAED,OAAOA,EAAI,QAAQ,CACjB,kBAAmBA,EAAI,KAAK,CAACM,CAAe,EAAG,CAAC,EAAG,CAAC,CAAC,EACrD,2BAA4BN,EAAI,KAC9B,CAACA,EAAI,IAAIO,CAA0B,CAAC,EACpC,CAACC,CAAuB,EACxB,CAAC,OAAO,CACV,EACA,oBAAqBR,EAAI,KAAK,CAAC,EAAG,CAACa,CAAsB,EAAG,CAAC,CAAC,EAC9D,WAAYb,EAAI,KACd,CAACA,EAAI,OAAO,CAAE,MAAOA,EAAI,MAAO,OAAQA,EAAI,KAAM,CAAC,CAAC,EACpD,CACEA,EAAI,OAAO,CACT,kBAAmBA,EAAI,MACvB,OAAQA,EAAI,IAAImB,CAAK,CACvB,CAAC,CACH,EACA,CAAC,OAAO,CACV,EACA,gBAAiBnB,EAAI,KAAK,CAAC,EAAG,CAACsB,CAAU,EAAG,CAAC,OAAO,CAAC,EACrD,mBAAoBtB,EAAI,KAAK,CAACA,EAAI,IAAI,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,OAAO,CAAC,EAC9D,eAAgBA,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,CAAC,EAC3C,oBAAqBA,EAAI,KAAK,CAACA,EAAI,KAAK,EAAG,CAACyB,CAAiB,EAAG,CAAC,CAAC,EAClE,uBAAwBzB,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,OAAO,CAAC,EAC1D,eAAgBA,EAAI,KAClB,CAAC0B,CAAgB,EACjB,CACE1B,EAAI,QAAQ,CACV,GAAI2B,EACJ,IAAKE,CACP,CAAC,CACH,EACA,CAAC,CACH,EACA,aAAc7B,EAAI,KAChB,CAAC8B,CAAa,EACd,CAAC9B,EAAI,QAAQ,CAAE,GAAI+B,EAAoB,IAAKC,CAAgB,CAAC,CAAC,EAC9D,CAAC,CACH,EACA,kBAAmBhC,EAAI,KACrB,CAACkC,CAAyB,EAC1B,CAAClC,EAAI,IAAIoC,CAAgB,CAAC,EAC1B,CAAC,OAAO,CACV,CACF,CAAC,CACH,EC1aA,OAAS,aAAAC,GAAW,cAAAC,OAAoC,iBAQjD,IAAMC,GAAkC,CAAC,CAC9C,gBAAiBC,CACnB,IACEF,GAAWD,GAAUG,CAAiB,EAAI,OAAY,CAAE,kBAAAA,CAAkB,CAAC,EHiBtE,IAAMC,EAAN,MAAMC,UAA4BC,EAA6B,CACpE,OAAO,OAAOC,EAAyD,CACrE,GAAM,CAAE,QAAAC,EAAS,iBAAAC,EAAkB,WAAAC,CAAW,EAC5CC,GAAmC,CACjC,QAAAJ,EACA,WAAAK,GACA,oBAAAA,EACF,CAAC,EAEH,OAAO,IAAIP,EAAoBK,EAAYF,EAASC,CAAgB,CACtE,CASA,wBAA0B,CAAC,CACzB,UAAAI,CACF,EAAiB,CAAC,IAAuB,CACvC,GAAM,CAAE,uBAAAC,CAAuB,EAAI,KAAK,OAAO,CAAE,UAAAD,CAAU,CAAC,EAC5D,OAAOC,EAAuB,CAChC,EAgBA,YAAc,MAAO,CACnB,QAAAC,EACA,eAAAC,EACA,GAAGC,CACL,IAImC,CACjC,GAAM,CAAE,aAAAC,CAAa,EAAI,KAAK,OAAO,CACnC,UAAW,EACb,CAAC,EAEKC,EAAW,MAAMD,EAAa,CAClC,UAAWH,EACX,gBAAiBK,EAAWJ,CAAc,EAC1C,GAAGC,CACL,CAAC,EAED,GAAI,QAASE,EACX,MAAME,GAAuBF,EAAS,GAAG,EAG3C,OAAOA,EAAS,EAClB,EAiBA,cAAgB,MAAO,CACrB,QAAAJ,EACA,iBAAAO,EACA,oBAAAC,EACA,sBAAAC,EACA,GAAGP,CACL,IAMqC,CACnC,GAAM,CAAE,eAAAQ,CAAe,EAAI,KAAK,OAAO,CACrC,UAAW,EACb,CAAC,EAEKN,EAAW,MAAMM,EAAe,CACpC,UAAWV,EACX,kBAAmBO,EACnB,sBAAuBF,EAAWG,CAAmB,EACrD,wBAAyBH,EAAWI,CAAqB,EACzD,GAAGP,CACL,CAAC,EAED,GAAI,QAASE,EACX,MAAMO,GAAyBP,EAAS,GAAG,EAG7C,OAAOA,EAAS,EAClB,EAWA,wBAA0B,CAAC,CACzB,UAAAN,EACA,GAAGI,CACL,IAAuE,CACrE,GAAM,CAAE,2BAAAU,CAA2B,EAAI,KAAK,OAAO,CACjD,UAAAd,CACF,CAAC,EACD,OAAOc,EAA2BC,GAAgCX,CAAI,CAAC,CACzE,EAOA,kBAAqBY,GAAmD,CACtE,GAAM,CAAE,oBAAAC,CAAoB,EAAI,KAAK,OAAO,CAC1C,UAAW,EACb,CAAC,EACD,OAAOA,EAAoBD,CAAU,CACvC,EAQA,cAAgB,CAAC,CAAE,UAAAhB,CAAU,IAAwC,CACnE,GAAM,CAAE,gBAAAkB,CAAgB,EAAI,KAAK,OAAO,CAAE,UAAAlB,CAAU,CAAC,EACrD,OAAOkB,EAAgB,CACzB,CACF,EItLA,OAAS,YAAAC,GAAU,kBAAAC,OAAwC,iBCQpD,IAAMC,GAAa,CAAC,CAAE,IAAAC,CAAI,IAAM,CACrC,IAAMC,EAAoBD,EAAI,OAAO,CACnC,YAAaA,EAAI,UACjB,oBAAqBA,EAAI,IAC3B,CAAC,EACKE,EAAuBF,EAAI,OAAO,CACtC,aAAcA,EAAI,KAClB,OAAQC,EACR,MAAOA,EACP,SAAUD,EAAI,IAAIA,EAAI,IAAIA,EAAI,SAAS,CAAC,CAC1C,CAAC,EACKG,EAAyBH,EAAI,OAAO,CACxC,wBAAyBA,EAAI,IAAIA,EAAI,GAAG,EACxC,2BAA4BA,EAAI,IAAIA,EAAI,GAAG,EAC3C,4BAA6BA,EAAI,IAAIA,EAAI,GAAG,EAC5C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,CAC5C,CAAC,EACKI,EAAaJ,EAAI,OAAO,CAC5B,qBAAsBA,EAAI,IAAIA,EAAI,IAAIE,CAAoB,CAAC,EAC3D,kBAAmBF,EAAI,IAAIG,CAAsB,EACjD,6BAA8BH,EAAI,IAAIA,EAAI,IAAI,EAC9C,gBAAiBA,EAAI,IAAIA,EAAI,IAAI,EACjC,4BAA6BA,EAAI,IAAIA,EAAI,IAAI,EAC7C,2BAA4BA,EAAI,IAAIA,EAAI,IAAI,CAC9C,CAAC,EACKK,EAAmBL,EAAI,OAAO,CAClC,wBAAyBA,EAAI,IAC7B,2BAA4BA,EAAI,IAChC,4BAA6BA,EAAI,IACjC,0BAA2BA,EAAI,GACjC,CAAC,EACKM,EAAUN,EAAI,OAAO,CACzB,kBAAmBA,EAAI,IAAIK,CAAgB,EAC3C,oBAAqBL,EAAI,IAAIA,EAAI,SAAS,EAC1C,UAAWA,EAAI,IAAIA,EAAI,SAAS,CAClC,CAAC,EACKO,EAAgBP,EAAI,OAAO,CAC/B,SAAUA,EAAI,IACd,QAASA,EAAI,IACf,CAAC,EACKQ,EAAgBR,EAAI,OAAO,CAC/B,SAAUA,EAAI,KACd,aAAcA,EAAI,KAClB,aAAcA,EAAI,IAClB,WAAYA,EAAI,KAChB,WAAYA,EAAI,IAClB,CAAC,EACKS,EAAcT,EAAI,OAAO,CAC7B,SAAUO,EACV,gBAAiBC,CACnB,CAAC,EACKE,EAAkBV,EAAI,QAAQ,CAClC,WAAYI,EACZ,QAASE,EACT,YAAaG,CACf,CAAC,EACKE,EAAqBX,EAAI,OAAO,CACpC,OAAQA,EAAI,IAAIA,EAAI,SAAS,EAC7B,MAAOA,EAAI,IAAIA,EAAI,SAAS,EAC5B,SAAUA,EAAI,IAAIA,EAAI,SAAS,CACjC,CAAC,EACKY,EAAqBZ,EAAI,QAAQ,CACrC,QAASA,EAAI,KACb,SAAUA,EAAI,KACd,QAASA,EAAI,IACf,CAAC,EACKa,EAAgBb,EAAI,QAAQ,CAChC,YAAaA,EAAI,KACjB,OAAQA,EAAI,KACZ,gBAAiBA,EAAI,IAAIA,EAAI,SAAS,CACxC,CAAC,EACKc,EAA2Bd,EAAI,OAAO,CAC1C,mBAAoBA,EAAI,IACxB,YAAaA,EAAI,IAAIA,EAAI,SAAS,EAClC,sBAAuBA,EAAI,IAC3B,eAAgBa,EAChB,kBAAmBb,EAAI,IACvB,kBAAmBA,EAAI,IACvB,mBAAoBA,EAAI,GAC1B,CAAC,EACKe,EAAaf,EAAI,OAAO,CAC5B,6BAA8BA,EAAI,IAClC,uBAAwBA,EAAI,IAC5B,gBAAiBA,EAAI,IACrB,4BAA6BA,EAAI,GACnC,CAAC,EACKgB,EAAyBhB,EAAI,OAAO,CACxC,OAAQY,EACR,YAAaZ,EAAI,IACjB,OAAQA,EAAI,IACZ,SAAUc,EACV,YAAaC,EACb,2BAA4Bf,EAAI,IAChC,YAAaA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACtC,gBAAiBA,EAAI,GACvB,CAAC,EACKiB,EAAwBjB,EAAI,QAAQ,CACxC,QAASA,EAAI,OAAO,CAAE,YAAaA,EAAI,SAAU,CAAC,EAClD,UAAWA,EAAI,OAAO,CACpB,YAAaA,EAAI,UACjB,oBAAqBA,EAAI,IAC3B,CAAC,CACH,CAAC,EACKkB,EAAmBlB,EAAI,OAAO,CAClC,eAAgBO,EAChB,OAAQP,EAAI,IAAIiB,CAAqB,EACrC,MAAOjB,EAAI,IAAIiB,CAAqB,EACpC,SAAUjB,EAAI,IAAIA,EAAI,SAAS,EAC/B,qBAAsBA,EAAI,IAC5B,CAAC,EACKmB,EAAqBnB,EAAI,OAAO,CACpC,aAAcA,EAAI,KAClB,OAAQA,EAAI,IAAIiB,CAAqB,EACrC,MAAOjB,EAAI,IAAIiB,CAAqB,EACpC,SAAUjB,EAAI,IAAIA,EAAI,SAAS,CACjC,CAAC,EACKoB,EAAqBpB,EAAI,OAAO,CACpC,6BAA8BA,EAAI,KAClC,4BAA6BA,EAAI,KACjC,2BAA4BA,EAAI,IAClC,CAAC,EACKqB,EAAmBrB,EAAI,OAAO,CAClC,kBAAmBK,EACnB,kBAAmBL,EAAI,IAAIkB,CAAgB,EAC3C,mCAAoClB,EAAI,IAAIA,EAAI,IAAImB,CAAkB,CAAC,EACvE,oBAAqBnB,EAAI,IAAIA,EAAI,SAAS,EAC1C,qBAAsBA,EAAI,IAAIoB,CAAkB,EAChD,UAAWpB,EAAI,IAAIA,EAAI,SAAS,CAClC,CAAC,EAED,OAAOA,EAAI,QAAQ,CACjB,aAAcA,EAAI,KAAK,CAACO,CAAa,EAAG,CAACP,EAAI,IAAIW,CAAkB,CAAC,EAAG,CAAC,CAAC,EACzE,oBAAqBX,EAAI,KAAK,CAAC,EAAG,CAACgB,CAAsB,EAAG,CAAC,CAAC,EAC9D,sBAAuBhB,EAAI,KAAK,CAAC,EAAG,CAACqB,CAAgB,EAAG,CAAC,CAAC,CAC5D,CAAC,CACH,ECvIO,IAAMC,GAAa,CAAC,CAAE,IAAAC,CAAI,IAAM,CACrC,IAAMC,EAAoBD,EAAI,OAAO,CACnC,YAAaA,EAAI,UACjB,oBAAqBA,EAAI,IAC3B,CAAC,EACKE,EAAuBF,EAAI,OAAO,CACtC,aAAcA,EAAI,KAClB,OAAQC,EACR,MAAOA,EACP,SAAUD,EAAI,IAAIA,EAAI,IAAIA,EAAI,SAAS,CAAC,CAC1C,CAAC,EACKG,EAAyBH,EAAI,OAAO,CACxC,wBAAyBA,EAAI,IAAIA,EAAI,GAAG,EACxC,2BAA4BA,EAAI,IAAIA,EAAI,GAAG,EAC3C,4BAA6BA,EAAI,IAAIA,EAAI,GAAG,EAC5C,0BAA2BA,EAAI,IAAIA,EAAI,GAAG,CAC5C,CAAC,EACKI,EAAaJ,EAAI,OAAO,CAC5B,qBAAsBA,EAAI,IAAIA,EAAI,IAAIE,CAAoB,CAAC,EAC3D,kBAAmBF,EAAI,IAAIG,CAAsB,EACjD,6BAA8BH,EAAI,IAAIA,EAAI,IAAI,EAC9C,gBAAiBA,EAAI,IAAIA,EAAI,IAAI,EACjC,4BAA6BA,EAAI,IAAIA,EAAI,IAAI,EAC7C,2BAA4BA,EAAI,IAAIA,EAAI,IAAI,CAC9C,CAAC,EACKK,EAAmBL,EAAI,OAAO,CAClC,wBAAyBA,EAAI,IAC7B,2BAA4BA,EAAI,IAChC,4BAA6BA,EAAI,IACjC,0BAA2BA,EAAI,GACjC,CAAC,EACKM,EAAUN,EAAI,OAAO,CACzB,kBAAmBA,EAAI,IAAIK,CAAgB,EAC3C,oBAAqBL,EAAI,IAAIA,EAAI,SAAS,EAC1C,UAAWA,EAAI,IAAIA,EAAI,SAAS,CAClC,CAAC,EACKO,EAAgBP,EAAI,OAAO,CAC/B,SAAUA,EAAI,IACd,QAASA,EAAI,IACf,CAAC,EACKQ,EAAgBR,EAAI,OAAO,CAC/B,SAAUA,EAAI,KACd,aAAcA,EAAI,KAClB,aAAcA,EAAI,IAClB,WAAYA,EAAI,KAChB,WAAYA,EAAI,IAClB,CAAC,EACKS,EAAcT,EAAI,OAAO,CAC7B,SAAUO,EACV,gBAAiBC,CACnB,CAAC,EACKE,EAAkBV,EAAI,QAAQ,CAClC,WAAYI,EACZ,QAASE,EACT,YAAaG,CACf,CAAC,EACKE,EAAqBX,EAAI,OAAO,CACpC,OAAQA,EAAI,IAAIA,EAAI,SAAS,EAC7B,MAAOA,EAAI,IAAIA,EAAI,SAAS,EAC5B,SAAUA,EAAI,IAAIA,EAAI,SAAS,CACjC,CAAC,EACKY,EAAqBZ,EAAI,QAAQ,CACrC,QAASA,EAAI,KACb,SAAUA,EAAI,KACd,QAASA,EAAI,IACf,CAAC,EACKa,EAAgBb,EAAI,QAAQ,CAChC,YAAaA,EAAI,KACjB,OAAQA,EAAI,KACZ,gBAAiBA,EAAI,IAAIA,EAAI,SAAS,CACxC,CAAC,EACKc,EAA2Bd,EAAI,OAAO,CAC1C,mBAAoBA,EAAI,IACxB,YAAaA,EAAI,IAAIA,EAAI,SAAS,EAClC,sBAAuBA,EAAI,IAC3B,eAAgBa,EAChB,kBAAmBb,EAAI,IACvB,kBAAmBA,EAAI,IACvB,mBAAoBA,EAAI,GAC1B,CAAC,EACKe,EAAaf,EAAI,OAAO,CAC5B,6BAA8BA,EAAI,IAClC,uBAAwBA,EAAI,IAC5B,gBAAiBA,EAAI,IACrB,4BAA6BA,EAAI,GACnC,CAAC,EACKgB,EAAyBhB,EAAI,OAAO,CACxC,OAAQY,EACR,YAAaZ,EAAI,IACjB,OAAQA,EAAI,IACZ,SAAUc,EACV,YAAaC,EACb,2BAA4Bf,EAAI,IAChC,YAAaA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACtC,gBAAiBA,EAAI,GACvB,CAAC,EACKiB,EAAwBjB,EAAI,QAAQ,CACxC,QAASA,EAAI,OAAO,CAAE,YAAaA,EAAI,SAAU,CAAC,EAClD,UAAWA,EAAI,OAAO,CACpB,YAAaA,EAAI,UACjB,oBAAqBA,EAAI,IAC3B,CAAC,CACH,CAAC,EACKkB,EAAmBlB,EAAI,OAAO,CAClC,eAAgBO,EAChB,OAAQP,EAAI,IAAIiB,CAAqB,EACrC,MAAOjB,EAAI,IAAIiB,CAAqB,EACpC,SAAUjB,EAAI,IAAIA,EAAI,SAAS,EAC/B,qBAAsBA,EAAI,IAC5B,CAAC,EACKmB,EAAqBnB,EAAI,OAAO,CACpC,aAAcA,EAAI,KAClB,OAAQA,EAAI,IAAIiB,CAAqB,EACrC,MAAOjB,EAAI,IAAIiB,CAAqB,EACpC,SAAUjB,EAAI,IAAIA,EAAI,SAAS,CACjC,CAAC,EACKoB,EAAqBpB,EAAI,OAAO,CACpC,6BAA8BA,EAAI,KAClC,4BAA6BA,EAAI,KACjC,2BAA4BA,EAAI,IAClC,CAAC,EACKqB,EAAmBrB,EAAI,OAAO,CAClC,kBAAmBK,EACnB,kBAAmBL,EAAI,IAAIkB,CAAgB,EAC3C,mCAAoClB,EAAI,IAAIA,EAAI,IAAImB,CAAkB,CAAC,EACvE,oBAAqBnB,EAAI,IAAIA,EAAI,SAAS,EAC1C,qBAAsBA,EAAI,IAAIoB,CAAkB,EAChD,UAAWpB,EAAI,IAAIA,EAAI,SAAS,CAClC,CAAC,EAED,OAAOA,EAAI,QAAQ,CACjB,aAAcA,EAAI,KAChB,CAACO,CAAa,EACd,CAACP,EAAI,IAAIW,CAAkB,CAAC,EAC5B,CAAC,OAAO,CACV,EACA,oBAAqBX,EAAI,KAAK,CAAC,EAAG,CAACgB,CAAsB,EAAG,CAAC,CAAC,EAC9D,sBAAuBhB,EAAI,KAAK,CAAC,EAAG,CAACqB,CAAgB,EAAG,CAAC,OAAO,CAAC,CACnE,CAAC,CACH,EFrIO,IAAMC,GAAN,MAAMC,UAAkCC,EAAmC,CAMhF,OAAO,OACLC,EAC2B,CAC3B,GAAM,CAAE,QAAAC,EAAS,iBAAAC,EAAkB,WAAAC,CAAW,EAC5CC,GAAyC,CACvC,QAAAJ,EACA,WAAAK,GACA,oBAAAA,EACF,CAAC,EAEH,OAAO,IAAIP,EAA0BK,EAAYF,EAASC,CAAgB,CAC5E,CAQA,oBAAsB,CAAC,CACrB,UAAAI,CACF,EAAiB,CAAC,IAAiC,CACjD,GAAM,CAAE,sBAAAC,CAAsB,EAAI,KAAK,OAAO,CAAE,UAAAD,CAAU,CAAC,EAC3D,OAAOC,EAAsB,CAC/B,CACF,EG7CA,OAAS,gBAAAC,OAAoB,iBAWtB,IAAMC,GAA+BC,GAAiC,CAC3E,IAAMC,EAAWH,GAAaE,EAAU,OAAO,EAAE,QAAQ,KAAM,EAAE,CAAC,EAClE,OAAOE,GAAcD,EAAS,MAAM,CAAC,CAAC,CACxC,EAQME,GAAgB,CAAC,CACrB,eAAAC,EACA,MAAAC,CACF,KAIED,IAAoBC,GAAS,EAAK,IAAM,SAAS,EAAE,EACnDD,IAAmBC,EAAQ,IAAM,SAAS,EAAE,EACrCD,GAQHF,GAAiBG,GAA8B,CACnD,IAAMC,EAAID,EAAM,OACZE,EAAI,KACRA,EAAIJ,GAAc,CAAE,eAAgBI,EAAG,MAAOD,CAAE,CAAC,EACjD,QAASE,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IAChCD,EAAIJ,GAAc,CAAE,eAAgBI,EAAG,MAAOF,EAAMG,CAAC,CAAE,CAAC,EAE1D,QAASA,EAAI,EAAGA,EAAI,GAAKH,EAAM,OAAQG,IACrCD,GAAK,KAEP,OAAOA,CACT",
  "names": ["nonNullish", "DetailedError", "msg", "details", "MinterGenericError", "MinterError", "MinterTemporaryUnavailableError", "MinterInsufficientFundsError", "MinterInsufficientAllowanceError", "MinterAmountTooLowError", "MinterRecipientAddressBlockedError", "MinterTokenNotSupported", "LedgerGenericError", "LedgerError", "LedgerWithdrawalError", "LedgerTemporaryUnavailableError", "LedgerInsufficientAllowanceError", "LedgerAmountTooLowError", "LedgerInsufficientFundsError", "createWithdrawEthError", "Err", "createWithdrawErc20Error", "createLedgerError", "ckEthBlockIndex", "createDetailsError", "error", "Canister", "createServices", "toNullable", "idlFactory", "IDL", "BlockTag", "UpgradeArg", "EthereumNetwork", "InitArg", "MinterArg", "AddCkErc20Token", "Eip1559TransactionPriceArg", "Eip1559TransactionPrice", "CanisterStatusType", "LogVisibility", "DefiniteCanisterSettings", "QueryStats", "CanisterStatusResponse", "Subaccount", "EventSource", "UnsignedTransaction", "ReimbursementIndex", "TransactionReceipt", "Event", "CkErc20Token", "GasFeeEstimate", "MinterInfo", "EthTransaction", "TxFinalizedStatus", "RetrieveEthStatus", "WithdrawErc20Arg", "RetrieveErc20Request", "LedgerError", "WithdrawErc20Error", "WithdrawalArg", "RetrieveEthRequest", "WithdrawalError", "Account", "WithdrawalSearchParameter", "WithdrawalStatus", "WithdrawalDetail", "idlFactory", "IDL", "BlockTag", "UpgradeArg", "EthereumNetwork", "InitArg", "MinterArg", "AddCkErc20Token", "Eip1559TransactionPriceArg", "Eip1559TransactionPrice", "CanisterStatusType", "LogVisibility", "DefiniteCanisterSettings", "QueryStats", "CanisterStatusResponse", "Subaccount", "EventSource", "UnsignedTransaction", "ReimbursementIndex", "TransactionReceipt", "Event", "CkErc20Token", "GasFeeEstimate", "MinterInfo", "EthTransaction", "TxFinalizedStatus", "RetrieveEthStatus", "WithdrawErc20Arg", "RetrieveErc20Request", "LedgerError", "WithdrawErc20Error", "WithdrawalArg", "RetrieveEthRequest", "WithdrawalError", "Account", "WithdrawalSearchParameter", "WithdrawalStatus", "WithdrawalDetail", "isNullish", "toNullable", "toEip1559TransactionPriceParams", "ckerc20_ledger_id", "CkETHMinterCanister", "_CkETHMinterCanister", "Canister", "options", "service", "certifiedService", "canisterId", "createServices", "idlFactory", "certified", "smart_contract_address", "address", "fromSubaccount", "rest", "withdraw_eth", "response", "toNullable", "createWithdrawEthError", "ledgerCanisterId", "fromCkEthSubaccount", "fromCkErc20Subaccount", "withdraw_erc20", "createWithdrawErc20Error", "eip_1559_transaction_price", "toEip1559TransactionPriceParams", "blockIndex", "retrieve_eth_status", "get_minter_info", "Canister", "createServices", "idlFactory", "IDL", "InstalledCanister", "InstalledLedgerSuite", "UpdateCyclesManagement", "UpgradeArg", "CyclesManagement", "InitArg", "Erc20Contract", "LedgerInitArg", "AddErc20Arg", "OrchestratorArg", "ManagedCanisterIds", "CanisterStatusType", "LogVisibility", "DefiniteCanisterSettings", "QueryStats", "CanisterStatusResponse", "ManagedCanisterStatus", "ManagedCanisters", "ManagedLedgerSuite", "LedgerSuiteVersion", "OrchestratorInfo", "idlFactory", "IDL", "InstalledCanister", "InstalledLedgerSuite", "UpdateCyclesManagement", "UpgradeArg", "CyclesManagement", "InitArg", "Erc20Contract", "LedgerInitArg", "AddErc20Arg", "OrchestratorArg", "ManagedCanisterIds", "CanisterStatusType", "LogVisibility", "DefiniteCanisterSettings", "QueryStats", "CanisterStatusResponse", "ManagedCanisterStatus", "ManagedCanisters", "ManagedLedgerSuite", "LedgerSuiteVersion", "OrchestratorInfo", "CkETHOrchestratorCanister", "_CkETHOrchestratorCanister", "Canister", "options", "service", "certifiedService", "canisterId", "createServices", "idlFactory", "certified", "get_orchestrator_info", "decodeBase32", "encodePrincipalToEthAddress", "principal", "rawBytes", "bytes32Encode", "appendHexByte", "stringToAppend", "bytes", "n", "s", "i"]
}
