@swapkit/helpers 6.4.1 → 6.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,6 +106,7 @@ declare const initialState: {
106
106
  walletConnectProjectId: string;
107
107
  xaman: string;
108
108
  };
109
+ blockchairApiUrl: string;
109
110
  chains: Chain[];
110
111
  endpoints: CustomApiEndpoints;
111
112
  envs: {
@@ -138,6 +139,7 @@ declare const initialState: {
138
139
  type SKState = typeof initialState;
139
140
  export type SKConfigState = {
140
141
  apiKeys?: Partial<SKState["apiKeys"]>;
142
+ blockchairApiUrl?: string;
141
143
  chains?: SKState["chains"];
142
144
  endpoints?: Partial<CustomApiEndpoints>;
143
145
  envs?: Partial<SKState["envs"]>;
@@ -347,6 +347,7 @@ declare const errorCodes: {
347
347
  */
348
348
  readonly toolbox_solana_no_signer: 50401;
349
349
  readonly toolbox_solana_insufficient_balance: 50402;
350
+ readonly toolbox_solana_unsupported_token_program: 50403;
350
351
  /**
351
352
  * Toolboxes - Substrate
352
353
  */
@@ -915,6 +916,7 @@ export declare class SwapKitError extends Error {
915
916
  */
916
917
  readonly toolbox_solana_no_signer: 50401;
917
918
  readonly toolbox_solana_insufficient_balance: 50402;
919
+ readonly toolbox_solana_unsupported_token_program: 50403;
918
920
  /**
919
921
  * Toolboxes - Substrate
920
922
  */
package/package.json CHANGED
@@ -3,11 +3,11 @@
3
3
  "dependencies": {
4
4
  "@noble/hashes": "2.2.0",
5
5
  "@swapkit/contracts": "5.0.0",
6
- "@swapkit/tokens": "5.0.17",
6
+ "@swapkit/tokens": "5.0.18",
7
7
  "@swapkit/types": "2.1.0"
8
8
  },
9
9
  "description": "SwapKit - Helpers",
10
- "devDependencies": { "@swapkit/toolboxes": "6.5.1" },
10
+ "devDependencies": { "@swapkit/toolboxes": "6.6.0" },
11
11
  "exports": {
12
12
  ".": { "default": "./dist/index.js", "types": "./dist/types/index.d.ts" },
13
13
  "./api": { "default": "./dist/api/index.js", "types": "./dist/types/api/index.d.ts" },
@@ -30,5 +30,5 @@
30
30
  "type-check:go": "tsgo"
31
31
  },
32
32
  "type": "module",
33
- "version": "6.4.1"
33
+ "version": "6.4.2"
34
34
  }
@@ -1,5 +0,0 @@
1
- var yn=Object.defineProperty;var bn=(e)=>e;function Sn(e,t){this[e]=bn.bind(null,t)}var nt=(e,t)=>{for(var i in t)yn(e,i,{get:t[i],enumerable:!0,configurable:!0,set:Sn.bind(t,i)})};var it=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{Chain as Ce,getChainConfig as fi}from"@swapkit/types";import{AllChains as si,Chain as R,EVMChains as oi,getChainConfig as ce}from"@swapkit/types";import{match as Be}from"ts-pattern";import{Chain as u,EVMChains as Wn,getChainConfig as j,UTXOChains as Gn}from"@swapkit/types";import{match as le}from"ts-pattern";import{AllChains as at,Chain as ot,getChainConfig as In,MAYAConfig as Cn,THORConfig as On}from"@swapkit/types";import{createStore as Pn}from"zustand/vanilla";import{AllChains as An,getChainConfig as Tn}from"@swapkit/types";var Rs=Object.freeze(Object.fromEntries(An.map((e)=>[e,Object.freeze(Tn(e).networkDerivationPath)])));var oe;((d)=>{d.unknownError="unknownError";d.test_error="test_error";d.providerDetailsError="providerDetailsError";d.blockHeaderNotFound="blockHeaderNotFound";d.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";d.blockHashNotFoundAtHash="blockHashNotFoundAtHash";d.txHashMissing="txHashMissing";d.assetValueMissingInfo="assetValueMissingInfo";d.invalidAsset="invalidAsset";d.blockIsRequired="blockIsRequired";d.currentBlockHeaderNotFound="currentBlockHeaderNotFound";d.failedToRetrieveBalance="failedToRetrieveBalance";d.failedToRetrieveBlock="failedToRetrieveBlock";d.failedToRetrieveFees="failedToRetrieveFees";d.notImplementedBCH="notImplementedBCH";d.notImplementedDoge="notImplementedDoge";d.noPoolsFound="noPoolsFound";d.noVaultsFound="noVaultsFound";d.noTxFound="noTxFound";d.noInputCoinFound="noInputCoinFound";d.noBlockDataFound="noBlockDataFound";d.multipleCosmosMessages="multipleCosmosMessages";d.heightOrHashNotProvided="heightOrHashNotProvided";d.unknownDenom="unknownDenom";d.invalidBlockHeight="invalidBlockHeight";d.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";d.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";d.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";d.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";d.txMemoUndefined="txMemoUndefined";d.txMemoIncorrect="txMemoIncorrect";d.txTypeNotFound="txTypeNotFound";d.txNoMessage="txNoMessage";d.txNotFound="txNotFound";d.txReceiptNotFound="txReceiptNotFound";d.txParsingError="txParsingError";d.txLogsParsingError="txLogsParsingError";d.blockNotFound="blockNotFound";d.balanceNotFound="balanceNotFound";d.configError="configError";d.synthSwapDisallowed="synthSwapDisallowed";d.providerQuoteTimeout="providerQuoteTimeout";d.noQuoteResponse="noQuoteResponse";d.noPoolAssetsFound="noPoolAssetsFound";d.noThorchainPools="noThorchainPools";d.noMayachainPools="noMayachainPools";d.noThorchainNetworkInfo="noThorchainNetworkInfo";d.invalidAffiliateFee="invalidAffiliateFee";d.invalidBuyAssetAddress="invalidBuyAssetAddress";d.invalidSellAssetAddress="invalidSellAssetAddress";d.invalidSourceAddress="invalidSourceAddress";d.invalidDestinationAddress="invalidDestinationAddress";d.sourceAddressIsSmartContract="sourceAddressIsSmartContract";d.destinationAddressIsSmartContract="destinationAddressIsSmartContract";d.invalidChainId="invalidChainId";d.unsupportedChainId="unsupportedChainId";d.unsupportedEVMChainId="unsupportedEVMChainId";d.unsupportedMethod="unsupportedMethod";d.unsupportedProvider="unsupportedProvider";d.invalidParamsForMethod="invalidParamsForMethod";d.unsupportedAdapter="unsupportedAdapter";d.noWhitelistTokens="noWhitelistTokens";d.failedFetchGasPrice="failedFetchGasPrice";d.failedToCreateDepositChannel="failedToCreateDepositChannel";d.noProviderDetailsFound="noProviderDetailsFound";d.noTokenListsFound="noTokenListsFound";d.tokenNotFound="tokenNotFound";d.tokenPriceNotFound="tokenPriceNotFound";d.tokenPriceFailedToUpdate="tokenPriceFailedToUpdate";d.swapAmountTooSmall="swapAmountTooSmall";d.legsArrayIsEmpty="legsArrayIsEmpty";d.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";d.noBlockHeaderFound="noBlockHeaderFound";d.failedToSimulateSwap="failedToSimulateSwap";d.addressScreeningFailed="addressScreeningFailed";d.noLiquidtyProvidersFound="noLiquidtyProvidersFound";d.insufficientLiquidity="insufficientLiquidity";d.noInboundDataFound="noInbounDataFound";d.noInboundAddressesFound="noInboundAddressesFound";d.noInboundAddressFoundForChain="noInboundAddressFoundForChain";d.noLastBlocksFound="noLastBlocksFound";d.noVersionFound="noVersionFound";d.noConstantsFound="noConstantsFound";d.noMimirsFound="noMimirsFound";d.noRoutesFound="noRoutesFound";d.quoteNotFound="quoteNotFound";d.ledgerSignFailed="ledgerSignFailed";d.ledgerWrongPayload="ledgerWrongPayload";d.ledgerFetchSwapFailed="ledgerFetchSwapFailed";d.failedToFetchTx="failedToFetchTx";d.failedBuildTransactionDetails="failedBuildTransactionDetails";d.noLegsForRoute="noLegsForRoute";d.noRouterAddressFound="noRouterAddressFound";d.noAggregatorAddressFound="noAggregatorAddressFound";d.noContractInstanceFound="noContractInstanceFound";d.noContractAddressFound="noContractAddressFound";d.invalidAffiliate="invalidAffiliate";d.thornameAffiliate="thornameAffiliate";d.providerNotfound="No provider found";d.noRecordFound="No Record found";d.slippageTooLow="Slippage too low";d.tradingHalted="tradingHalted";d.noWrappedGasAsset="noWrappedGasAsset";d.aggregatorAddressNotFound="aggregatorAddressNotFound";d.routerAddressNotFound="routerAddressNotFound";d.dummyAddressNotFound="dummyAddressNotFound";d.trackerError="trackerError";d.thorchainPoolUnavailable="thorchainPoolUnavailable";d.noOhlcvDataFound="noOhlcvDataFound";d.noTradingPairs="noTradingPairs";d.noLendingAvailability="noLendingAvailability";d.lendingRepayTooSmall="lendingRepayTooSmall";d.missingState="missingState";d.ledgerSwapNotFound="ledgerSwapNotFound";d.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";d.errorEstimatingGas="errorEstimatingGas";d.apiKeyInvalid="apiKeyInvalid";d.apiKeyFailedToUpdate="apiKeyFailedToUpdate";d.apiKeyExpired="apiKeyExpired";d.unauthorized="unauthorized";d.failedToCreateMemo="failedToCreateMemo";d.radixIncorrectInstructions="radixIncorrectInstructions";d.radixTxMissedParam="radixTxMissedParam";d.radixTxMissedAccount="radixTxMissedAccount";d.radixManifestParseError="radixManifestParseError";d.radixManifestBuildError="radixManifestBuildError";d.invalidAddressForChain="invalidAddressForChain";d.riskyAddress="riskyAddress";d.noRoutesToProcess="noRoutesToProcess";d.sellAssetAmountTooSmall="sellAssetAmountTooSmall";d.missingPrivateKey="missingPrivateKey";d.noMemoPriceProtection="noMemoPriceProtection"})(oe||={});var Le;((r)=>{r.highSlippage="highSlippage";r.highPriceImpact="highPriceImpact";r.insufficientBalance="insufficientBalance"})(Le||={});var C;((x)=>{x.CHAINFLIP="CHAINFLIP";x.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";x.JUPITER="JUPITER";x.MAYACHAIN="MAYACHAIN";x.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";x.ONEINCH="ONEINCH";x.PANCAKESWAP="PANCAKESWAP";x.SUSHISWAP_V2="SUSHISWAP_V2";x.THORCHAIN="THORCHAIN";x.THORCHAIN_STREAMING="THORCHAIN_STREAMING";x.TRADERJOE_V2="TRADERJOE_V2";x.UNISWAP_V2="UNISWAP_V2";x.UNISWAP_V3="UNISWAP_V3";x.NEAR="NEAR";x.GARDEN="GARDEN";x.OKX="OKX";x.HARBOR="HARBOR";x.FLASHNET="FLASHNET";x.MAYAN="MAYAN";x.PACTSWAP="PACTSWAP";x.RELAY="RELAY"})(C||={});var _e;((g)=>{g.LIQUIDITY="liquidity";g.NETWORK="network";g.INBOUND="inbound";g.OUTBOUND="outbound";g.AFFILIATE="affiliate";g.TAX="tax";g.PRIORITY="priority";g.SERVICE="service"})(_e||={});var wn;((r)=>{r.Average="average";r.Fast="fast";r.Fastest="fastest"})(wn||={});var xn;((i)=>{i.Approve="approve";i.CheckOnly="checkOnly"})(xn||={});var Rn;((w)=>{w.NAME_REGISTER="~";w.BOND="BOND";w.DEPOSIT="+";w.LEAVE="LEAVE";w.UNBOND="UNBOND";w.WITHDRAW="-";w.RUNEPOOL_DEPOSIT="POOL+";w.RUNEPOOL_WITHDRAW="POOL-";w.CLAIM_TCY="tcy";w.STAKE_TCY="tcy+";w.UNSTAKE_TCY="tcy-"})(Rn||={});var rt={core_estimated_max_spendable_chain_not_supported:10001,core_extend_error:10002,core_inbound_data_not_found:10003,core_approve_asset_address_or_from_not_found:10004,core_plugin_not_found:10005,core_plugin_swap_not_found:10006,core_approve_asset_target_invalid:10007,core_explorer_unsupported_chain:10008,core_verify_message_not_supported:10009,core_chain_halted:10010,core_wallet_connection_not_found:10101,core_wallet_evmwallet_not_installed:10103,core_wallet_walletconnect_not_installed:10104,core_wallet_keystore_not_installed:10105,core_wallet_ledger_not_installed:10106,core_wallet_trezor_not_installed:10107,core_wallet_keplr_not_installed:10108,core_wallet_okx_not_installed:10109,core_wallet_keepkey_not_installed:10110,core_wallet_talisman_not_installed:10111,core_wallet_not_keypair_wallet:10112,core_wallet_sign_message_not_supported:10113,core_wallet_connection_failed:10114,core_wallet_create_not_supported:10115,core_wallet_sign_typed_data_not_supported:10116,core_swap_invalid_params:10201,core_swap_route_not_complete:10202,core_swap_asset_not_recognized:10203,core_swap_contract_not_found:10204,core_swap_route_transaction_not_found:10205,core_swap_contract_not_supported:10206,core_swap_transaction_error:10207,core_swap_quote_mode_not_supported:10208,core_transaction_deposit_error:10301,core_transaction_create_liquidity_base_error:10302,core_transaction_create_liquidity_asset_error:10303,core_transaction_create_liquidity_invalid_params:10304,core_transaction_add_liquidity_invalid_params:10305,core_transaction_add_liquidity_base_address:10306,core_transaction_add_liquidity_base_error:10307,core_transaction_add_liquidity_asset_error:10308,core_transaction_withdraw_error:10309,core_transaction_deposit_to_pool_error:10310,core_transaction_deposit_insufficient_funds_error:10311,core_transaction_deposit_gas_error:10312,core_transaction_invalid_sender_address:10313,core_transaction_deposit_server_error:10314,core_transaction_user_rejected:10315,core_transaction_failed:10316,core_transaction_invalid_recipient_address:10317,wallet_connection_rejected_by_user:20001,wallet_missing_api_key:20002,wallet_chain_not_supported:20003,wallet_missing_params:20004,wallet_provider_not_found:20005,wallet_failed_to_add_or_switch_network:20006,wallet_ledger_connection_error:20101,wallet_ledger_connection_claimed:20102,wallet_ledger_get_address_error:20103,wallet_ledger_device_not_found:20104,wallet_ledger_device_locked:20105,wallet_ledger_transport_error:20106,wallet_ledger_public_key_error:20107,wallet_ledger_derivation_path_error:20108,wallet_ledger_signing_error:20109,wallet_ledger_app_not_open:20110,wallet_ledger_invalid_response:20111,wallet_ledger_method_not_supported:20112,wallet_ledger_invalid_params:20113,wallet_ledger_invalid_signature:20114,wallet_ledger_no_provider:20115,wallet_ledger_pubkey_not_found:20116,wallet_ledger_transport_not_defined:20117,wallet_ledger_webusb_not_supported:20118,wallet_ledger_chain_not_supported:20119,wallet_ledger_invalid_asset:20120,wallet_ledger_invalid_account:20121,wallet_ledger_address_not_found:20122,wallet_ledger_failed_to_get_address:20123,wallet_ledger_webhid_not_supported:20124,wallet_phantom_not_found:20201,wallet_walletconnect_project_id_not_specified:20401,wallet_walletconnect_connection_not_established:20402,wallet_walletconnect_namespace_not_supported:20403,wallet_walletconnect_chain_not_supported:20404,wallet_walletconnect_invalid_method:20405,wallet_walletconnect_method_not_supported:20406,wallet_trezor_failed_to_sign_transaction:20501,wallet_trezor_derivation_path_not_supported:20502,wallet_trezor_failed_to_get_address:20503,wallet_trezor_transport_error:20504,wallet_trezor_method_not_supported:20505,wallet_trezor_failed_to_get_public_key:20506,wallet_talisman_not_enabled:20601,wallet_talisman_not_found:20602,wallet_polkadot_not_found:20701,wallet_radix_not_found:20801,wallet_radix_transaction_failed:20802,wallet_radix_invalid_manifest:20803,wallet_radix_method_not_supported:20804,wallet_radix_no_account:20805,wallet_keepkey_not_found:20901,wallet_keepkey_asset_not_defined:20902,wallet_keepkey_contract_address_not_provided:20903,wallet_keepkey_send_transaction_no_address:20904,wallet_keepkey_derivation_path_error:20905,wallet_keepkey_signing_error:20906,wallet_keepkey_transport_error:20907,wallet_keepkey_unsupported_chain:20908,wallet_keepkey_invalid_response:20909,wallet_keepkey_chain_not_supported:20910,wallet_keepkey_signer_not_found:20911,wallet_keepkey_no_accounts:20912,wallet_keepkey_method_not_supported:20913,wallet_keepkey_invalid_params:20914,wallet_keepkey_config_not_found:20915,wallet_keepkey_no_provider:20916,wallet_keepkey_account_not_found:20917,wallet_keepkey_failed_to_get_public_key:20918,wallet_bitkeep_not_found:21001,wallet_bitkeep_failed_to_switch_network:21002,wallet_bitkeep_no_accounts:21003,wallet_passkeys_sign_transaction_error:21101,wallet_passkeys_not_found:21102,wallet_passkeys_no_address:21103,wallet_passkeys_request_canceled:21104,wallet_passkeys_signature_canceled:21105,wallet_passkeys_failed_to_switch_network:21106,wallet_passkeys_chain_not_supported:21107,wallet_passkeys_instance_missing:21108,wallet_onekey_not_found:21201,wallet_onekey_sign_transaction_error:21202,wallet_okx_not_found:21301,wallet_okx_chain_not_supported:21302,wallet_okx_failed_to_switch_network:21303,wallet_okx_no_accounts:21304,wallet_keplr_not_found:21401,wallet_keplr_chain_not_supported:21402,wallet_keplr_signer_not_found:21403,wallet_keplr_no_accounts:21404,wallet_cosmostation_not_found:21501,wallet_cosmostation_chain_not_supported:21502,wallet_cosmostation_evm_provider_not_found:21503,wallet_cosmostation_keplr_provider_not_found:21504,wallet_cosmostation_no_accounts:21505,wallet_cosmostation_no_evm_accounts:21506,wallet_cosmostation_no_evm_address:21507,wallet_cosmostation_signer_not_found:21508,wallet_passkey_not_supported:21601,wallet_passkey_connection_failed:21602,wallet_coinbase_not_found:21701,wallet_coinbase_chain_not_supported:21702,wallet_coinbase_method_not_supported:21703,wallet_coinbase_no_accounts:21704,wallet_evm_extensions_failed_to_switch_network:21801,wallet_evm_extensions_no_provider:21802,wallet_evm_extensions_not_found:21803,wallet_keystore_invalid_password:21901,wallet_keystore_unsupported_version:21902,wallet_keystore_invalid_word_count:21903,wallet_near_extensions_failed_to_switch_network:22001,wallet_near_extensions_no_provider:22002,wallet_near_extensions_not_found:22003,wallet_near_method_not_supported:22004,wallet_petra_not_found:22201,wallet_vultisig_not_found:22101,wallet_vultisig_contract_address_not_provided:22102,wallet_vultisig_asset_not_defined:22103,wallet_vultisig_send_transaction_no_address:22104,wallet_xaman_not_configured:23001,wallet_xaman_not_connected:23002,wallet_xaman_auth_failed:23003,wallet_xaman_connection_failed:23004,wallet_xaman_transaction_failed:23005,wallet_xaman_monitoring_failed:23006,wallet_tronlink_request_accounts_failed:24001,wallet_tronlink_locked:24002,chainflip_channel_error:30001,chainflip_unknown_asset:30002,chainflip_broker_invalid_params:30101,chainflip_broker_recipient_error:30102,chainflip_broker_register:30103,chainflip_broker_tx_error:30104,chainflip_broker_withdraw:30105,chainflip_broker_fund_only_flip_supported:30106,chainflip_broker_fund_invalid_address:30107,thorchain_chain_halted:40001,thorchain_trading_halted:40002,thorchain_asset_is_not_tcy:40003,thorchain_swapin_router_required:40101,thorchain_swapin_vault_required:40102,thorchain_swapin_memo_required:40103,thorchain_swapin_token_required:40104,thorchain_preferred_asset_payout_required:40105,toolbox_cosmos_account_not_found:50101,toolbox_cosmos_invalid_fee:50102,toolbox_cosmos_invalid_params:50103,toolbox_cosmos_no_signer:50104,toolbox_cosmos_not_supported:50105,toolbox_cosmos_signer_not_defined:50106,toolbox_cosmos_validate_address_prefix_not_found:50107,toolbox_cosmos_verify_signature_no_pubkey:50108,toolbox_evm_error_estimating_gas_limit:50201,toolbox_evm_error_sending_transaction:50202,toolbox_evm_gas_estimation_error:50203,toolbox_evm_invalid_gas_asset_address:50204,toolbox_evm_invalid_params:50205,toolbox_evm_invalid_transaction:50206,toolbox_evm_no_abi_fragment:50207,toolbox_evm_no_contract_address:50208,toolbox_evm_no_fee_data:50209,toolbox_evm_no_from_address:50210,toolbox_evm_no_gas_price:50211,toolbox_evm_no_signer_address:50212,toolbox_evm_no_signer:50213,toolbox_evm_no_to_address:50214,toolbox_evm_not_supported:50215,toolbox_evm_provider_not_eip1193_compatible:50216,toolbox_evm_invalid_eip7702_authorization:50217,toolbox_evm_nonce_conflict:50218,toolbox_evm_tx_already_known:50219,toolbox_evm_typed_data_domain_mismatch:50220,toolbox_utxo_api_error:50301,toolbox_utxo_broadcast_failed:50302,toolbox_utxo_insufficient_balance:50303,toolbox_utxo_invalid_address:50304,toolbox_utxo_invalid_params:50305,toolbox_utxo_invalid_transaction:50306,toolbox_utxo_no_signer:50307,toolbox_utxo_not_supported:50308,toolbox_utxo_tx_not_found:50309,toolbox_utxo_rbf_not_supported:50310,toolbox_utxo_tx_not_replaceable:50311,toolbox_utxo_tx_already_confirmed:50312,toolbox_utxo_rbf_fee_too_low:50313,toolbox_utxo_rbf_insufficient_change:50314,toolbox_utxo_unsupported_script_type:50315,toolbox_solana_no_signer:50401,toolbox_solana_insufficient_balance:50402,toolbox_substrate_not_supported:50501,toolbox_substrate_transfer_error:50502,toolbox_radix_method_not_supported:50601,toolbox_ripple_get_balance_error:50701,toolbox_ripple_rpc_not_configured:50702,toolbox_ripple_signer_not_found:50703,toolbox_ripple_asset_not_supported:50704,toolbox_ripple_broadcast_error:50705,toolbox_ripple_get_trust_lines_error:50706,toolbox_ripple_invalid_trust_line_limit:50707,toolbox_tron_no_signer:50801,toolbox_tron_invalid_token_identifier:50802,toolbox_tron_token_transfer_failed:50803,toolbox_tron_transaction_creation_failed:50804,toolbox_tron_trongrid_api_error:50805,toolbox_tron_approve_failed:50806,toolbox_tron_invalid_token_contract:50807,toolbox_tron_allowance_check_failed:50808,toolbox_tron_invalid_transaction_integrity:50809,toolbox_tron_broadcast_failed:50810,toolbox_tron_insufficient_balance:50811,toolbox_hypercore_no_signer:51001,toolbox_hypercore_payload_mismatch:51002,toolbox_hypercore_insufficient_balance:51003,toolbox_hypercore_destination_sanctioned:51004,toolbox_hypercore_transfer_hash_not_found:51005,toolbox_hypercore_pre_transfer_check_failed:51006,toolbox_cardano_sign_transaction_failed:50901,toolbox_near_no_signer:90601,toolbox_near_invalid_address:90602,toolbox_near_invalid_amount:90603,toolbox_near_transfer_failed:90604,toolbox_near_access_key_error:90605,toolbox_near_no_rpc_url:90606,toolbox_near_empty_batch:90607,toolbox_near_balance_failed:90608,toolbox_near_invalid_name:90609,toolbox_near_missing_contract_address:90610,toolbox_near_no_account:90611,toolbox_near_invalid_gas_params:90612,toolbox_near_no_public_key_found:90613,toolbox_near_sign_transaction_failed:90614,toolbox_sui_address_required:90701,toolbox_sui_keypair_required:90702,toolbox_sui_balance_error:90703,toolbox_sui_transaction_creation_error:90704,toolbox_sui_signing_error:90705,toolbox_sui_broadcast_error:90706,toolbox_sui_no_signer:90707,toolbox_sui_no_sender:90708,toolbox_sui_missing_coin_type:90709,toolbox_sui_no_coins_found:90710,toolbox_sui_insufficient_balance:90711,toolbox_starknet_no_signer:90801,toolbox_starknet_invalid_address:90802,toolbox_starknet_fee_estimation_failed:90803,toolbox_starknet_account_not_deployed:90804,toolbox_starknet_transaction_failed:90805,toolbox_ton_no_signer:90901,toolbox_ton_invalid_address:90902,toolbox_ton_missing_jetton_address:90903,toolbox_ton_jetton_transfer_failed:90904,toolbox_ton_transaction_failed:90905,toolbox_aptos_address_required:91001,toolbox_aptos_keypair_required:91002,toolbox_aptos_balance_error:91003,toolbox_aptos_transaction_creation_error:91004,toolbox_aptos_signing_error:91005,toolbox_aptos_broadcast_error:91006,toolbox_aptos_no_signer:91007,toolbox_aptos_no_sender:91008,toolbox_aptos_missing_asset_type:91009,toolbox_aptos_insufficient_balance:91010,toolbox_stellar_no_signer:91101,toolbox_stellar_broadcast_error:91102,toolbox_stellar_invalid_address:91103,toolbox_stellar_account_not_found:91104,toolbox_stellar_transaction_failed:91105,toolbox_stellar_balance_error:91106,toolbox_stellar_trustline_asset_invalid:91112,toolbox_aleo_no_signer:91201,toolbox_aleo_invalid_address:91202,toolbox_aleo_balance_error:91203,toolbox_aleo_fee_estimation_failed:91204,toolbox_aleo_broadcast_error:91205,toolbox_aleo_transaction_failed:91206,toolbox_aleo_wasm_init_failed:91207,toolbox_aleo_unsupported_token:91208,toolbox_aleo_token_transfer_rejected:91209,toolbox_aleo_insufficient_fee_balance:91210,toolbox_aleo_no_unspent_records:91211,toolbox_aleo_conflicting_signers:91212,toolbox_aleo_no_rpc_urls:91213,toolbox_lightspark_missing_credentials:91301,toolbox_lightspark_invalid_invoice:91302,toolbox_lightspark_invoice_amount_mismatch:91303,toolbox_lightspark_invoice_destination_mismatch:91304,toolbox_lightspark_invoice_expired:91305,toolbox_lightspark_invoice_already_settled:91306,toolbox_lightspark_fee_limit_exceeded:91307,toolbox_lightspark_invalid_params:91308,toolbox_lightspark_api_error:91309,toolbox_lightspark_invalid_amount:91310,toolbox_lightspark_invalid_destination:91311,toolbox_lightspark_network_mismatch:91312,toolbox_lightspark_signing_key_unavailable:91313,toolbox_not_supported:59901,toolbox_fee_estimation_failed:59902,toolbox_sweep_amount_too_low:59903,toolbox_derivation_slot_unsupported:59904,plugin_near_invalid_name:41001,plugin_near_no_connection:41002,plugin_near_name_unavailable:41003,plugin_near_registration_failed:41004,plugin_near_transfer_failed:41005,plugin_garden_missing_data:42001,plugin_swapkit_swap_invalid_data:43001,plugin_swapkit_invalid_transaction:43002,plugin_swapkit_stellar_destination_wallet_not_found:43003,plugin_swapkit_unsupported_tx_type:43004,plugin_swapkit_limit_order_invalid_build:43005,plugin_swapkit_limit_order_unsupported_sign_shape:43006,plugin_swapkit_limit_order_unsupported_cancel_shape:43007,plugin_swapkit_limit_order_wallet_cannot_sign:43008,plugin_swapkit_limit_order_no_signable_provider:43009,plugin_swapkit_limit_order_submit_failed:43010,plugin_swapkit_limit_order_cancel_submit_failed:43011,api_v2_invalid_response:60001,api_v2_server_error:60002,api_v2_invalid_method_key_hash:60003,helpers_invalid_number_different_decimals:70001,helpers_invalid_number_of_years:70002,helpers_invalid_identifier:70003,helpers_invalid_asset_url:70004,helpers_invalid_asset_identifier:70005,helpers_invalid_memo_type:70006,helpers_failed_to_switch_network:70007,helpers_not_found_provider:70008,helpers_chain_not_supported:70009,helpers_invalid_params:70010,helpers_invalid_response:70011,helpers_chain_no_public_or_set_rpc_url:70012,helpers_chain_rpc_connection_failed:70013,mcp_wallet_not_configured:90001,not_implemented:99999};function Ee(e){return JSON.stringify(e,(t,i)=>typeof i==="bigint"?i.toString():i)}class b extends Error{static ErrorCode=rt;errorKey;info;constructor(e,t){let i=typeof e==="string",r=i?e:e.errorKey,s=i?void 0:e.info,a=`${r}${s?`: ${Ee(s)}`:""}`;super(a);if(Object.setPrototypeOf(this,b.prototype),this.name="SwapKitError",this.errorKey=r,this.info=s,this.cause=t,t){let l=t instanceof Error?`${t.message}${t.cause?` (${t.cause})`:""}`:Ee(t);console.error(`SwapKitError [${r}]: ${l}`)}else if(s)console.error(`SwapKitError [${r}]: ${Ee(s)}`)}}function Os(e){let t=rt;for(let[i,r]of Object.entries(e)){if(Object.hasOwn(t,i)){if(t[i]===r)continue;throw new b({errorKey:"helpers_invalid_params",info:{code:r,existingCode:t[i],key:i}})}let s=Object.keys(t).find((a)=>t[a]===r);if(s)throw new b({errorKey:"helpers_invalid_params",info:{code:r,existingKey:s,key:i}});t[i]=r}}var he={BITGET:"BITGET",BRAVE:"BRAVE",COINBASE_MOBILE:"COINBASE_MOBILE",COINBASE_WEB:"COINBASE_WEB",COSMOSTATION:"COSMOSTATION",EIP6963:"EIP6963",EXODUS:"EXODUS",KEEPKEY:"KEEPKEY",KEEPKEY_BEX:"KEEPKEY_BEX",KEPLR:"KEPLR",KEYSTORE:"KEYSTORE",LEDGER:"LEDGER",METAMASK:"METAMASK",OKX:"OKX",OKX_MOBILE:"OKX_MOBILE",ONEKEY:"ONEKEY",PASSKEY_WALLET:"PASSKEY_WALLET",PASSKEYS:"PASSKEYS",PETRA:"PETRA",PHANTOM:"PHANTOM",POLKADOT_JS:"POLKADOT_JS",RADIX_WALLET:"RADIX_WALLET",TALISMAN:"TALISMAN",TREZOR:"TREZOR",TRONLINK:"TRONLINK",TRUSTWALLET_WEB:"TRUSTWALLET_WEB",VULTISIG:"VULTISIG",WALLET_SELECTOR:"WALLET_SELECTOR",WALLETCONNECT:"WALLETCONNECT",XAMAN:"XAMAN"},Ne=new Set;function st(e){return Ne.add(e),()=>Ne.delete(e)}function Ls(e,t){let i=he;if(Object.hasOwn(i,e)){if(i[e]===t)return;throw new b({errorKey:"helpers_invalid_params",info:{existingValue:i[e],key:e,value:t}})}i[e]=t;for(let r of Ne)r(t)}var vn;((r)=>{r[r.NoError=36864]="NoError";r[r.LockedDevice=21781]="LockedDevice";r[r.TC_NotFound=65535]="TC_NotFound"})(vn||={});var Es={BtcMessage:"btcMessage",Direct:"direct",TypedData:"typedData"};var kn=at.reduce((e,t)=>(e[t]=In(t).rpcUrls,e),{}),Ln={[ot.THORChain]:On.nodeUrl,[ot.Maya]:Cn.nodeUrl},lt={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:at,endpoints:{},envs:{apiUrl:"https://api.swapkit.dev",devApiUrl:"https://dev-api.swapkit.dev",isDev:!1},feeMultipliers:void 0,integrations:{radix:{applicationName:"Swapkit Playground",applicationVersion:"0.0.1",dAppDefinitionAddress:"account_rdx128r289p58222hcvev7frs6kue76pl7pdcnw8725aw658v0zggkh9ws",network:{dashboardBase:"https://dashboard.radixdlt.com",networkId:1,networkName:"mainnet"}}},localMode:{enabled:!1,quoteUrl:"http://localhost:3000",swapUrl:"http://localhost:3001"},requestOptions:{retry:{backoffMultiplier:2,baseDelay:300,maxDelay:5000,maxRetries:3},timeoutMs:30000},rpcUrls:kn,thornodeUrls:Ln,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(he),widgetId:"",widgetKey:""},L=Pn((e)=>({...lt,setApiKey:(t,i)=>e((r)=>({apiKeys:{...r.apiKeys,[t]:i}})),setConfig:(t)=>e((i)=>({apiKeys:{...i.apiKeys,...t?.apiKeys},chains:i.chains.concat(t?.chains||[]),endpoints:{...i.endpoints,...t?.endpoints},envs:{...i.envs,...t?.envs},feeMultipliers:t?.feeMultipliers||i.feeMultipliers,integrations:{...i.integrations,...t?.integrations},localMode:{...i.localMode,...t?.localMode},rpcUrls:{...i.rpcUrls,...t?.rpcUrls},thornodeUrls:{...i.thornodeUrls,...t?.thornodeUrls},v3SwapFlow:{...i.v3SwapFlow,...t?.v3SwapFlow},wallets:i.wallets.concat(t?.wallets||[]),widgetId:t?.widgetId||i.widgetId,widgetKey:t?.widgetKey||i.widgetKey})),setEndpoint:(t,i)=>e((r)=>({endpoints:{...r.endpoints,[t]:i}})),setEnv:(t,i)=>e((r)=>({envs:{...r.envs,[t]:i}})),setFeeMultipliers:(t)=>e(()=>({feeMultipliers:t})),setIntegrationConfig:(t,i)=>e((r)=>({integrations:{...r.integrations,[t]:i}})),setRequestOptions:(t)=>e((i)=>({requestOptions:{retry:{...i.requestOptions.retry,...t.retry},timeoutMs:t.timeoutMs||i.requestOptions.timeoutMs}})),setRpcUrl:(t,i)=>e((r)=>({rpcUrls:{...r.rpcUrls,[t]:i}})),setThornodeUrl:(t,i)=>e((r)=>({thornodeUrls:{...r.thornodeUrls,[t]:i}})),setWidgetId:(t)=>e({widgetId:t}),setWidgetKey:(t)=>e({widgetKey:t})}));st((e)=>{L.setState((t)=>t.wallets.includes(e)?t:{wallets:[...t.wallets,e]})});var A={get:(e)=>L.getState()[e],getState:L.getState,reinitialize:()=>L.setState({...lt,wallets:Object.values(he)}),set:(e)=>L.getState().setConfig(e),setApiKey:(e,t)=>L.getState().setApiKey(e,t),setEndpoint:(e,t)=>L.getState().setEndpoint(e,t),setEnv:(e,t)=>L.getState().setEnv(e,t),setFeeMultipliers:(e)=>L.getState().setFeeMultipliers(e),setIntegrationConfig:(e,t)=>L.getState().setIntegrationConfig(e,t),setRequestOptions:(e)=>L.getState().setRequestOptions(e),setRpcUrl:(e,t)=>L.getState().setRpcUrl(e,t),setThornodeUrl:(e,t)=>L.getState().setThornodeUrl(e,t),setWidgetId:(e)=>L.getState().setWidgetId(e),setWidgetKey:(e)=>L.getState().setWidgetKey(e)};var En=(e)=>new Promise((t)=>setTimeout(t,e)),Nn=(e,{baseDelay:t,backoffMultiplier:i,maxDelay:r})=>Math.min(t*i**e,r);function Dn(e,t){if(e instanceof Error&&e.name==="AbortError")return!0;if(e instanceof TypeError)return!0;if(t===429)return!0;if(t&&t>=500&&t<600)return!0;return!1}var Mn=async(e,t)=>{let i=await fetch(e,t),r;try{r=await i.json()}catch{if(!i.ok)throw new b({errorKey:"helpers_invalid_response",info:{status:i.status,statusText:i.statusText}},{status:i.status,statusText:i.statusText});return{}}if(!i.ok){let a={data:r?.data,error:r?.error,message:r?.message,status:i.status};throw new b({errorKey:r?.error||"helpers_invalid_response",info:a},a)}let s=r?.routes?.length||r?.result||r?.data&&!r?.error;if(r?.error&&!s){let a={data:r.data,error:r.error,message:r.message,status:i.status};throw new b({errorKey:r.error,info:a},a)}if(r?.providerErrors?.length||r?.error&&s)console.warn("[SwapKit] Partial errors in response:",r.providerErrors||r.error);return r};function fe(e,t={}){return async function(r,s={}){let{searchParams:a,json:l,body:p,headers:g,dynamicHeader:S,retry:y,timeoutMs:w,abortController:E,onError:T,onSuccess:M,...k}={...t,...s},I=A.get("requestOptions"),Q={...I.retry,...y},ue=!!l||r.endsWith(".json"),me=Hn(r,a),Ze=S?await S():{},x=Vn(ue,{...g,...Ze}),X=ue?JSON.stringify(l):p,ke;for(let ge=0;ge<=Q.maxRetries;ge++){let et=E||new AbortController,tt=setTimeout(()=>et.abort(),w||I.timeoutMs);try{let G=await Mn(me,{...k,body:X,headers:x,method:e,signal:et.signal});return clearTimeout(tt),M?.(G)||G}catch(G){clearTimeout(tt),ke=G;let fn=G?.cause?.status;if(ge>=Q.maxRetries||!Dn(G,fn))return T?T(G):Promise.reject(G);await En(Nn(ge,Q))}}return T?T(ke):Promise.reject(ke)}}function Vn(e,t){return{...t,...e&&{"Content-Type":"application/json"}}}function Hn(e,t){let i=new URL(e);if(t)i.search=new URLSearchParams(t).toString();return i.toString()}var _={extend:(e)=>({extend:(t)=>_.extend({...e,...t}),get:fe("GET",e),post:fe("POST",e)}),get:fe("GET"),post:fe("POST")};async function dt(e,t,i,r){let s=`${t}:${i}:${r}`,a=new TextEncoder,l=await crypto.subtle.importKey("raw",a.encode(e),{hash:"SHA-256",name:"HMAC"},!1,["sign"]),p=await crypto.subtle.sign("HMAC",l,a.encode(s));return Array.from(new Uint8Array(p)).map((g)=>g.toString(16).padStart(2,"0")).join("")}import{Chain as f,CosmosChains as gt,EVMChains as _t,getChainConfig as ht,SubstrateChains as Un,UTXOChains as ft}from"@swapkit/types";import{match as ye}from"ts-pattern";function zs(e,t){try{return e()}catch(i){if(t)throw new b(t,i);return}}var ct=new Set;function ae({condition:e,id:t,warning:i}){if(e){if(ct.has(t))return;console.warn(i),ct.add(t)}}function Bn(e){return ye(e).with(..._t,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...ft,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...gt,()=>({id:1,jsonrpc:"2.0",method:"status",params:{}})).with(f.Polkadot,f.Chainflip,()=>({id:1,jsonrpc:"2.0",method:"system_health",params:[]})).with(f.Solana,()=>({id:1,jsonrpc:"2.0",method:"getHealth"})).with(f.Sui,()=>({id:1,jsonrpc:"2.0",method:"sui_getSystemState",params:[]})).with(f.Ton,()=>({id:1,jsonrpc:"2.0",method:"getMasterchainInfo",params:{}})).with(f.Aleo,f.Aptos,f.Tron,f.Radix,f.Stellar,()=>"").with(f.Hype,()=>({type:"meta"})).with(f.Near,()=>({id:"dontcare",jsonrpc:"2.0",method:"status",params:[]})).with(f.Ripple,()=>({id:1,jsonrpc:"2.0",method:"ping",params:[{}]})).with(f.Starknet,()=>({id:1,jsonrpc:"2.0",method:"starknet_chainId",params:[]})).otherwise(()=>{throw new b("helpers_chain_not_supported",{chain:e})})}function pt(e){return ye(e).with(f.Aptos,()=>"/-/healthy").with(f.Aleo,()=>"/mainnet/block/height/latest").with(f.Hype,()=>"/info").with(f.Radix,()=>"/status/network-configuration").with(f.Stellar,()=>"").with(f.Tron,()=>"/wallet/getnowblock").otherwise(()=>"")}function ut(e){if(e.ok)return"up";return e.status===429?"rateLimited":"down"}async function mt(e,t){try{let i=t.startsWith("wss")?t.replace("wss","https"):t;if(e===f.Aleo||e===f.Stellar){let s=await fetch(`${i}${pt(e)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)});return ut(s)}let r=await fetch(`${i}${pt(e)}`,{body:JSON.stringify(Bn(e)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)});return ut(r)}catch{return"down"}}var De=new Map,$n=120000;function Fn(e){let[t=""]=A.get("rpcUrls")[e];if(!t)throw ae({condition:!0,id:"helpers_chain_no_public_or_set_rpc_url",warning:`No public or set RPC URL found for chain. Please ensure you configured rpcUrls for ${e}.`}),new b("helpers_chain_no_public_or_set_rpc_url",{chain:e});let i=De.get(e);if(i&&Date.now()-i.timestamp<$n)return i.url;return De.set(e,{timestamp:Date.now(),url:t}),t}async function J(e,{allowRateLimited:t=!1}={}){let i=Fn(e),[,...r]=A.get("rpcUrls")[e],s=await mt(e,i);if(s==="up")return i;let a=s==="rateLimited"?i:void 0;for(let l of r){let p=await mt(e,l);if(p==="up")return De.set(e,{timestamp:Date.now(),url:l}),l;a??=p==="rateLimited"?l:void 0}if(t&&a)return a;throw new b("helpers_chain_rpc_connection_failed",{chain:e,fallbackUrls:r,primaryRpcUrl:i})}function no({chain:e,txHash:t}){let{explorerUrl:i}=ht(e);return ye(e).with(...gt,f.Solana,()=>`${i}/tx/${t.startsWith("0x")?t.slice(2):t}`).with(..._t,...Un,()=>`${i}/tx/${t.startsWith("0x")?t:`0x${t}`}`).with(...ft,f.Radix,f.Tron,()=>`${i}/transaction/${t.toLowerCase()}`).with(f.Near,()=>`${i}/txns/${t}`).with(f.Ripple,()=>`${i}/transactions/${t}`).with(f.Stellar,()=>`${i}/explorer/public/tx/${t}`).with(f.Sui,()=>`${i}/txblock/${t}`).with(f.Cardano,f.Hype,f.Spark,f.Ton,()=>`${i}/tx/${t}`).otherwise(()=>"")}function io({chain:e,address:t}){let{explorerUrl:i}=ht(e);return ye(e).with(f.Solana,f.Sui,f.Radix,()=>`${i}/account/${t}`).with(f.Stellar,()=>`${i}/explorer/public/account/${t}`).otherwise(()=>`${i}/address/${t}`)}function ro(e){switch(e){case f.THORChain:return`${e}.RUNE`;case f.Cosmos:return`${e}.ATOM`;case f.BinanceSmartChain:return`${e}`;default:return`${e}.${e}`}}import{keccak_256 as Kn}from"@noble/hashes/sha3.js";import{bytesToHex as qn}from"@noble/hashes/utils.js";var yt=/^(0x)?[0-9a-fA-F]{40}$/;function be(e){if(typeof e!=="string"||!yt.test(e))throw Error(`invalid address: ${e}`);let t=e.toLowerCase().replace(/^0x/,""),i=qn(Kn(new TextEncoder().encode(t))),r=[...t].map((a,l)=>Number.parseInt(i[l]??"0",16)>=8?a.toUpperCase():a).join(""),s=e.replace(/^0x/,"");if(/[A-F]/.test(s)&&/[a-f]/.test(s)&&s!==r)throw Error(`bad address checksum: ${e}`);return`0x${r}`}function bt(e){if(typeof e!=="string"||!yt.test(e))return!1;try{return be(e),!0}catch{return!1}}var ho=[`${u.Maya}.MAYA`,`${u.Maya}.CACAO`,`${u.Ethereum}.THOR`,`${u.Ethereum}.vTHOR`,`${u.Kujira}.USK`,`${u.Ethereum}.FLIP`,`${u.Radix}.XRD`],jn=[u.Arbitrum,u.Aurora,u.Base,u.Ethereum,u.Optimism,u.Robinhood];async function Yn(e){let{baseDecimal:t}=j(u.Radix);try{let i=await J(u.Radix),{manager:r}=await _.post(`${i}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:e}),headers:{Accept:"*/*","Content-Type":"application/json"}});return r?.divisibility?.value?.divisibility}catch(i){let r=i instanceof Error?i.message:String(i);return console.warn(`Failed to fetch Radix asset decimals for ${e}: ${r}`),t}}async function zn(e){try{let t=await J(u.Radix);return(await _.post(`${t}/state/entity/details`,{body:JSON.stringify({addresses:[e],opt_ins:{explicit_metadata:["symbol"]}}),headers:{Accept:"*/*","Content-Type":"application/json"}})).items[0]?.explicit_metadata?.items.find((s)=>s.key==="symbol")?.value.typed.value||void 0}catch(t){let i=t instanceof Error?t.message:String(t);return console.warn(`Failed to fetch Radix asset symbol for ${e}: ${i}`),""}}async function Tt({chain:e,address:t,methodHex:i,id:r}){let s=await J(e);return _.post(s,{body:JSON.stringify({id:r,jsonrpc:"2.0",method:"eth_call",params:[{data:i,to:t.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}function Qn(e){if(!e||e==="0x")return"UNKNOWN";try{return wt(e.replace(/^0x/,""))?.trim()||"UNKNOWN"}catch(t){return console.warn(`Failed to decode ABI string from ${e}: ${t}`),"UNKNOWN"}}function Xn(e,t){if(!e||e==="0x")return t;try{return Number(e)}catch(i){return console.warn(`Failed to decode ABI uint8 from ${e}: ${i}`),t}}async function Jn({chain:e,address:t}){let{baseDecimal:i}=j(e),r=t.toLowerCase();if(t===""||!r.startsWith("0x"))return i;let s=await Tt({address:t,chain:e,id:2,methodHex:"0x313ce567"}).catch((l)=>(console.warn(`Could not fetch decimals for ${t} on ${e}: ${l.message}`),{result:""}));return Xn(s.result,i)}async function Zn({chain:e,address:t}){let i=t.toLowerCase();if(i===""||!i.startsWith("0x"))return;let r=await Tt({address:t,chain:e,id:1,methodHex:"0x95d89b41"}).catch((a)=>(console.warn(`Could not fetch symbol for ${t} on ${e}: ${a.message}`),{result:""}));return Qn(r.result)}async function St({rpcUrl:e,contractAddress:t,functionSelector:i}){return(await _.post(`${e}/wallet/triggerconstantcontract`,{body:JSON.stringify({contract_address:t,function_selector:i,owner_address:t,parameter:"",visible:!0}),headers:{accept:"application/json","content-type":"application/json"}}).catch(()=>{return}))?.constant_result?.[0]}function At(e){let t=e.match(/.{2}/g)?.map((i)=>Number.parseInt(i,16))??[];return new TextDecoder().decode(new Uint8Array(t))}function wt(e){return le(e).with(void 0,()=>{return}).when((t)=>t.length>=128,(t)=>{let i=Number.parseInt(t.slice(64,128),16),r=t.slice(128,128+i*2).replace(/(00)+$/,"");return r?At(r):void 0}).when((t)=>t.length===64,(t)=>{let i=t.replace(/(00)+$/,"");if(i.length>0&&i.length%2===0)return At(i);return}).otherwise(()=>{return})}function xt({chain:e,address:t}){let{baseDecimal:i}=j(e),r={decimals:i,ticker:void 0};return le(e).with(...Wn,async()=>{try{if(!bt(t.replace(/^0X/,"0x")))return r;let[s,a]=await Promise.all([Zn({address:t,chain:e}),Jn({address:t,chain:e})]);return{decimals:a,ticker:s}}catch(s){return console.warn(`Failed to fetch token info for ${t} on ${e}: ${s?.code} ${s?.message}`),r}}).with(u.Solana,async()=>{if(!t)return r;try{let s=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${t}`);if(s.ok){let a=await s.json(),l=Array.isArray(a)?a[0]:a;if(l)return{decimals:l.decimals??i,ticker:l.symbol||void 0}}}catch(s){console.warn(`Failed to fetch Solana token info for ${t}: ${s?.code} ${s?.message}`)}return r}).with(u.Tron,async()=>{if(!t)return r;try{let s=await J(u.Tron),[a,l]=await Promise.all([St({contractAddress:t,functionSelector:"symbol()",rpcUrl:s}),St({contractAddress:t,functionSelector:"decimals()",rpcUrl:s})]),p=wt(a);return{decimals:a!==void 0&&l?Number(BigInt(`0x${l}`)):i,ticker:p}}catch(s){let a=s instanceof Error?s.message:String(s);return console.warn(`Failed to fetch Tron token info for ${t}: ${a}`),r}}).with(u.Near,async()=>{if(!t)return r;try{let s=await J(u.Near),a=await _.post(s,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"query",params:{account_id:t,args_base64:"e30=",finality:"final",method_name:"ft_metadata",request_type:"call_function"}}),headers:{accept:"application/json","content-type":"application/json"}});if(!a.result?.result)throw Error("NEAR ft_metadata returned no result");let l=JSON.parse(new TextDecoder().decode(new Uint8Array(a.result.result)));return{decimals:l?.decimals||i,ticker:l?.symbol}}catch(s){let a=s instanceof Error?s.message:String(s);return console.warn(`Failed to fetch Near token info for ${t}: ${a}`),r}}).with(u.Radix,async()=>{if(!t)return r;try{let[s,a]=await Promise.all([zn(t),Yn(t)]);return{decimals:a,ticker:s}}catch(s){let a=s instanceof Error?s.message:String(s);return console.warn(`Failed to fetch Radix token info for ${t}: ${a}`),r}}).otherwise(async()=>r)}function Me(e){let t=j(e);return t.chain===e?t.nativeCurrency:void 0}function Rt({chain:e,symbol:t}){return le(e).with(u.Gnosis,()=>t==="xDAI"||t==="XDAI").with(u.Ton,()=>t==="GRAM"||t==="TON").with(u.Radix,()=>`${e}.${t}`===Se(e).identifier).otherwise(()=>t===(Me(e)??e))}var Se=(e)=>{let{baseDecimal:t}=j(e);return le(e.toUpperCase()).with(...jn,(r)=>({decimal:t,identifier:`${r}.ETH`})).with(u.Arc,(r)=>({decimal:t,identifier:`${r}.USDC`})).with(u.THORChain,(r)=>({decimal:t,identifier:`${r}.RUNE`})).with(u.Cosmos,(r)=>({decimal:t,identifier:`${r}.ATOM`})).with(u.Maya,(r)=>({decimal:10,identifier:`${r}.CACAO`})).with(u.BinanceSmartChain,(r)=>({decimal:t,identifier:`${r}.BNB`})).with(u.Monad,(r)=>({decimal:t,identifier:`${r}.MON`})).with(u.Avalanche,(r)=>({decimal:t,identifier:`${r}.AVAX`})).with(u.Gnosis,(r)=>({decimal:t,identifier:`${r}.xDAI`})).with(u.XLayer,(r)=>({decimal:t,identifier:`${r}.OKB`})).with(u.Berachain,(r)=>({decimal:t,identifier:`${r}.BERA`})).with(u.Hyperevm,(r)=>({decimal:t,identifier:`${r}.HYPE`})).with(u.Hype,(r)=>({decimal:t,identifier:`${r}.HYPE`})).with(u.Spark,(r)=>({decimal:t,identifier:`${r}.BTC`})).with(u.Tron,(r)=>({decimal:t,identifier:`${r}.TRX`})).with(u.Ton,(r)=>({decimal:t,identifier:`${r}.GRAM`})).with(u.Solana,u.Chainflip,u.Kujira,u.Ripple,u.Polkadot,u.Near,...Gn,(r)=>({decimal:t,identifier:`${r}.${r}`})).with(u.Radix,"XRD.XRD",()=>({decimal:t,identifier:"XRD.XRD"})).with(u.Polygon,"POL.POL",()=>({decimal:t,identifier:"POL.POL"})).with("KUJI.USK",(r)=>({decimal:6,identifier:r})).with("ETH.FLIP",()=>({decimal:j(u.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:j(u.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:j(u.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(r)=>({decimal:10,identifier:r})).with("MAYA.MAYA",(r)=>({decimal:4,identifier:r})).otherwise(()=>{let r=Me(e);return{decimal:t,identifier:r?`${e}.${r}`:e}})};function Ve({chain:e,symbol:t}){if(t.includes("/"))return"Synth";if(t.includes("~"))return"Trade";return le(e).with(u.Radix,()=>t===u.Radix||`${e}.${t}`===Se(e).identifier).with(u.Ton,()=>t==="GRAM"||t==="TON").with(u.Gnosis,()=>t===u.Gnosis).otherwise(()=>t===(Me(e)??e))?"Native":e}var Y=(e)=>{let[t,...i]=e.split("."),r=e.includes("/"),s=i.join("."),a=s?.split("-"),l=a?.length?a.length===1?a[0]:a.slice(0,-1).join("-"):void 0;return{chain:t,symbol:s,synth:r,ticker:l}};function de(e,t){let r=t===u.Near?e.indexOf("-"):e.lastIndexOf("-");if(r===-1)return{address:void 0,ticker:e};return{address:e.slice(r+1),ticker:e.slice(0,r)}}function fo(e){return`https://tokens.swapkit.dev/images/${e.toLowerCase()}.png`}async function yo(e){let{loadTokenLists:t}=await import("./tokens.js"),i=await t(void 0,{source:A.get("envs").isDev?"dev":"prod"}),r=Object.values(i).flatMap((a)=>a.tokens);if("identifier"in e)return r.find((a)=>a.identifier===e.identifier)?.identifier;let s=e.contract.toLowerCase();for(let a of r){let{chain:l,symbol:p}=Y(a.identifier);if(l!==e.chain)continue;let{address:g}=de(p,l);if(g?.toLowerCase()===s)return a.identifier}return}import{match as Ae}from"ts-pattern";var z=8,ei=10,ti=64;function Z({value:e,bigIntDecimal:t=z,decimal:i=z}){if(i===0)return e.toString();let r=Math.min(t,i),s=r<i?vt(e,F(i-r)):e,a=s<0n,l=(a?-s:s).toString().padStart(r+1,"0"),p=l.length-r;return`${a?"-":""}${l.slice(0,p)}.${l.slice(p)}`.replace(/\.?0*$/,"")}class K{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(e,t){return new K({decimal:t,value:Z({bigIntDecimal:t,decimal:t,value:e})})}static shiftDecimals({value:e,from:t,to:i}){return K.fromBigInt(e.getBaseValue("bigint")*F(i)/F(t),i)}constructor(e){this.decimal=typeof e==="object"?e.decimal:void 0;let t=Te(typeof e==="object"&&"value"in e?e.value:e),i=typeof e==="object"&&"decimalMultiplier"in e?e.decimalMultiplier:F(this.decimal??0);this.decimalMultiplier=i!==void 0&&i>t.decimalMultiplier?i:t.decimalMultiplier,this.bigIntValue=t.bigIntValue*this.decimalMultiplier/t.decimalMultiplier}toString(e={}){return this.getValue("string")}set(e){return this.#n({decimal:this.decimal,value:new K(e)})}#n(e){return new this.constructor({...e,identifier:this.toString({includeSynthProtocol:!0})})}add(...e){return this.#t("add",...e)}sub(...e){return this.#t("sub",...e)}mul(...e){return this.#t("mul",...e)}div(...e){return this.#t("div",...e)}gt(e){return this.#e("gt",e)}gte(e){return this.#e("gte",e)}lt(e){return this.#e("lt",e)}lte(e){return this.#e("lte",e)}eqValue(e){return this.#e("eqValue",e)}getValue(e,t){let i=we(this.decimalMultiplier),r=t!==void 0?t:this.decimal,s=r!==void 0?r:i;if(r!==void 0&&r<i){if(this.formatBigIntToSafeValue(this.bigIntValue,r)==="0"&&this.bigIntValue!==0n)s=i}let a=this.formatBigIntToSafeValue(this.bigIntValue,s);return Ae(e).with("number",()=>Number(a)).with("string",()=>a).with("bigint",()=>this.bigIntValue*F(this.decimal??z)/this.decimalMultiplier).otherwise(()=>a)}getBaseValue(e,t){let i=F(t??this.decimal??z),r=vt(this.bigIntValue*i,this.decimalMultiplier);return Ae(e).with("number",()=>Number(r)).with("string",()=>r.toString()).otherwise(()=>r)}getBigIntValue(e,t){if(t===void 0&&typeof e==="object")return e.bigIntValue;let i=Te(e),r=t===void 0?this.decimalMultiplier:F(t);return i.bigIntValue*r/i.decimalMultiplier}toSignificant(e=6){let t=this.getValue("string"),i=t.startsWith("-"),r=i?t.slice(1):t,[s="",a=""]=r.split("."),l=Number.parseInt(s,10)>0;if((l?s.length+a.length:a.length)<=e)return B(i,r);if(s.length>=e)return B(i,s.slice(0,e).padEnd(s.length,"0"));if(l)return B(i,`${s}.${a.slice(0,e-s.length)}`);let g=a.replace(/^0+/,"")||"0",S=g.slice(0,e),y=a.length-g.length;return B(i,`0.${S.padStart(y+S.length,"0")}`)}toFixed(e=6){let t=this.getValue("string"),i=t.startsWith("-"),[r="0",s=""]=(i?t.slice(1):t).split(".");if(e===0){if(r==="0"&&!s)return"0";let y=s&&Number.parseInt(s[0]||"0",10)>=5?`${BigInt(r)+1n}.0`:`${r}.0`;return B(i,y)}if(!s)return B(i,`${r}.${"0".repeat(e)}`);let a=s[e];if(!(a&&Number.parseInt(a,10)>=5))return B(i,`${r}.${s.slice(0,e).padEnd(e,"0")}`);let p=BigInt(s.slice(0,e).padEnd(e,"0"))+1n,g=10n**BigInt(e);if(p>=g)return B(i,`${BigInt(r)+1n}.${"0".repeat(e)}`);return B(i,`${r}.${p.toString().padStart(e,"0")}`)}toAbbreviation(e=2){let t=this.getValue("string"),i=Number(t),r=["","K","M","B","T","Q","Qi","S"],s=Math.floor(Math.log10(Math.abs(i))/3);if(s===0||!r[s])return t;return`${(i/10**(s*3)).toFixed(e)}${r[s]}`}toCurrency(e="$",{currencyPosition:t="start",decimal:i=2,decimalSeparator:r=".",thousandSeparator:s=",",trimTrailingZeros:a=!0}={}){let l=this.toFixed(i),p=t==="end",[g="0",S=""]=l.split("."),y=g.replace(/\B(?=(\d{3})+(?!\d))/g,s),w=S&&Number.parseInt(S,10)>0,E=w?`${y}${r}${S}`:y,M=E.length<100&&a&&w?E.replace(/\.?0*$/,""):E;return p?`${M}${e}`:`${e}${M}`}formatBigIntToSafeValue(e,t){return Z({bigIntDecimal:t||this.decimal||z,decimal:we(this.decimalMultiplier),value:e})}#t(e,...t){let i=t.map(Te),r=Math.max(z,we(this.decimalMultiplier),...i.map(({decimalMultiplier:S})=>we(S))),s=Math.min(r+ei,ti),a=F(s),l=i.reduce((S,y)=>{let w=S.decimalMultiplier*y.decimalMultiplier,E=Ae(e).with("add",()=>S.bigIntValue*y.decimalMultiplier+y.bigIntValue*S.decimalMultiplier).with("sub",()=>S.bigIntValue*y.decimalMultiplier-y.bigIntValue*S.decimalMultiplier).with("mul",()=>S.bigIntValue*y.bigIntValue).with("div",()=>{if(y.bigIntValue===0n)throw RangeError("Division by zero");return S.bigIntValue*y.decimalMultiplier}).exhaustive(),T=e==="div"?S.decimalMultiplier*y.bigIntValue:w;return{bigIntValue:E*a/T,decimalMultiplier:a}},this),p=this.decimal===void 0?void 0:Math.min(this.decimal,s),g=l.decimalMultiplier===a?l:{bigIntValue:l.bigIntValue*a/l.decimalMultiplier,decimalMultiplier:a};return this.#n({decimal:p,value:g})}#e(e,t){let i=Te(t),r=this.bigIntValue*i.decimalMultiplier,s=i.bigIntValue*this.decimalMultiplier;return Ae(e).with("gt",()=>r>s).with("gte",()=>r>=s).with("lt",()=>r<s).with("lte",()=>r<=s).with("eqValue",()=>r===s).exhaustive()}}var ni=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function ii(e){let i=`${typeof e==="number"?ni.format(e):e}`.replaceAll(",",".").split(".");return i.length>1?`${i.slice(0,-1).join("")}.${i.at(-1)}`:i[0]||"0"}function ri(e){let t=e.split(".")[1]?.length||0;return Math.max(t,z)}function Te(e){if(typeof e==="object")return e;let t=e==="undefined"?"0":ii(e),i=ri(t),[r="",s=""]=t.split(".");return{bigIntValue:BigInt(`${r}${s.padEnd(i,"0")}`),decimalMultiplier:F(i)}}function B(e,t){return e&&!/^0(?:\.0*)?$/.test(t)?`-${t}`:t}function vt(e,t){if(t===0n)throw Error("Cannot divide by zero");let i=t/2n;return e>=0n&&t>=0n||e<0n&&t<0n?(e+i)/t:(e-i)/t}function F(e){return 10n**BigInt(e)}function we(e){return e.toString().length-1}function ai(e=""){let t=e.toUpperCase(),i=A.get("chains"),[r]=t.split(".");if(i.includes(r))return!0;let[s]=t.split("/");if(i.includes(s))return!0;throw new b({errorKey:"helpers_invalid_identifier",info:{identifier:e,message:`Invalid identifier: ${e}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`}})}var ne=[R.Hype,R.Near,R.Ripple,R.Solana,R.Stellar,R.Sui,R.Ton,R.Tron],$e=[R.THORChain,R.Maya];function xe(e,t){return ne.includes(e)?t:t.toUpperCase()}var ee=new Map,Re=new Map,te=new Map,li=3600000;function di(e){let t=te.get(e);if(t?.timestamp&&Date.now()-t.timestamp>li){te.delete(e);return}return t}function ci(e,t){if(te.size>1000){let i=te.keys().next().value;if(i)te.delete(i)}te.set(e,{...t,timestamp:Date.now()})}class N extends K{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:e,decimal:t,tax:i,chain:r,symbol:s,identifier:a}){super({decimal:t,value:e});let l=It(a||`${r}.${s}`);this.type=Ve(l),this.tax=i,this.chain=l.chain,this.ticker=l.ticker,this.symbol=l.symbol,this.address=l.address,this.isSynthetic=l.isSynthetic,this.isTradeAsset=l.isTradeAsset,this.isGasAsset=l.isGasAsset,this.chainId=ce(l.chain).chainId}toString({includeSynthProtocol:e}={}){return(this.isSynthetic||this.isTradeAsset)&&!e?this.symbol:`${this.chain}.${this.symbol}`}toUrl(){if(this.isSynthetic)return`${this.chain}.${this.symbol.replace(/\//g,".")}`;if(this.isTradeAsset)return`${this.chain}.${this.symbol.replace(/~/g,"..")}`;let e=this.symbol.replace(/\./g,"__");return`${this.chain}.${e}`}getIconUrl(){return ee.get(xe(this.chain,this.toString()))?.logoURI}eqAsset({chain:e,symbol:t}){return this.chain===e&&this.symbol===t}eq(e){return this.eqAsset(e)&&this.eqValue(e)}static fromUrl(e,t=0){let i=e.indexOf(".");if(i===-1)throw new b({errorKey:"helpers_invalid_asset_url",info:{urlAsset:e}});let r=e.slice(0,i),s=e.slice(i+1),a=Be({chain:r,rest:s}).when(({rest:l})=>l.includes(".."),({chain:l,rest:p})=>`${l}.${p.replace(/\.\./g,"~")}`).when(({chain:l,rest:p})=>$e.includes(l)&&p.includes("."),({chain:l,rest:p})=>`${l}.${p.replace(/\./g,"/")}`).otherwise(({chain:l,rest:p})=>`${l}.${p.replace(/__/g,".")}`);return N.from({asset:a,value:t})}static from({value:e=0,fromBaseDecimal:t,asyncTokenLookup:i,...r}){let s="address"in r&&"chain"in r,a=gi(r);if(a===null&&i&&s){let{chain:x,address:X}=r;return ui({address:X,chain:x,fromBaseDecimal:t,parsedValue:e})}let l=s&&!a?`${r.chain}.UNKNOWN-${r.address}`:a,{identifier:p,decimal:g}=Se(l),{chain:S,isSynthetic:y,isTradeAsset:w,address:E}=It(p),{baseDecimal:T}=ce(S),M=ee.get(xe(S,p));if(!M&&i&&!y&&!w)return(async()=>{let{ticker:x}=Y(p),X=await Ct({address:E,chain:S,ticker:x});return He({decimal:X.decimals,identifier:X.identifier,value:t?Ue(e,t):e})})();let k=M?.decimal||g;ae({condition:!k&&!i,id:`assetValue_static_decimal_not_found_${S}`,warning:`Couldn't find static decimal for one or more tokens on ${S} (Using default ${T} decimal as fallback).
2
- This can result in incorrect calculations and mess with amount sent on transactions.
3
- You can load static assets by installing @swapkit/tokens package and calling AssetValue.loadStaticAssets()
4
- or by passing asyncTokenLookup: true to the from() function, which will make it async and return a promise.`});let{decimal:I,identifier:Q,tax:ue}=M||{decimal:k||T,identifier:p},me=t?Ue(e,t):ve(e,I);return y||w?pi(Q,me):He({decimal:I,identifier:Q,tax:ue,value:me})}static async loadStaticAssets(e){let{loadTokenLists:t}=await import("@swapkit/tokens"),i=await t(e,{source:A.get("envs").isDev?"dev":"prod"});for(let{tokens:r}of Object.values(i))for(let s of r){let{identifier:a}=s,{chain:l,symbol:p}=Y(a),{address:g}=de(p,l),{baseDecimal:S}=ce(l),y=xe(l,a),w="decimals"in s&&s.decimals!==void 0?s.decimals:S,E="logoURI"in s&&s.logoURI?s.logoURI:`https://tokens.swapkit.dev/images/${a.toLowerCase()}.png`,T={decimal:w,identifier:a,logoURI:E,tax:"tax"in s?s.tax:void 0};if(ee.set(y,T),g){let M=ne.includes(l)?`${l}:${g}`:`${l}:${g.toUpperCase()}`;Re.set(M,a)}}return!0}static setStaticAssets(e){ee.clear(),Re.clear();for(let[t,i]of e.entries()){let{identifier:r}=i,{chain:s,symbol:a}=Y(r),{address:l}=de(a,s),{baseDecimal:p}=ce(s),g=i.chain??s,S=i.address??l,y=xe(g,r),w=i.decimals??i.decimal??p,E=i.logoURI??`https://tokens.swapkit.dev/images/${r.toLowerCase()}.png`,T={decimal:w,identifier:y,logoURI:E,tax:i.tax};if(ee.set(y,T),S){let M=ne.includes(g)?`${g}:${S}`:`${g}:${S.toUpperCase()}`;Re.set(M,r)}}return!0}static get staticAssets(){return ee}}function Po(e){let t=N.from({chain:e});return Be(e).with(R.Bitcoin,R.Litecoin,R.BitcoinCash,R.Dash,()=>t.set(0.00010001)).with(R.Zcash,()=>t.set(0.00015001)).with(R.Dogecoin,()=>t.set(1.00000001)).with(R.Avalanche,R.Ethereum,R.Arbitrum,R.BinanceSmartChain,()=>t.set(0.00000001)).with(R.THORChain,R.Maya,()=>t.set(0)).with(R.Cosmos,R.Kujira,()=>t.set(0.000001)).otherwise(()=>t.set(0.00000001))}async function Ct({chain:e,address:t,ticker:i}){let s=ne.includes(e)?`${e}:${t||i}`:`${e}:${t||i}`.toUpperCase(),a=di(s);if(a)return a;if(!t){let{baseDecimal:g}=ce(e);return{decimals:g,identifier:`${e}.${i||"UNKNOWN"}`}}let l=await xt({address:t,chain:e}),p=`${e}.${l.ticker||i||"UNKNOWN"}-${t}`;return ae({condition:!!(!l.ticker&&i),id:`async_token_lookup_failed_${e}_${t}`,warning:`Could not fetch token metadata for ${e}:${t} from chain. Using user-provided ticker (${i}) with baseDecimal (${l.decimals}).`}),l.ticker&&ci(s,{decimals:l.decimals,identifier:p}),{decimals:l.decimals,identifier:p}}function He({identifier:e,decimal:t,value:i,tax:r}){return ai(e),new N({decimal:t,identifier:e,tax:r,value:ve(i,t)})}function pi(e,t=0){let i=e.includes(".")?e.split(".")?.[0]?.toUpperCase():void 0,r=i?$e.includes(i):!1,s=e.slice(0,14).includes("~")?"~":"/",[a,l]=r?e.split(".").slice(1).join().split(s):e.split(s);if(!(a&&l))throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});return new N({decimal:8,identifier:`${i||R.THORChain}.${a}${s}${l}`,value:ve(t,8)})}async function ui({address:e,chain:t,fromBaseDecimal:i,parsedValue:r}){let{decimals:s,identifier:a}=await Ct({address:e,chain:t}),l=i?Ue(r,i):r;return He({decimal:s,identifier:a,value:l})}function Ue(e,t){let i=e instanceof K?e.getValue("string"):e;return ve(BigInt(i),t)}function ve(e,t){return typeof e==="bigint"?Z({bigIntDecimal:t,decimal:t,value:e}):e}function mi(e){let t=Be(e).when((i)=>("chain"in i)&&i.chain!==void 0,({chain:i})=>i).otherwise((i)=>{let r=Y(i.asset);return r.synth?R.THORChain:r.chain});if(!si.includes(t.toUpperCase())){let i="asset"in e?e.asset:t;throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:i,message:`Unsupported chain "${t}" - use the AssetValue constructor directly`}})}}function gi(e){if(mi(e),"chain"in e){let{chain:s,address:a}=e;if(a){let l=ne.includes(s)?`${s}:${a}`:`${s}:${a.toUpperCase()}`,p=Re.get(l);if(p)return p;return null}return s}let{chain:t,symbol:i}=Y(e.asset);return Ve({chain:t,symbol:i})==="Native"?t:e.asset}function _i(e,t,i){let r=e.split("."),s=r[0]?.toUpperCase(),a=$e.includes(s),l=i?"~":"/",[p,g=""]=a?r.slice(1).join(".").split(l):e.split(l);if(!(p&&g))throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});let{ticker:S,address:y}=Ot({chain:p,symbol:g}),w=`${p}${l}${g}`;return{address:y,chain:s,isGasAsset:!1,isSynthetic:t,isTradeAsset:i,symbol:w,ticker:S}}function hi(e){let t=e.indexOf("."),i=(t===-1?e:e.slice(0,t)).toUpperCase(),r=t===-1?e:e.slice(t+1),{address:s,ticker:a}=Ot({chain:i,symbol:r}),l;try{l=s&&oi.includes(i)&&be(s)?be(s):s}catch{l=s}let p=l?`${a}-${l}`:r;return{address:l,chain:i,isGasAsset:Rt({chain:i,symbol:r}),isSynthetic:!1,isTradeAsset:!1,symbol:p,ticker:a}}function It(e){let t=e.slice(0,14),i=t.includes("/"),r=t.includes("~");if(i||r)return _i(e,i,r);return hi(e)}function Ot({symbol:e,chain:t}){let{ticker:i,address:r}=de(e,t);return{address:r&&!ne.includes(t)?r.toLowerCase():r,ticker:i}}class Ie extends K{eq(e){return this.eqValue(e)}static fromBigInt(e,t){return new Ie({decimal:t,value:Z({bigIntDecimal:t,decimal:t,value:e})})}}function Pt(e=!0){return e?"https://gateway.liquify.com/chain/thorchain_midgard":"https://midgard.mayachain.info"}function yi(e=!0){let t=Pt(e);return e?`${t}/v2/thorname`:`${t}/v2/mayaname`}function bi(e){return function(i){let r=i?`?status=${i}`:"";return _.get(`${e}/v2/pools${r}`)}}function Si(e){return function(i){return _.get(`${e}/v2/pool/${i}`)}}function Ai(e){return function(i,r){let s=r?`?period=${r}`:"";return _.get(`${e}/v2/pool/${i}/stats${s}`)}}function Ti(e){return function(i,r){let s=new URLSearchParams;if(r?.interval)s.append("interval",r.interval);if(r?.count)s.append("count",r.count.toString());if(r?.from)s.append("from",r.from.toString());if(r?.to)s.append("to",r.to.toString());let a=s.toString()?`?${s.toString()}`:"";return _.get(`${e}/v2/history/depths/${i}${a}`)}}function wi(e){return function(){return _.get(`${e}/v2/network`)}}function xi(e){return function(){return _.get(`${e}/v2/health`)}}function Ri(e){return function(){return _.get(`${e}/v2/nodes`)}}function vi(e){return function(i){return _.get(`${e}/v2/node/${i}`)}}function Ii(e){return function(){return _.get(`${e}/v2/mimir/votes`)}}function Ci(e){return function(){return _.get(`${e}/v2/mimir`)}}function Oi(e){return function(){return _.get(`${e}/v2/constants`)}}function Pi(e){return function(){return _.get(`${e}/v2/stats`)}}function ki(e){return function(i){let r=new URLSearchParams;if(i?.interval)r.append("interval",i.interval);if(i?.count)r.append("count",i.count.toString());if(i?.from)r.append("from",i.from.toString());if(i?.to)r.append("to",i.to.toString());let s=r.toString()?`?${r.toString()}`:"";return _.get(`${e}/v2/history/earnings${s}`)}}function Li(e){return function(i,r){let s=new URLSearchParams;if(r?.interval)s.append("interval",r.interval);if(r?.count)s.append("count",r.count.toString());if(r?.from)s.append("from",r.from.toString());if(r?.to)s.append("to",r.to.toString());let a=s.toString()?`?${s.toString()}`:"",l=i?`/swaps/${i}`:"/swaps";return _.get(`${e}/v2/history${l}${a}`)}}function Ei(e){return function(i){let r=new URLSearchParams;if(i?.interval)r.append("interval",i.interval);if(i?.count)r.append("count",i.count.toString());if(i?.from)r.append("from",i.from.toString());if(i?.to)r.append("to",i.to.toString());let s=r.toString()?`?${r.toString()}`:"";return _.get(`${e}/v2/history/tvl${s}`)}}function Ni(e){if(!e)return"";let t=new URLSearchParams,i=(r,s)=>{if(s!==void 0)t.append(r,typeof s==="number"?s.toString():s)};return i("address",e.address),i("txid",e.txid),i("asset",e.asset),i("type",e.type),i("affiliate",e.affiliate),i("limit",e.limit),i("offset",e.offset),t.toString()?`?${t.toString()}`:""}function Di(e){return function(i){let r=Ni(i);return _.get(`${e}/v2/actions${r}`)}}function Mi(e){return function(i){return _.get(`${e}/v2/member/${i}`)}}function Vi(e){return function(i){let r=i?`/${i}`:"";return _.get(`${e}/v2/members${r}`)}}function Hi(e){return function(i,r){let s=r?`&asset=${r}`:"";return _.get(`${e}/v2/saver/${i}${s?`?${s.substring(1)}`:""}`)}}function Ui(e){return function(i){return _.get(`${e}/v2/savers/${i}`)}}function Bi(e){return function(i,r){let s=new URLSearchParams;if(r?.interval)s.append("interval",r.interval);if(r?.count)s.append("count",r.count.toString());if(r?.from)s.append("from",r.from.toString());if(r?.to)s.append("to",r.to.toString());let a=s.toString()?`?${s.toString()}`:"",l=i?`/savers/${i}`:"/savers";return _.get(`${e}/v2/history${l}${a}`)}}function $i(e){return function(i){return _.get(`${e}/v2/balance/${i}`)}}function Fi(e){return async function(i){let r=(s)=>{if(s?.cause?.status===404)return;throw s};return await _.get(`${e}/lookup/${i}`,{onError:r,retry:{maxRetries:1}})}}function Ki(e){return async function(i){let r=(s)=>{if(s?.cause?.status===404)return[];throw s};return await _.get(`${e}/rlookup/${i}`,{onError:r,retry:{maxRetries:1}})}}function qi(e){return async function(i){let r=(s)=>{if(s?.cause?.status===404)return[];throw s};return await _.get(`${e}/owner/${i}`,{onError:r,retry:{maxRetries:1}})}}function ie({asset:e,value:t}){return N.from({asset:e,fromBaseDecimal:fi(Ce.THORChain).baseDecimal,value:t})}function Wi({liquidityPositionGetter:e,isThorchain:t}){return async function(r){let s=await e(r),a=t?"rune":"cacao";return s.pools.map((l)=>({[`${a}Pending`]:ie({asset:"THOR.RUNE",value:l.runePending}),[`${a}RegisteredAddress`]:l.runeAddress,[`${a}Withdrawn`]:ie({asset:"THOR.RUNE",value:l.runeWithdrawn}),[a]:ie({asset:"THOR.RUNE",value:l.runeAdded}),asset:ie({asset:l.pool,value:l.assetAdded}),assetPending:ie({asset:l.pool,value:l.assetPending}),assetRegisteredAddress:l.assetAddress,assetWithdrawn:ie({asset:l.pool,value:l.assetWithdrawn}),dateFirstAdded:l.dateFirstAdded,dateLastAdded:l.dateLastAdded,poolShare:new Ie(l.liquidityUnits).div(l.pool)}))}}function kt(e){let t=e===Ce.THORChain,i=Pt(t),r=yi(t),s=Mi(i);return{getActions:Di(i),getBalance:$i(i),getConstants:Oi(i),getEarningsHistory:ki(i),getHealth:xi(i),getLiquidityPosition:Wi({isThorchain:t,liquidityPositionGetter:s}),getLiquidityPositionRaw:s,getMembers:Vi(i),getMimir:Ci(i),getMimirVotes:Ii(i),getNameDetails:Fi(r),getNamesByAddress:Ki(r),getNamesByOwner:qi(r),getNetworkInfo:wi(i),getNode:vi(i),getNodes:Ri(i),getPool:Si(i),getPoolDepthHistory:Ti(i),getPoolStats:Ai(i),getPools:bi(i),getSaverDetails:Hi(i),getSavers:Ui(i),getSaversHistory:Bi(i),getStats:Pi(i),getSwapHistory:Li(i),getTVLHistory:Ei(i)}}var Lt=kt(Ce.THORChain),Et=kt(Ce.Maya);var Xe={};nt(Xe,{SKRequestClient:()=>P,buildLimitOrder:()=>Zr,buildLimitOrderCancel:()=>is,getChainBalance:()=>Fr,getChainflipDepositChannel:()=>zr,getGasRate:()=>Yr,getLimitOrder:()=>ns,getLimitOrderQuote:()=>Jr,getLimitOrderTokens:()=>Xr,getLimitOrders:()=>ts,getNearDepositChannel:()=>Qr,getPrice:()=>jr,getRouteWithTx:()=>$r,getSwapQuote:()=>Br,getSwapTo:()=>ds,getTokenApproval:()=>Kr,getTokenList:()=>Wr,getTokenListProviders:()=>qr,getTrackerDetails:()=>Ur,searchTokens:()=>Gr,submitLimitOrder:()=>es,submitLimitOrderCancel:()=>rs});import{EVMChains as Qe}from"@swapkit/types";import{match as Hr,P as pe}from"ts-pattern";import{Chain as Oe,ChainId as q}from"@swapkit/types";import{array as v,boolean as U,coerce as Vt,number as h,object as m,optional as c,string as o,union as Fe,unknown as Ke,z as n}from"zod";var Ht;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(Ht||={});var Pe;((y)=>{y.PSBT="PSBT";y.EVM="EVM";y.COSMOS="COSMOS";y.RADIX="RADIX";y.NEAR="NEAR";y.STELLAR="STELLAR";y.TON="TON";y.TRON="TRON";y.EIP_712_HYPE_SEND_ASSET="EIP_712_HYPE_SEND_ASSET";y.EIP_712_HYPE_WITHDRAW="EIP_712_HYPE_WITHDRAW"})(Pe||={});var Ut;((I)=>{I.approve="approve";I.claim="claim";I.deposit="deposit";I.donate="donate";I.lending="lending";I.lp_action="lp_action";I.native_contract_call="native_contract_call";I.native_send="native_send";I.stake="stake";I.streaming_swap="streaming_swap";I.swap="swap";I.thorname_action="thorname_action";I.token_contract_call="token_contract_call";I.token_transfer="token_transfer";I.unknown="unknown";I.unstake="unstake"})(Ut||={});var Bt;((T)=>{T.swap="swap";T.aggregation="aggregation";T.addLiquidity="addLiquidity";T.withdrawLiquidity="withdrawLiquidity";T.addSavers="addSavers";T.withdrawSavers="withdrawSavers";T.borrow="borrow";T.repay="repay";T.name="name";T.donate="donate";T.claim="claim";T.stake="stake";T.unstake="unstake"})(Bt||={});var $t;((p)=>{p.unknown="unknown";p.not_started="not_started";p.pending="pending";p.swapping="swapping";p.completed="completed";p.refunded="refunded";p.failed="failed"})($t||={});var Ft;((k)=>{k.not_started="not_started";k.starting="starting";k.broadcasted="broadcasted";k.mempool="mempool";k.inbound="inbound";k.outbound="outbound";k.swapping="swapping";k.completed="completed";k.refunded="refunded";k.partially_refunded="partially_refunded";k.dropped="dropped";k.reverted="reverted";k.replaced="replaced";k.retries_exceeded="retries_exceeded";k.parsing_error="parsing_error"})(Ft||={});var Fo=m({address:c(o()),chain:n.enum(Oe).optional(),chainId:n.enum(q),coingeckoId:c(o()),decimals:Vt.number(),extensions:c(n.looseObject({})),identifier:o(),logoURI:c(o()),name:c(o()),shortCode:c(o()),symbol:c(o()),ticker:o()}),Ko=n.object({block:n.optional(n.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:n.optional(n.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:n.optional(n.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:n.optional(n.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((e)=>e.hash&&e.chainId||e.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),qo=n.object({forceUpdate:n.string().toLowerCase().transform((e)=>e==="true").pipe(n.boolean()).optional()}),Wo=m({error:o(),message:o()}),re=m({address:c(o()),chain:n.enum(Oe),decimal:c(h()),isGasAsset:U(),isSynthetic:U(),symbol:o(),tax:c(m({buy:h(),sell:h()})),ticker:o()}),Kt=m({id:o(),market_cap:h(),name:o(),price_change_24h_usd:h(),price_change_percentage_24h_usd:h(),sparkline_in_7d:v(h()),timestamp:o(),total_volume:h()}).partial(),Go=m({cg:c(Kt),identifier:o(),price_usd:h(),provider:o(),timestamp:h()}),qt=v(m({cg:c(Kt),identifier:o(),price_usd:h(),provider:o(),timestamp:h()}).partial()),jo=m({affiliate:c(o().describe("Affiliate thorname")),affiliateFee:c(h().describe("Affiliate fee in basis points").refine((e)=>e===Math.floor(e)&&e>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:c(U().describe("Allow smart contract as recipient")),allowSmartContractSender:c(U().describe("Allow smart contract as sender")),buyAsset:o().describe("Asset to buy"),cfBoost:c(U().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:c(o().describe("Address to send asset to")),disableSecurityChecks:c(U().describe("Disable security checks")),includeTx:c(U().describe("Set to true to include an transaction object (EVM only)")),providers:c(v(o().describe("List of providers to use").refine((e)=>C[e]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:c(o().describe("Referrer address (referral program)")),sellAmount:o().describe("Amount of asset to sell").refine((e)=>+e>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:o().describe("Asset to sell"),slippage:c(h().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:c(o().describe("Address to send asset from"))}).refine((e)=>e.sellAsset!==e.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),Yo=m({metadata:U(),tokens:v(m({identifier:o()}))}),Wt=m({destinationAddress:o()}),Gi=Wt.extend({affiliateFees:v(m({brokerAddress:o(),feeBps:h()})).optional(),brokerCommissionBps:h().optional(),buyAsset:m({asset:o(),chain:o()}),channelMetadata:m({cfParameters:o().optional(),gasBudget:o().optional(),message:o().optional()}).optional(),dcaParameters:m({chunkInterval:h().optional(),numberOfChunks:h().optional()}).optional(),maxBoostFeeBps:h().optional(),refundParameters:m({minPrice:o().optional(),refundAddress:o().optional(),retryDuration:h().optional()}).optional(),sellAsset:m({asset:o(),chain:o()})}),Gt=m({channelId:o(),depositAddress:o()}),Nt=Wt.extend({affiliateFees:m({feeBps:h(),nearId:o()}).optional(),buyAsset:o(),sellAmount:o(),sellAsset:o(),slippage:Vt.number(),sourceAddress:o()}),Dt=m({amountIn:o(),amountInFormatted:o(),amountInUsd:o(),amountOut:o(),amountOutFormatted:o(),amountOutUsd:o(),deadline:o().optional(),minAmountIn:o(),minAmountOut:o(),timeEstimate:h().optional(),timeWhenInactive:o().optional()}),zo=Dt.extend({depositAddress:o(),quote:Dt,signature:o(),timestamp:o(),tx:Ke()}),jt=m({buyAsset:o(),buyAssetAmount:o(),buyAssetAmountMaxSlippage:o(),deadline:o().optional(),depositAddress:o(),depositAmount:o(),depositAsset:o(),tx:Ke()}),ji=m({evmCalldata:n.optional(n.string()),intentHash:n.optional(n.string()),logs:n.optional(n.unknown()),manifest:n.optional(n.unknown()),memo:n.optional(n.string()),spender:n.optional(n.string()),thorname:n.optional(n.string())}),Yi=m({currentStage:o(),inboundConfirmation:h(),inboundObservation:h(),outboundDelay:h(),outboundObservation:h(),streamingSwap:h()}),zi=m({count:c(h()),interval:c(h()),quantity:c(h()),subSwapsMap:c(v(h()))}),Qi=n.object({currentLegIndex:n.optional(n.number()),estimatedTimeToComplete:n.number(),estimates:n.optional(Yi),providerDetails:n.optional(n.object({streamingDetails:n.optional(zi)}))}),Xi=m({affiliate:c(re),liquidity:c(re),network:c(re),protocol:c(re),tax:c(re)}),Ji=m({affiliate:o(),bps:o(),isReferrer:U()}),Zi=m({affiliate:c(o()),affiliateFees:c(v(Ji)),broadcastedAt:c(h()),explorerUrl:c(o()),fees:c(Xi),images:c(m({chain:c(o()),from:c(o()),provider:c(o()),to:c(o())})),provider:c(n.enum(C)),providerAction:n.optional(n.enum(Bt)),quoteId:c(o()),wallet:c(o())}),se=n.object({block:n.number(),chainId:n.enum(q),finalAddress:n.optional(n.string()),finalAsset:n.optional(re),finalisedAt:n.number(),fromAddress:n.string(),fromAmount:n.string(),fromAsset:n.string(),hash:n.string(),meta:n.optional(Zi),payload:n.optional(ji),status:n.enum($t),toAddress:n.string(),toAmount:n.string(),toAsset:n.string(),trackingStatus:n.optional(n.enum(Ft)),transient:n.optional(Qi),type:n.enum(Ut)}),Yt=se.extend({legs:n.array(se)}),Qo=se.extend({legs:v(se)}),Xo=se.extend({legs:v(se)}),qe=v(m({amount:o(),asset:o(),chain:o(),protocol:n.enum(C),type:n.enum(_e)})),We=n.object({inbound:n.optional(n.number().describe("Time to receive inbound asset in seconds")),outbound:n.optional(n.number().describe("Time to receive outbound asset in seconds")),swap:n.optional(n.number().describe("Time to swap assets in seconds")),total:n.number().describe("Total time in seconds")}),er=/^(?:0x[0-9a-fA-F]+|[0-9]+)$/;function tr(e){return e===""||er.test(e)}function Jo(e){return e?BigInt(e):0n}function Zo(e){let t=typeof e==="bigint"?e:BigInt(e);return t>0n?`0x${t.toString(16)}`:"0x0"}var H=o().refine(tr,{message:"Value must be a base-10 integer string or 0x-prefixed hex integer string"}).describe("Value to send in base units as a base-10 integer string or 0x-prefixed hex integer string"),nr=m({data:o().describe("Data to send"),from:o().describe("Address of the sender"),to:o().describe("Address of the recipient"),value:H}),ir=n.object({data:n.string().optional(),raw_data:n.object({contract:n.any(),data:n.string().optional(),expiration:n.number(),fee_limit:n.number().optional(),ref_block_bytes:n.string(),ref_block_hash:n.string(),timestamp:n.number()}).passthrough(),raw_data_hex:n.string(),txID:n.string(),value:H.optional(),visible:n.boolean()}),rr=v(Fe([o(),h(),v(o()),m({from:o(),value:H}).describe("Parameters to pass to the contract method")])),ea=m({approvalSpender:c(o().describe("Address of the spender to approve")),approvalToken:c(o().describe("Address of the token to approve spending of")),contractAddress:o().describe("Address of the contract to interact with"),contractMethod:o().describe("Name of the method to call"),contractParamNames:v(o().describe("Names of the parameters to pass to the contract method")),contractParams:rr}),sr=m({typeUrl:o("/types.MsgDeposit"),value:m({coins:v(m({amount:o(),asset:m({chain:o(),symbol:o(),synth:U(),ticker:o()})})),memo:o(),signer:o()})}),or=m({typeUrl:o("/types.MsgSend"),value:m({amount:v(m({amount:o(),denom:o()})),fromAddress:o(),toAddress:o()})}),ar=m({typeUrl:o(),value:or.shape.value.or(sr.shape.value)}),lr=m({amount:v(m({amount:o(),denom:o()})),gas:o()}),dr=m({accountNumber:h(),chainId:n.enum(q),fee:lr,memo:o(),msgs:v(ar),sequence:h()}),cr=n.array(n.object({calldata:n.array(n.string()),contractAddress:n.string(),entrypoint:n.string()})),pr=n.object({address:n.string().describe("Destination address in friendly format"),amount:n.string().describe("Amount in nanotons"),payload:n.string().optional().describe("Base64 BOC of body cell"),stateInit:n.string().optional().describe("Base64 BOC of state init")}),ur=n.object({messages:n.array(pr),sendMode:n.number().describe("TON wallet send mode for the whole transfer")}),ta="USDC:0x6d1e7cde53ba9467b783cb7c530ce054",mr=n.looseObject({domain:n.looseObject({chainId:c(Fe([h(),o()])),name:c(o()),verifyingContract:c(o()),version:c(o())}),message:n.record(o(),Ke()),primaryType:o(),types:n.record(o(),v(n.looseObject({name:o(),type:o()})))}),gr=n.looseObject({amount:o(),destination:o(),destinationDex:o(),fromSubAccount:o(),hyperliquidChain:o(),nonce:h().int(),signatureChainId:o(),sourceDex:o(),token:o(),type:n.literal("sendAsset")}),zt=n.looseObject({action:n.looseObject({type:o()}),submitTo:o(),typedData:mr}),na=zt.extend({action:gr}),Qt=Fe([nr,dr,ir,ur,zt,o()]),_r=Qt.or(cr),hr=m({affiliate:o().describe("Affiliate address").optional(),affiliateFee:h().describe("Affiliate fee").optional(),buyAsset:o().describe("Asset to buy"),destinationAddress:o().describe("Destination address"),estimatedTime:We.optional(),provider:n.enum(C),sellAsset:o().describe("Asset to sell"),slipPercentage:h().describe("Slippage as a percentage"),sourceAddress:o().describe("Source address")}),ia=hr.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),fr=m({asset:o().describe("Asset name"),image:o().describe("Asset image"),price:h().describe("Price in USD")}),yr=Gi,Xt=m({assets:c(v(fr)),maxStreamingQuantity:h().optional(),referrer:o().optional(),streamingInterval:h().optional(),tags:v(n.enum(Ht))}),Jt=Xt.extend({affiliate:c(o()),affiliateFee:c(o()),approvalAddress:c(o().describe("Approval address for swap")),chainflip:yr.optional(),garden:Nt.optional(),near:Nt.optional(),priceImpact:c(h().describe("Price impact")),referrer:c(o()),txType:c(n.enum(Pe))}),Zt=v(m({code:n.enum(Le),display:o(),tooltip:o().optional()})),br=m({buyAmount:o().describe("Buy amount"),buyAmountMaxSlippage:o().describe("Buy amount max slippage"),buyAsset:o().describe("Asset to buy"),fees:c(qe),provider:n.enum(C),sellAmount:o().describe("Sell amount"),sellAsset:o().describe("Asset to sell")}),Sr=m({buyAsset:o().describe("Asset to buy"),destinationAddress:c(o().describe("Destination address")),estimatedTime:c(We),expectedBuyAmount:o().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:o().describe("Expected Buy amount max slippage"),expiration:c(o().describe("Expiration")),fees:qe,inboundAddress:c(o().describe("Inbound address")),legs:v(br),memo:c(o().describe("Memo")),meta:Jt,providers:v(n.enum(C)),routeId:o().describe("Route ID"),sellAmount:o().describe("Sell amount"),sellAsset:o().describe("Asset to sell"),sourceAddress:c(o().describe("Source address")),targetAddress:c(o().describe("Target address")),totalSlippageBps:h().describe("Total slippage in bps"),tx:c(_r),txType:c(n.enum(Pe)),warnings:Zt}),en=m({error:c(o().describe("Error message")),providerErrors:c(v(m({errorCode:c(n.enum(oe)),message:c(o()),provider:n.enum(C).optional()}))),quoteId:o().describe("Quote ID"),routes:v(Sr)}),tn=n.object({chainId:n.enum(q),createdAt:n.date(),id:n.number(),unit:n.string(),value:n.string()}),Ar=n.array(tn),nn=n.union([tn,Ar]),ra=v(m({chain:n.enum(Oe),decimal:h(),identifier:o(),symbol:o(),ticker:o(),value:o()})),sa=n.union([n.object({amount:n.string(),spender:n.string(),tokenIdentifier:n.string(),userWalletAddress:n.string()}),n.object({amount:n.string(),chainId:n.enum(q),spender:n.string(),tokenContractAddress:n.string(),userWalletAddress:n.string()}),n.object({routeId:n.string()})]),oa=n.object({approvalTransaction:n.optional(n.object({data:n.string(),from:n.string(),gasLimit:n.optional(n.string()),gasPrice:n.optional(n.string()),to:n.string(),value:H})),approvedAmount:n.string(),isApproved:n.boolean()}),Tr=n.object({data:n.string().describe("Encoded approval call data"),from:n.string().describe("User wallet address"),gasLimit:n.string().optional().describe("Estimated gas limit"),gasPrice:n.string().optional().describe("Current gas price"),to:n.string().describe("Token contract address"),value:H.describe("ETH value (always '0' for approvals)")}),wr=n.object({tx:n.string(),txType:n.literal("STELLAR")}),xr=n.union([Tr,wr]),Mt=n.object({buyAmount:n.string().describe("Buy amount").optional(),buyAmountMaxSlippage:n.string().describe("Buy amount max slippage").optional(),buyAsset:n.string().describe("Asset to buy"),expectedBuyAmount:n.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:n.string().describe("Expected Buy amount max slippage").optional(),fees:qe,provider:n.enum(C),sellAmount:n.string().describe("Sell amount"),sellAsset:n.string().describe("Asset to sell")}),rn=Mt.extend({estimatedTime:n.optional(We),expiration:n.optional(n.string().describe("Expiration")),legs:n.array(Mt),providers:n.array(n.enum(C)),routeId:n.string().describe("Route ID"),totalSlippageBps:n.number().describe("Total slippage in bps"),warnings:Zt}).omit({provider:!0}),sn=n.object({method:n.string(),payload:n.optional(n.unknown()),url:n.string()}),Rr=rn.extend({meta:Xt,nextActions:n.optional(n.array(sn))}),aa=n.object({error:n.optional(n.string().describe("Error message")),providerErrors:n.optional(n.array(n.object({errorCode:n.optional(n.enum(oe)),message:n.optional(n.string()),provider:n.enum(C).optional()}))),quoteId:n.string().describe("Quote ID"),routes:n.array(Rr)}),la=n.object({providers:n.array(n.enum(C)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:n.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),vr=n.object({chain:n.enum(Oe).describe("Chain the asset is on"),identifier:n.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:n.array(n.enum(C)).describe("Providers that support this trading pair"),symbol:n.string().describe("Asset symbol"),ticker:n.string().describe("Asset ticker")}),da=n.object({buyAssets:n.array(vr).describe("List of assets that can be swapped to"),sellAsset:n.string().describe("The input sell asset identifier")}),on=rn.extend({destinationAddress:n.string().describe("Destination address"),inboundAddress:n.optional(n.string().describe("Inbound address")),memo:n.optional(n.string().describe("Memo to include in the transaction")),meta:Jt,sourceAddress:n.string().describe("Source address"),targetAddress:n.optional(n.string().describe("Target address")),tx:c(Qt),txType:n.optional(n.enum(Pe))}),Ir=n.object({data:n.optional(n.record(n.string(),n.string().optional())),errorCode:n.enum(oe),message:n.string().optional(),provider:n.enum(C).optional()}),ca=n.object({error:n.optional(n.string().describe("Error message")),providerErrors:n.optional(n.array(Ir)),quoteId:n.string().describe("Quote ID"),routes:n.array(on)}),an=on.extend({approvalTx:xr.optional().describe("Optional approval transaction required before swap execution"),nextActions:n.optional(n.array(sn)),swapId:n.string().describe("The unique swap ID for tracking")}),Cr={CANCELLED:"CANCELLED",EXPIRED:"EXPIRED",FAILED:"FAILED",FILLED:"FILLED",OPEN:"OPEN",PARTIAL:"PARTIAL",PENDING:"PENDING",SUBMITTED:"SUBMITTED"},Or={Cardano:"cardano",Evm:"evm",Near:"near",Psbt:"psbt",Ripple:"ripple",Solana:"solana",Starknet:"starknet",Stellar:"stellar",Sui:"sui",Ton:"ton",Tron:"tron"};function D(e){return n.union([e,n.string()])}var Ge=D(n.enum(Cr)),je=n.object({method:n.string(),payload:n.optional(n.unknown()),url:n.string()}),ln=n.array(n.object({code:n.string(),display:n.string(),tooltip:n.string().optional()})),dn=n.array(n.object({amount:n.string(),amountBps:n.number().optional(),asset:n.string(),chain:n.string(),protocol:D(n.enum(C)),type:D(n.enum(_e))})),cn=n.object({crossChain:n.array(n.object({assets:n.array(n.string()),chainIds:n.array(D(n.enum(q))),provider:D(n.enum(C))})),singleChain:n.array(n.object({assets:n.array(n.string()),chainId:D(n.enum(q)),provider:D(n.enum(C))}))}),pa=n.object({affiliateFee:n.number().min(0).max(1000).optional(),buyAmount:n.string().optional(),buyAsset:n.string(),destinationAddress:n.string().optional(),expiresAt:n.number().int().positive().optional(),limitPrice:n.string().optional().describe("buyAsset per 1 sellAsset"),providers:n.array(n.enum(C)).optional(),sellAmount:n.string().optional(),sellAsset:n.string(),sourceAddress:n.string().optional()}),Pr=n.object({buyAmount:n.string(),buyAsset:n.string(),effectiveFillPrice:n.string(),fees:dn.optional(),integratorFeeBps:n.number(),limitPrice:n.string(),maxExpirationSeconds:n.number(),minExpirationSeconds:n.number(),nextActions:n.optional(n.array(je)),provider:D(n.enum(C)),routeId:n.string(),sellAmount:n.string(),sellAsset:n.string(),spotPrice:n.string(),spotPriceDeviationBps:n.number(),takerFeeBps:n.number(),warnings:ln.optional()}),pn=n.object({error:n.string().optional(),providerErrors:n.optional(n.array(n.object({errorCode:n.optional(n.string()),message:n.optional(n.string()),provider:D(n.enum(C)).optional()}))),quoteId:n.string(),routes:n.array(Pr)}),ua=n.object({allowMultipleFills:n.boolean().optional(),allowPartialFill:n.boolean().optional(),destinationAddress:n.string().min(1),expiresAt:n.number().int().positive().describe("Unix timestamp in seconds"),routeId:n.string(),sourceAddress:n.string().min(1)}),kr=n.object({domain:n.looseObject({chainId:n.number(),name:n.string(),verifyingContract:n.string(),version:n.string()}),message:n.record(n.string(),n.unknown()),primaryType:n.string(),types:n.record(n.string(),n.array(n.object({name:n.string(),type:n.string()})))}),Lr=n.strictObject({data:n.string(),from:n.string().optional(),gas:H.optional(),gasPrice:H.optional(),maxFeePerGas:H.optional(),maxPriorityFeePerGas:H.optional(),to:n.string(),type:H.optional(),value:H}),Er=n.object({chainId:n.number().optional(),memo:n.string().optional(),txType:n.enum(Or)}),Nr=n.object({data:n.string(),from:n.string(),gasLimit:n.string().optional(),gasPrice:n.string().optional(),to:n.string(),value:n.string()}),un=n.object({approvalTx:Nr.optional(),depositAddress:n.string().optional(),depositAmount:n.string().optional(),depositMemo:n.string().optional(),isApproved:n.boolean().optional(),nextActions:n.array(je),orderHash:n.string(),orderId:n.string(),tx:n.union([n.string(),Lr,n.record(n.string(),n.unknown()),n.array(n.unknown())]).nullable(),txMeta:Er.nullable(),typedData:kr.nullable(),warnings:ln.optional()}),mn=n.object({createdAt:n.string(),orderHash:n.string(),orderId:n.string(),status:Ge}),Dr=n.object({blockNumber:n.number().int().optional(),chainId:D(n.enum(q)),txHash:n.string(),type:D(n.enum(["fill","cancel","deposit","withdraw","refund"]))}),Ye=n.object({buyAmount:n.string(),buyAsset:n.string(),cancelRequestedAt:n.string().optional(),chainId:D(n.enum(q)),createdAt:n.string(),depositHash:n.string().optional(),expiresAt:n.string(),fees:dn,filledBuyAmount:n.string(),filledSellAmount:n.string(),limitPrice:n.string(),maker:n.string(),orderHash:n.string(),orderId:n.string(),provider:D(n.enum(C)),receiver:n.string().nullable(),sellAmount:n.string(),sellAsset:n.string(),status:Ge,txHashes:n.array(Dr).optional(),updatedAt:n.string(),usdValueClose:n.string().nullable().optional(),usdValueOpen:n.string().nullable().optional(),withdrawHash:n.string().optional()}),ze=n.object({nextCursor:n.string().optional(),orders:n.array(Ye)}),Mr=n.object({domain:n.looseObject({name:n.string(),version:n.string()}),message:n.looseObject({action:n.literal("cancel_and_withdraw"),chain:n.string(),expiry:n.number(),l1Address:n.string(),nonce:n.number(),payload:n.looseObject({orderId:n.string()})}),primaryType:n.literal("CancelAndWithdraw"),types:n.looseObject({CancelAndWithdraw:n.array(n.object({name:n.string(),type:n.string()})),CancelAndWithdrawPayload:n.array(n.object({name:n.string(),type:n.string()})),EIP712Domain:n.array(n.object({name:n.string(),type:n.string()}))})}),Vr=n.strictObject({chainId:n.number(),data:n.string(),from:n.string(),to:n.string(),value:n.string()}),gn=n.object({btcSignaturePreimage:n.string().nullable(),cancelTx:Vr.nullable(),nextActions:n.array(je),orderId:n.string(),typedData:Mr.nullable()}),_n=n.object({cancelRequestedAt:n.string().optional(),orderId:n.string(),status:Ge,txHash:n.string().optional(),withdrawId:n.string().optional()});var P=_.extend({dynamicHeader:async()=>{let e=A.get("widgetId"),t=A.get("widgetKey");if(e&&t&&typeof window<"u"){let r=Math.floor(Date.now()/1000),s=window.location.origin,a=await dt(t,e,s,r);return{Origin:s,"X-Signature":a,"X-Timestamp":r.toString(),"x-widget-id":e}}let{swapKit:i}=A.get("apiKeys");return i?{"x-api-key":i}:{}}});async function Ur(e){let t=await P.post(O("/track"),{json:e});try{let i=Yt.safeParse(t);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}catch(i){return t}}async function Br(e){let{getQuote:t}=A.get("endpoints");if(t)return t(e);let r=A.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",s=await P.post(O(r),{json:e});if(s.error)throw new b("api_v2_server_error",{message:s.error});try{let a=en.safeParse(s);if(!a.success)throw new b("api_v2_invalid_response",a.error);return a.data}catch{return s}}async function $r(e){let{getRouteWithTx:t}=A.get("endpoints");if(t)return t(e);let r=A.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",s=await P.post(O(r),{json:e});try{let a=an.safeParse(s);if(!a.success)throw new b("api_v2_invalid_response",a.error);return a.data}catch(a){return console.error(new b("api_v2_invalid_response",a)),s}}async function Fr({chain:e,address:t,scamFilter:i=!0}){let{getBalance:r}=A.get("endpoints");if(r)return r({address:t,chain:e});let s=O(`/balance?chain=${e}&address=${t}`),a=await P.get(s),l=Array.isArray(a)?a:[];return i?ls(l):l}function Kr(e){let t=Hr(e).with({routeId:pe.string,spender:pe.string},({routeId:i,spender:r})=>O(`/approve?routeId=${i}&sourceAddress=${r}`)).with({assetValue:pe.instanceOf(N),spender:pe.string,userWallet:pe.string},({spender:i,userWallet:r,assetValue:s})=>O(`/approve?tokenIdentifier=${s.toString()}&userWalletAddress=${r}&spender=${i}&amount=${s.getValue("string")}`)).exhaustive();return P.get(t)}function qr(){let e=O("/providers");return P.get(e)}function Wr(e){let t=O(`/tokens?provider=${e}`);return P.get(t)}function Gr({query:e,chain:t,page:i,limit:r}){let s=new URLSearchParams({query:e});if(t!==void 0)s.set("chain",t);if(i!==void 0)s.set("page",i.toString());if(r!==void 0)s.set("limit",r.toString());let a=O(`/tokens/search?${s.toString()}`);return P.get(a)}async function jr(e){let t=O("/price"),i=await P.post(t,{json:e});try{let r=qt.safeParse(i);if(!r.success)throw new b("api_v2_invalid_response",r.error);return r.data}catch(r){throw new b("api_v2_invalid_response",r)}}async function Yr(){let e=O("/gas"),t=await P.get(e);try{let i=nn.safeParse(t);if(!i.success)throw new b("api_v2_invalid_response",i.error);return Array.isArray(i)?i:[i]}catch(i){throw new b("api_v2_invalid_response",i)}}async function zr(e){let{destinationAddress:t}=e;if(!t)throw new b("chainflip_broker_invalid_params");let i=A.get("integrations").chainflip?.brokerUrl||O("/chainflip/broker/channel"),r=await P.post(i,{json:e});try{let s=Gt.safeParse(r);if(!s.success)throw new b("api_v2_invalid_response",s.error);return s.data}catch(s){throw new b("api_v2_invalid_response",s)}}async function Qr(e){let{destinationAddress:t}=e;if(!t)throw new b("chainflip_broker_invalid_params");let i=O("/near/channel"),r=await P.post(i,{json:e});try{let s=jt.safeParse(r);if(!s.success)throw new b("api_v2_invalid_response",s.error);return s.data}catch(s){throw new b("api_v2_invalid_response",s)}}function W(e,t){let i=e.safeParse(t);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}async function Xr(){let{getLimitOrderTokens:e}=A.get("endpoints"),t=e?await e():await P.get(O("/v3/limit/tokens"));return W(cn,t)}async function Jr(e){let{getLimitOrderQuote:t}=A.get("endpoints"),i=t?await t(e):await P.post(O("/v3/limit/quote"),{json:e});return W(pn,i)}async function Zr(e){let{buildLimitOrder:t}=A.get("endpoints"),i=t?await t(e):await P.post(O("/v3/limit/build"),{json:e,retry:{maxRetries:0}});return W(un,i)}async function es(e){let{submitLimitOrder:t}=A.get("endpoints"),i=t?await t(e):await P.post(O("/v3/limit/submit"),{json:e,retry:{maxRetries:0}});return W(mn,i)}async function ts(e={}){let{getLimitOrders:t}=A.get("endpoints");if(t)return W(ze,await t(e));let{status:i,...r}=e,s=new URLSearchParams;for(let[p,g]of Object.entries(r))if(g!==void 0)s.set(p,String(g));for(let p of i===void 0?[]:[i].flat())s.append("status",p);let a=s.toString(),l=await P.get(O(`/v3/limit/orders${a?`?${a}`:""}`));return W(ze,l)}async function ns(e){let{getLimitOrder:t}=A.get("endpoints"),i=t?await t(e):await P.get(O(`/v3/limit/orders/${encodeURIComponent(e)}`));return W(Ye,i)}async function is(e){let{buildLimitOrderCancel:t}=A.get("endpoints"),i=t?await t(e):await P.post(O("/v3/limit/cancel/build"),{json:e,retry:{maxRetries:0}});return W(gn,i)}async function rs(e){let{submitLimitOrderCancel:t}=A.get("endpoints"),i=t?await t(e):await P.post(O("/v3/limit/cancel/submit"),{json:e,retry:{maxRetries:0}});return W(_n,i)}function O(e){let{isDev:t,apiUrl:i,devApiUrl:r}=A.get("envs"),{enabled:s,quoteUrl:a,swapUrl:l}=A.get("localMode");if(s&&e){let[g]=e.split("?");if(g==="/quote"||g==="/v3/quote")return`${a}${e}`;if(g==="/swap"||g==="/v3/swap")return`${l}${e}`}return`${t?r:i}${e}`}function ss(e){try{return N.from({asset:e.identifier})}catch{return}}var os=new Set(["OP.OP"]),as=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function ls(e){return e.filter((t)=>{let i=ss(t);if(!i)return!1;if(os.has(i.toString().toUpperCase()))return!0;return(!Qe.includes(i.chain)||i.isGasAsset||!!i.address)&&!as.test(i.ticker)})}async function ds(e){let{getSwapTo:t}=A.get("endpoints");if(t)return t(e);let i=new URLSearchParams({sellAsset:e.sellAsset});if(e.providers?.length)for(let l of e.providers)i.append("providers",l);let r=O(`/swapTo?${i.toString()}`),s=await P.get(r);if(!Array.isArray(s))return{buyAssets:[],sellAsset:e.sellAsset};let a=[];for(let l of s)try{let p=N.from({asset:l});a.push({chain:p.chain,identifier:p.toString(),providers:[],symbol:p.symbol,ticker:p.ticker})}catch{}return{buyAssets:a,sellAsset:e.sellAsset}}var Je={};nt(Je,{getInboundAddresses:()=>_s,getLastBlock:()=>ps,getMimirInfo:()=>gs,getNodes:()=>ms,getRunePoolInfo:()=>fs,getRunePoolProviderInfo:()=>ys,getTHORNodeTNSDetails:()=>hn,getTNSPreferredAsset:()=>hs,getTcyClaimer:()=>As,getTcyClaimers:()=>Ts,getTcyStaker:()=>bs,getTcyStakers:()=>Ss,getThorchainQueue:()=>us});function V(e){let t=A.get("thornodeUrls");return`${e==="mayachain"?t.MAYA:t.THOR}/${e??"thorchain"}`}function cs(e){let t=e==="mayachain"?"mayaname":"thorname";return`${V(e)}/${t}`}function ps(e="thorchain"){return _.get(`${V(e)}/lastblock`)}function us(e){return _.get(`${V(e)}/queue`)}function ms(e){return _.get(`${V(e)}/nodes`)}function gs(e){return _.get(`${V(e)}/mimir`)}function _s(e){return _.get(`${V(e)}/inbound_addresses`)}async function hn({type:e,name:t}){try{return await _.get(`${cs(e)}/${t}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:t,owner:"",preferred_asset:""}}}async function hs({type:e,tns:t}){let i=await hn({name:t,type:e});if(!i.preferred_asset||i.preferred_asset===".")return;return N.from({asset:i.preferred_asset,asyncTokenLookup:!0})}function fs(e){return _.get(`${V(e)}/runepool`)}function ys({type:e,thorAddress:t}){return _.get(`${V(e)}/rune_provider/${t}`)}function bs({type:e,address:t}){return _.get(`${V(e)}/tcy_staker/${t}`)}function Ss(e){return _.get(`${V(e)}/tcy_stakers`)}function As({type:e,address:t}){return _.get(`${V(e)}/tcy_claimer/${t}`)}function Ts(e){return _.get(`${V(e)}/tcy_claimers`)}var Ra={...Xe,mayachainMidgard:Et,thorchainMidgard:Lt,thornode:Je};
5
- export{Rs as a,oe as b,Le as c,C as d,_e as e,wn as f,xn as g,Rn as h,b as i,Os as j,he as k,st as l,Ls as m,vn as n,Es as o,L as p,A as q,_ as r,dt as s,zs as t,ae as u,De as v,Fn as w,J as x,no as y,io as z,ro as A,ho as B,Qn as C,wt as D,xt as E,Rt as F,Se as G,Ve as H,Y as I,de as J,fo as K,yo as L,Z as M,K as N,ai as O,N as P,Po as Q,Ie as R,Ht as S,Pe as T,Ut as U,Bt as V,$t as W,Ft as X,Fo as Y,Ko as Z,qo as _,Wo as $,re as aa,Kt as ba,Go as ca,qt as da,jo as ea,Yo as fa,Wt as ga,Gi as ha,Gt as ia,Nt as ja,zo as ka,jt as la,Yt as ma,Qo as na,Xo as oa,qe as pa,We as qa,tr as ra,Jo as sa,Zo as ta,nr as ua,ir as va,rr as wa,ea as xa,dr as ya,cr as za,pr as Aa,ur as Ba,ta as Ca,mr as Da,gr as Ea,zt as Fa,na as Ga,hr as Ha,ia as Ia,fr as Ja,yr as Ka,Xt as La,Jt as Ma,Zt as Na,Sr as Oa,en as Pa,tn as Qa,nn as Ra,sa as Sa,oa as Ta,Tr as Ua,wr as Va,xr as Wa,aa as Xa,la as Ya,vr as Za,da as _a,on as $a,Ir as ab,ca as bb,an as cb,Cr as db,Or as eb,cn as fb,pa as gb,Pr as hb,pn as ib,ua as jb,kr as kb,Lr as lb,Er as mb,Nr as nb,un as ob,mn as pb,Dr as qb,Ye as rb,ze as sb,Mr as tb,Vr as ub,gn as vb,_n as wb,Ra as xb};