@swapkit/helpers 4.15.1 → 4.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @swapkit/helpers
2
2
 
3
+ ## 4.15.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Accept base-10 and hex integer EVM-compatible transaction values, expose shared value parsing helpers, and add TRON/TON quote tx types.
8
+
9
+ Emit hex `value` fields from EVM transaction creators.
10
+
11
+ Expose hex `value` fields from Tron toolbox-created transactions.
12
+
13
+ Update TON transaction payloads to use `{ sendMode, messages }`, while keeping TON toolbox signing compatible with legacy message-array inputs.
14
+
15
+ Keep SwapKit plugin signing compatible with legacy TON message-array inputs through August 26, 2026.
16
+
17
+ - Updated dependencies []:
18
+ - @swapkit/tokens@4.3.1
19
+
20
+ ## 4.15.2
21
+
22
+ ### Patch Changes
23
+
24
+ - [#294](https://github.com/swapkit/sdk/pull/294) [`01a1d86`](https://github.com/swapkit/sdk/commit/01a1d869ec879ee80f4118719d7746c1b4f8e9bf) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Leaner published bundles: externalize sibling `@swapkit/*` workspace packages and enable ESM code-splitting for every package (builder change in `@swapkit/tools-builder`).
25
+
26
+ `packages: "external"` only excluded node_modules, so Bun followed the workspace symlinks and inlined a full copy of each `@swapkit/*` dependency (a declared `workspace:*` dep) into every entry. ESM splitting was also disabled for `@swapkit/toolboxes`, even though `splitting: false` is only required for the CJS build (Bun 1.4.0 panics on split CommonJS chunks). The builder now adds `external: ["@swapkit/*"]` and keeps ESM `splitting: true` everywhere (CJS stays `splitting: false`), so workspace deps resolve at install time instead of being duplicated into every bundle.
27
+
28
+ No runtime/API change. Clean-build JS bundle sizes drop sharply: `core` 2.66 MB → 12 KB, `passkey`/`server`/`wallet-keystore` ~2.6 MB → ~9 KB, `plugins` 11.7 MB → 98 KB, `helpers` 4.2 MB → 281 KB (and `toolboxes` 35 MB → 0.7 MB, tracked separately). Built ESM and CJS entries verified to load under both Bun and Node.
29
+
30
+ - Updated dependencies []:
31
+ - @swapkit/tokens@4.3.1
32
+
3
33
  ## 4.15.1
4
34
 
5
35
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- var{defineProperty:FN,getOwnPropertyNames:YA,getOwnPropertyDescriptor:FT}=Object,ZN=Object.prototype.hasOwnProperty;function WN(A){return this[A]}var MN=(A,T,H)=>{var P=YA(T);for(let L of P)if(!ZN.call(A,L)&&L!=="default")FN(A,L,{get:WN.bind(T,L),enumerable:!0});if(H){for(let L of P)if(!ZN.call(H,L)&&L!=="default")FN(H,L,{get:WN.bind(T,L),enumerable:!0});return H}};var SA=(A)=>{var T=(DA??=new WeakMap).get(A),H;if(T)return T;if(T=FN({},"__esModule",{value:!0}),A&&typeof A==="object"||typeof A==="function"){for(var P of YA(A))if(!ZN.call(T,P))FN(T,P,{get:WN.bind(A,P),enumerable:!(H=FT(A,P))||H.enumerable})}return DA.set(A,T),T},DA;var uT=(A)=>A;function IT(A,T){this[A]=uT.bind(null,T)}var Q=(A,T)=>{for(var H in T)FN(A,H,{get:T[H],enumerable:!0,configurable:!0,set:IT.bind(T,H)})};var nT=(A,T)=>()=>(A&&(T=A(A=0)),T);var r={};module.exports=SA(r);var UA=nT(()=>{MN(r,require("@swapkit/tokens"),module.exports)});var cP={};Q(cP,{TxnType:()=>hN,TxnStatus:()=>cN,TronTransactionSchema:()=>TA,TransactionSchema:()=>aH,TransactionDTOSchema:()=>NP,TrackingStatus:()=>lN,TrackingRequestSchema:()=>mH,TrackingRequestQuerySchema:()=>yH,TrackerResponseSchema:()=>NA,TokenSchema:()=>KH,TokenDetailsMetadataSchema:()=>oH,TONTransactionSchema:()=>PA,SwapToResponseSchema:()=>MP,SwapToRequestSchema:()=>GP,SwapToAssetSchema:()=>TT,SwapRouteV2ResponseSchema:()=>OA,SwapKitApi:()=>dP,StarknetTransactionSchema:()=>rA,RouteQuoteWarningSchema:()=>FA,RouteQuoteTxType:()=>ON,RouteQuoteProviderErrorSchema:()=>HT,RouteQuoteMetadataV2Schema:()=>RA,RouteQuoteMetadataSchema:()=>LA,RouteQuoteMetadataAssetSchema:()=>sA,RouteLegWithoutAddressesSchema:()=>RP,RouteLegSchema:()=>iA,QuoteV3ResponseSchema:()=>$P,QuoteV2ResponseSchema:()=>_P,QuoteRouteV2Response:()=>BA,QuoteResponseSchema:()=>uA,QuoteResponseRouteItem:()=>aA,QuoteRequestSchema:()=>fH,ProviderAction:()=>dN,PriorityLabel:()=>CN,PriceResponseSchema:()=>iN,PriceRequestSchema:()=>CH,NearSwapResponseSchema:()=>aN,NearDepositChannelResultSchema:()=>hH,NearDepositChannelParamsSchema:()=>fN,GasSchema:()=>IA,GasResponseSchema:()=>nA,FeesSchema:()=>QN,EstimatedTimeSchema:()=>wN,EVMTransactionSchema:()=>AA,EVMTransactionDetailsSchema:()=>AP,EVMTransactionDetailsParamsSchema:()=>lA,DepositChannelResponseSchema:()=>eN,DepositChannelParamsSchema:()=>sN,CosmosTransactionSchema:()=>HA,CoinGeckoMetadataSchema:()=>rN,ChainflipMetadataSchema:()=>eA,BrokerDepositChannelParamsSchema:()=>cA,AssetValueSchema:()=>d,ApproveResponseSchema:()=>nP,ApproveRequestParams:()=>IP,ApprovalTransactionSchema:()=>NT,ApiV2ErrorSchema:()=>pH});module.exports=SA(cP);var h=require("@swapkit/types");var FH={};Q(FH,{getMinAmountByChain:()=>NH,AssetValue:()=>z});var G=require("@swapkit/types"),mN=require("ethers"),bN=require("ts-pattern");var CT={};Q(CT,{parseSymbolForAddress:()=>e,isGasAsset:()=>qN,getTokenLogoURI:()=>oT,getCommonAssetInfo:()=>uN,getAssetType:()=>tN,findAssetBy:()=>fT,fetchTokenInfo:()=>vN,assetFromString:()=>K,CommonAssetStrings:()=>VT});var I=require("@swapkit/types"),s=require("ts-pattern");var ET={};Q(ET,{RequestClient:()=>O});var MT={};Q(MT,{swapKitConfigStore:()=>w,SKConfig:()=>Y});var X=require("@swapkit/types"),bA=require("zustand/vanilla");var OT={};Q(OT,{WarningCodeEnum:()=>gN,WalletOption:()=>YN,ProviderName:()=>b,NetworkDerivationPath:()=>BT,MemoType:()=>EA,LedgerErrorCode:()=>xA,FeeTypeEnum:()=>DN,FeeOption:()=>XA,ErrorCode:()=>i,ApproveMode:()=>tA});var _N=require("@swapkit/types"),BT=_N.AllChains.reduce((A,T)=>{return A[T]=_N.getChainConfig(T).networkDerivationPath,A},{});var i;((F)=>{F.unknownError="unknownError";F.test_error="test_error";F.providerDetailsError="providerDetailsError";F.blockHeaderNotFound="blockHeaderNotFound";F.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";F.blockHashNotFoundAtHash="blockHashNotFoundAtHash";F.txHashMissing="txHashMissing";F.assetValueMissingInfo="assetValueMissingInfo";F.invalidAsset="invalidAsset";F.blockIsRequired="blockIsRequired";F.currentBlockHeaderNotFound="currentBlockHeaderNotFound";F.failedToRetrieveBalance="failedToRetrieveBalance";F.failedToRetrieveBlock="failedToRetrieveBlock";F.failedToRetrieveFees="failedToRetrieveFees";F.notImplementedBCH="notImplementedBCH";F.notImplementedDoge="notImplementedDoge";F.noPoolsFound="noPoolsFound";F.noVaultsFound="noVaultsFound";F.noTxFound="noTxFound";F.noInputCoinFound="noInputCoinFound";F.noBlockDataFound="noBlockDataFound";F.multipleCosmosMessages="multipleCosmosMessages";F.heightOrHashNotProvided="heightOrHashNotProvided";F.unknownDenom="unknownDenom";F.invalidBlockHeight="invalidBlockHeight";F.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";F.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";F.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";F.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";F.txMemoUndefined="txMemoUndefined";F.txMemoIncorrect="txMemoIncorrect";F.txTypeNotFound="txTypeNotFound";F.txNoMessage="txNoMessage";F.txNotFound="txNotFound";F.txReceiptNotFound="txReceiptNotFound";F.txParsingError="txParsingError";F.txLogsParsingError="txLogsParsingError";F.blockNotFound="blockNotFound";F.balanceNotFound="balanceNotFound";F.configError="configError";F.synthSwapDisallowed="synthSwapDisallowed";F.providerQuoteTimeout="providerQuoteTimeout";F.noQuoteResponse="noQuoteResponse";F.noPoolAssetsFound="noPoolAssetsFound";F.noThorchainPools="noThorchainPools";F.noMayachainPools="noMayachainPools";F.noThorchainNetworkInfo="noThorchainNetworkInfo";F.invalidAffiliateFee="invalidAffiliateFee";F.invalidBuyAssetAddress="invalidBuyAssetAddress";F.invalidSellAssetAddress="invalidSellAssetAddress";F.invalidSourceAddress="invalidSourceAddress";F.invalidDestinationAddress="invalidDestinationAddress";F.sourceAddressIsSmartContract="sourceAddressIsSmartContract";F.destinationAddressIsSmartContract="destinationAddressIsSmartContract";F.invalidChainId="invalidChainId";F.unsupportedChainId="unsupportedChainId";F.unsupportedEVMChainId="unsupportedEVMChainId";F.unsupportedMethod="unsupportedMethod";F.unsupportedProvider="unsupportedProvider";F.invalidParamsForMethod="invalidParamsForMethod";F.unsupportedAdapter="unsupportedAdapter";F.noWhitelistTokens="noWhitelistTokens";F.failedFetchGasPrice="failedFetchGasPrice";F.failedToCreateDepositChannel="failedToCreateDepositChannel";F.noProviderDetailsFound="noProviderDetailsFound";F.noTokenListsFound="noTokenListsFound";F.tokenNotFound="tokenNotFound";F.tokenPriceNotFound="tokenPriceNotFound";F.tokenPriceFailedToUpdate="tokenPriceFailedToUpdate";F.swapAmountTooSmall="swapAmountTooSmall";F.legsArrayIsEmpty="legsArrayIsEmpty";F.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";F.noBlockHeaderFound="noBlockHeaderFound";F.failedToSimulateSwap="failedToSimulateSwap";F.addressScreeningFailed="addressScreeningFailed";F.noLiquidtyProvidersFound="noLiquidtyProvidersFound";F.insufficientLiquidity="insufficientLiquidity";F.noInboundDataFound="noInbounDataFound";F.noInboundAddressesFound="noInboundAddressesFound";F.noInboundAddressFoundForChain="noInboundAddressFoundForChain";F.noLastBlocksFound="noLastBlocksFound";F.noVersionFound="noVersionFound";F.noConstantsFound="noConstantsFound";F.noMimirsFound="noMimirsFound";F.noRoutesFound="noRoutesFound";F.quoteNotFound="quoteNotFound";F.ledgerSignFailed="ledgerSignFailed";F.ledgerWrongPayload="ledgerWrongPayload";F.ledgerFetchSwapFailed="ledgerFetchSwapFailed";F.failedToFetchTx="failedToFetchTx";F.failedBuildTransactionDetails="failedBuildTransactionDetails";F.noLegsForRoute="noLegsForRoute";F.noRouterAddressFound="noRouterAddressFound";F.noAggregatorAddressFound="noAggregatorAddressFound";F.noContractInstanceFound="noContractInstanceFound";F.noContractAddressFound="noContractAddressFound";F.invalidAffiliate="invalidAffiliate";F.thornameAffiliate="thornameAffiliate";F.providerNotfound="No provider found";F.noRecordFound="No Record found";F.slippageTooLow="Slippage too low";F.tradingHalted="tradingHalted";F.noWrappedGasAsset="noWrappedGasAsset";F.aggregatorAddressNotFound="aggregatorAddressNotFound";F.routerAddressNotFound="routerAddressNotFound";F.dummyAddressNotFound="dummyAddressNotFound";F.trackerError="trackerError";F.thorchainPoolUnavailable="thorchainPoolUnavailable";F.noOhlcvDataFound="noOhlcvDataFound";F.noTradingPairs="noTradingPairs";F.noLendingAvailability="noLendingAvailability";F.lendingRepayTooSmall="lendingRepayTooSmall";F.missingState="missingState";F.ledgerSwapNotFound="ledgerSwapNotFound";F.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";F.errorEstimatingGas="errorEstimatingGas";F.apiKeyInvalid="apiKeyInvalid";F.apiKeyFailedToUpdate="apiKeyFailedToUpdate";F.apiKeyExpired="apiKeyExpired";F.unauthorized="unauthorized";F.failedToCreateMemo="failedToCreateMemo";F.radixIncorrectInstructions="radixIncorrectInstructions";F.radixTxMissedParam="radixTxMissedParam";F.radixTxMissedAccount="radixTxMissedAccount";F.radixManifestParseError="radixManifestParseError";F.radixManifestBuildError="radixManifestBuildError";F.invalidAddressForChain="invalidAddressForChain";F.riskyAddress="riskyAddress";F.noRoutesToProcess="noRoutesToProcess";F.sellAssetAmountTooSmall="sellAssetAmountTooSmall";F.missingPrivateKey="missingPrivateKey";F.noMemoPriceProtection="noMemoPriceProtection"})(i||={});var gN;((H)=>{H.highSlippage="highSlippage";H.highPriceImpact="highPriceImpact"})(gN||={});var b;((U)=>{U.CHAINFLIP="CHAINFLIP";U.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";U.JUPITER="JUPITER";U.MAYACHAIN="MAYACHAIN";U.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";U.ONEINCH="ONEINCH";U.PANCAKESWAP="PANCAKESWAP";U.SUSHISWAP_V2="SUSHISWAP_V2";U.THORCHAIN="THORCHAIN";U.THORCHAIN_STREAMING="THORCHAIN_STREAMING";U.TRADERJOE_V2="TRADERJOE_V2";U.UNISWAP_V2="UNISWAP_V2";U.UNISWAP_V3="UNISWAP_V3";U.NEAR="NEAR";U.GARDEN="GARDEN";U.OKX="OKX";U.HARBOR="HARBOR";U.FLASHNET="FLASHNET";U.MAYAN="MAYAN"})(b||={});var DN;((B)=>{B.LIQUIDITY="liquidity";B.NETWORK="network";B.INBOUND="inbound";B.OUTBOUND="outbound";B.AFFILIATE="affiliate";B.TAX="tax";B.PRIORITY="priority";B.SERVICE="service"})(DN||={});var XA;((P)=>{P.Average="average";P.Fast="fast";P.Fastest="fastest"})(XA||={});var tA;((H)=>{H.Approve="approve";H.CheckOnly="checkOnly"})(tA||={});var EA;((M)=>{M.NAME_REGISTER="~";M.BOND="BOND";M.DEPOSIT="+";M.LEAVE="LEAVE";M.UNBOND="UNBOND";M.WITHDRAW="-";M.RUNEPOOL_DEPOSIT="POOL+";M.RUNEPOOL_WITHDRAW="POOL-";M.CLAIM_TCY="tcy";M.STAKE_TCY="tcy+";M.UNSTAKE_TCY="tcy-"})(EA||={});var YN;((_)=>{_.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";_.PASSKEYS="PASSKEYS";_.PASSKEY_WALLET="PASSKEY_WALLET";_.PETRA="PETRA";_.PHANTOM="PHANTOM";_.POLKADOT_JS="POLKADOT_JS";_.RADIX_WALLET="RADIX_WALLET";_.TALISMAN="TALISMAN";_.TREZOR="TREZOR";_.TRONLINK="TRONLINK";_.TRUSTWALLET_WEB="TRUSTWALLET_WEB";_.VULTISIG="VULTISIG";_.WALLETCONNECT="WALLETCONNECT";_.WALLET_SELECTOR="WALLET_SELECTOR";_.XAMAN="XAMAN"})(YN||={});var xA;((P)=>{P[P.NoError=36864]="NoError";P[P.LockedDevice=21781]="LockedDevice";P[P.TC_NotFound=65535]="TC_NotFound"})(xA||={});var $T=X.AllChains.reduce((A,T)=>{if(!A.THOR_STAGENET)A[X.StagenetChain.Maya]=X.StagenetMAYAConfig.rpcUrls,A[X.StagenetChain.THORChain]=X.StagenetTHORConfig.rpcUrls;return A[T]=X.getChainConfig(T).rpcUrls,A},{}),GT={[X.Chain.THORChain]:X.THORConfig.nodeUrl,[X.Chain.Maya]:X.MAYAConfig.nodeUrl,[X.StagenetChain.THORChain]:X.StagenetTHORConfig.nodeUrl,[X.StagenetChain.Maya]:X.StagenetMAYAConfig.nodeUrl},QA={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:X.AllChains,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:$T,thornodeUrls:GT,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(YN),widgetId:"",widgetKey:""},w=bA.createStore((A)=>({...QA,setApiKey:(T,H)=>A((P)=>({apiKeys:{...P.apiKeys,[T]:H}})),setConfig:(T)=>A((H)=>({apiKeys:{...H.apiKeys,...T?.apiKeys},chains:H.chains.concat(T?.chains||[]),endpoints:{...H.endpoints,...T?.endpoints},envs:{...H.envs,...T?.envs},feeMultipliers:T?.feeMultipliers||H.feeMultipliers,integrations:{...H.integrations,...T?.integrations},localMode:{...H.localMode,...T?.localMode},rpcUrls:{...H.rpcUrls,...T?.rpcUrls},thornodeUrls:{...H.thornodeUrls,...T?.thornodeUrls},v3SwapFlow:{...H.v3SwapFlow,...T?.v3SwapFlow},wallets:H.wallets.concat(T?.wallets||[]),widgetId:T?.widgetId||H.widgetId,widgetKey:T?.widgetKey||H.widgetKey})),setEndpoint:(T,H)=>A((P)=>({endpoints:{...P.endpoints,[T]:H}})),setEnv:(T,H)=>A((P)=>({envs:{...P.envs,[T]:H}})),setFeeMultipliers:(T)=>A(()=>({feeMultipliers:T})),setIntegrationConfig:(T,H)=>A((P)=>({integrations:{...P.integrations,[T]:H}})),setRequestOptions:(T)=>A((H)=>({requestOptions:{retry:{...H.requestOptions.retry,...T.retry},timeoutMs:T.timeoutMs||H.requestOptions.timeoutMs}})),setRpcUrl:(T,H)=>A((P)=>({rpcUrls:{...P.rpcUrls,[T]:H}})),setThornodeUrl:(T,H)=>A((P)=>({thornodeUrls:{...P.thornodeUrls,[T]:H}})),setWidgetId:(T)=>A({widgetId:T}),setWidgetKey:(T)=>A({widgetKey:T})})),Y={get:(A)=>w.getState()[A],getState:w.getState,reinitialize:()=>w.setState(QA),set:(A)=>w.getState().setConfig(A),setApiKey:(A,T)=>w.getState().setApiKey(A,T),setEndpoint:(A,T)=>w.getState().setEndpoint(A,T),setEnv:(A,T)=>w.getState().setEnv(A,T),setFeeMultipliers:(A)=>w.getState().setFeeMultipliers(A),setIntegrationConfig:(A,T)=>w.getState().setIntegrationConfig(A,T),setRequestOptions:(A)=>w.getState().setRequestOptions(A),setRpcUrl:(A,T)=>w.getState().setRpcUrl(A,T),setThornodeUrl:(A,T)=>w.getState().setThornodeUrl(A,T),setWidgetId:(A)=>w.getState().setWidgetId(A),setWidgetKey:(A)=>w.getState().setWidgetKey(A)};var gT={};Q(gT,{SwapKitError:()=>$});var _T={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_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_not_supported:59901,toolbox_fee_estimation_failed:59902,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,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(A){return JSON.stringify(A,(T,H)=>typeof H==="bigint"?H.toString():H)}class $ extends Error{static ErrorCode=_T;errorKey;info;constructor(A,T){let H=typeof A==="string",P=H?A:A.errorKey,L=H?void 0:A.info,R=`${P}${L?`: ${jN(L)}`:""}`;super(R);if(Object.setPrototypeOf(this,$.prototype),this.name="SwapKitError",this.errorKey=P,this.info=L,this.cause=T,T){let u=T instanceof Error?`${T.message}${T.cause?` (${T.cause})`:""}`:jN(T);console.error(`SwapKitError [${P}]: ${u}`)}else if(L)console.error(`SwapKitError [${P}]: ${jN(L)}`)}}var DT=(A)=>new Promise((T)=>setTimeout(T,A)),YT=(A,{baseDelay:T,backoffMultiplier:H,maxDelay:P})=>Math.min(T*H**A,P);function ST(A,T){if(A instanceof Error&&A.name==="AbortError")return!0;if(A instanceof TypeError)return!0;if(T===429)return!0;if(T&&T>=500&&T<600)return!0;return!1}var UT=async(A,T)=>{let H=await fetch(A,T),P;try{P=await H.json()}catch{if(!H.ok)throw new $({errorKey:"helpers_invalid_response",info:{status:H.status,statusText:H.statusText}},{status:H.status,statusText:H.statusText});return{}}if(!H.ok){let R={data:P?.data,error:P?.error,message:P?.message,status:H.status};throw new $({errorKey:P?.error||"helpers_invalid_response",info:R},R)}let L=P?.routes?.length||P?.result||P?.data&&!P?.error;if(P?.error&&!L){let R={data:P.data,error:P.error,message:P.message,status:H.status};throw new $({errorKey:P.error,info:R},R)}if(P?.providerErrors?.length||P?.error&&L)console.warn("[SwapKit] Partial errors in response:",P.providerErrors||P.error);return P};function SN(A,T={}){return async function(P,L={}){let{searchParams:R,json:u,body:n,headers:B,dynamicHeader:D,retry:t,timeoutMs:M,abortController:W,onError:S,onSuccess:V,responseHandler:E,...x}={...T,...L},LN=Y.get("requestOptions"),c={...LN.retry,...t},U=!!u||P.endsWith(".json"),$N=tT(P,R),MA=D?await D():{},RN=XT(U,{...B,...MA}),l=U?JSON.stringify(u):n,JN;for(let GN=0;GN<=c.maxRetries;GN++){let _A=W||new AbortController,gA=setTimeout(()=>_A.abort(),M||LN.timeoutMs);try{let q=await UT($N,{...x,body:l,headers:RN,method:A,signal:_A.signal});return clearTimeout(gA),V?.(q)||E?.(q)||q}catch(q){clearTimeout(gA),JN=q;let RT=q?.cause?.status;if(GN>=c.maxRetries||!ST(q,RT))return S?S(q):Promise.reject(q);await DT(YT(GN,c))}}return S?S(JN):Promise.reject(JN)}}function XT(A,T){return{...T,...A&&{"Content-Type":"application/json"}}}function tT(A,T){let H=new URL(A);if(T)H.search=new URLSearchParams(T).toString();return H.toString()}var O={extend:(A)=>({extend:(T)=>O.extend({...A,...T}),get:SN("GET",A),post:SN("POST",A)}),get:SN("GET"),post:SN("POST")};var jT={};Q(jT,{initializeRPCUrlsWithFallback:()=>WT,getRPCUrlSync:()=>ZA,getRPCUrl:()=>f,_rpcCache:()=>XN});var g=require("@swapkit/types"),VN=require("ts-pattern");var zT={};Q(zT,{wrapWithThrow:()=>QT,warnOnce:()=>o,getTHORNameCost:()=>xT,getMAYANameCost:()=>bT,getChainIdentifier:()=>wT});var UN=require("@swapkit/types");function xT(A){if(A<0)throw new $({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:A}});return 10+A}function bT(A){if(A<0)throw new $({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:A}});return Math.round((10+A*1.0512)*10000000000)/10000000000}function QT(A,T){try{return A()}catch(H){if(T)throw new $(T,H);return}}function wT(A){switch(A){case UN.Chain.THORChain:return`${A}.RUNE`;case UN.Chain.Cosmos:return`${A}.ATOM`;case UN.Chain.BinanceSmartChain:return`${A}`;default:return`${A}.${A}`}}var wA=new Set;function o({condition:A,id:T,warning:H}){if(A){if(wA.has(T))return;console.warn(H),wA.add(T)}}function JT(A){return VN.match(A).with(...g.EVMChains,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...g.UTXOChains,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...g.CosmosChains,...g.StagenetChains,()=>({id:1,jsonrpc:"2.0",method:"status",params:{}})).with(g.Chain.Polkadot,g.Chain.Chainflip,()=>({id:1,jsonrpc:"2.0",method:"system_health",params:[]})).with(g.Chain.Solana,()=>({id:1,jsonrpc:"2.0",method:"getHealth"})).with(g.Chain.Sui,()=>({id:1,jsonrpc:"2.0",method:"sui_getSystemState",params:[]})).with(g.Chain.Ton,()=>({id:1,jsonrpc:"2.0",method:"getAddressInformation",params:{address:""}})).with(g.Chain.Aptos,g.Chain.Tron,g.Chain.Radix,g.Chain.Stellar,()=>"").with(g.Chain.Hype,()=>({type:"meta"})).with(g.Chain.Near,()=>({id:"dontcare",jsonrpc:"2.0",method:"status",params:[]})).with(g.Chain.Ripple,()=>({id:1,jsonrpc:"2.0",method:"ping",params:[{}]})).with(g.Chain.Starknet,()=>({id:1,jsonrpc:"2.0",method:"starknet_chainId",params:[]})).otherwise(()=>{throw new $("helpers_chain_not_supported",{chain:A})})}function zA(A){return VN.match(A).with(g.Chain.Aptos,()=>"/-/healthy").with(g.Chain.Hype,()=>"/info").with(g.Chain.Radix,()=>"/status/network-configuration").with(g.Chain.Stellar,()=>"").with(g.Chain.Tron,()=>"/wallet/getnowblock").otherwise(()=>"")}async function JA(A,T){try{let H=T.startsWith("wss")?T.replace("wss","https"):T;if(A===g.Chain.Stellar)return(await fetch(`${H}${zA(A)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)})).ok;return(await fetch(`${H}${zA(A)}`,{body:JSON.stringify(JT(A)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)})).ok}catch{return!1}}var XN=new Map,ZT=120000;function ZA(A){let[T=""]=Y.get("rpcUrls")[A];if(!T)throw o({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 ${A}.`}),new $("helpers_chain_no_public_or_set_rpc_url",{chain:A});let H=XN.get(A);if(H&&Date.now()-H.timestamp<ZT)return H.url;return XN.set(A,{timestamp:Date.now(),url:T}),T}async function f(A){let T=ZA(A),[,...H]=Y.get("rpcUrls")[A];if(await JA(A,T))return T;for(let L of H)if(await JA(A,L))return XN.set(A,{timestamp:Date.now(),url:L}),L;throw new $("helpers_chain_rpc_connection_failed",{chain:A,fallbackUrls:H,primaryRpcUrl:T})}function WT(A){o({condition:!0,id:"initializeRPCUrlsWithFallback",warning:"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints."})}var VT=[`${I.Chain.Maya}.MAYA`,`${I.Chain.Maya}.CACAO`,`${I.Chain.Ethereum}.THOR`,`${I.Chain.Ethereum}.vTHOR`,`${I.Chain.Kujira}.USK`,`${I.Chain.Ethereum}.FLIP`,`${I.Chain.Radix}.XRD`],VA=[I.Chain.Arbitrum,I.Chain.Aurora,I.Chain.Base,I.Chain.Ethereum,I.Chain.Optimism];async function vT(A){let{baseDecimal:T}=I.getChainConfig(I.Chain.Radix);try{let H=await f(I.Chain.Radix),{manager:P}=await O.post(`${H}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:A}),headers:{Accept:"*/*","Content-Type":"application/json"}});return P?.divisibility?.value?.divisibility}catch(H){let P=H instanceof Error?H.message:String(H);return console.warn(`Failed to fetch Radix asset decimals for ${A}: ${P}`),T}}async function qT(A){try{let T=await f(I.Chain.Radix);return(await O.post(`${T}/state/entity/details`,{body:JSON.stringify({addresses:[A],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(T){let H=T instanceof Error?T.message:String(T);return console.warn(`Failed to fetch Radix asset symbol for ${A}: ${H}`),""}}async function vA({chain:A,address:T,methodHex:H,id:P}){let L=await f(A);return O.post(L,{body:JSON.stringify({id:P,jsonrpc:"2.0",method:"eth_call",params:[{data:H,to:T.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}async function kT(A){if(!A||A==="0x")return"UNKNOWN";try{let{AbiCoder:T}=await import("ethers");return T.defaultAbiCoder().decode(["string"],A)[0].trim()}catch(T){return console.warn(`Failed to decode ABI string from ${A}: ${T}`),"UNKNOWN"}}function KT(A,T){if(!A||A==="0x")return T;try{return Number(A)}catch(H){return console.warn(`Failed to decode ABI uint8 from ${A}: ${H}`),T}}async function mT({chain:A,address:T}){let{baseDecimal:H}=I.getChainConfig(A),P=T.toLowerCase();if(T===""||!P.startsWith("0x"))return H;let L=await vA({address:T,chain:A,id:2,methodHex:"0x313ce567"}).catch((u)=>{return console.warn(`Could not fetch decimals for ${T} on ${A}: ${u.message}`),{result:""}});return KT(L.result,H)}async function yT({chain:A,address:T}){let H=T.toLowerCase();if(H===""||!H.startsWith("0x"))return;let P=await vA({address:T,chain:A,id:1,methodHex:"0x95d89b41"}).catch((R)=>{return console.warn(`Could not fetch symbol for ${T} on ${A}: ${R.message}`),{result:""}});return await kT(P.result)}async function WA({rpcUrl:A,contractAddress:T,functionSelector:H}){return(await O.post(`${A}/wallet/triggerconstantcontract`,{body:JSON.stringify({contract_address:T,function_selector:H,owner_address:T,parameter:"",visible:!0}),headers:{accept:"application/json","content-type":"application/json"}}).catch(()=>{return}))?.constant_result?.[0]}function jA(A){let T=A.match(/.{2}/g)?.map((H)=>Number.parseInt(H,16))??[];return new TextDecoder().decode(new Uint8Array(T))}function pT(A){return s.match(A).with(void 0,()=>{return}).when((T)=>T.length>=128,(T)=>{let H=Number.parseInt(T.slice(64,128),16);return jA(T.slice(128,128+H*2))}).when((T)=>T.length===64,(T)=>{let H=T.replace(/0+$/,"");if(H.length>0&&H.length%2===0)return jA(H);return}).otherwise(()=>{return})}function vN({chain:A,address:T}){let{baseDecimal:H}=I.getChainConfig(A),P={decimals:H,ticker:void 0};return s.match(A).with(...I.EVMChains,async()=>{try{let{isAddress:L,getAddress:R}=await import("ethers");if(!L(R(T.replace(/^0X/,"0x"))))return P;let[u,n]=await Promise.all([yT({address:T,chain:A}),mT({address:T,chain:A})]);return{decimals:n,ticker:u}}catch(L){return console.warn(`Failed to fetch token info for ${T} on ${A}: ${L?.code} ${L?.message}`),P}}).with(I.Chain.Solana,async()=>{if(!T)return P;try{let L=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${T}`);if(L.ok){let R=await L.json(),u=Array.isArray(R)?R[0]:R;if(u)return{decimals:u.decimals??H,ticker:u.symbol||void 0}}}catch(L){console.warn(`Failed to fetch Solana token info for ${T}: ${L?.code} ${L?.message}`)}return P}).with(I.Chain.Tron,async()=>{if(!T)return P;try{let L=await f(I.Chain.Tron),[R,u]=await Promise.all([WA({contractAddress:T,functionSelector:"symbol()",rpcUrl:L}),WA({contractAddress:T,functionSelector:"decimals()",rpcUrl:L})]),n=pT(R);return{decimals:R!==void 0&&u?Number(BigInt(`0x${u}`)):H,ticker:n}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Tron token info for ${T}: ${R}`),P}}).with(I.Chain.Near,async()=>{if(!T)return P;try{let{JsonRpcProvider:L}=await import("@near-js/providers"),R=await f(I.Chain.Near),n=await new L({url:R}).query({account_id:T,args_base64:Buffer.from("{}").toString("base64"),finality:"final",method_name:"ft_metadata",request_type:"call_function"}),B=JSON.parse(Buffer.from(n.result).toString());return{decimals:B?.decimals||H,ticker:B?.symbol}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Near token info for ${T}: ${R}`),P}}).with(I.Chain.Radix,async()=>{if(!T)return P;try{let[L,R]=await Promise.all([qT(T),vT(T)]);return{decimals:R,ticker:L}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Radix token info for ${T}: ${R}`),P}}).otherwise(async()=>P)}function qN({chain:A,symbol:T}){return s.match(A).with(...VA,()=>T==="ETH").with(I.Chain.Avalanche,()=>T==="AVAX").with(I.Chain.Berachain,()=>T==="BERA").with(I.Chain.Hyperevm,()=>T==="HYPE").with(I.Chain.Hype,()=>T==="HYPE").with(I.Chain.Spark,()=>T==="BTC").with(I.Chain.BinanceSmartChain,()=>T==="BNB").with(I.Chain.Gnosis,()=>T==="xDAI"||T==="XDAI").with(I.Chain.Monad,()=>T==="MON").with(I.Chain.XLayer,()=>T==="OKB").with(I.Chain.Maya,()=>T==="CACAO").with(I.Chain.Cosmos,()=>T==="ATOM").with(I.Chain.THORChain,()=>T==="RUNE").with(I.Chain.Tron,()=>T==="TRX").with(I.Chain.Ripple,()=>T==="XRP").with(I.Chain.Radix,()=>`${A}.${T}`===uN(A).identifier).otherwise(()=>T===A)}var uN=(A)=>{let{baseDecimal:T}=I.getChainConfig(A);return s.match(A.toUpperCase()).with(...VA,(P)=>({decimal:T,identifier:`${P}.ETH`})).with(I.Chain.THORChain,(P)=>({decimal:T,identifier:`${P}.RUNE`})).with(I.Chain.Cosmos,(P)=>({decimal:T,identifier:`${P}.ATOM`})).with(I.Chain.Maya,(P)=>({decimal:10,identifier:`${P}.CACAO`})).with(I.Chain.BinanceSmartChain,(P)=>({decimal:T,identifier:`${P}.BNB`})).with(I.Chain.Monad,(P)=>({decimal:T,identifier:`${P}.MON`})).with(I.Chain.Avalanche,(P)=>({decimal:T,identifier:`${P}.AVAX`})).with(I.Chain.Gnosis,(P)=>({decimal:T,identifier:`${P}.xDAI`})).with(I.Chain.XLayer,(P)=>({decimal:T,identifier:`${P}.OKB`})).with(I.Chain.Berachain,(P)=>({decimal:T,identifier:`${P}.BERA`})).with(I.Chain.Hyperevm,(P)=>({decimal:T,identifier:`${P}.HYPE`})).with(I.Chain.Hype,(P)=>({decimal:T,identifier:`${P}.HYPE`})).with(I.Chain.Spark,(P)=>({decimal:T,identifier:`${P}.BTC`})).with(I.Chain.Tron,(P)=>({decimal:T,identifier:`${P}.TRX`})).with(I.Chain.Solana,I.Chain.Chainflip,I.Chain.Kujira,I.Chain.Ripple,I.Chain.Polkadot,I.Chain.Near,...I.UTXOChains,(P)=>({decimal:T,identifier:`${P}.${P}`})).with(I.Chain.Radix,"XRD.XRD",()=>({decimal:T,identifier:"XRD.XRD"})).with(I.Chain.Polygon,"POL.POL",()=>({decimal:T,identifier:"POL.POL"})).with("KUJI.USK",(P)=>({decimal:6,identifier:P})).with("ETH.FLIP",()=>({decimal:I.getChainConfig(I.Chain.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:I.getChainConfig(I.Chain.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:I.getChainConfig(I.Chain.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(P)=>({decimal:10,identifier:P})).with("MAYA.MAYA",(P)=>({decimal:4,identifier:P})).otherwise(()=>({decimal:T,identifier:A}))};function tN({chain:A,symbol:T}){if(T.includes("/"))return"Synth";if(T.includes("~"))return"Trade";return s.match(A).with(I.Chain.Radix,()=>T===I.Chain.Radix||`${A}.${T}`===uN(A).identifier).with(I.Chain.Arbitrum,I.Chain.Optimism,I.Chain.Base,I.Chain.Aurora,()=>T===I.Chain.Ethereum).with(I.Chain.Cosmos,()=>T==="ATOM").with(I.Chain.BinanceSmartChain,()=>T==="BNB").with(I.Chain.Maya,()=>T==="CACAO").with(I.Chain.Monad,()=>T==="MON").with(I.Chain.THORChain,()=>T==="RUNE").with(I.Chain.Tron,()=>T==="TRX").with(I.Chain.Hyperevm,()=>T==="HYPE").with(I.Chain.Hype,()=>T==="HYPE").with(I.Chain.Spark,()=>T==="BTC").with(I.Chain.XLayer,()=>T==="OKB").otherwise(()=>T===A)?"Native":A}var K=(A)=>{let[T,...H]=A.split("."),P=A.includes("/"),L=H.join("."),R=L?.split("-"),u=R?.length?R.length===1?R[0]:R.slice(0,-1).join("-"):void 0;return{chain:T,symbol:L,synth:P,ticker:u}};function e(A,T){let P=T===I.Chain.Near?A.indexOf("-"):A.lastIndexOf("-");if(P===-1)return{address:void 0,ticker:A};return{address:A.slice(P+1),ticker:A.slice(0,P)}}function oT(A){return`https://storage.googleapis.com/token-list-swapkit-dev/images/${A.toLowerCase()}.png`}async function fT(A){let{loadTokenLists:T}=await Promise.resolve().then(() => (UA(),r)),H=await T(),P=Object.values(H).flatMap((R)=>R.tokens);if("identifier"in A)return P.find((R)=>R.identifier===A.identifier)?.identifier;let L=A.contract.toLowerCase();for(let R of P){let{chain:u,symbol:n}=K(R.identifier);if(u!==A.chain)continue;let{address:B}=e(n,u);if(B?.toLowerCase()===L)return R.identifier}return}var dT={};Q(dT,{validateTNS:()=>hT,validateIdentifier:()=>kN});var qA=["TERRA",...Y.get("chains")];function kN(A=""){let T=A.toUpperCase(),[H]=T.split(".");if(qA.includes(H))return!0;let[P]=T.split("/");if(qA.includes(P))return!0;throw new $({errorKey:"helpers_invalid_identifier",info:{identifier:A,message:`Invalid identifier: ${A}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`}})}function hT(A){if(A.length>30)return!1;let T=/^[a-zA-Z0-9+_-]+$/g;return!!A.match(T)}var iT={};Q(iT,{formatBigIntToSafeValue:()=>m,BigIntArithmetics:()=>k});var nN=require("ts-pattern"),a=8,cT=10;function m({value:A,bigIntDecimal:T=a,decimal:H=a}){if(H===0)return A.toString();let P=A<0n,L=A.toString().substring(P?1:0),R=H-(L.length-1);if(R>0)L="0".repeat(R)+L;let u=L.length-H,n=L.slice(-H);if(Number.parseInt(n[T]||"0",10)>=5){let D=Number.parseInt(n[T-1]||"0",10);n=`${n.substring(0,T-1)}${D+1}`}else n=n.substring(0,T);return`${P?"-":""}${L.slice(0,u)}.${n}`.replace(/\.?0*$/,"")}class k{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(A,T){return new k({decimal:T,value:m({bigIntDecimal:T,decimal:T,value:A})})}static shiftDecimals({value:A,from:T,to:H}){return k.fromBigInt(A.getBaseValue("bigint")*C(H)/C(T),H)}constructor(A){let T=KN(A),H=typeof A==="object";this.decimal=H?A.decimal:void 0,this.decimalMultiplier=H&&"decimalMultiplier"in A?A.decimalMultiplier:C(Math.max(kA(EN(T)),this.decimal||0)),this.#P(T)}set(A){return new this.constructor({decimal:this.decimal,identifier:this.toString?.({includeSynthProtocol:!0}),value:A})}add(...A){return this.#A("add",...A)}sub(...A){return this.#A("sub",...A)}mul(...A){return this.#A("mul",...A)}div(...A){return this.#A("div",...A)}gt(A){return this.#N("gt",A)}gte(A){return this.#N("gte",A)}lt(A){return this.#N("lt",A)}lte(A){return this.#N("lte",A)}eqValue(A){return this.#N("eqValue",A)}getValue(A,T){let H=IN(this.decimalMultiplier),P=T!==void 0?T:this.decimal,L=P!==void 0?P:H;if(P!==void 0&&P<H){if(this.formatBigIntToSafeValue(this.bigIntValue,P)==="0"&&this.bigIntValue!==0n)L=H}let R=this.formatBigIntToSafeValue(this.bigIntValue,L);return nN.match(A).with("number",()=>Number(R)).with("string",()=>R).with("bigint",()=>{return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}).otherwise(()=>R)}getBaseValue(A,T){let H=this.decimalMultiplier/C(T||this.decimal||a),P=rT(this.bigIntValue,H);return nN.match(A).with("number",()=>Number(P)).with("string",()=>P.toString()).otherwise(()=>P)}getBigIntValue(A,T){if(!T&&typeof A==="object")return A.bigIntValue;let H=KN(A),P=EN(H);if(P==="0"||P==="undefined")return 0n;return this.#H(P,T)}toSignificant(A=6){let T=this.getValue("string"),[H="",P=""]=T.split("."),L=Number.parseInt(H,10)>0;if((L?H.length+P.length:P.length)<=A)return T;if(H.length>=A)return H.slice(0,A).padEnd(H.length,"0");if(L)return`${H}.${P.slice(0,A-H.length)}`;let u=Number.parseInt(P,10).toString(),n=u.slice(0,A),B=P.length-u.length;return`0.${n.padStart(B+n.length,"0")}`}toFixed(A=6){let T=this.getValue("string"),H=T.startsWith("-"),[P="0",L=""]=(H?T.slice(1):T).split("."),R=P==="0"&&Number.parseInt(L.slice(0,A),10)===0,u=H&&!R?"-":"";if(A===0){if(P==="0"&&!L)return"0";return L&&Number.parseInt(L[0]||"0",10)>=5?`${u}${BigInt(P)+1n}.0`:`${u}${P}.0`}if(!L)return`${u}${P}.${"0".repeat(A)}`;let n=L[A];if(!(n&&Number.parseInt(n,10)>=5))return`${u}${P}.${L.slice(0,A).padEnd(A,"0")}`;let D=BigInt(L.slice(0,A).padEnd(A,"0"))+1n,t=10n**BigInt(A);if(D>=t)return`${u}${BigInt(P)+1n}.${"0".repeat(A)}`;return`${u}${P}.${D.toString().padStart(A,"0")}`}toAbbreviation(A=2){let T=this.getValue("string"),H=Number(T),P=["","K","M","B","T","Q","Qi","S"],L=Math.floor(Math.log10(Math.abs(H))/3);if(L===0||!P[L])return T;return`${(H/10**(L*3)).toFixed(A)}${P[L]}`}toCurrency(A="$",{currencyPosition:T="start",decimal:H=2,decimalSeparator:P=".",thousandSeparator:L=",",trimTrailingZeros:R=!0}={}){let u=this.toFixed(H),n=T==="end",[B="0",D=""]=u.split("."),t=B.replace(/\B(?=(\d{3})+(?!\d))/g,L),M=D&&Number.parseInt(D,10)>0,W=M?`${t}${P}${D}`:t,V=W.length<100&&R&&M?W.replace(/\.?0*$/,""):W;return n?`${V}${A}`:`${A}${V}`}formatBigIntToSafeValue(A,T){let H=T||this.decimal||a,P=Math.max(H,IN(this.decimalMultiplier));return m({bigIntDecimal:H,decimal:P,value:A})}#A(A,...T){let H=this.#T(this,...T),P=IN(this.decimalMultiplier),R=Math.max(H,P)+cT,u=C(R),n=T.reduce((D,t)=>{let M=this.getBigIntValue(t,R);return nN.match(A).with("add",()=>D+M).with("sub",()=>D-M).with("mul",()=>D*M/u).with("div",()=>{if(M===0n)throw RangeError("Division by zero");return D*u/M}).otherwise(()=>D)},this.bigIntValue*u/this.decimalMultiplier),B=m({bigIntDecimal:R,decimal:R,value:n});return new this.constructor({decimal:this.decimal,decimalMultiplier:C(R),identifier:this.toString(),value:B})}#N(A,...T){let H=this.#T(this,...T),P=this.getBigIntValue(T[0]||"0",H),L=this.getBigIntValue(this,H);return nN.match(A).with("gt",()=>L>P).with("gte",()=>L>=P).with("lt",()=>L<P).with("lte",()=>L<=P).with("eqValue",()=>L===P).otherwise(()=>!1)}#P(A){let T=EN(A)||"0";this.bigIntValue=this.#H(T)}#T(...A){let T=A.map((H)=>{return typeof H==="object"?H.decimal||IN(H.decimalMultiplier):kA(EN(H))}).filter(Boolean);return Math.max(...T,a)}#H(A,T){let H=T?C(T):this.decimalMultiplier,P=IN(H),[L="",R=""]=A.split(".");return BigInt(`${L}${R.padEnd(P,"0")}`)}}var lT=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function EN(A){let H=`${typeof A==="number"?lT.format(A):KN(A)}`.replaceAll(",",".").split(".");return H.length>1?`${H.slice(0,-1).join("")}.${H.at(-1)}`:H[0]||"0"}function kA(A){let T=A.split(".")[1]?.length||0;return Math.max(T,a)}function KN(A){return typeof A==="object"?"getValue"in A?A.getValue("string"):A.value:A}function rT(A,T){if(T===0n)throw Error("Cannot divide by zero");let H=T/2n;return A>=0n&&T>=0n||A<0n&&T<0n?(A+H)/T:(A-H)/T}function C(A){return 10n**BigInt(A)}function IN(A){return Math.log10(Number.parseFloat(A.toString()))}var y=[G.Chain.Hype,G.Chain.Near,G.Chain.Ripple,G.Chain.Solana,G.Chain.Sui,G.Chain.Ton,G.Chain.Tron],pN=[G.Chain.THORChain,G.Chain.Maya],NN=new Map,xN=new Map,AN=new Map,sT=3600000;function eT(A){let T=AN.get(A);if(T?.timestamp&&Date.now()-T.timestamp>sT){AN.delete(A);return}return T}function aT(A,T){if(AN.size>1000){let H=AN.keys().next().value;if(H)AN.delete(H)}AN.set(A,{...T,timestamp:Date.now()})}class z extends k{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:A,decimal:T,tax:H,chain:P,symbol:L,identifier:R}){super(typeof A==="object"?A:{decimal:T,value:A});let u=KA(R||`${P}.${L}`);this.type=tN(u),this.tax=H,this.chain=u.chain,this.ticker=u.ticker,this.symbol=u.symbol,this.address=u.address,this.isSynthetic=u.isSynthetic,this.isTradeAsset=u.isTradeAsset,this.isGasAsset=u.isGasAsset,this.chainId=G.getChainConfig(u.chain).chainId}toString({includeSynthProtocol:A}={}){return(this.isSynthetic||this.isTradeAsset)&&!A?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 A=this.symbol.replace(/\./g,"__");return`${this.chain}.${A}`}getIconUrl(){return NN.get(this.toString())?.logoURI}eqAsset({chain:A,symbol:T}){return this.chain===A&&this.symbol===T}eq(A){return this.eqAsset(A)&&this.eqValue(A)}static fromUrl(A,T=0){let H=A.indexOf(".");if(H===-1)throw new $({errorKey:"helpers_invalid_asset_url",info:{urlAsset:A}});let P=A.slice(0,H),L=A.slice(H+1),R=bN.match({chain:P,rest:L}).when(({rest:u})=>u.includes(".."),({chain:u,rest:n})=>`${u}.${n.replace(/\.\./g,"~")}`).when(({chain:u,rest:n})=>pN.includes(u)&&n.includes("."),({chain:u,rest:n})=>`${u}.${n.replace(/\./g,"/")}`).otherwise(({chain:u,rest:n})=>`${u}.${n.replace(/__/g,".")}`);return z.from({asset:R,value:T})}static from({value:A=0,fromBaseDecimal:T,asyncTokenLookup:H,...P}){let L=A instanceof k?A.getValue("string"):A,R="address"in P&&"chain"in P,u=PH(P);if(u===null&&H&&R){let{chain:RN,address:l}=P;return TH({address:l,chain:RN,fromBaseDecimal:T,parsedValue:L})}let n=R&&!u?`${P.chain}.UNKNOWN-${P.address}`:u,{identifier:B,decimal:D}=uN(n),{chain:t,isSynthetic:M,isTradeAsset:W,address:S}=KA(B),{baseDecimal:V}=G.getChainConfig(t),E=NN.get(y.includes(t)?B:B.toUpperCase());if(!E&&H&&!M&&!W)return(async()=>{let{ticker:RN}=K(B),l=await mA({address:S,chain:t,ticker:RN});return yN({decimal:l.decimals,identifier:l.identifier,value:T?TN(BigInt(L),T):L})})();let x=E?.decimal||D;o({condition:!x&&!H,id:`assetValue_static_decimal_not_found_${t}`,warning:`Couldn't find static decimal for one or more tokens on ${t} (Using default ${V} decimal as fallback).
1
+ var{defineProperty:RN,getOwnPropertyNames:UA,getOwnPropertyDescriptor:$H}=Object,WN=Object.prototype.hasOwnProperty;function jN(A){return this[A]}var _N=(A,H,T)=>{var P=UA(H);for(let L of P)if(!WN.call(A,L)&&L!=="default")RN(A,L,{get:jN.bind(H,L),enumerable:!0});if(T){for(let L of P)if(!WN.call(T,L)&&L!=="default")RN(T,L,{get:jN.bind(H,L),enumerable:!0});return T}};var XA=(A)=>{var H=(DA??=new WeakMap).get(A),T;if(H)return H;if(H=RN({},"__esModule",{value:!0}),A&&typeof A==="object"||typeof A==="function"){for(var P of UA(A))if(!WN.call(H,P))RN(H,P,{get:jN.bind(A,P),enumerable:!(T=$H(A,P))||T.enumerable})}return DA.set(A,H),H},DA;var uH=(A)=>A;function OH(A,H){this[A]=uH.bind(null,H)}var w=(A,H)=>{for(var T in H)RN(A,T,{get:H[T],enumerable:!0,configurable:!0,set:OH.bind(H,T)})};var GH=(A,H)=>()=>(A&&(H=A(A=0)),H);var r={};module.exports=XA(r);var SA=GH(()=>{_N(r,require("@swapkit/tokens"),module.exports)});var aP={};w(aP,{toHexTransactionValue:()=>FP,parseTransactionValue:()=>LP,isTransactionValue:()=>rA,TxnType:()=>hN,TxnStatus:()=>lN,TronTransactionSchema:()=>TA,TransactionSchema:()=>HP,TransactionDTOSchema:()=>TP,TrackingStatus:()=>rN,TrackingRequestSchema:()=>fT,TrackingRequestQuerySchema:()=>oT,TrackerResponseSchema:()=>AA,TokenSchema:()=>pT,TokenDetailsMetadataSchema:()=>dT,TONTransactionSchema:()=>LA,TONTransactionMessageSchema:()=>eA,SwapToResponseSchema:()=>XP,SwapToRequestSchema:()=>UP,SwapToAssetSchema:()=>LH,SwapRouteV2ResponseSchema:()=>GA,SwapKitApi:()=>eP,StarknetTransactionSchema:()=>sA,RouteQuoteWarningSchema:()=>IA,RouteQuoteTxType:()=>ON,RouteQuoteProviderErrorSchema:()=>FH,RouteQuoteMetadataV2Schema:()=>RA,RouteQuoteMetadataSchema:()=>FA,RouteQuoteMetadataAssetSchema:()=>NH,RouteLegWithoutAddressesSchema:()=>OP,RouteLegSchema:()=>aA,QuoteV3ResponseSchema:()=>DP,QuoteV2ResponseSchema:()=>SP,QuoteRouteV2Response:()=>OA,QuoteResponseSchema:()=>BA,QuoteResponseRouteItem:()=>HH,QuoteRequestSchema:()=>hT,ProviderAction:()=>cN,PriorityLabel:()=>dN,PriceResponseSchema:()=>sN,PriceRequestSchema:()=>cT,NearSwapResponseSchema:()=>NA,NearDepositChannelResultSchema:()=>lT,NearDepositChannelParamsSchema:()=>CN,GasSchema:()=>$A,GasResponseSchema:()=>uA,FeesSchema:()=>zN,EstimatedTimeSchema:()=>QN,EVMTransactionSchema:()=>HA,EVMTransactionDetailsSchema:()=>RP,EVMTransactionDetailsParamsSchema:()=>iA,DepositChannelResponseSchema:()=>aN,DepositChannelParamsSchema:()=>eN,CosmosTransactionSchema:()=>PA,CoinGeckoMetadataSchema:()=>iN,ChainflipMetadataSchema:()=>AH,BrokerDepositChannelParamsSchema:()=>lA,AssetValueSchema:()=>h,ApproveResponseSchema:()=>_P,ApproveRequestParams:()=>nP,ApprovalTransactionSchema:()=>TH,ApiV2ErrorSchema:()=>CT});module.exports=XA(aP);var d=require("@swapkit/types");var $T={};w($T,{getMinAmountByChain:()=>TT,AssetValue:()=>Q});var M=require("@swapkit/types"),yN=require("ethers"),wN=require("ts-pattern");var cH={};w(cH,{parseSymbolForAddress:()=>e,isGasAsset:()=>kN,getTokenLogoURI:()=>dH,getCommonAssetInfo:()=>IN,getAssetType:()=>tN,findAssetBy:()=>hH,fetchTokenInfo:()=>qN,assetFromString:()=>K,CommonAssetStrings:()=>kH});var B=require("@swapkit/types"),s=require("ts-pattern");var wH={};w(wH,{RequestClient:()=>O});var gH={};w(gH,{swapKitConfigStore:()=>z,SKConfig:()=>D});var S=require("@swapkit/types"),wA=require("zustand/vanilla");var nH={};w(nH,{WarningCodeEnum:()=>gN,WalletOption:()=>UN,ProviderName:()=>x,NetworkDerivationPath:()=>MH,MemoType:()=>bA,LedgerErrorCode:()=>xA,FeeTypeEnum:()=>DN,FeeOption:()=>EA,ErrorCode:()=>i,ApproveMode:()=>tA});var YN=require("@swapkit/types"),MH=YN.AllChains.reduce((A,H)=>{return A[H]=YN.getChainConfig(H).networkDerivationPath,A},{});var i;((F)=>{F.unknownError="unknownError";F.test_error="test_error";F.providerDetailsError="providerDetailsError";F.blockHeaderNotFound="blockHeaderNotFound";F.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";F.blockHashNotFoundAtHash="blockHashNotFoundAtHash";F.txHashMissing="txHashMissing";F.assetValueMissingInfo="assetValueMissingInfo";F.invalidAsset="invalidAsset";F.blockIsRequired="blockIsRequired";F.currentBlockHeaderNotFound="currentBlockHeaderNotFound";F.failedToRetrieveBalance="failedToRetrieveBalance";F.failedToRetrieveBlock="failedToRetrieveBlock";F.failedToRetrieveFees="failedToRetrieveFees";F.notImplementedBCH="notImplementedBCH";F.notImplementedDoge="notImplementedDoge";F.noPoolsFound="noPoolsFound";F.noVaultsFound="noVaultsFound";F.noTxFound="noTxFound";F.noInputCoinFound="noInputCoinFound";F.noBlockDataFound="noBlockDataFound";F.multipleCosmosMessages="multipleCosmosMessages";F.heightOrHashNotProvided="heightOrHashNotProvided";F.unknownDenom="unknownDenom";F.invalidBlockHeight="invalidBlockHeight";F.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";F.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";F.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";F.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";F.txMemoUndefined="txMemoUndefined";F.txMemoIncorrect="txMemoIncorrect";F.txTypeNotFound="txTypeNotFound";F.txNoMessage="txNoMessage";F.txNotFound="txNotFound";F.txReceiptNotFound="txReceiptNotFound";F.txParsingError="txParsingError";F.txLogsParsingError="txLogsParsingError";F.blockNotFound="blockNotFound";F.balanceNotFound="balanceNotFound";F.configError="configError";F.synthSwapDisallowed="synthSwapDisallowed";F.providerQuoteTimeout="providerQuoteTimeout";F.noQuoteResponse="noQuoteResponse";F.noPoolAssetsFound="noPoolAssetsFound";F.noThorchainPools="noThorchainPools";F.noMayachainPools="noMayachainPools";F.noThorchainNetworkInfo="noThorchainNetworkInfo";F.invalidAffiliateFee="invalidAffiliateFee";F.invalidBuyAssetAddress="invalidBuyAssetAddress";F.invalidSellAssetAddress="invalidSellAssetAddress";F.invalidSourceAddress="invalidSourceAddress";F.invalidDestinationAddress="invalidDestinationAddress";F.sourceAddressIsSmartContract="sourceAddressIsSmartContract";F.destinationAddressIsSmartContract="destinationAddressIsSmartContract";F.invalidChainId="invalidChainId";F.unsupportedChainId="unsupportedChainId";F.unsupportedEVMChainId="unsupportedEVMChainId";F.unsupportedMethod="unsupportedMethod";F.unsupportedProvider="unsupportedProvider";F.invalidParamsForMethod="invalidParamsForMethod";F.unsupportedAdapter="unsupportedAdapter";F.noWhitelistTokens="noWhitelistTokens";F.failedFetchGasPrice="failedFetchGasPrice";F.failedToCreateDepositChannel="failedToCreateDepositChannel";F.noProviderDetailsFound="noProviderDetailsFound";F.noTokenListsFound="noTokenListsFound";F.tokenNotFound="tokenNotFound";F.tokenPriceNotFound="tokenPriceNotFound";F.tokenPriceFailedToUpdate="tokenPriceFailedToUpdate";F.swapAmountTooSmall="swapAmountTooSmall";F.legsArrayIsEmpty="legsArrayIsEmpty";F.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";F.noBlockHeaderFound="noBlockHeaderFound";F.failedToSimulateSwap="failedToSimulateSwap";F.addressScreeningFailed="addressScreeningFailed";F.noLiquidtyProvidersFound="noLiquidtyProvidersFound";F.insufficientLiquidity="insufficientLiquidity";F.noInboundDataFound="noInbounDataFound";F.noInboundAddressesFound="noInboundAddressesFound";F.noInboundAddressFoundForChain="noInboundAddressFoundForChain";F.noLastBlocksFound="noLastBlocksFound";F.noVersionFound="noVersionFound";F.noConstantsFound="noConstantsFound";F.noMimirsFound="noMimirsFound";F.noRoutesFound="noRoutesFound";F.quoteNotFound="quoteNotFound";F.ledgerSignFailed="ledgerSignFailed";F.ledgerWrongPayload="ledgerWrongPayload";F.ledgerFetchSwapFailed="ledgerFetchSwapFailed";F.failedToFetchTx="failedToFetchTx";F.failedBuildTransactionDetails="failedBuildTransactionDetails";F.noLegsForRoute="noLegsForRoute";F.noRouterAddressFound="noRouterAddressFound";F.noAggregatorAddressFound="noAggregatorAddressFound";F.noContractInstanceFound="noContractInstanceFound";F.noContractAddressFound="noContractAddressFound";F.invalidAffiliate="invalidAffiliate";F.thornameAffiliate="thornameAffiliate";F.providerNotfound="No provider found";F.noRecordFound="No Record found";F.slippageTooLow="Slippage too low";F.tradingHalted="tradingHalted";F.noWrappedGasAsset="noWrappedGasAsset";F.aggregatorAddressNotFound="aggregatorAddressNotFound";F.routerAddressNotFound="routerAddressNotFound";F.dummyAddressNotFound="dummyAddressNotFound";F.trackerError="trackerError";F.thorchainPoolUnavailable="thorchainPoolUnavailable";F.noOhlcvDataFound="noOhlcvDataFound";F.noTradingPairs="noTradingPairs";F.noLendingAvailability="noLendingAvailability";F.lendingRepayTooSmall="lendingRepayTooSmall";F.missingState="missingState";F.ledgerSwapNotFound="ledgerSwapNotFound";F.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";F.errorEstimatingGas="errorEstimatingGas";F.apiKeyInvalid="apiKeyInvalid";F.apiKeyFailedToUpdate="apiKeyFailedToUpdate";F.apiKeyExpired="apiKeyExpired";F.unauthorized="unauthorized";F.failedToCreateMemo="failedToCreateMemo";F.radixIncorrectInstructions="radixIncorrectInstructions";F.radixTxMissedParam="radixTxMissedParam";F.radixTxMissedAccount="radixTxMissedAccount";F.radixManifestParseError="radixManifestParseError";F.radixManifestBuildError="radixManifestBuildError";F.invalidAddressForChain="invalidAddressForChain";F.riskyAddress="riskyAddress";F.noRoutesToProcess="noRoutesToProcess";F.sellAssetAmountTooSmall="sellAssetAmountTooSmall";F.missingPrivateKey="missingPrivateKey";F.noMemoPriceProtection="noMemoPriceProtection"})(i||={});var gN;((T)=>{T.highSlippage="highSlippage";T.highPriceImpact="highPriceImpact"})(gN||={});var x;((X)=>{X.CHAINFLIP="CHAINFLIP";X.CHAINFLIP_STREAMING="CHAINFLIP_STREAMING";X.JUPITER="JUPITER";X.MAYACHAIN="MAYACHAIN";X.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";X.ONEINCH="ONEINCH";X.PANCAKESWAP="PANCAKESWAP";X.SUSHISWAP_V2="SUSHISWAP_V2";X.THORCHAIN="THORCHAIN";X.THORCHAIN_STREAMING="THORCHAIN_STREAMING";X.TRADERJOE_V2="TRADERJOE_V2";X.UNISWAP_V2="UNISWAP_V2";X.UNISWAP_V3="UNISWAP_V3";X.NEAR="NEAR";X.GARDEN="GARDEN";X.OKX="OKX";X.HARBOR="HARBOR";X.FLASHNET="FLASHNET";X.MAYAN="MAYAN"})(x||={});var DN;((u)=>{u.LIQUIDITY="liquidity";u.NETWORK="network";u.INBOUND="inbound";u.OUTBOUND="outbound";u.AFFILIATE="affiliate";u.TAX="tax";u.PRIORITY="priority";u.SERVICE="service"})(DN||={});var EA;((P)=>{P.Average="average";P.Fast="fast";P.Fastest="fastest"})(EA||={});var tA;((T)=>{T.Approve="approve";T.CheckOnly="checkOnly"})(tA||={});var bA;((n)=>{n.NAME_REGISTER="~";n.BOND="BOND";n.DEPOSIT="+";n.LEAVE="LEAVE";n.UNBOND="UNBOND";n.WITHDRAW="-";n.RUNEPOOL_DEPOSIT="POOL+";n.RUNEPOOL_WITHDRAW="POOL-";n.CLAIM_TCY="tcy";n.STAKE_TCY="tcy+";n.UNSTAKE_TCY="tcy-"})(bA||={});var UN;((_)=>{_.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";_.PASSKEYS="PASSKEYS";_.PASSKEY_WALLET="PASSKEY_WALLET";_.PETRA="PETRA";_.PHANTOM="PHANTOM";_.POLKADOT_JS="POLKADOT_JS";_.RADIX_WALLET="RADIX_WALLET";_.TALISMAN="TALISMAN";_.TREZOR="TREZOR";_.TRONLINK="TRONLINK";_.TRUSTWALLET_WEB="TRUSTWALLET_WEB";_.VULTISIG="VULTISIG";_.WALLETCONNECT="WALLETCONNECT";_.WALLET_SELECTOR="WALLET_SELECTOR";_.XAMAN="XAMAN"})(UN||={});var xA;((P)=>{P[P.NoError=36864]="NoError";P[P.LockedDevice=21781]="LockedDevice";P[P.TC_NotFound=65535]="TC_NotFound"})(xA||={});var _H=S.AllChains.reduce((A,H)=>{if(!A.THOR_STAGENET)A[S.StagenetChain.Maya]=S.StagenetMAYAConfig.rpcUrls,A[S.StagenetChain.THORChain]=S.StagenetTHORConfig.rpcUrls;return A[H]=S.getChainConfig(H).rpcUrls,A},{}),YH={[S.Chain.THORChain]:S.THORConfig.nodeUrl,[S.Chain.Maya]:S.MAYAConfig.nodeUrl,[S.StagenetChain.THORChain]:S.StagenetTHORConfig.nodeUrl,[S.StagenetChain.Maya]:S.StagenetMAYAConfig.nodeUrl},zA={apiKeys:{blockchair:"",keepKey:"",passkeys:"",swapKit:"",walletConnectProjectId:"",xaman:""},chains:S.AllChains,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:_H,thornodeUrls:YH,v3SwapFlow:{enabled:typeof process<"u"&&process.env?.SWAPKIT_V3_SWAP_FLOW==="true"},wallets:Object.values(UN),widgetId:"",widgetKey:""},z=wA.createStore((A)=>({...zA,setApiKey:(H,T)=>A((P)=>({apiKeys:{...P.apiKeys,[H]:T}})),setConfig:(H)=>A((T)=>({apiKeys:{...T.apiKeys,...H?.apiKeys},chains:T.chains.concat(H?.chains||[]),endpoints:{...T.endpoints,...H?.endpoints},envs:{...T.envs,...H?.envs},feeMultipliers:H?.feeMultipliers||T.feeMultipliers,integrations:{...T.integrations,...H?.integrations},localMode:{...T.localMode,...H?.localMode},rpcUrls:{...T.rpcUrls,...H?.rpcUrls},thornodeUrls:{...T.thornodeUrls,...H?.thornodeUrls},v3SwapFlow:{...T.v3SwapFlow,...H?.v3SwapFlow},wallets:T.wallets.concat(H?.wallets||[]),widgetId:H?.widgetId||T.widgetId,widgetKey:H?.widgetKey||T.widgetKey})),setEndpoint:(H,T)=>A((P)=>({endpoints:{...P.endpoints,[H]:T}})),setEnv:(H,T)=>A((P)=>({envs:{...P.envs,[H]:T}})),setFeeMultipliers:(H)=>A(()=>({feeMultipliers:H})),setIntegrationConfig:(H,T)=>A((P)=>({integrations:{...P.integrations,[H]:T}})),setRequestOptions:(H)=>A((T)=>({requestOptions:{retry:{...T.requestOptions.retry,...H.retry},timeoutMs:H.timeoutMs||T.requestOptions.timeoutMs}})),setRpcUrl:(H,T)=>A((P)=>({rpcUrls:{...P.rpcUrls,[H]:T}})),setThornodeUrl:(H,T)=>A((P)=>({thornodeUrls:{...P.thornodeUrls,[H]:T}})),setWidgetId:(H)=>A({widgetId:H}),setWidgetKey:(H)=>A({widgetKey:H})})),D={get:(A)=>z.getState()[A],getState:z.getState,reinitialize:()=>z.setState(zA),set:(A)=>z.getState().setConfig(A),setApiKey:(A,H)=>z.getState().setApiKey(A,H),setEndpoint:(A,H)=>z.getState().setEndpoint(A,H),setEnv:(A,H)=>z.getState().setEnv(A,H),setFeeMultipliers:(A)=>z.getState().setFeeMultipliers(A),setIntegrationConfig:(A,H)=>z.getState().setIntegrationConfig(A,H),setRequestOptions:(A)=>z.getState().setRequestOptions(A),setRpcUrl:(A,H)=>z.getState().setRpcUrl(A,H),setThornodeUrl:(A,H)=>z.getState().setThornodeUrl(A,H),setWidgetId:(A)=>z.getState().setWidgetId(A),setWidgetKey:(A)=>z.getState().setWidgetKey(A)};var UH={};w(UH,{SwapKitError:()=>G});var DH={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_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_not_supported:59901,toolbox_fee_estimation_failed:59902,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,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 VN(A){return JSON.stringify(A,(H,T)=>typeof T==="bigint"?T.toString():T)}class G extends Error{static ErrorCode=DH;errorKey;info;constructor(A,H){let T=typeof A==="string",P=T?A:A.errorKey,L=T?void 0:A.info,R=`${P}${L?`: ${VN(L)}`:""}`;super(R);if(Object.setPrototypeOf(this,G.prototype),this.name="SwapKitError",this.errorKey=P,this.info=L,this.cause=H,H){let I=H instanceof Error?`${H.message}${H.cause?` (${H.cause})`:""}`:VN(H);console.error(`SwapKitError [${P}]: ${I}`)}else if(L)console.error(`SwapKitError [${P}]: ${VN(L)}`)}}var XH=(A)=>new Promise((H)=>setTimeout(H,A)),SH=(A,{baseDelay:H,backoffMultiplier:T,maxDelay:P})=>Math.min(H*T**A,P);function EH(A,H){if(A instanceof Error&&A.name==="AbortError")return!0;if(A instanceof TypeError)return!0;if(H===429)return!0;if(H&&H>=500&&H<600)return!0;return!1}var tH=async(A,H)=>{let T=await fetch(A,H),P;try{P=await T.json()}catch{if(!T.ok)throw new G({errorKey:"helpers_invalid_response",info:{status:T.status,statusText:T.statusText}},{status:T.status,statusText:T.statusText});return{}}if(!T.ok){let R={data:P?.data,error:P?.error,message:P?.message,status:T.status};throw new G({errorKey:P?.error||"helpers_invalid_response",info:R},R)}let L=P?.routes?.length||P?.result||P?.data&&!P?.error;if(P?.error&&!L){let R={data:P.data,error:P.error,message:P.message,status:T.status};throw new G({errorKey:P.error,info:R},R)}if(P?.providerErrors?.length||P?.error&&L)console.warn("[SwapKit] Partial errors in response:",P.providerErrors||P.error);return P};function XN(A,H={}){return async function(P,L={}){let{searchParams:R,json:I,body:$,headers:u,dynamicHeader:g,retry:E,timeoutMs:n,abortController:W,onError:U,onSuccess:V,responseHandler:t,...b}={...H,...L},LN=D.get("requestOptions"),c={...LN.retry,...E},X=!!I||P.endsWith(".json"),MN=xH(P,R),_A=g?await g():{},FN=bH(X,{...u,..._A}),l=X?JSON.stringify(I):$,ZN;for(let nN=0;nN<=c.maxRetries;nN++){let YA=W||new AbortController,gA=setTimeout(()=>YA.abort(),n||LN.timeoutMs);try{let q=await tH(MN,{...b,body:l,headers:FN,method:A,signal:YA.signal});return clearTimeout(gA),V?.(q)||t?.(q)||q}catch(q){clearTimeout(gA),ZN=q;let BH=q?.cause?.status;if(nN>=c.maxRetries||!EH(q,BH))return U?U(q):Promise.reject(q);await XH(SH(nN,c))}}return U?U(ZN):Promise.reject(ZN)}}function bH(A,H){return{...H,...A&&{"Content-Type":"application/json"}}}function xH(A,H){let T=new URL(A);if(H)T.search=new URLSearchParams(H).toString();return T.toString()}var O={extend:(A)=>({extend:(H)=>O.extend({...A,...H}),get:XN("GET",A),post:XN("POST",A)}),get:XN("GET"),post:XN("POST")};var qH={};w(qH,{initializeRPCUrlsWithFallback:()=>vH,getRPCUrlSync:()=>WA,getRPCUrl:()=>o,_rpcCache:()=>EN});var Y=require("@swapkit/types"),vN=require("ts-pattern");var WH={};w(WH,{wrapWithThrow:()=>JH,warnOnce:()=>f,getTHORNameCost:()=>zH,getMAYANameCost:()=>QH,getChainIdentifier:()=>ZH});var SN=require("@swapkit/types");function zH(A){if(A<0)throw new G({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:A}});return 10+A}function QH(A){if(A<0)throw new G({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:A}});return Math.round((10+A*1.0512)*10000000000)/10000000000}function JH(A,H){try{return A()}catch(T){if(H)throw new G(H,T);return}}function ZH(A){switch(A){case SN.Chain.THORChain:return`${A}.RUNE`;case SN.Chain.Cosmos:return`${A}.ATOM`;case SN.Chain.BinanceSmartChain:return`${A}`;default:return`${A}.${A}`}}var QA=new Set;function f({condition:A,id:H,warning:T}){if(A){if(QA.has(H))return;console.warn(T),QA.add(H)}}function jH(A){return vN.match(A).with(...Y.EVMChains,()=>({id:1,jsonrpc:"2.0",method:"eth_blockNumber",params:[]})).with(...Y.UTXOChains,()=>({id:"test",jsonrpc:"1.0",method:"getblockchaininfo",params:[]})).with(...Y.CosmosChains,...Y.StagenetChains,()=>({id:1,jsonrpc:"2.0",method:"status",params:{}})).with(Y.Chain.Polkadot,Y.Chain.Chainflip,()=>({id:1,jsonrpc:"2.0",method:"system_health",params:[]})).with(Y.Chain.Solana,()=>({id:1,jsonrpc:"2.0",method:"getHealth"})).with(Y.Chain.Sui,()=>({id:1,jsonrpc:"2.0",method:"sui_getSystemState",params:[]})).with(Y.Chain.Ton,()=>({id:1,jsonrpc:"2.0",method:"getAddressInformation",params:{address:""}})).with(Y.Chain.Aptos,Y.Chain.Tron,Y.Chain.Radix,Y.Chain.Stellar,()=>"").with(Y.Chain.Hype,()=>({type:"meta"})).with(Y.Chain.Near,()=>({id:"dontcare",jsonrpc:"2.0",method:"status",params:[]})).with(Y.Chain.Ripple,()=>({id:1,jsonrpc:"2.0",method:"ping",params:[{}]})).with(Y.Chain.Starknet,()=>({id:1,jsonrpc:"2.0",method:"starknet_chainId",params:[]})).otherwise(()=>{throw new G("helpers_chain_not_supported",{chain:A})})}function JA(A){return vN.match(A).with(Y.Chain.Aptos,()=>"/-/healthy").with(Y.Chain.Hype,()=>"/info").with(Y.Chain.Radix,()=>"/status/network-configuration").with(Y.Chain.Stellar,()=>"").with(Y.Chain.Tron,()=>"/wallet/getnowblock").otherwise(()=>"")}async function ZA(A,H){try{let T=H.startsWith("wss")?H.replace("wss","https"):H;if(A===Y.Chain.Stellar)return(await fetch(`${T}${JA(A)}`,{cache:"no-store",method:"GET",signal:AbortSignal.timeout(3000)})).ok;return(await fetch(`${T}${JA(A)}`,{body:JSON.stringify(jH(A)),cache:"no-store",headers:{"Content-Type":"application/json"},method:"POST",signal:AbortSignal.timeout(3000)})).ok}catch{return!1}}var EN=new Map,VH=120000;function WA(A){let[H=""]=D.get("rpcUrls")[A];if(!H)throw f({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 ${A}.`}),new G("helpers_chain_no_public_or_set_rpc_url",{chain:A});let T=EN.get(A);if(T&&Date.now()-T.timestamp<VH)return T.url;return EN.set(A,{timestamp:Date.now(),url:H}),H}async function o(A){let H=WA(A),[,...T]=D.get("rpcUrls")[A];if(await ZA(A,H))return H;for(let L of T)if(await ZA(A,L))return EN.set(A,{timestamp:Date.now(),url:L}),L;throw new G("helpers_chain_rpc_connection_failed",{chain:A,fallbackUrls:T,primaryRpcUrl:H})}function vH(A){f({condition:!0,id:"initializeRPCUrlsWithFallback",warning:"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints."})}var kH=[`${B.Chain.Maya}.MAYA`,`${B.Chain.Maya}.CACAO`,`${B.Chain.Ethereum}.THOR`,`${B.Chain.Ethereum}.vTHOR`,`${B.Chain.Kujira}.USK`,`${B.Chain.Ethereum}.FLIP`,`${B.Chain.Radix}.XRD`],vA=[B.Chain.Arbitrum,B.Chain.Aurora,B.Chain.Base,B.Chain.Ethereum,B.Chain.Optimism];async function KH(A){let{baseDecimal:H}=B.getChainConfig(B.Chain.Radix);try{let T=await o(B.Chain.Radix),{manager:P}=await O.post(`${T}/state/resource`,{body:JSON.stringify({network:"mainnet",resource_address:A}),headers:{Accept:"*/*","Content-Type":"application/json"}});return P?.divisibility?.value?.divisibility}catch(T){let P=T instanceof Error?T.message:String(T);return console.warn(`Failed to fetch Radix asset decimals for ${A}: ${P}`),H}}async function mH(A){try{let H=await o(B.Chain.Radix);return(await O.post(`${H}/state/entity/details`,{body:JSON.stringify({addresses:[A],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(H){let T=H instanceof Error?H.message:String(H);return console.warn(`Failed to fetch Radix asset symbol for ${A}: ${T}`),""}}async function qA({chain:A,address:H,methodHex:T,id:P}){let L=await o(A);return O.post(L,{body:JSON.stringify({id:P,jsonrpc:"2.0",method:"eth_call",params:[{data:T,to:H.toLowerCase()},"latest"]}),headers:{accept:"*/*","cache-control":"no-cache","content-type":"application/json"}})}async function yH(A){if(!A||A==="0x")return"UNKNOWN";try{let{AbiCoder:H}=await import("ethers");return H.defaultAbiCoder().decode(["string"],A)[0].trim()}catch(H){return console.warn(`Failed to decode ABI string from ${A}: ${H}`),"UNKNOWN"}}function pH(A,H){if(!A||A==="0x")return H;try{return Number(A)}catch(T){return console.warn(`Failed to decode ABI uint8 from ${A}: ${T}`),H}}async function fH({chain:A,address:H}){let{baseDecimal:T}=B.getChainConfig(A),P=H.toLowerCase();if(H===""||!P.startsWith("0x"))return T;let L=await qA({address:H,chain:A,id:2,methodHex:"0x313ce567"}).catch((I)=>{return console.warn(`Could not fetch decimals for ${H} on ${A}: ${I.message}`),{result:""}});return pH(L.result,T)}async function oH({chain:A,address:H}){let T=H.toLowerCase();if(T===""||!T.startsWith("0x"))return;let P=await qA({address:H,chain:A,id:1,methodHex:"0x95d89b41"}).catch((R)=>{return console.warn(`Could not fetch symbol for ${H} on ${A}: ${R.message}`),{result:""}});return await yH(P.result)}async function jA({rpcUrl:A,contractAddress:H,functionSelector:T}){return(await O.post(`${A}/wallet/triggerconstantcontract`,{body:JSON.stringify({contract_address:H,function_selector:T,owner_address:H,parameter:"",visible:!0}),headers:{accept:"application/json","content-type":"application/json"}}).catch(()=>{return}))?.constant_result?.[0]}function VA(A){let H=A.match(/.{2}/g)?.map((T)=>Number.parseInt(T,16))??[];return new TextDecoder().decode(new Uint8Array(H))}function CH(A){return s.match(A).with(void 0,()=>{return}).when((H)=>H.length>=128,(H)=>{let T=Number.parseInt(H.slice(64,128),16);return VA(H.slice(128,128+T*2))}).when((H)=>H.length===64,(H)=>{let T=H.replace(/0+$/,"");if(T.length>0&&T.length%2===0)return VA(T);return}).otherwise(()=>{return})}function qN({chain:A,address:H}){let{baseDecimal:T}=B.getChainConfig(A),P={decimals:T,ticker:void 0};return s.match(A).with(...B.EVMChains,async()=>{try{let{isAddress:L,getAddress:R}=await import("ethers");if(!L(R(H.replace(/^0X/,"0x"))))return P;let[I,$]=await Promise.all([oH({address:H,chain:A}),fH({address:H,chain:A})]);return{decimals:$,ticker:I}}catch(L){return console.warn(`Failed to fetch token info for ${H} on ${A}: ${L?.code} ${L?.message}`),P}}).with(B.Chain.Solana,async()=>{if(!H)return P;try{let L=await fetch(`https://lite-api.jup.ag/tokens/v2/search?query=${H}`);if(L.ok){let R=await L.json(),I=Array.isArray(R)?R[0]:R;if(I)return{decimals:I.decimals??T,ticker:I.symbol||void 0}}}catch(L){console.warn(`Failed to fetch Solana token info for ${H}: ${L?.code} ${L?.message}`)}return P}).with(B.Chain.Tron,async()=>{if(!H)return P;try{let L=await o(B.Chain.Tron),[R,I]=await Promise.all([jA({contractAddress:H,functionSelector:"symbol()",rpcUrl:L}),jA({contractAddress:H,functionSelector:"decimals()",rpcUrl:L})]),$=CH(R);return{decimals:R!==void 0&&I?Number(BigInt(`0x${I}`)):T,ticker:$}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Tron token info for ${H}: ${R}`),P}}).with(B.Chain.Near,async()=>{if(!H)return P;try{let{JsonRpcProvider:L}=await import("@near-js/providers"),R=await o(B.Chain.Near),$=await new L({url:R}).query({account_id:H,args_base64:Buffer.from("{}").toString("base64"),finality:"final",method_name:"ft_metadata",request_type:"call_function"}),u=JSON.parse(Buffer.from($.result).toString());return{decimals:u?.decimals||T,ticker:u?.symbol}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Near token info for ${H}: ${R}`),P}}).with(B.Chain.Radix,async()=>{if(!H)return P;try{let[L,R]=await Promise.all([mH(H),KH(H)]);return{decimals:R,ticker:L}}catch(L){let R=L instanceof Error?L.message:String(L);return console.warn(`Failed to fetch Radix token info for ${H}: ${R}`),P}}).otherwise(async()=>P)}function kN({chain:A,symbol:H}){return s.match(A).with(...vA,()=>H==="ETH").with(B.Chain.Avalanche,()=>H==="AVAX").with(B.Chain.Berachain,()=>H==="BERA").with(B.Chain.Hyperevm,()=>H==="HYPE").with(B.Chain.Hype,()=>H==="HYPE").with(B.Chain.Spark,()=>H==="BTC").with(B.Chain.BinanceSmartChain,()=>H==="BNB").with(B.Chain.Gnosis,()=>H==="xDAI"||H==="XDAI").with(B.Chain.Monad,()=>H==="MON").with(B.Chain.XLayer,()=>H==="OKB").with(B.Chain.Maya,()=>H==="CACAO").with(B.Chain.Cosmos,()=>H==="ATOM").with(B.Chain.THORChain,()=>H==="RUNE").with(B.Chain.Tron,()=>H==="TRX").with(B.Chain.Ripple,()=>H==="XRP").with(B.Chain.Radix,()=>`${A}.${H}`===IN(A).identifier).otherwise(()=>H===A)}var IN=(A)=>{let{baseDecimal:H}=B.getChainConfig(A);return s.match(A.toUpperCase()).with(...vA,(P)=>({decimal:H,identifier:`${P}.ETH`})).with(B.Chain.THORChain,(P)=>({decimal:H,identifier:`${P}.RUNE`})).with(B.Chain.Cosmos,(P)=>({decimal:H,identifier:`${P}.ATOM`})).with(B.Chain.Maya,(P)=>({decimal:10,identifier:`${P}.CACAO`})).with(B.Chain.BinanceSmartChain,(P)=>({decimal:H,identifier:`${P}.BNB`})).with(B.Chain.Monad,(P)=>({decimal:H,identifier:`${P}.MON`})).with(B.Chain.Avalanche,(P)=>({decimal:H,identifier:`${P}.AVAX`})).with(B.Chain.Gnosis,(P)=>({decimal:H,identifier:`${P}.xDAI`})).with(B.Chain.XLayer,(P)=>({decimal:H,identifier:`${P}.OKB`})).with(B.Chain.Berachain,(P)=>({decimal:H,identifier:`${P}.BERA`})).with(B.Chain.Hyperevm,(P)=>({decimal:H,identifier:`${P}.HYPE`})).with(B.Chain.Hype,(P)=>({decimal:H,identifier:`${P}.HYPE`})).with(B.Chain.Spark,(P)=>({decimal:H,identifier:`${P}.BTC`})).with(B.Chain.Tron,(P)=>({decimal:H,identifier:`${P}.TRX`})).with(B.Chain.Solana,B.Chain.Chainflip,B.Chain.Kujira,B.Chain.Ripple,B.Chain.Polkadot,B.Chain.Near,...B.UTXOChains,(P)=>({decimal:H,identifier:`${P}.${P}`})).with(B.Chain.Radix,"XRD.XRD",()=>({decimal:H,identifier:"XRD.XRD"})).with(B.Chain.Polygon,"POL.POL",()=>({decimal:H,identifier:"POL.POL"})).with("KUJI.USK",(P)=>({decimal:6,identifier:P})).with("ETH.FLIP",()=>({decimal:B.getChainConfig(B.Chain.Ethereum).baseDecimal,identifier:"ETH.FLIP-0x826180541412D574cf1336d22c0C0a287822678A"})).with("ETH.THOR",()=>({decimal:B.getChainConfig(B.Chain.Ethereum).baseDecimal,identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044"})).with("ETH.vTHOR",()=>({decimal:B.getChainConfig(B.Chain.Ethereum).baseDecimal,identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d"})).with("MAYA.CACAO",(P)=>({decimal:10,identifier:P})).with("MAYA.MAYA",(P)=>({decimal:4,identifier:P})).otherwise(()=>({decimal:H,identifier:A}))};function tN({chain:A,symbol:H}){if(H.includes("/"))return"Synth";if(H.includes("~"))return"Trade";return s.match(A).with(B.Chain.Radix,()=>H===B.Chain.Radix||`${A}.${H}`===IN(A).identifier).with(B.Chain.Arbitrum,B.Chain.Optimism,B.Chain.Base,B.Chain.Aurora,()=>H===B.Chain.Ethereum).with(B.Chain.Cosmos,()=>H==="ATOM").with(B.Chain.BinanceSmartChain,()=>H==="BNB").with(B.Chain.Maya,()=>H==="CACAO").with(B.Chain.Monad,()=>H==="MON").with(B.Chain.THORChain,()=>H==="RUNE").with(B.Chain.Tron,()=>H==="TRX").with(B.Chain.Hyperevm,()=>H==="HYPE").with(B.Chain.Hype,()=>H==="HYPE").with(B.Chain.Spark,()=>H==="BTC").with(B.Chain.XLayer,()=>H==="OKB").otherwise(()=>H===A)?"Native":A}var K=(A)=>{let[H,...T]=A.split("."),P=A.includes("/"),L=T.join("."),R=L?.split("-"),I=R?.length?R.length===1?R[0]:R.slice(0,-1).join("-"):void 0;return{chain:H,symbol:L,synth:P,ticker:I}};function e(A,H){let P=H===B.Chain.Near?A.indexOf("-"):A.lastIndexOf("-");if(P===-1)return{address:void 0,ticker:A};return{address:A.slice(P+1),ticker:A.slice(0,P)}}function dH(A){return`https://storage.googleapis.com/token-list-swapkit-dev/images/${A.toLowerCase()}.png`}async function hH(A){let{loadTokenLists:H}=await Promise.resolve().then(() => (SA(),r)),T=await H(),P=Object.values(T).flatMap((R)=>R.tokens);if("identifier"in A)return P.find((R)=>R.identifier===A.identifier)?.identifier;let L=A.contract.toLowerCase();for(let R of P){let{chain:I,symbol:$}=K(R.identifier);if(I!==A.chain)continue;let{address:u}=e($,I);if(u?.toLowerCase()===L)return R.identifier}return}var rH={};w(rH,{validateTNS:()=>lH,validateIdentifier:()=>KN});var kA=["TERRA",...D.get("chains")];function KN(A=""){let H=A.toUpperCase(),[T]=H.split(".");if(kA.includes(T))return!0;let[P]=H.split("/");if(kA.includes(P))return!0;throw new G({errorKey:"helpers_invalid_identifier",info:{identifier:A,message:`Invalid identifier: ${A}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`}})}function lH(A){if(A.length>30)return!1;let H=/^[a-zA-Z0-9+_-]+$/g;return!!A.match(H)}var aH={};w(aH,{formatBigIntToSafeValue:()=>m,BigIntArithmetics:()=>k});var $N=require("ts-pattern"),a=8,iH=10;function m({value:A,bigIntDecimal:H=a,decimal:T=a}){if(T===0)return A.toString();let P=A<0n,L=A.toString().substring(P?1:0),R=T-(L.length-1);if(R>0)L="0".repeat(R)+L;let I=L.length-T,$=L.slice(-T);if(Number.parseInt($[H]||"0",10)>=5){let g=Number.parseInt($[H-1]||"0",10);$=`${$.substring(0,H-1)}${g+1}`}else $=$.substring(0,H);return`${P?"-":""}${L.slice(0,I)}.${$}`.replace(/\.?0*$/,"")}class k{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(A,H){return new k({decimal:H,value:m({bigIntDecimal:H,decimal:H,value:A})})}static shiftDecimals({value:A,from:H,to:T}){return k.fromBigInt(A.getBaseValue("bigint")*C(T)/C(H),T)}constructor(A){let H=mN(A),T=typeof A==="object";this.decimal=T?A.decimal:void 0,this.decimalMultiplier=T&&"decimalMultiplier"in A?A.decimalMultiplier:C(Math.max(KA(bN(H)),this.decimal||0)),this.#P(H)}set(A){return new this.constructor({decimal:this.decimal,identifier:this.toString?.({includeSynthProtocol:!0}),value:A})}add(...A){return this.#A("add",...A)}sub(...A){return this.#A("sub",...A)}mul(...A){return this.#A("mul",...A)}div(...A){return this.#A("div",...A)}gt(A){return this.#N("gt",A)}gte(A){return this.#N("gte",A)}lt(A){return this.#N("lt",A)}lte(A){return this.#N("lte",A)}eqValue(A){return this.#N("eqValue",A)}getValue(A,H){let T=BN(this.decimalMultiplier),P=H!==void 0?H:this.decimal,L=P!==void 0?P:T;if(P!==void 0&&P<T){if(this.formatBigIntToSafeValue(this.bigIntValue,P)==="0"&&this.bigIntValue!==0n)L=T}let R=this.formatBigIntToSafeValue(this.bigIntValue,L);return $N.match(A).with("number",()=>Number(R)).with("string",()=>R).with("bigint",()=>{return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}).otherwise(()=>R)}getBaseValue(A,H){let T=this.decimalMultiplier/C(H||this.decimal||a),P=eH(this.bigIntValue,T);return $N.match(A).with("number",()=>Number(P)).with("string",()=>P.toString()).otherwise(()=>P)}getBigIntValue(A,H){if(!H&&typeof A==="object")return A.bigIntValue;let T=mN(A),P=bN(T);if(P==="0"||P==="undefined")return 0n;return this.#T(P,H)}toSignificant(A=6){let H=this.getValue("string"),[T="",P=""]=H.split("."),L=Number.parseInt(T,10)>0;if((L?T.length+P.length:P.length)<=A)return H;if(T.length>=A)return T.slice(0,A).padEnd(T.length,"0");if(L)return`${T}.${P.slice(0,A-T.length)}`;let I=Number.parseInt(P,10).toString(),$=I.slice(0,A),u=P.length-I.length;return`0.${$.padStart(u+$.length,"0")}`}toFixed(A=6){let H=this.getValue("string"),T=H.startsWith("-"),[P="0",L=""]=(T?H.slice(1):H).split("."),R=P==="0"&&Number.parseInt(L.slice(0,A),10)===0,I=T&&!R?"-":"";if(A===0){if(P==="0"&&!L)return"0";return L&&Number.parseInt(L[0]||"0",10)>=5?`${I}${BigInt(P)+1n}.0`:`${I}${P}.0`}if(!L)return`${I}${P}.${"0".repeat(A)}`;let $=L[A];if(!($&&Number.parseInt($,10)>=5))return`${I}${P}.${L.slice(0,A).padEnd(A,"0")}`;let g=BigInt(L.slice(0,A).padEnd(A,"0"))+1n,E=10n**BigInt(A);if(g>=E)return`${I}${BigInt(P)+1n}.${"0".repeat(A)}`;return`${I}${P}.${g.toString().padStart(A,"0")}`}toAbbreviation(A=2){let H=this.getValue("string"),T=Number(H),P=["","K","M","B","T","Q","Qi","S"],L=Math.floor(Math.log10(Math.abs(T))/3);if(L===0||!P[L])return H;return`${(T/10**(L*3)).toFixed(A)}${P[L]}`}toCurrency(A="$",{currencyPosition:H="start",decimal:T=2,decimalSeparator:P=".",thousandSeparator:L=",",trimTrailingZeros:R=!0}={}){let I=this.toFixed(T),$=H==="end",[u="0",g=""]=I.split("."),E=u.replace(/\B(?=(\d{3})+(?!\d))/g,L),n=g&&Number.parseInt(g,10)>0,W=n?`${E}${P}${g}`:E,V=W.length<100&&R&&n?W.replace(/\.?0*$/,""):W;return $?`${V}${A}`:`${A}${V}`}formatBigIntToSafeValue(A,H){let T=H||this.decimal||a,P=Math.max(T,BN(this.decimalMultiplier));return m({bigIntDecimal:T,decimal:P,value:A})}#A(A,...H){let T=this.#H(this,...H),P=BN(this.decimalMultiplier),R=Math.max(T,P)+iH,I=C(R),$=H.reduce((g,E)=>{let n=this.getBigIntValue(E,R);return $N.match(A).with("add",()=>g+n).with("sub",()=>g-n).with("mul",()=>g*n/I).with("div",()=>{if(n===0n)throw RangeError("Division by zero");return g*I/n}).otherwise(()=>g)},this.bigIntValue*I/this.decimalMultiplier),u=m({bigIntDecimal:R,decimal:R,value:$});return new this.constructor({decimal:this.decimal,decimalMultiplier:C(R),identifier:this.toString(),value:u})}#N(A,...H){let T=this.#H(this,...H),P=this.getBigIntValue(H[0]||"0",T),L=this.getBigIntValue(this,T);return $N.match(A).with("gt",()=>L>P).with("gte",()=>L>=P).with("lt",()=>L<P).with("lte",()=>L<=P).with("eqValue",()=>L===P).otherwise(()=>!1)}#P(A){let H=bN(A)||"0";this.bigIntValue=this.#T(H)}#H(...A){let H=A.map((T)=>{return typeof T==="object"?T.decimal||BN(T.decimalMultiplier):KA(bN(T))}).filter(Boolean);return Math.max(...H,a)}#T(A,H){let T=H?C(H):this.decimalMultiplier,P=BN(T),[L="",R=""]=A.split(".");return BigInt(`${L}${R.padEnd(P,"0")}`)}}var sH=Intl.NumberFormat("fullwide",{maximumFractionDigits:20,useGrouping:!1});function bN(A){let T=`${typeof A==="number"?sH.format(A):mN(A)}`.replaceAll(",",".").split(".");return T.length>1?`${T.slice(0,-1).join("")}.${T.at(-1)}`:T[0]||"0"}function KA(A){let H=A.split(".")[1]?.length||0;return Math.max(H,a)}function mN(A){return typeof A==="object"?"getValue"in A?A.getValue("string"):A.value:A}function eH(A,H){if(H===0n)throw Error("Cannot divide by zero");let T=H/2n;return A>=0n&&H>=0n||A<0n&&H<0n?(A+T)/H:(A-T)/H}function C(A){return 10n**BigInt(A)}function BN(A){return Math.log10(Number.parseFloat(A.toString()))}var y=[M.Chain.Hype,M.Chain.Near,M.Chain.Ripple,M.Chain.Solana,M.Chain.Sui,M.Chain.Ton,M.Chain.Tron],fN=[M.Chain.THORChain,M.Chain.Maya],NN=new Map,xN=new Map,AN=new Map,NT=3600000;function AT(A){let H=AN.get(A);if(H?.timestamp&&Date.now()-H.timestamp>NT){AN.delete(A);return}return H}function HT(A,H){if(AN.size>1000){let T=AN.keys().next().value;if(T)AN.delete(T)}AN.set(A,{...H,timestamp:Date.now()})}class Q extends k{address;chain;isGasAsset=!1;isSynthetic=!1;isTradeAsset=!1;symbol;tax;ticker;type;chainId;constructor({value:A,decimal:H,tax:T,chain:P,symbol:L,identifier:R}){super(typeof A==="object"?A:{decimal:H,value:A});let I=mA(R||`${P}.${L}`);this.type=tN(I),this.tax=T,this.chain=I.chain,this.ticker=I.ticker,this.symbol=I.symbol,this.address=I.address,this.isSynthetic=I.isSynthetic,this.isTradeAsset=I.isTradeAsset,this.isGasAsset=I.isGasAsset,this.chainId=M.getChainConfig(I.chain).chainId}toString({includeSynthProtocol:A}={}){return(this.isSynthetic||this.isTradeAsset)&&!A?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 A=this.symbol.replace(/\./g,"__");return`${this.chain}.${A}`}getIconUrl(){return NN.get(this.toString())?.logoURI}eqAsset({chain:A,symbol:H}){return this.chain===A&&this.symbol===H}eq(A){return this.eqAsset(A)&&this.eqValue(A)}static fromUrl(A,H=0){let T=A.indexOf(".");if(T===-1)throw new G({errorKey:"helpers_invalid_asset_url",info:{urlAsset:A}});let P=A.slice(0,T),L=A.slice(T+1),R=wN.match({chain:P,rest:L}).when(({rest:I})=>I.includes(".."),({chain:I,rest:$})=>`${I}.${$.replace(/\.\./g,"~")}`).when(({chain:I,rest:$})=>fN.includes(I)&&$.includes("."),({chain:I,rest:$})=>`${I}.${$.replace(/\./g,"/")}`).otherwise(({chain:I,rest:$})=>`${I}.${$.replace(/__/g,".")}`);return Q.from({asset:R,value:H})}static from({value:A=0,fromBaseDecimal:H,asyncTokenLookup:T,...P}){let L=A instanceof k?A.getValue("string"):A,R="address"in P&&"chain"in P,I=RT(P);if(I===null&&T&&R){let{chain:FN,address:l}=P;return LT({address:l,chain:FN,fromBaseDecimal:H,parsedValue:L})}let $=R&&!I?`${P.chain}.UNKNOWN-${P.address}`:I,{identifier:u,decimal:g}=IN($),{chain:E,isSynthetic:n,isTradeAsset:W,address:U}=mA(u),{baseDecimal:V}=M.getChainConfig(E),t=NN.get(y.includes(E)?u:u.toUpperCase());if(!t&&T&&!n&&!W)return(async()=>{let{ticker:FN}=K(u),l=await yA({address:U,chain:E,ticker:FN});return pN({decimal:l.decimals,identifier:l.identifier,value:H?HN(BigInt(L),H):L})})();let b=t?.decimal||g;f({condition:!b&&!T,id:`assetValue_static_decimal_not_found_${E}`,warning:`Couldn't find static decimal for one or more tokens on ${E} (Using default ${V} decimal as fallback).
2
2
  This can result in incorrect calculations and mess with amount sent on transactions.
3
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:LN,identifier:c,tax:U}=E||{decimal:x||V,identifier:B},$N=T?TN(BigInt(L),T):TN(L,LN);return M||W?AH(c,$N):yN({decimal:LN,identifier:c,tax:U,value:$N})}static async loadStaticAssets(A){let{loadTokenLists:T}=await import("@swapkit/tokens"),H=await T(A);for(let{tokens:P}of Object.values(H))for(let L of P){let{identifier:R}=L,{chain:u,symbol:n}=K(R),{address:B}=e(n,u),{baseDecimal:D}=G.getChainConfig(u),t=y.includes(u)?R:R.toUpperCase(),M="decimals"in L&&L.decimals!==void 0?L.decimals:D,W="logoURI"in L&&L.logoURI?L.logoURI:`https://storage.googleapis.com/token-list-swapkit-dev/images/${R.toLowerCase()}.png`,S={decimal:M,identifier:R,logoURI:W,tax:"tax"in L?L.tax:void 0};if(NN.set(t,S),B){let V=y.includes(u)?`${u}:${B}`:`${u}:${B.toUpperCase()}`;xN.set(V,R)}}return!0}static setStaticAssets(A){NN.clear(),xN.clear();for(let[T,H]of A.entries()){let{identifier:P}=H,{chain:L,symbol:R}=K(P),{address:u}=e(R,L),{baseDecimal:n}=G.getChainConfig(L),B=H.chain??L,D=H.address??u,t=y.includes(B)?P:P.toUpperCase(),M=H.decimals??H.decimal??n,W=H.logoURI??`https://storage.googleapis.com/token-list-swapkit-dev/images/${P.toLowerCase()}.png`,S={decimal:M,identifier:t,logoURI:W,tax:H.tax};if(NN.set(t,S),D){let V=y.includes(B)?`${B}:${D}`:`${B}:${D.toUpperCase()}`;xN.set(V,P)}}return!0}static get staticAssets(){return NN}}function NH(A){let T=z.from({chain:A});return bN.match(A).with(G.Chain.Bitcoin,G.Chain.Litecoin,G.Chain.BitcoinCash,G.Chain.Dash,()=>T.set(0.00010001)).with(G.Chain.Dogecoin,()=>T.set(1.00000001)).with(G.Chain.Avalanche,G.Chain.Ethereum,G.Chain.Arbitrum,G.Chain.BinanceSmartChain,()=>T.set(0.00000001)).with(G.Chain.THORChain,G.Chain.Maya,()=>T.set(0)).with(G.Chain.Cosmos,G.Chain.Kujira,()=>T.set(0.000001)).otherwise(()=>T.set(0.00000001))}async function mA({chain:A,address:T,ticker:H}){let L=y.includes(A)?`${A}:${T||H}`:`${A}:${T||H}`.toUpperCase(),R=eT(L);if(R)return R;if(!T){let{baseDecimal:B}=G.getChainConfig(A);return{decimals:B,identifier:`${A}.${H||"UNKNOWN"}`}}let u=await vN({address:T,chain:A}),n=`${A}.${u.ticker||H||"UNKNOWN"}-${T}`;return o({condition:!!(!u.ticker&&H),id:`async_token_lookup_failed_${A}_${T}`,warning:`Could not fetch token metadata for ${A}:${T} from chain. Using user-provided ticker (${H}) with baseDecimal (${u.decimals}).`}),u.ticker&&aT(L,{decimals:u.decimals,identifier:n}),{decimals:u.decimals,identifier:n}}function yN({identifier:A,decimal:T,value:H,tax:P}){return kN(A),new z({decimal:T,identifier:A,tax:P,value:TN(H,T)})}function AH(A,T=0){let H=A.includes(".")?A.split(".")?.[0]?.toUpperCase():void 0,P=H?pN.includes(H):!1,L=A.slice(0,14).includes("~")?"~":"/",[R,u]=P?A.split(".").slice(1).join().split(L):A.split(L);if(!(R&&u))throw new $({errorKey:"helpers_invalid_asset_identifier",info:{identifier:A}});return new z({decimal:8,identifier:`${H||G.Chain.THORChain}.${R}${L}${u}`,value:TN(T,8)})}async function TH({address:A,chain:T,fromBaseDecimal:H,parsedValue:P}){let{decimals:L,identifier:R}=await mA({address:A,chain:T}),u=H?TN(BigInt(P),H):P;return yN({decimal:L,identifier:R,value:u})}function TN(A,T){return typeof A==="bigint"?m({bigIntDecimal:T,decimal:T,value:A}):A}function HH(A){let T=bN.match(A).when((H)=>("chain"in H)&&H.chain!==void 0,({chain:H})=>H).otherwise((H)=>{let P=K(H.asset);return P.synth?G.Chain.THORChain:P.chain});if(!G.AllChains.includes(T.toUpperCase())){let H="asset"in A?A.asset:T;throw new $({errorKey:"helpers_invalid_asset_identifier",info:{identifier:H,message:`Unsupported chain "${T}" - use the AssetValue constructor directly`}})}}function PH(A){if(HH(A),"chain"in A){let{chain:L,address:R}=A;if(R){let u=y.includes(L)?`${L}:${R}`:`${L}:${R.toUpperCase()}`,n=xN.get(u);if(n)return n;return null}return L}let{chain:T,symbol:H}=K(A.asset);return tN({chain:T,symbol:H})==="Native"?T:A.asset}function LH(A,T,H){let P=A.split("."),L=P[0]?.toUpperCase(),R=pN.includes(L),u=H?"~":"/",[n,B=""]=R?P.slice(1).join(".").split(u):A.split(u);if(!(n&&B))throw new $({errorKey:"helpers_invalid_asset_identifier",info:{identifier:A}});let{ticker:D,address:t}=yA({chain:n,symbol:B}),M=`${n}${u}${B}`;return{address:t,chain:L,isGasAsset:!1,isSynthetic:T,isTradeAsset:H,symbol:M,ticker:D}}function RH(A){let T=A.indexOf("."),H=(T===-1?A:A.slice(0,T)).toUpperCase(),P=T===-1?A:A.slice(T+1),{address:L,ticker:R}=yA({chain:H,symbol:P}),u;try{u=L&&G.EVMChains.includes(H)&&mN.getAddress(L)?mN.getAddress(L):L}catch{u=L}let n=u?`${R}-${u}`:P;return{address:u,chain:H,isGasAsset:qN({chain:H,symbol:P}),isSynthetic:!1,isTradeAsset:!1,symbol:n,ticker:R}}function KA(A){let T=A.slice(0,14),H=T.includes("/"),P=T.includes("~");if(H||P)return LH(A,H,P);return RH(A)}function yA({symbol:A,chain:T}){let{ticker:H,address:P}=e(A,T);return{address:P&&!y.includes(T)?P.toLowerCase():P,ticker:H}}var uH={};Q(uH,{SwapKitNumber:()=>BN});class BN extends k{eq(A){return this.eqValue(A)}static fromBigInt(A,T){return new BN({decimal:T,value:m({bigIntDecimal:T,decimal:T,value:A})})}}function pA(A=!0){return A?"https://midgard.thorchain.network":"https://midgard.mayachain.info"}function IH(A=!0){let T=pA(A);return A?`${T}/v2/thorname`:`${T}/v2/mayaname`}function nH(A){return function(H){let P=H?`?status=${H}`:"";return O.get(`${A}/v2/pools${P}`)}}function BH(A){return function(H){return O.get(`${A}/v2/pool/${H}`)}}function OH(A){return function(H,P){let L=P?`?period=${P}`:"";return O.get(`${A}/v2/pool/${H}/stats${L}`)}}function $H(A){return function(H,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"";return O.get(`${A}/v2/history/depths/${H}${R}`)}}function GH(A){return function(){return O.get(`${A}/v2/network`)}}function MH(A){return function(){return O.get(`${A}/v2/health`)}}function _H(A){return function(){return O.get(`${A}/v2/nodes`)}}function gH(A){return function(H){return O.get(`${A}/v2/node/${H}`)}}function DH(A){return function(){return O.get(`${A}/v2/mimir/votes`)}}function YH(A){return function(){return O.get(`${A}/v2/mimir`)}}function SH(A){return function(){return O.get(`${A}/v2/constants`)}}function UH(A){return function(){return O.get(`${A}/v2/stats`)}}function XH(A){return function(H){let P=new URLSearchParams;if(H?.interval)P.append("interval",H.interval);if(H?.count)P.append("count",H.count.toString());if(H?.from)P.append("from",H.from.toString());if(H?.to)P.append("to",H.to.toString());let L=P.toString()?`?${P.toString()}`:"";return O.get(`${A}/v2/history/earnings${L}`)}}function tH(A){return function(H,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"",u=H?`/swaps/${H}`:"/swaps";return O.get(`${A}/v2/history${u}${R}`)}}function EH(A){return function(H){let P=new URLSearchParams;if(H?.interval)P.append("interval",H.interval);if(H?.count)P.append("count",H.count.toString());if(H?.from)P.append("from",H.from.toString());if(H?.to)P.append("to",H.to.toString());let L=P.toString()?`?${P.toString()}`:"";return O.get(`${A}/v2/history/tvl${L}`)}}function xH(A){if(!A)return"";let T=new URLSearchParams,H=(P,L)=>{if(L!==void 0)T.append(P,typeof L==="number"?L.toString():L)};return H("address",A.address),H("txid",A.txid),H("asset",A.asset),H("type",A.type),H("affiliate",A.affiliate),H("limit",A.limit),H("offset",A.offset),T.toString()?`?${T.toString()}`:""}function bH(A){return function(H){let P=xH(H);return O.get(`${A}/v2/actions${P}`)}}function QH(A){return function(H){return O.get(`${A}/v2/member/${H}`)}}function wH(A){return function(H){let P=H?`/${H}`:"";return O.get(`${A}/v2/members${P}`)}}function zH(A){return function(H,P){let L=P?`&asset=${P}`:"";return O.get(`${A}/v2/saver/${H}${L?`?${L.substring(1)}`:""}`)}}function JH(A){return function(H){return O.get(`${A}/v2/savers/${H}`)}}function ZH(A){return function(H,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"",u=H?`/savers/${H}`:"/savers";return O.get(`${A}/v2/history${u}${R}`)}}function WH(A){return function(H){return O.get(`${A}/v2/balance/${H}`)}}function jH(A){return async function(H){let P=(L)=>{if(L?.cause?.status===404)return;throw L};return await O.get(`${A}/lookup/${H}`,{onError:P,retry:{maxRetries:1}})}}function VH(A){return async function(H){let P=(L)=>{if(L?.cause?.status===404)return[];throw L};return await O.get(`${A}/rlookup/${H}`,{onError:P,retry:{maxRetries:1}})}}function vH(A){return async function(H){let P=(L)=>{if(L?.cause?.status===404)return[];throw L};return await O.get(`${A}/owner/${H}`,{onError:P,retry:{maxRetries:1}})}}function HN({asset:A,value:T}){return z.from({asset:A,fromBaseDecimal:h.getChainConfig(h.Chain.THORChain).baseDecimal,value:T})}function qH({liquidityPositionGetter:A,isThorchain:T}){return async function(P){let L=await A(P),R=T?"rune":"cacao";return L.pools.map((u)=>({[`${R}Pending`]:HN({asset:"THOR.RUNE",value:u.runePending}),[`${R}RegisteredAddress`]:u.runeAddress,[`${R}Withdrawn`]:HN({asset:"THOR.RUNE",value:u.runeWithdrawn}),[R]:HN({asset:"THOR.RUNE",value:u.runeAdded}),asset:HN({asset:u.pool,value:u.assetAdded}),assetPending:HN({asset:u.pool,value:u.assetPending}),assetRegisteredAddress:u.assetAddress,assetWithdrawn:HN({asset:u.pool,value:u.assetWithdrawn}),dateFirstAdded:u.dateFirstAdded,dateLastAdded:u.dateLastAdded,poolShare:new BN(u.liquidityUnits).div(u.pool)}))}}function oA(A){let T=A===h.Chain.THORChain,H=pA(T),P=IH(T),L=QH(H);return{getActions:bH(H),getBalance:WH(H),getConstants:SH(H),getEarningsHistory:XH(H),getHealth:MH(H),getLiquidityPosition:qH({isThorchain:T,liquidityPositionGetter:L}),getLiquidityPositionRaw:L,getMembers:wH(H),getMimir:YH(H),getMimirVotes:DH(H),getNameDetails:jH(P),getNamesByAddress:VH(P),getNamesByOwner:vH(P),getNetworkInfo:GH(H),getNode:gH(H),getNodes:_H(H),getPool:BH(H),getPoolDepthHistory:$H(H),getPoolStats:OH(H),getPools:nH(H),getSaverDetails:zH(H),getSavers:JH(H),getSaversHistory:ZH(H),getStats:UH(H),getSwapHistory:tH(H),getTVLHistory:EH(H)}}var fA=oA(h.Chain.THORChain),CA=oA(h.Chain.Maya);var $A={};Q($A,{getTrackerDetails:()=>gP,getTokenListProviders:()=>XP,getTokenList:()=>tP,getTokenApproval:()=>UP,getSwapTo:()=>WP,getSwapQuote:()=>DP,getRouteWithTx:()=>YP,getPrice:()=>EP,getNearDepositChannel:()=>QP,getGasRate:()=>xP,getChainflipDepositChannel:()=>bP,getChainBalance:()=>SP,SKRequestClient:()=>Z});var zN=require("@swapkit/types"),p=require("ts-pattern");var kH={};Q(kH,{signWidgetRequest:()=>oN});async function oN(A,T,H,P){let L=`${T}:${H}:${P}`,R=new TextEncoder,u=await crypto.subtle.importKey("raw",R.encode(A),{hash:"SHA-256",name:"HMAC"},!1,["sign"]),n=await crypto.subtle.sign("HMAC",u,R.encode(L));return Array.from(new Uint8Array(n)).map((B)=>B.toString(16).padStart(2,"0")).join("")}var v=require("@swapkit/types"),N=require("zod");var CN;((P)=>{P.CHEAPEST="CHEAPEST";P.FASTEST="FASTEST";P.RECOMMENDED="RECOMMENDED"})(CN||={});var ON;((R)=>{R.PSBT="PSBT";R.EVM="EVM";R.COSMOS="COSMOS";R.RADIX="RADIX";R.NEAR="NEAR"})(ON||={});var hN;((x)=>{x.approve="approve";x.claim="claim";x.deposit="deposit";x.donate="donate";x.lending="lending";x.lp_action="lp_action";x.native_contract_call="native_contract_call";x.native_send="native_send";x.stake="stake";x.streaming_swap="streaming_swap";x.swap="swap";x.thorname_action="thorname_action";x.token_contract_call="token_contract_call";x.token_transfer="token_transfer";x.unknown="unknown";x.unstake="unstake"})(hN||={});var dN;((S)=>{S.swap="swap";S.aggregation="aggregation";S.addLiquidity="addLiquidity";S.withdrawLiquidity="withdrawLiquidity";S.addSavers="addSavers";S.withdrawSavers="withdrawSavers";S.borrow="borrow";S.repay="repay";S.name="name";S.donate="donate";S.claim="claim";S.stake="stake";S.unstake="unstake"})(dN||={});var cN;((n)=>{n.unknown="unknown";n.not_started="not_started";n.pending="pending";n.swapping="swapping";n.completed="completed";n.refunded="refunded";n.failed="failed"})(cN||={});var lN;((E)=>{E.not_started="not_started";E.starting="starting";E.broadcasted="broadcasted";E.mempool="mempool";E.inbound="inbound";E.outbound="outbound";E.swapping="swapping";E.completed="completed";E.refunded="refunded";E.partially_refunded="partially_refunded";E.dropped="dropped";E.reverted="reverted";E.replaced="replaced";E.retries_exceeded="retries_exceeded";E.parsing_error="parsing_error"})(lN||={});var KH=N.object({address:N.optional(N.string()),chain:N.z.enum(v.Chain).optional(),chainId:N.z.enum(v.ChainId),coingeckoId:N.optional(N.string()),decimals:N.coerce.number(),extensions:N.optional(N.z.looseObject({})),identifier:N.string(),logoURI:N.optional(N.string()),name:N.optional(N.string()),shortCode:N.optional(N.string()),symbol:N.optional(N.string()),ticker:N.string()}),mH=N.z.object({block:N.z.optional(N.z.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:N.z.optional(N.z.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:N.z.optional(N.z.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:N.z.optional(N.z.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((A)=>A.hash&&A.chainId||A.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),yH=N.z.object({forceUpdate:N.z.string().toLowerCase().transform((A)=>A==="true").pipe(N.z.boolean()).optional()}),pH=N.object({error:N.string(),message:N.string()}),d=N.object({address:N.optional(N.string()),chain:N.z.enum(v.Chain),decimal:N.optional(N.number()),isGasAsset:N.boolean(),isSynthetic:N.boolean(),symbol:N.string(),tax:N.optional(N.object({buy:N.number(),sell:N.number()})),ticker:N.string()}),rN=N.object({id:N.string(),market_cap:N.number(),name:N.string(),price_change_24h_usd:N.number(),price_change_percentage_24h_usd:N.number(),sparkline_in_7d:N.array(N.number()),timestamp:N.string(),total_volume:N.number()}).partial(),oH=N.object({cg:N.optional(rN),identifier:N.string(),price_usd:N.number(),provider:N.string(),timestamp:N.number()}),iN=N.array(N.object({cg:N.optional(rN),identifier:N.string(),price_usd:N.number(),provider:N.string(),timestamp:N.number()}).partial()),fH=N.object({affiliate:N.optional(N.string().describe("Affiliate thorname")),affiliateFee:N.optional(N.number().describe("Affiliate fee in basis points").refine((A)=>A===Math.floor(A)&&A>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:N.optional(N.boolean().describe("Allow smart contract as recipient")),allowSmartContractSender:N.optional(N.boolean().describe("Allow smart contract as sender")),buyAsset:N.string().describe("Asset to buy"),cfBoost:N.optional(N.boolean().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:N.optional(N.string().describe("Address to send asset to")),disableSecurityChecks:N.optional(N.boolean().describe("Disable security checks")),includeTx:N.optional(N.boolean().describe("Set to true to include an transaction object (EVM only)")),providers:N.optional(N.array(N.string().describe("List of providers to use").refine((A)=>b[A]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:N.optional(N.string().describe("Referrer address (referral program)")),sellAmount:N.string().describe("Amount of asset to sell").refine((A)=>+A>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:N.string().describe("Asset to sell"),slippage:N.optional(N.number().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:N.optional(N.string().describe("Address to send asset from"))}).refine((A)=>A.sellAsset!==A.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),CH=N.object({metadata:N.boolean(),tokens:N.array(N.object({identifier:N.string()}))}),sN=N.object({destinationAddress:N.string()}),cA=sN.extend({affiliateFees:N.array(N.object({brokerAddress:N.string(),feeBps:N.number()})).optional(),brokerCommissionBps:N.number().optional(),buyAsset:N.object({asset:N.string(),chain:N.string()}),channelMetadata:N.object({cfParameters:N.string().optional(),gasBudget:N.string().optional(),message:N.string().optional()}).optional(),dcaParameters:N.object({chunkInterval:N.number().optional(),numberOfChunks:N.number().optional()}).optional(),maxBoostFeeBps:N.number().optional(),refundParameters:N.object({minPrice:N.string().optional(),refundAddress:N.string().optional(),retryDuration:N.number().optional()}).optional(),sellAsset:N.object({asset:N.string(),chain:N.string()})}),eN=N.object({channelId:N.string(),depositAddress:N.string()}),fN=sN.extend({affiliateFees:N.object({feeBps:N.number(),nearId:N.string()}).optional(),buyAsset:N.string(),sellAmount:N.string(),sellAsset:N.string(),slippage:N.coerce.number(),sourceAddress:N.string()}),hA=N.object({amountIn:N.string(),amountInFormatted:N.string(),amountInUsd:N.string(),amountOut:N.string(),amountOutFormatted:N.string(),amountOutUsd:N.string(),deadline:N.string().optional(),minAmountIn:N.string(),minAmountOut:N.string(),timeEstimate:N.number().optional(),timeWhenInactive:N.string().optional()}),hH=hA.extend({depositAddress:N.string(),quote:hA,signature:N.string(),timestamp:N.string(),tx:N.unknown()}),aN=N.object({buyAsset:N.string(),buyAssetAmount:N.string(),buyAssetAmountMaxSlippage:N.string(),deadline:N.string().optional(),depositAddress:N.string(),depositAmount:N.string(),depositAsset:N.string(),tx:N.unknown()}),dH=N.object({evmCalldata:N.z.optional(N.z.string()),intentHash:N.z.optional(N.z.string()),logs:N.z.optional(N.z.unknown()),manifest:N.z.optional(N.z.unknown()),memo:N.z.optional(N.z.string()),spender:N.z.optional(N.z.string()),thorname:N.z.optional(N.z.string())}),cH=N.object({currentStage:N.string(),inboundConfirmation:N.number(),inboundObservation:N.number(),outboundDelay:N.number(),outboundObservation:N.number(),streamingSwap:N.number()}),lH=N.object({count:N.optional(N.number()),interval:N.optional(N.number()),quantity:N.optional(N.number()),subSwapsMap:N.optional(N.array(N.number()))}),rH=N.z.object({currentLegIndex:N.z.optional(N.z.number()),estimatedTimeToComplete:N.z.number(),estimates:N.z.optional(cH),providerDetails:N.z.optional(N.z.object({streamingDetails:N.z.optional(lH)}))}),iH=N.object({affiliate:N.optional(d),liquidity:N.optional(d),network:N.optional(d),protocol:N.optional(d),tax:N.optional(d)}),sH=N.object({affiliate:N.string(),bps:N.string(),isReferrer:N.boolean()}),eH=N.object({affiliate:N.optional(N.string()),affiliateFees:N.optional(N.array(sH)),broadcastedAt:N.optional(N.number()),explorerUrl:N.optional(N.string()),fees:N.optional(iH),images:N.optional(N.object({chain:N.optional(N.string()),from:N.optional(N.string()),provider:N.optional(N.string()),to:N.optional(N.string())})),provider:N.optional(N.z.enum(b)),providerAction:N.z.optional(N.z.enum(dN)),quoteId:N.optional(N.string()),wallet:N.optional(N.string())}),PN=N.z.object({block:N.z.number(),chainId:N.z.enum(v.ChainId),finalAddress:N.z.optional(N.z.string()),finalAsset:N.z.optional(d),finalisedAt:N.z.number(),fromAddress:N.z.string(),fromAmount:N.z.string(),fromAsset:N.z.string(),hash:N.z.string(),meta:N.z.optional(eH),payload:N.z.optional(dH),status:N.z.enum(cN),toAddress:N.z.string(),toAmount:N.z.string(),toAsset:N.z.string(),trackingStatus:N.z.optional(N.z.enum(lN)),transient:N.z.optional(rH),type:N.z.enum(hN)}),NA=PN.extend({legs:N.z.array(PN)}),aH=PN.extend({legs:N.array(PN)}),NP=PN.extend({legs:N.array(PN)}),QN=N.array(N.object({amount:N.string(),asset:N.string(),chain:N.string(),protocol:N.z.enum(b),type:N.z.enum(DN)})),wN=N.z.object({inbound:N.z.optional(N.z.number().describe("Time to receive inbound asset in seconds")),outbound:N.z.optional(N.z.number().describe("Time to receive outbound asset in seconds")),swap:N.z.optional(N.z.number().describe("Time to swap assets in seconds")),total:N.z.number().describe("Total time in seconds")}),AA=N.object({data:N.string().describe("Data to send"),from:N.string().describe("Address of the sender"),to:N.string().describe("Address of the recipient"),value:N.string().describe("Value to send")}),TA=N.z.object({raw_data:N.z.object({contract:N.z.any(),data:N.z.string().optional(),expiration:N.z.number(),fee_limit:N.z.number().optional(),ref_block_bytes:N.z.string(),ref_block_hash:N.z.string(),timestamp:N.z.number()}).passthrough(),raw_data_hex:N.z.string(),txID:N.z.string(),visible:N.z.boolean()}),lA=N.array(N.union([N.string(),N.number(),N.array(N.string()),N.object({from:N.string(),value:N.string()}).describe("Parameters to pass to the contract method")])),AP=N.object({approvalSpender:N.optional(N.string().describe("Address of the spender to approve")),approvalToken:N.optional(N.string().describe("Address of the token to approve spending of")),contractAddress:N.string().describe("Address of the contract to interact with"),contractMethod:N.string().describe("Name of the method to call"),contractParamNames:N.array(N.string().describe("Names of the parameters to pass to the contract method")),contractParams:lA}),TP=N.object({typeUrl:N.string("/types.MsgDeposit"),value:N.object({coins:N.array(N.object({amount:N.string(),asset:N.object({chain:N.string(),symbol:N.string(),synth:N.boolean(),ticker:N.string()})})),memo:N.string(),signer:N.string()})}),HP=N.object({typeUrl:N.string("/types.MsgSend"),value:N.object({amount:N.array(N.object({amount:N.string(),denom:N.string()})),fromAddress:N.string(),toAddress:N.string()})}),PP=N.object({typeUrl:N.string(),value:HP.shape.value.or(TP.shape.value)}),LP=N.object({amount:N.array(N.object({amount:N.string(),denom:N.string()})),gas:N.string()}),HA=N.object({accountNumber:N.number(),chainId:N.z.enum(v.ChainId),fee:LP,memo:N.string(),msgs:N.array(PP),sequence:N.number()}),rA=N.z.array(N.z.object({calldata:N.z.array(N.z.string()),contractAddress:N.z.string(),entrypoint:N.z.string()})),PA=N.z.array(N.z.object({address:N.z.string().describe("Destination address in friendly format"),amount:N.z.string().describe("Amount in nanotons"),payload:N.z.string().optional().describe("Base64 BOC of body cell"),stateInit:N.z.string().optional().describe("Base64 BOC of state init")})),iA=N.object({affiliate:N.string().describe("Affiliate address").optional(),affiliateFee:N.number().describe("Affiliate fee").optional(),buyAsset:N.string().describe("Asset to buy"),destinationAddress:N.string().describe("Destination address"),estimatedTime:wN.optional(),provider:N.z.enum(b),sellAsset:N.string().describe("Asset to sell"),slipPercentage:N.number().describe("Slippage as a percentage"),sourceAddress:N.string().describe("Source address")}),RP=iA.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),sA=N.object({asset:N.string().describe("Asset name"),image:N.string().describe("Asset image"),price:N.number().describe("Price in USD")}),eA=cA,LA=N.object({assets:N.optional(N.array(sA)),maxStreamingQuantity:N.number().optional(),referrer:N.string().optional(),streamingInterval:N.number().optional(),tags:N.array(N.z.enum(CN))}),RA=LA.extend({affiliate:N.optional(N.string()),affiliateFee:N.optional(N.string()),approvalAddress:N.optional(N.string().describe("Approval address for swap")),chainflip:eA.optional(),garden:fN.optional(),near:fN.optional(),priceImpact:N.optional(N.number().describe("Price impact")),referrer:N.optional(N.string()),txType:N.optional(N.z.enum(ON))}),FA=N.array(N.object({code:N.z.enum(gN),display:N.string(),tooltip:N.string().optional()})),FP=N.object({buyAmount:N.string().describe("Buy amount"),buyAmountMaxSlippage:N.string().describe("Buy amount max slippage"),buyAsset:N.string().describe("Asset to buy"),fees:N.optional(QN),provider:N.z.enum(b),sellAmount:N.string().describe("Sell amount"),sellAsset:N.string().describe("Asset to sell")}),aA=N.object({buyAsset:N.string().describe("Asset to buy"),destinationAddress:N.optional(N.string().describe("Destination address")),estimatedTime:N.optional(wN),expectedBuyAmount:N.string().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:N.string().describe("Expected Buy amount max slippage"),expiration:N.optional(N.string().describe("Expiration")),fees:QN,inboundAddress:N.optional(N.string().describe("Inbound address")),legs:N.array(FP),memo:N.optional(N.string().describe("Memo")),meta:RA,providers:N.array(N.z.enum(b)),routeId:N.string().describe("Route ID"),sellAmount:N.string().describe("Sell amount"),sellAsset:N.string().describe("Asset to sell"),sourceAddress:N.optional(N.string().describe("Source address")),targetAddress:N.optional(N.string().describe("Target address")),totalSlippageBps:N.number().describe("Total slippage in bps"),tx:N.optional(N.union([AA,HA,TA,rA,PA,N.string()])),txType:N.optional(N.z.enum(ON)),warnings:FA}),uA=N.object({error:N.optional(N.string().describe("Error message")),providerErrors:N.optional(N.array(N.object({errorCode:N.optional(N.z.enum(i)),message:N.optional(N.string()),provider:N.z.enum(b).optional()}))),quoteId:N.string().describe("Quote ID"),routes:N.array(aA)}),IA=N.z.object({chainId:N.z.enum(v.ChainId),createdAt:N.z.date(),id:N.z.number(),unit:N.z.string(),value:N.z.string()}),uP=N.z.array(IA),nA=N.z.union([IA,uP]),QL=N.array(N.object({chain:N.z.enum(v.Chain),decimal:N.number(),identifier:N.string(),symbol:N.string(),ticker:N.string(),value:N.string()})),IP=N.z.union([N.z.object({amount:N.z.string(),spender:N.z.string(),tokenIdentifier:N.z.string(),userWalletAddress:N.z.string()}),N.z.object({amount:N.z.string(),chainId:N.z.enum(v.ChainId),spender:N.z.string(),tokenContractAddress:N.z.string(),userWalletAddress:N.z.string()}),N.z.object({routeId:N.z.string()})]),nP=N.z.object({approvalTransaction:N.z.optional(N.z.object({data:N.z.string(),from:N.z.string(),gasLimit:N.z.optional(N.z.string()),gasPrice:N.z.optional(N.z.string()),to:N.z.string(),value:N.z.string()})),approvedAmount:N.z.string(),isApproved:N.z.boolean()}),NT=N.z.object({data:N.z.string().describe("Encoded approval call data"),from:N.z.string().describe("User wallet address"),gasLimit:N.z.string().optional().describe("Estimated gas limit"),gasPrice:N.z.string().optional().describe("Current gas price"),to:N.z.string().describe("Token contract address"),value:N.z.string().describe("ETH value (always '0' for approvals)")}),dA=N.z.object({buyAmount:N.z.string().describe("Buy amount").optional(),buyAmountMaxSlippage:N.z.string().describe("Buy amount max slippage").optional(),buyAsset:N.z.string().describe("Asset to buy"),expectedBuyAmount:N.z.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:N.z.string().describe("Expected Buy amount max slippage").optional(),fees:QN,provider:N.z.enum(b),sellAmount:N.z.string().describe("Sell amount"),sellAsset:N.z.string().describe("Asset to sell")}),AT=dA.extend({estimatedTime:N.z.optional(wN),expiration:N.z.optional(N.z.string().describe("Expiration")),legs:N.z.array(dA),providers:N.z.array(N.z.enum(b)),routeId:N.z.string().describe("Route ID"),totalSlippageBps:N.z.number().describe("Total slippage in bps"),warnings:FA}).omit({provider:!0}),BP=N.z.object({method:N.z.string(),payload:N.z.optional(N.z.unknown()),url:N.z.string()}),OP=AT.extend({meta:LA,nextActions:N.z.optional(N.z.array(BP))}),$P=N.z.object({error:N.z.optional(N.z.string().describe("Error message")),providerErrors:N.z.optional(N.z.array(N.z.object({errorCode:N.z.optional(N.z.enum(i)),message:N.z.optional(N.z.string()),provider:N.z.enum(b).optional()}))),quoteId:N.z.string().describe("Quote ID"),routes:N.z.array(OP)}),GP=N.z.object({providers:N.z.array(N.z.enum(b)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:N.z.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),TT=N.z.object({chain:N.z.enum(v.Chain).describe("Chain the asset is on"),identifier:N.z.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:N.z.array(N.z.enum(b)).describe("Providers that support this trading pair"),symbol:N.z.string().describe("Asset symbol"),ticker:N.z.string().describe("Asset ticker")}),MP=N.z.object({buyAssets:N.z.array(TT).describe("List of assets that can be swapped to"),sellAsset:N.z.string().describe("The input sell asset identifier")}),BA=AT.extend({destinationAddress:N.z.string().describe("Destination address"),inboundAddress:N.z.optional(N.z.string().describe("Inbound address")),memo:N.z.optional(N.z.string().describe("Memo to include in the transaction")),meta:RA,sourceAddress:N.z.string().describe("Source address"),targetAddress:N.z.optional(N.z.string().describe("Target address")),tx:N.optional(N.union([AA,HA,TA,PA,N.string()])),txType:N.z.optional(N.z.enum(ON))}),HT=N.z.object({data:N.z.optional(N.z.record(N.z.string(),N.z.string().optional())),errorCode:N.z.enum(i),message:N.z.string().optional(),provider:N.z.enum(b).optional()}),_P=N.z.object({error:N.z.optional(N.z.string().describe("Error message")),providerErrors:N.z.optional(N.z.array(HT)),quoteId:N.z.string().describe("Quote ID"),routes:N.z.array(BA)}),OA=BA.extend({approvalTx:NT.optional().describe("Optional approval transaction if ERC-20 approval is required before swap"),swapId:N.z.string().describe("The unique swap ID for tracking")});var Z=O.extend({dynamicHeader:async()=>{let A=Y.get("widgetId"),T=Y.get("widgetKey");if(A&&T&&typeof window<"u"){let P=Math.floor(Date.now()/1000),L=window.location.origin,R=await oN(T,A,L,P);return{Origin:L,"X-Signature":R,"X-Timestamp":P.toString(),"x-widget-id":A}}let{swapKit:H}=Y.get("apiKeys");return H?{"x-api-key":H}:{}}});async function gP(A){let T=await Z.post(J("/track"),{json:A});try{let H=NA.safeParse(T);if(!H.success)throw new $("api_v2_invalid_response",H.error);return H.data}catch(H){return T}}async function DP(A){let{getQuote:T}=Y.get("endpoints");if(T)return T(A);let P=Y.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",L=await Z.post(J(P),{json:A});if(L.error)throw new $("api_v2_server_error",{message:L.error});try{let R=uA.safeParse(L);if(!R.success)throw new $("api_v2_invalid_response",R.error);return R.data}catch{return L}}async function YP(A){let{getRouteWithTx:T}=Y.get("endpoints");if(T)return T(A);let P=Y.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",L=await Z.post(J(P),{json:A});try{let R=OA.safeParse(L);if(!R.success)throw new $("api_v2_invalid_response",R.error);return R.data}catch(R){return console.error(new $("api_v2_invalid_response",R)),L}}async function SP({chain:A,address:T,scamFilter:H=!0}){let{getBalance:P}=Y.get("endpoints");if(P)return P({address:T,chain:A});let L=J(`/balance?chain=${A}&address=${T}`),R=await Z.get(L),u=Array.isArray(R)?R:[];return H?ZP(u):u}function UP(A){let T=p.match(A).with({routeId:p.P.string,spender:p.P.string},({routeId:H,spender:P})=>J(`/approve?routeId=${H}&sourceAddress=${P}`)).with({assetValue:p.P.instanceOf(z),spender:p.P.string,userWallet:p.P.string},({spender:H,userWallet:P,assetValue:L})=>J(`/approve?tokenIdentifier=${L.toString()}&userWalletAddress=${P}&spender=${H}&amount=${L.getValue("string")}`)).exhaustive();return Z.get(T)}function XP(){let A=J("/providers");return Z.get(A)}function tP(A){let T=J(`/tokens?provider=${A}`);return Z.get(T)}async function EP(A){let T=J("/price"),H=await Z.post(T,{json:A});try{let P=iN.safeParse(H);if(!P.success)throw new $("api_v2_invalid_response",P.error);return P.data}catch(P){throw new $("api_v2_invalid_response",P)}}async function xP(){let A=J("/gas"),T=await Z.get(A);try{let H=nA.safeParse(T);if(!H.success)throw new $("api_v2_invalid_response",H.error);return Array.isArray(H)?H:[H]}catch(H){throw new $("api_v2_invalid_response",H)}}async function bP(A){let{destinationAddress:T}=A;if(!T)throw new $("chainflip_broker_invalid_params");let H=Y.get("integrations").chainflip?.brokerUrl||J("/chainflip/broker/channel"),P=await Z.post(H,{json:A});try{let L=eN.safeParse(P);if(!L.success)throw new $("api_v2_invalid_response",L.error);return L.data}catch(L){throw new $("api_v2_invalid_response",L)}}async function QP(A){let{destinationAddress:T}=A;if(!T)throw new $("chainflip_broker_invalid_params");let H=J("/near/channel"),P=await Z.post(H,{json:A});try{let L=aN.safeParse(P);if(!L.success)throw new $("api_v2_invalid_response",L.error);return L.data}catch(L){throw new $("api_v2_invalid_response",L)}}function J(A){let{isDev:T,apiUrl:H,devApiUrl:P}=Y.get("envs"),{enabled:L,quoteUrl:R,swapUrl:u}=Y.get("localMode");if(L&&A){let[B]=A.split("?");if(B==="/quote"||B==="/v3/quote")return`${R}${A}`;if(B==="/swap"||B==="/v3/swap")return`${u}${A}`}return`${T?P:H}${A}`}function wP(A){try{return z.from({asset:A.identifier})}catch{return}}var zP=new Set(["OP.OP"]),JP=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function ZP(A){return A.filter((T)=>{let H=wP(T);if(!H)return!1;if(zP.has(H.toString().toUpperCase()))return!0;return(!zN.EVMChains.includes(H.chain)||H.isGasAsset||!!H.address)&&!JP.test(H.ticker)})}async function WP(A){let{getSwapTo:T}=Y.get("endpoints");if(T)return T(A);let H=new URLSearchParams({sellAsset:A.sellAsset});if(A.providers?.length)for(let u of A.providers)H.append("providers",u);let P=J(`/swapTo?${H.toString()}`),L=await Z.get(P);if(!Array.isArray(L))return{buyAssets:[],sellAsset:A.sellAsset};let R=[];for(let u of L)try{let n=z.from({asset:u});R.push({chain:n.chain,identifier:n.toString(),providers:[],symbol:n.symbol,ticker:n.ticker})}catch{}return{buyAssets:R,sellAsset:A.sellAsset}}var GA={};Q(GA,{getThorchainQueue:()=>vP,getTcyStakers:()=>fP,getTcyStaker:()=>oP,getTcyClaimers:()=>hP,getTcyClaimer:()=>CP,getTNSPreferredAsset:()=>mP,getTHORNodeTNSDetails:()=>LT,getRunePoolProviderInfo:()=>pP,getRunePoolInfo:()=>yP,getNodes:()=>qP,getMimirInfo:()=>kP,getLastBlock:()=>VP,getInboundAddresses:()=>KP});var PT=require("ts-pattern");function j(A){let{isStagenet:T}=Y.get("envs"),H=Y.get("thornodeUrls");return`${PT.match({isStagenet:T,type:A}).with({type:"mayachain"},({isStagenet:L})=>L?H.MAYA_STAGENET:H.MAYA).otherwise(({isStagenet:L})=>L?H.THOR_STAGENET:H.THOR)}/${A??"thorchain"}`}function jP(A){let T=A==="mayachain"?"mayaname":"thorname";return`${j(A)}/${T}`}function VP(A="thorchain"){return O.get(`${j(A)}/lastblock`)}function vP(A){return O.get(`${j(A)}/queue`)}function qP(A){return O.get(`${j(A)}/nodes`)}function kP(A){return O.get(`${j(A)}/mimir`)}function KP(A){return O.get(`${j(A)}/inbound_addresses`)}async function LT({type:A,name:T}){try{return await O.get(`${jP(A)}/${T}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:T,owner:"",preferred_asset:""}}}async function mP({type:A,tns:T}){let H=await LT({name:T,type:A});if(!H.preferred_asset||H.preferred_asset===".")return;return z.from({asset:H.preferred_asset,asyncTokenLookup:!0})}function yP(A){return O.get(`${j(A)}/runepool`)}function pP({type:A,thorAddress:T}){return O.get(`${j(A)}/rune_provider/${T}`)}function oP({type:A,address:T}){return O.get(`${j(A)}/tcy_staker/${T}`)}function fP(A){return O.get(`${j(A)}/tcy_stakers`)}function CP({type:A,address:T}){return O.get(`${j(A)}/tcy_claimer/${T}`)}function hP(A){return O.get(`${j(A)}/tcy_claimers`)}var dP={...$A,mayachainMidgard:CA,thorchainMidgard:fA,thornode:GA};
4
+ or by passing asyncTokenLookup: true to the from() function, which will make it async and return a promise.`});let{decimal:LN,identifier:c,tax:X}=t||{decimal:b||V,identifier:u},MN=H?HN(BigInt(L),H):HN(L,LN);return n||W?PT(c,MN):pN({decimal:LN,identifier:c,tax:X,value:MN})}static async loadStaticAssets(A){let{loadTokenLists:H}=await import("@swapkit/tokens"),T=await H(A);for(let{tokens:P}of Object.values(T))for(let L of P){let{identifier:R}=L,{chain:I,symbol:$}=K(R),{address:u}=e($,I),{baseDecimal:g}=M.getChainConfig(I),E=y.includes(I)?R:R.toUpperCase(),n="decimals"in L&&L.decimals!==void 0?L.decimals:g,W="logoURI"in L&&L.logoURI?L.logoURI:`https://storage.googleapis.com/token-list-swapkit-dev/images/${R.toLowerCase()}.png`,U={decimal:n,identifier:R,logoURI:W,tax:"tax"in L?L.tax:void 0};if(NN.set(E,U),u){let V=y.includes(I)?`${I}:${u}`:`${I}:${u.toUpperCase()}`;xN.set(V,R)}}return!0}static setStaticAssets(A){NN.clear(),xN.clear();for(let[H,T]of A.entries()){let{identifier:P}=T,{chain:L,symbol:R}=K(P),{address:I}=e(R,L),{baseDecimal:$}=M.getChainConfig(L),u=T.chain??L,g=T.address??I,E=y.includes(u)?P:P.toUpperCase(),n=T.decimals??T.decimal??$,W=T.logoURI??`https://storage.googleapis.com/token-list-swapkit-dev/images/${P.toLowerCase()}.png`,U={decimal:n,identifier:E,logoURI:W,tax:T.tax};if(NN.set(E,U),g){let V=y.includes(u)?`${u}:${g}`:`${u}:${g.toUpperCase()}`;xN.set(V,P)}}return!0}static get staticAssets(){return NN}}function TT(A){let H=Q.from({chain:A});return wN.match(A).with(M.Chain.Bitcoin,M.Chain.Litecoin,M.Chain.BitcoinCash,M.Chain.Dash,()=>H.set(0.00010001)).with(M.Chain.Dogecoin,()=>H.set(1.00000001)).with(M.Chain.Avalanche,M.Chain.Ethereum,M.Chain.Arbitrum,M.Chain.BinanceSmartChain,()=>H.set(0.00000001)).with(M.Chain.THORChain,M.Chain.Maya,()=>H.set(0)).with(M.Chain.Cosmos,M.Chain.Kujira,()=>H.set(0.000001)).otherwise(()=>H.set(0.00000001))}async function yA({chain:A,address:H,ticker:T}){let L=y.includes(A)?`${A}:${H||T}`:`${A}:${H||T}`.toUpperCase(),R=AT(L);if(R)return R;if(!H){let{baseDecimal:u}=M.getChainConfig(A);return{decimals:u,identifier:`${A}.${T||"UNKNOWN"}`}}let I=await qN({address:H,chain:A}),$=`${A}.${I.ticker||T||"UNKNOWN"}-${H}`;return f({condition:!!(!I.ticker&&T),id:`async_token_lookup_failed_${A}_${H}`,warning:`Could not fetch token metadata for ${A}:${H} from chain. Using user-provided ticker (${T}) with baseDecimal (${I.decimals}).`}),I.ticker&&HT(L,{decimals:I.decimals,identifier:$}),{decimals:I.decimals,identifier:$}}function pN({identifier:A,decimal:H,value:T,tax:P}){return KN(A),new Q({decimal:H,identifier:A,tax:P,value:HN(T,H)})}function PT(A,H=0){let T=A.includes(".")?A.split(".")?.[0]?.toUpperCase():void 0,P=T?fN.includes(T):!1,L=A.slice(0,14).includes("~")?"~":"/",[R,I]=P?A.split(".").slice(1).join().split(L):A.split(L);if(!(R&&I))throw new G({errorKey:"helpers_invalid_asset_identifier",info:{identifier:A}});return new Q({decimal:8,identifier:`${T||M.Chain.THORChain}.${R}${L}${I}`,value:HN(H,8)})}async function LT({address:A,chain:H,fromBaseDecimal:T,parsedValue:P}){let{decimals:L,identifier:R}=await yA({address:A,chain:H}),I=T?HN(BigInt(P),T):P;return pN({decimal:L,identifier:R,value:I})}function HN(A,H){return typeof A==="bigint"?m({bigIntDecimal:H,decimal:H,value:A}):A}function FT(A){let H=wN.match(A).when((T)=>("chain"in T)&&T.chain!==void 0,({chain:T})=>T).otherwise((T)=>{let P=K(T.asset);return P.synth?M.Chain.THORChain:P.chain});if(!M.AllChains.includes(H.toUpperCase())){let T="asset"in A?A.asset:H;throw new G({errorKey:"helpers_invalid_asset_identifier",info:{identifier:T,message:`Unsupported chain "${H}" - use the AssetValue constructor directly`}})}}function RT(A){if(FT(A),"chain"in A){let{chain:L,address:R}=A;if(R){let I=y.includes(L)?`${L}:${R}`:`${L}:${R.toUpperCase()}`,$=xN.get(I);if($)return $;return null}return L}let{chain:H,symbol:T}=K(A.asset);return tN({chain:H,symbol:T})==="Native"?H:A.asset}function IT(A,H,T){let P=A.split("."),L=P[0]?.toUpperCase(),R=fN.includes(L),I=T?"~":"/",[$,u=""]=R?P.slice(1).join(".").split(I):A.split(I);if(!($&&u))throw new G({errorKey:"helpers_invalid_asset_identifier",info:{identifier:A}});let{ticker:g,address:E}=pA({chain:$,symbol:u}),n=`${$}${I}${u}`;return{address:E,chain:L,isGasAsset:!1,isSynthetic:H,isTradeAsset:T,symbol:n,ticker:g}}function BT(A){let H=A.indexOf("."),T=(H===-1?A:A.slice(0,H)).toUpperCase(),P=H===-1?A:A.slice(H+1),{address:L,ticker:R}=pA({chain:T,symbol:P}),I;try{I=L&&M.EVMChains.includes(T)&&yN.getAddress(L)?yN.getAddress(L):L}catch{I=L}let $=I?`${R}-${I}`:P;return{address:I,chain:T,isGasAsset:kN({chain:T,symbol:P}),isSynthetic:!1,isTradeAsset:!1,symbol:$,ticker:R}}function mA(A){let H=A.slice(0,14),T=H.includes("/"),P=H.includes("~");if(T||P)return IT(A,T,P);return BT(A)}function pA({symbol:A,chain:H}){let{ticker:T,address:P}=e(A,H);return{address:P&&!y.includes(H)?P.toLowerCase():P,ticker:T}}var uT={};w(uT,{SwapKitNumber:()=>uN});class uN extends k{eq(A){return this.eqValue(A)}static fromBigInt(A,H){return new uN({decimal:H,value:m({bigIntDecimal:H,decimal:H,value:A})})}}function fA(A=!0){return A?"https://midgard.thorchain.network":"https://midgard.mayachain.info"}function OT(A=!0){let H=fA(A);return A?`${H}/v2/thorname`:`${H}/v2/mayaname`}function GT(A){return function(T){let P=T?`?status=${T}`:"";return O.get(`${A}/v2/pools${P}`)}}function MT(A){return function(T){return O.get(`${A}/v2/pool/${T}`)}}function nT(A){return function(T,P){let L=P?`?period=${P}`:"";return O.get(`${A}/v2/pool/${T}/stats${L}`)}}function _T(A){return function(T,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"";return O.get(`${A}/v2/history/depths/${T}${R}`)}}function YT(A){return function(){return O.get(`${A}/v2/network`)}}function gT(A){return function(){return O.get(`${A}/v2/health`)}}function DT(A){return function(){return O.get(`${A}/v2/nodes`)}}function UT(A){return function(T){return O.get(`${A}/v2/node/${T}`)}}function XT(A){return function(){return O.get(`${A}/v2/mimir/votes`)}}function ST(A){return function(){return O.get(`${A}/v2/mimir`)}}function ET(A){return function(){return O.get(`${A}/v2/constants`)}}function tT(A){return function(){return O.get(`${A}/v2/stats`)}}function bT(A){return function(T){let P=new URLSearchParams;if(T?.interval)P.append("interval",T.interval);if(T?.count)P.append("count",T.count.toString());if(T?.from)P.append("from",T.from.toString());if(T?.to)P.append("to",T.to.toString());let L=P.toString()?`?${P.toString()}`:"";return O.get(`${A}/v2/history/earnings${L}`)}}function xT(A){return function(T,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"",I=T?`/swaps/${T}`:"/swaps";return O.get(`${A}/v2/history${I}${R}`)}}function wT(A){return function(T){let P=new URLSearchParams;if(T?.interval)P.append("interval",T.interval);if(T?.count)P.append("count",T.count.toString());if(T?.from)P.append("from",T.from.toString());if(T?.to)P.append("to",T.to.toString());let L=P.toString()?`?${P.toString()}`:"";return O.get(`${A}/v2/history/tvl${L}`)}}function zT(A){if(!A)return"";let H=new URLSearchParams,T=(P,L)=>{if(L!==void 0)H.append(P,typeof L==="number"?L.toString():L)};return T("address",A.address),T("txid",A.txid),T("asset",A.asset),T("type",A.type),T("affiliate",A.affiliate),T("limit",A.limit),T("offset",A.offset),H.toString()?`?${H.toString()}`:""}function QT(A){return function(T){let P=zT(T);return O.get(`${A}/v2/actions${P}`)}}function JT(A){return function(T){return O.get(`${A}/v2/member/${T}`)}}function ZT(A){return function(T){let P=T?`/${T}`:"";return O.get(`${A}/v2/members${P}`)}}function WT(A){return function(T,P){let L=P?`&asset=${P}`:"";return O.get(`${A}/v2/saver/${T}${L?`?${L.substring(1)}`:""}`)}}function jT(A){return function(T){return O.get(`${A}/v2/savers/${T}`)}}function VT(A){return function(T,P){let L=new URLSearchParams;if(P?.interval)L.append("interval",P.interval);if(P?.count)L.append("count",P.count.toString());if(P?.from)L.append("from",P.from.toString());if(P?.to)L.append("to",P.to.toString());let R=L.toString()?`?${L.toString()}`:"",I=T?`/savers/${T}`:"/savers";return O.get(`${A}/v2/history${I}${R}`)}}function vT(A){return function(T){return O.get(`${A}/v2/balance/${T}`)}}function qT(A){return async function(T){let P=(L)=>{if(L?.cause?.status===404)return;throw L};return await O.get(`${A}/lookup/${T}`,{onError:P,retry:{maxRetries:1}})}}function kT(A){return async function(T){let P=(L)=>{if(L?.cause?.status===404)return[];throw L};return await O.get(`${A}/rlookup/${T}`,{onError:P,retry:{maxRetries:1}})}}function KT(A){return async function(T){let P=(L)=>{if(L?.cause?.status===404)return[];throw L};return await O.get(`${A}/owner/${T}`,{onError:P,retry:{maxRetries:1}})}}function TN({asset:A,value:H}){return Q.from({asset:A,fromBaseDecimal:d.getChainConfig(d.Chain.THORChain).baseDecimal,value:H})}function mT({liquidityPositionGetter:A,isThorchain:H}){return async function(P){let L=await A(P),R=H?"rune":"cacao";return L.pools.map((I)=>({[`${R}Pending`]:TN({asset:"THOR.RUNE",value:I.runePending}),[`${R}RegisteredAddress`]:I.runeAddress,[`${R}Withdrawn`]:TN({asset:"THOR.RUNE",value:I.runeWithdrawn}),[R]:TN({asset:"THOR.RUNE",value:I.runeAdded}),asset:TN({asset:I.pool,value:I.assetAdded}),assetPending:TN({asset:I.pool,value:I.assetPending}),assetRegisteredAddress:I.assetAddress,assetWithdrawn:TN({asset:I.pool,value:I.assetWithdrawn}),dateFirstAdded:I.dateFirstAdded,dateLastAdded:I.dateLastAdded,poolShare:new uN(I.liquidityUnits).div(I.pool)}))}}function oA(A){let H=A===d.Chain.THORChain,T=fA(H),P=OT(H),L=JT(T);return{getActions:QT(T),getBalance:vT(T),getConstants:ET(T),getEarningsHistory:bT(T),getHealth:gT(T),getLiquidityPosition:mT({isThorchain:H,liquidityPositionGetter:L}),getLiquidityPositionRaw:L,getMembers:ZT(T),getMimir:ST(T),getMimirVotes:XT(T),getNameDetails:qT(P),getNamesByAddress:kT(P),getNamesByOwner:KT(P),getNetworkInfo:YT(T),getNode:UT(T),getNodes:DT(T),getPool:MT(T),getPoolDepthHistory:_T(T),getPoolStats:nT(T),getPools:GT(T),getSaverDetails:WT(T),getSavers:jT(T),getSaversHistory:VT(T),getStats:tT(T),getSwapHistory:xT(T),getTVLHistory:wT(T)}}var CA=oA(d.Chain.THORChain),dA=oA(d.Chain.Maya);var MA={};w(MA,{getTrackerDetails:()=>EP,getTokenListProviders:()=>zP,getTokenList:()=>QP,getTokenApproval:()=>wP,getSwapTo:()=>KP,getSwapQuote:()=>tP,getRouteWithTx:()=>bP,getPrice:()=>JP,getNearDepositChannel:()=>jP,getGasRate:()=>ZP,getChainflipDepositChannel:()=>WP,getChainBalance:()=>xP,SKRequestClient:()=>Z});var JN=require("@swapkit/types"),p=require("ts-pattern");var yT={};w(yT,{signWidgetRequest:()=>oN});async function oN(A,H,T,P){let L=`${H}:${T}:${P}`,R=new TextEncoder,I=await crypto.subtle.importKey("raw",R.encode(A),{hash:"SHA-256",name:"HMAC"},!1,["sign"]),$=await crypto.subtle.sign("HMAC",I,R.encode(L));return Array.from(new Uint8Array($)).map((u)=>u.toString(16).padStart(2,"0")).join("")}var v=require("@swapkit/types"),N=require("zod");var dN;((P)=>{P.CHEAPEST="CHEAPEST";P.FASTEST="FASTEST";P.RECOMMENDED="RECOMMENDED"})(dN||={});var ON;(($)=>{$.PSBT="PSBT";$.EVM="EVM";$.COSMOS="COSMOS";$.RADIX="RADIX";$.NEAR="NEAR";$.TON="TON";$.TRON="TRON"})(ON||={});var hN;((b)=>{b.approve="approve";b.claim="claim";b.deposit="deposit";b.donate="donate";b.lending="lending";b.lp_action="lp_action";b.native_contract_call="native_contract_call";b.native_send="native_send";b.stake="stake";b.streaming_swap="streaming_swap";b.swap="swap";b.thorname_action="thorname_action";b.token_contract_call="token_contract_call";b.token_transfer="token_transfer";b.unknown="unknown";b.unstake="unstake"})(hN||={});var cN;((U)=>{U.swap="swap";U.aggregation="aggregation";U.addLiquidity="addLiquidity";U.withdrawLiquidity="withdrawLiquidity";U.addSavers="addSavers";U.withdrawSavers="withdrawSavers";U.borrow="borrow";U.repay="repay";U.name="name";U.donate="donate";U.claim="claim";U.stake="stake";U.unstake="unstake"})(cN||={});var lN;(($)=>{$.unknown="unknown";$.not_started="not_started";$.pending="pending";$.swapping="swapping";$.completed="completed";$.refunded="refunded";$.failed="failed"})(lN||={});var rN;((t)=>{t.not_started="not_started";t.starting="starting";t.broadcasted="broadcasted";t.mempool="mempool";t.inbound="inbound";t.outbound="outbound";t.swapping="swapping";t.completed="completed";t.refunded="refunded";t.partially_refunded="partially_refunded";t.dropped="dropped";t.reverted="reverted";t.replaced="replaced";t.retries_exceeded="retries_exceeded";t.parsing_error="parsing_error"})(rN||={});var pT=N.object({address:N.optional(N.string()),chain:N.z.enum(v.Chain).optional(),chainId:N.z.enum(v.ChainId),coingeckoId:N.optional(N.string()),decimals:N.coerce.number(),extensions:N.optional(N.z.looseObject({})),identifier:N.string(),logoURI:N.optional(N.string()),name:N.optional(N.string()),shortCode:N.optional(N.string()),symbol:N.optional(N.string()),ticker:N.string()}),fT=N.z.object({block:N.z.optional(N.z.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:N.z.optional(N.z.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:N.z.optional(N.z.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:N.z.optional(N.z.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((A)=>A.hash&&A.chainId||A.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),oT=N.z.object({forceUpdate:N.z.string().toLowerCase().transform((A)=>A==="true").pipe(N.z.boolean()).optional()}),CT=N.object({error:N.string(),message:N.string()}),h=N.object({address:N.optional(N.string()),chain:N.z.enum(v.Chain),decimal:N.optional(N.number()),isGasAsset:N.boolean(),isSynthetic:N.boolean(),symbol:N.string(),tax:N.optional(N.object({buy:N.number(),sell:N.number()})),ticker:N.string()}),iN=N.object({id:N.string(),market_cap:N.number(),name:N.string(),price_change_24h_usd:N.number(),price_change_percentage_24h_usd:N.number(),sparkline_in_7d:N.array(N.number()),timestamp:N.string(),total_volume:N.number()}).partial(),dT=N.object({cg:N.optional(iN),identifier:N.string(),price_usd:N.number(),provider:N.string(),timestamp:N.number()}),sN=N.array(N.object({cg:N.optional(iN),identifier:N.string(),price_usd:N.number(),provider:N.string(),timestamp:N.number()}).partial()),hT=N.object({affiliate:N.optional(N.string().describe("Affiliate thorname")),affiliateFee:N.optional(N.number().describe("Affiliate fee in basis points").refine((A)=>A===Math.floor(A)&&A>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:N.optional(N.boolean().describe("Allow smart contract as recipient")),allowSmartContractSender:N.optional(N.boolean().describe("Allow smart contract as sender")),buyAsset:N.string().describe("Asset to buy"),cfBoost:N.optional(N.boolean().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:N.optional(N.string().describe("Address to send asset to")),disableSecurityChecks:N.optional(N.boolean().describe("Disable security checks")),includeTx:N.optional(N.boolean().describe("Set to true to include an transaction object (EVM only)")),providers:N.optional(N.array(N.string().describe("List of providers to use").refine((A)=>x[A]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:N.optional(N.string().describe("Referrer address (referral program)")),sellAmount:N.string().describe("Amount of asset to sell").refine((A)=>+A>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:N.string().describe("Asset to sell"),slippage:N.optional(N.number().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:N.optional(N.string().describe("Address to send asset from"))}).refine((A)=>A.sellAsset!==A.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),cT=N.object({metadata:N.boolean(),tokens:N.array(N.object({identifier:N.string()}))}),eN=N.object({destinationAddress:N.string()}),lA=eN.extend({affiliateFees:N.array(N.object({brokerAddress:N.string(),feeBps:N.number()})).optional(),brokerCommissionBps:N.number().optional(),buyAsset:N.object({asset:N.string(),chain:N.string()}),channelMetadata:N.object({cfParameters:N.string().optional(),gasBudget:N.string().optional(),message:N.string().optional()}).optional(),dcaParameters:N.object({chunkInterval:N.number().optional(),numberOfChunks:N.number().optional()}).optional(),maxBoostFeeBps:N.number().optional(),refundParameters:N.object({minPrice:N.string().optional(),refundAddress:N.string().optional(),retryDuration:N.number().optional()}).optional(),sellAsset:N.object({asset:N.string(),chain:N.string()})}),aN=N.object({channelId:N.string(),depositAddress:N.string()}),CN=eN.extend({affiliateFees:N.object({feeBps:N.number(),nearId:N.string()}).optional(),buyAsset:N.string(),sellAmount:N.string(),sellAsset:N.string(),slippage:N.coerce.number(),sourceAddress:N.string()}),hA=N.object({amountIn:N.string(),amountInFormatted:N.string(),amountInUsd:N.string(),amountOut:N.string(),amountOutFormatted:N.string(),amountOutUsd:N.string(),deadline:N.string().optional(),minAmountIn:N.string(),minAmountOut:N.string(),timeEstimate:N.number().optional(),timeWhenInactive:N.string().optional()}),lT=hA.extend({depositAddress:N.string(),quote:hA,signature:N.string(),timestamp:N.string(),tx:N.unknown()}),NA=N.object({buyAsset:N.string(),buyAssetAmount:N.string(),buyAssetAmountMaxSlippage:N.string(),deadline:N.string().optional(),depositAddress:N.string(),depositAmount:N.string(),depositAsset:N.string(),tx:N.unknown()}),rT=N.object({evmCalldata:N.z.optional(N.z.string()),intentHash:N.z.optional(N.z.string()),logs:N.z.optional(N.z.unknown()),manifest:N.z.optional(N.z.unknown()),memo:N.z.optional(N.z.string()),spender:N.z.optional(N.z.string()),thorname:N.z.optional(N.z.string())}),iT=N.object({currentStage:N.string(),inboundConfirmation:N.number(),inboundObservation:N.number(),outboundDelay:N.number(),outboundObservation:N.number(),streamingSwap:N.number()}),sT=N.object({count:N.optional(N.number()),interval:N.optional(N.number()),quantity:N.optional(N.number()),subSwapsMap:N.optional(N.array(N.number()))}),eT=N.z.object({currentLegIndex:N.z.optional(N.z.number()),estimatedTimeToComplete:N.z.number(),estimates:N.z.optional(iT),providerDetails:N.z.optional(N.z.object({streamingDetails:N.z.optional(sT)}))}),aT=N.object({affiliate:N.optional(h),liquidity:N.optional(h),network:N.optional(h),protocol:N.optional(h),tax:N.optional(h)}),NP=N.object({affiliate:N.string(),bps:N.string(),isReferrer:N.boolean()}),AP=N.object({affiliate:N.optional(N.string()),affiliateFees:N.optional(N.array(NP)),broadcastedAt:N.optional(N.number()),explorerUrl:N.optional(N.string()),fees:N.optional(aT),images:N.optional(N.object({chain:N.optional(N.string()),from:N.optional(N.string()),provider:N.optional(N.string()),to:N.optional(N.string())})),provider:N.optional(N.z.enum(x)),providerAction:N.z.optional(N.z.enum(cN)),quoteId:N.optional(N.string()),wallet:N.optional(N.string())}),PN=N.z.object({block:N.z.number(),chainId:N.z.enum(v.ChainId),finalAddress:N.z.optional(N.z.string()),finalAsset:N.z.optional(h),finalisedAt:N.z.number(),fromAddress:N.z.string(),fromAmount:N.z.string(),fromAsset:N.z.string(),hash:N.z.string(),meta:N.z.optional(AP),payload:N.z.optional(rT),status:N.z.enum(lN),toAddress:N.z.string(),toAmount:N.z.string(),toAsset:N.z.string(),trackingStatus:N.z.optional(N.z.enum(rN)),transient:N.z.optional(eT),type:N.z.enum(hN)}),AA=PN.extend({legs:N.z.array(PN)}),HP=PN.extend({legs:N.array(PN)}),TP=PN.extend({legs:N.array(PN)}),zN=N.array(N.object({amount:N.string(),asset:N.string(),chain:N.string(),protocol:N.z.enum(x),type:N.z.enum(DN)})),QN=N.z.object({inbound:N.z.optional(N.z.number().describe("Time to receive inbound asset in seconds")),outbound:N.z.optional(N.z.number().describe("Time to receive outbound asset in seconds")),swap:N.z.optional(N.z.number().describe("Time to swap assets in seconds")),total:N.z.number().describe("Total time in seconds")}),PP=/^(?:0x[0-9a-fA-F]+|[0-9]+)$/;function rA(A){return A===""||PP.test(A)}function LP(A){return A?BigInt(A):0n}function FP(A){let H=typeof A==="bigint"?A:BigInt(A);return H>0n?`0x${H.toString(16)}`:"0x0"}var GN=N.string().refine(rA,{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"),HA=N.object({data:N.string().describe("Data to send"),from:N.string().describe("Address of the sender"),to:N.string().describe("Address of the recipient"),value:GN}),TA=N.z.object({data:N.z.string().optional(),raw_data:N.z.object({contract:N.z.any(),data:N.z.string().optional(),expiration:N.z.number(),fee_limit:N.z.number().optional(),ref_block_bytes:N.z.string(),ref_block_hash:N.z.string(),timestamp:N.z.number()}).passthrough(),raw_data_hex:N.z.string(),txID:N.z.string(),value:GN.optional(),visible:N.z.boolean()}),iA=N.array(N.union([N.string(),N.number(),N.array(N.string()),N.object({from:N.string(),value:GN}).describe("Parameters to pass to the contract method")])),RP=N.object({approvalSpender:N.optional(N.string().describe("Address of the spender to approve")),approvalToken:N.optional(N.string().describe("Address of the token to approve spending of")),contractAddress:N.string().describe("Address of the contract to interact with"),contractMethod:N.string().describe("Name of the method to call"),contractParamNames:N.array(N.string().describe("Names of the parameters to pass to the contract method")),contractParams:iA}),IP=N.object({typeUrl:N.string("/types.MsgDeposit"),value:N.object({coins:N.array(N.object({amount:N.string(),asset:N.object({chain:N.string(),symbol:N.string(),synth:N.boolean(),ticker:N.string()})})),memo:N.string(),signer:N.string()})}),BP=N.object({typeUrl:N.string("/types.MsgSend"),value:N.object({amount:N.array(N.object({amount:N.string(),denom:N.string()})),fromAddress:N.string(),toAddress:N.string()})}),$P=N.object({typeUrl:N.string(),value:BP.shape.value.or(IP.shape.value)}),uP=N.object({amount:N.array(N.object({amount:N.string(),denom:N.string()})),gas:N.string()}),PA=N.object({accountNumber:N.number(),chainId:N.z.enum(v.ChainId),fee:uP,memo:N.string(),msgs:N.array($P),sequence:N.number()}),sA=N.z.array(N.z.object({calldata:N.z.array(N.z.string()),contractAddress:N.z.string(),entrypoint:N.z.string()})),eA=N.z.object({address:N.z.string().describe("Destination address in friendly format"),amount:N.z.string().describe("Amount in nanotons"),payload:N.z.string().optional().describe("Base64 BOC of body cell"),stateInit:N.z.string().optional().describe("Base64 BOC of state init")}),LA=N.z.object({messages:N.z.array(eA),sendMode:N.z.number().describe("TON wallet send mode for the whole transfer")}),aA=N.object({affiliate:N.string().describe("Affiliate address").optional(),affiliateFee:N.number().describe("Affiliate fee").optional(),buyAsset:N.string().describe("Asset to buy"),destinationAddress:N.string().describe("Destination address"),estimatedTime:QN.optional(),provider:N.z.enum(x),sellAsset:N.string().describe("Asset to sell"),slipPercentage:N.number().describe("Slippage as a percentage"),sourceAddress:N.string().describe("Source address")}),OP=aA.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),NH=N.object({asset:N.string().describe("Asset name"),image:N.string().describe("Asset image"),price:N.number().describe("Price in USD")}),AH=lA,FA=N.object({assets:N.optional(N.array(NH)),maxStreamingQuantity:N.number().optional(),referrer:N.string().optional(),streamingInterval:N.number().optional(),tags:N.array(N.z.enum(dN))}),RA=FA.extend({affiliate:N.optional(N.string()),affiliateFee:N.optional(N.string()),approvalAddress:N.optional(N.string().describe("Approval address for swap")),chainflip:AH.optional(),garden:CN.optional(),near:CN.optional(),priceImpact:N.optional(N.number().describe("Price impact")),referrer:N.optional(N.string()),txType:N.optional(N.z.enum(ON))}),IA=N.array(N.object({code:N.z.enum(gN),display:N.string(),tooltip:N.string().optional()})),GP=N.object({buyAmount:N.string().describe("Buy amount"),buyAmountMaxSlippage:N.string().describe("Buy amount max slippage"),buyAsset:N.string().describe("Asset to buy"),fees:N.optional(zN),provider:N.z.enum(x),sellAmount:N.string().describe("Sell amount"),sellAsset:N.string().describe("Asset to sell")}),HH=N.object({buyAsset:N.string().describe("Asset to buy"),destinationAddress:N.optional(N.string().describe("Destination address")),estimatedTime:N.optional(QN),expectedBuyAmount:N.string().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:N.string().describe("Expected Buy amount max slippage"),expiration:N.optional(N.string().describe("Expiration")),fees:zN,inboundAddress:N.optional(N.string().describe("Inbound address")),legs:N.array(GP),memo:N.optional(N.string().describe("Memo")),meta:RA,providers:N.array(N.z.enum(x)),routeId:N.string().describe("Route ID"),sellAmount:N.string().describe("Sell amount"),sellAsset:N.string().describe("Asset to sell"),sourceAddress:N.optional(N.string().describe("Source address")),targetAddress:N.optional(N.string().describe("Target address")),totalSlippageBps:N.number().describe("Total slippage in bps"),tx:N.optional(N.union([HA,PA,TA,sA,LA,N.string()])),txType:N.optional(N.z.enum(ON)),warnings:IA}),BA=N.object({error:N.optional(N.string().describe("Error message")),providerErrors:N.optional(N.array(N.object({errorCode:N.optional(N.z.enum(i)),message:N.optional(N.string()),provider:N.z.enum(x).optional()}))),quoteId:N.string().describe("Quote ID"),routes:N.array(HH)}),$A=N.z.object({chainId:N.z.enum(v.ChainId),createdAt:N.z.date(),id:N.z.number(),unit:N.z.string(),value:N.z.string()}),MP=N.z.array($A),uA=N.z.union([$A,MP]),jL=N.array(N.object({chain:N.z.enum(v.Chain),decimal:N.number(),identifier:N.string(),symbol:N.string(),ticker:N.string(),value:N.string()})),nP=N.z.union([N.z.object({amount:N.z.string(),spender:N.z.string(),tokenIdentifier:N.z.string(),userWalletAddress:N.z.string()}),N.z.object({amount:N.z.string(),chainId:N.z.enum(v.ChainId),spender:N.z.string(),tokenContractAddress:N.z.string(),userWalletAddress:N.z.string()}),N.z.object({routeId:N.z.string()})]),_P=N.z.object({approvalTransaction:N.z.optional(N.z.object({data:N.z.string(),from:N.z.string(),gasLimit:N.z.optional(N.z.string()),gasPrice:N.z.optional(N.z.string()),to:N.z.string(),value:GN})),approvedAmount:N.z.string(),isApproved:N.z.boolean()}),TH=N.z.object({data:N.z.string().describe("Encoded approval call data"),from:N.z.string().describe("User wallet address"),gasLimit:N.z.string().optional().describe("Estimated gas limit"),gasPrice:N.z.string().optional().describe("Current gas price"),to:N.z.string().describe("Token contract address"),value:GN.describe("ETH value (always '0' for approvals)")}),cA=N.z.object({buyAmount:N.z.string().describe("Buy amount").optional(),buyAmountMaxSlippage:N.z.string().describe("Buy amount max slippage").optional(),buyAsset:N.z.string().describe("Asset to buy"),expectedBuyAmount:N.z.string().describe("Expected Buy amount").optional(),expectedBuyAmountMaxSlippage:N.z.string().describe("Expected Buy amount max slippage").optional(),fees:zN,provider:N.z.enum(x),sellAmount:N.z.string().describe("Sell amount"),sellAsset:N.z.string().describe("Asset to sell")}),PH=cA.extend({estimatedTime:N.z.optional(QN),expiration:N.z.optional(N.z.string().describe("Expiration")),legs:N.z.array(cA),providers:N.z.array(N.z.enum(x)),routeId:N.z.string().describe("Route ID"),totalSlippageBps:N.z.number().describe("Total slippage in bps"),warnings:IA}).omit({provider:!0}),YP=N.z.object({method:N.z.string(),payload:N.z.optional(N.z.unknown()),url:N.z.string()}),gP=PH.extend({meta:FA,nextActions:N.z.optional(N.z.array(YP))}),DP=N.z.object({error:N.z.optional(N.z.string().describe("Error message")),providerErrors:N.z.optional(N.z.array(N.z.object({errorCode:N.z.optional(N.z.enum(i)),message:N.z.optional(N.z.string()),provider:N.z.enum(x).optional()}))),quoteId:N.z.string().describe("Quote ID"),routes:N.z.array(gP)}),UP=N.z.object({providers:N.z.array(N.z.enum(x)).optional().describe("Optional list of providers to query for trading pairs"),sellAsset:N.z.string().describe("Asset identifier to sell (e.g., 'BTC.BTC' or 'ETH.ETH')")}),LH=N.z.object({chain:N.z.enum(v.Chain).describe("Chain the asset is on"),identifier:N.z.string().describe("Asset identifier (e.g., 'ETH.USDC-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')"),providers:N.z.array(N.z.enum(x)).describe("Providers that support this trading pair"),symbol:N.z.string().describe("Asset symbol"),ticker:N.z.string().describe("Asset ticker")}),XP=N.z.object({buyAssets:N.z.array(LH).describe("List of assets that can be swapped to"),sellAsset:N.z.string().describe("The input sell asset identifier")}),OA=PH.extend({destinationAddress:N.z.string().describe("Destination address"),inboundAddress:N.z.optional(N.z.string().describe("Inbound address")),memo:N.z.optional(N.z.string().describe("Memo to include in the transaction")),meta:RA,sourceAddress:N.z.string().describe("Source address"),targetAddress:N.z.optional(N.z.string().describe("Target address")),tx:N.optional(N.union([HA,PA,TA,LA,N.string()])),txType:N.z.optional(N.z.enum(ON))}),FH=N.z.object({data:N.z.optional(N.z.record(N.z.string(),N.z.string().optional())),errorCode:N.z.enum(i),message:N.z.string().optional(),provider:N.z.enum(x).optional()}),SP=N.z.object({error:N.z.optional(N.z.string().describe("Error message")),providerErrors:N.z.optional(N.z.array(FH)),quoteId:N.z.string().describe("Quote ID"),routes:N.z.array(OA)}),GA=OA.extend({approvalTx:TH.optional().describe("Optional approval transaction if ERC-20 approval is required before swap"),swapId:N.z.string().describe("The unique swap ID for tracking")});var Z=O.extend({dynamicHeader:async()=>{let A=D.get("widgetId"),H=D.get("widgetKey");if(A&&H&&typeof window<"u"){let P=Math.floor(Date.now()/1000),L=window.location.origin,R=await oN(H,A,L,P);return{Origin:L,"X-Signature":R,"X-Timestamp":P.toString(),"x-widget-id":A}}let{swapKit:T}=D.get("apiKeys");return T?{"x-api-key":T}:{}}});async function EP(A){let H=await Z.post(J("/track"),{json:A});try{let T=AA.safeParse(H);if(!T.success)throw new G("api_v2_invalid_response",T.error);return T.data}catch(T){return H}}async function tP(A){let{getQuote:H}=D.get("endpoints");if(H)return H(A);let P=D.get("v3SwapFlow")?.enabled?"/v3/quote":"/quote",L=await Z.post(J(P),{json:A});if(L.error)throw new G("api_v2_server_error",{message:L.error});try{let R=BA.safeParse(L);if(!R.success)throw new G("api_v2_invalid_response",R.error);return R.data}catch{return L}}async function bP(A){let{getRouteWithTx:H}=D.get("endpoints");if(H)return H(A);let P=D.get("v3SwapFlow")?.enabled?"/v3/swap":"/swap",L=await Z.post(J(P),{json:A});try{let R=GA.safeParse(L);if(!R.success)throw new G("api_v2_invalid_response",R.error);return R.data}catch(R){return console.error(new G("api_v2_invalid_response",R)),L}}async function xP({chain:A,address:H,scamFilter:T=!0}){let{getBalance:P}=D.get("endpoints");if(P)return P({address:H,chain:A});let L=J(`/balance?chain=${A}&address=${H}`),R=await Z.get(L),I=Array.isArray(R)?R:[];return T?kP(I):I}function wP(A){let H=p.match(A).with({routeId:p.P.string,spender:p.P.string},({routeId:T,spender:P})=>J(`/approve?routeId=${T}&sourceAddress=${P}`)).with({assetValue:p.P.instanceOf(Q),spender:p.P.string,userWallet:p.P.string},({spender:T,userWallet:P,assetValue:L})=>J(`/approve?tokenIdentifier=${L.toString()}&userWalletAddress=${P}&spender=${T}&amount=${L.getValue("string")}`)).exhaustive();return Z.get(H)}function zP(){let A=J("/providers");return Z.get(A)}function QP(A){let H=J(`/tokens?provider=${A}`);return Z.get(H)}async function JP(A){let H=J("/price"),T=await Z.post(H,{json:A});try{let P=sN.safeParse(T);if(!P.success)throw new G("api_v2_invalid_response",P.error);return P.data}catch(P){throw new G("api_v2_invalid_response",P)}}async function ZP(){let A=J("/gas"),H=await Z.get(A);try{let T=uA.safeParse(H);if(!T.success)throw new G("api_v2_invalid_response",T.error);return Array.isArray(T)?T:[T]}catch(T){throw new G("api_v2_invalid_response",T)}}async function WP(A){let{destinationAddress:H}=A;if(!H)throw new G("chainflip_broker_invalid_params");let T=D.get("integrations").chainflip?.brokerUrl||J("/chainflip/broker/channel"),P=await Z.post(T,{json:A});try{let L=aN.safeParse(P);if(!L.success)throw new G("api_v2_invalid_response",L.error);return L.data}catch(L){throw new G("api_v2_invalid_response",L)}}async function jP(A){let{destinationAddress:H}=A;if(!H)throw new G("chainflip_broker_invalid_params");let T=J("/near/channel"),P=await Z.post(T,{json:A});try{let L=NA.safeParse(P);if(!L.success)throw new G("api_v2_invalid_response",L.error);return L.data}catch(L){throw new G("api_v2_invalid_response",L)}}function J(A){let{isDev:H,apiUrl:T,devApiUrl:P}=D.get("envs"),{enabled:L,quoteUrl:R,swapUrl:I}=D.get("localMode");if(L&&A){let[u]=A.split("?");if(u==="/quote"||u==="/v3/quote")return`${R}${A}`;if(u==="/swap"||u==="/v3/swap")return`${I}${A}`}return`${H?P:T}${A}`}function VP(A){try{return Q.from({asset:A.identifier})}catch{return}}var vP=new Set(["OP.OP"]),qP=/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/im;function kP(A){return A.filter((H)=>{let T=VP(H);if(!T)return!1;if(vP.has(T.toString().toUpperCase()))return!0;return(!JN.EVMChains.includes(T.chain)||T.isGasAsset||!!T.address)&&!qP.test(T.ticker)})}async function KP(A){let{getSwapTo:H}=D.get("endpoints");if(H)return H(A);let T=new URLSearchParams({sellAsset:A.sellAsset});if(A.providers?.length)for(let I of A.providers)T.append("providers",I);let P=J(`/swapTo?${T.toString()}`),L=await Z.get(P);if(!Array.isArray(L))return{buyAssets:[],sellAsset:A.sellAsset};let R=[];for(let I of L)try{let $=Q.from({asset:I});R.push({chain:$.chain,identifier:$.toString(),providers:[],symbol:$.symbol,ticker:$.ticker})}catch{}return{buyAssets:R,sellAsset:A.sellAsset}}var nA={};w(nA,{getThorchainQueue:()=>pP,getTcyStakers:()=>rP,getTcyStaker:()=>lP,getTcyClaimers:()=>sP,getTcyClaimer:()=>iP,getTNSPreferredAsset:()=>dP,getTHORNodeTNSDetails:()=>IH,getRunePoolProviderInfo:()=>cP,getRunePoolInfo:()=>hP,getNodes:()=>fP,getMimirInfo:()=>oP,getLastBlock:()=>yP,getInboundAddresses:()=>CP});var RH=require("ts-pattern");function j(A){let{isStagenet:H}=D.get("envs"),T=D.get("thornodeUrls");return`${RH.match({isStagenet:H,type:A}).with({type:"mayachain"},({isStagenet:L})=>L?T.MAYA_STAGENET:T.MAYA).otherwise(({isStagenet:L})=>L?T.THOR_STAGENET:T.THOR)}/${A??"thorchain"}`}function mP(A){let H=A==="mayachain"?"mayaname":"thorname";return`${j(A)}/${H}`}function yP(A="thorchain"){return O.get(`${j(A)}/lastblock`)}function pP(A){return O.get(`${j(A)}/queue`)}function fP(A){return O.get(`${j(A)}/nodes`)}function oP(A){return O.get(`${j(A)}/mimir`)}function CP(A){return O.get(`${j(A)}/inbound_addresses`)}async function IH({type:A,name:H}){try{return await O.get(`${mP(A)}/${H}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:H,owner:"",preferred_asset:""}}}async function dP({type:A,tns:H}){let T=await IH({name:H,type:A});if(!T.preferred_asset||T.preferred_asset===".")return;return Q.from({asset:T.preferred_asset,asyncTokenLookup:!0})}function hP(A){return O.get(`${j(A)}/runepool`)}function cP({type:A,thorAddress:H}){return O.get(`${j(A)}/rune_provider/${H}`)}function lP({type:A,address:H}){return O.get(`${j(A)}/tcy_staker/${H}`)}function rP(A){return O.get(`${j(A)}/tcy_stakers`)}function iP({type:A,address:H}){return O.get(`${j(A)}/tcy_claimer/${H}`)}function sP(A){return O.get(`${j(A)}/tcy_claimers`)}var eP={...MA,mayachainMidgard:dA,thorchainMidgard:CA,thornode:nA};
package/dist/api/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as n,Aa as O,Ba as P,Ca as Q,Da as R,Ea as S,Fa as T,Ga as U,Ha as V,Ia as W,Ja as X,Ka as Y,La as Z,Ma as _,Na as $,O as a,Oa as aa,P as b,Pa as ba,Q as c,Qa as ca,R as d,S as e,T as f,U as g,V as h,W as i,X as j,Y as k,Z as l,_ as m,aa as o,ba as p,ca as q,da as r,ea as s,fa as t,ga as u,ha as v,ia as w,ja as x,ka as y,la as z,ma as A,na as B,oa as C,pa as D,qa as E,ra as F,sa as G,ta as H,ua as I,va as J,wa as K,xa as L,ya as M,za as N}from"../chunk-tf9f4rzs.js";export{c as TxnType,e as TxnStatus,C as TronTransactionSchema,x as TransactionSchema,y as TransactionDTOSchema,f as TrackingStatus,h as TrackingRequestSchema,i as TrackingRequestQuerySchema,w as TrackerResponseSchema,g as TokenSchema,m as TokenDetailsMetadataSchema,H as TONTransactionSchema,Z as SwapToResponseSchema,X as SwapToRequestSchema,Y as SwapToAssetSchema,ba as SwapRouteV2ResponseSchema,ca as SwapKitApi,G as StarknetTransactionSchema,O as RouteQuoteWarningSchema,b as RouteQuoteTxType,$ as RouteQuoteProviderErrorSchema,N as RouteQuoteMetadataV2Schema,M as RouteQuoteMetadataSchema,K as RouteQuoteMetadataAssetSchema,J as RouteLegWithoutAddressesSchema,I as RouteLegSchema,W as QuoteV3ResponseSchema,aa as QuoteV2ResponseSchema,_ as QuoteRouteV2Response,Q as QuoteResponseSchema,P as QuoteResponseRouteItem,o as QuoteRequestSchema,d as ProviderAction,a as PriorityLabel,n as PriceResponseSchema,p as PriceRequestSchema,v as NearSwapResponseSchema,u as NearDepositChannelResultSchema,t as NearDepositChannelParamsSchema,R as GasSchema,S as GasResponseSchema,z as FeesSchema,A as EstimatedTimeSchema,B as EVMTransactionSchema,E as EVMTransactionDetailsSchema,D as EVMTransactionDetailsParamsSchema,s as DepositChannelResponseSchema,q as DepositChannelParamsSchema,F as CosmosTransactionSchema,l as CoinGeckoMetadataSchema,L as ChainflipMetadataSchema,r as BrokerDepositChannelParamsSchema,k as AssetValueSchema,U as ApproveResponseSchema,T as ApproveRequestParams,V as ApprovalTransactionSchema,j as ApiV2ErrorSchema};
1
+ import{$ as n,Aa as O,Ba as P,Ca as Q,Da as R,Ea as S,Fa as T,Ga as U,Ha as V,Ia as W,Ja as X,Ka as Y,La as Z,Ma as _,Na as $,O as a,Oa as aa,P as b,Pa as ba,Q as c,Qa as ca,R as d,Ra as da,S as e,Sa as ea,T as f,Ta as fa,U as g,Ua as ga,V as h,W as i,X as j,Y as k,Z as l,_ as m,aa as o,ba as p,ca as q,da as r,ea as s,fa as t,ga as u,ha as v,ia as w,ja as x,ka as y,la as z,ma as A,na as B,oa as C,pa as D,qa as E,ra as F,sa as G,ta as H,ua as I,va as J,wa as K,xa as L,ya as M,za as N}from"../chunk-hma0zdy9.js";export{D as toHexTransactionValue,C as parseTransactionValue,B as isTransactionValue,c as TxnType,e as TxnStatus,F as TronTransactionSchema,x as TransactionSchema,y as TransactionDTOSchema,f as TrackingStatus,h as TrackingRequestSchema,i as TrackingRequestQuerySchema,w as TrackerResponseSchema,g as TokenSchema,m as TokenDetailsMetadataSchema,L as TONTransactionSchema,K as TONTransactionMessageSchema,ba as SwapToResponseSchema,$ as SwapToRequestSchema,aa as SwapToAssetSchema,fa as SwapRouteV2ResponseSchema,ga as SwapKitApi,J as StarknetTransactionSchema,S as RouteQuoteWarningSchema,b as RouteQuoteTxType,da as RouteQuoteProviderErrorSchema,R as RouteQuoteMetadataV2Schema,Q as RouteQuoteMetadataSchema,O as RouteQuoteMetadataAssetSchema,N as RouteLegWithoutAddressesSchema,M as RouteLegSchema,_ as QuoteV3ResponseSchema,ea as QuoteV2ResponseSchema,ca as QuoteRouteV2Response,U as QuoteResponseSchema,T as QuoteResponseRouteItem,o as QuoteRequestSchema,d as ProviderAction,a as PriorityLabel,n as PriceResponseSchema,p as PriceRequestSchema,v as NearSwapResponseSchema,u as NearDepositChannelResultSchema,t as NearDepositChannelParamsSchema,V as GasSchema,W as GasResponseSchema,z as FeesSchema,A as EstimatedTimeSchema,E as EVMTransactionSchema,H as EVMTransactionDetailsSchema,G as EVMTransactionDetailsParamsSchema,s as DepositChannelResponseSchema,q as DepositChannelParamsSchema,I as CosmosTransactionSchema,l as CoinGeckoMetadataSchema,P as ChainflipMetadataSchema,r as BrokerDepositChannelParamsSchema,k as AssetValueSchema,Y as ApproveResponseSchema,X as ApproveRequestParams,Z as ApprovalTransactionSchema,j as ApiV2ErrorSchema};