@proton/wrap-constants 0.2.101 → 0.2.102

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