@proton/wrap-constants 0.2.101 → 0.2.103

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.
@@ -0,0 +1,2069 @@
1
+ import { string, object, array, literal, number, any, nativeEnum, boolean } from 'zod';
2
+ import cloneDeep from 'lodash.clonedeep';
3
+ import { BigNumber } from 'bignumber.js';
4
+
5
+ var _similarChains, _explorerLinkByChain;
6
+ var Chains;
7
+ (function (Chains) {
8
+ Chains["BitcoinMainnet"] = "Bitcoin";
9
+ Chains["BitcoinTestnet"] = "Bitcoin (Testnet)";
10
+ Chains["EthereumMainnet"] = "Ethereum";
11
+ Chains["EthereumRopsten"] = "Ethereum (Ropsten)";
12
+ Chains["LitecoinMainnet"] = "Litecoin";
13
+ Chains["LitecoinTestnet"] = "Litecoin (Testnet)";
14
+ Chains["BitcoinCashMainnet"] = "Bitcoin Cash";
15
+ Chains["BitcoinCashTestnet"] = "Bitcoin Cash (Testnet)";
16
+ Chains["StellarMainnet"] = "Stellar";
17
+ Chains["StellarTestnet"] = "Stellar (Testnet)";
18
+ Chains["ProtonMainnet"] = "Proton";
19
+ Chains["ProtonTestnet"] = "Proton (Testnet)";
20
+ Chains["PolkadotMainnet"] = "Polkadot";
21
+ Chains["BinanceBEP2"] = "Binance (BEP2)";
22
+ Chains["BinanceBEP20"] = "Binance (BEP20)";
23
+ Chains["EosMainnet"] = "EOS";
24
+ Chains["EosTestnet"] = "EOS (Jungle Testnet)";
25
+ Chains["HederaMainnet"] = "Hedera (Mainnet)";
26
+ Chains["HederaTestnet"] = "Hedera (Testnet)";
27
+ Chains["DogeMainnet"] = "Dogecoin";
28
+ Chains["CardanoMainnet"] = "Cardano";
29
+ Chains["AvalancheXChain"] = "Avalanche X-Chain";
30
+ Chains["AvalancheCChain"] = "Avalanche C-Chain";
31
+ Chains["PolygonMainnet"] = "Polygon";
32
+ Chains["TerraMainnet"] = "Terra";
33
+ Chains["RippleMainnet"] = "Ripple";
34
+ Chains["SolanaMainnet"] = "Solana";
35
+ Chains["XDCMainnet"] = "XDC Network";
36
+ Chains["MetalXTestnet"] = "Metal X-Chain (Testnet)";
37
+ Chains["MetalCTestnet"] = "Metal C-Chain (Testnet)";
38
+ Chains["MetalCMainnet"] = "Metal C-Chain";
39
+ })(Chains || (Chains = {}));
40
+ var Networks;
41
+ (function (Networks) {
42
+ Networks["Mainnet"] = "mainnet";
43
+ Networks["Testnet"] = "testnet";
44
+ Networks["Ropsten"] = "ropsten";
45
+ Networks["ERC20"] = "erc20";
46
+ Networks["BEP20"] = "bep20";
47
+ Networks["XLM"] = "xlm";
48
+ Networks["AVM"] = "avm";
49
+ Networks["EVM"] = "evm";
50
+ })(Networks || (Networks = {}));
51
+ var similarChains = (_similarChains = {}, _similarChains[Chains.EthereumMainnet] = [Chains.BinanceBEP20], _similarChains[Chains.BinanceBEP20] = [Chains.EthereumMainnet], _similarChains);
52
+ var Providers;
53
+ (function (Providers) {
54
+ Providers["FIREBLOCKS"] = "fireblocks";
55
+ Providers["METAL"] = "metal";
56
+ })(Providers || (Providers = {}));
57
+ var explorerLinkByChain = (_explorerLinkByChain = {}, _explorerLinkByChain[Chains.BitcoinMainnet] = function (txid) {
58
+ return "https://blockchain.com/btc/tx/" + txid;
59
+ }, _explorerLinkByChain[Chains.BitcoinTestnet] = function (txid) {
60
+ return "https://blockstream.info/testnet/tx/" + txid;
61
+ }, _explorerLinkByChain[Chains.EthereumMainnet] = function (txid) {
62
+ return "https://etherscan.io/tx/" + txid;
63
+ }, _explorerLinkByChain[Chains.EthereumRopsten] = function (txid) {
64
+ return "https://ropsten.etherscan.io/tx/" + txid;
65
+ }, _explorerLinkByChain[Chains.LitecoinMainnet] = function (txid) {
66
+ return "https://blockchair.com/litecoin/transaction/" + txid;
67
+ }, _explorerLinkByChain[Chains.LitecoinTestnet] = function (txid) {
68
+ return "https://blockexplorer.one/litecoin/testnet/blockHash/" + txid;
69
+ }, _explorerLinkByChain[Chains.BitcoinCashMainnet] = function (txid) {
70
+ return "https://blockchair.com/bitcoin-cash/transaction/" + txid;
71
+ }, _explorerLinkByChain[Chains.BitcoinCashTestnet] = function (txid) {
72
+ return "https://blockexplorer.one/bitcoin-cash/testnet/blockHash/" + txid;
73
+ }, _explorerLinkByChain[Chains.StellarMainnet] = function (txid) {
74
+ return "https://blockchair.com/stellar/transaction/" + txid;
75
+ }, _explorerLinkByChain[Chains.StellarTestnet] = function (txid) {
76
+ return "https://testnet.steexp.com/tx/" + txid;
77
+ }, _explorerLinkByChain[Chains.ProtonMainnet] = function (txid, traces) {
78
+ return "https://proton.bloks.io/transaction/" + txid + (traces ? '?tab=traces' : '');
79
+ }, _explorerLinkByChain[Chains.ProtonTestnet] = function (txid, traces) {
80
+ return "https://proton-test.bloks.io/transaction/" + txid + (traces ? '?tab=traces' : '');
81
+ }, _explorerLinkByChain[Chains.PolkadotMainnet] = function (txid) {
82
+ return "https://polkadot.subscan.io/extrinsic/" + txid;
83
+ }, _explorerLinkByChain[Chains.BinanceBEP2] = function (txid) {
84
+ return "https://binance.mintscan.io/txs/" + txid;
85
+ }, _explorerLinkByChain[Chains.BinanceBEP20] = function (txid) {
86
+ return "https://bscscan.com/tx/" + txid;
87
+ }, _explorerLinkByChain[Chains.EosMainnet] = function (txid) {
88
+ return "https://bloks.io/transaction/" + txid;
89
+ }, _explorerLinkByChain[Chains.EosTestnet] = function (txid) {
90
+ return "https://jungle.bloks.io/transaction/" + txid;
91
+ }, _explorerLinkByChain[Chains.HederaMainnet] = function (txid) {
92
+ return "https://app.dragonglass.me/transactions/" + txid;
93
+ }, _explorerLinkByChain[Chains.HederaTestnet] = function (txid) {
94
+ return "https://testnet.dragonglass.me/transactions/" + txid;
95
+ }, _explorerLinkByChain[Chains.DogeMainnet] = function (txid) {
96
+ return "https://blockchair.com/dogecoin/transaction/" + txid;
97
+ }, _explorerLinkByChain[Chains.CardanoMainnet] = function (txid) {
98
+ return "https://explorer.cardano.org/en/transaction?id=" + txid;
99
+ }, _explorerLinkByChain[Chains.AvalancheXChain] = function (txid) {
100
+ return "https://avascan.info/blockchain/x/tx/" + txid;
101
+ }, _explorerLinkByChain[Chains.AvalancheCChain] = function (txid) {
102
+ return "https://snowtrace.io/tx/" + txid;
103
+ }, _explorerLinkByChain[Chains.PolygonMainnet] = function (txid) {
104
+ return "https://polygonscan.com/tx/" + txid;
105
+ }, _explorerLinkByChain[Chains.TerraMainnet] = function (txid) {
106
+ return "https://terra.stake.id/?#/tx/" + txid;
107
+ }, _explorerLinkByChain[Chains.RippleMainnet] = function (txid) {
108
+ return "https://xrpscan.com/tx/" + txid;
109
+ }, _explorerLinkByChain[Chains.SolanaMainnet] = function (txid) {
110
+ return "https://explorer.solana.com/tx/" + txid;
111
+ }, _explorerLinkByChain[Chains.MetalXTestnet] = function (txid) {
112
+ return "https://metalscan.io/tx/" + txid;
113
+ }, _explorerLinkByChain[Chains.MetalCTestnet] = function (txid) {
114
+ return "https://tahoe.metaltrace.io/tx/" + txid;
115
+ }, _explorerLinkByChain[Chains.MetalCMainnet] = function (txid) {
116
+ return "https://metalscan.io/tx/" + txid;
117
+ }, _explorerLinkByChain[Chains.XDCMainnet] = function (txid) {
118
+ return "https://xdc.blocksscan.io/txs/" + txid;
119
+ }, _explorerLinkByChain);
120
+ var protonExplorerTxUrl = function protonExplorerTxUrl(chain, txId, traces) {
121
+ return chain === 'proton' ? explorerLinkByChain[Chains.ProtonMainnet](txId, traces) : explorerLinkByChain[Chains.ProtonTestnet](txId, traces);
122
+ };
123
+ // Initialize.
124
+ var initializeCoins = function initializeCoins(protonChain) {
125
+ var IS_MAINNET = protonChain === 'proton';
126
+ var IS_TESTNET = protonChain === 'proton-test';
127
+ var coins = [{
128
+ allowSwap: true,
129
+ allowBridge: IS_MAINNET,
130
+ allowLend: true,
131
+ allowBorrow: true,
132
+ name: 'Proton',
133
+ coin: 'XPR',
134
+ xtokenSymbol: 'XPR',
135
+ xtokenPrecision: 4,
136
+ xtokenContract: 'eosio.token',
137
+ wallets: [].concat(IS_MAINNET ? [{
138
+ wallet: 'XPR-ERC20',
139
+ symbol: 'XPR',
140
+ chain: Chains.EthereumMainnet,
141
+ network: Networks.ERC20,
142
+ precision: 4,
143
+ contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',
144
+ provider: Providers.FIREBLOCKS,
145
+ hasWithdrawMemo: false
146
+ }, {
147
+ wallet: 'XPR-BEP20',
148
+ symbol: 'XPR',
149
+ chain: Chains.BinanceBEP20,
150
+ network: Networks.BEP20,
151
+ precision: 4,
152
+ contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',
153
+ provider: Providers.FIREBLOCKS,
154
+ hasWithdrawMemo: false
155
+ }] : []),
156
+ image: 'https://www.proton.org/images/tokens/eosio-tokenXPR.png',
157
+ coingeckoId: 'proton'
158
+ }, {
159
+ allowSwap: true,
160
+ allowBridge: true,
161
+ allowLend: true,
162
+ allowBorrow: true,
163
+ name: 'USD Coin',
164
+ coin: 'USDC',
165
+ xtokenSymbol: 'XUSDC',
166
+ xtokenPrecision: 6,
167
+ xtokenContract: 'xtokens',
168
+ wallets: [].concat(IS_MAINNET ? [{
169
+ wallet: 'USDC',
170
+ symbol: 'USDC',
171
+ chain: Chains.EthereumMainnet,
172
+ network: Networks.ERC20,
173
+ precision: 6,
174
+ contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',
175
+ provider: Providers.FIREBLOCKS,
176
+ hasWithdrawMemo: false
177
+ },
178
+ // {
179
+ // wallet: 'USDC-BEP20',
180
+ // symbol: 'USDC',
181
+ // chain: Chains.BinanceBEP20,
182
+ // network: Networks.BEP20,
183
+ // precision: 18,
184
+ // contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',
185
+ // provider: Providers.FIREBLOCKS,
186
+ // hasWithdrawMemo: false
187
+ // },
188
+ {
189
+ wallet: 'USDC-XLM',
190
+ symbol: 'USDC',
191
+ chain: Chains.StellarMainnet,
192
+ network: Networks.XLM,
193
+ precision: 7,
194
+ contract: undefined,
195
+ provider: Providers.FIREBLOCKS,
196
+ hasWithdrawMemo: true
197
+ }] : [], IS_TESTNET ? [{
198
+ wallet: 'USDC',
199
+ symbol: 'USDC',
200
+ chain: Chains.EthereumRopsten,
201
+ network: Networks.Ropsten,
202
+ precision: 6,
203
+ contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',
204
+ provider: Providers.FIREBLOCKS,
205
+ hasWithdrawMemo: false
206
+ }, {
207
+ wallet: 'USDC-XLM',
208
+ symbol: 'USDC',
209
+ chain: Chains.StellarTestnet,
210
+ network: Networks.XLM,
211
+ precision: 7,
212
+ contract: undefined,
213
+ provider: Providers.FIREBLOCKS,
214
+ hasWithdrawMemo: true
215
+ }] : []),
216
+ image: 'https://www.proton.org/images/tokens/xtokensXUSDC.png',
217
+ coingeckoId: 'usd-coin'
218
+ }, {
219
+ allowSwap: true,
220
+ allowBridge: IS_MAINNET,
221
+ allowLend: true,
222
+ allowBorrow: true,
223
+ name: 'Metal DAO',
224
+ coin: 'MTL',
225
+ xtokenSymbol: 'XMT',
226
+ xtokenPrecision: 8,
227
+ xtokenContract: 'xtokens',
228
+ wallets: [].concat(IS_MAINNET ? [{
229
+ wallet: 'MTL',
230
+ symbol: 'MTL',
231
+ chain: Chains.EthereumMainnet,
232
+ network: Networks.ERC20,
233
+ precision: 8,
234
+ contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',
235
+ provider: Providers.FIREBLOCKS,
236
+ hasWithdrawMemo: false
237
+ }] : []),
238
+ image: 'https://www.proton.org/images/tokens/xtokensXMT.png',
239
+ coingeckoId: 'metal'
240
+ }, {
241
+ allowSwap: true,
242
+ allowBridge: true,
243
+ allowLend: false,
244
+ allowBorrow: false,
245
+ name: 'Metal Blockchain',
246
+ coin: 'METAL',
247
+ xtokenSymbol: 'METAL',
248
+ xtokenPrecision: 8,
249
+ xtokenContract: 'xtokens',
250
+ wallets: [].concat(IS_TESTNET ? [{
251
+ wallet: 'METAL',
252
+ symbol: 'METAL',
253
+ chain: Chains.MetalCTestnet,
254
+ network: Networks.EVM,
255
+ precision: 18,
256
+ contract: '',
257
+ provider: Providers.METAL,
258
+ hasWithdrawMemo: false
259
+ }] : [], IS_MAINNET ? [{
260
+ wallet: 'METAL',
261
+ symbol: 'METAL',
262
+ chain: Chains.MetalCMainnet,
263
+ network: Networks.EVM,
264
+ precision: 18,
265
+ contract: '',
266
+ provider: Providers.METAL,
267
+ hasWithdrawMemo: false
268
+ }, {
269
+ wallet: 'METAL',
270
+ symbol: 'METAL',
271
+ chain: Chains.EthereumMainnet,
272
+ network: Networks.ERC20,
273
+ precision: 18,
274
+ contract: '',
275
+ provider: Providers.FIREBLOCKS,
276
+ hasWithdrawMemo: false
277
+ }] : []),
278
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/metal-chain.png',
279
+ coingeckoId: 'metal-blockchain'
280
+ }, {
281
+ allowSwap: true,
282
+ allowBridge: true,
283
+ allowLend: true,
284
+ allowBorrow: true,
285
+ name: 'Bitcoin',
286
+ coin: 'BTC',
287
+ xtokenSymbol: 'XBTC',
288
+ xtokenPrecision: 8,
289
+ xtokenContract: 'xtokens',
290
+ wallets: [].concat(IS_MAINNET ? [{
291
+ wallet: 'BTC',
292
+ symbol: 'BTC',
293
+ chain: Chains.BitcoinMainnet,
294
+ network: Networks.Mainnet,
295
+ precision: 8,
296
+ contract: undefined,
297
+ provider: Providers.FIREBLOCKS,
298
+ hasWithdrawMemo: false
299
+ }] : [], IS_TESTNET ? [{
300
+ wallet: 'BTC',
301
+ symbol: 'BTC',
302
+ chain: Chains.BitcoinTestnet,
303
+ network: Networks.Testnet,
304
+ precision: 8,
305
+ contract: undefined,
306
+ provider: Providers.FIREBLOCKS,
307
+ hasWithdrawMemo: false
308
+ }] : []),
309
+ image: 'https://www.proton.org/images/tokens/xtokensXBTC.png',
310
+ coingeckoId: 'bitcoin'
311
+ }, {
312
+ allowSwap: true,
313
+ allowBridge: true,
314
+ allowLend: true,
315
+ allowBorrow: true,
316
+ name: 'Ethereum',
317
+ coin: 'ETH',
318
+ xtokenSymbol: 'XETH',
319
+ xtokenPrecision: 8,
320
+ xtokenContract: 'xtokens',
321
+ wallets: [].concat(IS_MAINNET ? [{
322
+ wallet: 'ETH',
323
+ symbol: 'ETH',
324
+ chain: Chains.EthereumMainnet,
325
+ network: Networks.Mainnet,
326
+ precision: 18,
327
+ contract: '0x0000000000000000000000000000000000000000',
328
+ provider: Providers.FIREBLOCKS,
329
+ hasWithdrawMemo: false
330
+ }] : [], IS_TESTNET ? [{
331
+ wallet: 'ETH',
332
+ symbol: 'ETH',
333
+ chain: Chains.EthereumRopsten,
334
+ network: Networks.Ropsten,
335
+ precision: 18,
336
+ contract: '0x0000000000000000000000000000000000000000',
337
+ provider: Providers.FIREBLOCKS,
338
+ hasWithdrawMemo: false
339
+ }] : []),
340
+ image: 'https://www.proton.org/images/tokens/xtokensXETH.png',
341
+ coingeckoId: 'ethereum'
342
+ }, {
343
+ allowSwap: true,
344
+ allowBridge: false,
345
+ allowLend: false,
346
+ allowBorrow: false,
347
+ name: 'Loan',
348
+ coin: 'LOAN',
349
+ xtokenSymbol: 'LOAN',
350
+ xtokenPrecision: 4,
351
+ xtokenContract: 'loan.token',
352
+ wallets: [],
353
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/loan.png',
354
+ coingeckoId: 'proton-loan'
355
+ }, {
356
+ allowSwap: true,
357
+ allowBridge: true,
358
+ allowLend: false,
359
+ allowBorrow: false,
360
+ name: 'Tether',
361
+ coin: 'USDT',
362
+ xtokenSymbol: 'XUSDT',
363
+ xtokenPrecision: 6,
364
+ xtokenContract: 'xtokens',
365
+ wallets: [].concat(IS_MAINNET ? [{
366
+ wallet: 'USDT',
367
+ symbol: 'USDT',
368
+ chain: Chains.EthereumMainnet,
369
+ network: Networks.ERC20,
370
+ precision: 6,
371
+ contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',
372
+ provider: Providers.FIREBLOCKS,
373
+ hasWithdrawMemo: false
374
+ }] : [], IS_MAINNET ? [{
375
+ wallet: 'USDT-BEP20',
376
+ symbol: 'USDT',
377
+ chain: Chains.BinanceBEP20,
378
+ network: Networks.BEP20,
379
+ precision: 18,
380
+ contract: '0x55d398326f99059fF775485246999027B3197955',
381
+ provider: Providers.FIREBLOCKS,
382
+ hasWithdrawMemo: false
383
+ }] : [], IS_TESTNET ? [{
384
+ wallet: 'USDT',
385
+ symbol: 'USDT',
386
+ chain: Chains.EthereumRopsten,
387
+ network: Networks.Ropsten,
388
+ precision: 6,
389
+ contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',
390
+ provider: Providers.FIREBLOCKS,
391
+ hasWithdrawMemo: false
392
+ }] : []),
393
+ image: 'https://www.proton.org/images/tokens/xtokensXUSDT.png',
394
+ coingeckoId: 'tether'
395
+ }, {
396
+ allowSwap: false,
397
+ allowBridge: IS_MAINNET,
398
+ allowLend: false,
399
+ allowBorrow: false,
400
+ name: 'TrueUSD',
401
+ coin: 'TUSD',
402
+ xtokenSymbol: 'XTUSD',
403
+ xtokenPrecision: 6,
404
+ xtokenContract: 'xtokens',
405
+ wallets: [].concat(IS_MAINNET ? [{
406
+ wallet: 'TUSD',
407
+ symbol: 'TUSD',
408
+ chain: Chains.EthereumMainnet,
409
+ network: Networks.ERC20,
410
+ precision: 18,
411
+ contract: '0x0000000000085D4780B73119B644AE5ECD22B376',
412
+ provider: Providers.FIREBLOCKS,
413
+ hasWithdrawMemo: false
414
+ }] : []),
415
+ image: 'https://www.proton.org/images/tokens/xtokensXTUSD.png',
416
+ coingeckoId: 'true-usd'
417
+ }, {
418
+ allowSwap: false,
419
+ allowBridge: IS_MAINNET,
420
+ allowLend: false,
421
+ allowBorrow: false,
422
+ name: 'Euro Coin',
423
+ coin: 'EUROC',
424
+ xtokenSymbol: 'XEUROC',
425
+ xtokenPrecision: 6,
426
+ xtokenContract: 'xtokens',
427
+ wallets: [].concat(IS_MAINNET ? [{
428
+ wallet: 'EUROC',
429
+ symbol: 'EUROC-ERC20',
430
+ chain: Chains.EthereumMainnet,
431
+ network: Networks.ERC20,
432
+ precision: 6,
433
+ contract: '0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c',
434
+ provider: Providers.FIREBLOCKS,
435
+ hasWithdrawMemo: false
436
+ }] : []),
437
+ image: 'https://assets.coingecko.com/coins/images/26045/small/euro-coin.png?1655394420',
438
+ coingeckoId: 'euro-coin'
439
+ }, {
440
+ allowSwap: false,
441
+ allowBridge: IS_MAINNET,
442
+ allowLend: false,
443
+ allowBorrow: false,
444
+ name: 'XDC Network',
445
+ coin: 'XDC',
446
+ xtokenSymbol: 'XDC',
447
+ xtokenPrecision: 4,
448
+ xtokenContract: 'xtokens',
449
+ wallets: [].concat(IS_MAINNET ? [{
450
+ wallet: 'XDC',
451
+ symbol: 'XDC',
452
+ chain: Chains.XDCMainnet,
453
+ network: Networks.Mainnet,
454
+ precision: 18,
455
+ contract: '',
456
+ provider: Providers.FIREBLOCKS,
457
+ hasWithdrawMemo: false
458
+ }] : []),
459
+ image: 'https://assets.coingecko.com/coins/images/2912/small/xdc-icon.png?1633700890',
460
+ coingeckoId: 'xdce-crowd-sale'
461
+ }, {
462
+ allowSwap: false,
463
+ allowBridge: IS_MAINNET,
464
+ allowLend: false,
465
+ allowBorrow: false,
466
+ name: 'Paxos Dollar',
467
+ coin: 'PAX',
468
+ xtokenSymbol: 'XPAX',
469
+ xtokenPrecision: 6,
470
+ xtokenContract: 'xtokens',
471
+ wallets: [].concat(IS_MAINNET ? [{
472
+ wallet: 'PAX',
473
+ symbol: 'PAX',
474
+ chain: Chains.EthereumMainnet,
475
+ network: Networks.ERC20,
476
+ precision: 18,
477
+ contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',
478
+ provider: Providers.FIREBLOCKS,
479
+ hasWithdrawMemo: false
480
+ }] : []),
481
+ image: 'https://www.proton.org/images/tokens/xtokensXPAX.png',
482
+ coingeckoId: 'paxos-standard'
483
+ }, {
484
+ allowSwap: false,
485
+ allowBridge: true,
486
+ allowLend: false,
487
+ allowBorrow: false,
488
+ name: 'Paxos Gold',
489
+ coin: 'PAXG',
490
+ xtokenSymbol: 'XPAXG',
491
+ xtokenPrecision: 8,
492
+ xtokenContract: 'xtokens',
493
+ wallets: [].concat(IS_MAINNET ? [{
494
+ wallet: 'PAXG',
495
+ symbol: 'PAXG',
496
+ chain: Chains.EthereumMainnet,
497
+ network: Networks.ERC20,
498
+ precision: 18,
499
+ contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',
500
+ provider: Providers.FIREBLOCKS,
501
+ hasWithdrawMemo: false
502
+ }] : [], IS_TESTNET ? [{
503
+ wallet: 'PAXG',
504
+ symbol: 'PAXG',
505
+ chain: Chains.EthereumRopsten,
506
+ network: Networks.Ropsten,
507
+ precision: 18,
508
+ contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',
509
+ provider: Providers.FIREBLOCKS,
510
+ hasWithdrawMemo: false
511
+ }] : []),
512
+ image: 'https://www.proton.org/images/tokens/xtokensXPAXG.png',
513
+ coingeckoId: 'pax-gold'
514
+ }, {
515
+ allowSwap: IS_MAINNET,
516
+ allowBridge: false,
517
+ allowLend: false,
518
+ allowBorrow: false,
519
+ name: 'Storex',
520
+ coin: 'STRX',
521
+ xtokenSymbol: 'STRX',
522
+ xtokenPrecision: 4,
523
+ xtokenContract: 'storex',
524
+ wallets: [],
525
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/strx.png',
526
+ coingeckoId: ''
527
+ }, {
528
+ allowSwap: IS_MAINNET,
529
+ allowBridge: false,
530
+ allowLend: false,
531
+ allowBorrow: false,
532
+ name: 'Mint',
533
+ coin: 'MINT',
534
+ xtokenSymbol: 'MINT',
535
+ xtokenPrecision: 4,
536
+ xtokenContract: 'protonmint',
537
+ wallets: [],
538
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/PMLogo-04.png',
539
+ coingeckoId: ''
540
+ }, {
541
+ allowSwap: IS_MAINNET,
542
+ allowBridge: false,
543
+ allowLend: false,
544
+ allowBorrow: false,
545
+ name: 'Snipcoins',
546
+ coin: 'SNIPS',
547
+ xtokenSymbol: 'SNIPS',
548
+ xtokenPrecision: 4,
549
+ xtokenContract: 'snipcoins',
550
+ wallets: [],
551
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/snips.png',
552
+ coingeckoId: ''
553
+ }, {
554
+ allowSwap: IS_MAINNET,
555
+ allowBridge: true,
556
+ allowLend: false,
557
+ allowBorrow: false,
558
+ name: 'Uniswap',
559
+ coin: 'UNI',
560
+ xtokenSymbol: 'XUNI',
561
+ xtokenPrecision: 6,
562
+ xtokenContract: 'xtokens',
563
+ wallets: [].concat(IS_MAINNET ? [{
564
+ wallet: 'UNI',
565
+ symbol: 'UNI',
566
+ chain: Chains.EthereumMainnet,
567
+ network: Networks.ERC20,
568
+ precision: 18,
569
+ contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',
570
+ provider: Providers.FIREBLOCKS,
571
+ hasWithdrawMemo: false
572
+ }] : [], IS_TESTNET ? [{
573
+ wallet: 'UNI',
574
+ symbol: 'UNI',
575
+ chain: Chains.EthereumRopsten,
576
+ network: Networks.Ropsten,
577
+ precision: 18,
578
+ contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',
579
+ provider: Providers.FIREBLOCKS,
580
+ hasWithdrawMemo: false
581
+ }] : []),
582
+ image: 'https://www.proton.org/images/tokens/xtokensXUNI.png',
583
+ coingeckoId: 'uniswap'
584
+ }, {
585
+ allowSwap: false,
586
+ allowBridge: false,
587
+ allowLend: false,
588
+ allowBorrow: false,
589
+ name: '1INCH',
590
+ coin: '1INCH',
591
+ xtokenSymbol: 'XINCH',
592
+ xtokenPrecision: 6,
593
+ xtokenContract: 'xtokens',
594
+ wallets: [].concat(IS_MAINNET ? [{
595
+ wallet: '1INCH',
596
+ symbol: '1INCH',
597
+ chain: Chains.EthereumMainnet,
598
+ network: Networks.ERC20,
599
+ precision: 18,
600
+ contract: '0x111111111117DC0AA78B770FA6A738034120C302',
601
+ provider: Providers.FIREBLOCKS,
602
+ hasWithdrawMemo: false
603
+ }] : []),
604
+ image: 'https://www.proton.org/images/tokens/xtokensXINCH.png',
605
+ coingeckoId: '1inch'
606
+ }, {
607
+ allowSwap: false,
608
+ allowBridge: false,
609
+ allowLend: false,
610
+ allowBorrow: false,
611
+ name: 'Chainlink',
612
+ coin: 'LINK',
613
+ xtokenSymbol: 'XLINK',
614
+ xtokenPrecision: 6,
615
+ xtokenContract: 'xtokens',
616
+ wallets: [].concat(IS_MAINNET ? [{
617
+ wallet: 'LINK',
618
+ symbol: 'LINK',
619
+ chain: Chains.EthereumMainnet,
620
+ network: Networks.ERC20,
621
+ precision: 18,
622
+ contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',
623
+ provider: Providers.FIREBLOCKS,
624
+ hasWithdrawMemo: false
625
+ }] : []),
626
+ image: 'https://www.proton.org/images/tokens/xtokensXLINK.png',
627
+ coingeckoId: 'chainlink'
628
+ }, {
629
+ allowSwap: IS_MAINNET,
630
+ allowBridge: true,
631
+ allowLend: false,
632
+ allowBorrow: false,
633
+ name: 'Litecoin',
634
+ coin: 'LTC',
635
+ xtokenSymbol: 'XLTC',
636
+ xtokenPrecision: 8,
637
+ xtokenContract: 'xtokens',
638
+ wallets: [].concat(IS_MAINNET ? [{
639
+ wallet: 'LTC',
640
+ symbol: 'LTC',
641
+ chain: Chains.LitecoinMainnet,
642
+ network: Networks.Mainnet,
643
+ precision: 8,
644
+ contract: undefined,
645
+ provider: Providers.FIREBLOCKS,
646
+ hasWithdrawMemo: false
647
+ }] : [], IS_TESTNET ? [{
648
+ wallet: 'LTC',
649
+ symbol: 'LTC',
650
+ chain: Chains.LitecoinTestnet,
651
+ network: Networks.Testnet,
652
+ precision: 8,
653
+ contract: undefined,
654
+ provider: Providers.FIREBLOCKS,
655
+ hasWithdrawMemo: false
656
+ }] : []),
657
+ image: 'https://www.proton.org/images/tokens/xtokensXLTC.png',
658
+ coingeckoId: 'litecoin'
659
+ }, {
660
+ allowSwap: false,
661
+ allowBridge: true,
662
+ allowLend: false,
663
+ allowBorrow: false,
664
+ name: 'Bitcoin Cash',
665
+ coin: 'BCH',
666
+ xtokenSymbol: 'XBCH',
667
+ xtokenPrecision: 8,
668
+ xtokenContract: 'xtokens',
669
+ wallets: [].concat(IS_MAINNET ? [{
670
+ wallet: 'BCH',
671
+ symbol: 'BCH',
672
+ chain: Chains.BitcoinCashMainnet,
673
+ network: Networks.Mainnet,
674
+ precision: 8,
675
+ contract: undefined,
676
+ provider: Providers.FIREBLOCKS,
677
+ hasWithdrawMemo: false
678
+ }] : [], IS_TESTNET ? [{
679
+ wallet: 'BCH',
680
+ symbol: 'BCH',
681
+ chain: Chains.BitcoinCashTestnet,
682
+ network: Networks.Testnet,
683
+ precision: 8,
684
+ contract: undefined,
685
+ provider: Providers.FIREBLOCKS,
686
+ hasWithdrawMemo: false
687
+ }] : []),
688
+ image: 'https://www.proton.org/images/tokens/xtokensXBCH.png',
689
+ coingeckoId: 'bitcoin-cash'
690
+ }, {
691
+ allowSwap: true,
692
+ allowBridge: true,
693
+ allowLend: false,
694
+ allowBorrow: false,
695
+ name: 'LunarCrush',
696
+ coin: 'LUNR',
697
+ xtokenSymbol: 'XLUNR',
698
+ xtokenPrecision: 4,
699
+ xtokenContract: 'xtokens',
700
+ wallets: [].concat(IS_MAINNET ? [{
701
+ wallet: 'LUNR',
702
+ symbol: 'LUNR',
703
+ chain: Chains.EthereumMainnet,
704
+ network: Networks.ERC20,
705
+ precision: 4,
706
+ contract: undefined,
707
+ provider: Providers.FIREBLOCKS,
708
+ hasWithdrawMemo: false
709
+ }] : []),
710
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xlunr.png',
711
+ coingeckoId: 'lunr-token'
712
+ }, {
713
+ allowSwap: false,
714
+ allowBridge: IS_TESTNET,
715
+ allowLend: false,
716
+ allowBorrow: false,
717
+ name: 'Stellar',
718
+ coin: 'XLM',
719
+ xtokenSymbol: 'XXLM',
720
+ xtokenPrecision: 6,
721
+ xtokenContract: 'xtokens',
722
+ wallets: [].concat(IS_MAINNET ? [{
723
+ wallet: 'XLM',
724
+ symbol: 'XLM',
725
+ chain: Chains.StellarMainnet,
726
+ network: Networks.Mainnet,
727
+ precision: 7,
728
+ contract: undefined,
729
+ provider: Providers.FIREBLOCKS,
730
+ hasWithdrawMemo: true
731
+ }] : [], IS_TESTNET ? [{
732
+ wallet: 'XLM',
733
+ symbol: 'XLM',
734
+ chain: Chains.StellarTestnet,
735
+ network: Networks.Testnet,
736
+ precision: 7,
737
+ contract: undefined,
738
+ provider: Providers.FIREBLOCKS,
739
+ hasWithdrawMemo: true
740
+ }] : []),
741
+ image: 'https://www.proton.org/images/tokens/xtokensXXLM.png',
742
+ coingeckoId: 'stellar'
743
+ }, {
744
+ allowSwap: false,
745
+ allowBridge: false,
746
+ allowLend: false,
747
+ allowBorrow: false,
748
+ name: 'Sense',
749
+ coin: 'SENSE',
750
+ xtokenSymbol: 'XSENSE',
751
+ xtokenPrecision: 4,
752
+ xtokenContract: 'sense',
753
+ wallets: [],
754
+ image: 'https://www.proton.org/images/tokens/senseXSENSE.png',
755
+ coingeckoId: 'sense'
756
+ }, {
757
+ allowSwap: false,
758
+ allowBridge: false,
759
+ allowLend: false,
760
+ allowBorrow: false,
761
+ name: 'Polkadot',
762
+ coin: 'DOT',
763
+ xtokenSymbol: 'XDOT',
764
+ xtokenPrecision: 8,
765
+ xtokenContract: 'xtokens',
766
+ wallets: [].concat(IS_MAINNET ? [{
767
+ wallet: 'DOT',
768
+ symbol: 'DOT',
769
+ chain: Chains.PolkadotMainnet,
770
+ network: Networks.Mainnet,
771
+ precision: 10,
772
+ contract: undefined,
773
+ provider: Providers.FIREBLOCKS,
774
+ hasWithdrawMemo: false
775
+ }] : []),
776
+ image: 'https://www.proton.org/images/tokens/xtokensXDOT.png',
777
+ coingeckoId: 'polkadot'
778
+ }, {
779
+ allowSwap: true,
780
+ allowBridge: IS_MAINNET,
781
+ allowLend: false,
782
+ allowBorrow: false,
783
+ name: 'Binance Coin',
784
+ coin: 'BNB',
785
+ xtokenSymbol: 'XBNB',
786
+ xtokenPrecision: 8,
787
+ xtokenContract: 'xtokens',
788
+ wallets: [].concat(IS_MAINNET ? [{
789
+ wallet: 'BNB',
790
+ symbol: 'BNB',
791
+ chain: Chains.BinanceBEP20,
792
+ network: Networks.BEP20,
793
+ precision: 18,
794
+ contract: undefined,
795
+ provider: Providers.FIREBLOCKS,
796
+ hasWithdrawMemo: false
797
+ }] : []),
798
+ image: 'https://www.proton.org/images/tokens/xtokensXBNB.png',
799
+ coingeckoId: 'binancecoin'
800
+ }, {
801
+ allowSwap: false,
802
+ allowBridge: false,
803
+ allowLend: false,
804
+ allowBorrow: false,
805
+ name: 'Binance USD',
806
+ coin: 'BUSD',
807
+ xtokenSymbol: 'XBUSD',
808
+ xtokenPrecision: 6,
809
+ xtokenContract: 'xtokens',
810
+ wallets: [
811
+ // ...(IS_MAINNET ? [{
812
+ // wallet: 'BUSD-BEP20',
813
+ // symbol: 'BUSD',
814
+ // chain: Chains.BinanceBEP20,
815
+ // network: Networks.BEP20,
816
+ // precision: 18,
817
+ // contract: '0xe9e7cea3dedca5984780bafc599bd69add087d56',
818
+ // provider: Providers.FIREBLOCKS,
819
+ // hasWithdrawMemo: false
820
+ // }]: [])
821
+ ],
822
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xbusd.png',
823
+ coingeckoId: 'binance-usd'
824
+ }, {
825
+ allowSwap: true,
826
+ allowBridge: true,
827
+ allowLend: false,
828
+ allowBorrow: false,
829
+ name: 'EOS',
830
+ coin: 'EOS',
831
+ xtokenSymbol: 'XEOS',
832
+ xtokenPrecision: 4,
833
+ xtokenContract: 'xtokens',
834
+ wallets: [].concat(IS_MAINNET ? [{
835
+ wallet: 'EOS',
836
+ symbol: 'EOS',
837
+ chain: Chains.EosMainnet,
838
+ network: Networks.Mainnet,
839
+ precision: 4,
840
+ contract: undefined,
841
+ provider: Providers.FIREBLOCKS,
842
+ hasWithdrawMemo: true
843
+ }] : [], IS_TESTNET ? [{
844
+ wallet: 'EOS',
845
+ symbol: 'EOS',
846
+ chain: Chains.EosTestnet,
847
+ network: Networks.Testnet,
848
+ precision: 4,
849
+ contract: undefined,
850
+ provider: Providers.FIREBLOCKS,
851
+ hasWithdrawMemo: true
852
+ }] : []),
853
+ image: 'https://www.proton.org/images/tokens/xtokensXEOS.png',
854
+ coingeckoId: 'eos'
855
+ }, {
856
+ allowSwap: IS_MAINNET,
857
+ allowBridge: IS_MAINNET,
858
+ allowLend: true,
859
+ allowBorrow: true,
860
+ name: 'Dogecoin',
861
+ coin: 'DOGE',
862
+ xtokenSymbol: 'XDOGE',
863
+ xtokenPrecision: 6,
864
+ xtokenContract: 'xtokens',
865
+ wallets: [].concat(IS_MAINNET ? [{
866
+ wallet: 'DOGE',
867
+ symbol: 'DOGE',
868
+ chain: Chains.DogeMainnet,
869
+ network: Networks.Mainnet,
870
+ precision: 8,
871
+ contract: undefined,
872
+ provider: Providers.FIREBLOCKS,
873
+ hasWithdrawMemo: false
874
+ }] : []),
875
+ image: 'https://www.proton.org/images/tokens/xtokensXDOGE.png',
876
+ coingeckoId: 'dogecoin'
877
+ }, {
878
+ allowSwap: IS_MAINNET,
879
+ allowBridge: IS_MAINNET,
880
+ allowLend: false,
881
+ allowBorrow: false,
882
+ name: 'Cardano',
883
+ coin: 'ADA',
884
+ xtokenSymbol: 'XADA',
885
+ xtokenPrecision: 6,
886
+ xtokenContract: 'xtokens',
887
+ wallets: [].concat(IS_MAINNET ? [{
888
+ wallet: 'ADA',
889
+ symbol: 'ADA',
890
+ chain: Chains.CardanoMainnet,
891
+ network: Networks.Mainnet,
892
+ precision: 6,
893
+ contract: undefined,
894
+ provider: Providers.FIREBLOCKS,
895
+ hasWithdrawMemo: false
896
+ }] : []),
897
+ image: 'https://www.proton.org/images/tokens/xtokensXADA.png',
898
+ coingeckoId: 'cardano'
899
+ },
900
+ // Adding
901
+ {
902
+ allowSwap: false,
903
+ allowBridge: false,
904
+ allowLend: false,
905
+ allowBorrow: false,
906
+ name: 'Terra',
907
+ coin: 'LUNA',
908
+ xtokenSymbol: 'XLUNA',
909
+ xtokenPrecision: 6,
910
+ xtokenContract: 'xtokens',
911
+ wallets: [
912
+ // ...(IS_MAINNET ? [{
913
+ // wallet: 'LUNA',
914
+ // symbol: 'LUNA',
915
+ // chain: Chains.TerraMainnet,
916
+ // network: Networks.Mainnet,
917
+ // precision: 6,
918
+ // contract: undefined,
919
+ // provider: Providers.FIREBLOCKS,
920
+ // hasWithdrawMemo: true
921
+ // }]: [])
922
+ ],
923
+ image: 'https://www.proton.org/images/tokens/xtokensXLUNA.png',
924
+ coingeckoId: 'terra-luna'
925
+ }, {
926
+ allowSwap: false,
927
+ allowBridge: false,
928
+ allowLend: false,
929
+ allowBorrow: false,
930
+ name: 'TerraUSD',
931
+ coin: 'UST',
932
+ xtokenSymbol: 'XUST',
933
+ xtokenPrecision: 6,
934
+ xtokenContract: 'xtokens',
935
+ wallets: [].concat(IS_MAINNET ? [{
936
+ wallet: 'UST',
937
+ symbol: 'UST',
938
+ chain: Chains.TerraMainnet,
939
+ network: Networks.Mainnet,
940
+ precision: 6,
941
+ contract: undefined,
942
+ provider: Providers.FIREBLOCKS,
943
+ hasWithdrawMemo: true
944
+ }] : []),
945
+ image: 'https://www.proton.org/images/tokens/xtokensXUST.png',
946
+ coingeckoId: 'terrausd'
947
+ }, {
948
+ allowSwap: false,
949
+ allowBridge: IS_MAINNET,
950
+ allowLend: false,
951
+ allowBorrow: false,
952
+ name: 'Solana',
953
+ coin: 'SOL',
954
+ xtokenSymbol: 'XSOL',
955
+ xtokenPrecision: 6,
956
+ xtokenContract: 'xtokens',
957
+ wallets: [].concat(IS_MAINNET ? [{
958
+ wallet: 'SOL',
959
+ symbol: 'SOL',
960
+ chain: Chains.SolanaMainnet,
961
+ network: Networks.Mainnet,
962
+ precision: 9,
963
+ contract: undefined,
964
+ provider: Providers.FIREBLOCKS,
965
+ hasWithdrawMemo: false
966
+ }] : []),
967
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png',
968
+ coingeckoId: 'solana'
969
+ }, {
970
+ allowSwap: false,
971
+ allowBridge: IS_MAINNET,
972
+ allowLend: false,
973
+ allowBorrow: false,
974
+ name: 'Ripple',
975
+ coin: 'XRP',
976
+ xtokenSymbol: 'XXRP',
977
+ xtokenPrecision: 6,
978
+ xtokenContract: 'xtokens',
979
+ wallets: [].concat(IS_MAINNET ? [{
980
+ wallet: 'XRP',
981
+ symbol: 'XRP',
982
+ chain: Chains.RippleMainnet,
983
+ network: Networks.Mainnet,
984
+ precision: 6,
985
+ contract: undefined,
986
+ provider: Providers.FIREBLOCKS,
987
+ hasWithdrawMemo: true
988
+ }] : []),
989
+ image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png',
990
+ coingeckoId: 'ripple'
991
+ },
992
+ // Future
993
+ {
994
+ allowSwap: false,
995
+ allowBridge: false,
996
+ allowLend: false,
997
+ allowBorrow: false,
998
+ name: 'Avalanche',
999
+ coin: 'AVAX',
1000
+ xtokenSymbol: 'XAVAX',
1001
+ xtokenPrecision: 9,
1002
+ xtokenContract: 'xtokens',
1003
+ wallets: [].concat(IS_MAINNET ? [{
1004
+ wallet: 'AVAX',
1005
+ symbol: 'AVAX',
1006
+ chain: Chains.AvalancheCChain,
1007
+ network: Networks.Mainnet,
1008
+ precision: 9,
1009
+ contract: undefined,
1010
+ provider: Providers.FIREBLOCKS,
1011
+ hasWithdrawMemo: false
1012
+ }] : []),
1013
+ image: 'https://www.proton.org/images/tokens/xtokensXAVAX.png',
1014
+ coingeckoId: 'avalanche-2'
1015
+ }, {
1016
+ allowSwap: false,
1017
+ allowBridge: false,
1018
+ allowLend: false,
1019
+ allowBorrow: false,
1020
+ name: 'Polygon',
1021
+ coin: 'MATIC',
1022
+ xtokenSymbol: 'XMATIC',
1023
+ xtokenPrecision: 8,
1024
+ xtokenContract: 'xtokens',
1025
+ wallets: [].concat(IS_MAINNET ? [{
1026
+ wallet: 'MATIC',
1027
+ symbol: 'MATIC',
1028
+ chain: Chains.PolygonMainnet,
1029
+ network: Networks.Mainnet,
1030
+ precision: 18,
1031
+ contract: '0x0000000000000000000000000000000000000000',
1032
+ provider: Providers.FIREBLOCKS,
1033
+ hasWithdrawMemo: false
1034
+ }] : []),
1035
+ image: 'https://www.proton.org/images/tokens/xtokensXMATIC.png',
1036
+ coingeckoId: 'matic-network'
1037
+ }, {
1038
+ allowSwap: true,
1039
+ allowBridge: false,
1040
+ allowLend: false,
1041
+ allowBorrow: false,
1042
+ name: 'Metal Dollar',
1043
+ coin: 'XMD',
1044
+ xtokenSymbol: 'XMD',
1045
+ xtokenPrecision: 6,
1046
+ xtokenContract: 'xmd.token',
1047
+ wallets: [],
1048
+ image: 'https://github.com/eoscafe/eos-airdrops/blob/master/logos/xmd.png?raw=true',
1049
+ coingeckoId: ''
1050
+ }, {
1051
+ allowSwap: false,
1052
+ allowBridge: IS_TESTNET,
1053
+ allowLend: false,
1054
+ allowBorrow: false,
1055
+ name: 'HBAR',
1056
+ coin: 'HBAR',
1057
+ xtokenSymbol: 'XHBAR',
1058
+ xtokenPrecision: 6,
1059
+ xtokenContract: 'xtokens',
1060
+ wallets: [].concat(IS_TESTNET ? [{
1061
+ wallet: 'HBAR',
1062
+ symbol: 'HBAR',
1063
+ chain: Chains.HederaTestnet,
1064
+ network: Networks.Testnet,
1065
+ precision: 8,
1066
+ contract: undefined,
1067
+ provider: Providers.FIREBLOCKS,
1068
+ hasWithdrawMemo: true
1069
+ }] : []),
1070
+ image: 'https://www.proton.org/images/tokens/xtokensXHBAR.png',
1071
+ coingeckoId: 'hedera-hashgraph'
1072
+ }];
1073
+ // Validation
1074
+ var walletWithDuplicateChains = coins.find(function (coin) {
1075
+ var chains = coin.wallets.map(function (wallet) {
1076
+ return wallet.chain;
1077
+ });
1078
+ return new Set(chains).size !== chains.length;
1079
+ });
1080
+ if (walletWithDuplicateChains) {
1081
+ throw new Error("Coin " + walletWithDuplicateChains.coin + " has duplicate chains in wallet");
1082
+ }
1083
+ return {
1084
+ allCoins: coins,
1085
+ swapCoins: coins.filter(function (coin) {
1086
+ return coin.allowSwap;
1087
+ }),
1088
+ bridgeCoins: coins.filter(function (coin) {
1089
+ return coin.allowBridge;
1090
+ }),
1091
+ lendCoins: coins.filter(function (coin) {
1092
+ return coin.allowLend;
1093
+ }),
1094
+ borrowCoins: coins.filter(function (coin) {
1095
+ return coin.allowBorrow;
1096
+ }),
1097
+ loanCoins: coins.filter(function (coin) {
1098
+ return coin.allowLend || coin.allowBorrow;
1099
+ }),
1100
+ allEnabledCoins: coins.filter(function (coin) {
1101
+ return coin.allowSwap || coin.allowBridge || coin.xtokenSymbol === 'XMD';
1102
+ })
1103
+ };
1104
+ };
1105
+
1106
+ var accountParser = /*#__PURE__*/string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/);
1107
+ var authorizationParser = /*#__PURE__*/object({
1108
+ actor: accountParser,
1109
+ permission: /*#__PURE__*/string()
1110
+ });
1111
+ var authorizationsParser = /*#__PURE__*/array(authorizationParser).min(1);
1112
+ var ExtendedAssetParser = /*#__PURE__*/object({
1113
+ quantity: /*#__PURE__*/string(),
1114
+ contract: accountParser
1115
+ });
1116
+
1117
+ var actionParser = /*#__PURE__*/object({
1118
+ account: /*#__PURE__*/string(),
1119
+ name: /*#__PURE__*/string(),
1120
+ authorization: /*#__PURE__*/array( /*#__PURE__*/object({
1121
+ actor: /*#__PURE__*/string(),
1122
+ permission: /*#__PURE__*/string()
1123
+ })),
1124
+ data: /*#__PURE__*/any(),
1125
+ hex_data: /*#__PURE__*/string().optional()
1126
+ });
1127
+ var transactionExtensionsParser = /*#__PURE__*/array(number().or(string())).optional();
1128
+ var rawTransactionParser = /*#__PURE__*/object({
1129
+ expiration: /*#__PURE__*/string(),
1130
+ ref_block_num: /*#__PURE__*/number(),
1131
+ ref_block_prefix: /*#__PURE__*/number(),
1132
+ max_net_usage_words: /*#__PURE__*/number(),
1133
+ max_cpu_usage_ms: /*#__PURE__*/number(),
1134
+ delay_sec: /*#__PURE__*/number(),
1135
+ context_free_actions: /*#__PURE__*/array(actionParser),
1136
+ transaction_extensions: /*#__PURE__*/array(transactionExtensionsParser)
1137
+ });
1138
+ var baseActionParser = function baseActionParser(contract, action, data) {
1139
+ return object({
1140
+ account: contract === '*' ? accountParser : literal(contract),
1141
+ name: literal(action),
1142
+ data: object(data),
1143
+ authorization: authorizationsParser
1144
+ });
1145
+ };
1146
+ var baseActionSerializedParser = function baseActionSerializedParser(contract, action, data) {
1147
+ return object({
1148
+ account: contract === '*' ? accountParser : literal(contract),
1149
+ name: literal(action),
1150
+ data: string().or(object(data)),
1151
+ authorization: authorizationsParser
1152
+ });
1153
+ };
1154
+ var webauthActionParser = function webauthActionParser(contract, action, data) {
1155
+ return object({
1156
+ account: literal('webauthn'),
1157
+ name: literal('exec'),
1158
+ data: object({
1159
+ account: accountParser,
1160
+ key: object({
1161
+ key: array(string().or(object({
1162
+ modulus: string(),
1163
+ exponent: string()
1164
+ }))),
1165
+ user_presence: number(),
1166
+ rpid: string()
1167
+ }),
1168
+ nonce: number(),
1169
+ permissions: authorizationsParser,
1170
+ signature: object({
1171
+ auth_data: string(),
1172
+ client_json: string(),
1173
+ signature: string()
1174
+ }),
1175
+ trx: rawTransactionParser.merge(object({
1176
+ actions: array(baseActionSerializedParser(contract, action, data)).length(1)
1177
+ }))
1178
+ }),
1179
+ authorization: authorizationsParser
1180
+ });
1181
+ };
1182
+ var singleActionTransactionParser = function singleActionTransactionParser(contract, action, data) {
1183
+ var baseAction = baseActionParser(contract, action, data);
1184
+ var webauthAction = webauthActionParser(contract, action, data);
1185
+ return rawTransactionParser.merge(object({
1186
+ actions: array(baseAction.or(webauthAction)).length(1)
1187
+ }));
1188
+ };
1189
+
1190
+ function _extends() {
1191
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
1192
+ for (var i = 1; i < arguments.length; i++) {
1193
+ var source = arguments[i];
1194
+ for (var key in source) {
1195
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1196
+ target[key] = source[key];
1197
+ }
1198
+ }
1199
+ }
1200
+ return target;
1201
+ };
1202
+ return _extends.apply(this, arguments);
1203
+ }
1204
+ function _unsupportedIterableToArray(o, minLen) {
1205
+ if (!o) return;
1206
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
1207
+ var n = Object.prototype.toString.call(o).slice(8, -1);
1208
+ if (n === "Object" && o.constructor) n = o.constructor.name;
1209
+ if (n === "Map" || n === "Set") return Array.from(o);
1210
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1211
+ }
1212
+ function _arrayLikeToArray(arr, len) {
1213
+ if (len == null || len > arr.length) len = arr.length;
1214
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
1215
+ return arr2;
1216
+ }
1217
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
1218
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
1219
+ if (it) return (it = it.call(o)).next.bind(it);
1220
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
1221
+ if (it) o = it;
1222
+ var i = 0;
1223
+ return function () {
1224
+ if (i >= o.length) return {
1225
+ done: true
1226
+ };
1227
+ return {
1228
+ done: false,
1229
+ value: o[i++]
1230
+ };
1231
+ };
1232
+ }
1233
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1234
+ }
1235
+
1236
+ var WRAP_CONTRACT = 'proton.wrap';
1237
+ var WRAP_AUTH_ACTION = 'generateauth';
1238
+ var FEE_FACTOR = 10000;
1239
+ var initializeConstants = function initializeConstants(chain) {
1240
+ var _initializeCoins = initializeCoins(chain),
1241
+ swapCoins = _initializeCoins.swapCoins,
1242
+ bridgeCoins = _initializeCoins.bridgeCoins,
1243
+ allEnabledCoins = _initializeCoins.allEnabledCoins,
1244
+ allCoins = _initializeCoins.allCoins,
1245
+ lendCoins = _initializeCoins.lendCoins,
1246
+ borrowCoins = _initializeCoins.borrowCoins,
1247
+ loanCoins = _initializeCoins.loanCoins;
1248
+ var constants = {
1249
+ SWAP_CONTRACT: 'proton.swaps',
1250
+ DEX_CONTRACT: 'dex',
1251
+ FEE_FACTOR: FEE_FACTOR,
1252
+ GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',
1253
+ SWAP_URL: chain === 'proton' ? 'https://otc.protonswap.com' : 'https://otc-test.protonswap.com',
1254
+ WRAP_SERVER_URL: chain === 'proton' ? 'https://www.api.bloks.io/proton-wrap-public2' : 'https://www.api.bloks.io/proton-wrap-testnet-public2',
1255
+ WRAP_CONTRACT: WRAP_CONTRACT,
1256
+ WRAP_ACTIONS: {
1257
+ SAVE_ADDRESS: 'saveaddress2',
1258
+ DELETE_ADDRESS: 'deladdress2',
1259
+ WRAP_START: 'wrapstart2',
1260
+ WRAP_FINISH: 'wrapfinish2',
1261
+ WRAP_PROCESS: 'wrapprocess2',
1262
+ WRAP_SET_CONF: 'wrapsetconf2'
1263
+ },
1264
+ WRAP_TABLES: {
1265
+ ADDRESSES: 'addresses2',
1266
+ WRAPS: 'wraps2'
1267
+ },
1268
+ ADDRESSES_INDEXES: {
1269
+ BY_ACCOUNT: 2,
1270
+ BY_ADDR_HASH: 3
1271
+ },
1272
+ WRAPS_INDEXES: {
1273
+ BY_ACCOUNT: 2,
1274
+ BY_STATUS: 3,
1275
+ BY_WRAP_HASH: 4
1276
+ },
1277
+ WRAP_PROCESS_TIMER: 5000,
1278
+ FARM_CONTRACT: 'yield.farms',
1279
+ WEBHOOK_PERMISSION: 'webhook',
1280
+ PUBLIC_PERMISSION: 'public',
1281
+ LIGHT_PERMISSION: 'light',
1282
+ WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,
1283
+ METAL_ENDPOINT: chain === 'proton' ? 'https://cirrus.metalpay.com' : 'https://cirrus-dev.metalpay.com',
1284
+ METAL_PROTON_ENDPOINT: chain === 'proton' ? 'https://api.protonchain.com' : 'https://api-dev.protonchain.com',
1285
+ METAL_DEX_HTTP_ENDPOINT: chain === 'proton' ? 'https://metal-dexdb.global.binfra.one/dex' : 'https://metallicus-dbapi-dev01.binfra.one/dex',
1286
+ METAL_DEX_WS_ENDPOINT: chain === 'proton' ? 'wss://metal-dexdb.global.binfra.one/dexws' : 'wss://metallicus-dbapi-dev01.binfra.one/dexws',
1287
+ PROTON_ENDPOINTS: chain === 'proton' ? ['https://metal-proton-rpc.global.binfra.one', 'https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news'] : ['https://metal-protontest-rpc.global.binfra.one', 'https://testnet.protonchain.com'],
1288
+ CHAIN_ID: chain === 'proton' ? '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0' : '71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd',
1289
+ DEX_PROCESS_SIZE: 30,
1290
+ DEX_SLTPPROCESS_SIZE: 10,
1291
+ MAX_PRICE: "9223372036854775806",
1292
+ MAX_ITEMS_PER_PAGE_DESKTOP: 25,
1293
+ MIN_PRICE: 1,
1294
+ DEFAULT_DEX_SYMBOL: chain === 'proton' ? 'XPR_XMD' : 'XPR_XUSDC',
1295
+ CHAIN: chain,
1296
+ SWAP_COINS: swapCoins,
1297
+ BRIDGE_COINS: bridgeCoins,
1298
+ ALL_ENABLED_COINS: allEnabledCoins,
1299
+ LEND_COINS: lendCoins,
1300
+ BORROW_COINS: borrowCoins,
1301
+ LOAN_COINS: loanCoins,
1302
+ ALL_COINS: allCoins,
1303
+ findBridgeCoinWalletByXtokenAndChain: function findBridgeCoinWalletByXtokenAndChain(xtokenSymbol, chain) {
1304
+ var bridgeCoin = constants.BRIDGE_COINS.find(function (bridgeCoin) {
1305
+ return bridgeCoin.xtokenSymbol === xtokenSymbol;
1306
+ });
1307
+ if (!bridgeCoin) return undefined;
1308
+ var bridgeWallet = bridgeCoin.wallets.find(function (bridgeWallet) {
1309
+ return bridgeWallet.chain === chain;
1310
+ });
1311
+ if (!bridgeWallet) return undefined;
1312
+ return _extends({}, bridgeCoin, bridgeWallet);
1313
+ },
1314
+ findBridgeCoinWallet: function findBridgeCoinWallet(coin, wallet) {
1315
+ var bridgeCoin = constants.BRIDGE_COINS.find(function (bridgeCoin) {
1316
+ return bridgeCoin.coin === coin;
1317
+ });
1318
+ if (!bridgeCoin) return undefined;
1319
+ var bridgeWallet = bridgeCoin.wallets.find(function (bridgeWallet) {
1320
+ return bridgeWallet.wallet === wallet;
1321
+ });
1322
+ if (!bridgeWallet) return undefined;
1323
+ return _extends({}, bridgeCoin, bridgeWallet);
1324
+ },
1325
+ findBridgeCoinNetwork: function findBridgeCoinNetwork(coin, network) {
1326
+ var bridgeCoin = constants.BRIDGE_COINS.find(function (bridgeCoin) {
1327
+ return bridgeCoin.coin === coin;
1328
+ });
1329
+ if (!bridgeCoin) return undefined;
1330
+ var bridgeWallet = bridgeCoin.wallets.find(function (bridgeWallet) {
1331
+ return bridgeWallet.network === network;
1332
+ });
1333
+ if (!bridgeWallet) return undefined;
1334
+ return _extends({}, bridgeCoin, bridgeWallet);
1335
+ }
1336
+ };
1337
+ return constants;
1338
+ };
1339
+
1340
+ var createAbstractAuthParser = function createAbstractAuthParser(contract, action, data) {
1341
+ return object({
1342
+ signer: authorizationParser,
1343
+ signatures: array(string()).length(1),
1344
+ transaction: singleActionTransactionParser(contract, action, data)
1345
+ });
1346
+ };
1347
+ var generateAuthData = {
1348
+ time: /*#__PURE__*/string(),
1349
+ protonAccount: /*#__PURE__*/string()
1350
+ };
1351
+ var generateAuthParser = /*#__PURE__*/createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData);
1352
+
1353
+ var addressParser = /*#__PURE__*/object({
1354
+ index: /*#__PURE__*/number(),
1355
+ account: accountParser,
1356
+ chain: /*#__PURE__*/string(),
1357
+ address: /*#__PURE__*/string(),
1358
+ address_hash: /*#__PURE__*/string()
1359
+ });
1360
+ var generateAddressBodyParser = /*#__PURE__*/object({
1361
+ coin: string(),
1362
+ wallet: string()
1363
+ }).merge(generateAuthParser);
1364
+ var generateAddressResponse = /*#__PURE__*/object({
1365
+ id: /*#__PURE__*/string(),
1366
+ address: /*#__PURE__*/string(),
1367
+ coin: /*#__PURE__*/string(),
1368
+ wallet: /*#__PURE__*/string(),
1369
+ memo: /*#__PURE__*/string().optional()
1370
+ });
1371
+
1372
+ var rateParser = /*#__PURE__*/object({
1373
+ counterCurrency: /*#__PURE__*/string(),
1374
+ price: /*#__PURE__*/number(),
1375
+ priceChangePercent: /*#__PURE__*/number(),
1376
+ marketCap: /*#__PURE__*/number(),
1377
+ volume: /*#__PURE__*/number(),
1378
+ timestamp: /*#__PURE__*/number()
1379
+ });
1380
+ var exchangeRateParser = /*#__PURE__*/object({
1381
+ contract: /*#__PURE__*/string(),
1382
+ symbol: /*#__PURE__*/string(),
1383
+ rank: /*#__PURE__*/number(),
1384
+ rates: /*#__PURE__*/array(rateParser)
1385
+ });
1386
+ var exchangeRatesParser = /*#__PURE__*/array(exchangeRateParser);
1387
+ var bloksRatesParser = /*#__PURE__*/array( /*#__PURE__*/object({
1388
+ contract: /*#__PURE__*/string(),
1389
+ symbol: /*#__PURE__*/string(),
1390
+ rank: /*#__PURE__*/number(),
1391
+ rates: /*#__PURE__*/array(rateParser)
1392
+ }));
1393
+
1394
+ var Type;
1395
+ (function (Type) {
1396
+ Type["RECEIVE"] = "receive";
1397
+ Type["SEND"] = "send";
1398
+ })(Type || (Type = {}));
1399
+ var depositBodyParser = /*#__PURE__*/object({
1400
+ id: /*#__PURE__*/string(),
1401
+ type: /*#__PURE__*/nativeEnum(Type),
1402
+ hash: /*#__PURE__*/string(),
1403
+ coin: /*#__PURE__*/string(),
1404
+ wallet: /*#__PURE__*/string(),
1405
+ network: /*#__PURE__*/string() // "erc29"
1406
+ });
1407
+
1408
+ var transactionParser = /*#__PURE__*/object({
1409
+ id: /*#__PURE__*/string(),
1410
+ wallet: /*#__PURE__*/string(),
1411
+ value: /*#__PURE__*/number(),
1412
+ valueString: /*#__PURE__*/string(),
1413
+ address: /*#__PURE__*/string(),
1414
+ type: /*#__PURE__*/nativeEnum(Type),
1415
+ state: /*#__PURE__*/string(),
1416
+ confirmations: /*#__PURE__*/number(),
1417
+ hash: /*#__PURE__*/string(),
1418
+ blockHash: /*#__PURE__*/string().optional().nullable(),
1419
+ blockHeight: /*#__PURE__*/number().optional().nullable() // 643159
1420
+ });
1421
+
1422
+ var otcOrderResponseParser = /*#__PURE__*/object({
1423
+ success: /*#__PURE__*/boolean(),
1424
+ transaction_id: /*#__PURE__*/string(),
1425
+ errormsg: /*#__PURE__*/string().optional()
1426
+ });
1427
+ var otcQuoteBodyParser = /*#__PURE__*/object({
1428
+ baseAmount: /*#__PURE__*/number(),
1429
+ baseSymbol: /*#__PURE__*/string(),
1430
+ quoteSymbol: /*#__PURE__*/string()
1431
+ });
1432
+ var otcQuoteResponseParser = /*#__PURE__*/object({
1433
+ success: /*#__PURE__*/boolean(),
1434
+ token: /*#__PURE__*/string(),
1435
+ qty: /*#__PURE__*/number(),
1436
+ errormsg: /*#__PURE__*/string().optional()
1437
+ });
1438
+
1439
+ var withdrawData = {
1440
+ from: /*#__PURE__*/string().refine(function (val) {
1441
+ return val !== WRAP_CONTRACT;
1442
+ }, {
1443
+ message: WRAP_CONTRACT + " must be receiver"
1444
+ }),
1445
+ to: /*#__PURE__*/literal(WRAP_CONTRACT),
1446
+ quantity: /*#__PURE__*/string(),
1447
+ memo: /*#__PURE__*/string()
1448
+ };
1449
+ var withdrawBodyParser = /*#__PURE__*/object({
1450
+ signer: authorizationParser,
1451
+ signatures: /*#__PURE__*/array(string()).length(1),
1452
+ transaction: /*#__PURE__*/singleActionTransactionParser('*', 'transfer', withdrawData),
1453
+ quoteId: /*#__PURE__*/string(),
1454
+ provider: /*#__PURE__*/string().optional()
1455
+ });
1456
+ var withdrawMetalResponseParser = /*#__PURE__*/object({
1457
+ success: /*#__PURE__*/boolean(),
1458
+ id: /*#__PURE__*/string()
1459
+ });
1460
+ var withdrawalFeeQuoteParser = /*#__PURE__*/object({
1461
+ quoteId: /*#__PURE__*/string(),
1462
+ estimatedFee: /*#__PURE__*/string(),
1463
+ currency: /*#__PURE__*/string(),
1464
+ network: /*#__PURE__*/string()
1465
+ });
1466
+
1467
+ var withdrawHistoryMetalSwapParser = /*#__PURE__*/object({
1468
+ id: /*#__PURE__*/string(),
1469
+ status: /*#__PURE__*/string(),
1470
+ amount: /*#__PURE__*/string(),
1471
+ currency: /*#__PURE__*/string(),
1472
+ network: /*#__PURE__*/string(),
1473
+ created: /*#__PURE__*/string(),
1474
+ withdrawalAddress: /*#__PURE__*/string(),
1475
+ withdrawalHash: /*#__PURE__*/string().optional()
1476
+ });
1477
+ var withdrawHistoryMetalResponseParser = /*#__PURE__*/object({
1478
+ swaps: /*#__PURE__*/array(withdrawHistoryMetalSwapParser),
1479
+ page: /*#__PURE__*/number(),
1480
+ pageSize: /*#__PURE__*/number(),
1481
+ numberOfElements: /*#__PURE__*/number(),
1482
+ totalPages: /*#__PURE__*/number(),
1483
+ totalElements: /*#__PURE__*/number()
1484
+ });
1485
+
1486
+ var Status;
1487
+ (function (Status) {
1488
+ Status["PENDING"] = "pending";
1489
+ Status["SUCCESS"] = "success";
1490
+ Status["FAIL"] = "fail";
1491
+ Status["PROCESSING"] = "processing";
1492
+ })(Status || (Status = {}));
1493
+ var wrapStartParser = /*#__PURE__*/object({
1494
+ balance: ExtendedAssetParser,
1495
+ id: /*#__PURE__*/string(),
1496
+ txid: /*#__PURE__*/string(),
1497
+ chain: /*#__PURE__*/string(),
1498
+ deposit_address: /*#__PURE__*/string(),
1499
+ confirmations: /*#__PURE__*/number()
1500
+ });
1501
+ var wrapSetConfParser = /*#__PURE__*/object({
1502
+ wrap_hash: /*#__PURE__*/string(),
1503
+ confirmations: /*#__PURE__*/number()
1504
+ });
1505
+ var wrapParser = /*#__PURE__*/object({
1506
+ index: /*#__PURE__*/number(),
1507
+ proton_account: /*#__PURE__*/string(),
1508
+ balance: ExtendedAssetParser,
1509
+ id: /*#__PURE__*/string(),
1510
+ txid: /*#__PURE__*/string(),
1511
+ chain: /*#__PURE__*/string(),
1512
+ deposit_address: /*#__PURE__*/string(),
1513
+ status: /*#__PURE__*/nativeEnum(Status),
1514
+ finish_txid: /*#__PURE__*/string(),
1515
+ wrap_hash: /*#__PURE__*/string(),
1516
+ confirmations: /*#__PURE__*/number()
1517
+ });
1518
+
1519
+ var _TOPICS;
1520
+ /**
1521
+ * OHLCV
1522
+ */
1523
+ var ohlcvParser = /*#__PURE__*/object({
1524
+ time: /*#__PURE__*/number(),
1525
+ open: /*#__PURE__*/number(),
1526
+ high: /*#__PURE__*/number(),
1527
+ low: /*#__PURE__*/number(),
1528
+ close: /*#__PURE__*/number(),
1529
+ volume: /*#__PURE__*/number(),
1530
+ volume_bid: /*#__PURE__*/number(),
1531
+ count: /*#__PURE__*/number()
1532
+ });
1533
+ var getOhlcvParser = /*#__PURE__*/object({
1534
+ interval: /*#__PURE__*/string(),
1535
+ from: /*#__PURE__*/string(),
1536
+ to: /*#__PURE__*/string(),
1537
+ symbol: /*#__PURE__*/string(),
1538
+ limit: /*#__PURE__*/string()["default"]("500").refine(function (n) {
1539
+ return +n <= 1000;
1540
+ }, 'Max limit is 1000')
1541
+ });
1542
+ var getOhlcvResponseParser = /*#__PURE__*/object({
1543
+ sync: /*#__PURE__*/number(),
1544
+ data: /*#__PURE__*/array(ohlcvParser)
1545
+ });
1546
+ /**
1547
+ * Order History
1548
+ */
1549
+ var orderHistoryParser = /*#__PURE__*/object({
1550
+ seq: /*#__PURE__*/number(),
1551
+ block_num: /*#__PURE__*/number(),
1552
+ block_time: /*#__PURE__*/string(),
1553
+ order_id: /*#__PURE__*/number(),
1554
+ market_id: /*#__PURE__*/number(),
1555
+ quantity_init: /*#__PURE__*/number().optional(),
1556
+ quantity_curr: /*#__PURE__*/number(),
1557
+ price: /*#__PURE__*/number(),
1558
+ account_name: /*#__PURE__*/string(),
1559
+ order_side: /*#__PURE__*/number(),
1560
+ order_type: /*#__PURE__*/number(),
1561
+ trigger_price: /*#__PURE__*/number(),
1562
+ fill_type: /*#__PURE__*/number(),
1563
+ status: /*#__PURE__*/string(),
1564
+ quantity_change: /*#__PURE__*/number(),
1565
+ trx_id: /*#__PURE__*/string()
1566
+ });
1567
+ var getOpenOrdersParser = /*#__PURE__*/object({
1568
+ account: /*#__PURE__*/string(),
1569
+ symbol: /*#__PURE__*/string().optional(),
1570
+ offset: /*#__PURE__*/string()["default"]("0"),
1571
+ limit: /*#__PURE__*/string()["default"]("100").refine(function (n) {
1572
+ return +n <= 250;
1573
+ }, 'Max limit is 250')
1574
+ });
1575
+ var getOpenOrdersResponseParser = /*#__PURE__*/object({
1576
+ sync: /*#__PURE__*/number(),
1577
+ count: /*#__PURE__*/number(),
1578
+ data: /*#__PURE__*/array(orderHistoryParser)
1579
+ });
1580
+ var getOrderHistoryParser = /*#__PURE__*/object({
1581
+ account: /*#__PURE__*/string(),
1582
+ symbol: /*#__PURE__*/string().optional(),
1583
+ offset: /*#__PURE__*/string()["default"]("0"),
1584
+ limit: /*#__PURE__*/string()["default"]("100").refine(function (n) {
1585
+ return +n <= 250;
1586
+ }, 'Max limit is 250'),
1587
+ trx_id: /*#__PURE__*/string().optional(),
1588
+ status: /*#__PURE__*/string().optional()
1589
+ });
1590
+ var getOrderHistoryResponseParser = /*#__PURE__*/object({
1591
+ sync: /*#__PURE__*/number(),
1592
+ count: /*#__PURE__*/number(),
1593
+ data: /*#__PURE__*/array(orderHistoryParser)
1594
+ });
1595
+ var getOrderParser = /*#__PURE__*/object({
1596
+ order_id: /*#__PURE__*/string()
1597
+ });
1598
+ var getOrderResponseParser = /*#__PURE__*/object({
1599
+ sync: /*#__PURE__*/number(),
1600
+ data: /*#__PURE__*/array(orderHistoryParser)
1601
+ });
1602
+ /**
1603
+ * Depth
1604
+ */
1605
+ var depthParser = /*#__PURE__*/object({
1606
+ level: /*#__PURE__*/number(),
1607
+ ask: /*#__PURE__*/number(),
1608
+ bid: /*#__PURE__*/number(),
1609
+ count: /*#__PURE__*/number()
1610
+ });
1611
+ var getDepthParser = /*#__PURE__*/object({
1612
+ symbol: /*#__PURE__*/string(),
1613
+ step: /*#__PURE__*/string(),
1614
+ limit: /*#__PURE__*/string()["default"]("100").refine(function (n) {
1615
+ return +n <= 250;
1616
+ }, 'Max limit is 250')
1617
+ });
1618
+ var getDepthResponseParser = /*#__PURE__*/object({
1619
+ sync: /*#__PURE__*/number(),
1620
+ data: /*#__PURE__*/object({
1621
+ bids: /*#__PURE__*/array(depthParser),
1622
+ asks: /*#__PURE__*/array(depthParser)
1623
+ })
1624
+ });
1625
+ /**
1626
+ * Daily
1627
+ */
1628
+ var dailyParser = /*#__PURE__*/object({
1629
+ market_id: /*#__PURE__*/number(),
1630
+ first: /*#__PURE__*/number(),
1631
+ last: /*#__PURE__*/number(),
1632
+ bid: /*#__PURE__*/number(),
1633
+ ask: /*#__PURE__*/number(),
1634
+ change_percentage_24hr: /*#__PURE__*/number(),
1635
+ high: /*#__PURE__*/number(),
1636
+ low: /*#__PURE__*/number()
1637
+ });
1638
+ var getDailyResponseParser = /*#__PURE__*/object({
1639
+ sync: /*#__PURE__*/number(),
1640
+ data: /*#__PURE__*/array(dailyParser)
1641
+ });
1642
+ /**
1643
+ * Markets
1644
+ */
1645
+ var marketParser = /*#__PURE__*/object({
1646
+ market_id: /*#__PURE__*/number(),
1647
+ symbol: /*#__PURE__*/string(),
1648
+ status_code: /*#__PURE__*/number(),
1649
+ type: /*#__PURE__*/string(),
1650
+ maker_fee: /*#__PURE__*/number(),
1651
+ taker_fee: /*#__PURE__*/number(),
1652
+ order_min: /*#__PURE__*/number(),
1653
+ bid_token: /*#__PURE__*/object({
1654
+ code: /*#__PURE__*/string(),
1655
+ precision: /*#__PURE__*/number(),
1656
+ contract: /*#__PURE__*/string(),
1657
+ multiplier: /*#__PURE__*/number()
1658
+ }),
1659
+ ask_token: /*#__PURE__*/object({
1660
+ code: /*#__PURE__*/string(),
1661
+ precision: /*#__PURE__*/number(),
1662
+ contract: /*#__PURE__*/string(),
1663
+ multiplier: /*#__PURE__*/number()
1664
+ })
1665
+ });
1666
+ var getMarketsResponseParser = /*#__PURE__*/object({
1667
+ sync: /*#__PURE__*/number(),
1668
+ data: /*#__PURE__*/array(marketParser)
1669
+ });
1670
+ /**
1671
+ * Trades
1672
+ */
1673
+ var tradeParser = /*#__PURE__*/object({
1674
+ block_num: /*#__PURE__*/number(),
1675
+ block_time: /*#__PURE__*/string(),
1676
+ trade_id: /*#__PURE__*/number(),
1677
+ market_id: /*#__PURE__*/number(),
1678
+ price: /*#__PURE__*/number(),
1679
+ bid_user: /*#__PURE__*/string(),
1680
+ bid_user_order_id: /*#__PURE__*/number(),
1681
+ bid_total: /*#__PURE__*/number(),
1682
+ bid_amount: /*#__PURE__*/number(),
1683
+ bid_fee: /*#__PURE__*/number(),
1684
+ ask_user: /*#__PURE__*/string(),
1685
+ ask_user_order_id: /*#__PURE__*/number(),
1686
+ ask_total: /*#__PURE__*/number(),
1687
+ ask_amount: /*#__PURE__*/number(),
1688
+ ask_fee: /*#__PURE__*/number(),
1689
+ order_side: /*#__PURE__*/number(),
1690
+ trx_id: /*#__PURE__*/string()
1691
+ });
1692
+ var getTradesParser = /*#__PURE__*/object({
1693
+ symbol: /*#__PURE__*/string(),
1694
+ offset: /*#__PURE__*/string()["default"]("0"),
1695
+ limit: /*#__PURE__*/string()["default"]("100").refine(function (n) {
1696
+ return +n <= 250;
1697
+ }, 'Max limit is 250')
1698
+ });
1699
+ var getTradesResponseParser = /*#__PURE__*/object({
1700
+ sync: /*#__PURE__*/number(),
1701
+ data: /*#__PURE__*/array(tradeParser)
1702
+ });
1703
+ var getTradeHistoryParser = /*#__PURE__*/object({
1704
+ account: /*#__PURE__*/string(),
1705
+ symbol: /*#__PURE__*/string().optional(),
1706
+ offset: /*#__PURE__*/string()["default"]("0"),
1707
+ limit: /*#__PURE__*/string()["default"]("100").refine(function (n) {
1708
+ return +n <= 250;
1709
+ }, 'Max limit is 250')
1710
+ });
1711
+ var getTradeHistoryResponseParser = /*#__PURE__*/object({
1712
+ sync: /*#__PURE__*/number(),
1713
+ count: /*#__PURE__*/number(),
1714
+ data: /*#__PURE__*/array(tradeParser)
1715
+ });
1716
+ /**
1717
+ * SYNC
1718
+ */
1719
+ var syncParser = /*#__PURE__*/object({
1720
+ sourceid: /*#__PURE__*/number(),
1721
+ block_num: /*#__PURE__*/string(),
1722
+ block_time: /*#__PURE__*/string(),
1723
+ irreversible: /*#__PURE__*/string(),
1724
+ is_master: /*#__PURE__*/number(),
1725
+ last_updated: /*#__PURE__*/string()
1726
+ });
1727
+ var getSyncResponseParser = /*#__PURE__*/object({
1728
+ dbSecondsBehind: /*#__PURE__*/number(),
1729
+ chronicleSecondsBehind: /*#__PURE__*/number(),
1730
+ maxSecondsBehind: /*#__PURE__*/number()
1731
+ });
1732
+ /**
1733
+ * Referral Totals
1734
+ */
1735
+ var refferalTotalParser = /*#__PURE__*/object({
1736
+ referrer: /*#__PURE__*/string(),
1737
+ market_id: /*#__PURE__*/number(),
1738
+ bid_fee: /*#__PURE__*/number(),
1739
+ bid_total: /*#__PURE__*/number(),
1740
+ ask_fee: /*#__PURE__*/number(),
1741
+ ask_total: /*#__PURE__*/number()
1742
+ });
1743
+ var getReferralTotalsParser = /*#__PURE__*/object({
1744
+ referrer: /*#__PURE__*/string()
1745
+ });
1746
+ var getReferralTotalsResponseParser = /*#__PURE__*/object({
1747
+ sync: /*#__PURE__*/number(),
1748
+ data: /*#__PURE__*/array(refferalTotalParser)
1749
+ });
1750
+ /**
1751
+ * Referrals
1752
+ */
1753
+ var refferalParser = /*#__PURE__*/object({
1754
+ referred_user: /*#__PURE__*/string()
1755
+ });
1756
+ var getReferralsParser = /*#__PURE__*/object({
1757
+ referrer: /*#__PURE__*/string()
1758
+ });
1759
+ var getReferralsResponseParser = /*#__PURE__*/object({
1760
+ sync: /*#__PURE__*/number(),
1761
+ data: /*#__PURE__*/array(refferalParser)
1762
+ });
1763
+ /**
1764
+ * Leaderboard
1765
+ */
1766
+ var leaderboardParser = /*#__PURE__*/object({
1767
+ user: /*#__PURE__*/string(),
1768
+ total: /*#__PURE__*/number()
1769
+ });
1770
+ var getLeaderboardParser = /*#__PURE__*/object({
1771
+ market_ids: /*#__PURE__*/array( /*#__PURE__*/string()),
1772
+ from: /*#__PURE__*/string(),
1773
+ to: /*#__PURE__*/string()
1774
+ });
1775
+ var getLeaderboardResponseParser = /*#__PURE__*/object({
1776
+ sync: /*#__PURE__*/number(),
1777
+ data: /*#__PURE__*/array(leaderboardParser)
1778
+ });
1779
+ /**
1780
+ * Basic Types
1781
+ */
1782
+ var orderType;
1783
+ (function (orderType) {
1784
+ orderType[orderType["ORDERBOOK"] = 0] = "ORDERBOOK";
1785
+ orderType[orderType["LIMIT"] = 1] = "LIMIT";
1786
+ orderType[orderType["STOPLOSS"] = 2] = "STOPLOSS";
1787
+ orderType[orderType["TAKEPROFIT"] = 3] = "TAKEPROFIT";
1788
+ })(orderType || (orderType = {}));
1789
+ var orderSide;
1790
+ (function (orderSide) {
1791
+ orderSide[orderSide["INVALID"] = 0] = "INVALID";
1792
+ orderSide[orderSide["BUY"] = 1] = "BUY";
1793
+ orderSide[orderSide["SELL"] = 2] = "SELL";
1794
+ })(orderSide || (orderSide = {}));
1795
+ var fillType;
1796
+ (function (fillType) {
1797
+ fillType[fillType["GTC"] = 0] = "GTC";
1798
+ fillType[fillType["IOC"] = 1] = "IOC";
1799
+ fillType[fillType["POST_ONLY"] = 2] = "POST_ONLY";
1800
+ })(fillType || (fillType = {}));
1801
+ var logStatus;
1802
+ (function (logStatus) {
1803
+ logStatus["CREATE"] = "create";
1804
+ logStatus["UPDATE"] = "update";
1805
+ logStatus["TRANSFER"] = "transfer";
1806
+ logStatus["CANCEL"] = "cancel";
1807
+ logStatus["DELETE"] = "delete";
1808
+ })(logStatus || (logStatus = {}));
1809
+ var ITopics;
1810
+ (function (ITopics) {
1811
+ ITopics["TRADES"] = "TRADES";
1812
+ ITopics["ORDERS"] = "ORDERS";
1813
+ })(ITopics || (ITopics = {}));
1814
+ var TOPICS = (_TOPICS = {}, _TOPICS[ITopics.TRADES] = {
1815
+ topic: ITopics.TRADES
1816
+ }, _TOPICS[ITopics.ORDERS] = {
1817
+ topic: ITopics.ORDERS
1818
+ }, _TOPICS);
1819
+
1820
+ var loginAccountParamsV3Parser = /*#__PURE__*/object({
1821
+ email: string().optional(),
1822
+ verificationCode: string().optional()
1823
+ }).merge(generateAuthParser);
1824
+
1825
+ var isSameToken = function isSameToken(token1, token2) {
1826
+ return token1.xtokenSymbol === token2.xtokenSymbol && token1.xtokenPrecision === token2.xtokenPrecision && token1.xtokenContract === token2.xtokenContract;
1827
+ };
1828
+ var median = function median(numbers) {
1829
+ var sorted = numbers.slice().sort(function (a, b) {
1830
+ return a - b;
1831
+ });
1832
+ var middle = Math.floor(sorted.length / 2);
1833
+ if (sorted.length % 2 === 0) {
1834
+ return (sorted[middle - 1] + sorted[middle]) / 2;
1835
+ }
1836
+ return sorted[middle];
1837
+ };
1838
+
1839
+ var INode = function INode(key, data) {
1840
+ this.key = void 0;
1841
+ this.data = {};
1842
+ this.key = key;
1843
+ if (data) {
1844
+ this.data = data;
1845
+ }
1846
+ };
1847
+ var ILink = function ILink(from, to, data) {
1848
+ this.from = void 0;
1849
+ this.to = void 0;
1850
+ this.data = {};
1851
+ this.from = from;
1852
+ this.to = to;
1853
+ if (data) {
1854
+ this.data = data;
1855
+ }
1856
+ };
1857
+ var Graph = /*#__PURE__*/function () {
1858
+ function Graph() {
1859
+ this.nodes = [];
1860
+ this.links = [];
1861
+ this.lastPathFound = [];
1862
+ this.isEquals = function (a, b) {
1863
+ return a.key === b.key;
1864
+ };
1865
+ }
1866
+ var _proto = Graph.prototype;
1867
+ _proto.addNode = function addNode(k, v) {
1868
+ var node = this.findNode(k);
1869
+ if (!node) {
1870
+ this.nodes.push(new INode(k, v));
1871
+ }
1872
+ };
1873
+ _proto.addNodes = function addNodes() {
1874
+ var _this = this;
1875
+ for (var _len = arguments.length, nodes = new Array(_len), _key = 0; _key < _len; _key++) {
1876
+ nodes[_key] = arguments[_key];
1877
+ }
1878
+ nodes.forEach(function (node) {
1879
+ return typeof node === "string" ? _this.addNode(node) : _this.addNode(node[0], node[1]);
1880
+ });
1881
+ };
1882
+ _proto.findNode = function findNode(k) {
1883
+ var _this2 = this;
1884
+ var inode = new INode(k);
1885
+ return this.nodes.find(function (node) {
1886
+ return _this2.isEquals(node, inode);
1887
+ });
1888
+ };
1889
+ _proto.findNodes = function findNodes() {
1890
+ var _this3 = this;
1891
+ for (var _len2 = arguments.length, keys = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1892
+ keys[_key2] = arguments[_key2];
1893
+ }
1894
+ return keys.map(function (k) {
1895
+ return _this3.findNode(k);
1896
+ });
1897
+ };
1898
+ _proto.requireFindNodes = function requireFindNodes() {
1899
+ var nodes = this.findNodes.apply(this, arguments);
1900
+ if (nodes.some(function (n) {
1901
+ return n === undefined;
1902
+ })) {
1903
+ throw new Error('One of the nodes does not exist');
1904
+ }
1905
+ return nodes;
1906
+ };
1907
+ _proto.addLink = function addLink(nodeA, nodeB, data) {
1908
+ var _this$requireFindNode = this.requireFindNodes(nodeA, nodeB),
1909
+ inodeA = _this$requireFindNode[0],
1910
+ inodeB = _this$requireFindNode[1];
1911
+ this.links.push(new ILink(inodeA, inodeB, data));
1912
+ };
1913
+ _proto.addLinks = function addLinks() {
1914
+ var _this4 = this;
1915
+ for (var _len3 = arguments.length, links = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1916
+ links[_key3] = arguments[_key3];
1917
+ }
1918
+ links.forEach(function (link) {
1919
+ return _this4.addLink.apply(_this4, link);
1920
+ });
1921
+ }
1922
+ /**
1923
+ * Get all nodes linked
1924
+ * to from `node`.
1925
+ */;
1926
+ _proto.findLinkedNodes = function findLinkedNodes(node) {
1927
+ var _this5 = this;
1928
+ return this.links.reduce(function (acc, link) {
1929
+ if (_this5.isEquals(link.from, node)) {
1930
+ acc.push(link.to);
1931
+ }
1932
+ return acc;
1933
+ }, []);
1934
+ };
1935
+ _proto.findAllPaths = function findAllPaths(from, to) {
1936
+ var _this6 = this;
1937
+ var allPaths = [];
1938
+ var _this$requireFindNode2 = this.requireFindNodes(from, to),
1939
+ fromNode = _this$requireFindNode2[0],
1940
+ toNode = _this$requireFindNode2[1];
1941
+ var path = [fromNode];
1942
+ var seen = new Set();
1943
+ var stuck = function stuck(x) {
1944
+ if (_this6.isEquals(x, toNode)) {
1945
+ return false;
1946
+ }
1947
+ for (var _iterator = _createForOfIteratorHelperLoose(_this6.findLinkedNodes(x)), _step; !(_step = _iterator()).done;) {
1948
+ var y = _step.value;
1949
+ if (!seen.has(y.key)) {
1950
+ seen.add(y.key);
1951
+ if (!stuck(y)) {
1952
+ return false;
1953
+ }
1954
+ }
1955
+ }
1956
+ return true;
1957
+ };
1958
+ var search = function search(x) {
1959
+ if (_this6.isEquals(x, toNode)) {
1960
+ allPaths.push(cloneDeep(path));
1961
+ return;
1962
+ }
1963
+ seen = new Set(path.map(function (p) {
1964
+ return p.key;
1965
+ }));
1966
+ if (stuck(x)) {
1967
+ return;
1968
+ }
1969
+ for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.findLinkedNodes(x)), _step2; !(_step2 = _iterator2()).done;) {
1970
+ var y = _step2.value;
1971
+ if (!path.includes(y)) {
1972
+ path.push(y);
1973
+ search(y);
1974
+ path.pop();
1975
+ }
1976
+ }
1977
+ };
1978
+ search(fromNode);
1979
+ return allPaths;
1980
+ };
1981
+ return Graph;
1982
+ }();
1983
+
1984
+ /**
1985
+ * XPR<>XUSDT (XPR -> XUSDT)
1986
+ *
1987
+ * pool1 * pool2
1988
+ * term = pool2 - --------------
1989
+ * pool1 + swap
1990
+ *
1991
+ * result = term - (term * fee)
1992
+ */
1993
+ var compute_transfer = function compute_transfer(pool1, pool2, swap, exchange_fee, precision) {
1994
+ var term1 = pool2;
1995
+ var term2over = pool1.times(pool2);
1996
+ var term2under = pool1.plus(swap);
1997
+ var term2 = term2over.div(term2under).integerValue(BigNumber.ROUND_DOWN);
1998
+ var term = term1.minus(term2);
1999
+ var fee = new BigNumber(exchange_fee).div(FEE_FACTOR);
2000
+ var result = term.minus(term.times(fee));
2001
+ return result.integerValue(BigNumber.ROUND_DOWN).shiftedBy(-precision);
2002
+ };
2003
+ var compute_transfer_curve = function compute_transfer_curve(reserve_in, reserve_out, amount_in, exchange_fee, precision, amplifier) {
2004
+ if (amplifier === 0) {
2005
+ return compute_transfer(new BigNumber(reserve_in), new BigNumber(reserve_out), new BigNumber(amount_in), exchange_fee, precision);
2006
+ }
2007
+ var MAX_ITERATIONS = 10;
2008
+ var sum = reserve_in + reserve_out;
2009
+ var D = sum;
2010
+ var D_prev = 0;
2011
+ var F = function F(v) {
2012
+ return (v >= 0 ? 1 : -1) * Math.floor(Math.abs(v));
2013
+ };
2014
+ var i = MAX_ITERATIONS;
2015
+ while (D != D_prev && i--) {
2016
+ var prod1 = F(F(D * D / (reserve_in * 2)) * D / (reserve_out * 2));
2017
+ D_prev = D;
2018
+ D = F(2 * D * (amplifier * sum + prod1) / ((2 * amplifier - 1) * D + 3 * prod1));
2019
+ }
2020
+ var b = reserve_in + amount_in + F(D / (amplifier * 2)) - D;
2021
+ var c = F(F(D * D / ((reserve_in + amount_in) * 2)) * D / (amplifier * 4));
2022
+ var x = D,
2023
+ x_prev = 0;
2024
+ i = MAX_ITERATIONS;
2025
+ while (x != x_prev && i--) {
2026
+ x_prev = F(x);
2027
+ x = +new BigNumber(x * x + c).div(2 * x + b).toFixed(0, BigNumber.ROUND_DOWN);
2028
+ }
2029
+ if (reserve_out <= x) {
2030
+ throw new Error("curve: insufficient reserve out");
2031
+ }
2032
+ // Amount out + Fee + 1
2033
+ var amount_out_with_fee = new BigNumber(reserve_out - x);
2034
+ // Fee + 1
2035
+ // +1 covers small precision issues
2036
+ var fee = amount_out_with_fee.times(exchange_fee).div(FEE_FACTOR).plus(1).toFixed(0, BigNumber.ROUND_DOWN);
2037
+ // Amount out
2038
+ var amount_out = amount_out_with_fee.minus(fee);
2039
+ return amount_out.integerValue(BigNumber.ROUND_DOWN).shiftedBy(-precision);
2040
+ };
2041
+ var compute_liquidity = function compute_liquidity(amount_lt, pool, lt_supply, precision) {
2042
+ var over = amount_lt.times(pool);
2043
+ var under = lt_supply;
2044
+ var result = over.div(under).integerValue(BigNumber.ROUND_DOWN);
2045
+ return +result.shiftedBy(-precision).toFixed(precision, BigNumber.ROUND_DOWN);
2046
+ };
2047
+ var isInputInvalid = function isInputInvalid(data, value, pool) {
2048
+ value = String(value);
2049
+ var isBackspace = data === null;
2050
+ var isNumber = !/[0-9]|\./.test(data);
2051
+ var isDoubleDot = data === '.' && value.indexOf('.') !== value.length - 1;
2052
+ var isPrecisionTooHigh = value && value.indexOf('.') !== -1 && value.split('.')[1].length > pool.xtokenPrecision;
2053
+ var isInvalid = !isBackspace && Boolean(isNumber || isDoubleDot || isPrecisionTooHigh);
2054
+ return isInvalid;
2055
+ };
2056
+ var applyDiscountToFee = function applyDiscountToFee(fee, staked) {
2057
+ if (staked >= 10000000) {
2058
+ return fee * 0;
2059
+ } else if (staked >= 1000000) {
2060
+ return fee * 0.33;
2061
+ } else if (staked >= 100000) {
2062
+ return fee * 0.66;
2063
+ } else {
2064
+ return fee;
2065
+ }
2066
+ };
2067
+
2068
+ export { Chains, ExtendedAssetParser, FEE_FACTOR, Graph, ILink, INode, ITopics, Networks, Providers, Status, TOPICS, Type, WRAP_AUTH_ACTION, WRAP_CONTRACT, accountParser, addressParser, applyDiscountToFee, authorizationParser, authorizationsParser, baseActionParser, baseActionSerializedParser, bloksRatesParser, compute_liquidity, compute_transfer, compute_transfer_curve, createAbstractAuthParser, dailyParser, depositBodyParser, depthParser, exchangeRateParser, exchangeRatesParser, explorerLinkByChain, fillType, generateAddressBodyParser, generateAddressResponse, generateAuthParser, getDailyResponseParser, getDepthParser, getDepthResponseParser, getLeaderboardParser, getLeaderboardResponseParser, getMarketsResponseParser, getOhlcvParser, getOhlcvResponseParser, getOpenOrdersParser, getOpenOrdersResponseParser, getOrderHistoryParser, getOrderHistoryResponseParser, getOrderParser, getOrderResponseParser, getReferralTotalsParser, getReferralTotalsResponseParser, getReferralsParser, getReferralsResponseParser, getSyncResponseParser, getTradeHistoryParser, getTradeHistoryResponseParser, getTradesParser, getTradesResponseParser, initializeCoins, initializeConstants, isInputInvalid, isSameToken, leaderboardParser, logStatus, loginAccountParamsV3Parser, marketParser, median, ohlcvParser, orderHistoryParser, orderSide, orderType, otcOrderResponseParser, otcQuoteBodyParser, otcQuoteResponseParser, protonExplorerTxUrl, rateParser, refferalParser, refferalTotalParser, similarChains, singleActionTransactionParser, syncParser, tradeParser, transactionParser, webauthActionParser, withdrawBodyParser, withdrawHistoryMetalResponseParser, withdrawHistoryMetalSwapParser, withdrawMetalResponseParser, withdrawalFeeQuoteParser, wrapParser, wrapSetConfParser, wrapStartParser };
2069
+ //# sourceMappingURL=wrap-constants.esm.js.map