@swapkit/helpers 2.6.0 → 3.0.0-beta.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/api/index.cjs +3 -0
- package/dist/api/index.cjs.map +16 -0
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +16 -0
- package/dist/chunk-1gwdyyeh.js +4 -0
- package/dist/chunk-1gwdyyeh.js.map +10 -0
- package/dist/chunk-2bhvezjh.js +4 -0
- package/dist/chunk-2bhvezjh.js.map +10 -0
- package/dist/chunk-3ptwhtpd.js +3 -0
- package/dist/chunk-3ptwhtpd.js.map +10 -0
- package/dist/chunk-3wnfcm30.js +4 -0
- package/dist/chunk-3wnfcm30.js.map +9 -0
- package/dist/chunk-40epvqbm.js +3 -0
- package/dist/chunk-40epvqbm.js.map +10 -0
- package/dist/chunk-49nsjaay.js +3 -0
- package/dist/chunk-49nsjaay.js.map +10 -0
- package/dist/chunk-4b66tryh.js +4 -0
- package/dist/chunk-4b66tryh.js.map +10 -0
- package/dist/chunk-4kzjrrjv.js +3 -0
- package/dist/chunk-4kzjrrjv.js.map +10 -0
- package/dist/chunk-5m49s8z8.js +4 -0
- package/dist/chunk-5m49s8z8.js.map +10 -0
- package/dist/chunk-9b6y7r75.js +4 -0
- package/dist/chunk-9b6y7r75.js.map +10 -0
- package/dist/chunk-9zcbvqq2.js +3 -0
- package/dist/chunk-9zcbvqq2.js.map +10 -0
- package/dist/chunk-a0bpx1q3.js +4 -0
- package/dist/chunk-a0bpx1q3.js.map +10 -0
- package/dist/chunk-a0fxkkfh.js +4 -0
- package/dist/chunk-a0fxkkfh.js.map +10 -0
- package/dist/chunk-a6bjd9ar.js +3 -0
- package/dist/chunk-a6bjd9ar.js.map +10 -0
- package/dist/chunk-bg6pz5qh.js +3 -0
- package/dist/chunk-bg6pz5qh.js.map +10 -0
- package/dist/chunk-cpdcnp2x.js +4 -0
- package/dist/chunk-cpdcnp2x.js.map +10 -0
- package/dist/chunk-fazw0jvt.js +3 -0
- package/dist/chunk-fazw0jvt.js.map +9 -0
- package/dist/chunk-fr86y3rx.js +4 -0
- package/dist/chunk-fr86y3rx.js.map +10 -0
- package/dist/chunk-ftdtdkhk.js +3 -0
- package/dist/chunk-ftdtdkhk.js.map +10 -0
- package/dist/chunk-gjeaw024.js +4 -0
- package/dist/chunk-gjeaw024.js.map +10 -0
- package/dist/chunk-hdcdd2cf.js +4 -0
- package/dist/chunk-hdcdd2cf.js.map +10 -0
- package/dist/chunk-q2pb6ggs.js +3 -0
- package/dist/chunk-q2pb6ggs.js.map +10 -0
- package/dist/chunk-t9s9811k.js +3 -0
- package/dist/chunk-t9s9811k.js.map +10 -0
- package/dist/chunk-v4dvhh90.js +4 -0
- package/dist/chunk-v4dvhh90.js.map +10 -0
- package/dist/chunk-vzptz52h.js +4 -0
- package/dist/chunk-vzptz52h.js.map +10 -0
- package/dist/chunk-wyr5d8ad.js +3 -0
- package/dist/chunk-wyr5d8ad.js.map +10 -0
- package/dist/chunk-x0jsq6ag.js +3 -0
- package/dist/chunk-x0jsq6ag.js.map +10 -0
- package/dist/chunk-x2fe9scs.js +3 -0
- package/dist/chunk-x2fe9scs.js.map +10 -0
- package/dist/chunk-xm5jkehh.js +4 -0
- package/dist/chunk-xm5jkehh.js.map +10 -0
- package/dist/chunk-xzb1nshn.js +3 -0
- package/dist/chunk-xzb1nshn.js.map +10 -0
- package/dist/contracts/index.cjs +3 -0
- package/dist/contracts/index.cjs.map +38 -0
- package/dist/contracts/index.js +3 -0
- package/dist/contracts/index.js.map +38 -0
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +30 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +23 -23
- package/dist/tokens/index.cjs +3 -0
- package/dist/tokens/index.cjs.map +10 -0
- package/dist/tokens/index.js +3 -0
- package/dist/tokens/index.js.map +10 -0
- package/package.json +35 -16
- package/src/api/index.ts +19 -0
- package/src/api/microgard/endpoints.ts +83 -0
- package/src/api/microgard/types.ts +60 -0
- package/src/api/midgard/endpoints.ts +154 -0
- package/src/api/midgard/types.ts +155 -0
- package/src/api/swapkitApi/endpoints.ts +161 -0
- package/src/api/swapkitApi/types.ts +576 -0
- package/src/api/thornode/endpoints.ts +78 -0
- package/src/api/thornode/types.ts +241 -0
- package/src/api/thorswapStatic/endpoints.ts +46 -0
- package/src/api/thorswapStatic/types.ts +18 -0
- package/src/contracts/abis/avaxGeneric.ts +92 -0
- package/src/contracts/abis/avaxWoofi.ts +145 -0
- package/src/contracts/abis/bscGeneric.ts +106 -0
- package/src/contracts/abis/chainflipGateway.ts +330 -0
- package/src/contracts/abis/erc20.ts +99 -0
- package/src/contracts/abis/ethGeneric.ts +92 -0
- package/src/contracts/abis/mayaEvmVaults.ts +331 -0
- package/src/contracts/abis/pancakeV2.ts +145 -0
- package/src/contracts/abis/pangolin.ts +120 -0
- package/src/contracts/abis/sushiswap.ts +120 -0
- package/src/contracts/abis/tcEthVault.ts +650 -0
- package/src/contracts/abis/traderJoe.ts +120 -0
- package/src/contracts/abis/uniswapV2.ts +120 -0
- package/src/contracts/abis/uniswapV2Leg.ts +128 -0
- package/src/contracts/abis/uniswapV3_100.ts +128 -0
- package/src/contracts/abis/uniswapV3_10000.ts +128 -0
- package/src/contracts/abis/uniswapV3_3000.ts +128 -0
- package/src/contracts/abis/uniswapV3_500.ts +128 -0
- package/src/contracts/index.ts +95 -0
- package/src/contracts/routers/index.ts +58 -0
- package/src/contracts/routers/kyber.ts +402 -0
- package/src/contracts/routers/oneinch.ts +2188 -0
- package/src/contracts/routers/pancakeswap.ts +340 -0
- package/src/contracts/routers/pangolin.ts +340 -0
- package/src/contracts/routers/sushiswap.ts +340 -0
- package/src/contracts/routers/traderJoe.ts +340 -0
- package/src/contracts/routers/uniswapv2.ts +340 -0
- package/src/contracts/routers/uniswapv3.ts +254 -0
- package/src/contracts/routers/woofi.ts +171 -0
- package/src/index.ts +19 -15
- package/src/modules/__tests__/assetValue.test.ts +50 -24
- package/src/modules/__tests__/swapKitConfig.test.ts +37 -0
- package/src/modules/assetValue.ts +82 -141
- package/src/modules/bigIntArithmetics.ts +6 -2
- package/src/modules/requestClient.ts +53 -65
- package/src/modules/swapKitConfig.ts +134 -0
- package/src/modules/swapKitError.ts +19 -14
- package/src/tokens/index.ts +15 -0
- package/src/tokens/lists/camelot_v3.ts +15920 -0
- package/src/tokens/lists/caviar_v1.ts +1694 -0
- package/src/tokens/lists/chainflip.ts +104 -0
- package/src/tokens/lists/index.ts +14 -0
- package/src/tokens/lists/jupiter.ts +29606 -0
- package/src/tokens/lists/mayachain.ts +513 -0
- package/src/tokens/lists/oneinch.ts +14238 -0
- package/src/tokens/lists/openocean_v2.ts +11514 -0
- package/src/tokens/lists/pancakeswap.ts +4296 -0
- package/src/tokens/lists/pangolin_v1.ts +175 -0
- package/src/tokens/lists/sushiswap_v2.ts +965 -0
- package/src/tokens/lists/thorchain.ts +669 -0
- package/src/tokens/lists/traderjoe_v2.ts +1384 -0
- package/src/tokens/lists/uniswap_v2.ts +5596 -0
- package/src/tokens/lists/uniswap_v3.ts +5946 -0
- package/src/types/chains.ts +48 -51
- package/src/types/commonTypes.ts +3 -90
- package/src/types/derivationPath.ts +11 -24
- package/src/types/index.ts +3 -4
- package/src/types/quotes.ts +0 -1
- package/src/types/radix.ts +2 -2
- package/src/types/sdk.ts +0 -40
- package/src/types/tokens.ts +14 -17
- package/src/types/wallet.ts +70 -33
- package/src/{helpers → utils}/__tests__/asset.test.ts +0 -27
- package/src/utils/asset.ts +235 -0
- package/src/{helpers → utils}/derivationPath.ts +31 -9
- package/src/{helpers → utils}/memo.ts +0 -82
- package/src/{helpers → utils}/others.ts +12 -5
- package/src/utils/plugin.ts +13 -0
- package/src/utils/tokens.ts +73 -0
- package/src/{helpers → utils}/validators.ts +7 -5
- package/src/{helpers/web3wallets.ts → utils/wallets.ts} +189 -145
- package/src/helpers/asset.ts +0 -324
- package/src/modules/walletUtils.ts +0 -30
- package/src/types/network.ts +0 -49
- /package/src/{helpers/__tests__/derivationPath.ts → utils/__tests__/derivationPath.test.ts} +0 -0
- /package/src/{helpers → utils}/__tests__/memo.test.ts +0 -0
- /package/src/{helpers → utils}/__tests__/others.test.ts +0 -0
- /package/src/{helpers → utils}/__tests__/validators.test.ts +0 -0
- /package/src/{helpers → utils}/liquidity.ts +0 -0
package/src/types/chains.ts
CHANGED
|
@@ -13,11 +13,13 @@ export enum Chain {
|
|
|
13
13
|
Kujira = "KUJI",
|
|
14
14
|
Litecoin = "LTC",
|
|
15
15
|
Maya = "MAYA",
|
|
16
|
+
Near = "NEAR",
|
|
16
17
|
Optimism = "OP",
|
|
17
18
|
Polkadot = "DOT",
|
|
18
19
|
Chainflip = "FLIP",
|
|
19
20
|
Polygon = "MATIC",
|
|
20
21
|
Radix = "XRD",
|
|
22
|
+
Ripple = "XRP",
|
|
21
23
|
THORChain = "THOR",
|
|
22
24
|
Solana = "SOL",
|
|
23
25
|
}
|
|
@@ -49,12 +51,14 @@ export enum ChainId {
|
|
|
49
51
|
Litecoin = "litecoin",
|
|
50
52
|
Maya = "mayachain-mainnet-v1",
|
|
51
53
|
MayaStagenet = "mayachain-stagenet-v1",
|
|
54
|
+
Near = "near",
|
|
52
55
|
Optimism = "10",
|
|
53
56
|
OptimismHex = "0xa",
|
|
54
57
|
Polkadot = "polkadot",
|
|
55
58
|
Polygon = "137",
|
|
56
59
|
PolygonHex = "0x89",
|
|
57
60
|
Radix = "radix-mainnet",
|
|
61
|
+
Ripple = "ripple",
|
|
58
62
|
THORChain = "thorchain-1",
|
|
59
63
|
THORChainStagenet = "thorchain-stagenet-v2",
|
|
60
64
|
Solana = "solana",
|
|
@@ -76,21 +80,23 @@ export const ChainIdToChain: Record<ChainId, Chain> = {
|
|
|
76
80
|
[ChainId.Dash]: Chain.Dash,
|
|
77
81
|
[ChainId.Dogecoin]: Chain.Dogecoin,
|
|
78
82
|
[ChainId.EthereumHex]: Chain.Ethereum,
|
|
83
|
+
[ChainId.Ethereum]: Chain.Ethereum,
|
|
79
84
|
[ChainId.Fiat]: Chain.Fiat,
|
|
80
85
|
[ChainId.Kujira]: Chain.Kujira,
|
|
81
|
-
[ChainId.Ethereum]: Chain.Ethereum,
|
|
82
86
|
[ChainId.Litecoin]: Chain.Litecoin,
|
|
83
87
|
[ChainId.MayaStagenet]: Chain.Maya,
|
|
84
88
|
[ChainId.Maya]: Chain.Maya,
|
|
89
|
+
[ChainId.Near]: Chain.Near,
|
|
85
90
|
[ChainId.OptimismHex]: Chain.Optimism,
|
|
86
91
|
[ChainId.Optimism]: Chain.Optimism,
|
|
87
92
|
[ChainId.Polkadot]: Chain.Polkadot,
|
|
88
93
|
[ChainId.PolygonHex]: Chain.Polygon,
|
|
89
94
|
[ChainId.Polygon]: Chain.Polygon,
|
|
90
95
|
[ChainId.Radix]: Chain.Radix,
|
|
96
|
+
[ChainId.Ripple]: Chain.Ripple,
|
|
97
|
+
[ChainId.Solana]: Chain.Solana,
|
|
91
98
|
[ChainId.THORChainStagenet]: Chain.THORChain,
|
|
92
99
|
[ChainId.THORChain]: Chain.THORChain,
|
|
93
|
-
[ChainId.Solana]: Chain.Solana,
|
|
94
100
|
};
|
|
95
101
|
|
|
96
102
|
type ChainNameType = keyof typeof Chain;
|
|
@@ -115,10 +121,12 @@ export const BaseDecimal: Record<Chain, number> = {
|
|
|
115
121
|
LTC: 8,
|
|
116
122
|
MATIC: 18,
|
|
117
123
|
MAYA: 8,
|
|
124
|
+
NEAR: 24,
|
|
118
125
|
OP: 18,
|
|
119
126
|
SOL: 9,
|
|
120
127
|
THOR: 8,
|
|
121
128
|
XRD: 18,
|
|
129
|
+
XRP: 6,
|
|
122
130
|
};
|
|
123
131
|
|
|
124
132
|
export const BlockTimes: Record<Partial<Chain>, number> = {
|
|
@@ -137,10 +145,12 @@ export const BlockTimes: Record<Partial<Chain>, number> = {
|
|
|
137
145
|
[Chain.Kujira]: 2.2,
|
|
138
146
|
[Chain.Litecoin]: 150,
|
|
139
147
|
[Chain.Maya]: 6,
|
|
148
|
+
[Chain.Near]: 1,
|
|
140
149
|
[Chain.Optimism]: 2,
|
|
141
150
|
[Chain.Polkadot]: 6,
|
|
142
151
|
[Chain.Polygon]: 2.1,
|
|
143
152
|
[Chain.Radix]: 5,
|
|
153
|
+
[Chain.Ripple]: 5,
|
|
144
154
|
[Chain.Solana]: 0.4,
|
|
145
155
|
[Chain.THORChain]: 6,
|
|
146
156
|
};
|
|
@@ -156,6 +166,7 @@ export type EVMChain =
|
|
|
156
166
|
| Chain.Ethereum
|
|
157
167
|
| Chain.Optimism
|
|
158
168
|
| Chain.Polygon;
|
|
169
|
+
|
|
159
170
|
export const EVMChains = [
|
|
160
171
|
Chain.Arbitrum,
|
|
161
172
|
Chain.Avalanche,
|
|
@@ -182,6 +193,12 @@ export const UTXOChains = [
|
|
|
182
193
|
|
|
183
194
|
export type CosmosChain = Chain.Cosmos | Chain.THORChain | Chain.Maya | Chain.Kujira;
|
|
184
195
|
export const CosmosChains = [Chain.Cosmos, Chain.THORChain, Chain.Maya, Chain.Kujira] as const;
|
|
196
|
+
export const CosmosChainPrefixes = {
|
|
197
|
+
[Chain.Cosmos]: "cosmos",
|
|
198
|
+
[Chain.THORChain]: "thor",
|
|
199
|
+
[Chain.Maya]: "maya",
|
|
200
|
+
[Chain.Kujira]: "kujira",
|
|
201
|
+
} as Record<CosmosChain, string>;
|
|
185
202
|
|
|
186
203
|
export const TCSupportedChains = [
|
|
187
204
|
Chain.Avalanche,
|
|
@@ -206,28 +223,40 @@ export const MAYASupportedChains = [
|
|
|
206
223
|
|
|
207
224
|
export const RPC_URLS: Record<Chain | StagenetChain, string> = {
|
|
208
225
|
[Chain.Arbitrum]: "https://arb1.arbitrum.io/rpc",
|
|
209
|
-
[Chain.Avalanche]: "https://
|
|
226
|
+
[Chain.Avalanche]: "https://api.avax.network/ext/bc/C/rpc",
|
|
210
227
|
[Chain.Base]: "https://base-rpc.publicnode.com",
|
|
211
228
|
[Chain.BinanceSmartChain]: "https://bsc-dataseed.binance.org",
|
|
212
|
-
[Chain.Bitcoin]: "https://bitcoin-rpc.publicnode.com",
|
|
213
229
|
[Chain.BitcoinCash]: "https://node-router.thorswap.net/bitcoin-cash",
|
|
230
|
+
[Chain.Bitcoin]: "https://bitcoin-rpc.publicnode.com",
|
|
214
231
|
[Chain.Chainflip]: "wss://mainnet-archive.chainflip.io",
|
|
215
232
|
[Chain.Cosmos]: "https://node-router.thorswap.net/cosmos/rpc",
|
|
216
233
|
[Chain.Dash]: "https://dash-rpc.publicnode.com",
|
|
217
234
|
[Chain.Dogecoin]: "https://node-router.thorswap.net/dogecoin",
|
|
218
235
|
[Chain.Ethereum]: "https://ethereum-rpc.publicnode.com",
|
|
219
236
|
[Chain.Fiat]: "",
|
|
220
|
-
[Chain.Kujira]: "https://rpc
|
|
237
|
+
[Chain.Kujira]: "https://kujira-rpc.ibs.team",
|
|
221
238
|
[Chain.Litecoin]: "https://node-router.thorswap.net/litecoin",
|
|
222
239
|
[Chain.Maya]: "https://tendermint.mayachain.info",
|
|
240
|
+
[Chain.Near]: "https://rpc.ankr.com/near",
|
|
223
241
|
[Chain.Optimism]: "https://mainnet.optimism.io",
|
|
224
242
|
[Chain.Polkadot]: "wss://rpc.polkadot.io",
|
|
225
243
|
[Chain.Polygon]: "https://polygon-rpc.com",
|
|
226
244
|
[Chain.Radix]: "https://radix-mainnet.rpc.grove.city/v1/326002fc/core",
|
|
245
|
+
[Chain.Ripple]: "wss://xrpl.ws/",
|
|
246
|
+
[Chain.Solana]: "https://solana-rpc.publicnode.com",
|
|
227
247
|
[Chain.THORChain]: "https://rpc.thorswap.net",
|
|
228
|
-
[StagenetChain.THORChain]: "https://stagenet-rpc.ninerealms.com",
|
|
229
248
|
[StagenetChain.Maya]: "https://stagenet.tendermint.mayachain.info",
|
|
230
|
-
[
|
|
249
|
+
[StagenetChain.THORChain]: "https://stagenet-rpc.ninerealms.com",
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
export const NODE_URLS: Record<
|
|
253
|
+
Chain.THORChain | Chain.Maya | StagenetChain.THORChain | StagenetChain.Maya,
|
|
254
|
+
string
|
|
255
|
+
> = {
|
|
256
|
+
[Chain.THORChain]: "https://thornode.thorswap.net",
|
|
257
|
+
[Chain.Maya]: "https://mayanode.mayachain.info",
|
|
258
|
+
[StagenetChain.THORChain]: "https://stagenet-thornode.ninerealms.com",
|
|
259
|
+
[StagenetChain.Maya]: "https://stagenet.mayanode.mayachain.info",
|
|
231
260
|
};
|
|
232
261
|
|
|
233
262
|
export const FALLBACK_URLS: Record<Chain | StagenetChain, string[]> = {
|
|
@@ -255,10 +284,11 @@ export const FALLBACK_URLS: Record<Chain | StagenetChain, string[]> = {
|
|
|
255
284
|
[Chain.Dogecoin]: ["https://doge.getblock.io/mainnet", "https://dogecoin.publicnode.com"],
|
|
256
285
|
[Chain.Ethereum]: ["https://eth.llamarpc.com", "https://rpc.ankr.com/eth"],
|
|
257
286
|
[Chain.Fiat]: [],
|
|
258
|
-
[Chain.Kujira]: ["https://kujira-rpc.polkachu.com", "https://kujira
|
|
287
|
+
[Chain.Kujira]: ["https://kujira-rpc.polkachu.com", "https://rpc-kujira.synergynodes.com/"],
|
|
259
288
|
[Chain.Litecoin]: ["https://ltc.getblock.io/mainnet", "https://litecoin.publicnode.com"],
|
|
260
289
|
[Chain.Maya]: ["https://tendermint.mayachain.info", "https://maya-tendermint.publicnode.com"],
|
|
261
290
|
[StagenetChain.Maya]: [],
|
|
291
|
+
[Chain.Near]: ["https://1rpc.io/near"],
|
|
262
292
|
[Chain.Optimism]: ["https://optimism.llamarpc.com", "https://1rpc.io/op"],
|
|
263
293
|
[Chain.Polkadot]: [
|
|
264
294
|
"wss://polkadot-rpc.dwellir.com",
|
|
@@ -266,7 +296,8 @@ export const FALLBACK_URLS: Record<Chain | StagenetChain, string[]> = {
|
|
|
266
296
|
],
|
|
267
297
|
[Chain.Polygon]: ["https://polygon.llamarpc.com", "https://rpc.ankr.com/polygon"],
|
|
268
298
|
[Chain.Radix]: ["https://mainnet.radixdlt.com", "https://radix-mainnet.rpc.grove.city/v1"],
|
|
269
|
-
[Chain.
|
|
299
|
+
[Chain.Ripple]: ["wss://s1.ripple.com/", "wss://s2.ripple.com/"],
|
|
300
|
+
[Chain.THORChain]: ["https://thornode.ninerealms.com", NODE_URLS[Chain.THORChain]],
|
|
270
301
|
[StagenetChain.THORChain]: [],
|
|
271
302
|
[Chain.Solana]: ["https://api.mainnet-beta.solana.com", "https://rpc.ankr.com/solana"],
|
|
272
303
|
};
|
|
@@ -287,20 +318,18 @@ export const EXPLORER_URLS: Record<Chain, string> = {
|
|
|
287
318
|
[Chain.Kujira]: "https://finder.kujira.network/kaiyo-1",
|
|
288
319
|
[Chain.Litecoin]: "https://blockchair.com/litecoin",
|
|
289
320
|
[Chain.Maya]: "https://www.mayascan.org",
|
|
321
|
+
[Chain.Near]: "https://nearblocks.io",
|
|
290
322
|
[Chain.Optimism]: "https://optimistic.etherscan.io",
|
|
291
323
|
[Chain.Polkadot]: "https://polkadot.subscan.io",
|
|
292
324
|
[Chain.Polygon]: "https://polygonscan.com",
|
|
293
325
|
[Chain.Radix]: "https://dashboard.radixdlt.com",
|
|
326
|
+
[Chain.Ripple]: "https://livenet.xrpl.org/",
|
|
294
327
|
[Chain.THORChain]: "https://runescan.io",
|
|
295
328
|
[Chain.Solana]: "https://solscan.io",
|
|
296
329
|
};
|
|
297
330
|
|
|
298
331
|
let RPCUrlsMerged = RPC_URLS;
|
|
299
332
|
|
|
300
|
-
export const getRPCUrl = (chain: Chain | StagenetChain) => {
|
|
301
|
-
return RPCUrlsMerged[chain];
|
|
302
|
-
};
|
|
303
|
-
|
|
304
333
|
const getRpcBody = (chain: Chain | StagenetChain) => {
|
|
305
334
|
switch (chain) {
|
|
306
335
|
case Chain.Arbitrum:
|
|
@@ -310,50 +339,26 @@ const getRpcBody = (chain: Chain | StagenetChain) => {
|
|
|
310
339
|
case Chain.Ethereum:
|
|
311
340
|
case Chain.Optimism:
|
|
312
341
|
case Chain.Polygon:
|
|
313
|
-
return {
|
|
314
|
-
jsonrpc: "2.0",
|
|
315
|
-
method: "eth_blockNumber",
|
|
316
|
-
params: [],
|
|
317
|
-
id: 1,
|
|
318
|
-
};
|
|
342
|
+
return { id: 1, jsonrpc: "2.0", method: "eth_blockNumber", params: [] };
|
|
319
343
|
case Chain.Bitcoin:
|
|
320
344
|
case Chain.Dogecoin:
|
|
321
345
|
case Chain.BitcoinCash:
|
|
322
346
|
case Chain.Dash:
|
|
323
347
|
case Chain.Litecoin:
|
|
324
|
-
return {
|
|
325
|
-
jsonrpc: "1.0",
|
|
326
|
-
id: "test",
|
|
327
|
-
method: "getblockchaininfo",
|
|
328
|
-
params: [],
|
|
329
|
-
};
|
|
348
|
+
return { id: "test", jsonrpc: "1.0", method: "getblockchaininfo", params: [] };
|
|
330
349
|
case Chain.Cosmos:
|
|
331
350
|
case Chain.Kujira:
|
|
332
351
|
case Chain.Maya:
|
|
333
352
|
case Chain.THORChain:
|
|
334
353
|
case StagenetChain.Maya:
|
|
335
354
|
case StagenetChain.THORChain:
|
|
336
|
-
return {
|
|
337
|
-
id: 1,
|
|
338
|
-
jsonrpc: "2.0",
|
|
339
|
-
method: "status",
|
|
340
|
-
params: {},
|
|
341
|
-
};
|
|
355
|
+
return { id: 1, jsonrpc: "2.0", method: "status", params: {} };
|
|
342
356
|
case Chain.Polkadot:
|
|
343
|
-
return {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
method: "system_health",
|
|
347
|
-
params: [],
|
|
348
|
-
};
|
|
357
|
+
return { id: 1, jsonrpc: "2.0", method: "system_health", params: [] };
|
|
358
|
+
case Chain.Solana:
|
|
359
|
+
return { id: 1, jsonrpc: "2.0", method: "getHealth" };
|
|
349
360
|
case Chain.Radix:
|
|
350
361
|
return "";
|
|
351
|
-
case Chain.Solana:
|
|
352
|
-
return {
|
|
353
|
-
jsonrpc: "2.0",
|
|
354
|
-
id: 1,
|
|
355
|
-
method: "getHealth",
|
|
356
|
-
};
|
|
357
362
|
default:
|
|
358
363
|
throw new Error(`Unsupported chain: ${chain}`);
|
|
359
364
|
}
|
|
@@ -437,14 +442,6 @@ export const ChainToChainId = chains.reduce(
|
|
|
437
442
|
{} as { [key in Chain]: ChainId },
|
|
438
443
|
);
|
|
439
444
|
|
|
440
|
-
export const ChainToRPC = chains.reduce(
|
|
441
|
-
(acc, chain) => {
|
|
442
|
-
acc[chain] = getRPCUrl(chain);
|
|
443
|
-
return acc;
|
|
444
|
-
},
|
|
445
|
-
{} as { [key in Chain]: string },
|
|
446
|
-
);
|
|
447
|
-
|
|
448
445
|
export const ChainToHexChainId = chains.reduce(
|
|
449
446
|
(acc, chain) => {
|
|
450
447
|
const chainString = `${ChainToChainName[chain]}Hex` as keyof typeof ChainId;
|
package/src/types/commonTypes.ts
CHANGED
|
@@ -1,96 +1,9 @@
|
|
|
1
|
-
import type { RadixNetwork } from "@swapkit/toolbox-radix";
|
|
2
1
|
import type { Chain } from "./chains";
|
|
3
|
-
import type { ChainApis } from "./sdk";
|
|
4
2
|
import type { ChainWallet, CryptoChain } from "./wallet";
|
|
5
3
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export type SwapkitConfig = {
|
|
10
|
-
swapkitConfig?: {
|
|
11
|
-
isDev?: boolean;
|
|
12
|
-
swapkitApiKey?: string;
|
|
13
|
-
useHashedApiKey?: boolean;
|
|
14
|
-
referer?: string;
|
|
15
|
-
};
|
|
16
|
-
swapkitApiKey?: string;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export type ConnectConfig = SwapkitConfig & {
|
|
20
|
-
stagenet?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* @required
|
|
23
|
-
*/
|
|
24
|
-
thorswapApiKey?: string;
|
|
25
|
-
/**
|
|
26
|
-
* @optional for non ETH EVM chains - if not set you must use alchemyApi
|
|
27
|
-
*/
|
|
28
|
-
covalentApiKey?: string;
|
|
29
|
-
/**
|
|
30
|
-
* @required for ETH
|
|
31
|
-
*/
|
|
32
|
-
ethplorerApiKey?: string;
|
|
33
|
-
/**
|
|
34
|
-
* @required for BTC, BCH, LTC, DOGE
|
|
35
|
-
*/
|
|
36
|
-
blockchairApiKey?: string;
|
|
37
|
-
/**
|
|
38
|
-
* @required for Walletconnect
|
|
39
|
-
*/
|
|
40
|
-
walletConnectProjectId?: string;
|
|
41
|
-
/**
|
|
42
|
-
* @optional for Trezor config
|
|
43
|
-
*/
|
|
44
|
-
trezorManifest?: {
|
|
45
|
-
email: string;
|
|
46
|
-
appUrl: string;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* @optional for KeepKey config
|
|
50
|
-
*/
|
|
51
|
-
keepkeyConfig?: {
|
|
52
|
-
apiKey: string;
|
|
53
|
-
pairingInfo: {
|
|
54
|
-
name: string;
|
|
55
|
-
imageUrl: string;
|
|
56
|
-
basePath: string;
|
|
57
|
-
url: string;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* @deprecated use chainflipBrokerConfig
|
|
62
|
-
* @optional for setting the chainflip broker url
|
|
63
|
-
*/
|
|
64
|
-
chainflipBrokerUrl?: string;
|
|
65
|
-
/**
|
|
66
|
-
* @optional for setting the chainflip broker url
|
|
67
|
-
*/
|
|
68
|
-
chainflipBrokerConfig?: {
|
|
69
|
-
useChainflipSDKBroker?: boolean;
|
|
70
|
-
chainflipBrokerUrl: string;
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* @optional for setting the radix wallet
|
|
74
|
-
*/
|
|
75
|
-
radixDappConfig?: {
|
|
76
|
-
dAppDefinitionAddress: string;
|
|
77
|
-
applicationName: string;
|
|
78
|
-
applicationVersion: string;
|
|
79
|
-
network: RadixNetwork;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @optional for setting the kado api key
|
|
84
|
-
*/
|
|
85
|
-
kadoApiKey?: string;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
export type ConnectWalletParams<M = { [key in string]: any }> = {
|
|
89
|
-
addChain: <T extends CryptoChain>(params: ChainWallet<T> & M) => void;
|
|
90
|
-
apis: ChainApis;
|
|
91
|
-
config: ConnectConfig;
|
|
92
|
-
rpcUrls: { [chain in CryptoChain]?: string };
|
|
93
|
-
};
|
|
4
|
+
export type AddChainType<M = { [key in string]: any }> = <T extends CryptoChain>(
|
|
5
|
+
params: Omit<ChainWallet<T>, "balance"> & M,
|
|
6
|
+
) => void;
|
|
94
7
|
|
|
95
8
|
export type Witness = {
|
|
96
9
|
value: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { derivationPathToString } from "../utils/derivationPath";
|
|
1
2
|
import type { Chain } from "./chains";
|
|
2
3
|
|
|
3
4
|
export enum ContractAddress {
|
|
@@ -10,30 +11,6 @@ export enum ContractAddress {
|
|
|
10
11
|
OP = "0x4200000000000000000000000000000000000042",
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export enum DerivationPath {
|
|
14
|
-
ARB = "m/44'/60'/0'/0",
|
|
15
|
-
AVAX = "m/44'/60'/0'/0",
|
|
16
|
-
BASE = "m/44'/60'/0'/0",
|
|
17
|
-
BCH = "m/44'/145'/0'/0",
|
|
18
|
-
BSC = "m/44'/60'/0'/0",
|
|
19
|
-
BTC = "m/84'/0'/0'/0",
|
|
20
|
-
DASH = "m/44'/5'/0'/0",
|
|
21
|
-
DOGE = "m/44'/3'/0'/0",
|
|
22
|
-
DOT = "////",
|
|
23
|
-
ETH = "m/44'/60'/0'/0",
|
|
24
|
-
FLIP = "////",
|
|
25
|
-
GAIA = "m/44'/118'/0'/0",
|
|
26
|
-
KUJI = "m/44'/118'/0'/0",
|
|
27
|
-
LTC = "m/84'/2'/0'/0",
|
|
28
|
-
MATIC = "m/44'/60'/0'/0",
|
|
29
|
-
MAYA = "m/44'/931'/0'/0",
|
|
30
|
-
OP = "m/44'/60'/0'/0",
|
|
31
|
-
SOL = "m/44'/501'/0'/0",
|
|
32
|
-
THOR = "m/44'/931'/0'/0",
|
|
33
|
-
XRD = "////",
|
|
34
|
-
FIAT = "////",
|
|
35
|
-
}
|
|
36
|
-
|
|
37
14
|
export type DerivationPathArray = [number, number, number, number, number?];
|
|
38
15
|
|
|
39
16
|
export const NetworkDerivationPath: Record<Chain, DerivationPathArray> = {
|
|
@@ -51,6 +28,7 @@ export const NetworkDerivationPath: Record<Chain, DerivationPathArray> = {
|
|
|
51
28
|
LTC: [84, 2, 0, 0, 0],
|
|
52
29
|
MATIC: [44, 60, 0, 0, 0],
|
|
53
30
|
MAYA: [44, 931, 0, 0, 0],
|
|
31
|
+
NEAR: [44, 397, 0, 0, 0],
|
|
54
32
|
OP: [44, 60, 0, 0, 0],
|
|
55
33
|
SOL: [44, 501, 0, 0, 0],
|
|
56
34
|
THOR: [44, 931, 0, 0, 0],
|
|
@@ -60,4 +38,13 @@ export const NetworkDerivationPath: Record<Chain, DerivationPathArray> = {
|
|
|
60
38
|
FIAT: [0, 0, 0, 0, 0],
|
|
61
39
|
FLIP: [0, 0, 0, 0, 0],
|
|
62
40
|
XRD: [0, 0, 0, 0, 0],
|
|
41
|
+
XRP: [44, 144, 0, 0, 0],
|
|
63
42
|
};
|
|
43
|
+
|
|
44
|
+
export const DerivationPath: Record<Chain, string> = Object.keys(NetworkDerivationPath).reduce(
|
|
45
|
+
(acc, key) => {
|
|
46
|
+
acc[key as Chain] = derivationPathToString(NetworkDerivationPath[key as Chain]);
|
|
47
|
+
return acc;
|
|
48
|
+
},
|
|
49
|
+
{} as Record<Chain, string>,
|
|
50
|
+
);
|
package/src/types/index.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export * from "./chains";
|
|
2
2
|
export * from "./commonTypes";
|
|
3
3
|
export * from "./derivationPath";
|
|
4
|
-
export * from "./network";
|
|
5
|
-
export * from "./tokens";
|
|
6
|
-
export * from "./wallet";
|
|
7
|
-
export * from "./sdk";
|
|
8
4
|
export * from "./quotes";
|
|
9
5
|
export * from "./radix";
|
|
6
|
+
export * from "./sdk";
|
|
7
|
+
export * from "./tokens";
|
|
8
|
+
export * from "./wallet";
|
package/src/types/quotes.ts
CHANGED
package/src/types/radix.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type RadixCoreStateResourceDTO = {
|
|
2
|
-
at_ledger_state?: any;
|
|
2
|
+
at_ledger_state?: any;
|
|
3
3
|
manager: {
|
|
4
4
|
resource_type: string;
|
|
5
5
|
divisibility: {
|
|
@@ -10,5 +10,5 @@ export type RadixCoreStateResourceDTO = {
|
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
owner_role?: any;
|
|
13
|
+
owner_role?: any;
|
|
14
14
|
};
|
package/src/types/sdk.ts
CHANGED
|
@@ -1,34 +1,4 @@
|
|
|
1
|
-
import type { CovalentApiType, EthplorerApiType } from "@swapkit/toolbox-evm";
|
|
2
|
-
import type { BlockchairApiType } from "@swapkit/toolbox-utxo";
|
|
3
|
-
|
|
4
|
-
import type { AlchemyApiType } from "@swapkit/toolbox-evm/src/api/alchemyApi";
|
|
5
1
|
import type { AssetValue } from "../modules/assetValue";
|
|
6
|
-
import type { Chain, CosmosChain, UTXOChain } from "./chains";
|
|
7
|
-
|
|
8
|
-
type NonEthEvmChains =
|
|
9
|
-
| Chain.Base
|
|
10
|
-
| Chain.BinanceSmartChain
|
|
11
|
-
| Chain.Polygon
|
|
12
|
-
| Chain.Avalanche
|
|
13
|
-
| Chain.Arbitrum
|
|
14
|
-
| Chain.Optimism;
|
|
15
|
-
|
|
16
|
-
export type ChainApis = { [key in NonEthEvmChains]?: CovalentApiType | AlchemyApiType } & {
|
|
17
|
-
[key in Chain.Ethereum]?: EthplorerApiType;
|
|
18
|
-
} & {
|
|
19
|
-
[key in UTXOChain]?: BlockchairApiType;
|
|
20
|
-
} & {
|
|
21
|
-
[key in CosmosChain | Chain.Solana | Chain.Radix | Chain.Polkadot | Chain.Chainflip]?: string;
|
|
22
|
-
} & {
|
|
23
|
-
[key in Chain.Fiat]?: undefined;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export type ChainApi =
|
|
27
|
-
| EthplorerApiType
|
|
28
|
-
| CovalentApiType
|
|
29
|
-
| AlchemyApiType
|
|
30
|
-
| BlockchairApiType
|
|
31
|
-
| string;
|
|
32
2
|
|
|
33
3
|
export type GenericSwapParams<T = unknown> = {
|
|
34
4
|
buyAsset?: AssetValue;
|
|
@@ -57,13 +27,6 @@ export type ApproveReturnType<T extends ApproveMode> = T extends "checkOnly"
|
|
|
57
27
|
? Promise<boolean>
|
|
58
28
|
: Promise<string>;
|
|
59
29
|
|
|
60
|
-
export type WalletTxParams = {
|
|
61
|
-
feeOptionKey?: FeeOption;
|
|
62
|
-
from?: string;
|
|
63
|
-
memo?: string; // optional memo to pass
|
|
64
|
-
recipient: string;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
30
|
export enum MemoType {
|
|
68
31
|
NAME_REGISTER = "~",
|
|
69
32
|
BOND = "BOND",
|
|
@@ -75,7 +38,4 @@ export enum MemoType {
|
|
|
75
38
|
CLOSE_LOAN = "$-",
|
|
76
39
|
RUNEPOOL_DEPOSIT = "POOL+",
|
|
77
40
|
RUNEPOOL_WITHDRAW = "POOL-",
|
|
78
|
-
CLAIM_TCY = "tcy",
|
|
79
|
-
STAKE_TCY = "tcy+",
|
|
80
|
-
UNSTAKE_TCY = "tcy-",
|
|
81
41
|
}
|
package/src/types/tokens.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import type { tokenLists } from "@swapkit/tokens";
|
|
1
|
+
import type { tokenLists } from "@swapkit/helpers/tokens";
|
|
2
2
|
|
|
3
3
|
export type TokenTax = { buy: number; sell: number };
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
| (typeof tokenLists)["TraderjoeV2List"]["tokens"][number]["identifier"]
|
|
19
|
-
| (typeof tokenLists)["UniswapV2List"]["tokens"][number]["identifier"]
|
|
20
|
-
| (typeof tokenLists)["UniswapV3List"]["tokens"][number]["identifier"];
|
|
5
|
+
type ListOfTokens = Exclude<
|
|
6
|
+
keyof typeof tokenLists,
|
|
7
|
+
| "JupiterList"
|
|
8
|
+
| "CamelotV3List"
|
|
9
|
+
| "OneInchList"
|
|
10
|
+
| "OpenOceanV2List"
|
|
11
|
+
| "PancakeswapList"
|
|
12
|
+
| "PangolinList"
|
|
13
|
+
| "SushiswapList"
|
|
14
|
+
| "TraderjoeV2List"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
export type TokenNames = (typeof tokenLists)[ListOfTokens]["tokens"][number]["identifier"];
|