@swapkit/core 1.4.15 → 1.4.17

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 n=Object.create;var{getPrototypeOf:s,defineProperty:O,getOwnPropertyNames:t}=Object;var l=Object.prototype.hasOwnProperty;var e=(z,G,Q)=>{Q=z!=null?n(s(z)):{};const j=G||!z||!z.__esModule?O(Q,"default",{value:z,enumerable:!0}):Q;for(let B of t(z))if(!l.call(j,B))O(j,B,{get:()=>z[B],enumerable:!0});return j};var a=((z)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(z,{get:(G,Q)=>(typeof require!=="undefined"?require:G)[Q]}):z)(function(z){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});export*from"@swapkit/api";export*from"@swapkit/helpers";import{stripToCashAddress as E$}from"@swapkit/toolbox-utxo";import{ApproveMode as F,AssetValue as P,Chain as R,EVMChains as _$,ProviderName as b,SwapKitError as X}from"@swapkit/helpers";import{estimateTransactionFee as L$,cosmosValidateAddress as R$}from"@swapkit/toolbox-cosmos";import{evmValidateAddress as q$}from"@swapkit/toolbox-evm";import{validateAddress as z$}from"@swapkit/toolbox-radix";import{validateAddress as D$}from"@swapkit/toolbox-solana";import{substrateValidateAddress as G$}from"@swapkit/toolbox-substrate";import{utxoValidateAddress as I$}from"@swapkit/toolbox-utxo";import{Chain as D,ChainToExplorerUrl as E,SwapKitError as $$}from"@swapkit/helpers";function N({chain:z,txHash:G}){const Q=E[z];switch(z){case D.Maya:case D.Kujira:case D.Cosmos:case D.THORChain:case D.Solana:return`${Q}/tx/${G.startsWith("0x")?G.slice(2):G}`;case D.Arbitrum:case D.Avalanche:case D.BinanceSmartChain:case D.Ethereum:case D.Optimism:case D.Polkadot:case D.Polygon:return`${Q}/tx/${G.startsWith("0x")?G:`0x${G}`}`;case D.Litecoin:case D.Bitcoin:case D.BitcoinCash:case D.Dogecoin:case D.Radix:return`${Q}/transaction/${G.toLowerCase()}`;default:throw new $$({errorKey:"core_explorer_unsupported_chain",info:{chain:z}})}}function S({chain:z,address:G}){const Q=E[z];switch(z){case D.Solana:case D.Radix:return`${Q}/account/${G}`;default:return`${Q}/address/${G}`}}function F$({apis:z={},config:G={},plugins:Q,rpcUrls:j={},stagenet:B=!1,wallets:v={}}={}){const T={},H=Object.entries(Q||{}).reduce(($,[_,{plugin:L,config:q}])=>{const I=L({getWallet:U,stagenet:B,config:q??G});return $[_]=I,$},{}),K=Object.entries(v).reduce(($,[_,L])=>{const q=L({addChain:W,config:G,apis:z,rpcUrls:j});return $[_]=q,$},{});function y($){const _=H[$]||Object.values(H)[0];if(!_)throw new X("core_plugin_not_found");return _}function A($){const _=Object.values(H).find((L)=>L.supportedSwapkitProviders?.includes($));if(!_)throw new X("core_plugin_not_found");return _}function W($){const _=U($.chain);T[$.chain]={..._,...$}}function x({assetValue:$,type:_="checkOnly",contractAddress:L}){const q=H[L];if(q){if(_===F.CheckOnly&&"isAssetValueApproved"in q)return q.isAssetValueApproved({assetValue:$});if(_===F.Approve&&"approveAssetValue"in q)return q.approveAssetValue({assetValue:$});throw new X({errorKey:"core_approve_asset_target_invalid",info:{message:`Target ${String(L)} cannot be used for approve operation`}})}const I=$.chain,k=_$.includes(I);if(k&&$.isGasAsset||!k||$.isSynthetic)return Promise.resolve(_==="checkOnly"?!0:"approved");const Y=U(I),Z=_==="checkOnly"?Y.isApproved:Y.approve;if(!Z)throw new X("core_wallet_connection_not_found");if(!($.address&&Y.address&&typeof L==="string"))throw new X("core_approve_asset_address_or_from_not_found");return Z({amount:$.getBaseValue("bigint"),assetAddress:$.address,from:Y.address,spenderAddress:L})}function U($){return T[$]}function C(){return{...T}}function m($){return U($)?.address||""}function V($,_){return x({assetValue:$,contractAddress:_,type:F.Approve})}function w($,_){return x({assetValue:$,contractAddress:_,type:F.CheckOnly})}function M($){U($)?.disconnect?.(),delete T[$]}function u(){for(let $ of Object.keys(T))M($)}function g($,_){return _?f($).then(({balance:L})=>L):U($)?.balance||[]}function o({address:$,chain:_}){switch(_){case R.Arbitrum:case R.Avalanche:case R.Optimism:case R.BinanceSmartChain:case R.Polygon:case R.Ethereum:return q$({address:$});case R.Litecoin:case R.Dash:case R.Dogecoin:case R.BitcoinCash:case R.Bitcoin:return I$({address:$,chain:_});case R.Cosmos:case R.Kujira:case R.Maya:case R.THORChain:return R$({address:$,chain:_});case R.Polkadot:return G$({address:$,chain:_});case R.Radix:return z$($);case R.Solana:return D$($);default:return!1}}async function f($,_=!0){const L=[P.from({chain:$})],q=U($);if(!q)throw new X("core_wallet_connection_not_found");if("getBalance"in q){const I=await q.getBalance(q.address,_);q.balance=I?.length?I:L}return q}function h({route:$,pluginName:_,...L}){const q=_&&y(_)||A($.providers[0]);if(!q)throw new X("core_swap_route_not_complete");if("swap"in q)return q.swap({...L,route:$});throw new X("core_plugin_swap_not_found")}function c({assetValue:$,..._}){const L=$.chain,q=U(L);if(!q)throw new X("core_wallet_connection_not_found");return q.transfer({..._,assetValue:$})}function r({chain:$,message:_}){const L=U($);if(!L)throw new X("core_wallet_connection_not_found");if("signMessage"in L)return L.signMessage?.(_);throw new X({errorKey:"core_wallet_sign_message_not_supported",info:{chain:$,wallet:L.walletType}})}async function d({address:$,chain:_,message:L,signature:q}){switch(_){case R.THORChain:{const{getToolboxByChain:I}=await import("@swapkit/toolbox-cosmos");return I(_)().verifySignature({signature:q,message:L,address:$})}default:throw new X({errorKey:"core_verify_message_not_supported",info:{chain:_}})}}async function p({type:$,feeOptionKey:_,params:L}){const{assetValue:q}=L,{chain:I}=q;if(!U(I))throw new X("core_wallet_connection_not_found");const k=P.from({chain:I});switch(I){case R.Arbitrum:case R.Avalanche:case R.Ethereum:case R.BinanceSmartChain:case R.Polygon:{const J=U(I);if($==="transfer"){const Y=await J.createTransferTx(L);return J.estimateTransactionFee(Y,_)}if($==="approve"&&!q.isGasAsset)return J.estimateTransactionFee(await J.createApprovalTx({assetAddress:q.address,spenderAddress:L.contractAddress,amount:q.getBaseValue("bigint"),from:J.address}),_);if($==="swap"){if(L.route.providers[0]===b.CHAINFLIP){const i=await J.createTransferTx({from:J.address,recipient:J.address,assetValue:q});return J.estimateTransactionFee(i,_)}const{tx:Z}=L.route;if(!Z)return;return J.estimateTransactionFee({...Z,value:BigInt(Z.value)},_)}return P.from({chain:I})}case R.Bitcoin:case R.BitcoinCash:case R.Dogecoin:case R.Dash:case R.Litecoin:{const{estimateTransactionFee:J,address:Y}=U(I);return J({...L,feeOptionKey:_,from:Y,recipient:Y})}case R.THORChain:case R.Maya:case R.Kujira:case R.Cosmos:return L$(L);case R.Polkadot:{const{address:J,estimateTransactionFee:Y}=U(I);return Y({...L,recipient:J})}default:return k}}return{...H,...K,disconnectAll:u,disconnectChain:M,estimateTransactionFee:p,getAddress:m,getAllWallets:C,getBalance:g,getExplorerAddressUrl:S,getExplorerTxUrl:N,getWallet:U,getWalletWithBalance:f,approveAssetValue:V,isAssetValueApproved:w,signMessage:r,swap:h,transfer:c,validateAddress:o,verifyMessage:d}}export{E$ as stripToCashAddress,F$ as SwapKit};
1
+ var t=Object.create;var{getPrototypeOf:l,defineProperty:E,getOwnPropertyNames:e}=Object;var a=Object.prototype.hasOwnProperty;var N=(z,G,Q)=>{Q=z!=null?t(l(z)):{};const B=G||!z||!z.__esModule?E(Q,"default",{value:z,enumerable:!0}):Q;for(let H of e(z))if(!a.call(B,H))E(B,H,{get:()=>z[H],enumerable:!0});return B};var Z=((z)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(z,{get:(G,Q)=>(typeof require!=="undefined"?require:G)[Q]}):z)(function(z){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});export*from"@swapkit/api";export*from"@swapkit/helpers";import{ApproveMode as k,AssetValue as M,Chain as R,EVMChains as _$,ProviderName as K,SwapKitError as X}from"@swapkit/helpers";import{Chain as D,ChainToExplorerUrl as S,SwapKitError as $$}from"@swapkit/helpers";function v({chain:z,txHash:G}){const Q=S[z];switch(z){case D.Maya:case D.Kujira:case D.Cosmos:case D.THORChain:case D.Solana:return`${Q}/tx/${G.startsWith("0x")?G.slice(2):G}`;case D.Arbitrum:case D.Avalanche:case D.BinanceSmartChain:case D.Ethereum:case D.Optimism:case D.Polkadot:case D.Polygon:return`${Q}/tx/${G.startsWith("0x")?G:`0x${G}`}`;case D.Litecoin:case D.Bitcoin:case D.BitcoinCash:case D.Dogecoin:case D.Radix:return`${Q}/transaction/${G.toLowerCase()}`;default:throw new $$({errorKey:"core_explorer_unsupported_chain",info:{chain:z}})}}function b({chain:z,address:G}){const Q=S[z];switch(z){case D.Solana:case D.Radix:return`${Q}/account/${G}`;default:return`${Q}/address/${G}`}}function G$({apis:z={},config:G={},plugins:Q,rpcUrls:B={},stagenet:H=!1,wallets:y={}}={}){const T={},F=Object.entries(Q||{}).reduce(($,[_,{plugin:L,config:q}])=>{const I=L({getWallet:U,stagenet:H,config:q??G});return $[_]=I,$},{}),W=Object.entries(y).reduce(($,[_,L])=>{const q=L({addChain:m,config:G,apis:z,rpcUrls:B});return $[_]=q,$},{});function A($){const _=F[$]||Object.values(F)[0];if(!_)throw new X("core_plugin_not_found");return _}function C($){const _=Object.values(F).find((L)=>L.supportedSwapkitProviders?.includes($));if(!_)throw new X("core_plugin_not_found");return _}function m($){const _=U($.chain);T[$.chain]={..._,...$}}function x({assetValue:$,type:_="checkOnly",contractAddress:L}){const q=F[L];if(q){if(_===k.CheckOnly&&"isAssetValueApproved"in q)return q.isAssetValueApproved({assetValue:$});if(_===k.Approve&&"approveAssetValue"in q)return q.approveAssetValue({assetValue:$});throw new X({errorKey:"core_approve_asset_target_invalid",info:{message:`Target ${String(L)} cannot be used for approve operation`}})}const I=$.chain,P=_$.includes(I);if(P&&$.isGasAsset||!P||$.isSynthetic)return Promise.resolve(_==="checkOnly"?!0:"approved");const Y=U(I),j=_==="checkOnly"?Y.isApproved:Y.approve;if(!j)throw new X("core_wallet_connection_not_found");if(!($.address&&Y.address&&typeof L==="string"))throw new X("core_approve_asset_address_or_from_not_found");return j({amount:$.getBaseValue("bigint"),assetAddress:$.address,from:Y.address,spenderAddress:L})}function U($){return T[$]}function V(){return{...T}}function w($){return U($)?.address||""}function u($,_){return x({assetValue:$,contractAddress:_,type:k.Approve})}function g($,_){return x({assetValue:$,contractAddress:_,type:k.CheckOnly})}function f($){U($)?.disconnect?.(),delete T[$]}function o(){for(let $ of Object.keys(T))f($)}function h($,_){return _?O($).then(({balance:L})=>L):U($)?.balance||[]}function c({address:$,chain:_}){switch(console.warn("validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'"),_){case R.Arbitrum:case R.Avalanche:case R.Optimism:case R.BinanceSmartChain:case R.Polygon:case R.Ethereum:{const{evmValidateAddress:L}=Z("@swapkit/toolbox-evm");return L({address:$})}case R.Litecoin:case R.Dash:case R.Dogecoin:case R.BitcoinCash:case R.Bitcoin:{const{utxoValidateAddress:L}=Z("@swapkit/toolbox-utxo");return L({address:$,chain:_})}case R.Cosmos:case R.Kujira:case R.Maya:case R.THORChain:{const{cosmosValidateAddress:L}=Z("@swapkit/toolbox-cosmos");return L({address:$,chain:_})}case R.Polkadot:{const{substrateValidateAddress:L}=Z("@swapkit/toolbox-substrate");return L({address:$,chain:_})}case R.Radix:{const{validateRadixAddress:L}=Z("@swapkit/toolbox-radix");return L($)}case R.Solana:{const{solanaValidateAddress:L}=Z("@swapkit/toolbox-solana");return L($)}default:return!1}}async function O($,_=!0){const L=[M.from({chain:$})],q=U($);if(!q)throw new X("core_wallet_connection_not_found");if("getBalance"in q){const I=await q.getBalance(q.address,_);q.balance=I?.length?I:L}return q}function r({route:$,pluginName:_,...L}){const q=_&&A(_)||C($.providers[0]);if(!q)throw new X("core_swap_route_not_complete");if("swap"in q)return q.swap({...L,route:$});throw new X("core_plugin_swap_not_found")}function d({assetValue:$,..._}){const L=$.chain,q=U(L);if(!q)throw new X("core_wallet_connection_not_found");return q.transfer({..._,assetValue:$})}function p({chain:$,message:_}){const L=U($);if(!L)throw new X("core_wallet_connection_not_found");if("signMessage"in L)return L.signMessage?.(_);throw new X({errorKey:"core_wallet_sign_message_not_supported",info:{chain:$,wallet:L.walletType}})}async function i({address:$,chain:_,message:L,signature:q}){switch(_){case R.THORChain:{const{getToolboxByChain:I}=await import("@swapkit/toolbox-cosmos");return I(_)().verifySignature({signature:q,message:L,address:$})}default:throw new X({errorKey:"core_verify_message_not_supported",info:{chain:_}})}}async function n({type:$,feeOptionKey:_,params:L}){const{assetValue:q}=L,{chain:I}=q;if(!U(I))throw new X("core_wallet_connection_not_found");const P=M.from({chain:I});switch(I){case R.Arbitrum:case R.Avalanche:case R.Ethereum:case R.BinanceSmartChain:case R.Polygon:{const J=U(I);if($==="transfer"){const Y=await J.createTransferTx(L);return J.estimateTransactionFee(Y,_)}if($==="approve"&&!q.isGasAsset)return J.estimateTransactionFee(await J.createApprovalTx({assetAddress:q.address,spenderAddress:L.contractAddress,amount:q.getBaseValue("bigint"),from:J.address}),_);if($==="swap"){if(L.route.providers[0]===K.CHAINFLIP){const s=await J.createTransferTx({from:J.address,recipient:J.address,assetValue:q});return J.estimateTransactionFee(s,_)}const{tx:j}=L.route;if(!j)return;return J.estimateTransactionFee({...j,value:BigInt(j.value)},_)}return M.from({chain:I})}case R.Bitcoin:case R.BitcoinCash:case R.Dogecoin:case R.Dash:case R.Litecoin:{const{estimateTransactionFee:J,address:Y}=U(I);return J({...L,feeOptionKey:_,from:Y,recipient:Y})}case R.THORChain:case R.Maya:case R.Kujira:case R.Cosmos:{const{estimateTransactionFee:J}=await import("@swapkit/toolbox-cosmos");return J(L)}case R.Polkadot:{const{address:J,estimateTransactionFee:Y}=U(I);return Y({...L,recipient:J})}default:return P}}return{...F,...W,disconnectAll:o,disconnectChain:f,estimateTransactionFee:n,getAddress:w,getAllWallets:V,getBalance:h,getExplorerAddressUrl:b,getExplorerTxUrl:v,getWallet:U,getWalletWithBalance:O,approveAssetValue:u,isAssetValueApproved:g,signMessage:p,swap:r,transfer:d,validateAddress:c,verifyMessage:i}}export{G$ as SwapKit};
2
2
 
3
- //# debugId=AF8E80B7E1B2887D64756E2164756E21
3
+ //# debugId=467509CF4151FCD764756E2164756E21
package/dist/index.js.map CHANGED
@@ -2,11 +2,11 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/client.ts", "../src/helpers/explorerUrls.ts"],
4
4
  "sourcesContent": [
5
- "export * from \"@swapkit/api\";\nexport * from \"@swapkit/helpers\";\nexport { stripToCashAddress } from \"@swapkit/toolbox-utxo\";\n\nexport * from \"./client\";\n",
6
- "import type { QuoteResponseRoute } 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 {\n type TransferParams as CosmosTransferParams,\n estimateTransactionFee as cosmosTransactionFee,\n cosmosValidateAddress,\n} from \"@swapkit/toolbox-cosmos\";\nimport { type TransferParams as EVMTransferParams, evmValidateAddress } from \"@swapkit/toolbox-evm\";\nimport { validateAddress as validateRadixAddress } from \"@swapkit/toolbox-radix\";\nimport { validateAddress as solanaValidateAddress } from \"@swapkit/toolbox-solana\";\nimport { substrateValidateAddress } from \"@swapkit/toolbox-substrate\";\nimport { type UTXOTransferParams, utxoValidateAddress } 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 // TODO: migrate to `config` only\n stagenet?: boolean;\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 stagenet = false,\n wallets = {} as Wallets,\n}: SwapKitParams<Plugins, Wallets> = {}) {\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 Chain>(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 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 case Chain.Polkadot:\n return substrateValidateAddress({ address, chain });\n\n case Chain.Radix:\n return validateRadixAddress(address);\n\n case Chain.Solana:\n return solanaValidateAddress(address);\n\n default:\n return false;\n }\n }\n\n async function getWalletWithBalance<T extends Chain>(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 WalletChain;\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: 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)) 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({ ...tx, value: BigInt(tx.value) }, feeOptionKey);\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 return cosmosTransactionFee(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 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 };\n}\n",
5
+ "export * from \"@swapkit/api\";\nexport * from \"@swapkit/helpers\";\nexport * from \"./client\";\n",
6
+ "import type { QuoteResponseRoute } 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 // TODO: migrate to `config` only\n stagenet?: boolean;\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 stagenet = false,\n wallets = {} as Wallets,\n}: SwapKitParams<Plugins, Wallets> = {}) {\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 Chain>(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, chain }: { address: string; chain: Chain }) {\n console.warn(\n \"validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'\",\n );\n\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 const { evmValidateAddress } = require(\"@swapkit/toolbox-evm\");\n return evmValidateAddress({ address });\n }\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin: {\n const { utxoValidateAddress } = require(\"@swapkit/toolbox-utxo\");\n return utxoValidateAddress({ address, chain });\n }\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n const { cosmosValidateAddress } = require(\"@swapkit/toolbox-cosmos\");\n return cosmosValidateAddress({ address, chain });\n }\n\n case Chain.Polkadot: {\n const { substrateValidateAddress } = require(\"@swapkit/toolbox-substrate\");\n return substrateValidateAddress({ address, chain });\n }\n\n case Chain.Radix: {\n const { validateRadixAddress } = require(\"@swapkit/toolbox-radix\");\n return validateRadixAddress(address);\n }\n\n case Chain.Solana: {\n const { solanaValidateAddress } = require(\"@swapkit/toolbox-solana\");\n return solanaValidateAddress(address);\n }\n\n default:\n return false;\n }\n }\n\n async function getWalletWithBalance<T extends Chain>(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 WalletChain;\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: 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)) 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({ ...tx, value: BigInt(tx.value) }, feeOptionKey);\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 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 };\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.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
  ],
9
- "mappings": "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",
10
- "debugId": "AF8E80B7E1B2887D64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "467509CF4151FCD764756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "author": "swapkit-oss",
3
3
  "dependencies": {
4
- "@swapkit/api": "1.9.3",
5
- "@swapkit/helpers": "1.13.0",
6
- "@swapkit/plugin-evm": "1.1.26",
7
- "@swapkit/toolbox-cosmos": "1.3.14",
8
- "@swapkit/toolbox-evm": "1.5.5",
9
- "@swapkit/toolbox-radix": "1.2.9",
10
- "@swapkit/toolbox-solana": "1.1.13",
11
- "@swapkit/toolbox-substrate": "1.2.17",
12
- "@swapkit/toolbox-utxo": "1.1.22"
4
+ "@swapkit/api": "1.9.5",
5
+ "@swapkit/helpers": "1.13.2",
6
+ "@swapkit/plugin-evm": "1.1.28",
7
+ "@swapkit/toolbox-cosmos": "1.3.16",
8
+ "@swapkit/toolbox-evm": "1.5.7",
9
+ "@swapkit/toolbox-radix": "1.2.11",
10
+ "@swapkit/toolbox-solana": "1.1.15",
11
+ "@swapkit/toolbox-substrate": "1.2.19",
12
+ "@swapkit/toolbox-utxo": "1.1.24"
13
13
  },
14
14
  "description": "SwapKit - Core",
15
15
  "files": [
@@ -20,7 +20,6 @@
20
20
  "license": "Apache-2.0",
21
21
  "main": "./dist/index.js",
22
22
  "name": "@swapkit/core",
23
- "react-native": "./src/index.ts",
24
23
  "repository": {
25
24
  "type": "git",
26
25
  "url": "git+https://github.com/thorswap/SwapKit.git"
@@ -35,5 +34,5 @@
35
34
  },
36
35
  "type": "module",
37
36
  "types": "./src/index.ts",
38
- "version": "1.4.15"
37
+ "version": "1.4.17"
39
38
  }
package/src/client.ts CHANGED
@@ -20,16 +20,9 @@ import {
20
20
  type SwapParams,
21
21
  type WalletChain,
22
22
  } from "@swapkit/helpers";
23
- import {
24
- type TransferParams as CosmosTransferParams,
25
- estimateTransactionFee as cosmosTransactionFee,
26
- cosmosValidateAddress,
27
- } from "@swapkit/toolbox-cosmos";
28
- import { type TransferParams as EVMTransferParams, evmValidateAddress } from "@swapkit/toolbox-evm";
29
- import { validateAddress as validateRadixAddress } from "@swapkit/toolbox-radix";
30
- import { validateAddress as solanaValidateAddress } from "@swapkit/toolbox-solana";
31
- import { substrateValidateAddress } from "@swapkit/toolbox-substrate";
32
- import { type UTXOTransferParams, utxoValidateAddress } from "@swapkit/toolbox-utxo";
23
+ import type { TransferParams as CosmosTransferParams } from "@swapkit/toolbox-cosmos";
24
+ import type { TransferParams as EVMTransferParams } from "@swapkit/toolbox-evm";
25
+ import type { UTXOTransferParams } from "@swapkit/toolbox-utxo";
33
26
 
34
27
  import {
35
28
  getExplorerAddressUrl as getAddressUrl,
@@ -213,37 +206,56 @@ export function SwapKit<
213
206
  ) as ConditionalAssetValueReturn<R>;
214
207
  }
215
208
 
209
+ /**
210
+ * @deprecated - use toolbox directly or use getAddressValidator() function
211
+ */
216
212
  function validateAddress({ address, chain }: { address: string; chain: Chain }) {
213
+ console.warn(
214
+ "validateAddress is deprecated - use toolbox directly or import { getAddressValidator } from '@swapkit/core'",
215
+ );
216
+
217
217
  switch (chain) {
218
218
  case Chain.Arbitrum:
219
219
  case Chain.Avalanche:
220
220
  case Chain.Optimism:
221
221
  case Chain.BinanceSmartChain:
222
222
  case Chain.Polygon:
223
- case Chain.Ethereum:
223
+ case Chain.Ethereum: {
224
+ const { evmValidateAddress } = require("@swapkit/toolbox-evm");
224
225
  return evmValidateAddress({ address });
226
+ }
225
227
 
226
228
  case Chain.Litecoin:
227
229
  case Chain.Dash:
228
230
  case Chain.Dogecoin:
229
231
  case Chain.BitcoinCash:
230
- case Chain.Bitcoin:
232
+ case Chain.Bitcoin: {
233
+ const { utxoValidateAddress } = require("@swapkit/toolbox-utxo");
231
234
  return utxoValidateAddress({ address, chain });
235
+ }
232
236
 
233
237
  case Chain.Cosmos:
234
238
  case Chain.Kujira:
235
239
  case Chain.Maya:
236
- case Chain.THORChain:
240
+ case Chain.THORChain: {
241
+ const { cosmosValidateAddress } = require("@swapkit/toolbox-cosmos");
237
242
  return cosmosValidateAddress({ address, chain });
243
+ }
238
244
 
239
- case Chain.Polkadot:
245
+ case Chain.Polkadot: {
246
+ const { substrateValidateAddress } = require("@swapkit/toolbox-substrate");
240
247
  return substrateValidateAddress({ address, chain });
248
+ }
241
249
 
242
- case Chain.Radix:
250
+ case Chain.Radix: {
251
+ const { validateRadixAddress } = require("@swapkit/toolbox-radix");
243
252
  return validateRadixAddress(address);
253
+ }
244
254
 
245
- case Chain.Solana:
255
+ case Chain.Solana: {
256
+ const { solanaValidateAddress } = require("@swapkit/toolbox-solana");
246
257
  return solanaValidateAddress(address);
258
+ }
247
259
 
248
260
  default:
249
261
  return false;
@@ -418,7 +430,8 @@ export function SwapKit<
418
430
  case Chain.Maya:
419
431
  case Chain.Kujira:
420
432
  case Chain.Cosmos: {
421
- return cosmosTransactionFee(params);
433
+ const { estimateTransactionFee } = await import("@swapkit/toolbox-cosmos");
434
+ return estimateTransactionFee(params);
422
435
  }
423
436
 
424
437
  case Chain.Polkadot: {
@@ -0,0 +1,51 @@
1
+ import { Chain } from "@swapkit/helpers";
2
+
3
+ export async function getAddressValidator() {
4
+ const { cosmosValidateAddress } = await import("@swapkit/toolbox-cosmos");
5
+ const { evmValidateAddress } = await import("@swapkit/toolbox-evm");
6
+ const { substrateValidateAddress } = await import("@swapkit/toolbox-substrate");
7
+ const { utxoValidateAddress } = await import("@swapkit/toolbox-utxo");
8
+ const { validateAddress: solanaValidateAddress } = await import("@swapkit/toolbox-solana");
9
+ const { validateAddress: validateRadixAddress } = await import("@swapkit/toolbox-radix");
10
+
11
+ return function validateAddress({ address, chain }: { address: string; chain: Chain }) {
12
+ switch (chain) {
13
+ case Chain.Arbitrum:
14
+ case Chain.Avalanche:
15
+ case Chain.Optimism:
16
+ case Chain.BinanceSmartChain:
17
+ case Chain.Polygon:
18
+ case Chain.Ethereum:
19
+ return evmValidateAddress;
20
+
21
+ case Chain.Litecoin:
22
+ case Chain.Dash:
23
+ case Chain.Dogecoin:
24
+ case Chain.BitcoinCash:
25
+ case Chain.Bitcoin:
26
+ return utxoValidateAddress({ address, chain });
27
+
28
+ case Chain.Cosmos:
29
+ case Chain.Kujira:
30
+ case Chain.Maya:
31
+ case Chain.THORChain: {
32
+ return cosmosValidateAddress({ address, chain });
33
+ }
34
+
35
+ case Chain.Polkadot: {
36
+ return substrateValidateAddress({ address, chain });
37
+ }
38
+
39
+ case Chain.Radix: {
40
+ return validateRadixAddress;
41
+ }
42
+
43
+ case Chain.Solana: {
44
+ return solanaValidateAddress;
45
+ }
46
+
47
+ default:
48
+ return () => false;
49
+ }
50
+ };
51
+ }
package/src/index.ts CHANGED
@@ -1,5 +1,3 @@
1
1
  export * from "@swapkit/api";
2
2
  export * from "@swapkit/helpers";
3
- export { stripToCashAddress } from "@swapkit/toolbox-utxo";
4
-
5
3
  export * from "./client";