@getpara/shared 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -10,9 +10,34 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
13
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
20
  };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
16
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.transactionTypes = void 0;
17
40
  __exportStar(require("./types/index.js"), exports);
18
41
  __exportStar(require("./utils/index.js"), exports);
42
+ const transactionTypes = __importStar(require("./types/transaction.js"));
43
+ exports.transactionTypes = transactionTypes;
@@ -19,5 +19,6 @@ __exportStar(require("./auth.js"), exports);
19
19
  __exportStar(require("./params.js"), exports);
20
20
  __exportStar(require("./partner.js"), exports);
21
21
  __exportStar(require("./theme.js"), exports);
22
+ __exportStar(require("./transaction.js"), exports);
22
23
  __exportStar(require("./wallet.js"), exports);
23
24
  __exportStar(require("./user.js"), exports);
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRANSACTION_ERROR_CODES = void 0;
4
+ exports.TRANSACTION_ERROR_CODES = [
5
+ // RPC issues
6
+ 'INVALID_RPC_URL',
7
+ 'INVALID_CHAIN_ID',
8
+ 'RPC_UNAVAILABLE',
9
+ 'UNSUPPORTED_TRANSACTION_TYPE',
10
+ // Address validation
11
+ 'INVALID_DESTINATION_ADDRESS',
12
+ 'INVALID_SOURCE_ADDRESS',
13
+ 'INVALID_CONTRACT_ADDRESS',
14
+ // Balance issues
15
+ 'INSUFFICIENT_NATIVE_BALANCE', // Not enough ETH/SOL for send amount + fees
16
+ 'INSUFFICIENT_TOKEN_BALANCE', // Not enough ERC-20/SPL tokens
17
+ 'INSUFFICIENT_FEE', // Not enough native token for fees only (Solana)
18
+ // Token approvals (EVM only)
19
+ 'INSUFFICIENT_ALLOWANCE', // ERC-20 approval needed
20
+ // Account issues (Solana only)
21
+ 'RECIPIENT_ACCOUNT_REQUIRED', // SPL token account needs to be created
22
+ // Execution failures
23
+ 'CONTRACT_EXECUTION_REVERTED', // Smart contract rejected the transaction
24
+ 'GAS_ESTIMATION_FAILED', // Cannot estimate gas (EVM)
25
+ 'PROGRAM_ERROR', // Solana program error
26
+ 'COMPUTE_BUDGET_EXCEEDED', // Solana compute units exceeded
27
+ 'TRANSACTION_EXPIRED', // Solana blockhash expired
28
+ 'EXECUTION_FAILED', // Generic execution failure
29
+ ];
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatCurrency = formatCurrency;
4
4
  exports.formatAssetQuantity = formatAssetQuantity;
5
+ exports.filterWalletBalance = filterWalletBalance;
6
+ exports.filterProfileBalance = filterProfileBalance;
5
7
  const zeroAssetFormatter = new Intl.NumberFormat('en-US', {
6
8
  style: 'decimal',
7
9
  maximumFractionDigits: 0,
@@ -29,22 +31,129 @@ function formatCurrency(value, { fallback = '' } = {}) {
29
31
  }
30
32
  function formatAssetQuantity({ quantity, symbol = '', decimals, fallback = '', }) {
31
33
  try {
32
- if (quantity == null) {
34
+ if (quantity === undefined || isNaN(Number(quantity))) {
33
35
  return fallback;
34
36
  }
37
+ const num = Number(quantity);
35
38
  const formatter = new Intl.NumberFormat('en-US', {
36
39
  style: 'decimal',
37
- maximumFractionDigits: decimals ?? (Math.abs(quantity) < 0.001 ? 6 : 3),
38
- minimumFractionDigits: decimals ?? 3,
40
+ maximumFractionDigits: decimals ?? (Math.abs(num) < 0.001 ? 6 : 3),
41
+ minimumFractionDigits: 0,
39
42
  });
40
- const formattedQuantity = quantity === 0
43
+ let formattedQuantity = quantity === 0
41
44
  ? '0'
42
- : Math.abs(quantity) < 10 ** (-1 * (decimals ?? 6))
45
+ : Math.abs(num) < 10 ** (-1 * (decimals ?? 6))
43
46
  ? zeroAssetFormatter.format(0)
44
- : formatter.format(quantity);
47
+ : formatter.format(num);
48
+ // Trim trailing zeros and decimal point if needed (e.g., "0.000000657000" -> "0.000000657")
49
+ // Only trim if there's a decimal point and the result isn't just "0"
50
+ if (formattedQuantity.includes('.') && formattedQuantity !== '0') {
51
+ formattedQuantity = formattedQuantity.replace(/\.?0+$/, '');
52
+ }
45
53
  return `${formattedQuantity}${symbol && symbol.length > 0 ? ` ${symbol}` : ''}`;
46
54
  }
47
55
  catch (_e) {
48
56
  return fallback;
49
57
  }
50
58
  }
59
+ const buildCustomAssetId = (symbol) => `custom_${symbol}`;
60
+ const isNonNullable = (value) => value !== null;
61
+ function filterWalletBalance(balance, config) {
62
+ if (config.isComprehensive) {
63
+ return balance;
64
+ }
65
+ const requestType = config.requestType ?? 'MAINNET';
66
+ let filteredAssets = balance.assets;
67
+ let filteredNetworks = balance.networks;
68
+ if (requestType !== 'MAINNET_AND_TESTNET') {
69
+ const includeTestnet = requestType === 'TESTNET';
70
+ filteredAssets = balance.assets
71
+ .map((asset) => {
72
+ const filteredAssetNetworks = asset.networks.filter((network) => {
73
+ const networkIsTestnet = network.metadata?.isTestnet ?? false;
74
+ return includeTestnet ? networkIsTestnet : !networkIsTestnet;
75
+ });
76
+ if (filteredAssetNetworks.length === 0) {
77
+ return null;
78
+ }
79
+ const quantity = filteredAssetNetworks.reduce((sum, n) => sum + n.quantity, 0);
80
+ const value = filteredAssetNetworks.reduce((sum, n) => sum + (n.value?.value ?? 0), 0);
81
+ return {
82
+ ...asset,
83
+ quantity,
84
+ networks: filteredAssetNetworks,
85
+ ...(asset.value ? { value: { value, currency: asset.value.currency } } : {}),
86
+ };
87
+ })
88
+ .filter(isNonNullable);
89
+ filteredNetworks = balance.networks
90
+ .map((network) => {
91
+ const networkIsTestnet = network.metadata?.isTestnet ?? false;
92
+ if (includeTestnet !== networkIsTestnet) {
93
+ return null;
94
+ }
95
+ const value = network.assets.reduce((sum, a) => sum + (a.value?.value ?? 0), 0);
96
+ return {
97
+ ...network,
98
+ assets: network.assets,
99
+ ...(network.value ? { value: { value, currency: network.value.currency } } : {}),
100
+ };
101
+ })
102
+ .filter(isNonNullable);
103
+ }
104
+ if (config.displayType === 'AGGREGATED' && config.excludeStandardAssets) {
105
+ filteredAssets = filteredAssets.filter((asset) => asset.metadata?.customAssetId !== undefined);
106
+ filteredNetworks = filteredNetworks
107
+ .map((network) => {
108
+ const filteredNetworkAssets = network.assets.filter((asset) => asset.metadata?.customAssetId !== undefined);
109
+ if (filteredNetworkAssets.length === 0) {
110
+ return null;
111
+ }
112
+ const value = filteredNetworkAssets.reduce((sum, a) => sum + (a.value?.value ?? 0), 0);
113
+ return {
114
+ ...network,
115
+ assets: filteredNetworkAssets,
116
+ ...(network.value ? { value: { value, currency: network.value.currency } } : {}),
117
+ };
118
+ })
119
+ .filter(isNonNullable);
120
+ }
121
+ if (config.displayType === 'CUSTOM_ASSET') {
122
+ const targetCustomAssetId = buildCustomAssetId(config.asset.symbol);
123
+ const matchesCustomAsset = (metadata) => {
124
+ if (metadata?.customAssetId) {
125
+ return metadata.customAssetId === targetCustomAssetId;
126
+ }
127
+ return metadata?.symbol === config.asset.symbol;
128
+ };
129
+ filteredAssets = filteredAssets.filter((asset) => matchesCustomAsset(asset.metadata));
130
+ filteredNetworks = filteredNetworks
131
+ .map((network) => {
132
+ const matchingAssets = network.assets.filter((asset) => matchesCustomAsset(asset.metadata));
133
+ if (matchingAssets.length === 0) {
134
+ return null;
135
+ }
136
+ return {
137
+ ...network,
138
+ assets: matchingAssets,
139
+ };
140
+ })
141
+ .filter(isNonNullable);
142
+ }
143
+ const totalValue = filteredAssets.reduce((sum, asset) => sum + (asset.value?.value ?? 0), 0);
144
+ return {
145
+ ...balance,
146
+ assets: filteredAssets,
147
+ networks: filteredNetworks,
148
+ ...(balance.value ? { value: { value: totalValue, currency: balance.value.currency } } : {}),
149
+ };
150
+ }
151
+ function filterProfileBalance(balance, config) {
152
+ const filteredWallets = balance.wallets.map((wallet) => filterWalletBalance(wallet, config));
153
+ const totalValue = filteredWallets.reduce((sum, wallet) => sum + (wallet.value?.value ?? 0), 0);
154
+ return {
155
+ ...balance,
156
+ wallets: filteredWallets,
157
+ ...(balance.value ? { value: { value: totalValue, currency: balance.value.currency } } : {}),
158
+ };
159
+ }
@@ -18,17 +18,435 @@ exports.NETWORK_METADATA = void 0;
18
18
  exports.getChainId = getChainId;
19
19
  exports.getNetworkFromChainId = getNetworkFromChainId;
20
20
  exports.NETWORK_METADATA = [
21
- { evmChainId: '11155111', internalId: 'SEPOLIA', zerionId: 'ethereum-sepolia', name: 'Sepolia' },
22
- { evmChainId: '1', internalId: 'ETHEREUM', zerionId: 'ethereum', name: 'Ethereum' },
23
- { evmChainId: '137', internalId: 'POLYGON', zerionId: 'polygon', name: 'Polygon' },
24
- { evmChainId: '42220', internalId: 'CELO', zerionId: 'celo', name: 'Celo' },
25
- { evmChainId: '8453', internalId: 'BASE', zerionId: 'base', name: 'Base' },
26
- { evmChainId: '42161', internalId: 'ARBITRUM', zerionId: 'arbitrum', name: 'Arbitrum' },
27
- { evmChainId: '10', internalId: 'OPTIMISM', zerionId: 'optimism', name: 'Optimism' },
28
- { evmChainId: '80094', internalId: 'BERACHAIN', zerionId: 'berachain', name: 'Berachain' },
29
- { internalId: 'SOLANA', name: 'Solana' },
30
- { internalId: 'SOLANA_DEVNET', name: 'Solana Devnet' },
31
- { internalId: 'COSMOS', name: 'Cosmos' },
21
+ {
22
+ type: 'EVM',
23
+ evmChainId: '11155111',
24
+ internalId: 'SEPOLIA',
25
+ zerionId: 'ethereum-sepolia',
26
+ name: 'Ethereum Sepolia',
27
+ alchemySlug: 'eth-sepolia',
28
+ },
29
+ {
30
+ type: 'EVM',
31
+ evmChainId: '1',
32
+ internalId: 'ETHEREUM',
33
+ zerionId: 'ethereum',
34
+ name: 'Ethereum',
35
+ alchemySlug: 'eth-mainnet',
36
+ },
37
+ {
38
+ type: 'EVM',
39
+ evmChainId: '137',
40
+ internalId: 'POLYGON',
41
+ zerionId: 'polygon',
42
+ name: 'Polygon',
43
+ alchemySlug: 'polygon-mainnet',
44
+ nativeTokenSymbol: 'POL',
45
+ },
46
+ {
47
+ type: 'EVM',
48
+ evmChainId: '42220',
49
+ internalId: 'CELO',
50
+ zerionId: 'celo',
51
+ name: 'Celo',
52
+ alchemySlug: 'celo-mainnet',
53
+ nativeTokenSymbol: 'CELO',
54
+ },
55
+ {
56
+ type: 'EVM',
57
+ evmChainId: '8453',
58
+ internalId: 'BASE',
59
+ zerionId: 'base',
60
+ name: 'Base',
61
+ alchemySlug: 'base-mainnet',
62
+ },
63
+ {
64
+ type: 'EVM',
65
+ evmChainId: '42161',
66
+ internalId: 'ARBITRUM',
67
+ zerionId: 'arbitrum',
68
+ name: 'Arbitrum',
69
+ alchemySlug: 'arb-mainnet',
70
+ },
71
+ {
72
+ type: 'EVM',
73
+ evmChainId: '10',
74
+ internalId: 'OPTIMISM',
75
+ zerionId: 'optimism',
76
+ name: 'Optimism',
77
+ alchemySlug: 'opt-mainnet',
78
+ },
79
+ {
80
+ type: 'EVM',
81
+ evmChainId: '80094',
82
+ internalId: 'BERACHAIN',
83
+ zerionId: 'berachain',
84
+ name: 'Berachain',
85
+ alchemySlug: 'bera-mainnet',
86
+ },
87
+ {
88
+ type: 'EVM',
89
+ zerionId: 'binance-smart-chain',
90
+ evmChainId: '56',
91
+ name: 'Binance Smart Chain',
92
+ alchemySlug: 'bsc-mainnet',
93
+ nativeTokenSymbol: 'BNB',
94
+ },
95
+ {
96
+ type: 'EVM',
97
+ zerionId: 'tron',
98
+ evmChainId: '728126428',
99
+ name: 'Tron',
100
+ alchemySlug: 'tron-mainnet',
101
+ nativeTokenSymbol: 'TRX',
102
+ },
103
+ {
104
+ type: 'EVM',
105
+ zerionId: 'blast',
106
+ evmChainId: '81457',
107
+ name: 'Blast',
108
+ alchemySlug: 'blast-mainnet',
109
+ },
110
+ {
111
+ type: 'EVM',
112
+ zerionId: 'ape',
113
+ evmChainId: '33139',
114
+ name: 'Ape',
115
+ alchemySlug: 'ape-mainnet',
116
+ },
117
+ {
118
+ type: 'EVM',
119
+ zerionId: 'cronos-zkevm',
120
+ evmChainId: '388',
121
+ name: 'Cronos ZK-EVM',
122
+ nativeTokenSymbol: 'CRO',
123
+ },
124
+ {
125
+ type: 'EVM',
126
+ zerionId: '0g',
127
+ evmChainId: '16661',
128
+ name: 'Harmony',
129
+ nativeTokenSymbol: 'ONE',
130
+ },
131
+ {
132
+ type: 'EVM',
133
+ zerionId: 'opbnb',
134
+ evmChainId: '204',
135
+ alchemySlug: 'opbnb-mainnet',
136
+ name: 'Optimism Nova',
137
+ },
138
+ {
139
+ type: 'EVM',
140
+ zerionId: 'abstract',
141
+ evmChainId: '2741',
142
+ alchemySlug: 'abstract-mainnet',
143
+ name: 'Abstract',
144
+ },
145
+ {
146
+ type: 'EVM',
147
+ zerionId: 'avalanche',
148
+ evmChainId: '43114',
149
+ alchemySlug: 'avax-mainnet',
150
+ name: 'Avalanche',
151
+ nativeTokenSymbol: 'AVAX',
152
+ },
153
+ {
154
+ type: 'EVM',
155
+ zerionId: 'zksync-era',
156
+ evmChainId: '324',
157
+ alchemySlug: 'zksync-mainnet',
158
+ name: 'ZKSync Era',
159
+ },
160
+ {
161
+ type: 'EVM',
162
+ zerionId: 'mantle',
163
+ evmChainId: '5000',
164
+ alchemySlug: 'mantle-mainnet',
165
+ name: 'Mantle',
166
+ },
167
+ {
168
+ type: 'EVM',
169
+ zerionId: 'bob',
170
+ evmChainId: '60808',
171
+ alchemySlug: 'bob-mainnet',
172
+ name: 'Bob',
173
+ },
174
+ { type: 'EVM', zerionId: 'cyber', evmChainId: '7560' },
175
+ {
176
+ type: 'EVM',
177
+ zerionId: 'degen',
178
+ evmChainId: '666666666',
179
+ alchemySlug: 'degen-mainnet',
180
+ name: 'Degen',
181
+ },
182
+ {
183
+ type: 'EVM',
184
+ zerionId: 'manta-pacific',
185
+ evmChainId: '169',
186
+ name: 'Manta Pacific',
187
+ },
188
+ { type: 'EVM', zerionId: 'fantom', evmChainId: '250', name: 'Fantom', nativeTokenSymbol: 'FTM' },
189
+ {
190
+ type: 'EVM',
191
+ zerionId: 'ronin',
192
+ evmChainId: '2020',
193
+ alchemySlug: 'ronin-mainnet',
194
+ name: 'Ronin',
195
+ },
196
+ {
197
+ type: 'EVM',
198
+ zerionId: 'linea',
199
+ evmChainId: '59144',
200
+ alchemySlug: 'linea-mainnet',
201
+ name: 'Linea',
202
+ },
203
+ {
204
+ type: 'EVM',
205
+ zerionId: 'metis-andromeda',
206
+ evmChainId: '1088',
207
+ alchemySlug: 'metis-mainnet',
208
+ name: 'Metis Andromeda',
209
+ nativeTokenSymbol: 'METIS',
210
+ },
211
+ {
212
+ type: 'EVM',
213
+ zerionId: 'aurora',
214
+ evmChainId: '1313161554',
215
+ name: 'Aurora',
216
+ },
217
+ { type: 'EVM', zerionId: 'xinfin-xdc', evmChainId: '50', nativeTokenSymbol: 'XDC' },
218
+ {
219
+ type: 'EVM',
220
+ zerionId: 'fraxtal',
221
+ evmChainId: '252',
222
+ alchemySlug: 'frax-mainnet',
223
+ name: 'Frax',
224
+ },
225
+ {
226
+ type: 'EVM',
227
+ zerionId: 'gravity-alpha',
228
+ evmChainId: '1625',
229
+ name: 'Gravity Alpha',
230
+ },
231
+ {
232
+ type: 'EVM',
233
+ zerionId: 'hyperevm',
234
+ evmChainId: '999',
235
+ alchemySlug: 'hyperliquid-mainnet',
236
+ name: 'Hyperliquid',
237
+ },
238
+ {
239
+ type: 'EVM',
240
+ zerionId: 'ink',
241
+ evmChainId: '57073',
242
+ alchemySlug: 'ink-mainnet',
243
+ name: 'Ink',
244
+ },
245
+ {
246
+ type: 'EVM',
247
+ zerionId: 'lens',
248
+ evmChainId: '232',
249
+ alchemySlug: 'lens-mainnet',
250
+ name: 'Lens',
251
+ },
252
+ {
253
+ type: 'EVM',
254
+ zerionId: 'lisk',
255
+ evmChainId: '1135',
256
+ name: 'Lisk',
257
+ },
258
+ {
259
+ type: 'EVM',
260
+ zerionId: 'mode',
261
+ evmChainId: '34443',
262
+ alchemySlug: 'mode-mainnet',
263
+ name: 'Mode',
264
+ },
265
+ {
266
+ type: 'EVM',
267
+ zerionId: 'plasma',
268
+ evmChainId: '9745',
269
+ alchemySlug: 'plasma-mainnet',
270
+ name: 'Plasma',
271
+ },
272
+ {
273
+ type: 'EVM',
274
+ zerionId: 'polygon-zkevm',
275
+ evmChainId: '1101',
276
+ alchemySlug: 'polygonzkevm-mainnet',
277
+ name: 'Polygon ZK-EVM',
278
+ },
279
+ {
280
+ type: 'EVM',
281
+ zerionId: 'polynomial',
282
+ evmChainId: '8008',
283
+ name: 'Polynomial',
284
+ },
285
+ {
286
+ type: 'EVM',
287
+ zerionId: 'rari',
288
+ evmChainId: '1380012617',
289
+ name: 'Rari',
290
+ },
291
+ {
292
+ type: 'EVM',
293
+ zerionId: 'redstone',
294
+ evmChainId: '690',
295
+ name: 'Redstone',
296
+ },
297
+ {
298
+ type: 'EVM',
299
+ zerionId: 'scroll',
300
+ evmChainId: '534352',
301
+ alchemySlug: 'scroll-mainnet',
302
+ name: 'Scroll',
303
+ },
304
+ {
305
+ type: 'EVM',
306
+ zerionId: 'sei',
307
+ evmChainId: '1329',
308
+ alchemySlug: 'sei-mainnet',
309
+ name: 'Sei',
310
+ },
311
+ {
312
+ type: 'EVM',
313
+ zerionId: 'somnia',
314
+ evmChainId: '5031',
315
+ },
316
+ {
317
+ type: 'EVM',
318
+ zerionId: 'soneium',
319
+ evmChainId: '1868',
320
+ alchemySlug: 'soneium-mainnet',
321
+ name: 'Soneium',
322
+ },
323
+ {
324
+ type: 'EVM',
325
+ zerionId: 'sonic',
326
+ evmChainId: '146',
327
+ alchemySlug: 'sonic-mainnet',
328
+ name: 'Sonic',
329
+ },
330
+ {
331
+ type: 'EVM',
332
+ zerionId: 'swellchain',
333
+ evmChainId: '1923',
334
+ name: 'Swellchain',
335
+ },
336
+ {
337
+ type: 'EVM',
338
+ zerionId: 'taiko',
339
+ evmChainId: '167000',
340
+ alchemySlug: 'taiko-mainnet',
341
+ name: 'Taiko',
342
+ },
343
+ {
344
+ type: 'EVM',
345
+ zerionId: 'unichain',
346
+ evmChainId: '130',
347
+ alchemySlug: 'uni-mainnet',
348
+ name: 'Unichain',
349
+ },
350
+ {
351
+ type: 'EVM',
352
+ zerionId: 'wonder',
353
+ evmChainId: '9637',
354
+ name: 'Wonder',
355
+ },
356
+ {
357
+ type: 'EVM',
358
+ zerionId: 'tomochain',
359
+ evmChainId: '88',
360
+ name: 'Tomochain',
361
+ },
362
+ {
363
+ type: 'EVM',
364
+ zerionId: 'world',
365
+ evmChainId: '480',
366
+ alchemySlug: 'world-mainnet',
367
+ name: 'Worldchain',
368
+ },
369
+ {
370
+ type: 'EVM',
371
+ zerionId: 'zero',
372
+ evmChainId: '543210',
373
+ name: 'Zero',
374
+ },
375
+ {
376
+ type: 'EVM',
377
+ zerionId: 'okbchain',
378
+ evmChainId: '196',
379
+ name: 'OKBChain',
380
+ },
381
+ {
382
+ type: 'EVM',
383
+ zerionId: 'zkcandy',
384
+ evmChainId: '320',
385
+ name: 'ZKCandy',
386
+ },
387
+ {
388
+ type: 'EVM',
389
+ zerionId: 'zklink-nova',
390
+ evmChainId: '810180',
391
+ name: 'ZKLink Nova',
392
+ },
393
+ {
394
+ type: 'EVM',
395
+ zerionId: 'zora',
396
+ evmChainId: '7777777',
397
+ alchemySlug: 'zora-mainnet',
398
+ name: 'Zora',
399
+ },
400
+ {
401
+ type: 'EVM',
402
+ zerionId: 're-al',
403
+ evmChainId: '111188',
404
+ name: 'Re-Al',
405
+ },
406
+ {
407
+ type: 'EVM',
408
+ zerionId: 'katana',
409
+ evmChainId: '747474',
410
+ name: 'Katana',
411
+ },
412
+ {
413
+ type: 'EVM',
414
+ zerionId: 'monad-test-v2',
415
+ evmChainId: '10143',
416
+ name: 'Monad Testnet',
417
+ },
418
+ {
419
+ type: 'EVM',
420
+ zerionId: 'unichain-sepolia',
421
+ evmChainId: '1301',
422
+ name: 'Unichain Sepolia',
423
+ },
424
+ {
425
+ type: 'EVM',
426
+ zerionId: 'zero-sepolia-v2',
427
+ evmChainId: '43210',
428
+ name: 'Zero Sepolia V2',
429
+ },
430
+ {
431
+ type: 'SOLANA',
432
+ internalId: 'SOLANA',
433
+ zerionId: 'solana',
434
+ alchemySlug: 'solana-mainnet',
435
+ name: 'Solana',
436
+ },
437
+ {
438
+ type: 'SOLANA',
439
+ internalId: 'SOLANA_DEVNET',
440
+ alchemySlug: 'solana-devnet',
441
+ logoUrl: 'https://cdn.zerion.io/11111111111111111111111111111111.png',
442
+ explorer: {
443
+ name: 'Solana Explorer',
444
+ url: 'https://explorer.solana.com/?cluster=devnet',
445
+ txUrlFormat: 'https://explorer.solana.com/tx/{HASH}?cluster=devnet',
446
+ },
447
+ name: 'Solana Devnet',
448
+ },
449
+ { type: 'COSMOS', internalId: 'COSMOS', name: 'Cosmos' },
32
450
  ];
33
451
  function getChainId(network) {
34
452
  return exports.NETWORK_METADATA.find(({ internalId: n }) => n === network)?.evmChainId ?? undefined;
package/dist/esm/index.js CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './types/index.js';
2
2
  export * from './utils/index.js';
3
+ import * as transactionTypes from './types/transaction.js';
4
+ export { transactionTypes };
@@ -3,5 +3,6 @@ export * from './auth.js';
3
3
  export * from './params.js';
4
4
  export * from './partner.js';
5
5
  export * from './theme.js';
6
+ export * from './transaction.js';
6
7
  export * from './wallet.js';
7
8
  export * from './user.js';