@swapkit/helpers 1.0.2 → 1.0.4

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 CHANGED
@@ -1,3 +1,3 @@
1
- var an=((n)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(n,{get:(e,t)=>(typeof require!=="undefined"?require:e)[t]}):n)(function(n){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var He=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var oe=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct MAYAChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct MAYAChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],_e=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct ArbRouter.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ArbRouter.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}];var $e=[{inputs:[{internalType:"address",name:"rune",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[],name:"RUNE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"aggregator",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],Ge=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct AvaxRouter.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct AvaxRouter.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],Xe=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}];var M;(function(m){m["Arbitrum"]="https://arb1.arbitrum.io/rpc";m["Avalanche"]="https://node-router.thorswap.net/avalanche-c";m["BinanceSmartChain"]="https://bsc-dataseed.binance.org";m["Bitcoin"]="https://node-router.thorswap.net/bitcoin";m["BitcoinCash"]="https://node-router.thorswap.net/bitcoin-cash";m["Chainflip"]="wss://mainnet-archive.chainflip.io";m["Cosmos"]="https://node-router.thorswap.net/cosmos/rpc";m["Dash"]="https://node-router.thorswap.net/dash";m["Dogecoin"]="https://node-router.thorswap.net/dogecoin";m["Ethereum"]="https://node-router.thorswap.net/ethereum";m["Kujira"]="https://rpc-kujira.synergynodes.com/";m["Litecoin"]="https://node-router.thorswap.net/litecoin";m["Maya"]="https://tendermint.mayachain.info";m["MayaStagenet"]="https://stagenet.tendermint.mayachain.info";m["Optimism"]="https://mainnet.optimism.io";m["Polkadot"]="wss://rpc.polkadot.io";m["Polygon"]="https://polygon-rpc.com";m["Radix"]="https://radix-mainnet.rpc.grove.city/v1/326002fc/core";m["THORChain"]="https://rpc.thorswap.net";m["THORChainStagenet"]="https://stagenet-rpc.ninerealms.com";m["Solana"]="https://mainnet.helius-rpc.com/?api-key=2cbe3ae6-cfc5-4141-a093-0055d0fa3d80"})(M||(M={}));var Q;(function(s){s["Arbitrum"]="https://arbiscan.io";s["Avalanche"]="https://snowtrace.io";s["BinanceSmartChain"]="https://bscscan.com";s["Bitcoin"]="https://blockchair.com/bitcoin";s["BitcoinCash"]="https://www.blockchair.com/bitcoin-cash";s["Chainflip"]="https://explorer.polkascan.io/polkadot";s["Cosmos"]="https://www.mintscan.io/cosmos";s["Dash"]="https://blockchair.com/dash";s["Dogecoin"]="https://blockchair.com/dogecoin";s["Ethereum"]="https://etherscan.io";s["Kujira"]="https://finder.kujira.network/kaiyo-1";s["Litecoin"]="https://blockchair.com/litecoin";s["Maya"]="https://www.mayascan.org";s["Optimism"]="https://optimistic.etherscan.io";s["Polkadot"]="https://polkadot.subscan.io";s["Polygon"]="https://polygonscan.com";s["Radix"]="https://dashboard.radixdlt.com";s["THORChain"]="https://runescan.io";s["Solana"]="https://solscan.io"})(Q||(Q={}));var y;(function(s){s["Arbitrum"]="ARB";s["Avalanche"]="AVAX";s["BinanceSmartChain"]="BSC";s["Bitcoin"]="BTC";s["BitcoinCash"]="BCH";s["Cosmos"]="GAIA";s["Dash"]="DASH";s["Dogecoin"]="DOGE";s["Ethereum"]="ETH";s["Kujira"]="KUJI";s["Litecoin"]="LTC";s["Maya"]="MAYA";s["Optimism"]="OP";s["Polkadot"]="DOT";s["Chainflip"]="FLIP";s["Polygon"]="MATIC";s["Radix"]="XRD";s["THORChain"]="THOR";s["Solana"]="SOL"})(y||(y={}));var o;(function(T){T["Arbitrum"]="42161";T["ArbitrumHex"]="0xa4b1";T["Avalanche"]="43114";T["AvalancheHex"]="0xa86a";T["BinanceSmartChain"]="56";T["BinanceSmartChainHex"]="0x38";T["Bitcoin"]="bitcoin";T["BitcoinCash"]="bitcoincash";T["Chainflip"]="chainflip";T["Cosmos"]="cosmoshub-4";T["Dash"]="dash";T["Dogecoin"]="dogecoin";T["Kujira"]="kaiyo-1";T["Ethereum"]="1";T["EthereumHex"]="0x1";T["Litecoin"]="litecoin";T["Maya"]="mayachain-mainnet-v1";T["MayaStagenet"]="mayachain-stagenet-v1";T["Optimism"]="10";T["OptimismHex"]="0xa";T["Polkadot"]="polkadot";T["Polygon"]="137";T["PolygonHex"]="0x89";T["Radix"]="radix-mainnet";T["THORChain"]="thorchain-mainnet-v1";T["THORChainStagenet"]="thorchain-stagenet-v2";T["Solana"]="solana"})(o||(o={}));var ke={[o.ArbitrumHex]:y.Arbitrum,[o.Arbitrum]:y.Arbitrum,[o.AvalancheHex]:y.Avalanche,[o.Avalanche]:y.Avalanche,[o.BinanceSmartChainHex]:y.BinanceSmartChain,[o.BinanceSmartChain]:y.BinanceSmartChain,[o.BitcoinCash]:y.BitcoinCash,[o.Bitcoin]:y.Bitcoin,[o.Chainflip]:y.Chainflip,[o.Cosmos]:y.Cosmos,[o.Dash]:y.Dash,[o.Dogecoin]:y.Dogecoin,[o.EthereumHex]:y.Ethereum,[o.Kujira]:y.Kujira,[o.Ethereum]:y.Ethereum,[o.Litecoin]:y.Litecoin,[o.MayaStagenet]:y.Maya,[o.Maya]:y.Maya,[o.OptimismHex]:y.Optimism,[o.Optimism]:y.Optimism,[o.Polkadot]:y.Polkadot,[o.PolygonHex]:y.Polygon,[o.Polygon]:y.Polygon,[o.Radix]:y.Radix,[o.THORChainStagenet]:y.THORChain,[o.THORChain]:y.THORChain,[o.Solana]:y.Solana},On=Object.keys(y),V=Object.values(y),j;(function(f){f[f["ARB"]=18]="ARB";f[f["AVAX"]=18]="AVAX";f[f["BCH"]=8]="BCH";f[f["BSC"]=18]="BSC";f[f["BTC"]=8]="BTC";f[f["DASH"]=8]="DASH";f[f["DOGE"]=8]="DOGE";f[f["DOT"]=10]="DOT";f[f["ETH"]=18]="ETH";f[f["FLIP"]=18]="FLIP";f[f["GAIA"]=6]="GAIA";f[f["KUJI"]=6]="KUJI";f[f["LTC"]=8]="LTC";f[f["MATIC"]=18]="MATIC";f[f["MAYA"]=10]="MAYA";f[f["OP"]=18]="OP";f[f["SOL"]=9]="SOL";f[f["THOR"]=8]="THOR";f[f["XRD"]=18]="XRD";f[f["ZEC"]=8]="ZEC"})(j||(j={}));var Re=[y.Polkadot,y.Chainflip],W=[y.Ethereum,y.Avalanche,y.BinanceSmartChain,y.Arbitrum,y.Optimism,y.Polygon],Ye=[y.Bitcoin,y.BitcoinCash,y.Dash,y.Dogecoin,y.Litecoin],Le=[y.Cosmos,y.THORChain,y.Maya,y.Kujira],Oe=[y.Avalanche,y.BinanceSmartChain,y.Bitcoin,y.BitcoinCash,y.Cosmos,y.Dogecoin,y.Ethereum,y.Litecoin,y.THORChain],be=[y.Arbitrum,y.Dash,y.Ethereum,y.Kujira,y.Maya,y.THORChain],l=V.reduce((n,e)=>{const t=On.find((p)=>y[p]===e);if(t)n[e]=t;return n},{}),dn=V.reduce((n,e)=>{return n[e]=o[l[e]],n},{}),D=V.reduce((n,e)=>{return n[e]=M[l[e]],n},{}),ge=V.reduce((n,e)=>{const t=`${l[e]}Hex`;return n[e]=o[t],n},{}),qe=V.reduce((n,e)=>{return n[e]=Q[l[e]],n},{});var X;(function(H){H["TC_SUPPORTED_TO_TC_SUPPORTED"]="TC-TC";H["TC_SUPPORTED_TO_ETH"]="TC-ERC20";H["TC_SUPPORTED_TO_AVAX"]="TC-ARC20";H["TC_SUPPORTED_TO_BSC"]="TC-BEP20";H["ETH_TO_TC_SUPPORTED"]="ERC20-TC";H["ETH_TO_ETH"]="ERC20-ERC20";H["ETH_TO_AVAX"]="ERC20-ARC20";H["ETH_TO_BSC"]="ERC20-BEP20";H["AVAX_TO_TC_SUPPORTED"]="ARC20-TC";H["AVAX_TO_ETH"]="ARC20-ERC20";H["AVAX_TO_AVAX"]="ARC20-ARC20";H["AVAX_TO_BSC"]="ARC20-BEP20";H["BSC_TO_TC_SUPPORTED"]="BEP20-TC";H["BSC_TO_ETH"]="BEP20-ERC20";H["BSC_TO_AVAX"]="BEP20-ARC20";H["BSC_TO_BSC"]="BEP20-BEP20"})(X||(X={}));var Ve=[X.ETH_TO_ETH,X.AVAX_TO_AVAX,X.BSC_TO_BSC],Ne=[X.ETH_TO_TC_SUPPORTED,X.ETH_TO_AVAX,X.ETH_TO_BSC,X.AVAX_TO_TC_SUPPORTED,X.AVAX_TO_ETH,X.AVAX_TO_BSC,X.BSC_TO_TC_SUPPORTED,X.BSC_TO_ETH,X.BSC_TO_AVAX],Ae=[X.TC_SUPPORTED_TO_TC_SUPPORTED,X.TC_SUPPORTED_TO_ETH,X.TC_SUPPORTED_TO_AVAX,X.TC_SUPPORTED_TO_BSC];var un;(function(u){u["ARB"]="0x0000000000000000000000000000000000000000";u["AVAX"]="0x0000000000000000000000000000000000000000";u["ETH"]="0x0000000000000000000000000000000000000000";u["BSC"]="0x0000000000000000000000000000000000000000";u["MATIC"]="0x0000000000000000000000000000000000001010";u["OP"]="0x4200000000000000000000000000000000000042"})(un||(un={}));var rn;(function(s){s["ARB"]="m/44'/60'/0'/0";s["AVAX"]="m/44'/60'/0'/0";s["BCH"]="m/44'/145'/0'/0";s["BSC"]="m/44'/60'/0'/0";s["BTC"]="m/84'/0'/0'/0";s["DASH"]="m/44'/5'/0'/0";s["DOGE"]="m/44'/3'/0'/0";s["DOT"]="////";s["ETH"]="m/44'/60'/0'/0";s["FLIP"]="////";s["GAIA"]="m/44'/118'/0'/0";s["KUJI"]="m/44'/118'/0'/0";s["LTC"]="m/84'/2'/0'/0";s["MATIC"]="m/44'/60'/0'/0";s["MAYA"]="m/44'/931'/0'/0";s["OP"]="m/44'/60'/0'/0";s["SOL"]="m/44'/501'/0'/0";s["THOR"]="m/44'/931'/0'/0";s["XRD"]="////"})(rn||(rn={}));var E={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 k;(function(s){s["BRAVE"]="BRAVE";s["COINBASE_MOBILE"]="COINBASE_MOBILE";s["COINBASE_WEB"]="COINBASE_WEB";s["EIP6963"]="EIP6963";s["EXODUS"]="EXODUS";s["KEEPKEY"]="KEEPKEY";s["KEPLR"]="KEPLR";s["KEYSTORE"]="KEYSTORE";s["LEDGER"]="LEDGER";s["METAMASK"]="METAMASK";s["OKX"]="OKX";s["OKX_MOBILE"]="OKX_MOBILE";s["PHANTOM"]="PHANTOM";s["RADIX_WALLET"]="RADIX_WALLET";s["TREZOR"]="TREZOR";s["TALISMAN"]="TALISMAN";s["TRUSTWALLET_WEB"]="TRUSTWALLET_WEB";s["WALLETCONNECT"]="WALLETCONNECT";s["XDEFI"]="XDEFI"})(k||(k={}));var Tn;(function(p){p[p["NoError"]=36864]="NoError";p[p["LockedDevice"]=21781]="LockedDevice";p[p["TC_NotFound"]=65535]="TC_NotFound"})(Tn||(Tn={}));import{z as $} from"zod";var xn;(function(p){p["Average"]="average";p["Fast"]="fast";p["Fastest"]="fastest"})(xn||(xn={}));var mn;(function(t){t["Approve"]="approve";t["CheckOnly"]="checkOnly"})(mn||(mn={}));var J;(function(i){i["BOND"]="BOND";i["DEPOSIT"]="+";i["LEAVE"]="LEAVE";i["NAME_REGISTER"]="~";i["UNBOND"]="UNBOND";i["WITHDRAW"]="-";i["OPEN_LOAN"]="$+";i["CLOSE_LOAN"]="$-"})(J||(J={}));var We=$.object({sellAsset:$.string({description:"Asset to sell"}),buyAsset:$.string({description:"Asset to buy"}),sellAmount:$.number({description:"Amount of asset to sell"}).refine((n)=>n>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:$.optional($.array($.string({description:"List of providers to use"}))),sourceAddress:$.optional($.string({description:"Address to send asset from"})),destinationAddress:$.optional($.string({description:"Address to send asset to"})),slippage:$.optional($.number({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:$.optional($.string({description:"Affiliate thorname"})),affiliateFee:$.optional($.number({description:"Affiliate fee in basis points"}).refine((n)=>{return n===Math.floor(n)&&n>=0},{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:$.optional($.boolean({description:"Allow smart contract as sender"})),allowSmartContractReceiver:$.optional($.boolean({description:"Allow smart contract as recipient"})),disableSecurityChecks:$.optional($.boolean({description:"Disable security checks"}))}).refine((n)=>n.sellAsset!==n.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]});import{z as a} from"zod";var h;(function(t){t["highSlippage"]="highSlippage";t["highPriceImpact"]="highPriceImpact"})(h||(h={}));var bn=a.array(a.union([a.string(),a.number(),a.array(a.string()),a.object({from:a.string(),value:a.string()}).describe("Parameters to pass to the contract method")])),fn=a.object({contractAddress:a.string({description:"Address of the contract to interact with"}),contractMethod:a.string({description:"Name of the method to call"}),contractParams:bn,contractParamNames:a.array(a.string({description:"Names of the parameters to pass to the contract method"})),approvalToken:a.optional(a.string({description:"Address of the token to approve spending of"})),approvalSpender:a.optional(a.string({description:"Address of the spender to approve"}))}),I=a.object({inbound:a.optional(a.number({description:"Time to receive inbound asset in seconds"})),swap:a.optional(a.number({description:"Time to swap assets in seconds"})),outbound:a.optional(a.number({description:"Time to receive outbound asset in seconds"})),total:a.number({description:"Total time in seconds"})}),O;(function(w){w["CHAINFLIP"]="CHAINFLIP";w["TRADERJOE_V1"]="TRADERJOE_V1";w["PANGOLIN_V1"]="PANGOLIN_V1";w["UNISWAP_V2"]="UNISWAP_V2";w["THORCHAIN"]="THORCHAIN";w["THORCHAIN_STREAMING"]="THORCHAIN_STREAMING";w["MAYACHAIN"]="MAYACHAIN";w["ONEINCH"]="ONEINCH";w["SUSHISWAP_V2"]="SUSHISWAP_V2";w["WOOFI_V2"]="WOOFI_V2";w["PANCAKESWAP"]="PANCAKESWAP"})(O||(O={}));var nn;(function(u){u["LIQUIDITY"]="liquidity";u["NETWORK"]="network";u["INBOUND"]="inbound";u["OUTBOUND"]="outbound";u["AFFILIATE"]="affiliate";u["TAX"]="tax"})(nn||(nn={}));var Hn=a.array(a.object({type:a.nativeEnum(nn),amount:a.string(),asset:a.string(),chain:a.string(),protocol:a.nativeEnum(O)})),gn=a.object({sellAsset:a.string({description:"Asset to sell"}),buyAsset:a.string({description:"Asset to buy"}),provider:a.nativeEnum(O),sourceAddress:a.string({description:"Source address"}),destinationAddress:a.string({description:"Destination address"}),estimatedTime:I.optional(),affiliate:a.string({description:"Affiliate address"}).optional(),affiliateFee:a.number({description:"Affiliate fee"}).optional(),slipPercentage:a.number({description:"Slippage as a percentage"})}),Ie=gn.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),qn=a.object({name:a.string({description:"Asset name"}),price:a.number({description:"Price in USD"}),image:a.string({description:"Asset image"})}),wn=a.object({priceImpact:a.number({description:"Price impact"}),assets:a.optional(a.array(qn))}),on=a.array(a.object({code:a.nativeEnum(h),display:a.string(),tooltip:a.string().optional()})),Kn=a.object({sellAsset:a.string({description:"Asset to sell"}),buyAsset:a.string({description:"Asset to buy"}),provider:a.nativeEnum(O),buyAmount:a.string({description:"Amount of asset to buy"}),buyAmountMaxSlippage:a.string({description:"Amount of asset to buy"}),sellAmount:a.string({description:"Amount of asset to sell"}),sourceAddress:a.string({description:"Source address"}),destinationAddress:a.string({description:"Destination address"}),slippageBps:a.number({description:"Slippage in bps"}),targetAddress:a.optional(a.string({description:"Target address for contract call or transfer address"})),inboundAddress:a.optional(a.string({description:"Inbound address"})),routerAddress:a.optional(a.string({description:"Inbound address"})),contractMethod:a.optional(a.string({description:"Contract method"})),fees:a.optional(Hn),estimatedTime:a.optional(I),memo:a.optional(a.string({description:"Memo"})),expiration:a.optional(a.string({description:"Expiration"}))}),Pe=a.object({providers:a.array(a.nativeEnum(O)),sellAsset:a.string({description:"Asset to sell"}),sellAmount:a.string({description:"sell amount"}),buyAsset:a.string({description:"Asset to buy"}),expectedBuyAmount:a.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:a.string({description:"Expected Buy amount max slippage"}),sourceAddress:a.string({description:"Source address"}),destinationAddress:a.string({description:"Destination address"}),targetAddress:a.optional(a.string({description:"Target address"})),routerAddress:a.optional(a.string({description:"Router address"})),inboundAddress:a.optional(a.string({description:"Inbound address"})),expiration:a.optional(a.string({description:"Expiration"})),memo:a.optional(a.string({description:"Memo"})),evmTransactionDetails:a.optional(fn),routePathArray:a.optional(a.array(a.string())),estimatedTime:a.optional(I),totalSlippageBps:a.number({description:"Total slippage in bps"}),legs:a.array(Kn),errorCode:a.optional(a.string()),warnings:on,meta:wn}),Vn=a.object({provider:a.nativeEnum(O),sellAsset:a.string({description:"Asset to sell"}),sellAmount:a.string({description:"Sell amount"}),buyAsset:a.string({description:"Asset to buy"}),buyAmount:a.string({description:"Buy amount"}),buyAmountMaxSlippage:a.string({description:"Buy amount max slippage"}),fees:a.optional(Hn)}),Nn=a.object({providers:a.array(a.nativeEnum(O)),sellAsset:a.string({description:"Asset to sell"}),sellAmount:a.string({description:"sell amount"}),buyAsset:a.string({description:"Asset to buy"}),expectedBuyAmount:a.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:a.string({description:"Expected Buy amount max slippage"}),sourceAddress:a.string({description:"Source address"}),destinationAddress:a.string({description:"Destination address"}),targetAddress:a.optional(a.string({description:"Target address"})),expiration:a.optional(a.string({description:"Expiration"})),memo:a.optional(a.string({description:"Memo"})),evmTransactionDetails:a.optional(fn),estimatedTime:a.optional(I),totalSlippageBps:a.number({description:"Total slippage in bps"}),legs:a.array(Vn),warnings:on,meta:wn}),Se=a.object({quoteId:a.string({description:"Quote ID"}),routes:a.array(Nn),error:a.optional(a.string({description:"Error message"}))});var An={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_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_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,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,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,toolbox_cosmos_signer_not_defined:90101,toolbox_cosmos_no_accounts_found:90102,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};class z extends Error{static ErrorCode=An;constructor(n,e){const t=typeof n==="string",p=t?n:n.errorKey;if(e)console.error(e,{stack:e?.stack,message:e?.message});super(p,{cause:{code:z.ErrorCode[p],message:`${p}${t?"":`: ${JSON.stringify(n.info)}`}`}});Object.setPrototypeOf(this,z.prototype)}}function jn(n=""){const e=n.toUpperCase(),[t]=e.split(".");if(_n.includes(t))return!0;const[p]=e.split("/");if(_n.includes(p))return!0;throw new z({errorKey:"helpers_invalid_identifier",info:{message:`Invalid identifier: ${n}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,identifier:n}})}function xt(n){if(n.length>30)return!1;const e=/^[a-zA-Z0-9+_-]+$/g;return!!n.match(e)}var _n=[...Object.values(y),"TERRA"];function q({value:n,bigIntDecimal:e=A,decimal:t=A}){if(t===0)return n.toString();const p=n<0n;let d=n.toString().substring(p?1:0);const r=t-(d.length-1);if(r>0)d="0".repeat(r)+d;const u=d.length-t;let x=d.slice(-t);if(Number.parseInt(x[e]||"0")>=5)x=`${x.substring(0,e-1)}${(Number.parseInt(x[e-1]||"0")+1).toString()}`;else x=x.substring(0,e);return`${p?"-":""}${d.slice(0,u)}.${x}`.replace(/\.?0*$/,"")}var P=function(n){const t=`${typeof n==="number"?Bn.format(n):en(n)}`.replaceAll(",",".").split(".");return t.length>1?`${t.slice(0,-1).join("")}.${t.at(-1)}`:t[0]||"0"},$n=function(n){const e=n.split(".")[1]?.length||0;return Math.max(e,A)},en=function(n){return typeof n==="object"?"getValue"in n?n.getValue("string"):n.value:n},A=8,g=(n)=>10n**BigInt(n),N=(n)=>Math.log10(Number.parseFloat(n.toString()));class b{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(n,e){return new b({decimal:e,value:q({value:n,bigIntDecimal:e,decimal:e})})}static shiftDecimals({value:n,from:e,to:t}){return b.fromBigInt(n.getBaseValue("bigint")*g(t)/g(e),t)}constructor(n){const e=en(n),t=typeof n==="object";this.decimal=t?n.decimal:void 0,this.decimalMultiplier=t&&"decimalMultiplier"in n?n.decimalMultiplier:g(Math.max($n(P(e)),this.decimal||0)),this.#y(e)}set(n){return new this.constructor({decimal:this.decimal,value:n,identifier:this.toString()})}add(...n){return this.#e("add",...n)}sub(...n){return this.#e("sub",...n)}mul(...n){return this.#e("mul",...n)}div(...n){return this.#e("div",...n)}gt(n){return this.#n("gt",n)}gte(n){return this.#n("gte",n)}lt(n){return this.#n("lt",n)}lte(n){return this.#n("lte",n)}eqValue(n){return this.#n("eqValue",n)}getValue(n){const e=this.formatBigIntToSafeValue(this.bigIntValue,this.decimal||N(this.decimalMultiplier));switch(n){case"number":return Number(e);case"string":return e;case"bigint":return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}}getBaseValue(n){const e=this.decimalMultiplier/g(this.decimal||j.THOR),t=this.bigIntValue/e;switch(n){case"number":return Number(t);case"string":return t.toString();case"bigint":return t}}getBigIntValue(n,e){if(!e&&typeof n==="object")return n.bigIntValue;const t=en(n),p=P(t);if(p==="0"||p==="undefined")return 0n;return this.#p(p,e)}toSignificant(n=6){const[e,t]=this.getValue("string").split("."),p=e||"",d=t||"";if((Number.parseInt(p)?p.length+d.length:d.length)<=n)return this.getValue("string");if(p.length>=n)return p.slice(0,n).padEnd(p.length,"0");if(Number.parseInt(p))return`${p}.${d.slice(0,n-p.length)}`.padEnd(n-p.length,"0");const u=Number.parseInt(d),x=`${u}`.slice(0,n);return`0.${x.padStart(d.length-`${u}`.length+x.length,"0")}`}toFixed(n=6){const[e,t]=this.getValue("string").split("."),p=e||"",d=t||"";if(Number.parseInt(p))return`${p}.${d.slice(0,n)}`.padEnd(n,"0");const r=Number.parseInt(d),u=`${r}`.slice(0,n);return`0.${u.padStart(d.length-`${r}`.length+u.length,"0")}`}toAbbreviation(n=2){const e=this.getValue("number"),t=["","K","M","B","T","Q","Qi","S"],p=Math.floor(Math.log10(Math.abs(e))/3),d=t[p];if(!d)return this.getValue("string");const r=10**(p*3);return`${(e/r).toFixed(n)}${d}`}toCurrency(n="$",{currencyPosition:e="start",decimal:t=2,decimalSeparator:p=".",thousandSeparator:d=","}={}){const r=this.getValue("number"),[u="",x=""]=r.toFixed(6).split("."),i=u.replace(/\B(?=(\d{3})+(?!\d))/g,d),_=u||x?u==="0"?`${Number.parseFloat(`0.${x}`)}`.replace(".",p):`${i}${Number.parseInt(x)?`${p}${x.slice(0,t)}`:""}`:"0.00";return`${e==="start"?n:""}${_}${e==="end"?n:""}`}formatBigIntToSafeValue(n,e){const t=e||this.decimal||A,p=Math.max(t,N(this.decimalMultiplier)),d=n<0n,r=n.toString().substring(d?1:0),u=p-(r.length-1),x=u>0?"0".repeat(u)+r:r,i=x.length-p;let _=x.slice(-p);if(Number.parseInt(_[t]||"0")>=5)_=`${_.substring(0,t-1)}${(Number.parseInt(_[t-1]||"0")+1).toString()}`;else _=_.substring(0,t);return`${d?"-":""}${x.slice(0,i)}.${_}`.replace(/\.?0*$/,"")}#e(n,...e){const t=this.#t(this,...e),p=Math.max(t,N(this.decimalMultiplier)),d=g(p),r=e.reduce((x,i)=>{const _=this.getBigIntValue(i,p);switch(n){case"add":return x+_;case"sub":return x-_;case"mul":return x*_/d;case"div":{if(_===0n)throw new RangeError("Division by zero");return x*d/_}default:return x}},this.bigIntValue*d/this.decimalMultiplier),u=q({bigIntDecimal:p,decimal:p,value:r});return new this.constructor({decimalMultiplier:g(p),decimal:this.decimal,value:u,identifier:this.toString()})}#n(n,...e){const t=this.#t(this,...e),p=this.getBigIntValue(e[0]||"0",t),d=this.getBigIntValue(this,t);switch(n){case"gt":return d>p;case"gte":return d>=p;case"lt":return d<p;case"lte":return d<=p;case"eqValue":return d===p}}#y(n){const e=P(n)||"0";this.bigIntValue=this.#p(e)}#t(...n){const e=n.map((t)=>{return typeof t==="object"?t.decimal||N(t.decimalMultiplier):$n(P(t))}).filter(Boolean);return Math.max(...e,A)}#p(n,e){const t=e?g(e):this.decimalMultiplier,p=N(t),[d="",r=""]=n.split(".");return BigInt(`${d}${r.padEnd(p,"0")}`)}}var Bn=Intl.NumberFormat("fullwide",{useGrouping:!1,maximumFractionDigits:20});function $t(n){const e=G.from({chain:n});switch(n){case y.Bitcoin:case y.Litecoin:case y.BitcoinCash:case y.Dash:return e.set(0.00010001);case y.Dogecoin:return e.set(1.00000001);case y.Avalanche:case y.Ethereum:case y.Arbitrum:case y.BinanceSmartChain:return e.set(0.00000001);case y.THORChain:case y.Maya:return e.set(0);case y.Cosmos:case y.Kujira:return e.set(0.000001);default:return e.set(0.00000001)}}async function Fn(n,e=0){jn(n);const t=S.get(n.toUpperCase()),p=t?.decimal||await Xn(tn(n));if(!t)S.set(n.toUpperCase(),{identifier:n,decimal:p});return new G({decimal:p,value:v(e,p),identifier:n})}var Mn=function(n,e=0){const[t,p]=n.split(".")?.[0]?.toUpperCase()===y.THORChain?n.split(".").slice(1).join().split("/"):n.split("/");if(!(t&&p))throw new z({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n}});return new G({decimal:8,value:v(e,8),identifier:`${y.THORChain}.${t}/${p}`})},v=function(n,e){return typeof n==="bigint"?q({value:n,bigIntDecimal:e,decimal:e}):n},tn=function(n){const e=n.slice(0,14).includes("/"),t=n.split(".")?.[0]?.toUpperCase()===y.THORChain,p=n.split(".")?.[0]?.toUpperCase()===y.Maya,[d,r=""]=t||p?n.split(".").slice(1).join().split("/"):n.split("/");if(e&&!(d&&r))throw new z({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n}});const u=n.includes(".")&&!e?n:`${p?y.Maya:y.THORChain}.${r}`,[x,...i]=u.split("."),_=e?r:i.join("."),Z=_.split("-"),w=Z.length===1?Z[0]:Z.slice(0,-1).join("-"),L=Z.length===1?void 0:Z[Z.length-1];return{address:L?.toLowerCase(),chain:x,isGasAsset:pn({chain:x,symbol:_}),isSynthetic:e,ticker:w,symbol:(e?`${d}/`:"")+(L?`${w}-${L?.toLowerCase()??""}`:_)}},S=new Map;class G extends b{address;chain;isGasAsset=!1;isSynthetic=!1;symbol;tax;ticker;type;chainId;constructor({value:n,decimal:e,tax:t,chain:p,symbol:d,identifier:r}){super(typeof n==="object"?n:{decimal:e,value:n});const u=tn(r||`${p}.${d}`);this.type=Jn(u),this.tax=t,this.chain=u.chain,this.ticker=u.ticker,this.symbol=u.symbol,this.address=u.address,this.isSynthetic=u.isSynthetic,this.isGasAsset=u.isGasAsset,this.chainId=dn[u.chain]}toString(){return this.isSynthetic?this.symbol:`${this.chain}.${this.symbol}`}toUrl(){return this.isSynthetic?`${this.chain}.${this.symbol.replace("/",".")}`:this.toString()}eqAsset({chain:n,symbol:e}){return this.chain===n&&this.symbol===e}eq(n){return this.eqAsset(n)&&this.eqValue(n)}static fromUrl(n,e=0){const[t,p,d]=n.split(".");if(!(t&&p))throw new z({errorKey:"helpers_invalid_asset_url",info:{urlAsset:n}});const r=t===y.THORChain&&d?`${t}.${p}/${d}`:n;return G.from({asset:r,value:e})}static from({value:n=0,fromBaseDecimal:e,asyncTokenLookup:t,...p}){const d=n instanceof b?n.getValue("string"):n,r="chain"in p,u=r?p.chain:p.asset,x=r||Gn.includes(u),{identifier:i,decimal:_}=x?zn(u):{identifier:u,decimal:void 0},{chain:Z,isSynthetic:w}=tn(i),{tax:L,decimal:B,identifier:K}=S.get(i.toUpperCase())||{decimal:_||j[Z],identifier:i},F=e?v(BigInt(d),e):v(d,B);return t?Fn(K,e?F:d):w?Mn(K,d):new G({tax:L,decimal:B,identifier:K,value:F})}static loadStaticAssets(){return new Promise((n,e)=>{try{import("@swapkit/tokens").then((t)=>{for(let p of Object.values(t))for(let{identifier:d,chain:r,...u}of p.tokens)S.set(d.toUpperCase(),{identifier:d,decimal:"decimals"in u?u.decimals:j[r]});n({ok:!0})})}catch(t){console.error(t),e({ok:!1,error:t,message:"Couldn't load static assets. Ensure you have installed @swapkit/tokens package"})}})}static fromString(n,e=0){return G.from({asset:n,value:e,asyncTokenLookup:!0})}static fromIdentifier(n,e=0){return G.from({asset:n,value:e,asyncTokenLookup:!0})}static fromStringSync(n,e=0){return G.from({asset:n,value:e})}static fromStringWithBase(n,e=0n,t=j.THOR){return G.from({asyncTokenLookup:!0,asset:n,value:e,fromBaseDecimal:t})}static fromStringWithBaseSync(n,e=0n,t=j.THOR){return G.from({asset:n,value:e,fromBaseDecimal:t})}static fromIdentifierSync(n,e=0){return G.from({asset:n,value:e})}static fromChainOrSignature(n,e=0){if(Object.values(y).includes(n))return G.from({chain:n,value:e});return G.from({asset:n,value:e})}}import Qn from"ky";function zt({apiKey:n,...e}){Rn={...e,apiKey:n}}var Zn=function(){const{apiKey:n,...e}=Rn;return Qn.create({...e,headers:{...Wn,...e.headers,"x-api-key":n}})},Rn={},Wn=typeof window!=="undefined"?{}:{referrer:"https://sk.thorswap.net",referer:"https://sk.thorswap.net"},kn=(n)=>({get:async(e,t)=>(await n.get(e,t)).json(),post:async(e,t)=>(await n.post(e,t)).json()}),U={...kn(Zn()),extend:(n)=>{const e=Zn().extend(n);return{...kn(e),extend:U.extend}}};async function bt(n){const e=await import("@swapkit/tokens");for(let t of Object.values(e))for(let{identifier:p,chain:d,...r}of t.tokens){if("identifier"in n&&p===n.identifier)return p;if("address"in r&&"chain"in n&&d===n.chain&&r.address.toLowerCase()===n.contract.toLowerCase())return p}return}var ln="0x313ce567",Gn=[`${y.Maya}.MAYA`,`${y.Ethereum}.THOR`,`${y.Ethereum}.vTHOR`,`${y.Kujira}.USK`],Yn=async({chain:n,to:e})=>{try{const{result:t}=await U.post(D[n],{headers:{accept:"*/*","content-type":"application/json","cache-control":"no-cache"},body:JSON.stringify({id:44,jsonrpc:"2.0",method:"eth_call",params:[{to:e.toLowerCase(),data:ln},"latest"]})});return Number.parseInt(BigInt(t||j[n]).toString())}catch(t){return console.error(t),j[n]}},En=async({symbol:n})=>{try{const e=n.split("-")[1]?.toLowerCase(),{manager:t}=await U.post(`${D[y.Radix]}/state/resource`,{headers:{Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({network:"mainnet",resource_address:e})});return t.divisibility.value.divisibility}catch(e){return console.error(e),j[y.Radix]}},In=(n)=>{if(n===y.Ethereum)return j.ETH;const e=n.split("-"),t=e.length===1?void 0:e[e.length-1]?.toLowerCase();return t?.startsWith("0x")?Yn({chain:y.Ethereum,to:t}):j.ETH},Pn=(n)=>{const e=n.split("-"),t=e.length===1?void 0:e[e.length-1];return t?.startsWith("0x")?Yn({chain:y.Avalanche,to:t.toLowerCase()}):j.AVAX},Sn=(n)=>{if(n===y.BinanceSmartChain)return j.BSC;return j.BSC},vn=(n)=>{if(n===y.Radix)return j.XRD;return En({symbol:n})},Xn=({chain:n,symbol:e})=>{switch(n){case y.Ethereum:return In(e);case y.Avalanche:return Pn(e);case y.BinanceSmartChain:return Sn(e);case y.Radix:return vn(e);default:return j[n]}},Yt=({chain:n})=>{switch(n){case y.Arbitrum:case y.Optimism:return G.from({asset:`${n}.ETH`});case y.Maya:return G.from({asset:`${n}.CACAO`});case y.Cosmos:return G.from({asset:`${n}.ATOM`});case y.BinanceSmartChain:return G.from({asset:`${n}.BNB`});case y.THORChain:return G.from({asset:`${n}.RUNE`});default:return G.from({asset:`${n}.${n}`})}},pn=({chain:n,symbol:e})=>{switch(n){case y.Arbitrum:case y.Optimism:return e==="ETH";case y.Maya:return e==="CACAO";case y.Cosmos:return e==="ATOM";case y.BinanceSmartChain:return e==="BNB";case y.THORChain:return e==="RUNE";default:return e===n}},zn=(n)=>{switch(n){case y.Arbitrum:case y.Optimism:return{identifier:`${n}.ETH`,decimal:j[n]};case`${y.Ethereum}.THOR`:return{identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044",decimal:18};case`${y.Ethereum}.vTHOR`:return{identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d",decimal:18};case y.Cosmos:return{identifier:`${n}.ATOM`,decimal:j[n]};case y.THORChain:return{identifier:`${n}.RUNE`,decimal:j[n]};case y.BinanceSmartChain:return{identifier:`${n}.BNB`,decimal:j[n]};case y.Maya:return{identifier:`${n}.CACAO`,decimal:j[n]};case y.Radix:return{identifier:`${y.Radix}.XRD`,decimal:j[n]};case`${y.Maya}.MAYA`:return{identifier:n,decimal:4};case`${y.Kujira}.USK`:return{identifier:n,decimal:6};default:return{identifier:`${n}.${n}`,decimal:j[n]}}},Jn=({chain:n,symbol:e})=>{if(e.includes("/"))return"Synth";switch(n){case y.Cosmos:return e==="ATOM"?"Native":y.Cosmos;case y.Kujira:return e===y.Kujira?"Native":y.Kujira;case y.BinanceSmartChain:return e==="BNB"?"Native":"BEP20";case y.Ethereum:return e===y.Ethereum?"Native":"ERC20";case y.Avalanche:return e===y.Avalanche?"Native":y.Avalanche;case y.Polygon:return e===y.Polygon?"Native":"POLYGON";case y.Arbitrum:return[y.Ethereum,y.Arbitrum].includes(e)?"Native":"ARBITRUM";case y.Optimism:return[y.Ethereum,y.Optimism].includes(e)?"Native":"OPTIMISM";case y.Radix:return e===y.Radix?"Native":"RADIX";default:return"Native"}},Lt=(n)=>{const[e,...t]=n.split("."),p=n.includes("/"),d=t.join("."),r=d?.split("-"),u=r?.length?r.length===1?r[0]:r.slice(0,-1).join("-"):void 0;return{chain:e,symbol:d,ticker:u,synth:p}},Un=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi"),cn=(n)=>{const[e,t]=n.split(".");if(!W.includes(e))return!0;const p=t.split("-"),d=p.length===1?void 0:p[p.length-1];return pn({chain:e,symbol:t})||!!d},Ot=(n)=>n.filter(({chain:e,value:t,symbol:p})=>{const d=`${e}.${p}`;return!Un.test(d)&&cn(d)&&t!=="0"});function Kt({chain:n,index:e,addressIndex:t=0,type:p}){if(W.includes(n)){if(p==="legacy")return[44,60,0,e];if(p==="ledgerLive")return[44,60,e,0,t];return yn(E[n],e)}if([y.Bitcoin,y.Litecoin].includes(n)){const d=n===y.Bitcoin?0:2;if(p==="nativeSegwitMiddleAccount")return[84,d,e,0,t];if(p==="segwit")return[49,d,0,0,e];if(p==="legacy")return[44,d,0,0,e];return yn(E[n],e)}return yn(E[n],e)}function Vt(n){const[e,t,p]=n.split("/").map((d)=>Number.parseInt(d,10));switch(t){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var yn=(n,e)=>[...n.slice(0,n.length-1),e];function Cn({liquidityUnits:n,poolUnits:e,runeDepth:t}){const p=R(n),d=R(e),r=R(t),u=p.mul(r),x=d.mul(d).mul(2),i=d.mul(p).mul(2),_=p.mul(p),Z=d.mul(d).mul(d);return u.mul(x.sub(i).add(_)).div(Z)}function Dn({liquidityUnits:n,poolUnits:e,assetDepth:t}){const p=R(n),d=R(e),r=R(t),u=p.mul(r),x=d.mul(d).mul(2),i=d.mul(p).mul(2),_=p.mul(p),Z=u.mul(x.sub(i).add(_)),w=d.mul(d).mul(d);return Z.div(w)}function Ft({percent:n,runeDepth:e,liquidityUnits:t,poolUnits:p}){return Cn({runeDepth:e,liquidityUnits:t,poolUnits:p}).mul(n)}function Mt({percent:n,assetDepth:e,liquidityUnits:t,poolUnits:p}){return Dn({assetDepth:e,liquidityUnits:t,poolUnits:p}).mul(n)}var R=function(n){return Y.fromBigInt(BigInt(n),j.THOR)};function hn({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:p}){return{assetAmount:R(p).mul(n).div(e),runeAmount:R(t).mul(n).div(e)}}function Qt({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:p,percent:d}){return Object.fromEntries(Object.entries(hn({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:p})).map(([r,u])=>[r,u.mul(d)]))}function Wt({runeDepth:n,poolUnits:e,assetDepth:t,liquidityUnits:p,runeAmount:d,assetAmount:r}){const u=new Y({value:n,decimal:8}),x=new Y({value:t,decimal:8}),i=new Y({value:e,decimal:8}),_=new Y({value:d,decimal:8}),Z=new Y({value:r,decimal:8}),w=_.mul(x),L=Z.mul(u),B=_.mul(Z),K=u.mul(x),F=i.mul(w.add(L.add(B.mul(2)))),H=w.add(L.add(K.mul(2))),sn=F.div(H),C=R(p).add(sn);if(sn.getBaseValue("number")===0)return C.div(i).getBaseValue("number");const s=i.add(C);return C.div(s).getBaseValue("number")}function lt({runeAmount:n,assetAmount:e,runeDepth:t,assetDepth:p}){if(n==="0"||e==="0"||t==="0"||p==="0")return 0;const d=R(t),r=R(p),u=R(e),x=R(n),i=u.mul(d).sub(r.mul(x)),_=r.mul(x).add(d.mul(r));return Math.abs(i.div(_).getBaseValue("number"))}var c=function(n,{affiliateAddress:e,affiliateBasisPoints:t}){const p=e?`:${e}:${t||0}`:"";return`${n}${p}`},ne=function({chain:n,symbol:e}){switch(n){case y.Bitcoin:case y.Dogecoin:case y.Litecoin:return n.slice(0,1).toLowerCase();case y.BitcoinCash:return"c";default:return`${n}.${e}`}};function ee({type:n,address:e}){return`${n}:${e}`}function te({address:n,unbondAmount:e}){return`${J.UNBOND}:${n}:${e}`}function pe({name:n,chain:e,address:t,owner:p}){const d=`${J.NAME_REGISTER}:${n}:${e}:${t}`,r=p?`:${p}`:"";return`${d}${r}`}function ye(n,{asset:e,address:t,minAmount:p,...d}){const r=`${n}:${e}:${t}`,u=p?`:${p}`:"";return c(`${r}${u}`,d)}function se({chain:n,symbol:e,...t}){return c(`${J.DEPOSIT}:${n}/${e}`,t)}function ae({chain:n,symbol:e,address:t}){const p=ne({chain:n,symbol:e}),d=t?`:${t}`:"";return`${J.DEPOSIT}:${p}${d}`}function de({chain:n,symbol:e,basisPoints:t,...p}){return c(`${J.WITHDRAW}:${n}/${e}:${t}`,p)}function ue({chain:n,symbol:e,ticker:t,basisPoints:p,targetAsset:d,...r}){const u=n==="ETH"&&t!=="ETH"?`${t}-${e.slice(-3)}`:e,x=d?`:${d}`:"";return c(`${J.WITHDRAW}:${n}.${u}:${p}${x}`,r)}var vt=(n,e)=>{switch(n){case J.LEAVE:case J.BOND:{const{address:t}=e;return ee({type:n,address:t})}case J.UNBOND:{const{address:t,unbondAmount:p}=e;return te({address:t,unbondAmount:p})}case J.NAME_REGISTER:return pe(e);case J.OPEN_LOAN:case J.CLOSE_LOAN:return ye(n,e);case J.DEPOSIT:{const{chain:t,symbol:p,address:d,singleSide:r}=e;if(r)return se({chain:t,symbol:p});return ae({chain:t,symbol:p,address:d})}case J.WITHDRAW:{const{chain:t,ticker:p,symbol:d,basisPoints:r,targetAssetString:u,singleSide:x}=e;if(x)return de({chain:t,symbol:d,basisPoints:r});return ue({chain:t,ticker:p,symbol:d,basisPoints:r,targetAsset:u})}default:throw new z({errorKey:"helpers_invalid_memo_type",info:{memoType:n}})}};function Dt(n){if(n<0)throw new z({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:n}});return 10+n}function ht(n){if(n<0)throw new z({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:n}});return Math.round((10+n*1.0512)*10000000000)/10000000000}function np([n,e,t,p,d]){return`m/${n}'/${e}'/${t}'/${p}${typeof d!=="number"?"":`/${d}`}`}function ep(n,e){try{return n()}catch(t){if(e)throw new z(e,t);return console.error(t)}}var tp=(n)=>{switch(n){case y.THORChain:return`${n}.RUNE`;case y.Cosmos:return`${n}.ATOM`;case y.BinanceSmartChain:return`${n}`;default:return`${n}.${n}`}};function xp(){const n=[];function e(p){if(n.map((d)=>d.info.uuid).includes(p.detail.info.uuid))return;n.push(p.detail)}window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new Event("eip6963:requestProvider"));function t(){window.removeEventListener("eip6963:announceProvider",e)}return{providers:n,removeEIP6963EventListener:t}}var re=["approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"],Te=(n,e,t)=>async(...p)=>{try{await xe(e,t)}catch(d){throw new z({errorKey:"helpers_failed_to_switch_network",info:{error:d}})}return n(...p)},Ln=({provider:n,params:e,method:t})=>{if(!n?.send)throw new z("helpers_not_found_provider");const p=e?Array.isArray(e)?e:[e]:[];return n.send(t,p)},ap=({toolbox:n,chainId:e,provider:t=window.ethereum})=>{const p=re.reduce((d,r)=>{if(!n[r])return d;const u=n[r];if(typeof u!=="function")return d;return{...d,[r]:Te(u,t,e)}},{});return{...n,...p}},dp=(n,e)=>Ln({provider:n,method:"wallet_addEthereumChain",params:[e]}),xe=(n,e=o.EthereumHex)=>Ln({provider:n,method:"wallet_switchEthereumChain",params:[{chainId:e}]}),up=(n)=>{window.ethereum?.on("accountsChanged",()=>n()),window.xfi?.ethereum.on("accountsChanged",()=>n())},rp=()=>{const{isTrust:n,isBraveWallet:e,__XDEFI:t,overrideIsMetaMask:p,selectedProvider:d}=window?.ethereum||{};if(n)return k.TRUSTWALLET_WEB;if(e)return k.BRAVE;if(p&&d?.isCoinbaseWallet)return k.COINBASE_WEB;if(t)k.XDEFI;return k.METAMASK},Tp=(n)=>{return me().includes(n)},me=()=>{const n=window?.ethereum&&!window.ethereum?.isBraveWallet,e=window?.xfi||window?.ethereum?.__XDEFI,t=window?.ethereum?.isBraveWallet,p=window?.ethereum?.isTrust||window?.trustwallet,d=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,r=[];if(n)r.push(k.METAMASK);if(e)r.push(k.XDEFI);if(t)r.push(k.BRAVE);if(p)r.push(k.TRUSTWALLET_WEB);if(d)r.push(k.COINBASE_WEB);if(fe())r.push(k.OKX_MOBILE);return r},fe=()=>{const n=navigator.userAgent,e=/iphone|ipad|ipod|ios/i.test(n),t=/android|XiaoMi|MiuiBrowser/i.test(n),p=e||t,d=/OKApp/i.test(n);return p&&d},mp=()=>typeof window.ethereum!=="undefined";class Y extends b{eq(n){return this.eqValue(n)}static fromBigInt(n,e){return new Y({decimal:e,value:q({value:n,bigIntDecimal:e,decimal:e})})}}export{ep as wrapWithThrow,Te as wrapMethodWithNetworkSwitch,xt as validateTNS,jn as validateIdentifier,xe as switchEVMWalletNetwork,zt as setRequestClientConfig,ap as prepareNetworkSwitch,fe as okxMobileEnabled,me as listWeb3EVMWallets,mp as isWeb3Detected,pn as isGasAsset,Tp as isDetected,Vt as getWalletFormatFor,Dt as getTHORNameCost,Qt as getSymmetricWithdraw,hn as getSymmetricPoolShare,$t as getMinAmountByChain,ue as getMemoForWithdraw,te as getMemoForUnbond,de as getMemoForSaverWithdraw,se as getMemoForSaverDeposit,pe as getMemoForNameRegister,ye as getMemoForLoan,ee as getMemoForLeaveAndBond,ae as getMemoForDeposit,vt as getMemoFor,ht as getMAYANameCost,lt as getLiquiditySlippage,Yt as getGasAsset,Wt as getEstimatedPoolShare,rp as getETHDefaultWallet,xp as getEIP6963Wallets,Kt as getDerivationPathFor,Xn as getDecimal,zn as getCommonAssetInfo,tp as getChainIdentifier,Ft as getAsymmetricRuneWithdrawAmount,Cn as getAsymmetricRuneShare,Mt as getAsymmetricAssetWithdrawAmount,Dn as getAsymmetricAssetShare,Jn as getAssetType,q as formatBigIntToSafeValue,bt as findAssetBy,Ot as filterAssets,He as erc20ABI,np as derivationPathToString,Wn as defaultRequestHeaders,Lt as assetFromString,dp as addEVMWalletNetwork,up as addAccountsChangedCallback,h as WarningCodeEnum,k as WalletOption,Ye as UTXOChains,Oe as TCSupportedChains,$e as TCEthereumVaultAbi,Xe as TCBscDepositABI,Ge as TCAvalancheDepositABI,Y as SwapKitNumber,z as SwapKitError,Re as SubstrateChains,Ae as SWAP_OUT,Ne as SWAP_IN,on as RouteQuoteWarningSchema,Pe as RouteQuoteSchema,wn as RouteQuoteMetadataSchema,qn as RouteQuoteMetadataAssetSchema,Kn as RouteQuoteLegSchema,Ie as RouteLegWithoutAddressesSchema,gn as RouteLegSchema,U as RequestClient,M as RPCUrl,Se as QuoteResponseSchema,We as QuoteRequestSchema,X as QuoteMode,O as ProviderName,E as NetworkDerivationPath,J as MemoType,oe as MayaEthereumVaultAbi,_e as MayaArbitrumVaultAbi,be as MAYASupportedChains,Tn as LedgerErrorCode,Hn as FeesSchema,nn as FeeTypeEnum,xn as FeeOption,Q as ExplorerUrl,I as EstimatedTimeSchema,fn as EVMTransactionDetailsSchema,bn as EVMTransactionDetailsParamsSchema,W as EVMChains,rn as DerivationPath,Le as CosmosChains,un as ContractAddress,Gn as CommonAssetStrings,D as ChainToRPC,ge as ChainToHexChainId,qe as ChainToExplorerUrl,dn as ChainToChainId,ke as ChainIdToChain,o as ChainId,y as Chain,b as BigIntArithmetics,j as BaseDecimal,G as AssetValue,mn as ApproveMode,Ve as AGG_SWAP};
1
+ var en=((n)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(n,{get:(e,t)=>(typeof require!=="undefined"?require:e)[t]}):n)(function(n){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var fe=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var He=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct MAYAChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct MAYAChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],Ce=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct ArbRouter.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ArbRouter.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}];var we=[{inputs:[{internalType:"address",name:"rune",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[],name:"RUNE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"aggregator",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],Oe=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct AvaxRouter.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct AvaxRouter.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}],_e=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferAllowance",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!1,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"finalAsset",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amountOutMin",type:"uint256"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"TransferOutAndCall",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldVault",type:"address"},{indexed:!0,internalType:"address",name:"newVault",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{indexed:!1,internalType:"string",name:"memo",type:"string"}],name:"VaultTransfer",type:"event"},{inputs:[{internalType:"address payable",name:"vault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"},{internalType:"uint256",name:"expiration",type:"uint256"}],name:"depositWithExpiry",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address payable",name:"asgard",type:"address"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct THORChain_Router.Coin[]",name:"coins",type:"tuple[]"},{internalType:"string",name:"memo",type:"string"}],name:"returnVaultAssets",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"router",type:"address"},{internalType:"address",name:"newVault",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferAllowance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"to",type:"address"},{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOut",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"target",type:"address"},{internalType:"address",name:"finalToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"string",name:"memo",type:"string"}],name:"transferOutAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"vault",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"vaultAllowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"}];var P;((l)=>{l.Arbitrum="https://arb1.arbitrum.io/rpc";l.Avalanche="https://node-router.thorswap.net/avalanche-c";l.BinanceSmartChain="https://bsc-dataseed.binance.org";l.Bitcoin="https://node-router.thorswap.net/bitcoin";l.BitcoinCash="https://node-router.thorswap.net/bitcoin-cash";l.Chainflip="wss://mainnet-archive.chainflip.io";l.Cosmos="https://node-router.thorswap.net/cosmos/rpc";l.Dash="https://node-router.thorswap.net/dash";l.Dogecoin="https://node-router.thorswap.net/dogecoin";l.Ethereum="https://node-router.thorswap.net/ethereum";l.Kujira="https://rpc-kujira.synergynodes.com/";l.Litecoin="https://node-router.thorswap.net/litecoin";l.Maya="https://tendermint.mayachain.info";l.MayaStagenet="https://stagenet.tendermint.mayachain.info";l.Optimism="https://mainnet.optimism.io";l.Polkadot="wss://rpc.polkadot.io";l.Polygon="https://polygon-rpc.com";l.Radix="https://radix-mainnet.rpc.grove.city/v1/326002fc/core";l.THORChain="https://rpc.thorswap.net";l.THORChainStagenet="https://stagenet-rpc.ninerealms.com";l.Solana="https://mainnet.helius-rpc.com/?api-key=2cbe3ae6-cfc5-4141-a093-0055d0fa3d80"})(P||={});var E;((s)=>{s.Arbitrum="https://arbiscan.io";s.Avalanche="https://snowtrace.io";s.BinanceSmartChain="https://bscscan.com";s.Bitcoin="https://blockchair.com/bitcoin";s.BitcoinCash="https://www.blockchair.com/bitcoin-cash";s.Chainflip="https://explorer.polkascan.io/polkadot";s.Cosmos="https://www.mintscan.io/cosmos";s.Dash="https://blockchair.com/dash";s.Dogecoin="https://blockchair.com/dogecoin";s.Ethereum="https://etherscan.io";s.Kujira="https://finder.kujira.network/kaiyo-1";s.Litecoin="https://blockchair.com/litecoin";s.Maya="https://www.mayascan.org";s.Optimism="https://optimistic.etherscan.io";s.Polkadot="https://polkadot.subscan.io";s.Polygon="https://polygonscan.com";s.Radix="https://dashboard.radixdlt.com";s.THORChain="https://runescan.io";s.Solana="https://solscan.io"})(E||={});var j;((s)=>{s.Arbitrum="ARB";s.Avalanche="AVAX";s.BinanceSmartChain="BSC";s.Bitcoin="BTC";s.BitcoinCash="BCH";s.Cosmos="GAIA";s.Dash="DASH";s.Dogecoin="DOGE";s.Ethereum="ETH";s.Kujira="KUJI";s.Litecoin="LTC";s.Maya="MAYA";s.Optimism="OP";s.Polkadot="DOT";s.Chainflip="FLIP";s.Polygon="MATIC";s.Radix="XRD";s.THORChain="THOR";s.Solana="SOL"})(j||={});var Q;((m)=>{m.Arbitrum="42161";m.ArbitrumHex="0xa4b1";m.Avalanche="43114";m.AvalancheHex="0xa86a";m.BinanceSmartChain="56";m.BinanceSmartChainHex="0x38";m.Bitcoin="bitcoin";m.BitcoinCash="bitcoincash";m.Chainflip="chainflip";m.Cosmos="cosmoshub-4";m.Dash="dash";m.Dogecoin="dogecoin";m.Kujira="kaiyo-1";m.Ethereum="1";m.EthereumHex="0x1";m.Litecoin="litecoin";m.Maya="mayachain-mainnet-v1";m.MayaStagenet="mayachain-stagenet-v1";m.Optimism="10";m.OptimismHex="0xa";m.Polkadot="polkadot";m.Polygon="137";m.PolygonHex="0x89";m.Radix="radix-mainnet";m.THORChain="thorchain-mainnet-v1";m.THORChainStagenet="thorchain-stagenet-v2";m.Solana="solana"})(Q||={});var Xe={["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"},$n=Object.keys(j),M=Object.values(j),w;((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=10]="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"})(w||={});var ze=["DOT","FLIP"],N=["ETH","AVAX","BSC","ARB","OP","MATIC"],Je=["BTC","BCH","DASH","DOGE","LTC"],Ze=["GAIA","THOR","MAYA","KUJI"],ke=["AVAX","BSC","BTC","BCH","GAIA","DOGE","ETH","LTC","THOR"],Me=["ARB","DASH","ETH","KUJI","MAYA","THOR"],A=M.reduce((n,e)=>{const t=$n.find((a)=>j[a]===e);if(t)n[e]=t;return n},{}),tn=M.reduce((n,e)=>{return n[e]=Q[A[e]],n},{}),U=M.reduce((n,e)=>{return n[e]=P[A[e]],n},{}),Le=M.reduce((n,e)=>{const t=`${A[e]}Hex`;return n[e]=Q[t],n},{}),Ye=M.reduce((n,e)=>{return n[e]=E[A[e]],n},{});var Gn;((C)=>{C.TC_SUPPORTED_TO_TC_SUPPORTED="TC-TC";C.TC_SUPPORTED_TO_ETH="TC-ERC20";C.TC_SUPPORTED_TO_AVAX="TC-ARC20";C.TC_SUPPORTED_TO_BSC="TC-BEP20";C.ETH_TO_TC_SUPPORTED="ERC20-TC";C.ETH_TO_ETH="ERC20-ERC20";C.ETH_TO_AVAX="ERC20-ARC20";C.ETH_TO_BSC="ERC20-BEP20";C.AVAX_TO_TC_SUPPORTED="ARC20-TC";C.AVAX_TO_ETH="ARC20-ERC20";C.AVAX_TO_AVAX="ARC20-ARC20";C.AVAX_TO_BSC="ARC20-BEP20";C.BSC_TO_TC_SUPPORTED="BEP20-TC";C.BSC_TO_ETH="BEP20-ERC20";C.BSC_TO_AVAX="BEP20-ARC20";C.BSC_TO_BSC="BEP20-BEP20"})(Gn||={});var be=["ERC20-ERC20","ARC20-ARC20","BEP20-BEP20"],qe=["ERC20-TC","ERC20-ARC20","ERC20-BEP20","ARC20-TC","ARC20-ERC20","ARC20-BEP20","BEP20-TC","BEP20-ERC20","BEP20-ARC20"],Qe=["TC-TC","TC-ERC20","TC-ARC20","TC-BEP20"];var Xn;((r)=>{r.ARB="0x0000000000000000000000000000000000000000";r.AVAX="0x0000000000000000000000000000000000000000";r.ETH="0x0000000000000000000000000000000000000000";r.BSC="0x0000000000000000000000000000000000000000";r.MATIC="0x0000000000000000000000000000000000001010";r.OP="0x4200000000000000000000000000000000000042"})(Xn||={});var zn;((s)=>{s.ARB="m/44'/60'/0'/0";s.AVAX="m/44'/60'/0'/0";s.BCH="m/44'/145'/0'/0";s.BSC="m/44'/60'/0'/0";s.BTC="m/84'/0'/0'/0";s.DASH="m/44'/5'/0'/0";s.DOGE="m/44'/3'/0'/0";s.DOT="////";s.ETH="m/44'/60'/0'/0";s.FLIP="////";s.GAIA="m/44'/118'/0'/0";s.KUJI="m/44'/118'/0'/0";s.LTC="m/84'/2'/0'/0";s.MATIC="m/44'/60'/0'/0";s.MAYA="m/44'/931'/0'/0";s.OP="m/44'/60'/0'/0";s.SOL="m/44'/501'/0'/0";s.THOR="m/44'/931'/0'/0";s.XRD="////"})(zn||={});var K={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 an;((s)=>{s.BRAVE="BRAVE";s.COINBASE_MOBILE="COINBASE_MOBILE";s.COINBASE_WEB="COINBASE_WEB";s.EIP6963="EIP6963";s.EXODUS="EXODUS";s.KEEPKEY="KEEPKEY";s.KEPLR="KEPLR";s.KEYSTORE="KEYSTORE";s.LEDGER="LEDGER";s.METAMASK="METAMASK";s.OKX="OKX";s.OKX_MOBILE="OKX_MOBILE";s.PHANTOM="PHANTOM";s.RADIX_WALLET="RADIX_WALLET";s.TREZOR="TREZOR";s.TALISMAN="TALISMAN";s.TRUSTWALLET_WEB="TRUSTWALLET_WEB";s.WALLETCONNECT="WALLETCONNECT";s.XDEFI="XDEFI"})(an||={});var Jn;((a)=>{a[a.NoError=36864]="NoError";a[a.LockedDevice=21781]="LockedDevice";a[a.TC_NotFound=65535]="TC_NotFound"})(Jn||={});import{z as o} from"zod";var Zn;((a)=>{a.Average="average";a.Fast="fast";a.Fastest="fastest"})(Zn||={});var kn;((t)=>{t.Approve="approve";t.CheckOnly="checkOnly"})(kn||={});var pn;((i)=>{i.BOND="BOND";i.DEPOSIT="+";i.LEAVE="LEAVE";i.NAME_REGISTER="~";i.UNBOND="UNBOND";i.WITHDRAW="-";i.OPEN_LOAN="$+";i.CLOSE_LOAN="$-"})(pn||={});var Fe=o.object({sellAsset:o.string({description:"Asset to sell"}),buyAsset:o.string({description:"Asset to buy"}),sellAmount:o.number({description:"Amount of asset to sell"}).refine((n)=>n>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:o.optional(o.array(o.string({description:"List of providers to use"}))),sourceAddress:o.optional(o.string({description:"Address to send asset from"})),destinationAddress:o.optional(o.string({description:"Address to send asset to"})),slippage:o.optional(o.number({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:o.optional(o.string({description:"Affiliate thorname"})),affiliateFee:o.optional(o.number({description:"Affiliate fee in basis points"}).refine((n)=>{return n===Math.floor(n)&&n>=0},{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:o.optional(o.boolean({description:"Allow smart contract as sender"})),allowSmartContractReceiver:o.optional(o.boolean({description:"Allow smart contract as recipient"})),disableSecurityChecks:o.optional(o.boolean({description:"Disable security checks"}))}).refine((n)=>n.sellAsset!==n.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]});import{z as p} from"zod";var yn;((t)=>{t.highSlippage="highSlippage";t.highPriceImpact="highPriceImpact"})(yn||={});var Mn=p.array(p.union([p.string(),p.number(),p.array(p.string()),p.object({from:p.string(),value:p.string()}).describe("Parameters to pass to the contract method")])),sn=p.object({contractAddress:p.string({description:"Address of the contract to interact with"}),contractMethod:p.string({description:"Name of the method to call"}),contractParams:Mn,contractParamNames:p.array(p.string({description:"Names of the parameters to pass to the contract method"})),approvalToken:p.optional(p.string({description:"Address of the token to approve spending of"})),approvalSpender:p.optional(p.string({description:"Address of the spender to approve"}))}),V=p.object({inbound:p.optional(p.number({description:"Time to receive inbound asset in seconds"})),swap:p.optional(p.number({description:"Time to swap assets in seconds"})),outbound:p.optional(p.number({description:"Time to receive outbound asset in seconds"})),total:p.number({description:"Total time in seconds"})}),z;((f)=>{f.CHAINFLIP="CHAINFLIP";f.TRADERJOE_V1="TRADERJOE_V1";f.PANGOLIN_V1="PANGOLIN_V1";f.UNISWAP_V2="UNISWAP_V2";f.THORCHAIN="THORCHAIN";f.THORCHAIN_STREAMING="THORCHAIN_STREAMING";f.MAYACHAIN="MAYACHAIN";f.ONEINCH="ONEINCH";f.SUSHISWAP_V2="SUSHISWAP_V2";f.WOOFI_V2="WOOFI_V2";f.PANCAKESWAP="PANCAKESWAP"})(z||={});var dn;((r)=>{r.LIQUIDITY="liquidity";r.NETWORK="network";r.INBOUND="inbound";r.OUTBOUND="outbound";r.AFFILIATE="affiliate";r.TAX="tax"})(dn||={});var rn=p.array(p.object({type:p.nativeEnum(dn),amount:p.string(),asset:p.string(),chain:p.string(),protocol:p.nativeEnum(z)})),Ln=p.object({sellAsset:p.string({description:"Asset to sell"}),buyAsset:p.string({description:"Asset to buy"}),provider:p.nativeEnum(z),sourceAddress:p.string({description:"Source address"}),destinationAddress:p.string({description:"Destination address"}),estimatedTime:V.optional(),affiliate:p.string({description:"Affiliate address"}).optional(),affiliateFee:p.number({description:"Affiliate fee"}).optional(),slipPercentage:p.number({description:"Slippage as a percentage"})}),he=Ln.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),Yn=p.object({name:p.string({description:"Asset name"}),price:p.number({description:"Price in USD"}),image:p.string({description:"Asset image"})}),un=p.object({priceImpact:p.number({description:"Price impact"}),assets:p.optional(p.array(Yn))}),Tn=p.array(p.object({code:p.nativeEnum(yn),display:p.string(),tooltip:p.string().optional()})),gn=p.object({sellAsset:p.string({description:"Asset to sell"}),buyAsset:p.string({description:"Asset to buy"}),provider:p.nativeEnum(z),buyAmount:p.string({description:"Amount of asset to buy"}),buyAmountMaxSlippage:p.string({description:"Amount of asset to buy"}),sellAmount:p.string({description:"Amount of asset to sell"}),sourceAddress:p.string({description:"Source address"}),destinationAddress:p.string({description:"Destination address"}),slippageBps:p.number({description:"Slippage in bps"}),targetAddress:p.optional(p.string({description:"Target address for contract call or transfer address"})),inboundAddress:p.optional(p.string({description:"Inbound address"})),routerAddress:p.optional(p.string({description:"Inbound address"})),contractMethod:p.optional(p.string({description:"Contract method"})),fees:p.optional(rn),estimatedTime:p.optional(V),memo:p.optional(p.string({description:"Memo"})),expiration:p.optional(p.string({description:"Expiration"}))}),Ie=p.object({providers:p.array(p.nativeEnum(z)),sellAsset:p.string({description:"Asset to sell"}),sellAmount:p.string({description:"sell amount"}),buyAsset:p.string({description:"Asset to buy"}),expectedBuyAmount:p.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:p.string({description:"Expected Buy amount max slippage"}),sourceAddress:p.string({description:"Source address"}),destinationAddress:p.string({description:"Destination address"}),targetAddress:p.optional(p.string({description:"Target address"})),routerAddress:p.optional(p.string({description:"Router address"})),inboundAddress:p.optional(p.string({description:"Inbound address"})),expiration:p.optional(p.string({description:"Expiration"})),memo:p.optional(p.string({description:"Memo"})),evmTransactionDetails:p.optional(sn),routePathArray:p.optional(p.array(p.string())),estimatedTime:p.optional(V),totalSlippageBps:p.number({description:"Total slippage in bps"}),legs:p.array(gn),errorCode:p.optional(p.string()),warnings:Tn,meta:un}),bn=p.object({provider:p.nativeEnum(z),sellAsset:p.string({description:"Asset to sell"}),sellAmount:p.string({description:"Sell amount"}),buyAsset:p.string({description:"Asset to buy"}),buyAmount:p.string({description:"Buy amount"}),buyAmountMaxSlippage:p.string({description:"Buy amount max slippage"}),fees:p.optional(rn)}),qn=p.object({providers:p.array(p.nativeEnum(z)),sellAsset:p.string({description:"Asset to sell"}),sellAmount:p.string({description:"sell amount"}),buyAsset:p.string({description:"Asset to buy"}),expectedBuyAmount:p.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:p.string({description:"Expected Buy amount max slippage"}),sourceAddress:p.string({description:"Source address"}),destinationAddress:p.string({description:"Destination address"}),targetAddress:p.optional(p.string({description:"Target address"})),expiration:p.optional(p.string({description:"Expiration"})),memo:p.optional(p.string({description:"Memo"})),evmTransactionDetails:p.optional(sn),estimatedTime:p.optional(V),totalSlippageBps:p.number({description:"Total slippage in bps"}),legs:p.array(bn),warnings:Tn,meta:un}),Pe=p.object({quoteId:p.string({description:"Quote ID"}),routes:p.array(qn),error:p.optional(p.string({description:"Error message"}))});var Qn={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_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_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,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,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,toolbox_cosmos_signer_not_defined:90101,toolbox_cosmos_no_accounts_found:90102,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};class R extends Error{static ErrorCode=Qn;constructor(n,e){const t=typeof n==="string",a=t?n:n.errorKey;if(e)console.error(e,{stack:e?.stack,message:e?.message});super(a,{cause:{code:R.ErrorCode[a],message:`${a}${t?"":`: ${JSON.stringify(n.info)}`}`}});Object.setPrototypeOf(this,R.prototype)}}function mn(n=""){const e=n.toUpperCase(),[t]=e.split(".");if(xn.includes(t))return!0;const[a]=e.split("/");if(xn.includes(a))return!0;throw new R({errorKey:"helpers_invalid_identifier",info:{message:`Invalid identifier: ${n}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,identifier:n}})}function it(n){if(n.length>30)return!1;const e=/^[a-zA-Z0-9+_-]+$/g;return!!n.match(e)}var xn=[...Object.values(j),"TERRA"];function Z({value:n,bigIntDecimal:e=Y,decimal:t=Y}){if(t===0)return n.toString();const a=n<0n;let y=n.toString().substring(a?1:0);const d=t-(y.length-1);if(d>0)y="0".repeat(d)+y;const r=y.length-t;let u=y.slice(-t);if(Number.parseInt(u[e]||"0")>=5)u=`${u.substring(0,e-1)}${(Number.parseInt(u[e-1]||"0")+1).toString()}`;else u=u.substring(0,e);return`${a?"-":""}${y.slice(0,r)}.${u}`.replace(/\.?0*$/,"")}var F=function(n){const t=`${typeof n==="number"?Nn.format(n):v(n)}`.replaceAll(",",".").split(".");return t.length>1?`${t.slice(0,-1).join("")}.${t.at(-1)}`:t[0]||"0"},on=function(n){const e=n.split(".")[1]?.length||0;return Math.max(e,Y)},v=function(n){return typeof n==="object"?"getValue"in n?n.getValue("string"):n.value:n},Y=8,J=(n)=>10n**BigInt(n),L=(n)=>Math.log10(Number.parseFloat(n.toString()));class X{decimalMultiplier=10n**8n;bigIntValue=0n;decimal;static fromBigInt(n,e){return new X({decimal:e,value:Z({value:n,bigIntDecimal:e,decimal:e})})}static shiftDecimals({value:n,from:e,to:t}){return X.fromBigInt(n.getBaseValue("bigint")*J(t)/J(e),t)}constructor(n){const e=v(n),t=typeof n==="object";this.decimal=t?n.decimal:void 0,this.decimalMultiplier=t&&"decimalMultiplier"in n?n.decimalMultiplier:J(Math.max(on(F(e)),this.decimal||0)),this.#p(e)}set(n){return new this.constructor({decimal:this.decimal,value:n,identifier:this.toString()})}add(...n){return this.#e("add",...n)}sub(...n){return this.#e("sub",...n)}mul(...n){return this.#e("mul",...n)}div(...n){return this.#e("div",...n)}gt(n){return this.#n("gt",n)}gte(n){return this.#n("gte",n)}lt(n){return this.#n("lt",n)}lte(n){return this.#n("lte",n)}eqValue(n){return this.#n("eqValue",n)}getValue(n){const e=this.formatBigIntToSafeValue(this.bigIntValue,this.decimal||L(this.decimalMultiplier));switch(n){case"number":return Number(e);case"string":return e;case"bigint":return this.bigIntValue*10n**BigInt(this.decimal||8n)/this.decimalMultiplier}}getBaseValue(n){const e=this.decimalMultiplier/J(this.decimal||8),t=this.bigIntValue/e;switch(n){case"number":return Number(t);case"string":return t.toString();case"bigint":return t}}getBigIntValue(n,e){if(!e&&typeof n==="object")return n.bigIntValue;const t=v(n),a=F(t);if(a==="0"||a==="undefined")return 0n;return this.#a(a,e)}toSignificant(n=6){const[e,t]=this.getValue("string").split("."),a=e||"",y=t||"";if((Number.parseInt(a)?a.length+y.length:y.length)<=n)return this.getValue("string");if(a.length>=n)return a.slice(0,n).padEnd(a.length,"0");if(Number.parseInt(a))return`${a}.${y.slice(0,n-a.length)}`.padEnd(n-a.length,"0");const r=Number.parseInt(y),u=`${r}`.slice(0,n);return`0.${u.padStart(y.length-`${r}`.length+u.length,"0")}`}toFixed(n=6){const[e,t]=this.getValue("string").split("."),a=e||"",y=t||"";if(Number.parseInt(a))return`${a}.${y.slice(0,n)}`.padEnd(n,"0");const d=Number.parseInt(y),r=`${d}`.slice(0,n);return`0.${r.padStart(y.length-`${d}`.length+r.length,"0")}`}toAbbreviation(n=2){const e=this.getValue("number"),t=["","K","M","B","T","Q","Qi","S"],a=Math.floor(Math.log10(Math.abs(e))/3),y=t[a];if(!y)return this.getValue("string");const d=10**(a*3);return`${(e/d).toFixed(n)}${y}`}toCurrency(n="$",{currencyPosition:e="start",decimal:t=2,decimalSeparator:a=".",thousandSeparator:y=","}={}){const d=this.getValue("number"),[r="",u=""]=d.toFixed(6).split("."),i=r.replace(/\B(?=(\d{3})+(?!\d))/g,y),x=r||u?r==="0"?`${Number.parseFloat(`0.${u}`)}`.replace(".",a):`${i}${Number.parseInt(u)?`${a}${u.slice(0,t)}`:""}`:"0.00";return`${e==="start"?n:""}${x}${e==="end"?n:""}`}formatBigIntToSafeValue(n,e){const t=e||this.decimal||Y,a=Math.max(t,L(this.decimalMultiplier)),y=n<0n,d=n.toString().substring(y?1:0),r=a-(d.length-1),u=r>0?"0".repeat(r)+d:d,i=u.length-a;let x=u.slice(-a);if(Number.parseInt(x[t]||"0")>=5)x=`${x.substring(0,t-1)}${(Number.parseInt(x[t-1]||"0")+1).toString()}`;else x=x.substring(0,t);return`${y?"-":""}${u.slice(0,i)}.${x}`.replace(/\.?0*$/,"")}#e(n,...e){const t=this.#t(this,...e),a=Math.max(t,L(this.decimalMultiplier)),y=J(a),d=e.reduce((u,i)=>{const x=this.getBigIntValue(i,a);switch(n){case"add":return u+x;case"sub":return u-x;case"mul":return u*x/y;case"div":{if(x===0n)throw new RangeError("Division by zero");return u*y/x}default:return u}},this.bigIntValue*y/this.decimalMultiplier),r=Z({bigIntDecimal:a,decimal:a,value:d});return new this.constructor({decimalMultiplier:J(a),decimal:this.decimal,value:r,identifier:this.toString()})}#n(n,...e){const t=this.#t(this,...e),a=this.getBigIntValue(e[0]||"0",t),y=this.getBigIntValue(this,t);switch(n){case"gt":return y>a;case"gte":return y>=a;case"lt":return y<a;case"lte":return y<=a;case"eqValue":return y===a}}#p(n){const e=F(n)||"0";this.bigIntValue=this.#a(e)}#t(...n){const e=n.map((t)=>{return typeof t==="object"?t.decimal||L(t.decimalMultiplier):on(F(t))}).filter(Boolean);return Math.max(...e,Y)}#a(n,e){const t=e?J(e):this.decimalMultiplier,a=L(t),[y="",d=""]=n.split(".");return BigInt(`${y}${d.padEnd(a,"0")}`)}}var Nn=Intl.NumberFormat("fullwide",{useGrouping:!1,maximumFractionDigits:20});function wt(n){const e=H.from({chain:n});switch(n){case"BTC":case"LTC":case"BCH":case"DASH":return e.set(0.00010001);case"DOGE":return e.set(1.00000001);case"AVAX":case"ETH":case"ARB":case"BSC":return e.set(0.00000001);case"THOR":case"MAYA":return e.set(0);case"GAIA":case"KUJI":return e.set(0.000001);default:return e.set(0.00000001)}}async function An(n,e=0){mn(n);const t=W.get(n.toUpperCase()),a=t?.decimal||await ln(S(n));if(!t)W.set(n.toUpperCase(),{identifier:n,decimal:a});return new H({decimal:a,value:B(e,a),identifier:n})}var Kn=function(n,e=0){const[t,a]=n.split(".")?.[0]?.toUpperCase()==="THOR"?n.split(".").slice(1).join().split("/"):n.split("/");if(!(t&&a))throw new R({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n}});return new H({decimal:8,value:B(e,8),identifier:`${"THOR"}.${t}/${a}`})},B=function(n,e){return typeof n==="bigint"?Z({value:n,bigIntDecimal:e,decimal:e}):n},S=function(n){const e=n.slice(0,14).includes("/"),t=n.split(".")?.[0]?.toUpperCase()==="THOR",a=n.split(".")?.[0]?.toUpperCase()==="MAYA",[y,d=""]=t||a?n.split(".").slice(1).join().split("/"):n.split("/");if(e&&!(y&&d))throw new R({errorKey:"helpers_invalid_asset_identifier",info:{identifier:n}});const r=n.includes(".")&&!e?n:`${a?"MAYA":"THOR"}.${d}`,[u,...i]=r.split("."),x=e?d:i.join("."),O=x.split("-"),f=O.length===1?O[0]:O.slice(0,-1).join("-"),G=O.length===1?void 0:O[O.length-1];return{address:G?.toLowerCase(),chain:u,isGasAsset:c({chain:u,symbol:x}),isSynthetic:e,ticker:f,symbol:(e?`${y}/`:"")+(G?`${f}-${G?.toLowerCase()??""}`:x)}},W=new Map;class H extends X{address;chain;isGasAsset=!1;isSynthetic=!1;symbol;tax;ticker;type;chainId;constructor({value:n,decimal:e,tax:t,chain:a,symbol:y,identifier:d}){super(typeof n==="object"?n:{decimal:e,value:n});const r=S(d||`${a}.${y}`);this.type=Cn(r),this.tax=t,this.chain=r.chain,this.ticker=r.ticker,this.symbol=r.symbol,this.address=r.address,this.isSynthetic=r.isSynthetic,this.isGasAsset=r.isGasAsset,this.chainId=tn[r.chain]}toString(){return this.isSynthetic?this.symbol:`${this.chain}.${this.symbol}`}toUrl(){return this.isSynthetic?`${this.chain}.${this.symbol.replace("/",".")}`:this.toString()}eqAsset({chain:n,symbol:e}){return this.chain===n&&this.symbol===e}eq(n){return this.eqAsset(n)&&this.eqValue(n)}static fromUrl(n,e=0){const[t,a,y]=n.split(".");if(!(t&&a))throw new R({errorKey:"helpers_invalid_asset_url",info:{urlAsset:n}});const d=t==="THOR"&&y?`${t}.${a}/${y}`:n;return H.from({asset:d,value:e})}static from({value:n=0,fromBaseDecimal:e,asyncTokenLookup:t,...a}){const y=n instanceof X?n.getValue("string"):n,d="chain"in a,r=d?a.chain:a.asset,u=d||fn.includes(r),{identifier:i,decimal:x}=u?Hn(r):{identifier:r,decimal:void 0},{chain:O,isSynthetic:f}=S(i),{tax:G,decimal:b,identifier:k}=W.get(i.toUpperCase())||{decimal:x||w[O],identifier:i},q=e?B(BigInt(y),e):B(y,b);return t?An(k,e?q:y):f?Kn(k,y):new H({tax:G,decimal:b,identifier:k,value:q})}static loadStaticAssets(){return new Promise((n,e)=>{try{import("@swapkit/tokens").then((t)=>{for(let a of Object.values(t))for(let{identifier:y,chain:d,...r}of a.tokens)W.set(y.toUpperCase(),{identifier:y,decimal:"decimals"in r?r.decimals:w[d]});n({ok:!0})})}catch(t){console.error(t),e({ok:!1,error:t,message:"Couldn't load static assets. Ensure you have installed @swapkit/tokens package"})}})}static fromString(n,e=0){return H.from({asset:n,value:e,asyncTokenLookup:!0})}static fromIdentifier(n,e=0){return H.from({asset:n,value:e,asyncTokenLookup:!0})}static fromStringSync(n,e=0){return H.from({asset:n,value:e})}static fromStringWithBase(n,e=0n,t=8){return H.from({asyncTokenLookup:!0,asset:n,value:e,fromBaseDecimal:t})}static fromStringWithBaseSync(n,e=0n,t=8){return H.from({asset:n,value:e,fromBaseDecimal:t})}static fromIdentifierSync(n,e=0){return H.from({asset:n,value:e})}static fromChainOrSignature(n,e=0){if(Object.values(j).includes(n))return H.from({chain:n,value:e});return H.from({asset:n,value:e})}}import Vn from"ky";function jt({apiKey:n,...e}){On={...e,apiKey:n}}var Rn=function(){const{apiKey:n,...e}=On;return Vn.create({...e,headers:{...Fn,...e.headers,"x-api-key":n}})},On={},Fn=typeof window!=="undefined"?{}:{referrer:"https://sk.thorswap.net",referer:"https://sk.thorswap.net"},wn=(n)=>({get:async(e,t)=>(await n.get(e,t)).json(),post:async(e,t)=>(await n.post(e,t)).json()}),h={...wn(Rn()),extend:(n)=>{const e=Rn().extend(n);return{...wn(e),extend:h.extend}}};async function Mt(n){const e=await import("@swapkit/tokens");for(let t of Object.values(e))for(let{identifier:a,chain:y,...d}of t.tokens){if("identifier"in n&&a===n.identifier)return a;if("address"in d&&"chain"in n&&y===n.chain&&d.address.toLowerCase()===n.contract.toLowerCase())return a}return}var Wn="0x313ce567",fn=[`${"MAYA"}.MAYA`,`${"ETH"}.THOR`,`${"ETH"}.vTHOR`,`${"KUJI"}.USK`],_n=async({chain:n,to:e})=>{try{const{result:t}=await h.post(U[n],{headers:{accept:"*/*","content-type":"application/json","cache-control":"no-cache"},body:JSON.stringify({id:44,jsonrpc:"2.0",method:"eth_call",params:[{to:e.toLowerCase(),data:Wn},"latest"]})});return Number.parseInt(BigInt(t||w[n]).toString())}catch(t){return console.error(t),w[n]}},Bn=async({symbol:n})=>{try{const e=n.split("-")[1]?.toLowerCase(),{manager:t}=await h.post(`${U["XRD"]}/state/resource`,{headers:{Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({network:"mainnet",resource_address:e})});return t.divisibility.value.divisibility}catch(e){return console.error(e),w["XRD"]}},hn=(n)=>{if(n==="ETH")return 18;const e=n.split("-"),t=e.length===1?void 0:e[e.length-1]?.toLowerCase();return t?.startsWith("0x")?_n({chain:"ETH",to:t}):18},In=(n)=>{const e=n.split("-"),t=e.length===1?void 0:e[e.length-1];return t?.startsWith("0x")?_n({chain:"AVAX",to:t.toLowerCase()}):18},Pn=(n)=>{if(n==="BSC")return 18;return 18},En=(n)=>{if(n==="XRD")return 18;return Bn({symbol:n})},ln=({chain:n,symbol:e})=>{switch(n){case"ETH":return hn(e);case"AVAX":return In(e);case"BSC":return Pn(e);case"XRD":return En(e);default:return w[n]}},Jt=({chain:n})=>{switch(n){case"ARB":case"OP":return H.from({asset:`${n}.ETH`});case"MAYA":return H.from({asset:`${n}.CACAO`});case"GAIA":return H.from({asset:`${n}.ATOM`});case"BSC":return H.from({asset:`${n}.BNB`});case"THOR":return H.from({asset:`${n}.RUNE`});default:return H.from({asset:`${n}.${n}`})}},c=({chain:n,symbol:e})=>{switch(n){case"ARB":case"OP":return e==="ETH";case"MAYA":return e==="CACAO";case"GAIA":return e==="ATOM";case"BSC":return e==="BNB";case"THOR":return e==="RUNE";default:return e===n}},Hn=(n)=>{switch(n){case"ARB":case"OP":return{identifier:`${n}.ETH`,decimal:w[n]};case`${"ETH"}.THOR`:return{identifier:"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044",decimal:18};case`${"ETH"}.vTHOR`:return{identifier:"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d",decimal:18};case"GAIA":return{identifier:`${n}.ATOM`,decimal:w[n]};case"THOR":return{identifier:`${n}.RUNE`,decimal:w[n]};case"BSC":return{identifier:`${n}.BNB`,decimal:w[n]};case"MAYA":return{identifier:`${n}.CACAO`,decimal:w[n]};case"XRD":return{identifier:`${"XRD"}.XRD`,decimal:w[n]};case`${"MAYA"}.MAYA`:return{identifier:n,decimal:4};case`${"KUJI"}.USK`:return{identifier:n,decimal:6};default:return{identifier:`${n}.${n}`,decimal:w[n]}}},Cn=({chain:n,symbol:e})=>{if(e.includes("/"))return"Synth";switch(n){case"GAIA":return e==="ATOM"?"Native":"GAIA";case"KUJI":return e==="KUJI"?"Native":"KUJI";case"BSC":return e==="BNB"?"Native":"BEP20";case"ETH":return e==="ETH"?"Native":"ERC20";case"AVAX":return e==="AVAX"?"Native":"AVAX";case"MATIC":return e==="MATIC"?"Native":"POLYGON";case"ARB":return["ETH","ARB"].includes(e)?"Native":"ARBITRUM";case"OP":return["ETH","OP"].includes(e)?"Native":"OPTIMISM";case"XRD":return e==="XRD"?"Native":"RADIX";default:return"Native"}},Zt=(n)=>{const[e,...t]=n.split("."),a=n.includes("/"),y=t.join("."),d=y?.split("-"),r=d?.length?d.length===1?d[0]:d.slice(0,-1).join("-"):void 0;return{chain:e,symbol:y,ticker:r,synth:a}},Un=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi"),vn=(n)=>{const[e,t]=n.split(".");if(!N.includes(e))return!0;const a=t.split("-"),y=a.length===1?void 0:a[a.length-1];return c({chain:e,symbol:t})||!!y},kt=(n)=>n.filter(({chain:e,value:t,symbol:a})=>{const y=`${e}.${a}`;return!Un.test(y)&&vn(y)&&t!=="0"});function gt({chain:n,index:e,addressIndex:t=0,type:a}){if(N.includes(n)){if(a==="legacy")return[44,60,0,e];if(a==="ledgerLive")return[44,60,e,0,t];return D(K[n],e)}if(["BTC","LTC"].includes(n)){const y=n==="BTC"?0:2;if(a==="nativeSegwitMiddleAccount")return[84,y,e,0,t];if(a==="segwit")return[49,y,0,0,e];if(a==="legacy")return[44,y,0,0,e];return D(K[n],e)}return D(K[n],e)}function bt(n){const[e,t,a]=n.split("/").map((y)=>Number.parseInt(y,10));switch(t){case 44:return"legacy";case 49:return"p2sh";default:return"bech32"}}var D=(n,e)=>[...n.slice(0,n.length-1),e];function Sn({liquidityUnits:n,poolUnits:e,runeDepth:t}){const a=_(n),y=_(e),d=_(t),r=a.mul(d),u=y.mul(y).mul(2),i=y.mul(a).mul(2),x=a.mul(a),O=y.mul(y).mul(y);return r.mul(u.sub(i).add(x)).div(O)}function cn({liquidityUnits:n,poolUnits:e,assetDepth:t}){const a=_(n),y=_(e),d=_(t),r=a.mul(d),u=y.mul(y).mul(2),i=y.mul(a).mul(2),x=a.mul(a),O=r.mul(u.sub(i).add(x)),f=y.mul(y).mul(y);return O.div(f)}function At({percent:n,runeDepth:e,liquidityUnits:t,poolUnits:a}){return Sn({runeDepth:e,liquidityUnits:t,poolUnits:a}).mul(n)}function Kt({percent:n,assetDepth:e,liquidityUnits:t,poolUnits:a}){return cn({assetDepth:e,liquidityUnits:t,poolUnits:a}).mul(n)}var _=function(n){return $.fromBigInt(BigInt(n),8)};function Dn({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:a}){return{assetAmount:_(a).mul(n).div(e),runeAmount:_(t).mul(n).div(e)}}function Vt({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:a,percent:y}){return Object.fromEntries(Object.entries(Dn({liquidityUnits:n,poolUnits:e,runeDepth:t,assetDepth:a})).map(([d,r])=>[d,r.mul(y)]))}function Ft({runeDepth:n,poolUnits:e,assetDepth:t,liquidityUnits:a,runeAmount:y,assetAmount:d}){const r=new $({value:n,decimal:8}),u=new $({value:t,decimal:8}),i=new $({value:e,decimal:8}),x=new $({value:y,decimal:8}),O=new $({value:d,decimal:8}),f=x.mul(u),G=O.mul(r),b=x.mul(O),k=r.mul(u),q=i.mul(f.add(G.add(b.mul(2)))),C=f.add(G.add(k.mul(2))),nn=q.div(C),I=_(a).add(nn);if(nn.getBaseValue("number")===0)return I.div(i).getBaseValue("number");const s=i.add(I);return I.div(s).getBaseValue("number")}function Wt({runeAmount:n,assetAmount:e,runeDepth:t,assetDepth:a}){if(n==="0"||e==="0"||t==="0"||a==="0")return 0;const y=_(t),d=_(a),r=_(e),u=_(n),i=r.mul(y).sub(d.mul(u)),x=d.mul(u).add(y.mul(d));return Math.abs(i.div(x).getBaseValue("number"))}var g=function(n,{affiliateAddress:e,affiliateBasisPoints:t}){const a=e?`:${e}:${t||0}`:"";return`${n}${a}`},ne=function({chain:n,symbol:e}){switch(n){case"BTC":case"DOGE":case"LTC":return n.slice(0,1).toLowerCase();case"BCH":return"c";default:return`${n}.${e}`}};function ee({type:n,address:e}){return`${n}:${e}`}function te({address:n,unbondAmount:e}){return`${"UNBOND"}:${n}:${e}`}function ae({name:n,chain:e,address:t,owner:a}){const y=`${"~"}:${n}:${e}:${t}`,d=a?`:${a}`:"";return`${y}${d}`}function pe(n,{asset:e,address:t,minAmount:a,...y}){const d=`${n}:${e}:${t}`,r=a?`:${a}`:"";return g(`${d}${r}`,y)}function ye({chain:n,symbol:e,...t}){return g(`${"+"}:${n}/${e}`,t)}function se({chain:n,symbol:e,address:t,...a}){const y=ne({chain:n,symbol:e}),d=t?`:${t}`:"";return g(`${"+"}:${y}${d}`,a)}function de({chain:n,symbol:e,basisPoints:t,...a}){return g(`${"-"}:${n}/${e}:${t}`,a)}function re({chain:n,symbol:e,ticker:t,basisPoints:a,targetAsset:y,...d}){const r=n==="ETH"&&t!=="ETH"?`${t}-${e.slice(-3)}`:e,u=y?`:${y}`:"";return g(`${"-"}:${n}.${r}:${a}${u}`,d)}var Et=(n,e)=>{switch(n){case"LEAVE":case"BOND":{const{address:t}=e;return ee({type:n,address:t})}case"UNBOND":{const{address:t,unbondAmount:a}=e;return te({address:t,unbondAmount:a})}case"~":return ae(e);case"$+":case"$-":return pe(n,e);case"+":{const{chain:t,symbol:a,address:y,singleSide:d}=e;if(d)return ye({chain:t,symbol:a});return se({chain:t,symbol:a,address:y})}case"-":{const{chain:t,ticker:a,symbol:y,basisPoints:d,targetAssetString:r,singleSide:u}=e;if(u)return de({chain:t,symbol:y,basisPoints:d});return re({chain:t,ticker:a,symbol:y,basisPoints:d,targetAsset:r})}default:throw new R({errorKey:"helpers_invalid_memo_type",info:{memoType:n}})}};function ct(n){if(n<0)throw new R({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:n}});return 10+n}function Dt(n){if(n<0)throw new R({errorKey:"helpers_invalid_number_of_years",info:{numberOfYears:n}});return Math.round((10+n*1.0512)*10000000000)/10000000000}function na([n,e,t,a,y]){return`m/${n}'/${e}'/${t}'/${a}${typeof y!=="number"?"":`/${y}`}`}function ea(n,e){try{return n()}catch(t){if(e)throw new R(e,t);return console.error(t)}}var ta=(n)=>{switch(n){case"THOR":return`${n}.RUNE`;case"GAIA":return`${n}.ATOM`;case"BSC":return`${n}`;default:return`${n}.${n}`}};function ia(){const n=[];function e(a){if(n.map((y)=>y.info.uuid).includes(a.detail.info.uuid))return;n.push(a.detail)}window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new Event("eip6963:requestProvider"));function t(){window.removeEventListener("eip6963:announceProvider",e)}return{providers:n,removeEIP6963EventListener:t}}var ue=["approve","approvedAmount","call","sendTransaction","transfer","isApproved","approvedAmount","EIP1193SendTransaction","getFeeData","broadcastTransaction","estimateCall","estimateGasLimit","estimateGasPrices","createContractTxObject"],Te=(n,e,t)=>async(...a)=>{try{await ie(e,t)}catch(y){throw new R({errorKey:"helpers_failed_to_switch_network",info:{error:y}})}return n(...a)},jn=({provider:n,params:e,method:t})=>{if(!n?.send)throw new R("helpers_not_found_provider");const a=e?Array.isArray(e)?e:[e]:[];return n.send(t,a)},sa=({toolbox:n,chainId:e,provider:t=window.ethereum})=>{const a=ue.reduce((y,d)=>{if(!n[d])return y;const r=n[d];if(typeof r!=="function")return y;return{...y,[d]:Te(r,t,e)}},{});return{...n,...a}},da=(n,e)=>jn({provider:n,method:"wallet_addEthereumChain",params:[e]}),ie=(n,e="0x1")=>jn({provider:n,method:"wallet_switchEthereumChain",params:[{chainId:e}]}),ra=(n)=>{window.ethereum?.on("accountsChanged",()=>n()),window.xfi?.ethereum.on("accountsChanged",()=>n())},ua=()=>{const{isTrust:n,isBraveWallet:e,__XDEFI:t,overrideIsMetaMask:a,selectedProvider:y}=window?.ethereum||{};if(n)return"TRUSTWALLET_WEB";if(e)return"BRAVE";if(a&&y?.isCoinbaseWallet)return"COINBASE_WEB";if(t)"XDEFI";return"METAMASK"},Ta=(n)=>{return xe().includes(n)},xe=()=>{const n=window?.ethereum&&!window.ethereum?.isBraveWallet,e=window?.xfi||window?.ethereum?.__XDEFI,t=window?.ethereum?.isBraveWallet,a=window?.ethereum?.isTrust||window?.trustwallet,y=window?.ethereum?.overrideIsMetaMask&&window?.ethereum?.selectedProvider?.isCoinbaseWallet||window?.coinbaseWalletExtension,d=[];if(n)d.push("METAMASK");if(e)d.push("XDEFI");if(t)d.push("BRAVE");if(a)d.push("TRUSTWALLET_WEB");if(y)d.push("COINBASE_WEB");if(me())d.push("OKX_MOBILE");return d},me=()=>{const n=navigator.userAgent,e=/iphone|ipad|ipod|ios/i.test(n),t=/android|XiaoMi|MiuiBrowser/i.test(n),a=e||t,y=/OKApp/i.test(n);return a&&y},xa=()=>typeof window.ethereum!=="undefined";class $ extends X{eq(n){return this.eqValue(n)}static fromBigInt(n,e){return new $({decimal:e,value:Z({value:n,bigIntDecimal:e,decimal:e})})}}export{ea as wrapWithThrow,Te as wrapMethodWithNetworkSwitch,it as validateTNS,mn as validateIdentifier,ie as switchEVMWalletNetwork,jt as setRequestClientConfig,sa as prepareNetworkSwitch,me as okxMobileEnabled,xe as listWeb3EVMWallets,xa as isWeb3Detected,c as isGasAsset,Ta as isDetected,bt as getWalletFormatFor,ct as getTHORNameCost,Vt as getSymmetricWithdraw,Dn as getSymmetricPoolShare,wt as getMinAmountByChain,re as getMemoForWithdraw,te as getMemoForUnbond,de as getMemoForSaverWithdraw,ye as getMemoForSaverDeposit,ae as getMemoForNameRegister,pe as getMemoForLoan,ee as getMemoForLeaveAndBond,se as getMemoForDeposit,Et as getMemoFor,Dt as getMAYANameCost,Wt as getLiquiditySlippage,Jt as getGasAsset,Ft as getEstimatedPoolShare,ua as getETHDefaultWallet,ia as getEIP6963Wallets,gt as getDerivationPathFor,ln as getDecimal,Hn as getCommonAssetInfo,ta as getChainIdentifier,At as getAsymmetricRuneWithdrawAmount,Sn as getAsymmetricRuneShare,Kt as getAsymmetricAssetWithdrawAmount,cn as getAsymmetricAssetShare,Cn as getAssetType,Z as formatBigIntToSafeValue,Mt as findAssetBy,kt as filterAssets,fe as erc20ABI,na as derivationPathToString,Fn as defaultRequestHeaders,Zt as assetFromString,da as addEVMWalletNetwork,ra as addAccountsChangedCallback,yn as WarningCodeEnum,an as WalletOption,Je as UTXOChains,ke as TCSupportedChains,we as TCEthereumVaultAbi,_e as TCBscDepositABI,Oe as TCAvalancheDepositABI,$ as SwapKitNumber,R as SwapKitError,ze as SubstrateChains,Qe as SWAP_OUT,qe as SWAP_IN,Tn as RouteQuoteWarningSchema,Ie as RouteQuoteSchema,un as RouteQuoteMetadataSchema,Yn as RouteQuoteMetadataAssetSchema,gn as RouteQuoteLegSchema,he as RouteLegWithoutAddressesSchema,Ln as RouteLegSchema,h as RequestClient,P as RPCUrl,Pe as QuoteResponseSchema,Fe as QuoteRequestSchema,Gn as QuoteMode,z as ProviderName,K as NetworkDerivationPath,pn as MemoType,He as MayaEthereumVaultAbi,Ce as MayaArbitrumVaultAbi,Me as MAYASupportedChains,Jn as LedgerErrorCode,rn as FeesSchema,dn as FeeTypeEnum,Zn as FeeOption,E as ExplorerUrl,V as EstimatedTimeSchema,sn as EVMTransactionDetailsSchema,Mn as EVMTransactionDetailsParamsSchema,N as EVMChains,zn as DerivationPath,Ze as CosmosChains,Xn as ContractAddress,fn as CommonAssetStrings,U as ChainToRPC,Le as ChainToHexChainId,Ye as ChainToExplorerUrl,tn as ChainToChainId,Xe as ChainIdToChain,Q as ChainId,j as Chain,X as BigIntArithmetics,w as BaseDecimal,H as AssetValue,kn as ApproveMode,be as AGG_SWAP};
2
2
 
3
- //# debugId=B80448EF1E8A198364756E2164756E21
3
+ //# debugId=4E3B1F8DE1ABBBBD64756E2164756E21
package/dist/index.js.map CHANGED
@@ -12,7 +12,7 @@
12
12
  "import type { Eip1193Provider } from \"ethers\";\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { Chain } from \"./chains\";\n\ndeclare global {\n interface WindowEventMap {\n \"eip6963:announceProvider\": CustomEvent;\n }\n}\n\nexport enum WalletOption {\n BRAVE = \"BRAVE\",\n COINBASE_MOBILE = \"COINBASE_MOBILE\",\n COINBASE_WEB = \"COINBASE_WEB\",\n EIP6963 = \"EIP6963\",\n EXODUS = \"EXODUS\",\n KEEPKEY = \"KEEPKEY\",\n KEPLR = \"KEPLR\",\n KEYSTORE = \"KEYSTORE\",\n LEDGER = \"LEDGER\",\n METAMASK = \"METAMASK\",\n OKX = \"OKX\",\n OKX_MOBILE = \"OKX_MOBILE\",\n PHANTOM = \"PHANTOM\",\n RADIX_WALLET = \"RADIX_WALLET\",\n TREZOR = \"TREZOR\",\n TALISMAN = \"TALISMAN\",\n TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\",\n WALLETCONNECT = \"WALLETCONNECT\",\n XDEFI = \"XDEFI\",\n}\n\nexport enum LedgerErrorCode {\n NoError = 0x9000,\n LockedDevice = 0x5515,\n TC_NotFound = 65535,\n}\n\nexport type ChainWallet = {\n chain: Chain;\n address: string;\n balance: AssetValue[];\n walletType: WalletOption;\n disconnect?: () => void;\n};\n\nexport type EmptyWallet = { [key in Chain]?: unknown };\nexport type BaseWallet<T extends EmptyWallet | Record<string, unknown>> = {\n [key in Chain]: ChainWallet & (T extends EmptyWallet ? T[key] : unknown);\n};\n\nexport type EIP6963ProviderInfo = {\n walletId: string;\n uuid: string;\n name: string;\n icon: string;\n};\n\nexport type EIP6963ProviderDetail = {\n info: EIP6963ProviderInfo;\n provider: Eip1193Provider;\n};\n\nexport type EIP6963Provider = {\n info: EIP6963ProviderInfo;\n provider: Eip1193Provider;\n};\n\n// This type represents the structure of an event dispatched by a wallet to announce its presence based on EIP-6963.\nexport type EIP6963AnnounceProviderEvent = Event & {\n detail: EIP6963Provider;\n};\n",
13
13
  "import { z } from \"zod\";\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { QuoteResponseRoute } from \"./quotes\";\n\nexport type GenericSwapParams = {\n buyAsset?: AssetValue;\n sellAsset?: AssetValue;\n recipient?: string;\n feeOptionKey?: FeeOption;\n route: QuoteResponseRoute;\n};\n\nexport type SwapParams<PluginNames = string, T = GenericSwapParams> = T & {\n pluginName?: PluginNames;\n};\n\nexport enum FeeOption {\n Average = \"average\",\n Fast = \"fast\",\n Fastest = \"fastest\",\n}\n\nexport enum ApproveMode {\n Approve = \"approve\",\n CheckOnly = \"checkOnly\",\n}\n\nexport type ApproveReturnType<T extends ApproveMode> = T extends \"checkOnly\"\n ? Promise<boolean>\n : Promise<string>;\n\nexport type WalletTxParams = {\n feeOptionKey?: FeeOption;\n from?: string;\n memo?: string; // optional memo to pass\n recipient: string;\n};\n\nexport enum MemoType {\n BOND = \"BOND\",\n DEPOSIT = \"+\",\n LEAVE = \"LEAVE\",\n NAME_REGISTER = \"~\",\n UNBOND = \"UNBOND\",\n WITHDRAW = \"-\",\n OPEN_LOAN = \"$+\",\n CLOSE_LOAN = \"$-\",\n}\n\nexport const QuoteRequestSchema = z\n .object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n sellAmount: z\n .number({\n description: \"Amount of asset to sell\",\n })\n .refine((amount) => amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: z.optional(\n z.array(\n z.string({\n description: \"List of providers to use\",\n }),\n ),\n ),\n sourceAddress: z.optional(\n z.string({\n description: \"Address to send asset from\",\n }),\n ),\n destinationAddress: z.optional(\n z.string({\n description: \"Address to send asset to\",\n }),\n ),\n slippage: z.optional(\n z.number({\n description: \"Slippage tolerance as a percentage. Default is 3%.\",\n }),\n ),\n affiliate: z.optional(\n z.string({\n description: \"Affiliate thorname\",\n }),\n ),\n affiliateFee: z.optional(\n z\n .number({\n description: \"Affiliate fee in basis points\",\n })\n .refine(\n (fee) => {\n return fee === Math.floor(fee) && fee >= 0;\n },\n { message: \"affiliateFee must be a positive integer\", path: [\"affiliateFee\"] },\n ),\n ),\n allowSmartContractSender: z.optional(\n z.boolean({\n description: \"Allow smart contract as sender\",\n }),\n ),\n allowSmartContractReceiver: z.optional(\n z.boolean({\n description: \"Allow smart contract as recipient\",\n }),\n ),\n disableSecurityChecks: z.optional(\n z.boolean({\n description: \"Disable security checks\",\n }),\n ),\n })\n .refine((data) => data.sellAsset !== data.buyAsset, {\n message: \"Must be different\",\n path: [\"sellAsset\", \"buyAsset\"],\n });\n\nexport type QuoteRequest = z.infer<typeof QuoteRequestSchema>;\n",
14
14
  "import { z } from \"zod\";\n\nexport enum WarningCodeEnum {\n highSlippage = \"highSlippage\",\n highPriceImpact = \"highPriceImpact\",\n}\n\nexport const EVMTransactionDetailsParamsSchema = z.array(\n z.union([\n z.string(),\n z.number(),\n z.array(z.string()),\n z\n .object({\n from: z.string(),\n value: z.string(),\n })\n .describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = z.object({\n contractAddress: z.string({\n description: \"Address of the contract to interact with\",\n }),\n contractMethod: z.string({\n description: \"Name of the method to call\",\n }),\n contractParams: EVMTransactionDetailsParamsSchema,\n // contractParamsStreaming: z.array(\n // z.string({\n // description:\n // \"If making a streaming swap through THORChain, parameters to pass to the contract method\",\n // }),\n // ),\n contractParamNames: z.array(\n z.string({\n description: \"Names of the parameters to pass to the contract method\",\n }),\n ),\n approvalToken: z.optional(\n z.string({\n description: \"Address of the token to approve spending of\",\n }),\n ),\n approvalSpender: z.optional(\n z.string({\n description: \"Address of the spender to approve\",\n }),\n ),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(\n z.number({\n description: \"Time to receive inbound asset in seconds\",\n }),\n ),\n swap: z.optional(\n z.number({\n description: \"Time to swap assets in seconds\",\n }),\n ),\n outbound: z.optional(\n z.number({\n description: \"Time to receive outbound asset in seconds\",\n }),\n ),\n total: z.number({\n description: \"Total time in seconds\",\n }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport enum ProviderName {\n CHAINFLIP = \"CHAINFLIP\",\n TRADERJOE_V1 = \"TRADERJOE_V1\",\n PANGOLIN_V1 = \"PANGOLIN_V1\",\n UNISWAP_V2 = \"UNISWAP_V2\",\n THORCHAIN = \"THORCHAIN\",\n THORCHAIN_STREAMING = \"THORCHAIN_STREAMING\",\n MAYACHAIN = \"MAYACHAIN\",\n ONEINCH = \"ONEINCH\",\n SUSHISWAP_V2 = \"SUSHISWAP_V2\",\n WOOFI_V2 = \"WOOFI_V2\",\n PANCAKESWAP = \"PANCAKESWAP\",\n}\n\nexport enum FeeTypeEnum {\n LIQUIDITY = \"liquidity\",\n NETWORK = \"network\",\n INBOUND = \"inbound\",\n OUTBOUND = \"outbound\",\n AFFILIATE = \"affiliate\",\n TAX = \"tax\",\n}\n\nexport const FeesSchema = z.array(\n z.object({\n type: z.nativeEnum(FeeTypeEnum),\n amount: z.string(),\n asset: z.string(),\n chain: z.string(),\n protocol: z.nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const RouteLegSchema = z.object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n provider: z.nativeEnum(ProviderName),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: z\n .string({\n description: \"Affiliate address\",\n })\n .optional(),\n affiliateFee: z\n .number({\n description: \"Affiliate fee\",\n })\n .optional(),\n slipPercentage: z.number({\n description: \"Slippage as a percentage\",\n }),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n sourceAddress: true,\n destinationAddress: true,\n slipPercentage: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = z.object({\n name: z.string({\n description: \"Asset name\",\n }),\n price: z.number({\n description: \"Price in USD\",\n }),\n image: z.string({\n description: \"Asset image\",\n }),\n});\n\nexport type RouteQuoteMetadataAsset = z.infer<typeof RouteQuoteMetadataAssetSchema>;\n\nexport const RouteQuoteMetadataSchema = z.object({\n priceImpact: z.number({\n description: \"Price impact\",\n }),\n assets: z.optional(z.array(RouteQuoteMetadataAssetSchema)),\n});\n\nexport const RouteQuoteWarningSchema = z.array(\n z.object({\n code: z.nativeEnum(WarningCodeEnum),\n display: z.string(),\n tooltip: z.string().optional(),\n }),\n);\n\nexport const RouteQuoteLegSchema = z.object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n provider: z.nativeEnum(ProviderName),\n buyAmount: z.string({\n description: \"Amount of asset to buy\",\n }),\n buyAmountMaxSlippage: z.string({\n description: \"Amount of asset to buy\",\n }),\n sellAmount: z.string({\n description: \"Amount of asset to sell\",\n }),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n slippageBps: z.number({\n description: \"Slippage in bps\",\n }),\n targetAddress: z.optional(\n z.string({\n description: \"Target address for contract call or transfer address\",\n }),\n ),\n inboundAddress: z.optional(\n z.string({\n description: \"Inbound address\",\n }),\n ),\n routerAddress: z.optional(\n z.string({\n description: \"Inbound address\",\n }),\n ),\n contractMethod: z.optional(\n z.string({\n description: \"Contract method\",\n }),\n ),\n fees: z.optional(FeesSchema),\n estimatedTime: z.optional(EstimatedTimeSchema),\n memo: z.optional(\n z.string({\n description: \"Memo\",\n }),\n ),\n expiration: z.optional(\n z.string({\n description: \"Expiration\",\n }),\n ),\n});\n\nexport type RouteQuoteLeg = z.infer<typeof RouteQuoteLegSchema>;\n\nexport const RouteQuoteSchema = z.object({\n providers: z.array(z.nativeEnum(ProviderName)),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n expectedBuyAmount: z.string({\n description: \"Expected Buy amount\",\n }),\n expectedBuyAmountMaxSlippage: z.string({\n description: \"Expected Buy amount max slippage\",\n }),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n targetAddress: z.optional(\n z.string({\n description: \"Target address\",\n }),\n ),\n routerAddress: z.optional(\n z.string({\n description: \"Router address\",\n }),\n ),\n inboundAddress: z.optional(\n z.string({\n description: \"Inbound address\",\n }),\n ),\n expiration: z.optional(\n z.string({\n description: \"Expiration\",\n }),\n ),\n memo: z.optional(\n z.string({\n description: \"Memo\",\n }),\n ),\n evmTransactionDetails: z.optional(EVMTransactionDetailsSchema),\n routePathArray: z.optional(z.array(z.string())),\n estimatedTime: z.optional(EstimatedTimeSchema),\n totalSlippageBps: z.number({\n description: \"Total slippage in bps\",\n }),\n legs: z.array(RouteQuoteLegSchema),\n // TODO use enum\n errorCode: z.optional(z.string()),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport type RouteQuote = z.infer<typeof RouteQuoteSchema>;\n\nconst QuoteResponseRouteLegItem = z.object({\n provider: z.nativeEnum(ProviderName),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"Sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n buyAmount: z.string({\n description: \"Buy amount\",\n }),\n buyAmountMaxSlippage: z.string({\n description: \"Buy amount max slippage\",\n }),\n fees: z.optional(FeesSchema), // TODO remove optionality\n});\n\nconst QuoteResponseRouteItem = z.object({\n providers: z.array(z.nativeEnum(ProviderName)),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n expectedBuyAmount: z.string({\n description: \"Expected Buy amount\",\n }),\n expectedBuyAmountMaxSlippage: z.string({\n description: \"Expected Buy amount max slippage\",\n }),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n targetAddress: z.optional(\n z.string({\n description: \"Target address\",\n }),\n ),\n expiration: z.optional(\n z.string({\n description: \"Expiration\",\n }),\n ),\n memo: z.optional(\n z.string({\n description: \"Memo\",\n }),\n ),\n evmTransactionDetails: z.optional(EVMTransactionDetailsSchema),\n estimatedTime: z.optional(EstimatedTimeSchema), // TODO remove optionality\n totalSlippageBps: z.number({\n description: \"Total slippage in bps\",\n }),\n legs: z.array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = z.object({\n quoteId: z.string({\n description: \"Quote ID\",\n }),\n routes: z.array(QuoteResponseRouteItem),\n error: z.optional(\n z.string({\n description: \"Error message\",\n }),\n ),\n});\n\nexport type QuoteResponse = z.infer<typeof QuoteResponseSchema>;\nexport type QuoteResponseRoute = z.infer<typeof QuoteResponseRouteItem>;\nexport type QuoteResponseRouteLeg = z.infer<typeof QuoteResponseRouteLegItem>;\n",
15
- "const errorCodes = {\n /**\n * Core\n */\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_plugin_not_found: 10006,\n core_plugin_swap_not_found: 10007,\n core_approve_asset_target_invalid: 10008,\n core_explorer_unsupported_chain: 10009,\n core_chain_halted: 10099,\n\n core_wallet_connection_not_found: 10100,\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_base_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_base_address: 10306,\n core_transaction_add_liquidity_base_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n /**\n * Wallets\n */\n wallet_connection_rejected_by_user: 20000,\n wallet_missing_api_key: 20001,\n wallet_chain_not_supported: 20002,\n wallet_missing_params: 20003,\n wallet_provider_not_found: 20004,\n wallet_failed_to_add_or_switch_network: 20005,\n wallet_ledger_connection_error: 20101,\n wallet_ledger_connection_claimed: 20102,\n wallet_ledger_get_address_error: 20103,\n wallet_ledger_device_not_found: 20104,\n wallet_ledger_device_locked: 20105,\n wallet_phantom_not_found: 20201,\n wallet_xdefi_not_found: 20301,\n wallet_xdefi_send_transaction_no_address: 20302,\n wallet_xdefi_contract_address_not_provided: 20303,\n wallet_xdefi_asset_not_defined: 20304,\n wallet_walletconnect_project_id_not_specified: 20401,\n wallet_walletconnect_connection_not_established: 20402,\n wallet_walletconnect_namespace_not_supported: 20403,\n wallet_trezor_failed_to_sign_transaction: 20501,\n wallet_trezor_derivation_path_not_supported: 20502,\n wallet_trezor_failed_to_get_address: 20503,\n wallet_talisman_not_enabled: 20601,\n wallet_talisman_not_found: 20602,\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_unknown_asset: 30002,\n chainflip_broker_invalid_params: 30100,\n chainflip_broker_recipient_error: 30101,\n chainflip_broker_register: 30102,\n chainflip_broker_tx_error: 30103,\n chainflip_broker_withdraw: 30104,\n chainflip_broker_fund_only_flip_supported: 30105,\n chainflip_broker_fund_invalid_address: 30106,\n /**\n * THORChain\n */\n thorchain_chain_halted: 40001,\n thorchain_trading_halted: 40002,\n thorchain_swapin_router_required: 40100,\n thorchain_swapin_vault_required: 40101,\n thorchain_swapin_memo_required: 40102,\n thorchain_swapin_token_required: 40103,\n /**\n * SwapKit API\n */\n api_v2_invalid_response: 50001,\n\n /**\n * Toolboxes\n */\n toolbox_cosmos_signer_not_defined: 90101,\n toolbox_cosmos_no_accounts_found: 90102,\n /**\n * Helpers\n */\n helpers_invalid_number_different_decimals: 99000,\n helpers_invalid_number_of_years: 99001,\n helpers_invalid_identifier: 99002,\n helpers_invalid_asset_url: 99003,\n helpers_invalid_asset_identifier: 99004,\n helpers_invalid_memo_type: 99005,\n helpers_failed_to_switch_network: 99103,\n helpers_not_found_provider: 99200,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorCodes;\n\nexport class SwapKitError extends Error {\n static ErrorCode = errorCodes;\n\n constructor(\n errorOrErrorKey: ErrorKeys | { errorKey: ErrorKeys; info?: Record<string, NotWorth> },\n sourceError?: NotWorth,\n ) {\n const isErrorString = typeof errorOrErrorKey === \"string\";\n\n const errorKey = isErrorString ? errorOrErrorKey : errorOrErrorKey.errorKey;\n\n if (sourceError) {\n console.error(sourceError, {\n stack: sourceError?.stack,\n message: sourceError?.message,\n });\n }\n\n super(errorKey, {\n cause: {\n code: SwapKitError.ErrorCode[errorKey],\n message: `${errorKey}${isErrorString ? \"\" : `: ${JSON.stringify(errorOrErrorKey.info)}`}`,\n },\n });\n\n Object.setPrototypeOf(this, SwapKitError.prototype);\n }\n}\n",
15
+ "const errorCodes = {\n /**\n * Core\n */\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_plugin_not_found: 10006,\n core_plugin_swap_not_found: 10007,\n core_approve_asset_target_invalid: 10008,\n core_explorer_unsupported_chain: 10009,\n core_chain_halted: 10099,\n\n core_wallet_connection_not_found: 10100,\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n core_wallet_talisman_not_installed: 10110,\n core_wallet_not_keypair_wallet: 10111,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_base_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_base_address: 10306,\n core_transaction_add_liquidity_base_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n /**\n * Wallets\n */\n wallet_connection_rejected_by_user: 20000,\n wallet_missing_api_key: 20001,\n wallet_chain_not_supported: 20002,\n wallet_missing_params: 20003,\n wallet_provider_not_found: 20004,\n wallet_failed_to_add_or_switch_network: 20005,\n wallet_ledger_connection_error: 20101,\n wallet_ledger_connection_claimed: 20102,\n wallet_ledger_get_address_error: 20103,\n wallet_ledger_device_not_found: 20104,\n wallet_ledger_device_locked: 20105,\n wallet_phantom_not_found: 20201,\n wallet_xdefi_not_found: 20301,\n wallet_xdefi_send_transaction_no_address: 20302,\n wallet_xdefi_contract_address_not_provided: 20303,\n wallet_xdefi_asset_not_defined: 20304,\n wallet_walletconnect_project_id_not_specified: 20401,\n wallet_walletconnect_connection_not_established: 20402,\n wallet_walletconnect_namespace_not_supported: 20403,\n wallet_trezor_failed_to_sign_transaction: 20501,\n wallet_trezor_derivation_path_not_supported: 20502,\n wallet_trezor_failed_to_get_address: 20503,\n wallet_talisman_not_enabled: 20601,\n wallet_talisman_not_found: 20602,\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_unknown_asset: 30002,\n chainflip_broker_invalid_params: 30100,\n chainflip_broker_recipient_error: 30101,\n chainflip_broker_register: 30102,\n chainflip_broker_tx_error: 30103,\n chainflip_broker_withdraw: 30104,\n chainflip_broker_fund_only_flip_supported: 30105,\n chainflip_broker_fund_invalid_address: 30106,\n /**\n * THORChain\n */\n thorchain_chain_halted: 40001,\n thorchain_trading_halted: 40002,\n thorchain_swapin_router_required: 40100,\n thorchain_swapin_vault_required: 40101,\n thorchain_swapin_memo_required: 40102,\n thorchain_swapin_token_required: 40103,\n /**\n * SwapKit API\n */\n api_v2_invalid_response: 50001,\n\n /**\n * Toolboxes\n */\n toolbox_cosmos_signer_not_defined: 90101,\n toolbox_cosmos_no_accounts_found: 90102,\n /**\n * Helpers\n */\n helpers_invalid_number_different_decimals: 99000,\n helpers_invalid_number_of_years: 99001,\n helpers_invalid_identifier: 99002,\n helpers_invalid_asset_url: 99003,\n helpers_invalid_asset_identifier: 99004,\n helpers_invalid_memo_type: 99005,\n helpers_failed_to_switch_network: 99103,\n helpers_not_found_provider: 99200,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorCodes;\n\nexport class SwapKitError extends Error {\n static ErrorCode = errorCodes;\n\n constructor(\n errorOrErrorKey: ErrorKeys | { errorKey: ErrorKeys; info?: Record<string, NotWorth> },\n sourceError?: NotWorth,\n ) {\n const isErrorString = typeof errorOrErrorKey === \"string\";\n\n const errorKey = isErrorString ? errorOrErrorKey : errorOrErrorKey.errorKey;\n\n if (sourceError) {\n console.error(sourceError, {\n stack: sourceError?.stack,\n message: sourceError?.message,\n });\n }\n\n super(errorKey, {\n cause: {\n code: SwapKitError.ErrorCode[errorKey],\n message: `${errorKey}${isErrorString ? \"\" : `: ${JSON.stringify(errorOrErrorKey.info)}`}`,\n },\n });\n\n Object.setPrototypeOf(this, SwapKitError.prototype);\n }\n}\n",
16
16
  "import { SwapKitError } from \"../modules/swapKitError\";\nimport { Chain } from \"../types/chains\";\n\n// Backward compatibility\nconst supportedChains = [...Object.values(Chain), \"TERRA\"];\n\nexport function validateIdentifier(identifier = \"\") {\n const uppercasedIdentifier = identifier.toUpperCase();\n\n const [chain] = uppercasedIdentifier.split(\".\") as [Chain, string];\n if (supportedChains.includes(chain)) return true;\n\n const [synthChain] = uppercasedIdentifier.split(\"/\") as [Chain, string];\n if (supportedChains.includes(synthChain)) return true;\n\n throw new SwapKitError({\n errorKey: \"helpers_invalid_identifier\",\n info: {\n message: `Invalid identifier: ${identifier}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,\n identifier,\n },\n });\n}\n\nexport function validateTNS(name: string) {\n if (name.length > 30) return false;\n\n const regex = /^[a-zA-Z0-9+_-]+$/g;\n\n return !!name.match(regex);\n}\n",
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
  "import {\n type CommonAssetString,\n CommonAssetStrings,\n getAssetType,\n getCommonAssetInfo,\n getDecimal,\n isGasAsset,\n} from \"../helpers/asset.ts\";\nimport { validateIdentifier } from \"../helpers/validators.ts\";\nimport { BaseDecimal, Chain, type ChainId, ChainToChainId } from \"../types/chains.ts\";\nimport type { TokenNames, TokenTax } from \"../types/tokens.ts\";\n\nimport type { NumberPrimitives } from \"./bigIntArithmetics.ts\";\nimport { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\nimport { SwapKitError } from \"./swapKitError.ts\";\nimport type { SwapKitValueType } from \"./swapKitNumber.ts\";\n\nconst staticTokensMap = new Map<\n TokenNames,\n { tax?: TokenTax; decimal: number; identifier: string }\n>();\n\ntype ConditionalAssetValueReturn<T extends { asyncTokenLookup?: boolean }> =\n T[\"asyncTokenLookup\"] extends true ? Promise<AssetValue> : AssetValue;\n\ntype AssetIdentifier =\n | { asset: CommonAssetString }\n | { asset: TokenNames }\n | { asset: string }\n | { chain: Chain };\n\ntype AssetValueFromParams = AssetIdentifier & {\n value?: NumberPrimitives | SwapKitValueType;\n fromBaseDecimal?: number;\n asyncTokenLookup?: boolean;\n};\n\nexport class AssetValue extends BigIntArithmetics {\n address?: string;\n chain: Chain;\n isGasAsset = false;\n isSynthetic = false;\n symbol: string;\n tax?: TokenTax;\n ticker: string;\n type: ReturnType<typeof getAssetType>;\n chainId: ChainId;\n\n constructor({\n value,\n decimal,\n tax,\n chain,\n symbol,\n identifier,\n }: { decimal: number; value: SwapKitValueType; tax?: TokenTax } & (\n | { chain: Chain; symbol: string; identifier?: never }\n | { identifier: string; chain?: never; symbol?: never }\n )) {\n super(typeof value === \"object\" ? value : { decimal, value });\n\n const assetInfo = getAssetInfo(identifier || `${chain}.${symbol}`);\n\n this.type = getAssetType(assetInfo);\n this.tax = tax;\n this.chain = assetInfo.chain;\n this.ticker = assetInfo.ticker;\n this.symbol = assetInfo.symbol;\n this.address = assetInfo.address;\n this.isSynthetic = assetInfo.isSynthetic;\n this.isGasAsset = assetInfo.isGasAsset;\n this.chainId = ChainToChainId[assetInfo.chain];\n }\n\n toString() {\n return this.isSynthetic ? this.symbol : `${this.chain}.${this.symbol}`;\n }\n\n toUrl() {\n return this.isSynthetic ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}` : this.toString();\n }\n\n eqAsset({ chain, symbol }: { chain: Chain; symbol: string }) {\n return this.chain === chain && this.symbol === symbol;\n }\n\n eq(assetValue: AssetValue) {\n return this.eqAsset(assetValue) && this.eqValue(assetValue);\n }\n\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(urlAsset: string, value: NumberPrimitives = 0) {\n const [chain, ticker, symbol] = urlAsset.split(\".\");\n if (!(chain && ticker)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_url\",\n info: { urlAsset },\n });\n }\n\n const asset = chain === Chain.THORChain && symbol ? `${chain}.${ticker}/${symbol}` : urlAsset;\n\n return AssetValue.from({ asset, value });\n }\n\n static from<T extends {}>({\n value = 0,\n fromBaseDecimal,\n asyncTokenLookup,\n ...fromAssetOrChain\n }: T & AssetValueFromParams): ConditionalAssetValueReturn<T> {\n const parsedValue = value instanceof BigIntArithmetics ? value.getValue(\"string\") : value;\n\n const isFromChain = \"chain\" in fromAssetOrChain;\n\n const assetOrChain = isFromChain ? fromAssetOrChain.chain : fromAssetOrChain.asset;\n\n const isFromCommonAssetOrChain =\n isFromChain ||\n CommonAssetStrings.includes(assetOrChain as (typeof CommonAssetStrings)[number]);\n\n const { identifier: unsafeIdentifier, decimal: commonAssetDecimal } = isFromCommonAssetOrChain\n ? getCommonAssetInfo(assetOrChain as CommonAssetString)\n : { identifier: assetOrChain, decimal: undefined };\n\n const { chain, isSynthetic } = getAssetInfo(unsafeIdentifier);\n\n const { tax, decimal, identifier } = staticTokensMap.get(\n unsafeIdentifier.toUpperCase() as TokenNames,\n ) || {\n decimal: commonAssetDecimal || BaseDecimal[chain],\n identifier: unsafeIdentifier,\n };\n\n const adjustedValue = fromBaseDecimal\n ? safeValue(BigInt(parsedValue), fromBaseDecimal)\n : safeValue(parsedValue, decimal);\n\n const assetValue = asyncTokenLookup\n ? createAssetValue(identifier, fromBaseDecimal ? adjustedValue : parsedValue)\n : isSynthetic\n ? createSyntheticAssetValue(identifier, parsedValue)\n : new AssetValue({ tax, decimal, identifier, value: adjustedValue });\n\n return assetValue as ConditionalAssetValueReturn<T>;\n }\n\n static loadStaticAssets() {\n return new Promise<{ ok: true } | { ok: false; message: string; error: Todo }>(\n (resolve, reject) => {\n try {\n import(\"@swapkit/tokens\").then((tokenPackages) => {\n for (const tokenList of Object.values(tokenPackages)) {\n for (const { identifier, chain, ...rest } of tokenList.tokens) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, {\n identifier,\n decimal: \"decimals\" in rest ? rest.decimals : BaseDecimal[chain as Chain],\n });\n }\n }\n\n resolve({ ok: true });\n });\n } catch (error) {\n console.error(error);\n reject({\n ok: false,\n error,\n message:\n \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\",\n });\n }\n },\n );\n }\n\n /**\n * @deprecated use AssetValue.from({ asset, value, asyncTokenLookup: true })\n */\n static fromString(asset: string, value: NumberPrimitives = 0) {\n return AssetValue.from({ asset, value, asyncTokenLookup: true });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value, asyncTokenLookup: true })\n */\n static fromIdentifier(\n asset: `${Chain}.${string}` | `${Chain}/${string}` | TokenNames,\n value: NumberPrimitives = 0,\n ) {\n return AssetValue.from({ asset: asset as TokenNames, value, asyncTokenLookup: true });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value })\n */\n static fromStringSync(asset: string, value: NumberPrimitives = 0) {\n return AssetValue.from({ asset, value });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value, fromBaseDecimal, asyncTokenLookup: true })\n */\n static fromStringWithBase(\n asset: string,\n value: string | bigint = 0n,\n fromBaseDecimal: number = BaseDecimal.THOR,\n ) {\n return AssetValue.from({ asyncTokenLookup: true, asset, value, fromBaseDecimal });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value, fromBaseDecimal, asyncTokenLookup: true })\n */\n static fromStringWithBaseSync(\n asset: string,\n value: string | bigint = 0n,\n fromBaseDecimal: number = BaseDecimal.THOR,\n ) {\n return AssetValue.from({ asset, value, fromBaseDecimal });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value })\n */\n static fromIdentifierSync(asset: TokenNames, value: NumberPrimitives = 0) {\n return AssetValue.from({ asset, value });\n }\n /**\n * @deprecated use AssetValue.from({ asset, value }) or AssetValue.from({ chain, value })\n */\n static fromChainOrSignature(assetOrChain: CommonAssetString, value: NumberPrimitives = 0) {\n if (Object.values(Chain).includes(assetOrChain as Chain)) {\n return AssetValue.from({ chain: assetOrChain as Chain, value });\n }\n return AssetValue.from({ asset: assetOrChain, value });\n }\n}\n\nexport function getMinAmountByChain(chain: Chain) {\n const asset = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Litecoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n return asset.set(0.00010001);\n\n case Chain.Dogecoin:\n return asset.set(1.00000001);\n\n case Chain.Avalanche:\n case Chain.Ethereum:\n case Chain.Arbitrum:\n case Chain.BinanceSmartChain:\n return asset.set(0.00000001);\n\n case Chain.THORChain:\n case Chain.Maya:\n return asset.set(0);\n\n case Chain.Cosmos:\n case Chain.Kujira:\n return asset.set(0.000001);\n\n default:\n return asset.set(0.00000001);\n }\n}\n\nasync function createAssetValue(identifier: string, value: NumberPrimitives = 0) {\n validateIdentifier(identifier);\n\n const staticToken = staticTokensMap.get(identifier.toUpperCase() as TokenNames);\n const decimal = staticToken?.decimal || (await getDecimal(getAssetInfo(identifier)));\n if (!staticToken) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, { identifier, decimal });\n }\n\n return new AssetValue({ decimal, value: safeValue(value, decimal), identifier });\n}\n\nfunction createSyntheticAssetValue(identifier: string, value: NumberPrimitives = 0) {\n const [synthChain, symbol] =\n identifier.split(\".\")?.[0]?.toUpperCase() === Chain.THORChain\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (!(synthChain && symbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n return new AssetValue({\n decimal: 8,\n value: safeValue(value, 8),\n identifier: `${Chain.THORChain}.${synthChain}/${symbol}`,\n });\n}\n\nfunction safeValue(value: NumberPrimitives, decimal: number) {\n return typeof value === \"bigint\"\n ? formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal })\n : value;\n}\n\n// TODO refactor & split into smaller functions\nfunction getAssetInfo(identifier: string) {\n const isSynthetic = identifier.slice(0, 14).includes(\"/\");\n\n const isThorchain = identifier.split(\".\")?.[0]?.toUpperCase() === Chain.THORChain;\n const isMaya = identifier.split(\".\")?.[0]?.toUpperCase() === Chain.Maya;\n\n const [synthChain, synthSymbol = \"\"] =\n isThorchain || isMaya\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (isSynthetic && !(synthChain && synthSymbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n const adjustedIdentifier =\n identifier.includes(\".\") && !isSynthetic\n ? identifier\n : `${isMaya ? Chain.Maya : Chain.THORChain}.${synthSymbol}`;\n\n const [chain, ...rest] = adjustedIdentifier.split(\".\") as [Chain, string];\n\n const symbol = isSynthetic ? synthSymbol : rest.join(\".\");\n const splitSymbol = symbol.split(\"-\");\n const ticker = (\n splitSymbol.length === 1 ? splitSymbol[0] : splitSymbol.slice(0, -1).join(\"-\")\n ) as string;\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return {\n address: address?.toLowerCase(),\n chain,\n isGasAsset: isGasAsset({ chain, symbol }),\n isSynthetic,\n ticker,\n symbol:\n (isSynthetic ? `${synthChain}/` : \"\") +\n (address ? `${ticker}-${address?.toLowerCase() ?? \"\"}` : symbol),\n };\n}\n",
@@ -20,12 +20,12 @@
20
20
  "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 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: BaseDecimal[assetString] };\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: { chain: EVMChain; contract: string } | { 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",
21
21
  "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 ...path.slice(0, path.length - 1),\n 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];\n if (type === \"ledgerLive\") return [44, 60, index, 0, addressIndex];\n return updatedLastIndex(NetworkDerivationPath[chain], index);\n }\n\n if ([Chain.Bitcoin, Chain.Litecoin].includes(chain)) {\n const chainId = chain === Chain.Bitcoin ? 0 : 2;\n\n if (type === \"nativeSegwitMiddleAccount\") return [84, chainId, index, 0, addressIndex];\n if (type === \"segwit\") return [49, chainId, 0, 0, index];\n if (type === \"legacy\") return [44, chainId, 0, 0, index];\n return updatedLastIndex(NetworkDerivationPath[chain], index);\n }\n\n return updatedLastIndex(NetworkDerivationPath[chain], index);\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",
22
22
  "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",
23
- "import { SwapKitError } from \"../modules/swapKitError\";\nimport { Chain } from \"../types/chains\";\nimport { MemoType } from \"../types/sdk\";\n\ntype WithChain<T extends {}> = T & { chain: Chain };\n\ntype WithAffiliate<T extends {}> = T & { affiliateAddress?: string; affiliateBasisPoints?: number };\n\nfunction addAffiliate(memo: string, { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}>) {\n const affiliatePart = affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : \"\";\n\n return `${memo}${affiliatePart}`;\n}\n\nfunction getPoolIdentifier({ chain, symbol }: { chain: Chain; symbol: string }) {\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\nexport function getMemoForLeaveAndBond({\n type,\n address,\n}: { type: MemoType.BOND | MemoType.LEAVE; address: string }) {\n return `${type}:${address}`;\n}\n\nexport function getMemoForUnbond({\n address,\n unbondAmount,\n}: { address: string; unbondAmount: number }) {\n return `${MemoType.UNBOND}:${address}:${unbondAmount}`;\n}\n\nexport function getMemoForNameRegister({\n name,\n chain,\n address,\n owner,\n}: { name: string; chain: string; address: string; owner?: string }) {\n const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;\n const ownerAssignmentOrChangePart = owner ? `:${owner}` : \"\";\n\n return `${baseMemo}${ownerAssignmentOrChangePart}`;\n}\n\nexport function getMemoForLoan(\n memoType: MemoType.OPEN_LOAN | MemoType.CLOSE_LOAN,\n {\n asset,\n address,\n minAmount,\n ...affiliate\n }: WithAffiliate<{\n address: string;\n asset: string;\n minAmount?: string;\n }>,\n) {\n const baseMemo = `${memoType}:${asset}:${address}`;\n const minAmountPart = minAmount ? `:${minAmount}` : \"\";\n\n return addAffiliate(`${baseMemo}${minAmountPart}`, 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}: { chain: Chain; symbol: string; address?: string }) {\n const poolIdentifier = getPoolIdentifier({ chain, symbol });\n const addressPart = address ? `:${address}` : \"\";\n\n return `${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`;\n}\n\nexport function getMemoForSaverWithdraw({\n chain,\n symbol,\n basisPoints,\n ...affiliate\n}: WithAffiliate<{ chain: Chain; symbol: string; basisPoints: number }>) {\n return addAffiliate(`${MemoType.WITHDRAW}:${chain}/${symbol}:${basisPoints}`, affiliate);\n}\n\nexport function getMemoForWithdraw({\n chain,\n symbol,\n ticker,\n basisPoints,\n targetAsset,\n ...affiliate\n}: WithAffiliate<{\n chain: Chain;\n symbol: string;\n ticker: string;\n basisPoints: number;\n targetAsset?: string;\n}>) {\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const targetPart = targetAsset ? `:${targetAsset}` : \"\";\n\n return addAffiliate(\n `${MemoType.WITHDRAW}:${chain}.${shortenedSymbol}:${basisPoints}${targetPart}`,\n affiliate,\n );\n}\n\n/**\n * @deprecated - Use separate functions per each memo type like getMemoForDeposit, getMemoForWithdraw, etc.\n */\nexport type MemoOptions<T extends MemoType> = {\n [MemoType.BOND]: { address: string };\n [MemoType.LEAVE]: { address: string };\n [MemoType.CLOSE_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.OPEN_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.UNBOND]: { address: string; unbondAmount: number };\n [MemoType.DEPOSIT]: WithChain<{ symbol: string; address?: string; singleSide?: boolean }>;\n [MemoType.WITHDRAW]: WithChain<{\n ticker: string;\n symbol: string;\n basisPoints: number;\n targetAssetString?: string;\n singleSide?: boolean;\n }>;\n [MemoType.NAME_REGISTER]: { name: string; chain: string; address: string };\n}[T];\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: MemoOptions<T>) => {\n switch (memoType) {\n case MemoType.LEAVE:\n case MemoType.BOND: {\n const { address } = options as MemoOptions<MemoType.BOND>;\n return getMemoForLeaveAndBond({ type: memoType, address });\n }\n\n case MemoType.UNBOND: {\n const { address, unbondAmount } = options as MemoOptions<MemoType.UNBOND>;\n return getMemoForUnbond({ address, unbondAmount });\n }\n\n case MemoType.NAME_REGISTER: {\n return getMemoForNameRegister(options as MemoOptions<MemoType.NAME_REGISTER>);\n }\n\n case MemoType.OPEN_LOAN:\n case MemoType.CLOSE_LOAN: {\n return getMemoForLoan(memoType, options as MemoOptions<MemoType.OPEN_LOAN>);\n }\n\n case MemoType.DEPOSIT: {\n const { chain, symbol, address, singleSide } = options as MemoOptions<MemoType.DEPOSIT>;\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 as MemoOptions<MemoType.WITHDRAW>;\n\n if (singleSide) {\n return getMemoForSaverWithdraw({ chain, symbol, basisPoints });\n }\n\n return getMemoForWithdraw({ chain, ticker, symbol, basisPoints, targetAsset });\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"helpers_invalid_memo_type\",\n info: { memoType },\n });\n }\n};\n",
23
+ "import { SwapKitError } from \"../modules/swapKitError\";\nimport { Chain } from \"../types/chains\";\nimport { MemoType } from \"../types/sdk\";\n\ntype WithChain<T extends {}> = T & { chain: Chain };\n\ntype WithAffiliate<T extends {}> = T & {\n affiliateAddress?: string;\n affiliateBasisPoints?: number;\n};\n\nfunction addAffiliate(memo: string, { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}>) {\n const affiliatePart = affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : \"\";\n\n return `${memo}${affiliatePart}`;\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\nexport function getMemoForLeaveAndBond({\n type,\n address,\n}: {\n type: MemoType.BOND | MemoType.LEAVE;\n address: string;\n}) {\n return `${type}:${address}`;\n}\n\nexport function getMemoForUnbond({\n address,\n unbondAmount,\n}: {\n address: string;\n unbondAmount: number;\n}) {\n return `${MemoType.UNBOND}:${address}:${unbondAmount}`;\n}\n\nexport function getMemoForNameRegister({\n name,\n chain,\n address,\n owner,\n}: {\n name: string;\n chain: string;\n address: string;\n owner?: string;\n}) {\n const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;\n const ownerAssignmentOrChangePart = owner ? `:${owner}` : \"\";\n\n return `${baseMemo}${ownerAssignmentOrChangePart}`;\n}\n\nexport function getMemoForLoan(\n memoType: MemoType.OPEN_LOAN | MemoType.CLOSE_LOAN,\n {\n asset,\n address,\n minAmount,\n ...affiliate\n }: WithAffiliate<{\n address: string;\n asset: string;\n minAmount?: string;\n }>,\n) {\n const baseMemo = `${memoType}:${asset}:${address}`;\n const minAmountPart = minAmount ? `:${minAmount}` : \"\";\n\n return addAffiliate(`${baseMemo}${minAmountPart}`, 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\nexport function getMemoForSaverWithdraw({\n chain,\n symbol,\n basisPoints,\n ...affiliate\n}: WithAffiliate<{ chain: Chain; symbol: string; basisPoints: number }>) {\n return addAffiliate(`${MemoType.WITHDRAW}:${chain}/${symbol}:${basisPoints}`, affiliate);\n}\n\nexport function getMemoForWithdraw({\n chain,\n symbol,\n ticker,\n basisPoints,\n targetAsset,\n ...affiliate\n}: WithAffiliate<{\n chain: Chain;\n symbol: string;\n ticker: string;\n basisPoints: number;\n targetAsset?: string;\n}>) {\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const targetPart = targetAsset ? `:${targetAsset}` : \"\";\n\n return addAffiliate(\n `${MemoType.WITHDRAW}:${chain}.${shortenedSymbol}:${basisPoints}${targetPart}`,\n affiliate,\n );\n}\n\n/**\n * @deprecated - Use separate functions per each memo type like getMemoForDeposit, getMemoForWithdraw, etc.\n */\nexport type MemoOptions<T extends MemoType> = {\n [MemoType.BOND]: { address: string };\n [MemoType.LEAVE]: { address: string };\n [MemoType.CLOSE_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.OPEN_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.UNBOND]: { address: string; unbondAmount: number };\n [MemoType.DEPOSIT]: WithChain<{\n symbol: string;\n address?: string;\n singleSide?: boolean;\n }>;\n [MemoType.WITHDRAW]: WithChain<{\n ticker: string;\n symbol: string;\n basisPoints: number;\n targetAssetString?: string;\n singleSide?: boolean;\n }>;\n [MemoType.NAME_REGISTER]: { name: string; chain: string; address: string };\n}[T];\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: MemoOptions<T>) => {\n switch (memoType) {\n case MemoType.LEAVE:\n case MemoType.BOND: {\n const { address } = options as MemoOptions<MemoType.BOND>;\n return getMemoForLeaveAndBond({ type: memoType, address });\n }\n\n case MemoType.UNBOND: {\n const { address, unbondAmount } = options as MemoOptions<MemoType.UNBOND>;\n return getMemoForUnbond({ address, unbondAmount });\n }\n\n case MemoType.NAME_REGISTER: {\n return getMemoForNameRegister(options as MemoOptions<MemoType.NAME_REGISTER>);\n }\n\n case MemoType.OPEN_LOAN:\n case MemoType.CLOSE_LOAN: {\n return getMemoForLoan(memoType, options as MemoOptions<MemoType.OPEN_LOAN>);\n }\n\n case MemoType.DEPOSIT: {\n const { chain, symbol, address, singleSide } = options as MemoOptions<MemoType.DEPOSIT>;\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 as MemoOptions<MemoType.WITHDRAW>;\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",
24
24
  "import { type ErrorKeys, SwapKitError } from \"../modules/swapKitError\";\nimport { Chain } from \"../types\";\nimport type { DerivationPathArray } from \"../types/derivationPath\";\n\n// 10 rune for register, 1 rune per year\n// MINIMUM_REGISTRATION_FEE = 11\nexport function getTHORNameCost(numberOfYears: number) {\n if (numberOfYears < 0)\n throw new SwapKitError({\n errorKey: \"helpers_invalid_number_of_years\",\n info: { numberOfYears },\n });\n return 10 + numberOfYears;\n}\n\n// 10 CACAO for register\n// 1.0512 CACAO per year\nexport function getMAYANameCost(numberOfYears: number) {\n if (numberOfYears < 0)\n throw new SwapKitError({\n errorKey: \"helpers_invalid_number_of_years\",\n info: { numberOfYears },\n });\n // round to max 10 decimals\n return Math.round((10 + numberOfYears * 1.0512) * 1e10) / 1e10;\n}\n\nexport function derivationPathToString([network, chainId, account, change, index]:\n | [number, number, number, number, number | undefined]\n | DerivationPathArray) {\n const shortPath = typeof index !== \"number\";\n\n return `m/${network}'/${chainId}'/${account}'/${change}${shortPath ? \"\" : `/${index}`}`;\n}\n\nexport function wrapWithThrow<T>(fn: () => T, errorKey?: ErrorKeys) {\n try {\n return fn();\n } catch (error) {\n if (errorKey) {\n throw new SwapKitError(errorKey, error);\n }\n\n return console.error(error);\n }\n}\n\nexport const getChainIdentifier = (chain: Chain) => {\n switch (chain) {\n case Chain.THORChain:\n return `${chain}.RUNE`;\n\n case Chain.Cosmos:\n return `${chain}.ATOM`;\n\n case Chain.BinanceSmartChain:\n return `${chain}`;\n\n default:\n return `${chain}.${chain}`;\n }\n};\n",
25
25
  "import type { BrowserProvider } from \"ethers\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport {\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\n// declare global {\n// interface Window {\n// ethereum: EthereumWindowProvider;\n// trustwallet: EthereumWindowProvider;\n// coinbaseWalletExtension: EthereumWindowProvider;\n// braveSolana: Todo;\n// }\n// }\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 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",
26
26
  "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"
27
27
  ],
28
- "mappings": "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",
29
- "debugId": "B80448EF1E8A198364756E2164756E21",
28
+ "mappings": "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",
29
+ "debugId": "4E3B1F8DE1ABBBBD64756E2164756E21",
30
30
  "names": []
31
31
  }
package/package.json CHANGED
@@ -29,5 +29,5 @@
29
29
  },
30
30
  "type": "module",
31
31
  "types": "./src/index.ts",
32
- "version": "1.0.2"
32
+ "version": "1.0.4"
33
33
  }
@@ -4,7 +4,10 @@ import { MemoType } from "../types/sdk";
4
4
 
5
5
  type WithChain<T extends {}> = T & { chain: Chain };
6
6
 
7
- type WithAffiliate<T extends {}> = T & { affiliateAddress?: string; affiliateBasisPoints?: number };
7
+ type WithAffiliate<T extends {}> = T & {
8
+ affiliateAddress?: string;
9
+ affiliateBasisPoints?: number;
10
+ };
8
11
 
9
12
  function addAffiliate(memo: string, { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}>) {
10
13
  const affiliatePart = affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : "";
@@ -12,7 +15,13 @@ function addAffiliate(memo: string, { affiliateAddress, affiliateBasisPoints }:
12
15
  return `${memo}${affiliatePart}`;
13
16
  }
14
17
 
15
- function getPoolIdentifier({ chain, symbol }: { chain: Chain; symbol: string }) {
18
+ function getPoolIdentifier({
19
+ chain,
20
+ symbol,
21
+ }: {
22
+ chain: Chain;
23
+ symbol: string;
24
+ }) {
16
25
  switch (chain) {
17
26
  case Chain.Bitcoin:
18
27
  case Chain.Dogecoin:
@@ -29,14 +38,20 @@ function getPoolIdentifier({ chain, symbol }: { chain: Chain; symbol: string })
29
38
  export function getMemoForLeaveAndBond({
30
39
  type,
31
40
  address,
32
- }: { type: MemoType.BOND | MemoType.LEAVE; address: string }) {
41
+ }: {
42
+ type: MemoType.BOND | MemoType.LEAVE;
43
+ address: string;
44
+ }) {
33
45
  return `${type}:${address}`;
34
46
  }
35
47
 
36
48
  export function getMemoForUnbond({
37
49
  address,
38
50
  unbondAmount,
39
- }: { address: string; unbondAmount: number }) {
51
+ }: {
52
+ address: string;
53
+ unbondAmount: number;
54
+ }) {
40
55
  return `${MemoType.UNBOND}:${address}:${unbondAmount}`;
41
56
  }
42
57
 
@@ -45,7 +60,12 @@ export function getMemoForNameRegister({
45
60
  chain,
46
61
  address,
47
62
  owner,
48
- }: { name: string; chain: string; address: string; owner?: string }) {
63
+ }: {
64
+ name: string;
65
+ chain: string;
66
+ address: string;
67
+ owner?: string;
68
+ }) {
49
69
  const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;
50
70
  const ownerAssignmentOrChangePart = owner ? `:${owner}` : "";
51
71
 
@@ -83,11 +103,16 @@ export function getMemoForDeposit({
83
103
  chain,
84
104
  symbol,
85
105
  address,
86
- }: { chain: Chain; symbol: string; address?: string }) {
106
+ ...affiliate
107
+ }: WithAffiliate<{
108
+ chain: Chain;
109
+ symbol: string;
110
+ address?: string;
111
+ }>) {
87
112
  const poolIdentifier = getPoolIdentifier({ chain, symbol });
88
113
  const addressPart = address ? `:${address}` : "";
89
114
 
90
- return `${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`;
115
+ return addAffiliate(`${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`, affiliate);
91
116
  }
92
117
 
93
118
  export function getMemoForSaverWithdraw({
@@ -132,7 +157,11 @@ export type MemoOptions<T extends MemoType> = {
132
157
  [MemoType.CLOSE_LOAN]: { address: string; asset: string; minAmount?: string };
133
158
  [MemoType.OPEN_LOAN]: { address: string; asset: string; minAmount?: string };
134
159
  [MemoType.UNBOND]: { address: string; unbondAmount: number };
135
- [MemoType.DEPOSIT]: WithChain<{ symbol: string; address?: string; singleSide?: boolean }>;
160
+ [MemoType.DEPOSIT]: WithChain<{
161
+ symbol: string;
162
+ address?: string;
163
+ singleSide?: boolean;
164
+ }>;
136
165
  [MemoType.WITHDRAW]: WithChain<{
137
166
  ticker: string;
138
167
  symbol: string;
@@ -192,7 +221,13 @@ export const getMemoFor = <T extends MemoType>(memoType: T, options: MemoOptions
192
221
  return getMemoForSaverWithdraw({ chain, symbol, basisPoints });
193
222
  }
194
223
 
195
- return getMemoForWithdraw({ chain, ticker, symbol, basisPoints, targetAsset });
224
+ return getMemoForWithdraw({
225
+ chain,
226
+ ticker,
227
+ symbol,
228
+ basisPoints,
229
+ targetAsset,
230
+ });
196
231
  }
197
232
 
198
233
  default:
@@ -22,6 +22,8 @@ const errorCodes = {
22
22
  core_wallet_keplr_not_installed: 10107,
23
23
  core_wallet_okx_not_installed: 10108,
24
24
  core_wallet_keepkey_not_installed: 10109,
25
+ core_wallet_talisman_not_installed: 10110,
26
+ core_wallet_not_keypair_wallet: 10111,
25
27
  /**
26
28
  * Core - Swap
27
29
  */