@hypermid/sdk 1.2.0 → 2.0.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 (76) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/chain-registry.js +519 -0
  3. package/dist/cjs/chain-registry.js.map +1 -0
  4. package/dist/cjs/chains.js +102 -0
  5. package/dist/cjs/chains.js.map +1 -0
  6. package/dist/cjs/client.js +481 -0
  7. package/dist/cjs/client.js.map +1 -0
  8. package/dist/cjs/errors.js +62 -0
  9. package/dist/cjs/errors.js.map +1 -0
  10. package/dist/cjs/execution.js +354 -0
  11. package/dist/cjs/execution.js.map +1 -0
  12. package/dist/cjs/helpers.js +109 -0
  13. package/dist/cjs/helpers.js.map +1 -0
  14. package/dist/cjs/index.js +51 -0
  15. package/dist/cjs/index.js.map +1 -0
  16. package/dist/cjs/package.json +1 -0
  17. package/dist/cjs/types.js +4 -0
  18. package/dist/cjs/types.js.map +1 -0
  19. package/dist/cjs/webhook-verify.js +112 -0
  20. package/dist/cjs/webhook-verify.js.map +1 -0
  21. package/dist/esm/chain-registry.d.ts.map +1 -0
  22. package/dist/esm/chain-registry.js.map +1 -0
  23. package/dist/esm/chains.d.ts.map +1 -0
  24. package/dist/esm/chains.js.map +1 -0
  25. package/dist/{client.d.ts → esm/client.d.ts} +3 -3
  26. package/dist/esm/client.d.ts.map +1 -0
  27. package/dist/{client.js → esm/client.js} +6 -6
  28. package/dist/esm/client.js.map +1 -0
  29. package/dist/{errors.d.ts → esm/errors.d.ts} +4 -4
  30. package/dist/esm/errors.d.ts.map +1 -0
  31. package/dist/{errors.js → esm/errors.js} +7 -7
  32. package/dist/esm/errors.js.map +1 -0
  33. package/dist/{execution.d.ts → esm/execution.d.ts} +7 -7
  34. package/dist/esm/execution.d.ts.map +1 -0
  35. package/dist/{execution.js → esm/execution.js} +2 -2
  36. package/dist/esm/execution.js.map +1 -0
  37. package/dist/{helpers.d.ts → esm/helpers.d.ts} +1 -1
  38. package/dist/esm/helpers.d.ts.map +1 -0
  39. package/dist/{helpers.js → esm/helpers.js} +1 -1
  40. package/dist/esm/helpers.js.map +1 -0
  41. package/dist/{index.d.ts → esm/index.d.ts} +3 -3
  42. package/dist/esm/index.d.ts.map +1 -0
  43. package/dist/{index.js → esm/index.js} +2 -2
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/package.json +1 -0
  46. package/dist/{types.d.ts → esm/types.d.ts} +1 -1
  47. package/dist/esm/types.d.ts.map +1 -0
  48. package/dist/esm/types.js.map +1 -0
  49. package/dist/{webhook-verify.d.ts → esm/webhook-verify.d.ts} +1 -1
  50. package/dist/esm/webhook-verify.d.ts.map +1 -0
  51. package/dist/{webhook-verify.js → esm/webhook-verify.js} +1 -1
  52. package/dist/esm/webhook-verify.js.map +1 -0
  53. package/package.json +13 -10
  54. package/dist/chain-registry.d.ts.map +0 -1
  55. package/dist/chain-registry.js.map +0 -1
  56. package/dist/chains.d.ts.map +0 -1
  57. package/dist/chains.js.map +0 -1
  58. package/dist/client.d.ts.map +0 -1
  59. package/dist/client.js.map +0 -1
  60. package/dist/errors.d.ts.map +0 -1
  61. package/dist/errors.js.map +0 -1
  62. package/dist/execution.d.ts.map +0 -1
  63. package/dist/execution.js.map +0 -1
  64. package/dist/helpers.d.ts.map +0 -1
  65. package/dist/helpers.js.map +0 -1
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/types.d.ts.map +0 -1
  69. package/dist/types.js.map +0 -1
  70. package/dist/webhook-verify.d.ts.map +0 -1
  71. package/dist/webhook-verify.js.map +0 -1
  72. /package/dist/{chain-registry.d.ts → esm/chain-registry.d.ts} +0 -0
  73. /package/dist/{chain-registry.js → esm/chain-registry.js} +0 -0
  74. /package/dist/{chains.d.ts → esm/chains.d.ts} +0 -0
  75. /package/dist/{chains.js → esm/chains.js} +0 -0
  76. /package/dist/{types.js → esm/types.js} +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @hypermid/sdk
2
2
 
3
- TypeScript / JavaScript SDK for the [HyperMid](https://hypermid.io) Partner
3
+ TypeScript / JavaScript SDK for the [Hypermid](https://hypermid.io) Partner
4
4
  API — swap, bridge, and on-ramp across 90+ chains (EVM, Solana, Bitcoin,
5
5
  Sui, NEAR, Tron, TON, XRP, Doge).
6
6
 
@@ -15,13 +15,13 @@ default fee tier — pass an API key only if you're a partner with
15
15
  custom fee terms.
16
16
 
17
17
  ```ts
18
- import { HyperMid } from "@hypermid/sdk";
18
+ import { Hypermid } from "@hypermid/sdk";
19
19
 
20
20
  // Anonymous — works immediately, no signup
21
- const hm = new HyperMid();
21
+ const hm = new Hypermid();
22
22
 
23
23
  // Partner with custom fees / discounts
24
- const hm = new HyperMid({ apiKey: process.env.HYPERMID_API_KEY });
24
+ const hm = new Hypermid({ apiKey: process.env.HYPERMID_API_KEY });
25
25
 
26
26
  // 1. Quote
27
27
  const quote = await hm.getQuote({
@@ -0,0 +1,519 @@
1
+ "use strict";
2
+ /**
3
+ * Unified Hypermid Chain Registry
4
+ *
5
+ * Single source of truth for all chain definitions across the Hypermid platform.
6
+ * Maps Hypermid chain slugs to internal numeric IDs, LiFi chain IDs, and
7
+ * Near Intents blockchain strings.
8
+ *
9
+ * Design:
10
+ * - EVM chains keep their standard numeric chain IDs (1, 42161, 8453...)
11
+ * - Non-EVM chains use human-readable string slugs ("solana", "bitcoin", "near")
12
+ * - Both formats are always accepted via resolveChain()
13
+ * - Protocol routing (LiFi vs Near Intents) is handled internally
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { resolveChain, ChainSlug } from "@hypermid/sdk";
18
+ *
19
+ * // Resolve by slug or numeric ID — both work
20
+ * const eth = resolveChain("ethereum"); // { slug: "ethereum", numericId: 1, ... }
21
+ * const arb = resolveChain(42161); // { slug: "arbitrum", numericId: 42161, ... }
22
+ * const sol = resolveChain("solana"); // { slug: "solana", numericId: 1151111081099710, ... }
23
+ * ```
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.NI_CHAIN_BASE = exports.CHAIN_REGISTRY = void 0;
27
+ exports.resolveChain = resolveChain;
28
+ exports.toLifiChainId = toLifiChainId;
29
+ exports.toNIBlockchain = toNIBlockchain;
30
+ exports.toNumericId = toNumericId;
31
+ exports.isNIOnlyChain = isNIOnlyChain;
32
+ exports.supportsWalletDeposit = supportsWalletDeposit;
33
+ exports.getDryQuotePlaceholder = getDryQuotePlaceholder;
34
+ exports.getAllChains = getAllChains;
35
+ exports.getChainsByProvider = getChainsByProvider;
36
+ // ─── Constants ─────────────────────────────────────────────────────────────
37
+ const NI_BASE = 900_000_000;
38
+ const EVM_PLACEHOLDER = "0x0000000000000000000000000000000000000001";
39
+ // ─── Chain Registry ────────────────────────────────────────────────────────
40
+ exports.CHAIN_REGISTRY = [
41
+ // ═══════════════════════════════════════════════════════════════════════════
42
+ // EVM Chains (standard chain IDs, supported by LiFi + some by Near Intents)
43
+ // ═══════════════════════════════════════════════════════════════════════════
44
+ {
45
+ slug: "ethereum", numericId: 1, name: "Ethereum", type: "evm",
46
+ providers: ["lifi", "near-intents"], lifiChainId: 1, niBlockchain: "eth",
47
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
48
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
49
+ },
50
+ {
51
+ slug: "optimism", numericId: 10, name: "Optimism", type: "evm",
52
+ providers: ["lifi", "near-intents"], lifiChainId: 10, niBlockchain: "op",
53
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
54
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
55
+ },
56
+ {
57
+ slug: "flare", numericId: 14, name: "Flare", type: "evm",
58
+ providers: ["lifi"], lifiChainId: 14,
59
+ depositMode: "wallet", nativeToken: { symbol: "FLR", name: "Flare", decimals: 18 },
60
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
61
+ },
62
+ {
63
+ slug: "cronos", numericId: 25, name: "Cronos", type: "evm",
64
+ providers: ["lifi"], lifiChainId: 25,
65
+ depositMode: "wallet", nativeToken: { symbol: "CRO", name: "Cronos", decimals: 18 },
66
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
67
+ },
68
+ {
69
+ slug: "rootstock", numericId: 30, name: "Rootstock", type: "evm",
70
+ providers: ["lifi"], lifiChainId: 30,
71
+ depositMode: "wallet", nativeToken: { symbol: "RBTC", name: "RSK BTC", decimals: 18 },
72
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
73
+ },
74
+ {
75
+ slug: "telos", numericId: 40, name: "Telos", type: "evm",
76
+ providers: ["lifi"], lifiChainId: 40,
77
+ depositMode: "wallet", nativeToken: { symbol: "TLOS", name: "Telos", decimals: 18 },
78
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
79
+ },
80
+ {
81
+ slug: "bsc", numericId: 56, name: "BNB Chain", type: "evm",
82
+ providers: ["lifi", "near-intents"], lifiChainId: 56, niBlockchain: "bsc",
83
+ depositMode: "wallet", nativeToken: { symbol: "BNB", name: "BNB", decimals: 18 },
84
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
85
+ },
86
+ {
87
+ slug: "gnosis", numericId: 100, name: "Gnosis", type: "evm",
88
+ providers: ["lifi", "near-intents"], lifiChainId: 100, niBlockchain: "gnosis",
89
+ depositMode: "wallet", nativeToken: { symbol: "xDAI", name: "xDAI", decimals: 18 },
90
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
91
+ },
92
+ {
93
+ slug: "unichain", numericId: 130, name: "Unichain", type: "evm",
94
+ providers: ["lifi"], lifiChainId: 130,
95
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
96
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
97
+ },
98
+ {
99
+ slug: "polygon", numericId: 137, name: "Polygon", type: "evm",
100
+ providers: ["lifi", "near-intents"], lifiChainId: 137, niBlockchain: "pol",
101
+ depositMode: "wallet", nativeToken: { symbol: "POL", name: "POL", decimals: 18 },
102
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
103
+ },
104
+ {
105
+ slug: "sonic", numericId: 146, name: "Sonic", type: "evm",
106
+ providers: ["lifi"], lifiChainId: 146,
107
+ depositMode: "wallet", nativeToken: { symbol: "S", name: "Sonic", decimals: 18 },
108
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
109
+ },
110
+ {
111
+ slug: "x-layer", numericId: 196, name: "X Layer", type: "evm",
112
+ providers: ["lifi", "near-intents"], lifiChainId: 196, niBlockchain: "xlayer",
113
+ depositMode: "wallet", nativeToken: { symbol: "OKB", name: "OKB", decimals: 18 },
114
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
115
+ },
116
+ {
117
+ slug: "opbnb", numericId: 204, name: "opBNB", type: "evm",
118
+ providers: ["lifi"], lifiChainId: 204,
119
+ depositMode: "wallet", nativeToken: { symbol: "BNB", name: "BNB", decimals: 18 },
120
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
121
+ },
122
+ {
123
+ slug: "fraxtal", numericId: 252, name: "Fraxtal", type: "evm",
124
+ providers: ["lifi"], lifiChainId: 252,
125
+ depositMode: "wallet", nativeToken: { symbol: "frxETH", name: "Frax Ether", decimals: 18 },
126
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
127
+ },
128
+ {
129
+ slug: "boba", numericId: 288, name: "Boba", type: "evm",
130
+ providers: ["lifi"], lifiChainId: 288,
131
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
132
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
133
+ },
134
+ {
135
+ slug: "zksync", numericId: 324, name: "zkSync Era", type: "evm",
136
+ providers: ["lifi"], lifiChainId: 324,
137
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
138
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
139
+ },
140
+ {
141
+ slug: "world-chain", numericId: 480, name: "World Chain", type: "evm",
142
+ providers: ["lifi"], lifiChainId: 480,
143
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
144
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
145
+ },
146
+ {
147
+ slug: "flow", numericId: 747, name: "Flow", type: "evm",
148
+ providers: ["lifi"], lifiChainId: 747,
149
+ depositMode: "wallet", nativeToken: { symbol: "FLOW", name: "Flow", decimals: 18 },
150
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
151
+ },
152
+ {
153
+ slug: "hyperevm", numericId: 999, name: "HyperEVM", type: "evm",
154
+ providers: ["lifi"], lifiChainId: 999,
155
+ depositMode: "wallet", nativeToken: { symbol: "HYPE", name: "HYPE", decimals: 18 },
156
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
157
+ },
158
+ {
159
+ slug: "plasma", numericId: 1012, name: "Plasma", type: "evm",
160
+ providers: ["near-intents"], niBlockchain: "plasma",
161
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
162
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
163
+ },
164
+ {
165
+ slug: "metis", numericId: 1088, name: "Metis", type: "evm",
166
+ providers: ["lifi"], lifiChainId: 1088,
167
+ depositMode: "wallet", nativeToken: { symbol: "METIS", name: "Metis", decimals: 18 },
168
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
169
+ },
170
+ {
171
+ slug: "lisk", numericId: 1135, name: "Lisk", type: "evm",
172
+ providers: ["lifi"], lifiChainId: 1135,
173
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
174
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
175
+ },
176
+ {
177
+ slug: "moonbeam", numericId: 1284, name: "Moonbeam", type: "evm",
178
+ providers: ["lifi"], lifiChainId: 1284,
179
+ depositMode: "wallet", nativeToken: { symbol: "GLMR", name: "Glimmer", decimals: 18 },
180
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
181
+ },
182
+ {
183
+ slug: "sei", numericId: 1329, name: "Sei", type: "evm",
184
+ providers: ["lifi"], lifiChainId: 1329,
185
+ depositMode: "wallet", nativeToken: { symbol: "SEI", name: "Sei", decimals: 18 },
186
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
187
+ },
188
+ {
189
+ slug: "gravity", numericId: 1625, name: "Gravity", type: "evm",
190
+ providers: ["lifi"], lifiChainId: 1625,
191
+ depositMode: "wallet", nativeToken: { symbol: "G", name: "Gravity", decimals: 18 },
192
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
193
+ },
194
+ {
195
+ slug: "soneium", numericId: 1868, name: "Soneium", type: "evm",
196
+ providers: ["lifi"], lifiChainId: 1868,
197
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
198
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
199
+ },
200
+ {
201
+ slug: "ronin", numericId: 2020, name: "Ronin", type: "evm",
202
+ providers: ["lifi"], lifiChainId: 2020,
203
+ depositMode: "wallet", nativeToken: { symbol: "RON", name: "Ronin", decimals: 18 },
204
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
205
+ },
206
+ {
207
+ slug: "abstract", numericId: 2741, name: "Abstract", type: "evm",
208
+ providers: ["lifi"], lifiChainId: 2741,
209
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
210
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
211
+ },
212
+ {
213
+ slug: "mantle", numericId: 5000, name: "Mantle", type: "evm",
214
+ providers: ["lifi"], lifiChainId: 5000,
215
+ depositMode: "wallet", nativeToken: { symbol: "MNT", name: "Mantle", decimals: 18 },
216
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
217
+ },
218
+ {
219
+ slug: "base", numericId: 8453, name: "Base", type: "evm",
220
+ providers: ["lifi", "near-intents"], lifiChainId: 8453, niBlockchain: "base",
221
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
222
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
223
+ },
224
+ {
225
+ slug: "monad", numericId: 10143, name: "Monad", type: "evm",
226
+ providers: ["near-intents"], niBlockchain: "monad",
227
+ depositMode: "wallet", nativeToken: { symbol: "MON", name: "Monad", decimals: 18 },
228
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
229
+ },
230
+ {
231
+ slug: "immutable", numericId: 13371, name: "Immutable zkEVM", type: "evm",
232
+ providers: ["lifi"], lifiChainId: 13371,
233
+ depositMode: "wallet", nativeToken: { symbol: "IMX", name: "IMX", decimals: 18 },
234
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
235
+ },
236
+ {
237
+ slug: "apechain", numericId: 33139, name: "Apechain", type: "evm",
238
+ providers: ["lifi"], lifiChainId: 33139,
239
+ depositMode: "wallet", nativeToken: { symbol: "APE", name: "APE", decimals: 18 },
240
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
241
+ },
242
+ {
243
+ slug: "mode", numericId: 34443, name: "Mode", type: "evm",
244
+ providers: ["lifi"], lifiChainId: 34443,
245
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
246
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
247
+ },
248
+ {
249
+ slug: "arbitrum", numericId: 42161, name: "Arbitrum", type: "evm",
250
+ providers: ["lifi", "near-intents"], lifiChainId: 42161, niBlockchain: "arb",
251
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
252
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
253
+ },
254
+ {
255
+ slug: "celo", numericId: 42220, name: "Celo", type: "evm",
256
+ providers: ["lifi"], lifiChainId: 42220,
257
+ depositMode: "wallet", nativeToken: { symbol: "CELO", name: "CELO", decimals: 18 },
258
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
259
+ },
260
+ {
261
+ slug: "avalanche", numericId: 43114, name: "Avalanche", type: "evm",
262
+ providers: ["lifi", "near-intents"], lifiChainId: 43114, niBlockchain: "avax",
263
+ depositMode: "wallet", nativeToken: { symbol: "AVAX", name: "Avalanche", decimals: 18 },
264
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
265
+ },
266
+ {
267
+ slug: "ink", numericId: 57073, name: "Ink", type: "evm",
268
+ providers: ["lifi"], lifiChainId: 57073,
269
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
270
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
271
+ },
272
+ {
273
+ slug: "linea", numericId: 59144, name: "Linea", type: "evm",
274
+ providers: ["lifi"], lifiChainId: 59144,
275
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
276
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
277
+ },
278
+ {
279
+ slug: "bob", numericId: 60808, name: "BOB", type: "evm",
280
+ providers: ["lifi"], lifiChainId: 60808,
281
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
282
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
283
+ },
284
+ {
285
+ slug: "berachain", numericId: 80094, name: "Berachain", type: "evm",
286
+ providers: ["lifi", "near-intents"], lifiChainId: 80094, niBlockchain: "bera",
287
+ depositMode: "wallet", nativeToken: { symbol: "BERA", name: "Bera", decimals: 18 },
288
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
289
+ },
290
+ {
291
+ slug: "blast", numericId: 81457, name: "Blast", type: "evm",
292
+ providers: ["lifi"], lifiChainId: 81457,
293
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
294
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
295
+ },
296
+ {
297
+ slug: "taiko", numericId: 167000, name: "Taiko", type: "evm",
298
+ providers: ["lifi"], lifiChainId: 167000,
299
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
300
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
301
+ },
302
+ {
303
+ slug: "scroll", numericId: 534352, name: "Scroll", type: "evm",
304
+ providers: ["lifi", "near-intents"], lifiChainId: 534352, niBlockchain: "scroll",
305
+ depositMode: "wallet", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
306
+ dryQuotePlaceholder: EVM_PLACEHOLDER,
307
+ },
308
+ // ═══════════════════════════════════════════════════════════════════════════
309
+ // Non-EVM Chains (shared between LiFi and Near Intents)
310
+ // ═══════════════════════════════════════════════════════════════════════════
311
+ {
312
+ slug: "solana", numericId: 1151111081099710, name: "Solana", type: "svm",
313
+ providers: ["lifi", "near-intents"], lifiChainId: 1151111081099710, niBlockchain: "sol",
314
+ depositMode: "wallet", nativeToken: { symbol: "SOL", name: "Solana", decimals: 9 },
315
+ dryQuotePlaceholder: "11111111111111111111111111111111",
316
+ },
317
+ {
318
+ slug: "bitcoin", numericId: 20000000000001, name: "Bitcoin", type: "utxo",
319
+ providers: ["lifi", "near-intents"], lifiChainId: 20000000000001, niBlockchain: "btc",
320
+ depositMode: "wallet", nativeToken: { symbol: "BTC", name: "Bitcoin", decimals: 8 },
321
+ dryQuotePlaceholder: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
322
+ },
323
+ {
324
+ slug: "sui", numericId: 9270000000000000, name: "Sui", type: "mvm",
325
+ providers: ["lifi", "near-intents"], lifiChainId: 9270000000000000, niBlockchain: "sui",
326
+ depositMode: "wallet", nativeToken: { symbol: "SUI", name: "Sui", decimals: 9 },
327
+ dryQuotePlaceholder: "0x0000000000000000000000000000000000000000000000000000000000000002",
328
+ },
329
+ // ═══════════════════════════════════════════════════════════════════════════
330
+ // Near Intents-only Chains (900_000_XXX range)
331
+ // ═══════════════════════════════════════════════════════════════════════════
332
+ {
333
+ slug: "near", numericId: NI_BASE + 1, name: "NEAR", type: "near",
334
+ providers: ["near-intents"], niBlockchain: "near",
335
+ depositMode: "manual", nativeToken: { symbol: "NEAR", name: "NEAR", decimals: 24 },
336
+ dryQuotePlaceholder: "dontuse.near",
337
+ },
338
+ {
339
+ slug: "ton", numericId: NI_BASE + 2, name: "TON", type: "ton",
340
+ providers: ["near-intents"], niBlockchain: "ton",
341
+ depositMode: "wallet", nativeToken: { symbol: "TON", name: "Toncoin", decimals: 9 },
342
+ dryQuotePlaceholder: "EQAblnTrpCt2FnOwlwGORzJJJbWAniJa4OPyf8XMtm16HxaR",
343
+ },
344
+ {
345
+ slug: "tron", numericId: NI_BASE + 3, name: "Tron", type: "tvm",
346
+ providers: ["near-intents"], niBlockchain: "tron",
347
+ depositMode: "wallet", nativeToken: { symbol: "TRX", name: "TRON", decimals: 6 },
348
+ dryQuotePlaceholder: "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb",
349
+ },
350
+ {
351
+ slug: "xrp", numericId: NI_BASE + 4, name: "XRP Ledger", type: "xrp",
352
+ providers: ["near-intents"], niBlockchain: "xrp",
353
+ depositMode: "manual", nativeToken: { symbol: "XRP", name: "XRP", decimals: 6 },
354
+ dryQuotePlaceholder: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
355
+ },
356
+ {
357
+ slug: "doge", numericId: NI_BASE + 5, name: "Dogecoin", type: "utxo",
358
+ providers: ["near-intents"], niBlockchain: "doge",
359
+ depositMode: "manual", nativeToken: { symbol: "DOGE", name: "Dogecoin", decimals: 8 },
360
+ dryQuotePlaceholder: "DRapidDiBYggT1zdrELnVhNDqyAHn89cRi",
361
+ },
362
+ {
363
+ slug: "litecoin", numericId: NI_BASE + 6, name: "Litecoin", type: "utxo",
364
+ providers: ["near-intents"], niBlockchain: "ltc",
365
+ depositMode: "manual", nativeToken: { symbol: "LTC", name: "Litecoin", decimals: 8 },
366
+ dryQuotePlaceholder: "LhyLNfBkoKshT7R8Pce6vkB9T2cP2o84hx",
367
+ },
368
+ {
369
+ slug: "bitcoin-cash", numericId: NI_BASE + 7, name: "Bitcoin Cash", type: "utxo",
370
+ providers: ["near-intents"], niBlockchain: "bch",
371
+ depositMode: "manual", nativeToken: { symbol: "BCH", name: "Bitcoin Cash", decimals: 8 },
372
+ dryQuotePlaceholder: "bitcoincash:qp3wjpa3tjlj042z2wv7hahsldgwhwy0rq9sywjpyy",
373
+ },
374
+ {
375
+ slug: "stellar", numericId: NI_BASE + 8, name: "Stellar", type: "stellar",
376
+ providers: ["near-intents"], niBlockchain: "stellar",
377
+ depositMode: "manual", nativeToken: { symbol: "XLM", name: "Stellar Lumen", decimals: 7 },
378
+ dryQuotePlaceholder: "GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7",
379
+ },
380
+ {
381
+ slug: "cardano", numericId: NI_BASE + 9, name: "Cardano", type: "cardano",
382
+ providers: ["near-intents"], niBlockchain: "cardano",
383
+ depositMode: "manual", nativeToken: { symbol: "ADA", name: "Cardano", decimals: 6 },
384
+ dryQuotePlaceholder: "addr1vy5zuhh9685fup86syuzmu3e6eengzv8t46mfqxg086cvqqrukl6w",
385
+ },
386
+ {
387
+ slug: "aptos", numericId: NI_BASE + 10, name: "Aptos", type: "aptos",
388
+ providers: ["near-intents"], niBlockchain: "aptos",
389
+ depositMode: "manual", nativeToken: { symbol: "APT", name: "Aptos", decimals: 8 },
390
+ dryQuotePlaceholder: "0x0000000000000000000000000000000000000000000000000000000000000001",
391
+ },
392
+ {
393
+ slug: "starknet", numericId: NI_BASE + 11, name: "StarkNet", type: "starknet",
394
+ providers: ["near-intents"], niBlockchain: "starknet",
395
+ depositMode: "manual", nativeToken: { symbol: "ETH", name: "Ether", decimals: 18 },
396
+ dryQuotePlaceholder: "0x0000000000000000000000000000000000000000000000000000000000000001",
397
+ },
398
+ {
399
+ slug: "dash", numericId: NI_BASE + 12, name: "Dash", type: "utxo",
400
+ providers: ["near-intents"], niBlockchain: "dash",
401
+ depositMode: "manual", nativeToken: { symbol: "DASH", name: "Dash", decimals: 8 },
402
+ dryQuotePlaceholder: "XqL1DXzfqWcMKbhswTBYFGKtdfYJC2JWnj",
403
+ },
404
+ {
405
+ slug: "zcash", numericId: NI_BASE + 13, name: "Zcash", type: "utxo",
406
+ providers: ["near-intents"], niBlockchain: "zec",
407
+ depositMode: "manual", nativeToken: { symbol: "ZEC", name: "Zcash", decimals: 8 },
408
+ dryQuotePlaceholder: "t1Rv4exT7bqhZqi2j7xz8bUHDMxwosrjADU",
409
+ },
410
+ {
411
+ slug: "aleo", numericId: NI_BASE + 14, name: "Aleo", type: "aleo",
412
+ providers: ["near-intents"], niBlockchain: "aleo",
413
+ depositMode: "manual", nativeToken: { symbol: "ALEO", name: "Aleo", decimals: 6 },
414
+ dryQuotePlaceholder: "aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8",
415
+ },
416
+ {
417
+ slug: "adi", numericId: NI_BASE + 15, name: "ADI", type: "other",
418
+ providers: ["near-intents"], niBlockchain: "adi",
419
+ depositMode: "manual", nativeToken: { symbol: "ADI", name: "ADI", decimals: 18 },
420
+ },
421
+ ];
422
+ // ─── Lookup Maps (built once, O(1) access) ─────────────────────────────────
423
+ const bySlug = new Map();
424
+ const byNumericId = new Map();
425
+ const byNiBlockchain = new Map();
426
+ for (const entry of exports.CHAIN_REGISTRY) {
427
+ bySlug.set(entry.slug, entry);
428
+ byNumericId.set(entry.numericId, entry);
429
+ if (entry.niBlockchain) {
430
+ byNiBlockchain.set(entry.niBlockchain, entry);
431
+ }
432
+ }
433
+ // ─── Public API ────────────────────────────────────────────────────────────
434
+ /**
435
+ * Resolve a chain by slug (string) or numeric ID (number).
436
+ * Returns the ChainEntry or null if not found.
437
+ *
438
+ * @example
439
+ * resolveChain("ethereum") → { slug: "ethereum", numericId: 1, ... }
440
+ * resolveChain(42161) → { slug: "arbitrum", numericId: 42161, ... }
441
+ * resolveChain("solana") → { slug: "solana", numericId: 1151111081099710, ... }
442
+ * resolveChain(1151111081099710) → { slug: "solana", numericId: 1151111081099710, ... }
443
+ */
444
+ function resolveChain(input) {
445
+ if (typeof input === "number") {
446
+ return byNumericId.get(input) ?? null;
447
+ }
448
+ // Try slug first
449
+ const slugMatch = bySlug.get(input.toLowerCase());
450
+ if (slugMatch)
451
+ return slugMatch;
452
+ // Try as numeric string
453
+ const num = Number(input);
454
+ if (!isNaN(num) && Number.isFinite(num)) {
455
+ return byNumericId.get(num) ?? null;
456
+ }
457
+ // Try as NI blockchain string (e.g., "eth", "arb", "sol")
458
+ return byNiBlockchain.get(input.toLowerCase()) ?? null;
459
+ }
460
+ /**
461
+ * Convert any chain identifier to the LiFi chain ID.
462
+ * Returns undefined if LiFi doesn't support this chain.
463
+ */
464
+ function toLifiChainId(input) {
465
+ return resolveChain(input)?.lifiChainId;
466
+ }
467
+ /**
468
+ * Convert any chain identifier to the Near Intents blockchain string.
469
+ * Returns undefined if Near Intents doesn't support this chain.
470
+ */
471
+ function toNIBlockchain(input) {
472
+ return resolveChain(input)?.niBlockchain;
473
+ }
474
+ /**
475
+ * Convert any chain identifier to the internal numeric ID.
476
+ * This is the canonical numeric ID used internally.
477
+ */
478
+ function toNumericId(input) {
479
+ return resolveChain(input)?.numericId;
480
+ }
481
+ /**
482
+ * Check if a chain ID belongs to a Near Intents-only chain (900_000_XXX range).
483
+ */
484
+ function isNIOnlyChain(input) {
485
+ const entry = resolveChain(input);
486
+ if (!entry)
487
+ return false;
488
+ return entry.providers.length === 1 && entry.providers[0] === "near-intents";
489
+ }
490
+ /**
491
+ * Check if a chain supports wallet-connected deposit mode.
492
+ */
493
+ function supportsWalletDeposit(input) {
494
+ const entry = resolveChain(input);
495
+ return entry?.depositMode === "wallet";
496
+ }
497
+ /**
498
+ * Get the dry quote placeholder address for a chain.
499
+ */
500
+ function getDryQuotePlaceholder(input) {
501
+ return resolveChain(input)?.dryQuotePlaceholder;
502
+ }
503
+ /**
504
+ * Get all registered chains.
505
+ */
506
+ function getAllChains() {
507
+ return [...exports.CHAIN_REGISTRY];
508
+ }
509
+ /**
510
+ * Get chains filtered by provider.
511
+ */
512
+ function getChainsByProvider(provider) {
513
+ return exports.CHAIN_REGISTRY.filter((c) => c.providers.includes(provider));
514
+ }
515
+ /**
516
+ * The Near Intents chain ID base constant (900_000_000).
517
+ */
518
+ exports.NI_CHAIN_BASE = NI_BASE;
519
+ //# sourceMappingURL=chain-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-registry.js","sourceRoot":"","sources":["../../src/chain-registry.ts"],"names":[],"mappings":"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"}