@swapkit/helpers 6.0.0 → 6.1.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @swapkit/helpers
2
2
 
3
+ ## 6.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#426](https://github.com/swapkit/sdk/pull/426) [`489fa6c`](https://github.com/swapkit/sdk/commit/489fa6c90f668c65b3b7ec2a7d355449f5312ce2) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Add Relay support: `ProviderName.RELAY` is now available, and Relay routes resolve to the generic `swapkit` plugin for any wallet (like Flashnet, Mayan and PactSwap), which signs the route's prebuilt EVM transaction.
8
+ - [#427](https://github.com/swapkit/sdk/pull/427) [`607fac7`](https://github.com/swapkit/sdk/commit/607fac77adfa5fc2e3bd221c71a82b2a99337b56) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - `getTHORNameCost` and `getMAYANameCost` now match on-chain pricing: the 10 RUNE / 10 CACAO registration fee already includes the first year, and each extra year costs 1.0512 (20 tor or 2000 base units per block × 5,256,000 blocks).
9
+ - [#415](https://github.com/swapkit/sdk/pull/415) [`3e3dca0`](https://github.com/swapkit/sdk/commit/3e3dca0aea7625917a797c1a8183c60a47ae5574) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/tokens@5.0.12)
10
+
11
+ ## 6.0.1
12
+
13
+ ### Patch Changes
14
+
15
+ - [#415](https://github.com/swapkit/sdk/pull/415) [`3e3dca0`](https://github.com/swapkit/sdk/commit/3e3dca0aea7625917a797c1a8183c60a47ae5574) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/tokens@5.0.11)
16
+
3
17
  ## 6.0.0
4
18
 
5
19
  ### Major Changes
package/dist/api/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as k,$a as la,Aa as L,Ba as M,Ca as N,Da as O,Ea as P,Fa as Q,Ga as R,Ha as S,Ia as T,Ja as U,Ka as V,La as W,Ma as X,Na as Y,Oa as Z,Pa as _,Qa as aa,R as a,Ra as ba,S as b,Sa as ca,T as c,Ta as da,U as d,Ua as ea,V as e,Va as fa,W as f,Wa as ga,X as g,Xa as ha,Y as h,Ya as ia,Z as i,Za as ja,_ as j,_a as ka,aa as l,ab as ma,ba as m,bb as na,ca as n,cb as oa,da as o,ea as p,fa as q,ga as r,ha as s,ia as t,ja as u,ka as v,la as w,ma as x,na as y,oa as z,pa as A,qa as B,ra as C,sa as D,ta as E,ua as F,va as G,wa as H,xa as I,ya as J,za as K}from"../chunk-b916hdf4.js";export{j as ApiV2ErrorSchema,da as ApprovalTransactionSchema,ba as ApproveRequestParams,ca as ApproveResponseSchema,k as AssetValueSchema,r as BrokerDepositChannelParamsSchema,U as ChainflipMetadataSchema,l as CoinGeckoMetadataSchema,I as CosmosTransactionSchema,q as DepositChannelParamsSchema,s as DepositChannelResponseSchema,G as EVMTransactionDetailsParamsSchema,H as EVMTransactionDetailsSchema,E as EVMTransactionSchema,A as EstimatedTimeSchema,z as FeesSchema,aa as GasResponseSchema,_ as GasSchema,M as HYPERCORE_USDC_TOKEN_ID,N as HyperCoreEip712TypedDataSchema,O as HyperCoreSendAssetActionSchema,Q as HyperCoreSendAssetTransactionSchema,P as HyperCoreTypedDataTransactionSchema,t as NearDepositChannelParamsSchema,u as NearDepositChannelResultSchema,v as NearSwapResponseSchema,p as PriceRequestSchema,n as PriceResponseSchema,a as PriorityLabel,d as ProviderAction,o as QuoteRequestSchema,Y as QuoteResponseRouteItem,Z as QuoteResponseSchema,ka as QuoteRouteV2Response,ma as QuoteV2ResponseSchema,ga as QuoteV3ResponseSchema,R as RouteLegSchema,S as RouteLegWithoutAddressesSchema,T as RouteQuoteMetadataAssetSchema,V as RouteQuoteMetadataSchema,W as RouteQuoteMetadataV2Schema,la as RouteQuoteProviderErrorSchema,b as RouteQuoteTxType,X as RouteQuoteWarningSchema,J as StarknetTransactionSchema,ea as StellarApprovalTransactionSchema,fa as SwapApprovalTransactionSchema,oa as SwapKitApi,na as SwapRouteV2ResponseSchema,ia as SwapToAssetSchema,ha as SwapToRequestSchema,ja as SwapToResponseSchema,K as TONTransactionMessageSchema,L as TONTransactionSchema,m as TokenDetailsMetadataSchema,g as TokenSchema,w as TrackerResponseSchema,i as TrackingRequestQuerySchema,h as TrackingRequestSchema,f as TrackingStatus,y as TransactionDTOSchema,x as TransactionSchema,F as TronTransactionSchema,e as TxnStatus,c as TxnType,B as isTransactionValue,C as parseTransactionValue,D as toHexTransactionValue};
1
+ import{$ as k,$a as la,Aa as L,Ba as M,Ca as N,Da as O,Ea as P,Fa as Q,Ga as R,Ha as S,Ia as T,Ja as U,Ka as V,La as W,Ma as X,Na as Y,Oa as Z,Pa as _,Qa as aa,R as a,Ra as ba,S as b,Sa as ca,T as c,Ta as da,U as d,Ua as ea,V as e,Va as fa,W as f,Wa as ga,X as g,Xa as ha,Y as h,Ya as ia,Z as i,Za as ja,_ as j,_a as ka,aa as l,ab as ma,ba as m,bb as na,ca as n,cb as oa,da as o,ea as p,fa as q,ga as r,ha as s,ia as t,ja as u,ka as v,la as w,ma as x,na as y,oa as z,pa as A,qa as B,ra as C,sa as D,ta as E,ua as F,va as G,wa as H,xa as I,ya as J,za as K}from"../chunk-kracm6xw.js";export{j as ApiV2ErrorSchema,da as ApprovalTransactionSchema,ba as ApproveRequestParams,ca as ApproveResponseSchema,k as AssetValueSchema,r as BrokerDepositChannelParamsSchema,U as ChainflipMetadataSchema,l as CoinGeckoMetadataSchema,I as CosmosTransactionSchema,q as DepositChannelParamsSchema,s as DepositChannelResponseSchema,G as EVMTransactionDetailsParamsSchema,H as EVMTransactionDetailsSchema,E as EVMTransactionSchema,A as EstimatedTimeSchema,z as FeesSchema,aa as GasResponseSchema,_ as GasSchema,M as HYPERCORE_USDC_TOKEN_ID,N as HyperCoreEip712TypedDataSchema,O as HyperCoreSendAssetActionSchema,Q as HyperCoreSendAssetTransactionSchema,P as HyperCoreTypedDataTransactionSchema,t as NearDepositChannelParamsSchema,u as NearDepositChannelResultSchema,v as NearSwapResponseSchema,p as PriceRequestSchema,n as PriceResponseSchema,a as PriorityLabel,d as ProviderAction,o as QuoteRequestSchema,Y as QuoteResponseRouteItem,Z as QuoteResponseSchema,ka as QuoteRouteV2Response,ma as QuoteV2ResponseSchema,ga as QuoteV3ResponseSchema,R as RouteLegSchema,S as RouteLegWithoutAddressesSchema,T as RouteQuoteMetadataAssetSchema,V as RouteQuoteMetadataSchema,W as RouteQuoteMetadataV2Schema,la as RouteQuoteProviderErrorSchema,b as RouteQuoteTxType,X as RouteQuoteWarningSchema,J as StarknetTransactionSchema,ea as StellarApprovalTransactionSchema,fa as SwapApprovalTransactionSchema,oa as SwapKitApi,na as SwapRouteV2ResponseSchema,ia as SwapToAssetSchema,ha as SwapToRequestSchema,ja as SwapToResponseSchema,K as TONTransactionMessageSchema,L as TONTransactionSchema,m as TokenDetailsMetadataSchema,g as TokenSchema,w as TrackerResponseSchema,i as TrackingRequestQuerySchema,h as TrackingRequestSchema,f as TrackingStatus,y as TransactionDTOSchema,x as TransactionSchema,F as TronTransactionSchema,e as TxnStatus,c as TxnType,B as isTransactionValue,C as parseTransactionValue,D as toHexTransactionValue};
@@ -0,0 +1,5 @@
1
+ var nn=Object.defineProperty;var rn=(e)=>e;function sn(e,t){this[e]=rn.bind(null,t)}var Xe=(e,t)=>{for(var n in t)nn(e,n,{get:t[n],enumerable:!0,configurable:!0,set:sn.bind(t,n)})};var ze=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{Chain as Re,getChainConfig as tr}from"@swapkit/types";import{AllChains as Kn,Chain as v,EVMChains as Wn,getChainConfig as oe}from"@swapkit/types";import{match as Ve}from"ts-pattern";import{Chain as d,EVMChains as En,getChainConfig as K,UTXOChains as Nn}from"@swapkit/types";import{match as se}from"ts-pattern";import{AllChains as et,Chain as Ze,getChainConfig as un,MAYAConfig as gn,THORConfig as mn}from"@swapkit/types";import{createStore as _n}from"zustand/vanilla";import{AllChains as on,getChainConfig as an}from"@swapkit/types";var Gs=Object.freeze(Object.fromEntries(on.map((e)=>[e,Object.freeze(an(e).networkDerivationPath)])));var ne;((l)=>{l.unknownError="unknownError";l.test_error="test_error";l.providerDetailsError="providerDetailsError";l.blockHeaderNotFound="blockHeaderNotFound";l.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";l.blockHashNotFoundAtHash="blockHashNotFoundAtHash";l.txHashMissing="txHashMissing";l.assetValueMissingInfo="assetValueMissingInfo";l.invalidAsset="invalidAsset";l.blockIsRequired="blockIsRequired";l.currentBlockHeaderNotFound="currentBlockHeaderNotFound";l.failedToRetrieveBalance="failedToRetrieveBalance";l.failedToRetrieveBlock="failedToRetrieveBlock";l.failedToRetrieveFees="failedToRetrieveFees";l.notImplementedBCH="notImplementedBCH";l.notImplementedDoge="notImplementedDoge";l.noPoolsFound="noPoolsFound";l.noVaultsFound="noVaultsFound";l.noTxFound="noTxFound";l.noInputCoinFound="noInputCoinFound";l.noBlockDataFound="noBlockDataFound";l.multipleCosmosMessages="multipleCosmosMessages";l.heightOrHashNotProvided="heightOrHashNotProvided";l.unknownDenom="unknownDenom";l.invalidBlockHeight="invalidBlockHeight";l.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";l.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";l.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";l.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";l.txMemoUndefined="txMemoUndefined";l.txMemoIncorrect="txMemoIncorrect";l.txTypeNotFound="txTypeNotFound";l.txNoMessage="txNoMessage";l.txNotFound="txNotFound";l.txReceiptNotFound="txReceiptNotFound";l.txParsingError="txParsingError";l.txLogsParsingError="txLogsParsingError";l.blockNotFound="blockNotFound";l.balanceNotFound="balanceNotFound";l.configError="configError";l.synthSwapDisallowed="synthSwapDisallowed";l.providerQuoteTimeout="providerQuoteTimeout";l.noQuoteResponse="noQuoteResponse";l.noPoolAssetsFound="noPoolAssetsFound";l.noThorchainPools="noThorchainPools";l.noMayachainPools="noMayachainPools";l.noThorchainNetworkInfo="noThorchainNetworkInfo";l.invalidAffiliateFee="invalidAffiliateFee";l.invalidBuyAssetAddress="invalidBuyAssetAddress";l.invalidSellAssetAddress="invalidSellAssetAddress";l.invalidSourceAddress="invalidSourceAddress";l.invalidDestinationAddress="invalidDestinationAddress";l.sourceAddressIsSmartContract="sourceAddressIsSmartContract";l.destinationAddressIsSmartContract="destinationAddressIsSmartContract";l.invalidChainId="invalidChainId";l.unsupportedChainId="unsupportedChainId";l.unsupportedEVMChainId="unsupportedEVMChainId";l.unsupportedMethod="unsupportedMethod";l.unsupportedProvider="unsupportedProvider";l.invalidParamsForMethod="invalidParamsForMethod";l.unsupportedAdapter="unsupportedAdapter";l.noWhitelistTokens="noWhitelistTokens";l.failedFetchGasPrice="failedFetchGasPrice";l.failedToCreateDepositChannel="failedToCreateDepositChannel";l.noProviderDetailsFound="noProviderDetailsFound";l.noTokenListsFound="noTokenListsFound";l.tokenNotFound="tokenNotFound";l.tokenPriceNotFound="tokenPriceNotFound";l.tokenPriceFailedToUpdate="tokenPriceFailedToUpdate";l.swapAmountTooSmall="swapAmountTooSmall";l.legsArrayIsEmpty="legsArrayIsEmpty";l.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";l.noBlockHeaderFound="noBlockHeaderFound";l.failedToSimulateSwap="failedToSimulateSwap";l.addressScreeningFailed="addressScreeningFailed";l.noLiquidtyProvidersFound="noLiquidtyProvidersFound";l.insufficientLiquidity="insufficientLiquidity";l.noInboundDataFound="noInbounDataFound";l.noInboundAddressesFound="noInboundAddressesFound";l.noInboundAddressFoundForChain="noInboundAddressFoundForChain";l.noLastBlocksFound="noLastBlocksFound";l.noVersionFound="noVersionFound";l.noConstantsFound="noConstantsFound";l.noMimirsFound="noMimirsFound";l.noRoutesFound="noRoutesFound";l.quoteNotFound="quoteNotFound";l.ledgerSignFailed="ledgerSignFailed";l.ledgerWrongPayload="ledgerWrongPayload";l.ledgerFetchSwapFailed="ledgerFetchSwapFailed";l.failedToFetchTx="failedToFetchTx";l.failedBuildTransactionDetails="failedBuildTransactionDetails";l.noLegsForRoute="noLegsForRoute";l.noRouterAddressFound="noRouterAddressFound";l.noAggregatorAddressFound="noAggregatorAddressFound";l.noContractInstanceFound="noContractInstanceFound";l.noContractAddressFound="noContractAddressFound";l.invalidAffiliate="invalidAffiliate";l.thornameAffiliate="thornameAffiliate";l.providerNotfound="No provider found";l.noRecordFound="No Record found";l.slippageTooLow="Slippage too low";l.tradingHalted="tradingHalted";l.noWrappedGasAsset="noWrappedGasAsset";l.aggregatorAddressNotFound="aggregatorAddressNotFound";l.routerAddressNotFound="routerAddressNotFound";l.dummyAddressNotFound="dummyAddressNotFound";l.trackerError="trackerError";l.thorchainPoolUnavailable="thorchainPoolUnavailable";l.noOhlcvDataFound="noOhlcvDataFound";l.noTradingPairs="noTradingPairs";l.noLendingAvailability="noLendingAvailability";l.lendingRepayTooSmall="lendingRepayTooSmall";l.missingState="missingState";l.ledgerSwapNotFound="ledgerSwapNotFound";l.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";l.errorEstimatingGas="errorEstimatingGas";l.apiKeyInvalid="apiKeyInvalid";l.apiKeyFailedToUpdate="apiKeyFailedToUpdate";l.apiKeyExpired="apiKeyExpired";l.unauthorized="unauthorized";l.failedToCreateMemo="failedToCreateMemo";l.radixIncorrectInstructions="radixIncorrectInstructions";l.radixTxMissedParam="radixTxMissedParam";l.radixTxMissedAccount="radixTxMissedAccount";l.radixManifestParseError="radixManifestParseError";l.radixManifestBuildError="radixManifestBuildError";l.invalidAddressForChain="invalidAddressForChain";l.riskyAddress="riskyAddress";l.noRoutesToProcess="noRoutesToProcess";l.sellAssetAmountTooSmall="sellAssetAmountTooSmall";l.missingPrivateKey="missingPrivateKey";l.noMemoPriceProtection="noMemoPriceProtection"})(ne||={});var Pe;((r)=>{r.highSlippage="highSlippage";r.highPriceImpact="highPriceImpact";r.insufficientBalance="insufficientBalance"})(Pe||={});var P;((w)=>{w.CHAINFLIP="CHAINFLIP";w.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";w.JUPITER="JUPITER";w.MAYACHAIN="MAYACHAIN";w.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";w.ONEINCH="ONEINCH";w.PANCAKESWAP="PANCAKESWAP";w.SUSHISWAP_V2="SUSHISWAP_V2";w.THORCHAIN="THORCHAIN";w.THORCHAIN_STREAMING="THORCHAIN_STREAMING";w.TRADERJOE_V2="TRADERJOE_V2";w.UNISWAP_V2="UNISWAP_V2";w.UNISWAP_V3="UNISWAP_V3";w.NEAR="NEAR";w.GARDEN="GARDEN";w.OKX="OKX";w.HARBOR="HARBOR";w.FLASHNET="FLASHNET";w.MAYAN="MAYAN";w.PACTSWAP="PACTSWAP";w.RELAY="RELAY"})(P||={});var Ee;((_)=>{_.LIQUIDITY="liquidity";_.NETWORK="network";_.INBOUND="inbound";_.OUTBOUND="outbound";_.AFFILIATE="affiliate";_.TAX="tax";_.PRIORITY="priority";_.SERVICE="service"})(Ee||={});var ln;((r)=>{r.Average="average";r.Fast="fast";r.Fastest="fastest"})(ln||={});var cn;((n)=>{n.Approve="approve";n.CheckOnly="checkOnly"})(cn||={});var dn;((T)=>{T.NAME_REGISTER="~";T.BOND="BOND";T.DEPOSIT="+";T.LEAVE="LEAVE";T.UNBOND="UNBOND";T.WITHDRAW="-";T.RUNEPOOL_DEPOSIT="POOL+";T.RUNEPOOL_WITHDRAW="POOL-";T.CLAIM_TCY="tcy";T.STAKE_TCY="tcy+";T.UNSTAKE_TCY="tcy-"})(dn||={});var Qe={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_ctrl_not_installed:10102,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_ctrl_not_found:20301,wallet_ctrl_send_transaction_no_address:20302,wallet_ctrl_contract_address_not_provided:20303,wallet_ctrl_asset_not_defined:20304,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_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_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_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,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 Ne(e){return JSON.stringify(e,(t,n)=>typeof n==="bigint"?n.toString():n)}class b extends Error{static ErrorCode=Qe;errorKey;info;constructor(e,t){let n=typeof e==="string",r=n?e:e.errorKey,i=n?void 0:e.info,a=`${r}${i?`: ${Ne(i)}`:""}`;super(a);if(Object.setPrototypeOf(this,b.prototype),this.name="SwapKitError",this.errorKey=r,this.info=i,this.cause=t,t){let c=t instanceof Error?`${t.message}${t.cause?` (${t.cause})`:""}`:Ne(t);console.error(`SwapKitError [${r}]: ${c}`)}else if(i)console.error(`SwapKitError [${r}]: ${Ne(i)}`)}}function Xs(e){let t=Qe;for(let[n,r]of Object.entries(e)){if(Object.hasOwn(t,n)){if(t[n]===r)continue;throw new b({errorKey:"helpers_invalid_params",info:{code:r,existingCode:t[n],key:n}})}let i=Object.keys(t).find((a)=>t[a]===r);if(i)throw new b({errorKey:"helpers_invalid_params",info:{code:r,existingKey:i,key:n}});t[n]=r}}var ge={BITGET:"BITGET",BRAVE:"BRAVE",COINBASE_MOBILE:"COINBASE_MOBILE",COINBASE_WEB:"COINBASE_WEB",COSMOSTATION:"COSMOSTATION",CTRL:"CTRL",EIP6963:"EIP6963",EXODUS:"EXODUS",KEEPKEY:"KEEPKEY",KEEPKEY_BEX:"KEEPKEY_BEX",KEPLR:"KEPLR",KEYSTORE:"KEYSTORE",LEAP:"LEAP",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"},ke=new Set;function Je(e){return ke.add(e),()=>ke.delete(e)}function Js(e,t){let n=ge;if(Object.hasOwn(n,e)){if(n[e]===t)return;throw new b({errorKey:"helpers_invalid_params",info:{existingValue:n[e],key:e,value:t}})}n[e]=t;for(let r of ke)r(t)}var pn;((r)=>{r[r.NoError=36864]="NoError";r[r.LockedDevice=21781]="LockedDevice";r[r.TC_NotFound=65535]="TC_NotFound"})(pn||={});var hn=et.reduce((e,t)=>(e[t]=un(t).rpcUrls,e),{}),fn={[Ze.THORChain]:mn.nodeUrl,[Ze.Maya]:gn.nodeUrl},tt={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:et,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:hn,thornodeUrls:fn,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(ge),widgetId:"",widgetKey:""},E=_n((e)=>({...tt,setApiKey:(t,n)=>e((r)=>({apiKeys:{...r.apiKeys,[t]:n}})),setConfig:(t)=>e((n)=>({apiKeys:{...n.apiKeys,...t?.apiKeys},chains:n.chains.concat(t?.chains||[]),endpoints:{...n.endpoints,...t?.endpoints},envs:{...n.envs,...t?.envs},feeMultipliers:t?.feeMultipliers||n.feeMultipliers,integrations:{...n.integrations,...t?.integrations},localMode:{...n.localMode,...t?.localMode},rpcUrls:{...n.rpcUrls,...t?.rpcUrls},thornodeUrls:{...n.thornodeUrls,...t?.thornodeUrls},v3SwapFlow:{...n.v3SwapFlow,...t?.v3SwapFlow},wallets:n.wallets.concat(t?.wallets||[]),widgetId:t?.widgetId||n.widgetId,widgetKey:t?.widgetKey||n.widgetKey})),setEndpoint:(t,n)=>e((r)=>({endpoints:{...r.endpoints,[t]:n}})),setEnv:(t,n)=>e((r)=>({envs:{...r.envs,[t]:n}})),setFeeMultipliers:(t)=>e(()=>({feeMultipliers:t})),setIntegrationConfig:(t,n)=>e((r)=>({integrations:{...r.integrations,[t]:n}})),setRequestOptions:(t)=>e((n)=>({requestOptions:{retry:{...n.requestOptions.retry,...t.retry},timeoutMs:t.timeoutMs||n.requestOptions.timeoutMs}})),setRpcUrl:(t,n)=>e((r)=>({rpcUrls:{...r.rpcUrls,[t]:n}})),setThornodeUrl:(t,n)=>e((r)=>({thornodeUrls:{...r.thornodeUrls,[t]:n}})),setWidgetId:(t)=>e({widgetId:t}),setWidgetKey:(t)=>e({widgetKey:t})}));Je((e)=>{E.setState((t)=>t.wallets.includes(e)?t:{wallets:[...t.wallets,e]})});var x={get:(e)=>E.getState()[e],getState:E.getState,reinitialize:()=>E.setState({...tt,wallets:Object.values(ge)}),set:(e)=>E.getState().setConfig(e),setApiKey:(e,t)=>E.getState().setApiKey(e,t),setEndpoint:(e,t)=>E.getState().setEndpoint(e,t),setEnv:(e,t)=>E.getState().setEnv(e,t),setFeeMultipliers:(e)=>E.getState().setFeeMultipliers(e),setIntegrationConfig:(e,t)=>E.getState().setIntegrationConfig(e,t),setRequestOptions:(e)=>E.getState().setRequestOptions(e),setRpcUrl:(e,t)=>E.getState().setRpcUrl(e,t),setThornodeUrl:(e,t)=>E.getState().setThornodeUrl(e,t),setWidgetId:(e)=>E.getState().setWidgetId(e),setWidgetKey:(e)=>E.getState().setWidgetKey(e)};var yn=(e)=>new Promise((t)=>setTimeout(t,e)),bn=(e,{baseDelay:t,backoffMultiplier:n,maxDelay:r})=>Math.min(t*n**e,r);function An(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 Sn=async(e,t)=>{let n=await fetch(e,t),r;try{r=await n.json()}catch{if(!n.ok)throw new b({errorKey:"helpers_invalid_response",info:{status:n.status,statusText:n.statusText}},{status:n.status,statusText:n.statusText});return{}}if(!n.ok){let a={data:r?.data,error:r?.error,message:r?.message,status:n.status};throw new b({errorKey:r?.error||"helpers_invalid_response",info:a},a)}let i=r?.routes?.length||r?.result||r?.data&&!r?.error;if(r?.error&&!i){let a={data:r.data,error:r.error,message:r.message,status:n.status};throw new b({errorKey:r.error,info:a},a)}if(r?.providerErrors?.length||r?.error&&i)console.warn("[SwapKit] Partial errors in response:",r.providerErrors||r.error);return r};function me(e,t={}){return async function(r,i={}){let{searchParams:a,json:c,body:u,headers:_,dynamicHeader:A,retry:y,timeoutMs:T,abortController:O,onError:S,onSuccess:L,...C}={...t,...i},I=x.get("requestOptions"),q={...I.retry,...y},de=!!c||r.endsWith(".json"),pe=wn(r,a),qe=A?await A():{},w=Tn(de,{..._,...qe}),Y=de?JSON.stringify(c):u,Ce;for(let ue=0;ue<=q.maxRetries;ue++){let Ye=O||new AbortController,je=setTimeout(()=>Ye.abort(),T||I.timeoutMs);try{let F=await Sn(pe,{...C,body:Y,headers:w,method:e,signal:Ye.signal});return clearTimeout(je),L?.(F)||F}catch(F){clearTimeout(je),Ce=F;let tn=F?.cause?.status;if(ue>=q.maxRetries||!An(F,tn))return S?S(F):Promise.reject(F);await yn(bn(ue,q))}}return S?S(Ce):Promise.reject(Ce)}}function Tn(e,t){return{...t,...e&&{"Content-Type":"application/json"}}}function wn(e,t){let n=new URL(e);if(t)n.search=new URLSearchParams(t).toString();return n.toString()}var m={extend:(e)=>({extend:(t)=>m.extend({...e,...t}),get:me("GET",e),post:me("POST",e)}),get:me("GET"),post:me("POST")};async function nt(e,t,n,r){let i=`${t}:${n}:${r}`,a=new TextEncoder,c=await crypto.subtle.importKey("raw",a.encode(e),{hash:"SHA-256",name:"HMAC"},!1,["sign"]),u=await crypto.subtle.sign("HMAC",c,a.encode(i));return Array.from(new Uint8Array(u)).map((_)=>_.toString(16).padStart(2,"0")).join("")}import{Chain as f,CosmosChains as ot,EVMChains as at,getChainConfig as lt,SubstrateChains as xn,UTXOChains as ct}from"@swapkit/types";import{match as _e}from"ts-pattern";function mi(e,t){try{return e()}catch(n){if(t)throw new b(t,n);return}}var rt=new Set;function re({condition:e,id:t,warning:n}){if(e){if(rt.has(t))return;console.warn(n),rt.add(t)}}function Rn(e){return _e(e).with(...at,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...ct,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...ot,()=>({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:"getAddressInformation",params:{address:""}})).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 st(e){return _e(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(()=>"")}async function it(e,t){try{let n=t.startsWith("wss")?t.replace("wss","https"):t;if(e===f.Aleo||e===f.Stellar)return(await fetch(`${n}${st(e)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)})).ok;return(await fetch(`${n}${st(e)}`,{body:JSON.stringify(Rn(e)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)})).ok}catch{return!1}}var Oe=new Map,vn=120000;function In(e){let[t=""]=x.get("rpcUrls")[e];if(!t)throw re({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 n=Oe.get(e);if(n&&Date.now()-n.timestamp<vn)return n.url;return Oe.set(e,{timestamp:Date.now(),url:t}),t}async function j(e){let t=In(e),[,...n]=x.get("rpcUrls")[e];if(await it(e,t))return t;for(let i of n)if(await it(e,i))return Oe.set(e,{timestamp:Date.now(),url:i}),i;throw new b("helpers_chain_rpc_connection_failed",{chain:e,fallbackUrls:n,primaryRpcUrl:t})}function Si({chain:e,txHash:t}){let{explorerUrl:n}=lt(e);return _e(e).with(...ot,f.Solana,()=>`${n}/tx/${t.startsWith("0x")?t.slice(2):t}`).with(...at,...xn,()=>`${n}/tx/${t.startsWith("0x")?t:`0x${t}`}`).with(...ct,f.Radix,f.Tron,()=>`${n}/transaction/${t.toLowerCase()}`).with(f.Near,()=>`${n}/txns/${t}`).with(f.Ripple,()=>`${n}/transactions/${t}`).with(f.Stellar,()=>`${n}/explorer/public/tx/${t}`).with(f.Sui,()=>`${n}/txblock/${t}`).with(f.Cardano,f.Hype,f.Spark,f.Ton,()=>`${n}/tx/${t}`).otherwise(()=>"")}function Ti({chain:e,address:t}){let{explorerUrl:n}=lt(e);return _e(e).with(f.Solana,f.Sui,f.Radix,()=>`${n}/account/${t}`).with(f.Stellar,()=>`${n}/explorer/public/account/${t}`).otherwise(()=>`${n}/address/${t}`)}function wi(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 Cn}from"@noble/hashes/sha3.js";import{bytesToHex as Pn}from"@noble/hashes/utils.js";var dt=/^(0x)?[0-9a-fA-F]{40}$/;function he(e){if(typeof e!=="string"||!dt.test(e))throw Error(`invalid address: ${e}`);let t=e.toLowerCase().replace(/^0x/,""),n=Pn(Cn(new TextEncoder().encode(t))),r=[...t].map((a,c)=>Number.parseInt(n[c]??"0",16)>=8?a.toUpperCase():a).join(""),i=e.replace(/^0x/,"");if(/[A-F]/.test(i)&&/[a-f]/.test(i)&&i!==r)throw Error(`bad address checksum: ${e}`);return`0x${r}`}function pt(e){if(typeof e!=="string"||!dt.test(e))return!1;try{return he(e),!0}catch{return!1}}var Di=[`${d.Maya}.MAYA`,`${d.Maya}.CACAO`,`${d.Ethereum}.THOR`,`${d.Ethereum}.vTHOR`,`${d.Kujira}.USK`,`${d.Ethereum}.FLIP`,`${d.Radix}.XRD`],mt=[d.Arbitrum,d.Aurora,d.Base,d.Ethereum,d.Optimism,d.Robinhood];async function kn(e){let{baseDecimal:t}=K(d.Radix);try{let n=await j(d.Radix),{manager:r}=await m.post(`${n}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:e}),headers:{Accept:"*/*","Content-Type":"application/json"}});return r?.divisibility?.value?.divisibility}catch(n){let r=n instanceof Error?n.message:String(n);return console.warn(`Failed to fetch Radix asset decimals for ${e}: ${r}`),t}}async function On(e){try{let t=await j(d.Radix);return(await m.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((i)=>i.key==="symbol")?.value.typed.value||void 0}catch(t){let n=t instanceof Error?t.message:String(t);return console.warn(`Failed to fetch Radix asset symbol for ${e}: ${n}`),""}}async function _t({chain:e,address:t,methodHex:n,id:r}){let i=await j(e);return m.post(i,{body:JSON.stringify({id:r,jsonrpc:"2.0",method:"eth_call",params:[{data:n,to:t.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}function Dn(e){if(!e||e==="0x")return"UNKNOWN";try{return ht(e.replace(/^0x/,""))?.trim()||"UNKNOWN"}catch(t){return console.warn(`Failed to decode ABI string from ${e}: ${t}`),"UNKNOWN"}}function Ln(e,t){if(!e||e==="0x")return t;try{return Number(e)}catch(n){return console.warn(`Failed to decode ABI uint8 from ${e}: ${n}`),t}}async function Mn({chain:e,address:t}){let{baseDecimal:n}=K(e),r=t.toLowerCase();if(t===""||!r.startsWith("0x"))return n;let i=await _t({address:t,chain:e,id:2,methodHex:"0x313ce567"}).catch((c)=>(console.warn(`Could not fetch decimals for ${t} on ${e}: ${c.message}`),{result:""}));return Ln(i.result,n)}async function Vn({chain:e,address:t}){let n=t.toLowerCase();if(n===""||!n.startsWith("0x"))return;let r=await _t({address:t,chain:e,id:1,methodHex:"0x95d89b41"}).catch((a)=>(console.warn(`Could not fetch symbol for ${t} on ${e}: ${a.message}`),{result:""}));return Dn(r.result)}async function ut({rpcUrl:e,contractAddress:t,functionSelector:n}){return(await m.post(`${e}/wallet/triggerconstantcontract`,{body:JSON.stringify({contract_address:t,function_selector:n,owner_address:t,parameter:"",visible:!0}),headers:{accept:"application/json","content-type":"application/json"}}).catch(()=>{return}))?.constant_result?.[0]}function gt(e){let t=e.match(/.{2}/g)?.map((n)=>Number.parseInt(n,16))??[];return new TextDecoder().decode(new Uint8Array(t))}function ht(e){return se(e).with(void 0,()=>{return}).when((t)=>t.length>=128,(t)=>{let n=Number.parseInt(t.slice(64,128),16),r=t.slice(128,128+n*2).replace(/(00)+$/,"");return r?gt(r):void 0}).when((t)=>t.length===64,(t)=>{let n=t.replace(/(00)+$/,"");if(n.length>0&&n.length%2===0)return gt(n);return}).otherwise(()=>{return})}function ft({chain:e,address:t}){let{baseDecimal:n}=K(e),r={decimals:n,ticker:void 0};return se(e).with(...En,async()=>{try{if(!pt(t.replace(/^0X/,"0x")))return r;let[i,a]=await Promise.all([Vn({address:t,chain:e}),Mn({address:t,chain:e})]);return{decimals:a,ticker:i}}catch(i){return console.warn(`Failed to fetch token info for ${t} on ${e}: ${i?.code} ${i?.message}`),r}}).with(d.Solana,async()=>{if(!t)return r;try{let i=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${t}`);if(i.ok){let a=await i.json(),c=Array.isArray(a)?a[0]:a;if(c)return{decimals:c.decimals??n,ticker:c.symbol||void 0}}}catch(i){console.warn(`Failed to fetch Solana token info for ${t}: ${i?.code} ${i?.message}`)}return r}).with(d.Tron,async()=>{if(!t)return r;try{let i=await j(d.Tron),[a,c]=await Promise.all([ut({contractAddress:t,functionSelector:"symbol()",rpcUrl:i}),ut({contractAddress:t,functionSelector:"decimals()",rpcUrl:i})]),u=ht(a);return{decimals:a!==void 0&&c?Number(BigInt(`0x${c}`)):n,ticker:u}}catch(i){let a=i instanceof Error?i.message:String(i);return console.warn(`Failed to fetch Tron token info for ${t}: ${a}`),r}}).with(d.Near,async()=>{if(!t)return r;try{let i=await j(d.Near),a=await m.post(i,{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 c=JSON.parse(new TextDecoder().decode(new Uint8Array(a.result.result)));return{decimals:c?.decimals||n,ticker:c?.symbol}}catch(i){let a=i instanceof Error?i.message:String(i);return console.warn(`Failed to fetch Near token info for ${t}: ${a}`),r}}).with(d.Radix,async()=>{if(!t)return r;try{let[i,a]=await Promise.all([On(t),kn(t)]);return{decimals:a,ticker:i}}catch(i){let a=i instanceof Error?i.message:String(i);return console.warn(`Failed to fetch Radix token info for ${t}: ${a}`),r}}).otherwise(async()=>r)}function yt({chain:e,symbol:t}){return se(e).with(...mt,()=>t==="ETH").with(d.Arc,()=>t==="USDC").with(d.Avalanche,()=>t==="AVAX").with(d.Berachain,()=>t==="BERA").with(d.Hyperevm,()=>t==="HYPE").with(d.Hype,()=>t==="HYPE").with(d.Spark,()=>t==="BTC").with(d.BinanceSmartChain,()=>t==="BNB").with(d.Gnosis,()=>t==="xDAI"||t==="XDAI").with(d.Monad,()=>t==="MON").with(d.XLayer,()=>t==="OKB").with(d.Maya,()=>t==="CACAO").with(d.Cosmos,()=>t==="ATOM").with(d.THORChain,()=>t==="RUNE").with(d.Tron,()=>t==="TRX").with(d.Ripple,()=>t==="XRP").with(d.Ton,()=>t==="GRAM"||t==="TON").with(d.Radix,()=>`${e}.${t}`===fe(e).identifier).otherwise(()=>t===e)}var fe=(e)=>{let{baseDecimal:t}=K(e);return se(e.toUpperCase()).with(...mt,(r)=>({decimal:t,identifier:`${r}.ETH`})).with(d.Arc,(r)=>({decimal:t,identifier:`${r}.USDC`})).with(d.THORChain,(r)=>({decimal:t,identifier:`${r}.RUNE`})).with(d.Cosmos,(r)=>({decimal:t,identifier:`${r}.ATOM`})).with(d.Maya,(r)=>({decimal:10,identifier:`${r}.CACAO`})).with(d.BinanceSmartChain,(r)=>({decimal:t,identifier:`${r}.BNB`})).with(d.Monad,(r)=>({decimal:t,identifier:`${r}.MON`})).with(d.Avalanche,(r)=>({decimal:t,identifier:`${r}.AVAX`})).with(d.Gnosis,(r)=>({decimal:t,identifier:`${r}.xDAI`})).with(d.XLayer,(r)=>({decimal:t,identifier:`${r}.OKB`})).with(d.Berachain,(r)=>({decimal:t,identifier:`${r}.BERA`})).with(d.Hyperevm,(r)=>({decimal:t,identifier:`${r}.HYPE`})).with(d.Hype,(r)=>({decimal:t,identifier:`${r}.HYPE`})).with(d.Spark,(r)=>({decimal:t,identifier:`${r}.BTC`})).with(d.Tron,(r)=>({decimal:t,identifier:`${r}.TRX`})).with(d.Ton,(r)=>({decimal:t,identifier:`${r}.GRAM`})).with(d.Solana,d.Chainflip,d.Kujira,d.Ripple,d.Polkadot,d.Near,...Nn,(r)=>({decimal:t,identifier:`${r}.${r}`})).with(d.Radix,"XRD.XRD",()=>({decimal:t,identifier:"XRD.XRD"})).with(d.Polygon,"POL.POL",()=>({decimal:t,identifier:"POL.POL"})).with("KUJI.USK",(r)=>({decimal:6,identifier:r})).with("ETH.FLIP",()=>({decimal:K(d.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:K(d.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:K(d.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(r)=>({decimal:10,identifier:r})).with("MAYA.MAYA",(r)=>({decimal:4,identifier:r})).otherwise(()=>({decimal:t,identifier:e}))};function De({chain:e,symbol:t}){if(t.includes("/"))return"Synth";if(t.includes("~"))return"Trade";return se(e).with(d.Radix,()=>t===d.Radix||`${e}.${t}`===fe(e).identifier).with(d.Arbitrum,d.Optimism,d.Base,d.Aurora,d.Robinhood,()=>t===d.Ethereum).with(d.Arc,()=>t==="USDC").with(d.Cosmos,()=>t==="ATOM").with(d.BinanceSmartChain,()=>t==="BNB").with(d.Maya,()=>t==="CACAO").with(d.Monad,()=>t==="MON").with(d.THORChain,()=>t==="RUNE").with(d.Tron,()=>t==="TRX").with(d.Hyperevm,()=>t==="HYPE").with(d.Hype,()=>t==="HYPE").with(d.Spark,()=>t==="BTC").with(d.XLayer,()=>t==="OKB").with(d.Ton,()=>t==="GRAM"||t==="TON").otherwise(()=>t===e)?"Native":e}var W=(e)=>{let[t,...n]=e.split("."),r=e.includes("/"),i=n.join("."),a=i?.split("-"),c=a?.length?a.length===1?a[0]:a.slice(0,-1).join("-"):void 0;return{chain:t,symbol:i,synth:r,ticker:c}};function ie(e,t){let r=t===d.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 Li(e){return`https://tokens.swapkit.dev/images/${e.toLowerCase()}.png`}async function Mi(e){let{loadTokenLists:t}=await import("./tokens.js"),n=await t(void 0,{source:x.get("envs").isDev?"dev":"prod"}),r=Object.values(n).flatMap((a)=>a.tokens);if("identifier"in e)return r.find((a)=>a.identifier===e.identifier)?.identifier;let i=e.contract.toLowerCase();for(let a of r){let{chain:c,symbol:u}=W(a.identifier);if(c!==e.chain)continue;let{address:_}=ie(u,c);if(_?.toLowerCase()===i)return a.identifier}return}import{match as ye}from"ts-pattern";var G=8,Hn=10,Un=64;function X({value:e,bigIntDecimal:t=G,decimal:n=G}){if(n===0)return e.toString();let r=Math.min(t,n),i=r<n?bt(e,U(n-r)):e,a=i<0n,c=(a?-i:i).toString().padStart(r+1,"0"),u=c.length-r;return`${a?"-":""}${c.slice(0,u)}.${c.slice(u)}`.replace(/\.?0*$/,"")}class B{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(e,t){return new B({decimal:t,value:X({bigIntDecimal:t,decimal:t,value:e})})}static shiftDecimals({value:e,from:t,to:n}){return B.fromBigInt(e.getBaseValue("bigint")*U(n)/U(t),n)}constructor(e){this.decimal=typeof e==="object"?e.decimal:void 0;let t=be(typeof e==="object"&&"value"in e?e.value:e),n=typeof e==="object"&&"decimalMultiplier"in e?e.decimalMultiplier:U(this.decimal??0);this.decimalMultiplier=n!==void 0&&n>t.decimalMultiplier?n: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 B(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 n=Ae(this.decimalMultiplier),r=t!==void 0?t:this.decimal,i=r!==void 0?r:n;if(r!==void 0&&r<n){if(this.formatBigIntToSafeValue(this.bigIntValue,r)==="0"&&this.bigIntValue!==0n)i=n}let a=this.formatBigIntToSafeValue(this.bigIntValue,i);return ye(e).with("number",()=>Number(a)).with("string",()=>a).with("bigint",()=>this.bigIntValue*U(this.decimal??G)/this.decimalMultiplier).otherwise(()=>a)}getBaseValue(e,t){let n=U(t??this.decimal??G),r=bt(this.bigIntValue*n,this.decimalMultiplier);return ye(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 n=be(e),r=t===void 0?this.decimalMultiplier:U(t);return n.bigIntValue*r/n.decimalMultiplier}toSignificant(e=6){let t=this.getValue("string"),n=t.startsWith("-"),r=n?t.slice(1):t,[i="",a=""]=r.split("."),c=Number.parseInt(i,10)>0;if((c?i.length+a.length:a.length)<=e)return H(n,r);if(i.length>=e)return H(n,i.slice(0,e).padEnd(i.length,"0"));if(c)return H(n,`${i}.${a.slice(0,e-i.length)}`);let _=a.replace(/^0+/,"")||"0",A=_.slice(0,e),y=a.length-_.length;return H(n,`0.${A.padStart(y+A.length,"0")}`)}toFixed(e=6){let t=this.getValue("string"),n=t.startsWith("-"),[r="0",i=""]=(n?t.slice(1):t).split(".");if(e===0){if(r==="0"&&!i)return"0";let y=i&&Number.parseInt(i[0]||"0",10)>=5?`${BigInt(r)+1n}.0`:`${r}.0`;return H(n,y)}if(!i)return H(n,`${r}.${"0".repeat(e)}`);let a=i[e];if(!(a&&Number.parseInt(a,10)>=5))return H(n,`${r}.${i.slice(0,e).padEnd(e,"0")}`);let u=BigInt(i.slice(0,e).padEnd(e,"0"))+1n,_=10n**BigInt(e);if(u>=_)return H(n,`${BigInt(r)+1n}.${"0".repeat(e)}`);return H(n,`${r}.${u.toString().padStart(e,"0")}`)}toAbbreviation(e=2){let t=this.getValue("string"),n=Number(t),r=["","K","M","B","T","Q","Qi","S"],i=Math.floor(Math.log10(Math.abs(n))/3);if(i===0||!r[i])return t;return`${(n/10**(i*3)).toFixed(e)}${r[i]}`}toCurrency(e="$",{currencyPosition:t="start",decimal:n=2,decimalSeparator:r=".",thousandSeparator:i=",",trimTrailingZeros:a=!0}={}){let c=this.toFixed(n),u=t==="end",[_="0",A=""]=c.split("."),y=_.replace(/\B(?=(\d{3})+(?!\d))/g,i),T=A&&Number.parseInt(A,10)>0,O=T?`${y}${r}${A}`:y,L=O.length<100&&a&&T?O.replace(/\.?0*$/,""):O;return u?`${L}${e}`:`${e}${L}`}formatBigIntToSafeValue(e,t){return X({bigIntDecimal:t||this.decimal||G,decimal:Ae(this.decimalMultiplier),value:e})}#t(e,...t){let n=t.map(be),r=Math.max(G,Ae(this.decimalMultiplier),...n.map(({decimalMultiplier:A})=>Ae(A))),i=Math.min(r+Hn,Un),a=U(i),c=n.reduce((A,y)=>{let T=A.decimalMultiplier*y.decimalMultiplier,O=ye(e).with("add",()=>A.bigIntValue*y.decimalMultiplier+y.bigIntValue*A.decimalMultiplier).with("sub",()=>A.bigIntValue*y.decimalMultiplier-y.bigIntValue*A.decimalMultiplier).with("mul",()=>A.bigIntValue*y.bigIntValue).with("div",()=>{if(y.bigIntValue===0n)throw RangeError("Division by zero");return A.bigIntValue*y.decimalMultiplier}).exhaustive(),S=e==="div"?A.decimalMultiplier*y.bigIntValue:T;return{bigIntValue:O*a/S,decimalMultiplier:a}},this),u=this.decimal===void 0?void 0:Math.min(this.decimal,i),_=c.decimalMultiplier===a?c:{bigIntValue:c.bigIntValue*a/c.decimalMultiplier,decimalMultiplier:a};return this.#n({decimal:u,value:_})}#e(e,t){let n=be(t),r=this.bigIntValue*n.decimalMultiplier,i=n.bigIntValue*this.decimalMultiplier;return ye(e).with("gt",()=>r>i).with("gte",()=>r>=i).with("lt",()=>r<i).with("lte",()=>r<=i).with("eqValue",()=>r===i).exhaustive()}}var $n=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function Bn(e){let n=`${typeof e==="number"?$n.format(e):e}`.replaceAll(",",".").split(".");return n.length>1?`${n.slice(0,-1).join("")}.${n.at(-1)}`:n[0]||"0"}function Fn(e){let t=e.split(".")[1]?.length||0;return Math.max(t,G)}function be(e){if(typeof e==="object")return e;let t=e==="undefined"?"0":Bn(e),n=Fn(t),[r="",i=""]=t.split(".");return{bigIntValue:BigInt(`${r}${i.padEnd(n,"0")}`),decimalMultiplier:U(n)}}function H(e,t){return e&&!/^0(?:\.0*)?$/.test(t)?`-${t}`:t}function bt(e,t){if(t===0n)throw Error("Cannot divide by zero");let n=t/2n;return e>=0n&&t>=0n||e<0n&&t<0n?(e+n)/t:(e-n)/t}function U(e){return 10n**BigInt(e)}function Ae(e){return e.toString().length-1}function Gn(e=""){let t=e.toUpperCase(),n=x.get("chains"),[r]=t.split(".");if(n.includes(r))return!0;let[i]=t.split("/");if(n.includes(i))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 J=[v.Hype,v.Near,v.Ripple,v.Solana,v.Stellar,v.Sui,v.Ton,v.Tron],He=[v.THORChain,v.Maya];function Se(e,t){return J.includes(e)?t:t.toUpperCase()}var z=new Map,Te=new Map,Q=new Map,qn=3600000;function Yn(e){let t=Q.get(e);if(t?.timestamp&&Date.now()-t.timestamp>qn){Q.delete(e);return}return t}function jn(e,t){if(Q.size>1000){let n=Q.keys().next().value;if(n)Q.delete(n)}Q.set(e,{...t,timestamp:Date.now()})}class D extends B{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:e,decimal:t,tax:n,chain:r,symbol:i,identifier:a}){super({decimal:t,value:e});let c=At(a||`${r}.${i}`);this.type=De(c),this.tax=n,this.chain=c.chain,this.ticker=c.ticker,this.symbol=c.symbol,this.address=c.address,this.isSynthetic=c.isSynthetic,this.isTradeAsset=c.isTradeAsset,this.isGasAsset=c.isGasAsset,this.chainId=oe(c.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 z.get(Se(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 n=e.indexOf(".");if(n===-1)throw new b({errorKey:"helpers_invalid_asset_url",info:{urlAsset:e}});let r=e.slice(0,n),i=e.slice(n+1),a=Ve({chain:r,rest:i}).when(({rest:c})=>c.includes(".."),({chain:c,rest:u})=>`${c}.${u.replace(/\.\./g,"~")}`).when(({chain:c,rest:u})=>He.includes(c)&&u.includes("."),({chain:c,rest:u})=>`${c}.${u.replace(/\./g,"/")}`).otherwise(({chain:c,rest:u})=>`${c}.${u.replace(/__/g,".")}`);return D.from({asset:a,value:t})}static from({value:e=0,fromBaseDecimal:t,asyncTokenLookup:n,...r}){let i="address"in r&&"chain"in r,a=Jn(r);if(a===null&&n&&i){let{chain:w,address:Y}=r;return zn({address:Y,chain:w,fromBaseDecimal:t,parsedValue:e})}let c=i&&!a?`${r.chain}.UNKNOWN-${r.address}`:a,{identifier:u,decimal:_}=fe(c),{chain:A,isSynthetic:y,isTradeAsset:T,address:O}=At(u),{baseDecimal:S}=oe(A),L=z.get(Se(A,u));if(!L&&n&&!y&&!T)return(async()=>{let{ticker:w}=W(u),Y=await St({address:O,chain:A,ticker:w});return Le({decimal:Y.decimals,identifier:Y.identifier,value:t?Me(e,t):e})})();let C=L?.decimal||_;re({condition:!C&&!n,id:`assetValue_static_decimal_not_found_${A}`,warning:`Couldn't find static decimal for one or more tokens on ${A} (Using default ${S} 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:de}=L||{decimal:C||S,identifier:u},pe=t?Me(e,t):we(e,I);return y||T?Xn(q,pe):Le({decimal:I,identifier:q,tax:de,value:pe})}static async loadStaticAssets(e){let{loadTokenLists:t}=await import("@swapkit/tokens"),n=await t(e,{source:x.get("envs").isDev?"dev":"prod"});for(let{tokens:r}of Object.values(n))for(let i of r){let{identifier:a}=i,{chain:c,symbol:u}=W(a),{address:_}=ie(u,c),{baseDecimal:A}=oe(c),y=Se(c,a),T="decimals"in i&&i.decimals!==void 0?i.decimals:A,O="logoURI"in i&&i.logoURI?i.logoURI:`https://tokens.swapkit.dev/images/${a.toLowerCase()}.png`,S={decimal:T,identifier:a,logoURI:O,tax:"tax"in i?i.tax:void 0};if(z.set(y,S),_){let L=J.includes(c)?`${c}:${_}`:`${c}:${_.toUpperCase()}`;Te.set(L,a)}}return!0}static setStaticAssets(e){z.clear(),Te.clear();for(let[t,n]of e.entries()){let{identifier:r}=n,{chain:i,symbol:a}=W(r),{address:c}=ie(a,i),{baseDecimal:u}=oe(i),_=n.chain??i,A=n.address??c,y=Se(_,r),T=n.decimals??n.decimal??u,O=n.logoURI??`https://tokens.swapkit.dev/images/${r.toLowerCase()}.png`,S={decimal:T,identifier:y,logoURI:O,tax:n.tax};if(z.set(y,S),A){let L=J.includes(_)?`${_}:${A}`:`${_}:${A.toUpperCase()}`;Te.set(L,r)}}return!0}static get staticAssets(){return z}}function ji(e){let t=D.from({chain:e});return Ve(e).with(v.Bitcoin,v.Litecoin,v.BitcoinCash,v.Dash,()=>t.set(0.00010001)).with(v.Dogecoin,()=>t.set(1.00000001)).with(v.Avalanche,v.Ethereum,v.Arbitrum,v.BinanceSmartChain,()=>t.set(0.00000001)).with(v.THORChain,v.Maya,()=>t.set(0)).with(v.Cosmos,v.Kujira,()=>t.set(0.000001)).otherwise(()=>t.set(0.00000001))}async function St({chain:e,address:t,ticker:n}){let i=J.includes(e)?`${e}:${t||n}`:`${e}:${t||n}`.toUpperCase(),a=Yn(i);if(a)return a;if(!t){let{baseDecimal:_}=oe(e);return{decimals:_,identifier:`${e}.${n||"UNKNOWN"}`}}let c=await ft({address:t,chain:e}),u=`${e}.${c.ticker||n||"UNKNOWN"}-${t}`;return re({condition:!!(!c.ticker&&n),id:`async_token_lookup_failed_${e}_${t}`,warning:`Could not fetch token metadata for ${e}:${t} from chain. Using user-provided ticker (${n}) with baseDecimal (${c.decimals}).`}),c.ticker&&jn(i,{decimals:c.decimals,identifier:u}),{decimals:c.decimals,identifier:u}}function Le({identifier:e,decimal:t,value:n,tax:r}){return Gn(e),new D({decimal:t,identifier:e,tax:r,value:we(n,t)})}function Xn(e,t=0){let n=e.includes(".")?e.split(".")?.[0]?.toUpperCase():void 0,r=n?He.includes(n):!1,i=e.slice(0,14).includes("~")?"~":"/",[a,c]=r?e.split(".").slice(1).join().split(i):e.split(i);if(!(a&&c))throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});return new D({decimal:8,identifier:`${n||v.THORChain}.${a}${i}${c}`,value:we(t,8)})}async function zn({address:e,chain:t,fromBaseDecimal:n,parsedValue:r}){let{decimals:i,identifier:a}=await St({address:e,chain:t}),c=n?Me(r,n):r;return Le({decimal:i,identifier:a,value:c})}function Me(e,t){let n=e instanceof B?e.getValue("string"):e;return we(BigInt(n),t)}function we(e,t){return typeof e==="bigint"?X({bigIntDecimal:t,decimal:t,value:e}):e}function Qn(e){let t=Ve(e).when((n)=>("chain"in n)&&n.chain!==void 0,({chain:n})=>n).otherwise((n)=>{let r=W(n.asset);return r.synth?v.THORChain:r.chain});if(!Kn.includes(t.toUpperCase())){let n="asset"in e?e.asset:t;throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n,message:`Unsupported chain "${t}" - use the AssetValue constructor directly`}})}}function Jn(e){if(Qn(e),"chain"in e){let{chain:i,address:a}=e;if(a){let c=J.includes(i)?`${i}:${a}`:`${i}:${a.toUpperCase()}`,u=Te.get(c);if(u)return u;return null}return i}let{chain:t,symbol:n}=W(e.asset);return De({chain:t,symbol:n})==="Native"?t:e.asset}function Zn(e,t,n){let r=e.split("."),i=r[0]?.toUpperCase(),a=He.includes(i),c=n?"~":"/",[u,_=""]=a?r.slice(1).join(".").split(c):e.split(c);if(!(u&&_))throw new b({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});let{ticker:A,address:y}=Tt({chain:u,symbol:_}),T=`${u}${c}${_}`;return{address:y,chain:i,isGasAsset:!1,isSynthetic:t,isTradeAsset:n,symbol:T,ticker:A}}function er(e){let t=e.indexOf("."),n=(t===-1?e:e.slice(0,t)).toUpperCase(),r=t===-1?e:e.slice(t+1),{address:i,ticker:a}=Tt({chain:n,symbol:r}),c;try{c=i&&Wn.includes(n)&&he(i)?he(i):i}catch{c=i}let u=c?`${a}-${c}`:r;return{address:c,chain:n,isGasAsset:yt({chain:n,symbol:r}),isSynthetic:!1,isTradeAsset:!1,symbol:u,ticker:a}}function At(e){let t=e.slice(0,14),n=t.includes("/"),r=t.includes("~");if(n||r)return Zn(e,n,r);return er(e)}function Tt({symbol:e,chain:t}){let{ticker:n,address:r}=ie(e,t);return{address:r&&!J.includes(t)?r.toLowerCase():r,ticker:n}}class xe extends B{eq(e){return this.eqValue(e)}static fromBigInt(e,t){return new xe({decimal:t,value:X({bigIntDecimal:t,decimal:t,value:e})})}}function wt(e=!0){return e?"https://gateway.liquify.com/chain/thorchain_midgard":"https://midgard.mayachain.info"}function nr(e=!0){let t=wt(e);return e?`${t}/v2/thorname`:`${t}/v2/mayaname`}function rr(e){return function(n){let r=n?`?status=${n}`:"";return m.get(`${e}/v2/pools${r}`)}}function sr(e){return function(n){return m.get(`${e}/v2/pool/${n}`)}}function ir(e){return function(n,r){let i=r?`?period=${r}`:"";return m.get(`${e}/v2/pool/${n}/stats${i}`)}}function or(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let a=i.toString()?`?${i.toString()}`:"";return m.get(`${e}/v2/history/depths/${n}${a}`)}}function ar(e){return function(){return m.get(`${e}/v2/network`)}}function lr(e){return function(){return m.get(`${e}/v2/health`)}}function cr(e){return function(){return m.get(`${e}/v2/nodes`)}}function dr(e){return function(n){return m.get(`${e}/v2/node/${n}`)}}function pr(e){return function(){return m.get(`${e}/v2/mimir/votes`)}}function ur(e){return function(){return m.get(`${e}/v2/mimir`)}}function gr(e){return function(){return m.get(`${e}/v2/constants`)}}function mr(e){return function(){return m.get(`${e}/v2/stats`)}}function _r(e){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let i=r.toString()?`?${r.toString()}`:"";return m.get(`${e}/v2/history/earnings${i}`)}}function hr(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let a=i.toString()?`?${i.toString()}`:"",c=n?`/swaps/${n}`:"/swaps";return m.get(`${e}/v2/history${c}${a}`)}}function fr(e){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let i=r.toString()?`?${r.toString()}`:"";return m.get(`${e}/v2/history/tvl${i}`)}}function yr(e){if(!e)return"";let t=new URLSearchParams,n=(r,i)=>{if(i!==void 0)t.append(r,typeof i==="number"?i.toString():i)};return n("address",e.address),n("txid",e.txid),n("asset",e.asset),n("type",e.type),n("affiliate",e.affiliate),n("limit",e.limit),n("offset",e.offset),t.toString()?`?${t.toString()}`:""}function br(e){return function(n){let r=yr(n);return m.get(`${e}/v2/actions${r}`)}}function Ar(e){return function(n){return m.get(`${e}/v2/member/${n}`)}}function Sr(e){return function(n){let r=n?`/${n}`:"";return m.get(`${e}/v2/members${r}`)}}function Tr(e){return function(n,r){let i=r?`&asset=${r}`:"";return m.get(`${e}/v2/saver/${n}${i?`?${i.substring(1)}`:""}`)}}function wr(e){return function(n){return m.get(`${e}/v2/savers/${n}`)}}function xr(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let a=i.toString()?`?${i.toString()}`:"",c=n?`/savers/${n}`:"/savers";return m.get(`${e}/v2/history${c}${a}`)}}function Rr(e){return function(n){return m.get(`${e}/v2/balance/${n}`)}}function vr(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return;throw i};return await m.get(`${e}/lookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function Ir(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return[];throw i};return await m.get(`${e}/rlookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function Cr(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return[];throw i};return await m.get(`${e}/owner/${n}`,{onError:r,retry:{maxRetries:1}})}}function Z({asset:e,value:t}){return D.from({asset:e,fromBaseDecimal:tr(Re.THORChain).baseDecimal,value:t})}function Pr({liquidityPositionGetter:e,isThorchain:t}){return async function(r){let i=await e(r),a=t?"rune":"cacao";return i.pools.map((c)=>({[`${a}Pending`]:Z({asset:"THOR.RUNE",value:c.runePending}),[`${a}RegisteredAddress`]:c.runeAddress,[`${a}Withdrawn`]:Z({asset:"THOR.RUNE",value:c.runeWithdrawn}),[a]:Z({asset:"THOR.RUNE",value:c.runeAdded}),asset:Z({asset:c.pool,value:c.assetAdded}),assetPending:Z({asset:c.pool,value:c.assetPending}),assetRegisteredAddress:c.assetAddress,assetWithdrawn:Z({asset:c.pool,value:c.assetWithdrawn}),dateFirstAdded:c.dateFirstAdded,dateLastAdded:c.dateLastAdded,poolShare:new xe(c.liquidityUnits).div(c.pool)}))}}function xt(e){let t=e===Re.THORChain,n=wt(t),r=nr(t),i=Ar(n);return{getActions:br(n),getBalance:Rr(n),getConstants:gr(n),getEarningsHistory:_r(n),getHealth:lr(n),getLiquidityPosition:Pr({isThorchain:t,liquidityPositionGetter:i}),getLiquidityPositionRaw:i,getMembers:Sr(n),getMimir:ur(n),getMimirVotes:pr(n),getNameDetails:vr(r),getNamesByAddress:Ir(r),getNamesByOwner:Cr(r),getNetworkInfo:ar(n),getNode:dr(n),getNodes:cr(n),getPool:sr(n),getPoolDepthHistory:or(n),getPoolStats:ir(n),getPools:rr(n),getSaverDetails:Tr(n),getSavers:wr(n),getSaversHistory:xr(n),getStats:mr(n),getSwapHistory:hr(n),getTVLHistory:fr(n)}}var Rt=xt(Re.THORChain),vt=xt(Re.Maya);var We={};Xe(We,{SKRequestClient:()=>k,getChainBalance:()=>hs,getChainflipDepositChannel:()=>ws,getGasRate:()=>Ts,getNearDepositChannel:()=>xs,getPrice:()=>Ss,getRouteWithTx:()=>_s,getSwapQuote:()=>ms,getSwapTo:()=>Ps,getTokenApproval:()=>fs,getTokenList:()=>bs,getTokenListProviders:()=>ys,getTrackerDetails:()=>gs,searchTokens:()=>As});import{EVMChains as Ke}from"@swapkit/types";import{match as us,P as ce}from"ts-pattern";import{Chain as ve,ChainId as ae}from"@swapkit/types";import{array as R,boolean as V,coerce as Et,number as h,object as g,optional as p,string as o,union as Ue,unknown as $e,z as s}from"zod";var Nt;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(Nt||={});var Ie;((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"})(Ie||={});var kt;((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"})(kt||={});var Ot;((S)=>{S.swap="swap";S.aggregation="aggregation";S.addLiquidity="addLiquidity";S.withdrawLiquidity="withdrawLiquidity";S.addSavers="addSavers";S.withdrawSavers="withdrawSavers";S.borrow="borrow";S.repay="repay";S.name="name";S.donate="donate";S.claim="claim";S.stake="stake";S.unstake="unstake"})(Ot||={});var Dt;((u)=>{u.unknown="unknown";u.not_started="not_started";u.pending="pending";u.swapping="swapping";u.completed="completed";u.refunded="refunded";u.failed="failed"})(Dt||={});var Lt;((C)=>{C.not_started="not_started";C.starting="starting";C.broadcasted="broadcasted";C.mempool="mempool";C.inbound="inbound";C.outbound="outbound";C.swapping="swapping";C.completed="completed";C.refunded="refunded";C.partially_refunded="partially_refunded";C.dropped="dropped";C.reverted="reverted";C.replaced="replaced";C.retries_exceeded="retries_exceeded";C.parsing_error="parsing_error"})(Lt||={});var oo=g({address:p(o()),chain:s.enum(ve).optional(),chainId:s.enum(ae),coingeckoId:p(o()),decimals:Et.number(),extensions:p(s.looseObject({})),identifier:o(),logoURI:p(o()),name:p(o()),shortCode:p(o()),symbol:p(o()),ticker:o()}),ao=s.object({block:s.optional(s.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:s.optional(s.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:s.optional(s.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:s.optional(s.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"}),lo=s.object({forceUpdate:s.string().toLowerCase().transform((e)=>e==="true").pipe(s.boolean()).optional()}),co=g({error:o(),message:o()}),ee=g({address:p(o()),chain:s.enum(ve),decimal:p(h()),isGasAsset:V(),isSynthetic:V(),symbol:o(),tax:p(g({buy:h(),sell:h()})),ticker:o()}),Mt=g({id:o(),market_cap:h(),name:o(),price_change_24h_usd:h(),price_change_percentage_24h_usd:h(),sparkline_in_7d:R(h()),timestamp:o(),total_volume:h()}).partial(),po=g({cg:p(Mt),identifier:o(),price_usd:h(),provider:o(),timestamp:h()}),Vt=R(g({cg:p(Mt),identifier:o(),price_usd:h(),provider:o(),timestamp:h()}).partial()),uo=g({affiliate:p(o().describe("Affiliate thorname")),affiliateFee:p(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:p(V().describe("Allow smart contract as recipient")),allowSmartContractSender:p(V().describe("Allow smart contract as sender")),buyAsset:o().describe("Asset to buy"),cfBoost:p(V().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:p(o().describe("Address to send asset to")),disableSecurityChecks:p(V().describe("Disable security checks")),includeTx:p(V().describe("Set to true to include an transaction object (EVM only)")),providers:p(R(o().describe("List of providers to use").refine((e)=>P[e]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:p(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:p(h().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:p(o().describe("Address to send asset from"))}).refine((e)=>e.sellAsset!==e.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),go=g({metadata:V(),tokens:R(g({identifier:o()}))}),Ht=g({destinationAddress:o()}),Er=Ht.extend({affiliateFees:R(g({brokerAddress:o(),feeBps:h()})).optional(),brokerCommissionBps:h().optional(),buyAsset:g({asset:o(),chain:o()}),channelMetadata:g({cfParameters:o().optional(),gasBudget:o().optional(),message:o().optional()}).optional(),dcaParameters:g({chunkInterval:h().optional(),numberOfChunks:h().optional()}).optional(),maxBoostFeeBps:h().optional(),refundParameters:g({minPrice:o().optional(),refundAddress:o().optional(),retryDuration:h().optional()}).optional(),sellAsset:g({asset:o(),chain:o()})}),Ut=g({channelId:o(),depositAddress:o()}),It=Ht.extend({affiliateFees:g({feeBps:h(),nearId:o()}).optional(),buyAsset:o(),sellAmount:o(),sellAsset:o(),slippage:Et.number(),sourceAddress:o()}),Ct=g({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()}),mo=Ct.extend({depositAddress:o(),quote:Ct,signature:o(),timestamp:o(),tx:$e()}),$t=g({buyAsset:o(),buyAssetAmount:o(),buyAssetAmountMaxSlippage:o(),deadline:o().optional(),depositAddress:o(),depositAmount:o(),depositAsset:o(),tx:$e()}),Nr=g({evmCalldata:s.optional(s.string()),intentHash:s.optional(s.string()),logs:s.optional(s.unknown()),manifest:s.optional(s.unknown()),memo:s.optional(s.string()),spender:s.optional(s.string()),thorname:s.optional(s.string())}),kr=g({currentStage:o(),inboundConfirmation:h(),inboundObservation:h(),outboundDelay:h(),outboundObservation:h(),streamingSwap:h()}),Or=g({count:p(h()),interval:p(h()),quantity:p(h()),subSwapsMap:p(R(h()))}),Dr=s.object({currentLegIndex:s.optional(s.number()),estimatedTimeToComplete:s.number(),estimates:s.optional(kr),providerDetails:s.optional(s.object({streamingDetails:s.optional(Or)}))}),Lr=g({affiliate:p(ee),liquidity:p(ee),network:p(ee),protocol:p(ee),tax:p(ee)}),Mr=g({affiliate:o(),bps:o(),isReferrer:V()}),Vr=g({affiliate:p(o()),affiliateFees:p(R(Mr)),broadcastedAt:p(h()),explorerUrl:p(o()),fees:p(Lr),images:p(g({chain:p(o()),from:p(o()),provider:p(o()),to:p(o())})),provider:p(s.enum(P)),providerAction:s.optional(s.enum(Ot)),quoteId:p(o()),wallet:p(o())}),te=s.object({block:s.number(),chainId:s.enum(ae),finalAddress:s.optional(s.string()),finalAsset:s.optional(ee),finalisedAt:s.number(),fromAddress:s.string(),fromAmount:s.string(),fromAsset:s.string(),hash:s.string(),meta:s.optional(Vr),payload:s.optional(Nr),status:s.enum(Dt),toAddress:s.string(),toAmount:s.string(),toAsset:s.string(),trackingStatus:s.optional(s.enum(Lt)),transient:s.optional(Dr),type:s.enum(kt)}),Bt=te.extend({legs:s.array(te)}),_o=te.extend({legs:R(te)}),ho=te.extend({legs:R(te)}),Be=R(g({amount:o(),asset:o(),chain:o(),protocol:s.enum(P),type:s.enum(Ee)})),Fe=s.object({inbound:s.optional(s.number().describe("Time to receive inbound asset in seconds")),outbound:s.optional(s.number().describe("Time to receive outbound asset in seconds")),swap:s.optional(s.number().describe("Time to swap assets in seconds")),total:s.number().describe("Total time in seconds")}),Hr=/^(?:0x[0-9a-fA-F]+|[0-9]+)$/;function Ur(e){return e===""||Hr.test(e)}function fo(e){return e?BigInt(e):0n}function yo(e){let t=typeof e==="bigint"?e:BigInt(e);return t>0n?`0x${t.toString(16)}`:"0x0"}var le=o().refine(Ur,{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"),$r=g({data:o().describe("Data to send"),from:o().describe("Address of the sender"),to:o().describe("Address of the recipient"),value:le}),Br=s.object({data:s.string().optional(),raw_data:s.object({contract:s.any(),data:s.string().optional(),expiration:s.number(),fee_limit:s.number().optional(),ref_block_bytes:s.string(),ref_block_hash:s.string(),timestamp:s.number()}).passthrough(),raw_data_hex:s.string(),txID:s.string(),value:le.optional(),visible:s.boolean()}),Fr=R(Ue([o(),h(),R(o()),g({from:o(),value:le}).describe("Parameters to pass to the contract method")])),bo=g({approvalSpender:p(o().describe("Address of the spender to approve")),approvalToken:p(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:R(o().describe("Names of the parameters to pass to the contract method")),contractParams:Fr}),Kr=g({typeUrl:o("/types.MsgDeposit"),value:g({coins:R(g({amount:o(),asset:g({chain:o(),symbol:o(),synth:V(),ticker:o()})})),memo:o(),signer:o()})}),Wr=g({typeUrl:o("/types.MsgSend"),value:g({amount:R(g({amount:o(),denom:o()})),fromAddress:o(),toAddress:o()})}),Gr=g({typeUrl:o(),value:Wr.shape.value.or(Kr.shape.value)}),qr=g({amount:R(g({amount:o(),denom:o()})),gas:o()}),Yr=g({accountNumber:h(),chainId:s.enum(ae),fee:qr,memo:o(),msgs:R(Gr),sequence:h()}),jr=s.array(s.object({calldata:s.array(s.string()),contractAddress:s.string(),entrypoint:s.string()})),Xr=s.object({address:s.string().describe("Destination address in friendly format"),amount:s.string().describe("Amount in nanotons"),payload:s.string().optional().describe("Base64 BOC of body cell"),stateInit:s.string().optional().describe("Base64 BOC of state init")}),zr=s.object({messages:s.array(Xr),sendMode:s.number().describe("TON wallet send mode for the whole transfer")}),Ao="USDC:0x6d1e7cde53ba9467b783cb7c530ce054",Qr=s.looseObject({domain:s.looseObject({chainId:p(Ue([h(),o()])),name:p(o()),verifyingContract:p(o()),version:p(o())}),message:s.record(o(),$e()),primaryType:o(),types:s.record(o(),R(s.looseObject({name:o(),type:o()})))}),Jr=s.looseObject({amount:o(),destination:o(),destinationDex:o(),fromSubAccount:o(),hyperliquidChain:o(),nonce:h().int(),signatureChainId:o(),sourceDex:o(),token:o(),type:s.literal("sendAsset")}),Ft=s.looseObject({action:s.looseObject({type:o()}),submitTo:o(),typedData:Qr}),So=Ft.extend({action:Jr}),Kt=Ue([$r,Yr,Br,zr,Ft,o()]),Zr=Kt.or(jr),es=g({affiliate:o().describe("Affiliate address").optional(),affiliateFee:h().describe("Affiliate fee").optional(),buyAsset:o().describe("Asset to buy"),destinationAddress:o().describe("Destination address"),estimatedTime:Fe.optional(),provider:s.enum(P),sellAsset:o().describe("Asset to sell"),slipPercentage:h().describe("Slippage as a percentage"),sourceAddress:o().describe("Source address")}),To=es.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),ts=g({asset:o().describe("Asset name"),image:o().describe("Asset image"),price:h().describe("Price in USD")}),ns=Er,Wt=g({assets:p(R(ts)),maxStreamingQuantity:h().optional(),referrer:o().optional(),streamingInterval:h().optional(),tags:R(s.enum(Nt))}),Gt=Wt.extend({affiliate:p(o()),affiliateFee:p(o()),approvalAddress:p(o().describe("Approval address for swap")),chainflip:ns.optional(),garden:It.optional(),near:It.optional(),priceImpact:p(h().describe("Price impact")),referrer:p(o()),txType:p(s.enum(Ie))}),qt=R(g({code:s.enum(Pe),display:o(),tooltip:o().optional()})),rs=g({buyAmount:o().describe("Buy amount"),buyAmountMaxSlippage:o().describe("Buy amount max slippage"),buyAsset:o().describe("Asset to buy"),fees:p(Be),provider:s.enum(P),sellAmount:o().describe("Sell amount"),sellAsset:o().describe("Asset to sell")}),ss=g({buyAsset:o().describe("Asset to buy"),destinationAddress:p(o().describe("Destination address")),estimatedTime:p(Fe),expectedBuyAmount:o().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:o().describe("Expected Buy amount max slippage"),expiration:p(o().describe("Expiration")),fees:Be,inboundAddress:p(o().describe("Inbound address")),legs:R(rs),memo:p(o().describe("Memo")),meta:Gt,providers:R(s.enum(P)),routeId:o().describe("Route ID"),sellAmount:o().describe("Sell amount"),sellAsset:o().describe("Asset to sell"),sourceAddress:p(o().describe("Source address")),targetAddress:p(o().describe("Target address")),totalSlippageBps:h().describe("Total slippage in bps"),tx:p(Zr),txType:p(s.enum(Ie)),warnings:qt}),Yt=g({error:p(o().describe("Error message")),providerErrors:p(R(g({errorCode:p(s.enum(ne)),message:p(o()),provider:s.enum(P).optional()}))),quoteId:o().describe("Quote ID"),routes:R(ss)}),jt=s.object({chainId:s.enum(ae),createdAt:s.date(),id:s.number(),unit:s.string(),value:s.string()}),is=s.array(jt),Xt=s.union([jt,is]),wo=R(g({chain:s.enum(ve),decimal:h(),identifier:o(),symbol:o(),ticker:o(),value:o()})),xo=s.union([s.object({amount:s.string(),spender:s.string(),tokenIdentifier:s.string(),userWalletAddress:s.string()}),s.object({amount:s.string(),chainId:s.enum(ae),spender:s.string(),tokenContractAddress:s.string(),userWalletAddress:s.string()}),s.object({routeId:s.string()})]),Ro=s.object({approvalTransaction:s.optional(s.object({data:s.string(),from:s.string(),gasLimit:s.optional(s.string()),gasPrice:s.optional(s.string()),to:s.string(),value:le})),approvedAmount:s.string(),isApproved:s.boolean()}),os=s.object({data:s.string().describe("Encoded approval call data"),from:s.string().describe("User wallet address"),gasLimit:s.string().optional().describe("Estimated gas limit"),gasPrice:s.string().optional().describe("Current gas price"),to:s.string().describe("Token contract address"),value:le.describe("ETH value (always '0' for approvals)")}),as=s.object({tx:s.string(),txType:s.literal("STELLAR")}),ls=s.union([os,as]),Pt=s.object({buyAmount:s.string().describe("Buy amount").optional(),buyAmountMaxSlippage:s.string().describe("Buy amount max slippage").optional(),buyAsset:s.string().describe("Asset to buy"),expectedBuyAmount:s.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:s.string().describe("Expected Buy amount max slippage").optional(),fees:Be,provider:s.enum(P),sellAmount:s.string().describe("Sell amount"),sellAsset:s.string().describe("Asset to sell")}),zt=Pt.extend({estimatedTime:s.optional(Fe),expiration:s.optional(s.string().describe("Expiration")),legs:s.array(Pt),providers:s.array(s.enum(P)),routeId:s.string().describe("Route ID"),totalSlippageBps:s.number().describe("Total slippage in bps"),warnings:qt}).omit({provider:!0}),Qt=s.object({method:s.string(),payload:s.optional(s.unknown()),url:s.string()}),cs=zt.extend({meta:Wt,nextActions:s.optional(s.array(Qt))}),vo=s.object({error:s.optional(s.string().describe("Error message")),providerErrors:s.optional(s.array(s.object({errorCode:s.optional(s.enum(ne)),message:s.optional(s.string()),provider:s.enum(P).optional()}))),quoteId:s.string().describe("Quote ID"),routes:s.array(cs)}),Io=s.object({providers:s.array(s.enum(P)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:s.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),ds=s.object({chain:s.enum(ve).describe("Chain the asset is on"),identifier:s.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:s.array(s.enum(P)).describe("Providers that support this trading pair"),symbol:s.string().describe("Asset symbol"),ticker:s.string().describe("Asset ticker")}),Co=s.object({buyAssets:s.array(ds).describe("List of assets that can be swapped to"),sellAsset:s.string().describe("The input sell asset identifier")}),Jt=zt.extend({destinationAddress:s.string().describe("Destination address"),inboundAddress:s.optional(s.string().describe("Inbound address")),memo:s.optional(s.string().describe("Memo to include in the transaction")),meta:Gt,sourceAddress:s.string().describe("Source address"),targetAddress:s.optional(s.string().describe("Target address")),tx:p(Kt),txType:s.optional(s.enum(Ie))}),ps=s.object({data:s.optional(s.record(s.string(),s.string().optional())),errorCode:s.enum(ne),message:s.string().optional(),provider:s.enum(P).optional()}),Po=s.object({error:s.optional(s.string().describe("Error message")),providerErrors:s.optional(s.array(ps)),quoteId:s.string().describe("Quote ID"),routes:s.array(Jt)}),Zt=Jt.extend({approvalTx:ls.optional().describe("Optional approval transaction required before swap execution"),nextActions:s.optional(s.array(Qt)),swapId:s.string().describe("The unique swap ID for tracking")});var k=m.extend({dynamicHeader:async()=>{let e=x.get("widgetId"),t=x.get("widgetKey");if(e&&t&&typeof window<"u"){let r=Math.floor(Date.now()/1000),i=window.location.origin,a=await nt(t,e,i,r);return{Origin:i,"X-Signature":a,"X-Timestamp":r.toString(),"x-widget-id":e}}let{swapKit:n}=x.get("apiKeys");return n?{"x-api-key":n}:{}}});async function gs(e){let t=await k.post(N("/track"),{json:e});try{let n=Bt.safeParse(t);if(!n.success)throw new b("api_v2_invalid_response",n.error);return n.data}catch(n){return t}}async function ms(e){let{getQuote:t}=x.get("endpoints");if(t)return t(e);let r=x.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",i=await k.post(N(r),{json:e});if(i.error)throw new b("api_v2_server_error",{message:i.error});try{let a=Yt.safeParse(i);if(!a.success)throw new b("api_v2_invalid_response",a.error);return a.data}catch{return i}}async function _s(e){let{getRouteWithTx:t}=x.get("endpoints");if(t)return t(e);let r=x.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",i=await k.post(N(r),{json:e});try{let a=Zt.safeParse(i);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)),i}}async function hs({chain:e,address:t,scamFilter:n=!0}){let{getBalance:r}=x.get("endpoints");if(r)return r({address:t,chain:e});let i=N(`/balance?chain=${e}&address=${t}`),a=await k.get(i),c=Array.isArray(a)?a:[];return n?Cs(c):c}function fs(e){let t=us(e).with({routeId:ce.string,spender:ce.string},({routeId:n,spender:r})=>N(`/approve?routeId=${n}&sourceAddress=${r}`)).with({assetValue:ce.instanceOf(D),spender:ce.string,userWallet:ce.string},({spender:n,userWallet:r,assetValue:i})=>N(`/approve?tokenIdentifier=${i.toString()}&userWalletAddress=${r}&spender=${n}&amount=${i.getValue("string")}`)).exhaustive();return k.get(t)}function ys(){let e=N("/providers");return k.get(e)}function bs(e){let t=N(`/tokens?provider=${e}`);return k.get(t)}function As({query:e,chain:t,page:n,limit:r}){let i=new URLSearchParams({query:e});if(t!==void 0)i.set("chain",t);if(n!==void 0)i.set("page",n.toString());if(r!==void 0)i.set("limit",r.toString());let a=N(`/tokens/search?${i.toString()}`);return k.get(a)}async function Ss(e){let t=N("/price"),n=await k.post(t,{json:e});try{let r=Vt.safeParse(n);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 Ts(){let e=N("/gas"),t=await k.get(e);try{let n=Xt.safeParse(t);if(!n.success)throw new b("api_v2_invalid_response",n.error);return Array.isArray(n)?n:[n]}catch(n){throw new b("api_v2_invalid_response",n)}}async function ws(e){let{destinationAddress:t}=e;if(!t)throw new b("chainflip_broker_invalid_params");let n=x.get("integrations").chainflip?.brokerUrl||N("/chainflip/broker/channel"),r=await k.post(n,{json:e});try{let i=Ut.safeParse(r);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}catch(i){throw new b("api_v2_invalid_response",i)}}async function xs(e){let{destinationAddress:t}=e;if(!t)throw new b("chainflip_broker_invalid_params");let n=N("/near/channel"),r=await k.post(n,{json:e});try{let i=$t.safeParse(r);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}catch(i){throw new b("api_v2_invalid_response",i)}}function N(e){let{isDev:t,apiUrl:n,devApiUrl:r}=x.get("envs"),{enabled:i,quoteUrl:a,swapUrl:c}=x.get("localMode");if(i&&e){let[_]=e.split("?");if(_==="/quote"||_==="/v3/quote")return`${a}${e}`;if(_==="/swap"||_==="/v3/swap")return`${c}${e}`}return`${t?r:n}${e}`}function Rs(e){try{return D.from({asset:e.identifier})}catch{return}}var vs=new Set(["OP.OP"]),Is=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function Cs(e){return e.filter((t)=>{let n=Rs(t);if(!n)return!1;if(vs.has(n.toString().toUpperCase()))return!0;return(!Ke.includes(n.chain)||n.isGasAsset||!!n.address)&&!Is.test(n.ticker)})}async function Ps(e){let{getSwapTo:t}=x.get("endpoints");if(t)return t(e);let n=new URLSearchParams({sellAsset:e.sellAsset});if(e.providers?.length)for(let c of e.providers)n.append("providers",c);let r=N(`/swapTo?${n.toString()}`),i=await k.get(r);if(!Array.isArray(i))return{buyAssets:[],sellAsset:e.sellAsset};let a=[];for(let c of i)try{let u=D.from({asset:c});a.push({chain:u.chain,identifier:u.toString(),providers:[],symbol:u.symbol,ticker:u.ticker})}catch{}return{buyAssets:a,sellAsset:e.sellAsset}}var Ge={};Xe(Ge,{getInboundAddresses:()=>Ls,getLastBlock:()=>Ns,getMimirInfo:()=>Ds,getNodes:()=>Os,getRunePoolInfo:()=>Vs,getRunePoolProviderInfo:()=>Hs,getTHORNodeTNSDetails:()=>en,getTNSPreferredAsset:()=>Ms,getTcyClaimer:()=>Bs,getTcyClaimers:()=>Fs,getTcyStaker:()=>Us,getTcyStakers:()=>$s,getThorchainQueue:()=>ks});function M(e){let t=x.get("thornodeUrls");return`${e==="mayachain"?t.MAYA:t.THOR}/${e??"thorchain"}`}function Es(e){let t=e==="mayachain"?"mayaname":"thorname";return`${M(e)}/${t}`}function Ns(e="thorchain"){return m.get(`${M(e)}/lastblock`)}function ks(e){return m.get(`${M(e)}/queue`)}function Os(e){return m.get(`${M(e)}/nodes`)}function Ds(e){return m.get(`${M(e)}/mimir`)}function Ls(e){return m.get(`${M(e)}/inbound_addresses`)}async function en({type:e,name:t}){try{return await m.get(`${Es(e)}/${t}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:t,owner:"",preferred_asset:""}}}async function Ms({type:e,tns:t}){let n=await en({name:t,type:e});if(!n.preferred_asset||n.preferred_asset===".")return;return D.from({asset:n.preferred_asset,asyncTokenLookup:!0})}function Vs(e){return m.get(`${M(e)}/runepool`)}function Hs({type:e,thorAddress:t}){return m.get(`${M(e)}/rune_provider/${t}`)}function Us({type:e,address:t}){return m.get(`${M(e)}/tcy_staker/${t}`)}function $s(e){return m.get(`${M(e)}/tcy_stakers`)}function Bs({type:e,address:t}){return m.get(`${M(e)}/tcy_claimer/${t}`)}function Fs(e){return m.get(`${M(e)}/tcy_claimers`)}var Fo={...We,mayachainMidgard:vt,thorchainMidgard:Rt,thornode:Ge};
5
+ export{Gs as a,ne as b,Pe as c,P as d,Ee as e,ln as f,cn as g,dn as h,b as i,Xs as j,ge as k,Je as l,Js as m,pn as n,E as o,x as p,m as q,nt as r,mi as s,re as t,Oe as u,In as v,j as w,Si as x,Ti as y,wi as z,Di as A,Dn as B,ht as C,ft as D,yt as E,fe as F,De as G,W as H,ie as I,Li as J,Mi as K,X as L,B as M,Gn as N,D as O,ji as P,xe as Q,Nt as R,Ie as S,kt as T,Ot as U,Dt as V,Lt as W,oo as X,ao as Y,lo as Z,co as _,ee as $,Mt as aa,po as ba,Vt as ca,uo as da,go as ea,Ht as fa,Er as ga,Ut as ha,It as ia,mo as ja,$t as ka,Bt as la,_o as ma,ho as na,Be as oa,Fe as pa,Ur as qa,fo as ra,yo as sa,$r as ta,Br as ua,Fr as va,bo as wa,Yr as xa,jr as ya,Xr as za,zr as Aa,Ao as Ba,Qr as Ca,Jr as Da,Ft as Ea,So as Fa,es as Ga,To as Ha,ts as Ia,ns as Ja,Wt as Ka,Gt as La,qt as Ma,ss as Na,Yt as Oa,jt as Pa,Xt as Qa,xo as Ra,Ro as Sa,os as Ta,as as Ua,ls as Va,vo as Wa,Io as Xa,ds as Ya,Co as Za,Jt as _a,ps as $a,Po as ab,Zt as bb,Fo as cb};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as yr,$a as En,A as qt,Aa as Xr,B as Gt,Ba as qr,C as Yt,Ca as Gr,D as Jt,Da as Yr,E as Qt,Ea as Jr,F as Zt,Fa as Qr,G as er,Ga as Zr,H as tr,Ha as en,I as rr,Ia as tn,J as nr,Ja as rn,K as or,Ka as nn,L as ir,La as on,M as ar,Ma as an,N as sr,Na as sn,O as ur,Oa as un,P as cr,Pa as cn,Q as f,Qa as pn,R as pr,Ra as dn,S as dr,Sa as mn,T as mr,Ta as ln,U as lr,Ua as hn,V as hr,Va as fn,W as fr,Wa as wn,X as wr,Xa as gn,Y as gr,Ya as Pn,Z as Pr,Za as vn,_ as vr,_a as yn,a as v,aa as Er,ab as bn,b as Mt,ba as br,bb as Tn,c as Wt,ca as Tr,cb as An,d as $t,da as Ar,e as Rt,ea as xr,f as L,fa as Sr,g as Dt,ga as _r,h as re,ha as Cr,i as m,ia as Mr,j as It,ja as Wr,k as c,ka as $r,l as Ot,la as Rr,m as Nt,ma as Dr,n as kt,na as Ir,o as Ft,oa as Or,p as x,pa as Nr,q as Lt,qa as kr,r as Bt,ra as Fr,s as Ut,sa as Lr,t as W,ta as Br,u as Kt,ua as Ur,v as Ht,va as Kr,w as jt,wa as Hr,x as zt,xa as jr,y as Vt,ya as zr,z as Xt,za as Vr}from"./chunk-b916hdf4.js";export*from"@swapkit/tokens";export*from"@swapkit/types";var B={average:1,fast:1.5,fastest:2};function S(e="average"){let t=x.get("feeMultipliers");if(t&&t[e]!==void 0)return t[e];return B[e]}function U(e="average"){let t=S(e),r=10n,n=BigInt(Math.round(t*10));return{denominator:r,numerator:n}}function he(e,t="average"){let{numerator:r,denominator:n}=U(t);return e*r/n}function fe(e,t="average",r=!1){let n=S(t),o=e*n;return r?Math.floor(o):o}import{Chain as P,EVMChains as K}from"@swapkit/types";import{match as H}from"ts-pattern";function w(e,t){let r=e.length-1;return e.map((o,i)=>{if(i===r&&t.index!==void 0)return t.index;if(i===0&&t.purpose!==void 0)return t.purpose;if(i===2&&t.account!==void 0)return t.account;if(i===3&&t.change!==void 0)return t.change;return o})}var h={bech32:84,legacy:44,p2sh:49,taproot:86},_;((o)=>{o.P2PKH="P2PKH";o.P2SH_P2WPKH="P2SH_P2WPKH";o.P2WPKH="P2WPKH";o.P2TR="P2TR"})(_||={});var j=Object.freeze({["P2PKH"]:{inputSize:148,outputSize:34,purpose:h.legacy,witness:!1},["P2SH_P2WPKH"]:{inputSize:91,outputSize:32,purpose:h.p2sh,witness:!0},["P2WPKH"]:{inputSize:68,outputSize:31,purpose:h.bech32,witness:!0},["P2TR"]:{inputSize:58,outputSize:43,purpose:h.taproot,witness:!0}}),z=Object.values(_);function V(e){if(e===void 0)return;return z.find((t)=>j[t].purpose===e)}function X(e){if(!e)return;if(typeof e!=="string")return e[0];let t=Number.parseInt(e.replace(/^[mM]'?\//,"").split("/")[0]??"",10);return Number.isNaN(t)?void 0:t}function ye(e){return V(X(e))}var q=Object.freeze([P.Near,P.Stellar,P.Sui]),Ee=Object.freeze([P.Ton]);function G({chain:e,derivationPath:t,index:r=0}){if(t)return t;return w(v[e],q.includes(e)?{account:r}:{index:r})}function Y([e,t,r,n,o],{allHardened:i}={}){let s=i?"'":"",u=typeof o!=="number";if(typeof n!=="number")return`m/${e}'/${t}'/${r}'`;return`m/${e}'/${t}'/${r}'/${n}${s}${u?"":`/${o}${s}`}`}function be({chain:e,index:t,addressIndex:r=0,type:n}){let o=v[e],i=K.includes(e)?"evm":e===P.Solana?"solana":"other";return H([i,n]).with(["evm","legacy"],["evm","account"],()=>[44,60,0,t]).with(["evm","ledgerLive"],()=>[44,60,t,0,r]).with(["evm","nativeSegwitMiddleAccount"],["evm","segwit"],["evm",void 0],()=>w(o,{index:t})).with(["solana","account"],()=>[44,501,0,t]).with(["solana","legacy"],["solana","ledgerLive"],["solana","nativeSegwitMiddleAccount"],["solana","segwit"],["solana",void 0],()=>w(o,{index:t})).with(["other","nativeSegwitMiddleAccount"],()=>w(o,{account:t,index:r,purpose:h.bech32})).with(["other","segwit"],()=>w(o,{account:0,index:t,purpose:h.p2sh})).with(["other","legacy"],()=>w(o,{account:0,index:t,purpose:h.legacy})).with(["other","account"],["other","ledgerLive"],["other",void 0],()=>G({chain:e,index:t})).exhaustive()}function Te(e){let[t,r]=e.split("/").map((n)=>Number.parseInt(n,10));switch(r){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var Ae=Object.freeze(Object.fromEntries(Object.keys(v).map((e)=>[e,Y(v[e])])));import{Chain as J,getChainConfig as Q}from"@swapkit/types";function Z({liquidityUnits:e,poolUnits:t,runeDepth:r}){let n=p(e),o=p(t),i=p(r),s=n.mul(i),u=o.mul(o).mul(2),a=o.mul(n).mul(2),d=n.mul(n),l=o.mul(o).mul(o);return s.mul(u.sub(a).add(d)).div(l)}function ee({liquidityUnits:e,poolUnits:t,assetDepth:r}){let n=p(e),o=p(t),i=p(r),s=n.mul(i),u=o.mul(o).mul(2),a=o.mul(n).mul(2),d=n.mul(n),l=s.mul(u.sub(a).add(d)),g=o.mul(o).mul(o);return l.div(g)}function Ce({percent:e,runeDepth:t,liquidityUnits:r,poolUnits:n}){return Z({liquidityUnits:r,poolUnits:n,runeDepth:t}).mul(e)}function Me({percent:e,assetDepth:t,liquidityUnits:r,poolUnits:n}){return ee({assetDepth:t,liquidityUnits:r,poolUnits:n}).mul(e)}function p(e){return f.fromBigInt(BigInt(e),Q(J.THORChain).baseDecimal)}function te({liquidityUnits:e,poolUnits:t,runeDepth:r,assetDepth:n}){return{assetAmount:p(n).mul(e).div(t),runeAmount:p(r).mul(e).div(t)}}function We({liquidityUnits:e,poolUnits:t,runeDepth:r,assetDepth:n,percent:o}){return Object.fromEntries(Object.entries(te({assetDepth:n,liquidityUnits:e,poolUnits:t,runeDepth:r})).map(([i,s])=>[i,s.mul(o)]))}function $e({runeDepth:e,poolUnits:t,assetDepth:r,liquidityUnits:n,runeAmount:o,assetAmount:i}){let s=new f({decimal:8,value:e}),u=new f({decimal:8,value:r}),a=new f({decimal:8,value:t}),d=new f({decimal:8,value:o}),l=new f({decimal:8,value:i}),g=d.mul(u),T=l.mul(s),I=d.mul(l),O=s.mul(u),N=a.mul(g.add(T.add(I.mul(2)))),k=g.add(T.add(O.mul(2))),A=N.div(k),b=p(n).add(A);if(A.getBaseValue("number")===0)return b.div(a).getBaseValue("number");let F=a.add(b);return b.div(F).getBaseValue("number")}function Re({runeAmount:e,assetAmount:t,runeDepth:r,assetDepth:n}){if(e==="0"||t==="0"||r==="0"||n==="0")return 0;let o=p(r),i=p(n),s=p(t),u=p(e),a=s.mul(o).sub(i.mul(u)),d=i.mul(u).add(o.mul(i));return Math.abs(a.div(d).getBaseValue("number"))}import{Chain as y}from"@swapkit/types";import{match as ne}from"ts-pattern";function Fe({type:e,address:t}){return`${e}:${t}`}function Le({address:e,unbondAmount:t}){return`${"UNBOND"}:${e}:${t}`}function Be(e){return E("POOL+",e)}function Ue({chain:e,symbol:t,address:r,...n}){let o=oe({chain:e,symbol:t}),i=r?`:${r}:`:":";return E(`${"+"}:${o}${i}`,n)}function Ke({chain:e,symbol:t,ticker:r,basisPoints:n,targetAsset:o}){let i=e==="ETH"&&r!=="ETH"?`${r}-${t.slice(-3)}`:t,s=o?`:${o}`:"";return`${"-"}:${e}.${i}:${n}${s}`}function He({basisPoints:e,...t}){return E(`${"POOL-"}:${e}`,t)}function je({name:e,chain:t,address:r,owner:n}){let o=`${"~"}:${e}:${t}:${r}`,i=n?`:${n}`:"";return`${o}${i}`}function ze({name:e,chain:t,asset:r,payout:n,owner:o}){return`${"~"}:${e}:${t}:${n}:${o}:${r}`}function Ve(e,{address:t}){return`${e}:${t}`}function Xe(e,{unstakeBps:t,...r}){let n=t?`:${t}`:"",o=`${e}${n}`;return E(`${o}`,r)}function E(e,{affiliateAddress:t,affiliateBasisPoints:r}={}){let n=`${e}${t?`:${t}:${r||0}`:""}`;return n.endsWith(":")?n.slice(0,-1):n}function oe({chain:e,symbol:t}){return ne(e).with(y.Bitcoin,y.Dogecoin,y.Litecoin,()=>e.slice(0,1).toLowerCase()).with(y.BitcoinCash,()=>"c").otherwise(()=>`${e}.${t}`)}function qe(e){if(e<0)throw new m({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return 10+e}function Ge(e){if(e<0)throw new m({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return Math.round((10+e*1.0512)*10000000000)/10000000000}function Ye(e){if(e.length>30)return!1;let t=/^[a-zA-Z0-9+_-]+$/g;return!!e.match(t)}import{getChainConfig as R}from"@swapkit/types";function rt(){return typeof window.ethereum<"u"}function nt(e){return ie().includes(e)}function ie(){let e=window?.ethereum&&!window.ethereum?.isBraveWallet,t=window?.ctrl||window?.ethereum?.__XDEFI,r=window?.vultisig,n=window?.ethereum?.isBraveWallet,o=window?.ethereum?.isTrust||window?.trustwallet,i=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,s=window?.bitkeep?.ethereum,u=window?.$onekey?.ethereum,a=[];if(e)a.push(c.METAMASK);if(t)a.push(c.CTRL);if(r)a.push(c.VULTISIG);if(n)a.push(c.BRAVE);if(o)a.push(c.TRUSTWALLET_WEB);if(i)a.push(c.COINBASE_WEB);if(de())a.push(c.OKX_MOBILE);if(s)a.push(c.BITGET);if(u)a.push(c.ONEKEY);return a}var C=new Set([4001,5000,"ACTION_REJECTED"]);function M(e){if(!e||typeof e!=="object")return!1;let{code:t,error:r,info:n,data:o}=e;if(C.has(t))return!0;return[r,n?.error,o?.originalError].some((i)=>!!i&&typeof i==="object"&&C.has(i.code))}async function ae(e,t){if(!t)return!1;try{let{chainId:r}=await e.getNetwork();return BigInt(r)===BigInt(t)}catch{return!1}}async function se(e,t,r){let n=R(t);try{await D({method:"wallet_switchEthereumChain",params:[{chainId:n.chainIdHex}],provider:e})}catch(o){if(M(o))throw new m("helpers_failed_to_switch_network",{chain:t,error:o,reason:"user rejected request"});if(!r)throw new m("helpers_failed_to_switch_network",{chain:t,error:o,reason:"networkParams not provided"});try{await pe(e,r)}catch(i){throw new m("helpers_failed_to_switch_network",{chain:t,error:i,reason:M(i)?"user rejected adding the network":"failed to add the network"})}}}function ot({chains:e,supportedChains:t,walletType:r}){let n=e.filter((i)=>!i||t.includes(i));if(n.length===0)throw new m("wallet_chain_not_supported",{chain:e.join(", "),wallet:r});let o=e.filter((i)=>!t.includes(i));return W({condition:o.length>0,id:`wallet_chain_not_supported_${r}`,warning:`${r} wallet does not support the following chains: ${o.join(", ")}. These chains will be ignored.`}),n}function ue(e,t,r,n){return async(...o)=>{let{chainIdHex:i}=R(r);if(await ae(t,i))return e(...o);try{await se(t,r,n)}catch(s){if(s instanceof m)throw s;throw new m({errorKey:"helpers_failed_to_switch_network",info:{chain:r,error:s}})}return e(...o)}}function it({toolbox:e,chain:t,provider:r,methodNames:n=[],networkParams:o=ce(e)}){let s=[...n,"approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"].reduce((u,a)=>{if(!e[a])return u;let d=e[a];if(typeof d!=="function")return u;let l=ue(d,r,t,o);return{...u,[a]:l}},{});return{...e,...s}}function ce(e){let t=e.getNetworkParams;if(typeof t!=="function")return;try{let r=t();return r&&typeof r==="object"&&"chainId"in r?r:void 0}catch{return}}function pe(e,t){return D({method:"wallet_addEthereumChain",params:[t],provider:e})}function at(e){window.ethereum?.on("accountsChanged",()=>e()),window.ctrl?.ethereum.on("accountsChanged",()=>e())}function st(){let{isTrust:e,isBraveWallet:t,__XDEFI:r,overrideIsMetaMask:n,selectedProvider:o}=window?.ethereum||{};if(e)return c.TRUSTWALLET_WEB;if(t)return c.BRAVE;if(n&&o?.isCoinbaseWallet)return c.COINBASE_WEB;if(r)return c.CTRL;if(window?.$onekey?.ethereum)return c.ONEKEY;return c.METAMASK}function ut(){let e=[];function t(n){if(e.map((o)=>o.info.uuid).includes(n.detail.info.uuid))return;e.push(n.detail)}window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider"));function r(){window.removeEventListener("eip6963:announceProvider",t)}return{providers:e,removeEIP6963EventListener:r}}function de(){let e=navigator.userAgent,t=/iphone|ipad|ipod|ios/i.test(e),r=/android|XiaoMi|MiuiBrowser/i.test(e),n=t||r,o=/OKApp/i.test(e);return n&&o}function D({provider:e,params:t,method:r}){if(!e?.send)throw new m("helpers_not_found_provider");let n=t?Array.isArray(t)?t:[t]:[];return e.send(r,n)}export{q as ACCOUNT_INDEXED_CHAINS,vr as ApiV2ErrorSchema,ln as ApprovalTransactionSchema,Dt as ApproveMode,dn as ApproveRequestParams,mn as ApproveResponseSchema,ur as AssetValue,yr as AssetValueSchema,ar as BigIntArithmetics,_r as BrokerDepositChannelParamsSchema,rn as ChainflipMetadataSchema,Er as CoinGeckoMetadataSchema,qt as CommonAssetStrings,jr as CosmosTransactionSchema,B as DEFAULT_FEE_MULTIPLIERS,Sr as DepositChannelParamsSchema,Cr as DepositChannelResponseSchema,Ae as DerivationPath,Kr as EVMTransactionDetailsParamsSchema,Hr as EVMTransactionDetailsSchema,Br as EVMTransactionSchema,Mt as ErrorCode,Nr as EstimatedTimeSchema,L as FeeOption,Rt as FeeTypeEnum,Or as FeesSchema,pn as GasResponseSchema,cn as GasSchema,qr as HYPERCORE_USDC_TOKEN_ID,Gr as HyperCoreEip712TypedDataSchema,Yr as HyperCoreSendAssetActionSchema,Qr as HyperCoreSendAssetTransactionSchema,Jr as HyperCoreTypedDataTransactionSchema,kt as LedgerErrorCode,re as MemoType,Mr as NearDepositChannelParamsSchema,Wr as NearDepositChannelResultSchema,$r as NearSwapResponseSchema,v as NetworkDerivationPath,xr as PriceRequestSchema,Tr as PriceResponseSchema,pr as PriorityLabel,lr as ProviderAction,$t as ProviderName,Ar as QuoteRequestSchema,sn as QuoteResponseRouteItem,un as QuoteResponseSchema,yn as QuoteRouteV2Response,bn as QuoteV2ResponseSchema,wn as QuoteV3ResponseSchema,Lt as RequestClient,Zr as RouteLegSchema,en as RouteLegWithoutAddressesSchema,tn as RouteQuoteMetadataAssetSchema,nn as RouteQuoteMetadataSchema,on as RouteQuoteMetadataV2Schema,En as RouteQuoteProviderErrorSchema,dr as RouteQuoteTxType,an as RouteQuoteWarningSchema,Ee as SINGLE_WALLET_CHAINS,x as SKConfig,zr as StarknetTransactionSchema,hn as StellarApprovalTransactionSchema,fn as SwapApprovalTransactionSchema,An as SwapKitApi,m as SwapKitError,f as SwapKitNumber,Tn as SwapRouteV2ResponseSchema,Pn as SwapToAssetSchema,gn as SwapToRequestSchema,vn as SwapToResponseSchema,Vr as TONTransactionMessageSchema,Xr as TONTransactionSchema,br as TokenDetailsMetadataSchema,wr as TokenSchema,Rr as TrackerResponseSchema,Pr as TrackingRequestQuerySchema,gr as TrackingRequestSchema,fr as TrackingStatus,Ir as TransactionDTOSchema,Dr as TransactionSchema,Ur as TronTransactionSchema,hr as TxnStatus,mr as TxnType,h as UTXOPurpose,_ as UTXOScriptType,j as UTXO_SCRIPT_TYPES,z as UTXO_SCRIPT_TYPE_LIST,c as WalletOption,Wt as WarningCodeEnum,Kt as _rpcCache,at as addAccountsChangedCallback,pe as addEVMWalletNetwork,fe as applyFeeMultiplier,he as applyFeeMultiplierToBigInt,tr as assetFromString,Yt as decodeABIDynamicString,Gt as decodeABIString,Y as derivationPathToString,Jt as fetchTokenInfo,ot as filterSupportedChains,or as findAssetBy,ir as formatBigIntToSafeValue,er as getAssetType,ee as getAsymmetricAssetShare,Me as getAsymmetricAssetWithdrawAmount,Z as getAsymmetricRuneShare,Ce as getAsymmetricRuneWithdrawAmount,Xt as getChainIdentifier,Zt as getCommonAssetInfo,be as getDerivationPathFor,ut as getEIP6963Wallets,st as getETHDefaultWallet,$e as getEstimatedPoolShare,Vt as getExplorerAddressUrl,zt as getExplorerTxUrl,S as getFeeMultiplier,U as getFeeMultiplierAsBigInt,Re as getLiquiditySlippage,Ge as getMAYANameCost,Ue as getMemoForDeposit,Fe as getMemoForLeaveAndBond,ze as getMemoForNamePreferredAssetRegister,je as getMemoForNameRegister,Be as getMemoForRunePoolDeposit,He as getMemoForRunePoolWithdraw,Ve as getMemoForTcyClaim,Xe as getMemoForTcyStake,Le as getMemoForUnbond,Ke as getMemoForWithdraw,cr as getMinAmountByChain,X as getPurposeFromPath,jt as getRPCUrl,Ht as getRPCUrlSync,te as getSymmetricPoolShare,We as getSymmetricWithdraw,qe as getTHORNameCost,nr as getTokenLogoURI,ye as getUTXOScriptTypeForPath,V as getUTXOScriptTypeForPurpose,Te as getWalletFormatFor,nt as isDetected,Qt as isGasAsset,kr as isTransactionValue,M as isUserRejectedRequest,rt as isWeb3Detected,ie as listWeb3EVMWallets,de as okxMobileEnabled,rr as parseSymbolForAddress,Fr as parseTransactionValue,it as prepareNetworkSwitch,D as providerRequest,It as registerErrorCodes,Nt as registerWalletOption,G as resolveDerivationPath,Bt as signWidgetRequest,Ot as subscribeWalletOptionRegistration,Ft as swapKitConfigStore,se as switchEVMWalletNetwork,Lr as toHexTransactionValue,w as updateDerivationPath,sr as validateIdentifier,Ye as validateTNS,W as warnOnce,ue as wrapMethodWithNetworkSwitch,Ut as wrapWithThrow};
1
+ import{$ as yr,$a as En,A as qt,Aa as Xr,B as Gt,Ba as qr,C as Yt,Ca as Gr,D as Jt,Da as Yr,E as Qt,Ea as Jr,F as Zt,Fa as Qr,G as er,Ga as Zr,H as tr,Ha as en,I as rr,Ia as tn,J as nr,Ja as rn,K as or,Ka as nn,L as ir,La as on,M as ar,Ma as an,N as sr,Na as sn,O as ur,Oa as un,P as cr,Pa as cn,Q as f,Qa as pn,R as pr,Ra as dn,S as dr,Sa as mn,T as mr,Ta as ln,U as lr,Ua as hn,V as hr,Va as fn,W as fr,Wa as wn,X as wr,Xa as gn,Y as gr,Ya as Pn,Z as Pr,Za as vn,_ as vr,_a as yn,a as v,aa as Er,ab as bn,b as Mt,ba as br,bb as Tn,c as Wt,ca as Tr,cb as An,d as $t,da as Ar,e as Rt,ea as xr,f as L,fa as Sr,g as Dt,ga as _r,h as re,ha as Cr,i as m,ia as Mr,j as It,ja as Wr,k as c,ka as $r,l as Ot,la as Rr,m as Nt,ma as Dr,n as kt,na as Ir,o as Ft,oa as Or,p as x,pa as Nr,q as Lt,qa as kr,r as Bt,ra as Fr,s as Ut,sa as Lr,t as W,ta as Br,u as Kt,ua as Ur,v as Ht,va as Kr,w as jt,wa as Hr,x as zt,xa as jr,y as Vt,ya as zr,z as Xt,za as Vr}from"./chunk-kracm6xw.js";export*from"@swapkit/tokens";export*from"@swapkit/types";var B={average:1,fast:1.5,fastest:2};function S(e="average"){let t=x.get("feeMultipliers");if(t&&t[e]!==void 0)return t[e];return B[e]}function U(e="average"){let t=S(e),r=10n,n=BigInt(Math.round(t*10));return{denominator:r,numerator:n}}function he(e,t="average"){let{numerator:r,denominator:n}=U(t);return e*r/n}function fe(e,t="average",r=!1){let n=S(t),o=e*n;return r?Math.floor(o):o}import{Chain as P,EVMChains as K}from"@swapkit/types";import{match as H}from"ts-pattern";function w(e,t){let r=e.length-1;return e.map((o,i)=>{if(i===r&&t.index!==void 0)return t.index;if(i===0&&t.purpose!==void 0)return t.purpose;if(i===2&&t.account!==void 0)return t.account;if(i===3&&t.change!==void 0)return t.change;return o})}var h={bech32:84,legacy:44,p2sh:49,taproot:86},_;((o)=>{o.P2PKH="P2PKH";o.P2SH_P2WPKH="P2SH_P2WPKH";o.P2WPKH="P2WPKH";o.P2TR="P2TR"})(_||={});var j=Object.freeze({["P2PKH"]:{inputSize:148,outputSize:34,purpose:h.legacy,witness:!1},["P2SH_P2WPKH"]:{inputSize:91,outputSize:32,purpose:h.p2sh,witness:!0},["P2WPKH"]:{inputSize:68,outputSize:31,purpose:h.bech32,witness:!0},["P2TR"]:{inputSize:58,outputSize:43,purpose:h.taproot,witness:!0}}),z=Object.values(_);function V(e){if(e===void 0)return;return z.find((t)=>j[t].purpose===e)}function X(e){if(!e)return;if(typeof e!=="string")return e[0];let t=Number.parseInt(e.replace(/^[mM]'?\//,"").split("/")[0]??"",10);return Number.isNaN(t)?void 0:t}function ye(e){return V(X(e))}var q=Object.freeze([P.Near,P.Stellar,P.Sui]),Ee=Object.freeze([P.Ton]);function G({chain:e,derivationPath:t,index:r=0}){if(t)return t;return w(v[e],q.includes(e)?{account:r}:{index:r})}function Y([e,t,r,n,o],{allHardened:i}={}){let s=i?"'":"",u=typeof o!=="number";if(typeof n!=="number")return`m/${e}'/${t}'/${r}'`;return`m/${e}'/${t}'/${r}'/${n}${s}${u?"":`/${o}${s}`}`}function be({chain:e,index:t,addressIndex:r=0,type:n}){let o=v[e],i=K.includes(e)?"evm":e===P.Solana?"solana":"other";return H([i,n]).with(["evm","legacy"],["evm","account"],()=>[44,60,0,t]).with(["evm","ledgerLive"],()=>[44,60,t,0,r]).with(["evm","nativeSegwitMiddleAccount"],["evm","segwit"],["evm",void 0],()=>w(o,{index:t})).with(["solana","account"],()=>[44,501,0,t]).with(["solana","legacy"],["solana","ledgerLive"],["solana","nativeSegwitMiddleAccount"],["solana","segwit"],["solana",void 0],()=>w(o,{index:t})).with(["other","nativeSegwitMiddleAccount"],()=>w(o,{account:t,index:r,purpose:h.bech32})).with(["other","segwit"],()=>w(o,{account:0,index:t,purpose:h.p2sh})).with(["other","legacy"],()=>w(o,{account:0,index:t,purpose:h.legacy})).with(["other","account"],["other","ledgerLive"],["other",void 0],()=>G({chain:e,index:t})).exhaustive()}function Te(e){let[t,r]=e.split("/").map((n)=>Number.parseInt(n,10));switch(r){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var Ae=Object.freeze(Object.fromEntries(Object.keys(v).map((e)=>[e,Y(v[e])])));import{Chain as J,getChainConfig as Q}from"@swapkit/types";function Z({liquidityUnits:e,poolUnits:t,runeDepth:r}){let n=p(e),o=p(t),i=p(r),s=n.mul(i),u=o.mul(o).mul(2),a=o.mul(n).mul(2),d=n.mul(n),l=o.mul(o).mul(o);return s.mul(u.sub(a).add(d)).div(l)}function ee({liquidityUnits:e,poolUnits:t,assetDepth:r}){let n=p(e),o=p(t),i=p(r),s=n.mul(i),u=o.mul(o).mul(2),a=o.mul(n).mul(2),d=n.mul(n),l=s.mul(u.sub(a).add(d)),g=o.mul(o).mul(o);return l.div(g)}function Ce({percent:e,runeDepth:t,liquidityUnits:r,poolUnits:n}){return Z({liquidityUnits:r,poolUnits:n,runeDepth:t}).mul(e)}function Me({percent:e,assetDepth:t,liquidityUnits:r,poolUnits:n}){return ee({assetDepth:t,liquidityUnits:r,poolUnits:n}).mul(e)}function p(e){return f.fromBigInt(BigInt(e),Q(J.THORChain).baseDecimal)}function te({liquidityUnits:e,poolUnits:t,runeDepth:r,assetDepth:n}){return{assetAmount:p(n).mul(e).div(t),runeAmount:p(r).mul(e).div(t)}}function We({liquidityUnits:e,poolUnits:t,runeDepth:r,assetDepth:n,percent:o}){return Object.fromEntries(Object.entries(te({assetDepth:n,liquidityUnits:e,poolUnits:t,runeDepth:r})).map(([i,s])=>[i,s.mul(o)]))}function $e({runeDepth:e,poolUnits:t,assetDepth:r,liquidityUnits:n,runeAmount:o,assetAmount:i}){let s=new f({decimal:8,value:e}),u=new f({decimal:8,value:r}),a=new f({decimal:8,value:t}),d=new f({decimal:8,value:o}),l=new f({decimal:8,value:i}),g=d.mul(u),T=l.mul(s),I=d.mul(l),O=s.mul(u),N=a.mul(g.add(T.add(I.mul(2)))),k=g.add(T.add(O.mul(2))),A=N.div(k),b=p(n).add(A);if(A.getBaseValue("number")===0)return b.div(a).getBaseValue("number");let F=a.add(b);return b.div(F).getBaseValue("number")}function Re({runeAmount:e,assetAmount:t,runeDepth:r,assetDepth:n}){if(e==="0"||t==="0"||r==="0"||n==="0")return 0;let o=p(r),i=p(n),s=p(t),u=p(e),a=s.mul(o).sub(i.mul(u)),d=i.mul(u).add(o.mul(i));return Math.abs(a.div(d).getBaseValue("number"))}import{Chain as y}from"@swapkit/types";import{match as ne}from"ts-pattern";function Fe({type:e,address:t}){return`${e}:${t}`}function Le({address:e,unbondAmount:t}){return`${"UNBOND"}:${e}:${t}`}function Be(e){return E("POOL+",e)}function Ue({chain:e,symbol:t,address:r,...n}){let o=oe({chain:e,symbol:t}),i=r?`:${r}:`:":";return E(`${"+"}:${o}${i}`,n)}function Ke({chain:e,symbol:t,ticker:r,basisPoints:n,targetAsset:o}){let i=e==="ETH"&&r!=="ETH"?`${r}-${t.slice(-3)}`:t,s=o?`:${o}`:"";return`${"-"}:${e}.${i}:${n}${s}`}function He({basisPoints:e,...t}){return E(`${"POOL-"}:${e}`,t)}function je({name:e,chain:t,address:r,owner:n}){let o=`${"~"}:${e}:${t}:${r}`,i=n?`:${n}`:"";return`${o}${i}`}function ze({name:e,chain:t,asset:r,payout:n,owner:o}){return`${"~"}:${e}:${t}:${n}:${o}:${r}`}function Ve(e,{address:t}){return`${e}:${t}`}function Xe(e,{unstakeBps:t,...r}){let n=t?`:${t}`:"",o=`${e}${n}`;return E(`${o}`,r)}function E(e,{affiliateAddress:t,affiliateBasisPoints:r}={}){let n=`${e}${t?`:${t}:${r||0}`:""}`;return n.endsWith(":")?n.slice(0,-1):n}function oe({chain:e,symbol:t}){return ne(e).with(y.Bitcoin,y.Dogecoin,y.Litecoin,()=>e.slice(0,1).toLowerCase()).with(y.BitcoinCash,()=>"c").otherwise(()=>`${e}.${t}`)}function qe(e){if(e<0)throw new m({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return Math.round((10+Math.max(0,e-1)*1.0512)*1e8)/1e8}function Ge(e){if(e<0)throw new m({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return Math.round((10+Math.max(0,e-1)*1.0512)*10000000000)/10000000000}function Ye(e){if(e.length>30)return!1;let t=/^[a-zA-Z0-9+_-]+$/g;return!!e.match(t)}import{getChainConfig as R}from"@swapkit/types";function rt(){return typeof window.ethereum<"u"}function nt(e){return ie().includes(e)}function ie(){let e=window?.ethereum&&!window.ethereum?.isBraveWallet,t=window?.ctrl||window?.ethereum?.__XDEFI,r=window?.vultisig,n=window?.ethereum?.isBraveWallet,o=window?.ethereum?.isTrust||window?.trustwallet,i=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,s=window?.bitkeep?.ethereum,u=window?.$onekey?.ethereum,a=[];if(e)a.push(c.METAMASK);if(t)a.push(c.CTRL);if(r)a.push(c.VULTISIG);if(n)a.push(c.BRAVE);if(o)a.push(c.TRUSTWALLET_WEB);if(i)a.push(c.COINBASE_WEB);if(de())a.push(c.OKX_MOBILE);if(s)a.push(c.BITGET);if(u)a.push(c.ONEKEY);return a}var C=new Set([4001,5000,"ACTION_REJECTED"]);function M(e){if(!e||typeof e!=="object")return!1;let{code:t,error:r,info:n,data:o}=e;if(C.has(t))return!0;return[r,n?.error,o?.originalError].some((i)=>!!i&&typeof i==="object"&&C.has(i.code))}async function ae(e,t){if(!t)return!1;try{let{chainId:r}=await e.getNetwork();return BigInt(r)===BigInt(t)}catch{return!1}}async function se(e,t,r){let n=R(t);try{await D({method:"wallet_switchEthereumChain",params:[{chainId:n.chainIdHex}],provider:e})}catch(o){if(M(o))throw new m("helpers_failed_to_switch_network",{chain:t,error:o,reason:"user rejected request"});if(!r)throw new m("helpers_failed_to_switch_network",{chain:t,error:o,reason:"networkParams not provided"});try{await pe(e,r)}catch(i){throw new m("helpers_failed_to_switch_network",{chain:t,error:i,reason:M(i)?"user rejected adding the network":"failed to add the network"})}}}function ot({chains:e,supportedChains:t,walletType:r}){let n=e.filter((i)=>!i||t.includes(i));if(n.length===0)throw new m("wallet_chain_not_supported",{chain:e.join(", "),wallet:r});let o=e.filter((i)=>!t.includes(i));return W({condition:o.length>0,id:`wallet_chain_not_supported_${r}`,warning:`${r} wallet does not support the following chains: ${o.join(", ")}. These chains will be ignored.`}),n}function ue(e,t,r,n){return async(...o)=>{let{chainIdHex:i}=R(r);if(await ae(t,i))return e(...o);try{await se(t,r,n)}catch(s){if(s instanceof m)throw s;throw new m({errorKey:"helpers_failed_to_switch_network",info:{chain:r,error:s}})}return e(...o)}}function it({toolbox:e,chain:t,provider:r,methodNames:n=[],networkParams:o=ce(e)}){let s=[...n,"approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"].reduce((u,a)=>{if(!e[a])return u;let d=e[a];if(typeof d!=="function")return u;let l=ue(d,r,t,o);return{...u,[a]:l}},{});return{...e,...s}}function ce(e){let t=e.getNetworkParams;if(typeof t!=="function")return;try{let r=t();return r&&typeof r==="object"&&"chainId"in r?r:void 0}catch{return}}function pe(e,t){return D({method:"wallet_addEthereumChain",params:[t],provider:e})}function at(e){window.ethereum?.on("accountsChanged",()=>e()),window.ctrl?.ethereum.on("accountsChanged",()=>e())}function st(){let{isTrust:e,isBraveWallet:t,__XDEFI:r,overrideIsMetaMask:n,selectedProvider:o}=window?.ethereum||{};if(e)return c.TRUSTWALLET_WEB;if(t)return c.BRAVE;if(n&&o?.isCoinbaseWallet)return c.COINBASE_WEB;if(r)return c.CTRL;if(window?.$onekey?.ethereum)return c.ONEKEY;return c.METAMASK}function ut(){let e=[];function t(n){if(e.map((o)=>o.info.uuid).includes(n.detail.info.uuid))return;e.push(n.detail)}window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider"));function r(){window.removeEventListener("eip6963:announceProvider",t)}return{providers:e,removeEIP6963EventListener:r}}function de(){let e=navigator.userAgent,t=/iphone|ipad|ipod|ios/i.test(e),r=/android|XiaoMi|MiuiBrowser/i.test(e),n=t||r,o=/OKApp/i.test(e);return n&&o}function D({provider:e,params:t,method:r}){if(!e?.send)throw new m("helpers_not_found_provider");let n=t?Array.isArray(t)?t:[t]:[];return e.send(r,n)}export{q as ACCOUNT_INDEXED_CHAINS,vr as ApiV2ErrorSchema,ln as ApprovalTransactionSchema,Dt as ApproveMode,dn as ApproveRequestParams,mn as ApproveResponseSchema,ur as AssetValue,yr as AssetValueSchema,ar as BigIntArithmetics,_r as BrokerDepositChannelParamsSchema,rn as ChainflipMetadataSchema,Er as CoinGeckoMetadataSchema,qt as CommonAssetStrings,jr as CosmosTransactionSchema,B as DEFAULT_FEE_MULTIPLIERS,Sr as DepositChannelParamsSchema,Cr as DepositChannelResponseSchema,Ae as DerivationPath,Kr as EVMTransactionDetailsParamsSchema,Hr as EVMTransactionDetailsSchema,Br as EVMTransactionSchema,Mt as ErrorCode,Nr as EstimatedTimeSchema,L as FeeOption,Rt as FeeTypeEnum,Or as FeesSchema,pn as GasResponseSchema,cn as GasSchema,qr as HYPERCORE_USDC_TOKEN_ID,Gr as HyperCoreEip712TypedDataSchema,Yr as HyperCoreSendAssetActionSchema,Qr as HyperCoreSendAssetTransactionSchema,Jr as HyperCoreTypedDataTransactionSchema,kt as LedgerErrorCode,re as MemoType,Mr as NearDepositChannelParamsSchema,Wr as NearDepositChannelResultSchema,$r as NearSwapResponseSchema,v as NetworkDerivationPath,xr as PriceRequestSchema,Tr as PriceResponseSchema,pr as PriorityLabel,lr as ProviderAction,$t as ProviderName,Ar as QuoteRequestSchema,sn as QuoteResponseRouteItem,un as QuoteResponseSchema,yn as QuoteRouteV2Response,bn as QuoteV2ResponseSchema,wn as QuoteV3ResponseSchema,Lt as RequestClient,Zr as RouteLegSchema,en as RouteLegWithoutAddressesSchema,tn as RouteQuoteMetadataAssetSchema,nn as RouteQuoteMetadataSchema,on as RouteQuoteMetadataV2Schema,En as RouteQuoteProviderErrorSchema,dr as RouteQuoteTxType,an as RouteQuoteWarningSchema,Ee as SINGLE_WALLET_CHAINS,x as SKConfig,zr as StarknetTransactionSchema,hn as StellarApprovalTransactionSchema,fn as SwapApprovalTransactionSchema,An as SwapKitApi,m as SwapKitError,f as SwapKitNumber,Tn as SwapRouteV2ResponseSchema,Pn as SwapToAssetSchema,gn as SwapToRequestSchema,vn as SwapToResponseSchema,Vr as TONTransactionMessageSchema,Xr as TONTransactionSchema,br as TokenDetailsMetadataSchema,wr as TokenSchema,Rr as TrackerResponseSchema,Pr as TrackingRequestQuerySchema,gr as TrackingRequestSchema,fr as TrackingStatus,Ir as TransactionDTOSchema,Dr as TransactionSchema,Ur as TronTransactionSchema,hr as TxnStatus,mr as TxnType,h as UTXOPurpose,_ as UTXOScriptType,j as UTXO_SCRIPT_TYPES,z as UTXO_SCRIPT_TYPE_LIST,c as WalletOption,Wt as WarningCodeEnum,Kt as _rpcCache,at as addAccountsChangedCallback,pe as addEVMWalletNetwork,fe as applyFeeMultiplier,he as applyFeeMultiplierToBigInt,tr as assetFromString,Yt as decodeABIDynamicString,Gt as decodeABIString,Y as derivationPathToString,Jt as fetchTokenInfo,ot as filterSupportedChains,or as findAssetBy,ir as formatBigIntToSafeValue,er as getAssetType,ee as getAsymmetricAssetShare,Me as getAsymmetricAssetWithdrawAmount,Z as getAsymmetricRuneShare,Ce as getAsymmetricRuneWithdrawAmount,Xt as getChainIdentifier,Zt as getCommonAssetInfo,be as getDerivationPathFor,ut as getEIP6963Wallets,st as getETHDefaultWallet,$e as getEstimatedPoolShare,Vt as getExplorerAddressUrl,zt as getExplorerTxUrl,S as getFeeMultiplier,U as getFeeMultiplierAsBigInt,Re as getLiquiditySlippage,Ge as getMAYANameCost,Ue as getMemoForDeposit,Fe as getMemoForLeaveAndBond,ze as getMemoForNamePreferredAssetRegister,je as getMemoForNameRegister,Be as getMemoForRunePoolDeposit,He as getMemoForRunePoolWithdraw,Ve as getMemoForTcyClaim,Xe as getMemoForTcyStake,Le as getMemoForUnbond,Ke as getMemoForWithdraw,cr as getMinAmountByChain,X as getPurposeFromPath,jt as getRPCUrl,Ht as getRPCUrlSync,te as getSymmetricPoolShare,We as getSymmetricWithdraw,qe as getTHORNameCost,nr as getTokenLogoURI,ye as getUTXOScriptTypeForPath,V as getUTXOScriptTypeForPurpose,Te as getWalletFormatFor,nt as isDetected,Qt as isGasAsset,kr as isTransactionValue,M as isUserRejectedRequest,rt as isWeb3Detected,ie as listWeb3EVMWallets,de as okxMobileEnabled,rr as parseSymbolForAddress,Fr as parseTransactionValue,it as prepareNetworkSwitch,D as providerRequest,It as registerErrorCodes,Nt as registerWalletOption,G as resolveDerivationPath,Bt as signWidgetRequest,Ot as subscribeWalletOptionRegistration,Ft as swapKitConfigStore,se as switchEVMWalletNetwork,Lr as toHexTransactionValue,w as updateDerivationPath,sr as validateIdentifier,Ye as validateTNS,W as warnOnce,ue as wrapMethodWithNetworkSwitch,Ut as wrapWithThrow};