@getpara/shared 1.6.0 → 1.8.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 +25 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/transaction.js +29 -0
- package/dist/cjs/utils/assets.js +109 -5
- package/dist/cjs/utils/index.js +421 -11
- package/dist/esm/index.js +2 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/transaction.js +26 -0
- package/dist/esm/utils/assets.js +107 -5
- package/dist/esm/utils/index.js +421 -11
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/assets.d.ts +45 -2
- package/dist/types/types/assets.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/params.d.ts +6 -5
- package/dist/types/types/params.d.ts.map +1 -1
- package/dist/types/types/transaction.d.ts +57 -0
- package/dist/types/types/transaction.d.ts.map +1 -0
- package/dist/types/types/wallet.d.ts +1 -0
- package/dist/types/types/wallet.d.ts.map +1 -1
- package/dist/types/utils/assets.d.ts +8 -2
- package/dist/types/utils/assets.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +6 -2
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/utils/assets.js
CHANGED
|
@@ -25,22 +25,124 @@ export function formatCurrency(value, { fallback = '' } = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
export function formatAssetQuantity({ quantity, symbol = '', decimals, fallback = '', }) {
|
|
27
27
|
try {
|
|
28
|
-
if (quantity
|
|
28
|
+
if (quantity === undefined || isNaN(Number(quantity))) {
|
|
29
29
|
return fallback;
|
|
30
30
|
}
|
|
31
|
+
const num = Number(quantity);
|
|
31
32
|
const formatter = new Intl.NumberFormat('en-US', {
|
|
32
33
|
style: 'decimal',
|
|
33
|
-
maximumFractionDigits: decimals ?? (Math.abs(
|
|
34
|
-
minimumFractionDigits:
|
|
34
|
+
maximumFractionDigits: decimals ?? (Math.abs(num) < 0.001 ? 6 : 3),
|
|
35
|
+
minimumFractionDigits: 0,
|
|
35
36
|
});
|
|
36
37
|
const formattedQuantity = quantity === 0
|
|
37
38
|
? '0'
|
|
38
|
-
: Math.abs(
|
|
39
|
+
: Math.abs(num) < 10 ** (-1 * (decimals ?? 6))
|
|
39
40
|
? zeroAssetFormatter.format(0)
|
|
40
|
-
: formatter.format(
|
|
41
|
+
: formatter.format(num);
|
|
41
42
|
return `${formattedQuantity}${symbol && symbol.length > 0 ? ` ${symbol}` : ''}`;
|
|
42
43
|
}
|
|
43
44
|
catch (_e) {
|
|
44
45
|
return fallback;
|
|
45
46
|
}
|
|
46
47
|
}
|
|
48
|
+
const buildCustomAssetId = (symbol) => `custom_${symbol}`;
|
|
49
|
+
const isNonNullable = (value) => value !== null;
|
|
50
|
+
export function filterWalletBalance(balance, config) {
|
|
51
|
+
if (config.isComprehensive) {
|
|
52
|
+
return balance;
|
|
53
|
+
}
|
|
54
|
+
const requestType = config.requestType ?? 'MAINNET';
|
|
55
|
+
let filteredAssets = balance.assets;
|
|
56
|
+
let filteredNetworks = balance.networks;
|
|
57
|
+
if (requestType !== 'MAINNET_AND_TESTNET') {
|
|
58
|
+
const includeTestnet = requestType === 'TESTNET';
|
|
59
|
+
filteredAssets = balance.assets
|
|
60
|
+
.map((asset) => {
|
|
61
|
+
const filteredAssetNetworks = asset.networks.filter((network) => {
|
|
62
|
+
const networkIsTestnet = network.metadata?.isTestnet ?? false;
|
|
63
|
+
return includeTestnet ? networkIsTestnet : !networkIsTestnet;
|
|
64
|
+
});
|
|
65
|
+
if (filteredAssetNetworks.length === 0) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
const quantity = filteredAssetNetworks.reduce((sum, n) => sum + n.quantity, 0);
|
|
69
|
+
const value = filteredAssetNetworks.reduce((sum, n) => sum + (n.value?.value ?? 0), 0);
|
|
70
|
+
return {
|
|
71
|
+
...asset,
|
|
72
|
+
quantity,
|
|
73
|
+
networks: filteredAssetNetworks,
|
|
74
|
+
...(asset.value ? { value: { value, currency: asset.value.currency } } : {}),
|
|
75
|
+
};
|
|
76
|
+
})
|
|
77
|
+
.filter(isNonNullable);
|
|
78
|
+
filteredNetworks = balance.networks
|
|
79
|
+
.map((network) => {
|
|
80
|
+
const networkIsTestnet = network.metadata?.isTestnet ?? false;
|
|
81
|
+
if (includeTestnet !== networkIsTestnet) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
const value = network.assets.reduce((sum, a) => sum + (a.value?.value ?? 0), 0);
|
|
85
|
+
return {
|
|
86
|
+
...network,
|
|
87
|
+
assets: network.assets,
|
|
88
|
+
...(network.value ? { value: { value, currency: network.value.currency } } : {}),
|
|
89
|
+
};
|
|
90
|
+
})
|
|
91
|
+
.filter(isNonNullable);
|
|
92
|
+
}
|
|
93
|
+
if (config.displayType === 'AGGREGATED' && config.excludeStandardAssets) {
|
|
94
|
+
filteredAssets = filteredAssets.filter((asset) => asset.metadata?.customAssetId !== undefined);
|
|
95
|
+
filteredNetworks = filteredNetworks
|
|
96
|
+
.map((network) => {
|
|
97
|
+
const filteredNetworkAssets = network.assets.filter((asset) => asset.metadata?.customAssetId !== undefined);
|
|
98
|
+
if (filteredNetworkAssets.length === 0) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const value = filteredNetworkAssets.reduce((sum, a) => sum + (a.value?.value ?? 0), 0);
|
|
102
|
+
return {
|
|
103
|
+
...network,
|
|
104
|
+
assets: filteredNetworkAssets,
|
|
105
|
+
...(network.value ? { value: { value, currency: network.value.currency } } : {}),
|
|
106
|
+
};
|
|
107
|
+
})
|
|
108
|
+
.filter(isNonNullable);
|
|
109
|
+
}
|
|
110
|
+
if (config.displayType === 'CUSTOM_ASSET') {
|
|
111
|
+
const targetCustomAssetId = buildCustomAssetId(config.asset.symbol);
|
|
112
|
+
const matchesCustomAsset = (metadata) => {
|
|
113
|
+
if (metadata?.customAssetId) {
|
|
114
|
+
return metadata.customAssetId === targetCustomAssetId;
|
|
115
|
+
}
|
|
116
|
+
return metadata?.symbol === config.asset.symbol;
|
|
117
|
+
};
|
|
118
|
+
filteredAssets = filteredAssets.filter((asset) => matchesCustomAsset(asset.metadata));
|
|
119
|
+
filteredNetworks = filteredNetworks
|
|
120
|
+
.map((network) => {
|
|
121
|
+
const matchingAssets = network.assets.filter((asset) => matchesCustomAsset(asset.metadata));
|
|
122
|
+
if (matchingAssets.length === 0) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
...network,
|
|
127
|
+
assets: matchingAssets,
|
|
128
|
+
};
|
|
129
|
+
})
|
|
130
|
+
.filter(isNonNullable);
|
|
131
|
+
}
|
|
132
|
+
const totalValue = filteredAssets.reduce((sum, asset) => sum + (asset.value?.value ?? 0), 0);
|
|
133
|
+
return {
|
|
134
|
+
...balance,
|
|
135
|
+
assets: filteredAssets,
|
|
136
|
+
networks: filteredNetworks,
|
|
137
|
+
...(balance.value ? { value: { value: totalValue, currency: balance.value.currency } } : {}),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export function filterProfileBalance(balance, config) {
|
|
141
|
+
const filteredWallets = balance.wallets.map((wallet) => filterWalletBalance(wallet, config));
|
|
142
|
+
const totalValue = filteredWallets.reduce((sum, wallet) => sum + (wallet.value?.value ?? 0), 0);
|
|
143
|
+
return {
|
|
144
|
+
...balance,
|
|
145
|
+
wallets: filteredWallets,
|
|
146
|
+
...(balance.value ? { value: { value: totalValue, currency: balance.value.currency } } : {}),
|
|
147
|
+
};
|
|
148
|
+
}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,15 +1,425 @@
|
|
|
1
1
|
export const NETWORK_METADATA = [
|
|
2
|
-
{
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
{
|
|
3
|
+
type: 'EVM',
|
|
4
|
+
evmChainId: '11155111',
|
|
5
|
+
internalId: 'SEPOLIA',
|
|
6
|
+
zerionId: 'ethereum-sepolia',
|
|
7
|
+
name: 'Ethereum Sepolia',
|
|
8
|
+
alchemySlug: 'eth-sepolia',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
type: 'EVM',
|
|
12
|
+
evmChainId: '1',
|
|
13
|
+
internalId: 'ETHEREUM',
|
|
14
|
+
zerionId: 'ethereum',
|
|
15
|
+
name: 'Ethereum',
|
|
16
|
+
alchemySlug: 'eth-mainnet',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'EVM',
|
|
20
|
+
evmChainId: '137',
|
|
21
|
+
internalId: 'POLYGON',
|
|
22
|
+
zerionId: 'polygon',
|
|
23
|
+
name: 'Polygon',
|
|
24
|
+
alchemySlug: 'polygon-mainnet',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'EVM',
|
|
28
|
+
evmChainId: '42220',
|
|
29
|
+
internalId: 'CELO',
|
|
30
|
+
zerionId: 'celo',
|
|
31
|
+
name: 'Celo',
|
|
32
|
+
alchemySlug: 'celo-mainnet',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: 'EVM',
|
|
36
|
+
evmChainId: '8453',
|
|
37
|
+
internalId: 'BASE',
|
|
38
|
+
zerionId: 'base',
|
|
39
|
+
name: 'Base',
|
|
40
|
+
alchemySlug: 'base-mainnet',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
type: 'EVM',
|
|
44
|
+
evmChainId: '42161',
|
|
45
|
+
internalId: 'ARBITRUM',
|
|
46
|
+
zerionId: 'arbitrum',
|
|
47
|
+
name: 'Arbitrum',
|
|
48
|
+
alchemySlug: 'arb-mainnet',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: 'EVM',
|
|
52
|
+
evmChainId: '10',
|
|
53
|
+
internalId: 'OPTIMISM',
|
|
54
|
+
zerionId: 'optimism',
|
|
55
|
+
name: 'Optimism',
|
|
56
|
+
alchemySlug: 'opt-mainnet',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'EVM',
|
|
60
|
+
evmChainId: '80094',
|
|
61
|
+
internalId: 'BERACHAIN',
|
|
62
|
+
zerionId: 'berachain',
|
|
63
|
+
name: 'Berachain',
|
|
64
|
+
alchemySlug: 'bera-mainnet',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'EVM',
|
|
68
|
+
zerionId: 'binance-smart-chain',
|
|
69
|
+
evmChainId: '56',
|
|
70
|
+
name: 'Binance Smart Chain',
|
|
71
|
+
alchemySlug: 'bsc-mainnet',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: 'EVM',
|
|
75
|
+
zerionId: 'tron',
|
|
76
|
+
evmChainId: '728126428',
|
|
77
|
+
name: 'Tron',
|
|
78
|
+
alchemySlug: 'tron-mainnet',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'EVM',
|
|
82
|
+
zerionId: 'blast',
|
|
83
|
+
evmChainId: '81457',
|
|
84
|
+
name: 'Blast',
|
|
85
|
+
alchemySlug: 'blast-mainnet',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'EVM',
|
|
89
|
+
zerionId: 'ape',
|
|
90
|
+
evmChainId: '33139',
|
|
91
|
+
name: 'Ape',
|
|
92
|
+
alchemySlug: 'ape-mainnet',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'EVM',
|
|
96
|
+
zerionId: 'cronos-zkevm',
|
|
97
|
+
evmChainId: '388',
|
|
98
|
+
name: 'Cronos ZK-EVM',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'EVM',
|
|
102
|
+
zerionId: '0g',
|
|
103
|
+
evmChainId: '16661',
|
|
104
|
+
name: 'Harmony',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'EVM',
|
|
108
|
+
zerionId: 'opbnb',
|
|
109
|
+
evmChainId: '204',
|
|
110
|
+
alchemySlug: 'opbnb-mainnet',
|
|
111
|
+
name: 'Optimism Nova',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'EVM',
|
|
115
|
+
zerionId: 'abstract',
|
|
116
|
+
evmChainId: '2741',
|
|
117
|
+
alchemySlug: 'abstract-mainnet',
|
|
118
|
+
name: 'Abstract',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'EVM',
|
|
122
|
+
zerionId: 'avalanche',
|
|
123
|
+
evmChainId: '43114',
|
|
124
|
+
alchemySlug: 'avax-mainnet',
|
|
125
|
+
name: 'Avalanche',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'EVM',
|
|
129
|
+
zerionId: 'zksync-era',
|
|
130
|
+
evmChainId: '324',
|
|
131
|
+
alchemySlug: 'zksync-mainnet',
|
|
132
|
+
name: 'ZKSync Era',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'EVM',
|
|
136
|
+
zerionId: 'mantle',
|
|
137
|
+
evmChainId: '5000',
|
|
138
|
+
alchemySlug: 'mantle-mainnet',
|
|
139
|
+
name: 'Mantle',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'EVM',
|
|
143
|
+
zerionId: 'bob',
|
|
144
|
+
evmChainId: '60808',
|
|
145
|
+
alchemySlug: 'bob-mainnet',
|
|
146
|
+
name: 'Bob',
|
|
147
|
+
},
|
|
148
|
+
{ type: 'EVM', zerionId: 'cyber', evmChainId: '7560' },
|
|
149
|
+
{
|
|
150
|
+
type: 'EVM',
|
|
151
|
+
zerionId: 'degen',
|
|
152
|
+
evmChainId: '666666666',
|
|
153
|
+
alchemySlug: 'degen-mainnet',
|
|
154
|
+
name: 'Degen',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'EVM',
|
|
158
|
+
zerionId: 'manta-pacific',
|
|
159
|
+
evmChainId: '169',
|
|
160
|
+
name: 'Manta Pacific',
|
|
161
|
+
},
|
|
162
|
+
{ type: 'EVM', zerionId: 'fantom', evmChainId: '250', name: 'Fantom' },
|
|
163
|
+
{
|
|
164
|
+
type: 'EVM',
|
|
165
|
+
zerionId: 'ronin',
|
|
166
|
+
evmChainId: '2020',
|
|
167
|
+
alchemySlug: 'ronin-mainnet',
|
|
168
|
+
name: 'Ronin',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'EVM',
|
|
172
|
+
zerionId: 'linea',
|
|
173
|
+
evmChainId: '59144',
|
|
174
|
+
alchemySlug: 'linea-mainnet',
|
|
175
|
+
name: 'Linea',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'EVM',
|
|
179
|
+
zerionId: 'metis-andromeda',
|
|
180
|
+
evmChainId: '1088',
|
|
181
|
+
alchemySlug: 'metis-mainnet',
|
|
182
|
+
name: 'Metis Andromeda',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'EVM',
|
|
186
|
+
zerionId: 'aurora',
|
|
187
|
+
evmChainId: '1313161554',
|
|
188
|
+
name: 'Aurora',
|
|
189
|
+
},
|
|
190
|
+
{ type: 'EVM', zerionId: 'xinfin-xdc', evmChainId: '50' },
|
|
191
|
+
{
|
|
192
|
+
type: 'EVM',
|
|
193
|
+
zerionId: 'fraxtal',
|
|
194
|
+
evmChainId: '252',
|
|
195
|
+
alchemySlug: 'frax-mainnet',
|
|
196
|
+
name: 'Frax',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'EVM',
|
|
200
|
+
zerionId: 'gravity-alpha',
|
|
201
|
+
evmChainId: '1625',
|
|
202
|
+
name: 'Gravity Alpha',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'EVM',
|
|
206
|
+
zerionId: 'hyperevm',
|
|
207
|
+
evmChainId: '999',
|
|
208
|
+
alchemySlug: 'hyperliquid-mainnet',
|
|
209
|
+
name: 'Hyperliquid',
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
type: 'EVM',
|
|
213
|
+
zerionId: 'ink',
|
|
214
|
+
evmChainId: '57073',
|
|
215
|
+
alchemySlug: 'ink-mainnet',
|
|
216
|
+
name: 'Ink',
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
type: 'EVM',
|
|
220
|
+
zerionId: 'lens',
|
|
221
|
+
evmChainId: '232',
|
|
222
|
+
alchemySlug: 'lens-mainnet',
|
|
223
|
+
name: 'Lens',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
type: 'EVM',
|
|
227
|
+
zerionId: 'lisk',
|
|
228
|
+
evmChainId: '1135',
|
|
229
|
+
name: 'Lisk',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
type: 'EVM',
|
|
233
|
+
zerionId: 'mode',
|
|
234
|
+
evmChainId: '34443',
|
|
235
|
+
alchemySlug: 'mode-mainnet',
|
|
236
|
+
name: 'Mode',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
type: 'EVM',
|
|
240
|
+
zerionId: 'plasma',
|
|
241
|
+
evmChainId: '9745',
|
|
242
|
+
alchemySlug: 'plasma-mainnet',
|
|
243
|
+
name: 'Plasma',
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: 'EVM',
|
|
247
|
+
zerionId: 'polygon-zkevm',
|
|
248
|
+
evmChainId: '1101',
|
|
249
|
+
alchemySlug: 'polygonzkevm-mainnet',
|
|
250
|
+
name: 'Polygon ZK-EVM',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
type: 'EVM',
|
|
254
|
+
zerionId: 'polynomial',
|
|
255
|
+
evmChainId: '8008',
|
|
256
|
+
name: 'Polynomial',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
type: 'EVM',
|
|
260
|
+
zerionId: 'rari',
|
|
261
|
+
evmChainId: '1380012617',
|
|
262
|
+
name: 'Rari',
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
type: 'EVM',
|
|
266
|
+
zerionId: 'redstone',
|
|
267
|
+
evmChainId: '690',
|
|
268
|
+
name: 'Redstone',
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
type: 'EVM',
|
|
272
|
+
zerionId: 'scroll',
|
|
273
|
+
evmChainId: '534352',
|
|
274
|
+
alchemySlug: 'scroll-mainnet',
|
|
275
|
+
name: 'Scroll',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: 'EVM',
|
|
279
|
+
zerionId: 'sei',
|
|
280
|
+
evmChainId: '1329',
|
|
281
|
+
alchemySlug: 'sei-mainnet',
|
|
282
|
+
name: 'Sei',
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
type: 'EVM',
|
|
286
|
+
zerionId: 'somnia',
|
|
287
|
+
evmChainId: '5031',
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
type: 'EVM',
|
|
291
|
+
zerionId: 'soneium',
|
|
292
|
+
evmChainId: '1868',
|
|
293
|
+
alchemySlug: 'soneium-mainnet',
|
|
294
|
+
name: 'Soneium',
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
type: 'EVM',
|
|
298
|
+
zerionId: 'sonic',
|
|
299
|
+
evmChainId: '146',
|
|
300
|
+
alchemySlug: 'sonic-mainnet',
|
|
301
|
+
name: 'Sonic',
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
type: 'EVM',
|
|
305
|
+
zerionId: 'swellchain',
|
|
306
|
+
evmChainId: '1923',
|
|
307
|
+
name: 'Swellchain',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
type: 'EVM',
|
|
311
|
+
zerionId: 'taiko',
|
|
312
|
+
evmChainId: '167000',
|
|
313
|
+
alchemySlug: 'taiko-mainnet',
|
|
314
|
+
name: 'Taiko',
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
type: 'EVM',
|
|
318
|
+
zerionId: 'unichain',
|
|
319
|
+
evmChainId: '130',
|
|
320
|
+
alchemySlug: 'uni-mainnet',
|
|
321
|
+
name: 'Unichain',
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
type: 'EVM',
|
|
325
|
+
zerionId: 'wonder',
|
|
326
|
+
evmChainId: '9637',
|
|
327
|
+
name: 'Wonder',
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
type: 'EVM',
|
|
331
|
+
zerionId: 'tomochain',
|
|
332
|
+
evmChainId: '88',
|
|
333
|
+
name: 'Tomochain',
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
type: 'EVM',
|
|
337
|
+
zerionId: 'world',
|
|
338
|
+
evmChainId: '480',
|
|
339
|
+
alchemySlug: 'world-mainnet',
|
|
340
|
+
name: 'Worldchain',
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
type: 'EVM',
|
|
344
|
+
zerionId: 'zero',
|
|
345
|
+
evmChainId: '543210',
|
|
346
|
+
name: 'Zero',
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
type: 'EVM',
|
|
350
|
+
zerionId: 'okbchain',
|
|
351
|
+
evmChainId: '196',
|
|
352
|
+
name: 'OKBChain',
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
type: 'EVM',
|
|
356
|
+
zerionId: 'zkcandy',
|
|
357
|
+
evmChainId: '320',
|
|
358
|
+
name: 'ZKCandy',
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
type: 'EVM',
|
|
362
|
+
zerionId: 'zklink-nova',
|
|
363
|
+
evmChainId: '810180',
|
|
364
|
+
name: 'ZKLink Nova',
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
type: 'EVM',
|
|
368
|
+
zerionId: 'zora',
|
|
369
|
+
evmChainId: '7777777',
|
|
370
|
+
alchemySlug: 'zora-mainnet',
|
|
371
|
+
name: 'Zora',
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
type: 'EVM',
|
|
375
|
+
zerionId: 're-al',
|
|
376
|
+
evmChainId: '111188',
|
|
377
|
+
name: 'Re-Al',
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
type: 'EVM',
|
|
381
|
+
zerionId: 'katana',
|
|
382
|
+
evmChainId: '747474',
|
|
383
|
+
name: 'Katana',
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
type: 'EVM',
|
|
387
|
+
zerionId: 'monad-test-v2',
|
|
388
|
+
evmChainId: '10143',
|
|
389
|
+
name: 'Monad Testnet',
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
type: 'EVM',
|
|
393
|
+
zerionId: 'unichain-sepolia',
|
|
394
|
+
evmChainId: '1301',
|
|
395
|
+
name: 'Unichain Sepolia',
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
type: 'EVM',
|
|
399
|
+
zerionId: 'zero-sepolia-v2',
|
|
400
|
+
evmChainId: '43210',
|
|
401
|
+
name: 'Zero Sepolia V2',
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
type: 'SOLANA',
|
|
405
|
+
internalId: 'SOLANA',
|
|
406
|
+
zerionId: 'solana',
|
|
407
|
+
alchemySlug: 'solana-mainnet',
|
|
408
|
+
name: 'Solana',
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
type: 'SOLANA',
|
|
412
|
+
internalId: 'SOLANA_DEVNET',
|
|
413
|
+
alchemySlug: 'solana-devnet',
|
|
414
|
+
logoUrl: 'https://cdn.zerion.io/11111111111111111111111111111111.png',
|
|
415
|
+
explorer: {
|
|
416
|
+
name: 'Solana Explorer',
|
|
417
|
+
url: 'https://explorer.solana.com/?cluster=devnet',
|
|
418
|
+
txUrlFormat: 'https://explorer.solana.com/tx/{HASH}?cluster=devnet',
|
|
419
|
+
},
|
|
420
|
+
name: 'Solana Devnet',
|
|
421
|
+
},
|
|
422
|
+
{ type: 'COSMOS', internalId: 'COSMOS', name: 'Cosmos' },
|
|
13
423
|
];
|
|
14
424
|
export function getChainId(network) {
|
|
15
425
|
return NETWORK_METADATA.find(({ internalId: n }) => n === network)?.evmChainId ?? undefined;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -120,7 +120,7 @@ export type AssetMetadata<Currency extends string = 'USD'> = {
|
|
|
120
120
|
*/
|
|
121
121
|
symbol: string;
|
|
122
122
|
/**
|
|
123
|
-
* The URL for the asset's icon logo.
|
|
123
|
+
* The URL for the asset's icon logo image.
|
|
124
124
|
*/
|
|
125
125
|
logoUrl?: string;
|
|
126
126
|
/**
|
|
@@ -150,10 +150,26 @@ export type NetworkMetadata = {
|
|
|
150
150
|
* The display name for the network.
|
|
151
151
|
*/
|
|
152
152
|
name?: string;
|
|
153
|
+
/**
|
|
154
|
+
* The URL for the network's logo image.
|
|
155
|
+
*/
|
|
156
|
+
logoUrl?: string;
|
|
153
157
|
/**
|
|
154
158
|
* The EVM chain ID for the network, if applicable.
|
|
155
159
|
*/
|
|
156
160
|
evmChainId?: `${number}`;
|
|
161
|
+
/**
|
|
162
|
+
* The RPC URL for the network.
|
|
163
|
+
*/
|
|
164
|
+
rpcUrl?: string;
|
|
165
|
+
/**
|
|
166
|
+
* Template Explorer URL for transactions with {HASH} placeholder.
|
|
167
|
+
*/
|
|
168
|
+
explorer?: BlockchainExplorer;
|
|
169
|
+
/**
|
|
170
|
+
* Whether the network is a testnet.
|
|
171
|
+
*/
|
|
172
|
+
isTestnet?: boolean;
|
|
157
173
|
};
|
|
158
174
|
type WithAssetMetadata = {
|
|
159
175
|
/**
|
|
@@ -225,6 +241,20 @@ export type ProfileBalance<Currency extends string = 'USD'> = WithAssetValue<Cur
|
|
|
225
241
|
*/
|
|
226
242
|
formattedValue: string;
|
|
227
243
|
};
|
|
244
|
+
export type BlockchainExplorer = {
|
|
245
|
+
/**
|
|
246
|
+
* The name of the blockchain explorer.
|
|
247
|
+
*/
|
|
248
|
+
name: string;
|
|
249
|
+
/**
|
|
250
|
+
* The homepage URL of the blockchain explorer.
|
|
251
|
+
*/
|
|
252
|
+
url: string;
|
|
253
|
+
/**
|
|
254
|
+
* An explorer URL template for broadcast transactions, using `{HASH}` as the placeholder for the transaction hash. Example: `https://etherscan.io/tx/{HASH}`
|
|
255
|
+
*/
|
|
256
|
+
txUrlFormat?: string;
|
|
257
|
+
};
|
|
228
258
|
export type CustomNetwork = Omit<NetworkMetadata, 'internalId' | 'zerionId' | 'evmChainId'> & {
|
|
229
259
|
/**
|
|
230
260
|
* The EVM chain ID for the network.
|
|
@@ -234,13 +264,17 @@ export type CustomNetwork = Omit<NetworkMetadata, 'internalId' | 'zerionId' | 'e
|
|
|
234
264
|
* The EVM RPC URL for the network.
|
|
235
265
|
*/
|
|
236
266
|
rpcUrl: string;
|
|
267
|
+
/**
|
|
268
|
+
* An explorer URL template for broadcast transactions, using `{HASH}` as the placeholder for the transaction hash. Example: `https://etherscan.io/tx/{HASH}`
|
|
269
|
+
*/
|
|
270
|
+
explorer?: string;
|
|
237
271
|
};
|
|
238
272
|
export type NativeImplementation = {
|
|
239
273
|
contractAddress?: undefined;
|
|
240
274
|
/**
|
|
241
275
|
* The custom network definition.
|
|
242
276
|
*/
|
|
243
|
-
network: CustomNetwork;
|
|
277
|
+
network: TNetwork | CustomNetwork;
|
|
244
278
|
};
|
|
245
279
|
export type NonNativeImplementation = Required<WithContractAddress> & {
|
|
246
280
|
/**
|
|
@@ -265,6 +299,7 @@ export type CustomAsset<Currency extends string = 'USD'> = Omit<AssetMetadata<Cu
|
|
|
265
299
|
price?: AssetValue<Currency>;
|
|
266
300
|
};
|
|
267
301
|
export type BalanceDisplayType = 'AGGREGATED' | 'CUSTOM_TOKEN';
|
|
302
|
+
export type BalancesRequestType = 'MAINNET' | 'TESTNET' | 'MAINNET_AND_TESTNET';
|
|
268
303
|
export type BalancesConfig<Currency extends string = 'USD'> = {
|
|
269
304
|
/**
|
|
270
305
|
* The type of balance data to display.
|
|
@@ -273,6 +308,14 @@ export type BalancesConfig<Currency extends string = 'USD'> = {
|
|
|
273
308
|
* - `'CUSTOM_ASSET'` will display only the quantities of the asset you specify, without any currency conversion.
|
|
274
309
|
*/
|
|
275
310
|
displayType: 'AGGREGATED' | 'CUSTOM_ASSET';
|
|
311
|
+
/**
|
|
312
|
+
* The type of assets to include in the balance calculation. Defaults to 'MAINNET'.
|
|
313
|
+
*
|
|
314
|
+
* - `'MAINNET'` will include all available mainnet assets only.
|
|
315
|
+
* - `'TESTNET'` will include all available testnet assets only. They will be treated as having zero fiat value.
|
|
316
|
+
* - `'MAINNET_AND_TESTNET'` will include both mainnet and testnet assets.
|
|
317
|
+
*/
|
|
318
|
+
requestType?: BalancesRequestType;
|
|
276
319
|
} & ({
|
|
277
320
|
displayType: 'AGGREGATED';
|
|
278
321
|
/**
|