@basedone/core 0.1.8 → 0.2.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.
Files changed (59) hide show
  1. package/dist/chunk-4GAKANLT.mjs +1987 -0
  2. package/dist/chunk-4UEJOM6W.mjs +1 -3
  3. package/dist/chunk-VBC6EQ7Q.mjs +235 -0
  4. package/dist/client-CgmiTuEX.d.mts +179 -0
  5. package/dist/client-CgmiTuEX.d.ts +179 -0
  6. package/dist/ecommerce.d.mts +3732 -0
  7. package/dist/ecommerce.d.ts +3732 -0
  8. package/dist/ecommerce.js +2031 -0
  9. package/dist/ecommerce.mjs +2 -0
  10. package/dist/index.d.mts +79 -4
  11. package/dist/index.d.ts +79 -4
  12. package/dist/index.js +3674 -331
  13. package/dist/index.mjs +107 -104
  14. package/dist/{meta-57AY44US.mjs → meta-JB5ITE27.mjs} +6 -14
  15. package/dist/{meta-RSZFFH63.mjs → meta-UOGUG3OW.mjs} +5 -11
  16. package/dist/{perpDexs-PBKWKKQU.mjs → perpDexs-3LRJ5ZHM.mjs} +100 -13
  17. package/dist/{perpDexs-XSB4Y2BP.mjs → perpDexs-4ISLD7NX.mjs} +798 -121
  18. package/dist/react.d.mts +39 -0
  19. package/dist/react.d.ts +39 -0
  20. package/dist/react.js +268 -0
  21. package/dist/react.mjs +31 -0
  22. package/dist/{spotMeta-WQ4PXRNY.mjs → spotMeta-GHXX7C5M.mjs} +85 -14
  23. package/dist/{spotMeta-Y7G2GI7B.mjs → spotMeta-IBBUP2SG.mjs} +249 -12
  24. package/dist/staticMeta-GM7T3OYL.mjs +3 -6
  25. package/dist/staticMeta-QV2KMX57.mjs +3 -6
  26. package/ecommerce.ts +15 -0
  27. package/index.ts +7 -0
  28. package/lib/cloid/cloid.ts +2 -0
  29. package/lib/ecommerce/QUICK_REFERENCE.md +211 -0
  30. package/lib/ecommerce/README.md +385 -0
  31. package/lib/ecommerce/USAGE_EXAMPLES.md +704 -0
  32. package/lib/ecommerce/client/base.ts +272 -0
  33. package/lib/ecommerce/client/customer.ts +522 -0
  34. package/lib/ecommerce/client/merchant.ts +1341 -0
  35. package/lib/ecommerce/index.ts +51 -0
  36. package/lib/ecommerce/types/entities.ts +722 -0
  37. package/lib/ecommerce/types/enums.ts +270 -0
  38. package/lib/ecommerce/types/index.ts +18 -0
  39. package/lib/ecommerce/types/requests.ts +525 -0
  40. package/lib/ecommerce/types/responses.ts +805 -0
  41. package/lib/ecommerce/utils/errors.ts +113 -0
  42. package/lib/ecommerce/utils/helpers.ts +131 -0
  43. package/lib/fee.ts +10 -10
  44. package/lib/hip3/market-info.ts +36 -8
  45. package/lib/hip3/utils.ts +15 -2
  46. package/lib/instrument/client.ts +351 -0
  47. package/lib/meta/data/mainnet/meta.json +2 -4
  48. package/lib/meta/data/mainnet/perpDexs.json +97 -9
  49. package/lib/meta/data/mainnet/spotMeta.json +82 -8
  50. package/lib/meta/data/testnet/meta.json +3 -7
  51. package/lib/meta/data/testnet/perpDexs.json +795 -117
  52. package/lib/meta/data/testnet/spotMeta.json +246 -6
  53. package/lib/meta/metadata.ts +8 -1
  54. package/lib/meta/types.ts +36 -0
  55. package/lib/react/InstrumentProvider.tsx +69 -0
  56. package/lib/utils/flooredDateTime.ts +55 -0
  57. package/lib/utils/time.ts +51 -0
  58. package/package.json +37 -11
  59. package/react.ts +1 -0
@@ -0,0 +1,351 @@
1
+ import { SpotMeta, SpotToken } from "@nktkas/hyperliquid";
2
+ import { AllPerpsMeta, PerpsMeta } from "../hip3/market-info";
3
+
4
+ export interface BaseInstrument {
5
+ assetId: number;
6
+ symbol: string; // Display name (e.g., "BTC/USDC" for spot, "BTC" for perps)
7
+ coin: string; // Internal name used by Hyperliquid API (e.g., "@107" for spot, "BTC" for perps)
8
+ szDecimals: number; // Size decimals for formatting
9
+ type: "spot" | "futures";
10
+ isDelisted?: boolean;
11
+ }
12
+
13
+ // Futures-specific types (metadata only - no asset context data)
14
+ export interface PerpsInstrument extends BaseInstrument {
15
+ type: "futures";
16
+ leverage: number;
17
+ collateralTokenSymbol: string;
18
+ dex?: string; // HIP3 dex name (e.g., "xyz" for "xyz:MSTR")
19
+ collateralTokenIndex?: number;
20
+ }
21
+
22
+ // Spot-specific types (metadata only - no asset context data)
23
+ export interface SpotInstrument extends BaseInstrument {
24
+ type: "spot";
25
+ baseToken: SpotToken;
26
+ quoteToken: SpotToken;
27
+ }
28
+
29
+ export type MarketInstrument = PerpsInstrument | SpotInstrument;
30
+
31
+ /**
32
+ * Asset ID calculation utilities
33
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/asset-ids
34
+ */
35
+ export const AssetIdUtils = {
36
+ /**
37
+ * Calculate perp asset ID
38
+ * - Root dex: assetIndex (0, 1, 2, ...)
39
+ * - HIP3 dex: 100000 + dexIndex * 10000 + assetIndex
40
+ */
41
+ calcPerpAssetId(dexIndex: number, assetIndex: number): number {
42
+ if (dexIndex === 0) return assetIndex;
43
+ return 100000 + dexIndex * 10000 + assetIndex;
44
+ },
45
+
46
+ /**
47
+ * Calculate spot asset ID: 10000 + pairIndex
48
+ */
49
+ calcSpotAssetId(pairIndex: number): number {
50
+ return 10000 + pairIndex;
51
+ },
52
+
53
+ /**
54
+ * Check if symbol is HIP3 format (contains ":")
55
+ */
56
+ isHip3Symbol(symbol: string): boolean {
57
+ return symbol?.includes(":") ?? false;
58
+ },
59
+
60
+ /**
61
+ * Extract dex name from HIP3 symbol (e.g., "xyz:MSTR" -> "xyz")
62
+ */
63
+ extractDexName(symbol: string): string | undefined {
64
+ if (!this.isHip3Symbol(symbol)) return undefined;
65
+ return symbol.split(":")[0];
66
+ },
67
+ };
68
+
69
+ /**
70
+ * Hyperliquid Instrument Client
71
+ *
72
+ * Processes spotMeta and allPerpsMeta into a unified instrument registry
73
+ * with O(1) lookups by symbol, coin, or assetId.
74
+ *
75
+ * Usage:
76
+ * ```ts
77
+ * const client = new InstrumentClient(spotMeta, allPerpsMeta).init();
78
+ * const btc = client.getInstrument("BTC");
79
+ * const spot = client.getInstrumentByAssetId(10001);
80
+ * ```
81
+ */
82
+ export class InstrumentClient {
83
+ private instruments: MarketInstrument[] = [];
84
+
85
+ // O(1) lookup maps for efficient retrieval
86
+ private instrumentsBySymbol = new Map<string, MarketInstrument>();
87
+ private instrumentsByCoin = new Map<string, MarketInstrument>();
88
+ private instrumentsByAssetId = new Map<number, MarketInstrument>();
89
+
90
+ // Additional spot lookups (base token -> instrument)
91
+ private spotByBaseToken = new Map<string, SpotInstrument>();
92
+
93
+ // Dex metadata map (dex name -> PerpsMeta)
94
+ // Key: "" for root dex, dex name for HIP3 (e.g., "xyz")
95
+ private dexMetaMap = new Map<string, PerpsMeta>();
96
+
97
+ // Token index lookup for spot
98
+ private spotTokensByIndex = new Map<number, SpotToken>();
99
+
100
+ constructor(
101
+ public spotMeta: SpotMeta,
102
+ public allPerpsMeta: AllPerpsMeta,
103
+ ) {}
104
+
105
+ /**
106
+ * Initialize the client by processing meta into instruments.
107
+ * Call this after construction to populate the instrument registry.
108
+ * @returns this for chaining
109
+ */
110
+ init(): this {
111
+ if (!this.spotMeta || !this.allPerpsMeta) {
112
+ throw new Error("SpotMeta and allPerpsMeta are required");
113
+ }
114
+ // Pre-index spot tokens for O(1) lookup
115
+ this.indexSpotTokens();
116
+
117
+ // Process instruments
118
+ this.processPerpsInstruments();
119
+ this.processSpotInstruments();
120
+
121
+ return this;
122
+ }
123
+
124
+ // ===== Perps Meta Accessors =====
125
+
126
+ getAllPerpsMeta(): AllPerpsMeta {
127
+ return this.allPerpsMeta;
128
+ }
129
+
130
+ /**
131
+ * Get PerpsMeta for a specific dex
132
+ * @param dex - Dex name ("" for root dex, or HIP3 dex name)
133
+ */
134
+ getPerpDex(dex: string): PerpsMeta | undefined {
135
+ return this.dexMetaMap.get(dex);
136
+ }
137
+
138
+ /**
139
+ * Get PerpsMeta by dex index in allPerpsMeta array
140
+ */
141
+ getPerpDexByIndex(index: number): PerpsMeta | undefined {
142
+ return this.allPerpsMeta[index];
143
+ }
144
+
145
+ // ===== Instrument Accessors =====
146
+
147
+ /**
148
+ * Get all instruments
149
+ */
150
+ getAllInstruments(): MarketInstrument[] {
151
+ return this.instruments;
152
+ }
153
+
154
+ /**
155
+ * Get all perps instruments
156
+ */
157
+ getPerpsInstruments(): PerpsInstrument[] {
158
+ return this.instruments.filter(
159
+ (i): i is PerpsInstrument => i.type === "futures",
160
+ );
161
+ }
162
+
163
+ getHip3Instruments(): PerpsInstrument[] {
164
+ return this.instruments.filter(
165
+ (i): i is PerpsInstrument => i.type === "futures" && !!i.dex,
166
+ );
167
+ }
168
+
169
+ /**
170
+ * Get all spot instruments
171
+ */
172
+ getSpotInstruments(): SpotInstrument[] {
173
+ return this.instruments.filter(
174
+ (i): i is SpotInstrument => i.type === "spot",
175
+ );
176
+ }
177
+
178
+ /**
179
+ * Get instrument by symbol or coin (tries both)
180
+ * @param coinOrSymbol - Symbol (e.g., "BTC", "BTC/USDC") or coin (e.g., "@107")
181
+ */
182
+ getInstrument(coinOrSymbol: string): MarketInstrument | undefined {
183
+ return (
184
+ this.instrumentsByCoin.get(coinOrSymbol) ??
185
+ this.instrumentsBySymbol.get(coinOrSymbol)
186
+ );
187
+ }
188
+
189
+ /**
190
+ * Get instrument by display symbol
191
+ * @param symbol - Display symbol (e.g., "BTC", "BTC/USDC", "xyz:MSTR")
192
+ */
193
+ getInstrumentBySymbol(symbol: string): MarketInstrument | undefined {
194
+ return this.instrumentsBySymbol.get(symbol);
195
+ }
196
+
197
+ /**
198
+ * Get instrument by Hyperliquid API coin format
199
+ * @param coin - API coin name (e.g., "BTC", "@107", "xyz:MSTR")
200
+ */
201
+ getInstrumentByCoin(coin: string): MarketInstrument | undefined {
202
+ return this.instrumentsByCoin.get(coin);
203
+ }
204
+
205
+ /**
206
+ * Get instrument by asset ID
207
+ * @param assetId - Numeric asset ID (e.g., 1 for perps, 10001 for spot)
208
+ */
209
+ getInstrumentByAssetId(assetId: number): MarketInstrument | undefined {
210
+ return this.instrumentsByAssetId.get(assetId);
211
+ }
212
+
213
+ /**
214
+ * Get spot instrument by base token symbol
215
+ * @param baseSymbol - Base token symbol (e.g., "HYPE" to find "HYPE/USDC")
216
+ */
217
+ getSpotInstrumentByBaseToken(baseSymbol: string): SpotInstrument | undefined {
218
+ return this.spotByBaseToken.get(baseSymbol);
219
+ }
220
+
221
+ /** Search instruments by symbol, coin, or assetId */
222
+ searchInstruments(
223
+ query: string,
224
+ type?: "spot" | "futures",
225
+ ): MarketInstrument[] {
226
+ return this.instruments.filter((i) => {
227
+ if (type && i.type !== type) return false;
228
+ return (
229
+ i.symbol.toLowerCase().includes(query.toLowerCase()) ||
230
+ i.coin.toLowerCase().includes(query.toLowerCase())
231
+ );
232
+ });
233
+ }
234
+
235
+ /**
236
+ * Get spot token by index
237
+ */
238
+ getSpotToken(index: number): SpotToken | undefined {
239
+ return this.spotTokensByIndex.get(index);
240
+ }
241
+
242
+ // ===== Internal Processing =====
243
+
244
+ private indexSpotTokens(): void {
245
+ for (const token of this.spotMeta.tokens) {
246
+ this.spotTokensByIndex.set(token.index, token);
247
+ }
248
+ }
249
+
250
+ private processPerpsInstruments(): void {
251
+ for (let dexIndex = 0; dexIndex < this.allPerpsMeta.length; dexIndex++) {
252
+ const perpMeta = this.allPerpsMeta[dexIndex];
253
+ const dexName = this.extractDexNameFromMeta(perpMeta, dexIndex);
254
+
255
+ // Store dex meta for later lookup
256
+ this.dexMetaMap.set(dexName, perpMeta);
257
+
258
+ // Get collateral token symbol for this dex
259
+ const collateralToken = this.spotTokensByIndex.get(
260
+ perpMeta.collateralToken,
261
+ );
262
+ const collateralTokenSymbol = collateralToken?.name ?? "USDC";
263
+
264
+ for (
265
+ let assetIndex = 0;
266
+ assetIndex < perpMeta.universe.length;
267
+ assetIndex++
268
+ ) {
269
+ const info = perpMeta.universe[assetIndex];
270
+ const assetId = AssetIdUtils.calcPerpAssetId(dexIndex, assetIndex);
271
+
272
+ const instrument: PerpsInstrument = {
273
+ assetId,
274
+ symbol: info.name,
275
+ coin: info.name,
276
+ szDecimals: info.szDecimals,
277
+ leverage: info.maxLeverage,
278
+ collateralTokenSymbol,
279
+ type: "futures",
280
+ isDelisted: info.isDelisted,
281
+ dex: AssetIdUtils.extractDexName(info.name),
282
+ collateralTokenIndex: perpMeta.collateralToken,
283
+ };
284
+
285
+ this.addInstrument(instrument);
286
+ }
287
+ }
288
+ }
289
+
290
+ private processSpotInstruments(): void {
291
+ const seenSymbols = new Set<string>();
292
+
293
+ for (const pair of this.spotMeta.universe) {
294
+ const [baseTokenIndex, quoteTokenIndex] = pair.tokens;
295
+
296
+ // O(1) token lookup using pre-indexed map
297
+ const baseToken = this.spotTokensByIndex.get(baseTokenIndex);
298
+ const quoteToken = this.spotTokensByIndex.get(quoteTokenIndex);
299
+
300
+ if (!baseToken || !quoteToken) continue;
301
+
302
+ const symbol = `${baseToken.name}/${quoteToken.name}`;
303
+
304
+ // Skip duplicate display symbols
305
+ if (seenSymbols.has(symbol)) continue;
306
+ seenSymbols.add(symbol);
307
+
308
+ const assetId = AssetIdUtils.calcSpotAssetId(pair.index);
309
+
310
+ const instrument: SpotInstrument = {
311
+ assetId,
312
+ symbol,
313
+ coin: pair.name, // e.g., "@107"
314
+ szDecimals: baseToken.szDecimals,
315
+ type: "spot",
316
+ baseToken,
317
+ quoteToken,
318
+ };
319
+
320
+ this.addInstrument(instrument);
321
+
322
+ // Index by base token for convenience lookups (first occurrence wins)
323
+ if (!this.spotByBaseToken.has(baseToken.name)) {
324
+ this.spotByBaseToken.set(baseToken.name, instrument);
325
+ }
326
+ }
327
+ }
328
+
329
+ private addInstrument(instrument: MarketInstrument): void {
330
+ this.instruments.push(instrument);
331
+ this.instrumentsBySymbol.set(instrument.symbol, instrument);
332
+ this.instrumentsByCoin.set(instrument.coin, instrument);
333
+ this.instrumentsByAssetId.set(instrument.assetId, instrument);
334
+ }
335
+
336
+ /**
337
+ * Extract dex name from PerpsMeta
338
+ * Root dex (index 0) returns "", HIP3 dexes return the dex name (e.g., "xyz")
339
+ */
340
+ private extractDexNameFromMeta(
341
+ perpMeta: PerpsMeta,
342
+ dexIndex: number,
343
+ ): string {
344
+ if (dexIndex === 0) return ""; // Root dex
345
+
346
+ const firstAsset = perpMeta.universe[0];
347
+ if (!firstAsset) return "";
348
+
349
+ return AssetIdUtils.extractDexName(firstAsset.name) ?? "";
350
+ }
351
+ }
@@ -1346,10 +1346,8 @@
1346
1346
  {
1347
1347
  "szDecimals": 0,
1348
1348
  "name": "MON",
1349
- "maxLeverage": 3,
1350
- "marginTableId": 3,
1351
- "onlyIsolated": true,
1352
- "marginMode": "strictIsolated"
1349
+ "maxLeverage": 5,
1350
+ "marginTableId": 5
1353
1351
  },
1354
1352
  {
1355
1353
  "szDecimals": 0,
@@ -5,7 +5,7 @@
5
5
  "fullName": "XYZ",
6
6
  "deployer": "0x88806a71d74ad0a510b350545c9ae490912f0888",
7
7
  "oracleUpdater": null,
8
- "feeRecipient": "0x79c0650064b10f73649b7b64c5ebf0b319606140",
8
+ "feeRecipient": "0x97f46f90c04efb91d0d740bd263e76683ca6f904",
9
9
  "assetToStreamingOiCap": [
10
10
  [
11
11
  "xyz:AAPL",
@@ -25,7 +25,7 @@
25
25
  ],
26
26
  [
27
27
  "xyz:GOOGL",
28
- "25000000.0"
28
+ "50000000.0"
29
29
  ],
30
30
  [
31
31
  "xyz:HOOD",
@@ -73,7 +73,8 @@
73
73
  ]
74
74
  ],
75
75
  "deployerFeeScale": "1.0",
76
- "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00"
76
+ "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00",
77
+ "assetToFundingMultiplier": []
77
78
  },
78
79
  {
79
80
  "name": "flx",
@@ -82,9 +83,13 @@
82
83
  "oracleUpdater": "0x94757f8dcb4bf73b850195660e959d1105cfedd5",
83
84
  "feeRecipient": "0xe2872b5ae7dcbba40cc4510d08c8bbea95b42d43",
84
85
  "assetToStreamingOiCap": [
86
+ [
87
+ "flx:COIN",
88
+ "2000000.0"
89
+ ],
85
90
  [
86
91
  "flx:CRCL",
87
- "1.0"
92
+ "2000000.0"
88
93
  ],
89
94
  [
90
95
  "flx:TSLA",
@@ -142,10 +147,42 @@
142
147
  "0xae083732032a813f9142733cdf380e1bc9e518af",
143
148
  "0xd0d4ef34424af3da883672b8cdeca751293655a5"
144
149
  ]
150
+ ],
151
+ [
152
+ "setMarginModes",
153
+ [
154
+ "0xd0d4ef34424af3da883672b8cdeca751293655a5"
155
+ ]
156
+ ],
157
+ [
158
+ "setFeeScale",
159
+ [
160
+ "0xd0d4ef34424af3da883672b8cdeca751293655a5"
161
+ ]
162
+ ],
163
+ [
164
+ "setGrowthModes",
165
+ [
166
+ "0xd0d4ef34424af3da883672b8cdeca751293655a5"
167
+ ]
145
168
  ]
146
169
  ],
147
170
  "deployerFeeScale": "1.0",
148
- "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00"
171
+ "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00",
172
+ "assetToFundingMultiplier": [
173
+ [
174
+ "flx:COIN",
175
+ "0.0396816138"
176
+ ],
177
+ [
178
+ "flx:CRCL",
179
+ "0.6849327969"
180
+ ],
181
+ [
182
+ "flx:TSLA",
183
+ "0.055534957"
184
+ ]
185
+ ]
149
186
  },
150
187
  {
151
188
  "name": "vntl",
@@ -154,13 +191,17 @@
154
191
  "oracleUpdater": null,
155
192
  "feeRecipient": "0x5afe865300895b96d20132a8d9fa8e7829334b52",
156
193
  "assetToStreamingOiCap": [
194
+ [
195
+ "vntl:ANTHROPIC",
196
+ "3000000.0"
197
+ ],
157
198
  [
158
199
  "vntl:OPENAI",
159
- "1000000.0"
200
+ "3000000.0"
160
201
  ],
161
202
  [
162
203
  "vntl:SPACEX",
163
- "1000000.0"
204
+ "3000000.0"
164
205
  ]
165
206
  ],
166
207
  "subDeployers": [
@@ -185,11 +226,58 @@
185
226
  [
186
227
  "setFundingMultipliers",
187
228
  [
188
- "0x6bdf4b47b638a8bb8ba630fbf867dc0f458d953e"
229
+ "0x6bdf4b47b638a8bb8ba630fbf867dc0f458d953e",
230
+ "0x9f82ce39734468c213f46834d0189222e1fadf5b"
231
+ ]
232
+ ]
233
+ ],
234
+ "deployerFeeScale": "1.0",
235
+ "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00",
236
+ "assetToFundingMultiplier": [
237
+ [
238
+ "vntl:ANTHROPIC",
239
+ "0.0053054031"
240
+ ],
241
+ [
242
+ "vntl:OPENAI",
243
+ "0.0050794237"
244
+ ],
245
+ [
246
+ "vntl:SPACEX",
247
+ "0.010663783"
248
+ ]
249
+ ]
250
+ },
251
+ {
252
+ "name": "hyna",
253
+ "fullName": "HyENA",
254
+ "deployer": "0x53e655101ea361537124ef814ad4e654b54d0637",
255
+ "oracleUpdater": "0xaab93501e78f5105e265a1eafda10ce6530de17e",
256
+ "feeRecipient": null,
257
+ "assetToStreamingOiCap": [
258
+ [
259
+ "hyna:BTC",
260
+ "500000.0"
261
+ ],
262
+ [
263
+ "hyna:ETH",
264
+ "500000.0"
265
+ ],
266
+ [
267
+ "hyna:HYPE",
268
+ "500000.0"
269
+ ]
270
+ ],
271
+ "subDeployers": [
272
+ [
273
+ "setOracle",
274
+ [
275
+ "0xaab93501e78f5105e265a1eafda10ce6530de17e"
189
276
  ]
190
277
  ]
191
278
  ],
192
279
  "deployerFeeScale": "1.0",
193
- "lastDeployerFeeScaleChangeTime": "1970-01-01T00:00:00"
280
+ "lastDeployerFeeScaleChangeTime": "2025-12-03T10:32:09.252520621",
281
+ "assetToFundingMultiplier": []
194
282
  }
195
283
  ]
@@ -2141,6 +2141,51 @@
2141
2141
  "name": "@253",
2142
2142
  "index": 253,
2143
2143
  "isCanonical": false
2144
+ },
2145
+ {
2146
+ "tokens": [
2147
+ 124,
2148
+ 360
2149
+ ],
2150
+ "name": "@254",
2151
+ "index": 254,
2152
+ "isCanonical": false
2153
+ },
2154
+ {
2155
+ "tokens": [
2156
+ 150,
2157
+ 235
2158
+ ],
2159
+ "name": "@255",
2160
+ "index": 255,
2161
+ "isCanonical": false
2162
+ },
2163
+ {
2164
+ "tokens": [
2165
+ 374,
2166
+ 0
2167
+ ],
2168
+ "name": "@256",
2169
+ "index": 256,
2170
+ "isCanonical": false
2171
+ },
2172
+ {
2173
+ "tokens": [
2174
+ 403,
2175
+ 0
2176
+ ],
2177
+ "name": "@257",
2178
+ "index": 257,
2179
+ "isCanonical": false
2180
+ },
2181
+ {
2182
+ "tokens": [
2183
+ 398,
2184
+ 0
2185
+ ],
2186
+ "name": "@258",
2187
+ "index": 258,
2188
+ "isCanonical": false
2144
2189
  }
2145
2190
  ],
2146
2191
  "tokens": [
@@ -2151,7 +2196,10 @@
2151
2196
  "index": 0,
2152
2197
  "tokenId": "0x6d1e7cde53ba9467b783cb7c530ce054",
2153
2198
  "isCanonical": true,
2154
- "evmContract": null,
2199
+ "evmContract": {
2200
+ "address": "0x6b9e773128f453f5c2c60935ee2de2cbc5390a24",
2201
+ "evm_extra_wei_decimals": -2
2202
+ },
2155
2203
  "fullName": null,
2156
2204
  "deployerTradingFeeShare": "0.0"
2157
2205
  },
@@ -3572,9 +3620,12 @@
3572
3620
  "index": 124,
3573
3621
  "tokenId": "0xbd31bd605c0a1b82c72aae3587f9061f",
3574
3622
  "isCanonical": false,
3575
- "evmContract": null,
3623
+ "evmContract": {
3624
+ "address": "0x000000000000780555bd0bca3791f89f9542c2d6",
3625
+ "evm_extra_wei_decimals": 10
3626
+ },
3576
3627
  "fullName": "Kinetiq",
3577
- "deployerTradingFeeShare": "0.0"
3628
+ "deployerTradingFeeShare": "1.0"
3578
3629
  },
3579
3630
  {
3580
3631
  "name": "BUSSY",
@@ -4066,7 +4117,7 @@
4066
4117
  "evm_extra_wei_decimals": 10
4067
4118
  },
4068
4119
  "fullName": null,
4069
- "deployerTradingFeeShare": "0.0"
4120
+ "deployerTradingFeeShare": "1.0"
4070
4121
  },
4071
4122
  {
4072
4123
  "name": "ANIME",
@@ -6562,7 +6613,10 @@
6562
6613
  "index": 374,
6563
6614
  "tokenId": "0x83a0bf54708a0236a49f7301677ffdc2",
6564
6615
  "isCanonical": false,
6565
- "evmContract": null,
6616
+ "evmContract": {
6617
+ "address": "0x4f96b683714377c38123631f2d17cdf18b3f46a7",
6618
+ "evm_extra_wei_decimals": 10
6619
+ },
6566
6620
  "fullName": "SEDA",
6567
6621
  "deployerTradingFeeShare": "1.0"
6568
6622
  },
@@ -6639,7 +6693,10 @@
6639
6693
  "index": 381,
6640
6694
  "tokenId": "0xbd6af8c18f3e56d2da95a3c81d18e814",
6641
6695
  "isCanonical": false,
6642
- "evmContract": null,
6696
+ "evmContract": {
6697
+ "address": "0x99603f5cb890faca5cc5495ccc74391cdffa28bc",
6698
+ "evm_extra_wei_decimals": 10
6699
+ },
6643
6700
  "fullName": "Funnel BNB",
6644
6701
  "deployerTradingFeeShare": "1.0"
6645
6702
  },
@@ -6802,7 +6859,10 @@
6802
6859
  "index": 395,
6803
6860
  "tokenId": "0xedfb8d993ee8cb935338601d8673dfcf",
6804
6861
  "isCanonical": false,
6805
- "evmContract": null,
6862
+ "evmContract": {
6863
+ "address": "0x3073f7aaa4db83f95e9fff17424f71d4751a3073",
6864
+ "evm_extra_wei_decimals": 0
6865
+ },
6806
6866
  "fullName": null,
6807
6867
  "deployerTradingFeeShare": "1.0"
6808
6868
  },
@@ -6835,7 +6895,10 @@
6835
6895
  "index": 398,
6836
6896
  "tokenId": "0xec43194f64d555bdaef5afb5b6c6c686",
6837
6897
  "isCanonical": false,
6838
- "evmContract": null,
6898
+ "evmContract": {
6899
+ "address": "0xa51dc81944a15623874981181a99d6c56b20ed56",
6900
+ "evm_extra_wei_decimals": 11
6901
+ },
6839
6902
  "fullName": "Stable",
6840
6903
  "deployerTradingFeeShare": "1.0"
6841
6904
  },
@@ -6882,6 +6945,17 @@
6882
6945
  "evmContract": null,
6883
6946
  "fullName": "UltraSolid",
6884
6947
  "deployerTradingFeeShare": "1.0"
6948
+ },
6949
+ {
6950
+ "name": "UMEGA",
6951
+ "szDecimals": 1,
6952
+ "weiDecimals": 6,
6953
+ "index": 403,
6954
+ "tokenId": "0xc99926509a189b40651055a15d3be621",
6955
+ "isCanonical": false,
6956
+ "evmContract": null,
6957
+ "fullName": "Unit MegaETH",
6958
+ "deployerTradingFeeShare": "1.0"
6885
6959
  }
6886
6960
  ]
6887
6961
  }
@@ -505,9 +505,7 @@
505
505
  "szDecimals": 0,
506
506
  "name": "WIF",
507
507
  "maxLeverage": 5,
508
- "marginTableId": 5,
509
- "onlyIsolated": true,
510
- "marginMode": "strictIsolated"
508
+ "marginTableId": 5
511
509
  },
512
510
  {
513
511
  "szDecimals": 1,
@@ -1240,10 +1238,8 @@
1240
1238
  {
1241
1239
  "szDecimals": 0,
1242
1240
  "name": "MON",
1243
- "maxLeverage": 3,
1244
- "marginTableId": 3,
1245
- "onlyIsolated": true,
1246
- "marginMode": "strictIsolated"
1241
+ "maxLeverage": 5,
1242
+ "marginTableId": 5
1247
1243
  },
1248
1244
  {
1249
1245
  "szDecimals": 0,