@swapkit/helpers 1.5.0 → 1.5.1
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/dist/index.js +3 -3
- package/dist/index.js.map +2 -2
- package/package.json +7 -7
- package/src/helpers/derivationPath.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var e=((x)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(x,{get:(F,n)=>(typeof require!=="undefined"?require:F)[n]}):x)(function(x){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});export*from"@swapkit/contracts";var d;((P)=>{P.Arbitrum="https://arb1.arbitrum.io/rpc";P.Avalanche="https://node-router.thorswap.net/avalanche-c";P.BinanceSmartChain="https://bsc-dataseed.binance.org";P.Bitcoin="https://node-router.thorswap.net/bitcoin";P.BitcoinCash="https://node-router.thorswap.net/bitcoin-cash";P.Chainflip="wss://mainnet-archive.chainflip.io";P.Cosmos="https://node-router.thorswap.net/cosmos/rpc";P.Dash="https://node-router.thorswap.net/dash";P.Dogecoin="https://node-router.thorswap.net/dogecoin";P.Ethereum="https://node-router.thorswap.net/ethereum";P.Kujira="https://rpc-kujira.synergynodes.com/";P.Litecoin="https://node-router.thorswap.net/litecoin";P.Maya="https://tendermint.mayachain.info";P.MayaStagenet="https://stagenet.tendermint.mayachain.info";P.Optimism="https://mainnet.optimism.io";P.Polkadot="wss://rpc.polkadot.io";P.Polygon="https://polygon-rpc.com";P.Radix="https://radix-mainnet.rpc.grove.city/v1/326002fc/core";P.THORChain="https://rpc.thorswap.net";P.THORChainStagenet="https://stagenet-rpc.ninerealms.com";P.Solana="https://mainnet.helius-rpc.com/?api-key=2cbe3ae6-cfc5-4141-a093-0055d0fa3d80"})(d||={});var t;((k)=>{k.Arbitrum="https://arbiscan.io";k.Avalanche="https://snowtrace.io";k.BinanceSmartChain="https://bscscan.com";k.Bitcoin="https://blockchair.com/bitcoin";k.BitcoinCash="https://www.blockchair.com/bitcoin-cash";k.Chainflip="https://explorer.polkascan.io/polkadot";k.Cosmos="https://www.mintscan.io/cosmos";k.Dash="https://blockchair.com/dash";k.Dogecoin="https://blockchair.com/dogecoin";k.Ethereum="https://etherscan.io";k.Kujira="https://finder.kujira.network/kaiyo-1";k.Litecoin="https://blockchair.com/litecoin";k.Maya="https://www.mayascan.org";k.Optimism="https://optimistic.etherscan.io";k.Polkadot="https://polkadot.subscan.io";k.Polygon="https://polygonscan.com";k.Radix="https://dashboard.radixdlt.com";k.THORChain="https://runescan.io";k.Solana="https://solscan.io"})(t||={});var Y;((k)=>{k.Arbitrum="ARB";k.Avalanche="AVAX";k.BinanceSmartChain="BSC";k.Bitcoin="BTC";k.BitcoinCash="BCH";k.Cosmos="GAIA";k.Dash="DASH";k.Dogecoin="DOGE";k.Ethereum="ETH";k.Kujira="KUJI";k.Litecoin="LTC";k.Maya="MAYA";k.Optimism="OP";k.Polkadot="DOT";k.Chainflip="FLIP";k.Polygon="MATIC";k.Radix="XRD";k.THORChain="THOR";k.Solana="SOL"})(Y||={});var u;((A)=>{A.Arbitrum="42161";A.ArbitrumHex="0xa4b1";A.Avalanche="43114";A.AvalancheHex="0xa86a";A.BinanceSmartChain="56";A.BinanceSmartChainHex="0x38";A.Bitcoin="bitcoin";A.BitcoinCash="bitcoincash";A.Chainflip="chainflip";A.Cosmos="cosmoshub-4";A.Dash="dash";A.Dogecoin="dogecoin";A.Kujira="kaiyo-1";A.Ethereum="1";A.EthereumHex="0x1";A.Litecoin="litecoin";A.Maya="mayachain-mainnet-v1";A.MayaStagenet="mayachain-stagenet-v1";A.Optimism="10";A.OptimismHex="0xa";A.Polkadot="polkadot";A.Polygon="137";A.PolygonHex="0x89";A.Radix="radix-mainnet";A.THORChain="thorchain-mainnet-v1";A.THORChainStagenet="thorchain-stagenet-v2";A.Solana="solana"})(u||={});var kF={["0xa4b1"]:"ARB",["42161"]:"ARB",["0xa86a"]:"AVAX",["43114"]:"AVAX",["0x38"]:"BSC",["56"]:"BSC",["bitcoincash"]:"BCH",["bitcoin"]:"BTC",["chainflip"]:"FLIP",["cosmoshub-4"]:"GAIA",["dash"]:"DASH",["dogecoin"]:"DOGE",["0x1"]:"ETH",["kaiyo-1"]:"KUJI",["1"]:"ETH",["litecoin"]:"LTC",["mayachain-stagenet-v1"]:"MAYA",["mayachain-mainnet-v1"]:"MAYA",["0xa"]:"OP",["10"]:"OP",["polkadot"]:"DOT",["0x89"]:"MATIC",["137"]:"MATIC",["radix-mainnet"]:"XRD",["thorchain-stagenet-v2"]:"THOR",["thorchain-mainnet-v1"]:"THOR",["solana"]:"SOL"},$x=Object.keys(Y),C=Object.values(Y),z;((T)=>{T[T.ARB=18]="ARB";T[T.AVAX=18]="AVAX";T[T.BCH=8]="BCH";T[T.BSC=18]="BSC";T[T.BTC=8]="BTC";T[T.DASH=8]="DASH";T[T.DOGE=8]="DOGE";T[T.DOT=10]="DOT";T[T.ETH=18]="ETH";T[T.FLIP=18]="FLIP";T[T.GAIA=6]="GAIA";T[T.KUJI=6]="KUJI";T[T.LTC=8]="LTC";T[T.MATIC=18]="MATIC";T[T.MAYA=8]="MAYA";T[T.OP=18]="OP";T[T.SOL=9]="SOL";T[T.THOR=8]="THOR";T[T.XRD=18]="XRD";T[T.ZEC=8]="ZEC"})(z||={});var TF=["DOT","FLIP"],y=["ETH","AVAX","BSC","ARB","OP","MATIC"],_F=["BTC","BCH","DASH","DOGE","LTC"],GF=["GAIA","THOR","MAYA","KUJI"],LF=["AVAX","BSC","BTC","BCH","GAIA","DOGE","ETH","LTC","THOR"],AF=["ARB","DASH","ETH","KUJI","MAYA","THOR"],v=C.reduce((x,F)=>{const n=$x.find((H)=>Y[H]===F);if(n)x[F]=n;return x},{}),xx=C.reduce((x,F)=>{return x[F]=u[v[F]],x},{}),m=C.reduce((x,F)=>{return x[F]=d[v[F]],x},{}),OF=C.reduce((x,F)=>{const n=`${v[F]}Hex`;return x[F]=u[n],x},{}),PF=C.reduce((x,F)=>{return x[F]=t[v[F]],x},{});var Xx;((X)=>{X.TC_SUPPORTED_TO_TC_SUPPORTED="TC-TC";X.TC_SUPPORTED_TO_ETH="TC-ERC20";X.TC_SUPPORTED_TO_AVAX="TC-ARC20";X.TC_SUPPORTED_TO_BSC="TC-BEP20";X.ETH_TO_TC_SUPPORTED="ERC20-TC";X.ETH_TO_ETH="ERC20-ERC20";X.ETH_TO_AVAX="ERC20-ARC20";X.ETH_TO_BSC="ERC20-BEP20";X.AVAX_TO_TC_SUPPORTED="ARC20-TC";X.AVAX_TO_ETH="ARC20-ERC20";X.AVAX_TO_AVAX="ARC20-ARC20";X.AVAX_TO_BSC="ARC20-BEP20";X.BSC_TO_TC_SUPPORTED="BEP20-TC";X.BSC_TO_ETH="BEP20-ERC20";X.BSC_TO_AVAX="BEP20-ARC20";X.BSC_TO_BSC="BEP20-BEP20"})(Xx||={});var XF=["ERC20-ERC20","ARC20-ARC20","BEP20-BEP20"],jF=["ERC20-TC","ERC20-ARC20","ERC20-BEP20","ARC20-TC","ARC20-ERC20","ARC20-BEP20","BEP20-TC","BEP20-ERC20","BEP20-ARC20"],JF=["TC-TC","TC-ERC20","TC-ARC20","TC-BEP20"];var jx;((I)=>{I.ARB="0x0000000000000000000000000000000000000000";I.AVAX="0x0000000000000000000000000000000000000000";I.ETH="0x0000000000000000000000000000000000000000";I.BSC="0x0000000000000000000000000000000000000000";I.MATIC="0x0000000000000000000000000000000000001010";I.OP="0x4200000000000000000000000000000000000042"})(jx||={});var Jx;((k)=>{k.ARB="m/44'/60'/0'/0";k.AVAX="m/44'/60'/0'/0";k.BCH="m/44'/145'/0'/0";k.BSC="m/44'/60'/0'/0";k.BTC="m/84'/0'/0'/0";k.DASH="m/44'/5'/0'/0";k.DOGE="m/44'/3'/0'/0";k.DOT="////";k.ETH="m/44'/60'/0'/0";k.FLIP="////";k.GAIA="m/44'/118'/0'/0";k.KUJI="m/44'/118'/0'/0";k.LTC="m/84'/2'/0'/0";k.MATIC="m/44'/60'/0'/0";k.MAYA="m/44'/931'/0'/0";k.OP="m/44'/60'/0'/0";k.SOL="m/44'/501'/0'/0";k.THOR="m/44'/931'/0'/0";k.XRD="////"})(Jx||={});var s={ARB:[44,60,0,0,0],AVAX:[44,60,0,0,0],BCH:[44,145,0,0,0],BSC:[44,60,0,0,0],BTC:[84,0,0,0,0],DASH:[44,5,0,0,0],DOGE:[44,3,0,0,0],ETH:[44,60,0,0,0],GAIA:[44,118,0,0,0],KUJI:[44,118,0,0,0],LTC:[84,2,0,0,0],MATIC:[44,60,0,0,0],MAYA:[44,931,0,0,0],OP:[44,60,0,0,0],SOL:[44,501,0,0,0],THOR:[44,931,0,0,0],XRD:[0,0,0,0,0],DOT:[0,0,0,0,0],FLIP:[0,0,0,0,0]};var Fx;((T)=>{T.BRAVE="BRAVE";T.COINBASE_MOBILE="COINBASE_MOBILE";T.COINBASE_WEB="COINBASE_WEB";T.EIP6963="EIP6963";T.EXODUS="EXODUS";T.KEEPKEY="KEEPKEY";T.KEPLR="KEPLR";T.KEYSTORE="KEYSTORE";T.LEDGER="LEDGER";T.METAMASK="METAMASK";T.OKX="OKX";T.OKX_MOBILE="OKX_MOBILE";T.PHANTOM="PHANTOM";T.POLKADOT_JS="POLKADOT_JS";T.RADIX_WALLET="RADIX_WALLET";T.TREZOR="TREZOR";T.TALISMAN="TALISMAN";T.TRUSTWALLET_WEB="TRUSTWALLET_WEB";T.WALLETCONNECT="WALLETCONNECT";T.XDEFI="XDEFI"})(Fx||={});var zx;((H)=>{H[H.NoError=36864]="NoError";H[H.LockedDevice=21781]="LockedDevice";H[H.TC_NotFound=65535]="TC_NotFound"})(zx||={});var Zx;((H)=>{H.Average="average";H.Fast="fast";H.Fastest="fastest"})(Zx||={});var Yx;((n)=>{n.Approve="approve";n.CheckOnly="checkOnly"})(Yx||={});var nx;((L)=>{L.NAME_REGISTER="~";L.BOND="BOND";L.DEPOSIT="+";L.LEAVE="LEAVE";L.UNBOND="UNBOND";L.WITHDRAW="-";L.OPEN_LOAN="$+";L.CLOSE_LOAN="$-";L.RUNEPOOL_DEPOSIT="POOL+";L.RUNEPOOL_WITHDRAW="POOL-"})(nx||={});var wx;((h)=>{h.unknownError="unknownError";h.test_error="test_error";h.providerDetailsError="providerDetailsError";h.blockHeaderNotFound="blockHeaderNotFound";h.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";h.blockHashNotFoundAtHash="blockHashNotFoundAtHash";h.txHashMissing="txHashMissing";h.assetValueMissingInfo="assetValueMissingInfo";h.invalidAsset="invalidAsset";h.blockIsRequired="blockIsRequired";h.currentBlockHeaderNotFound="currentBlockHeaderNotFound";h.failedToRetrieveBalance="failedToRetrieveBalance";h.failedToRetrieveBlock="failedToRetrieveBlock";h.failedToRetrieveFees="failedToRetrieveFees";h.notImplementedBCH="notImplementedBCH";h.notImplementedDoge="notImplementedDoge";h.noPoolsFound="noPoolsFound";h.noVaultsFound="noVaultsFound";h.noTxFound="noTxFound";h.noInputCoinFound="noInputCoinFound";h.noBlockDataFound="noBlockDataFound";h.multipleCosmosMessages="multipleCosmosMessages";h.heightOrHashNotProvided="heightOrHashNotProvided";h.unknownDenom="unknownDenom";h.invalidBlockHeight="invalidBlockHeight";h.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";h.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";h.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";h.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";h.txMemoUndefined="txMemoUndefined";h.txMemoIncorrect="txMemoIncorrect";h.txTypeNotFound="txTypeNotFound";h.txNoMessage="txNoMessage";h.txNotFound="txNotFound";h.txReceiptNotFound="txReceiptNotFound";h.txParsingError="txParsingError";h.blockNotFound="blockNotFound";h.balanceNotFound="balanceNotFound";h.configError="configError";h.noQuoteResponse="noQuoteResponse";h.noPoolAssetsFound="noPoolAssetsFound";h.noThorchainPools="noThorchainPools";h.noMayachainPools="noMayachainPools";h.invalidAffiliateFee="invalidAffiliateFee";h.invalidBuyAssetAddress="invalidBuyAssetAddress";h.invalidSellAssetAddress="invalidSellAssetAddress";h.invalidSourceAddress="invalidSourceAddress";h.invalidDestinationAddress="invalidDestinationAddress";h.sourceAddressIsSmartContract="sourceAddressIsSmartContract";h.destinationAddressIsSmartContract="destinationAddressIsSmartContract";h.invalidChainId="invalidChainId";h.unsupportedChainId="unsupportedChainId";h.unsupportedEVMChainId="unsupportedEVMChainId";h.noWhitelistTokens="noWhitelistTokens";h.failedFetchGasPrice="failedFetchGasPrice";h.failedToCreateDepositChannel="failedToCreateDepositChannel";h.noProviderDetailsFound="noProviderDetailsFound";h.noTokenListsFound="noTokenListsFound";h.tokenNotFound="tokenNotFound";h.tokenPriceNotFound="tokenPriceNotFound";h.swapAmountTooSmall="swapAmountTooSmall";h.legsArrayIsEmpty="legsArrayIsEmpty";h.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";h.noBlockHeaderFound="noBlockHeaderFound";h.failedToSimulateSwap="failedToSimulateSwap";h.addressScreeningFailed="addressScreeningFailed";h.noLiquidtyProvidersFound="noLiquidtyProvidersFound";h.noSaversFound="noSaversFound";h.noInboundAddressesFound="noInboundAddressesFound";h.noInboundAddressFoundForChain="noInboundAddressFoundForChain";h.noLastBlocksFound="noLastBlocksFound";h.noVersionFound="noVersionFound";h.noConstantsFound="noConstantsFound";h.noMimirsFound="noMimirsFound";h.noRoutesFound="noRoutesFound";h.quoteNotFound="quoteNotFound";h.ledgerSignFailed="ledgerSignFailed";h.ledgerFetchSwapFailed="ledgerFetchSwapFailed";h.failedToFetchTx="failedToFetchTx";h.failedBuildTransactionDetails="failedBuildTransactionDetails";h.noLegsForRoute="noLegsForRoute";h.noRouterAddressFound="noRouterAddressFound";h.noAggregatorAddressFound="noAggregatorAddressFound";h.noContractInstanceFound="noContractInstanceFound";h.noContractAddressFound="noContractAddressFound";h.invalidAffiliate="invalidAffiliate";h.providerNotfound="No provider found";h.noRecordFound="No Record found";h.slippageTooLow="Slippage too low";h.tradingHalted="tradingHalted";h.noWrappedGasAsset="noWrappedGasAsset";h.aggregatorAddressNotFound="aggregatorAddressNotFound";h.routerAddressNotFound="routerAddressNotFound";h.dummyAddressNotFound="dummyAddressNotFound";h.trackerError="trackerError";h.noOhlcvDataFound="noOhlcvDataFound";h.noTradingPairs="noTradingPairs";h.noLoanPositionFound="noLoanPositionFound";h.noLendingAvailability="noLendingAvailability";h.lendingRepayTooSmall="lendingRepayTooSmall";h.missingState="missingState";h.ledgerSwapNotFound="ledgerSwapNotFound";h.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";h.errorEstimatingGas="errorEstimatingGas";h.apiKeyInvalid="apiKeyInvalid";h.apiKeyFailedToUpdate="apiKeyFailedToUpdate";h.apiKeyExpired="apiKeyExpired";h.unauthorized="unauthorized";h.failedToCreateMemo="failedToCreateMemo";h.radixIncorrectInstructions="radixIncorrectInstructions";h.invalidAddressForChain="invalidAddressForChain"})(wx||={});var Qx;((n)=>{n.highSlippage="highSlippage";n.highPriceImpact="highPriceImpact"})(Qx||={});var qx;((J)=>{J.CHAINFLIP="CHAINFLIP";J.MAYACHAIN="MAYACHAIN";J.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";J.ONEINCH="ONEINCH";J.PANCAKESWAP="PANCAKESWAP";J.PANGOLIN_V1="PANGOLIN_V1";J.SUSHISWAP_V2="SUSHISWAP_V2";J.THORCHAIN="THORCHAIN";J.THORCHAIN_STREAMING="THORCHAIN_STREAMING";J.TRADERJOE_V2="TRADERJOE_V2";J.UNISWAP_V2="UNISWAP_V2";J.UNISWAP_V3="UNISWAP_V3";J.CAVIAR_V1="CAVIAR_V1"})(qx||={});var Bx;((I)=>{I.LIQUIDITY="liquidity";I.NETWORK="network";I.INBOUND="inbound";I.OUTBOUND="outbound";I.AFFILIATE="affiliate";I.TAX="tax"})(Bx||={});import{red as kx,yellow as Vx}from"picocolors";var Wx={core_estimated_max_spendable_chain_not_supported:10002,core_extend_error:10003,core_inbound_data_not_found:10004,core_approve_asset_address_or_from_not_found:10005,core_plugin_not_found:10006,core_plugin_swap_not_found:10007,core_approve_asset_target_invalid:10008,core_explorer_unsupported_chain:10009,core_verify_message_not_supported:10010,core_chain_halted:10099,core_wallet_connection_not_found:10100,core_wallet_xdefi_not_installed:10101,core_wallet_evmwallet_not_installed:10102,core_wallet_walletconnect_not_installed:10103,core_wallet_keystore_not_installed:10104,core_wallet_ledger_not_installed:10105,core_wallet_trezor_not_installed:10106,core_wallet_keplr_not_installed:10107,core_wallet_okx_not_installed:10108,core_wallet_keepkey_not_installed:10109,core_wallet_talisman_not_installed:10110,core_wallet_not_keypair_wallet:10111,core_wallet_sign_message_not_supported:10110,core_swap_invalid_params:10200,core_swap_route_not_complete:10201,core_swap_asset_not_recognized:10202,core_swap_contract_not_found:10203,core_swap_route_transaction_not_found:10204,core_swap_contract_not_supported:10205,core_swap_transaction_error:10206,core_swap_quote_mode_not_supported:10207,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,wallet_connection_rejected_by_user:20000,wallet_missing_api_key:20001,wallet_chain_not_supported:20002,wallet_missing_params:20003,wallet_provider_not_found:20004,wallet_failed_to_add_or_switch_network:20005,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_phantom_not_found:20201,wallet_xdefi_not_found:20301,wallet_xdefi_send_transaction_no_address:20302,wallet_xdefi_contract_address_not_provided:20303,wallet_xdefi_asset_not_defined:20304,wallet_walletconnect_project_id_not_specified:20401,wallet_walletconnect_connection_not_established:20402,wallet_walletconnect_namespace_not_supported:20403,wallet_trezor_failed_to_sign_transaction:20501,wallet_trezor_derivation_path_not_supported:20502,wallet_trezor_failed_to_get_address:20503,wallet_talisman_not_enabled:20601,wallet_talisman_not_found:20602,wallet_polkadot_not_found:20701,chainflip_channel_error:30001,chainflip_unknown_asset:30002,chainflip_broker_invalid_params:30100,chainflip_broker_recipient_error:30101,chainflip_broker_register:30102,chainflip_broker_tx_error:30103,chainflip_broker_withdraw:30104,chainflip_broker_fund_only_flip_supported:30105,chainflip_broker_fund_invalid_address:30106,thorchain_chain_halted:40001,thorchain_trading_halted:40002,thorchain_swapin_router_required:40100,thorchain_swapin_vault_required:40101,thorchain_swapin_memo_required:40102,thorchain_swapin_token_required:40103,api_v2_invalid_response:50001,api_v2_server_error:50002,toolbox_cosmos_signer_not_defined:90101,toolbox_cosmos_no_accounts_found:90102,toolbox_cosmos_verify_signature_no_pubkey:90103,toolbox_evm_no_abi_fragment:90201,toolbox_evm_no_signer:90202,toolbox_evm_no_signer_address:90203,toolbox_evm_no_from_address:90204,toolbox_evm_no_contract_address:90205,toolbox_evm_no_fee_data:90206,toolbox_evm_no_gas_price:90207,toolbox_evm_no_to_address:90208,toolbox_evm_invalid_gas_asset_address:90209,toolbox_evm_provider_not_eip1193_compatible:90210,toolbox_evm_error_estimating_gas_limit:90211,toolbox_evm_error_sending_transaction:90212,helpers_invalid_number_different_decimals:99000,helpers_invalid_number_of_years:99001,helpers_invalid_identifier:99002,helpers_invalid_asset_url:99003,helpers_invalid_asset_identifier:99004,helpers_invalid_memo_type:99005,helpers_failed_to_switch_network:99103,helpers_not_found_provider:99200,not_implemented:99999};class j extends Error{static ErrorCode=Wx;constructor(x,F){const n=typeof x==="string",H=n?x:x.errorKey;if(F)console.error(F,{stack:F?.stack,message:F?.message});super(H,{cause:{code:j.ErrorCode[H],message:`${H}${n?"":`: ${JSON.stringify(x.info)}`}`}});Object.setPrototypeOf(this,j.prototype)}}function yF(x){if(x<0)throw new j({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:x}});return 10+x}function vF(x){if(x<0)throw new j({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:x}});return Math.round((10+x*1.0512)*10000000000)/10000000000}function oF(x,F){try{return x()}catch(n){if(F)throw new j(F,n);return console.error(n)}}function EF(x){switch(x){case"THOR":return`${x}.RUNE`;case"GAIA":return`${x}.ATOM`;case"BSC":return`${x}`;default:return`${x}.${x}`}}function Nx(x,F){if(!Kx&&x){if(Hx.has(F))return;Hx.add(F),console.warn(F)}}var Kx=["production","test"].includes("development"),Hx=new Set;function Rx(x=""){const F=x.toUpperCase(),[n]=F.split(".");if(hx.includes(n))return!0;const[H]=F.split("/");if(hx.includes(H))return!0;throw new j({errorKey:"helpers_invalid_identifier",info:{message:`Invalid identifier: ${x}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,identifier:x}})}function dF(x){if(x.length>30)return!1;const F=/^[a-zA-Z0-9+_-]+$/g;return!!x.match(F)}var hx=[...Object.values(Y),"TERRA"];function M({value:x,bigIntDecimal:F=U,decimal:n=U}){if(n===0)return x.toString();const H=x<0n;let N=x.toString().substring(H?1:0);const R=n-(N.length-1);if(R>0)N="0".repeat(R)+N;const I=N.length-n;let _=N.slice(-n);if(Number.parseInt(_[F]||"0")>=5)_=`${_.substring(0,F-1)}${(Number.parseInt(_[F-1]||"0")+1).toString()}`;else _=_.substring(0,F);return`${H?"-":""}${N.slice(0,I)}.${_}`.replace(/\.?0*$/,"")}function o(x){const n=`${typeof x==="number"?Mx.format(x):i(x)}`.replaceAll(",",".").split(".");return n.length>1?`${n.slice(0,-1).join("")}.${n.at(-1)}`:n[0]||"0"}function Ix(x){const F=x.split(".")[1]?.length||0;return Math.max(F,U)}function i(x){return typeof x==="object"?"getValue"in x?x.getValue("string"):x.value:x}var U=8,W=(x)=>10n**BigInt(x),S=(x)=>Math.log10(Number.parseFloat(x.toString()));class B{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(x,F){return new B({decimal:F,value:M({value:x,bigIntDecimal:F,decimal:F})})}static shiftDecimals({value:x,from:F,to:n}){return B.fromBigInt(x.getBaseValue("bigint")*W(n)/W(F),n)}constructor(x){const F=i(x),n=typeof x==="object";this.decimal=n?x.decimal:void 0,this.decimalMultiplier=n&&"decimalMultiplier"in x?x.decimalMultiplier:W(Math.max(Ix(o(F)),this.decimal||0)),this.#N(F)}set(x){return new this.constructor({decimal:this.decimal,value:x,identifier:this.toString()})}add(...x){return this.#F("add",...x)}sub(...x){return this.#F("sub",...x)}mul(...x){return this.#F("mul",...x)}div(...x){return this.#F("div",...x)}gt(x){return this.#x("gt",x)}gte(x){return this.#x("gte",x)}lt(x){return this.#x("lt",x)}lte(x){return this.#x("lte",x)}eqValue(x){return this.#x("eqValue",x)}getValue(x){const F=this.formatBigIntToSafeValue(this.bigIntValue,this.decimal||S(this.decimalMultiplier));switch(x){case"number":return Number(F);case"string":return F;case"bigint":return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}}getBaseValue(x){const F=this.decimalMultiplier/W(this.decimal||8),n=this.bigIntValue/F;switch(x){case"number":return Number(n);case"string":return n.toString();case"bigint":return n}}getBigIntValue(x,F){if(!F&&typeof x==="object")return x.bigIntValue;const n=i(x),H=o(n);if(H==="0"||H==="undefined")return 0n;return this.#H(H,F)}toSignificant(x=6){const[F,n]=this.getValue("string").split("."),H=F||"",N=n||"";if((Number.parseInt(H)?H.length+N.length:N.length)<=x)return this.getValue("string");if(H.length>=x)return H.slice(0,x).padEnd(H.length,"0");if(Number.parseInt(H))return`${H}.${N.slice(0,x-H.length)}`.padEnd(x-H.length,"0");const I=Number.parseInt(N),_=`${I}`.slice(0,x);return`0.${_.padStart(N.length-`${I}`.length+_.length,"0")}`}toFixed(x=6){const[F,n]=this.getValue("string").split("."),H=F||"",N=n||"";if(Number.parseInt(H))return`${H}.${N.slice(0,x)}`.padEnd(x,"0");const R=Number.parseInt(N),I=`${R}`.slice(0,x);return`0.${I.padStart(N.length-`${R}`.length+I.length,"0")}`}toAbbreviation(x=2){const F=this.getValue("number"),n=["","K","M","B","T","Q","Qi","S"],H=Math.floor(Math.log10(Math.abs(F))/3),N=n[H];if(!N)return this.getValue("string");const R=10**(H*3);return`${(F/R).toFixed(x)}${N}`}toCurrency(x="$",{currencyPosition:F="start",decimal:n=2,decimalSeparator:H=".",thousandSeparator:N=","}={}){const R=this.getValue("number"),[I="",_=""]=R.toFixed(6).split("."),O=I.replace(/\B(?=(\d{3})+(?!\d))/g,N),G=I||_?I==="0"?`${Number.parseFloat(`0.${_}`)}`.replace(".",H):`${O}${Number.parseInt(_)?`${H}${_.slice(0,n)}`:""}`:"0.00";return`${F==="start"?x:""}${G}${F==="end"?x:""}`}formatBigIntToSafeValue(x,F){const n=F||this.decimal||U,H=Math.max(n,S(this.decimalMultiplier)),N=x<0n,R=x.toString().substring(N?1:0),I=H-(R.length-1),_=I>0?"0".repeat(I)+R:R,O=_.length-H;let G=_.slice(-H);if(Number.parseInt(G[n]||"0")>=5)G=`${G.substring(0,n-1)}${(Number.parseInt(G[n-1]||"0")+1).toString()}`;else G=G.substring(0,n);return`${N?"-":""}${_.slice(0,O)}.${G}`.replace(/\.?0*$/,"")}#F(x,...F){const n=this.#n(this,...F),H=Math.max(n,S(this.decimalMultiplier)),N=W(H),R=F.reduce((_,O)=>{const G=this.getBigIntValue(O,H);switch(x){case"add":return _+G;case"sub":return _-G;case"mul":return _*G/N;case"div":{if(G===0n)throw new RangeError("Division by zero");return _*N/G}default:return _}},this.bigIntValue*N/this.decimalMultiplier),I=M({bigIntDecimal:H,decimal:H,value:R});return new this.constructor({decimalMultiplier:W(H),decimal:this.decimal,value:I,identifier:this.toString()})}#x(x,...F){const n=this.#n(this,...F),H=this.getBigIntValue(F[0]||"0",n),N=this.getBigIntValue(this,n);switch(x){case"gt":return N>H;case"gte":return N>=H;case"lt":return N<H;case"lte":return N<=H;case"eqValue":return N===H}}#N(x){const F=o(x)||"0";this.bigIntValue=this.#H(F)}#n(...x){const F=x.map((n)=>{return typeof n==="object"?n.decimal||S(n.decimalMultiplier):Ix(o(n))}).filter(Boolean);return Math.max(...F,U)}#H(x,F){const n=F?W(F):this.decimalMultiplier,H=S(n),[N="",R=""]=x.split(".");return BigInt(`${N}${R.padEnd(H,"0")}`)}}var Mx=Intl.NumberFormat("fullwide",{useGrouping:!1,maximumFractionDigits:20});function nn(x){const F=$.from({chain:x});switch(x){case"BTC":case"LTC":case"BCH":case"DASH":return F.set(0.00010001);case"DOGE":return F.set(1.00000001);case"AVAX":case"ETH":case"ARB":case"BSC":return F.set(0.00000001);case"THOR":case"MAYA":return F.set(0);case"GAIA":case"KUJI":return F.set(0.000001);default:return F.set(0.00000001)}}async function Cx(x,F=0){Rx(x);const n=E.get(x.toUpperCase()),H=n?.decimal||await _x(l(x));if(!n)E.set(x.toUpperCase(),{identifier:x,decimal:H});return new $({decimal:H,value:b(F,H),identifier:x})}function Sx(x,F=0){const n=x.split(".")?.[0]?.toUpperCase(),H=n?["MAYA","THOR"].includes(n):!1,[N,R]=H?x.split(".").slice(1).join().split("/"):x.split("/");if(!(N&&R))throw new j({errorKey:"helpers_invalid_asset_identifier",info:{identifier:x}});return new $({decimal:8,value:b(F,8),identifier:`${n||"THOR"}.${N}/${R}`})}function b(x,F){return typeof x==="bigint"?M({value:x,bigIntDecimal:F,decimal:F}):x}function l(x){const F=x.slice(0,14).includes("/"),n=x.split(".")?.[0]?.toUpperCase()==="THOR",H=x.split(".")?.[0]?.toUpperCase()==="MAYA",[N,R=""]=n||H?x.split(".").slice(1).join().split("/"):x.split("/");if(F&&!(N&&R))throw new j({errorKey:"helpers_invalid_asset_identifier",info:{identifier:x}});const I=x.includes(".")&&!F?x:`${H?"MAYA":"THOR"}.${R}`,[_,...O]=I.split("."),G=F?R:O.join("."),L=G.split("-"),Z=L.length===1?L[0]:L.slice(0,-1).join("-"),Q=L.length===1?void 0:L[L.length-1];return{address:Q?.toLowerCase(),chain:_,isGasAsset:a({chain:_,symbol:G}),isSynthetic:F,ticker:Z,symbol:(F?`${N}/`:"")+(Q?`${Z}-${Q?.toLowerCase()??""}`:G)}}var E=new Map;class $ extends B{address;chain;isGasAsset=!1;isSynthetic=!1;symbol;tax;ticker;type;chainId;constructor({value:x,decimal:F,tax:n,chain:H,symbol:N,identifier:R}){super(typeof x==="object"?x:{decimal:F,value:x});const I=l(R||`${H}.${N}`);this.type=Lx(I),this.tax=n,this.chain=I.chain,this.ticker=I.ticker,this.symbol=I.symbol,this.address=I.address,this.isSynthetic=I.isSynthetic,this.isGasAsset=I.isGasAsset,this.chainId=xx[I.chain]}toString({includeSynthProtocol:x}={}){return this.isSynthetic&&!x?this.symbol:`${this.chain}.${this.symbol}`}toUrl(){return this.isSynthetic?`${this.chain}.${this.symbol.replace("/",".")}`:this.toString()}eqAsset({chain:x,symbol:F}){return this.chain===x&&this.symbol===F}eq(x){return this.eqAsset(x)&&this.eqValue(x)}static fromUrl(x,F=0){const[n,H,N]=x.split(".");if(!(n&&H))throw new j({errorKey:"helpers_invalid_asset_url",info:{urlAsset:x}});const R=n==="THOR"&&N?`${n}.${H}/${N}`:x;return $.from({asset:R,value:F})}static from({value:x=0,fromBaseDecimal:F,asyncTokenLookup:n,...H}){const N=x instanceof B?x.getValue("string"):x,R="chain"in H,I=R?H.chain:H.asset,_=R||Tx.includes(I),{identifier:O,decimal:G}=_?Gx(I):{identifier:I,decimal:void 0},{chain:L,isSynthetic:Z}=l(O),Q=E.get(O.toUpperCase()),J=Q?.decimal||G;Nx(!(n||J),Vx(`Couldn't find static decimal for ${kx(O)} (Using default ${kx(z[L])} decimal as fallback).
|
|
1
|
+
var e=((x)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(x,{get:(F,H)=>(typeof require!=="undefined"?require:F)[H]}):x)(function(x){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});export*from"@swapkit/contracts";var d;((P)=>{P.Arbitrum="https://arb1.arbitrum.io/rpc";P.Avalanche="https://node-router.thorswap.net/avalanche-c";P.BinanceSmartChain="https://bsc-dataseed.binance.org";P.Bitcoin="https://node-router.thorswap.net/bitcoin";P.BitcoinCash="https://node-router.thorswap.net/bitcoin-cash";P.Chainflip="wss://mainnet-archive.chainflip.io";P.Cosmos="https://node-router.thorswap.net/cosmos/rpc";P.Dash="https://node-router.thorswap.net/dash";P.Dogecoin="https://node-router.thorswap.net/dogecoin";P.Ethereum="https://node-router.thorswap.net/ethereum";P.Kujira="https://rpc-kujira.synergynodes.com/";P.Litecoin="https://node-router.thorswap.net/litecoin";P.Maya="https://tendermint.mayachain.info";P.MayaStagenet="https://stagenet.tendermint.mayachain.info";P.Optimism="https://mainnet.optimism.io";P.Polkadot="wss://rpc.polkadot.io";P.Polygon="https://polygon-rpc.com";P.Radix="https://radix-mainnet.rpc.grove.city/v1/326002fc/core";P.THORChain="https://rpc.thorswap.net";P.THORChainStagenet="https://stagenet-rpc.ninerealms.com";P.Solana="https://mainnet.helius-rpc.com/?api-key=2cbe3ae6-cfc5-4141-a093-0055d0fa3d80"})(d||={});var t;((k)=>{k.Arbitrum="https://arbiscan.io";k.Avalanche="https://snowtrace.io";k.BinanceSmartChain="https://bscscan.com";k.Bitcoin="https://blockchair.com/bitcoin";k.BitcoinCash="https://www.blockchair.com/bitcoin-cash";k.Chainflip="https://explorer.polkascan.io/polkadot";k.Cosmos="https://www.mintscan.io/cosmos";k.Dash="https://blockchair.com/dash";k.Dogecoin="https://blockchair.com/dogecoin";k.Ethereum="https://etherscan.io";k.Kujira="https://finder.kujira.network/kaiyo-1";k.Litecoin="https://blockchair.com/litecoin";k.Maya="https://www.mayascan.org";k.Optimism="https://optimistic.etherscan.io";k.Polkadot="https://polkadot.subscan.io";k.Polygon="https://polygonscan.com";k.Radix="https://dashboard.radixdlt.com";k.THORChain="https://runescan.io";k.Solana="https://solscan.io"})(t||={});var Y;((k)=>{k.Arbitrum="ARB";k.Avalanche="AVAX";k.BinanceSmartChain="BSC";k.Bitcoin="BTC";k.BitcoinCash="BCH";k.Cosmos="GAIA";k.Dash="DASH";k.Dogecoin="DOGE";k.Ethereum="ETH";k.Kujira="KUJI";k.Litecoin="LTC";k.Maya="MAYA";k.Optimism="OP";k.Polkadot="DOT";k.Chainflip="FLIP";k.Polygon="MATIC";k.Radix="XRD";k.THORChain="THOR";k.Solana="SOL"})(Y||={});var u;((A)=>{A.Arbitrum="42161";A.ArbitrumHex="0xa4b1";A.Avalanche="43114";A.AvalancheHex="0xa86a";A.BinanceSmartChain="56";A.BinanceSmartChainHex="0x38";A.Bitcoin="bitcoin";A.BitcoinCash="bitcoincash";A.Chainflip="chainflip";A.Cosmos="cosmoshub-4";A.Dash="dash";A.Dogecoin="dogecoin";A.Kujira="kaiyo-1";A.Ethereum="1";A.EthereumHex="0x1";A.Litecoin="litecoin";A.Maya="mayachain-mainnet-v1";A.MayaStagenet="mayachain-stagenet-v1";A.Optimism="10";A.OptimismHex="0xa";A.Polkadot="polkadot";A.Polygon="137";A.PolygonHex="0x89";A.Radix="radix-mainnet";A.THORChain="thorchain-mainnet-v1";A.THORChainStagenet="thorchain-stagenet-v2";A.Solana="solana"})(u||={});var kF={["0xa4b1"]:"ARB",["42161"]:"ARB",["0xa86a"]:"AVAX",["43114"]:"AVAX",["0x38"]:"BSC",["56"]:"BSC",["bitcoincash"]:"BCH",["bitcoin"]:"BTC",["chainflip"]:"FLIP",["cosmoshub-4"]:"GAIA",["dash"]:"DASH",["dogecoin"]:"DOGE",["0x1"]:"ETH",["kaiyo-1"]:"KUJI",["1"]:"ETH",["litecoin"]:"LTC",["mayachain-stagenet-v1"]:"MAYA",["mayachain-mainnet-v1"]:"MAYA",["0xa"]:"OP",["10"]:"OP",["polkadot"]:"DOT",["0x89"]:"MATIC",["137"]:"MATIC",["radix-mainnet"]:"XRD",["thorchain-stagenet-v2"]:"THOR",["thorchain-mainnet-v1"]:"THOR",["solana"]:"SOL"},$x=Object.keys(Y),C=Object.values(Y),z;((T)=>{T[T.ARB=18]="ARB";T[T.AVAX=18]="AVAX";T[T.BCH=8]="BCH";T[T.BSC=18]="BSC";T[T.BTC=8]="BTC";T[T.DASH=8]="DASH";T[T.DOGE=8]="DOGE";T[T.DOT=10]="DOT";T[T.ETH=18]="ETH";T[T.FLIP=18]="FLIP";T[T.GAIA=6]="GAIA";T[T.KUJI=6]="KUJI";T[T.LTC=8]="LTC";T[T.MATIC=18]="MATIC";T[T.MAYA=8]="MAYA";T[T.OP=18]="OP";T[T.SOL=9]="SOL";T[T.THOR=8]="THOR";T[T.XRD=18]="XRD";T[T.ZEC=8]="ZEC"})(z||={});var TF=["DOT","FLIP"],y=["ETH","AVAX","BSC","ARB","OP","MATIC"],_F=["BTC","BCH","DASH","DOGE","LTC"],GF=["GAIA","THOR","MAYA","KUJI"],LF=["AVAX","BSC","BTC","BCH","GAIA","DOGE","ETH","LTC","THOR"],AF=["ARB","DASH","ETH","KUJI","MAYA","THOR"],v=C.reduce((x,F)=>{const H=$x.find((n)=>Y[n]===F);if(H)x[F]=H;return x},{}),xx=C.reduce((x,F)=>{return x[F]=u[v[F]],x},{}),m=C.reduce((x,F)=>{return x[F]=d[v[F]],x},{}),OF=C.reduce((x,F)=>{const H=`${v[F]}Hex`;return x[F]=u[H],x},{}),PF=C.reduce((x,F)=>{return x[F]=t[v[F]],x},{});var Xx;((X)=>{X.TC_SUPPORTED_TO_TC_SUPPORTED="TC-TC";X.TC_SUPPORTED_TO_ETH="TC-ERC20";X.TC_SUPPORTED_TO_AVAX="TC-ARC20";X.TC_SUPPORTED_TO_BSC="TC-BEP20";X.ETH_TO_TC_SUPPORTED="ERC20-TC";X.ETH_TO_ETH="ERC20-ERC20";X.ETH_TO_AVAX="ERC20-ARC20";X.ETH_TO_BSC="ERC20-BEP20";X.AVAX_TO_TC_SUPPORTED="ARC20-TC";X.AVAX_TO_ETH="ARC20-ERC20";X.AVAX_TO_AVAX="ARC20-ARC20";X.AVAX_TO_BSC="ARC20-BEP20";X.BSC_TO_TC_SUPPORTED="BEP20-TC";X.BSC_TO_ETH="BEP20-ERC20";X.BSC_TO_AVAX="BEP20-ARC20";X.BSC_TO_BSC="BEP20-BEP20"})(Xx||={});var XF=["ERC20-ERC20","ARC20-ARC20","BEP20-BEP20"],jF=["ERC20-TC","ERC20-ARC20","ERC20-BEP20","ARC20-TC","ARC20-ERC20","ARC20-BEP20","BEP20-TC","BEP20-ERC20","BEP20-ARC20"],JF=["TC-TC","TC-ERC20","TC-ARC20","TC-BEP20"];var jx;((I)=>{I.ARB="0x0000000000000000000000000000000000000000";I.AVAX="0x0000000000000000000000000000000000000000";I.ETH="0x0000000000000000000000000000000000000000";I.BSC="0x0000000000000000000000000000000000000000";I.MATIC="0x0000000000000000000000000000000000001010";I.OP="0x4200000000000000000000000000000000000042"})(jx||={});var Jx;((k)=>{k.ARB="m/44'/60'/0'/0";k.AVAX="m/44'/60'/0'/0";k.BCH="m/44'/145'/0'/0";k.BSC="m/44'/60'/0'/0";k.BTC="m/84'/0'/0'/0";k.DASH="m/44'/5'/0'/0";k.DOGE="m/44'/3'/0'/0";k.DOT="////";k.ETH="m/44'/60'/0'/0";k.FLIP="////";k.GAIA="m/44'/118'/0'/0";k.KUJI="m/44'/118'/0'/0";k.LTC="m/84'/2'/0'/0";k.MATIC="m/44'/60'/0'/0";k.MAYA="m/44'/931'/0'/0";k.OP="m/44'/60'/0'/0";k.SOL="m/44'/501'/0'/0";k.THOR="m/44'/931'/0'/0";k.XRD="////"})(Jx||={});var s={ARB:[44,60,0,0,0],AVAX:[44,60,0,0,0],BCH:[44,145,0,0,0],BSC:[44,60,0,0,0],BTC:[84,0,0,0,0],DASH:[44,5,0,0,0],DOGE:[44,3,0,0,0],ETH:[44,60,0,0,0],GAIA:[44,118,0,0,0],KUJI:[44,118,0,0,0],LTC:[84,2,0,0,0],MATIC:[44,60,0,0,0],MAYA:[44,931,0,0,0],OP:[44,60,0,0,0],SOL:[44,501,0,0,0],THOR:[44,931,0,0,0],XRD:[0,0,0,0,0],DOT:[0,0,0,0,0],FLIP:[0,0,0,0,0]};var Fx;((T)=>{T.BRAVE="BRAVE";T.COINBASE_MOBILE="COINBASE_MOBILE";T.COINBASE_WEB="COINBASE_WEB";T.EIP6963="EIP6963";T.EXODUS="EXODUS";T.KEEPKEY="KEEPKEY";T.KEPLR="KEPLR";T.KEYSTORE="KEYSTORE";T.LEDGER="LEDGER";T.METAMASK="METAMASK";T.OKX="OKX";T.OKX_MOBILE="OKX_MOBILE";T.PHANTOM="PHANTOM";T.POLKADOT_JS="POLKADOT_JS";T.RADIX_WALLET="RADIX_WALLET";T.TREZOR="TREZOR";T.TALISMAN="TALISMAN";T.TRUSTWALLET_WEB="TRUSTWALLET_WEB";T.WALLETCONNECT="WALLETCONNECT";T.XDEFI="XDEFI"})(Fx||={});var zx;((n)=>{n[n.NoError=36864]="NoError";n[n.LockedDevice=21781]="LockedDevice";n[n.TC_NotFound=65535]="TC_NotFound"})(zx||={});var Zx;((n)=>{n.Average="average";n.Fast="fast";n.Fastest="fastest"})(Zx||={});var Yx;((H)=>{H.Approve="approve";H.CheckOnly="checkOnly"})(Yx||={});var Hx;((L)=>{L.NAME_REGISTER="~";L.BOND="BOND";L.DEPOSIT="+";L.LEAVE="LEAVE";L.UNBOND="UNBOND";L.WITHDRAW="-";L.OPEN_LOAN="$+";L.CLOSE_LOAN="$-";L.RUNEPOOL_DEPOSIT="POOL+";L.RUNEPOOL_WITHDRAW="POOL-"})(Hx||={});var wx;((h)=>{h.unknownError="unknownError";h.test_error="test_error";h.providerDetailsError="providerDetailsError";h.blockHeaderNotFound="blockHeaderNotFound";h.blockHashNotFoundAtHeight="blockHashNotFoundAtHeight";h.blockHashNotFoundAtHash="blockHashNotFoundAtHash";h.txHashMissing="txHashMissing";h.assetValueMissingInfo="assetValueMissingInfo";h.invalidAsset="invalidAsset";h.blockIsRequired="blockIsRequired";h.currentBlockHeaderNotFound="currentBlockHeaderNotFound";h.failedToRetrieveBalance="failedToRetrieveBalance";h.failedToRetrieveBlock="failedToRetrieveBlock";h.failedToRetrieveFees="failedToRetrieveFees";h.notImplementedBCH="notImplementedBCH";h.notImplementedDoge="notImplementedDoge";h.noPoolsFound="noPoolsFound";h.noVaultsFound="noVaultsFound";h.noTxFound="noTxFound";h.noInputCoinFound="noInputCoinFound";h.noBlockDataFound="noBlockDataFound";h.multipleCosmosMessages="multipleCosmosMessages";h.heightOrHashNotProvided="heightOrHashNotProvided";h.unknownDenom="unknownDenom";h.invalidBlockHeight="invalidBlockHeight";h.timestampExtrinsicNoArgumentsForBlock="timestampExtrinsicNoArgumentsForBlock";h.timestampExtrinsicNoTimestampForBlock="timestampExtrinsicNoTimestampForBlock";h.noTimestampExtrinsicForHash="noTimestampExtrinsicForHash";h.timestampExtrinsicNoArgumentsForHash="timestampExtrinsicNoArgumentsForHash";h.txMemoUndefined="txMemoUndefined";h.txMemoIncorrect="txMemoIncorrect";h.txTypeNotFound="txTypeNotFound";h.txNoMessage="txNoMessage";h.txNotFound="txNotFound";h.txReceiptNotFound="txReceiptNotFound";h.txParsingError="txParsingError";h.blockNotFound="blockNotFound";h.balanceNotFound="balanceNotFound";h.configError="configError";h.noQuoteResponse="noQuoteResponse";h.noPoolAssetsFound="noPoolAssetsFound";h.noThorchainPools="noThorchainPools";h.noMayachainPools="noMayachainPools";h.invalidAffiliateFee="invalidAffiliateFee";h.invalidBuyAssetAddress="invalidBuyAssetAddress";h.invalidSellAssetAddress="invalidSellAssetAddress";h.invalidSourceAddress="invalidSourceAddress";h.invalidDestinationAddress="invalidDestinationAddress";h.sourceAddressIsSmartContract="sourceAddressIsSmartContract";h.destinationAddressIsSmartContract="destinationAddressIsSmartContract";h.invalidChainId="invalidChainId";h.unsupportedChainId="unsupportedChainId";h.unsupportedEVMChainId="unsupportedEVMChainId";h.noWhitelistTokens="noWhitelistTokens";h.failedFetchGasPrice="failedFetchGasPrice";h.failedToCreateDepositChannel="failedToCreateDepositChannel";h.noProviderDetailsFound="noProviderDetailsFound";h.noTokenListsFound="noTokenListsFound";h.tokenNotFound="tokenNotFound";h.tokenPriceNotFound="tokenPriceNotFound";h.swapAmountTooSmall="swapAmountTooSmall";h.legsArrayIsEmpty="legsArrayIsEmpty";h.failedToFetchQuoteForLeg="failedToFetchQuoteForLeg";h.noBlockHeaderFound="noBlockHeaderFound";h.failedToSimulateSwap="failedToSimulateSwap";h.addressScreeningFailed="addressScreeningFailed";h.noLiquidtyProvidersFound="noLiquidtyProvidersFound";h.noSaversFound="noSaversFound";h.noInboundAddressesFound="noInboundAddressesFound";h.noInboundAddressFoundForChain="noInboundAddressFoundForChain";h.noLastBlocksFound="noLastBlocksFound";h.noVersionFound="noVersionFound";h.noConstantsFound="noConstantsFound";h.noMimirsFound="noMimirsFound";h.noRoutesFound="noRoutesFound";h.quoteNotFound="quoteNotFound";h.ledgerSignFailed="ledgerSignFailed";h.ledgerFetchSwapFailed="ledgerFetchSwapFailed";h.failedToFetchTx="failedToFetchTx";h.failedBuildTransactionDetails="failedBuildTransactionDetails";h.noLegsForRoute="noLegsForRoute";h.noRouterAddressFound="noRouterAddressFound";h.noAggregatorAddressFound="noAggregatorAddressFound";h.noContractInstanceFound="noContractInstanceFound";h.noContractAddressFound="noContractAddressFound";h.invalidAffiliate="invalidAffiliate";h.providerNotfound="No provider found";h.noRecordFound="No Record found";h.slippageTooLow="Slippage too low";h.tradingHalted="tradingHalted";h.noWrappedGasAsset="noWrappedGasAsset";h.aggregatorAddressNotFound="aggregatorAddressNotFound";h.routerAddressNotFound="routerAddressNotFound";h.dummyAddressNotFound="dummyAddressNotFound";h.trackerError="trackerError";h.noOhlcvDataFound="noOhlcvDataFound";h.noTradingPairs="noTradingPairs";h.noLoanPositionFound="noLoanPositionFound";h.noLendingAvailability="noLendingAvailability";h.lendingRepayTooSmall="lendingRepayTooSmall";h.missingState="missingState";h.ledgerSwapNotFound="ledgerSwapNotFound";h.ledgerSwapNotReadyForTracking="ledgerSwapNotReadyForTracking";h.errorEstimatingGas="errorEstimatingGas";h.apiKeyInvalid="apiKeyInvalid";h.apiKeyFailedToUpdate="apiKeyFailedToUpdate";h.apiKeyExpired="apiKeyExpired";h.unauthorized="unauthorized";h.failedToCreateMemo="failedToCreateMemo";h.radixIncorrectInstructions="radixIncorrectInstructions";h.invalidAddressForChain="invalidAddressForChain"})(wx||={});var Qx;((H)=>{H.highSlippage="highSlippage";H.highPriceImpact="highPriceImpact"})(Qx||={});var qx;((J)=>{J.CHAINFLIP="CHAINFLIP";J.MAYACHAIN="MAYACHAIN";J.MAYACHAIN_STREAMING="MAYACHAIN_STREAMING";J.ONEINCH="ONEINCH";J.PANCAKESWAP="PANCAKESWAP";J.PANGOLIN_V1="PANGOLIN_V1";J.SUSHISWAP_V2="SUSHISWAP_V2";J.THORCHAIN="THORCHAIN";J.THORCHAIN_STREAMING="THORCHAIN_STREAMING";J.TRADERJOE_V2="TRADERJOE_V2";J.UNISWAP_V2="UNISWAP_V2";J.UNISWAP_V3="UNISWAP_V3";J.CAVIAR_V1="CAVIAR_V1"})(qx||={});var Bx;((I)=>{I.LIQUIDITY="liquidity";I.NETWORK="network";I.INBOUND="inbound";I.OUTBOUND="outbound";I.AFFILIATE="affiliate";I.TAX="tax"})(Bx||={});import{red as kx,yellow as Vx}from"picocolors";var Wx={core_estimated_max_spendable_chain_not_supported:10002,core_extend_error:10003,core_inbound_data_not_found:10004,core_approve_asset_address_or_from_not_found:10005,core_plugin_not_found:10006,core_plugin_swap_not_found:10007,core_approve_asset_target_invalid:10008,core_explorer_unsupported_chain:10009,core_verify_message_not_supported:10010,core_chain_halted:10099,core_wallet_connection_not_found:10100,core_wallet_xdefi_not_installed:10101,core_wallet_evmwallet_not_installed:10102,core_wallet_walletconnect_not_installed:10103,core_wallet_keystore_not_installed:10104,core_wallet_ledger_not_installed:10105,core_wallet_trezor_not_installed:10106,core_wallet_keplr_not_installed:10107,core_wallet_okx_not_installed:10108,core_wallet_keepkey_not_installed:10109,core_wallet_talisman_not_installed:10110,core_wallet_not_keypair_wallet:10111,core_wallet_sign_message_not_supported:10110,core_swap_invalid_params:10200,core_swap_route_not_complete:10201,core_swap_asset_not_recognized:10202,core_swap_contract_not_found:10203,core_swap_route_transaction_not_found:10204,core_swap_contract_not_supported:10205,core_swap_transaction_error:10206,core_swap_quote_mode_not_supported:10207,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,wallet_connection_rejected_by_user:20000,wallet_missing_api_key:20001,wallet_chain_not_supported:20002,wallet_missing_params:20003,wallet_provider_not_found:20004,wallet_failed_to_add_or_switch_network:20005,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_phantom_not_found:20201,wallet_xdefi_not_found:20301,wallet_xdefi_send_transaction_no_address:20302,wallet_xdefi_contract_address_not_provided:20303,wallet_xdefi_asset_not_defined:20304,wallet_walletconnect_project_id_not_specified:20401,wallet_walletconnect_connection_not_established:20402,wallet_walletconnect_namespace_not_supported:20403,wallet_trezor_failed_to_sign_transaction:20501,wallet_trezor_derivation_path_not_supported:20502,wallet_trezor_failed_to_get_address:20503,wallet_talisman_not_enabled:20601,wallet_talisman_not_found:20602,wallet_polkadot_not_found:20701,chainflip_channel_error:30001,chainflip_unknown_asset:30002,chainflip_broker_invalid_params:30100,chainflip_broker_recipient_error:30101,chainflip_broker_register:30102,chainflip_broker_tx_error:30103,chainflip_broker_withdraw:30104,chainflip_broker_fund_only_flip_supported:30105,chainflip_broker_fund_invalid_address:30106,thorchain_chain_halted:40001,thorchain_trading_halted:40002,thorchain_swapin_router_required:40100,thorchain_swapin_vault_required:40101,thorchain_swapin_memo_required:40102,thorchain_swapin_token_required:40103,api_v2_invalid_response:50001,api_v2_server_error:50002,toolbox_cosmos_signer_not_defined:90101,toolbox_cosmos_no_accounts_found:90102,toolbox_cosmos_verify_signature_no_pubkey:90103,toolbox_evm_no_abi_fragment:90201,toolbox_evm_no_signer:90202,toolbox_evm_no_signer_address:90203,toolbox_evm_no_from_address:90204,toolbox_evm_no_contract_address:90205,toolbox_evm_no_fee_data:90206,toolbox_evm_no_gas_price:90207,toolbox_evm_no_to_address:90208,toolbox_evm_invalid_gas_asset_address:90209,toolbox_evm_provider_not_eip1193_compatible:90210,toolbox_evm_error_estimating_gas_limit:90211,toolbox_evm_error_sending_transaction:90212,helpers_invalid_number_different_decimals:99000,helpers_invalid_number_of_years:99001,helpers_invalid_identifier:99002,helpers_invalid_asset_url:99003,helpers_invalid_asset_identifier:99004,helpers_invalid_memo_type:99005,helpers_failed_to_switch_network:99103,helpers_not_found_provider:99200,not_implemented:99999};class j extends Error{static ErrorCode=Wx;constructor(x,F){const H=typeof x==="string",n=H?x:x.errorKey;if(F)console.error(F,{stack:F?.stack,message:F?.message});super(n,{cause:{code:j.ErrorCode[n],message:`${n}${H?"":`: ${JSON.stringify(x.info)}`}`}});Object.setPrototypeOf(this,j.prototype)}}function yF(x){if(x<0)throw new j({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:x}});return 10+x}function vF(x){if(x<0)throw new j({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:x}});return Math.round((10+x*1.0512)*10000000000)/10000000000}function oF(x,F){try{return x()}catch(H){if(F)throw new j(F,H);return console.error(H)}}function EF(x){switch(x){case"THOR":return`${x}.RUNE`;case"GAIA":return`${x}.ATOM`;case"BSC":return`${x}`;default:return`${x}.${x}`}}function Nx(x,F){if(!Kx&&x){if(nx.has(F))return;nx.add(F),console.warn(F)}}var Kx=["production","test"].includes("development"),nx=new Set;function Rx(x=""){const F=x.toUpperCase(),[H]=F.split(".");if(hx.includes(H))return!0;const[n]=F.split("/");if(hx.includes(n))return!0;throw new j({errorKey:"helpers_invalid_identifier",info:{message:`Invalid identifier: ${x}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,identifier:x}})}function dF(x){if(x.length>30)return!1;const F=/^[a-zA-Z0-9+_-]+$/g;return!!x.match(F)}var hx=[...Object.values(Y),"TERRA"];function M({value:x,bigIntDecimal:F=U,decimal:H=U}){if(H===0)return x.toString();const n=x<0n;let N=x.toString().substring(n?1:0);const R=H-(N.length-1);if(R>0)N="0".repeat(R)+N;const I=N.length-H;let _=N.slice(-H);if(Number.parseInt(_[F]||"0")>=5)_=`${_.substring(0,F-1)}${(Number.parseInt(_[F-1]||"0")+1).toString()}`;else _=_.substring(0,F);return`${n?"-":""}${N.slice(0,I)}.${_}`.replace(/\.?0*$/,"")}function o(x){const H=`${typeof x==="number"?Mx.format(x):i(x)}`.replaceAll(",",".").split(".");return H.length>1?`${H.slice(0,-1).join("")}.${H.at(-1)}`:H[0]||"0"}function Ix(x){const F=x.split(".")[1]?.length||0;return Math.max(F,U)}function i(x){return typeof x==="object"?"getValue"in x?x.getValue("string"):x.value:x}var U=8,W=(x)=>10n**BigInt(x),S=(x)=>Math.log10(Number.parseFloat(x.toString()));class B{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(x,F){return new B({decimal:F,value:M({value:x,bigIntDecimal:F,decimal:F})})}static shiftDecimals({value:x,from:F,to:H}){return B.fromBigInt(x.getBaseValue("bigint")*W(H)/W(F),H)}constructor(x){const F=i(x),H=typeof x==="object";this.decimal=H?x.decimal:void 0,this.decimalMultiplier=H&&"decimalMultiplier"in x?x.decimalMultiplier:W(Math.max(Ix(o(F)),this.decimal||0)),this.#N(F)}set(x){return new this.constructor({decimal:this.decimal,value:x,identifier:this.toString()})}add(...x){return this.#F("add",...x)}sub(...x){return this.#F("sub",...x)}mul(...x){return this.#F("mul",...x)}div(...x){return this.#F("div",...x)}gt(x){return this.#x("gt",x)}gte(x){return this.#x("gte",x)}lt(x){return this.#x("lt",x)}lte(x){return this.#x("lte",x)}eqValue(x){return this.#x("eqValue",x)}getValue(x){const F=this.formatBigIntToSafeValue(this.bigIntValue,this.decimal||S(this.decimalMultiplier));switch(x){case"number":return Number(F);case"string":return F;case"bigint":return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}}getBaseValue(x){const F=this.decimalMultiplier/W(this.decimal||8),H=this.bigIntValue/F;switch(x){case"number":return Number(H);case"string":return H.toString();case"bigint":return H}}getBigIntValue(x,F){if(!F&&typeof x==="object")return x.bigIntValue;const H=i(x),n=o(H);if(n==="0"||n==="undefined")return 0n;return this.#n(n,F)}toSignificant(x=6){const[F,H]=this.getValue("string").split("."),n=F||"",N=H||"";if((Number.parseInt(n)?n.length+N.length:N.length)<=x)return this.getValue("string");if(n.length>=x)return n.slice(0,x).padEnd(n.length,"0");if(Number.parseInt(n))return`${n}.${N.slice(0,x-n.length)}`.padEnd(x-n.length,"0");const I=Number.parseInt(N),_=`${I}`.slice(0,x);return`0.${_.padStart(N.length-`${I}`.length+_.length,"0")}`}toFixed(x=6){const[F,H]=this.getValue("string").split("."),n=F||"",N=H||"";if(Number.parseInt(n))return`${n}.${N.slice(0,x)}`.padEnd(x,"0");const R=Number.parseInt(N),I=`${R}`.slice(0,x);return`0.${I.padStart(N.length-`${R}`.length+I.length,"0")}`}toAbbreviation(x=2){const F=this.getValue("number"),H=["","K","M","B","T","Q","Qi","S"],n=Math.floor(Math.log10(Math.abs(F))/3),N=H[n];if(!N)return this.getValue("string");const R=10**(n*3);return`${(F/R).toFixed(x)}${N}`}toCurrency(x="$",{currencyPosition:F="start",decimal:H=2,decimalSeparator:n=".",thousandSeparator:N=","}={}){const R=this.getValue("number"),[I="",_=""]=R.toFixed(6).split("."),O=I.replace(/\B(?=(\d{3})+(?!\d))/g,N),G=I||_?I==="0"?`${Number.parseFloat(`0.${_}`)}`.replace(".",n):`${O}${Number.parseInt(_)?`${n}${_.slice(0,H)}`:""}`:"0.00";return`${F==="start"?x:""}${G}${F==="end"?x:""}`}formatBigIntToSafeValue(x,F){const H=F||this.decimal||U,n=Math.max(H,S(this.decimalMultiplier)),N=x<0n,R=x.toString().substring(N?1:0),I=n-(R.length-1),_=I>0?"0".repeat(I)+R:R,O=_.length-n;let G=_.slice(-n);if(Number.parseInt(G[H]||"0")>=5)G=`${G.substring(0,H-1)}${(Number.parseInt(G[H-1]||"0")+1).toString()}`;else G=G.substring(0,H);return`${N?"-":""}${_.slice(0,O)}.${G}`.replace(/\.?0*$/,"")}#F(x,...F){const H=this.#H(this,...F),n=Math.max(H,S(this.decimalMultiplier)),N=W(n),R=F.reduce((_,O)=>{const G=this.getBigIntValue(O,n);switch(x){case"add":return _+G;case"sub":return _-G;case"mul":return _*G/N;case"div":{if(G===0n)throw new RangeError("Division by zero");return _*N/G}default:return _}},this.bigIntValue*N/this.decimalMultiplier),I=M({bigIntDecimal:n,decimal:n,value:R});return new this.constructor({decimalMultiplier:W(n),decimal:this.decimal,value:I,identifier:this.toString()})}#x(x,...F){const H=this.#H(this,...F),n=this.getBigIntValue(F[0]||"0",H),N=this.getBigIntValue(this,H);switch(x){case"gt":return N>n;case"gte":return N>=n;case"lt":return N<n;case"lte":return N<=n;case"eqValue":return N===n}}#N(x){const F=o(x)||"0";this.bigIntValue=this.#n(F)}#H(...x){const F=x.map((H)=>{return typeof H==="object"?H.decimal||S(H.decimalMultiplier):Ix(o(H))}).filter(Boolean);return Math.max(...F,U)}#n(x,F){const H=F?W(F):this.decimalMultiplier,n=S(H),[N="",R=""]=x.split(".");return BigInt(`${N}${R.padEnd(n,"0")}`)}}var Mx=Intl.NumberFormat("fullwide",{useGrouping:!1,maximumFractionDigits:20});function HH(x){const F=$.from({chain:x});switch(x){case"BTC":case"LTC":case"BCH":case"DASH":return F.set(0.00010001);case"DOGE":return F.set(1.00000001);case"AVAX":case"ETH":case"ARB":case"BSC":return F.set(0.00000001);case"THOR":case"MAYA":return F.set(0);case"GAIA":case"KUJI":return F.set(0.000001);default:return F.set(0.00000001)}}async function Cx(x,F=0){Rx(x);const H=E.get(x.toUpperCase()),n=H?.decimal||await _x(l(x));if(!H)E.set(x.toUpperCase(),{identifier:x,decimal:n});return new $({decimal:n,value:b(F,n),identifier:x})}function Sx(x,F=0){const H=x.split(".")?.[0]?.toUpperCase(),n=H?["MAYA","THOR"].includes(H):!1,[N,R]=n?x.split(".").slice(1).join().split("/"):x.split("/");if(!(N&&R))throw new j({errorKey:"helpers_invalid_asset_identifier",info:{identifier:x}});return new $({decimal:8,value:b(F,8),identifier:`${H||"THOR"}.${N}/${R}`})}function b(x,F){return typeof x==="bigint"?M({value:x,bigIntDecimal:F,decimal:F}):x}function l(x){const F=x.slice(0,14).includes("/"),H=x.split(".")?.[0]?.toUpperCase()==="THOR",n=x.split(".")?.[0]?.toUpperCase()==="MAYA",[N,R=""]=H||n?x.split(".").slice(1).join().split("/"):x.split("/");if(F&&!(N&&R))throw new j({errorKey:"helpers_invalid_asset_identifier",info:{identifier:x}});const I=x.includes(".")&&!F?x:`${n?"MAYA":"THOR"}.${R}`,[_,...O]=I.split("."),G=F?R:O.join("."),L=G.split("-"),Z=L.length===1?L[0]:L.slice(0,-1).join("-"),Q=L.length===1?void 0:L[L.length-1];return{address:Q?.toLowerCase(),chain:_,isGasAsset:a({chain:_,symbol:G}),isSynthetic:F,ticker:Z,symbol:(F?`${N}/`:"")+(Q?`${Z}-${Q?.toLowerCase()??""}`:G)}}var E=new Map;class $ extends B{address;chain;isGasAsset=!1;isSynthetic=!1;symbol;tax;ticker;type;chainId;constructor({value:x,decimal:F,tax:H,chain:n,symbol:N,identifier:R}){super(typeof x==="object"?x:{decimal:F,value:x});const I=l(R||`${n}.${N}`);this.type=Lx(I),this.tax=H,this.chain=I.chain,this.ticker=I.ticker,this.symbol=I.symbol,this.address=I.address,this.isSynthetic=I.isSynthetic,this.isGasAsset=I.isGasAsset,this.chainId=xx[I.chain]}toString({includeSynthProtocol:x}={}){return this.isSynthetic&&!x?this.symbol:`${this.chain}.${this.symbol}`}toUrl(){return this.isSynthetic?`${this.chain}.${this.symbol.replace("/",".")}`:this.toString()}eqAsset({chain:x,symbol:F}){return this.chain===x&&this.symbol===F}eq(x){return this.eqAsset(x)&&this.eqValue(x)}static fromUrl(x,F=0){const[H,n,N]=x.split(".");if(!(H&&n))throw new j({errorKey:"helpers_invalid_asset_url",info:{urlAsset:x}});const R=H==="THOR"&&N?`${H}.${n}/${N}`:x;return $.from({asset:R,value:F})}static from({value:x=0,fromBaseDecimal:F,asyncTokenLookup:H,...n}){const N=x instanceof B?x.getValue("string"):x,R="chain"in n,I=R?n.chain:n.asset,_=R||Tx.includes(I),{identifier:O,decimal:G}=_?Gx(I):{identifier:I,decimal:void 0},{chain:L,isSynthetic:Z}=l(O),Q=E.get(O.toUpperCase()),J=Q?.decimal||G;Nx(!(H||J),Vx(`Couldn't find static decimal for ${kx(O)} (Using default ${kx(z[L])} 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.`));const{decimal:p,identifier:V,tax:X}=Q||{decimal:J||z[L],identifier:O},K=F?b(BigInt(N),F):b(N,p);return n?Cx(V,F?K:N):Z?Sx(V,K):new $({tax:X,decimal:p,identifier:V,value:K})}static loadStaticAssets(){return new Promise((x,F)=>{try{import("@swapkit/tokens").then((n)=>{for(let H of Object.values(n))for(let{identifier:N,chain:R,...I}of H.tokens)E.set(N.toUpperCase(),{identifier:N,decimal:"decimals"in I?I.decimals:z[R]});x({ok:!0})})}catch(n){console.error(n),F({ok:!1,error:n,message:"Couldn't load static assets. Ensure you have installed @swapkit/tokens package"})}})}static fromString(x,F=0){return $.from({asset:x,value:F,asyncTokenLookup:!0})}static fromIdentifier(x,F=0){return $.from({asset:x,value:F,asyncTokenLookup:!0})}static fromStringSync(x,F=0){return $.from({asset:x,value:F})}static fromStringWithBase(x,F=0n,n=8){return $.from({asyncTokenLookup:!0,asset:x,value:F,fromBaseDecimal:n})}static fromStringWithBaseSync(x,F=0n,n=8){return $.from({asset:x,value:F,fromBaseDecimal:n})}static fromIdentifierSync(x,F=0){return $.from({asset:x,value:F})}static fromChainOrSignature(x,F=0){if(Object.values(Y).includes(x))return $.from({chain:x,value:F});return $.from({asset:x,value:F})}}function Nn({apiKey:x,...F}){r={...F,apiKey:x}}async function D(x,F){const{apiKey:n,...H}=r,{searchParams:N,json:R,body:I}=F,_={...Ux,...H.headers,...F.headers,...R?{"Content-Type":"application/json"}:{}},O=R?JSON.stringify(R):I,G=new URL(x);if(N)G.search=new URLSearchParams(N).toString();if(n)_["x-api-key"]=n;try{const Z=await(await fetch(G.toString(),{...H,...F,body:O,headers:_})).json();if(F.responseHandler)return F.responseHandler(Z);return Z}catch(L){if(F.onError)return F.onError(L);console.error(L)}}var r={},Ux=typeof window!=="undefined"?{}:{referrer:"https://sk.thorswap.net",referer:"https://sk.thorswap.net"},c={get:async(x,F)=>D(x,{...F,method:"GET"}),post:async(x,F)=>D(x,{...F,method:"POST"}),extend:(x)=>{const F={...r,...x};return{get:async(n,H)=>D(n,{...F,...H,method:"GET"}),post:async(n,H)=>D(n,{...F,...H,method:"POST"}),extend:(n)=>c.extend({...F,...n})}}};async function Ln(x){const F=await import("@swapkit/tokens");for(let n of Object.values(F))for(let{identifier:H,chain:N,...R}of n.tokens){if("identifier"in x&&H===x.identifier)return H;if("address"in R&&"chain"in x&&N===x.chain&&R.address.toLowerCase()===x.contract.toLowerCase())return H}return}var fx="0x313ce567",Tx=[`${"MAYA"}.MAYA`,`${"ETH"}.THOR`,`${"ETH"}.vTHOR`,`${"KUJI"}.USK`],Ax=async({chain:x,to:F})=>{try{const{result:n}=await c.post(m[x],{headers:{accept:"*/*","content-type":"application/json","cache-control":"no-cache"},body:JSON.stringify({id:44,jsonrpc:"2.0",method:"eth_call",params:[{to:F.toLowerCase(),data:fx},"latest"]})});return Number.parseInt(BigInt(n||z[x]).toString())}catch(n){return console.error(n),z[x]}},px=async({symbol:x})=>{try{const F=x.split("-")[1]?.toLowerCase(),{manager:n}=await c.post(`${m["XRD"]}/state/resource`,{headers:{Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({network:"mainnet",resource_address:F})});return n.divisibility.value.divisibility}catch(F){return console.error(F),z["XRD"]}},gx=(x)=>{if(x==="ETH")return 18;const F=x.split("-"),n=F.length===1?void 0:F[F.length-1]?.toLowerCase();return n?.startsWith("0x")?Ax({chain:"ETH",to:n}):18},ux=(x)=>{const F=x.split("-"),n=F.length===1?void 0:F[F.length-1];return n?.startsWith("0x")?Ax({chain:"AVAX",to:n.toLowerCase()}):18},yx=(x)=>{if(x==="BSC")return 18;return 18},vx=(x)=>{if(x==="XRD")return 18;return px({symbol:x})},_x=({chain:x,symbol:F})=>{switch(x){case"ETH":return gx(F);case"AVAX":return ux(F);case"BSC":return yx(F);case"XRD":return vx(F);default:return z[x]}},Tn=({chain:x})=>{switch(x){case"ARB":case"OP":return $.from({asset:`${x}.ETH`});case"MAYA":return $.from({asset:`${x}.CACAO`});case"GAIA":return $.from({asset:`${x}.ATOM`});case"BSC":return $.from({asset:`${x}.BNB`});case"THOR":return $.from({asset:`${x}.RUNE`});default:return $.from({asset:`${x}.${x}`})}},a=({chain:x,symbol:F})=>{switch(x){case"ARB":case"OP":return F==="ETH";case"MAYA":return F==="CACAO";case"GAIA":return F==="ATOM";case"BSC":return F==="BNB";case"THOR":return F==="RUNE";default:return F===x}},Gx=(x)=>{switch(x){case"ARB":case"OP":return{identifier:`${x}.ETH`,decimal:z[x]};case`${"ETH"}.THOR`:return{identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044",decimal:18};case`${"ETH"}.vTHOR`:return{identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d",decimal:18};case"GAIA":return{identifier:`${x}.ATOM`,decimal:z[x]};case"THOR":return{identifier:`${x}.RUNE`,decimal:z[x]};case"BSC":return{identifier:`${x}.BNB`,decimal:z[x]};case"MAYA":return{identifier:`${x}.CACAO`,decimal:10};case"XRD":return{identifier:`${"XRD"}.XRD`,decimal:z[x]};case`${"MAYA"}.MAYA`:return{identifier:x,decimal:4};case`${"KUJI"}.USK`:return{identifier:x,decimal:6};default:return{identifier:`${x}.${x}`,decimal:z[x]}}},Lx=({chain:x,symbol:F})=>{if(F.includes("/"))return"Synth";switch(x){case"GAIA":return F==="ATOM"?"Native":"GAIA";case"KUJI":return F==="KUJI"?"Native":"KUJI";case"BSC":return F==="BNB"?"Native":"BEP20";case"ETH":return F==="ETH"?"Native":"ERC20";case"AVAX":return F==="AVAX"?"Native":"AVAX";case"MATIC":return F==="MATIC"?"Native":"POLYGON";case"ARB":return["ETH","ARB"].includes(F)?"Native":"ARBITRUM";case"OP":return["ETH","OP"].includes(F)?"Native":"OPTIMISM";case"XRD":return F==="XRD"?"Native":"RADIX";default:return"Native"}},_n=(x)=>{const[F,...n]=x.split("."),H=x.includes("/"),N=n.join("."),R=N?.split("-"),I=R?.length?R.length===1?R[0]:R.slice(0,-1).join("-"):void 0;return{chain:F,symbol:N,ticker:I,synth:H}},ox=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi"),Ex=(x)=>{const[F,n]=x.split(".");if(!y.includes(F))return!0;const H=n.split("-"),N=H.length===1?void 0:H[H.length-1];return a({chain:F,symbol:n})||!!N},Gn=(x)=>x.filter(({chain:F,value:n,symbol:H})=>{const N=`${F}.${H}`;return!ox.test(N)&&Ex(N)&&n!=="0"});function Pn([x,F,n,H,N]){return`m/${x}'/${F}'/${n}'/${H}${typeof N!=="number"?"":`/${N}`}`}function $n({chain:x,index:F,addressIndex:n=0,type:H}){if(y.includes(x)){if(H==="legacy")return[44,60,0,F];if(H==="ledgerLive")return[44,60,F,0,n];return Ox(s[x],F)}const N=x==="LTC"?2:0;switch(H){case"nativeSegwitMiddleAccount":return[84,N,F,0,n];case"segwit":return[49,N,0,0,F];case"legacy":return[44,N,0,0,F];default:return Ox(s[x],F)}}function Xn(x){const[F,n,H]=x.split("/").map((N)=>Number.parseInt(N,10));switch(n){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var Ox=(x,F)=>{return[...x.slice(0,x.length-1),F]};function bx({liquidityUnits:x,poolUnits:F,runeDepth:n}){const H=w(x),N=w(F),R=w(n),I=H.mul(R),_=N.mul(N).mul(2),O=N.mul(H).mul(2),G=H.mul(H),L=N.mul(N).mul(N);return I.mul(_.sub(O).add(G)).div(L)}function Dx({liquidityUnits:x,poolUnits:F,assetDepth:n}){const H=w(x),N=w(F),R=w(n),I=H.mul(R),_=N.mul(N).mul(2),O=N.mul(H).mul(2),G=H.mul(H),L=I.mul(_.sub(O).add(G)),Z=N.mul(N).mul(N);return L.div(Z)}function Zn({percent:x,runeDepth:F,liquidityUnits:n,poolUnits:H}){return bx({runeDepth:F,liquidityUnits:n,poolUnits:H}).mul(x)}function Yn({percent:x,assetDepth:F,liquidityUnits:n,poolUnits:H}){return Dx({assetDepth:F,liquidityUnits:n,poolUnits:H}).mul(x)}function w(x){return q.fromBigInt(BigInt(x),8)}function cx({liquidityUnits:x,poolUnits:F,runeDepth:n,assetDepth:H}){return{assetAmount:w(H).mul(x).div(F),runeAmount:w(n).mul(x).div(F)}}function wn({liquidityUnits:x,poolUnits:F,runeDepth:n,assetDepth:H,percent:N}){return Object.fromEntries(Object.entries(cx({liquidityUnits:x,poolUnits:F,runeDepth:n,assetDepth:H})).map(([R,I])=>[R,I.mul(N)]))}function Qn({runeDepth:x,poolUnits:F,assetDepth:n,liquidityUnits:H,runeAmount:N,assetAmount:R}){const I=new q({value:x,decimal:8}),_=new q({value:n,decimal:8}),O=new q({value:F,decimal:8}),G=new q({value:N,decimal:8}),L=new q({value:R,decimal:8}),Z=G.mul(_),Q=L.mul(I),J=G.mul(L),p=I.mul(_),V=O.mul(Z.add(Q.add(J.mul(2)))),X=Z.add(Q.add(p.mul(2))),K=V.div(X),g=w(H).add(K);if(K.getBaseValue("number")===0)return g.div(O).getBaseValue("number");const k=O.add(g);return g.div(k).getBaseValue("number")}function qn({runeAmount:x,assetAmount:F,runeDepth:n,assetDepth:H}){if(x==="0"||F==="0"||n==="0"||H==="0")return 0;const N=w(n),R=w(H),I=w(F),_=w(x),O=I.mul(N).sub(R.mul(_)),G=R.mul(_).add(N.mul(R));return Math.abs(O.div(G).getBaseValue("number"))}function dx({type:x,address:F}){return`${x}:${F}`}function tx({address:x,unbondAmount:F}){return`${"UNBOND"}:${x}:${F}`}function Vn(x){return f("POOL+",x)}function mx({chain:x,symbol:F,...n}){return f(`${"+"}:${x}/${F}`,n)}function sx({chain:x,symbol:F,address:n,...H}){const N=ex({chain:x,symbol:F}),R=n?`:${n}:`:":";return f(`${"+"}:${N}${R}`,H)}function ix({chain:x,symbol:F,basisPoints:n}){return`${"-"}:${x}/${F}:${n}`}function lx({chain:x,symbol:F,ticker:n,basisPoints:H,targetAsset:N}){const R=x==="ETH"&&n!=="ETH"?`${n}-${F.slice(-3)}`:F,I=N?`:${N}`:"";return`${"-"}:${x}.${R}:${H}${I}`}function Cn({basisPoints:x,...F}){return f(`${"POOL-"}:${x}`,F)}function ax({name:x,chain:F,address:n,owner:H}){const N=`${"~"}:${x}:${F}:${n}`,R=H?`:${H}`:"";return`${N}${R}`}function Sn({name:x,chain:F,asset:n,payout:H,owner:N}){return`${"~"}:${x}:${F}:${H}:${N}:${n}`}function rx(x,{asset:F,address:n,minAmount:H,...N}){const R=`${x}:${F}:${n}`,I=H?`:${H}`:"";return f(`${R}${I}`,N)}function f(x,{affiliateAddress:F,affiliateBasisPoints:n}={}){const H=`${x}${F?`:${F}:${n||0}`:""}`;return H.endsWith(":")?H.slice(0,-1):H}function ex({chain:x,symbol:F}){switch(x){case"BTC":case"DOGE":case"LTC":return x.slice(0,1).toLowerCase();case"BCH":return"c";default:return`${x}.${F}`}}var Un=(x,F)=>{switch(x){case"LEAVE":case"BOND":return dx({type:x,address:F?.address});case"UNBOND":return tx({address:F?.address,unbondAmount:F?.unbondAmount});case"~":return ax(F);case"$+":case"$-":return rx(x,F);case"+":{const{chain:n,symbol:H,address:N,singleSide:R}=F;if(R)return mx({chain:n,symbol:H});return sx({chain:n,symbol:H,address:N})}case"-":{const{chain:n,ticker:H,symbol:N,basisPoints:R,targetAssetString:I,singleSide:_}=F;if(_)return ix({chain:n,symbol:N,basisPoints:R});return lx({chain:n,ticker:H,symbol:N,basisPoints:R,targetAsset:I})}default:throw new j({errorKey:"helpers_invalid_memo_type",info:{memoType:x}})}};function bn({chain:x,covalentApiKey:F,ethplorerApiKey:n}){const H=x!=="ETH"&&!F?"covalentApiKey":n?void 0:"ethplorerApiKey";if(H)throw new j({errorKey:"wallet_missing_api_key",info:{missingKey:H}});return{covalentApiKey:F,ethplorerApiKey:n}}function Dn(){const x=[];function F(H){if(x.map((N)=>N.info.uuid).includes(H.detail.info.uuid))return;x.push(H.detail)}window.addEventListener("eip6963:announceProvider",F),window.dispatchEvent(new Event("eip6963:requestProvider"));function n(){window.removeEventListener("eip6963:announceProvider",F)}return{providers:x,removeEIP6963EventListener:n}}var xF=["approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"],FF=(x,F,n)=>async(...H)=>{try{await nF(F,n)}catch(N){throw new j({errorKey:"helpers_failed_to_switch_network",info:{error:N}})}return x(...H)},Px=({provider:x,params:F,method:n})=>{if(!x?.send)throw new j("helpers_not_found_provider");const H=F?Array.isArray(F)?F:[F]:[];return x.send(n,H)},un=({toolbox:x,chainId:F,provider:n=window.ethereum})=>{const H=xF.reduce((N,R)=>{if(!x[R])return N;const I=x[R];if(typeof I!=="function")return N;return{...N,[R]:FF(I,n,F)}},{});return{...x,...H}},yn=(x,F)=>Px({provider:x,method:"wallet_addEthereumChain",params:[F]}),nF=(x,F="0x1")=>Px({provider:x,method:"wallet_switchEthereumChain",params:[{chainId:F}]}),vn=(x)=>{window.ethereum?.on("accountsChanged",()=>x()),window.xfi?.ethereum.on("accountsChanged",()=>x())},on=()=>{const{isTrust:x,isBraveWallet:F,__XDEFI:n,overrideIsMetaMask:H,selectedProvider:N}=window?.ethereum||{};if(x)return"TRUSTWALLET_WEB";if(F)return"BRAVE";if(H&&N?.isCoinbaseWallet)return"COINBASE_WEB";if(n)"XDEFI";return"METAMASK"},En=(x)=>{return HF().includes(x)},HF=()=>{const x=window?.ethereum&&!window.ethereum?.isBraveWallet,F=window?.xfi||window?.ethereum?.__XDEFI,n=window?.ethereum?.isBraveWallet,H=window?.ethereum?.isTrust||window?.trustwallet,N=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,R=[];if(x)R.push("METAMASK");if(F)R.push("XDEFI");if(n)R.push("BRAVE");if(H)R.push("TRUSTWALLET_WEB");if(N)R.push("COINBASE_WEB");if(NF())R.push("OKX_MOBILE");return R},NF=()=>{const x=navigator.userAgent,F=/iphone|ipad|ipod|ios/i.test(x),n=/android|XiaoMi|MiuiBrowser/i.test(x),H=F||n,N=/OKApp/i.test(x);return H&&N},cn=()=>typeof window.ethereum!=="undefined";class q extends B{eq(x){return this.eqValue(x)}static fromBigInt(x,F){return new q({decimal:F,value:M({value:x,bigIntDecimal:F,decimal:F})})}}export{oF as wrapWithThrow,FF as wrapMethodWithNetworkSwitch,Nx as warnOnce,dF as validateTNS,Rx as validateIdentifier,nF as switchEVMWalletNetwork,Nn as setRequestClientConfig,un as prepareNetworkSwitch,NF as okxMobileEnabled,HF as listWeb3EVMWallets,cn as isWeb3Detected,a as isGasAsset,En as isDetected,Xn as getWalletFormatFor,yF as getTHORNameCost,wn as getSymmetricWithdraw,cx as getSymmetricPoolShare,nn as getMinAmountByChain,lx as getMemoForWithdraw,tx as getMemoForUnbond,ix as getMemoForSaverWithdraw,mx as getMemoForSaverDeposit,Cn as getMemoForRunePoolWithdraw,Vn as getMemoForRunePoolDeposit,ax as getMemoForNameRegister,Sn as getMemoForNamePreferredAssetRegister,rx as getMemoForLoan,dx as getMemoForLeaveAndBond,sx as getMemoForDeposit,Un as getMemoFor,vF as getMAYANameCost,qn as getLiquiditySlippage,Tn as getGasAsset,Qn as getEstimatedPoolShare,on as getETHDefaultWallet,Dn as getEIP6963Wallets,$n as getDerivationPathFor,_x as getDecimal,Gx as getCommonAssetInfo,EF as getChainIdentifier,Zn as getAsymmetricRuneWithdrawAmount,bx as getAsymmetricRuneShare,Yn as getAsymmetricAssetWithdrawAmount,Dx as getAsymmetricAssetShare,Lx as getAssetType,M as formatBigIntToSafeValue,Ln as findAssetBy,Gn as filterAssets,bn as ensureEVMApiKeys,Pn as derivationPathToString,Ux as defaultRequestHeaders,_n as assetFromString,yn as addEVMWalletNetwork,vn as addAccountsChangedCallback,Qx as WarningCodeEnum,Fx as WalletOption,_F as UTXOChains,LF as TCSupportedChains,q as SwapKitNumber,j as SwapKitError,TF as SubstrateChains,JF as SWAP_OUT,jF as SWAP_IN,c as RequestClient,d as RPCUrl,Xx as QuoteMode,qx as ProviderName,s as NetworkDerivationPath,nx as MemoType,AF as MAYASupportedChains,zx as LedgerErrorCode,Bx as FeeTypeEnum,Zx as FeeOption,t as ExplorerUrl,wx as ErrorCode,y as EVMChains,Jx as DerivationPath,GF as CosmosChains,jx as ContractAddress,Tx as CommonAssetStrings,m as ChainToRPC,OF as ChainToHexChainId,PF as ChainToExplorerUrl,xx as ChainToChainId,kF as ChainIdToChain,u as ChainId,Y as Chain,B as BigIntArithmetics,z as BaseDecimal,$ as AssetValue,Yx as ApproveMode,XF as AGG_SWAP};
|
|
4
|
+
or by passing asyncTokenLookup: true to the from() function, which will make it async and return a promise.`));const{decimal:p,identifier:V,tax:X}=Q||{decimal:J||z[L],identifier:O},K=F?b(BigInt(N),F):b(N,p);return H?Cx(V,F?K:N):Z?Sx(V,K):new $({tax:X,decimal:p,identifier:V,value:K})}static loadStaticAssets(){return new Promise((x,F)=>{try{import("@swapkit/tokens").then((H)=>{for(let n of Object.values(H))for(let{identifier:N,chain:R,...I}of n.tokens)E.set(N.toUpperCase(),{identifier:N,decimal:"decimals"in I?I.decimals:z[R]});x({ok:!0})})}catch(H){console.error(H),F({ok:!1,error:H,message:"Couldn't load static assets. Ensure you have installed @swapkit/tokens package"})}})}static fromString(x,F=0){return $.from({asset:x,value:F,asyncTokenLookup:!0})}static fromIdentifier(x,F=0){return $.from({asset:x,value:F,asyncTokenLookup:!0})}static fromStringSync(x,F=0){return $.from({asset:x,value:F})}static fromStringWithBase(x,F=0n,H=8){return $.from({asyncTokenLookup:!0,asset:x,value:F,fromBaseDecimal:H})}static fromStringWithBaseSync(x,F=0n,H=8){return $.from({asset:x,value:F,fromBaseDecimal:H})}static fromIdentifierSync(x,F=0){return $.from({asset:x,value:F})}static fromChainOrSignature(x,F=0){if(Object.values(Y).includes(x))return $.from({chain:x,value:F});return $.from({asset:x,value:F})}}function NH({apiKey:x,...F}){r={...F,apiKey:x}}async function D(x,F){const{apiKey:H,...n}=r,{searchParams:N,json:R,body:I}=F,_={...Ux,...n.headers,...F.headers,...R?{"Content-Type":"application/json"}:{}},O=R?JSON.stringify(R):I,G=new URL(x);if(N)G.search=new URLSearchParams(N).toString();if(H)_["x-api-key"]=H;try{const Z=await(await fetch(G.toString(),{...n,...F,body:O,headers:_})).json();if(F.responseHandler)return F.responseHandler(Z);return Z}catch(L){if(F.onError)return F.onError(L);console.error(L)}}var r={},Ux=typeof window!=="undefined"?{}:{referrer:"https://sk.thorswap.net",referer:"https://sk.thorswap.net"},c={get:async(x,F)=>D(x,{...F,method:"GET"}),post:async(x,F)=>D(x,{...F,method:"POST"}),extend:(x)=>{const F={...r,...x};return{get:async(H,n)=>D(H,{...F,...n,method:"GET"}),post:async(H,n)=>D(H,{...F,...n,method:"POST"}),extend:(H)=>c.extend({...F,...H})}}};async function LH(x){const F=await import("@swapkit/tokens");for(let H of Object.values(F))for(let{identifier:n,chain:N,...R}of H.tokens){if("identifier"in x&&n===x.identifier)return n;if("address"in R&&"chain"in x&&N===x.chain&&R.address.toLowerCase()===x.contract.toLowerCase())return n}return}var fx="0x313ce567",Tx=[`${"MAYA"}.MAYA`,`${"ETH"}.THOR`,`${"ETH"}.vTHOR`,`${"KUJI"}.USK`],Ax=async({chain:x,to:F})=>{try{const{result:H}=await c.post(m[x],{headers:{accept:"*/*","content-type":"application/json","cache-control":"no-cache"},body:JSON.stringify({id:44,jsonrpc:"2.0",method:"eth_call",params:[{to:F.toLowerCase(),data:fx},"latest"]})});return Number.parseInt(BigInt(H||z[x]).toString())}catch(H){return console.error(H),z[x]}},px=async({symbol:x})=>{try{const F=x.split("-")[1]?.toLowerCase(),{manager:H}=await c.post(`${m["XRD"]}/state/resource`,{headers:{Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({network:"mainnet",resource_address:F})});return H.divisibility.value.divisibility}catch(F){return console.error(F),z["XRD"]}},gx=(x)=>{if(x==="ETH")return 18;const F=x.split("-"),H=F.length===1?void 0:F[F.length-1]?.toLowerCase();return H?.startsWith("0x")?Ax({chain:"ETH",to:H}):18},ux=(x)=>{const F=x.split("-"),H=F.length===1?void 0:F[F.length-1];return H?.startsWith("0x")?Ax({chain:"AVAX",to:H.toLowerCase()}):18},yx=(x)=>{if(x==="BSC")return 18;return 18},vx=(x)=>{if(x==="XRD")return 18;return px({symbol:x})},_x=({chain:x,symbol:F})=>{switch(x){case"ETH":return gx(F);case"AVAX":return ux(F);case"BSC":return yx(F);case"XRD":return vx(F);default:return z[x]}},TH=({chain:x})=>{switch(x){case"ARB":case"OP":return $.from({asset:`${x}.ETH`});case"MAYA":return $.from({asset:`${x}.CACAO`});case"GAIA":return $.from({asset:`${x}.ATOM`});case"BSC":return $.from({asset:`${x}.BNB`});case"THOR":return $.from({asset:`${x}.RUNE`});default:return $.from({asset:`${x}.${x}`})}},a=({chain:x,symbol:F})=>{switch(x){case"ARB":case"OP":return F==="ETH";case"MAYA":return F==="CACAO";case"GAIA":return F==="ATOM";case"BSC":return F==="BNB";case"THOR":return F==="RUNE";default:return F===x}},Gx=(x)=>{switch(x){case"ARB":case"OP":return{identifier:`${x}.ETH`,decimal:z[x]};case`${"ETH"}.THOR`:return{identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044",decimal:18};case`${"ETH"}.vTHOR`:return{identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d",decimal:18};case"GAIA":return{identifier:`${x}.ATOM`,decimal:z[x]};case"THOR":return{identifier:`${x}.RUNE`,decimal:z[x]};case"BSC":return{identifier:`${x}.BNB`,decimal:z[x]};case"MAYA":return{identifier:`${x}.CACAO`,decimal:10};case"XRD":return{identifier:`${"XRD"}.XRD`,decimal:z[x]};case`${"MAYA"}.MAYA`:return{identifier:x,decimal:4};case`${"KUJI"}.USK`:return{identifier:x,decimal:6};default:return{identifier:`${x}.${x}`,decimal:z[x]}}},Lx=({chain:x,symbol:F})=>{if(F.includes("/"))return"Synth";switch(x){case"GAIA":return F==="ATOM"?"Native":"GAIA";case"KUJI":return F==="KUJI"?"Native":"KUJI";case"BSC":return F==="BNB"?"Native":"BEP20";case"ETH":return F==="ETH"?"Native":"ERC20";case"AVAX":return F==="AVAX"?"Native":"AVAX";case"MATIC":return F==="MATIC"?"Native":"POLYGON";case"ARB":return["ETH","ARB"].includes(F)?"Native":"ARBITRUM";case"OP":return["ETH","OP"].includes(F)?"Native":"OPTIMISM";case"XRD":return F==="XRD"?"Native":"RADIX";default:return"Native"}},_H=(x)=>{const[F,...H]=x.split("."),n=x.includes("/"),N=H.join("."),R=N?.split("-"),I=R?.length?R.length===1?R[0]:R.slice(0,-1).join("-"):void 0;return{chain:F,symbol:N,ticker:I,synth:n}},ox=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi"),Ex=(x)=>{const[F,H]=x.split(".");if(!y.includes(F))return!0;const n=H.split("-"),N=n.length===1?void 0:n[n.length-1];return a({chain:F,symbol:H})||!!N},GH=(x)=>x.filter(({chain:F,value:H,symbol:n})=>{const N=`${F}.${n}`;return!ox.test(N)&&Ex(N)&&H!=="0"});function PH([x,F,H,n,N]){return`m/${x}'/${F}'/${H}'/${n}${typeof N!=="number"?"":`/${N}`}`}function $H({chain:x,index:F,addressIndex:H=0,type:n}){if(y.includes(x)){if(n==="legacy")return[44,60,0,F];if(n==="ledgerLive")return[44,60,F,0,H];return Ox(s[x],F)}const N=x==="LTC"?2:0;switch(n){case"nativeSegwitMiddleAccount":return[84,N,F,0,H];case"segwit":return[49,N,0,0,F];case"legacy":return[44,N,0,0,F];default:return Ox(s[x],F)}}function XH(x){const[F,H,n]=x.split("/").map((N)=>Number.parseInt(N,10));switch(H){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var Ox=(x,F)=>{return[...x.slice(0,x.length-1),F]};function bx({liquidityUnits:x,poolUnits:F,runeDepth:H}){const n=w(x),N=w(F),R=w(H),I=n.mul(R),_=N.mul(N).mul(2),O=N.mul(n).mul(2),G=n.mul(n),L=N.mul(N).mul(N);return I.mul(_.sub(O).add(G)).div(L)}function Dx({liquidityUnits:x,poolUnits:F,assetDepth:H}){const n=w(x),N=w(F),R=w(H),I=n.mul(R),_=N.mul(N).mul(2),O=N.mul(n).mul(2),G=n.mul(n),L=I.mul(_.sub(O).add(G)),Z=N.mul(N).mul(N);return L.div(Z)}function ZH({percent:x,runeDepth:F,liquidityUnits:H,poolUnits:n}){return bx({runeDepth:F,liquidityUnits:H,poolUnits:n}).mul(x)}function YH({percent:x,assetDepth:F,liquidityUnits:H,poolUnits:n}){return Dx({assetDepth:F,liquidityUnits:H,poolUnits:n}).mul(x)}function w(x){return q.fromBigInt(BigInt(x),8)}function cx({liquidityUnits:x,poolUnits:F,runeDepth:H,assetDepth:n}){return{assetAmount:w(n).mul(x).div(F),runeAmount:w(H).mul(x).div(F)}}function wH({liquidityUnits:x,poolUnits:F,runeDepth:H,assetDepth:n,percent:N}){return Object.fromEntries(Object.entries(cx({liquidityUnits:x,poolUnits:F,runeDepth:H,assetDepth:n})).map(([R,I])=>[R,I.mul(N)]))}function QH({runeDepth:x,poolUnits:F,assetDepth:H,liquidityUnits:n,runeAmount:N,assetAmount:R}){const I=new q({value:x,decimal:8}),_=new q({value:H,decimal:8}),O=new q({value:F,decimal:8}),G=new q({value:N,decimal:8}),L=new q({value:R,decimal:8}),Z=G.mul(_),Q=L.mul(I),J=G.mul(L),p=I.mul(_),V=O.mul(Z.add(Q.add(J.mul(2)))),X=Z.add(Q.add(p.mul(2))),K=V.div(X),g=w(n).add(K);if(K.getBaseValue("number")===0)return g.div(O).getBaseValue("number");const k=O.add(g);return g.div(k).getBaseValue("number")}function qH({runeAmount:x,assetAmount:F,runeDepth:H,assetDepth:n}){if(x==="0"||F==="0"||H==="0"||n==="0")return 0;const N=w(H),R=w(n),I=w(F),_=w(x),O=I.mul(N).sub(R.mul(_)),G=R.mul(_).add(N.mul(R));return Math.abs(O.div(G).getBaseValue("number"))}function dx({type:x,address:F}){return`${x}:${F}`}function tx({address:x,unbondAmount:F}){return`${"UNBOND"}:${x}:${F}`}function VH(x){return f("POOL+",x)}function mx({chain:x,symbol:F,...H}){return f(`${"+"}:${x}/${F}`,H)}function sx({chain:x,symbol:F,address:H,...n}){const N=ex({chain:x,symbol:F}),R=H?`:${H}:`:":";return f(`${"+"}:${N}${R}`,n)}function ix({chain:x,symbol:F,basisPoints:H}){return`${"-"}:${x}/${F}:${H}`}function lx({chain:x,symbol:F,ticker:H,basisPoints:n,targetAsset:N}){const R=x==="ETH"&&H!=="ETH"?`${H}-${F.slice(-3)}`:F,I=N?`:${N}`:"";return`${"-"}:${x}.${R}:${n}${I}`}function CH({basisPoints:x,...F}){return f(`${"POOL-"}:${x}`,F)}function ax({name:x,chain:F,address:H,owner:n}){const N=`${"~"}:${x}:${F}:${H}`,R=n?`:${n}`:"";return`${N}${R}`}function SH({name:x,chain:F,asset:H,payout:n,owner:N}){return`${"~"}:${x}:${F}:${n}:${N}:${H}`}function rx(x,{asset:F,address:H,minAmount:n,...N}){const R=`${x}:${F}:${H}`,I=n?`:${n}`:"";return f(`${R}${I}`,N)}function f(x,{affiliateAddress:F,affiliateBasisPoints:H}={}){const n=`${x}${F?`:${F}:${H||0}`:""}`;return n.endsWith(":")?n.slice(0,-1):n}function ex({chain:x,symbol:F}){switch(x){case"BTC":case"DOGE":case"LTC":return x.slice(0,1).toLowerCase();case"BCH":return"c";default:return`${x}.${F}`}}var UH=(x,F)=>{switch(x){case"LEAVE":case"BOND":return dx({type:x,address:F?.address});case"UNBOND":return tx({address:F?.address,unbondAmount:F?.unbondAmount});case"~":return ax(F);case"$+":case"$-":return rx(x,F);case"+":{const{chain:H,symbol:n,address:N,singleSide:R}=F;if(R)return mx({chain:H,symbol:n});return sx({chain:H,symbol:n,address:N})}case"-":{const{chain:H,ticker:n,symbol:N,basisPoints:R,targetAssetString:I,singleSide:_}=F;if(_)return ix({chain:H,symbol:N,basisPoints:R});return lx({chain:H,ticker:n,symbol:N,basisPoints:R,targetAsset:I})}default:throw new j({errorKey:"helpers_invalid_memo_type",info:{memoType:x}})}};function bH({chain:x,covalentApiKey:F,ethplorerApiKey:H}){const n=x!=="ETH"&&!F?"covalentApiKey":H?void 0:"ethplorerApiKey";if(n)throw new j({errorKey:"wallet_missing_api_key",info:{missingKey:n}});return{covalentApiKey:F,ethplorerApiKey:H}}function DH(){const x=[];function F(n){if(x.map((N)=>N.info.uuid).includes(n.detail.info.uuid))return;x.push(n.detail)}window.addEventListener("eip6963:announceProvider",F),window.dispatchEvent(new Event("eip6963:requestProvider"));function H(){window.removeEventListener("eip6963:announceProvider",F)}return{providers:x,removeEIP6963EventListener:H}}var xF=["approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"],FF=(x,F,H)=>async(...n)=>{try{await HF(F,H)}catch(N){throw new j({errorKey:"helpers_failed_to_switch_network",info:{error:N}})}return x(...n)},Px=({provider:x,params:F,method:H})=>{if(!x?.send)throw new j("helpers_not_found_provider");const n=F?Array.isArray(F)?F:[F]:[];return x.send(H,n)},uH=({toolbox:x,chainId:F,provider:H=window.ethereum})=>{const n=xF.reduce((N,R)=>{if(!x[R])return N;const I=x[R];if(typeof I!=="function")return N;return{...N,[R]:FF(I,H,F)}},{});return{...x,...n}},yH=(x,F)=>Px({provider:x,method:"wallet_addEthereumChain",params:[F]}),HF=(x,F="0x1")=>Px({provider:x,method:"wallet_switchEthereumChain",params:[{chainId:F}]}),vH=(x)=>{window.ethereum?.on("accountsChanged",()=>x()),window.xfi?.ethereum.on("accountsChanged",()=>x())},oH=()=>{const{isTrust:x,isBraveWallet:F,__XDEFI:H,overrideIsMetaMask:n,selectedProvider:N}=window?.ethereum||{};if(x)return"TRUSTWALLET_WEB";if(F)return"BRAVE";if(n&&N?.isCoinbaseWallet)return"COINBASE_WEB";if(H)"XDEFI";return"METAMASK"},EH=(x)=>{return nF().includes(x)},nF=()=>{const x=window?.ethereum&&!window.ethereum?.isBraveWallet,F=window?.xfi||window?.ethereum?.__XDEFI,H=window?.ethereum?.isBraveWallet,n=window?.ethereum?.isTrust||window?.trustwallet,N=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,R=[];if(x)R.push("METAMASK");if(F)R.push("XDEFI");if(H)R.push("BRAVE");if(n)R.push("TRUSTWALLET_WEB");if(N)R.push("COINBASE_WEB");if(NF())R.push("OKX_MOBILE");return R},NF=()=>{const x=navigator.userAgent,F=/iphone|ipad|ipod|ios/i.test(x),H=/android|XiaoMi|MiuiBrowser/i.test(x),n=F||H,N=/OKApp/i.test(x);return n&&N},cH=()=>typeof window.ethereum!=="undefined";class q extends B{eq(x){return this.eqValue(x)}static fromBigInt(x,F){return new q({decimal:F,value:M({value:x,bigIntDecimal:F,decimal:F})})}}export{oF as wrapWithThrow,FF as wrapMethodWithNetworkSwitch,Nx as warnOnce,dF as validateTNS,Rx as validateIdentifier,HF as switchEVMWalletNetwork,NH as setRequestClientConfig,uH as prepareNetworkSwitch,NF as okxMobileEnabled,nF as listWeb3EVMWallets,cH as isWeb3Detected,a as isGasAsset,EH as isDetected,XH as getWalletFormatFor,yF as getTHORNameCost,wH as getSymmetricWithdraw,cx as getSymmetricPoolShare,HH as getMinAmountByChain,lx as getMemoForWithdraw,tx as getMemoForUnbond,ix as getMemoForSaverWithdraw,mx as getMemoForSaverDeposit,CH as getMemoForRunePoolWithdraw,VH as getMemoForRunePoolDeposit,ax as getMemoForNameRegister,SH as getMemoForNamePreferredAssetRegister,rx as getMemoForLoan,dx as getMemoForLeaveAndBond,sx as getMemoForDeposit,UH as getMemoFor,vF as getMAYANameCost,qH as getLiquiditySlippage,TH as getGasAsset,QH as getEstimatedPoolShare,oH as getETHDefaultWallet,DH as getEIP6963Wallets,$H as getDerivationPathFor,_x as getDecimal,Gx as getCommonAssetInfo,EF as getChainIdentifier,ZH as getAsymmetricRuneWithdrawAmount,bx as getAsymmetricRuneShare,YH as getAsymmetricAssetWithdrawAmount,Dx as getAsymmetricAssetShare,Lx as getAssetType,M as formatBigIntToSafeValue,LH as findAssetBy,GH as filterAssets,bH as ensureEVMApiKeys,PH as derivationPathToString,Ux as defaultRequestHeaders,_H as assetFromString,yH as addEVMWalletNetwork,vH as addAccountsChangedCallback,Qx as WarningCodeEnum,Fx as WalletOption,_F as UTXOChains,LF as TCSupportedChains,q as SwapKitNumber,j as SwapKitError,TF as SubstrateChains,JF as SWAP_OUT,jF as SWAP_IN,c as RequestClient,d as RPCUrl,Xx as QuoteMode,qx as ProviderName,s as NetworkDerivationPath,Hx as MemoType,AF as MAYASupportedChains,zx as LedgerErrorCode,Bx as FeeTypeEnum,Zx as FeeOption,t as ExplorerUrl,wx as ErrorCode,y as EVMChains,Jx as DerivationPath,GF as CosmosChains,jx as ContractAddress,Tx as CommonAssetStrings,m as ChainToRPC,OF as ChainToHexChainId,PF as ChainToExplorerUrl,xx as ChainToChainId,kF as ChainIdToChain,u as ChainId,Y as Chain,B as BigIntArithmetics,z as BaseDecimal,$ as AssetValue,Yx as ApproveMode,XF as AGG_SWAP};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=C55BBF00179D322464756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
"import { BaseDecimal } from \"../types/chains.ts\";\nimport type { SwapKitNumber } from \"./swapKitNumber.ts\";\n\ntype NumberPrimitivesType = {\n bigint: bigint;\n number: number;\n string: string;\n};\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst toMultiplier = (decimal: number) => 10n ** BigInt(decimal);\nconst decimalFromMultiplier = (multiplier: bigint) =>\n Math.log10(Number.parseFloat(multiplier.toString()));\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n // Check if we need to round up\n if (Number.parseInt(decimalString[bigIntDecimal] || \"0\") >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\") + 1).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(\n /\\.?0*$/,\n \"\",\n );\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n\n static shiftDecimals({\n value,\n from,\n to,\n }: {\n value: InstanceType<typeof SwapKitNumber>;\n from: number;\n to: number;\n }) {\n return BigIntArithmetics.fromBigInt(\n (value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from),\n to,\n );\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n // use the multiplier to keep track of decimal point - defaults to 8 if lower than 8\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n // @ts-expect-error False positive\n return new this.constructor({ decimal: this.decimal, value, identifier: this.toString() });\n }\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n // @ts-expect-error False positive\n getValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const value = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || decimalFromMultiplier(this.decimalMultiplier),\n );\n\n switch (type) {\n case \"number\":\n return Number(value) as NumberPrimitivesType[T];\n case \"string\":\n return value as NumberPrimitivesType[T];\n case \"bigint\":\n return ((this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) /\n this.decimalMultiplier) as NumberPrimitivesType[T];\n }\n }\n\n // @ts-expect-error\n getBaseValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const divisor = this.decimalMultiplier / toMultiplier(this.decimal || BaseDecimal.THOR);\n const baseValue = this.bigIntValue / divisor;\n\n switch (type) {\n case \"number\":\n return Number(baseValue) as NumberPrimitivesType[T];\n case \"string\":\n return baseValue.toString() as NumberPrimitivesType[T];\n case \"bigint\":\n return baseValue as NumberPrimitivesType[T];\n }\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n const valueLength = Number.parseInt(integer) ? integer.length + decimal.length : decimal.length;\n\n if (valueLength <= significantDigits) {\n return this.getValue(\"string\");\n }\n\n if (integer.length >= significantDigits) {\n return integer.slice(0, significantDigits).padEnd(integer.length, \"0\");\n }\n\n if (Number.parseInt(integer)) {\n return `${integer}.${decimal.slice(0, significantDigits - integer.length)}`.padEnd(\n significantDigits - integer.length,\n \"0\",\n );\n }\n\n const trimmedDecimal = Number.parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, significantDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toFixed(fixedDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n\n if (Number.parseInt(integer)) {\n return `${integer}.${decimal.slice(0, fixedDigits)}`.padEnd(fixedDigits, \"0\");\n }\n\n const trimmedDecimal = Number.parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, fixedDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toAbbreviation(digits = 2) {\n const value = this.getValue(\"number\");\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"];\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n const suffix = abbreviations[tier];\n\n if (!suffix) return this.getValue(\"string\");\n\n const scale = 10 ** (tier * 3);\n const scaled = value / scale;\n\n return `${scaled.toFixed(digits)}${suffix}`;\n }\n\n toCurrency(\n currency = \"$\",\n {\n currencyPosition = \"start\",\n decimal = 2,\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n } = {},\n ) {\n const value = this.getValue(\"number\");\n const [int = \"\", dec = \"\"] = value.toFixed(6).split(\".\");\n const integer = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n const parsedValue =\n int || dec\n ? int === \"0\"\n ? `${Number.parseFloat(`0.${dec}`)}`.replace(\".\", decimalSeparator)\n : `${integer}${Number.parseInt(dec) ? `${decimalSeparator}${dec.slice(0, decimal)}` : \"\"}`\n : \"0.00\";\n\n return `${currencyPosition === \"start\" ? currency : \"\"}${parsedValue}${\n currencyPosition === \"end\" ? currency : \"\"\n }`;\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(\n bigIntDecimal,\n decimalFromMultiplier(this.decimalMultiplier),\n );\n const isNegative = value < 0n;\n\n const valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimalToUseForConversion - (valueString.length - 1);\n\n const parsedValueString = padLength > 0 ? \"0\".repeat(padLength) + valueString : valueString;\n\n const decimalIndex = parsedValueString.length - decimalToUseForConversion;\n let decimalString = parsedValueString.slice(-decimalToUseForConversion);\n\n // Check if we need to round up\n if (Number.parseInt(decimalString[bigIntDecimal] || \"0\") >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\") + 1).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${parsedValueString.slice(\n 0,\n decimalIndex,\n )}.${decimalString}`.replace(/\\.?0*$/, \"\");\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const decimal = Math.max(precisionDecimal, decimalFromMultiplier(this.decimalMultiplier));\n const precisionDecimalMultiplier = toMultiplier(decimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, decimal);\n\n switch (method) {\n case \"add\":\n return acc + value;\n case \"sub\":\n return acc - value;\n /**\n * Multiplication & division would end up with wrong result if we don't adjust the value\n * 200000000n * 200000000n => 40000000000000000n\n * 200000000n / 200000000n => 1n\n * So we do the following:\n * 200000000n * 200000000n = 40000000000000000n / 100000000n (decimals) => 400000000n\n * (200000000n * 100000000n (decimals)) / 200000000n => 100000000n\n */\n case \"mul\":\n return (acc * value) / precisionDecimalMultiplier;\n case \"div\": {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * precisionDecimalMultiplier) / value;\n }\n default:\n return acc;\n }\n },\n //normalize is to precision multiplier base\n (this.bigIntValue * precisionDecimalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({\n bigIntDecimal: decimal,\n decimal,\n value: result,\n });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimalMultiplier: toMultiplier(decimal),\n decimal: this.decimal,\n value,\n identifier: this.toString(),\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0] || \"0\", decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n switch (method) {\n case \"gt\":\n return compareToValue > value;\n case \"gte\":\n return compareToValue >= value;\n case \"lt\":\n return compareToValue < value;\n case \"lte\":\n return compareToValue <= value;\n case \"eqValue\":\n return compareToValue === value;\n }\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n});\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue =\n typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1\n ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}`\n : splitValue[0] || \"0\";\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\"\n ? \"getValue\" in param\n ? param.getValue(\"string\")\n : param.value\n : param;\n}\n",
|
|
18
18
|
"type Options = Parameters<typeof fetch>[1] & {\n headers?: Record<string, string>;\n apiKey?: string;\n method?: \"GET\" | \"POST\";\n onError?: (error: NotWorth) => NotWorth;\n responseHandler?: (response: NotWorth) => NotWorth;\n searchParams?: Record<string, string>;\n json?: unknown;\n};\n\nlet clientConfig: Options = {};\n\nexport const defaultRequestHeaders =\n typeof window !== \"undefined\"\n ? ({} as Record<string, string>)\n : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" };\n\nexport function setRequestClientConfig({ apiKey, ...config }: Options) {\n clientConfig = { ...config, apiKey };\n}\n\nasync function fetchWithConfig(url: string, options: Options) {\n const { apiKey, ...config } = clientConfig;\n const { searchParams, json, body } = options;\n const headers = {\n ...defaultRequestHeaders,\n ...config.headers,\n ...options.headers,\n ...(json ? { \"Content-Type\": \"application/json\" } : {}),\n } as Record<string, string>;\n\n const bodyToSend = json ? JSON.stringify(json) : body;\n\n const urlInstance = new URL(url);\n if (searchParams) {\n urlInstance.search = new URLSearchParams(searchParams).toString();\n }\n\n if (apiKey) headers[\"x-api-key\"] = apiKey;\n\n try {\n const response = await fetch(urlInstance.toString(), {\n ...config,\n ...options,\n body: bodyToSend,\n headers,\n });\n const body = await response.json();\n\n if (options.responseHandler) return options.responseHandler(body);\n\n return body;\n } catch (error) {\n if (options.onError) return options.onError(error);\n\n console.error(error);\n }\n}\n\nexport const RequestClient = {\n get: async <T>(url: string, options?: Options): Promise<T> =>\n fetchWithConfig(url, { ...options, method: \"GET\" }),\n post: async <T>(url: string, options?: Options): Promise<T> =>\n fetchWithConfig(url, { ...options, method: \"POST\" }),\n extend: (options: Options) => {\n const extendedConfig = { ...clientConfig, ...options };\n return {\n get: async <T>(url: string, options?: Options): Promise<T> =>\n fetchWithConfig(url, { ...extendedConfig, ...options, method: \"GET\" }),\n post: async <T>(url: string, options?: Options): Promise<T> =>\n fetchWithConfig(url, { ...extendedConfig, ...options, method: \"POST\" }),\n extend: (newOptions: Options) => RequestClient.extend({ ...extendedConfig, ...newOptions }),\n };\n },\n};\n",
|
|
19
19
|
"import { AssetValue } from \"../modules/assetValue.ts\";\nimport { RequestClient } from \"../modules/requestClient.ts\";\nimport { BaseDecimal, Chain, ChainToRPC, type EVMChain, EVMChains } from \"../types/chains.ts\";\nimport type { RadixCoreStateResourceDTO } from \"../types/radix.ts\";\nimport type { TokenNames } from \"../types/tokens.ts\";\n\nconst getDecimalMethodHex = \"0x313ce567\";\n\nexport type CommonAssetString = (typeof CommonAssetStrings)[number] | Chain;\n\nexport type ConditionalAssetValueReturn<T extends boolean> = T extends true\n ? Promise<AssetValue[]>\n : AssetValue[];\n\nexport const CommonAssetStrings = [\n `${Chain.Maya}.MAYA`,\n `${Chain.Ethereum}.THOR`,\n `${Chain.Ethereum}.vTHOR`,\n `${Chain.Kujira}.USK`,\n] as const;\n\nconst getContractDecimals = async ({ chain, to }: { chain: EVMChain; to: string }) => {\n try {\n const { result } = await RequestClient.post<{ result: string }>(ChainToRPC[chain], {\n headers: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache\",\n },\n body: JSON.stringify({\n id: 44,\n jsonrpc: \"2.0\",\n method: \"eth_call\",\n params: [{ to: to.toLowerCase(), data: getDecimalMethodHex }, \"latest\"],\n }),\n });\n\n return Number.parseInt(BigInt(result || BaseDecimal[chain]).toString());\n } catch (error) {\n console.error(error);\n return BaseDecimal[chain];\n }\n};\n\nconst getRadixResourceDecimals = async ({ symbol }: { symbol: string }) => {\n try {\n const resourceAddress = symbol.split(\"-\")[1]?.toLowerCase();\n\n const { manager } = await RequestClient.post<RadixCoreStateResourceDTO>(\n `${ChainToRPC[Chain.Radix]}/state/resource`,\n {\n headers: {\n Accept: \"*/*\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n network: \"mainnet\",\n resource_address: resourceAddress,\n }),\n },\n );\n\n return manager.divisibility.value.divisibility;\n } catch (error) {\n console.error(error);\n return BaseDecimal[Chain.Radix];\n }\n};\n\nconst getETHAssetDecimal = (symbol: string) => {\n if (symbol === Chain.Ethereum) return BaseDecimal.ETH;\n const splitSymbol = symbol.split(\"-\");\n const address =\n splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1]?.toLowerCase();\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Ethereum, to: address })\n : BaseDecimal.ETH;\n};\n\nconst getAVAXAssetDecimal = (symbol: string) => {\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Avalanche, to: address.toLowerCase() })\n : BaseDecimal.AVAX;\n};\n\nconst getBSCAssetDecimal = (symbol: string) => {\n if (symbol === Chain.BinanceSmartChain) return BaseDecimal.BSC;\n\n return BaseDecimal.BSC;\n};\n\nconst getRadixAssetDecimal = (symbol: string) => {\n if (symbol === Chain.Radix) return BaseDecimal.XRD;\n\n return getRadixResourceDecimals({ symbol });\n};\n\nexport const getDecimal = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Ethereum:\n return getETHAssetDecimal(symbol);\n case Chain.Avalanche:\n return getAVAXAssetDecimal(symbol);\n case Chain.BinanceSmartChain:\n return getBSCAssetDecimal(symbol);\n case Chain.Radix:\n return getRadixAssetDecimal(symbol);\n default:\n return BaseDecimal[chain];\n }\n};\n\nexport const getGasAsset = ({ chain }: { chain: Chain }) => {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Optimism:\n return AssetValue.from({ asset: `${chain}.ETH` });\n case Chain.Maya:\n return AssetValue.from({ asset: `${chain}.CACAO` });\n case Chain.Cosmos:\n return AssetValue.from({ asset: `${chain}.ATOM` });\n case Chain.BinanceSmartChain:\n return AssetValue.from({ asset: `${chain}.BNB` });\n case Chain.THORChain:\n return AssetValue.from({ asset: `${chain}.RUNE` });\n\n default:\n return AssetValue.from({ asset: `${chain}.${chain}` });\n }\n};\n\nexport const isGasAsset = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Optimism:\n return symbol === \"ETH\";\n case Chain.Maya:\n return symbol === \"CACAO\";\n case Chain.Cosmos:\n return symbol === \"ATOM\";\n case Chain.BinanceSmartChain:\n return symbol === \"BNB\";\n case Chain.THORChain:\n return symbol === \"RUNE\";\n\n default:\n return symbol === chain;\n }\n};\n\nexport const getCommonAssetInfo = (\n assetString: CommonAssetString,\n): { identifier: string; decimal: number } => {\n switch (assetString) {\n case Chain.Arbitrum:\n case Chain.Optimism:\n return { identifier: `${assetString}.ETH`, decimal: BaseDecimal[assetString] };\n\n case `${Chain.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${Chain.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n case Chain.Cosmos:\n return { identifier: `${assetString}.ATOM`, decimal: BaseDecimal[assetString] };\n case Chain.THORChain:\n return { identifier: `${assetString}.RUNE`, decimal: BaseDecimal[assetString] };\n case Chain.BinanceSmartChain:\n return { identifier: `${assetString}.BNB`, decimal: BaseDecimal[assetString] };\n case Chain.Maya:\n return { identifier: `${assetString}.CACAO`, decimal: 10 };\n case Chain.Radix:\n return { identifier: `${Chain.Radix}.XRD`, decimal: BaseDecimal[assetString] };\n\n case `${Chain.Maya}.MAYA`:\n return { identifier: assetString, decimal: 4 };\n case `${Chain.Kujira}.USK`:\n return { identifier: assetString, decimal: 6 };\n\n default:\n return { identifier: `${assetString}.${assetString}`, decimal: BaseDecimal[assetString] };\n }\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Refactor\nexport const getAssetType = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n if (symbol.includes(\"/\")) return \"Synth\";\n\n switch (chain) {\n case Chain.Cosmos:\n return symbol === \"ATOM\" ? \"Native\" : Chain.Cosmos;\n case Chain.Kujira:\n return symbol === Chain.Kujira ? \"Native\" : Chain.Kujira;\n case Chain.BinanceSmartChain:\n return symbol === \"BNB\" ? \"Native\" : \"BEP20\";\n case Chain.Ethereum:\n return symbol === Chain.Ethereum ? \"Native\" : \"ERC20\";\n case Chain.Avalanche:\n return symbol === Chain.Avalanche ? \"Native\" : Chain.Avalanche;\n case Chain.Polygon:\n return symbol === Chain.Polygon ? \"Native\" : \"POLYGON\";\n case Chain.Arbitrum:\n return [Chain.Ethereum, Chain.Arbitrum].includes(symbol as Chain) ? \"Native\" : \"ARBITRUM\";\n case Chain.Optimism:\n return [Chain.Ethereum, Chain.Optimism].includes(symbol as Chain) ? \"Native\" : \"OPTIMISM\";\n case Chain.Radix:\n return symbol === Chain.Radix ? \"Native\" : \"RADIX\";\n\n default:\n return \"Native\";\n }\n};\n\nexport const assetFromString = (assetString: string) => {\n const [chain, ...symbolArray] = assetString.split(\".\") as [Chain, ...(string | undefined)[]];\n const synth = assetString.includes(\"/\");\n const symbol = symbolArray.join(\".\");\n const splitSymbol = symbol?.split(\"-\");\n const ticker = splitSymbol?.length\n ? splitSymbol.length === 1\n ? splitSymbol[0]\n : splitSymbol.slice(0, -1).join(\"-\")\n : undefined;\n\n return { chain, symbol, ticker, synth };\n};\n\nconst potentialScamRegex = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\",\n);\n\nconst evmAssetHasAddress = (assetString: string) => {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n};\n\nexport const filterAssets = (\n tokens: {\n value: string;\n decimal: number;\n chain: Chain;\n symbol: string;\n }[],\n) =>\n tokens.filter(({ chain, value, symbol }) => {\n const assetString = `${chain}.${symbol}`;\n\n return (\n !potentialScamRegex.test(assetString) && evmAssetHasAddress(assetString) && value !== \"0\"\n );\n });\n\nexport async function findAssetBy(\n params:\n | { chain: EVMChain | Chain.Radix; contract: string }\n | { identifier: `${Chain}.${string}` },\n) {\n const tokenPackages = await import(\"@swapkit/tokens\");\n\n for (const tokenList of Object.values(tokenPackages)) {\n for (const { identifier, chain: tokenChain, ...rest } of tokenList.tokens) {\n if (\"identifier\" in params && identifier === params.identifier) {\n return identifier as TokenNames;\n }\n\n if (\n \"address\" in rest &&\n \"chain\" in params &&\n tokenChain === params.chain &&\n rest.address.toLowerCase() === params.contract.toLowerCase()\n )\n return identifier as TokenNames;\n }\n }\n\n return;\n}\n",
|
|
20
|
-
"import {\n Chain,\n type DerivationPathArray,\n type EVMChain,\n EVMChains,\n NetworkDerivationPath,\n} from \"../types\";\n\ntype Params = {\n chain: Chain;\n index: number;\n addressIndex?: number;\n type?: \"legacy\" | \"ledgerLive\" | \"nativeSegwitMiddleAccount\" | \"segwit\";\n};\n\nconst updatedLastIndex = (path: DerivationPathArray, index: number) => {\n const newPath = [...path.slice(0, path.length - 1), index];\n return newPath as DerivationPathArray;\n};\n\nexport function derivationPathToString([network, chainId, account, change, index]:\n | [number, number, number, number, number
|
|
20
|
+
"import {\n Chain,\n type DerivationPathArray,\n type EVMChain,\n EVMChains,\n NetworkDerivationPath,\n} from \"../types\";\n\ntype Params = {\n chain: Chain;\n index: number;\n addressIndex?: number;\n type?: \"legacy\" | \"ledgerLive\" | \"nativeSegwitMiddleAccount\" | \"segwit\";\n};\n\nconst updatedLastIndex = (path: DerivationPathArray, index: number) => {\n const newPath = [...path.slice(0, path.length - 1), index];\n return newPath as DerivationPathArray;\n};\n\nexport function derivationPathToString([network, chainId, account, change, index]:\n | [number, number, number, number, number?]\n | DerivationPathArray) {\n const shortPath = typeof index !== \"number\";\n\n return `m/${network}'/${chainId}'/${account}'/${change}${shortPath ? \"\" : `/${index}`}`;\n}\n\nexport function getDerivationPathFor({ chain, index, addressIndex = 0, type }: Params) {\n if (EVMChains.includes(chain as EVMChain)) {\n if (type === \"legacy\") return [44, 60, 0, index] as DerivationPathArray;\n if (type === \"ledgerLive\") return [44, 60, index, 0, addressIndex] as DerivationPathArray;\n return updatedLastIndex(NetworkDerivationPath[chain], index);\n }\n\n const chainId = chain === Chain.Litecoin ? 2 : 0;\n\n switch (type) {\n case \"nativeSegwitMiddleAccount\":\n return [84, chainId, index, 0, addressIndex] as DerivationPathArray;\n case \"segwit\":\n return [49, chainId, 0, 0, index] as DerivationPathArray;\n case \"legacy\":\n return [44, chainId, 0, 0, index] as DerivationPathArray;\n default:\n return updatedLastIndex(NetworkDerivationPath[chain], index);\n }\n}\n\nexport function getWalletFormatFor(path: string) {\n const [_, purpose, chainId] = path.split(\"/\").map((p) => Number.parseInt(p, 10));\n\n if (chainId === 145) \"cashaddr\";\n\n switch (purpose) {\n case 44:\n return \"legacy\";\n case 49:\n return \"p2sh\";\n default:\n return \"bech32\";\n }\n}\n",
|
|
21
21
|
"import { SwapKitNumber } from \"../index.ts\";\nimport { BaseDecimal } from \"../types/chains.ts\";\n\ntype ShareParams<T extends {}> = T & {\n liquidityUnits: string;\n poolUnits: string;\n};\n\ntype PoolParams = {\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n};\n\n/**\n * Ref: https://gitlab.com/thorchain/thornode/-/issues/657\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * s = stakeUnits for member (after factoring in withdrawBasisPoints)\n * T = totalPoolUnits for pool\n * A = assetDepth to be withdrawn\n *\n * Formula:\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * (part1 * (part2 - part3 + part4)) / part5\n */\nexport function getAsymmetricRuneShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n}: ShareParams<{ runeDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(runeDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const part5 = T.mul(T).mul(T);\n\n const numerator = part1.mul(part2.sub(part3).add(part4));\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricAssetShare({\n liquidityUnits,\n poolUnits,\n assetDepth,\n}: ShareParams<{ assetDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(assetDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const numerator = part1.mul(part2.sub(part3).add(part4));\n const part5 = T.mul(T).mul(T);\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricRuneWithdrawAmount({\n percent,\n runeDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; runeDepth: string }>) {\n return getAsymmetricRuneShare({ runeDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nexport function getAsymmetricAssetWithdrawAmount({\n percent,\n assetDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; assetDepth: string }>) {\n return getAsymmetricAssetShare({ assetDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nfunction toTCSwapKitNumber(value: string) {\n return SwapKitNumber.fromBigInt(BigInt(value), BaseDecimal.THOR);\n}\n\nexport function getSymmetricPoolShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n}>) {\n return {\n assetAmount: toTCSwapKitNumber(assetDepth).mul(liquidityUnits).div(poolUnits),\n runeAmount: toTCSwapKitNumber(runeDepth).mul(liquidityUnits).div(poolUnits),\n };\n}\n\nexport function getSymmetricWithdraw({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n percent,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n percent: number;\n}>) {\n return Object.fromEntries(\n Object.entries(getSymmetricPoolShare({ liquidityUnits, poolUnits, runeDepth, assetDepth })).map(\n ([name, value]) => [name, value.mul(percent)],\n ),\n );\n}\n\nexport function getEstimatedPoolShare({\n runeDepth,\n poolUnits,\n assetDepth,\n liquidityUnits,\n runeAmount,\n assetAmount,\n}: ShareParams<{\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n}>) {\n const R = new SwapKitNumber({ value: runeDepth, decimal: 8 });\n const A = new SwapKitNumber({ value: assetDepth, decimal: 8 });\n const P = new SwapKitNumber({ value: poolUnits, decimal: 8 });\n const runeAddAmount = new SwapKitNumber({ value: runeAmount, decimal: 8 });\n const assetAddAmount = new SwapKitNumber({ value: assetAmount, decimal: 8 });\n\n // liquidityUnits = P * (r*A + a*R + 2*r*a) / (r*A + a*R + 2*R*A)\n const rA = runeAddAmount.mul(A);\n const aR = assetAddAmount.mul(R);\n const ra = runeAddAmount.mul(assetAddAmount);\n const RA = R.mul(A);\n const numerator = P.mul(rA.add(aR.add(ra.mul(2))));\n const denominator = rA.add(aR.add(RA.mul(2)));\n const liquidityUnitsAfterAdd = numerator.div(denominator);\n const estimatedLiquidityUnits = toTCSwapKitNumber(liquidityUnits).add(liquidityUnitsAfterAdd);\n\n if (liquidityUnitsAfterAdd.getBaseValue(\"number\") === 0) {\n return estimatedLiquidityUnits.div(P).getBaseValue(\"number\");\n }\n\n // get pool units after add\n const newPoolUnits = P.add(estimatedLiquidityUnits);\n\n return estimatedLiquidityUnits.div(newPoolUnits).getBaseValue(\"number\");\n}\n\nexport function getLiquiditySlippage({\n runeAmount,\n assetAmount,\n runeDepth,\n assetDepth,\n}: PoolParams) {\n if (runeAmount === \"0\" || assetAmount === \"0\" || runeDepth === \"0\" || assetDepth === \"0\")\n return 0;\n // formula: (t * R - T * r)/ (T*r + R*T)\n const R = toTCSwapKitNumber(runeDepth);\n const T = toTCSwapKitNumber(assetDepth);\n const assetAddAmount = toTCSwapKitNumber(assetAmount);\n const runeAddAmount = toTCSwapKitNumber(runeAmount);\n\n const numerator = assetAddAmount.mul(R).sub(T.mul(runeAddAmount));\n const denominator = T.mul(runeAddAmount).add(R.mul(T));\n\n // set absolute value of percent, no negative allowed\n return Math.abs(numerator.div(denominator).getBaseValue(\"number\"));\n}\n",
|
|
22
22
|
"import { SwapKitError } from \"../modules/swapKitError\";\nimport { Chain } from \"../types/chains\";\nimport { MemoType } from \"../types/sdk\";\n\nexport function getMemoForLeaveAndBond({ type, address }: BondOrLeaveParams) {\n return `${type}:${address}`;\n}\n\nexport function getMemoForUnbond({ address, unbondAmount }: UnbondParams) {\n return `${MemoType.UNBOND}:${address}:${unbondAmount}`;\n}\n\n/**\n * Deposit\n */\nexport function getMemoForRunePoolDeposit(affiliate?: WithAffiliate<{}>) {\n return addAffiliate(MemoType.RUNEPOOL_DEPOSIT, affiliate);\n}\n\nexport function getMemoForSaverDeposit({\n chain,\n symbol,\n ...affiliate\n}: WithAffiliate<{ chain: Chain; symbol: string }>) {\n return addAffiliate(`${MemoType.DEPOSIT}:${chain}/${symbol}`, affiliate);\n}\n\nexport function getMemoForDeposit({\n chain,\n symbol,\n address,\n ...affiliate\n}: WithAffiliate<{\n chain: Chain;\n symbol: string;\n address?: string;\n}>) {\n const poolIdentifier = getPoolIdentifier({ chain, symbol });\n const addressPart = address ? `:${address}:` : \":\";\n\n return addAffiliate(`${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`, affiliate);\n}\n\n/**\n * Withdraw\n */\nexport function getMemoForSaverWithdraw({\n chain,\n symbol,\n basisPoints,\n}: { chain: Chain; symbol: string; basisPoints: number }) {\n return `${MemoType.WITHDRAW}:${chain}/${symbol}:${basisPoints}`;\n}\n\nexport function getMemoForWithdraw({\n chain,\n symbol,\n ticker,\n basisPoints,\n targetAsset,\n}: WithdrawParams) {\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const targetPart = targetAsset ? `:${targetAsset}` : \"\";\n\n return `${MemoType.WITHDRAW}:${chain}.${shortenedSymbol}:${basisPoints}${targetPart}`;\n}\n\nexport function getMemoForRunePoolWithdraw({\n basisPoints,\n ...affiliate\n}: WithAffiliate<{ basisPoints: number }>) {\n return addAffiliate(`${MemoType.RUNEPOOL_WITHDRAW}:${basisPoints}`, affiliate);\n}\n\n/**\n * TNS\n */\nexport function getMemoForNameRegister({ name, chain, address, owner }: NameRegisterParams) {\n const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;\n const ownerAssignmentOrChangePart = owner ? `:${owner}` : \"\";\n\n return `${baseMemo}${ownerAssignmentOrChangePart}`;\n}\n\nexport function getMemoForNamePreferredAssetRegister({\n name,\n chain,\n asset,\n payout,\n owner,\n}: PreferredAssetRegisterParams) {\n return `${MemoType.NAME_REGISTER}:${name}:${chain}:${payout}:${owner}:${asset}`;\n}\n\nexport function getMemoForLoan(\n memoType: MemoType.OPEN_LOAN | MemoType.CLOSE_LOAN,\n {\n asset,\n address,\n minAmount,\n ...affiliate\n }: WithAffiliate<{ address: string; asset: string; minAmount?: string }>,\n) {\n const baseMemo = `${memoType}:${asset}:${address}`;\n const minAmountPart = minAmount ? `:${minAmount}` : \"\";\n\n return addAffiliate(`${baseMemo}${minAmountPart}`, affiliate);\n}\n\n/**\n * Internal helpers\n */\nfunction addAffiliate(\n memo: string,\n { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}> = {},\n) {\n const affiliatedMemo = `${memo}${affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : \"\"}`;\n\n return affiliatedMemo.endsWith(\":\") ? affiliatedMemo.slice(0, -1) : affiliatedMemo;\n}\n\nfunction getPoolIdentifier({\n chain,\n symbol,\n}: {\n chain: Chain;\n symbol: string;\n}) {\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n return chain.slice(0, 1).toLowerCase();\n case Chain.BitcoinCash:\n return \"c\";\n\n default:\n return `${chain}.${symbol}`;\n }\n}\n\ntype WithAffiliate<T extends {}> = T & {\n affiliateAddress?: string;\n affiliateBasisPoints?: number;\n};\n\ntype BondOrLeaveParams = { type: MemoType.BOND | MemoType.LEAVE; address: string };\ntype UnbondParams = { address: string; unbondAmount: number };\ntype NameRegisterParams = { name: string; chain: string; address: string; owner?: string };\ntype PreferredAssetRegisterParams = {\n name: string;\n chain: Chain;\n asset: string;\n payout: string;\n owner: string;\n};\ntype WithdrawParams = {\n chain: Chain;\n symbol: string;\n ticker: string;\n basisPoints: number;\n targetAsset?: string;\n};\n\n/**\n * @deprecated - Use separate functions per each memo type like getMemoForDeposit, getMemoForWithdraw, etc.\n */\nexport const getMemoFor = <T extends MemoType>(memoType: T, options: NotWorth) => {\n switch (memoType) {\n case MemoType.LEAVE:\n case MemoType.BOND: {\n return getMemoForLeaveAndBond({ type: memoType, address: options?.address });\n }\n\n case MemoType.UNBOND: {\n return getMemoForUnbond({ address: options?.address, unbondAmount: options?.unbondAmount });\n }\n\n case MemoType.NAME_REGISTER: {\n return getMemoForNameRegister(options);\n }\n\n case MemoType.OPEN_LOAN:\n case MemoType.CLOSE_LOAN: {\n return getMemoForLoan(memoType, options);\n }\n\n case MemoType.DEPOSIT: {\n const { chain, symbol, address, singleSide } = options;\n\n if (singleSide) {\n return getMemoForSaverDeposit({ chain, symbol });\n }\n\n return getMemoForDeposit({ chain, symbol, address });\n }\n\n case MemoType.WITHDRAW: {\n const {\n chain,\n ticker,\n symbol,\n basisPoints,\n targetAssetString: targetAsset,\n singleSide,\n } = options;\n\n if (singleSide) {\n return getMemoForSaverWithdraw({ chain, symbol, basisPoints });\n }\n\n return getMemoForWithdraw({\n chain,\n ticker,\n symbol,\n basisPoints,\n targetAsset,\n });\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"helpers_invalid_memo_type\",\n info: { memoType },\n });\n }\n};\n",
|
|
23
23
|
"import type { BrowserProvider } from \"ethers\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport {\n Chain,\n ChainId,\n type EIP6963AnnounceProviderEvent,\n type EIP6963Provider,\n WalletOption,\n} from \"../types\";\n\nexport type EthereumWindowProvider = BrowserProvider & {\n __XDEFI?: boolean;\n isBraveWallet?: boolean;\n isCoinbaseWallet?: boolean;\n isMetaMask?: boolean;\n isOkxWallet?: boolean;\n isTrust?: boolean;\n isTalisman?: boolean;\n on: (event: string, callback?: () => void) => void;\n overrideIsMetaMask?: boolean;\n request: <T = unknown>(args: { method: string; params?: unknown[] }) => Promise<T>;\n selectedProvider?: EthereumWindowProvider;\n};\n\ndeclare const window: {\n ethereum: EthereumWindowProvider;\n trustwallet: EthereumWindowProvider;\n coinbaseWalletExtension: EthereumWindowProvider;\n braveSolana: Todo;\n} & Window;\n\ntype NetworkParams = {\n chainId: ChainId;\n chainName: string;\n nativeCurrency: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls: string[];\n blockExplorerUrls: string[];\n};\n\ntype ProviderRequestParams = {\n provider?: BrowserProvider;\n params?: Todo;\n method:\n | \"wallet_addEthereumChain\"\n | \"wallet_switchEthereumChain\"\n | \"eth_requestAccounts\"\n | \"eth_sendTransaction\"\n | \"eth_signTransaction\";\n};\n\nconst methodsToWrap = [\n \"approve\",\n \"approvedAmount\",\n \"call\",\n \"sendTransaction\",\n \"transfer\",\n \"isApproved\",\n \"approvedAmount\",\n \"EIP1193SendTransaction\",\n \"getFeeData\",\n \"broadcastTransaction\",\n \"estimateCall\",\n \"estimateGasLimit\",\n \"estimateGasPrices\",\n \"createContractTxObject\",\n];\n\nexport const wrapMethodWithNetworkSwitch = <T extends (...args: Todo[]) => Todo>(\n func: T,\n provider: BrowserProvider,\n chainId: ChainId,\n) =>\n (async (...args: Todo[]) => {\n try {\n await switchEVMWalletNetwork(provider, chainId);\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"helpers_failed_to_switch_network\",\n info: { error },\n });\n }\n return func(...args);\n }) as unknown as T;\n\nconst providerRequest = ({ provider, params, method }: ProviderRequestParams) => {\n if (!provider?.send) {\n throw new SwapKitError(\"helpers_not_found_provider\");\n }\n\n const providerParams = params ? (Array.isArray(params) ? params : [params]) : [];\n return provider.send(method, providerParams);\n};\n\nexport const prepareNetworkSwitch = <T extends { [key: string]: (...args: Todo[]) => Todo }>({\n toolbox,\n chainId,\n provider = window.ethereum,\n}: {\n toolbox: T;\n chainId: ChainId;\n provider?: BrowserProvider;\n}) => {\n const wrappedMethods = methodsToWrap.reduce((object, methodName) => {\n if (!toolbox[methodName]) return object;\n const method = toolbox[methodName];\n\n if (typeof method !== \"function\") return object;\n\n return {\n // biome-ignore lint/performance/noAccumulatingSpread: This is a valid use case\n ...object,\n [methodName]: wrapMethodWithNetworkSwitch<typeof method>(method, provider, chainId),\n };\n }, {});\n\n return { ...toolbox, ...wrappedMethods };\n};\n\nexport const addEVMWalletNetwork = (provider: BrowserProvider, networkParams: NetworkParams) =>\n providerRequest({ provider, method: \"wallet_addEthereumChain\", params: [networkParams] });\n\nexport const switchEVMWalletNetwork = (provider: BrowserProvider, chainId = ChainId.EthereumHex) =>\n providerRequest({ provider, method: \"wallet_switchEthereumChain\", params: [{ chainId }] });\n\nexport const addAccountsChangedCallback = (callback: () => void) => {\n window.ethereum?.on(\"accountsChanged\", () => callback());\n // @ts-expect-error that should be implemented in xdefi and hooked up via swapkit core\n window.xfi?.ethereum.on(\"accountsChanged\", () => callback());\n};\n\nexport const getETHDefaultWallet = () => {\n const { isTrust, isBraveWallet, __XDEFI, overrideIsMetaMask, selectedProvider } =\n window?.ethereum || {};\n if (isTrust) return WalletOption.TRUSTWALLET_WEB;\n if (isBraveWallet) return WalletOption.BRAVE;\n if (overrideIsMetaMask && selectedProvider?.isCoinbaseWallet) return WalletOption.COINBASE_WEB;\n if (__XDEFI) WalletOption.XDEFI;\n return WalletOption.METAMASK;\n};\n\nexport const isDetected = (walletOption: WalletOption) => {\n return listWeb3EVMWallets().includes(walletOption);\n};\n\nexport const listWeb3EVMWallets = () => {\n const metamaskEnabled = window?.ethereum && !window.ethereum?.isBraveWallet;\n // @ts-ignore that should be implemented in xdefi and hooked up via swapkit core\n const xdefiEnabled = window?.xfi || window?.ethereum?.__XDEFI;\n const braveEnabled = window?.ethereum?.isBraveWallet;\n const trustEnabled = window?.ethereum?.isTrust || window?.trustwallet;\n const coinbaseEnabled =\n (window?.ethereum?.overrideIsMetaMask &&\n window?.ethereum?.selectedProvider?.isCoinbaseWallet) ||\n window?.coinbaseWalletExtension;\n\n const wallets = [];\n if (metamaskEnabled) wallets.push(WalletOption.METAMASK);\n if (xdefiEnabled) wallets.push(WalletOption.XDEFI);\n if (braveEnabled) wallets.push(WalletOption.BRAVE);\n if (trustEnabled) wallets.push(WalletOption.TRUSTWALLET_WEB);\n if (coinbaseEnabled) wallets.push(WalletOption.COINBASE_WEB);\n if (okxMobileEnabled()) wallets.push(WalletOption.OKX_MOBILE);\n\n return wallets;\n};\n\nexport function ensureEVMApiKeys({\n chain,\n covalentApiKey,\n ethplorerApiKey,\n}: { chain: Chain; covalentApiKey?: string; ethplorerApiKey?: string }) {\n const missingKey =\n chain !== Chain.Ethereum && !covalentApiKey\n ? \"covalentApiKey\"\n : ethplorerApiKey\n ? undefined\n : \"ethplorerApiKey\";\n\n if (missingKey) {\n throw new SwapKitError({ errorKey: \"wallet_missing_api_key\", info: { missingKey } });\n }\n\n return { covalentApiKey: covalentApiKey as string, ethplorerApiKey: ethplorerApiKey as string };\n}\n\nexport function getEIP6963Wallets() {\n const providers: EIP6963Provider[] = [];\n\n function onAnnouncement(event: EIP6963AnnounceProviderEvent) {\n if (providers.map((p) => p.info.uuid).includes(event.detail.info.uuid)) return;\n providers.push(event.detail);\n }\n\n window.addEventListener(\"eip6963:announceProvider\", onAnnouncement);\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n function removeEIP6963EventListener() {\n window.removeEventListener(\"eip6963:announceProvider\", onAnnouncement);\n }\n\n return { providers, removeEIP6963EventListener };\n}\n\nexport const okxMobileEnabled = () => {\n const ua = navigator.userAgent;\n const isIOS = /iphone|ipad|ipod|ios/i.test(ua);\n const isAndroid = /android|XiaoMi|MiuiBrowser/i.test(ua);\n const isMobile = isIOS || isAndroid;\n const isOKApp = /OKApp/i.test(ua);\n\n return isMobile && isOKApp;\n};\n\nexport const isWeb3Detected = () => typeof window.ethereum !== \"undefined\";\n",
|
|
24
24
|
"import { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\n\nexport type SwapKitValueType = BigIntArithmetics | string | number;\n\nexport class SwapKitNumber extends BigIntArithmetics {\n eq(value: SwapKitValueType) {\n return this.eqValue(value);\n }\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new SwapKitNumber({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n}\n"
|
|
25
25
|
],
|
|
26
26
|
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
27
|
+
"debugId": "C55BBF00179D322464756E2164756E21",
|
|
28
28
|
"names": []
|
|
29
29
|
}
|
package/package.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"picocolors": "1.0.1"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"@swapkit/toolbox-cosmos": "1.0.
|
|
11
|
-
"@swapkit/toolbox-evm": "1.2.
|
|
12
|
-
"@swapkit/toolbox-solana": "1.0.
|
|
13
|
-
"@swapkit/toolbox-radix": "1.0.
|
|
14
|
-
"@swapkit/toolbox-substrate": "1.1.
|
|
15
|
-
"@swapkit/toolbox-utxo": "1.1.
|
|
10
|
+
"@swapkit/toolbox-cosmos": "1.0.23",
|
|
11
|
+
"@swapkit/toolbox-evm": "1.2.4",
|
|
12
|
+
"@swapkit/toolbox-solana": "1.0.21",
|
|
13
|
+
"@swapkit/toolbox-radix": "1.0.21",
|
|
14
|
+
"@swapkit/toolbox-substrate": "1.1.16",
|
|
15
|
+
"@swapkit/toolbox-utxo": "1.1.4"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"src/",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
},
|
|
38
38
|
"type": "module",
|
|
39
39
|
"types": "./src/index.ts",
|
|
40
|
-
"version": "1.5.
|
|
40
|
+
"version": "1.5.1"
|
|
41
41
|
}
|
|
@@ -19,7 +19,7 @@ const updatedLastIndex = (path: DerivationPathArray, index: number) => {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export function derivationPathToString([network, chainId, account, change, index]:
|
|
22
|
-
| [number, number, number, number, number
|
|
22
|
+
| [number, number, number, number, number?]
|
|
23
23
|
| DerivationPathArray) {
|
|
24
24
|
const shortPath = typeof index !== "number";
|
|
25
25
|
|