@proton/wrap-constants 0.2.193 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js DELETED
@@ -1,2957 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/index.ts
31
- var index_exports = {};
32
- __export(index_exports, {
33
- Chains: () => Chains,
34
- ExtendedAssetParser: () => ExtendedAssetParser,
35
- FEE_FACTOR: () => FEE_FACTOR,
36
- Graph: () => Graph,
37
- ILink: () => ILink,
38
- INode: () => INode,
39
- ITopics: () => ITopics,
40
- Networks: () => Networks,
41
- Providers: () => Providers,
42
- Status: () => Status,
43
- TOPICS: () => TOPICS,
44
- Type: () => Type,
45
- WRAP_AUTH_ACTION: () => WRAP_AUTH_ACTION,
46
- WRAP_CONTRACT: () => WRAP_CONTRACT,
47
- accountParser: () => accountParser,
48
- accountRamDeltaParser: () => accountRamDeltaParser,
49
- actParser: () => actParser,
50
- actionTraceParser: () => actionTraceParser,
51
- addressParser: () => addressParser,
52
- applyDiscountToFee: () => applyDiscountToFee,
53
- authorizationParser: () => authorizationParser,
54
- authorizationsParser: () => authorizationsParser,
55
- baseActionParser: () => baseActionParser,
56
- baseActionSerializedParser: () => baseActionSerializedParser,
57
- bloksRatesParser: () => bloksRatesParser,
58
- chronicleTransactionParser: () => chronicleTransactionParser,
59
- compute_liquidity: () => compute_liquidity,
60
- compute_transfer: () => compute_transfer,
61
- compute_transfer_curve: () => compute_transfer_curve,
62
- createAbstractAuthParser: () => createAbstractAuthParser,
63
- dailyParser: () => dailyParser,
64
- dbHistoryTransactionParser: () => dbHistoryTransactionParser,
65
- dbMarketParser: () => dbMarketParser,
66
- depositBodyParser: () => depositBodyParser,
67
- depthParser: () => depthParser,
68
- exchangeRateParser: () => exchangeRateParser,
69
- exchangeRatesParser: () => exchangeRatesParser,
70
- explorerLinkByChain: () => explorerLinkByChain,
71
- fillType: () => fillType,
72
- generateAddressBodyParser: () => generateAddressBodyParser,
73
- generateAddressResponse: () => generateAddressResponse,
74
- generateAuthParser: () => generateAuthParser,
75
- getDailyResponseParser: () => getDailyResponseParser,
76
- getDepthParser: () => getDepthParser,
77
- getDepthResponseParser: () => getDepthResponseParser,
78
- getHistoryActionsParser: () => getHistoryActionsParser,
79
- getHistoryActionsResponseParser: () => getHistoryActionsResponseParser,
80
- getHistoryTransactionResponseParser: () => getHistoryTransactionResponseParser,
81
- getHistoryTransfersParser: () => getHistoryTransfersParser,
82
- getHistoryTransfersResponseParser: () => getHistoryTransfersResponseParser,
83
- getLeaderboardParser: () => getLeaderboardParser,
84
- getLeaderboardResponseParser: () => getLeaderboardResponseParser,
85
- getMarketsResponseParser: () => getMarketsResponseParser,
86
- getOhlcvParser: () => getOhlcvParser,
87
- getOhlcvResponseParser: () => getOhlcvResponseParser,
88
- getOpenOrdersBalancesResponseParser: () => getOpenOrdersBalancesResponseParser,
89
- getOpenOrdersParser: () => getOpenOrdersParser,
90
- getOpenOrdersResponseParser: () => getOpenOrdersResponseParser,
91
- getOrderHistoryParser: () => getOrderHistoryParser,
92
- getOrderHistoryResponseParser: () => getOrderHistoryResponseParser,
93
- getOrderLifecycleParser: () => getOrderLifecycleParser,
94
- getOrderLifecycleResponseParser: () => getOrderLifecycleResponseParser,
95
- getReferralTotalsParser: () => getReferralTotalsParser,
96
- getReferralTotalsResponseParser: () => getReferralTotalsResponseParser,
97
- getReferralsParser: () => getReferralsParser,
98
- getReferralsResponseParser: () => getReferralsResponseParser,
99
- getSyncResponseParser: () => getSyncResponseParser,
100
- getTradeHistoryParser: () => getTradeHistoryParser,
101
- getTradeHistoryResponseParser: () => getTradeHistoryResponseParser,
102
- getTradesParser: () => getTradesParser,
103
- getTradesResponseParser: () => getTradesResponseParser,
104
- historyActionParser: () => historyActionParser,
105
- historyPartialParser: () => historyPartialParser,
106
- historyTransactionParser: () => historyTransactionParser,
107
- historyTransferParser: () => historyTransferParser,
108
- initializeCoins: () => initializeCoins,
109
- initializeConstants: () => initializeConstants,
110
- isInputInvalid: () => isInputInvalid,
111
- isSameToken: () => isSameToken,
112
- leaderboardParser: () => leaderboardParser,
113
- logStatus: () => logStatus,
114
- loginAccountParamsV3Parser: () => loginAccountParamsV3Parser,
115
- marketOpenOrdersBalanceParser: () => marketOpenOrdersBalanceParser,
116
- marketParser: () => marketParser,
117
- median: () => median,
118
- metalTransactionParser: () => metalTransactionParser,
119
- ohlcvParser: () => ohlcvParser,
120
- openOrderParser: () => openOrderParser,
121
- orderHistoryParser: () => orderHistoryParser,
122
- orderLogParser: () => orderLogParser,
123
- orderSide: () => orderSide,
124
- orderType: () => orderType,
125
- otcOrderResponseParser: () => otcOrderResponseParser,
126
- otcQuoteBodyParser: () => otcQuoteBodyParser,
127
- otcQuoteResponseParser: () => otcQuoteResponseParser,
128
- postSerializeOrderParser: () => postSerializeOrderParser,
129
- postSerializeOrderResponseParser: () => postSerializeOrderResponseParser,
130
- postSubmitOrderParser: () => postSubmitOrderParser,
131
- postSubmitOrderResponseParser: () => postSubmitOrderResponseParser,
132
- protonExplorerTxUrl: () => protonExplorerTxUrl,
133
- rateParser: () => rateParser,
134
- receiptParser: () => receiptParser,
135
- refferalParser: () => refferalParser,
136
- refferalTotalParser: () => refferalTotalParser,
137
- similarChains: () => similarChains,
138
- singleActionTransactionParser: () => singleActionTransactionParser,
139
- sortDirectionEnum: () => sortDirectionEnum,
140
- syncParser: () => syncParser,
141
- traceParser: () => traceParser,
142
- tradeLogParser: () => tradeLogParser,
143
- tradeParser: () => tradeParser,
144
- webauthActionParser: () => webauthActionParser,
145
- withdrawBodyParser: () => withdrawBodyParser,
146
- withdrawHistoryMetalResponseParser: () => withdrawHistoryMetalResponseParser,
147
- withdrawHistoryMetalSwapParser: () => withdrawHistoryMetalSwapParser,
148
- withdrawMetalResponseParser: () => withdrawMetalResponseParser,
149
- withdrawalFeeQuoteParser: () => withdrawalFeeQuoteParser,
150
- wrapParser: () => wrapParser,
151
- wrapSetConfParser: () => wrapSetConfParser,
152
- wrapStartParser: () => wrapStartParser
153
- });
154
- module.exports = __toCommonJS(index_exports);
155
-
156
- // src/coins.ts
157
- var Chains = /* @__PURE__ */ ((Chains2) => {
158
- Chains2["BitcoinMainnet"] = "Bitcoin";
159
- Chains2["BitcoinTestnet"] = "Bitcoin (Testnet)";
160
- Chains2["EthereumMainnet"] = "Ethereum";
161
- Chains2["EthereumSepolia"] = "Ethereum (Sepolia)";
162
- Chains2["LitecoinMainnet"] = "Litecoin";
163
- Chains2["LitecoinTestnet"] = "Litecoin (Testnet)";
164
- Chains2["BitcoinCashMainnet"] = "Bitcoin Cash";
165
- Chains2["BitcoinCashTestnet"] = "Bitcoin Cash (Testnet)";
166
- Chains2["StellarMainnet"] = "Stellar";
167
- Chains2["StellarTestnet"] = "Stellar (Testnet)";
168
- Chains2["ProtonMainnet"] = "Proton";
169
- Chains2["ProtonTestnet"] = "Proton (Testnet)";
170
- Chains2["PolkadotMainnet"] = "Polkadot";
171
- Chains2["BinanceBEP2"] = "Binance (BEP2)";
172
- Chains2["BinanceBEP20"] = "Binance (BEP20)";
173
- Chains2["EosMainnet"] = "EOS";
174
- Chains2["EosTestnet"] = "EOS (Jungle Testnet)";
175
- Chains2["HederaMainnet"] = "Hedera (Mainnet)";
176
- Chains2["HederaTestnet"] = "Hedera (Testnet)";
177
- Chains2["DogeMainnet"] = "Dogecoin";
178
- Chains2["CardanoMainnet"] = "Cardano";
179
- Chains2["AvalancheXChain"] = "Avalanche X-Chain";
180
- Chains2["AvalancheCChain"] = "Avalanche C-Chain";
181
- Chains2["PolygonMainnet"] = "Polygon";
182
- Chains2["TerraMainnet"] = "Terra";
183
- Chains2["RippleMainnet"] = "Ripple";
184
- Chains2["SolanaMainnet"] = "Solana";
185
- Chains2["XDCMainnet"] = "XDC Network";
186
- Chains2["MetalXTestnet"] = "Metal X-Chain (Testnet)";
187
- Chains2["MetalCTestnet"] = "Metal C-Chain (Testnet)";
188
- Chains2["MetalCMainnet"] = "Metal C-Chain";
189
- Chains2["MetalL2Mainnet"] = "Metal L2";
190
- Chains2["MetalL2Testnet"] = "Metal L2 (Testnet)";
191
- return Chains2;
192
- })(Chains || {});
193
- var Networks = /* @__PURE__ */ ((Networks2) => {
194
- Networks2["Mainnet"] = "mainnet";
195
- Networks2["Testnet"] = "testnet";
196
- Networks2["ERC20"] = "erc20";
197
- Networks2["BEP20"] = "bep20";
198
- Networks2["XLM"] = "xlm";
199
- Networks2["AVM"] = "avm";
200
- Networks2["EVM"] = "evm";
201
- Networks2["METALL2"] = "metall2";
202
- Networks2["Sepolia"] = "sepolia";
203
- return Networks2;
204
- })(Networks || {});
205
- var similarChains = {
206
- ["Ethereum" /* EthereumMainnet */]: ["Binance (BEP20)" /* BinanceBEP20 */],
207
- ["Binance (BEP20)" /* BinanceBEP20 */]: ["Ethereum" /* EthereumMainnet */]
208
- };
209
- var Providers = /* @__PURE__ */ ((Providers2) => {
210
- Providers2["FIREBLOCKS"] = "fireblocks";
211
- Providers2["METAL"] = "metal";
212
- Providers2["METALL2"] = "metall2";
213
- return Providers2;
214
- })(Providers || {});
215
- var explorerLinkByChain = {
216
- ["Bitcoin" /* BitcoinMainnet */]: (txid) => `https://blockchain.com/btc/tx/${txid}`,
217
- ["Bitcoin (Testnet)" /* BitcoinTestnet */]: (txid) => `https://blockstream.info/testnet/tx/${txid}`,
218
- ["Ethereum" /* EthereumMainnet */]: (txid) => `https://etherscan.io/tx/${txid}`,
219
- ["Ethereum (Sepolia)" /* EthereumSepolia */]: (txid) => `https://sepolia.etherscan.io/tx/${txid}`,
220
- ["Litecoin" /* LitecoinMainnet */]: (txid) => `https://blockchair.com/litecoin/transaction/${txid}`,
221
- ["Litecoin (Testnet)" /* LitecoinTestnet */]: (txid) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,
222
- ["Bitcoin Cash" /* BitcoinCashMainnet */]: (txid) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,
223
- ["Bitcoin Cash (Testnet)" /* BitcoinCashTestnet */]: (txid) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,
224
- ["Stellar" /* StellarMainnet */]: (txid) => `https://blockchair.com/stellar/transaction/${txid}`,
225
- ["Stellar (Testnet)" /* StellarTestnet */]: (txid) => `https://testnet.steexp.com/tx/${txid}`,
226
- ["Proton" /* ProtonMainnet */]: (txid, traces) => `https://explorer.xprnetwork.org/transaction/${txid}${traces ? "?tab=traces" : ""}`,
227
- ["Proton (Testnet)" /* ProtonTestnet */]: (txid, traces) => `https://testnet.explorer.xprnetwork.org/transaction/${txid}${traces ? "?tab=traces" : ""}`,
228
- ["Polkadot" /* PolkadotMainnet */]: (txid) => `https://polkadot.subscan.io/extrinsic/${txid}`,
229
- ["Binance (BEP2)" /* BinanceBEP2 */]: (txid) => `https://binance.mintscan.io/txs/${txid}`,
230
- ["Binance (BEP20)" /* BinanceBEP20 */]: (txid) => `https://bscscan.com/tx/${txid}`,
231
- ["EOS" /* EosMainnet */]: (txid) => `https://bloks.io/transaction/${txid}`,
232
- ["EOS (Jungle Testnet)" /* EosTestnet */]: (txid) => `https://jungle.bloks.io/transaction/${txid}`,
233
- ["Hedera (Mainnet)" /* HederaMainnet */]: (txid) => `https://app.dragonglass.me/transactions/${txid}`,
234
- ["Hedera (Testnet)" /* HederaTestnet */]: (txid) => `https://testnet.dragonglass.me/transactions/${txid}`,
235
- ["Dogecoin" /* DogeMainnet */]: (txid) => `https://blockchair.com/dogecoin/transaction/${txid}`,
236
- ["Cardano" /* CardanoMainnet */]: (txid) => `https://explorer.cardano.org/en/transaction?id=${txid}`,
237
- ["Avalanche X-Chain" /* AvalancheXChain */]: (txid) => `https://avascan.info/blockchain/x/tx/${txid}`,
238
- ["Avalanche C-Chain" /* AvalancheCChain */]: (txid) => `https://snowtrace.io/tx/${txid}`,
239
- ["Polygon" /* PolygonMainnet */]: (txid) => `https://polygonscan.com/tx/${txid}`,
240
- ["Terra" /* TerraMainnet */]: (txid) => `https://terra.stake.id/?#/tx/${txid}`,
241
- ["Ripple" /* RippleMainnet */]: (txid) => `https://xrpscan.com/tx/${txid}`,
242
- ["Solana" /* SolanaMainnet */]: (txid) => `https://explorer.solana.com/tx/${txid}`,
243
- ["Metal X-Chain (Testnet)" /* MetalXTestnet */]: (txid) => `https://metalscan.io/tx/${txid}`,
244
- ["Metal C-Chain (Testnet)" /* MetalCTestnet */]: (txid) => `https://tahoe.metaltrace.io/tx/${txid}`,
245
- ["Metal C-Chain" /* MetalCMainnet */]: (txid) => `https://metalscan.io/tx/${txid}`,
246
- ["XDC Network" /* XDCMainnet */]: (txid) => `https://xdc.blocksscan.io/txs/${txid}`,
247
- ["Metal L2 (Testnet)" /* MetalL2Testnet */]: (txid) => `https://testnet.explorer.metall2.com/tx/${txid}`,
248
- ["Metal L2" /* MetalL2Mainnet */]: (txid) => `https://explorer.metall2.com/tx/${txid}`
249
- };
250
- var protonExplorerTxUrl = (chain, txId, traces) => chain === "proton" ? explorerLinkByChain["Proton" /* ProtonMainnet */](txId, traces) : explorerLinkByChain["Proton (Testnet)" /* ProtonTestnet */](txId, traces);
251
- var initializeCoins = (protonChain) => {
252
- const IS_MAINNET = protonChain === "proton";
253
- const IS_TESTNET = protonChain === "proton-test";
254
- const coins = [
255
- {
256
- allowSwap: true,
257
- allowBridge: IS_MAINNET,
258
- allowLend: true,
259
- allowBorrow: true,
260
- name: "XPR Network",
261
- coin: "XPR",
262
- xtokenSymbol: "XPR",
263
- xtokenPrecision: 4,
264
- xtokenContract: "eosio.token",
265
- wallets: [
266
- ...IS_MAINNET ? [
267
- {
268
- wallet: "XPR-ERC20",
269
- symbol: "XPR",
270
- chain: "Ethereum" /* EthereumMainnet */,
271
- network: "erc20" /* ERC20 */,
272
- precision: 4,
273
- contract: "0xD7EFB00D12C2C13131FD319336FDF952525DA2AF",
274
- provider: "fireblocks" /* FIREBLOCKS */,
275
- hasWithdrawMemo: false
276
- },
277
- {
278
- wallet: "XPR-BEP20",
279
- symbol: "XPR",
280
- chain: "Binance (BEP20)" /* BinanceBEP20 */,
281
- network: "bep20" /* BEP20 */,
282
- precision: 4,
283
- contract: "0x5DE3939B2F811A61D830E6F52D13B066881412AB",
284
- provider: "fireblocks" /* FIREBLOCKS */,
285
- hasWithdrawMemo: false
286
- }
287
- ] : []
288
- ],
289
- image: "https://app.metalx.com/img/tokens/XPR.png",
290
- coingeckoId: "proton",
291
- unifiedCryptoassetId: "5350"
292
- },
293
- {
294
- allowSwap: true,
295
- allowBridge: true,
296
- allowLend: true,
297
- allowBorrow: true,
298
- name: "USD Coin",
299
- coin: "USDC",
300
- xtokenSymbol: "XUSDC",
301
- xtokenPrecision: 6,
302
- xtokenContract: "xtokens",
303
- wallets: [
304
- ...IS_MAINNET ? [
305
- {
306
- wallet: "USDC",
307
- symbol: "USDC",
308
- chain: "Ethereum" /* EthereumMainnet */,
309
- network: "erc20" /* ERC20 */,
310
- precision: 6,
311
- contract: "0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",
312
- provider: "fireblocks" /* FIREBLOCKS */,
313
- hasWithdrawMemo: false
314
- },
315
- // {
316
- // wallet: 'USDC-BEP20',
317
- // symbol: 'USDC',
318
- // chain: Chains.BinanceBEP20,
319
- // network: Networks.BEP20,
320
- // precision: 18,
321
- // contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',
322
- // provider: Providers.FIREBLOCKS,
323
- // hasWithdrawMemo: false
324
- // },
325
- {
326
- wallet: "USDC-XLM",
327
- symbol: "USDC",
328
- chain: "Stellar" /* StellarMainnet */,
329
- network: "xlm" /* XLM */,
330
- precision: 7,
331
- contract: void 0,
332
- provider: "fireblocks" /* FIREBLOCKS */,
333
- hasWithdrawMemo: true
334
- }
335
- ] : [],
336
- ...IS_TESTNET ? [
337
- {
338
- wallet: "USDC",
339
- symbol: "USDC",
340
- chain: "Ethereum (Sepolia)" /* EthereumSepolia */,
341
- network: "sepolia" /* Sepolia */,
342
- precision: 6,
343
- contract: "0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",
344
- provider: "fireblocks" /* FIREBLOCKS */,
345
- hasWithdrawMemo: false
346
- },
347
- {
348
- wallet: "USDC-XLM",
349
- symbol: "USDC",
350
- chain: "Stellar (Testnet)" /* StellarTestnet */,
351
- network: "xlm" /* XLM */,
352
- precision: 7,
353
- contract: void 0,
354
- provider: "fireblocks" /* FIREBLOCKS */,
355
- hasWithdrawMemo: true
356
- }
357
- ] : []
358
- ],
359
- image: "https://app.metalx.com/img/tokens/usdc.png",
360
- coingeckoId: "usd-coin",
361
- unifiedCryptoassetId: "3408"
362
- },
363
- {
364
- allowSwap: true,
365
- allowBridge: true,
366
- allowLend: true,
367
- allowBorrow: true,
368
- name: "Metal DAO",
369
- coin: "MTL",
370
- xtokenSymbol: "XMT",
371
- xtokenPrecision: 8,
372
- xtokenContract: "xtokens",
373
- wallets: [
374
- ...IS_MAINNET ? [
375
- {
376
- wallet: "MTL-METALL2",
377
- symbol: "MTL",
378
- chain: "Metal L2" /* MetalL2Mainnet */,
379
- network: "metall2" /* METALL2 */,
380
- precision: 8,
381
- contract: "0xBCFc435d8F276585f6431Fc1b9EE9A850B5C00A9",
382
- provider: "metall2" /* METALL2 */,
383
- hasWithdrawMemo: false
384
- }
385
- // {
386
- // wallet: "MTL",
387
- // symbol: "MTL",
388
- // chain: Chains.EthereumMainnet,
389
- // network: Networks.ERC20,
390
- // precision: 8,
391
- // contract: "0xF433089366899D83A9F26A773D59EC7ECF30355E",
392
- // provider: Providers.FIREBLOCKS,
393
- // hasWithdrawMemo: false,
394
- // },
395
- ] : [
396
- // {
397
- // wallet: "MTL-METALL2",
398
- // symbol: "MTL",
399
- // chain: Chains.MetalL2Testnet,
400
- // network: Networks.METALL2,
401
- // precision: 8,
402
- // contract: "0xBCFc435d8F276585f6431Fc1b9EE9A850B5C00A9",
403
- // provider: Providers.METALL2,
404
- // hasWithdrawMemo: false,
405
- // }
406
- ]
407
- ],
408
- image: "https://app.metalx.com/img/tokens/mtl.png",
409
- coingeckoId: "metal",
410
- unifiedCryptoassetId: "1788"
411
- },
412
- {
413
- allowSwap: true,
414
- allowBridge: true,
415
- allowLend: false,
416
- allowBorrow: false,
417
- name: "Metal Blockchain",
418
- coin: "METAL",
419
- xtokenSymbol: "METAL",
420
- xtokenPrecision: 8,
421
- xtokenContract: "xtokens",
422
- wallets: [
423
- ...IS_TESTNET ? [
424
- {
425
- wallet: "METAL",
426
- symbol: "METAL",
427
- chain: "Metal C-Chain (Testnet)" /* MetalCTestnet */,
428
- network: "evm" /* EVM */,
429
- precision: 18,
430
- contract: "",
431
- provider: "metal" /* METAL */,
432
- hasWithdrawMemo: false
433
- }
434
- ] : [],
435
- ...IS_MAINNET ? [
436
- {
437
- wallet: "METAL",
438
- symbol: "METAL",
439
- chain: "Metal C-Chain" /* MetalCMainnet */,
440
- network: "evm" /* EVM */,
441
- precision: 18,
442
- contract: "",
443
- provider: "metal" /* METAL */,
444
- hasWithdrawMemo: false
445
- },
446
- {
447
- wallet: "METAL-ERC20",
448
- symbol: "METAL",
449
- chain: "Ethereum" /* EthereumMainnet */,
450
- network: "erc20" /* ERC20 */,
451
- precision: 18,
452
- contract: "",
453
- provider: "fireblocks" /* FIREBLOCKS */,
454
- hasWithdrawMemo: false
455
- }
456
- ] : []
457
- ],
458
- image: "https://app.metalx.com/img/tokens/metal.png",
459
- coingeckoId: "metal-blockchain",
460
- unifiedCryptoassetId: "21769"
461
- },
462
- {
463
- allowSwap: true,
464
- allowBridge: true,
465
- allowLend: true,
466
- allowBorrow: true,
467
- name: "Bitcoin",
468
- coin: "BTC",
469
- xtokenSymbol: "XBTC",
470
- xtokenPrecision: 8,
471
- xtokenContract: "xtokens",
472
- wallets: [
473
- ...IS_MAINNET ? [
474
- {
475
- wallet: "BTC",
476
- symbol: "BTC",
477
- chain: "Bitcoin" /* BitcoinMainnet */,
478
- network: "mainnet" /* Mainnet */,
479
- precision: 8,
480
- contract: void 0,
481
- provider: "fireblocks" /* FIREBLOCKS */,
482
- hasWithdrawMemo: false
483
- }
484
- ] : [],
485
- ...IS_TESTNET ? [
486
- {
487
- wallet: "BTC",
488
- symbol: "BTC",
489
- chain: "Bitcoin (Testnet)" /* BitcoinTestnet */,
490
- network: "testnet" /* Testnet */,
491
- precision: 8,
492
- contract: void 0,
493
- provider: "fireblocks" /* FIREBLOCKS */,
494
- hasWithdrawMemo: false
495
- }
496
- ] : []
497
- ],
498
- image: "https://app.metalx.com/img/tokens/btc.png",
499
- coingeckoId: "bitcoin",
500
- unifiedCryptoassetId: "1"
501
- },
502
- {
503
- allowSwap: true,
504
- allowBridge: true,
505
- allowLend: true,
506
- allowBorrow: true,
507
- name: "Ethereum",
508
- coin: "ETH",
509
- xtokenSymbol: "XETH",
510
- xtokenPrecision: 8,
511
- xtokenContract: "xtokens",
512
- wallets: [
513
- ...IS_MAINNET ? [
514
- {
515
- wallet: "ETH",
516
- symbol: "ETH",
517
- chain: "Ethereum" /* EthereumMainnet */,
518
- network: "mainnet" /* Mainnet */,
519
- precision: 18,
520
- contract: "0x0000000000000000000000000000000000000000",
521
- provider: "fireblocks" /* FIREBLOCKS */,
522
- hasWithdrawMemo: false
523
- }
524
- ] : [],
525
- ...IS_TESTNET ? [
526
- {
527
- wallet: "ETH",
528
- symbol: "ETH",
529
- chain: "Ethereum (Sepolia)" /* EthereumSepolia */,
530
- network: "sepolia" /* Sepolia */,
531
- precision: 18,
532
- contract: "0x0000000000000000000000000000000000000000",
533
- provider: "fireblocks" /* FIREBLOCKS */,
534
- hasWithdrawMemo: false
535
- }
536
- ] : []
537
- ],
538
- image: "https://app.metalx.com/img/tokens/eth.png",
539
- coingeckoId: "ethereum",
540
- unifiedCryptoassetId: "1027"
541
- },
542
- {
543
- allowSwap: true,
544
- allowBridge: false,
545
- allowLend: false,
546
- allowBorrow: false,
547
- name: "LOAN Protocol",
548
- coin: "LOAN",
549
- xtokenSymbol: "LOAN",
550
- xtokenPrecision: 4,
551
- xtokenContract: "loan.token",
552
- wallets: [],
553
- image: "https://app.metalx.com/img/tokens/loan.png",
554
- coingeckoId: "proton-loan",
555
- unifiedCryptoassetId: "22071"
556
- },
557
- {
558
- allowSwap: true,
559
- allowBridge: true,
560
- allowLend: false,
561
- allowBorrow: false,
562
- name: "Tether",
563
- coin: "USDT",
564
- xtokenSymbol: "XUSDT",
565
- xtokenPrecision: 6,
566
- xtokenContract: "xtokens",
567
- wallets: [
568
- ...IS_MAINNET ? [
569
- {
570
- wallet: "USDT",
571
- symbol: "USDT",
572
- chain: "Ethereum" /* EthereumMainnet */,
573
- network: "erc20" /* ERC20 */,
574
- precision: 6,
575
- contract: "0xDAC17F958D2EE523A2206206994597C13D831EC7",
576
- provider: "fireblocks" /* FIREBLOCKS */,
577
- hasWithdrawMemo: false
578
- }
579
- // {
580
- // wallet: "USDT-BEP20",
581
- // symbol: "USDT",
582
- // chain: Chains.BinanceBEP20,
583
- // network: Networks.BEP20,
584
- // precision: 18,
585
- // contract: "0x55d398326f99059fF775485246999027B3197955",
586
- // provider: Providers.FIREBLOCKS,
587
- // hasWithdrawMemo: false,
588
- // },
589
- ] : [
590
- {
591
- wallet: "USDT",
592
- symbol: "USDT",
593
- chain: "Ethereum (Sepolia)" /* EthereumSepolia */,
594
- network: "sepolia" /* Sepolia */,
595
- precision: 6,
596
- contract: "0xDAC17F958D2EE523A2206206994597C13D831EC7",
597
- provider: "fireblocks" /* FIREBLOCKS */,
598
- hasWithdrawMemo: false
599
- }
600
- ]
601
- ],
602
- image: "https://app.metalx.com/img/tokens/usdt.png",
603
- coingeckoId: "tether",
604
- unifiedCryptoassetId: "825"
605
- },
606
- {
607
- allowSwap: false,
608
- allowBridge: false,
609
- allowLend: false,
610
- allowBorrow: false,
611
- name: "TrueUSD",
612
- coin: "TUSD",
613
- xtokenSymbol: "XTUSD",
614
- xtokenPrecision: 6,
615
- xtokenContract: "xtokens",
616
- wallets: [
617
- ...IS_MAINNET ? [
618
- // {
619
- // wallet: "TUSD",
620
- // symbol: "TUSD",
621
- // chain: Chains.EthereumMainnet,
622
- // network: Networks.ERC20,
623
- // precision: 18,
624
- // contract: "0x0000000000085D4780B73119B644AE5ECD22B376",
625
- // provider: Providers.FIREBLOCKS,
626
- // hasWithdrawMemo: false,
627
- // },
628
- ] : []
629
- ],
630
- image: "https://app.metalx.com/img/tokens/tusd.png",
631
- coingeckoId: "true-usd",
632
- unifiedCryptoassetId: "2563"
633
- },
634
- {
635
- allowSwap: false,
636
- allowBridge: IS_MAINNET,
637
- allowLend: false,
638
- allowBorrow: false,
639
- name: "Euro Coin",
640
- coin: "EUROC",
641
- xtokenSymbol: "XEUROC",
642
- xtokenPrecision: 6,
643
- xtokenContract: "xtokens",
644
- wallets: [
645
- ...IS_MAINNET ? [
646
- {
647
- wallet: "EUROC-ERC20",
648
- symbol: "EUROC",
649
- chain: "Ethereum" /* EthereumMainnet */,
650
- network: "erc20" /* ERC20 */,
651
- precision: 6,
652
- contract: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",
653
- provider: "fireblocks" /* FIREBLOCKS */,
654
- hasWithdrawMemo: false
655
- }
656
- ] : []
657
- ],
658
- image: "https://assets.coingecko.com/coins/images/26045/small/euro-coin.png?1655394420",
659
- coingeckoId: "euro-coin",
660
- unifiedCryptoassetId: "20641"
661
- },
662
- {
663
- allowSwap: false,
664
- allowBridge: IS_MAINNET,
665
- allowLend: false,
666
- allowBorrow: false,
667
- name: "XDC Network",
668
- coin: "XDC",
669
- xtokenSymbol: "XDC",
670
- xtokenPrecision: 4,
671
- xtokenContract: "xtokens",
672
- wallets: [
673
- ...IS_MAINNET ? [
674
- {
675
- wallet: "XDC",
676
- symbol: "XDC",
677
- chain: "XDC Network" /* XDCMainnet */,
678
- network: "mainnet" /* Mainnet */,
679
- precision: 18,
680
- contract: "",
681
- provider: "fireblocks" /* FIREBLOCKS */,
682
- hasWithdrawMemo: false
683
- }
684
- ] : []
685
- ],
686
- image: "https://app.metalx.com/img/tokens/xdc.png",
687
- coingeckoId: "xdce-crowd-sale",
688
- unifiedCryptoassetId: "2634"
689
- },
690
- {
691
- allowSwap: false,
692
- allowBridge: IS_MAINNET,
693
- allowLend: false,
694
- allowBorrow: false,
695
- name: "Paxos Dollar",
696
- coin: "PAX",
697
- xtokenSymbol: "XPAX",
698
- xtokenPrecision: 6,
699
- xtokenContract: "xtokens",
700
- wallets: [
701
- ...IS_MAINNET ? [
702
- {
703
- wallet: "PAX",
704
- symbol: "PAX",
705
- chain: "Ethereum" /* EthereumMainnet */,
706
- network: "erc20" /* ERC20 */,
707
- precision: 18,
708
- contract: "0x8E870D67F660D95D5BE530380D0EC0BD388289E1",
709
- provider: "fireblocks" /* FIREBLOCKS */,
710
- hasWithdrawMemo: false
711
- }
712
- ] : []
713
- ],
714
- image: "https://app.metalx.com/img/tokens/pax.png",
715
- coingeckoId: "paxos-standard",
716
- unifiedCryptoassetId: "3330"
717
- },
718
- {
719
- allowSwap: false,
720
- allowBridge: true,
721
- allowLend: false,
722
- allowBorrow: false,
723
- name: "Paxos Gold",
724
- coin: "PAXG",
725
- xtokenSymbol: "XPAXG",
726
- xtokenPrecision: 8,
727
- xtokenContract: "xtokens",
728
- wallets: [
729
- ...IS_MAINNET ? [
730
- {
731
- wallet: "PAXG",
732
- symbol: "PAXG",
733
- chain: "Ethereum" /* EthereumMainnet */,
734
- network: "erc20" /* ERC20 */,
735
- precision: 18,
736
- contract: "0x45804880DE22913DAFE09F4980848ECE6ECBAF78",
737
- provider: "fireblocks" /* FIREBLOCKS */,
738
- hasWithdrawMemo: false
739
- }
740
- ] : [],
741
- ...IS_TESTNET ? [
742
- {
743
- wallet: "PAXG",
744
- symbol: "PAXG",
745
- chain: "Ethereum (Sepolia)" /* EthereumSepolia */,
746
- network: "sepolia" /* Sepolia */,
747
- precision: 18,
748
- contract: "0x45804880DE22913DAFE09F4980848ECE6ECBAF78",
749
- provider: "fireblocks" /* FIREBLOCKS */,
750
- hasWithdrawMemo: false
751
- }
752
- ] : []
753
- ],
754
- image: "https://app.metalx.com/img/tokens/paxg.png",
755
- coingeckoId: "pax-gold",
756
- unifiedCryptoassetId: "4705"
757
- },
758
- {
759
- allowSwap: false,
760
- allowBridge: false,
761
- allowLend: false,
762
- allowBorrow: false,
763
- name: "Storex",
764
- coin: "STRX",
765
- xtokenSymbol: "STRX",
766
- xtokenPrecision: 4,
767
- xtokenContract: "storex",
768
- wallets: [],
769
- image: "https://app.metalx.com/img/tokens/strx.png",
770
- coingeckoId: "storex",
771
- unifiedCryptoassetId: ""
772
- },
773
- {
774
- allowSwap: false,
775
- allowBridge: false,
776
- allowLend: false,
777
- allowBorrow: false,
778
- name: "Mint",
779
- coin: "MINT",
780
- xtokenSymbol: "MINT",
781
- xtokenPrecision: 4,
782
- xtokenContract: "protonmint",
783
- wallets: [],
784
- image: "https://app.metalx.com/img/tokens/mint.png",
785
- coingeckoId: "",
786
- unifiedCryptoassetId: ""
787
- },
788
- {
789
- allowSwap: IS_MAINNET,
790
- allowBridge: false,
791
- allowLend: false,
792
- allowBorrow: false,
793
- name: "Snipcoins",
794
- coin: "SNIPS",
795
- xtokenSymbol: "SNIPS",
796
- xtokenPrecision: 4,
797
- xtokenContract: "snipcoins",
798
- wallets: [],
799
- image: "https://app.metalx.com/img/tokens/snips.png",
800
- coingeckoId: "",
801
- unifiedCryptoassetId: ""
802
- },
803
- {
804
- allowSwap: false,
805
- allowBridge: false,
806
- allowLend: false,
807
- allowBorrow: false,
808
- name: "Uniswap",
809
- coin: "UNI",
810
- xtokenSymbol: "XUNI",
811
- xtokenPrecision: 6,
812
- xtokenContract: "xtokens",
813
- wallets: [
814
- ...IS_MAINNET ? [
815
- // {
816
- // wallet: "UNI",
817
- // symbol: "UNI",
818
- // chain: Chains.EthereumMainnet,
819
- // network: Networks.ERC20,
820
- // precision: 18,
821
- // contract: "0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",
822
- // provider: Providers.FIREBLOCKS,
823
- // hasWithdrawMemo: false,
824
- // },
825
- ] : [],
826
- ...IS_TESTNET ? [
827
- // {
828
- // wallet: "UNI",
829
- // symbol: "UNI",
830
- // chain: Chains.EthereumSepolia,
831
- // network: Networks.Sepolia,
832
- // precision: 18,
833
- // contract: "0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",
834
- // provider: Providers.FIREBLOCKS,
835
- // hasWithdrawMemo: false,
836
- // },
837
- ] : []
838
- ],
839
- image: "https://app.metalx.com/img/tokens/uni.png",
840
- coingeckoId: "uniswap",
841
- unifiedCryptoassetId: "7083"
842
- },
843
- {
844
- allowSwap: false,
845
- allowBridge: false,
846
- allowLend: false,
847
- allowBorrow: false,
848
- name: "1INCH",
849
- coin: "1INCH",
850
- xtokenSymbol: "XINCH",
851
- xtokenPrecision: 6,
852
- xtokenContract: "xtokens",
853
- wallets: [
854
- ...IS_MAINNET ? [
855
- {
856
- wallet: "1INCH",
857
- symbol: "1INCH",
858
- chain: "Ethereum" /* EthereumMainnet */,
859
- network: "erc20" /* ERC20 */,
860
- precision: 18,
861
- contract: "0x111111111117DC0AA78B770FA6A738034120C302",
862
- provider: "fireblocks" /* FIREBLOCKS */,
863
- hasWithdrawMemo: false
864
- }
865
- ] : []
866
- ],
867
- image: "https://www.proton.org/images/tokens/xtokensXINCH.png",
868
- coingeckoId: "1inch",
869
- unifiedCryptoassetId: "8104"
870
- },
871
- {
872
- allowSwap: false,
873
- allowBridge: false,
874
- allowLend: false,
875
- allowBorrow: false,
876
- name: "Chainlink",
877
- coin: "LINK",
878
- xtokenSymbol: "XLINK",
879
- xtokenPrecision: 6,
880
- xtokenContract: "xtokens",
881
- wallets: [
882
- ...IS_MAINNET ? [
883
- {
884
- wallet: "LINK",
885
- symbol: "LINK",
886
- chain: "Ethereum" /* EthereumMainnet */,
887
- network: "erc20" /* ERC20 */,
888
- precision: 18,
889
- contract: "0x514910771AF9CA656AF840DFF83E8264ECF986CA",
890
- provider: "fireblocks" /* FIREBLOCKS */,
891
- hasWithdrawMemo: false
892
- }
893
- ] : []
894
- ],
895
- image: "https://app.metalx.com/img/tokens/link.png",
896
- coingeckoId: "chainlink",
897
- unifiedCryptoassetId: "1975"
898
- },
899
- {
900
- allowSwap: IS_MAINNET,
901
- allowBridge: true,
902
- allowLend: false,
903
- allowBorrow: false,
904
- name: "Litecoin",
905
- coin: "LTC",
906
- xtokenSymbol: "XLTC",
907
- xtokenPrecision: 8,
908
- xtokenContract: "xtokens",
909
- wallets: [
910
- ...IS_MAINNET ? [
911
- {
912
- wallet: "LTC",
913
- symbol: "LTC",
914
- chain: "Litecoin" /* LitecoinMainnet */,
915
- network: "mainnet" /* Mainnet */,
916
- precision: 8,
917
- contract: void 0,
918
- provider: "fireblocks" /* FIREBLOCKS */,
919
- hasWithdrawMemo: false
920
- }
921
- ] : [],
922
- ...IS_TESTNET ? [
923
- {
924
- wallet: "LTC",
925
- symbol: "LTC",
926
- chain: "Litecoin (Testnet)" /* LitecoinTestnet */,
927
- network: "testnet" /* Testnet */,
928
- precision: 8,
929
- contract: void 0,
930
- provider: "fireblocks" /* FIREBLOCKS */,
931
- hasWithdrawMemo: false
932
- }
933
- ] : []
934
- ],
935
- image: "https://app.metalx.com/img/tokens/ltc.png",
936
- coingeckoId: "litecoin",
937
- unifiedCryptoassetId: "2"
938
- },
939
- {
940
- allowSwap: false,
941
- allowBridge: IS_MAINNET,
942
- allowLend: false,
943
- allowBorrow: false,
944
- name: "PayPal USD",
945
- coin: "PYUSD",
946
- xtokenSymbol: "XPYUSD",
947
- xtokenPrecision: 6,
948
- xtokenContract: "xtokens",
949
- wallets: [
950
- ...IS_MAINNET ? [
951
- {
952
- wallet: "PYUSD",
953
- symbol: "PYUSD",
954
- chain: "Ethereum" /* EthereumMainnet */,
955
- network: "erc20" /* ERC20 */,
956
- precision: 6,
957
- contract: void 0,
958
- provider: "fireblocks" /* FIREBLOCKS */,
959
- hasWithdrawMemo: false
960
- }
961
- ] : []
962
- ],
963
- image: "https://app.metalx.com/img/tokens/pyusd.png",
964
- coingeckoId: "paypal-usd",
965
- unifiedCryptoassetId: "27772"
966
- },
967
- {
968
- allowSwap: false,
969
- allowBridge: false,
970
- allowLend: false,
971
- allowBorrow: false,
972
- name: "Bitcoin Cash",
973
- coin: "BCH",
974
- xtokenSymbol: "XBCH",
975
- xtokenPrecision: 8,
976
- xtokenContract: "xtokens",
977
- wallets: [
978
- ...IS_MAINNET ? [
979
- // {
980
- // wallet: "BCH",
981
- // symbol: "BCH",
982
- // chain: Chains.BitcoinCashMainnet,
983
- // network: Networks.Mainnet,
984
- // precision: 8,
985
- // contract: undefined,
986
- // provider: Providers.FIREBLOCKS,
987
- // hasWithdrawMemo: false,
988
- // },
989
- ] : [],
990
- ...IS_TESTNET ? [
991
- // {
992
- // wallet: "BCH",
993
- // symbol: "BCH",
994
- // chain: Chains.BitcoinCashTestnet,
995
- // network: Networks.Testnet,
996
- // precision: 8,
997
- // contract: undefined,
998
- // provider: Providers.FIREBLOCKS,
999
- // hasWithdrawMemo: false,
1000
- // },
1001
- ] : []
1002
- ],
1003
- image: "https://app.metalx.com/img/tokens/bch.png",
1004
- coingeckoId: "bitcoin-cash",
1005
- unifiedCryptoassetId: "1831"
1006
- },
1007
- {
1008
- allowSwap: true,
1009
- allowBridge: true,
1010
- allowLend: false,
1011
- allowBorrow: false,
1012
- name: "LunarCrush",
1013
- coin: "LUNR",
1014
- xtokenSymbol: "XLUNR",
1015
- xtokenPrecision: 4,
1016
- xtokenContract: "xtokens",
1017
- wallets: [
1018
- ...IS_MAINNET ? [
1019
- {
1020
- wallet: "LUNR",
1021
- symbol: "LUNR",
1022
- chain: "Ethereum" /* EthereumMainnet */,
1023
- network: "erc20" /* ERC20 */,
1024
- precision: 4,
1025
- contract: void 0,
1026
- provider: "fireblocks" /* FIREBLOCKS */,
1027
- hasWithdrawMemo: false
1028
- }
1029
- ] : []
1030
- ],
1031
- image: "https://app.metalx.com/img/tokens/lunr.png",
1032
- coingeckoId: "lunr-token",
1033
- unifiedCryptoassetId: "12971"
1034
- },
1035
- {
1036
- allowSwap: false,
1037
- allowBridge: true,
1038
- allowLend: false,
1039
- allowBorrow: false,
1040
- name: "Stellar",
1041
- coin: "XLM",
1042
- xtokenSymbol: "XXLM",
1043
- xtokenPrecision: 6,
1044
- xtokenContract: "xtokens",
1045
- wallets: [
1046
- ...IS_MAINNET ? [
1047
- {
1048
- wallet: "XLM",
1049
- symbol: "XLM",
1050
- chain: "Stellar" /* StellarMainnet */,
1051
- network: "mainnet" /* Mainnet */,
1052
- precision: 7,
1053
- contract: void 0,
1054
- provider: "fireblocks" /* FIREBLOCKS */,
1055
- hasWithdrawMemo: true
1056
- }
1057
- ] : [],
1058
- ...IS_TESTNET ? [
1059
- {
1060
- wallet: "XLM",
1061
- symbol: "XLM",
1062
- chain: "Stellar (Testnet)" /* StellarTestnet */,
1063
- network: "testnet" /* Testnet */,
1064
- precision: 7,
1065
- contract: void 0,
1066
- provider: "fireblocks" /* FIREBLOCKS */,
1067
- hasWithdrawMemo: true
1068
- }
1069
- ] : []
1070
- ],
1071
- image: "https://app.metalx.com/img/tokens/xlm.png",
1072
- coingeckoId: "stellar",
1073
- unifiedCryptoassetId: "512"
1074
- },
1075
- {
1076
- allowSwap: false,
1077
- allowBridge: false,
1078
- allowLend: false,
1079
- allowBorrow: false,
1080
- name: "Sense",
1081
- coin: "SENSE",
1082
- xtokenSymbol: "XSENSE",
1083
- xtokenPrecision: 4,
1084
- xtokenContract: "sense",
1085
- wallets: [],
1086
- image: "https://app.metalx.com/img/tokens/sense.png",
1087
- coingeckoId: "sense",
1088
- unifiedCryptoassetId: ""
1089
- },
1090
- {
1091
- allowSwap: false,
1092
- allowBridge: false,
1093
- allowLend: false,
1094
- allowBorrow: false,
1095
- name: "Polkadot",
1096
- coin: "DOT",
1097
- xtokenSymbol: "XDOT",
1098
- xtokenPrecision: 8,
1099
- xtokenContract: "xtokens",
1100
- wallets: [
1101
- ...IS_MAINNET ? [
1102
- {
1103
- wallet: "DOT",
1104
- symbol: "DOT",
1105
- chain: "Polkadot" /* PolkadotMainnet */,
1106
- network: "mainnet" /* Mainnet */,
1107
- precision: 10,
1108
- contract: void 0,
1109
- provider: "fireblocks" /* FIREBLOCKS */,
1110
- hasWithdrawMemo: false
1111
- }
1112
- ] : []
1113
- ],
1114
- image: "https://app.metalx.com/img/tokens/dot.png",
1115
- coingeckoId: "polkadot",
1116
- unifiedCryptoassetId: "6636"
1117
- },
1118
- {
1119
- allowSwap: true,
1120
- allowBridge: false,
1121
- allowLend: false,
1122
- allowBorrow: false,
1123
- name: "Binance Coin",
1124
- coin: "BNB",
1125
- xtokenSymbol: "XBNB",
1126
- xtokenPrecision: 8,
1127
- xtokenContract: "xtokens",
1128
- wallets: [
1129
- ...IS_MAINNET ? [
1130
- // {
1131
- // wallet: "BNB",
1132
- // symbol: "BNB",
1133
- // chain: Chains.BinanceBEP20,
1134
- // network: Networks.BEP20,
1135
- // precision: 18,
1136
- // contract: undefined,
1137
- // provider: Providers.FIREBLOCKS,
1138
- // hasWithdrawMemo: false,
1139
- // },
1140
- ] : []
1141
- ],
1142
- image: "https://app.metalx.com/img/tokens/bnb.png",
1143
- coingeckoId: "binancecoin",
1144
- unifiedCryptoassetId: "1839"
1145
- },
1146
- {
1147
- allowSwap: false,
1148
- allowBridge: false,
1149
- allowLend: false,
1150
- allowBorrow: false,
1151
- name: "Binance USD",
1152
- coin: "BUSD",
1153
- xtokenSymbol: "XBUSD",
1154
- xtokenPrecision: 6,
1155
- xtokenContract: "xtokens",
1156
- wallets: [
1157
- // ...(IS_MAINNET ? [{
1158
- // wallet: 'BUSD-BEP20',
1159
- // symbol: 'BUSD',
1160
- // chain: Chains.BinanceBEP20,
1161
- // network: Networks.BEP20,
1162
- // precision: 18,
1163
- // contract: '0xe9e7cea3dedca5984780bafc599bd69add087d56',
1164
- // provider: Providers.FIREBLOCKS,
1165
- // hasWithdrawMemo: false
1166
- // }]: [])
1167
- ],
1168
- image: "https://app.metalx.com/img/tokens/busd.png",
1169
- coingeckoId: "binance-usd",
1170
- unifiedCryptoassetId: "4687"
1171
- },
1172
- {
1173
- allowSwap: true,
1174
- allowBridge: true,
1175
- allowLend: false,
1176
- allowBorrow: false,
1177
- name: "EOS",
1178
- coin: "EOS",
1179
- xtokenSymbol: "XEOS",
1180
- xtokenPrecision: 4,
1181
- xtokenContract: "xtokens",
1182
- wallets: [
1183
- ...IS_MAINNET ? [
1184
- {
1185
- wallet: "EOS",
1186
- symbol: "EOS",
1187
- chain: "EOS" /* EosMainnet */,
1188
- network: "mainnet" /* Mainnet */,
1189
- precision: 4,
1190
- contract: void 0,
1191
- provider: "fireblocks" /* FIREBLOCKS */,
1192
- hasWithdrawMemo: true
1193
- }
1194
- ] : [],
1195
- ...IS_TESTNET ? [
1196
- {
1197
- wallet: "EOS",
1198
- symbol: "EOS",
1199
- chain: "EOS (Jungle Testnet)" /* EosTestnet */,
1200
- network: "testnet" /* Testnet */,
1201
- precision: 4,
1202
- contract: void 0,
1203
- provider: "fireblocks" /* FIREBLOCKS */,
1204
- hasWithdrawMemo: true
1205
- }
1206
- ] : []
1207
- ],
1208
- image: "https://app.metalx.com/img/tokens/eos.png",
1209
- coingeckoId: "eos",
1210
- unifiedCryptoassetId: "1765"
1211
- },
1212
- {
1213
- allowSwap: IS_MAINNET,
1214
- allowBridge: IS_MAINNET,
1215
- allowLend: true,
1216
- allowBorrow: true,
1217
- name: "Dogecoin",
1218
- coin: "DOGE",
1219
- xtokenSymbol: "XDOGE",
1220
- xtokenPrecision: 6,
1221
- xtokenContract: "xtokens",
1222
- wallets: [
1223
- ...IS_MAINNET ? [
1224
- {
1225
- wallet: "DOGE",
1226
- symbol: "DOGE",
1227
- chain: "Dogecoin" /* DogeMainnet */,
1228
- network: "mainnet" /* Mainnet */,
1229
- precision: 8,
1230
- contract: void 0,
1231
- provider: "fireblocks" /* FIREBLOCKS */,
1232
- hasWithdrawMemo: false
1233
- }
1234
- ] : []
1235
- ],
1236
- image: "https://app.metalx.com/img/tokens/doge.png",
1237
- coingeckoId: "dogecoin",
1238
- unifiedCryptoassetId: "74"
1239
- },
1240
- {
1241
- allowSwap: IS_MAINNET,
1242
- allowBridge: IS_MAINNET,
1243
- allowLend: false,
1244
- allowBorrow: false,
1245
- name: "Cardano",
1246
- coin: "ADA",
1247
- xtokenSymbol: "XADA",
1248
- xtokenPrecision: 6,
1249
- xtokenContract: "xtokens",
1250
- wallets: [
1251
- ...IS_MAINNET ? [
1252
- {
1253
- wallet: "ADA",
1254
- symbol: "ADA",
1255
- chain: "Cardano" /* CardanoMainnet */,
1256
- network: "mainnet" /* Mainnet */,
1257
- precision: 6,
1258
- contract: void 0,
1259
- provider: "fireblocks" /* FIREBLOCKS */,
1260
- hasWithdrawMemo: false
1261
- }
1262
- ] : []
1263
- ],
1264
- image: "https://app.metalx.com/img/tokens/ada.png",
1265
- coingeckoId: "cardano",
1266
- unifiedCryptoassetId: "2010"
1267
- },
1268
- // Adding
1269
- {
1270
- allowSwap: false,
1271
- allowBridge: false,
1272
- allowLend: false,
1273
- allowBorrow: false,
1274
- name: "Terra",
1275
- coin: "LUNA",
1276
- xtokenSymbol: "XLUNA",
1277
- xtokenPrecision: 6,
1278
- xtokenContract: "xtokens",
1279
- wallets: [
1280
- // ...(IS_MAINNET ? [{
1281
- // wallet: 'LUNA',
1282
- // symbol: 'LUNA',
1283
- // chain: Chains.TerraMainnet,
1284
- // network: Networks.Mainnet,
1285
- // precision: 6,
1286
- // contract: undefined,
1287
- // provider: Providers.FIREBLOCKS,
1288
- // hasWithdrawMemo: true
1289
- // }]: [])
1290
- ],
1291
- image: "https://app.metalx.com/img/tokens/luna.png",
1292
- coingeckoId: "terra-luna",
1293
- unifiedCryptoassetId: "4172"
1294
- },
1295
- {
1296
- allowSwap: false,
1297
- allowBridge: false,
1298
- allowLend: false,
1299
- allowBorrow: false,
1300
- name: "TerraUSD",
1301
- coin: "UST",
1302
- xtokenSymbol: "XUST",
1303
- xtokenPrecision: 6,
1304
- xtokenContract: "xtokens",
1305
- wallets: [
1306
- ...IS_MAINNET ? [
1307
- {
1308
- wallet: "UST",
1309
- symbol: "UST",
1310
- chain: "Terra" /* TerraMainnet */,
1311
- network: "mainnet" /* Mainnet */,
1312
- precision: 6,
1313
- contract: void 0,
1314
- provider: "fireblocks" /* FIREBLOCKS */,
1315
- hasWithdrawMemo: true
1316
- }
1317
- ] : []
1318
- ],
1319
- image: "https://app.metalx.com/img/tokens/ust.png",
1320
- coingeckoId: "terrausd",
1321
- unifiedCryptoassetId: "7129"
1322
- },
1323
- {
1324
- allowSwap: false,
1325
- allowBridge: IS_MAINNET,
1326
- allowLend: false,
1327
- allowBorrow: false,
1328
- name: "Solana",
1329
- coin: "SOL",
1330
- xtokenSymbol: "XSOL",
1331
- xtokenPrecision: 6,
1332
- xtokenContract: "xtokens",
1333
- wallets: [
1334
- ...IS_MAINNET ? [
1335
- {
1336
- wallet: "SOL",
1337
- symbol: "SOL",
1338
- chain: "Solana" /* SolanaMainnet */,
1339
- network: "mainnet" /* Mainnet */,
1340
- precision: 9,
1341
- contract: void 0,
1342
- provider: "fireblocks" /* FIREBLOCKS */,
1343
- hasWithdrawMemo: false
1344
- }
1345
- ] : []
1346
- ],
1347
- image: "https://app.metalx.com/img/tokens/sol.png",
1348
- coingeckoId: "solana",
1349
- unifiedCryptoassetId: "5426"
1350
- },
1351
- {
1352
- allowSwap: false,
1353
- allowBridge: IS_MAINNET,
1354
- allowLend: false,
1355
- allowBorrow: false,
1356
- name: "Ripple",
1357
- coin: "XRP",
1358
- xtokenSymbol: "XXRP",
1359
- xtokenPrecision: 6,
1360
- xtokenContract: "xtokens",
1361
- wallets: [
1362
- ...IS_MAINNET ? [
1363
- {
1364
- wallet: "XRP",
1365
- symbol: "XRP",
1366
- chain: "Ripple" /* RippleMainnet */,
1367
- network: "mainnet" /* Mainnet */,
1368
- precision: 6,
1369
- contract: void 0,
1370
- provider: "fireblocks" /* FIREBLOCKS */,
1371
- hasWithdrawMemo: true
1372
- }
1373
- ] : []
1374
- ],
1375
- image: "https://app.metalx.com/img/tokens/xrp.png",
1376
- coingeckoId: "ripple",
1377
- unifiedCryptoassetId: "52"
1378
- },
1379
- // Future
1380
- {
1381
- allowSwap: false,
1382
- allowBridge: false,
1383
- allowLend: false,
1384
- allowBorrow: false,
1385
- name: "Avalanche",
1386
- coin: "AVAX",
1387
- xtokenSymbol: "XAVAX",
1388
- xtokenPrecision: 9,
1389
- xtokenContract: "xtokens",
1390
- wallets: [
1391
- ...IS_MAINNET ? [
1392
- {
1393
- wallet: "AVAX",
1394
- symbol: "AVAX",
1395
- chain: "Avalanche C-Chain" /* AvalancheCChain */,
1396
- network: "mainnet" /* Mainnet */,
1397
- precision: 9,
1398
- contract: void 0,
1399
- provider: "fireblocks" /* FIREBLOCKS */,
1400
- hasWithdrawMemo: false
1401
- }
1402
- ] : []
1403
- ],
1404
- image: "https://app.metalx.com/img/tokens/avax.png",
1405
- coingeckoId: "avalanche-2",
1406
- unifiedCryptoassetId: "5805"
1407
- },
1408
- {
1409
- allowSwap: false,
1410
- allowBridge: false,
1411
- allowLend: false,
1412
- allowBorrow: false,
1413
- name: "Polygon",
1414
- coin: "MATIC",
1415
- xtokenSymbol: "XMATIC",
1416
- xtokenPrecision: 8,
1417
- xtokenContract: "xtokens",
1418
- wallets: [
1419
- ...IS_MAINNET ? [
1420
- {
1421
- wallet: "MATIC",
1422
- symbol: "MATIC",
1423
- chain: "Polygon" /* PolygonMainnet */,
1424
- network: "mainnet" /* Mainnet */,
1425
- precision: 18,
1426
- contract: "0x0000000000000000000000000000000000000000",
1427
- provider: "fireblocks" /* FIREBLOCKS */,
1428
- hasWithdrawMemo: false
1429
- }
1430
- ] : []
1431
- ],
1432
- image: "https://app.metalx.com/img/tokens/matic.png",
1433
- coingeckoId: "matic-network",
1434
- unifiedCryptoassetId: "3890"
1435
- },
1436
- {
1437
- allowSwap: true,
1438
- allowBridge: false,
1439
- allowLend: false,
1440
- allowBorrow: false,
1441
- name: "Metal Dollar",
1442
- coin: "XMD",
1443
- xtokenSymbol: "XMD",
1444
- xtokenPrecision: 6,
1445
- xtokenContract: "xmd.token",
1446
- wallets: [],
1447
- image: "https://app.metalx.com/img/tokens/xmd.png",
1448
- coingeckoId: "",
1449
- unifiedCryptoassetId: ""
1450
- },
1451
- {
1452
- allowSwap: false,
1453
- allowBridge: false,
1454
- allowLend: false,
1455
- allowBorrow: false,
1456
- name: "Metal Dollar",
1457
- coin: "MPD",
1458
- xtokenSymbol: "MPD",
1459
- xtokenPrecision: 6,
1460
- xtokenContract: "mpd.token",
1461
- wallets: [],
1462
- image: "https://app.metalx.com/img/tokens/mpd.png",
1463
- coingeckoId: "",
1464
- unifiedCryptoassetId: ""
1465
- },
1466
- {
1467
- allowSwap: false,
1468
- allowBridge: true,
1469
- allowLend: false,
1470
- allowBorrow: false,
1471
- name: "Hedera",
1472
- coin: "HBAR",
1473
- xtokenSymbol: "XHBAR",
1474
- xtokenPrecision: 6,
1475
- xtokenContract: "xtokens",
1476
- wallets: [
1477
- ...IS_TESTNET ? [
1478
- {
1479
- wallet: "HBAR",
1480
- symbol: "HBAR",
1481
- chain: "Hedera (Testnet)" /* HederaTestnet */,
1482
- network: "testnet" /* Testnet */,
1483
- precision: 8,
1484
- contract: void 0,
1485
- provider: "fireblocks" /* FIREBLOCKS */,
1486
- hasWithdrawMemo: true
1487
- }
1488
- ] : [
1489
- {
1490
- wallet: "HBAR",
1491
- symbol: "HBAR",
1492
- chain: "Hedera (Mainnet)" /* HederaMainnet */,
1493
- network: "mainnet" /* Mainnet */,
1494
- precision: 8,
1495
- contract: void 0,
1496
- provider: "fireblocks" /* FIREBLOCKS */,
1497
- hasWithdrawMemo: true
1498
- }
1499
- ]
1500
- ],
1501
- image: "https://app.metalx.com/img/tokens/hbar.png",
1502
- coingeckoId: "hedera-hashgraph",
1503
- unifiedCryptoassetId: "4642"
1504
- },
1505
- {
1506
- allowSwap: false,
1507
- allowBridge: IS_TESTNET,
1508
- allowLend: false,
1509
- allowBorrow: false,
1510
- name: "Ripple USD",
1511
- coin: "RLUSD",
1512
- xtokenSymbol: "XRLUSD",
1513
- xtokenPrecision: 6,
1514
- xtokenContract: "xtokens",
1515
- wallets: [
1516
- ...IS_MAINNET ? [
1517
- {
1518
- wallet: "RLUSD",
1519
- symbol: "RLUSD",
1520
- chain: "Ethereum" /* EthereumMainnet */,
1521
- network: "erc20" /* ERC20 */,
1522
- precision: 18,
1523
- contract: "0x8292bb45bf1ee4d140127049757c2e0ff06317ed",
1524
- provider: "fireblocks" /* FIREBLOCKS */,
1525
- hasWithdrawMemo: false
1526
- }
1527
- ] : [
1528
- {
1529
- wallet: "RLUSD",
1530
- symbol: "RLUSD",
1531
- chain: "Ethereum (Sepolia)" /* EthereumSepolia */,
1532
- network: "erc20" /* ERC20 */,
1533
- precision: 18,
1534
- contract: "0xe101FB315a64cDa9944E570a7bFfaFE60b994b1D",
1535
- provider: "fireblocks" /* FIREBLOCKS */,
1536
- hasWithdrawMemo: false
1537
- }
1538
- ]
1539
- ],
1540
- image: "https://app.metalx.com/img/tokens/rlusd.png",
1541
- coingeckoId: "ripple-usd",
1542
- unifiedCryptoassetId: "34387"
1543
- },
1544
- {
1545
- allowSwap: false,
1546
- allowBridge: false,
1547
- allowLend: false,
1548
- allowBorrow: false,
1549
- name: "Fidelity Digital Dollar",
1550
- coin: "FIDD",
1551
- xtokenSymbol: "XFIDD",
1552
- xtokenPrecision: 6,
1553
- xtokenContract: "xtokens",
1554
- wallets: [
1555
- ...IS_MAINNET ? [
1556
- {
1557
- wallet: "FIDD",
1558
- symbol: "FIDD",
1559
- chain: "Ethereum" /* EthereumMainnet */,
1560
- network: "erc20" /* ERC20 */,
1561
- precision: 18,
1562
- contract: "0x7C135549504245B5EAE64FC0E99FA5EBABB8E35D",
1563
- provider: "fireblocks" /* FIREBLOCKS */,
1564
- hasWithdrawMemo: false
1565
- }
1566
- ] : []
1567
- ],
1568
- image: "https://app.metalx.com/img/tokens/fidd.png",
1569
- coingeckoId: "fidelity-digital-dollar",
1570
- unifiedCryptoassetId: "39549"
1571
- },
1572
- // Important! This coin is not being used on MetalX. It is intended only for XMD-ETH purposes.
1573
- {
1574
- allowSwap: false,
1575
- allowBridge: false,
1576
- allowLend: false,
1577
- allowBorrow: false,
1578
- name: "Pax Dollar",
1579
- coin: "USDP",
1580
- xtokenSymbol: "XUSDP",
1581
- xtokenPrecision: 6,
1582
- xtokenContract: "xtokens",
1583
- wallets: [],
1584
- image: "https://app.metalx.com/img/tokens/usdp.png",
1585
- coingeckoId: "pax-dollar",
1586
- unifiedCryptoassetId: "3330"
1587
- }
1588
- ];
1589
- const walletWithDuplicateChains = coins.find((coin) => {
1590
- const chains = coin.wallets.map((wallet) => wallet.chain);
1591
- return new Set(chains).size !== chains.length;
1592
- });
1593
- if (walletWithDuplicateChains) {
1594
- throw new Error(
1595
- `Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`
1596
- );
1597
- }
1598
- return {
1599
- allCoins: coins,
1600
- swapCoins: coins.filter((coin) => coin.allowSwap),
1601
- bridgeCoins: coins.filter((coin) => coin.allowBridge),
1602
- lendCoins: coins.filter((coin) => coin.allowLend),
1603
- borrowCoins: coins.filter((coin) => coin.allowBorrow),
1604
- loanCoins: coins.filter((coin) => coin.allowLend || coin.allowBorrow),
1605
- allEnabledCoins: coins.filter(
1606
- (coin) => coin.allowSwap || coin.allowBridge || coin.xtokenSymbol === "XMD"
1607
- )
1608
- };
1609
- };
1610
-
1611
- // src/parsers/actions.ts
1612
- var z2 = __toESM(require("zod"));
1613
-
1614
- // src/parsers/base.ts
1615
- var z = __toESM(require("zod"));
1616
- var accountParser = z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/);
1617
- var authorizationParser = z.object({
1618
- actor: accountParser,
1619
- permission: z.string()
1620
- });
1621
- var authorizationsParser = z.array(authorizationParser).min(1);
1622
- var ExtendedAssetParser = z.object({
1623
- quantity: z.string(),
1624
- contract: accountParser
1625
- });
1626
- var accountRamDeltaParser = z.object({
1627
- account: z.string(),
1628
- delta: z.string()
1629
- });
1630
-
1631
- // src/parsers/actions.ts
1632
- var actionParser = z2.object({
1633
- account: z2.string(),
1634
- name: z2.string(),
1635
- authorization: z2.array(
1636
- z2.object({
1637
- actor: z2.string(),
1638
- permission: z2.string()
1639
- })
1640
- ),
1641
- data: z2.any(),
1642
- hex_data: z2.string().optional()
1643
- });
1644
- var transactionExtensionsParser = z2.array(z2.number().or(z2.string())).optional();
1645
- var rawTransactionParser = z2.object({
1646
- expiration: z2.string(),
1647
- ref_block_num: z2.number(),
1648
- ref_block_prefix: z2.number(),
1649
- max_net_usage_words: z2.number(),
1650
- max_cpu_usage_ms: z2.number(),
1651
- delay_sec: z2.number(),
1652
- context_free_actions: z2.array(actionParser),
1653
- transaction_extensions: z2.array(transactionExtensionsParser)
1654
- });
1655
- var baseActionParser = (contract, action, data) => z2.object({
1656
- account: contract === "*" ? accountParser : z2.literal(contract),
1657
- name: z2.literal(action),
1658
- data: z2.object(data),
1659
- authorization: authorizationsParser
1660
- });
1661
- var baseActionSerializedParser = (contract, action, data) => z2.object({
1662
- account: contract === "*" ? accountParser : z2.literal(contract),
1663
- name: z2.literal(action),
1664
- data: z2.string().or(z2.object(data)),
1665
- authorization: authorizationsParser
1666
- });
1667
- var webauthActionParser = (contract, action, data) => z2.object({
1668
- account: z2.literal("webauthn"),
1669
- name: z2.literal("exec"),
1670
- data: z2.object({
1671
- account: accountParser,
1672
- key: z2.object({
1673
- key: z2.array(z2.string().or(z2.object({
1674
- modulus: z2.string(),
1675
- exponent: z2.string()
1676
- }))),
1677
- user_presence: z2.number(),
1678
- rpid: z2.string()
1679
- }),
1680
- nonce: z2.number(),
1681
- permissions: authorizationsParser,
1682
- signature: z2.object({
1683
- auth_data: z2.string(),
1684
- client_json: z2.string(),
1685
- signature: z2.string()
1686
- }),
1687
- trx: rawTransactionParser.merge(
1688
- z2.object({
1689
- actions: z2.array(
1690
- baseActionSerializedParser(contract, action, data)
1691
- ).length(1)
1692
- })
1693
- )
1694
- }),
1695
- authorization: authorizationsParser
1696
- });
1697
- var singleActionTransactionParser = (contract, action, data) => {
1698
- const baseAction = baseActionParser(contract, action, data);
1699
- const webauthAction = webauthActionParser(contract, action, data);
1700
- return rawTransactionParser.merge(z2.object({
1701
- actions: z2.array(baseAction.or(webauthAction)).length(1)
1702
- }));
1703
- };
1704
-
1705
- // src/parsers/address.ts
1706
- var z4 = __toESM(require("zod"));
1707
-
1708
- // src/parsers/auth.ts
1709
- var z3 = __toESM(require("zod"));
1710
-
1711
- // src/constants.ts
1712
- var WRAP_CONTRACT = "proton.wrap";
1713
- var WRAP_AUTH_ACTION = "generateauth";
1714
- var FEE_FACTOR = 1e4;
1715
- var initializeConstants = (chain) => {
1716
- const {
1717
- swapCoins,
1718
- bridgeCoins,
1719
- allEnabledCoins,
1720
- allCoins,
1721
- lendCoins,
1722
- borrowCoins,
1723
- loanCoins
1724
- } = initializeCoins(chain);
1725
- const constants = {
1726
- SWAP_CONTRACT: "proton.swaps",
1727
- VEST_CONTRACT: "vest",
1728
- DEX_CONTRACT: "dex",
1729
- FEE_FACTOR,
1730
- SWAP_URL: chain === "proton" ? "https://otc.protonswap.com" : "https://otc-test.protonswap.com",
1731
- WRAP_SERVER_URL: chain === "proton" ? "https://www.api.bloks.io/proton-wrap-public2" : "https://www.api.bloks.io/proton-wrap-testnet-public2",
1732
- WRAP_CONTRACT,
1733
- WRAP_ACTIONS: {
1734
- SAVE_ADDRESS: "saveaddress2",
1735
- DELETE_ADDRESS: "deladdress2",
1736
- WRAP_START: "wrapstart2",
1737
- WRAP_FINISH: "wrapfinish2",
1738
- WRAP_PROCESS: "wrapprocess2",
1739
- WRAP_SET_CONF: "wrapsetconf2"
1740
- },
1741
- WRAP_TABLES: {
1742
- ADDRESSES: "addresses2",
1743
- WRAPS: "wraps2"
1744
- },
1745
- ADDRESSES_INDEXES: {
1746
- BY_ACCOUNT: 2,
1747
- BY_ADDR_HASH: 3
1748
- },
1749
- WRAPS_INDEXES: {
1750
- BY_ACCOUNT: 2,
1751
- BY_STATUS: 3,
1752
- BY_WRAP_HASH: 4
1753
- },
1754
- WRAP_PROCESS_TIMER: 5e3,
1755
- FARM_CONTRACT: "yield.farms",
1756
- WEBHOOK_PERMISSION: "webhook",
1757
- PUBLIC_PERMISSION: "public",
1758
- LIGHT_PERMISSION: "light",
1759
- WRAP_AUTH_ACTION,
1760
- METAL_ENDPOINT: chain === "proton" ? "https://cirrus.metalpay.com" : "https://cirrus-dev.metalpay.com",
1761
- METAL_PROTON_ENDPOINT: chain === "proton" ? "https://identity.api.prod.metalx.com" : "https://identity.api.dev.metalx.com",
1762
- METAL_DEX_HTTP_ENDPOINT: chain === "proton" ? "https://dex.api.mainnet.metalx.com/dex" : "https://dex.api.testnet.metalx.com/dex",
1763
- METAL_DEX_WS_ENDPOINT: chain === "proton" ? "wss://dex.api.mainnet.metalx.com/dexws" : "wss://dex.api.testnet.metalx.com/dexws",
1764
- PROTON_ENDPOINTS: chain === "proton" ? [
1765
- "https://rpc.api.mainnet.metalx.com",
1766
- "https://proton.greymass.com",
1767
- "https://proton.eoscafeblock.com",
1768
- "https://proton.cryptolions.io",
1769
- "https://proton.eosusa.news"
1770
- ] : [
1771
- "https://rpc.api.testnet.metalx.com",
1772
- "https://testnet.protonchain.com"
1773
- ],
1774
- CHAIN_ID: chain === "proton" ? "384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0" : "71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd",
1775
- COINS_URL: chain === "proton" ? "https://app.metalx.com/mainnet-coins.json" : "https://app.metalx.com/testnet-coins.json",
1776
- DEX_PROCESS_SIZE: 30,
1777
- DEX_SLTPPROCESS_SIZE: 10,
1778
- MAX_PRICE: "9223372036854775806",
1779
- MAX_ITEMS_PER_PAGE_DESKTOP: 100,
1780
- MIN_PRICE: 1,
1781
- DEFAULT_DEX_SYMBOL: "XPR_XMD",
1782
- CHAIN: chain,
1783
- SWAP_COINS: swapCoins,
1784
- BRIDGE_COINS: bridgeCoins,
1785
- ALL_ENABLED_COINS: allEnabledCoins,
1786
- LEND_COINS: lendCoins,
1787
- BORROW_COINS: borrowCoins,
1788
- LOAN_COINS: loanCoins,
1789
- ALL_COINS: allCoins,
1790
- XMD_CONTRACT: "xmd.treasury",
1791
- XMD_TOKEN_CONTRACT: "xmd.token",
1792
- XMD_SYMBOL_CODE: "XMD",
1793
- XMD_DECIMALS: 6,
1794
- findBridgeCoinWalletByXtokenAndChain(xtokenSymbol, chain2) {
1795
- const bridgeCoin = constants.BRIDGE_COINS.find(
1796
- (bridgeCoin2) => bridgeCoin2.xtokenSymbol === xtokenSymbol
1797
- );
1798
- if (!bridgeCoin) return void 0;
1799
- const bridgeWallet = bridgeCoin.wallets.find(
1800
- (bridgeWallet2) => bridgeWallet2.chain === chain2
1801
- );
1802
- if (!bridgeWallet) return void 0;
1803
- return {
1804
- ...bridgeCoin,
1805
- ...bridgeWallet
1806
- };
1807
- },
1808
- findBridgeCoinWallet(coin, wallet) {
1809
- const bridgeCoin = constants.BRIDGE_COINS.find(
1810
- (bridgeCoin2) => bridgeCoin2.coin === coin
1811
- );
1812
- if (!bridgeCoin) return void 0;
1813
- const bridgeWallet = bridgeCoin.wallets.find(
1814
- (bridgeWallet2) => bridgeWallet2.wallet === wallet
1815
- );
1816
- if (!bridgeWallet) return void 0;
1817
- return {
1818
- ...bridgeCoin,
1819
- ...bridgeWallet
1820
- };
1821
- },
1822
- findBridgeCoinWalletByWallet(wallet) {
1823
- const matches = [];
1824
- constants.BRIDGE_COINS.forEach((bridgeCoin) => {
1825
- bridgeCoin.wallets.forEach((bridgeWallet) => {
1826
- if (bridgeWallet.wallet === wallet) {
1827
- matches.push({
1828
- ...bridgeCoin,
1829
- ...bridgeWallet
1830
- });
1831
- }
1832
- });
1833
- });
1834
- return matches.length === 1 ? matches[0] : void 0;
1835
- },
1836
- findBridgeCoinNetwork(coin, network) {
1837
- const bridgeCoin = constants.BRIDGE_COINS.find(
1838
- (bridgeCoin2) => bridgeCoin2.coin === coin
1839
- );
1840
- if (!bridgeCoin) return void 0;
1841
- const bridgeWallet = bridgeCoin.wallets.find(
1842
- (bridgeWallet2) => bridgeWallet2.network === network
1843
- );
1844
- if (!bridgeWallet) return void 0;
1845
- return {
1846
- ...bridgeCoin,
1847
- ...bridgeWallet
1848
- };
1849
- }
1850
- };
1851
- return constants;
1852
- };
1853
-
1854
- // src/parsers/auth.ts
1855
- var createAbstractAuthParser = (contract, action, data) => {
1856
- return z3.object({
1857
- signer: authorizationParser,
1858
- signatures: z3.array(z3.string()).length(1),
1859
- transaction: singleActionTransactionParser(contract, action, data)
1860
- });
1861
- };
1862
- var generateAuthData = {
1863
- time: z3.string(),
1864
- protonAccount: z3.string()
1865
- };
1866
- var generateAuthActionsBaseParser = baseActionParser(
1867
- WRAP_CONTRACT,
1868
- WRAP_AUTH_ACTION,
1869
- generateAuthData
1870
- );
1871
- var generateAuthParser = createAbstractAuthParser(
1872
- WRAP_CONTRACT,
1873
- WRAP_AUTH_ACTION,
1874
- generateAuthData
1875
- );
1876
-
1877
- // src/parsers/address.ts
1878
- var addressParser = z4.object({
1879
- index: z4.number(),
1880
- account: accountParser,
1881
- chain: z4.string(),
1882
- address: z4.string(),
1883
- address_hash: z4.string()
1884
- });
1885
- var generateAddressBodyParser = z4.object({
1886
- coin: z4.string(),
1887
- wallet: z4.string()
1888
- }).merge(generateAuthParser);
1889
- var generateAddressResponse = z4.object({
1890
- id: z4.string(),
1891
- // "2448834505708930950",
1892
- address: z4.string(),
1893
- // "0x617C03C1E2Bf81C062A4CEfbE312c070E1d86d18",
1894
- coin: z4.string(),
1895
- // "ETH",
1896
- wallet: z4.string(),
1897
- // "ETH",
1898
- memo: z4.string().optional()
1899
- });
1900
-
1901
- // src/parsers/currency.ts
1902
- var z5 = __toESM(require("zod"));
1903
- var rateParser = z5.object({
1904
- counterCurrency: z5.string(),
1905
- price: z5.number(),
1906
- priceChangePercent: z5.number(),
1907
- marketCap: z5.number(),
1908
- volume: z5.number(),
1909
- timestamp: z5.number()
1910
- });
1911
- var exchangeRateParser = z5.object({
1912
- contract: z5.string(),
1913
- symbol: z5.string(),
1914
- rank: z5.number(),
1915
- rates: z5.array(rateParser)
1916
- });
1917
- var exchangeRatesParser = z5.array(exchangeRateParser);
1918
- var bloksRatesParser = z5.array(z5.object({
1919
- contract: z5.string(),
1920
- symbol: z5.string(),
1921
- rank: z5.number(),
1922
- rates: z5.array(rateParser)
1923
- }));
1924
-
1925
- // src/parsers/deposit.ts
1926
- var z6 = __toESM(require("zod"));
1927
- var Type = /* @__PURE__ */ ((Type2) => {
1928
- Type2["RECEIVE"] = "receive";
1929
- Type2["SEND"] = "send";
1930
- return Type2;
1931
- })(Type || {});
1932
- var depositBodyParser = z6.object({
1933
- id: z6.string(),
1934
- // "0x000010203121388fac991"
1935
- type: z6.nativeEnum(Type),
1936
- // "receive" or "send"
1937
- hash: z6.string(),
1938
- // "0x000010203121388fac991"
1939
- coin: z6.string(),
1940
- // "ETH" or "XPR"
1941
- wallet: z6.string(),
1942
- // "ETH-SEPOLIA" or "XPR-MAINNET"
1943
- network: z6.string()
1944
- // "erc29"
1945
- });
1946
- var metalTransactionParser = z6.object({
1947
- id: z6.string(),
1948
- // "2629304740076324677"
1949
- wallet: z6.string(),
1950
- // "ETH"
1951
- value: z6.number(),
1952
- // 10000000000000000
1953
- valueString: z6.string(),
1954
- // "10000000000000000"
1955
- address: z6.string(),
1956
- // "0x0000"
1957
- type: z6.nativeEnum(Type),
1958
- // "receive" or "send"
1959
- state: z6.string(),
1960
- // "confirmed"
1961
- confirmations: z6.number(),
1962
- // 1
1963
- hash: z6.string(),
1964
- // "b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed"
1965
- blockHash: z6.string().optional().nullable(),
1966
- // "000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43"
1967
- blockHeight: z6.number().optional().nullable()
1968
- // 643159
1969
- });
1970
-
1971
- // src/parsers/otc.ts
1972
- var z7 = __toESM(require("zod"));
1973
- var otcOrderResponseParser = z7.object({
1974
- success: z7.boolean(),
1975
- transaction_id: z7.string(),
1976
- errormsg: z7.string().optional()
1977
- });
1978
- var otcQuoteBodyParser = z7.object({
1979
- baseAmount: z7.number(),
1980
- baseSymbol: z7.string(),
1981
- quoteSymbol: z7.string()
1982
- });
1983
- var otcQuoteResponseParser = z7.object({
1984
- success: z7.boolean(),
1985
- token: z7.string(),
1986
- qty: z7.number(),
1987
- errormsg: z7.string().optional()
1988
- });
1989
-
1990
- // src/parsers/withdraw.ts
1991
- var z8 = __toESM(require("zod"));
1992
- var withdrawData = {
1993
- from: z8.string().refine((val) => val !== WRAP_CONTRACT, {
1994
- message: `${WRAP_CONTRACT} must be receiver`
1995
- }),
1996
- to: z8.literal(WRAP_CONTRACT),
1997
- quantity: z8.string(),
1998
- memo: z8.string()
1999
- };
2000
- var withdrawBodyBaseAction = baseActionParser("*", "transfer", withdrawData);
2001
- var withdrawBodyParser = z8.object({
2002
- signer: authorizationParser,
2003
- signatures: z8.array(z8.string()).length(1),
2004
- transaction: singleActionTransactionParser("*", "transfer", withdrawData),
2005
- quoteId: z8.string(),
2006
- provider: z8.string().optional()
2007
- });
2008
- var withdrawMetalResponseParser = z8.object({
2009
- success: z8.boolean(),
2010
- id: z8.string()
2011
- });
2012
- var withdrawalFeeQuoteParser = z8.object({
2013
- quoteId: z8.string(),
2014
- estimatedFee: z8.string(),
2015
- currency: z8.string(),
2016
- network: z8.string()
2017
- });
2018
-
2019
- // src/parsers/withdrawalHistory.ts
2020
- var z9 = __toESM(require("zod"));
2021
- var withdrawHistoryMetalSwapParser = z9.object({
2022
- id: z9.string(),
2023
- status: z9.string(),
2024
- amount: z9.string(),
2025
- currency: z9.string(),
2026
- network: z9.string(),
2027
- created: z9.string(),
2028
- withdrawalAddress: z9.string(),
2029
- withdrawalHash: z9.string().optional()
2030
- });
2031
- var withdrawHistoryMetalResponseParser = z9.object({
2032
- swaps: z9.array(withdrawHistoryMetalSwapParser),
2033
- page: z9.number(),
2034
- pageSize: z9.number(),
2035
- numberOfElements: z9.number(),
2036
- totalPages: z9.number(),
2037
- totalElements: z9.number()
2038
- });
2039
-
2040
- // src/parsers/wrap.ts
2041
- var z10 = __toESM(require("zod"));
2042
- var Status = /* @__PURE__ */ ((Status2) => {
2043
- Status2["PENDING"] = "pending";
2044
- Status2["SUCCESS"] = "success";
2045
- Status2["FAIL"] = "fail";
2046
- Status2["PROCESSING"] = "processing";
2047
- return Status2;
2048
- })(Status || {});
2049
- var wrapStartParser = z10.object({
2050
- balance: ExtendedAssetParser,
2051
- id: z10.string(),
2052
- txid: z10.string(),
2053
- chain: z10.string(),
2054
- deposit_address: z10.string(),
2055
- confirmations: z10.number()
2056
- });
2057
- var wrapSetConfParser = z10.object({
2058
- wrap_hash: z10.string(),
2059
- confirmations: z10.number()
2060
- });
2061
- var wrapParser = z10.object({
2062
- index: z10.number(),
2063
- proton_account: z10.string(),
2064
- balance: ExtendedAssetParser,
2065
- id: z10.string(),
2066
- txid: z10.string(),
2067
- chain: z10.string(),
2068
- deposit_address: z10.string(),
2069
- status: z10.nativeEnum(Status),
2070
- finish_txid: z10.string(),
2071
- wrap_hash: z10.string(),
2072
- confirmations: z10.number()
2073
- });
2074
-
2075
- // src/parsers/dex.ts
2076
- var z11 = __toESM(require("zod"));
2077
- var booleanParamSchema = z11.boolean().or(z11.enum(["true", "false"]).transform((value) => value === "true"));
2078
- var createLimit = (base, max) => z11.coerce.number().default(base).refine((n) => +n > 0 && +n <= max, `Limit must be between 0 and ${max}`);
2079
- var createOffset = (base) => z11.coerce.number().default(base);
2080
- var ordinalOrderIdsParser = z11.array(z11.string()).or(z11.string()).optional().transform((oids) => {
2081
- if (!oids) return [];
2082
- return Array.isArray(oids) ? oids : [oids];
2083
- });
2084
- var marketIdsParser = z11.array(z11.coerce.number()).or(z11.coerce.number()).transform((mids) => Array.isArray(mids) ? mids : [mids]).refine((mids) => mids.length > 0, "Must provide atleast one market ID");
2085
- var contractFiltersParser = z11.array(z11.string()).or(z11.string()).optional().transform((oids) => {
2086
- if (!oids) return [];
2087
- return Array.isArray(oids) ? oids : [oids];
2088
- });
2089
- var sortDirectionEnum = z11.enum(["asc", "desc"]);
2090
- var ohlcvParser = z11.object({
2091
- time: z11.number(),
2092
- open: z11.number(),
2093
- high: z11.number(),
2094
- low: z11.number(),
2095
- close: z11.number(),
2096
- volume: z11.number(),
2097
- volume_bid: z11.number(),
2098
- count: z11.number()
2099
- });
2100
- var getOhlcvParser = z11.object({
2101
- interval: z11.string(),
2102
- from: z11.string(),
2103
- to: z11.string(),
2104
- symbol: z11.string(),
2105
- limit: createLimit(500, 2e3)
2106
- });
2107
- var getOhlcvResponseParser = z11.object({
2108
- sync: z11.number(),
2109
- data: z11.array(ohlcvParser)
2110
- });
2111
- var openOrderParser = z11.object({
2112
- block_time: z11.string(),
2113
- order_id: z11.string(),
2114
- ordinal_order_id: z11.string(),
2115
- market_id: z11.number(),
2116
- quantity_init: z11.number().optional(),
2117
- quantity_curr: z11.number(),
2118
- price: z11.number(),
2119
- account_name: z11.string(),
2120
- order_side: z11.number(),
2121
- order_type: z11.number(),
2122
- trigger_price: z11.number(),
2123
- fill_type: z11.number(),
2124
- status: z11.string(),
2125
- filled_total: z11.number().optional(),
2126
- filled_amount: z11.number().optional(),
2127
- filled_fee: z11.number().optional(),
2128
- created_at: z11.string(),
2129
- updated_at: z11.string()
2130
- });
2131
- var orderLogParser = z11.object({
2132
- seq: z11.string(),
2133
- block_num: z11.string(),
2134
- block_time: z11.string(),
2135
- order_id: z11.string(),
2136
- market_id: z11.number(),
2137
- quantity: z11.string(),
2138
- price: z11.string(),
2139
- account_name: z11.string(),
2140
- order_side: z11.number(),
2141
- order_type: z11.number(),
2142
- trigger_price: z11.string(),
2143
- fill_type: z11.number(),
2144
- status: z11.string(),
2145
- quantity_change: z11.string(),
2146
- trx_id: z11.string()
2147
- });
2148
- var orderHistoryParser = z11.object({
2149
- block_num: z11.string(),
2150
- block_time: z11.string(),
2151
- order_id: z11.string(),
2152
- ordinal_order_id: z11.string(),
2153
- market_id: z11.number(),
2154
- quantity_init: z11.number().optional(),
2155
- quantity_curr: z11.number(),
2156
- price: z11.number(),
2157
- account_name: z11.string(),
2158
- order_side: z11.number(),
2159
- order_type: z11.number(),
2160
- trigger_price: z11.number(),
2161
- fill_type: z11.number(),
2162
- status: z11.string(),
2163
- quantity_change: z11.number(),
2164
- filled_total: z11.number().optional(),
2165
- filled_amount: z11.number().optional(),
2166
- filled_fee: z11.number().optional(),
2167
- seq: z11.string(),
2168
- trx_id: z11.string()
2169
- });
2170
- var getOpenOrdersParser = z11.object({
2171
- account: z11.string(),
2172
- symbol: z11.string().optional(),
2173
- offset: createOffset(0),
2174
- limit: createLimit(100, 250),
2175
- ordinal_order_ids: ordinalOrderIdsParser
2176
- });
2177
- var getOpenOrdersResponseParser = z11.object({
2178
- sync: z11.number(),
2179
- count: z11.number(),
2180
- data: z11.array(openOrderParser)
2181
- });
2182
- var getOrderHistoryParser = z11.object({
2183
- account: z11.string(),
2184
- symbol: z11.string().optional(),
2185
- offset: createOffset(0),
2186
- limit: createLimit(100, 250),
2187
- ordinal_order_ids: ordinalOrderIdsParser,
2188
- trx_id: z11.string().optional(),
2189
- status: z11.string().optional()
2190
- });
2191
- var getOrderHistoryResponseParser = z11.object({
2192
- sync: z11.number(),
2193
- count: z11.number(),
2194
- data: z11.array(orderHistoryParser)
2195
- });
2196
- var getOrderLifecycleParser = z11.object({
2197
- order_id: z11.string().optional(),
2198
- ordinal_order_id: z11.string().optional()
2199
- });
2200
- var getOrderLifecycleResponseParser = z11.object({
2201
- sync: z11.number(),
2202
- data: z11.array(orderHistoryParser)
2203
- });
2204
- var postSubmitOrderParser = z11.object({
2205
- serialized_tx_hex: z11.string(),
2206
- signatures: z11.array(z11.string())
2207
- });
2208
- var postSubmitOrderResponseParser = z11.object({
2209
- sync: z11.number(),
2210
- data: z11.object({
2211
- trx_id: z11.string(),
2212
- block_time: z11.string(),
2213
- orders: z11.array(
2214
- z11.object({
2215
- ordinal_order_id: z11.string(),
2216
- order_id: z11.string(),
2217
- status: z11.string()
2218
- })
2219
- )
2220
- })
2221
- });
2222
- var postSerializeOrderParser = z11.object({
2223
- transaction: z11.object({
2224
- actions: z11.array(
2225
- z11.object({
2226
- account: z11.string(),
2227
- name: z11.string(),
2228
- authorization: z11.array(authorizationParser),
2229
- data: z11.record(z11.any())
2230
- })
2231
- )
2232
- })
2233
- });
2234
- var postSerializeOrderResponseParser = z11.object({
2235
- data: z11.object({
2236
- serialized_tx_hex: z11.string(),
2237
- digest_hex: z11.string()
2238
- })
2239
- });
2240
- var depthParser = z11.object({
2241
- level: z11.number(),
2242
- ask: z11.number(),
2243
- bid: z11.number(),
2244
- count: z11.number()
2245
- });
2246
- var getDepthParser = z11.object({
2247
- symbol: z11.string(),
2248
- step: z11.coerce.number(),
2249
- limit: createLimit(100, 250)
2250
- });
2251
- var getDepthResponseParser = z11.object({
2252
- sync: z11.number(),
2253
- data: z11.object({
2254
- bids: z11.array(depthParser),
2255
- asks: z11.array(depthParser)
2256
- })
2257
- });
2258
- var dailyParser = z11.object({
2259
- market_id: z11.number(),
2260
- symbol: z11.string(),
2261
- open: z11.number(),
2262
- high: z11.number(),
2263
- low: z11.number(),
2264
- close: z11.number(),
2265
- volume_bid: z11.number(),
2266
- volume_ask: z11.number(),
2267
- change_percentage: z11.number()
2268
- });
2269
- var getDailyResponseParser = z11.object({
2270
- sync: z11.number(),
2271
- data: z11.array(dailyParser)
2272
- });
2273
- var marketParser = z11.object({
2274
- market_id: z11.number(),
2275
- symbol: z11.string(),
2276
- status_code: z11.number(),
2277
- type: z11.string(),
2278
- maker_fee: z11.number(),
2279
- taker_fee: z11.number(),
2280
- order_min: z11.number(),
2281
- bid_token: z11.object({
2282
- code: z11.string(),
2283
- precision: z11.number(),
2284
- contract: z11.string(),
2285
- multiplier: z11.number()
2286
- }),
2287
- ask_token: z11.object({
2288
- code: z11.string(),
2289
- precision: z11.number(),
2290
- contract: z11.string(),
2291
- multiplier: z11.number()
2292
- })
2293
- });
2294
- var dbMarketParser = z11.object({
2295
- market_id: z11.number(),
2296
- order_min: z11.string(),
2297
- status_code: z11.number(),
2298
- ask_oracle_index: z11.string(),
2299
- bid_token_c: z11.string(),
2300
- bid_token_s: z11.string(),
2301
- bid_token_m: z11.string(),
2302
- ask_token_c: z11.string(),
2303
- ask_token_s: z11.string(),
2304
- ask_token_m: z11.string(),
2305
- created_at: z11.date(),
2306
- updated_at: z11.date()
2307
- });
2308
- var getMarketsResponseParser = z11.object({
2309
- sync: z11.number(),
2310
- data: z11.array(marketParser)
2311
- });
2312
- var tradeLogParser = z11.object({
2313
- block_num: z11.string(),
2314
- block_time: z11.string(),
2315
- trade_id: z11.string(),
2316
- market_id: z11.number(),
2317
- price: z11.string(),
2318
- bid_user: z11.string(),
2319
- bid_user_order_id: z11.string(),
2320
- bid_total: z11.string(),
2321
- bid_amount: z11.string(),
2322
- bid_fee: z11.string(),
2323
- bid_referrer: z11.string(),
2324
- bid_referrer_fee: z11.string(),
2325
- ask_user: z11.string(),
2326
- ask_user_order_id: z11.string(),
2327
- ask_total: z11.string(),
2328
- ask_amount: z11.string(),
2329
- ask_fee: z11.string(),
2330
- ask_referrer: z11.string(),
2331
- ask_referrer_fee: z11.string(),
2332
- order_side: z11.number(),
2333
- trx_id: z11.string()
2334
- });
2335
- var tradeParser = z11.object({
2336
- block_num: z11.string(),
2337
- block_time: z11.string(),
2338
- trade_id: z11.string(),
2339
- market_id: z11.number(),
2340
- price: z11.number(),
2341
- bid_user: z11.string(),
2342
- bid_user_order_id: z11.string(),
2343
- bid_user_ordinal_order_id: z11.string(),
2344
- bid_total: z11.number(),
2345
- bid_amount: z11.number(),
2346
- bid_fee: z11.number(),
2347
- bid_referrer: z11.string(),
2348
- bid_referrer_fee: z11.number(),
2349
- ask_user: z11.string(),
2350
- ask_user_order_id: z11.string(),
2351
- ask_user_ordinal_order_id: z11.string(),
2352
- ask_total: z11.number(),
2353
- ask_amount: z11.number(),
2354
- ask_fee: z11.number(),
2355
- ask_referrer: z11.string(),
2356
- ask_referrer_fee: z11.number(),
2357
- order_side: z11.number(),
2358
- trx_id: z11.string()
2359
- });
2360
- var getTradesParser = z11.object({
2361
- symbol: z11.string(),
2362
- offset: createOffset(0),
2363
- limit: createLimit(100, 250)
2364
- });
2365
- var getTradesResponseParser = z11.object({
2366
- sync: z11.number(),
2367
- data: z11.array(tradeParser)
2368
- });
2369
- var getTradeHistoryParser = z11.object({
2370
- account: z11.string(),
2371
- symbol: z11.string().optional(),
2372
- offset: createOffset(0),
2373
- ordinal_order_ids: ordinalOrderIdsParser,
2374
- limit: createLimit(100, 250)
2375
- });
2376
- var getTradeHistoryResponseParser = z11.object({
2377
- sync: z11.number(),
2378
- count: z11.number(),
2379
- data: z11.array(tradeParser)
2380
- });
2381
- var syncParser = z11.object({
2382
- sourceid: z11.number(),
2383
- block_num: z11.string(),
2384
- block_time: z11.string(),
2385
- irreversible: z11.string(),
2386
- is_master: z11.number(),
2387
- last_updated: z11.string()
2388
- });
2389
- var getSyncResponseParser = z11.object({
2390
- dbSecondsBehind: z11.number(),
2391
- chronicleSecondsBehind: z11.number(),
2392
- maxSecondsBehind: z11.number()
2393
- });
2394
- var refferalTotalParser = z11.object({
2395
- referrer: z11.string(),
2396
- market_id: z11.number(),
2397
- bid_fee: z11.number(),
2398
- bid_total: z11.number(),
2399
- ask_fee: z11.number(),
2400
- ask_total: z11.number()
2401
- });
2402
- var getReferralTotalsParser = z11.object({
2403
- referrer: z11.string()
2404
- });
2405
- var getReferralTotalsResponseParser = z11.object({
2406
- sync: z11.number(),
2407
- data: z11.array(refferalTotalParser)
2408
- });
2409
- var refferalParser = z11.object({
2410
- referred_user: z11.string()
2411
- });
2412
- var getReferralsParser = z11.object({
2413
- referrer: z11.string()
2414
- });
2415
- var getReferralsResponseParser = z11.object({
2416
- sync: z11.number(),
2417
- data: z11.array(refferalParser)
2418
- });
2419
- var leaderboardParser = z11.object({
2420
- user: z11.string(),
2421
- total: z11.number()
2422
- });
2423
- var getLeaderboardParser = z11.object({
2424
- market_ids: marketIdsParser,
2425
- from: z11.string(),
2426
- to: z11.string(),
2427
- exclude_zero_fee: booleanParamSchema.default("true")
2428
- });
2429
- var getLeaderboardResponseParser = z11.object({
2430
- sync: z11.number(),
2431
- data: z11.array(leaderboardParser)
2432
- });
2433
- var historyPartialParser = z11.object({
2434
- expiration: z11.object({ utc_seconds: z11.string() }),
2435
- ref_block_num: z11.string(),
2436
- ref_block_prefix: z11.string(),
2437
- max_net_usage_words: z11.string(),
2438
- max_cpu_usage_ms: z11.string(),
2439
- delay_sec: z11.string(),
2440
- transaction_extensions: z11.array(z11.unknown()),
2441
- signatures: z11.array(z11.string()),
2442
- context_free_data: z11.array(z11.unknown())
2443
- });
2444
- var actParser = z11.object({
2445
- account: z11.string(),
2446
- name: z11.string(),
2447
- authorization: z11.array(authorizationParser),
2448
- data: z11.any()
2449
- });
2450
- var receiptParser = z11.object({
2451
- receiver: z11.string(),
2452
- act_digest: z11.string(),
2453
- global_sequence: z11.string(),
2454
- recv_sequence: z11.string(),
2455
- auth_sequence: z11.array(
2456
- z11.object({ account: z11.string(), sequence: z11.string() })
2457
- ),
2458
- code_sequence: z11.string(),
2459
- abi_sequence: z11.string()
2460
- });
2461
- var actionTraceParser = z11.object({
2462
- action_ordinal: z11.string(),
2463
- creator_action_ordinal: z11.string(),
2464
- receipt: receiptParser,
2465
- receiver: z11.string(),
2466
- act: actParser,
2467
- context_free: z11.string(),
2468
- elapsed: z11.string(),
2469
- console: z11.string(),
2470
- account_ram_deltas: z11.array(accountRamDeltaParser),
2471
- except: z11.string(),
2472
- error_code: z11.string().nullable(),
2473
- return_value: z11.string()
2474
- });
2475
- var traceParser = z11.object({
2476
- id: z11.string(),
2477
- status: z11.string(),
2478
- cpu_usage_us: z11.string(),
2479
- net_usage_words: z11.string(),
2480
- elapsed: z11.string(),
2481
- net_usage: z11.string(),
2482
- scheduled: z11.string(),
2483
- action_traces: z11.array(actionTraceParser),
2484
- account_ram_delta: z11.array(accountRamDeltaParser).nullable(),
2485
- except: z11.string(),
2486
- error_code: z11.string().nullable(),
2487
- failed_dtrx_trace: z11.array(z11.unknown()),
2488
- partial: historyPartialParser
2489
- });
2490
- var historyTransactionParser = z11.object({
2491
- seq: z11.string(),
2492
- block_num: z11.string(),
2493
- block_time: z11.string(),
2494
- trx_id: z11.string(),
2495
- trace: z11.object({
2496
- block_num: z11.string(),
2497
- block_timestamp: z11.string(),
2498
- trace: traceParser
2499
- }),
2500
- irreversible: z11.boolean()
2501
- });
2502
- var getHistoryTransactionResponseParser = z11.object({
2503
- data: historyTransactionParser.nullable()
2504
- });
2505
- var chronicleTransactionParser = z11.object({
2506
- block_num: z11.string(),
2507
- block_timestamp: z11.string(),
2508
- trace: traceParser
2509
- });
2510
- var dbHistoryTransactionParser = z11.object({
2511
- seq: z11.string(),
2512
- block_num: z11.string(),
2513
- block_time: z11.string(),
2514
- trx_id: z11.string(),
2515
- trace: z11.any()
2516
- });
2517
- var getHistoryActionsParser = z11.object({
2518
- account: z11.string().min(1, { message: "account is required" }),
2519
- contract_filters: contractFiltersParser,
2520
- account_seq_from: z11.string().optional(),
2521
- account_seq_to: z11.string().optional(),
2522
- date_from: z11.string().optional(),
2523
- date_to: z11.string().optional(),
2524
- direction: sortDirectionEnum.optional(),
2525
- limit: createLimit(100, 250)
2526
- });
2527
- var historyActionParser = z11.object({
2528
- block_num: z11.number(),
2529
- block_time: z11.string(),
2530
- trx_id: z11.string(),
2531
- account_action_seq: z11.number(),
2532
- global_action_seq: z11.number(),
2533
- action_trace: actionTraceParser,
2534
- irreversible: z11.boolean()
2535
- });
2536
- var getHistoryActionsResponseParser = z11.object({
2537
- sync: z11.number(),
2538
- last_irreversible_block_num: z11.number(),
2539
- data: z11.array(historyActionParser)
2540
- });
2541
- var getHistoryTransfersParser = z11.object({
2542
- transfer_from: z11.string().optional(),
2543
- transfer_to: z11.string().optional(),
2544
- contract: z11.string().optional(),
2545
- symbol: z11.string().optional(),
2546
- amount_precision: z11.string().optional(),
2547
- amount_min: z11.string().optional(),
2548
- amount_max: z11.string().optional(),
2549
- date_from: z11.string().optional(),
2550
- date_to: z11.string().optional(),
2551
- global_seq_from: z11.string().optional(),
2552
- global_seq_to: z11.string().optional(),
2553
- direction: sortDirectionEnum.optional(),
2554
- limit: createLimit(100, 250)
2555
- });
2556
- var historyTransferParser = z11.object({
2557
- block_num: z11.number(),
2558
- block_time: z11.string(),
2559
- trx_id: z11.string(),
2560
- account_action_seq: z11.number(),
2561
- global_action_seq: z11.number(),
2562
- action_trace: actionTraceParser,
2563
- irreversible: z11.boolean()
2564
- });
2565
- var getHistoryTransfersResponseParser = z11.object({
2566
- sync: z11.number(),
2567
- last_irreversible_block_num: z11.number(),
2568
- data: z11.array(historyTransferParser)
2569
- });
2570
- var marketOpenOrdersBalanceParser = z11.object({
2571
- market_id: z11.number(),
2572
- bid_token_quantity: z11.number(),
2573
- bid_token: z11.string(),
2574
- ask_token_quantity: z11.number(),
2575
- ask_token: z11.string()
2576
- });
2577
- var getOpenOrdersBalancesResponseParser = z11.object({
2578
- sync: z11.number(),
2579
- data: z11.array(marketOpenOrdersBalanceParser)
2580
- });
2581
- var orderType = /* @__PURE__ */ ((orderType2) => {
2582
- orderType2[orderType2["ORDERBOOK"] = 0] = "ORDERBOOK";
2583
- orderType2[orderType2["LIMIT"] = 1] = "LIMIT";
2584
- orderType2[orderType2["STOPLOSS"] = 2] = "STOPLOSS";
2585
- orderType2[orderType2["TAKEPROFIT"] = 3] = "TAKEPROFIT";
2586
- return orderType2;
2587
- })(orderType || {});
2588
- var orderSide = /* @__PURE__ */ ((orderSide2) => {
2589
- orderSide2[orderSide2["INVALID"] = 0] = "INVALID";
2590
- orderSide2[orderSide2["BUY"] = 1] = "BUY";
2591
- orderSide2[orderSide2["SELL"] = 2] = "SELL";
2592
- return orderSide2;
2593
- })(orderSide || {});
2594
- var fillType = /* @__PURE__ */ ((fillType2) => {
2595
- fillType2[fillType2["GTC"] = 0] = "GTC";
2596
- fillType2[fillType2["IOC"] = 1] = "IOC";
2597
- fillType2[fillType2["POST_ONLY"] = 2] = "POST_ONLY";
2598
- return fillType2;
2599
- })(fillType || {});
2600
- var logStatus = /* @__PURE__ */ ((logStatus2) => {
2601
- logStatus2["CREATE"] = "create";
2602
- logStatus2["UPDATE"] = "update";
2603
- logStatus2["TRANSFER"] = "transfer";
2604
- logStatus2["CANCEL"] = "cancel";
2605
- logStatus2["DELETE"] = "delete";
2606
- return logStatus2;
2607
- })(logStatus || {});
2608
- var ITopics = /* @__PURE__ */ ((ITopics2) => {
2609
- ITopics2["TRADES"] = "TRADES";
2610
- ITopics2["ORDERS"] = "ORDERS";
2611
- return ITopics2;
2612
- })(ITopics || {});
2613
- var TOPICS = {
2614
- ["TRADES" /* TRADES */]: {
2615
- topic: "TRADES" /* TRADES */
2616
- },
2617
- ["ORDERS" /* ORDERS */]: {
2618
- topic: "ORDERS" /* ORDERS */
2619
- }
2620
- };
2621
-
2622
- // src/parsers/login.ts
2623
- var z12 = __toESM(require("zod"));
2624
- var loginAccountParamsV3Parser = z12.object({
2625
- email: z12.string().optional(),
2626
- verificationCode: z12.string().optional()
2627
- }).merge(generateAuthParser);
2628
-
2629
- // src/utils.ts
2630
- var isSameToken = (token1, token2) => {
2631
- return token1.xtokenSymbol === token2.xtokenSymbol && token1.xtokenPrecision === token2.xtokenPrecision && token1.xtokenContract === token2.xtokenContract;
2632
- };
2633
- var median = (numbers) => {
2634
- const sorted = numbers.slice().sort((a, b) => a - b);
2635
- const middle = Math.floor(sorted.length / 2);
2636
- if (sorted.length % 2 === 0) {
2637
- return (sorted[middle - 1] + sorted[middle]) / 2;
2638
- }
2639
- return sorted[middle];
2640
- };
2641
-
2642
- // src/graph.ts
2643
- var import_lodash = __toESM(require("lodash.clonedeep"));
2644
- var INode = class {
2645
- constructor(key, data) {
2646
- this.key = key;
2647
- if (data) {
2648
- this.data = data;
2649
- }
2650
- }
2651
- key;
2652
- data = {};
2653
- };
2654
- var ILink = class {
2655
- constructor(from, to, data) {
2656
- this.from = from;
2657
- this.to = to;
2658
- if (data) {
2659
- this.data = data;
2660
- }
2661
- }
2662
- from;
2663
- to;
2664
- data = {};
2665
- };
2666
- var Graph = class {
2667
- nodes = [];
2668
- links = [];
2669
- lastPathFound = [];
2670
- isEquals = (a, b) => a.key === b.key;
2671
- addNode(k, v) {
2672
- const node = this.findNode(k);
2673
- if (!node) {
2674
- this.nodes.push(new INode(k, v));
2675
- }
2676
- }
2677
- addNodes(...nodes) {
2678
- nodes.forEach((node) => typeof node === "string" ? this.addNode(node) : this.addNode(node[0], node[1]));
2679
- }
2680
- findNode(k) {
2681
- const inode = new INode(k);
2682
- return this.nodes.find((node) => this.isEquals(node, inode));
2683
- }
2684
- findNodes(...keys) {
2685
- return keys.map((k) => this.findNode(k));
2686
- }
2687
- requireFindNodes(...keys) {
2688
- const nodes = this.findNodes(...keys);
2689
- if (nodes.some((n) => n === void 0)) {
2690
- throw new Error("One of the nodes does not exist");
2691
- }
2692
- return nodes;
2693
- }
2694
- addLink(nodeA, nodeB, data) {
2695
- const [inodeA, inodeB] = this.requireFindNodes(nodeA, nodeB);
2696
- this.links.push(new ILink(inodeA, inodeB, data));
2697
- }
2698
- addLinks(...links) {
2699
- links.forEach((link) => this.addLink(...link));
2700
- }
2701
- /**
2702
- * Get all nodes linked
2703
- * to from `node`.
2704
- */
2705
- findLinkedNodes(node) {
2706
- return this.links.reduce((acc, link) => {
2707
- if (this.isEquals(link.from, node)) {
2708
- acc.push(link.to);
2709
- }
2710
- return acc;
2711
- }, []);
2712
- }
2713
- findAllPaths(from, to) {
2714
- const allPaths = [];
2715
- const [fromNode, toNode] = this.requireFindNodes(from, to);
2716
- const path = [fromNode];
2717
- let seen = /* @__PURE__ */ new Set();
2718
- const stuck = (x) => {
2719
- if (this.isEquals(x, toNode)) {
2720
- return false;
2721
- }
2722
- for (const y of this.findLinkedNodes(x)) {
2723
- if (!seen.has(y.key)) {
2724
- seen.add(y.key);
2725
- if (!stuck(y)) {
2726
- return false;
2727
- }
2728
- }
2729
- }
2730
- return true;
2731
- };
2732
- const search = (x) => {
2733
- if (this.isEquals(x, toNode)) {
2734
- allPaths.push((0, import_lodash.default)(path));
2735
- return;
2736
- }
2737
- seen = new Set(path.map((p) => p.key));
2738
- if (stuck(x)) {
2739
- return;
2740
- }
2741
- for (const y of this.findLinkedNodes(x)) {
2742
- if (!path.includes(y)) {
2743
- path.push(y);
2744
- search(y);
2745
- path.pop();
2746
- }
2747
- }
2748
- };
2749
- search(fromNode);
2750
- return allPaths;
2751
- }
2752
- };
2753
-
2754
- // src/math.ts
2755
- var import_bignumber = __toESM(require("bignumber.js"));
2756
- var compute_transfer = (pool1, pool2, swap, exchange_fee, precision) => {
2757
- const term1 = pool2;
2758
- const term2over = pool1.times(pool2);
2759
- const term2under = pool1.plus(swap);
2760
- const term2 = term2over.div(term2under).integerValue(import_bignumber.default.ROUND_DOWN);
2761
- const term = term1.minus(term2);
2762
- const fee = new import_bignumber.default(exchange_fee).div(FEE_FACTOR);
2763
- const result = term.minus(term.times(fee));
2764
- return result.integerValue(import_bignumber.default.ROUND_DOWN).shiftedBy(-precision);
2765
- };
2766
- var compute_transfer_curve = (reserve_in, reserve_out, amount_in, exchange_fee, precision, amplifier) => {
2767
- if (amplifier === 0) {
2768
- return compute_transfer(
2769
- new import_bignumber.default(reserve_in),
2770
- new import_bignumber.default(reserve_out),
2771
- new import_bignumber.default(amount_in),
2772
- exchange_fee,
2773
- precision
2774
- );
2775
- }
2776
- const MAX_ITERATIONS = 10;
2777
- const sum = reserve_in + reserve_out;
2778
- let D = sum;
2779
- let D_prev = 0;
2780
- const F = (v) => {
2781
- return (v >= 0 ? 1 : -1) * Math.floor(Math.abs(v));
2782
- };
2783
- let i = MAX_ITERATIONS;
2784
- while (D != D_prev && i--) {
2785
- const prod1 = F(F(D * D / (reserve_in * 2)) * D / (reserve_out * 2));
2786
- D_prev = D;
2787
- D = F(
2788
- 2 * D * (amplifier * sum + prod1) / ((2 * amplifier - 1) * D + 3 * prod1)
2789
- );
2790
- }
2791
- const b = reserve_in + amount_in + F(D / (amplifier * 2)) - D;
2792
- const c = F(
2793
- F(D * D / ((reserve_in + amount_in) * 2)) * D / (amplifier * 4)
2794
- );
2795
- let x = D, x_prev = 0;
2796
- i = MAX_ITERATIONS;
2797
- while (x != x_prev && i--) {
2798
- x_prev = F(x);
2799
- x = +new import_bignumber.default(x * x + c).div(2 * x + b).toFixed(0, import_bignumber.default.ROUND_DOWN);
2800
- }
2801
- if (reserve_out <= x) {
2802
- throw new Error("curve: insufficient reserve out");
2803
- }
2804
- const amount_out_with_fee = new import_bignumber.default(reserve_out - x);
2805
- const fee = amount_out_with_fee.times(exchange_fee).div(FEE_FACTOR).plus(1).toFixed(0, import_bignumber.default.ROUND_DOWN);
2806
- const amount_out = amount_out_with_fee.minus(fee);
2807
- return amount_out.integerValue(import_bignumber.default.ROUND_DOWN).shiftedBy(-precision);
2808
- };
2809
- var compute_liquidity = (amount_lt, pool, lt_supply, precision) => {
2810
- const over = amount_lt.times(pool);
2811
- const under = lt_supply;
2812
- const result = over.div(under).integerValue(import_bignumber.default.ROUND_DOWN);
2813
- return +result.shiftedBy(-precision).toFixed(precision, import_bignumber.default.ROUND_DOWN);
2814
- };
2815
- var isInputInvalid = (data, value, pool) => {
2816
- value = String(value);
2817
- const isBackspace = data === null;
2818
- const isNumber = !/[0-9]|\./.test(data);
2819
- const isDoubleDot = data === "." && value.indexOf(".") !== value.length - 1;
2820
- const isPrecisionTooHigh = value && value.indexOf(".") !== -1 && value.split(".")[1].length > pool.xtokenPrecision;
2821
- const isInvalid = !isBackspace && Boolean(isNumber || isDoubleDot || isPrecisionTooHigh);
2822
- return isInvalid;
2823
- };
2824
- var applyDiscountToFee = (fee, staked) => {
2825
- if (staked >= 1e7) {
2826
- return fee * 0;
2827
- } else if (staked >= 1e6) {
2828
- return fee * 0.33;
2829
- } else if (staked >= 1e5) {
2830
- return fee * 0.66;
2831
- } else {
2832
- return fee;
2833
- }
2834
- };
2835
- // Annotate the CommonJS export names for ESM import in node:
2836
- 0 && (module.exports = {
2837
- Chains,
2838
- ExtendedAssetParser,
2839
- FEE_FACTOR,
2840
- Graph,
2841
- ILink,
2842
- INode,
2843
- ITopics,
2844
- Networks,
2845
- Providers,
2846
- Status,
2847
- TOPICS,
2848
- Type,
2849
- WRAP_AUTH_ACTION,
2850
- WRAP_CONTRACT,
2851
- accountParser,
2852
- accountRamDeltaParser,
2853
- actParser,
2854
- actionTraceParser,
2855
- addressParser,
2856
- applyDiscountToFee,
2857
- authorizationParser,
2858
- authorizationsParser,
2859
- baseActionParser,
2860
- baseActionSerializedParser,
2861
- bloksRatesParser,
2862
- chronicleTransactionParser,
2863
- compute_liquidity,
2864
- compute_transfer,
2865
- compute_transfer_curve,
2866
- createAbstractAuthParser,
2867
- dailyParser,
2868
- dbHistoryTransactionParser,
2869
- dbMarketParser,
2870
- depositBodyParser,
2871
- depthParser,
2872
- exchangeRateParser,
2873
- exchangeRatesParser,
2874
- explorerLinkByChain,
2875
- fillType,
2876
- generateAddressBodyParser,
2877
- generateAddressResponse,
2878
- generateAuthParser,
2879
- getDailyResponseParser,
2880
- getDepthParser,
2881
- getDepthResponseParser,
2882
- getHistoryActionsParser,
2883
- getHistoryActionsResponseParser,
2884
- getHistoryTransactionResponseParser,
2885
- getHistoryTransfersParser,
2886
- getHistoryTransfersResponseParser,
2887
- getLeaderboardParser,
2888
- getLeaderboardResponseParser,
2889
- getMarketsResponseParser,
2890
- getOhlcvParser,
2891
- getOhlcvResponseParser,
2892
- getOpenOrdersBalancesResponseParser,
2893
- getOpenOrdersParser,
2894
- getOpenOrdersResponseParser,
2895
- getOrderHistoryParser,
2896
- getOrderHistoryResponseParser,
2897
- getOrderLifecycleParser,
2898
- getOrderLifecycleResponseParser,
2899
- getReferralTotalsParser,
2900
- getReferralTotalsResponseParser,
2901
- getReferralsParser,
2902
- getReferralsResponseParser,
2903
- getSyncResponseParser,
2904
- getTradeHistoryParser,
2905
- getTradeHistoryResponseParser,
2906
- getTradesParser,
2907
- getTradesResponseParser,
2908
- historyActionParser,
2909
- historyPartialParser,
2910
- historyTransactionParser,
2911
- historyTransferParser,
2912
- initializeCoins,
2913
- initializeConstants,
2914
- isInputInvalid,
2915
- isSameToken,
2916
- leaderboardParser,
2917
- logStatus,
2918
- loginAccountParamsV3Parser,
2919
- marketOpenOrdersBalanceParser,
2920
- marketParser,
2921
- median,
2922
- metalTransactionParser,
2923
- ohlcvParser,
2924
- openOrderParser,
2925
- orderHistoryParser,
2926
- orderLogParser,
2927
- orderSide,
2928
- orderType,
2929
- otcOrderResponseParser,
2930
- otcQuoteBodyParser,
2931
- otcQuoteResponseParser,
2932
- postSerializeOrderParser,
2933
- postSerializeOrderResponseParser,
2934
- postSubmitOrderParser,
2935
- postSubmitOrderResponseParser,
2936
- protonExplorerTxUrl,
2937
- rateParser,
2938
- receiptParser,
2939
- refferalParser,
2940
- refferalTotalParser,
2941
- similarChains,
2942
- singleActionTransactionParser,
2943
- sortDirectionEnum,
2944
- syncParser,
2945
- traceParser,
2946
- tradeLogParser,
2947
- tradeParser,
2948
- webauthActionParser,
2949
- withdrawBodyParser,
2950
- withdrawHistoryMetalResponseParser,
2951
- withdrawHistoryMetalSwapParser,
2952
- withdrawMetalResponseParser,
2953
- withdrawalFeeQuoteParser,
2954
- wrapParser,
2955
- wrapSetConfParser,
2956
- wrapStartParser
2957
- });