@swapkit/core 1.0.0-rc.128 → 1.0.0-rc.129
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 +8 -9
- package/dist/index.js.map +3 -3
- package/package.json +5 -5
- package/src/client.ts +12 -14
- package/src/types.ts +3 -15
package/dist/index.js
CHANGED
|
@@ -115,16 +115,15 @@ function SwapKit({
|
|
|
115
115
|
function getAddress(chain) {
|
|
116
116
|
return getWallet(chain)?.address || "";
|
|
117
117
|
}
|
|
118
|
-
|
|
118
|
+
function validateAddress({ address, chain }) {
|
|
119
|
+
return getWallet(chain)?.validateAddress?.(address);
|
|
120
|
+
}
|
|
121
|
+
function getBalance(chain, refresh) {
|
|
119
122
|
if (refresh) {
|
|
120
|
-
|
|
121
|
-
return wallet.balance || [];
|
|
123
|
+
return getWalletWithBalance(chain).then((wallet) => wallet.balance);
|
|
122
124
|
}
|
|
123
125
|
return getWallet(chain)?.balance || [];
|
|
124
126
|
}
|
|
125
|
-
function validateAddress({ address, chain }) {
|
|
126
|
-
return getWallet(chain)?.validateAddress?.(address);
|
|
127
|
-
}
|
|
128
127
|
async function getWalletWithBalance(chain, potentialScamFilter = true) {
|
|
129
128
|
const defaultBalance = [AssetValue.fromChainOrSignature(chain)];
|
|
130
129
|
const wallet = getWallet(chain);
|
|
@@ -153,11 +152,11 @@ function SwapKit({
|
|
|
153
152
|
return {
|
|
154
153
|
...availablePlugins,
|
|
155
154
|
...connectWalletMethods,
|
|
156
|
-
getExplorerAddressUrl,
|
|
157
|
-
getExplorerTxUrl,
|
|
158
155
|
approveAssetValue,
|
|
159
156
|
getAddress,
|
|
160
157
|
getBalance,
|
|
158
|
+
getExplorerAddressUrl,
|
|
159
|
+
getExplorerTxUrl,
|
|
161
160
|
getWallet,
|
|
162
161
|
getWalletWithBalance,
|
|
163
162
|
isAssetValueApproved,
|
|
@@ -169,4 +168,4 @@ export {
|
|
|
169
168
|
SwapKit
|
|
170
169
|
};
|
|
171
170
|
|
|
172
|
-
//# debugId=
|
|
171
|
+
//# debugId=6A4444F893D7D5AD64756e2164756e21
|
package/dist/index.js.map
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"sources": ["../src/index.ts", "../src/client.ts", "../src/helpers/explorerUrls.ts", "../src/client.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export * from \"@swapkit/api\";\nexport * from \"@swapkit/helpers\";\n\nexport * from \"./client.ts\";\n",
|
|
6
|
-
"import {\n type AddChainWalletParams,\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ConnectConfig,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { BaseEVMWallet } from \"@swapkit/toolbox-evm\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls.ts\";\nimport type { Apis, SwapKitPluginInterface, SwapKitWallet
|
|
6
|
+
"import {\n type AddChainWalletParams,\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ConnectConfig,\n SwapKitError,\n type SwapParams,\n type Wallet,\n} from \"@swapkit/helpers\";\nimport type { BaseEVMWallet } from \"@swapkit/toolbox-evm\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls.ts\";\nimport type { Apis, SwapKitPluginInterface, SwapKitWallet } from \"./types.ts\";\n\nexport function SwapKit<\n Plugins extends { [key in string]: SwapKitPluginInterface<{ [key in string]: Todo }> },\n Wallets extends { [key in string]: SwapKitWallet<NotWorth[]> },\n>({\n apis = {},\n config = {},\n plugins,\n rpcUrls = {},\n stagenet = false,\n wallets,\n}: {\n apis?: Apis;\n config?: ConnectConfig;\n plugins: Plugins;\n rpcUrls?: { [key in Chain]?: string };\n stagenet?: boolean;\n wallets: Wallets;\n}) {\n type PluginName = keyof Plugins;\n\n /**\n * @REMOVE (V1)\n * Compatibility layer for plugins and wallets for easier migration and backwards compatibility\n */\n const compatPlugins: Plugins = Array.isArray(plugins)\n ? plugins.reduce((acc, pluginInterface) => {\n // @ts-expect-error Ignore until we remove the compatibility layer\n const { name, plugin } = Object.values(pluginInterface)?.[0] || {};\n acc[name] = plugin;\n return acc;\n }, {})\n : plugins;\n const compatWallets: Wallets = Array.isArray(wallets)\n ? wallets.reduce((acc, wallet) => {\n // @ts-expect-error Ignore until we remove the compatibility layer\n const [walletName, connectWallet] = Object.entries(wallet)?.[0] || {};\n acc[walletName] = connectWallet;\n return acc;\n }, {})\n : wallets;\n\n const connectedWallets = {} as Wallet;\n const availablePlugins = Object.entries(compatPlugins).reduce(\n (acc, [pluginName, { plugin, config }]) => {\n const methods = plugin({ wallets: connectedWallets, stagenet, config });\n\n // @ts-expect-error\n acc[pluginName] = methods;\n return acc;\n },\n {} as { [key in PluginName]: ReturnType<Plugins[key][\"plugin\"]> },\n );\n\n const connectWalletMethods = Object.entries(compatWallets).reduce(\n (acc, [walletName, wallet]) => {\n const connectWallet = wallet({ addChain, config, apis, rpcUrls });\n\n // @ts-expect-error\n acc[walletName] = connectWallet;\n return acc;\n },\n {} as { [key in keyof Wallets]: ReturnType<Wallets[key]> },\n );\n\n /**\n * @Private\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\", \"Could not find the requested plugin\");\n }\n\n return plugin;\n }\n\n function addChain<T extends Chain>(connectWallet: AddChainWalletParams<T>) {\n // @ts-expect-error: TODO\n connectedWallets[connectWallet.chain] = connectWallet;\n }\n\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;\n }) {\n const { address, chain, isGasAsset, isSynthetic } = assetValue;\n const isEVMChain = [Chain.Ethereum, Chain.Avalanche, Chain.BinanceSmartChain].includes(chain);\n const isNativeEVM = isEVMChain && isGasAsset;\n\n if (isNativeEVM || !isEVMChain || isSynthetic) {\n return Promise.resolve(type === \"checkOnly\" ? true : \"approved\") as ApproveReturnType<T>;\n }\n\n const walletMethods = connectedWallets[chain] as BaseEVMWallet;\n const walletAction = type === \"checkOnly\" ? walletMethods?.isApproved : walletMethods?.approve;\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const from = getAddress(chain);\n if (!(address && from)) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: address,\n from,\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 function getAddress<T extends Chain>(chain: T) {\n return getWallet(chain)?.address || \"\";\n }\n /**\n * TODO: Figure out validation without connecting to wallet\n */\n function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n return getWallet(chain)?.validateAddress?.(address);\n }\n\n function getBalance<T extends Chain>(chain: T, refresh?: boolean) {\n if (refresh) {\n return getWalletWithBalance(chain).then((wallet) => wallet.balance);\n }\n\n return getWallet(chain)?.balance || [];\n }\n\n async function getWalletWithBalance<T extends Chain>(chain: T, potentialScamFilter = true) {\n const defaultBalance = [AssetValue.fromChainOrSignature(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 approveAssetValue(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.Approve });\n }\n\n function isAssetValueApproved(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });\n }\n\n function swap<T extends PluginName>({ pluginName, ...rest }: SwapParams<T>) {\n const plugin = getSwapKitPlugin(pluginName);\n\n if (\"swap\" in plugin) {\n return plugin.swap(rest);\n }\n\n throw new SwapKitError(\"core_plugin_swap_not_found\");\n }\n\n return {\n ...availablePlugins,\n ...connectWalletMethods,\n\n approveAssetValue,\n getAddress,\n getBalance,\n getExplorerAddressUrl: getAddressUrl,\n getExplorerTxUrl: getTxUrl,\n getWallet,\n getWalletWithBalance,\n isAssetValueApproved,\n swap,\n validateAddress,\n };\n}\n",
|
|
7
7
|
"import { Chain, ChainToExplorerUrl } 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.Binance:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos:\n case Chain.THORChain:\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 return `${baseUrl}/transaction/${txHash.toLowerCase()}`;\n\n default:\n throw new Error(`Unsupported chain: ${chain}`);\n }\n}\n\nexport function getExplorerAddressUrl({ chain, address }: { address: string; chain: Chain }) {\n const baseUrl = ChainToExplorerUrl[chain];\n\n return `${baseUrl}/address/${address}`;\n}\n",
|
|
8
|
-
"import {\n type AddChainWalletParams,\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ConnectConfig,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { BaseEVMWallet } from \"@swapkit/toolbox-evm\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls.ts\";\nimport type { Apis, SwapKitPluginInterface, SwapKitWallet
|
|
8
|
+
"import {\n type AddChainWalletParams,\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n Chain,\n type ConnectConfig,\n SwapKitError,\n type SwapParams,\n type Wallet,\n} from \"@swapkit/helpers\";\nimport type { BaseEVMWallet } from \"@swapkit/toolbox-evm\";\n\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"./helpers/explorerUrls.ts\";\nimport type { Apis, SwapKitPluginInterface, SwapKitWallet } from \"./types.ts\";\n\nexport function SwapKit<\n Plugins extends { [key in string]: SwapKitPluginInterface<{ [key in string]: Todo }> },\n Wallets extends { [key in string]: SwapKitWallet<NotWorth[]> },\n>({\n apis = {},\n config = {},\n plugins,\n rpcUrls = {},\n stagenet = false,\n wallets,\n}: {\n apis?: Apis;\n config?: ConnectConfig;\n plugins: Plugins;\n rpcUrls?: { [key in Chain]?: string };\n stagenet?: boolean;\n wallets: Wallets;\n}) {\n type PluginName = keyof Plugins;\n\n /**\n * @REMOVE (V1)\n * Compatibility layer for plugins and wallets for easier migration and backwards compatibility\n */\n const compatPlugins: Plugins = Array.isArray(plugins)\n ? plugins.reduce((acc, pluginInterface) => {\n // @ts-expect-error Ignore until we remove the compatibility layer\n const { name, plugin } = Object.values(pluginInterface)?.[0] || {};\n acc[name] = plugin;\n return acc;\n }, {})\n : plugins;\n const compatWallets: Wallets = Array.isArray(wallets)\n ? wallets.reduce((acc, wallet) => {\n // @ts-expect-error Ignore until we remove the compatibility layer\n const [walletName, connectWallet] = Object.entries(wallet)?.[0] || {};\n acc[walletName] = connectWallet;\n return acc;\n }, {})\n : wallets;\n\n const connectedWallets = {} as Wallet;\n const availablePlugins = Object.entries(compatPlugins).reduce(\n (acc, [pluginName, { plugin, config }]) => {\n const methods = plugin({ wallets: connectedWallets, stagenet, config });\n\n // @ts-expect-error\n acc[pluginName] = methods;\n return acc;\n },\n {} as { [key in PluginName]: ReturnType<Plugins[key][\"plugin\"]> },\n );\n\n const connectWalletMethods = Object.entries(compatWallets).reduce(\n (acc, [walletName, wallet]) => {\n const connectWallet = wallet({ addChain, config, apis, rpcUrls });\n\n // @ts-expect-error\n acc[walletName] = connectWallet;\n return acc;\n },\n {} as { [key in keyof Wallets]: ReturnType<Wallets[key]> },\n );\n\n /**\n * @Private\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\", \"Could not find the requested plugin\");\n }\n\n return plugin;\n }\n\n function addChain<T extends Chain>(connectWallet: AddChainWalletParams<T>) {\n // @ts-expect-error: TODO\n connectedWallets[connectWallet.chain] = connectWallet;\n }\n\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;\n }) {\n const { address, chain, isGasAsset, isSynthetic } = assetValue;\n const isEVMChain = [Chain.Ethereum, Chain.Avalanche, Chain.BinanceSmartChain].includes(chain);\n const isNativeEVM = isEVMChain && isGasAsset;\n\n if (isNativeEVM || !isEVMChain || isSynthetic) {\n return Promise.resolve(type === \"checkOnly\" ? true : \"approved\") as ApproveReturnType<T>;\n }\n\n const walletMethods = connectedWallets[chain] as BaseEVMWallet;\n const walletAction = type === \"checkOnly\" ? walletMethods?.isApproved : walletMethods?.approve;\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const from = getAddress(chain);\n if (!(address && from)) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: address,\n from,\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 function getAddress<T extends Chain>(chain: T) {\n return getWallet(chain)?.address || \"\";\n }\n /**\n * TODO: Figure out validation without connecting to wallet\n */\n function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n return getWallet(chain)?.validateAddress?.(address);\n }\n\n function getBalance<T extends Chain>(chain: T, refresh?: boolean) {\n if (refresh) {\n return getWalletWithBalance(chain).then((wallet) => wallet.balance);\n }\n\n return getWallet(chain)?.balance || [];\n }\n\n async function getWalletWithBalance<T extends Chain>(chain: T, potentialScamFilter = true) {\n const defaultBalance = [AssetValue.fromChainOrSignature(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 approveAssetValue(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.Approve });\n }\n\n function isAssetValueApproved(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });\n }\n\n function swap<T extends PluginName>({ pluginName, ...rest }: SwapParams<T>) {\n const plugin = getSwapKitPlugin(pluginName);\n\n if (\"swap\" in plugin) {\n return plugin.swap(rest);\n }\n\n throw new SwapKitError(\"core_plugin_swap_not_found\");\n }\n\n return {\n ...availablePlugins,\n ...connectWalletMethods,\n\n approveAssetValue,\n getAddress,\n getBalance,\n getExplorerAddressUrl: getAddressUrl,\n getExplorerTxUrl: getTxUrl,\n getWallet,\n getWalletWithBalance,\n isAssetValueApproved,\n swap,\n validateAddress,\n };\n}\n"
|
|
9
9
|
],
|
|
10
10
|
"mappings": ";AAAA;AACA;;;ACDA;AAAA;AAAA;AAAA,SAKE;AAAA;AAAA;;;ACLF;AAEO,SAAS,gBAAgB,GAAG,OAAO,UAA4C;AACpF,QAAM,UAAU,mBAAmB;AAEnC,UAAQ;AAAA,SACD,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AACT,aAAO,GAAG,cAAc,OAAO,WAAW,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI;AAAA,SAEjE,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AACT,aAAO,GAAG,cAAc,OAAO,WAAW,IAAI,IAAI,SAAS,KAAK;AAAA,SAE7D,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AAAA,SACN,MAAM;AACT,aAAO,GAAG,uBAAuB,OAAO,YAAY;AAAA;AAGpD,YAAM,IAAI,MAAM,sBAAsB,OAAO;AAAA;AAAA;AAI5C,SAAS,qBAAqB,GAAG,OAAO,WAA8C;AAC3F,QAAM,UAAU,mBAAmB;AAEnC,SAAO,GAAG,mBAAmB;AAAA;",
|
|
11
|
-
"debugId": "
|
|
11
|
+
"debugId": "6A4444F893D7D5AD64756e2164756e21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "swapkit-oss",
|
|
3
3
|
"dependencies": {
|
|
4
|
-
"@swapkit/api": "1.0.0-rc.
|
|
4
|
+
"@swapkit/api": "1.0.0-rc.56",
|
|
5
5
|
"@swapkit/helpers": "1.0.0-rc.90"
|
|
6
6
|
},
|
|
7
7
|
"description": "SwapKit - Core",
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@swapkit/tokens": "1.0.0-rc.50",
|
|
10
|
-
"@swapkit/toolbox-cosmos": "1.0.0-rc.
|
|
10
|
+
"@swapkit/toolbox-cosmos": "1.0.0-rc.108",
|
|
11
11
|
"@swapkit/toolbox-evm": "1.0.0-rc.96",
|
|
12
12
|
"@swapkit/toolbox-substrate": "1.0.0-rc.25",
|
|
13
13
|
"@swapkit/toolbox-utxo": "1.0.0-rc.99",
|
|
14
14
|
"bun-types": "1.1.2"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@swapkit/api": "1.0.0-rc.
|
|
17
|
+
"@swapkit/api": "1.0.0-rc.56",
|
|
18
18
|
"@swapkit/helpers": "1.0.0-rc.90",
|
|
19
19
|
"@swapkit/tokens": "1.0.0-rc.50",
|
|
20
|
-
"@swapkit/toolbox-cosmos": "1.0.0-rc.
|
|
20
|
+
"@swapkit/toolbox-cosmos": "1.0.0-rc.108",
|
|
21
21
|
"@swapkit/toolbox-evm": "1.0.0-rc.96",
|
|
22
22
|
"@swapkit/toolbox-substrate": "1.0.0-rc.25",
|
|
23
23
|
"@swapkit/toolbox-utxo": "1.0.0-rc.99"
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
},
|
|
46
46
|
"type": "module",
|
|
47
47
|
"types": "./src/index.ts",
|
|
48
|
-
"version": "1.0.0-rc.
|
|
48
|
+
"version": "1.0.0-rc.129"
|
|
49
49
|
}
|
package/src/client.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
type ConnectConfig,
|
|
8
8
|
SwapKitError,
|
|
9
9
|
type SwapParams,
|
|
10
|
+
type Wallet,
|
|
10
11
|
} from "@swapkit/helpers";
|
|
11
12
|
import type { BaseEVMWallet } from "@swapkit/toolbox-evm";
|
|
12
13
|
|
|
@@ -14,7 +15,7 @@ import {
|
|
|
14
15
|
getExplorerAddressUrl as getAddressUrl,
|
|
15
16
|
getExplorerTxUrl as getTxUrl,
|
|
16
17
|
} from "./helpers/explorerUrls.ts";
|
|
17
|
-
import type { Apis, SwapKitPluginInterface, SwapKitWallet
|
|
18
|
+
import type { Apis, SwapKitPluginInterface, SwapKitWallet } from "./types.ts";
|
|
18
19
|
|
|
19
20
|
export function SwapKit<
|
|
20
21
|
Plugins extends { [key in string]: SwapKitPluginInterface<{ [key in string]: Todo }> },
|
|
@@ -82,7 +83,6 @@ export function SwapKit<
|
|
|
82
83
|
|
|
83
84
|
/**
|
|
84
85
|
* @Private
|
|
85
|
-
* Internal helpers
|
|
86
86
|
*/
|
|
87
87
|
function getSwapKitPlugin<T extends PluginName>(pluginName: T) {
|
|
88
88
|
const plugin = availablePlugins[pluginName] || Object.values(availablePlugins)[0];
|
|
@@ -135,7 +135,6 @@ export function SwapKit<
|
|
|
135
135
|
|
|
136
136
|
/**
|
|
137
137
|
* @Public
|
|
138
|
-
* Wallet helpers
|
|
139
138
|
*/
|
|
140
139
|
function getWallet<T extends Chain>(chain: T) {
|
|
141
140
|
return connectedWallets[chain];
|
|
@@ -143,14 +142,6 @@ export function SwapKit<
|
|
|
143
142
|
function getAddress<T extends Chain>(chain: T) {
|
|
144
143
|
return getWallet(chain)?.address || "";
|
|
145
144
|
}
|
|
146
|
-
async function getBalance<T extends Chain>(chain: T, refresh?: boolean) {
|
|
147
|
-
if (refresh) {
|
|
148
|
-
const wallet = await getWalletWithBalance(chain, true);
|
|
149
|
-
return wallet.balance || [];
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return getWallet(chain)?.balance || [];
|
|
153
|
-
}
|
|
154
145
|
/**
|
|
155
146
|
* TODO: Figure out validation without connecting to wallet
|
|
156
147
|
*/
|
|
@@ -158,6 +149,14 @@ export function SwapKit<
|
|
|
158
149
|
return getWallet(chain)?.validateAddress?.(address);
|
|
159
150
|
}
|
|
160
151
|
|
|
152
|
+
function getBalance<T extends Chain>(chain: T, refresh?: boolean) {
|
|
153
|
+
if (refresh) {
|
|
154
|
+
return getWalletWithBalance(chain).then((wallet) => wallet.balance);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return getWallet(chain)?.balance || [];
|
|
158
|
+
}
|
|
159
|
+
|
|
161
160
|
async function getWalletWithBalance<T extends Chain>(chain: T, potentialScamFilter = true) {
|
|
162
161
|
const defaultBalance = [AssetValue.fromChainOrSignature(chain)];
|
|
163
162
|
const wallet = getWallet(chain);
|
|
@@ -196,12 +195,11 @@ export function SwapKit<
|
|
|
196
195
|
...availablePlugins,
|
|
197
196
|
...connectWalletMethods,
|
|
198
197
|
|
|
199
|
-
getExplorerAddressUrl: getAddressUrl,
|
|
200
|
-
getExplorerTxUrl: getTxUrl,
|
|
201
|
-
|
|
202
198
|
approveAssetValue,
|
|
203
199
|
getAddress,
|
|
204
200
|
getBalance,
|
|
201
|
+
getExplorerAddressUrl: getAddressUrl,
|
|
202
|
+
getExplorerTxUrl: getTxUrl,
|
|
205
203
|
getWallet,
|
|
206
204
|
getWalletWithBalance,
|
|
207
205
|
isAssetValueApproved,
|
package/src/types.ts
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
ConnectWalletParams,
|
|
5
|
-
CosmosChain,
|
|
6
|
-
UTXOChain,
|
|
7
|
-
} from "@swapkit/helpers";
|
|
8
|
-
import type { CosmosWallets, ThorchainWallets } from "@swapkit/toolbox-cosmos";
|
|
9
|
-
import type { CovalentApiType, EVMWallets, EthplorerApiType } from "@swapkit/toolbox-evm";
|
|
10
|
-
import type { SubstrateWallets } from "@swapkit/toolbox-substrate";
|
|
11
|
-
import type { BlockchairApiType, UTXOWallets } from "@swapkit/toolbox-utxo";
|
|
12
|
-
|
|
13
|
-
export type Wallet = BaseWallet<
|
|
14
|
-
EVMWallets & CosmosWallets & ThorchainWallets & UTXOWallets & SubstrateWallets
|
|
15
|
-
>;
|
|
1
|
+
import type { Chain, ConnectWalletParams, CosmosChain, UTXOChain, Wallet } from "@swapkit/helpers";
|
|
2
|
+
import type { CovalentApiType, EthplorerApiType } from "@swapkit/toolbox-evm";
|
|
3
|
+
import type { BlockchairApiType } from "@swapkit/toolbox-utxo";
|
|
16
4
|
|
|
17
5
|
export type SwapKitWallet<ConnectParams extends Todo[]> = (
|
|
18
6
|
params: ConnectWalletParams,
|