@swapkit/core 3.1.1 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var L$=Object.create;var{getPrototypeOf:_$,defineProperty:W,getOwnPropertyNames:B$}=Object;var j$=Object.prototype.hasOwnProperty;var D=(B,j,I)=>{I=B!=null?L$(_$(B)):{};let T=j||!B||!B.__esModule?W(I,"default",{value:B,enumerable:!0}):I;for(let P of B$(B))if(!j$.call(T,P))W(T,P,{get:()=>B[P],enumerable:!0});return T};var H=((B)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(B,{get:(j,I)=>(typeof require!=="undefined"?require:j)[I]}):B)(function(B){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+B+'" is not supported')});export*from"@swapkit/api";export*from"@swapkit/helpers";import{SwapKitApi as M}from"@swapkit/api";import{ApproveMode as N,AssetValue as S,Chain as J,EVMChains as x$,ProviderName as d,SwapKitError as U}from"@swapkit/helpers";import{Chain as q,ChainToExplorerUrl as y,SwapKitError as q$}from"@swapkit/helpers";function V({chain:B,txHash:j}){let I=y[B];switch(B){case q.Maya:case q.Kujira:case q.Cosmos:case q.THORChain:case q.Solana:return`${I}/tx/${j.startsWith("0x")?j.slice(2):j}`;case q.Arbitrum:case q.Avalanche:case q.BinanceSmartChain:case q.Base:case q.Ethereum:case q.Optimism:case q.Polkadot:case q.Polygon:return`${I}/tx/${j.startsWith("0x")?j:`0x${j}`}`;case q.Litecoin:case q.Bitcoin:case q.BitcoinCash:case q.Dogecoin:case q.Radix:return`${I}/transaction/${j.toLowerCase()}`;default:throw new q$({errorKey:"core_explorer_unsupported_chain",info:{chain:B}})}}function K({chain:B,address:j}){let I=y[B];switch(B){case q.Solana:case q.Radix:return`${I}/account/${j}`;default:return`${I}/address/${j}`}}function Y$({apis:B={},config:j={},plugins:I,rpcUrls:T={},wallets:P={}}={}){let C=j.stagenet,O=j.swapkitConfig?.isDev,X={},Z=Object.entries(I||{}).reduce(($,[R,{plugin:L,config:_}])=>{let z=L({getWallet:Q,stagenet:C,config:_??j});return $[R]=z,$},{}),o=Object.entries(P).reduce(($,[R,L])=>{let _=L({addChain:w,config:j,apis:B,rpcUrls:T});return $[R]=_,$},{});function u($){let R=Z[$]||Object.values(Z)[0];if(!R)throw new U("core_plugin_not_found");return R}function h($){let R=Object.values(Z).find((L)=>L.supportedSwapkitProviders?.includes($));if(!R)throw new U("core_plugin_not_found");return R}function w($){let R=Q($.chain);X[$.chain]={...R,...$}}function m({assetValue:$,type:R="checkOnly",contractAddress:L}){let _=Z[L];if(_){if(R===N.CheckOnly&&"isAssetValueApproved"in _)return _.isAssetValueApproved({assetValue:$});if(R===N.Approve&&"approveAssetValue"in _)return _.approveAssetValue({assetValue:$});throw new U({errorKey:"core_approve_asset_target_invalid",info:{message:`Target ${String(L)} cannot be used for approve operation`}})}let z=$.chain,E=x$.includes(z);if(E&&$.isGasAsset||!E||$.isSynthetic)return Promise.resolve(R==="checkOnly"?!0:"approved");let Y=Q(z),b=R==="checkOnly"?Y.isApproved:Y.approve;if(!b)throw new U("core_wallet_connection_not_found");if(!($.address&&Y.address&&typeof L==="string"))throw new U("core_approve_asset_address_or_from_not_found");return b({amount:$.getBaseValue("bigint"),assetAddress:$.address,from:Y.address,spenderAddress:L})}function Q($){return X[$]}function c(){return{...X}}function g($){return Q($)?.address||""}function r($,R){return m({assetValue:$,contractAddress:R,type:N.Approve})}function n($,R){return m({assetValue:$,contractAddress:R,type:N.CheckOnly})}function f($){Q($)?.disconnect?.(),delete X[$]}function s(){for(let $ of Object.keys(X))f($)}function p($,R){return R?A($).then(({balance:L})=>L):Q($)?.balance||[]}function i($){throw new U("not_implemented",{message:"validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'"})}async function A($,R=!0){let L=[S.from({chain:$})],_=Q($);if(!_)throw new U("core_wallet_connection_not_found");if("getBalance"in _){let z=await _.getBalance(_.address,R);_.balance=z?.length?z:L}return _}function t({route:$,pluginName:R,...L}){let _=R&&u(R)||h($.providers[0]);if(!_)throw new U("core_swap_route_not_complete");if("swap"in _)return _.swap({...L,route:$});throw new U("core_plugin_swap_not_found")}function l({assetValue:$,...R}){let L=$.chain,_=Q(L);if(!_)throw new U("core_wallet_connection_not_found");return _.transfer({...R,assetValue:$})}function a({chain:$,message:R}){let L=Q($);if(!L)throw new U("core_wallet_connection_not_found");if("signMessage"in L)return L.signMessage?.(R);throw new U({errorKey:"core_wallet_sign_message_not_supported",info:{chain:$,wallet:L.walletType}})}async function e({address:$,chain:R,message:L,signature:_}){switch(R){case J.THORChain:{let{getToolboxByChain:z}=await import("@swapkit/toolbox-cosmos");return z(R)().verifySignature({signature:_,message:L,address:$})}default:throw new U({errorKey:"core_verify_message_not_supported",info:{chain:R}})}}async function $$({type:$,feeOptionKey:R,params:L}){let{assetValue:_}=L,{chain:z}=_;if(!Q(z))throw new U("core_wallet_connection_not_found");let E=S.from({chain:z});switch(z){case J.Arbitrum:case J.Avalanche:case J.Ethereum:case J.BinanceSmartChain:case J.Polygon:{let G=Q(z);if($==="transfer"){let Y=await G.createTransferTx(L);return G.estimateTransactionFee(Y,R)}if($==="approve"&&!_.isGasAsset)return G.estimateTransactionFee(await G.createApprovalTx({assetAddress:_.address,spenderAddress:L.contractAddress,amount:_.getBaseValue("bigint"),from:G.address}),R);if($==="swap"){if(L.route.providers[0]===d.CHAINFLIP){let R$=await G.createTransferTx({from:G.address,recipient:G.address,assetValue:_});return G.estimateTransactionFee(R$,R)}let{tx:b}=L.route;if(!b)return;return G.estimateTransactionFee({...b,value:BigInt(b.value)},R)}return S.from({chain:z})}case J.Bitcoin:case J.BitcoinCash:case J.Dogecoin:case J.Dash:case J.Litecoin:{let{estimateTransactionFee:G,address:Y}=Q(z);return G({...L,feeOptionKey:R,from:Y,recipient:Y})}case J.THORChain:case J.Maya:case J.Kujira:case J.Cosmos:{let{estimateTransactionFee:G}=await import("@swapkit/toolbox-cosmos");return G(L)}case J.Polkadot:{let{address:G,estimateTransactionFee:Y}=Q(z);return Y({...L,recipient:G})}default:return E}}let v=j.swapkitConfig||{},F=v?.swapkitApiKey||j?.swapkitApiKey,k=v.useHashedApiKey?v.referer:void 0;return{...Z,...o,disconnectAll:s,disconnectChain:f,estimateTransactionFee:$$,getAddress:g,getAllWallets:c,getBalance:p,getExplorerAddressUrl:K,getExplorerTxUrl:V,getWallet:Q,getWalletWithBalance:A,approveAssetValue:r,isAssetValueApproved:n,signMessage:a,swap:t,transfer:l,validateAddress:i,verifyMessage:e,api:F?{getGasRate:()=>M.getGasRate(O,F,k),getPrice:($)=>M.getPrice($,O,F,k),getSwapQuote:($)=>M.getSwapQuote($,O,F,k),getTokenList:($)=>M.getTokenList($),getTokenListProviders:()=>M.getTokenListProvidersV2(O,F,k),getTokenTradingPairs:($)=>M.getTokenTradingPairs($,O,F,k),getTrackerDetails:($)=>M.getTrackerDetails($,F,k)}:{undefined:void 0}}}import{Chain as x}from"@swapkit/helpers";async function H$(){let{cosmosValidateAddress:B}=await import("@swapkit/toolbox-cosmos"),{evmValidateAddress:j}=await import("@swapkit/toolbox-evm"),{substrateValidateAddress:I}=await import("@swapkit/toolbox-substrate"),{utxoValidateAddress:T}=await import("@swapkit/toolbox-utxo"),{validateAddress:P}=await import("@swapkit/toolbox-solana"),{validateAddress:C}=await import("@swapkit/toolbox-radix");return function O({address:X,chain:Z}){switch(Z){case x.Arbitrum:case x.Avalanche:case x.Optimism:case x.BinanceSmartChain:case x.Polygon:case x.Ethereum:return j({address:X});case x.Litecoin:case x.Dash:case x.Dogecoin:case x.BitcoinCash:case x.Bitcoin:return T({address:X,chain:Z});case x.Cosmos:case x.Kujira:case x.Maya:case x.THORChain:return B({address:X,chain:Z});case x.Polkadot:return I({address:X,chain:Z});case x.Radix:return C(X);case x.Solana:return P(X);default:return!1}}}export{H$ as getAddressValidator,Y$ as SwapKit};
1
+ var L$=Object.create;var{getPrototypeOf:_$,defineProperty:y,getOwnPropertyNames:B$}=Object;var j$=Object.prototype.hasOwnProperty;var D=(B,j,J)=>{J=B!=null?L$(_$(B)):{};let T=j||!B||!B.__esModule?y(J,"default",{value:B,enumerable:!0}):J;for(let P of B$(B))if(!j$.call(T,P))y(T,P,{get:()=>B[P],enumerable:!0});return T};var H=((B)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(B,{get:(j,J)=>(typeof require!=="undefined"?require:j)[J]}):B)(function(B){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+B+'" is not supported')});export*from"@swapkit/api";export*from"@swapkit/helpers";import{SwapKitApi as M}from"@swapkit/api";import{ApproveMode as N,AssetValue as S,Chain as x,EVMChains as x$,ProviderName as d,SwapKitError as U}from"@swapkit/helpers";import{Chain as q,ChainToExplorerUrl as V,SwapKitError as q$}from"@swapkit/helpers";function W({chain:B,txHash:j}){let J=V[B];switch(B){case q.Maya:case q.Kujira:case q.Cosmos:case q.THORChain:case q.Solana:return`${J}/tx/${j.startsWith("0x")?j.slice(2):j}`;case q.Arbitrum:case q.Avalanche:case q.BinanceSmartChain:case q.Base:case q.Ethereum:case q.Optimism:case q.Polkadot:case q.Polygon:return`${J}/tx/${j.startsWith("0x")?j:`0x${j}`}`;case q.Litecoin:case q.Bitcoin:case q.BitcoinCash:case q.Dogecoin:case q.Radix:return`${J}/transaction/${j.toLowerCase()}`;default:throw new q$({errorKey:"core_explorer_unsupported_chain",info:{chain:B}})}}function K({chain:B,address:j}){let J=V[B];switch(B){case q.Solana:case q.Radix:return`${J}/account/${j}`;default:return`${J}/address/${j}`}}function Y$({apis:B={},config:j={},plugins:J,rpcUrls:T={},wallets:P={}}={}){let C=j.stagenet,O=j.swapkitConfig?.isDev,X={},Z=Object.entries(J||{}).reduce(($,[R,{plugin:L,config:_}])=>{let G=L({getWallet:Q,stagenet:C,config:_??j});return $[R]=G,$},{}),o=Object.entries(P).reduce(($,[R,L])=>{let _=L({addChain:h,config:j,apis:B,rpcUrls:T});return $[R]=_,$},{});function u($){let R=Z[$]||Object.values(Z)[0];if(!R)throw new U("core_plugin_not_found");return R}function w($){let R=Object.values(Z).find((L)=>L.supportedSwapkitProviders?.includes($));if(!R)throw new U("core_plugin_not_found");return R}function h($){let R=Q($.chain);X[$.chain]={...R,...$}}function m({assetValue:$,type:R="checkOnly",contractAddress:L}){let _=Z[L];if(_){if(R===N.CheckOnly&&"isAssetValueApproved"in _)return _.isAssetValueApproved({assetValue:$});if(R===N.Approve&&"approveAssetValue"in _)return _.approveAssetValue({assetValue:$});throw new U({errorKey:"core_approve_asset_target_invalid",info:{message:`Target ${String(L)} cannot be used for approve operation`}})}let G=$.chain,E=x$.includes(G);if(E&&$.isGasAsset||!E||$.isSynthetic)return Promise.resolve(R==="checkOnly"?!0:"approved");let Y=Q(G),b=R==="checkOnly"?Y.isApproved:Y.approve;if(!b)throw new U("core_wallet_connection_not_found");if(!($.address&&Y.address&&typeof L==="string"))throw new U("core_approve_asset_address_or_from_not_found");return b({amount:$.getBaseValue("bigint"),assetAddress:$.address,from:Y.address,spenderAddress:L})}function Q($){return X[$]}function c(){return{...X}}function r($){return Q($)?.address||""}function g($,R){return m({assetValue:$,contractAddress:R,type:N.Approve})}function s($,R){return m({assetValue:$,contractAddress:R,type:N.CheckOnly})}function f($){Q($)?.disconnect?.(),delete X[$]}function n(){for(let $ of Object.keys(X))f($)}function p($,R){return R?A($).then(({balance:L})=>L):Q($)?.balance||[]}function i($){throw new U("not_implemented",{message:"validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'"})}async function A($,R=!0){if($===x.Fiat||!Q($))throw new U("core_wallet_connection_not_found");let L=Q($),_=[S.from({chain:$})];if("getBalance"in L){let G=await L.getBalance(L.address,R);L.balance=G?.length?G:_}return L}function t({route:$,pluginName:R,...L}){let _=R&&u(R)||w($.providers[0]);if(!_)throw new U("core_swap_route_not_complete");if("swap"in _)return _.swap({...L,route:$});throw new U("core_plugin_swap_not_found")}function l({assetValue:$,...R}){let L=$.chain;if([x.Fiat,x.Radix].includes(L)||!Q(L))throw new U("core_wallet_connection_not_found");return Q(L).transfer({...R,assetValue:$})}function a({chain:$,message:R}){let L=Q($);if(!L)throw new U("core_wallet_connection_not_found");if("signMessage"in L)return L.signMessage?.(R);throw new U({errorKey:"core_wallet_sign_message_not_supported",info:{chain:$,wallet:L.walletType}})}async function e({address:$,chain:R,message:L,signature:_}){switch(R){case x.THORChain:{let{getToolboxByChain:G}=await import("@swapkit/toolbox-cosmos");return G(R)().verifySignature({signature:_,message:L,address:$})}default:throw new U({errorKey:"core_verify_message_not_supported",info:{chain:R}})}}async function $$({type:$,feeOptionKey:R,params:L}){let{assetValue:_}=L,{chain:G}=_;if(!Q(G))throw new U("core_wallet_connection_not_found");let E=S.from({chain:G});switch(G){case x.Arbitrum:case x.Avalanche:case x.Ethereum:case x.BinanceSmartChain:case x.Polygon:{let I=Q(G);if($==="transfer"){let Y=await I.createTransferTx(L);return I.estimateTransactionFee(Y,R)}if($==="approve"&&!_.isGasAsset)return I.estimateTransactionFee(await I.createApprovalTx({assetAddress:_.address,spenderAddress:L.contractAddress,amount:_.getBaseValue("bigint"),from:I.address}),R);if($==="swap"){if(L.route.providers[0]===d.CHAINFLIP){let R$=await I.createTransferTx({from:I.address,recipient:I.address,assetValue:_});return I.estimateTransactionFee(R$,R)}let{tx:b}=L.route;if(!b)return;return I.estimateTransactionFee({...b,value:BigInt(b.value)},R)}return S.from({chain:G})}case x.Bitcoin:case x.BitcoinCash:case x.Dogecoin:case x.Dash:case x.Litecoin:{let{estimateTransactionFee:I,address:Y}=Q(G);return I({...L,feeOptionKey:R,from:Y,recipient:Y})}case x.THORChain:case x.Maya:case x.Kujira:case x.Cosmos:{let{estimateTransactionFee:I}=await import("@swapkit/toolbox-cosmos");return I(L)}case x.Polkadot:{let{address:I,estimateTransactionFee:Y}=Q(G);return Y({...L,recipient:I})}default:return E}}let v=j.swapkitConfig||{},F=v?.swapkitApiKey||j?.swapkitApiKey,k=v.useHashedApiKey?v.referer:void 0;return{...Z,...o,disconnectAll:n,disconnectChain:f,estimateTransactionFee:$$,getAddress:r,getAllWallets:c,getBalance:p,getExplorerAddressUrl:K,getExplorerTxUrl:W,getWallet:Q,getWalletWithBalance:A,approveAssetValue:g,isAssetValueApproved:s,signMessage:a,swap:t,transfer:l,validateAddress:i,verifyMessage:e,api:F?{getGasRate:()=>M.getGasRate(O,F,k),getPrice:($)=>M.getPrice($,O,F,k),getSwapQuote:($)=>M.getSwapQuote($,O,F,k),getTokenList:($)=>M.getTokenList($),getTokenListProviders:()=>M.getTokenListProvidersV2(O,F,k),getTokenTradingPairs:($)=>M.getTokenTradingPairs($,O,F,k),getTrackerDetails:($)=>M.getTrackerDetails($,F,k)}:{undefined:void 0}}}import{Chain as z}from"@swapkit/helpers";async function H$(){let{cosmosValidateAddress:B}=await import("@swapkit/toolbox-cosmos"),{evmValidateAddress:j}=await import("@swapkit/toolbox-evm"),{substrateValidateAddress:J}=await import("@swapkit/toolbox-substrate"),{utxoValidateAddress:T}=await import("@swapkit/toolbox-utxo"),{validateAddress:P}=await import("@swapkit/toolbox-solana"),{validateAddress:C}=await import("@swapkit/toolbox-radix");return function O({address:X,chain:Z}){switch(Z){case z.Arbitrum:case z.Avalanche:case z.Optimism:case z.BinanceSmartChain:case z.Polygon:case z.Ethereum:return j({address:X});case z.Litecoin:case z.Dash:case z.Dogecoin:case z.BitcoinCash:case z.Bitcoin:return T({address:X,chain:Z});case z.Cosmos:case z.Kujira:case z.Maya:case z.THORChain:return B({address:X,chain:Z});case z.Polkadot:return J({address:X,chain:Z});case z.Radix:return C(X);case z.Solana:return P(X);default:return!1}}}export{H$ as getAddressValidator,Y$ as SwapKit};
2
2
 
3
- //# debugId=267A91833868AB5B64756E2164756E21
3
+ //# debugId=FA25A5E67CBEAB9264756E2164756E21
package/dist/index.js.map CHANGED
@@ -3,11 +3,11 @@
3
3
  "sources": ["../src/index.ts", "../src/client.ts", "../src/helpers/explorerUrls.ts", "../src/helpers/walletAddressValidator.ts"],
4
4
  "sourcesContent": [
5
5
  "export * from \"@swapkit/api\";\nexport * from \"@swapkit/helpers\";\nexport * from \"./client\";\nexport * from \"./helpers/walletAddressValidator\";\n",
6
- "import type {\n EVMTransaction,\n PriceRequest,\n QuoteRequest,\n QuoteResponseRoute,\n TrackerParams,\n} from \"@swapkit/api\";\nimport { SwapKitApi } from \"@swapkit/api\";\n\nimport {\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ChainApis,\n type ChainWallet,\n type ConditionalAssetValueReturn,\n type ConnectConfig,\n type EVMChain,\n EVMChains,\n type FeeOption,\n type FullWallet,\n ProviderName as PluginNameEnum,\n SwapKitError,\n type SwapKitPluginParams,\n type SwapKitWallet,\n type SwapParams,\n type WalletChain,\n} from \"@swapkit/helpers\";\nimport type { TransferParams as CosmosTransferParams } from \"@swapkit/toolbox-cosmos\";\nimport type { TransferParams as EVMTransferParams } from \"@swapkit/toolbox-evm\";\nimport type { UTXOTransferParams } from \"@swapkit/toolbox-utxo\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls\";\n\ntype PluginsType = {\n [key in string]: {\n plugin: (params: SwapKitPluginParams<any>) => any;\n config?: any;\n };\n};\n\nexport type SwapKitParams<P, W> = {\n apis?: ChainApis;\n config?: ConnectConfig;\n plugins?: P;\n rpcUrls?: { [key in Chain]?: string };\n wallets?: W;\n};\n\nexport function SwapKit<\n Plugins extends PluginsType,\n Wallets extends { [key in string]: SwapKitWallet<any[]> },\n>({\n apis = {},\n config = {},\n plugins,\n rpcUrls = {},\n wallets = {} as Wallets,\n}: SwapKitParams<Plugins, Wallets> = {}) {\n const stagenet = config.stagenet;\n const isDev = config.swapkitConfig?.isDev;\n type PluginName = keyof Plugins;\n const connectedWallets = {} as FullWallet;\n\n const availablePlugins = Object.entries(plugins || {}).reduce(\n (acc, [pluginName, { plugin, config: pluginConfig }]) => {\n const methods = plugin({ getWallet, stagenet, config: pluginConfig ?? config });\n\n // @ts-expect-error key is generic and cannot be indexed\n acc[pluginName] = methods;\n return acc;\n },\n {} as { [key in PluginName]: ReturnType<Plugins[key][\"plugin\"]> },\n );\n\n const connectWalletMethods = Object.entries(wallets).reduce(\n (acc, [walletName, wallet]) => {\n const connectWallet = wallet({ addChain, config, apis, rpcUrls });\n\n // @ts-expect-error walletName is generic and cannot be indexed\n acc[walletName] = connectWallet;\n return acc;\n },\n {} as { [key in keyof Wallets]: ReturnType<Wallets[key]> },\n );\n\n function getSwapKitPlugin<T extends PluginName>(pluginName: T) {\n const plugin = availablePlugins[pluginName] || Object.values(availablePlugins)[0];\n\n if (!plugin) {\n throw new SwapKitError(\"core_plugin_not_found\");\n }\n\n return plugin;\n }\n\n function getSwapKitPluginForSKProvider(pluginName: PluginNameEnum): Plugins[keyof Plugins] {\n const plugin = Object.values(availablePlugins).find((plugin) =>\n plugin.supportedSwapkitProviders?.includes(pluginName),\n );\n\n if (!plugin) {\n throw new SwapKitError(\"core_plugin_not_found\");\n }\n\n return plugin;\n }\n\n function addChain<T extends WalletChain>(connectWallet: ChainWallet<T>) {\n const currentWallet = getWallet(connectWallet.chain);\n\n connectedWallets[connectWallet.chain] = { ...currentWallet, ...connectWallet };\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>\n function approve<T extends ApproveMode>({\n assetValue,\n type = \"checkOnly\" as T,\n contractAddress: spenderAddress,\n }: {\n type: T;\n assetValue: AssetValue;\n contractAddress: string | PluginName;\n }) {\n const plugin = availablePlugins[spenderAddress];\n\n if (plugin) {\n if (type === ApproveMode.CheckOnly && \"isAssetValueApproved\" in plugin) {\n return plugin.isAssetValueApproved({ assetValue }) as ApproveReturnType<T>;\n }\n if (type === ApproveMode.Approve && \"approveAssetValue\" in plugin) {\n return plugin.approveAssetValue({ assetValue }) as ApproveReturnType<T>;\n }\n\n throw new SwapKitError({\n errorKey: \"core_approve_asset_target_invalid\",\n info: { message: `Target ${String(spenderAddress)} cannot be used for approve operation` },\n });\n }\n\n const chain = assetValue.chain as EVMChain;\n const isEVMChain = EVMChains.includes(chain);\n const isNativeEVM = isEVMChain && assetValue.isGasAsset;\n\n if (isNativeEVM || !isEVMChain || assetValue.isSynthetic) {\n return Promise.resolve(type === \"checkOnly\" ? true : \"approved\") as ApproveReturnType<T>;\n }\n\n const wallet = getWallet(chain);\n const walletAction = type === \"checkOnly\" ? wallet.isApproved : wallet.approve;\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n if (!(assetValue.address && wallet.address && typeof spenderAddress === \"string\")) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: assetValue.address,\n from: wallet.address,\n spenderAddress,\n }) as ApproveReturnType<T>;\n }\n\n /**\n * @Public\n */\n function getWallet<T extends WalletChain>(chain: T) {\n return connectedWallets[chain];\n }\n\n function getAllWallets() {\n return { ...connectedWallets };\n }\n\n function getAddress<T extends WalletChain>(chain: T) {\n return getWallet(chain)?.address || \"\";\n }\n\n function approveAssetValue(assetValue: AssetValue, contractAddress: string | PluginName) {\n return approve({ assetValue, contractAddress, type: ApproveMode.Approve });\n }\n\n function isAssetValueApproved(assetValue: AssetValue, contractAddress: string | PluginName) {\n return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });\n }\n\n function disconnectChain<T extends WalletChain>(chain: T) {\n const wallet = getWallet(chain);\n wallet?.disconnect?.();\n delete connectedWallets[chain];\n }\n\n function disconnectAll() {\n for (const chain of Object.keys(connectedWallets) as (keyof typeof connectedWallets)[]) {\n disconnectChain(chain);\n }\n }\n\n function getBalance<T extends WalletChain, R extends boolean>(\n chain: T,\n refresh?: R,\n ): ConditionalAssetValueReturn<R> {\n return (\n refresh\n ? getWalletWithBalance(chain).then(({ balance }) => balance)\n : getWallet(chain)?.balance || []\n ) as ConditionalAssetValueReturn<R>;\n }\n\n /**\n * @deprecated - use toolbox directly or use getAddressValidator() function\n */\n function validateAddress(_: { address: string; chain: Chain }) {\n throw new SwapKitError(\"not_implemented\", {\n message:\n \"validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'\",\n });\n }\n\n async function getWalletWithBalance<T extends WalletChain>(chain: T, potentialScamFilter = true) {\n const defaultBalance = [AssetValue.from({ chain })];\n const wallet = getWallet(chain);\n\n if (!wallet) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n\n if (\"getBalance\" in wallet) {\n const balance = await wallet.getBalance(wallet.address, potentialScamFilter);\n wallet.balance = balance?.length ? balance : defaultBalance;\n }\n\n return wallet;\n }\n\n function swap<T extends PluginName>({\n route,\n pluginName,\n ...rest\n }: SwapParams<T, QuoteResponseRoute>) {\n const plugin =\n (pluginName && getSwapKitPlugin(pluginName)) ||\n getSwapKitPluginForSKProvider(route.providers[0] as PluginNameEnum);\n\n if (!plugin) throw new SwapKitError(\"core_swap_route_not_complete\");\n\n if (\"swap\" in plugin) {\n return plugin.swap({ ...rest, route });\n }\n\n throw new SwapKitError(\"core_plugin_swap_not_found\");\n }\n\n function transfer({\n assetValue,\n ...params\n }: UTXOTransferParams | EVMTransferParams | CosmosTransferParams) {\n const chain = assetValue.chain as Exclude<WalletChain, Chain.Radix>;\n const wallet = getWallet(chain);\n if (!wallet) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n return wallet.transfer({ ...params, assetValue });\n }\n\n function signMessage({ chain, message }: { chain: WalletChain; message: string }) {\n const wallet = getWallet(chain);\n if (!wallet) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n if (\"signMessage\" in wallet) {\n return wallet.signMessage?.(message);\n }\n\n throw new SwapKitError({\n errorKey: \"core_wallet_sign_message_not_supported\",\n info: { chain, wallet: wallet.walletType },\n });\n }\n\n async function verifyMessage({\n address,\n chain,\n message,\n signature,\n }: { chain: Chain; signature: string; message: string; address: string }) {\n switch (chain) {\n case Chain.THORChain: {\n const { getToolboxByChain } = await import(\"@swapkit/toolbox-cosmos\");\n const toolbox = getToolboxByChain(chain);\n return toolbox().verifySignature({ signature, message, address });\n }\n\n default:\n throw new SwapKitError({ errorKey: \"core_verify_message_not_supported\", info: { chain } });\n }\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO clean this up\n async function estimateTransactionFee<T extends PluginName>({\n type,\n feeOptionKey,\n params,\n }: (\n | { type: \"swap\"; params: SwapParams<T, QuoteResponseRoute> & { assetValue: AssetValue } }\n | { type: \"transfer\"; params: UTXOTransferParams | EVMTransferParams | CosmosTransferParams }\n | {\n type: \"approve\";\n params: {\n assetValue: AssetValue;\n contractAddress: string | PluginName;\n feeOptionKey?: FeeOption;\n };\n }\n ) & {\n feeOptionKey: FeeOption;\n }): Promise<AssetValue | undefined> {\n const { assetValue } = params;\n const { chain } = assetValue;\n\n if (!getWallet(chain as WalletChain))\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const baseValue = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Polygon: {\n const wallet = getWallet(chain);\n if (type === \"transfer\") {\n const txObject = await wallet.createTransferTx(params);\n return wallet.estimateTransactionFee(txObject, feeOptionKey);\n }\n\n if (type === \"approve\" && !assetValue.isGasAsset) {\n return wallet.estimateTransactionFee(\n await wallet.createApprovalTx({\n assetAddress: assetValue.address as string,\n spenderAddress: params.contractAddress as string,\n amount: assetValue.getBaseValue(\"bigint\"),\n from: wallet.address,\n }),\n feeOptionKey,\n );\n }\n\n if (type === \"swap\") {\n const plugin = params.route.providers[0] as PluginNameEnum;\n if (plugin === PluginNameEnum.CHAINFLIP) {\n const txObject = await wallet.createTransferTx({\n from: wallet.address,\n recipient: wallet.address,\n assetValue,\n });\n return wallet.estimateTransactionFee(txObject, feeOptionKey);\n }\n\n const { tx } = params.route;\n if (!tx) {\n return undefined;\n }\n\n return wallet.estimateTransactionFee(\n { ...(tx as EVMTransaction), value: BigInt((tx as EVMTransaction).value) },\n feeOptionKey,\n );\n }\n\n return AssetValue.from({ chain });\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n const { estimateTransactionFee, address } = getWallet(chain);\n\n return estimateTransactionFee({\n ...params,\n feeOptionKey,\n from: address,\n recipient: address,\n });\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolbox-cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n const { address, estimateTransactionFee } = getWallet(chain);\n\n return estimateTransactionFee({ ...params, recipient: address });\n }\n\n default:\n return baseValue;\n }\n }\n\n const swapkitConfig = config.swapkitConfig || {};\n const swapkitApiKey = swapkitConfig?.swapkitApiKey || config?.swapkitApiKey;\n const referer = swapkitConfig.useHashedApiKey ? swapkitConfig.referer : undefined;\n\n const api = swapkitApiKey\n ? {\n getGasRate: () => SwapKitApi.getGasRate(isDev, swapkitApiKey, referer),\n getPrice: (body: PriceRequest) => SwapKitApi.getPrice(body, isDev, swapkitApiKey, referer),\n getSwapQuote: (params: QuoteRequest) =>\n SwapKitApi.getSwapQuote(params, isDev, swapkitApiKey, referer),\n getTokenList: (provider: string) => SwapKitApi.getTokenList(provider),\n getTokenListProviders: () =>\n SwapKitApi.getTokenListProvidersV2(isDev, swapkitApiKey, referer),\n getTokenTradingPairs: (providers: PluginNameEnum[]) =>\n SwapKitApi.getTokenTradingPairs(providers, isDev, swapkitApiKey, referer),\n getTrackerDetails: (payload: TrackerParams) =>\n SwapKitApi.getTrackerDetails(payload, swapkitApiKey, referer),\n }\n : { undefined };\n\n return {\n ...availablePlugins,\n ...connectWalletMethods,\n\n disconnectAll,\n disconnectChain,\n estimateTransactionFee,\n getAddress,\n getAllWallets,\n getBalance,\n getExplorerAddressUrl: getAddressUrl,\n getExplorerTxUrl: getTxUrl,\n getWallet,\n getWalletWithBalance,\n\n approveAssetValue,\n isAssetValueApproved,\n signMessage,\n swap,\n transfer,\n validateAddress,\n verifyMessage,\n api,\n };\n}\n",
6
+ "import type {\n EVMTransaction,\n PriceRequest,\n QuoteRequest,\n QuoteResponseRoute,\n TrackerParams,\n} from \"@swapkit/api\";\nimport { SwapKitApi } from \"@swapkit/api\";\n\nimport {\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ChainApis,\n type ChainWallet,\n type ConditionalAssetValueReturn,\n type ConnectConfig,\n type CryptoChain,\n type EVMChain,\n EVMChains,\n type FeeOption,\n type FullWallet,\n ProviderName as PluginNameEnum,\n SwapKitError,\n type SwapKitPluginParams,\n type SwapKitWallet,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { TransferParams as CosmosTransferParams } from \"@swapkit/toolbox-cosmos\";\nimport type { TransferParams as EVMTransferParams } from \"@swapkit/toolbox-evm\";\nimport type { UTXOTransferParams } from \"@swapkit/toolbox-utxo\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls\";\n\ntype PluginsType = {\n [key in string]: {\n plugin: (params: SwapKitPluginParams<any>) => any;\n config?: any;\n };\n};\n\nexport type SwapKitParams<P, W> = {\n apis?: ChainApis;\n config?: ConnectConfig;\n plugins?: P;\n rpcUrls?: { [key in CryptoChain]?: string };\n wallets?: W;\n};\n\nexport function SwapKit<\n Plugins extends PluginsType,\n Wallets extends { [key in string]: SwapKitWallet<any[]> },\n>({\n apis = {},\n config = {},\n plugins,\n rpcUrls = {},\n wallets = {} as Wallets,\n}: SwapKitParams<Plugins, Wallets> = {}) {\n const stagenet = config.stagenet;\n const isDev = config.swapkitConfig?.isDev;\n type PluginName = keyof Plugins;\n const connectedWallets = {} as FullWallet;\n\n const availablePlugins = Object.entries(plugins || {}).reduce(\n (acc, [pluginName, { plugin, config: pluginConfig }]) => {\n const methods = plugin({ getWallet, stagenet, config: pluginConfig ?? config });\n\n // @ts-expect-error key is generic and cannot be indexed\n acc[pluginName] = methods;\n return acc;\n },\n {} as { [key in PluginName]: ReturnType<Plugins[key][\"plugin\"]> },\n );\n\n const connectWalletMethods = Object.entries(wallets).reduce(\n (acc, [walletName, wallet]) => {\n const connectWallet = wallet({ addChain, config, apis, rpcUrls });\n\n // @ts-expect-error walletName is generic and cannot be indexed\n acc[walletName] = connectWallet;\n return acc;\n },\n {} as { [key in keyof Wallets]: ReturnType<Wallets[key]> },\n );\n\n function getSwapKitPlugin<T extends PluginName>(pluginName: T) {\n const plugin = availablePlugins[pluginName] || Object.values(availablePlugins)[0];\n\n if (!plugin) {\n throw new SwapKitError(\"core_plugin_not_found\");\n }\n\n return plugin;\n }\n\n function getSwapKitPluginForSKProvider(pluginName: PluginNameEnum): Plugins[keyof Plugins] {\n const plugin = Object.values(availablePlugins).find((plugin) =>\n plugin.supportedSwapkitProviders?.includes(pluginName),\n );\n\n if (!plugin) {\n throw new SwapKitError(\"core_plugin_not_found\");\n }\n\n return plugin;\n }\n\n function addChain<T extends CryptoChain>(connectWallet: ChainWallet<T>) {\n const currentWallet = getWallet(connectWallet.chain);\n\n connectedWallets[connectWallet.chain] = { ...currentWallet, ...connectWallet };\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>\n function approve<T extends ApproveMode>({\n assetValue,\n type = \"checkOnly\" as T,\n contractAddress: spenderAddress,\n }: {\n type: T;\n assetValue: AssetValue;\n contractAddress: string | PluginName;\n }) {\n const plugin = availablePlugins[spenderAddress];\n\n if (plugin) {\n if (type === ApproveMode.CheckOnly && \"isAssetValueApproved\" in plugin) {\n return plugin.isAssetValueApproved({ assetValue }) as ApproveReturnType<T>;\n }\n if (type === ApproveMode.Approve && \"approveAssetValue\" in plugin) {\n return plugin.approveAssetValue({ assetValue }) as ApproveReturnType<T>;\n }\n\n throw new SwapKitError({\n errorKey: \"core_approve_asset_target_invalid\",\n info: { message: `Target ${String(spenderAddress)} cannot be used for approve operation` },\n });\n }\n\n const chain = assetValue.chain as EVMChain;\n const isEVMChain = EVMChains.includes(chain);\n const isNativeEVM = isEVMChain && assetValue.isGasAsset;\n\n if (isNativeEVM || !isEVMChain || assetValue.isSynthetic) {\n return Promise.resolve(type === \"checkOnly\" ? true : \"approved\") as ApproveReturnType<T>;\n }\n\n const wallet = getWallet(chain);\n const walletAction = type === \"checkOnly\" ? wallet.isApproved : wallet.approve;\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n if (!(assetValue.address && wallet.address && typeof spenderAddress === \"string\")) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: assetValue.address,\n from: wallet.address,\n spenderAddress,\n }) as ApproveReturnType<T>;\n }\n\n /**\n * @Public\n */\n function getWallet<T extends Chain>(chain: T) {\n return connectedWallets[chain];\n }\n\n function getAllWallets() {\n return { ...connectedWallets };\n }\n\n function getAddress<T extends Chain>(chain: T) {\n return getWallet(chain)?.address || \"\";\n }\n\n function approveAssetValue(assetValue: AssetValue, contractAddress: string | PluginName) {\n return approve({ assetValue, contractAddress, type: ApproveMode.Approve });\n }\n\n function isAssetValueApproved(assetValue: AssetValue, contractAddress: string | PluginName) {\n return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });\n }\n\n function disconnectChain<T extends Chain>(chain: T) {\n const wallet = getWallet(chain);\n wallet?.disconnect?.();\n delete connectedWallets[chain];\n }\n\n function disconnectAll() {\n for (const chain of Object.keys(connectedWallets) as (keyof typeof connectedWallets)[]) {\n disconnectChain(chain);\n }\n }\n\n function getBalance<T extends Chain, R extends boolean>(\n chain: T,\n refresh?: R,\n ): ConditionalAssetValueReturn<R> {\n return (\n refresh\n ? getWalletWithBalance(chain).then(({ balance }) => balance)\n : getWallet(chain)?.balance || []\n ) as ConditionalAssetValueReturn<R>;\n }\n\n /**\n * @deprecated - use toolbox directly or use getAddressValidator() function\n */\n function validateAddress(_: { address: string; chain: Chain }) {\n throw new SwapKitError(\"not_implemented\", {\n message:\n \"validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'\",\n });\n }\n\n async function getWalletWithBalance<T extends Chain>(chain: T, potentialScamFilter = true) {\n if (chain === Chain.Fiat || !getWallet(chain)) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n const wallet = getWallet(chain as Exclude<Chain, Chain.Fiat>);\n const defaultBalance = [AssetValue.from({ chain })];\n\n if (\"getBalance\" in wallet) {\n const balance = await wallet.getBalance(wallet.address, potentialScamFilter);\n wallet.balance = balance?.length ? balance : defaultBalance;\n }\n\n return wallet;\n }\n\n function swap<T extends PluginName>({\n route,\n pluginName,\n ...rest\n }: SwapParams<T, QuoteResponseRoute>) {\n const plugin =\n (pluginName && getSwapKitPlugin(pluginName)) ||\n getSwapKitPluginForSKProvider(route.providers[0] as PluginNameEnum);\n\n if (!plugin) throw new SwapKitError(\"core_swap_route_not_complete\");\n\n if (\"swap\" in plugin) {\n return plugin.swap({ ...rest, route });\n }\n\n throw new SwapKitError(\"core_plugin_swap_not_found\");\n }\n\n function transfer({\n assetValue,\n ...params\n }: UTXOTransferParams | EVMTransferParams | CosmosTransferParams) {\n const chain = assetValue.chain;\n if ([Chain.Fiat, Chain.Radix].includes(chain) || !getWallet(chain)) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n const wallet = getWallet(chain as Exclude<Chain, Chain.Fiat | Chain.Radix>);\n\n return wallet.transfer({ ...params, assetValue });\n }\n\n function signMessage({ chain, message }: { chain: Chain; message: string }) {\n const wallet = getWallet(chain);\n if (!wallet) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n if (\"signMessage\" in wallet) {\n return wallet.signMessage?.(message);\n }\n\n throw new SwapKitError({\n errorKey: \"core_wallet_sign_message_not_supported\",\n info: { chain, wallet: wallet.walletType },\n });\n }\n\n async function verifyMessage({\n address,\n chain,\n message,\n signature,\n }: { chain: Chain; signature: string; message: string; address: string }) {\n switch (chain) {\n case Chain.THORChain: {\n const { getToolboxByChain } = await import(\"@swapkit/toolbox-cosmos\");\n const toolbox = getToolboxByChain(chain);\n return toolbox().verifySignature({ signature, message, address });\n }\n\n default:\n throw new SwapKitError({ errorKey: \"core_verify_message_not_supported\", info: { chain } });\n }\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO clean this up\n async function estimateTransactionFee<T extends PluginName>({\n type,\n feeOptionKey,\n params,\n }: (\n | { type: \"swap\"; params: SwapParams<T, QuoteResponseRoute> & { assetValue: AssetValue } }\n | { type: \"transfer\"; params: UTXOTransferParams | EVMTransferParams | CosmosTransferParams }\n | {\n type: \"approve\";\n params: {\n assetValue: AssetValue;\n contractAddress: string | PluginName;\n feeOptionKey?: FeeOption;\n };\n }\n ) & {\n feeOptionKey: FeeOption;\n }): Promise<AssetValue | undefined> {\n const { assetValue } = params;\n const { chain } = assetValue;\n\n if (!getWallet(chain as Chain)) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const baseValue = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Polygon: {\n const wallet = getWallet(chain);\n if (type === \"transfer\") {\n const txObject = await wallet.createTransferTx(params);\n return wallet.estimateTransactionFee(txObject, feeOptionKey);\n }\n\n if (type === \"approve\" && !assetValue.isGasAsset) {\n return wallet.estimateTransactionFee(\n await wallet.createApprovalTx({\n assetAddress: assetValue.address as string,\n spenderAddress: params.contractAddress as string,\n amount: assetValue.getBaseValue(\"bigint\"),\n from: wallet.address,\n }),\n feeOptionKey,\n );\n }\n\n if (type === \"swap\") {\n const plugin = params.route.providers[0] as PluginNameEnum;\n if (plugin === PluginNameEnum.CHAINFLIP) {\n const txObject = await wallet.createTransferTx({\n from: wallet.address,\n recipient: wallet.address,\n assetValue,\n });\n return wallet.estimateTransactionFee(txObject, feeOptionKey);\n }\n\n const { tx } = params.route;\n if (!tx) {\n return undefined;\n }\n\n return wallet.estimateTransactionFee(\n { ...(tx as EVMTransaction), value: BigInt((tx as EVMTransaction).value) },\n feeOptionKey,\n );\n }\n\n return AssetValue.from({ chain });\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n const { estimateTransactionFee, address } = getWallet(chain);\n\n return estimateTransactionFee({\n ...params,\n feeOptionKey,\n from: address,\n recipient: address,\n });\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolbox-cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n const { address, estimateTransactionFee } = getWallet(chain);\n\n return estimateTransactionFee({ ...params, recipient: address });\n }\n\n default:\n return baseValue;\n }\n }\n\n const swapkitConfig = config.swapkitConfig || {};\n const swapkitApiKey = swapkitConfig?.swapkitApiKey || config?.swapkitApiKey;\n const referer = swapkitConfig.useHashedApiKey ? swapkitConfig.referer : undefined;\n\n const api = swapkitApiKey\n ? {\n getGasRate: () => SwapKitApi.getGasRate(isDev, swapkitApiKey, referer),\n getPrice: (body: PriceRequest) => SwapKitApi.getPrice(body, isDev, swapkitApiKey, referer),\n getSwapQuote: (params: QuoteRequest) =>\n SwapKitApi.getSwapQuote(params, isDev, swapkitApiKey, referer),\n getTokenList: (provider: string) => SwapKitApi.getTokenList(provider),\n getTokenListProviders: () =>\n SwapKitApi.getTokenListProvidersV2(isDev, swapkitApiKey, referer),\n getTokenTradingPairs: (providers: PluginNameEnum[]) =>\n SwapKitApi.getTokenTradingPairs(providers, isDev, swapkitApiKey, referer),\n getTrackerDetails: (payload: TrackerParams) =>\n SwapKitApi.getTrackerDetails(payload, swapkitApiKey, referer),\n }\n : { undefined };\n\n return {\n ...availablePlugins,\n ...connectWalletMethods,\n\n disconnectAll,\n disconnectChain,\n estimateTransactionFee,\n getAddress,\n getAllWallets,\n getBalance,\n getExplorerAddressUrl: getAddressUrl,\n getExplorerTxUrl: getTxUrl,\n getWallet,\n getWalletWithBalance,\n\n approveAssetValue,\n isAssetValueApproved,\n signMessage,\n swap,\n transfer,\n validateAddress,\n verifyMessage,\n api,\n };\n}\n",
7
7
  "import { Chain, ChainToExplorerUrl, SwapKitError } from \"@swapkit/helpers\";\n\nexport function getExplorerTxUrl({ chain, txHash }: { txHash: string; chain: Chain }) {\n const baseUrl = ChainToExplorerUrl[chain];\n\n switch (chain) {\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos:\n case Chain.THORChain:\n case Chain.Solana:\n return `${baseUrl}/tx/${txHash.startsWith(\"0x\") ? txHash.slice(2) : txHash}`;\n\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polkadot:\n case Chain.Polygon:\n return `${baseUrl}/tx/${txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`}`;\n\n case Chain.Litecoin:\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Radix:\n return `${baseUrl}/transaction/${txHash.toLowerCase()}`;\n\n default:\n throw new SwapKitError({ errorKey: \"core_explorer_unsupported_chain\", info: { chain } });\n }\n}\n\nexport function getExplorerAddressUrl({ chain, address }: { address: string; chain: Chain }) {\n const baseUrl = ChainToExplorerUrl[chain];\n\n switch (chain) {\n case Chain.Solana:\n case Chain.Radix:\n return `${baseUrl}/account/${address}`;\n\n default:\n return `${baseUrl}/address/${address}`;\n }\n}\n",
8
8
  "import { Chain } from \"@swapkit/helpers\";\n\nexport async function getAddressValidator() {\n const { cosmosValidateAddress } = await import(\"@swapkit/toolbox-cosmos\");\n const { evmValidateAddress } = await import(\"@swapkit/toolbox-evm\");\n const { substrateValidateAddress } = await import(\"@swapkit/toolbox-substrate\");\n const { utxoValidateAddress } = await import(\"@swapkit/toolbox-utxo\");\n const { validateAddress: solanaValidateAddress } = await import(\"@swapkit/toolbox-solana\");\n const { validateAddress: validateRadixAddress } = await import(\"@swapkit/toolbox-radix\");\n\n return function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Polygon:\n case Chain.Ethereum:\n return evmValidateAddress({ address });\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin:\n return utxoValidateAddress({ address, chain });\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n return cosmosValidateAddress({ address, chain });\n }\n\n case Chain.Polkadot: {\n return substrateValidateAddress({ address, chain });\n }\n\n case Chain.Radix: {\n return validateRadixAddress(address);\n }\n\n case Chain.Solana: {\n return solanaValidateAddress(address);\n }\n\n default:\n return false;\n }\n };\n}\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "267A91833868AB5B64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "FA25A5E67CBEAB9264756E2164756E21",
12
12
  "names": []
13
13
  }
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "author": "swapkit-oss",
3
3
  "dependencies": {
4
- "@swapkit/api": "2.0.2",
5
- "@swapkit/helpers": "2.0.0",
6
- "@swapkit/plugin-evm": "1.3.5",
7
- "@swapkit/toolbox-cosmos": "1.6.2",
8
- "@swapkit/toolbox-evm": "1.7.8",
9
- "@swapkit/toolbox-radix": "1.2.24",
10
- "@swapkit/toolbox-solana": "1.3.8",
11
- "@swapkit/toolbox-substrate": "1.3.8",
12
- "@swapkit/toolbox-utxo": "1.2.8"
4
+ "@swapkit/api": "2.0.4",
5
+ "@swapkit/helpers": "2.2.0",
6
+ "@swapkit/plugin-evm": "1.3.7",
7
+ "@swapkit/toolbox-cosmos": "1.6.4",
8
+ "@swapkit/toolbox-evm": "1.7.10",
9
+ "@swapkit/toolbox-radix": "1.2.26",
10
+ "@swapkit/toolbox-solana": "1.3.10",
11
+ "@swapkit/toolbox-substrate": "1.3.10",
12
+ "@swapkit/toolbox-utxo": "1.2.10"
13
13
  },
14
14
  "description": "SwapKit - Core",
15
15
  "files": [
@@ -34,5 +34,5 @@
34
34
  },
35
35
  "type": "module",
36
36
  "types": "./src/index.ts",
37
- "version": "3.1.1"
37
+ "version": "3.2.1"
38
38
  }
package/src/client.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  type ChainWallet,
17
17
  type ConditionalAssetValueReturn,
18
18
  type ConnectConfig,
19
+ type CryptoChain,
19
20
  type EVMChain,
20
21
  EVMChains,
21
22
  type FeeOption,
@@ -25,7 +26,6 @@ import {
25
26
  type SwapKitPluginParams,
26
27
  type SwapKitWallet,
27
28
  type SwapParams,
28
- type WalletChain,
29
29
  } from "@swapkit/helpers";
30
30
  import type { TransferParams as CosmosTransferParams } from "@swapkit/toolbox-cosmos";
31
31
  import type { TransferParams as EVMTransferParams } from "@swapkit/toolbox-evm";
@@ -47,7 +47,7 @@ export type SwapKitParams<P, W> = {
47
47
  apis?: ChainApis;
48
48
  config?: ConnectConfig;
49
49
  plugins?: P;
50
- rpcUrls?: { [key in Chain]?: string };
50
+ rpcUrls?: { [key in CryptoChain]?: string };
51
51
  wallets?: W;
52
52
  };
53
53
 
@@ -110,7 +110,7 @@ export function SwapKit<
110
110
  return plugin;
111
111
  }
112
112
 
113
- function addChain<T extends WalletChain>(connectWallet: ChainWallet<T>) {
113
+ function addChain<T extends CryptoChain>(connectWallet: ChainWallet<T>) {
114
114
  const currentWallet = getWallet(connectWallet.chain);
115
115
 
116
116
  connectedWallets[connectWallet.chain] = { ...currentWallet, ...connectWallet };
@@ -169,7 +169,7 @@ export function SwapKit<
169
169
  /**
170
170
  * @Public
171
171
  */
172
- function getWallet<T extends WalletChain>(chain: T) {
172
+ function getWallet<T extends Chain>(chain: T) {
173
173
  return connectedWallets[chain];
174
174
  }
175
175
 
@@ -177,7 +177,7 @@ export function SwapKit<
177
177
  return { ...connectedWallets };
178
178
  }
179
179
 
180
- function getAddress<T extends WalletChain>(chain: T) {
180
+ function getAddress<T extends Chain>(chain: T) {
181
181
  return getWallet(chain)?.address || "";
182
182
  }
183
183
 
@@ -189,7 +189,7 @@ export function SwapKit<
189
189
  return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });
190
190
  }
191
191
 
192
- function disconnectChain<T extends WalletChain>(chain: T) {
192
+ function disconnectChain<T extends Chain>(chain: T) {
193
193
  const wallet = getWallet(chain);
194
194
  wallet?.disconnect?.();
195
195
  delete connectedWallets[chain];
@@ -201,7 +201,7 @@ export function SwapKit<
201
201
  }
202
202
  }
203
203
 
204
- function getBalance<T extends WalletChain, R extends boolean>(
204
+ function getBalance<T extends Chain, R extends boolean>(
205
205
  chain: T,
206
206
  refresh?: R,
207
207
  ): ConditionalAssetValueReturn<R> {
@@ -222,13 +222,12 @@ export function SwapKit<
222
222
  });
223
223
  }
224
224
 
225
- async function getWalletWithBalance<T extends WalletChain>(chain: T, potentialScamFilter = true) {
226
- const defaultBalance = [AssetValue.from({ chain })];
227
- const wallet = getWallet(chain);
228
-
229
- if (!wallet) {
225
+ async function getWalletWithBalance<T extends Chain>(chain: T, potentialScamFilter = true) {
226
+ if (chain === Chain.Fiat || !getWallet(chain)) {
230
227
  throw new SwapKitError("core_wallet_connection_not_found");
231
228
  }
229
+ const wallet = getWallet(chain as Exclude<Chain, Chain.Fiat>);
230
+ const defaultBalance = [AssetValue.from({ chain })];
232
231
 
233
232
  if ("getBalance" in wallet) {
234
233
  const balance = await wallet.getBalance(wallet.address, potentialScamFilter);
@@ -260,14 +259,16 @@ export function SwapKit<
260
259
  assetValue,
261
260
  ...params
262
261
  }: UTXOTransferParams | EVMTransferParams | CosmosTransferParams) {
263
- const chain = assetValue.chain as Exclude<WalletChain, Chain.Radix>;
264
- const wallet = getWallet(chain);
265
- if (!wallet) throw new SwapKitError("core_wallet_connection_not_found");
262
+ const chain = assetValue.chain;
263
+ if ([Chain.Fiat, Chain.Radix].includes(chain) || !getWallet(chain)) {
264
+ throw new SwapKitError("core_wallet_connection_not_found");
265
+ }
266
+ const wallet = getWallet(chain as Exclude<Chain, Chain.Fiat | Chain.Radix>);
266
267
 
267
268
  return wallet.transfer({ ...params, assetValue });
268
269
  }
269
270
 
270
- function signMessage({ chain, message }: { chain: WalletChain; message: string }) {
271
+ function signMessage({ chain, message }: { chain: Chain; message: string }) {
271
272
  const wallet = getWallet(chain);
272
273
  if (!wallet) throw new SwapKitError("core_wallet_connection_not_found");
273
274
 
@@ -321,8 +322,7 @@ export function SwapKit<
321
322
  const { assetValue } = params;
322
323
  const { chain } = assetValue;
323
324
 
324
- if (!getWallet(chain as WalletChain))
325
- throw new SwapKitError("core_wallet_connection_not_found");
325
+ if (!getWallet(chain as Chain)) throw new SwapKitError("core_wallet_connection_not_found");
326
326
 
327
327
  const baseValue = AssetValue.from({ chain });
328
328