@swapkit/helpers 5.4.2 → 6.0.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 +11 -0
- package/dist/api/index.js +1 -1
- package/dist/chunk-b916hdf4.js +5 -0
- package/dist/index.js +1 -1
- package/dist/types/api/index.d.ts +0 -3
- package/dist/types/api/swapkitApi/endpoints.d.ts +0 -3
- package/dist/types/modules/assetValue.d.ts +1 -1
- package/dist/types/modules/requestClient.d.ts +0 -4
- package/dist/types/modules/swapKitConfig.d.ts +1 -61
- package/dist/types/modules/swapKitError.d.ts +2 -0
- package/dist/types/types/quotes.d.ts +2 -1
- package/dist/types/types/wallet.d.ts +0 -4
- package/dist/types/utils/chains.d.ts +4 -11
- package/dist/types/utils/wallets.d.ts +4 -2
- package/package.json +4 -4
- package/dist/chunk-dna905ac.js +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @swapkit/helpers
|
|
2
2
|
|
|
3
|
+
## 6.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#400](https://github.com/swapkit/sdk/pull/400) [`d64a2a7`](https://github.com/swapkit/sdk/commit/d64a2a77fe56689abc8521a4670d57131bdf2648) Thanks [@ice-chillios](https://github.com/ice-chillios)! - **The SDK targets mainnet only.** The stagenet/testnet switch and everything that backed it are gone: `SKConfig` `envs.isStagenet`, the `StagenetChain` enum with its chain configs, chain ids, node URLs, RPC entries and bech32 prefixes, the Zcash testnet paths in the toolbox, and the APIs that were already marked deprecated. Nodes and RPC endpoints stay configurable per chain through `SKConfig`; wallets always derive mainnet addresses.
|
|
8
|
+
- [#421](https://github.com/swapkit/sdk/pull/421) [`f311348`](https://github.com/swapkit/sdk/commit/f311348c221764e64da368b06033f9a3c67d7a07) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Add PactSwap support: `ProviderName.PACTSWAP` is now available, and PactSwap routes resolve to the generic `swapkit` plugin for any wallet (like Flashnet and Mayan), which signs the route's prebuilt EVM or Tron transaction.
|
|
9
|
+
- [#410](https://github.com/swapkit/sdk/pull/410) [`89c5e68`](https://github.com/swapkit/sdk/commit/89c5e68d52c094aa8acc1356244060261549a18b) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Fix EVM network switching for extension wallets (Brave, Coinbase Wallet extension, …) on chains they don't ship by default, such as Arc.
|
|
10
|
+
- [#420](https://github.com/swapkit/sdk/pull/420) [`ec0d02c`](https://github.com/swapkit/sdk/commit/ec0d02cf4f35de1542bbd6c92324704c7c944c46) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Solana: `createTransaction` now rejects an SPL token transfer that has to create the recipient's associated token account when the sender's SOL can't cover the network fee, the token account rent and its own rent-exempt reserve. It throws `toolbox_solana_insufficient_balance` (with `balance`, `required`, `fee`, `tokenAccountRent` and `rentReserve`) instead of returning a transaction that fails simulation with "Transaction results in an account (0) with insufficient funds for rent". `estimateTransactionFee` is unaffected. The recipient token account is now created with `CreateIdempotent`, so a transfer no longer fails if that account is created between building and broadcasting.
|
|
11
|
+
- [#413](https://github.com/swapkit/sdk/pull/413) [`4af82d0`](https://github.com/swapkit/sdk/commit/4af82d0764c4260d0e4df5ffdd1b7809516f14f8) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Update the default `rpcUrls` for `Chain.Arc` to three public endpoints, in fallback order: the official `https://rpc.mainnet.arc.io`, `https://arc-rpc.publicnode.com` and `https://arc.drpc.org`. (via @swapkit/types@2.0.0)
|
|
12
|
+
- [#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.10)
|
|
13
|
+
|
|
3
14
|
## 5.4.2
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/api/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as
|
|
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};
|
|
@@ -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 ve,getChainConfig as tr}from"@swapkit/types";import{AllChains as Kn,Chain as R,EVMChains as Wn,getChainConfig as ae}from"@swapkit/types";import{match as He}from"ts-pattern";import{Chain as d,EVMChains as En,getChainConfig as K,UTXOChains as Nn}from"@swapkit/types";import{match as ie}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 re;((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"})(re||={});var Ee;((r)=>{r.highSlippage="highSlippage";r.highPriceImpact="highPriceImpact";r.insufficientBalance="insufficientBalance"})(Ee||={});var P;((v)=>{v.CHAINFLIP="CHAINFLIP";v.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";v.JUPITER="JUPITER";v.MAYACHAIN="MAYACHAIN";v.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";v.ONEINCH="ONEINCH";v.PANCAKESWAP="PANCAKESWAP";v.SUSHISWAP_V2="SUSHISWAP_V2";v.THORCHAIN="THORCHAIN";v.THORCHAIN_STREAMING="THORCHAIN_STREAMING";v.TRADERJOE_V2="TRADERJOE_V2";v.UNISWAP_V2="UNISWAP_V2";v.UNISWAP_V3="UNISWAP_V3";v.NEAR="NEAR";v.GARDEN="GARDEN";v.OKX="OKX";v.HARBOR="HARBOR";v.FLASHNET="FLASHNET";v.MAYAN="MAYAN";v.PACTSWAP="PACTSWAP"})(P||={});var Ne;((_)=>{_.LIQUIDITY="liquidity";_.NETWORK="network";_.INBOUND="inbound";_.OUTBOUND="outbound";_.AFFILIATE="affiliate";_.TAX="tax";_.PRIORITY="priority";_.SERVICE="service"})(Ne||={});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 ke(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?`: ${ke(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})`:""}`:ke(t);console.error(`SwapKitError [${r}]: ${c}`)}else if(i)console.error(`SwapKitError [${r}]: ${ke(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 me={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"},Oe=new Set;function Je(e){return Oe.add(e),()=>Oe.delete(e)}function Js(e,t){let n=me;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 Oe)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(me),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 w={get:(e)=>E.getState()[e],getState:E.getState,reinitialize:()=>E.setState({...tt,wallets:Object.values(me)}),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 _e(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:M,...C}={...t,...i},I=w.get("requestOptions"),q={...I.retry,...y},pe=!!c||r.endsWith(".json"),ue=wn(r,a),v=A?await A():{},ne=Tn(pe,{..._,...v}),Y=pe?JSON.stringify(c):u,Pe;for(let ge=0;ge<=q.maxRetries;ge++){let Ye=O||new AbortController,je=setTimeout(()=>Ye.abort(),T||I.timeoutMs);try{let F=await Sn(ue,{...C,body:Y,headers:ne,method:e,signal:Ye.signal});return clearTimeout(je),M?.(F)||F}catch(F){clearTimeout(je),Pe=F;let tn=F?.cause?.status;if(ge>=q.maxRetries||!An(F,tn))return S?S(F):Promise.reject(F);await yn(bn(ge,q))}}return S?S(Pe):Promise.reject(Pe)}}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:_e("GET",e),post:_e("POST",e)}),get:_e("GET"),post:_e("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 he}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 se({condition:e,id:t,warning:n}){if(e){if(rt.has(t))return;console.warn(n),rt.add(t)}}function Rn(e){return he(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 he(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 De=new Map,vn=120000;function In(e){let[t=""]=w.get("rpcUrls")[e];if(!t)throw se({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=De.get(e);if(n&&Date.now()-n.timestamp<vn)return n.url;return De.set(e,{timestamp:Date.now(),url:t}),t}async function j(e){let t=In(e),[,...n]=w.get("rpcUrls")[e];if(await it(e,t))return t;for(let i of n)if(await it(e,i))return De.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 he(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 he(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 fe(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 fe(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 Mn(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 Ln({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 Mn(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 ie(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 ie(e).with(...En,async()=>{try{if(!pt(t.replace(/^0X/,"0x")))return r;let[i,a]=await Promise.all([Vn({address:t,chain:e}),Ln({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 ie(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}`===ye(e).identifier).otherwise(()=>t===e)}var ye=(e)=>{let{baseDecimal:t}=K(e);return ie(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 Me({chain:e,symbol:t}){if(t.includes("/"))return"Synth";if(t.includes("~"))return"Trade";return ie(e).with(d.Radix,()=>t===d.Radix||`${e}.${t}`===ye(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 oe(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 Mi(e){return`https://tokens.swapkit.dev/images/${e.toLowerCase()}.png`}async function Li(e){let{loadTokenLists:t}=await import("./tokens.js"),n=await t(void 0,{source:w.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:_}=oe(u,c);if(_?.toLowerCase()===i)return a.identifier}return}import{match as be}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=Ae(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=Se(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 be(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 be(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=Ae(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,M=O.length<100&&a&&T?O.replace(/\.?0*$/,""):O;return u?`${M}${e}`:`${e}${M}`}formatBigIntToSafeValue(e,t){return X({bigIntDecimal:t||this.decimal||G,decimal:Se(this.decimalMultiplier),value:e})}#t(e,...t){let n=t.map(Ae),r=Math.max(G,Se(this.decimalMultiplier),...n.map(({decimalMultiplier:A})=>Se(A))),i=Math.min(r+Hn,Un),a=U(i),c=n.reduce((A,y)=>{let T=A.decimalMultiplier*y.decimalMultiplier,O=be(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=Ae(t),r=this.bigIntValue*n.decimalMultiplier,i=n.bigIntValue*this.decimalMultiplier;return be(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 Ae(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 Se(e){return e.toString().length-1}function Gn(e=""){let t=e.toUpperCase(),n=w.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=[R.Hype,R.Near,R.Ripple,R.Solana,R.Stellar,R.Sui,R.Ton,R.Tron],Ue=[R.THORChain,R.Maya];function Te(e,t){return J.includes(e)?t:t.toUpperCase()}var z=new Map,we=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=Me(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=ae(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(Te(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=He({chain:r,rest:i}).when(({rest:c})=>c.includes(".."),({chain:c,rest:u})=>`${c}.${u.replace(/\.\./g,"~")}`).when(({chain:c,rest:u})=>Ue.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:ne,address:Y}=r;return zn({address:Y,chain:ne,fromBaseDecimal:t,parsedValue:e})}let c=i&&!a?`${r.chain}.UNKNOWN-${r.address}`:a,{identifier:u,decimal:_}=ye(c),{chain:A,isSynthetic:y,isTradeAsset:T,address:O}=At(u),{baseDecimal:S}=ae(A),M=z.get(Te(A,u));if(!M&&n&&!y&&!T)return(async()=>{let{ticker:ne}=W(u),Y=await St({address:O,chain:A,ticker:ne});return Le({decimal:Y.decimals,identifier:Y.identifier,value:t?Ve(e,t):e})})();let C=M?.decimal||_;se({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:pe}=M||{decimal:C||S,identifier:u},ue=t?Ve(e,t):xe(e,I);return y||T?Xn(q,ue):Le({decimal:I,identifier:q,tax:pe,value:ue})}static async loadStaticAssets(e){let{loadTokenLists:t}=await import("@swapkit/tokens"),n=await t(e,{source:w.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:_}=oe(u,c),{baseDecimal:A}=ae(c),y=Te(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 M=J.includes(c)?`${c}:${_}`:`${c}:${_.toUpperCase()}`;we.set(M,a)}}return!0}static setStaticAssets(e){z.clear(),we.clear();for(let[t,n]of e.entries()){let{identifier:r}=n,{chain:i,symbol:a}=W(r),{address:c}=oe(a,i),{baseDecimal:u}=ae(i),_=n.chain??i,A=n.address??c,y=Te(_,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 M=J.includes(_)?`${_}:${A}`:`${_}:${A.toUpperCase()}`;we.set(M,r)}}return!0}static get staticAssets(){return z}}function ji(e){let t=D.from({chain:e});return He(e).with(R.Bitcoin,R.Litecoin,R.BitcoinCash,R.Dash,()=>t.set(0.00010001)).with(R.Dogecoin,()=>t.set(1.00000001)).with(R.Avalanche,R.Ethereum,R.Arbitrum,R.BinanceSmartChain,()=>t.set(0.00000001)).with(R.THORChain,R.Maya,()=>t.set(0)).with(R.Cosmos,R.Kujira,()=>t.set(0.000001)).otherwise(()=>t.set(0.00000001))}async function 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:_}=ae(e);return{decimals:_,identifier:`${e}.${n||"UNKNOWN"}`}}let c=await ft({address:t,chain:e}),u=`${e}.${c.ticker||n||"UNKNOWN"}-${t}`;return se({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:xe(n,t)})}function Xn(e,t=0){let n=e.includes(".")?e.split(".")?.[0]?.toUpperCase():void 0,r=n?Ue.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||R.THORChain}.${a}${i}${c}`,value:xe(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?Ve(r,n):r;return Le({decimal:i,identifier:a,value:c})}function Ve(e,t){let n=e instanceof B?e.getValue("string"):e;return xe(BigInt(n),t)}function xe(e,t){return typeof e==="bigint"?X({bigIntDecimal:t,decimal:t,value:e}):e}function Qn(e){let t=He(e).when((n)=>("chain"in n)&&n.chain!==void 0,({chain:n})=>n).otherwise((n)=>{let r=W(n.asset);return r.synth?R.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=we.get(c);if(u)return u;return null}return i}let{chain:t,symbol:n}=W(e.asset);return Me({chain:t,symbol:n})==="Native"?t:e.asset}function Zn(e,t,n){let r=e.split("."),i=r[0]?.toUpperCase(),a=Ue.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)&&fe(i)?fe(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}=oe(e,t);return{address:r&&!J.includes(t)?r.toLowerCase():r,ticker:n}}class Re extends B{eq(e){return this.eqValue(e)}static fromBigInt(e,t){return new Re({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(ve.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 Re(c.liquidityUnits).div(c.pool)}))}}function xt(e){let t=e===ve.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(ve.THORChain),vt=xt(ve.Maya);var Ge={};Xe(Ge,{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 We}from"@swapkit/types";import{match as us,P as de}from"ts-pattern";import{Chain as Ie,ChainId as le}from"@swapkit/types";import{array as x,boolean as V,coerce as Et,number as h,object as g,optional as p,string as o,union as $e,unknown as Be,z as s}from"zod";var Nt;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(Nt||={});var Ce;((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"})(Ce||={});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 Mt;((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"})(Mt||={});var oo=g({address:p(o()),chain:s.enum(Ie).optional(),chainId:s.enum(le),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(Ie),decimal:p(h()),isGasAsset:V(),isSynthetic:V(),symbol:o(),tax:p(g({buy:h(),sell:h()})),ticker:o()}),Lt=g({id:o(),market_cap:h(),name:o(),price_change_24h_usd:h(),price_change_percentage_24h_usd:h(),sparkline_in_7d:x(h()),timestamp:o(),total_volume:h()}).partial(),po=g({cg:p(Lt),identifier:o(),price_usd:h(),provider:o(),timestamp:h()}),Vt=x(g({cg:p(Lt),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(x(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:x(g({identifier:o()}))}),Ht=g({destinationAddress:o()}),Er=Ht.extend({affiliateFees:x(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:Be()}),$t=g({buyAsset:o(),buyAssetAmount:o(),buyAssetAmountMaxSlippage:o(),deadline:o().optional(),depositAddress:o(),depositAmount:o(),depositAsset:o(),tx:Be()}),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(x(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)}))}),Mr=g({affiliate:p(ee),liquidity:p(ee),network:p(ee),protocol:p(ee),tax:p(ee)}),Lr=g({affiliate:o(),bps:o(),isReferrer:V()}),Vr=g({affiliate:p(o()),affiliateFees:p(x(Lr)),broadcastedAt:p(h()),explorerUrl:p(o()),fees:p(Mr),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(le),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(Mt)),transient:s.optional(Dr),type:s.enum(kt)}),Bt=te.extend({legs:s.array(te)}),_o=te.extend({legs:x(te)}),ho=te.extend({legs:x(te)}),Fe=x(g({amount:o(),asset:o(),chain:o(),protocol:s.enum(P),type:s.enum(Ne)})),Ke=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 ce=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:ce}),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:ce.optional(),visible:s.boolean()}),Fr=x($e([o(),h(),x(o()),g({from:o(),value:ce}).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:x(o().describe("Names of the parameters to pass to the contract method")),contractParams:Fr}),Kr=g({typeUrl:o("/types.MsgDeposit"),value:g({coins:x(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:x(g({amount:o(),denom:o()})),fromAddress:o(),toAddress:o()})}),Gr=g({typeUrl:o(),value:Wr.shape.value.or(Kr.shape.value)}),qr=g({amount:x(g({amount:o(),denom:o()})),gas:o()}),Yr=g({accountNumber:h(),chainId:s.enum(le),fee:qr,memo:o(),msgs:x(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($e([h(),o()])),name:p(o()),verifyingContract:p(o()),version:p(o())}),message:s.record(o(),Be()),primaryType:o(),types:s.record(o(),x(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=$e([$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:Ke.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(x(ts)),maxStreamingQuantity:h().optional(),referrer:o().optional(),streamingInterval:h().optional(),tags:x(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(Ce))}),qt=x(g({code:s.enum(Ee),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(Fe),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(Ke),expectedBuyAmount:o().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:o().describe("Expected Buy amount max slippage"),expiration:p(o().describe("Expiration")),fees:Fe,inboundAddress:p(o().describe("Inbound address")),legs:x(rs),memo:p(o().describe("Memo")),meta:Gt,providers:x(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(Ce)),warnings:qt}),Yt=g({error:p(o().describe("Error message")),providerErrors:p(x(g({errorCode:p(s.enum(re)),message:p(o()),provider:s.enum(P).optional()}))),quoteId:o().describe("Quote ID"),routes:x(ss)}),jt=s.object({chainId:s.enum(le),createdAt:s.date(),id:s.number(),unit:s.string(),value:s.string()}),is=s.array(jt),Xt=s.union([jt,is]),wo=x(g({chain:s.enum(Ie),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(le),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:ce})),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:ce.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:Fe,provider:s.enum(P),sellAmount:s.string().describe("Sell amount"),sellAsset:s.string().describe("Asset to sell")}),zt=Pt.extend({estimatedTime:s.optional(Ke),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(re)),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(Ie).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(Ce))}),ps=s.object({data:s.optional(s.record(s.string(),s.string().optional())),errorCode:s.enum(re),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=w.get("widgetId"),t=w.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}=w.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}=w.get("endpoints");if(t)return t(e);let r=w.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}=w.get("endpoints");if(t)return t(e);let r=w.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}=w.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:de.string,spender:de.string},({routeId:n,spender:r})=>N(`/approve?routeId=${n}&sourceAddress=${r}`)).with({assetValue:de.instanceOf(D),spender:de.string,userWallet:de.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=w.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}=w.get("envs"),{enabled:i,quoteUrl:a,swapUrl:c}=w.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(!We.includes(n.chain)||n.isGasAsset||!!n.address)&&!Is.test(n.ticker)})}async function Ps(e){let{getSwapTo:t}=w.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 qe={};Xe(qe,{getInboundAddresses:()=>Ms,getLastBlock:()=>Ns,getMimirInfo:()=>Ds,getNodes:()=>Os,getRunePoolInfo:()=>Vs,getRunePoolProviderInfo:()=>Hs,getTHORNodeTNSDetails:()=>en,getTNSPreferredAsset:()=>Ls,getTcyClaimer:()=>Bs,getTcyClaimers:()=>Fs,getTcyStaker:()=>Us,getTcyStakers:()=>$s,getThorchainQueue:()=>ks});function L(e){let t=w.get("thornodeUrls");return`${e==="mayachain"?t.MAYA:t.THOR}/${e??"thorchain"}`}function Es(e){let t=e==="mayachain"?"mayaname":"thorname";return`${L(e)}/${t}`}function Ns(e="thorchain"){return m.get(`${L(e)}/lastblock`)}function ks(e){return m.get(`${L(e)}/queue`)}function Os(e){return m.get(`${L(e)}/nodes`)}function Ds(e){return m.get(`${L(e)}/mimir`)}function Ms(e){return m.get(`${L(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 Ls({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(`${L(e)}/runepool`)}function Hs({type:e,thorAddress:t}){return m.get(`${L(e)}/rune_provider/${t}`)}function Us({type:e,address:t}){return m.get(`${L(e)}/tcy_staker/${t}`)}function $s(e){return m.get(`${L(e)}/tcy_stakers`)}function Bs({type:e,address:t}){return m.get(`${L(e)}/tcy_claimer/${t}`)}function Fs(e){return m.get(`${L(e)}/tcy_claimers`)}var Fo={...Ge,mayachainMidgard:vt,thorchainMidgard:Rt,thornode:qe};
|
|
5
|
+
export{Gs as a,re as b,Ee as c,P as d,Ne as e,ln as f,cn as g,dn as h,b as i,Xs as j,me as k,Je as l,Js as m,pn as n,E as o,w as p,m as q,nt as r,mi as s,se as t,De 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,ye as F,Me as G,W as H,oe as I,Mi as J,Li as K,X as L,B as M,Gn as N,D as O,ji as P,Re as Q,Nt as R,Ce as S,kt as T,Ot as U,Dt as V,Mt as W,oo as X,ao as Y,lo as Z,co as _,ee as $,Lt 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,Fe as oa,Ke 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 gr,$a as wn,A as zt,Aa as Hr,B as Vt,Ba as zr,C as Xt,Ca as Vr,D as jt,Da as Xr,E as Gt,Ea as jr,F as qt,Fa as Gr,G as Yt,Ga as qr,H as Zt,Ha as Yr,I as Jt,Ia as Zr,J as Qt,Ja as Jr,K as er,Ka as Qr,L as tr,La as en,M as rr,Ma as tn,N as nr,Na as rn,O as or,Oa as nn,P as ir,Pa as on,Q as ar,Qa as an,R as h,Ra as sn,S as sr,Sa as un,T as ur,Ta as pn,U as pr,Ua as cn,V as cr,Va as mn,W as mr,Wa as dn,X as dr,Xa as ln,Y as lr,Ya as hn,Z as hr,Za as fn,_ as fr,_a as gn,a as v,aa as wr,ab as Pn,b as xt,ba as Pr,bb as vn,c as St,ca as vr,cb as yn,d as Ct,da as yr,db as bn,e as Mt,ea as br,f as N,fa as Er,g as _t,ga as Tr,h as ee,ha as Ar,i as d,ia as xr,j as Wt,ja as Sr,k as p,ka as Cr,l as $t,la as Mr,m as Dt,ma as _r,n as Rt,na as Wr,o as It,oa as $r,p as x,pa as Dr,q as Ot,qa as Rr,r as Ft,ra as Ir,s as Nt,sa as Or,t as M,ta as Fr,u as Lt,ua as Nr,v as Bt,va as Lr,w as kt,wa as Br,x as Ut,xa as kr,y as Kt,ya as Ur,z as Ht,za as Kr}from"./chunk-dna905ac.js";export*from"@swapkit/tokens";export*from"@swapkit/types";var L={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 L[e]}function B(e="average"){let t=S(e),n=10n,r=BigInt(Math.round(t*10));return{denominator:n,numerator:r}}function ce(e,t="average"){let{numerator:n,denominator:r}=B(t);return e*n/r}function me(e,t="average",n=!1){let r=S(t),o=e*r;return n?Math.floor(o):o}import{Chain as P,EVMChains as k}from"@swapkit/types";import{match as U}from"ts-pattern";function g(e,t){let n=e.length-1;return e.map((o,i)=>{if(i===n&&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 l={bech32:84,legacy:44,p2sh:49,taproot:86},C;((o)=>{o.P2PKH="P2PKH";o.P2SH_P2WPKH="P2SH_P2WPKH";o.P2WPKH="P2WPKH";o.P2TR="P2TR"})(C||={});var K=Object.freeze({["P2PKH"]:{inputSize:148,outputSize:34,purpose:l.legacy,witness:!1},["P2SH_P2WPKH"]:{inputSize:91,outputSize:32,purpose:l.p2sh,witness:!0},["P2WPKH"]:{inputSize:68,outputSize:31,purpose:l.bech32,witness:!0},["P2TR"]:{inputSize:58,outputSize:43,purpose:l.taproot,witness:!0}}),H=Object.values(C);function z(e){if(e===void 0)return;return H.find((t)=>K[t].purpose===e)}function V(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 ge(e){return z(V(e))}var X=Object.freeze([P.Near,P.Stellar,P.Sui]),we=Object.freeze([P.Ton]);function j({chain:e,derivationPath:t,index:n=0}){if(t)return t;return g(v[e],X.includes(e)?{account:n}:{index:n})}function G([e,t,n,r,o],{allHardened:i}={}){let s=i?"'":"",u=typeof o!=="number";if(typeof r!=="number")return`m/${e}'/${t}'/${n}'`;return`m/${e}'/${t}'/${n}'/${r}${s}${u?"":`/${o}${s}`}`}function Pe({chain:e,index:t,addressIndex:n=0,type:r}){let o=v[e],i=k.includes(e)?"evm":e===P.Solana?"solana":"other";return U([i,r]).with(["evm","legacy"],["evm","account"],()=>[44,60,0,t]).with(["evm","ledgerLive"],()=>[44,60,t,0,n]).with(["evm","nativeSegwitMiddleAccount"],["evm","segwit"],["evm",void 0],()=>g(o,{index:t})).with(["solana","account"],()=>[44,501,0,t]).with(["solana","legacy"],["solana","ledgerLive"],["solana","nativeSegwitMiddleAccount"],["solana","segwit"],["solana",void 0],()=>g(o,{index:t})).with(["other","nativeSegwitMiddleAccount"],()=>g(o,{account:t,index:n,purpose:l.bech32})).with(["other","segwit"],()=>g(o,{account:0,index:t,purpose:l.p2sh})).with(["other","legacy"],()=>g(o,{account:0,index:t,purpose:l.legacy})).with(["other","account"],["other","ledgerLive"],["other",void 0],()=>j({chain:e,index:t})).exhaustive()}function ve(e){let[t,n]=e.split("/").map((r)=>Number.parseInt(r,10));switch(n){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var ye=Object.freeze(Object.fromEntries(Object.keys(v).map((e)=>[e,G(v[e])])));import{Chain as q,getChainConfig as Y}from"@swapkit/types";function Z({liquidityUnits:e,poolUnits:t,runeDepth:n}){let r=c(e),o=c(t),i=c(n),s=r.mul(i),u=o.mul(o).mul(2),a=o.mul(r).mul(2),m=r.mul(r),f=o.mul(o).mul(o);return s.mul(u.sub(a).add(m)).div(f)}function J({liquidityUnits:e,poolUnits:t,assetDepth:n}){let r=c(e),o=c(t),i=c(n),s=r.mul(i),u=o.mul(o).mul(2),a=o.mul(r).mul(2),m=r.mul(r),f=s.mul(u.sub(a).add(m)),w=o.mul(o).mul(o);return f.div(w)}function Ae({percent:e,runeDepth:t,liquidityUnits:n,poolUnits:r}){return Z({liquidityUnits:n,poolUnits:r,runeDepth:t}).mul(e)}function xe({percent:e,assetDepth:t,liquidityUnits:n,poolUnits:r}){return J({assetDepth:t,liquidityUnits:n,poolUnits:r}).mul(e)}function c(e){return h.fromBigInt(BigInt(e),Y(q.THORChain).baseDecimal)}function Q({liquidityUnits:e,poolUnits:t,runeDepth:n,assetDepth:r}){return{assetAmount:c(r).mul(e).div(t),runeAmount:c(n).mul(e).div(t)}}function Se({liquidityUnits:e,poolUnits:t,runeDepth:n,assetDepth:r,percent:o}){return Object.fromEntries(Object.entries(Q({assetDepth:r,liquidityUnits:e,poolUnits:t,runeDepth:n})).map(([i,s])=>[i,s.mul(o)]))}function Ce({runeDepth:e,poolUnits:t,assetDepth:n,liquidityUnits:r,runeAmount:o,assetAmount:i}){let s=new h({decimal:8,value:e}),u=new h({decimal:8,value:n}),a=new h({decimal:8,value:t}),m=new h({decimal:8,value:o}),f=new h({decimal:8,value:i}),w=m.mul(u),T=f.mul(s),D=m.mul(f),R=s.mul(u),I=a.mul(w.add(T.add(D.mul(2)))),O=w.add(T.add(R.mul(2))),A=I.div(O),E=c(r).add(A);if(A.getBaseValue("number")===0)return E.div(a).getBaseValue("number");let F=a.add(E);return E.div(F).getBaseValue("number")}function Me({runeAmount:e,assetAmount:t,runeDepth:n,assetDepth:r}){if(e==="0"||t==="0"||n==="0"||r==="0")return 0;let o=c(n),i=c(r),s=c(t),u=c(e),a=s.mul(o).sub(i.mul(u)),m=i.mul(u).add(o.mul(i));return Math.abs(a.div(m).getBaseValue("number"))}import{Chain as y}from"@swapkit/types";import{match as te}from"ts-pattern";function Ie({type:e,address:t}){return`${e}:${t}`}function Oe({address:e,unbondAmount:t}){return`${"UNBOND"}:${e}:${t}`}function Fe(e){return b("POOL+",e)}function Ne({chain:e,symbol:t,address:n,...r}){let o=re({chain:e,symbol:t}),i=n?`:${n}:`:":";return b(`${"+"}:${o}${i}`,r)}function Le({chain:e,symbol:t,ticker:n,basisPoints:r,targetAsset:o}){let i=e==="ETH"&&n!=="ETH"?`${n}-${t.slice(-3)}`:t,s=o?`:${o}`:"";return`${"-"}:${e}.${i}:${r}${s}`}function Be({basisPoints:e,...t}){return b(`${"POOL-"}:${e}`,t)}function ke({name:e,chain:t,address:n,owner:r}){let o=`${"~"}:${e}:${t}:${n}`,i=r?`:${r}`:"";return`${o}${i}`}function Ue({name:e,chain:t,asset:n,payout:r,owner:o}){return`${"~"}:${e}:${t}:${r}:${o}:${n}`}function Ke(e,{address:t}){return`${e}:${t}`}function He(e,{unstakeBps:t,...n}){let r=t?`:${t}`:"",o=`${e}${r}`;return b(`${o}`,n)}function b(e,{affiliateAddress:t,affiliateBasisPoints:n}={}){let r=`${e}${t?`:${t}:${n||0}`:""}`;return r.endsWith(":")?r.slice(0,-1):r}function re({chain:e,symbol:t}){return te(e).with(y.Bitcoin,y.Dogecoin,y.Litecoin,()=>e.slice(0,1).toLowerCase()).with(y.BitcoinCash,()=>"c").otherwise(()=>`${e}.${t}`)}function ze(e){if(e<0)throw new d({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return 10+e}function Ve(e){if(e<0)throw new d({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return Math.round((10+e*1.0512)*10000000000)/10000000000}function Xe(e){if(e.length>30)return!1;let t=/^[a-zA-Z0-9+_-]+$/g;return!!e.match(t)}import{getChainConfig as _}from"@swapkit/types";function Je(){return typeof window.ethereum<"u"}function Qe(e){return ne().includes(e)}function ne(){let e=window?.ethereum&&!window.ethereum?.isBraveWallet,t=window?.ctrl||window?.ethereum?.__XDEFI,n=window?.vultisig,r=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(p.METAMASK);if(t)a.push(p.CTRL);if(n)a.push(p.VULTISIG);if(r)a.push(p.BRAVE);if(o)a.push(p.TRUSTWALLET_WEB);if(i)a.push(p.COINBASE_WEB);if(se())a.push(p.OKX_MOBILE);if(s)a.push(p.BITGET);if(u)a.push(p.ONEKEY);return a}async function oe(e,t,n){let r=_(t);try{await W({method:"wallet_switchEthereumChain",params:[{chainId:r.chainIdHex}],provider:e})}catch(o){if(!n)throw new d("helpers_failed_to_switch_network",{error:o,reason:"networkParams not provided"});await ae(e,n)}}function et({chains:e,supportedChains:t,walletType:n}){let r=e.filter((i)=>!i||t.includes(i));if(r.length===0)throw new d("wallet_chain_not_supported",{chain:e.join(", "),wallet:n});let o=e.filter((i)=>!t.includes(i));return M({condition:o.length>0,id:`wallet_chain_not_supported_${n}`,warning:`${n} wallet does not support the following chains: ${o.join(", ")}. These chains will be ignored.`}),r}function ie(e,t,n){return async(...r)=>{let{chainIdHex:o}=_(n);if((await t.getNetwork()).chainId.toString()===o)return e(...r);try{await oe(t,n)}catch(i){throw new d({errorKey:"helpers_failed_to_switch_network",info:{error:i}})}return e(...r)}}function tt({toolbox:e,chain:t,provider:n,methodNames:r=[]}){let i=[...r,"approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"].reduce((s,u)=>{if(!e[u])return s;let a=e[u];if(typeof a!=="function")return s;let m=ie(a,n,t);return{...s,[u]:m}},{});return{...e,...i}}function ae(e,t){return W({method:"wallet_addEthereumChain",params:[t],provider:e})}function rt(e){window.ethereum?.on("accountsChanged",()=>e()),window.ctrl?.ethereum.on("accountsChanged",()=>e())}function nt(){let{isTrust:e,isBraveWallet:t,__XDEFI:n,overrideIsMetaMask:r,selectedProvider:o}=window?.ethereum||{};if(e)return p.TRUSTWALLET_WEB;if(t)return p.BRAVE;if(r&&o?.isCoinbaseWallet)return p.COINBASE_WEB;if(n)return p.CTRL;if(window?.$onekey?.ethereum)return p.ONEKEY;return p.METAMASK}function ot(){let e=[];function t(r){if(e.map((o)=>o.info.uuid).includes(r.detail.info.uuid))return;e.push(r.detail)}window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider"));function n(){window.removeEventListener("eip6963:announceProvider",t)}return{providers:e,removeEIP6963EventListener:n}}function se(){let e=navigator.userAgent,t=/iphone|ipad|ipod|ios/i.test(e),n=/android|XiaoMi|MiuiBrowser/i.test(e),r=t||n,o=/OKApp/i.test(e);return r&&o}function W({provider:e,params:t,method:n}){if(!e?.send)throw new d("helpers_not_found_provider");let r=t?Array.isArray(t)?t:[t]:[];return e.send(n,r)}export{X as ACCOUNT_INDEXED_CHAINS,gr as ApiV2ErrorSchema,cn as ApprovalTransactionSchema,_t as ApproveMode,un as ApproveRequestParams,pn as ApproveResponseSchema,ir as AssetValue,wr as AssetValueSchema,nr as BigIntArithmetics,Ar as BrokerDepositChannelParamsSchema,Qr as ChainflipMetadataSchema,Pr as CoinGeckoMetadataSchema,Vt as CommonAssetStrings,Ur as CosmosTransactionSchema,L as DEFAULT_FEE_MULTIPLIERS,Tr as DepositChannelParamsSchema,xr as DepositChannelResponseSchema,ye as DerivationPath,Br as EVMTransactionDetailsParamsSchema,kr as EVMTransactionDetailsSchema,Nr as EVMTransactionSchema,xt as ErrorCode,Rr as EstimatedTimeSchema,N as FeeOption,Mt as FeeTypeEnum,Dr as FeesSchema,sn as GasResponseSchema,an as GasSchema,Vr as HYPERCORE_USDC_TOKEN_ID,Xr as HyperCoreEip712TypedDataSchema,jr as HyperCoreSendAssetActionSchema,qr as HyperCoreSendAssetTransactionSchema,Gr as HyperCoreTypedDataTransactionSchema,Rt as LedgerErrorCode,ee as MemoType,Sr as NearDepositChannelParamsSchema,Cr as NearDepositChannelResultSchema,Mr as NearSwapResponseSchema,v as NetworkDerivationPath,Er as PriceRequestSchema,yr as PriceResponseSchema,sr as PriorityLabel,cr as ProviderAction,Ct as ProviderName,br as QuoteRequestSchema,nn as QuoteResponseRouteItem,on as QuoteResponseSchema,wn as QuoteRouteV2Response,vn as QuoteV2ResponseSchema,ln as QuoteV3ResponseSchema,Ot as RequestClient,Yr as RouteLegSchema,Zr as RouteLegWithoutAddressesSchema,Jr as RouteQuoteMetadataAssetSchema,en as RouteQuoteMetadataSchema,tn as RouteQuoteMetadataV2Schema,Pn as RouteQuoteProviderErrorSchema,ur as RouteQuoteTxType,rn as RouteQuoteWarningSchema,we as SINGLE_WALLET_CHAINS,x as SKConfig,Kr as StarknetTransactionSchema,mn as StellarApprovalTransactionSchema,dn as SwapApprovalTransactionSchema,bn as SwapKitApi,d as SwapKitError,h as SwapKitNumber,yn as SwapRouteV2ResponseSchema,fn as SwapToAssetSchema,hn as SwapToRequestSchema,gn as SwapToResponseSchema,Hr as TONTransactionMessageSchema,zr as TONTransactionSchema,vr as TokenDetailsMetadataSchema,lr as TokenSchema,_r as TrackerResponseSchema,fr as TrackingRequestQuerySchema,hr as TrackingRequestSchema,dr as TrackingStatus,$r as TransactionDTOSchema,Wr as TransactionSchema,Lr as TronTransactionSchema,mr as TxnStatus,pr as TxnType,l as UTXOPurpose,C as UTXOScriptType,K as UTXO_SCRIPT_TYPES,H as UTXO_SCRIPT_TYPE_LIST,p as WalletOption,St as WarningCodeEnum,Lt as _rpcCache,rt as addAccountsChangedCallback,ae as addEVMWalletNetwork,me as applyFeeMultiplier,ce as applyFeeMultiplierToBigInt,Jt as assetFromString,jt as decodeABIDynamicString,Xt as decodeABIString,G as derivationPathToString,Gt as fetchTokenInfo,et as filterSupportedChains,tr as findAssetBy,rr as formatBigIntToSafeValue,Zt as getAssetType,J as getAsymmetricAssetShare,xe as getAsymmetricAssetWithdrawAmount,Z as getAsymmetricRuneShare,Ae as getAsymmetricRuneWithdrawAmount,zt as getChainIdentifier,Yt as getCommonAssetInfo,Pe as getDerivationPathFor,ot as getEIP6963Wallets,nt as getETHDefaultWallet,Ce as getEstimatedPoolShare,Ht as getExplorerAddressUrl,Kt as getExplorerTxUrl,S as getFeeMultiplier,B as getFeeMultiplierAsBigInt,Me as getLiquiditySlippage,Ve as getMAYANameCost,Ne as getMemoForDeposit,Ie as getMemoForLeaveAndBond,Ue as getMemoForNamePreferredAssetRegister,ke as getMemoForNameRegister,Fe as getMemoForRunePoolDeposit,Be as getMemoForRunePoolWithdraw,Ke as getMemoForTcyClaim,He as getMemoForTcyStake,Oe as getMemoForUnbond,Le as getMemoForWithdraw,ar as getMinAmountByChain,V as getPurposeFromPath,kt as getRPCUrl,Bt as getRPCUrlSync,Q as getSymmetricPoolShare,Se as getSymmetricWithdraw,ze as getTHORNameCost,er as getTokenLogoURI,ge as getUTXOScriptTypeForPath,z as getUTXOScriptTypeForPurpose,ve as getWalletFormatFor,Ut as initializeRPCUrlsWithFallback,Qe as isDetected,qt as isGasAsset,Ir as isTransactionValue,Je as isWeb3Detected,ne as listWeb3EVMWallets,se as okxMobileEnabled,Qt as parseSymbolForAddress,Or as parseTransactionValue,tt as prepareNetworkSwitch,W as providerRequest,Wt as registerErrorCodes,Dt as registerWalletOption,j as resolveDerivationPath,Ft as signWidgetRequest,$t as subscribeWalletOptionRegistration,It as swapKitConfigStore,oe as switchEVMWalletNetwork,Fr as toHexTransactionValue,g as updateDerivationPath,or as validateIdentifier,Xe as validateTNS,M as warnOnce,ie as wrapMethodWithNetworkSwitch,Nt 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-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};
|
|
@@ -404,7 +404,6 @@ export declare const SwapKitApi: {
|
|
|
404
404
|
getSwapTo(params: import(".").SwapToRequest): Promise<import(".").SwapToResponse>;
|
|
405
405
|
SKRequestClient: {
|
|
406
406
|
extend: (newOptions: RequestInit & {
|
|
407
|
-
responseHandler?: (response: any) => any;
|
|
408
407
|
json?: unknown;
|
|
409
408
|
onError?: (error: any) => any;
|
|
410
409
|
onSuccess?: (response: any) => any;
|
|
@@ -420,7 +419,6 @@ export declare const SwapKitApi: {
|
|
|
420
419
|
abortController?: AbortController;
|
|
421
420
|
}) => /*elided*/ any;
|
|
422
421
|
get: <T>(url: string, options?: RequestInit & {
|
|
423
|
-
responseHandler?: (response: any) => any;
|
|
424
422
|
json?: unknown;
|
|
425
423
|
onError?: (error: any) => any;
|
|
426
424
|
onSuccess?: (response: any) => any;
|
|
@@ -436,7 +434,6 @@ export declare const SwapKitApi: {
|
|
|
436
434
|
abortController?: AbortController;
|
|
437
435
|
}) => Promise<T>;
|
|
438
436
|
post: <T>(url: string, options?: RequestInit & {
|
|
439
|
-
responseHandler?: (response: any) => any;
|
|
440
437
|
json?: unknown;
|
|
441
438
|
onError?: (error: any) => any;
|
|
442
439
|
onSuccess?: (response: any) => any;
|
|
@@ -4,7 +4,6 @@ import type { ProviderName } from "../../types/quotes";
|
|
|
4
4
|
import { type BrokerDepositChannelParams, type NearDepositChannelParams, type PriceRequest, type QuoteRequest, type SearchTokensResponse, type SwapRouteV2Response, type SwapToRequest, type SwapToResponse, type TokenListProvidersResponse, type TokensResponseV2, type TrackingRequest } from "./types";
|
|
5
5
|
export declare const SKRequestClient: {
|
|
6
6
|
extend: (newOptions: RequestInit & {
|
|
7
|
-
responseHandler?: (response: any) => any;
|
|
8
7
|
json?: unknown;
|
|
9
8
|
onError?: (error: any) => any;
|
|
10
9
|
onSuccess?: (response: any) => any;
|
|
@@ -20,7 +19,6 @@ export declare const SKRequestClient: {
|
|
|
20
19
|
abortController?: AbortController;
|
|
21
20
|
}) => /*elided*/ any;
|
|
22
21
|
get: <T>(url: string, options?: RequestInit & {
|
|
23
|
-
responseHandler?: (response: any) => any;
|
|
24
22
|
json?: unknown;
|
|
25
23
|
onError?: (error: any) => any;
|
|
26
24
|
onSuccess?: (response: any) => any;
|
|
@@ -36,7 +34,6 @@ export declare const SKRequestClient: {
|
|
|
36
34
|
abortController?: AbortController;
|
|
37
35
|
}) => Promise<T>;
|
|
38
36
|
post: <T>(url: string, options?: RequestInit & {
|
|
39
|
-
responseHandler?: (response: any) => any;
|
|
40
37
|
json?: unknown;
|
|
41
38
|
onError?: (error: any) => any;
|
|
42
39
|
onSuccess?: (response: any) => any;
|