@getomnichain/omnichain 0.3.6 → 0.5.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 (42) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/rango_chain_names.js +209 -0
  5. package/dist/cjs/rango_chain_names.js.map +1 -0
  6. package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js +129 -0
  7. package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js.map +1 -1
  8. package/dist/cjs/utxo/btc/tools/esplora.tool.js +84 -0
  9. package/dist/cjs/utxo/btc/tools/esplora.tool.js.map +1 -1
  10. package/dist/cjs/utxo/utxo_chain.js +18 -49
  11. package/dist/cjs/utxo/utxo_chain.js.map +1 -1
  12. package/dist/cjs/utxo/utxo_transaction_status.js +20 -16
  13. package/dist/cjs/utxo/utxo_transaction_status.js.map +1 -1
  14. package/dist/esm/index.d.ts +1 -0
  15. package/dist/esm/index.d.ts.map +1 -1
  16. package/dist/esm/index.js +1 -0
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/rango_chain_names.d.ts +76 -0
  19. package/dist/esm/rango_chain_names.d.ts.map +1 -0
  20. package/dist/esm/rango_chain_names.js +171 -0
  21. package/dist/esm/rango_chain_names.js.map +1 -0
  22. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts +4 -1
  23. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -1
  24. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js +129 -0
  25. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js.map +1 -1
  26. package/dist/esm/utxo/btc/tools/esplora.tool.d.ts +2 -1
  27. package/dist/esm/utxo/btc/tools/esplora.tool.d.ts.map +1 -1
  28. package/dist/esm/utxo/btc/tools/esplora.tool.js +84 -0
  29. package/dist/esm/utxo/btc/tools/esplora.tool.js.map +1 -1
  30. package/dist/esm/utxo/tools/raw_transaction_provider.d.ts +2 -1
  31. package/dist/esm/utxo/tools/raw_transaction_provider.d.ts.map +1 -1
  32. package/dist/esm/utxo/utxo.d.ts +27 -0
  33. package/dist/esm/utxo/utxo.d.ts.map +1 -1
  34. package/dist/esm/utxo/utxo_chain.d.ts.map +1 -1
  35. package/dist/esm/utxo/utxo_chain.js +18 -49
  36. package/dist/esm/utxo/utxo_chain.js.map +1 -1
  37. package/dist/esm/utxo/utxo_transaction_status.d.ts +21 -16
  38. package/dist/esm/utxo/utxo_transaction_status.d.ts.map +1 -1
  39. package/dist/esm/utxo/utxo_transaction_status.js +20 -16
  40. package/dist/esm/utxo/utxo_transaction_status.js.map +1 -1
  41. package/docs/README.md +1 -0
  42. package/package.json +3 -2
@@ -172,15 +172,9 @@ class UtxoChain extends chain_base_ts_1.Chain {
172
172
  return this.getUtxoStatusOnce(txHash);
173
173
  }
174
174
  async getUtxoStatusOnce(txHash) {
175
- // Narrow the try to the provider call only. Constructor asserts and
176
- // upsert failures must NOT be silently coerced into NotFound.
177
- // Classify: (a) provider signalled "no such tx" (Esplora HTTP 404,
178
- // Bitcoin Core RPC code -5) → NotFound; (b) any other throw →
179
- // RpcError so consumers can retry rather than treating a 429/timeout
180
- // as a definitive miss.
181
175
  let tx;
182
176
  try {
183
- tx = await this.rawTxProvider.getTransaction(txHash);
177
+ tx = await this.rawTxProvider.getTransactionWithInputs(txHash);
184
178
  }
185
179
  catch (err) {
186
180
  if (err instanceof errors_ts_1.ChainError)
@@ -195,20 +189,11 @@ class UtxoChain extends chain_base_ts_1.Chain {
195
189
  }
196
190
  const rawMsg = err instanceof Error ? err.message : String(err);
197
191
  const sanitizedMsg = sanitizeUtxoErrMessage(rawMsg);
198
- // Build a scrubbed cause: sanitizeCause strips axios `.config`/
199
- // `.request`/`.response` object trees (which carry Authorization
200
- // headers + query-string keys) by rebuilding a plain Error with
201
- // only sanitized message+stack. Consumers walking `.cause` in a
202
- // structured logger no longer leak API keys.
203
192
  const safeCause = err instanceof Error
204
193
  ? sanitizedCauseForUtxo(err, sanitizedMsg)
205
194
  : undefined;
206
195
  throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcError, `Failed to read UTXO tx ${txHash}: ${sanitizedMsg}`, { chainId: this.chainId, txHash }, safeCause);
207
196
  }
208
- // Bitcoin Core reports `confirmations: -1` for a conflicted/RBF-
209
- // replaced tx (a reorged-out deposit). Do not run the shape asserts
210
- // that would throw InvalidArgument on the way out — surface as
211
- // NotFound so the status poll doesn't crash.
212
197
  if (tx.confirmations < 0) {
213
198
  return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
214
199
  chainId: this.chainId,
@@ -221,38 +206,27 @@ class UtxoChain extends chain_base_ts_1.Chain {
221
206
  },
222
207
  });
223
208
  }
224
- // Wrap the decode block so a non-integer valueSats/absoluteSats from a
225
- // consumer's provider tool (BTC-float→sats overflow) or a
226
- // Transaction.fromHex failure surfaces as a typed
227
- // ChainError(TransactionDecodeFailed) rather than a raw RangeError.
228
- // Mirrors evm_chain.ts:decodeBalanceChanges catch.
229
209
  try {
230
- // Populate outputs on both pending AND confirmed paths — a 0-conf
231
- // mempool tx still has visible outputs, and BTC/LTC/DOGE deposit
232
- // detectors need them. balanceChanges stays null on Pending per the
233
- // TransactionStatus base invariant.
234
- const outputs = tx.vout.map((o) => new utxo_transaction_status_ts_1.UtxoTransactionOutput({
210
+ const outputs = tx.outputs.map((o) => new utxo_transaction_status_ts_1.UtxoTransactionOutput({
235
211
  scriptPubkeyHex: o.scriptPubKeyHex,
236
212
  address: o.address,
237
213
  valueSats: BigInt(o.valueSats),
238
214
  }));
239
- // Derive vsize from the raw hex — bitcoinjs-lib is already a dep
240
- // and both Esplora + Bitcoin Core populate tx.hex. Falls back to
241
- // null on malformed hex so the status still returns.
242
- let vsize = null;
243
- try {
244
- if (tx.hex && tx.hex.length > 0) {
215
+ let vsize = tx.vsize > 0 ? tx.vsize : null;
216
+ if (vsize === null && tx.hex && tx.hex.length > 0) {
217
+ try {
245
218
  vsize = bitcoinjs_lib_1.Transaction.fromHex(tx.hex).virtualSize();
246
219
  }
247
- }
248
- catch {
249
- vsize = null;
220
+ catch {
221
+ vsize = null;
222
+ }
250
223
  }
251
224
  const fees = tx.fees !== null
252
225
  ? new utxo_transaction_status_ts_1.UtxoTransactionFees({ absoluteSats: BigInt(tx.fees.absoluteSats), vsize })
253
226
  : null;
254
227
  const isPending = tx.confirmations === 0;
255
228
  if (isPending) {
229
+ const pendingInputs = tx.inputs.length === 0 ? null : tx.inputs;
256
230
  return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
257
231
  chainId: this.chainId,
258
232
  status: transaction_status_ts_1.TransactionStatusTypes.Pending,
@@ -262,32 +236,27 @@ class UtxoChain extends chain_base_ts_1.Chain {
262
236
  outputs,
263
237
  vsize,
264
238
  fees,
239
+ inputs: pendingInputs,
240
+ inputsUnresolvedReason: pendingInputs === null ? 'pending' : null,
265
241
  });
266
242
  }
267
- // Outputs-only per-address native deltas. Full input-side accounting
268
- // to compute net native change (Python's `_native_balance_changes`
269
- // parity) is deferred — the raw-tx provider currently returns only
270
- // vin.txid+vout, no address/value/scriptPubKeyHex. Noted in
271
- // SINAN_OPEN_QUESTIONS.md.
272
243
  const balanceChanges = new Map();
273
- const perAddressSats = new Map();
274
- for (const out of tx.vout) {
275
- if (!out.address)
244
+ for (const [address, delta] of Object.entries(tx.netChangesHr)) {
245
+ if (delta.isZero())
276
246
  continue;
277
- perAddressSats.set(out.address, (perAddressSats.get(out.address) ?? 0n) + BigInt(out.valueSats));
278
- }
279
- for (const [address, sats] of perAddressSats) {
280
- transaction_status_ts_1.AssetBalanceChange.upsert(balanceChanges, address, this._nativeToken, transaction_status_ts_1.AssetBalanceChange.fromMr(sats, this._nativeToken.decimals));
247
+ transaction_status_ts_1.AssetBalanceChange.upsert(balanceChanges, address, this._nativeToken, transaction_status_ts_1.AssetBalanceChange.fromHr(delta, this._nativeToken.decimals));
281
248
  }
282
249
  return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
283
250
  chainId: this.chainId,
284
251
  status: transaction_status_ts_1.TransactionStatusTypes.Success,
285
- confirmationAt: tx.blockTime,
252
+ confirmationAt: tx.confirmationDatetime,
286
253
  balanceChanges,
287
254
  confirmations: tx.confirmations,
288
255
  outputs,
289
256
  vsize,
290
257
  fees,
258
+ inputs: tx.inputs,
259
+ inputsUnresolvedReason: null,
291
260
  });
292
261
  }
293
262
  catch (err) {
@@ -559,7 +528,7 @@ function isProviderNotFoundError(err) {
559
528
  if (typeof status === 'number' && status === 404)
560
529
  return true;
561
530
  const message = typeof anyErr.message === 'string' ? anyErr.message : '';
562
- if (/getrawtransaction:\s*-5\b/.test(message)) {
531
+ if (/^bitcoin-core getrawtransaction:\s*-5\b/.test(message)) {
563
532
  // Bitcoin Core RPC code -5 has TWO meanings:
564
533
  // - "No such mempool or blockchain transaction" → genuinely unknown
565
534
  // (node has -txindex enabled, or the tx is unknown even in mempool)
@@ -1 +1 @@
1
- {"version":3,"file":"utxo_chain.js","sourceRoot":"","sources":["../../../utxo/utxo_chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utxo_chain.js","sourceRoot":"","sources":["../../../utxo/utxo_chain.ts"],"names":[],"mappings":"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"}
@@ -39,30 +39,32 @@ class UtxoTransactionOutput {
39
39
  }
40
40
  exports.UtxoTransactionOutput = UtxoTransactionOutput;
41
41
  /**
42
- * UTXO tx status. Python parity: no static factory methods; consumers build
43
- * via the constructor directly (impl/utxo/base.py:677-728). Adds `fees` for
44
- * parity with EVM/Solana subclass surfaces — Python's UTXO base omits it,
45
- * but the consumer's deposit-detector needs the fee to reconcile net-of-fee
46
- * balances. Documented deviation in SINAN_OPEN_QUESTIONS.md.
42
+ * UTXO tx status. Python parity: `balanceChanges` are **net per-address
43
+ * deltas** derived from `UtxoTransaction.netChangesHr` in the provider tool
44
+ * (impl/utxo/base.py:1874-1890) — inputs are debited, outputs credited, so
45
+ * a self-send or a hot-wallet withdrawal shows its net delta directly. Same
46
+ * shape as `EvmTransactionStatus` and `SolanaTransactionStatus`.
47
47
  *
48
- * **Important semantic caveat vs EVM/Solana**: `balanceChanges` on
49
- * `UtxoTransactionStatus` are **gross output credits** per receiving
50
- * address, NOT net per-wallet deltas. UTXO tools currently return only
51
- * `vin.txid` + `vout` from providers — no per-input address/value — so the
52
- * SDK can't debit inputs. A hot-wallet withdrawal will therefore record
53
- * that wallet's own **change output** as a positive `AssetBalanceChange`,
54
- * NOT a net debit. Consumers doing uniform cross-chain balance
55
- * reconciliation must special-case UTXO. Input-side accounting is deferred
56
- * to a later phase.
48
+ * `inputs` is populated on `Success` (the provider tool's
49
+ * `getTransactionWithInputs` hydrated every non-coinbase input's prevout;
50
+ * failure on a confirmed tx throws `ChainError(RpcError)` rather than
51
+ * returning a `Success` with a partial map, since the base
52
+ * `TransactionStatus(Success)` invariant requires `balanceChanges` to be
53
+ * present). On `Pending`, `inputs` is either populated (mempool provider
54
+ * exposed the prevouts) or `null` with `inputsUnresolvedReason: 'pending'`
55
+ * — `'pending'` is the only reachable value on the status side.
57
56
  *
58
- * `inputs` is not yet surfaced (the raw-tx provider returns only txid+vout,
59
- * insufficient for a meaningful shape). Comes back in the 2C UTXO port.
57
+ * Deposit detectors that only need who was credited (gross output credits
58
+ * per address) should iterate `outputs[]` directly; there is no
59
+ * `outputCreditsByAddress()` helper and no legacy gross-credits field.
60
60
  */
61
61
  class UtxoTransactionStatus extends transaction_status_ts_1.TransactionStatus {
62
62
  outputs;
63
63
  vsize;
64
64
  confirmations;
65
65
  fees;
66
+ inputs;
67
+ inputsUnresolvedReason;
66
68
  constructor(init) {
67
69
  super({
68
70
  chainId: init.chainId,
@@ -81,6 +83,8 @@ class UtxoTransactionStatus extends transaction_status_ts_1.TransactionStatus {
81
83
  this.vsize = init.vsize ?? null;
82
84
  this.confirmations = init.confirmations ?? null;
83
85
  this.fees = init.fees ?? null;
86
+ this.inputs = init.inputs ?? null;
87
+ this.inputsUnresolvedReason = init.inputsUnresolvedReason ?? null;
84
88
  }
85
89
  /**
86
90
  * Alias for the parent's `inclusionAt` field, exposed under the Python name
@@ -1 +1 @@
1
- {"version":3,"file":"utxo_transaction_status.js","sourceRoot":"","sources":["../../../utxo/utxo_transaction_status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utxo_transaction_status.js","sourceRoot":"","sources":["../../../utxo/utxo_transaction_status.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export * from './errors.ts';
8
8
  export * from './is_address.decorator.ts';
9
9
  export * from './network_type.ts';
10
10
  export * from './priority.ts';
11
+ export * from './rango_chain_names.ts';
11
12
  export * from './token.ts';
12
13
  export * from './transaction_status.ts';
13
14
  export * from './unsigned_transaction.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -8,6 +8,7 @@ export * from "./errors.js";
8
8
  export * from "./is_address.decorator.js";
9
9
  export * from "./network_type.js";
10
10
  export * from "./priority.js";
11
+ export * from "./rango_chain_names.js";
11
12
  export * from "./token.js";
12
13
  export * from "./transaction_status.js";
13
14
  export * from "./unsigned_transaction.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Bidirectional lookup between omnichain chain ids and Rango's canonical
3
+ * uppercase blockchain names (the `blockchains[].name` field of Rango's
4
+ * `/meta` response).
5
+ *
6
+ * TypeScript-only module — no `omnichain-py` counterpart. `chain_ids.ts`
7
+ * mirrors the Python catalogue, but the Rango-name mapping is a
8
+ * TS-consumer concern and does not exist on the Python side.
9
+ *
10
+ * Source of truth: `GET https://public-api.rango.exchange/basic/meta`.
11
+ * The snapshot backing this module lives at
12
+ * `test/fixtures/rango_meta_blockchains.json`; its `fetchedAt` field is
13
+ * the single source-of-date. Refresh via `npm run rango:refresh`.
14
+ *
15
+ * Downstream consumers that talk to Rango should import from here
16
+ * instead of maintaining a local copy. `test/rango_chain_names.spec.ts`
17
+ * fails the suite whenever `chain_ids.ts` gains a new id that is
18
+ * neither mapped here nor listed in `NOT_ON_RANGO`, so a new chain
19
+ * forces an explicit decision. That suite runs on every PR/push via
20
+ * `.github/workflows/test.yml` and on `npm publish` via
21
+ * `prepublishOnly`. When the `test` check is required on `main` via
22
+ * branch protection, consumers vendoring omnichain from `main` inherit
23
+ * that check as their guarantee; until then, the workflow signals but
24
+ * does not block.
25
+ *
26
+ * Aliases (alternate spellings Rango may use in other endpoints) are
27
+ * deliberately out of scope; if a consumer hits one, add it as a
28
+ * separate decision.
29
+ */
30
+ export declare const CHAIN_ID_TO_RANGO_NAME: ReadonlyMap<number, string>;
31
+ /**
32
+ * Inverse of `CHAIN_ID_TO_RANGO_NAME`, keyed by uppercase name.
33
+ * Prefer `chainIdForRangoName` for case- and whitespace-tolerant lookup.
34
+ */
35
+ export declare const RANGO_NAME_TO_CHAIN_ID: ReadonlyMap<string, number>;
36
+ /**
37
+ * Explicit decisions for chain ids omnichain declares but Rango's `/meta`
38
+ * does not carry, verified against the same snapshot as
39
+ * `CHAIN_ID_TO_RANGO_NAME`.
40
+ *
41
+ * Every id in `chain_ids.ts` must appear in either `CHAIN_ID_TO_RANGO_NAME`
42
+ * or here; the coverage test fails the PR check and `npm publish` (via
43
+ * `prepublishOnly`) otherwise. Adding an id to `chain_ids.ts` without a
44
+ * decision is a bug.
45
+ *
46
+ * Grouped by reason:
47
+ * - Testnets/devnets Rango's `/meta` intentionally omits.
48
+ * - Mainnet EVM chains not on Rango's `/meta` as of the snapshot; add to
49
+ * `CHAIN_ID_TO_RANGO_NAME` once Rango starts publishing them.
50
+ */
51
+ export declare const NOT_ON_RANGO: ReadonlySet<number>;
52
+ /**
53
+ * Rango's canonical uppercase blockchain name for a given omnichain chain
54
+ * id, or `undefined` when the chain is not on Rango, when the input is not
55
+ * a real number (`NaN`), or when it is `null` / `undefined`.
56
+ *
57
+ * `bigint` input is rejected at runtime and returns `undefined`. Callers
58
+ * bridging from `ethers` v6's `Network.chainId: bigint` should narrow with
59
+ * `Number(x)` and check `Number.isSafeInteger` first.
60
+ */
61
+ export declare function rangoNameForChainId(chainId: number | null | undefined): string | undefined;
62
+ /**
63
+ * Omnichain chain id for a Rango blockchain name. Input is normalised
64
+ * (`trim()` + `toUpperCase()`) so `' bsc '`, `'BSC'`, `'Bsc'` all resolve
65
+ * to `56`. Returns `undefined` for an unknown name, for any non-string
66
+ * input, for raw input longer than 64 characters (rejected before any
67
+ * per-character work — the bound is several times the longest name in
68
+ * the snapshot, so it is a DoS guard, not a contract), or for input
69
+ * carrying non-ASCII characters (Unicode-aware `toUpperCase` folds
70
+ * `'ſ' → 'S'`
71
+ * and `'ı' → 'I'`, which would resolve homoglyph inputs to real chain
72
+ * ids — the accessor fails closed instead). Callers looping over
73
+ * untrusted Rango feed rows can skip bad entries without a `TypeError`.
74
+ */
75
+ export declare function chainIdForRangoName(name: string | null | undefined): number | undefined;
76
+ //# sourceMappingURL=rango_chain_names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rango_chain_names.d.ts","sourceRoot":"","sources":["../../rango_chain_names.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAuD7D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAE9D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,CA2B3C,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOvF"}
@@ -0,0 +1,171 @@
1
+ import * as C from "./chain_ids.js";
2
+ const MAX_RANGO_NAME_LENGTH = 64;
3
+ /**
4
+ * Bidirectional lookup between omnichain chain ids and Rango's canonical
5
+ * uppercase blockchain names (the `blockchains[].name` field of Rango's
6
+ * `/meta` response).
7
+ *
8
+ * TypeScript-only module — no `omnichain-py` counterpart. `chain_ids.ts`
9
+ * mirrors the Python catalogue, but the Rango-name mapping is a
10
+ * TS-consumer concern and does not exist on the Python side.
11
+ *
12
+ * Source of truth: `GET https://public-api.rango.exchange/basic/meta`.
13
+ * The snapshot backing this module lives at
14
+ * `test/fixtures/rango_meta_blockchains.json`; its `fetchedAt` field is
15
+ * the single source-of-date. Refresh via `npm run rango:refresh`.
16
+ *
17
+ * Downstream consumers that talk to Rango should import from here
18
+ * instead of maintaining a local copy. `test/rango_chain_names.spec.ts`
19
+ * fails the suite whenever `chain_ids.ts` gains a new id that is
20
+ * neither mapped here nor listed in `NOT_ON_RANGO`, so a new chain
21
+ * forces an explicit decision. That suite runs on every PR/push via
22
+ * `.github/workflows/test.yml` and on `npm publish` via
23
+ * `prepublishOnly`. When the `test` check is required on `main` via
24
+ * branch protection, consumers vendoring omnichain from `main` inherit
25
+ * that check as their guarantee; until then, the workflow signals but
26
+ * does not block.
27
+ *
28
+ * Aliases (alternate spellings Rango may use in other endpoints) are
29
+ * deliberately out of scope; if a consumer hits one, add it as a
30
+ * separate decision.
31
+ */
32
+ export const CHAIN_ID_TO_RANGO_NAME = new Map([
33
+ [C.CHAIN_ID_BITCOIN_MAINNET, 'BTC'],
34
+ [C.CHAIN_ID_LITECOIN_MAINNET, 'LTC'],
35
+ [C.CHAIN_ID_DOGECOIN_MAINNET, 'DOGE'],
36
+ [C.CHAIN_ID_DASH_MAINNET, 'DASH'],
37
+ [C.CHAIN_ID_ZCASH_MAINNET, 'ZCASH'],
38
+ [C.CHAIN_ID_BITCOIN_CASH_MAINNET, 'BCH'],
39
+ [C.CHAIN_ID_SOLANA_MAINNET, 'SOLANA'],
40
+ [C.CHAIN_ID_SUI_MAINNET, 'SUI'],
41
+ [C.CHAIN_ID_XRPL_MAINNET, 'XRPL'],
42
+ [C.CHAIN_ID_STELLAR_MAINNET, 'STELLAR'],
43
+ [C.CHAIN_ID_TON_MAINNET, 'TON'],
44
+ [C.CHAIN_ID_TRON_MAINNET, 'TRON'],
45
+ [C.CHAIN_ID_ETHEREUM, 'ETH'],
46
+ [C.CHAIN_ID_OPTIMISM, 'OPTIMISM'],
47
+ [C.CHAIN_ID_CRONOS, 'CRONOS'],
48
+ [C.CHAIN_ID_BNB_CHAIN, 'BSC'],
49
+ [C.CHAIN_ID_OKX_CHAIN, 'OKC'],
50
+ [C.CHAIN_ID_GNOSIS, 'GNOSIS'],
51
+ [C.CHAIN_ID_UNICHAIN, 'UNICHAIN'],
52
+ [C.CHAIN_ID_POLYGON, 'POLYGON'],
53
+ [C.CHAIN_ID_MONAD, 'MONAD'],
54
+ [C.CHAIN_ID_SONIC, 'SONIC'],
55
+ [C.CHAIN_ID_SHIMMER, 'SHIMMER'],
56
+ [C.CHAIN_ID_XLAYER, 'XLAYER'],
57
+ [C.CHAIN_ID_FANTOM, 'FANTOM'],
58
+ [C.CHAIN_ID_BOBA, 'BOBA'],
59
+ [C.CHAIN_ID_ZKSYNC, 'ZKSYNC'],
60
+ [C.CHAIN_ID_STABLE, 'STABLE'],
61
+ [C.CHAIN_ID_HYPER_EVM, 'HYPEREVM'],
62
+ [C.CHAIN_ID_METIS, 'METIS'],
63
+ [C.CHAIN_ID_POLYGON_ZKEVM, 'POLYGONZK'],
64
+ [C.CHAIN_ID_MOONBEAM, 'MOONBEAM'],
65
+ [C.CHAIN_ID_MOONRIVER, 'MOONRIVER'],
66
+ [C.CHAIN_ID_SONEIUM, 'SONEIUM'],
67
+ [C.CHAIN_ID_CITREA, 'CITREA'],
68
+ [C.CHAIN_ID_MEGA_ETH, 'MEGAETH'],
69
+ [C.CHAIN_ID_ZETACHAIN, 'ZETA_CHAIN'],
70
+ [C.CHAIN_ID_BASE, 'BASE'],
71
+ [C.CHAIN_ID_IOTA_EVM, 'IOTA'],
72
+ [C.CHAIN_ID_PLASMA, 'PLASMA'],
73
+ [C.CHAIN_ID_MODE, 'MODE'],
74
+ [C.CHAIN_ID_ARBITRUM, 'ARBITRUM'],
75
+ [C.CHAIN_ID_CELO, 'CELO'],
76
+ [C.CHAIN_ID_AVALANCHE_C_CHAIN, 'AVAX_CCHAIN'],
77
+ [C.CHAIN_ID_LINEA, 'LINEA'],
78
+ [C.CHAIN_ID_BERA_CHAIN, 'BERACHAIN'],
79
+ [C.CHAIN_ID_BLAST, 'BLAST'],
80
+ [C.CHAIN_ID_TAIKO, 'TAIKO'],
81
+ [C.CHAIN_ID_SCROLL, 'SCROLL'],
82
+ [C.CHAIN_ID_KATANA, 'KATANA'],
83
+ [C.CHAIN_ID_ZORA, 'ZORA'],
84
+ [C.CHAIN_ID_AURORA, 'AURORA'],
85
+ ]);
86
+ /**
87
+ * Inverse of `CHAIN_ID_TO_RANGO_NAME`, keyed by uppercase name.
88
+ * Prefer `chainIdForRangoName` for case- and whitespace-tolerant lookup.
89
+ */
90
+ export const RANGO_NAME_TO_CHAIN_ID = new Map(Array.from(CHAIN_ID_TO_RANGO_NAME, ([id, name]) => [name, id]));
91
+ /**
92
+ * Explicit decisions for chain ids omnichain declares but Rango's `/meta`
93
+ * does not carry, verified against the same snapshot as
94
+ * `CHAIN_ID_TO_RANGO_NAME`.
95
+ *
96
+ * Every id in `chain_ids.ts` must appear in either `CHAIN_ID_TO_RANGO_NAME`
97
+ * or here; the coverage test fails the PR check and `npm publish` (via
98
+ * `prepublishOnly`) otherwise. Adding an id to `chain_ids.ts` without a
99
+ * decision is a bug.
100
+ *
101
+ * Grouped by reason:
102
+ * - Testnets/devnets Rango's `/meta` intentionally omits.
103
+ * - Mainnet EVM chains not on Rango's `/meta` as of the snapshot; add to
104
+ * `CHAIN_ID_TO_RANGO_NAME` once Rango starts publishing them.
105
+ */
106
+ export const NOT_ON_RANGO = new Set([
107
+ // testnets/devnets — Rango's /meta never carries these.
108
+ C.CHAIN_ID_BITCOIN_TESTNET,
109
+ C.CHAIN_ID_BITCOIN_SIGNET,
110
+ C.CHAIN_ID_SOLANA_TESTNET,
111
+ C.CHAIN_ID_SOLANA_DEVNET,
112
+ C.CHAIN_ID_SUI_TESTNET,
113
+ C.CHAIN_ID_SUI_DEVNET,
114
+ C.CHAIN_ID_XRPL_TESTNET,
115
+ C.CHAIN_ID_STELLAR_TESTNET,
116
+ C.CHAIN_ID_TON_TESTNET,
117
+ C.CHAIN_ID_TRON_SHASTA,
118
+ C.CHAIN_ID_GOERLI,
119
+ C.CHAIN_ID_SEPOLIA,
120
+ C.CHAIN_ID_CELO_SEPOLIA,
121
+ // Mainnet, absent from /meta as of the fixture snapshot — move to the map when Rango publishes them.
122
+ C.CHAIN_ID_OPBNB,
123
+ C.CHAIN_ID_WORLD_CHAIN,
124
+ C.CHAIN_ID_WANCHAIN,
125
+ C.CHAIN_ID_SEI_EVM,
126
+ C.CHAIN_ID_ABSTRACT,
127
+ C.CHAIN_ID_TEMPO,
128
+ C.CHAIN_ID_MANTLE,
129
+ C.CHAIN_ID_INK,
130
+ C.CHAIN_ID_BOB,
131
+ C.CHAIN_ID_ZKLINK_NOVA,
132
+ ]);
133
+ /**
134
+ * Rango's canonical uppercase blockchain name for a given omnichain chain
135
+ * id, or `undefined` when the chain is not on Rango, when the input is not
136
+ * a real number (`NaN`), or when it is `null` / `undefined`.
137
+ *
138
+ * `bigint` input is rejected at runtime and returns `undefined`. Callers
139
+ * bridging from `ethers` v6's `Network.chainId: bigint` should narrow with
140
+ * `Number(x)` and check `Number.isSafeInteger` first.
141
+ */
142
+ export function rangoNameForChainId(chainId) {
143
+ if (typeof chainId !== 'number' || Number.isNaN(chainId))
144
+ return undefined;
145
+ return CHAIN_ID_TO_RANGO_NAME.get(chainId);
146
+ }
147
+ /**
148
+ * Omnichain chain id for a Rango blockchain name. Input is normalised
149
+ * (`trim()` + `toUpperCase()`) so `' bsc '`, `'BSC'`, `'Bsc'` all resolve
150
+ * to `56`. Returns `undefined` for an unknown name, for any non-string
151
+ * input, for raw input longer than 64 characters (rejected before any
152
+ * per-character work — the bound is several times the longest name in
153
+ * the snapshot, so it is a DoS guard, not a contract), or for input
154
+ * carrying non-ASCII characters (Unicode-aware `toUpperCase` folds
155
+ * `'ſ' → 'S'`
156
+ * and `'ı' → 'I'`, which would resolve homoglyph inputs to real chain
157
+ * ids — the accessor fails closed instead). Callers looping over
158
+ * untrusted Rango feed rows can skip bad entries without a `TypeError`.
159
+ */
160
+ export function chainIdForRangoName(name) {
161
+ if (typeof name !== 'string')
162
+ return undefined;
163
+ if (name.length > MAX_RANGO_NAME_LENGTH)
164
+ return undefined;
165
+ for (let i = 0; i < name.length; i++) {
166
+ if (name.charCodeAt(i) > 0x7f)
167
+ return undefined;
168
+ }
169
+ return RANGO_NAME_TO_CHAIN_ID.get(name.trim().toUpperCase());
170
+ }
171
+ //# sourceMappingURL=rango_chain_names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rango_chain_names.js","sourceRoot":"","sources":["../../rango_chain_names.ts"],"names":[],"mappings":"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"}