@swapkit/helpers 5.2.1 → 5.3.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 +8 -0
- package/dist/api/index.js +1 -1
- package/dist/chunk-q85p4mys.js +5 -0
- package/dist/index.js +1 -1
- package/dist/types/modules/swapKitError.d.ts +4 -0
- package/package.json +4 -4
- package/dist/chunk-q0s1vae8.js +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @swapkit/helpers
|
|
2
2
|
|
|
3
|
+
## 5.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#371](https://github.com/swapkit/sdk/pull/371) [`6236419`](https://github.com/swapkit/sdk/commit/623641928563f9e0141c47395a2e1febbd182093) Thanks [@ice-chillios](https://github.com/ice-chillios)! - EVM nonce derivation now reads the "pending" transaction count and serialises allocation per chainId:address behind an expiring monotonic floor, so concurrent sends from one address no longer reuse a mined-only count and silently replace each other in the mempool. Allocations are released when a send provably never reached the wire (gas or fee estimation failure, a rejected send, a signer that cannot sign), so a failed attempt no longer strands a nonce gap; transport-ambiguous failures keep the nonce reserved until the floor expires, and a floor never expires while one of its nonces is held by an in-flight send (a signature awaiting hardware or wallet confirmation cannot have its nonce re-issued). sendTransaction and state-changing contract calls both resolve through the signer's own provider when it carries one — approve + send from a single toolbox share one floor, and the transport-failure fallback broadcast and its hash lookup go through that same provider. Caller-supplied nonces are honoured on the ERC-20 transfer and approval builder paths. The native sweep builder no longer pins a nonce into the built transaction — the OP-stack L1 fee serialisation performs its own plain "pending" read for byte-length only (build-only APIs consume no allocation) — so both `transfer` and a two-step `createTransaction`/`sendTransaction` sweep allocate through the floor on the send path. The toolbox `broadcastTransaction` no longer crashes when invoked (previously an unbound method reference).
|
|
8
|
+
- [#381](https://github.com/swapkit/sdk/pull/381) [`3b750ec`](https://github.com/swapkit/sdk/commit/3b750ec492b40b028f50c1adcf2347c647ad3f2f) Thanks [@ochhii1337](https://github.com/ochhii1337)! - TON's native coin is now `GRAM`, so the gas asset is `TON.GRAM` instead of `TON.TON`.
|
|
9
|
+
- Update generated token lists. (via @swapkit/tokens@5.0.6)
|
|
10
|
+
|
|
3
11
|
## 5.2.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/dist/api/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as j,$a as
|
|
1
|
+
import{$ as j,$a as ka,Aa as K,Ba as L,Ca as M,Da as N,Ea as O,Fa as P,Ga as Q,Ha as R,Ia as S,Ja as T,Ka as U,La as V,Ma as W,Na as X,Oa as Y,Pa as Z,Qa as _,Ra as aa,S as a,Sa as ba,T as b,Ta as ca,U as c,Ua as da,V as d,Va as ea,W as e,Wa as fa,X as f,Xa as ga,Y as g,Ya as ha,Z as h,Za as ia,_ as i,_a as ja,aa as k,ab as la,ba as l,bb as ma,ca as m,cb as na,da as n,db as oa,ea as o,fa as p,ga as q,ha as r,ia as s,ja as t,ka as u,la as v,ma as w,na as x,oa as y,pa as z,qa as A,ra as B,sa as C,ta as D,ua as E,va as F,wa as G,xa as H,ya as I,za as J}from"../chunk-q85p4mys.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 rn=Object.defineProperty;var on=(e)=>e;function an(e,t){this[e]=on.bind(null,t)}var Xe=(e,t)=>{for(var n in t)rn(e,n,{get:t[n],enumerable:!0,configurable:!0,set:an.bind(t,n)})};var ze=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{Chain as Re,getChainConfig as ss}from"@swapkit/types";import{AllChains as Gn,Chain as x,EVMChains as qn,getChainConfig as ce}from"@swapkit/types";import{match as He}from"ts-pattern";import{Chain as d,EVMChains as On,getChainConfig as F,UTXOChains as Dn}from"@swapkit/types";import{match as ie}from"ts-pattern";import{AllChains as et,Chain as Ze,getChainConfig as mn,MAYAConfig as _n,StagenetChain as he,StagenetMAYAConfig as tt,StagenetTHORConfig as nt,THORConfig as hn}from"@swapkit/types";import{createStore as fn}from"zustand/vanilla";import{AllChains as ln,getChainConfig as cn}from"@swapkit/types";var jr=Object.freeze(Object.fromEntries(ln.map((e)=>[e,Object.freeze(cn(e).networkDerivationPath)])));var oe;((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"})(oe||={});var Ee;((s)=>{s.highSlippage="highSlippage";s.highPriceImpact="highPriceImpact";s.insufficientBalance="insufficientBalance"})(Ee||={});var N;((R)=>{R.CHAINFLIP="CHAINFLIP";R.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";R.JUPITER="JUPITER";R.MAYACHAIN="MAYACHAIN";R.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";R.ONEINCH="ONEINCH";R.PANCAKESWAP="PANCAKESWAP";R.SUSHISWAP_V2="SUSHISWAP_V2";R.THORCHAIN="THORCHAIN";R.THORCHAIN_STREAMING="THORCHAIN_STREAMING";R.TRADERJOE_V2="TRADERJOE_V2";R.UNISWAP_V2="UNISWAP_V2";R.UNISWAP_V3="UNISWAP_V3";R.NEAR="NEAR";R.GARDEN="GARDEN";R.OKX="OKX";R.HARBOR="HARBOR";R.FLASHNET="FLASHNET";R.MAYAN="MAYAN"})(N||={});var Ne;((m)=>{m.LIQUIDITY="liquidity";m.NETWORK="network";m.INBOUND="inbound";m.OUTBOUND="outbound";m.AFFILIATE="affiliate";m.TAX="tax";m.PRIORITY="priority";m.SERVICE="service"})(Ne||={});var dn;((s)=>{s.Average="average";s.Fast="fast";s.Fastest="fastest"})(dn||={});var pn;((n)=>{n.Approve="approve";n.CheckOnly="checkOnly"})(pn||={});var un;((A)=>{A.NAME_REGISTER="~";A.BOND="BOND";A.DEPOSIT="+";A.LEAVE="LEAVE";A.UNBOND="UNBOND";A.WITHDRAW="-";A.RUNEPOOL_DEPOSIT="POOL+";A.RUNEPOOL_WITHDRAW="POOL-";A.CLAIM_TCY="tcy";A.STAKE_TCY="tcy+";A.UNSTAKE_TCY="tcy-"})(un||={});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_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_solana_no_signer:50401,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 Pe(e){return JSON.stringify(e,(t,n)=>typeof n==="bigint"?n.toString():n)}class y extends Error{static ErrorCode=Qe;errorKey;info;constructor(e,t){let n=typeof e==="string",s=n?e:e.errorKey,r=n?void 0:e.info,a=`${s}${r?`: ${Pe(r)}`:""}`;super(a);if(Object.setPrototypeOf(this,y.prototype),this.name="SwapKitError",this.errorKey=s,this.info=r,this.cause=t,t){let c=t instanceof Error?`${t.message}${t.cause?` (${t.cause})`:""}`:Pe(t);console.error(`SwapKitError [${s}]: ${c}`)}else if(r)console.error(`SwapKitError [${s}]: ${Pe(r)}`)}}function Jr(e){let t=Qe;for(let[n,s]of Object.entries(e)){if(Object.hasOwn(t,n)){if(t[n]===s)continue;throw new y({errorKey:"helpers_invalid_params",info:{code:s,existingCode:t[n],key:n}})}let r=Object.keys(t).find((a)=>t[a]===s);if(r)throw new y({errorKey:"helpers_invalid_params",info:{code:s,existingKey:r,key:n}});t[n]=s}}var _e={BITGET:"BITGET",BRAVE:"BRAVE",COINBASE_MOBILE:"COINBASE_MOBILE",COINBASE_WEB:"COINBASE_WEB",COSMOSTATION:"COSMOSTATION",CTRL:"CTRL",EIP6963:"EIP6963",EXODUS:"EXODUS",KEEPKEY:"KEEPKEY",KEEPKEY_BEX:"KEEPKEY_BEX",KEPLR:"KEPLR",KEYSTORE:"KEYSTORE",LEAP:"LEAP",LEDGER:"LEDGER",METAMASK:"METAMASK",OKX:"OKX",OKX_MOBILE:"OKX_MOBILE",ONEKEY:"ONEKEY",PASSKEY_WALLET:"PASSKEY_WALLET",PASSKEYS:"PASSKEYS",PETRA:"PETRA",PHANTOM:"PHANTOM",POLKADOT_JS:"POLKADOT_JS",RADIX_WALLET:"RADIX_WALLET",TALISMAN:"TALISMAN",TREZOR:"TREZOR",TRONLINK:"TRONLINK",TRUSTWALLET_WEB:"TRUSTWALLET_WEB",VULTISIG:"VULTISIG",WALLET_SELECTOR:"WALLET_SELECTOR",WALLETCONNECT:"WALLETCONNECT",XAMAN:"XAMAN"},ke=new Set;function Je(e){return ke.add(e),()=>ke.delete(e)}function to(e,t){let n=_e;if(Object.hasOwn(n,e)){if(n[e]===t)return;throw new y({errorKey:"helpers_invalid_params",info:{existingValue:n[e],key:e,value:t}})}n[e]=t;for(let s of ke)s(t)}var gn;((s)=>{s[s.NoError=36864]="NoError";s[s.LockedDevice=21781]="LockedDevice";s[s.TC_NotFound=65535]="TC_NotFound"})(gn||={});var yn=et.reduce((e,t)=>{if(!e.THOR_STAGENET)e[he.Maya]=tt.rpcUrls,e[he.THORChain]=nt.rpcUrls;return e[t]=mn(t).rpcUrls,e},{}),bn={[Ze.THORChain]:hn.nodeUrl,[Ze.Maya]:_n.nodeUrl,[he.THORChain]:nt.nodeUrl,[he.Maya]:tt.nodeUrl},st={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:et,endpoints:{},envs:{apiUrl:"https://api.swapkit.dev",devApiUrl:"https://dev-api.swapkit.dev",isDev:!1,isStagenet:!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:yn,thornodeUrls:bn,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(_e),widgetId:"",widgetKey:""},P=fn((e)=>({...st,setApiKey:(t,n)=>e((s)=>({apiKeys:{...s.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((s)=>({endpoints:{...s.endpoints,[t]:n}})),setEnv:(t,n)=>e((s)=>({envs:{...s.envs,[t]:n}})),setFeeMultipliers:(t)=>e(()=>({feeMultipliers:t})),setIntegrationConfig:(t,n)=>e((s)=>({integrations:{...s.integrations,[t]:n}})),setRequestOptions:(t)=>e((n)=>({requestOptions:{retry:{...n.requestOptions.retry,...t.retry},timeoutMs:t.timeoutMs||n.requestOptions.timeoutMs}})),setRpcUrl:(t,n)=>e((s)=>({rpcUrls:{...s.rpcUrls,[t]:n}})),setThornodeUrl:(t,n)=>e((s)=>({thornodeUrls:{...s.thornodeUrls,[t]:n}})),setWidgetId:(t)=>e({widgetId:t}),setWidgetKey:(t)=>e({widgetKey:t})}));Je((e)=>{P.setState((t)=>t.wallets.includes(e)?t:{wallets:[...t.wallets,e]})});var S={get:(e)=>P.getState()[e],getState:P.getState,reinitialize:()=>P.setState({...st,wallets:Object.values(_e)}),set:(e)=>P.getState().setConfig(e),setApiKey:(e,t)=>P.getState().setApiKey(e,t),setEndpoint:(e,t)=>P.getState().setEndpoint(e,t),setEnv:(e,t)=>P.getState().setEnv(e,t),setFeeMultipliers:(e)=>P.getState().setFeeMultipliers(e),setIntegrationConfig:(e,t)=>P.getState().setIntegrationConfig(e,t),setRequestOptions:(e)=>P.getState().setRequestOptions(e),setRpcUrl:(e,t)=>P.getState().setRpcUrl(e,t),setThornodeUrl:(e,t)=>P.getState().setThornodeUrl(e,t),setWidgetId:(e)=>P.getState().setWidgetId(e),setWidgetKey:(e)=>P.getState().setWidgetKey(e)};var An=(e)=>new Promise((t)=>setTimeout(t,e)),Sn=(e,{baseDelay:t,backoffMultiplier:n,maxDelay:s})=>Math.min(t*n**e,s);function Tn(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 wn=async(e,t)=>{let n=await fetch(e,t),s;try{s=await n.json()}catch{if(!n.ok)throw new y({errorKey:"helpers_invalid_response",info:{status:n.status,statusText:n.statusText}},{status:n.status,statusText:n.statusText});return{}}if(!n.ok){let a={data:s?.data,error:s?.error,message:s?.message,status:n.status};throw new y({errorKey:s?.error||"helpers_invalid_response",info:a},a)}let r=s?.routes?.length||s?.result||s?.data&&!s?.error;if(s?.error&&!r){let a={data:s.data,error:s.error,message:s.message,status:n.status};throw new y({errorKey:s.error,info:a},a)}if(s?.providerErrors?.length||s?.error&&r)console.warn("[SwapKit] Partial errors in response:",s.providerErrors||s.error);return s};function fe(e,t={}){return async function(s,r={}){let{searchParams:a,json:c,body:u,headers:m,dynamicHeader:v,retry:b,timeoutMs:A,abortController:E,onError:w,onSuccess:M,responseHandler:C,...I}={...t,...r},se=S.get("requestOptions"),q={...se.retry,...b},R=!!c||s.endsWith(".json"),ge=Rn(s,a),qe=v?await v():{},re=xn(R,{...m,...qe}),Y=R?JSON.stringify(c):u,Ie;for(let me=0;me<=q.maxRetries;me++){let Ye=E||new AbortController,je=setTimeout(()=>Ye.abort(),A||se.timeoutMs);try{let V=await wn(ge,{...I,body:Y,headers:re,method:e,signal:Ye.signal});return clearTimeout(je),M?.(V)||C?.(V)||V}catch(V){clearTimeout(je),Ie=V;let sn=V?.cause?.status;if(me>=q.maxRetries||!Tn(V,sn))return w?w(V):Promise.reject(V);await An(Sn(me,q))}}return w?w(Ie):Promise.reject(Ie)}}function xn(e,t){return{...t,...e&&{"Content-Type":"application/json"}}}function Rn(e,t){let n=new URL(e);if(t)n.search=new URLSearchParams(t).toString();return n.toString()}var _={extend:(e)=>({extend:(t)=>_.extend({...e,...t}),get:fe("GET",e),post:fe("POST",e)}),get:fe("GET"),post:fe("POST")};async function rt(e,t,n,s){let r=`${t}:${n}:${s}`,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(r));return Array.from(new Uint8Array(u)).map((m)=>m.toString(16).padStart(2,"0")).join("")}import{Chain as f,CosmosChains as lt,EVMChains as ct,getChainConfig as dt,StagenetChains as vn,SubstrateChains as Cn,UTXOChains as pt}from"@swapkit/types";import{match as ye}from"ts-pattern";function yo(e,t){try{return e()}catch(n){if(t)throw new y(t,n);return}}var ot=new Set;function j({condition:e,id:t,warning:n}){if(e){if(ot.has(t))return;console.warn(n),ot.add(t)}}function In(e){return ye(e).with(...ct,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...pt,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...lt,...vn,()=>({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 y("helpers_chain_not_supported",{chain:e})})}function it(e){return ye(e).with(f.Aptos,()=>"/-/healthy").with(f.Aleo,()=>"/mainnet/block/height/latest").with(f.Hype,()=>"/info").with(f.Radix,()=>"/status/network-configuration").with(f.Stellar,()=>"").with(f.Tron,()=>"/wallet/getnowblock").otherwise(()=>"")}async function at(e,t){try{let n=t.startsWith("wss")?t.replace("wss","https"):t;if(e===f.Aleo||e===f.Stellar)return(await fetch(`${n}${it(e)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)})).ok;return(await fetch(`${n}${it(e)}`,{body:JSON.stringify(In(e)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)})).ok}catch{return!1}}var Oe=new Map,En=120000;function Nn(e){let[t=""]=S.get("rpcUrls")[e];if(!t)throw j({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 y("helpers_chain_no_public_or_set_rpc_url",{chain:e});let n=Oe.get(e);if(n&&Date.now()-n.timestamp<En)return n.url;return Oe.set(e,{timestamp:Date.now(),url:t}),t}async function X(e){let t=Nn(e),[,...n]=S.get("rpcUrls")[e];if(await at(e,t))return t;for(let r of n)if(await at(e,r))return Oe.set(e,{timestamp:Date.now(),url:r}),r;throw new y("helpers_chain_rpc_connection_failed",{chain:e,fallbackUrls:n,primaryRpcUrl:t})}function Ro(e){j({condition:!0,id:"initializeRPCUrlsWithFallback",warning:"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints."})}function vo({chain:e,txHash:t}){let{explorerUrl:n}=dt(e);return ye(e).with(...lt,f.Solana,()=>`${n}/tx/${t.startsWith("0x")?t.slice(2):t}`).with(...ct,...Cn,()=>`${n}/tx/${t.startsWith("0x")?t:`0x${t}`}`).with(...pt,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 Co({chain:e,address:t}){let{explorerUrl:n}=dt(e);return ye(e).with(f.Solana,f.Sui,f.Radix,()=>`${n}/account/${t}`).with(f.Stellar,()=>`${n}/explorer/public/account/${t}`).otherwise(()=>`${n}/address/${t}`)}function Io(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 Pn}from"@noble/hashes/sha3.js";import{bytesToHex as kn}from"@noble/hashes/utils.js";var ut=/^(0x)?[0-9a-fA-F]{40}$/;function be(e){if(typeof e!=="string"||!ut.test(e))throw Error(`invalid address: ${e}`);let t=e.toLowerCase().replace(/^0x/,""),n=kn(Pn(new TextEncoder().encode(t))),s=[...t].map((a,c)=>Number.parseInt(n[c]??"0",16)>=8?a.toUpperCase():a).join(""),r=e.replace(/^0x/,"");if(/[A-F]/.test(r)&&/[a-f]/.test(r)&&r!==s)throw Error(`bad address checksum: ${e}`);return`0x${s}`}function gt(e){if(typeof e!=="string"||!ut.test(e))return!1;try{return be(e),!0}catch{return!1}}var Uo=[`${d.Maya}.MAYA`,`${d.Maya}.CACAO`,`${d.Ethereum}.THOR`,`${d.Ethereum}.vTHOR`,`${d.Kujira}.USK`,`${d.Ethereum}.FLIP`,`${d.Radix}.XRD`],ht=[d.Arbitrum,d.Aurora,d.Base,d.Ethereum,d.Optimism,d.Robinhood];async function Ln(e){let{baseDecimal:t}=F(d.Radix);try{let n=await X(d.Radix),{manager:s}=await _.post(`${n}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:e}),headers:{Accept:"*/*","Content-Type":"application/json"}});return s?.divisibility?.value?.divisibility}catch(n){let s=n instanceof Error?n.message:String(n);return console.warn(`Failed to fetch Radix asset decimals for ${e}: ${s}`),t}}async function Mn(e){try{let t=await X(d.Radix);return(await _.post(`${t}/state/entity/details`,{body:JSON.stringify({addresses:[e],opt_ins:{explicit_metadata:["symbol"]}}),headers:{Accept:"*/*","Content-Type":"application/json"}})).items[0]?.explicit_metadata?.items.find((r)=>r.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 ft({chain:e,address:t,methodHex:n,id:s}){let r=await X(e);return _.post(r,{body:JSON.stringify({id:s,jsonrpc:"2.0",method:"eth_call",params:[{data:n,to:t.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}function Hn(e){if(!e||e==="0x")return"UNKNOWN";try{return yt(e.replace(/^0x/,""))?.trim()||"UNKNOWN"}catch(t){return console.warn(`Failed to decode ABI string from ${e}: ${t}`),"UNKNOWN"}}function Vn(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 Un({chain:e,address:t}){let{baseDecimal:n}=F(e),s=t.toLowerCase();if(t===""||!s.startsWith("0x"))return n;let r=await ft({address:t,chain:e,id:2,methodHex:"0x313ce567"}).catch((c)=>(console.warn(`Could not fetch decimals for ${t} on ${e}: ${c.message}`),{result:""}));return Vn(r.result,n)}async function $n({chain:e,address:t}){let n=t.toLowerCase();if(n===""||!n.startsWith("0x"))return;let s=await ft({address:t,chain:e,id:1,methodHex:"0x95d89b41"}).catch((a)=>(console.warn(`Could not fetch symbol for ${t} on ${e}: ${a.message}`),{result:""}));return Hn(s.result)}async function mt({rpcUrl:e,contractAddress:t,functionSelector:n}){return(await _.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 _t(e){let t=e.match(/.{2}/g)?.map((n)=>Number.parseInt(n,16))??[];return new TextDecoder().decode(new Uint8Array(t))}function yt(e){return ie(e).with(void 0,()=>{return}).when((t)=>t.length>=128,(t)=>{let n=Number.parseInt(t.slice(64,128),16),s=t.slice(128,128+n*2).replace(/(00)+$/,"");return s?_t(s):void 0}).when((t)=>t.length===64,(t)=>{let n=t.replace(/(00)+$/,"");if(n.length>0&&n.length%2===0)return _t(n);return}).otherwise(()=>{return})}function bt({chain:e,address:t}){let{baseDecimal:n}=F(e),s={decimals:n,ticker:void 0};return ie(e).with(...On,async()=>{try{if(!gt(t.replace(/^0X/,"0x")))return s;let[r,a]=await Promise.all([$n({address:t,chain:e}),Un({address:t,chain:e})]);return{decimals:a,ticker:r}}catch(r){return console.warn(`Failed to fetch token info for ${t} on ${e}: ${r?.code} ${r?.message}`),s}}).with(d.Solana,async()=>{if(!t)return s;try{let r=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${t}`);if(r.ok){let a=await r.json(),c=Array.isArray(a)?a[0]:a;if(c)return{decimals:c.decimals??n,ticker:c.symbol||void 0}}}catch(r){console.warn(`Failed to fetch Solana token info for ${t}: ${r?.code} ${r?.message}`)}return s}).with(d.Tron,async()=>{if(!t)return s;try{let r=await X(d.Tron),[a,c]=await Promise.all([mt({contractAddress:t,functionSelector:"symbol()",rpcUrl:r}),mt({contractAddress:t,functionSelector:"decimals()",rpcUrl:r})]),u=yt(a);return{decimals:a!==void 0&&c?Number(BigInt(`0x${c}`)):n,ticker:u}}catch(r){let a=r instanceof Error?r.message:String(r);return console.warn(`Failed to fetch Tron token info for ${t}: ${a}`),s}}).with(d.Near,async()=>{if(!t)return s;try{let r=await X(d.Near),a=await _.post(r,{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(r){let a=r instanceof Error?r.message:String(r);return console.warn(`Failed to fetch Near token info for ${t}: ${a}`),s}}).with(d.Radix,async()=>{if(!t)return s;try{let[r,a]=await Promise.all([Mn(t),Ln(t)]);return{decimals:a,ticker:r}}catch(r){let a=r instanceof Error?r.message:String(r);return console.warn(`Failed to fetch Radix token info for ${t}: ${a}`),s}}).otherwise(async()=>s)}function At({chain:e,symbol:t}){return ie(e).with(...ht,()=>t==="ETH").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}`===Ae(e).identifier).otherwise(()=>t===e)}var Ae=(e)=>{let{baseDecimal:t}=F(e);return ie(e.toUpperCase()).with(...ht,(s)=>({decimal:t,identifier:`${s}.ETH`})).with(d.THORChain,(s)=>({decimal:t,identifier:`${s}.RUNE`})).with(d.Cosmos,(s)=>({decimal:t,identifier:`${s}.ATOM`})).with(d.Maya,(s)=>({decimal:10,identifier:`${s}.CACAO`})).with(d.BinanceSmartChain,(s)=>({decimal:t,identifier:`${s}.BNB`})).with(d.Monad,(s)=>({decimal:t,identifier:`${s}.MON`})).with(d.Avalanche,(s)=>({decimal:t,identifier:`${s}.AVAX`})).with(d.Gnosis,(s)=>({decimal:t,identifier:`${s}.xDAI`})).with(d.XLayer,(s)=>({decimal:t,identifier:`${s}.OKB`})).with(d.Berachain,(s)=>({decimal:t,identifier:`${s}.BERA`})).with(d.Hyperevm,(s)=>({decimal:t,identifier:`${s}.HYPE`})).with(d.Hype,(s)=>({decimal:t,identifier:`${s}.HYPE`})).with(d.Spark,(s)=>({decimal:t,identifier:`${s}.BTC`})).with(d.Tron,(s)=>({decimal:t,identifier:`${s}.TRX`})).with(d.Ton,(s)=>({decimal:t,identifier:`${s}.GRAM`})).with(d.Solana,d.Chainflip,d.Kujira,d.Ripple,d.Polkadot,d.Near,...Dn,(s)=>({decimal:t,identifier:`${s}.${s}`})).with(d.Radix,"XRD.XRD",()=>({decimal:t,identifier:"XRD.XRD"})).with(d.Polygon,"POL.POL",()=>({decimal:t,identifier:"POL.POL"})).with("KUJI.USK",(s)=>({decimal:6,identifier:s})).with("ETH.FLIP",()=>({decimal:F(d.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:F(d.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:F(d.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(s)=>({decimal:10,identifier:s})).with("MAYA.MAYA",(s)=>({decimal:4,identifier:s})).otherwise(()=>({decimal:t,identifier:e}))};function De({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}`===Ae(e).identifier).with(d.Arbitrum,d.Optimism,d.Base,d.Aurora,d.Robinhood,()=>t===d.Ethereum).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 K=(e)=>{let[t,...n]=e.split("."),s=e.includes("/"),r=n.join("."),a=r?.split("-"),c=a?.length?a.length===1?a[0]:a.slice(0,-1).join("-"):void 0;return{chain:t,symbol:r,synth:s,ticker:c}};function ae(e,t){let s=t===d.Near?e.indexOf("-"):e.lastIndexOf("-");if(s===-1)return{address:void 0,ticker:e};return{address:e.slice(s+1),ticker:e.slice(0,s)}}function $o(e){return`https://storage.googleapis.com/token-list-swapkit-dev/images/${e.toLowerCase()}.png`}async function Bo(e){let{loadTokenLists:t}=await import("./tokens.js"),n=await t(void 0,{source:S.get("envs").isDev?"dev":"prod"}),s=Object.values(n).flatMap((a)=>a.tokens);if("identifier"in e)return s.find((a)=>a.identifier===e.identifier)?.identifier;let r=e.contract.toLowerCase();for(let a of s){let{chain:c,symbol:u}=K(a.identifier);if(c!==e.chain)continue;let{address:m}=ae(u,c);if(m?.toLowerCase()===r)return a.identifier}return}import{match as Se}from"ts-pattern";var z=8,Bn=10,Fn=64;function G({value:e,bigIntDecimal:t=z,decimal:n=z}){if(n===0)return e.toString();let s=e<0n,r=e.toString().substring(s?1:0),a=n-(r.length-1);if(a>0)r="0".repeat(a)+r;let c=r.length-n,u=r.slice(-n);if(Number.parseInt(u[t]||"0",10)>=5){let v=Number.parseInt(u[t-1]||"0",10);u=`${u.substring(0,t-1)}${v+1}`}else u=u.substring(0,t);return`${s?"-":""}${r.slice(0,c)}.${u}`.replace(/\.?0*$/,"")}class U{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(e,t){return new U({decimal:t,value:G({bigIntDecimal:t,decimal:t,value:e})})}static shiftDecimals({value:e,from:t,to:n}){return U.fromBigInt(e.getBaseValue("bigint")*W(n)/W(t),n)}constructor(e){let t=Le(e),n=typeof e==="object";this.decimal=n?e.decimal:void 0,this.decimalMultiplier=n&&"decimalMultiplier"in e?e.decimalMultiplier:W(Math.max(St(Te(t)),this.decimal||0)),this.#r(t)}set(e){return new this.constructor({decimal:this.decimal,identifier:this.toString?.({includeSynthProtocol:!0}),value:e})}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=le(this.decimalMultiplier),s=t!==void 0?t:this.decimal,r=s!==void 0?s:n;if(s!==void 0&&s<n){if(this.formatBigIntToSafeValue(this.bigIntValue,s)==="0"&&this.bigIntValue!==0n)r=n}let a=this.formatBigIntToSafeValue(this.bigIntValue,r);return Se(e).with("number",()=>Number(a)).with("string",()=>a).with("bigint",()=>this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier).otherwise(()=>a)}getBaseValue(e,t){let n=this.decimalMultiplier/W(t||this.decimal||z),s=Wn(this.bigIntValue,n);return Se(e).with("number",()=>Number(s)).with("string",()=>s.toString()).otherwise(()=>s)}getBigIntValue(e,t){if(!t&&typeof e==="object")return e.bigIntValue;let n=Le(e),s=Te(n);if(s==="0"||s==="undefined")return 0n;return this.#s(s,t)}toSignificant(e=6){let t=this.getValue("string"),[n="",s=""]=t.split("."),r=Number.parseInt(n,10)>0;if((r?n.length+s.length:s.length)<=e)return t;if(n.length>=e)return n.slice(0,e).padEnd(n.length,"0");if(r)return`${n}.${s.slice(0,e-n.length)}`;let c=s.replace(/^0+/,"")||"0",u=c.slice(0,e),m=s.length-c.length;return`0.${u.padStart(m+u.length,"0")}`}toFixed(e=6){let t=this.getValue("string"),n=t.startsWith("-"),[s="0",r=""]=(n?t.slice(1):t).split("."),a=s==="0"&&Number.parseInt(r.slice(0,e),10)===0,c=n&&!a?"-":"";if(e===0){if(s==="0"&&!r)return"0";return r&&Number.parseInt(r[0]||"0",10)>=5?`${c}${BigInt(s)+1n}.0`:`${c}${s}.0`}if(!r)return`${c}${s}.${"0".repeat(e)}`;let u=r[e];if(!(u&&Number.parseInt(u,10)>=5))return`${c}${s}.${r.slice(0,e).padEnd(e,"0")}`;let v=BigInt(r.slice(0,e).padEnd(e,"0"))+1n,b=10n**BigInt(e);if(v>=b)return`${c}${BigInt(s)+1n}.${"0".repeat(e)}`;return`${c}${s}.${v.toString().padStart(e,"0")}`}toAbbreviation(e=2){let t=this.getValue("string"),n=Number(t),s=["","K","M","B","T","Q","Qi","S"],r=Math.floor(Math.log10(Math.abs(n))/3);if(r===0||!s[r])return t;return`${(n/10**(r*3)).toFixed(e)}${s[r]}`}toCurrency(e="$",{currencyPosition:t="start",decimal:n=2,decimalSeparator:s=".",thousandSeparator:r=",",trimTrailingZeros:a=!0}={}){let c=this.toFixed(n),u=t==="end",[m="0",v=""]=c.split("."),b=m.replace(/\B(?=(\d{3})+(?!\d))/g,r),A=v&&Number.parseInt(v,10)>0,E=A?`${b}${s}${v}`:b,M=E.length<100&&a&&A?E.replace(/\.?0*$/,""):E;return u?`${M}${e}`:`${e}${M}`}formatBigIntToSafeValue(e,t){let n=t||this.decimal||z,s=Math.max(n,le(this.decimalMultiplier));return G({bigIntDecimal:n,decimal:s,value:e})}#t(e,...t){let n=this.#n(this,...t),s=le(this.decimalMultiplier),r=Math.max(n,s),a=Math.min(r+Bn,Fn),c=W(a),u=t.reduce((b,A)=>{let E=this.getBigIntValue(A,a);return Se(e).with("add",()=>b+E).with("sub",()=>b-E).with("mul",()=>b*E/c).with("div",()=>{if(E===0n)throw RangeError("Division by zero");return b*c/E}).otherwise(()=>b)},this.bigIntValue*c/this.decimalMultiplier),m=G({bigIntDecimal:a,decimal:a,value:u}),v=this.decimal===void 0?void 0:Math.min(this.decimal,a);return new this.constructor({decimal:v,decimalMultiplier:W(a),identifier:this.toString(),value:m})}#e(e,...t){let n=this.#n(this,...t),s=this.getBigIntValue(t[0]||"0",n),r=this.getBigIntValue(this,n);return Se(e).with("gt",()=>r>s).with("gte",()=>r>=s).with("lt",()=>r<s).with("lte",()=>r<=s).with("eqValue",()=>r===s).otherwise(()=>!1)}#r(e){let t=Te(e)||"0";this.bigIntValue=this.#s(t)}#n(...e){let t=e.map((n)=>typeof n==="object"?n.decimal||le(n.decimalMultiplier):St(Te(n))).filter(Boolean);return Math.max(...t,z)}#s(e,t){let n=t?W(t):this.decimalMultiplier,s=le(n),[r="",a=""]=e.split(".");return BigInt(`${r}${a.padEnd(s,"0")}`)}}var Kn=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function Te(e){let n=`${typeof e==="number"?Kn.format(e):Le(e)}`.replaceAll(",",".").split(".");return n.length>1?`${n.slice(0,-1).join("")}.${n.at(-1)}`:n[0]||"0"}function St(e){let t=e.split(".")[1]?.length||0;return Math.max(t,z)}function Le(e){return typeof e==="object"?"getValue"in e?e.getValue("string"):e.value:e}function Wn(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 W(e){return 10n**BigInt(e)}function le(e){return e.toString().length-1}function Yn(e=""){let t=e.toUpperCase(),n=S.get("chains"),[s]=t.split(".");if(n.includes(s))return!0;let[r]=t.split("/");if(n.includes(r))return!0;throw new y({errorKey:"helpers_invalid_identifier",info:{identifier:e,message:`Invalid identifier: ${e}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`}})}var B=[x.Hype,x.Near,x.Ripple,x.Solana,x.Stellar,x.Sui,x.Ton,x.Tron],Ve=[x.THORChain,x.Maya],Q=new Map,we=new Map,J=new Map,jn=3600000;function Xn(e){let t=J.get(e);if(t?.timestamp&&Date.now()-t.timestamp>jn){J.delete(e);return}return t}function zn(e,t){if(J.size>1000){let n=J.keys().next().value;if(n)J.delete(n)}J.set(e,{...t,timestamp:Date.now()})}class D extends U{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:e,decimal:t,tax:n,chain:s,symbol:r,identifier:a}){super(typeof e==="object"?e:{decimal:t,value:e});let c=Tt(a||`${s}.${r}`);this.type=De(c),this.tax=n,this.chain=c.chain,this.ticker=c.ticker,this.symbol=c.symbol,this.address=c.address,this.isSynthetic=c.isSynthetic,this.isTradeAsset=c.isTradeAsset,this.isGasAsset=c.isGasAsset,this.chainId=ce(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 Q.get(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 y({errorKey:"helpers_invalid_asset_url",info:{urlAsset:e}});let s=e.slice(0,n),r=e.slice(n+1),a=He({chain:s,rest:r}).when(({rest:c})=>c.includes(".."),({chain:c,rest:u})=>`${c}.${u.replace(/\.\./g,"~")}`).when(({chain:c,rest:u})=>Ve.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,...s}){let r=e instanceof U?e.getValue("string"):e,a="address"in s&&"chain"in s,c=es(s);if(c===null&&n&&a){let{chain:re,address:Y}=s;return Jn({address:Y,chain:re,fromBaseDecimal:t,parsedValue:r})}let u=a&&!c?`${s.chain}.UNKNOWN-${s.address}`:c,{identifier:m,decimal:v}=Ae(u),{chain:b,isSynthetic:A,isTradeAsset:E,address:w}=Tt(m),{baseDecimal:M}=ce(b),C=Q.get(B.includes(b)?m:m.toUpperCase());if(!C&&n&&!A&&!E)return(async()=>{let{ticker:re}=K(m),Y=await wt({address:w,chain:b,ticker:re});return Me({decimal:Y.decimals,identifier:Y.identifier,value:t?Z(BigInt(r),t):r})})();let I=C?.decimal||v;j({condition:!I&&!n,id:`assetValue_static_decimal_not_found_${b}`,warning:`Couldn't find static decimal for one or more tokens on ${b} (Using default ${M} 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:se,identifier:q,tax:R}=C||{decimal:I||M,identifier:m},ge=t?Z(BigInt(r),t):Z(r,se);return A||E?Qn(q,ge):Me({decimal:se,identifier:q,tax:R,value:ge})}static async loadStaticAssets(e){let{loadTokenLists:t}=await import("@swapkit/tokens"),n=await t(e,{source:S.get("envs").isDev?"dev":"prod"});for(let{tokens:s}of Object.values(n))for(let r of s){let{identifier:a}=r,{chain:c,symbol:u}=K(a),{address:m}=ae(u,c),{baseDecimal:v}=ce(c),b=B.includes(c)?a:a.toUpperCase(),A="decimals"in r&&r.decimals!==void 0?r.decimals:v,E="logoURI"in r&&r.logoURI?r.logoURI:`https://storage.googleapis.com/token-list-swapkit-dev/images/${a.toLowerCase()}.png`,w={decimal:A,identifier:a,logoURI:E,tax:"tax"in r?r.tax:void 0};if(Q.set(b,w),m){let M=B.includes(c)?`${c}:${m}`:`${c}:${m.toUpperCase()}`;we.set(M,a)}}return!0}static setStaticAssets(e){Q.clear(),we.clear();for(let[t,n]of e.entries()){let{identifier:s}=n,{chain:r,symbol:a}=K(s),{address:c}=ae(a,r),{baseDecimal:u}=ce(r),m=n.chain??r,v=n.address??c,b=B.includes(m)?s:s.toUpperCase(),A=n.decimals??n.decimal??u,E=n.logoURI??`https://storage.googleapis.com/token-list-swapkit-dev/images/${s.toLowerCase()}.png`,w={decimal:A,identifier:b,logoURI:E,tax:n.tax};if(Q.set(b,w),v){let M=B.includes(m)?`${m}:${v}`:`${m}:${v.toUpperCase()}`;we.set(M,s)}}return!0}static get staticAssets(){return Q}}function Zo(e){let t=D.from({chain:e});return He(e).with(x.Bitcoin,x.Litecoin,x.BitcoinCash,x.Dash,()=>t.set(0.00010001)).with(x.Dogecoin,()=>t.set(1.00000001)).with(x.Avalanche,x.Ethereum,x.Arbitrum,x.BinanceSmartChain,()=>t.set(0.00000001)).with(x.THORChain,x.Maya,()=>t.set(0)).with(x.Cosmos,x.Kujira,()=>t.set(0.000001)).otherwise(()=>t.set(0.00000001))}async function wt({chain:e,address:t,ticker:n}){let r=B.includes(e)?`${e}:${t||n}`:`${e}:${t||n}`.toUpperCase(),a=Xn(r);if(a)return a;if(!t){let{baseDecimal:m}=ce(e);return{decimals:m,identifier:`${e}.${n||"UNKNOWN"}`}}let c=await bt({address:t,chain:e}),u=`${e}.${c.ticker||n||"UNKNOWN"}-${t}`;return j({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&&zn(r,{decimals:c.decimals,identifier:u}),{decimals:c.decimals,identifier:u}}function Me({identifier:e,decimal:t,value:n,tax:s}){return Yn(e),new D({decimal:t,identifier:e,tax:s,value:Z(n,t)})}function Qn(e,t=0){let n=e.includes(".")?e.split(".")?.[0]?.toUpperCase():void 0,s=n?Ve.includes(n):!1,r=e.slice(0,14).includes("~")?"~":"/",[a,c]=s?e.split(".").slice(1).join().split(r):e.split(r);if(!(a&&c))throw new y({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});return new D({decimal:8,identifier:`${n||x.THORChain}.${a}${r}${c}`,value:Z(t,8)})}async function Jn({address:e,chain:t,fromBaseDecimal:n,parsedValue:s}){let{decimals:r,identifier:a}=await wt({address:e,chain:t}),c=n?Z(BigInt(s),n):s;return Me({decimal:r,identifier:a,value:c})}function Z(e,t){return typeof e==="bigint"?G({bigIntDecimal:t,decimal:t,value:e}):e}function Zn(e){let t=He(e).when((n)=>("chain"in n)&&n.chain!==void 0,({chain:n})=>n).otherwise((n)=>{let s=K(n.asset);return s.synth?x.THORChain:s.chain});if(!Gn.includes(t.toUpperCase())){let n="asset"in e?e.asset:t;throw new y({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n,message:`Unsupported chain "${t}" - use the AssetValue constructor directly`}})}}function es(e){if(Zn(e),"chain"in e){let{chain:r,address:a}=e;if(a){let c=B.includes(r)?`${r}:${a}`:`${r}:${a.toUpperCase()}`,u=we.get(c);if(u)return u;return null}return r}let{chain:t,symbol:n}=K(e.asset);return De({chain:t,symbol:n})==="Native"?t:e.asset}function ts(e,t,n){let s=e.split("."),r=s[0]?.toUpperCase(),a=Ve.includes(r),c=n?"~":"/",[u,m=""]=a?s.slice(1).join(".").split(c):e.split(c);if(!(u&&m))throw new y({errorKey:"helpers_invalid_asset_identifier",info:{identifier:e}});let{ticker:v,address:b}=xt({chain:u,symbol:m}),A=`${u}${c}${m}`;return{address:b,chain:r,isGasAsset:!1,isSynthetic:t,isTradeAsset:n,symbol:A,ticker:v}}function ns(e){let t=e.indexOf("."),n=(t===-1?e:e.slice(0,t)).toUpperCase(),s=t===-1?e:e.slice(t+1),{address:r,ticker:a}=xt({chain:n,symbol:s}),c;try{c=r&&qn.includes(n)&&be(r)?be(r):r}catch{c=r}let u=c?`${a}-${c}`:s;return{address:c,chain:n,isGasAsset:At({chain:n,symbol:s}),isSynthetic:!1,isTradeAsset:!1,symbol:u,ticker:a}}function Tt(e){let t=e.slice(0,14),n=t.includes("/"),s=t.includes("~");if(n||s)return ts(e,n,s);return ns(e)}function xt({symbol:e,chain:t}){let{ticker:n,address:s}=ae(e,t);return{address:s&&!B.includes(t)?s.toLowerCase():s,ticker:n}}class xe extends U{eq(e){return this.eqValue(e)}static fromBigInt(e,t){return new xe({decimal:t,value:G({bigIntDecimal:t,decimal:t,value:e})})}}function Rt(e=!0){return e?"https://gateway.liquify.com/chain/thorchain_midgard":"https://midgard.mayachain.info"}function rs(e=!0){let t=Rt(e);return e?`${t}/v2/thorname`:`${t}/v2/mayaname`}function os(e){return function(n){let s=n?`?status=${n}`:"";return _.get(`${e}/v2/pools${s}`)}}function is(e){return function(n){return _.get(`${e}/v2/pool/${n}`)}}function as(e){return function(n,s){let r=s?`?period=${s}`:"";return _.get(`${e}/v2/pool/${n}/stats${r}`)}}function ls(e){return function(n,s){let r=new URLSearchParams;if(s?.interval)r.append("interval",s.interval);if(s?.count)r.append("count",s.count.toString());if(s?.from)r.append("from",s.from.toString());if(s?.to)r.append("to",s.to.toString());let a=r.toString()?`?${r.toString()}`:"";return _.get(`${e}/v2/history/depths/${n}${a}`)}}function cs(e){return function(){return _.get(`${e}/v2/network`)}}function ds(e){return function(){return _.get(`${e}/v2/health`)}}function ps(e){return function(){return _.get(`${e}/v2/nodes`)}}function us(e){return function(n){return _.get(`${e}/v2/node/${n}`)}}function gs(e){return function(){return _.get(`${e}/v2/mimir/votes`)}}function ms(e){return function(){return _.get(`${e}/v2/mimir`)}}function _s(e){return function(){return _.get(`${e}/v2/constants`)}}function hs(e){return function(){return _.get(`${e}/v2/stats`)}}function fs(e){return function(n){let s=new URLSearchParams;if(n?.interval)s.append("interval",n.interval);if(n?.count)s.append("count",n.count.toString());if(n?.from)s.append("from",n.from.toString());if(n?.to)s.append("to",n.to.toString());let r=s.toString()?`?${s.toString()}`:"";return _.get(`${e}/v2/history/earnings${r}`)}}function ys(e){return function(n,s){let r=new URLSearchParams;if(s?.interval)r.append("interval",s.interval);if(s?.count)r.append("count",s.count.toString());if(s?.from)r.append("from",s.from.toString());if(s?.to)r.append("to",s.to.toString());let a=r.toString()?`?${r.toString()}`:"",c=n?`/swaps/${n}`:"/swaps";return _.get(`${e}/v2/history${c}${a}`)}}function bs(e){return function(n){let s=new URLSearchParams;if(n?.interval)s.append("interval",n.interval);if(n?.count)s.append("count",n.count.toString());if(n?.from)s.append("from",n.from.toString());if(n?.to)s.append("to",n.to.toString());let r=s.toString()?`?${s.toString()}`:"";return _.get(`${e}/v2/history/tvl${r}`)}}function As(e){if(!e)return"";let t=new URLSearchParams,n=(s,r)=>{if(r!==void 0)t.append(s,typeof r==="number"?r.toString():r)};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 Ss(e){return function(n){let s=As(n);return _.get(`${e}/v2/actions${s}`)}}function Ts(e){return function(n){return _.get(`${e}/v2/member/${n}`)}}function ws(e){return function(n){let s=n?`/${n}`:"";return _.get(`${e}/v2/members${s}`)}}function xs(e){return function(n,s){let r=s?`&asset=${s}`:"";return _.get(`${e}/v2/saver/${n}${r?`?${r.substring(1)}`:""}`)}}function Rs(e){return function(n){return _.get(`${e}/v2/savers/${n}`)}}function vs(e){return function(n,s){let r=new URLSearchParams;if(s?.interval)r.append("interval",s.interval);if(s?.count)r.append("count",s.count.toString());if(s?.from)r.append("from",s.from.toString());if(s?.to)r.append("to",s.to.toString());let a=r.toString()?`?${r.toString()}`:"",c=n?`/savers/${n}`:"/savers";return _.get(`${e}/v2/history${c}${a}`)}}function Cs(e){return function(n){return _.get(`${e}/v2/balance/${n}`)}}function Is(e){return async function(n){let s=(r)=>{if(r?.cause?.status===404)return;throw r};return await _.get(`${e}/lookup/${n}`,{onError:s,retry:{maxRetries:1}})}}function Es(e){return async function(n){let s=(r)=>{if(r?.cause?.status===404)return[];throw r};return await _.get(`${e}/rlookup/${n}`,{onError:s,retry:{maxRetries:1}})}}function Ns(e){return async function(n){let s=(r)=>{if(r?.cause?.status===404)return[];throw r};return await _.get(`${e}/owner/${n}`,{onError:s,retry:{maxRetries:1}})}}function ee({asset:e,value:t}){return D.from({asset:e,fromBaseDecimal:ss(Re.THORChain).baseDecimal,value:t})}function Ps({liquidityPositionGetter:e,isThorchain:t}){return async function(s){let r=await e(s),a=t?"rune":"cacao";return r.pools.map((c)=>({[`${a}Pending`]:ee({asset:"THOR.RUNE",value:c.runePending}),[`${a}RegisteredAddress`]:c.runeAddress,[`${a}Withdrawn`]:ee({asset:"THOR.RUNE",value:c.runeWithdrawn}),[a]:ee({asset:"THOR.RUNE",value:c.runeAdded}),asset:ee({asset:c.pool,value:c.assetAdded}),assetPending:ee({asset:c.pool,value:c.assetPending}),assetRegisteredAddress:c.assetAddress,assetWithdrawn:ee({asset:c.pool,value:c.assetWithdrawn}),dateFirstAdded:c.dateFirstAdded,dateLastAdded:c.dateLastAdded,poolShare:new xe(c.liquidityUnits).div(c.pool)}))}}function vt(e){let t=e===Re.THORChain,n=Rt(t),s=rs(t),r=Ts(n);return{getActions:Ss(n),getBalance:Cs(n),getConstants:_s(n),getEarningsHistory:fs(n),getHealth:ds(n),getLiquidityPosition:Ps({isThorchain:t,liquidityPositionGetter:r}),getLiquidityPositionRaw:r,getMembers:ws(n),getMimir:ms(n),getMimirVotes:gs(n),getNameDetails:Is(s),getNamesByAddress:Es(s),getNamesByOwner:Ns(s),getNetworkInfo:cs(n),getNode:us(n),getNodes:ps(n),getPool:is(n),getPoolDepthHistory:ls(n),getPoolStats:as(n),getPools:os(n),getSaverDetails:xs(n),getSavers:Rs(n),getSaversHistory:vs(n),getStats:hs(n),getSwapHistory:ys(n),getTVLHistory:bs(n)}}var Ct=vt(Re.THORChain),It=vt(Re.Maya);var We={};Xe(We,{SKRequestClient:()=>O,getChainBalance:()=>yr,getChainflipDepositChannel:()=>Rr,getGasRate:()=>xr,getNearDepositChannel:()=>vr,getPrice:()=>wr,getRouteWithTx:()=>fr,getSwapQuote:()=>hr,getSwapTo:()=>Pr,getTokenApproval:()=>br,getTokenList:()=>Sr,getTokenListProviders:()=>Ar,getTrackerDetails:()=>_r,searchTokens:()=>Tr});import{EVMChains as Ke}from"@swapkit/types";import{match as mr,P as ue}from"ts-pattern";import{Chain as ve,ChainId as de}from"@swapkit/types";import{array as T,boolean as H,coerce as kt,number as h,object as g,optional as p,string as i,union as Ue,unknown as $e,z as o}from"zod";var Ot;((s)=>{s.CHEAPEST="CHEAPEST";s.FASTEST="FASTEST";s.RECOMMENDED="RECOMMENDED"})(Ot||={});var Ce;((b)=>{b.PSBT="PSBT";b.EVM="EVM";b.COSMOS="COSMOS";b.RADIX="RADIX";b.NEAR="NEAR";b.STELLAR="STELLAR";b.TON="TON";b.TRON="TRON";b.EIP_712_HYPE_SEND_ASSET="EIP_712_HYPE_SEND_ASSET";b.EIP_712_HYPE_WITHDRAW="EIP_712_HYPE_WITHDRAW"})(Ce||={});var Dt;((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"})(Dt||={});var Lt;((w)=>{w.swap="swap";w.aggregation="aggregation";w.addLiquidity="addLiquidity";w.withdrawLiquidity="withdrawLiquidity";w.addSavers="addSavers";w.withdrawSavers="withdrawSavers";w.borrow="borrow";w.repay="repay";w.name="name";w.donate="donate";w.claim="claim";w.stake="stake";w.unstake="unstake"})(Lt||={});var Mt;((u)=>{u.unknown="unknown";u.not_started="not_started";u.pending="pending";u.swapping="swapping";u.completed="completed";u.refunded="refunded";u.failed="failed"})(Mt||={});var Ht;((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"})(Ht||={});var pi=g({address:p(i()),chain:o.enum(ve).optional(),chainId:o.enum(de),coingeckoId:p(i()),decimals:kt.number(),extensions:p(o.looseObject({})),identifier:i(),logoURI:p(i()),name:p(i()),shortCode:p(i()),symbol:p(i()),ticker:i()}),ui=o.object({block:o.optional(o.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:o.optional(o.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:o.optional(o.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:o.optional(o.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"}),gi=o.object({forceUpdate:o.string().toLowerCase().transform((e)=>e==="true").pipe(o.boolean()).optional()}),mi=g({error:i(),message:i()}),te=g({address:p(i()),chain:o.enum(ve),decimal:p(h()),isGasAsset:H(),isSynthetic:H(),symbol:i(),tax:p(g({buy:h(),sell:h()})),ticker:i()}),Vt=g({id:i(),market_cap:h(),name:i(),price_change_24h_usd:h(),price_change_percentage_24h_usd:h(),sparkline_in_7d:T(h()),timestamp:i(),total_volume:h()}).partial(),_i=g({cg:p(Vt),identifier:i(),price_usd:h(),provider:i(),timestamp:h()}),Ut=T(g({cg:p(Vt),identifier:i(),price_usd:h(),provider:i(),timestamp:h()}).partial()),hi=g({affiliate:p(i().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(H().describe("Allow smart contract as recipient")),allowSmartContractSender:p(H().describe("Allow smart contract as sender")),buyAsset:i().describe("Asset to buy"),cfBoost:p(H().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:p(i().describe("Address to send asset to")),disableSecurityChecks:p(H().describe("Disable security checks")),includeTx:p(H().describe("Set to true to include an transaction object (EVM only)")),providers:p(T(i().describe("List of providers to use").refine((e)=>N[e]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:p(i().describe("Referrer address (referral program)")),sellAmount:i().describe("Amount of asset to sell").refine((e)=>+e>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:i().describe("Asset to sell"),slippage:p(h().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:p(i().describe("Address to send asset from"))}).refine((e)=>e.sellAsset!==e.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),fi=g({metadata:H(),tokens:T(g({identifier:i()}))}),$t=g({destinationAddress:i()}),ks=$t.extend({affiliateFees:T(g({brokerAddress:i(),feeBps:h()})).optional(),brokerCommissionBps:h().optional(),buyAsset:g({asset:i(),chain:i()}),channelMetadata:g({cfParameters:i().optional(),gasBudget:i().optional(),message:i().optional()}).optional(),dcaParameters:g({chunkInterval:h().optional(),numberOfChunks:h().optional()}).optional(),maxBoostFeeBps:h().optional(),refundParameters:g({minPrice:i().optional(),refundAddress:i().optional(),retryDuration:h().optional()}).optional(),sellAsset:g({asset:i(),chain:i()})}),Bt=g({channelId:i(),depositAddress:i()}),Et=$t.extend({affiliateFees:g({feeBps:h(),nearId:i()}).optional(),buyAsset:i(),sellAmount:i(),sellAsset:i(),slippage:kt.number(),sourceAddress:i()}),Nt=g({amountIn:i(),amountInFormatted:i(),amountInUsd:i(),amountOut:i(),amountOutFormatted:i(),amountOutUsd:i(),deadline:i().optional(),minAmountIn:i(),minAmountOut:i(),timeEstimate:h().optional(),timeWhenInactive:i().optional()}),yi=Nt.extend({depositAddress:i(),quote:Nt,signature:i(),timestamp:i(),tx:$e()}),Ft=g({buyAsset:i(),buyAssetAmount:i(),buyAssetAmountMaxSlippage:i(),deadline:i().optional(),depositAddress:i(),depositAmount:i(),depositAsset:i(),tx:$e()}),Os=g({evmCalldata:o.optional(o.string()),intentHash:o.optional(o.string()),logs:o.optional(o.unknown()),manifest:o.optional(o.unknown()),memo:o.optional(o.string()),spender:o.optional(o.string()),thorname:o.optional(o.string())}),Ds=g({currentStage:i(),inboundConfirmation:h(),inboundObservation:h(),outboundDelay:h(),outboundObservation:h(),streamingSwap:h()}),Ls=g({count:p(h()),interval:p(h()),quantity:p(h()),subSwapsMap:p(T(h()))}),Ms=o.object({currentLegIndex:o.optional(o.number()),estimatedTimeToComplete:o.number(),estimates:o.optional(Ds),providerDetails:o.optional(o.object({streamingDetails:o.optional(Ls)}))}),Hs=g({affiliate:p(te),liquidity:p(te),network:p(te),protocol:p(te),tax:p(te)}),Vs=g({affiliate:i(),bps:i(),isReferrer:H()}),Us=g({affiliate:p(i()),affiliateFees:p(T(Vs)),broadcastedAt:p(h()),explorerUrl:p(i()),fees:p(Hs),images:p(g({chain:p(i()),from:p(i()),provider:p(i()),to:p(i())})),provider:p(o.enum(N)),providerAction:o.optional(o.enum(Lt)),quoteId:p(i()),wallet:p(i())}),ne=o.object({block:o.number(),chainId:o.enum(de),finalAddress:o.optional(o.string()),finalAsset:o.optional(te),finalisedAt:o.number(),fromAddress:o.string(),fromAmount:o.string(),fromAsset:o.string(),hash:o.string(),meta:o.optional(Us),payload:o.optional(Os),status:o.enum(Mt),toAddress:o.string(),toAmount:o.string(),toAsset:o.string(),trackingStatus:o.optional(o.enum(Ht)),transient:o.optional(Ms),type:o.enum(Dt)}),Kt=ne.extend({legs:o.array(ne)}),bi=ne.extend({legs:T(ne)}),Ai=ne.extend({legs:T(ne)}),Be=T(g({amount:i(),asset:i(),chain:i(),protocol:o.enum(N),type:o.enum(Ne)})),Fe=o.object({inbound:o.optional(o.number().describe("Time to receive inbound asset in seconds")),outbound:o.optional(o.number().describe("Time to receive outbound asset in seconds")),swap:o.optional(o.number().describe("Time to swap assets in seconds")),total:o.number().describe("Total time in seconds")}),$s=/^(?:0x[0-9a-fA-F]+|[0-9]+)$/;function Bs(e){return e===""||$s.test(e)}function Si(e){return e?BigInt(e):0n}function Ti(e){let t=typeof e==="bigint"?e:BigInt(e);return t>0n?`0x${t.toString(16)}`:"0x0"}var pe=i().refine(Bs,{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"),Fs=g({data:i().describe("Data to send"),from:i().describe("Address of the sender"),to:i().describe("Address of the recipient"),value:pe}),Ks=o.object({data:o.string().optional(),raw_data:o.object({contract:o.any(),data:o.string().optional(),expiration:o.number(),fee_limit:o.number().optional(),ref_block_bytes:o.string(),ref_block_hash:o.string(),timestamp:o.number()}).passthrough(),raw_data_hex:o.string(),txID:o.string(),value:pe.optional(),visible:o.boolean()}),Ws=T(Ue([i(),h(),T(i()),g({from:i(),value:pe}).describe("Parameters to pass to the contract method")])),wi=g({approvalSpender:p(i().describe("Address of the spender to approve")),approvalToken:p(i().describe("Address of the token to approve spending of")),contractAddress:i().describe("Address of the contract to interact with"),contractMethod:i().describe("Name of the method to call"),contractParamNames:T(i().describe("Names of the parameters to pass to the contract method")),contractParams:Ws}),Gs=g({typeUrl:i("/types.MsgDeposit"),value:g({coins:T(g({amount:i(),asset:g({chain:i(),symbol:i(),synth:H(),ticker:i()})})),memo:i(),signer:i()})}),qs=g({typeUrl:i("/types.MsgSend"),value:g({amount:T(g({amount:i(),denom:i()})),fromAddress:i(),toAddress:i()})}),Ys=g({typeUrl:i(),value:qs.shape.value.or(Gs.shape.value)}),js=g({amount:T(g({amount:i(),denom:i()})),gas:i()}),Xs=g({accountNumber:h(),chainId:o.enum(de),fee:js,memo:i(),msgs:T(Ys),sequence:h()}),zs=o.array(o.object({calldata:o.array(o.string()),contractAddress:o.string(),entrypoint:o.string()})),Qs=o.object({address:o.string().describe("Destination address in friendly format"),amount:o.string().describe("Amount in nanotons"),payload:o.string().optional().describe("Base64 BOC of body cell"),stateInit:o.string().optional().describe("Base64 BOC of state init")}),Js=o.object({messages:o.array(Qs),sendMode:o.number().describe("TON wallet send mode for the whole transfer")}),xi="USDC:0x6d1e7cde53ba9467b783cb7c530ce054",Zs=o.looseObject({domain:o.looseObject({chainId:p(Ue([h(),i()])),name:p(i()),verifyingContract:p(i()),version:p(i())}),message:o.record(i(),$e()),primaryType:i(),types:o.record(i(),T(o.looseObject({name:i(),type:i()})))}),er=o.looseObject({amount:i(),destination:i(),destinationDex:i(),fromSubAccount:i(),hyperliquidChain:i(),nonce:h().int(),signatureChainId:i(),sourceDex:i(),token:i(),type:o.literal("sendAsset")}),Wt=o.looseObject({action:o.looseObject({type:i()}),submitTo:i(),typedData:Zs}),Ri=Wt.extend({action:er}),Gt=Ue([Fs,Xs,Ks,Js,Wt,i()]),tr=Gt.or(zs),nr=g({affiliate:i().describe("Affiliate address").optional(),affiliateFee:h().describe("Affiliate fee").optional(),buyAsset:i().describe("Asset to buy"),destinationAddress:i().describe("Destination address"),estimatedTime:Fe.optional(),provider:o.enum(N),sellAsset:i().describe("Asset to sell"),slipPercentage:h().describe("Slippage as a percentage"),sourceAddress:i().describe("Source address")}),vi=nr.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),sr=g({asset:i().describe("Asset name"),image:i().describe("Asset image"),price:h().describe("Price in USD")}),rr=ks,qt=g({assets:p(T(sr)),maxStreamingQuantity:h().optional(),referrer:i().optional(),streamingInterval:h().optional(),tags:T(o.enum(Ot))}),Yt=qt.extend({affiliate:p(i()),affiliateFee:p(i()),approvalAddress:p(i().describe("Approval address for swap")),chainflip:rr.optional(),garden:Et.optional(),near:Et.optional(),priceImpact:p(h().describe("Price impact")),referrer:p(i()),txType:p(o.enum(Ce))}),jt=T(g({code:o.enum(Ee),display:i(),tooltip:i().optional()})),or=g({buyAmount:i().describe("Buy amount"),buyAmountMaxSlippage:i().describe("Buy amount max slippage"),buyAsset:i().describe("Asset to buy"),fees:p(Be),provider:o.enum(N),sellAmount:i().describe("Sell amount"),sellAsset:i().describe("Asset to sell")}),ir=g({buyAsset:i().describe("Asset to buy"),destinationAddress:p(i().describe("Destination address")),estimatedTime:p(Fe),expectedBuyAmount:i().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:i().describe("Expected Buy amount max slippage"),expiration:p(i().describe("Expiration")),fees:Be,inboundAddress:p(i().describe("Inbound address")),legs:T(or),memo:p(i().describe("Memo")),meta:Yt,providers:T(o.enum(N)),routeId:i().describe("Route ID"),sellAmount:i().describe("Sell amount"),sellAsset:i().describe("Asset to sell"),sourceAddress:p(i().describe("Source address")),targetAddress:p(i().describe("Target address")),totalSlippageBps:h().describe("Total slippage in bps"),tx:p(tr),txType:p(o.enum(Ce)),warnings:jt}),Xt=g({error:p(i().describe("Error message")),providerErrors:p(T(g({errorCode:p(o.enum(oe)),message:p(i()),provider:o.enum(N).optional()}))),quoteId:i().describe("Quote ID"),routes:T(ir)}),zt=o.object({chainId:o.enum(de),createdAt:o.date(),id:o.number(),unit:o.string(),value:o.string()}),ar=o.array(zt),Qt=o.union([zt,ar]),Ci=T(g({chain:o.enum(ve),decimal:h(),identifier:i(),symbol:i(),ticker:i(),value:i()})),Ii=o.union([o.object({amount:o.string(),spender:o.string(),tokenIdentifier:o.string(),userWalletAddress:o.string()}),o.object({amount:o.string(),chainId:o.enum(de),spender:o.string(),tokenContractAddress:o.string(),userWalletAddress:o.string()}),o.object({routeId:o.string()})]),Ei=o.object({approvalTransaction:o.optional(o.object({data:o.string(),from:o.string(),gasLimit:o.optional(o.string()),gasPrice:o.optional(o.string()),to:o.string(),value:pe})),approvedAmount:o.string(),isApproved:o.boolean()}),lr=o.object({data:o.string().describe("Encoded approval call data"),from:o.string().describe("User wallet address"),gasLimit:o.string().optional().describe("Estimated gas limit"),gasPrice:o.string().optional().describe("Current gas price"),to:o.string().describe("Token contract address"),value:pe.describe("ETH value (always '0' for approvals)")}),cr=o.object({tx:o.string(),txType:o.literal("STELLAR")}),dr=o.union([lr,cr]),Pt=o.object({buyAmount:o.string().describe("Buy amount").optional(),buyAmountMaxSlippage:o.string().describe("Buy amount max slippage").optional(),buyAsset:o.string().describe("Asset to buy"),expectedBuyAmount:o.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:o.string().describe("Expected Buy amount max slippage").optional(),fees:Be,provider:o.enum(N),sellAmount:o.string().describe("Sell amount"),sellAsset:o.string().describe("Asset to sell")}),Jt=Pt.extend({estimatedTime:o.optional(Fe),expiration:o.optional(o.string().describe("Expiration")),legs:o.array(Pt),providers:o.array(o.enum(N)),routeId:o.string().describe("Route ID"),totalSlippageBps:o.number().describe("Total slippage in bps"),warnings:jt}).omit({provider:!0}),Zt=o.object({method:o.string(),payload:o.optional(o.unknown()),url:o.string()}),pr=Jt.extend({meta:qt,nextActions:o.optional(o.array(Zt))}),Ni=o.object({error:o.optional(o.string().describe("Error message")),providerErrors:o.optional(o.array(o.object({errorCode:o.optional(o.enum(oe)),message:o.optional(o.string()),provider:o.enum(N).optional()}))),quoteId:o.string().describe("Quote ID"),routes:o.array(pr)}),Pi=o.object({providers:o.array(o.enum(N)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:o.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),ur=o.object({chain:o.enum(ve).describe("Chain the asset is on"),identifier:o.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:o.array(o.enum(N)).describe("Providers that support this trading pair"),symbol:o.string().describe("Asset symbol"),ticker:o.string().describe("Asset ticker")}),ki=o.object({buyAssets:o.array(ur).describe("List of assets that can be swapped to"),sellAsset:o.string().describe("The input sell asset identifier")}),en=Jt.extend({destinationAddress:o.string().describe("Destination address"),inboundAddress:o.optional(o.string().describe("Inbound address")),memo:o.optional(o.string().describe("Memo to include in the transaction")),meta:Yt,sourceAddress:o.string().describe("Source address"),targetAddress:o.optional(o.string().describe("Target address")),tx:p(Gt),txType:o.optional(o.enum(Ce))}),gr=o.object({data:o.optional(o.record(o.string(),o.string().optional())),errorCode:o.enum(oe),message:o.string().optional(),provider:o.enum(N).optional()}),Oi=o.object({error:o.optional(o.string().describe("Error message")),providerErrors:o.optional(o.array(gr)),quoteId:o.string().describe("Quote ID"),routes:o.array(en)}),tn=en.extend({approvalTx:dr.optional().describe("Optional approval transaction required before swap execution"),nextActions:o.optional(o.array(Zt)),swapId:o.string().describe("The unique swap ID for tracking")});var O=_.extend({dynamicHeader:async()=>{let e=S.get("widgetId"),t=S.get("widgetKey");if(e&&t&&typeof window<"u"){let s=Math.floor(Date.now()/1000),r=window.location.origin,a=await rt(t,e,r,s);return{Origin:r,"X-Signature":a,"X-Timestamp":s.toString(),"x-widget-id":e}}let{swapKit:n}=S.get("apiKeys");return n?{"x-api-key":n}:{}}});async function _r(e){let t=await O.post(k("/track"),{json:e});try{let n=Kt.safeParse(t);if(!n.success)throw new y("api_v2_invalid_response",n.error);return n.data}catch(n){return t}}async function hr(e){let{getQuote:t}=S.get("endpoints");if(t)return t(e);let s=S.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",r=await O.post(k(s),{json:e});if(r.error)throw new y("api_v2_server_error",{message:r.error});try{let a=Xt.safeParse(r);if(!a.success)throw new y("api_v2_invalid_response",a.error);return a.data}catch{return r}}async function fr(e){let{getRouteWithTx:t}=S.get("endpoints");if(t)return t(e);let s=S.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",r=await O.post(k(s),{json:e});try{let a=tn.safeParse(r);if(!a.success)throw new y("api_v2_invalid_response",a.error);return a.data}catch(a){return console.error(new y("api_v2_invalid_response",a)),r}}async function yr({chain:e,address:t,scamFilter:n=!0}){let{getBalance:s}=S.get("endpoints");if(s)return s({address:t,chain:e});let r=k(`/balance?chain=${e}&address=${t}`),a=await O.get(r),c=Array.isArray(a)?a:[];return n?Nr(c):c}function br(e){let t=mr(e).with({routeId:ue.string,spender:ue.string},({routeId:n,spender:s})=>k(`/approve?routeId=${n}&sourceAddress=${s}`)).with({assetValue:ue.instanceOf(D),spender:ue.string,userWallet:ue.string},({spender:n,userWallet:s,assetValue:r})=>k(`/approve?tokenIdentifier=${r.toString()}&userWalletAddress=${s}&spender=${n}&amount=${r.getValue("string")}`)).exhaustive();return O.get(t)}function Ar(){let e=k("/providers");return O.get(e)}function Sr(e){let t=k(`/tokens?provider=${e}`);return O.get(t)}function Tr({query:e,chain:t,page:n,limit:s}){let r=new URLSearchParams({query:e});if(t!==void 0)r.set("chain",t);if(n!==void 0)r.set("page",n.toString());if(s!==void 0)r.set("limit",s.toString());let a=k(`/tokens/search?${r.toString()}`);return O.get(a)}async function wr(e){let t=k("/price"),n=await O.post(t,{json:e});try{let s=Ut.safeParse(n);if(!s.success)throw new y("api_v2_invalid_response",s.error);return s.data}catch(s){throw new y("api_v2_invalid_response",s)}}async function xr(){let e=k("/gas"),t=await O.get(e);try{let n=Qt.safeParse(t);if(!n.success)throw new y("api_v2_invalid_response",n.error);return Array.isArray(n)?n:[n]}catch(n){throw new y("api_v2_invalid_response",n)}}async function Rr(e){let{destinationAddress:t}=e;if(!t)throw new y("chainflip_broker_invalid_params");let n=S.get("integrations").chainflip?.brokerUrl||k("/chainflip/broker/channel"),s=await O.post(n,{json:e});try{let r=Bt.safeParse(s);if(!r.success)throw new y("api_v2_invalid_response",r.error);return r.data}catch(r){throw new y("api_v2_invalid_response",r)}}async function vr(e){let{destinationAddress:t}=e;if(!t)throw new y("chainflip_broker_invalid_params");let n=k("/near/channel"),s=await O.post(n,{json:e});try{let r=Ft.safeParse(s);if(!r.success)throw new y("api_v2_invalid_response",r.error);return r.data}catch(r){throw new y("api_v2_invalid_response",r)}}function k(e){let{isDev:t,apiUrl:n,devApiUrl:s}=S.get("envs"),{enabled:r,quoteUrl:a,swapUrl:c}=S.get("localMode");if(r&&e){let[m]=e.split("?");if(m==="/quote"||m==="/v3/quote")return`${a}${e}`;if(m==="/swap"||m==="/v3/swap")return`${c}${e}`}return`${t?s:n}${e}`}function Cr(e){try{return D.from({asset:e.identifier})}catch{return}}var Ir=new Set(["OP.OP"]),Er=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function Nr(e){return e.filter((t)=>{let n=Cr(t);if(!n)return!1;if(Ir.has(n.toString().toUpperCase()))return!0;return(!Ke.includes(n.chain)||n.isGasAsset||!!n.address)&&!Er.test(n.ticker)})}async function Pr(e){let{getSwapTo:t}=S.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 s=k(`/swapTo?${n.toString()}`),r=await O.get(s);if(!Array.isArray(r))return{buyAssets:[],sellAsset:e.sellAsset};let a=[];for(let c of r)try{let u=D.from({asset:c});a.push({chain:u.chain,identifier:u.toString(),providers:[],symbol:u.symbol,ticker:u.ticker})}catch{}return{buyAssets:a,sellAsset:e.sellAsset}}var Ge={};Xe(Ge,{getInboundAddresses:()=>Vr,getLastBlock:()=>Dr,getMimirInfo:()=>Hr,getNodes:()=>Mr,getRunePoolInfo:()=>$r,getRunePoolProviderInfo:()=>Br,getTHORNodeTNSDetails:()=>nn,getTNSPreferredAsset:()=>Ur,getTcyClaimer:()=>Wr,getTcyClaimers:()=>Gr,getTcyStaker:()=>Fr,getTcyStakers:()=>Kr,getThorchainQueue:()=>Lr});import{match as kr}from"ts-pattern";function L(e){let{isStagenet:t}=S.get("envs"),n=S.get("thornodeUrls");return`${kr({isStagenet:t,type:e}).with({type:"mayachain"},({isStagenet:r})=>r?n.MAYA_STAGENET:n.MAYA).otherwise(({isStagenet:r})=>r?n.THOR_STAGENET:n.THOR)}/${e??"thorchain"}`}function Or(e){let t=e==="mayachain"?"mayaname":"thorname";return`${L(e)}/${t}`}function Dr(e="thorchain"){return _.get(`${L(e)}/lastblock`)}function Lr(e){return _.get(`${L(e)}/queue`)}function Mr(e){return _.get(`${L(e)}/nodes`)}function Hr(e){return _.get(`${L(e)}/mimir`)}function Vr(e){return _.get(`${L(e)}/inbound_addresses`)}async function nn({type:e,name:t}){try{return await _.get(`${Or(e)}/${t}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:t,owner:"",preferred_asset:""}}}async function Ur({type:e,tns:t}){let n=await nn({name:t,type:e});if(!n.preferred_asset||n.preferred_asset===".")return;return D.from({asset:n.preferred_asset,asyncTokenLookup:!0})}function $r(e){return _.get(`${L(e)}/runepool`)}function Br({type:e,thorAddress:t}){return _.get(`${L(e)}/rune_provider/${t}`)}function Fr({type:e,address:t}){return _.get(`${L(e)}/tcy_staker/${t}`)}function Kr(e){return _.get(`${L(e)}/tcy_stakers`)}function Wr({type:e,address:t}){return _.get(`${L(e)}/tcy_claimer/${t}`)}function Gr(e){return _.get(`${L(e)}/tcy_claimers`)}var Yi={...We,mayachainMidgard:It,thorchainMidgard:Ct,thornode:Ge};
|
|
5
|
+
export{jr as a,oe as b,Ee as c,N as d,Ne as e,dn as f,pn as g,un as h,y as i,Jr as j,_e as k,Je as l,to as m,gn as n,P as o,S as p,_ as q,rt as r,yo as s,j as t,Oe as u,Nn as v,X as w,Ro as x,vo as y,Co as z,Io as A,Uo as B,Hn as C,yt as D,bt as E,At as F,Ae as G,De as H,K as I,ae as J,$o as K,Bo as L,G as M,U as N,Yn as O,D as P,Zo as Q,xe as R,Ot as S,Ce as T,Dt as U,Lt as V,Mt as W,Ht as X,pi as Y,ui as Z,gi as _,mi as $,te as aa,Vt as ba,_i as ca,Ut as da,hi as ea,fi as fa,$t as ga,ks as ha,Bt as ia,Et as ja,yi as ka,Ft as la,Kt as ma,bi as na,Ai as oa,Be as pa,Fe as qa,Bs as ra,Si as sa,Ti as ta,Fs as ua,Ks as va,Ws as wa,wi as xa,Xs as ya,zs as za,Qs as Aa,Js as Ba,xi as Ca,Zs as Da,er as Ea,Wt as Fa,Ri as Ga,nr as Ha,vi as Ia,sr as Ja,rr as Ka,qt as La,Yt as Ma,jt as Na,ir as Oa,Xt as Pa,zt as Qa,Qt as Ra,Ii as Sa,Ei as Ta,lr as Ua,cr as Va,dr as Wa,Ni as Xa,Pi as Ya,ur as Za,ki as _a,en as $a,gr as ab,Oi as bb,tn as cb,Yi as db};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as jJ,$a as jQ,A as wG,Aa as fJ,B as bG,Ba as wJ,C as cG,Ca as bJ,D as mG,Da as cJ,E as hG,Ea as mJ,F as uG,Fa as hJ,G as dG,Ga as uJ,H as pG,Ha as dJ,I as lG,Ia as pJ,J as rG,Ja as lJ,K as oG,Ka as rJ,L as sG,La as oJ,M as nG,Ma as sJ,N as iG,Na as nJ,O as aG,Oa as iJ,P as tG,Pa as aJ,Q as eG,Qa as tJ,R,Ra as eJ,S as zJ,Sa as zQ,T as GJ,Ta as GQ,U as JJ,Ua as JQ,V as QJ,Va as QQ,W as ZJ,Wa as ZQ,X as $J,Xa as $Q,Y as HJ,Ya as HQ,Z as VJ,Za as VQ,_ as XJ,_a as XQ,a as W,aa as BJ,ab as BQ,b as WG,ba as _J,bb as _Q,c as qG,ca as LJ,cb as LQ,d as KG,da as RJ,db as RQ,e as MG,ea as YJ,f as A,fa as FJ,g as EG,ga as xJ,h as s,ha as IJ,i as L,ia as WJ,j as kG,ja as qJ,k as j,ka as KJ,l as NG,la as MJ,m as SG,ma as EJ,n as gG,na as kJ,o as DG,oa as NJ,p as S,pa as SJ,q as CG,qa as gJ,r as PG,ra as DJ,s as UG,sa as CJ,t as D,ta as PJ,u as TG,ua as UJ,v as OG,va as TJ,w as vG,wa as OJ,x as yG,xa as vJ,y as AG,ya as yJ,z as fG,za as AJ}from"./chunk-q0s1vae8.js";export*from"@swapkit/tokens";export*from"@swapkit/types";var f={average:1,fast:1.5,fastest:2};function g(z="average"){let G=S.get("feeMultipliers");if(G&&G[z]!==void 0)return G[z];return f[z]}function w(z="average"){let G=g(z),Q=10n,J=BigInt(Math.round(G*10));return{denominator:Q,numerator:J}}function Zz(z,G="average"){let{numerator:Q,denominator:J}=w(G);return z*Q/J}function $z(z,G="average",Q=!1){let J=g(G),Z=z*J;return Q?Math.floor(Z):Z}import{Chain as I,EVMChains as b}from"@swapkit/types";import{match as c}from"ts-pattern";function F(z,G){let Q=z.length-1;return z.map((Z,$)=>{if($===Q&&G.index!==void 0)return G.index;if($===0&&G.purpose!==void 0)return G.purpose;if($===2&&G.account!==void 0)return G.account;if($===3&&G.change!==void 0)return G.change;return Z})}var E={bech32:84,legacy:44,p2sh:49,taproot:86},m=Object.freeze([I.Near,I.Stellar,I.Sui]),Bz=Object.freeze([I.Ton]);function h({chain:z,derivationPath:G,index:Q=0}){if(G)return G;return F(W[z],m.includes(z)?{account:Q}:{index:Q})}function u([z,G,Q,J,Z],{allHardened:$}={}){let V=$?"'":"",X=typeof Z!=="number";if(typeof J!=="number")return`m/${z}'/${G}'/${Q}'`;return`m/${z}'/${G}'/${Q}'/${J}${V}${X?"":`/${Z}${V}`}`}function _z({chain:z,index:G,addressIndex:Q=0,type:J}){let Z=W[z],$=b.includes(z)?"evm":z===I.Solana?"solana":"other";return c([$,J]).with(["evm","legacy"],["evm","account"],()=>[44,60,0,G]).with(["evm","ledgerLive"],()=>[44,60,G,0,Q]).with(["evm","nativeSegwitMiddleAccount"],["evm","segwit"],["evm",void 0],()=>F(Z,{index:G})).with(["solana","account"],()=>[44,501,0,G]).with(["solana","legacy"],["solana","ledgerLive"],["solana","nativeSegwitMiddleAccount"],["solana","segwit"],["solana",void 0],()=>F(Z,{index:G})).with(["other","nativeSegwitMiddleAccount"],()=>F(Z,{account:G,index:Q,purpose:E.bech32})).with(["other","segwit"],()=>F(Z,{account:0,index:G,purpose:E.p2sh})).with(["other","legacy"],()=>F(Z,{account:0,index:G,purpose:E.legacy})).with(["other","account"],["other","ledgerLive"],["other",void 0],()=>h({chain:z,index:G})).exhaustive()}function Lz(z){let[G,Q]=z.split("/").map((J)=>Number.parseInt(J,10));switch(Q){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var Rz=Object.freeze(Object.fromEntries(Object.keys(W).map((z)=>[z,u(W[z])])));import{Chain as d,getChainConfig as p}from"@swapkit/types";function l({liquidityUnits:z,poolUnits:G,runeDepth:Q}){let J=B(z),Z=B(G),$=B(Q),V=J.mul($),X=Z.mul(Z).mul(2),H=Z.mul(J).mul(2),_=J.mul(J),Y=Z.mul(Z).mul(Z);return V.mul(X.sub(H).add(_)).div(Y)}function r({liquidityUnits:z,poolUnits:G,assetDepth:Q}){let J=B(z),Z=B(G),$=B(Q),V=J.mul($),X=Z.mul(Z).mul(2),H=Z.mul(J).mul(2),_=J.mul(J),Y=V.mul(X.sub(H).add(_)),x=Z.mul(Z).mul(Z);return Y.div(x)}function Iz({percent:z,runeDepth:G,liquidityUnits:Q,poolUnits:J}){return l({liquidityUnits:Q,poolUnits:J,runeDepth:G}).mul(z)}function Wz({percent:z,assetDepth:G,liquidityUnits:Q,poolUnits:J}){return r({assetDepth:G,liquidityUnits:Q,poolUnits:J}).mul(z)}function B(z){return R.fromBigInt(BigInt(z),p(d.THORChain).baseDecimal)}function o({liquidityUnits:z,poolUnits:G,runeDepth:Q,assetDepth:J}){return{assetAmount:B(J).mul(z).div(G),runeAmount:B(Q).mul(z).div(G)}}function qz({liquidityUnits:z,poolUnits:G,runeDepth:Q,assetDepth:J,percent:Z}){return Object.fromEntries(Object.entries(o({assetDepth:J,liquidityUnits:z,poolUnits:G,runeDepth:Q})).map(([$,V])=>[$,V.mul(Z)]))}function Kz({runeDepth:z,poolUnits:G,assetDepth:Q,liquidityUnits:J,runeAmount:Z,assetAmount:$}){let V=new R({decimal:8,value:z}),X=new R({decimal:8,value:Q}),H=new R({decimal:8,value:G}),_=new R({decimal:8,value:Z}),Y=new R({decimal:8,value:$}),x=_.mul(X),k=Y.mul(V),U=_.mul(Y),T=V.mul(X),O=H.mul(x.add(k.add(U.mul(2)))),v=x.add(k.add(T.mul(2))),N=O.div(v),M=B(J).add(N);if(N.getBaseValue("number")===0)return M.div(H).getBaseValue("number");let y=H.add(M);return M.div(y).getBaseValue("number")}function Mz({runeAmount:z,assetAmount:G,runeDepth:Q,assetDepth:J}){if(z==="0"||G==="0"||Q==="0"||J==="0")return 0;let Z=B(Q),$=B(J),V=B(G),X=B(z),H=V.mul(Z).sub($.mul(X)),_=$.mul(X).add(Z.mul($));return Math.abs(H.div(_).getBaseValue("number"))}import{Chain as q}from"@swapkit/types";import{match as n}from"ts-pattern";function Dz({type:z,address:G}){return`${z}:${G}`}function Cz({address:z,unbondAmount:G}){return`${"UNBOND"}:${z}:${G}`}function Pz(z){return K("POOL+",z)}function Uz({chain:z,symbol:G,address:Q,...J}){let Z=i({chain:z,symbol:G}),$=Q?`:${Q}:`:":";return K(`${"+"}:${Z}${$}`,J)}function Tz({chain:z,symbol:G,ticker:Q,basisPoints:J,targetAsset:Z}){let $=z==="ETH"&&Q!=="ETH"?`${Q}-${G.slice(-3)}`:G,V=Z?`:${Z}`:"";return`${"-"}:${z}.${$}:${J}${V}`}function Oz({basisPoints:z,...G}){return K(`${"POOL-"}:${z}`,G)}function vz({name:z,chain:G,address:Q,owner:J}){let Z=`${"~"}:${z}:${G}:${Q}`,$=J?`:${J}`:"";return`${Z}${$}`}function yz({name:z,chain:G,asset:Q,payout:J,owner:Z}){return`${"~"}:${z}:${G}:${J}:${Z}:${Q}`}function Az(z,{address:G}){return`${z}:${G}`}function fz(z,{unstakeBps:G,...Q}){let J=G?`:${G}`:"",Z=`${z}${J}`;return K(`${Z}`,Q)}function K(z,{affiliateAddress:G,affiliateBasisPoints:Q}={}){let J=`${z}${G?`:${G}:${Q||0}`:""}`;return J.endsWith(":")?J.slice(0,-1):J}function i({chain:z,symbol:G}){return n(z).with(q.Bitcoin,q.Dogecoin,q.Litecoin,()=>z.slice(0,1).toLowerCase()).with(q.BitcoinCash,()=>"c").otherwise(()=>`${z}.${G}`)}function wz(z){if(z<0)throw new L({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:z}});return 10+z}function bz(z){if(z<0)throw new L({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:z}});return Math.round((10+z*1.0512)*10000000000)/10000000000}function cz(z){if(z.length>30)return!1;let G=/^[a-zA-Z0-9+_-]+$/g;return!!z.match(G)}import{getChainConfig as C}from"@swapkit/types";function lz(){return typeof window.ethereum<"u"}function rz(z){return a().includes(z)}function a(){let z=window?.ethereum&&!window.ethereum?.isBraveWallet,G=window?.ctrl||window?.ethereum?.__XDEFI,Q=window?.vultisig,J=window?.ethereum?.isBraveWallet,Z=window?.ethereum?.isTrust||window?.trustwallet,$=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,V=window?.bitkeep?.ethereum,X=window?.$onekey?.ethereum,H=[];if(z)H.push(j.METAMASK);if(G)H.push(j.CTRL);if(Q)H.push(j.VULTISIG);if(J)H.push(j.BRAVE);if(Z)H.push(j.TRUSTWALLET_WEB);if($)H.push(j.COINBASE_WEB);if(Gz())H.push(j.OKX_MOBILE);if(V)H.push(j.BITGET);if(X)H.push(j.ONEKEY);return H}async function t(z,G,Q){let J=C(G);try{await P({method:"wallet_switchEthereumChain",params:[{chainId:J.chainIdHex}],provider:z})}catch(Z){if(!Q)throw new L("helpers_failed_to_switch_network",{error:Z,reason:"networkParams not provided"});await zz(z,Q)}}function oz({chains:z,supportedChains:G,walletType:Q}){let J=z.filter(($)=>!$||G.includes($));if(J.length===0)throw new L("wallet_chain_not_supported",{chain:z.join(", "),wallet:Q});let Z=z.filter(($)=>!G.includes($));return D({condition:Z.length>0,id:`wallet_chain_not_supported_${Q}`,warning:`${Q} wallet does not support the following chains: ${Z.join(", ")}. These chains will be ignored.`}),J}function e(z,G,Q){return async(...J)=>{let{chainIdHex:Z}=C(Q);if((await G.getNetwork()).chainId.toString()===Z)return z(...J);try{await t(G,Q)}catch($){throw new L({errorKey:"helpers_failed_to_switch_network",info:{error:$}})}return z(...J)}}function sz({toolbox:z,chain:G,provider:Q,methodNames:J=[]}){let $=[...J,"approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"].reduce((V,X)=>{if(!z[X])return V;let H=z[X];if(typeof H!=="function")return V;let _=e(H,Q,G);return{...V,[X]:_}},{});return{...z,...$}}function zz(z,G){return P({method:"wallet_addEthereumChain",params:[G],provider:z})}function nz(z){window.ethereum?.on("accountsChanged",()=>z()),window.ctrl?.ethereum.on("accountsChanged",()=>z())}function iz(){let{isTrust:z,isBraveWallet:G,__XDEFI:Q,overrideIsMetaMask:J,selectedProvider:Z}=window?.ethereum||{};if(z)return j.TRUSTWALLET_WEB;if(G)return j.BRAVE;if(J&&Z?.isCoinbaseWallet)return j.COINBASE_WEB;if(Q)return j.CTRL;if(window?.$onekey?.ethereum)return j.ONEKEY;return j.METAMASK}function az(){let z=[];function G(J){if(z.map((Z)=>Z.info.uuid).includes(J.detail.info.uuid))return;z.push(J.detail)}window.addEventListener("eip6963:announceProvider",G),window.dispatchEvent(new Event("eip6963:requestProvider"));function Q(){window.removeEventListener("eip6963:announceProvider",G)}return{providers:z,removeEIP6963EventListener:Q}}function Gz(){let z=navigator.userAgent,G=/iphone|ipad|ipod|ios/i.test(z),Q=/android|XiaoMi|MiuiBrowser/i.test(z),J=G||Q,Z=/OKApp/i.test(z);return J&&Z}function P({provider:z,params:G,method:Q}){if(!z?.send)throw new L("helpers_not_found_provider");let J=G?Array.isArray(G)?G:[G]:[];return z.send(Q,J)}export{UG as wrapWithThrow,e as wrapMethodWithNetworkSwitch,D as warnOnce,cz as validateTNS,aG as validateIdentifier,F as updateDerivationPath,PJ as toHexTransactionValue,t as switchEVMWalletNetwork,DG as swapKitConfigStore,NG as subscribeWalletOptionRegistration,PG as signWidgetRequest,h as resolveDerivationPath,SG as registerWalletOption,kG as registerErrorCodes,P as providerRequest,sz as prepareNetworkSwitch,CJ as parseTransactionValue,rG as parseSymbolForAddress,Gz as okxMobileEnabled,a as listWeb3EVMWallets,lz as isWeb3Detected,DJ as isTransactionValue,uG as isGasAsset,rz as isDetected,yG as initializeRPCUrlsWithFallback,Lz as getWalletFormatFor,oG as getTokenLogoURI,wz as getTHORNameCost,qz as getSymmetricWithdraw,o as getSymmetricPoolShare,OG as getRPCUrlSync,vG as getRPCUrl,eG as getMinAmountByChain,Tz as getMemoForWithdraw,Cz as getMemoForUnbond,fz as getMemoForTcyStake,Az as getMemoForTcyClaim,Oz as getMemoForRunePoolWithdraw,Pz as getMemoForRunePoolDeposit,vz as getMemoForNameRegister,yz as getMemoForNamePreferredAssetRegister,Dz as getMemoForLeaveAndBond,Uz as getMemoForDeposit,bz as getMAYANameCost,Mz as getLiquiditySlippage,w as getFeeMultiplierAsBigInt,g as getFeeMultiplier,AG as getExplorerTxUrl,fG as getExplorerAddressUrl,Kz as getEstimatedPoolShare,iz as getETHDefaultWallet,az as getEIP6963Wallets,_z as getDerivationPathFor,dG as getCommonAssetInfo,wG as getChainIdentifier,Iz as getAsymmetricRuneWithdrawAmount,l as getAsymmetricRuneShare,Wz as getAsymmetricAssetWithdrawAmount,r as getAsymmetricAssetShare,pG as getAssetType,nG as formatBigIntToSafeValue,sG as findAssetBy,oz as filterSupportedChains,hG as fetchTokenInfo,u as derivationPathToString,cG as decodeABIString,mG as decodeABIDynamicString,lG as assetFromString,Zz as applyFeeMultiplierToBigInt,$z as applyFeeMultiplier,zz as addEVMWalletNetwork,nz as addAccountsChangedCallback,TG as _rpcCache,qG as WarningCodeEnum,j as WalletOption,E as UTXOPurpose,JJ as TxnType,ZJ as TxnStatus,TJ as TronTransactionSchema,kJ as TransactionSchema,NJ as TransactionDTOSchema,$J as TrackingStatus,VJ as TrackingRequestSchema,XJ as TrackingRequestQuerySchema,EJ as TrackerResponseSchema,HJ as TokenSchema,LJ as TokenDetailsMetadataSchema,wJ as TONTransactionSchema,fJ as TONTransactionMessageSchema,XQ as SwapToResponseSchema,HQ as SwapToRequestSchema,VQ as SwapToAssetSchema,LQ as SwapRouteV2ResponseSchema,R as SwapKitNumber,L as SwapKitError,RQ as SwapKitApi,ZQ as SwapApprovalTransactionSchema,QQ as StellarApprovalTransactionSchema,AJ as StarknetTransactionSchema,S as SKConfig,Bz as SINGLE_WALLET_CHAINS,nJ as RouteQuoteWarningSchema,GJ as RouteQuoteTxType,BQ as RouteQuoteProviderErrorSchema,sJ as RouteQuoteMetadataV2Schema,oJ as RouteQuoteMetadataSchema,lJ as RouteQuoteMetadataAssetSchema,pJ as RouteLegWithoutAddressesSchema,dJ as RouteLegSchema,CG as RequestClient,$Q as QuoteV3ResponseSchema,_Q as QuoteV2ResponseSchema,jQ as QuoteRouteV2Response,aJ as QuoteResponseSchema,iJ as QuoteResponseRouteItem,YJ as QuoteRequestSchema,KG as ProviderName,QJ as ProviderAction,zJ as PriorityLabel,RJ as PriceResponseSchema,FJ as PriceRequestSchema,W as NetworkDerivationPath,MJ as NearSwapResponseSchema,KJ as NearDepositChannelResultSchema,qJ as NearDepositChannelParamsSchema,s as MemoType,gG as LedgerErrorCode,hJ as HyperCoreTypedDataTransactionSchema,uJ as HyperCoreSendAssetTransactionSchema,mJ as HyperCoreSendAssetActionSchema,cJ as HyperCoreEip712TypedDataSchema,bJ as HYPERCORE_USDC_TOKEN_ID,tJ as GasSchema,eJ as GasResponseSchema,SJ as FeesSchema,MG as FeeTypeEnum,A as FeeOption,gJ as EstimatedTimeSchema,WG as ErrorCode,UJ as EVMTransactionSchema,vJ as EVMTransactionDetailsSchema,OJ as EVMTransactionDetailsParamsSchema,Rz as DerivationPath,WJ as DepositChannelResponseSchema,xJ as DepositChannelParamsSchema,f as DEFAULT_FEE_MULTIPLIERS,yJ as CosmosTransactionSchema,bG as CommonAssetStrings,_J as CoinGeckoMetadataSchema,rJ as ChainflipMetadataSchema,IJ as BrokerDepositChannelParamsSchema,iG as BigIntArithmetics,BJ as AssetValueSchema,tG as AssetValue,GQ as ApproveResponseSchema,zQ as ApproveRequestParams,EG as ApproveMode,JQ as ApprovalTransactionSchema,jJ as ApiV2ErrorSchema,m as ACCOUNT_INDEXED_CHAINS};
|
|
1
|
+
import{$ as cr,$a as dn,A as Lt,Aa as Nr,B as Bt,Ba as Lr,C as kt,Ca as Br,D as Ut,Da as kr,E as Kt,Ea as Ur,F as Vt,Fa as Kr,G as Ht,Ga as Vr,H as jt,Ha as Hr,I as Gt,Ia as jr,J as qt,Ja as Gr,K as Xt,Ka as qr,L as zt,La as Xr,M as Yt,Ma as zr,N as Zt,Na as Yr,O as Jt,Oa as Zr,P as Qt,Pa as Jr,Q as er,Qa as Qr,R as l,Ra as en,S as tr,Sa as tn,T as rr,Ta as rn,U as nr,Ua as nn,V as or,Va as on,W as ir,Wa as an,X as ar,Xa as sn,Y as sr,Ya as un,Z as ur,Za as mn,_ as mr,_a as cn,a as v,aa as dr,ab as pn,b as Pt,ba as pr,bb as ln,c as Et,ca as lr,cb as hn,d as bt,da as hr,db as fn,e as yt,ea as fr,f as O,fa as gr,g as At,ga as wr,h as z,ha as vr,i as p,ia as Pr,j as xt,ja as Er,k as m,ka as br,l as Tt,la as yr,m as Ct,ma as Ar,n as Mt,na as xr,o as $t,oa as Tr,p as T,pa as Cr,q as St,qa as Mr,r as _t,ra as $r,s as Wt,sa as Sr,t as M,ta as _r,u as Dt,ua as Wr,v as Rt,va as Dr,w as It,wa as Rr,x as Ft,xa as Ir,y as Ot,ya as Fr,z as Nt,za as Or}from"./chunk-q85p4mys.js";export*from"@swapkit/tokens";export*from"@swapkit/types";var N={average:1,fast:1.5,fastest:2};function C(e="average"){let t=T.get("feeMultipliers");if(t&&t[e]!==void 0)return t[e];return N[e]}function L(e="average"){let t=C(e),n=10n,r=BigInt(Math.round(t*10));return{denominator:n,numerator:r}}function ie(e,t="average"){let{numerator:n,denominator:r}=L(t);return e*n/r}function ae(e,t="average",n=!1){let r=C(t),o=e*r;return n?Math.floor(o):o}import{Chain as w,EVMChains as B}from"@swapkit/types";import{match as k}from"ts-pattern";function f(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 y={bech32:84,legacy:44,p2sh:49,taproot:86},U=Object.freeze([w.Near,w.Stellar,w.Sui]),de=Object.freeze([w.Ton]);function K({chain:e,derivationPath:t,index:n=0}){if(t)return t;return f(v[e],U.includes(e)?{account:n}:{index:n})}function V([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=B.includes(e)?"evm":e===w.Solana?"solana":"other";return k([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],()=>f(o,{index:t})).with(["solana","account"],()=>[44,501,0,t]).with(["solana","legacy"],["solana","ledgerLive"],["solana","nativeSegwitMiddleAccount"],["solana","segwit"],["solana",void 0],()=>f(o,{index:t})).with(["other","nativeSegwitMiddleAccount"],()=>f(o,{account:t,index:n,purpose:y.bech32})).with(["other","segwit"],()=>f(o,{account:0,index:t,purpose:y.p2sh})).with(["other","legacy"],()=>f(o,{account:0,index:t,purpose:y.legacy})).with(["other","account"],["other","ledgerLive"],["other",void 0],()=>K({chain:e,index:t})).exhaustive()}function le(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 he=Object.freeze(Object.fromEntries(Object.keys(v).map((e)=>[e,V(v[e])])));import{Chain as H,getChainConfig as j}from"@swapkit/types";function G({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),d=r.mul(r),h=o.mul(o).mul(o);return s.mul(u.sub(a).add(d)).div(h)}function q({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),d=r.mul(r),h=s.mul(u.sub(a).add(d)),g=o.mul(o).mul(o);return h.div(g)}function ve({percent:e,runeDepth:t,liquidityUnits:n,poolUnits:r}){return G({liquidityUnits:n,poolUnits:r,runeDepth:t}).mul(e)}function Pe({percent:e,assetDepth:t,liquidityUnits:n,poolUnits:r}){return q({assetDepth:t,liquidityUnits:n,poolUnits:r}).mul(e)}function c(e){return l.fromBigInt(BigInt(e),j(H.THORChain).baseDecimal)}function X({liquidityUnits:e,poolUnits:t,runeDepth:n,assetDepth:r}){return{assetAmount:c(r).mul(e).div(t),runeAmount:c(n).mul(e).div(t)}}function Ee({liquidityUnits:e,poolUnits:t,runeDepth:n,assetDepth:r,percent:o}){return Object.fromEntries(Object.entries(X({assetDepth:r,liquidityUnits:e,poolUnits:t,runeDepth:n})).map(([i,s])=>[i,s.mul(o)]))}function be({runeDepth:e,poolUnits:t,assetDepth:n,liquidityUnits:r,runeAmount:o,assetAmount:i}){let s=new l({decimal:8,value:e}),u=new l({decimal:8,value:n}),a=new l({decimal:8,value:t}),d=new l({decimal:8,value:o}),h=new l({decimal:8,value:i}),g=d.mul(u),A=h.mul(s),W=d.mul(h),D=s.mul(u),R=a.mul(g.add(A.add(W.mul(2)))),I=g.add(A.add(D.mul(2))),x=R.div(I),b=c(r).add(x);if(x.getBaseValue("number")===0)return b.div(a).getBaseValue("number");let F=a.add(b);return b.div(F).getBaseValue("number")}function ye({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)),d=i.mul(u).add(o.mul(i));return Math.abs(a.div(d).getBaseValue("number"))}import{Chain as P}from"@swapkit/types";import{match as Y}from"ts-pattern";function $e({type:e,address:t}){return`${e}:${t}`}function Se({address:e,unbondAmount:t}){return`${"UNBOND"}:${e}:${t}`}function _e(e){return E("POOL+",e)}function We({chain:e,symbol:t,address:n,...r}){let o=Z({chain:e,symbol:t}),i=n?`:${n}:`:":";return E(`${"+"}:${o}${i}`,r)}function De({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 Re({basisPoints:e,...t}){return E(`${"POOL-"}:${e}`,t)}function Ie({name:e,chain:t,address:n,owner:r}){let o=`${"~"}:${e}:${t}:${n}`,i=r?`:${r}`:"";return`${o}${i}`}function Fe({name:e,chain:t,asset:n,payout:r,owner:o}){return`${"~"}:${e}:${t}:${r}:${o}:${n}`}function Oe(e,{address:t}){return`${e}:${t}`}function Ne(e,{unstakeBps:t,...n}){let r=t?`:${t}`:"",o=`${e}${r}`;return E(`${o}`,n)}function E(e,{affiliateAddress:t,affiliateBasisPoints:n}={}){let r=`${e}${t?`:${t}:${n||0}`:""}`;return r.endsWith(":")?r.slice(0,-1):r}function Z({chain:e,symbol:t}){return Y(e).with(P.Bitcoin,P.Dogecoin,P.Litecoin,()=>e.slice(0,1).toLowerCase()).with(P.BitcoinCash,()=>"c").otherwise(()=>`${e}.${t}`)}function Le(e){if(e<0)throw new p({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return 10+e}function Be(e){if(e<0)throw new p({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:e}});return Math.round((10+e*1.0512)*10000000000)/10000000000}function ke(e){if(e.length>30)return!1;let t=/^[a-zA-Z0-9+_-]+$/g;return!!e.match(t)}import{getChainConfig as S}from"@swapkit/types";function Ge(){return typeof window.ethereum<"u"}function qe(e){return J().includes(e)}function J(){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(m.METAMASK);if(t)a.push(m.CTRL);if(n)a.push(m.VULTISIG);if(r)a.push(m.BRAVE);if(o)a.push(m.TRUSTWALLET_WEB);if(i)a.push(m.COINBASE_WEB);if(re())a.push(m.OKX_MOBILE);if(s)a.push(m.BITGET);if(u)a.push(m.ONEKEY);return a}async function Q(e,t,n){let r=S(t);try{await _({method:"wallet_switchEthereumChain",params:[{chainId:r.chainIdHex}],provider:e})}catch(o){if(!n)throw new p("helpers_failed_to_switch_network",{error:o,reason:"networkParams not provided"});await te(e,n)}}function Xe({chains:e,supportedChains:t,walletType:n}){let r=e.filter((i)=>!i||t.includes(i));if(r.length===0)throw new p("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 ee(e,t,n){return async(...r)=>{let{chainIdHex:o}=S(n);if((await t.getNetwork()).chainId.toString()===o)return e(...r);try{await Q(t,n)}catch(i){throw new p({errorKey:"helpers_failed_to_switch_network",info:{error:i}})}return e(...r)}}function ze({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 d=ee(a,n,t);return{...s,[u]:d}},{});return{...e,...i}}function te(e,t){return _({method:"wallet_addEthereumChain",params:[t],provider:e})}function Ye(e){window.ethereum?.on("accountsChanged",()=>e()),window.ctrl?.ethereum.on("accountsChanged",()=>e())}function Ze(){let{isTrust:e,isBraveWallet:t,__XDEFI:n,overrideIsMetaMask:r,selectedProvider:o}=window?.ethereum||{};if(e)return m.TRUSTWALLET_WEB;if(t)return m.BRAVE;if(r&&o?.isCoinbaseWallet)return m.COINBASE_WEB;if(n)return m.CTRL;if(window?.$onekey?.ethereum)return m.ONEKEY;return m.METAMASK}function Je(){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 re(){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 _({provider:e,params:t,method:n}){if(!e?.send)throw new p("helpers_not_found_provider");let r=t?Array.isArray(t)?t:[t]:[];return e.send(n,r)}export{U as ACCOUNT_INDEXED_CHAINS,cr as ApiV2ErrorSchema,nn as ApprovalTransactionSchema,At as ApproveMode,tn as ApproveRequestParams,rn as ApproveResponseSchema,Qt as AssetValue,dr as AssetValueSchema,Zt as BigIntArithmetics,vr as BrokerDepositChannelParamsSchema,qr as ChainflipMetadataSchema,pr as CoinGeckoMetadataSchema,Bt as CommonAssetStrings,Fr as CosmosTransactionSchema,N as DEFAULT_FEE_MULTIPLIERS,wr as DepositChannelParamsSchema,Pr as DepositChannelResponseSchema,he as DerivationPath,Rr as EVMTransactionDetailsParamsSchema,Ir as EVMTransactionDetailsSchema,Wr as EVMTransactionSchema,Pt as ErrorCode,Mr as EstimatedTimeSchema,O as FeeOption,yt as FeeTypeEnum,Cr as FeesSchema,en as GasResponseSchema,Qr as GasSchema,Br as HYPERCORE_USDC_TOKEN_ID,kr as HyperCoreEip712TypedDataSchema,Ur as HyperCoreSendAssetActionSchema,Vr as HyperCoreSendAssetTransactionSchema,Kr as HyperCoreTypedDataTransactionSchema,Mt as LedgerErrorCode,z as MemoType,Er as NearDepositChannelParamsSchema,br as NearDepositChannelResultSchema,yr as NearSwapResponseSchema,v as NetworkDerivationPath,gr as PriceRequestSchema,hr as PriceResponseSchema,tr as PriorityLabel,or as ProviderAction,bt as ProviderName,fr as QuoteRequestSchema,Zr as QuoteResponseRouteItem,Jr as QuoteResponseSchema,dn as QuoteRouteV2Response,ln as QuoteV2ResponseSchema,sn as QuoteV3ResponseSchema,St as RequestClient,Hr as RouteLegSchema,jr as RouteLegWithoutAddressesSchema,Gr as RouteQuoteMetadataAssetSchema,Xr as RouteQuoteMetadataSchema,zr as RouteQuoteMetadataV2Schema,pn as RouteQuoteProviderErrorSchema,rr as RouteQuoteTxType,Yr as RouteQuoteWarningSchema,de as SINGLE_WALLET_CHAINS,T as SKConfig,Or as StarknetTransactionSchema,on as StellarApprovalTransactionSchema,an as SwapApprovalTransactionSchema,fn as SwapKitApi,p as SwapKitError,l as SwapKitNumber,hn as SwapRouteV2ResponseSchema,mn as SwapToAssetSchema,un as SwapToRequestSchema,cn as SwapToResponseSchema,Nr as TONTransactionMessageSchema,Lr as TONTransactionSchema,lr as TokenDetailsMetadataSchema,sr as TokenSchema,Ar as TrackerResponseSchema,mr as TrackingRequestQuerySchema,ur as TrackingRequestSchema,ar as TrackingStatus,Tr as TransactionDTOSchema,xr as TransactionSchema,Dr as TronTransactionSchema,ir as TxnStatus,nr as TxnType,y as UTXOPurpose,m as WalletOption,Et as WarningCodeEnum,Dt as _rpcCache,Ye as addAccountsChangedCallback,te as addEVMWalletNetwork,ae as applyFeeMultiplier,ie as applyFeeMultiplierToBigInt,Gt as assetFromString,Ut as decodeABIDynamicString,kt as decodeABIString,V as derivationPathToString,Kt as fetchTokenInfo,Xe as filterSupportedChains,zt as findAssetBy,Yt as formatBigIntToSafeValue,jt as getAssetType,q as getAsymmetricAssetShare,Pe as getAsymmetricAssetWithdrawAmount,G as getAsymmetricRuneShare,ve as getAsymmetricRuneWithdrawAmount,Lt as getChainIdentifier,Ht as getCommonAssetInfo,pe as getDerivationPathFor,Je as getEIP6963Wallets,Ze as getETHDefaultWallet,be as getEstimatedPoolShare,Nt as getExplorerAddressUrl,Ot as getExplorerTxUrl,C as getFeeMultiplier,L as getFeeMultiplierAsBigInt,ye as getLiquiditySlippage,Be as getMAYANameCost,We as getMemoForDeposit,$e as getMemoForLeaveAndBond,Fe as getMemoForNamePreferredAssetRegister,Ie as getMemoForNameRegister,_e as getMemoForRunePoolDeposit,Re as getMemoForRunePoolWithdraw,Oe as getMemoForTcyClaim,Ne as getMemoForTcyStake,Se as getMemoForUnbond,De as getMemoForWithdraw,er as getMinAmountByChain,It as getRPCUrl,Rt as getRPCUrlSync,X as getSymmetricPoolShare,Ee as getSymmetricWithdraw,Le as getTHORNameCost,Xt as getTokenLogoURI,le as getWalletFormatFor,Ft as initializeRPCUrlsWithFallback,qe as isDetected,Vt as isGasAsset,$r as isTransactionValue,Ge as isWeb3Detected,J as listWeb3EVMWallets,re as okxMobileEnabled,qt as parseSymbolForAddress,Sr as parseTransactionValue,ze as prepareNetworkSwitch,_ as providerRequest,xt as registerErrorCodes,Ct as registerWalletOption,K as resolveDerivationPath,_t as signWidgetRequest,Tt as subscribeWalletOptionRegistration,$t as swapKitConfigStore,Q as switchEVMWalletNetwork,_r as toHexTransactionValue,f as updateDerivationPath,Jt as validateIdentifier,ke as validateTNS,M as warnOnce,ee as wrapMethodWithNetworkSwitch,Wt as wrapWithThrow};
|
|
@@ -328,6 +328,8 @@ declare const errorCodes: {
|
|
|
328
328
|
readonly toolbox_evm_not_supported: 50215;
|
|
329
329
|
readonly toolbox_evm_provider_not_eip1193_compatible: 50216;
|
|
330
330
|
readonly toolbox_evm_invalid_eip7702_authorization: 50217;
|
|
331
|
+
readonly toolbox_evm_nonce_conflict: 50218;
|
|
332
|
+
readonly toolbox_evm_tx_already_known: 50219;
|
|
331
333
|
/**
|
|
332
334
|
* Toolboxes - UTXO
|
|
333
335
|
*/
|
|
@@ -874,6 +876,8 @@ export declare class SwapKitError extends Error {
|
|
|
874
876
|
readonly toolbox_evm_not_supported: 50215;
|
|
875
877
|
readonly toolbox_evm_provider_not_eip1193_compatible: 50216;
|
|
876
878
|
readonly toolbox_evm_invalid_eip7702_authorization: 50217;
|
|
879
|
+
readonly toolbox_evm_nonce_conflict: 50218;
|
|
880
|
+
readonly toolbox_evm_tx_already_known: 50219;
|
|
877
881
|
/**
|
|
878
882
|
* Toolboxes - UTXO
|
|
879
883
|
*/
|
package/package.json
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"dependencies": {
|
|
4
4
|
"@noble/hashes": "2.2.0",
|
|
5
5
|
"@swapkit/contracts": "5.0.0",
|
|
6
|
-
"@swapkit/tokens": "5.0.
|
|
7
|
-
"@swapkit/types": "1.1.
|
|
6
|
+
"@swapkit/tokens": "5.0.6",
|
|
7
|
+
"@swapkit/types": "1.1.1"
|
|
8
8
|
},
|
|
9
9
|
"description": "SwapKit - Helpers",
|
|
10
|
-
"devDependencies": { "@swapkit/toolboxes": "5.
|
|
10
|
+
"devDependencies": { "@swapkit/toolboxes": "5.3.0" },
|
|
11
11
|
"exports": {
|
|
12
12
|
".": { "default": "./dist/index.js", "types": "./dist/types/index.d.ts" },
|
|
13
13
|
"./api": { "default": "./dist/api/index.js", "types": "./dist/types/api/index.d.ts" },
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"type-check:go": "tsgo"
|
|
31
31
|
},
|
|
32
32
|
"type": "module",
|
|
33
|
-
"version": "5.
|
|
33
|
+
"version": "5.3.0"
|
|
34
34
|
}
|
package/dist/chunk-q0s1vae8.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
var HT=Object.defineProperty;var LT=(N)=>N;function PT(N,A){this[N]=LT.bind(null,A)}var lN=(N,A)=>{for(var T in A)HT(N,T,{get:A[T],enumerable:!0,configurable:!0,set:PT.bind(A,T)})};var rN=((N)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(N,{get:(A,T)=>(typeof require<"u"?require:A)[T]}):N)(function(N){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+N+'" is not supported')});import{Chain as bN,getChainConfig as AH}from"@swapkit/types";import{AllChains as oT,Chain as b,EVMChains as CT,getChainConfig as IN}from"@swapkit/types";import{match as KN}from"ts-pattern";import{Chain as B,EVMChains as VT,getChainConfig as p,UTXOChains as xT}from"@swapkit/types";import{match as PN}from"ts-pattern";import{AllChains as eN,Chain as aN,getChainConfig as $T,MAYAConfig as YT,StagenetChain as _N,StagenetMAYAConfig as NA,StagenetTHORConfig as AA,THORConfig as MT}from"@swapkit/types";import{createStore as _T}from"zustand/vanilla";import{AllChains as FT,getChainConfig as OT}from"@swapkit/types";var hL=Object.freeze(Object.fromEntries(FT.map((N)=>[N,Object.freeze(OT(N).networkDerivationPath)])));var LN;((I)=>{I.unknownError="unknownError";I.test_error="test_error";I.providerDetailsError="providerDetailsError";I.blockHeaderNotFound="blockHeaderNotFound";I.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";I.blockHashNotFoundAtHash="blockHashNotFoundAtHash";I.txHashMissing="txHashMissing";I.assetValueMissingInfo="assetValueMissingInfo";I.invalidAsset="invalidAsset";I.blockIsRequired="blockIsRequired";I.currentBlockHeaderNotFound="currentBlockHeaderNotFound";I.failedToRetrieveBalance="failedToRetrieveBalance";I.failedToRetrieveBlock="failedToRetrieveBlock";I.failedToRetrieveFees="failedToRetrieveFees";I.notImplementedBCH="notImplementedBCH";I.notImplementedDoge="notImplementedDoge";I.noPoolsFound="noPoolsFound";I.noVaultsFound="noVaultsFound";I.noTxFound="noTxFound";I.noInputCoinFound="noInputCoinFound";I.noBlockDataFound="noBlockDataFound";I.multipleCosmosMessages="multipleCosmosMessages";I.heightOrHashNotProvided="heightOrHashNotProvided";I.unknownDenom="unknownDenom";I.invalidBlockHeight="invalidBlockHeight";I.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";I.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";I.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";I.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";I.txMemoUndefined="txMemoUndefined";I.txMemoIncorrect="txMemoIncorrect";I.txTypeNotFound="txTypeNotFound";I.txNoMessage="txNoMessage";I.txNotFound="txNotFound";I.txReceiptNotFound="txReceiptNotFound";I.txParsingError="txParsingError";I.txLogsParsingError="txLogsParsingError";I.blockNotFound="blockNotFound";I.balanceNotFound="balanceNotFound";I.configError="configError";I.synthSwapDisallowed="synthSwapDisallowed";I.providerQuoteTimeout="providerQuoteTimeout";I.noQuoteResponse="noQuoteResponse";I.noPoolAssetsFound="noPoolAssetsFound";I.noThorchainPools="noThorchainPools";I.noMayachainPools="noMayachainPools";I.noThorchainNetworkInfo="noThorchainNetworkInfo";I.invalidAffiliateFee="invalidAffiliateFee";I.invalidBuyAssetAddress="invalidBuyAssetAddress";I.invalidSellAssetAddress="invalidSellAssetAddress";I.invalidSourceAddress="invalidSourceAddress";I.invalidDestinationAddress="invalidDestinationAddress";I.sourceAddressIsSmartContract="sourceAddressIsSmartContract";I.destinationAddressIsSmartContract="destinationAddressIsSmartContract";I.invalidChainId="invalidChainId";I.unsupportedChainId="unsupportedChainId";I.unsupportedEVMChainId="unsupportedEVMChainId";I.unsupportedMethod="unsupportedMethod";I.unsupportedProvider="unsupportedProvider";I.invalidParamsForMethod="invalidParamsForMethod";I.unsupportedAdapter="unsupportedAdapter";I.noWhitelistTokens="noWhitelistTokens";I.failedFetchGasPrice="failedFetchGasPrice";I.failedToCreateDepositChannel="failedToCreateDepositChannel";I.noProviderDetailsFound="noProviderDetailsFound";I.noTokenListsFound="noTokenListsFound";I.tokenNotFound="tokenNotFound";I.tokenPriceNotFound="tokenPriceNotFound";I.tokenPriceFailedToUpdate="tokenPriceFailedToUpdate";I.swapAmountTooSmall="swapAmountTooSmall";I.legsArrayIsEmpty="legsArrayIsEmpty";I.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";I.noBlockHeaderFound="noBlockHeaderFound";I.failedToSimulateSwap="failedToSimulateSwap";I.addressScreeningFailed="addressScreeningFailed";I.noLiquidtyProvidersFound="noLiquidtyProvidersFound";I.insufficientLiquidity="insufficientLiquidity";I.noInboundDataFound="noInbounDataFound";I.noInboundAddressesFound="noInboundAddressesFound";I.noInboundAddressFoundForChain="noInboundAddressFoundForChain";I.noLastBlocksFound="noLastBlocksFound";I.noVersionFound="noVersionFound";I.noConstantsFound="noConstantsFound";I.noMimirsFound="noMimirsFound";I.noRoutesFound="noRoutesFound";I.quoteNotFound="quoteNotFound";I.ledgerSignFailed="ledgerSignFailed";I.ledgerWrongPayload="ledgerWrongPayload";I.ledgerFetchSwapFailed="ledgerFetchSwapFailed";I.failedToFetchTx="failedToFetchTx";I.failedBuildTransactionDetails="failedBuildTransactionDetails";I.noLegsForRoute="noLegsForRoute";I.noRouterAddressFound="noRouterAddressFound";I.noAggregatorAddressFound="noAggregatorAddressFound";I.noContractInstanceFound="noContractInstanceFound";I.noContractAddressFound="noContractAddressFound";I.invalidAffiliate="invalidAffiliate";I.thornameAffiliate="thornameAffiliate";I.providerNotfound="No provider found";I.noRecordFound="No Record found";I.slippageTooLow="Slippage too low";I.tradingHalted="tradingHalted";I.noWrappedGasAsset="noWrappedGasAsset";I.aggregatorAddressNotFound="aggregatorAddressNotFound";I.routerAddressNotFound="routerAddressNotFound";I.dummyAddressNotFound="dummyAddressNotFound";I.trackerError="trackerError";I.thorchainPoolUnavailable="thorchainPoolUnavailable";I.noOhlcvDataFound="noOhlcvDataFound";I.noTradingPairs="noTradingPairs";I.noLendingAvailability="noLendingAvailability";I.lendingRepayTooSmall="lendingRepayTooSmall";I.missingState="missingState";I.ledgerSwapNotFound="ledgerSwapNotFound";I.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";I.errorEstimatingGas="errorEstimatingGas";I.apiKeyInvalid="apiKeyInvalid";I.apiKeyFailedToUpdate="apiKeyFailedToUpdate";I.apiKeyExpired="apiKeyExpired";I.unauthorized="unauthorized";I.failedToCreateMemo="failedToCreateMemo";I.radixIncorrectInstructions="radixIncorrectInstructions";I.radixTxMissedParam="radixTxMissedParam";I.radixTxMissedAccount="radixTxMissedAccount";I.radixManifestParseError="radixManifestParseError";I.radixManifestBuildError="radixManifestBuildError";I.invalidAddressForChain="invalidAddressForChain";I.riskyAddress="riskyAddress";I.noRoutesToProcess="noRoutesToProcess";I.sellAssetAmountTooSmall="sellAssetAmountTooSmall";I.missingPrivateKey="missingPrivateKey";I.noMemoPriceProtection="noMemoPriceProtection"})(LN||={});var ZN;((H)=>{H.highSlippage="highSlippage";H.highPriceImpact="highPriceImpact";H.insufficientBalance="insufficientBalance"})(ZN||={});var j;((z)=>{z.CHAINFLIP="CHAINFLIP";z.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";z.JUPITER="JUPITER";z.MAYACHAIN="MAYACHAIN";z.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";z.ONEINCH="ONEINCH";z.PANCAKESWAP="PANCAKESWAP";z.SUSHISWAP_V2="SUSHISWAP_V2";z.THORCHAIN="THORCHAIN";z.THORCHAIN_STREAMING="THORCHAIN_STREAMING";z.TRADERJOE_V2="TRADERJOE_V2";z.UNISWAP_V2="UNISWAP_V2";z.UNISWAP_V3="UNISWAP_V3";z.NEAR="NEAR";z.GARDEN="GARDEN";z.OKX="OKX";z.HARBOR="HARBOR";z.FLASHNET="FLASHNET";z.MAYAN="MAYAN"})(j||={});var wN;((M)=>{M.LIQUIDITY="liquidity";M.NETWORK="network";M.INBOUND="inbound";M.OUTBOUND="outbound";M.AFFILIATE="affiliate";M.TAX="tax";M.PRIORITY="priority";M.SERVICE="service"})(wN||={});var IT;((H)=>{H.Average="average";H.Fast="fast";H.Fastest="fastest"})(IT||={});var RT;((T)=>{T.Approve="approve";T.CheckOnly="checkOnly"})(RT||={});var BT;((u)=>{u.NAME_REGISTER="~";u.BOND="BOND";u.DEPOSIT="+";u.LEAVE="LEAVE";u.UNBOND="UNBOND";u.WITHDRAW="-";u.RUNEPOOL_DEPOSIT="POOL+";u.RUNEPOOL_WITHDRAW="POOL-";u.CLAIM_TCY="tcy";u.STAKE_TCY="tcy+";u.UNSTAKE_TCY="tcy-"})(BT||={});var iN={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_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_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_solana_no_signer:50401,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 jN(N){return JSON.stringify(N,(A,T)=>typeof T==="bigint"?T.toString():T)}class U extends Error{static ErrorCode=iN;errorKey;info;constructor(N,A){let T=typeof N==="string",H=T?N:N.errorKey,L=T?void 0:N.info,O=`${H}${L?`: ${jN(L)}`:""}`;super(O);if(Object.setPrototypeOf(this,U.prototype),this.name="SwapKitError",this.errorKey=H,this.info=L,this.cause=A,A){let R=A instanceof Error?`${A.message}${A.cause?` (${A.cause})`:""}`:jN(A);console.error(`SwapKitError [${H}]: ${R}`)}else if(L)console.error(`SwapKitError [${H}]: ${jN(L)}`)}}function iL(N){let A=iN;for(let[T,H]of Object.entries(N)){if(Object.hasOwn(A,T)){if(A[T]===H)continue;throw new U({errorKey:"helpers_invalid_params",info:{code:H,existingCode:A[T],key:T}})}let L=Object.keys(A).find((O)=>A[O]===H);if(L)throw new U({errorKey:"helpers_invalid_params",info:{code:H,existingKey:L,key:T}});A[T]=H}}var MN={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"},VN=new Set;function sN(N){return VN.add(N),()=>VN.delete(N)}function eL(N,A){let T=MN;if(Object.hasOwn(T,N)){if(T[N]===A)return;throw new U({errorKey:"helpers_invalid_params",info:{existingValue:T[N],key:N,value:A}})}T[N]=A;for(let H of VN)H(A)}var GT;((H)=>{H[H.NoError=36864]="NoError";H[H.LockedDevice=21781]="LockedDevice";H[H.TC_NotFound=65535]="TC_NotFound"})(GT||={});var ST=eN.reduce((N,A)=>{if(!N.THOR_STAGENET)N[_N.Maya]=NA.rpcUrls,N[_N.THORChain]=AA.rpcUrls;return N[A]=$T(A).rpcUrls,N},{}),DT={[aN.THORChain]:MT.nodeUrl,[aN.Maya]:YT.nodeUrl,[_N.THORChain]:AA.nodeUrl,[_N.Maya]:NA.nodeUrl},TA={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:eN,endpoints:{},envs:{apiUrl:"https://api.swapkit.dev",devApiUrl:"https://dev-api.swapkit.dev",isDev:!1,isStagenet:!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:ST,thornodeUrls:DT,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(MN),widgetId:"",widgetKey:""},V=_T((N)=>({...TA,setApiKey:(A,T)=>N((H)=>({apiKeys:{...H.apiKeys,[A]:T}})),setConfig:(A)=>N((T)=>({apiKeys:{...T.apiKeys,...A?.apiKeys},chains:T.chains.concat(A?.chains||[]),endpoints:{...T.endpoints,...A?.endpoints},envs:{...T.envs,...A?.envs},feeMultipliers:A?.feeMultipliers||T.feeMultipliers,integrations:{...T.integrations,...A?.integrations},localMode:{...T.localMode,...A?.localMode},rpcUrls:{...T.rpcUrls,...A?.rpcUrls},thornodeUrls:{...T.thornodeUrls,...A?.thornodeUrls},v3SwapFlow:{...T.v3SwapFlow,...A?.v3SwapFlow},wallets:T.wallets.concat(A?.wallets||[]),widgetId:A?.widgetId||T.widgetId,widgetKey:A?.widgetKey||T.widgetKey})),setEndpoint:(A,T)=>N((H)=>({endpoints:{...H.endpoints,[A]:T}})),setEnv:(A,T)=>N((H)=>({envs:{...H.envs,[A]:T}})),setFeeMultipliers:(A)=>N(()=>({feeMultipliers:A})),setIntegrationConfig:(A,T)=>N((H)=>({integrations:{...H.integrations,[A]:T}})),setRequestOptions:(A)=>N((T)=>({requestOptions:{retry:{...T.requestOptions.retry,...A.retry},timeoutMs:A.timeoutMs||T.requestOptions.timeoutMs}})),setRpcUrl:(A,T)=>N((H)=>({rpcUrls:{...H.rpcUrls,[A]:T}})),setThornodeUrl:(A,T)=>N((H)=>({thornodeUrls:{...H.thornodeUrls,[A]:T}})),setWidgetId:(A)=>N({widgetId:A}),setWidgetKey:(A)=>N({widgetKey:A})}));sN((N)=>{V.setState((A)=>A.wallets.includes(N)?A:{wallets:[...A.wallets,N]})});var g={get:(N)=>V.getState()[N],getState:V.getState,reinitialize:()=>V.setState({...TA,wallets:Object.values(MN)}),set:(N)=>V.getState().setConfig(N),setApiKey:(N,A)=>V.getState().setApiKey(N,A),setEndpoint:(N,A)=>V.getState().setEndpoint(N,A),setEnv:(N,A)=>V.getState().setEnv(N,A),setFeeMultipliers:(N)=>V.getState().setFeeMultipliers(N),setIntegrationConfig:(N,A)=>V.getState().setIntegrationConfig(N,A),setRequestOptions:(N)=>V.getState().setRequestOptions(N),setRpcUrl:(N,A)=>V.getState().setRpcUrl(N,A),setThornodeUrl:(N,A)=>V.getState().setThornodeUrl(N,A),setWidgetId:(N)=>V.getState().setWidgetId(N),setWidgetKey:(N)=>V.getState().setWidgetKey(N)};var UT=(N)=>new Promise((A)=>setTimeout(A,N)),XT=(N,{baseDelay:A,backoffMultiplier:T,maxDelay:H})=>Math.min(A*T**N,H);function uT(N,A){if(N instanceof Error&&N.name==="AbortError")return!0;if(N instanceof TypeError)return!0;if(A===429)return!0;if(A&&A>=500&&A<600)return!0;return!1}var gT=async(N,A)=>{let T=await fetch(N,A),H;try{H=await T.json()}catch{if(!T.ok)throw new U({errorKey:"helpers_invalid_response",info:{status:T.status,statusText:T.statusText}},{status:T.status,statusText:T.statusText});return{}}if(!T.ok){let O={data:H?.data,error:H?.error,message:H?.message,status:T.status};throw new U({errorKey:H?.error||"helpers_invalid_response",info:O},O)}let L=H?.routes?.length||H?.result||H?.data&&!H?.error;if(H?.error&&!L){let O={data:H.data,error:H.error,message:H.message,status:T.status};throw new U({errorKey:H.error,info:O},O)}if(H?.providerErrors?.length||H?.error&&L)console.warn("[SwapKit] Partial errors in response:",H.providerErrors||H.error);return H};function SN(N,A={}){return async function(H,L={}){let{searchParams:O,json:R,body:$,headers:M,dynamicHeader:J,retry:X,timeoutMs:u,abortController:w,onError:E,onSuccess:K,responseHandler:Q,...Z}={...A,...L},TN=g.get("requestOptions"),d={...TN.retry,...X},z=!!R||H.endsWith(".json"),$N=ET(H,O),dN=J?await J():{},HN=WT(z,{...M,...dN}),h=z?JSON.stringify(R):$,QN;for(let YN=0;YN<=d.maxRetries;YN++){let hN=w||new AbortController,cN=setTimeout(()=>hN.abort(),u||TN.timeoutMs);try{let m=await gT($N,{...Z,body:h,headers:HN,method:N,signal:hN.signal});return clearTimeout(cN),K?.(m)||Q?.(m)||m}catch(m){clearTimeout(cN),QN=m;let TT=m?.cause?.status;if(YN>=d.maxRetries||!uT(m,TT))return E?E(m):Promise.reject(m);await UT(XT(YN,d))}}return E?E(QN):Promise.reject(QN)}}function WT(N,A){return{...A,...N&&{"Content-Type":"application/json"}}}function ET(N,A){let T=new URL(N);if(A)T.search=new URLSearchParams(A).toString();return T.toString()}var _={extend:(N)=>({extend:(A)=>_.extend({...N,...A}),get:SN("GET",N),post:SN("POST",N)}),get:SN("GET"),post:SN("POST")};async function HA(N,A,T,H){let L=`${A}:${T}:${H}`,O=new TextEncoder,R=await crypto.subtle.importKey("raw",O.encode(N),{hash:"SHA-256",name:"HMAC"},!1,["sign"]),$=await crypto.subtle.sign("HMAC",R,O.encode(L));return Array.from(new Uint8Array($)).map((M)=>M.toString(16).padStart(2,"0")).join("")}import{Chain as D,CosmosChains as OA,EVMChains as IA,getChainConfig as RA,StagenetChains as bT,SubstrateChains as zT,UTXOChains as BA}from"@swapkit/types";import{match as DN}from"ts-pattern";function _P(N,A){try{return N()}catch(T){if(A)throw new U(A,T);return}}var LA=new Set;function c({condition:N,id:A,warning:T}){if(N){if(LA.has(A))return;console.warn(T),LA.add(A)}}function JT(N){return DN(N).with(...IA,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...BA,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...OA,...bT,()=>({id:1,jsonrpc:"2.0",method:"status",params:{}})).with(D.Polkadot,D.Chainflip,()=>({id:1,jsonrpc:"2.0",method:"system_health",params:[]})).with(D.Solana,()=>({id:1,jsonrpc:"2.0",method:"getHealth"})).with(D.Sui,()=>({id:1,jsonrpc:"2.0",method:"sui_getSystemState",params:[]})).with(D.Ton,()=>({id:1,jsonrpc:"2.0",method:"getAddressInformation",params:{address:""}})).with(D.Aleo,D.Aptos,D.Tron,D.Radix,D.Stellar,()=>"").with(D.Hype,()=>({type:"meta"})).with(D.Near,()=>({id:"dontcare",jsonrpc:"2.0",method:"status",params:[]})).with(D.Ripple,()=>({id:1,jsonrpc:"2.0",method:"ping",params:[{}]})).with(D.Starknet,()=>({id:1,jsonrpc:"2.0",method:"starknet_chainId",params:[]})).otherwise(()=>{throw new U("helpers_chain_not_supported",{chain:N})})}function PA(N){return DN(N).with(D.Aptos,()=>"/-/healthy").with(D.Aleo,()=>"/mainnet/block/height/latest").with(D.Hype,()=>"/info").with(D.Radix,()=>"/status/network-configuration").with(D.Stellar,()=>"").with(D.Tron,()=>"/wallet/getnowblock").otherwise(()=>"")}async function FA(N,A){try{let T=A.startsWith("wss")?A.replace("wss","https"):A;if(N===D.Aleo||N===D.Stellar)return(await fetch(`${T}${PA(N)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)})).ok;return(await fetch(`${T}${PA(N)}`,{body:JSON.stringify(JT(N)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)})).ok}catch{return!1}}var xN=new Map,QT=120000;function ZT(N){let[A=""]=g.get("rpcUrls")[N];if(!A)throw c({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 ${N}.`}),new U("helpers_chain_no_public_or_set_rpc_url",{chain:N});let T=xN.get(N);if(T&&Date.now()-T.timestamp<QT)return T.url;return xN.set(N,{timestamp:Date.now(),url:A}),A}async function l(N){let A=ZT(N),[,...T]=g.get("rpcUrls")[N];if(await FA(N,A))return A;for(let L of T)if(await FA(N,L))return xN.set(N,{timestamp:Date.now(),url:L}),L;throw new U("helpers_chain_rpc_connection_failed",{chain:N,fallbackUrls:T,primaryRpcUrl:A})}function WP(N){c({condition:!0,id:"initializeRPCUrlsWithFallback",warning:"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints."})}function EP({chain:N,txHash:A}){let{explorerUrl:T}=RA(N);return DN(N).with(...OA,D.Solana,()=>`${T}/tx/${A.startsWith("0x")?A.slice(2):A}`).with(...IA,...zT,()=>`${T}/tx/${A.startsWith("0x")?A:`0x${A}`}`).with(...BA,D.Radix,D.Tron,()=>`${T}/transaction/${A.toLowerCase()}`).with(D.Near,()=>`${T}/txns/${A}`).with(D.Ripple,()=>`${T}/transactions/${A}`).with(D.Stellar,()=>`${T}/explorer/public/tx/${A}`).with(D.Sui,()=>`${T}/txblock/${A}`).with(D.Cardano,D.Hype,D.Spark,D.Ton,()=>`${T}/tx/${A}`).otherwise(()=>"")}function bP({chain:N,address:A}){let{explorerUrl:T}=RA(N);return DN(N).with(D.Solana,D.Sui,D.Radix,()=>`${T}/account/${A}`).with(D.Stellar,()=>`${T}/explorer/public/account/${A}`).otherwise(()=>`${T}/address/${A}`)}function zP(N){switch(N){case D.THORChain:return`${N}.RUNE`;case D.Cosmos:return`${N}.ATOM`;case D.BinanceSmartChain:return`${N}`;default:return`${N}.${N}`}}import{keccak_256 as wT}from"@noble/hashes/sha3.js";import{bytesToHex as jT}from"@noble/hashes/utils.js";var GA=/^(0x)?[0-9a-fA-F]{40}$/;function UN(N){if(typeof N!=="string"||!GA.test(N))throw Error(`invalid address: ${N}`);let A=N.toLowerCase().replace(/^0x/,""),T=jT(wT(new TextEncoder().encode(A))),H=[...A].map((O,R)=>Number.parseInt(T[R]??"0",16)>=8?O.toUpperCase():O).join(""),L=N.replace(/^0x/,"");if(/[A-F]/.test(L)&&/[a-f]/.test(L)&&L!==H)throw Error(`bad address checksum: ${N}`);return`0x${H}`}function $A(N){if(typeof N!=="string"||!GA.test(N))return!1;try{return UN(N),!0}catch{return!1}}var KP=[`${B.Maya}.MAYA`,`${B.Maya}.CACAO`,`${B.Ethereum}.THOR`,`${B.Ethereum}.vTHOR`,`${B.Kujira}.USK`,`${B.Ethereum}.FLIP`,`${B.Radix}.XRD`],_A=[B.Arbitrum,B.Aurora,B.Base,B.Ethereum,B.Optimism,B.Robinhood];async function qT(N){let{baseDecimal:A}=p(B.Radix);try{let T=await l(B.Radix),{manager:H}=await _.post(`${T}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:N}),headers:{Accept:"*/*","Content-Type":"application/json"}});return H?.divisibility?.value?.divisibility}catch(T){let H=T instanceof Error?T.message:String(T);return console.warn(`Failed to fetch Radix asset decimals for ${N}: ${H}`),A}}async function nT(N){try{let A=await l(B.Radix);return(await _.post(`${A}/state/entity/details`,{body:JSON.stringify({addresses:[N],opt_ins:{explicit_metadata:["symbol"]}}),headers:{Accept:"*/*","Content-Type":"application/json"}})).items[0]?.explicit_metadata?.items.find((L)=>L.key==="symbol")?.value.typed.value||void 0}catch(A){let T=A instanceof Error?A.message:String(A);return console.warn(`Failed to fetch Radix asset symbol for ${N}: ${T}`),""}}async function SA({chain:N,address:A,methodHex:T,id:H}){let L=await l(N);return _.post(L,{body:JSON.stringify({id:H,jsonrpc:"2.0",method:"eth_call",params:[{data:T,to:A.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}function vT(N){if(!N||N==="0x")return"UNKNOWN";try{return DA(N.replace(/^0x/,""))?.trim()||"UNKNOWN"}catch(A){return console.warn(`Failed to decode ABI string from ${N}: ${A}`),"UNKNOWN"}}function KT(N,A){if(!N||N==="0x")return A;try{return Number(N)}catch(T){return console.warn(`Failed to decode ABI uint8 from ${N}: ${T}`),A}}async function kT({chain:N,address:A}){let{baseDecimal:T}=p(N),H=A.toLowerCase();if(A===""||!H.startsWith("0x"))return T;let L=await SA({address:A,chain:N,id:2,methodHex:"0x313ce567"}).catch((R)=>{return console.warn(`Could not fetch decimals for ${A} on ${N}: ${R.message}`),{result:""}});return KT(L.result,T)}async function mT({chain:N,address:A}){let T=A.toLowerCase();if(T===""||!T.startsWith("0x"))return;let H=await SA({address:A,chain:N,id:1,methodHex:"0x95d89b41"}).catch((O)=>{return console.warn(`Could not fetch symbol for ${A} on ${N}: ${O.message}`),{result:""}});return vT(H.result)}async function YA({rpcUrl:N,contractAddress:A,functionSelector:T}){return(await _.post(`${N}/wallet/triggerconstantcontract`,{body:JSON.stringify({contract_address:A,function_selector:T,owner_address:A,parameter:"",visible:!0}),headers:{accept:"application/json","content-type":"application/json"}}).catch(()=>{return}))?.constant_result?.[0]}function MA(N){let A=N.match(/.{2}/g)?.map((T)=>Number.parseInt(T,16))??[];return new TextDecoder().decode(new Uint8Array(A))}function DA(N){return PN(N).with(void 0,()=>{return}).when((A)=>A.length>=128,(A)=>{let T=Number.parseInt(A.slice(64,128),16),H=A.slice(128,128+T*2).replace(/(00)+$/,"");return H?MA(H):void 0}).when((A)=>A.length===64,(A)=>{let T=A.replace(/(00)+$/,"");if(T.length>0&&T.length%2===0)return MA(T);return}).otherwise(()=>{return})}function UA({chain:N,address:A}){let{baseDecimal:T}=p(N),H={decimals:T,ticker:void 0};return PN(N).with(...VT,async()=>{try{if(!$A(A.replace(/^0X/,"0x")))return H;let[L,O]=await Promise.all([mT({address:A,chain:N}),kT({address:A,chain:N})]);return{decimals:O,ticker:L}}catch(L){return console.warn(`Failed to fetch token info for ${A} on ${N}: ${L?.code} ${L?.message}`),H}}).with(B.Solana,async()=>{if(!A)return H;try{let L=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${A}`);if(L.ok){let O=await L.json(),R=Array.isArray(O)?O[0]:O;if(R)return{decimals:R.decimals??T,ticker:R.symbol||void 0}}}catch(L){console.warn(`Failed to fetch Solana token info for ${A}: ${L?.code} ${L?.message}`)}return H}).with(B.Tron,async()=>{if(!A)return H;try{let L=await l(B.Tron),[O,R]=await Promise.all([YA({contractAddress:A,functionSelector:"symbol()",rpcUrl:L}),YA({contractAddress:A,functionSelector:"decimals()",rpcUrl:L})]),$=DA(O);return{decimals:O!==void 0&&R?Number(BigInt(`0x${R}`)):T,ticker:$}}catch(L){let O=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Tron token info for ${A}: ${O}`),H}}).with(B.Near,async()=>{if(!A)return H;try{let L=await l(B.Near),O=await _.post(L,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"query",params:{account_id:A,args_base64:"e30=",finality:"final",method_name:"ft_metadata",request_type:"call_function"}}),headers:{accept:"application/json","content-type":"application/json"}});if(!O.result?.result)throw Error("NEAR ft_metadata returned no result");let R=JSON.parse(new TextDecoder().decode(new Uint8Array(O.result.result)));return{decimals:R?.decimals||T,ticker:R?.symbol}}catch(L){let O=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Near token info for ${A}: ${O}`),H}}).with(B.Radix,async()=>{if(!A)return H;try{let[L,O]=await Promise.all([nT(A),qT(A)]);return{decimals:O,ticker:L}}catch(L){let O=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Radix token info for ${A}: ${O}`),H}}).otherwise(async()=>H)}function XA({chain:N,symbol:A}){return PN(N).with(..._A,()=>A==="ETH").with(B.Avalanche,()=>A==="AVAX").with(B.Berachain,()=>A==="BERA").with(B.Hyperevm,()=>A==="HYPE").with(B.Hype,()=>A==="HYPE").with(B.Spark,()=>A==="BTC").with(B.BinanceSmartChain,()=>A==="BNB").with(B.Gnosis,()=>A==="xDAI"||A==="XDAI").with(B.Monad,()=>A==="MON").with(B.XLayer,()=>A==="OKB").with(B.Maya,()=>A==="CACAO").with(B.Cosmos,()=>A==="ATOM").with(B.THORChain,()=>A==="RUNE").with(B.Tron,()=>A==="TRX").with(B.Ripple,()=>A==="XRP").with(B.Radix,()=>`${N}.${A}`===XN(N).identifier).otherwise(()=>A===N)}var XN=(N)=>{let{baseDecimal:A}=p(N);return PN(N.toUpperCase()).with(..._A,(H)=>({decimal:A,identifier:`${H}.ETH`})).with(B.THORChain,(H)=>({decimal:A,identifier:`${H}.RUNE`})).with(B.Cosmos,(H)=>({decimal:A,identifier:`${H}.ATOM`})).with(B.Maya,(H)=>({decimal:10,identifier:`${H}.CACAO`})).with(B.BinanceSmartChain,(H)=>({decimal:A,identifier:`${H}.BNB`})).with(B.Monad,(H)=>({decimal:A,identifier:`${H}.MON`})).with(B.Avalanche,(H)=>({decimal:A,identifier:`${H}.AVAX`})).with(B.Gnosis,(H)=>({decimal:A,identifier:`${H}.xDAI`})).with(B.XLayer,(H)=>({decimal:A,identifier:`${H}.OKB`})).with(B.Berachain,(H)=>({decimal:A,identifier:`${H}.BERA`})).with(B.Hyperevm,(H)=>({decimal:A,identifier:`${H}.HYPE`})).with(B.Hype,(H)=>({decimal:A,identifier:`${H}.HYPE`})).with(B.Spark,(H)=>({decimal:A,identifier:`${H}.BTC`})).with(B.Tron,(H)=>({decimal:A,identifier:`${H}.TRX`})).with(B.Solana,B.Chainflip,B.Kujira,B.Ripple,B.Polkadot,B.Near,...xT,(H)=>({decimal:A,identifier:`${H}.${H}`})).with(B.Radix,"XRD.XRD",()=>({decimal:A,identifier:"XRD.XRD"})).with(B.Polygon,"POL.POL",()=>({decimal:A,identifier:"POL.POL"})).with("KUJI.USK",(H)=>({decimal:6,identifier:H})).with("ETH.FLIP",()=>({decimal:p(B.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:p(B.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:p(B.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(H)=>({decimal:10,identifier:H})).with("MAYA.MAYA",(H)=>({decimal:4,identifier:H})).otherwise(()=>({decimal:A,identifier:N}))};function qN({chain:N,symbol:A}){if(A.includes("/"))return"Synth";if(A.includes("~"))return"Trade";return PN(N).with(B.Radix,()=>A===B.Radix||`${N}.${A}`===XN(N).identifier).with(B.Arbitrum,B.Optimism,B.Base,B.Aurora,B.Robinhood,()=>A===B.Ethereum).with(B.Cosmos,()=>A==="ATOM").with(B.BinanceSmartChain,()=>A==="BNB").with(B.Maya,()=>A==="CACAO").with(B.Monad,()=>A==="MON").with(B.THORChain,()=>A==="RUNE").with(B.Tron,()=>A==="TRX").with(B.Hyperevm,()=>A==="HYPE").with(B.Hype,()=>A==="HYPE").with(B.Spark,()=>A==="BTC").with(B.XLayer,()=>A==="OKB").otherwise(()=>A===N)?"Native":N}var y=(N)=>{let[A,...T]=N.split("."),H=N.includes("/"),L=T.join("."),O=L?.split("-"),R=O?.length?O.length===1?O[0]:O.slice(0,-1).join("-"):void 0;return{chain:A,symbol:L,synth:H,ticker:R}};function FN(N,A){let H=A===B.Near?N.indexOf("-"):N.lastIndexOf("-");if(H===-1)return{address:void 0,ticker:N};return{address:N.slice(H+1),ticker:N.slice(0,H)}}function kP(N){return`https://storage.googleapis.com/token-list-swapkit-dev/images/${N.toLowerCase()}.png`}async function mP(N){let{loadTokenLists:A}=await import("./tokens.js"),T=await A(void 0,{source:g.get("envs").isDev?"dev":"prod"}),H=Object.values(T).flatMap((O)=>O.tokens);if("identifier"in N)return H.find((O)=>O.identifier===N.identifier)?.identifier;let L=N.contract.toLowerCase();for(let O of H){let{chain:R,symbol:$}=y(O.identifier);if(R!==N.chain)continue;let{address:M}=FN($,R);if(M?.toLowerCase()===L)return O.identifier}return}import{match as uN}from"ts-pattern";var r=8,tT=10,fT=64;function C({value:N,bigIntDecimal:A=r,decimal:T=r}){if(T===0)return N.toString();let H=N<0n,L=N.toString().substring(H?1:0),O=T-(L.length-1);if(O>0)L="0".repeat(O)+L;let R=L.length-T,$=L.slice(-T);if(Number.parseInt($[A]||"0",10)>=5){let J=Number.parseInt($[A-1]||"0",10);$=`${$.substring(0,A-1)}${J+1}`}else $=$.substring(0,A);return`${H?"-":""}${L.slice(0,R)}.${$}`.replace(/\.?0*$/,"")}class t{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(N,A){return new t({decimal:A,value:C({bigIntDecimal:A,decimal:A,value:N})})}static shiftDecimals({value:N,from:A,to:T}){return t.fromBigInt(N.getBaseValue("bigint")*o(T)/o(A),T)}constructor(N){let A=nN(N),T=typeof N==="object";this.decimal=T?N.decimal:void 0,this.decimalMultiplier=T&&"decimalMultiplier"in N?N.decimalMultiplier:o(Math.max(uA(gN(A)),this.decimal||0)),this.#L(A)}set(N){return new this.constructor({decimal:this.decimal,identifier:this.toString?.({includeSynthProtocol:!0}),value:N})}add(...N){return this.#A("add",...N)}sub(...N){return this.#A("sub",...N)}mul(...N){return this.#A("mul",...N)}div(...N){return this.#A("div",...N)}gt(N){return this.#N("gt",N)}gte(N){return this.#N("gte",N)}lt(N){return this.#N("lt",N)}lte(N){return this.#N("lte",N)}eqValue(N){return this.#N("eqValue",N)}getValue(N,A){let T=ON(this.decimalMultiplier),H=A!==void 0?A:this.decimal,L=H!==void 0?H:T;if(H!==void 0&&H<T){if(this.formatBigIntToSafeValue(this.bigIntValue,H)==="0"&&this.bigIntValue!==0n)L=T}let O=this.formatBigIntToSafeValue(this.bigIntValue,L);return uN(N).with("number",()=>Number(O)).with("string",()=>O).with("bigint",()=>{return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}).otherwise(()=>O)}getBaseValue(N,A){let T=this.decimalMultiplier/o(A||this.decimal||r),H=yT(this.bigIntValue,T);return uN(N).with("number",()=>Number(H)).with("string",()=>H.toString()).otherwise(()=>H)}getBigIntValue(N,A){if(!A&&typeof N==="object")return N.bigIntValue;let T=nN(N),H=gN(T);if(H==="0"||H==="undefined")return 0n;return this.#H(H,A)}toSignificant(N=6){let A=this.getValue("string"),[T="",H=""]=A.split("."),L=Number.parseInt(T,10)>0;if((L?T.length+H.length:H.length)<=N)return A;if(T.length>=N)return T.slice(0,N).padEnd(T.length,"0");if(L)return`${T}.${H.slice(0,N-T.length)}`;let R=H.replace(/^0+/,"")||"0",$=R.slice(0,N),M=H.length-R.length;return`0.${$.padStart(M+$.length,"0")}`}toFixed(N=6){let A=this.getValue("string"),T=A.startsWith("-"),[H="0",L=""]=(T?A.slice(1):A).split("."),O=H==="0"&&Number.parseInt(L.slice(0,N),10)===0,R=T&&!O?"-":"";if(N===0){if(H==="0"&&!L)return"0";return L&&Number.parseInt(L[0]||"0",10)>=5?`${R}${BigInt(H)+1n}.0`:`${R}${H}.0`}if(!L)return`${R}${H}.${"0".repeat(N)}`;let $=L[N];if(!($&&Number.parseInt($,10)>=5))return`${R}${H}.${L.slice(0,N).padEnd(N,"0")}`;let J=BigInt(L.slice(0,N).padEnd(N,"0"))+1n,X=10n**BigInt(N);if(J>=X)return`${R}${BigInt(H)+1n}.${"0".repeat(N)}`;return`${R}${H}.${J.toString().padStart(N,"0")}`}toAbbreviation(N=2){let A=this.getValue("string"),T=Number(A),H=["","K","M","B","T","Q","Qi","S"],L=Math.floor(Math.log10(Math.abs(T))/3);if(L===0||!H[L])return A;return`${(T/10**(L*3)).toFixed(N)}${H[L]}`}toCurrency(N="$",{currencyPosition:A="start",decimal:T=2,decimalSeparator:H=".",thousandSeparator:L=",",trimTrailingZeros:O=!0}={}){let R=this.toFixed(T),$=A==="end",[M="0",J=""]=R.split("."),X=M.replace(/\B(?=(\d{3})+(?!\d))/g,L),u=J&&Number.parseInt(J,10)>0,w=u?`${X}${H}${J}`:X,K=w.length<100&&O&&u?w.replace(/\.?0*$/,""):w;return $?`${K}${N}`:`${N}${K}`}formatBigIntToSafeValue(N,A){let T=A||this.decimal||r,H=Math.max(T,ON(this.decimalMultiplier));return C({bigIntDecimal:T,decimal:H,value:N})}#A(N,...A){let T=this.#T(this,...A),H=ON(this.decimalMultiplier),L=Math.max(T,H),O=Math.min(L+tT,fT),R=o(O),$=A.reduce((X,u)=>{let w=this.getBigIntValue(u,O);return uN(N).with("add",()=>X+w).with("sub",()=>X-w).with("mul",()=>X*w/R).with("div",()=>{if(w===0n)throw RangeError("Division by zero");return X*R/w}).otherwise(()=>X)},this.bigIntValue*R/this.decimalMultiplier),M=C({bigIntDecimal:O,decimal:O,value:$}),J=this.decimal===void 0?void 0:Math.min(this.decimal,O);return new this.constructor({decimal:J,decimalMultiplier:o(O),identifier:this.toString(),value:M})}#N(N,...A){let T=this.#T(this,...A),H=this.getBigIntValue(A[0]||"0",T),L=this.getBigIntValue(this,T);return uN(N).with("gt",()=>L>H).with("gte",()=>L>=H).with("lt",()=>L<H).with("lte",()=>L<=H).with("eqValue",()=>L===H).otherwise(()=>!1)}#L(N){let A=gN(N)||"0";this.bigIntValue=this.#H(A)}#T(...N){let A=N.map((T)=>{return typeof T==="object"?T.decimal||ON(T.decimalMultiplier):uA(gN(T))}).filter(Boolean);return Math.max(...A,r)}#H(N,A){let T=A?o(A):this.decimalMultiplier,H=ON(T),[L="",O=""]=N.split(".");return BigInt(`${L}${O.padEnd(H,"0")}`)}}var pT=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function gN(N){let T=`${typeof N==="number"?pT.format(N):nN(N)}`.replaceAll(",",".").split(".");return T.length>1?`${T.slice(0,-1).join("")}.${T.at(-1)}`:T[0]||"0"}function uA(N){let A=N.split(".")[1]?.length||0;return Math.max(A,r)}function nN(N){return typeof N==="object"?"getValue"in N?N.getValue("string"):N.value:N}function yT(N,A){if(A===0n)throw Error("Cannot divide by zero");let T=A/2n;return N>=0n&&A>=0n||N<0n&&A<0n?(N+T)/A:(N-T)/A}function o(N){return 10n**BigInt(N)}function ON(N){return N.toString().length-1}function dT(N=""){let A=N.toUpperCase(),T=g.get("chains"),[H]=A.split(".");if(T.includes(H))return!0;let[L]=A.split("/");if(T.includes(L))return!0;throw new U({errorKey:"helpers_invalid_identifier",info:{identifier:N,message:`Invalid identifier: ${N}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`}})}var f=[b.Hype,b.Near,b.Ripple,b.Solana,b.Stellar,b.Sui,b.Ton,b.Tron],kN=[b.THORChain,b.Maya],i=new Map,WN=new Map,s=new Map,hT=3600000;function cT(N){let A=s.get(N);if(A?.timestamp&&Date.now()-A.timestamp>hT){s.delete(N);return}return A}function lT(N,A){if(s.size>1000){let T=s.keys().next().value;if(T)s.delete(T)}s.set(N,{...A,timestamp:Date.now()})}class n extends t{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:N,decimal:A,tax:T,chain:H,symbol:L,identifier:O}){super(typeof N==="object"?N:{decimal:A,value:N});let R=gA(O||`${H}.${L}`);this.type=qN(R),this.tax=T,this.chain=R.chain,this.ticker=R.ticker,this.symbol=R.symbol,this.address=R.address,this.isSynthetic=R.isSynthetic,this.isTradeAsset=R.isTradeAsset,this.isGasAsset=R.isGasAsset,this.chainId=IN(R.chain).chainId}toString({includeSynthProtocol:N}={}){return(this.isSynthetic||this.isTradeAsset)&&!N?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 N=this.symbol.replace(/\./g,"__");return`${this.chain}.${N}`}getIconUrl(){return i.get(this.toString())?.logoURI}eqAsset({chain:N,symbol:A}){return this.chain===N&&this.symbol===A}eq(N){return this.eqAsset(N)&&this.eqValue(N)}static fromUrl(N,A=0){let T=N.indexOf(".");if(T===-1)throw new U({errorKey:"helpers_invalid_asset_url",info:{urlAsset:N}});let H=N.slice(0,T),L=N.slice(T+1),O=KN({chain:H,rest:L}).when(({rest:R})=>R.includes(".."),({chain:R,rest:$})=>`${R}.${$.replace(/\.\./g,"~")}`).when(({chain:R,rest:$})=>kN.includes(R)&&$.includes("."),({chain:R,rest:$})=>`${R}.${$.replace(/\./g,"/")}`).otherwise(({chain:R,rest:$})=>`${R}.${$.replace(/__/g,".")}`);return n.from({asset:O,value:A})}static from({value:N=0,fromBaseDecimal:A,asyncTokenLookup:T,...H}){let L=N instanceof t?N.getValue("string"):N,O="address"in H&&"chain"in H,R=aT(H);if(R===null&&T&&O){let{chain:HN,address:h}=H;return iT({address:h,chain:HN,fromBaseDecimal:A,parsedValue:L})}let $=O&&!R?`${H.chain}.UNKNOWN-${H.address}`:R,{identifier:M,decimal:J}=XN($),{chain:X,isSynthetic:u,isTradeAsset:w,address:E}=gA(M),{baseDecimal:K}=IN(X),Q=i.get(f.includes(X)?M:M.toUpperCase());if(!Q&&T&&!u&&!w)return(async()=>{let{ticker:HN}=y(M),h=await WA({address:E,chain:X,ticker:HN});return vN({decimal:h.decimals,identifier:h.identifier,value:A?a(BigInt(L),A):L})})();let Z=Q?.decimal||J;c({condition:!Z&&!T,id:`assetValue_static_decimal_not_found_${X}`,warning:`Couldn't find static decimal for one or more tokens on ${X} (Using default ${K} 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:TN,identifier:d,tax:z}=Q||{decimal:Z||K,identifier:M},$N=A?a(BigInt(L),A):a(L,TN);return u||w?rT(d,$N):vN({decimal:TN,identifier:d,tax:z,value:$N})}static async loadStaticAssets(N){let{loadTokenLists:A}=await import("@swapkit/tokens"),T=await A(N,{source:g.get("envs").isDev?"dev":"prod"});for(let{tokens:H}of Object.values(T))for(let L of H){let{identifier:O}=L,{chain:R,symbol:$}=y(O),{address:M}=FN($,R),{baseDecimal:J}=IN(R),X=f.includes(R)?O:O.toUpperCase(),u="decimals"in L&&L.decimals!==void 0?L.decimals:J,w="logoURI"in L&&L.logoURI?L.logoURI:`https://storage.googleapis.com/token-list-swapkit-dev/images/${O.toLowerCase()}.png`,E={decimal:u,identifier:O,logoURI:w,tax:"tax"in L?L.tax:void 0};if(i.set(X,E),M){let K=f.includes(R)?`${R}:${M}`:`${R}:${M.toUpperCase()}`;WN.set(K,O)}}return!0}static setStaticAssets(N){i.clear(),WN.clear();for(let[A,T]of N.entries()){let{identifier:H}=T,{chain:L,symbol:O}=y(H),{address:R}=FN(O,L),{baseDecimal:$}=IN(L),M=T.chain??L,J=T.address??R,X=f.includes(M)?H:H.toUpperCase(),u=T.decimals??T.decimal??$,w=T.logoURI??`https://storage.googleapis.com/token-list-swapkit-dev/images/${H.toLowerCase()}.png`,E={decimal:u,identifier:X,logoURI:w,tax:T.tax};if(i.set(X,E),J){let K=f.includes(M)?`${M}:${J}`:`${M}:${J.toUpperCase()}`;WN.set(K,H)}}return!0}static get staticAssets(){return i}}function iP(N){let A=n.from({chain:N});return KN(N).with(b.Bitcoin,b.Litecoin,b.BitcoinCash,b.Dash,()=>A.set(0.00010001)).with(b.Dogecoin,()=>A.set(1.00000001)).with(b.Avalanche,b.Ethereum,b.Arbitrum,b.BinanceSmartChain,()=>A.set(0.00000001)).with(b.THORChain,b.Maya,()=>A.set(0)).with(b.Cosmos,b.Kujira,()=>A.set(0.000001)).otherwise(()=>A.set(0.00000001))}async function WA({chain:N,address:A,ticker:T}){let L=f.includes(N)?`${N}:${A||T}`:`${N}:${A||T}`.toUpperCase(),O=cT(L);if(O)return O;if(!A){let{baseDecimal:M}=IN(N);return{decimals:M,identifier:`${N}.${T||"UNKNOWN"}`}}let R=await UA({address:A,chain:N}),$=`${N}.${R.ticker||T||"UNKNOWN"}-${A}`;return c({condition:!!(!R.ticker&&T),id:`async_token_lookup_failed_${N}_${A}`,warning:`Could not fetch token metadata for ${N}:${A} from chain. Using user-provided ticker (${T}) with baseDecimal (${R.decimals}).`}),R.ticker&&lT(L,{decimals:R.decimals,identifier:$}),{decimals:R.decimals,identifier:$}}function vN({identifier:N,decimal:A,value:T,tax:H}){return dT(N),new n({decimal:A,identifier:N,tax:H,value:a(T,A)})}function rT(N,A=0){let T=N.includes(".")?N.split(".")?.[0]?.toUpperCase():void 0,H=T?kN.includes(T):!1,L=N.slice(0,14).includes("~")?"~":"/",[O,R]=H?N.split(".").slice(1).join().split(L):N.split(L);if(!(O&&R))throw new U({errorKey:"helpers_invalid_asset_identifier",info:{identifier:N}});return new n({decimal:8,identifier:`${T||b.THORChain}.${O}${L}${R}`,value:a(A,8)})}async function iT({address:N,chain:A,fromBaseDecimal:T,parsedValue:H}){let{decimals:L,identifier:O}=await WA({address:N,chain:A}),R=T?a(BigInt(H),T):H;return vN({decimal:L,identifier:O,value:R})}function a(N,A){return typeof N==="bigint"?C({bigIntDecimal:A,decimal:A,value:N}):N}function sT(N){let A=KN(N).when((T)=>("chain"in T)&&T.chain!==void 0,({chain:T})=>T).otherwise((T)=>{let H=y(T.asset);return H.synth?b.THORChain:H.chain});if(!oT.includes(A.toUpperCase())){let T="asset"in N?N.asset:A;throw new U({errorKey:"helpers_invalid_asset_identifier",info:{identifier:T,message:`Unsupported chain "${A}" - use the AssetValue constructor directly`}})}}function aT(N){if(sT(N),"chain"in N){let{chain:L,address:O}=N;if(O){let R=f.includes(L)?`${L}:${O}`:`${L}:${O.toUpperCase()}`,$=WN.get(R);if($)return $;return null}return L}let{chain:A,symbol:T}=y(N.asset);return qN({chain:A,symbol:T})==="Native"?A:N.asset}function eT(N,A,T){let H=N.split("."),L=H[0]?.toUpperCase(),O=kN.includes(L),R=T?"~":"/",[$,M=""]=O?H.slice(1).join(".").split(R):N.split(R);if(!($&&M))throw new U({errorKey:"helpers_invalid_asset_identifier",info:{identifier:N}});let{ticker:J,address:X}=EA({chain:$,symbol:M}),u=`${$}${R}${M}`;return{address:X,chain:L,isGasAsset:!1,isSynthetic:A,isTradeAsset:T,symbol:u,ticker:J}}function NH(N){let A=N.indexOf("."),T=(A===-1?N:N.slice(0,A)).toUpperCase(),H=A===-1?N:N.slice(A+1),{address:L,ticker:O}=EA({chain:T,symbol:H}),R;try{R=L&&CT.includes(T)&&UN(L)?UN(L):L}catch{R=L}let $=R?`${O}-${R}`:H;return{address:R,chain:T,isGasAsset:XA({chain:T,symbol:H}),isSynthetic:!1,isTradeAsset:!1,symbol:$,ticker:O}}function gA(N){let A=N.slice(0,14),T=A.includes("/"),H=A.includes("~");if(T||H)return eT(N,T,H);return NH(N)}function EA({symbol:N,chain:A}){let{ticker:T,address:H}=FN(N,A);return{address:H&&!f.includes(A)?H.toLowerCase():H,ticker:T}}class EN extends t{eq(N){return this.eqValue(N)}static fromBigInt(N,A){return new EN({decimal:A,value:C({bigIntDecimal:A,decimal:A,value:N})})}}function bA(N=!0){return N?"https://gateway.liquify.com/chain/thorchain_midgard":"https://midgard.mayachain.info"}function TH(N=!0){let A=bA(N);return N?`${A}/v2/thorname`:`${A}/v2/mayaname`}function HH(N){return function(T){let H=T?`?status=${T}`:"";return _.get(`${N}/v2/pools${H}`)}}function LH(N){return function(T){return _.get(`${N}/v2/pool/${T}`)}}function PH(N){return function(T,H){let L=H?`?period=${H}`:"";return _.get(`${N}/v2/pool/${T}/stats${L}`)}}function FH(N){return function(T,H){let L=new URLSearchParams;if(H?.interval)L.append("interval",H.interval);if(H?.count)L.append("count",H.count.toString());if(H?.from)L.append("from",H.from.toString());if(H?.to)L.append("to",H.to.toString());let O=L.toString()?`?${L.toString()}`:"";return _.get(`${N}/v2/history/depths/${T}${O}`)}}function OH(N){return function(){return _.get(`${N}/v2/network`)}}function IH(N){return function(){return _.get(`${N}/v2/health`)}}function RH(N){return function(){return _.get(`${N}/v2/nodes`)}}function BH(N){return function(T){return _.get(`${N}/v2/node/${T}`)}}function GH(N){return function(){return _.get(`${N}/v2/mimir/votes`)}}function $H(N){return function(){return _.get(`${N}/v2/mimir`)}}function YH(N){return function(){return _.get(`${N}/v2/constants`)}}function MH(N){return function(){return _.get(`${N}/v2/stats`)}}function _H(N){return function(T){let H=new URLSearchParams;if(T?.interval)H.append("interval",T.interval);if(T?.count)H.append("count",T.count.toString());if(T?.from)H.append("from",T.from.toString());if(T?.to)H.append("to",T.to.toString());let L=H.toString()?`?${H.toString()}`:"";return _.get(`${N}/v2/history/earnings${L}`)}}function SH(N){return function(T,H){let L=new URLSearchParams;if(H?.interval)L.append("interval",H.interval);if(H?.count)L.append("count",H.count.toString());if(H?.from)L.append("from",H.from.toString());if(H?.to)L.append("to",H.to.toString());let O=L.toString()?`?${L.toString()}`:"",R=T?`/swaps/${T}`:"/swaps";return _.get(`${N}/v2/history${R}${O}`)}}function DH(N){return function(T){let H=new URLSearchParams;if(T?.interval)H.append("interval",T.interval);if(T?.count)H.append("count",T.count.toString());if(T?.from)H.append("from",T.from.toString());if(T?.to)H.append("to",T.to.toString());let L=H.toString()?`?${H.toString()}`:"";return _.get(`${N}/v2/history/tvl${L}`)}}function UH(N){if(!N)return"";let A=new URLSearchParams,T=(H,L)=>{if(L!==void 0)A.append(H,typeof L==="number"?L.toString():L)};return T("address",N.address),T("txid",N.txid),T("asset",N.asset),T("type",N.type),T("affiliate",N.affiliate),T("limit",N.limit),T("offset",N.offset),A.toString()?`?${A.toString()}`:""}function XH(N){return function(T){let H=UH(T);return _.get(`${N}/v2/actions${H}`)}}function uH(N){return function(T){return _.get(`${N}/v2/member/${T}`)}}function gH(N){return function(T){let H=T?`/${T}`:"";return _.get(`${N}/v2/members${H}`)}}function WH(N){return function(T,H){let L=H?`&asset=${H}`:"";return _.get(`${N}/v2/saver/${T}${L?`?${L.substring(1)}`:""}`)}}function EH(N){return function(T){return _.get(`${N}/v2/savers/${T}`)}}function bH(N){return function(T,H){let L=new URLSearchParams;if(H?.interval)L.append("interval",H.interval);if(H?.count)L.append("count",H.count.toString());if(H?.from)L.append("from",H.from.toString());if(H?.to)L.append("to",H.to.toString());let O=L.toString()?`?${L.toString()}`:"",R=T?`/savers/${T}`:"/savers";return _.get(`${N}/v2/history${R}${O}`)}}function zH(N){return function(T){return _.get(`${N}/v2/balance/${T}`)}}function JH(N){return async function(T){let H=(L)=>{if(L?.cause?.status===404)return;throw L};return await _.get(`${N}/lookup/${T}`,{onError:H,retry:{maxRetries:1}})}}function QH(N){return async function(T){let H=(L)=>{if(L?.cause?.status===404)return[];throw L};return await _.get(`${N}/rlookup/${T}`,{onError:H,retry:{maxRetries:1}})}}function ZH(N){return async function(T){let H=(L)=>{if(L?.cause?.status===404)return[];throw L};return await _.get(`${N}/owner/${T}`,{onError:H,retry:{maxRetries:1}})}}function e({asset:N,value:A}){return n.from({asset:N,fromBaseDecimal:AH(bN.THORChain).baseDecimal,value:A})}function wH({liquidityPositionGetter:N,isThorchain:A}){return async function(H){let L=await N(H),O=A?"rune":"cacao";return L.pools.map((R)=>({[`${O}Pending`]:e({asset:"THOR.RUNE",value:R.runePending}),[`${O}RegisteredAddress`]:R.runeAddress,[`${O}Withdrawn`]:e({asset:"THOR.RUNE",value:R.runeWithdrawn}),[O]:e({asset:"THOR.RUNE",value:R.runeAdded}),asset:e({asset:R.pool,value:R.assetAdded}),assetPending:e({asset:R.pool,value:R.assetPending}),assetRegisteredAddress:R.assetAddress,assetWithdrawn:e({asset:R.pool,value:R.assetWithdrawn}),dateFirstAdded:R.dateFirstAdded,dateLastAdded:R.dateLastAdded,poolShare:new EN(R.liquidityUnits).div(R.pool)}))}}function zA(N){let A=N===bN.THORChain,T=bA(A),H=TH(A),L=uH(T);return{getActions:XH(T),getBalance:zH(T),getConstants:YH(T),getEarningsHistory:_H(T),getHealth:IH(T),getLiquidityPosition:wH({isThorchain:A,liquidityPositionGetter:L}),getLiquidityPositionRaw:L,getMembers:gH(T),getMimir:$H(T),getMimirVotes:GH(T),getNameDetails:JH(H),getNamesByAddress:QH(H),getNamesByOwner:ZH(H),getNetworkInfo:OH(T),getNode:BH(T),getNodes:RH(T),getPool:LH(T),getPoolDepthHistory:FH(T),getPoolStats:PH(T),getPools:HH(T),getSaverDetails:WH(T),getSavers:EH(T),getSaversHistory:bH(T),getStats:MH(T),getSwapHistory:SH(T),getTVLHistory:DH(T)}}var JA=zA(bN.THORChain),QA=zA(bN.Maya);var oN={};lN(oN,{searchTokens:()=>uL,getTrackerDetails:()=>YL,getTokenListProviders:()=>UL,getTokenList:()=>XL,getTokenApproval:()=>DL,getSwapTo:()=>wL,getSwapQuote:()=>ML,getRouteWithTx:()=>_L,getPrice:()=>gL,getNearDepositChannel:()=>bL,getGasRate:()=>WL,getChainflipDepositChannel:()=>EL,getChainBalance:()=>SL,SKRequestClient:()=>q});import{EVMChains as yN}from"@swapkit/types";import{match as $L,P as GN}from"ts-pattern";import{Chain as zN,ChainId as RN}from"@swapkit/types";import{array as W,boolean as k,coerce as VA,number as S,object as Y,optional as G,string as F,union as mN,unknown as tN,z as P}from"zod";var xA;((H)=>{H.CHEAPEST="CHEAPEST";H.FASTEST="FASTEST";H.RECOMMENDED="RECOMMENDED"})(xA||={});var JN;((X)=>{X.PSBT="PSBT";X.EVM="EVM";X.COSMOS="COSMOS";X.RADIX="RADIX";X.NEAR="NEAR";X.STELLAR="STELLAR";X.TON="TON";X.TRON="TRON";X.EIP_712_HYPE_SEND_ASSET="EIP_712_HYPE_SEND_ASSET";X.EIP_712_HYPE_WITHDRAW="EIP_712_HYPE_WITHDRAW"})(JN||={});var qA;((Z)=>{Z.approve="approve";Z.claim="claim";Z.deposit="deposit";Z.donate="donate";Z.lending="lending";Z.lp_action="lp_action";Z.native_contract_call="native_contract_call";Z.native_send="native_send";Z.stake="stake";Z.streaming_swap="streaming_swap";Z.swap="swap";Z.thorname_action="thorname_action";Z.token_contract_call="token_contract_call";Z.token_transfer="token_transfer";Z.unknown="unknown";Z.unstake="unstake"})(qA||={});var nA;((E)=>{E.swap="swap";E.aggregation="aggregation";E.addLiquidity="addLiquidity";E.withdrawLiquidity="withdrawLiquidity";E.addSavers="addSavers";E.withdrawSavers="withdrawSavers";E.borrow="borrow";E.repay="repay";E.name="name";E.donate="donate";E.claim="claim";E.stake="stake";E.unstake="unstake"})(nA||={});var vA;(($)=>{$.unknown="unknown";$.not_started="not_started";$.pending="pending";$.swapping="swapping";$.completed="completed";$.refunded="refunded";$.failed="failed"})(vA||={});var KA;((Q)=>{Q.not_started="not_started";Q.starting="starting";Q.broadcasted="broadcasted";Q.mempool="mempool";Q.inbound="inbound";Q.outbound="outbound";Q.swapping="swapping";Q.completed="completed";Q.refunded="refunded";Q.partially_refunded="partially_refunded";Q.dropped="dropped";Q.reverted="reverted";Q.replaced="replaced";Q.retries_exceeded="retries_exceeded";Q.parsing_error="parsing_error"})(KA||={});var IF=Y({address:G(F()),chain:P.enum(zN).optional(),chainId:P.enum(RN),coingeckoId:G(F()),decimals:VA.number(),extensions:G(P.looseObject({})),identifier:F(),logoURI:G(F()),name:G(F()),shortCode:G(F()),symbol:G(F()),ticker:F()}),RF=P.object({block:P.optional(P.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:P.optional(P.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:P.optional(P.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:P.optional(P.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((N)=>N.hash&&N.chainId||N.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),BF=P.object({forceUpdate:P.string().toLowerCase().transform((N)=>N==="true").pipe(P.boolean()).optional()}),GF=Y({error:F(),message:F()}),NN=Y({address:G(F()),chain:P.enum(zN),decimal:G(S()),isGasAsset:k(),isSynthetic:k(),symbol:F(),tax:G(Y({buy:S(),sell:S()})),ticker:F()}),kA=Y({id:F(),market_cap:S(),name:F(),price_change_24h_usd:S(),price_change_percentage_24h_usd:S(),sparkline_in_7d:W(S()),timestamp:F(),total_volume:S()}).partial(),$F=Y({cg:G(kA),identifier:F(),price_usd:S(),provider:F(),timestamp:S()}),mA=W(Y({cg:G(kA),identifier:F(),price_usd:S(),provider:F(),timestamp:S()}).partial()),YF=Y({affiliate:G(F().describe("Affiliate thorname")),affiliateFee:G(S().describe("Affiliate fee in basis points").refine((N)=>N===Math.floor(N)&&N>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:G(k().describe("Allow smart contract as recipient")),allowSmartContractSender:G(k().describe("Allow smart contract as sender")),buyAsset:F().describe("Asset to buy"),cfBoost:G(k().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:G(F().describe("Address to send asset to")),disableSecurityChecks:G(k().describe("Disable security checks")),includeTx:G(k().describe("Set to true to include an transaction object (EVM only)")),providers:G(W(F().describe("List of providers to use").refine((N)=>j[N]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:G(F().describe("Referrer address (referral program)")),sellAmount:F().describe("Amount of asset to sell").refine((N)=>+N>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:F().describe("Asset to sell"),slippage:G(S().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:G(F().describe("Address to send asset from"))}).refine((N)=>N.sellAsset!==N.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),MF=Y({metadata:k(),tokens:W(Y({identifier:F()}))}),tA=Y({destinationAddress:F()}),jH=tA.extend({affiliateFees:W(Y({brokerAddress:F(),feeBps:S()})).optional(),brokerCommissionBps:S().optional(),buyAsset:Y({asset:F(),chain:F()}),channelMetadata:Y({cfParameters:F().optional(),gasBudget:F().optional(),message:F().optional()}).optional(),dcaParameters:Y({chunkInterval:S().optional(),numberOfChunks:S().optional()}).optional(),maxBoostFeeBps:S().optional(),refundParameters:Y({minPrice:F().optional(),refundAddress:F().optional(),retryDuration:S().optional()}).optional(),sellAsset:Y({asset:F(),chain:F()})}),fA=Y({channelId:F(),depositAddress:F()}),ZA=tA.extend({affiliateFees:Y({feeBps:S(),nearId:F()}).optional(),buyAsset:F(),sellAmount:F(),sellAsset:F(),slippage:VA.number(),sourceAddress:F()}),wA=Y({amountIn:F(),amountInFormatted:F(),amountInUsd:F(),amountOut:F(),amountOutFormatted:F(),amountOutUsd:F(),deadline:F().optional(),minAmountIn:F(),minAmountOut:F(),timeEstimate:S().optional(),timeWhenInactive:F().optional()}),_F=wA.extend({depositAddress:F(),quote:wA,signature:F(),timestamp:F(),tx:tN()}),pA=Y({buyAsset:F(),buyAssetAmount:F(),buyAssetAmountMaxSlippage:F(),deadline:F().optional(),depositAddress:F(),depositAmount:F(),depositAsset:F(),tx:tN()}),VH=Y({evmCalldata:P.optional(P.string()),intentHash:P.optional(P.string()),logs:P.optional(P.unknown()),manifest:P.optional(P.unknown()),memo:P.optional(P.string()),spender:P.optional(P.string()),thorname:P.optional(P.string())}),xH=Y({currentStage:F(),inboundConfirmation:S(),inboundObservation:S(),outboundDelay:S(),outboundObservation:S(),streamingSwap:S()}),qH=Y({count:G(S()),interval:G(S()),quantity:G(S()),subSwapsMap:G(W(S()))}),nH=P.object({currentLegIndex:P.optional(P.number()),estimatedTimeToComplete:P.number(),estimates:P.optional(xH),providerDetails:P.optional(P.object({streamingDetails:P.optional(qH)}))}),vH=Y({affiliate:G(NN),liquidity:G(NN),network:G(NN),protocol:G(NN),tax:G(NN)}),KH=Y({affiliate:F(),bps:F(),isReferrer:k()}),kH=Y({affiliate:G(F()),affiliateFees:G(W(KH)),broadcastedAt:G(S()),explorerUrl:G(F()),fees:G(vH),images:G(Y({chain:G(F()),from:G(F()),provider:G(F()),to:G(F())})),provider:G(P.enum(j)),providerAction:P.optional(P.enum(nA)),quoteId:G(F()),wallet:G(F())}),AN=P.object({block:P.number(),chainId:P.enum(RN),finalAddress:P.optional(P.string()),finalAsset:P.optional(NN),finalisedAt:P.number(),fromAddress:P.string(),fromAmount:P.string(),fromAsset:P.string(),hash:P.string(),meta:P.optional(kH),payload:P.optional(VH),status:P.enum(vA),toAddress:P.string(),toAmount:P.string(),toAsset:P.string(),trackingStatus:P.optional(P.enum(KA)),transient:P.optional(nH),type:P.enum(qA)}),yA=AN.extend({legs:P.array(AN)}),SF=AN.extend({legs:W(AN)}),DF=AN.extend({legs:W(AN)}),fN=W(Y({amount:F(),asset:F(),chain:F(),protocol:P.enum(j),type:P.enum(wN)})),pN=P.object({inbound:P.optional(P.number().describe("Time to receive inbound asset in seconds")),outbound:P.optional(P.number().describe("Time to receive outbound asset in seconds")),swap:P.optional(P.number().describe("Time to swap assets in seconds")),total:P.number().describe("Total time in seconds")}),mH=/^(?:0x[0-9a-fA-F]+|[0-9]+)$/;function tH(N){return N===""||mH.test(N)}function UF(N){return N?BigInt(N):0n}function XF(N){let A=typeof N==="bigint"?N:BigInt(N);return A>0n?`0x${A.toString(16)}`:"0x0"}var BN=F().refine(tH,{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"),fH=Y({data:F().describe("Data to send"),from:F().describe("Address of the sender"),to:F().describe("Address of the recipient"),value:BN}),pH=P.object({data:P.string().optional(),raw_data:P.object({contract:P.any(),data:P.string().optional(),expiration:P.number(),fee_limit:P.number().optional(),ref_block_bytes:P.string(),ref_block_hash:P.string(),timestamp:P.number()}).passthrough(),raw_data_hex:P.string(),txID:P.string(),value:BN.optional(),visible:P.boolean()}),yH=W(mN([F(),S(),W(F()),Y({from:F(),value:BN}).describe("Parameters to pass to the contract method")])),uF=Y({approvalSpender:G(F().describe("Address of the spender to approve")),approvalToken:G(F().describe("Address of the token to approve spending of")),contractAddress:F().describe("Address of the contract to interact with"),contractMethod:F().describe("Name of the method to call"),contractParamNames:W(F().describe("Names of the parameters to pass to the contract method")),contractParams:yH}),oH=Y({typeUrl:F("/types.MsgDeposit"),value:Y({coins:W(Y({amount:F(),asset:Y({chain:F(),symbol:F(),synth:k(),ticker:F()})})),memo:F(),signer:F()})}),CH=Y({typeUrl:F("/types.MsgSend"),value:Y({amount:W(Y({amount:F(),denom:F()})),fromAddress:F(),toAddress:F()})}),dH=Y({typeUrl:F(),value:CH.shape.value.or(oH.shape.value)}),hH=Y({amount:W(Y({amount:F(),denom:F()})),gas:F()}),cH=Y({accountNumber:S(),chainId:P.enum(RN),fee:hH,memo:F(),msgs:W(dH),sequence:S()}),lH=P.array(P.object({calldata:P.array(P.string()),contractAddress:P.string(),entrypoint:P.string()})),rH=P.object({address:P.string().describe("Destination address in friendly format"),amount:P.string().describe("Amount in nanotons"),payload:P.string().optional().describe("Base64 BOC of body cell"),stateInit:P.string().optional().describe("Base64 BOC of state init")}),iH=P.object({messages:P.array(rH),sendMode:P.number().describe("TON wallet send mode for the whole transfer")}),gF="USDC:0x6d1e7cde53ba9467b783cb7c530ce054",sH=P.looseObject({domain:P.looseObject({chainId:G(mN([S(),F()])),name:G(F()),verifyingContract:G(F()),version:G(F())}),message:P.record(F(),tN()),primaryType:F(),types:P.record(F(),W(P.looseObject({name:F(),type:F()})))}),aH=P.looseObject({amount:F(),destination:F(),destinationDex:F(),fromSubAccount:F(),hyperliquidChain:F(),nonce:S().int(),signatureChainId:F(),sourceDex:F(),token:F(),type:P.literal("sendAsset")}),oA=P.looseObject({action:P.looseObject({type:F()}),submitTo:F(),typedData:sH}),WF=oA.extend({action:aH}),CA=mN([fH,cH,pH,iH,oA,F()]),eH=CA.or(lH),NL=Y({affiliate:F().describe("Affiliate address").optional(),affiliateFee:S().describe("Affiliate fee").optional(),buyAsset:F().describe("Asset to buy"),destinationAddress:F().describe("Destination address"),estimatedTime:pN.optional(),provider:P.enum(j),sellAsset:F().describe("Asset to sell"),slipPercentage:S().describe("Slippage as a percentage"),sourceAddress:F().describe("Source address")}),EF=NL.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),AL=Y({asset:F().describe("Asset name"),image:F().describe("Asset image"),price:S().describe("Price in USD")}),TL=jH,dA=Y({assets:G(W(AL)),maxStreamingQuantity:S().optional(),referrer:F().optional(),streamingInterval:S().optional(),tags:W(P.enum(xA))}),hA=dA.extend({affiliate:G(F()),affiliateFee:G(F()),approvalAddress:G(F().describe("Approval address for swap")),chainflip:TL.optional(),garden:ZA.optional(),near:ZA.optional(),priceImpact:G(S().describe("Price impact")),referrer:G(F()),txType:G(P.enum(JN))}),cA=W(Y({code:P.enum(ZN),display:F(),tooltip:F().optional()})),HL=Y({buyAmount:F().describe("Buy amount"),buyAmountMaxSlippage:F().describe("Buy amount max slippage"),buyAsset:F().describe("Asset to buy"),fees:G(fN),provider:P.enum(j),sellAmount:F().describe("Sell amount"),sellAsset:F().describe("Asset to sell")}),LL=Y({buyAsset:F().describe("Asset to buy"),destinationAddress:G(F().describe("Destination address")),estimatedTime:G(pN),expectedBuyAmount:F().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:F().describe("Expected Buy amount max slippage"),expiration:G(F().describe("Expiration")),fees:fN,inboundAddress:G(F().describe("Inbound address")),legs:W(HL),memo:G(F().describe("Memo")),meta:hA,providers:W(P.enum(j)),routeId:F().describe("Route ID"),sellAmount:F().describe("Sell amount"),sellAsset:F().describe("Asset to sell"),sourceAddress:G(F().describe("Source address")),targetAddress:G(F().describe("Target address")),totalSlippageBps:S().describe("Total slippage in bps"),tx:G(eH),txType:G(P.enum(JN)),warnings:cA}),lA=Y({error:G(F().describe("Error message")),providerErrors:G(W(Y({errorCode:G(P.enum(LN)),message:G(F()),provider:P.enum(j).optional()}))),quoteId:F().describe("Quote ID"),routes:W(LL)}),rA=P.object({chainId:P.enum(RN),createdAt:P.date(),id:P.number(),unit:P.string(),value:P.string()}),PL=P.array(rA),iA=P.union([rA,PL]),bF=W(Y({chain:P.enum(zN),decimal:S(),identifier:F(),symbol:F(),ticker:F(),value:F()})),zF=P.union([P.object({amount:P.string(),spender:P.string(),tokenIdentifier:P.string(),userWalletAddress:P.string()}),P.object({amount:P.string(),chainId:P.enum(RN),spender:P.string(),tokenContractAddress:P.string(),userWalletAddress:P.string()}),P.object({routeId:P.string()})]),JF=P.object({approvalTransaction:P.optional(P.object({data:P.string(),from:P.string(),gasLimit:P.optional(P.string()),gasPrice:P.optional(P.string()),to:P.string(),value:BN})),approvedAmount:P.string(),isApproved:P.boolean()}),FL=P.object({data:P.string().describe("Encoded approval call data"),from:P.string().describe("User wallet address"),gasLimit:P.string().optional().describe("Estimated gas limit"),gasPrice:P.string().optional().describe("Current gas price"),to:P.string().describe("Token contract address"),value:BN.describe("ETH value (always '0' for approvals)")}),OL=P.object({tx:P.string(),txType:P.literal("STELLAR")}),IL=P.union([FL,OL]),jA=P.object({buyAmount:P.string().describe("Buy amount").optional(),buyAmountMaxSlippage:P.string().describe("Buy amount max slippage").optional(),buyAsset:P.string().describe("Asset to buy"),expectedBuyAmount:P.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:P.string().describe("Expected Buy amount max slippage").optional(),fees:fN,provider:P.enum(j),sellAmount:P.string().describe("Sell amount"),sellAsset:P.string().describe("Asset to sell")}),sA=jA.extend({estimatedTime:P.optional(pN),expiration:P.optional(P.string().describe("Expiration")),legs:P.array(jA),providers:P.array(P.enum(j)),routeId:P.string().describe("Route ID"),totalSlippageBps:P.number().describe("Total slippage in bps"),warnings:cA}).omit({provider:!0}),aA=P.object({method:P.string(),payload:P.optional(P.unknown()),url:P.string()}),RL=sA.extend({meta:dA,nextActions:P.optional(P.array(aA))}),QF=P.object({error:P.optional(P.string().describe("Error message")),providerErrors:P.optional(P.array(P.object({errorCode:P.optional(P.enum(LN)),message:P.optional(P.string()),provider:P.enum(j).optional()}))),quoteId:P.string().describe("Quote ID"),routes:P.array(RL)}),ZF=P.object({providers:P.array(P.enum(j)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:P.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),BL=P.object({chain:P.enum(zN).describe("Chain the asset is on"),identifier:P.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:P.array(P.enum(j)).describe("Providers that support this trading pair"),symbol:P.string().describe("Asset symbol"),ticker:P.string().describe("Asset ticker")}),wF=P.object({buyAssets:P.array(BL).describe("List of assets that can be swapped to"),sellAsset:P.string().describe("The input sell asset identifier")}),eA=sA.extend({destinationAddress:P.string().describe("Destination address"),inboundAddress:P.optional(P.string().describe("Inbound address")),memo:P.optional(P.string().describe("Memo to include in the transaction")),meta:hA,sourceAddress:P.string().describe("Source address"),targetAddress:P.optional(P.string().describe("Target address")),tx:G(CA),txType:P.optional(P.enum(JN))}),GL=P.object({data:P.optional(P.record(P.string(),P.string().optional())),errorCode:P.enum(LN),message:P.string().optional(),provider:P.enum(j).optional()}),jF=P.object({error:P.optional(P.string().describe("Error message")),providerErrors:P.optional(P.array(GL)),quoteId:P.string().describe("Quote ID"),routes:P.array(eA)}),NT=eA.extend({approvalTx:IL.optional().describe("Optional approval transaction required before swap execution"),nextActions:P.optional(P.array(aA)),swapId:P.string().describe("The unique swap ID for tracking")});var q=_.extend({dynamicHeader:async()=>{let N=g.get("widgetId"),A=g.get("widgetKey");if(N&&A&&typeof window<"u"){let H=Math.floor(Date.now()/1000),L=window.location.origin,O=await HA(A,N,L,H);return{Origin:L,"X-Signature":O,"X-Timestamp":H.toString(),"x-widget-id":N}}let{swapKit:T}=g.get("apiKeys");return T?{"x-api-key":T}:{}}});async function YL(N){let A=await q.post(x("/track"),{json:N});try{let T=yA.safeParse(A);if(!T.success)throw new U("api_v2_invalid_response",T.error);return T.data}catch(T){return A}}async function ML(N){let{getQuote:A}=g.get("endpoints");if(A)return A(N);let H=g.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",L=await q.post(x(H),{json:N});if(L.error)throw new U("api_v2_server_error",{message:L.error});try{let O=lA.safeParse(L);if(!O.success)throw new U("api_v2_invalid_response",O.error);return O.data}catch{return L}}async function _L(N){let{getRouteWithTx:A}=g.get("endpoints");if(A)return A(N);let H=g.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",L=await q.post(x(H),{json:N});try{let O=NT.safeParse(L);if(!O.success)throw new U("api_v2_invalid_response",O.error);return O.data}catch(O){return console.error(new U("api_v2_invalid_response",O)),L}}async function SL({chain:N,address:A,scamFilter:T=!0}){let{getBalance:H}=g.get("endpoints");if(H)return H({address:A,chain:N});let L=x(`/balance?chain=${N}&address=${A}`),O=await q.get(L),R=Array.isArray(O)?O:[];return T?ZL(R):R}function DL(N){let A=$L(N).with({routeId:GN.string,spender:GN.string},({routeId:T,spender:H})=>x(`/approve?routeId=${T}&sourceAddress=${H}`)).with({assetValue:GN.instanceOf(n),spender:GN.string,userWallet:GN.string},({spender:T,userWallet:H,assetValue:L})=>x(`/approve?tokenIdentifier=${L.toString()}&userWalletAddress=${H}&spender=${T}&amount=${L.getValue("string")}`)).exhaustive();return q.get(A)}function UL(){let N=x("/providers");return q.get(N)}function XL(N){let A=x(`/tokens?provider=${N}`);return q.get(A)}function uL({query:N,chain:A,page:T,limit:H}){let L=new URLSearchParams({query:N});if(A!==void 0)L.set("chain",A);if(T!==void 0)L.set("page",T.toString());if(H!==void 0)L.set("limit",H.toString());let O=x(`/tokens/search?${L.toString()}`);return q.get(O)}async function gL(N){let A=x("/price"),T=await q.post(A,{json:N});try{let H=mA.safeParse(T);if(!H.success)throw new U("api_v2_invalid_response",H.error);return H.data}catch(H){throw new U("api_v2_invalid_response",H)}}async function WL(){let N=x("/gas"),A=await q.get(N);try{let T=iA.safeParse(A);if(!T.success)throw new U("api_v2_invalid_response",T.error);return Array.isArray(T)?T:[T]}catch(T){throw new U("api_v2_invalid_response",T)}}async function EL(N){let{destinationAddress:A}=N;if(!A)throw new U("chainflip_broker_invalid_params");let T=g.get("integrations").chainflip?.brokerUrl||x("/chainflip/broker/channel"),H=await q.post(T,{json:N});try{let L=fA.safeParse(H);if(!L.success)throw new U("api_v2_invalid_response",L.error);return L.data}catch(L){throw new U("api_v2_invalid_response",L)}}async function bL(N){let{destinationAddress:A}=N;if(!A)throw new U("chainflip_broker_invalid_params");let T=x("/near/channel"),H=await q.post(T,{json:N});try{let L=pA.safeParse(H);if(!L.success)throw new U("api_v2_invalid_response",L.error);return L.data}catch(L){throw new U("api_v2_invalid_response",L)}}function x(N){let{isDev:A,apiUrl:T,devApiUrl:H}=g.get("envs"),{enabled:L,quoteUrl:O,swapUrl:R}=g.get("localMode");if(L&&N){let[M]=N.split("?");if(M==="/quote"||M==="/v3/quote")return`${O}${N}`;if(M==="/swap"||M==="/v3/swap")return`${R}${N}`}return`${A?H:T}${N}`}function zL(N){try{return n.from({asset:N.identifier})}catch{return}}var JL=new Set(["OP.OP"]),QL=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function ZL(N){return N.filter((A)=>{let T=zL(A);if(!T)return!1;if(JL.has(T.toString().toUpperCase()))return!0;return(!yN.includes(T.chain)||T.isGasAsset||!!T.address)&&!QL.test(T.ticker)})}async function wL(N){let{getSwapTo:A}=g.get("endpoints");if(A)return A(N);let T=new URLSearchParams({sellAsset:N.sellAsset});if(N.providers?.length)for(let R of N.providers)T.append("providers",R);let H=x(`/swapTo?${T.toString()}`),L=await q.get(H);if(!Array.isArray(L))return{buyAssets:[],sellAsset:N.sellAsset};let O=[];for(let R of L)try{let $=n.from({asset:R});O.push({chain:$.chain,identifier:$.toString(),providers:[],symbol:$.symbol,ticker:$.ticker})}catch{}return{buyAssets:O,sellAsset:N.sellAsset}}var CN={};lN(CN,{getThorchainQueue:()=>qL,getTcyStakers:()=>pL,getTcyStaker:()=>fL,getTcyClaimers:()=>oL,getTcyClaimer:()=>yL,getTNSPreferredAsset:()=>kL,getTHORNodeTNSDetails:()=>AT,getRunePoolProviderInfo:()=>tL,getRunePoolInfo:()=>mL,getNodes:()=>nL,getMimirInfo:()=>vL,getLastBlock:()=>xL,getInboundAddresses:()=>KL});import{match as jL}from"ts-pattern";function v(N){let{isStagenet:A}=g.get("envs"),T=g.get("thornodeUrls");return`${jL({isStagenet:A,type:N}).with({type:"mayachain"},({isStagenet:L})=>L?T.MAYA_STAGENET:T.MAYA).otherwise(({isStagenet:L})=>L?T.THOR_STAGENET:T.THOR)}/${N??"thorchain"}`}function VL(N){let A=N==="mayachain"?"mayaname":"thorname";return`${v(N)}/${A}`}function xL(N="thorchain"){return _.get(`${v(N)}/lastblock`)}function qL(N){return _.get(`${v(N)}/queue`)}function nL(N){return _.get(`${v(N)}/nodes`)}function vL(N){return _.get(`${v(N)}/mimir`)}function KL(N){return _.get(`${v(N)}/inbound_addresses`)}async function AT({type:N,name:A}){try{return await _.get(`${VL(N)}/${A}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:A,owner:"",preferred_asset:""}}}async function kL({type:N,tns:A}){let T=await AT({name:A,type:N});if(!T.preferred_asset||T.preferred_asset===".")return;return n.from({asset:T.preferred_asset,asyncTokenLookup:!0})}function mL(N){return _.get(`${v(N)}/runepool`)}function tL({type:N,thorAddress:A}){return _.get(`${v(N)}/rune_provider/${A}`)}function fL({type:N,address:A}){return _.get(`${v(N)}/tcy_staker/${A}`)}function pL(N){return _.get(`${v(N)}/tcy_stakers`)}function yL({type:N,address:A}){return _.get(`${v(N)}/tcy_claimer/${A}`)}function oL(N){return _.get(`${v(N)}/tcy_claimers`)}var CF={...oN,mayachainMidgard:QA,thorchainMidgard:JA,thornode:CN};
|
|
5
|
-
export{hL as a,LN as b,ZN as c,j as d,wN as e,IT as f,RT as g,BT as h,U as i,iL as j,MN as k,sN as l,eL as m,GT as n,V as o,g as p,_ as q,HA as r,_P as s,c as t,xN as u,ZT as v,l as w,WP as x,EP as y,bP as z,zP as A,KP as B,vT as C,DA as D,UA as E,XA as F,XN as G,qN as H,y as I,FN as J,kP as K,mP as L,C as M,t as N,dT as O,n as P,iP as Q,EN as R,xA as S,JN as T,qA as U,nA as V,vA as W,KA as X,IF as Y,RF as Z,BF as _,GF as $,NN as aa,kA as ba,$F as ca,mA as da,YF as ea,MF as fa,tA as ga,jH as ha,fA as ia,ZA as ja,_F as ka,pA as la,yA as ma,SF as na,DF as oa,fN as pa,pN as qa,tH as ra,UF as sa,XF as ta,fH as ua,pH as va,yH as wa,uF as xa,cH as ya,lH as za,rH as Aa,iH as Ba,gF as Ca,sH as Da,aH as Ea,oA as Fa,WF as Ga,NL as Ha,EF as Ia,AL as Ja,TL as Ka,dA as La,hA as Ma,cA as Na,LL as Oa,lA as Pa,rA as Qa,iA as Ra,zF as Sa,JF as Ta,FL as Ua,OL as Va,IL as Wa,QF as Xa,ZF as Ya,BL as Za,wF as _a,eA as $a,GL as ab,jF as bb,NT as cb,CF as db};
|