@swapkit/types 0.0.0-nightly-20240404190857 → 0.1.0

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.
@@ -1,144 +0,0 @@
1
- import type { Chain, CosmosChain, EVMChain, UTXOChain } from "./network.ts";
2
- import type { WalletOption } from "./wallet.ts";
3
-
4
- type ConnectMethodNames =
5
- | "connectEVMWallet"
6
- | "connectKeplr"
7
- | "connectKeystore"
8
- | "connectKeepkey"
9
- | "connectLedger"
10
- | "connectOkx"
11
- | "connectTrezor"
12
- | "connectWalletconnect"
13
- | "connectXDEFI";
14
-
15
- export type ConnectConfig = {
16
- stagenet?: boolean;
17
- /**
18
- * @required
19
- */
20
- thorswapApiKey?: string;
21
- /**
22
- * @required for AVAX & BSC
23
- */
24
- covalentApiKey?: string;
25
- /**
26
- * @required for ETH
27
- */
28
- ethplorerApiKey?: string;
29
- /**
30
- * @required for BTC, BCH, LTC, DOGE
31
- */
32
- blockchairApiKey?: string;
33
- /**
34
- * @deprecated - use blockchairApiKey instead
35
- */
36
- utxoApiKey?: 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
-
62
- export type AddChainWalletParams<T extends Chain> = {
63
- address: string;
64
- balance: any[];
65
- walletType: WalletOption;
66
- chain: T;
67
- [key: string]: any;
68
- };
69
-
70
- type ApisType = { [key in UTXOChain]?: string | any } & {
71
- [key in EVMChain]?: string | any;
72
- } & {
73
- [key in CosmosChain]?: string;
74
- };
75
-
76
- export type ConnectWalletParams = {
77
- addChain: <T extends Chain>(params: AddChainWalletParams<T>) => void;
78
- config: ConnectConfig;
79
- rpcUrls: { [chain in Chain]?: string };
80
- apis: ApisType;
81
- };
82
-
83
- export type Witness = {
84
- value: number;
85
- script: Buffer;
86
- };
87
-
88
- export type ExtendParams<WalletConnectMethodNames = ""> = {
89
- excludedChains?: Chain[];
90
- config?: ConnectConfig;
91
- rpcUrls?: { [chain in Chain]?: string };
92
- apis?: ApisType;
93
- wallets: {
94
- connectMethodName: ConnectMethodNames | WalletConnectMethodNames;
95
- connect: (params: ConnectWalletParams) => (...params: any) => Promise<any>;
96
- }[];
97
- };
98
-
99
- export enum QuoteMode {
100
- TC_SUPPORTED_TO_TC_SUPPORTED = "TC-TC",
101
- TC_SUPPORTED_TO_ETH = "TC-ERC20",
102
- TC_SUPPORTED_TO_AVAX = "TC-ARC20",
103
- TC_SUPPORTED_TO_BSC = "TC-BEP20",
104
- ETH_TO_TC_SUPPORTED = "ERC20-TC",
105
- ETH_TO_ETH = "ERC20-ERC20",
106
- ETH_TO_AVAX = "ERC20-ARC20",
107
- ETH_TO_BSC = "ERC20-BEP20",
108
- AVAX_TO_TC_SUPPORTED = "ARC20-TC",
109
- AVAX_TO_ETH = "ARC20-ERC20",
110
- AVAX_TO_AVAX = "ARC20-ARC20",
111
- AVAX_TO_BSC = "ARC20-BEP20",
112
- BSC_TO_TC_SUPPORTED = "BEP20-TC",
113
- BSC_TO_ETH = "BEP20-ERC20",
114
- BSC_TO_AVAX = "BEP20-ARC20",
115
- BSC_TO_BSC = "BEP20-BEP20",
116
- }
117
-
118
- export type Asset = {
119
- chain: Chain;
120
- symbol: string;
121
- ticker: string;
122
- synth?: boolean;
123
- };
124
-
125
- export const AGG_SWAP = [QuoteMode.ETH_TO_ETH, QuoteMode.AVAX_TO_AVAX, QuoteMode.BSC_TO_BSC];
126
-
127
- export const SWAP_IN = [
128
- QuoteMode.ETH_TO_TC_SUPPORTED,
129
- QuoteMode.ETH_TO_AVAX,
130
- QuoteMode.ETH_TO_BSC,
131
- QuoteMode.AVAX_TO_TC_SUPPORTED,
132
- QuoteMode.AVAX_TO_ETH,
133
- QuoteMode.AVAX_TO_BSC,
134
- QuoteMode.BSC_TO_TC_SUPPORTED,
135
- QuoteMode.BSC_TO_ETH,
136
- QuoteMode.BSC_TO_AVAX,
137
- ];
138
-
139
- export const SWAP_OUT = [
140
- QuoteMode.TC_SUPPORTED_TO_TC_SUPPORTED,
141
- QuoteMode.TC_SUPPORTED_TO_ETH,
142
- QuoteMode.TC_SUPPORTED_TO_AVAX,
143
- QuoteMode.TC_SUPPORTED_TO_BSC,
144
- ];
package/src/index.ts DELETED
@@ -1,7 +0,0 @@
1
- export { erc20ABI } from "./abis/erc20.ts";
2
- export { TCAvalancheDepositABI, TCBscDepositABI, TCEthereumVaultAbi } from "./abis/tcEthVault.ts";
3
- export * from "./commonTypes.ts";
4
- export * from "./network.ts";
5
- export * from "./thorchain.ts";
6
- export * from "./transactions.ts";
7
- export * from "./wallet.ts";
package/src/network.ts DELETED
@@ -1,324 +0,0 @@
1
- export enum Chain {
2
- Arbitrum = "ARB",
3
- Avalanche = "AVAX",
4
- Binance = "BNB",
5
- BinanceSmartChain = "BSC",
6
- Bitcoin = "BTC",
7
- BitcoinCash = "BCH",
8
- Cosmos = "GAIA",
9
- Dash = "DASH",
10
- Dogecoin = "DOGE",
11
- Ethereum = "ETH",
12
- Kujira = "KUJI",
13
- Litecoin = "LTC",
14
- Maya = "MAYA",
15
- Optimism = "OP",
16
- Polkadot = "DOT",
17
- Chainflip = "FLIP",
18
- Polygon = "MATIC",
19
- THORChain = "THOR",
20
- }
21
- type ChainNameType = keyof typeof Chain;
22
-
23
- export enum ContractAddress {
24
- ARB = "0x0000000000000000000000000000000000000000",
25
- AVAX = "0x0000000000000000000000000000000000000000",
26
- ETH = "0x0000000000000000000000000000000000000000",
27
- BSC = "0x0000000000000000000000000000000000000000",
28
- MATIC = "0x0000000000000000000000000000000000001010",
29
- OP = "0x4200000000000000000000000000000000000042",
30
- }
31
-
32
- export enum DerivationPath {
33
- ARB = "m/44'/60'/0'/0",
34
- AVAX = "m/44'/60'/0'/0",
35
- BCH = "m/44'/145'/0'/0",
36
- BNB = "m/44'/714'/0'/0",
37
- BSC = "m/44'/60'/0'/0",
38
- BTC = "m/84'/0'/0'/0",
39
- DASH = "m/44'/5'/0'/0",
40
- DOGE = "m/44'/3'/0'/0",
41
- DOT = "////",
42
- ETH = "m/44'/60'/0'/0",
43
- FLIP = "////",
44
- GAIA = "m/44'/118'/0'/0",
45
- KUJI = "m/44'/118'/0'/0",
46
- LTC = "m/84'/2'/0'/0",
47
- MATIC = "m/44'/60'/0'/0",
48
- MAYA = "m/44'/931'/0'/0",
49
- OP = "m/44'/60'/0'/0",
50
- THOR = "m/44'/931'/0'/0",
51
- }
52
-
53
- export type DerivationPathArray = [number, number, number, number, number?];
54
-
55
- export const NetworkDerivationPath: Record<Chain, DerivationPathArray> = {
56
- ARB: [44, 60, 0, 0, 0],
57
- AVAX: [44, 60, 0, 0, 0],
58
- BCH: [44, 145, 0, 0, 0],
59
- BNB: [44, 714, 0, 0, 0],
60
- BSC: [44, 60, 0, 0, 0],
61
- BTC: [84, 0, 0, 0, 0],
62
- DASH: [44, 5, 0, 0, 0],
63
- DOGE: [44, 3, 0, 0, 0],
64
- ETH: [44, 60, 0, 0, 0],
65
- GAIA: [44, 118, 0, 0, 0],
66
- KUJI: [44, 118, 0, 0, 0],
67
- LTC: [84, 2, 0, 0, 0],
68
- MATIC: [44, 60, 0, 0, 0],
69
- MAYA: [44, 931, 0, 0, 0],
70
- OP: [44, 60, 0, 0, 0],
71
- THOR: [44, 931, 0, 0, 0],
72
- // Polkadot and related network derivation path is not number based
73
- DOT: [0, 0, 0, 0, 0],
74
- FLIP: [0, 0, 0, 0, 0],
75
- };
76
-
77
- export enum BaseDecimal {
78
- ARB = 18,
79
- AVAX = 18,
80
- BCH = 8,
81
- BNB = 8,
82
- BSC = 18,
83
- BTC = 8,
84
- DASH = 8,
85
- DOGE = 8,
86
- DOT = 10,
87
- ETH = 18,
88
- FLIP = 18,
89
- GAIA = 6,
90
- KUJI = 6,
91
- LTC = 8,
92
- MATIC = 18,
93
- MAYA = 10,
94
- OP = 18,
95
- THOR = 8,
96
- ZEC = 8,
97
- }
98
-
99
- export type SubstrateChain = Chain.Polkadot | Chain.Chainflip;
100
- export const SubstrateChains = [Chain.Polkadot, Chain.Chainflip];
101
-
102
- export type EVMChain =
103
- | Chain.Ethereum
104
- | Chain.Avalanche
105
- | Chain.BinanceSmartChain
106
- | Chain.Arbitrum
107
- | Chain.Optimism
108
- | Chain.Polygon;
109
-
110
- export const EVMChains = [
111
- Chain.Ethereum,
112
- Chain.Avalanche,
113
- Chain.BinanceSmartChain,
114
- Chain.Arbitrum,
115
- Chain.Optimism,
116
- Chain.Polygon,
117
- ] as const;
118
- /**
119
- * @deprecated
120
- * Use `EVMChains` instead
121
- */
122
- export const EVMChainList = EVMChains;
123
-
124
- export type UTXOChain =
125
- | Chain.Bitcoin
126
- | Chain.BitcoinCash
127
- | Chain.Dash
128
- | Chain.Dogecoin
129
- | Chain.Litecoin;
130
-
131
- export const UTXOChains = [
132
- Chain.Bitcoin,
133
- Chain.BitcoinCash,
134
- Chain.Dash,
135
- Chain.Dogecoin,
136
- Chain.Litecoin,
137
- ] as const;
138
- /**
139
- * @deprecated
140
- * Use `UTXOChains` instead
141
- */
142
- export const UTXOChainList = UTXOChains;
143
-
144
- export type CosmosChain =
145
- | Chain.Cosmos
146
- | Chain.THORChain
147
- | Chain.Binance
148
- | Chain.Maya
149
- | Chain.Kujira;
150
-
151
- export const CosmosChains = [
152
- Chain.Cosmos,
153
- Chain.THORChain,
154
- Chain.Binance,
155
- Chain.Maya,
156
- Chain.Kujira,
157
- ] as const;
158
-
159
- /**
160
- * @deprecated
161
- * Use `CosmosChains` instead
162
- */
163
- export const CosmosChainList = CosmosChains;
164
-
165
- export const TCSupportedChains = [
166
- Chain.Avalanche,
167
- Chain.Binance,
168
- Chain.BinanceSmartChain,
169
- Chain.Bitcoin,
170
- Chain.BitcoinCash,
171
- Chain.Cosmos,
172
- Chain.Dogecoin,
173
- Chain.Ethereum,
174
- Chain.Litecoin,
175
- Chain.THORChain,
176
- ] as const;
177
-
178
- /**
179
- * @deprecated
180
- * Use `TCSupportedChains` instead
181
- */
182
- export const TCSupportedChainList = TCSupportedChains;
183
-
184
- export enum ChainId {
185
- Arbitrum = "42161",
186
- ArbitrumHex = "0xa4b1",
187
- Avalanche = "43114",
188
- AvalancheHex = "0xa86a",
189
- Binance = "Binance-Chain-Tigris",
190
- BinanceSmartChain = "56",
191
- BinanceSmartChainHex = "0x38",
192
- Bitcoin = "bitcoin",
193
- BitcoinCash = "bitcoincash",
194
- Chainflip = "chainflip",
195
- Cosmos = "cosmoshub-4",
196
- Dash = "dash",
197
- Dogecoin = "dogecoin",
198
- Kujira = "kaiyo-1",
199
- Ethereum = "1",
200
- EthereumHex = "0x1",
201
- Litecoin = "litecoin",
202
- Maya = "mayachain-mainnet-v1",
203
- MayaStagenet = "mayachain-stagenet-v1",
204
- Optimism = "10",
205
- OptimismHex = "0xa",
206
- Polkadot = "polkadot",
207
- Polygon = "137",
208
- PolygonHex = "0x89",
209
- THORChain = "thorchain-mainnet-v1",
210
- THORChainStagenet = "thorchain-stagenet-v2",
211
- }
212
-
213
- export enum RPCUrl {
214
- Arbitrum = "https://arb1.arbitrum.io/rpc",
215
- Avalanche = "https://node-router.thorswap.net/avalanche-c",
216
- Binance = "",
217
- BinanceSmartChain = "https://bsc-dataseed.binance.org",
218
- Bitcoin = "https://node-router.thorswap.net/bitcoin",
219
- BitcoinCash = "https://node-router.thorswap.net/bitcoin-cash",
220
- Chainflip = "wss://mainnet-archive.chainflip.io",
221
- Cosmos = "https://node-router.thorswap.net/cosmos/rpc",
222
- Dash = "https://node-router.thorswap.net/dash",
223
- Dogecoin = "https://node-router.thorswap.net/dogecoin",
224
- Ethereum = "https://node-router.thorswap.net/ethereum",
225
- Kujira = "https://rpc-kujira.synergynodes.com/",
226
- Litecoin = "https://node-router.thorswap.net/litecoin",
227
- Maya = "https://tendermint.mayachain.info",
228
- MayaStagenet = "https://stagenet.tendermint.mayachain.info",
229
- Optimism = "https://mainnet.optimism.io",
230
- Polkadot = "wss://rpc.polkadot.io",
231
- Polygon = "https://polygon-rpc.com",
232
- THORChain = "https://rpc.thorswap.net",
233
- THORChainStagenet = "https://stagenet-rpc.ninerealms.com",
234
- }
235
-
236
- const chains = Object.values(Chain) as Chain[];
237
- const chainNames = Object.keys(Chain) as ChainNameType[];
238
-
239
- const ChainToChainName = chains.reduce(
240
- (acc, chain) => {
241
- const chainName = chainNames.find((key) => Chain[key as ChainNameType] === chain);
242
-
243
- if (chainName) acc[chain] = chainName;
244
-
245
- return acc;
246
- },
247
- {} as { [key in Chain]: ChainNameType },
248
- );
249
-
250
- export const ChainToChainId = chains.reduce(
251
- (acc, chain) => {
252
- acc[chain] = ChainId[ChainToChainName[chain]];
253
- return acc;
254
- },
255
- {} as { [key in Chain]: ChainId },
256
- );
257
-
258
- export const ChainToRPC = chains.reduce(
259
- (acc, chain) => {
260
- acc[chain] = RPCUrl[ChainToChainName[chain]];
261
- return acc;
262
- },
263
- {} as { [key in Chain]: RPCUrl },
264
- );
265
-
266
- export const ChainToHexChainId = chains.reduce(
267
- (acc, chain) => {
268
- const chainString = `${ChainToChainName[chain]}Hex` as keyof typeof ChainId;
269
-
270
- acc[chain] = ChainId[chainString];
271
- return acc;
272
- },
273
- {} as { [key in Chain]: ChainId },
274
- );
275
-
276
- export const ChainIdToChain: Record<ChainId, Chain> = {
277
- [ChainId.ArbitrumHex]: Chain.Arbitrum,
278
- [ChainId.Arbitrum]: Chain.Arbitrum,
279
- [ChainId.AvalancheHex]: Chain.Avalanche,
280
- [ChainId.Avalanche]: Chain.Avalanche,
281
- [ChainId.BinanceSmartChainHex]: Chain.BinanceSmartChain,
282
- [ChainId.BinanceSmartChain]: Chain.BinanceSmartChain,
283
- [ChainId.Binance]: Chain.Binance,
284
- [ChainId.BitcoinCash]: Chain.BitcoinCash,
285
- [ChainId.Bitcoin]: Chain.Bitcoin,
286
- [ChainId.Chainflip]: Chain.Chainflip,
287
- [ChainId.Cosmos]: Chain.Cosmos,
288
- [ChainId.Dash]: Chain.Dash,
289
- [ChainId.Dogecoin]: Chain.Dogecoin,
290
- [ChainId.EthereumHex]: Chain.Ethereum,
291
- [ChainId.Kujira]: Chain.Kujira,
292
- [ChainId.Ethereum]: Chain.Ethereum,
293
- [ChainId.Litecoin]: Chain.Litecoin,
294
- [ChainId.MayaStagenet]: Chain.Maya,
295
- [ChainId.Maya]: Chain.Maya,
296
- [ChainId.OptimismHex]: Chain.Optimism,
297
- [ChainId.Optimism]: Chain.Optimism,
298
- [ChainId.Polkadot]: Chain.Polkadot,
299
- [ChainId.PolygonHex]: Chain.Polygon,
300
- [ChainId.Polygon]: Chain.Polygon,
301
- [ChainId.THORChainStagenet]: Chain.THORChain,
302
- [ChainId.THORChain]: Chain.THORChain,
303
- };
304
-
305
- export const ChainToExplorerUrl: Record<Chain, string> = {
306
- [Chain.Arbitrum]: "https://arbiscan.io",
307
- [Chain.Avalanche]: "https://snowtrace.io",
308
- [Chain.BinanceSmartChain]: "https://bscscan.com",
309
- [Chain.Binance]: "https://explorer.binance.org",
310
- [Chain.BitcoinCash]: "https://www.blockchair.com/bitcoin-cash",
311
- [Chain.Bitcoin]: "https://blockchair.com/bitcoin",
312
- [Chain.Chainflip]: "https://explorer.polkascan.io/polkadot",
313
- [Chain.Cosmos]: "https://www.mintscan.io/cosmos",
314
- [Chain.Dash]: "https://blockchair.com/dash",
315
- [Chain.Dogecoin]: "https://blockchair.com/dogecoin",
316
- [Chain.Kujira]: "https://finder.kujira.network/kaiyo-1",
317
- [Chain.Ethereum]: "https://etherscan.io",
318
- [Chain.Litecoin]: "https://blockchair.com/litecoin",
319
- [Chain.Maya]: "https://www.mayascan.org",
320
- [Chain.Optimism]: "https://optimistic.etherscan.io",
321
- [Chain.Polkadot]: "https://polkadot.subscan.io/",
322
- [Chain.Polygon]: "https://polygonscan.com",
323
- [Chain.THORChain]: "https://runescan.io",
324
- };
package/src/thorchain.ts DELETED
@@ -1,26 +0,0 @@
1
- export type GetAddressAndPubKeyResponse = {
2
- bech32_address: string;
3
- compressed_pk: any;
4
- error_message: string;
5
- return_code: number;
6
- };
7
-
8
- export type Signature = {
9
- pub_key: {
10
- type: string;
11
- value: string;
12
- };
13
- sequence: string;
14
- signature: string;
15
- };
16
-
17
- export enum MemoType {
18
- BOND = "BOND",
19
- DEPOSIT = "+",
20
- LEAVE = "LEAVE",
21
- THORNAME_REGISTER = "~",
22
- UNBOND = "UNBOND",
23
- WITHDRAW = "-",
24
- OPEN_LOAN = "$+",
25
- CLOSE_LOAN = "$-",
26
- }
@@ -1,22 +0,0 @@
1
- export enum FeeOption {
2
- Average = "average",
3
- Fast = "fast",
4
- Fastest = "fastest",
5
- }
6
-
7
- export type WalletTxParams = {
8
- feeOptionKey?: FeeOption;
9
- from?: string;
10
- memo?: string; // optional memo to pass
11
- recipient: string;
12
- };
13
-
14
- export type EVMTxBaseParams<T = bigint> = {
15
- to?: string;
16
- from?: string;
17
- nonce?: number;
18
- gasLimit?: T;
19
- data?: string;
20
- value?: T;
21
- chainId?: T;
22
- };
package/src/wallet.ts DELETED
@@ -1,28 +0,0 @@
1
- export enum WalletOption {
2
- KEYSTORE = "KEYSTORE",
3
- KEEPKEY = "KEEPKEY",
4
- XDEFI = "XDEFI",
5
- METAMASK = "METAMASK",
6
- COINBASE_WEB = "COINBASE_WEB",
7
- TREZOR = "TREZOR",
8
- TRUSTWALLET_WEB = "TRUSTWALLET_WEB",
9
- LEDGER = "LEDGER",
10
- KEPLR = "KEPLR",
11
- OKX = "OKX",
12
- OKX_MOBILE = "OKX_MOBILE",
13
- BRAVE = "BRAVE",
14
- WALLETCONNECT = "WALLETCONNECT",
15
- }
16
-
17
- export type EVMWalletOptions =
18
- | WalletOption.BRAVE
19
- | WalletOption.OKX_MOBILE
20
- | WalletOption.METAMASK
21
- | WalletOption.TRUSTWALLET_WEB
22
- | WalletOption.COINBASE_WEB;
23
-
24
- export enum LedgerErrorCode {
25
- NoError = 0x9000,
26
- LockedDevice = 0x5515,
27
- TC_NotFound = 65535,
28
- }