@getomnichain/omnichain 0.2.1 → 0.3.1

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 (52) hide show
  1. package/CHANGELOG.md +256 -0
  2. package/dist/cjs/chain.base.js.map +1 -1
  3. package/dist/cjs/errors.js +55 -6
  4. package/dist/cjs/errors.js.map +1 -1
  5. package/dist/cjs/evm/evm_chain.js +421 -2
  6. package/dist/cjs/evm/evm_chain.js.map +1 -1
  7. package/dist/cjs/evm/evm_transaction_status.js +4 -0
  8. package/dist/cjs/evm/evm_transaction_status.js.map +1 -1
  9. package/dist/cjs/evm/unsigned_evm_transaction.js +12 -0
  10. package/dist/cjs/evm/unsigned_evm_transaction.js.map +1 -1
  11. package/dist/cjs/solana/solana_chain.js +659 -21
  12. package/dist/cjs/solana/solana_chain.js.map +1 -1
  13. package/dist/cjs/solana/unsigned_solana_transaction.js +33 -0
  14. package/dist/cjs/solana/unsigned_solana_transaction.js.map +1 -1
  15. package/dist/cjs/utxo/utxo_chain.js +94 -10
  16. package/dist/cjs/utxo/utxo_chain.js.map +1 -1
  17. package/dist/esm/chain.base.d.ts +38 -1
  18. package/dist/esm/chain.base.d.ts.map +1 -1
  19. package/dist/esm/chain.base.js.map +1 -1
  20. package/dist/esm/errors.d.ts +13 -0
  21. package/dist/esm/errors.d.ts.map +1 -1
  22. package/dist/esm/errors.js +51 -6
  23. package/dist/esm/errors.js.map +1 -1
  24. package/dist/esm/evm/evm_chain.d.ts +48 -2
  25. package/dist/esm/evm/evm_chain.d.ts.map +1 -1
  26. package/dist/esm/evm/evm_chain.js +423 -4
  27. package/dist/esm/evm/evm_chain.js.map +1 -1
  28. package/dist/esm/evm/evm_transaction_status.d.ts +4 -0
  29. package/dist/esm/evm/evm_transaction_status.d.ts.map +1 -1
  30. package/dist/esm/evm/evm_transaction_status.js +4 -0
  31. package/dist/esm/evm/evm_transaction_status.js.map +1 -1
  32. package/dist/esm/evm/unsigned_evm_transaction.d.ts +13 -0
  33. package/dist/esm/evm/unsigned_evm_transaction.d.ts.map +1 -1
  34. package/dist/esm/evm/unsigned_evm_transaction.js +12 -0
  35. package/dist/esm/evm/unsigned_evm_transaction.js.map +1 -1
  36. package/dist/esm/solana/solana_chain.d.ts +100 -3
  37. package/dist/esm/solana/solana_chain.d.ts.map +1 -1
  38. package/dist/esm/solana/solana_chain.js +659 -23
  39. package/dist/esm/solana/solana_chain.js.map +1 -1
  40. package/dist/esm/solana/unsigned_solana_transaction.d.ts +20 -1
  41. package/dist/esm/solana/unsigned_solana_transaction.d.ts.map +1 -1
  42. package/dist/esm/solana/unsigned_solana_transaction.js +33 -0
  43. package/dist/esm/solana/unsigned_solana_transaction.js.map +1 -1
  44. package/dist/esm/utxo/utxo_chain.d.ts +15 -2
  45. package/dist/esm/utxo/utxo_chain.d.ts.map +1 -1
  46. package/dist/esm/utxo/utxo_chain.js +96 -13
  47. package/dist/esm/utxo/utxo_chain.js.map +1 -1
  48. package/docs/CONNECTIONS.md +33 -0
  49. package/docs/EIP7702.md +77 -0
  50. package/docs/JITO.md +41 -0
  51. package/docs/MULTI_RPC.md +28 -0
  52. package/package.json +1 -1
@@ -57,6 +57,7 @@ const ERC20_ABI = [
57
57
  const ERC20_INTERFACE = new ethers_1.Interface(ERC20_ABI);
58
58
  class EvmChain extends chain_base_ts_1.Chain {
59
59
  rpcUrl;
60
+ rpcUrls;
60
61
  supportsEip1559;
61
62
  hasL1Fee;
62
63
  /**
@@ -74,6 +75,7 @@ class EvmChain extends chain_base_ts_1.Chain {
74
75
  * `nativeTransferGasLimit`.
75
76
  */
76
77
  nativeTransferGasMultiplier;
78
+ supports7702;
77
79
  _nativeToken;
78
80
  _provider = null;
79
81
  _resolvedRpcUrl = null;
@@ -90,10 +92,15 @@ class EvmChain extends chain_base_ts_1.Chain {
90
92
  }
91
93
  super(init.chainId, init.name, network_type_ts_1.NetworkType.EVM, init.blockTimeSeconds, init.nativeSymbol, init.explorerBaseUrl);
92
94
  this.rpcUrl = init.rpcUrl;
95
+ this.rpcUrls = init.rpcUrls ?? [];
96
+ if (this.rpcUrls.length > 1) {
97
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EvmChainInit.rpcUrls accepts only ONE endpoint in 0.3.0 (got ${this.rpcUrls.length}). Automatic failover retry is deferred to a follow-up release; passing >1 endpoint would silently discard entries.`, { chainId: init.chainId });
98
+ }
93
99
  this.supportsEip1559 = init.supportsEip1559 ?? true;
94
100
  this.hasL1Fee = init.hasL1Fee ?? false;
95
101
  this.nativeTransferGasLimit = init.nativeTransferGasLimit ?? 21000;
96
102
  this.nativeTransferGasMultiplier = init.nativeTransferGasMultiplier ?? 1.4;
103
+ this.supports7702 = init.supports7702 ?? false;
97
104
  this._nativeToken = evm_token_ts_1.EvmToken.native(init.chainId, init.nativeSymbol, init.nativeDecimals ?? 18);
98
105
  // NOTE: no `registerNonEvmChain(id, EVM)` call — a module-scope write on
99
106
  // 48 pre-baked chains would let a consumer's earlier
@@ -236,6 +243,13 @@ class EvmChain extends chain_base_ts_1.Chain {
236
243
  readRpcUrl() {
237
244
  if (this.rpcUrl && this.rpcUrl.trim().length > 0)
238
245
  return this.rpcUrl.trim();
246
+ if (this.rpcUrls.length > 0) {
247
+ for (const candidate of this.rpcUrls) {
248
+ if (candidate && candidate.trim().length > 0)
249
+ return candidate.trim();
250
+ }
251
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcNotConfigured, `${this.name}: rpcUrls was supplied but every entry is blank; refusing to fall back to env or public defaults`, { chainId: this.chainId });
252
+ }
239
253
  const env = globalThis.process?.env;
240
254
  const candidates = envCandidatesFor(this.name, this.chainId);
241
255
  for (const key of candidates) {
@@ -243,7 +257,7 @@ class EvmChain extends chain_base_ts_1.Chain {
243
257
  if (value && value.trim().length > 0)
244
258
  return value.trim();
245
259
  }
246
- throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcNotConfigured, `${this.name} RPC URL is not configured (pass rpcUrl at construction, or set one of: ${candidates.join(', ')})`, { chainId: this.chainId, envCandidates: candidates });
260
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcNotConfigured, `${this.name} RPC URL is not configured (pass rpcUrl, rpcUrls at construction, or set one of: ${candidates.join(', ')})`, { chainId: this.chainId, envCandidates: candidates });
247
261
  }
248
262
  rpcHost() {
249
263
  const url = this._resolvedRpcUrl ?? this.rpcUrl;
@@ -279,6 +293,15 @@ class EvmChain extends chain_base_ts_1.Chain {
279
293
  return false;
280
294
  }
281
295
  }
296
+ normalizeAddressOrThrow(raw, field) {
297
+ const body = raw.replace(/^0[xX]/, '');
298
+ try {
299
+ return (0, ethers_1.getAddress)(`0x${body}`);
300
+ }
301
+ catch (err) {
302
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM address for ${field}: ${raw}`, { chainId: this.chainId, address: raw }, err instanceof Error ? err : undefined);
303
+ }
304
+ }
282
305
  validateTokenIdentifier(raw) {
283
306
  if (raw === undefined)
284
307
  return true;
@@ -377,7 +400,323 @@ class EvmChain extends chain_base_ts_1.Chain {
377
400
  throw this.rpcError('Failed to read chain tip', err);
378
401
  }
379
402
  }
380
- async getTransactionStatus(txHash) {
403
+ async broadcast(signed, opts) {
404
+ if (opts && opts.signal !== undefined) {
405
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.FeatureNotSupported, `EVM broadcast: signal is not honored in 0.3.0 (silently ignoring would let a caller conclude 'not sent' while the tx still lands). Cancellation returns in 0.3.1.`, { chainId: this.chainId });
406
+ }
407
+ let hex;
408
+ if (typeof signed === 'string') {
409
+ const stripped = signed.startsWith('0x') ? signed.slice(2) : signed;
410
+ if (!/^[0-9a-fA-F]+$/.test(stripped) || stripped.length % 2 !== 0 || stripped.length === 0) {
411
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EVM broadcast: signed transaction must be 0x-prefixed hex or Uint8Array (got malformed string of length ${signed.length})`, { chainId: this.chainId });
412
+ }
413
+ hex = `0x${stripped}`;
414
+ }
415
+ else {
416
+ if (signed.length === 0) {
417
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EVM broadcast: signed transaction bytes are empty`, { chainId: this.chainId });
418
+ }
419
+ hex = (0, ethers_1.hexlify)(signed);
420
+ }
421
+ try {
422
+ const resp = await this.getProvider().broadcastTransaction(hex);
423
+ return resp.hash;
424
+ }
425
+ catch (err) {
426
+ const rawMsg = (err instanceof Error ? err.message : String(err)).toLowerCase();
427
+ if (/already[-_ ]?known|known\s+transaction|transaction[-_ ]?already[-_ ]?known|already\s+in\s+(?:the\s+)?(?:mempool|pool)|already[-_ ]?present/.test(rawMsg)) {
428
+ // Node "already known" is authoritative for THAT node's mempool —
429
+ // the identical signed bytes are pending or landed. Return the
430
+ // deterministic hash so the consumer stays on the polling path.
431
+ // Do NOT gate on a follow-up getTransaction read: load-balanced
432
+ // providers (Alchemy/Infura/QuickNode round-robin) routinely serve
433
+ // the confirmation read from a different backend that has not yet
434
+ // seen the pending tx → null → falsely-terminal BroadcastRejected
435
+ // → consumer re-signs against a fresh nonce → double-send while
436
+ // the original is live. If the tx really never lands, the
437
+ // consumer's getTransactionStatus poll will surface NotFound and
438
+ // the safe-broadcast rule (re-broadcast same bytes, never re-sign)
439
+ // still applies. Matches SolanaChain/UtxoChain already-known paths.
440
+ return (0, ethers_1.keccak256)(hex);
441
+ }
442
+ throw this.classifyBroadcastError(err);
443
+ }
444
+ }
445
+ async getPendingNonce(address) {
446
+ if (!this.validateAddress(address)) {
447
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM address for getPendingNonce: ${address}`, { chainId: this.chainId, address });
448
+ }
449
+ const normalized = this.normalizeAddressOrThrow(address, 'getPendingNonce.address');
450
+ try {
451
+ const n = await this.getProvider().getTransactionCount(normalized, 'pending');
452
+ return BigInt(n);
453
+ }
454
+ catch (err) {
455
+ throw this.rpcError(`Failed to read pending nonce for ${normalized}`, err, { address: normalized });
456
+ }
457
+ }
458
+ async getDelegation(address) {
459
+ if (!this.supports7702) {
460
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.FeatureNotSupported, `EVM chain ${this.name} was not initialized with supports7702: true`, { chainId: this.chainId });
461
+ }
462
+ try {
463
+ (0, ethers_1.getAddress)(address);
464
+ }
465
+ catch (err) {
466
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM address: ${address}`, { chainId: this.chainId, address }, err instanceof Error ? err : undefined);
467
+ }
468
+ let code;
469
+ try {
470
+ code = await this.getProvider().getCode(address);
471
+ }
472
+ catch (err) {
473
+ throw this.rpcError(`Failed to read code for ${address}`, err, { address });
474
+ }
475
+ if (!code.startsWith('0x'))
476
+ return null;
477
+ const stripped = code.slice(2).toLowerCase();
478
+ if (stripped.length !== 46)
479
+ return null;
480
+ if (!stripped.startsWith('ef0100'))
481
+ return null;
482
+ return { delegate: (0, ethers_1.getAddress)(`0x${stripped.slice(6)}`) };
483
+ }
484
+ async call(req) {
485
+ if (!this.validateAddress(req.to)) {
486
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM 'to' address for call: ${req.to}`, { chainId: this.chainId, address: req.to });
487
+ }
488
+ if (req.from !== undefined && !this.validateAddress(req.from)) {
489
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM 'from' address for call: ${req.from}`, { chainId: this.chainId, address: req.from });
490
+ }
491
+ if (!/^0x([0-9a-fA-F]{2})*$/.test(req.data)) {
492
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EvmCallRequest.data must be 0x-prefixed even-length hex`, { chainId: this.chainId });
493
+ }
494
+ const provider = this.getProvider();
495
+ const tx = {
496
+ to: this.normalizeAddressOrThrow(req.to, 'call.to'),
497
+ data: req.data,
498
+ from: req.from === undefined ? undefined : this.normalizeAddressOrThrow(req.from, 'call.from'),
499
+ value: req.value,
500
+ };
501
+ if (req.estimateGas && req.blockTag !== undefined) {
502
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EvmChain.call: blockTag is not honored when estimateGas: true (ethers v6 eth_estimateGas has no block-tag plumbing). Split the call: use estimateGas without blockTag, or drop estimateGas to run eth_call at the tag.`, { chainId: this.chainId });
503
+ }
504
+ try {
505
+ if (req.estimateGas) {
506
+ const g = await provider.estimateGas(tx);
507
+ return { gasEstimate: BigInt(g) };
508
+ }
509
+ const result = await provider.call(req.blockTag !== undefined ? { ...tx, blockTag: req.blockTag } : tx);
510
+ return { result };
511
+ }
512
+ catch (err) {
513
+ const strCode = ethersErrCode(err);
514
+ const rawData = err.data
515
+ ?? err.info?.error?.data;
516
+ const revertData = typeof rawData === 'string' && /^0x[0-9a-fA-F]*$/.test(rawData) ? rawData : undefined;
517
+ if (strCode === 'CALL_EXCEPTION' || revertData !== undefined) {
518
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.SimulationFailed, (0, errors_ts_1.sanitizeMessage)(`eth_${req.estimateGas ? 'estimateGas' : 'call'} on ${req.to} reverted`, this._resolvedRpcUrl), { chainId: this.chainId, revertData }, (0, errors_ts_1.sanitizeCause)(err, this._resolvedRpcUrl));
519
+ }
520
+ if (strCode === 'INSUFFICIENT_FUNDS') {
521
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InsufficientFunds, (0, errors_ts_1.sanitizeMessage)(`eth_${req.estimateGas ? 'estimateGas' : 'call'} on ${req.to}: insufficient funds`, this._resolvedRpcUrl), { chainId: this.chainId }, (0, errors_ts_1.sanitizeCause)(err, this._resolvedRpcUrl));
522
+ }
523
+ throw this.rpcError(`eth_${req.estimateGas ? 'estimateGas' : 'call'} on ${req.to} failed`, err);
524
+ }
525
+ }
526
+ buildAuthorizationDigest(input) {
527
+ if (!this.supports7702) {
528
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.FeatureNotSupported, `EVM chain ${this.name} was not initialized with supports7702: true`, { chainId: this.chainId });
529
+ }
530
+ if (input.chainId !== this.chainId) {
531
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization chainId ${input.chainId} does not match ${this.chainId}. Cross-chain replay guard: chainId=0 wildcards are rejected by default.`, { chainId: this.chainId });
532
+ }
533
+ if (input.nonce < 0n) {
534
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization nonce must be >= 0`, { chainId: this.chainId });
535
+ }
536
+ let normalizedDelegate;
537
+ try {
538
+ normalizedDelegate = (0, ethers_1.getAddress)(input.delegate);
539
+ }
540
+ catch (err) {
541
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `buildAuthorizationDigest: delegate is not a valid EVM address: ${input.delegate}`, { chainId: this.chainId, address: input.delegate }, err instanceof Error ? err : undefined);
542
+ }
543
+ const rlp = (0, ethers_1.encodeRlp)([
544
+ (0, ethers_1.toBeArray)(BigInt(input.chainId)),
545
+ normalizedDelegate,
546
+ (0, ethers_1.toBeArray)(input.nonce),
547
+ ]);
548
+ const payload = (0, ethers_1.concat)(['0x05', rlp]);
549
+ return (0, ethers_1.getBytes)((0, ethers_1.keccak256)(payload));
550
+ }
551
+ async createUnsignedTransaction(req) {
552
+ if (req && req.signal !== undefined) {
553
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.FeatureNotSupported, `EVM createUnsignedTransaction: signal is not honored in 0.3.0 (silently ignoring would let a caller conclude 'not built' while the blockhash fetch/build proceeds against stale state). Cancellation returns in 0.3.1.`, { chainId: this.chainId });
554
+ }
555
+ if (!req.from) {
556
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'CreateEvmUnsignedTransactionRequest.from is required', { chainId: this.chainId });
557
+ }
558
+ if (!this.validateAddress(req.from)) {
559
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM 'from' address (fails EIP-55 checksum or byte length): ${req.from}`, { chainId: this.chainId, address: req.from });
560
+ }
561
+ if (!req.to) {
562
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'CreateEvmUnsignedTransactionRequest.to is required', { chainId: this.chainId });
563
+ }
564
+ if (!this.validateAddress(req.to)) {
565
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Invalid EVM 'to' address (fails EIP-55 checksum or byte length): ${req.to}`, { chainId: this.chainId, address: req.to });
566
+ }
567
+ if (req.data !== undefined && !/^0x([0-9a-fA-F]{2})*$/.test(req.data)) {
568
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateEvmUnsignedTransactionRequest.data must be a 0x-prefixed even-length hex string`, { chainId: this.chainId });
569
+ }
570
+ if (req.authorizationList !== undefined) {
571
+ if (!Array.isArray(req.authorizationList) || req.authorizationList.length === 0) {
572
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'authorizationList must be a non-empty array when provided', { chainId: this.chainId });
573
+ }
574
+ if (!this.supports7702) {
575
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.FeatureNotSupported, `EVM chain ${this.name} was not initialized with supports7702: true`, { chainId: this.chainId });
576
+ }
577
+ for (let i = 0; i < req.authorizationList.length; i++) {
578
+ const auth = req.authorizationList[i];
579
+ if (auth.chainId !== this.chainId) {
580
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization[${i}].chainId ${auth.chainId} does not match ${this.chainId}. Cross-chain replay guard: chainId=0 wildcards are rejected by default.`, { chainId: this.chainId });
581
+ }
582
+ if (!this.validateAddress(auth.address)) {
583
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `Authorization[${i}].address is not a valid EVM address: ${auth.address}`, { chainId: this.chainId, address: auth.address });
584
+ }
585
+ if (typeof auth.nonce !== 'bigint' || auth.nonce < 0n) {
586
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization[${i}].nonce must be a non-negative bigint (got ${typeof auth.nonce})`, { chainId: this.chainId });
587
+ }
588
+ const sig = auth.signature;
589
+ if (!sig || typeof sig !== 'object'
590
+ || typeof sig.r !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(sig.r)
591
+ || typeof sig.s !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(sig.s)
592
+ || (sig.yParity !== 0 && sig.yParity !== 1)) {
593
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization[${i}].signature must be { r: 0x + 64-hex, s: 0x + 64-hex, yParity: 0 | 1 }`, { chainId: this.chainId });
594
+ }
595
+ const rBig = BigInt(sig.r);
596
+ const sBig = BigInt(sig.s);
597
+ if (rBig === 0n || sBig === 0n) {
598
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization[${i}].signature: r and s must both be non-zero`, { chainId: this.chainId });
599
+ }
600
+ // EIP-2 low-s canonical form. An authorization with s > secp256k1n/2
601
+ // is silently rejected by the EVM at execution — tx lands, gas is
602
+ // spent, no delegation installed. Catch at build time.
603
+ const SECP256K1_HALF_N = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0n;
604
+ if (sBig > SECP256K1_HALF_N) {
605
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `Authorization[${i}].signature.s violates EIP-2 low-s canonical form (s must be <= secp256k1n/2). Non-canonical authorizations are silently skipped by the EVM.`, { chainId: this.chainId });
606
+ }
607
+ }
608
+ }
609
+ if (!this.supportsEip1559 && (req.maxFeePerGas !== undefined || req.maxPriorityFeePerGas !== undefined)) {
610
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `EVM chain ${this.name} is legacy (supportsEip1559=false); maxFeePerGas/maxPriorityFeePerGas are not accepted. Use gasPrice via UnsignedEvmTransaction consumers.`, { chainId: this.chainId });
611
+ }
612
+ const emittedType = req.authorizationList !== undefined ? 4 : this.supportsEip1559 ? 2 : 0;
613
+ return new unsigned_evm_transaction_ts_1.UnsignedEvmTransaction({
614
+ chainId: this.chainId,
615
+ from: this.normalizeAddressOrThrow(req.from, 'createUnsignedTransaction.from'),
616
+ to: this.normalizeAddressOrThrow(req.to, 'createUnsignedTransaction.to'),
617
+ value: req.value ?? 0n,
618
+ data: req.data ?? '0x',
619
+ type: emittedType,
620
+ authorizationList: req.authorizationList,
621
+ gasLimit: req.gasLimit,
622
+ nonce: req.nonce,
623
+ maxFeePerGas: req.maxFeePerGas,
624
+ maxPriorityFeePerGas: req.maxPriorityFeePerGas,
625
+ });
626
+ }
627
+ classifyBroadcastError(err) {
628
+ const rpc = this._resolvedRpcUrl;
629
+ const strCode = ethersErrCode(err);
630
+ const numCode = errCode(err);
631
+ const rawMsg = err instanceof Error ? err.message : String(err);
632
+ const msg = rawMsg.toLowerCase();
633
+ const safeCause = (0, errors_ts_1.sanitizeCause)(err, rpc);
634
+ if (strCode === 'NONCE_EXPIRED' || msg.includes('nonce too low') || msg.includes('nonce_too_low') || msg.includes('nonce has already been used')) {
635
+ return new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.NonceTooLow, (0, errors_ts_1.sanitizeMessage)(`EVM broadcast rejected: nonce too low on ${this.name}`, rpc), { chainId: this.chainId, rpcHost: this.rpcHost() }, safeCause);
636
+ }
637
+ if (strCode === 'INSUFFICIENT_FUNDS' || msg.includes('insufficient funds')) {
638
+ return new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InsufficientFunds, (0, errors_ts_1.sanitizeMessage)(`EVM broadcast rejected: insufficient funds on ${this.name}`, rpc), { chainId: this.chainId, rpcHost: this.rpcHost() }, safeCause);
639
+ }
640
+ if (strCode === 'REPLACEMENT_UNDERPRICED' || msg.includes('replacement') || msg.includes('underpriced')) {
641
+ return new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.BroadcastRejected, (0, errors_ts_1.sanitizeMessage)(`EVM broadcast rejected on ${this.name} (replacement/known-nonce)`, rpc), { chainId: this.chainId, rpcHost: this.rpcHost() }, safeCause);
642
+ }
643
+ const rateLimitCodes = new Set([-32005, -32007, -32016, -32029, 429]);
644
+ if (numCode !== undefined && rateLimitCodes.has(numCode)) {
645
+ return this.rpcError(`EVM broadcast rate-limited on ${this.name}`, err);
646
+ }
647
+ const transportSignals = /econnreset|econnrefused|econnaborted|etimedout|enotfound|network request failed|fetch failed|socket hang up|too\s+many\s+requests|rate.?limit|network error/;
648
+ const httpStatus = err.info?.status
649
+ ?? err.status;
650
+ const isTransportHttp = typeof httpStatus === 'number' && (httpStatus === 429 || httpStatus === 502 || httpStatus === 503 || httpStatus === 504);
651
+ if (transportSignals.test(msg) || isTransportHttp
652
+ || strCode === 'NETWORK_ERROR' || strCode === 'SERVER_ERROR' || strCode === 'TIMEOUT') {
653
+ return this.rpcError(`EVM broadcast transport failure on ${this.name}`, err);
654
+ }
655
+ // Default terminal: any unrecognized rejection is a node reject, NOT a
656
+ // transient transport failure. This matches Solana/UTXO defaults and
657
+ // prevents a relayer retry-loop from re-broadcasting a permanently-
658
+ // invalid tx forever.
659
+ return new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.BroadcastRejected, (0, errors_ts_1.sanitizeMessage)(`EVM broadcast rejected on ${this.name}`, rpc), { chainId: this.chainId, rpcHost: this.rpcHost() }, safeCause);
660
+ }
661
+ async getTransactionStatus(txHash, opts) {
662
+ if (Array.isArray(txHash)) {
663
+ return runBatchStatus(txHash, (h, batchSignal) => {
664
+ const composedSignal = opts?.signal
665
+ ? anySignal(opts.signal, batchSignal)
666
+ : batchSignal;
667
+ return this.getSingleTransactionStatus(h, { ...opts, signal: composedSignal });
668
+ });
669
+ }
670
+ return this.getSingleTransactionStatus(txHash, opts);
671
+ }
672
+ async getSingleTransactionStatus(txHash, opts) {
673
+ if (opts?.confirmations !== undefined && opts.confirmations > 1 && !opts.wait) {
674
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `getTransactionStatus: confirmations > 1 requires wait: true (a single status read cannot enforce block depth)`, { chainId: this.chainId, txHash });
675
+ }
676
+ if (!opts?.wait)
677
+ return this.getTransactionStatusOnce(txHash);
678
+ if (opts.signal?.aborted) {
679
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `getTransactionStatus aborted before first poll`, { chainId: this.chainId, txHash });
680
+ }
681
+ if (opts.timeoutMs === undefined) {
682
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `getTransactionStatus: wait: true requires an explicit timeoutMs. Unbounded polling would pin an RPC worker + connection forever if the tx is dropped.`, { chainId: this.chainId, txHash });
683
+ }
684
+ if (opts.timeoutMs < 0) {
685
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `getTransactionStatus: timeoutMs must be >= 0`, { chainId: this.chainId, txHash });
686
+ }
687
+ const deadline = Date.now() + opts.timeoutMs;
688
+ const pollMs = Math.max(500, this.blockTimeSeconds * 1000);
689
+ const minConfirmations = Math.max(1, opts.confirmations ?? 1);
690
+ let last;
691
+ while (true) {
692
+ last = await this.getTransactionStatusOnce(txHash);
693
+ if (last.status === 'Success' || last.status === 'Failed') {
694
+ if (minConfirmations <= 1)
695
+ return last;
696
+ let tip;
697
+ try {
698
+ tip = await this.getProvider().getBlockNumber();
699
+ }
700
+ catch (err) {
701
+ throw this.rpcError(`Failed to read chain tip for confirmations check`, err, { txHash });
702
+ }
703
+ const depth = last.blockNumber === null ? 0 : tip - last.blockNumber + 1;
704
+ if (depth >= minConfirmations)
705
+ return last;
706
+ if (Date.now() >= deadline) {
707
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcError, `getTransactionStatus timed out after ${opts.timeoutMs}ms with only ${depth} confirmation(s); required ${minConfirmations}. Consumer must NOT credit as final.`, { chainId: this.chainId, txHash });
708
+ }
709
+ }
710
+ else if (Date.now() >= deadline) {
711
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcError, `getTransactionStatus timed out after ${opts.timeoutMs}ms; last observed status was ${last.status}. Consumer must NOT credit as final AND must NOT re-sign — the tx may still land. Re-broadcast the same signed bytes or continue polling with the same txHash.`, { chainId: this.chainId, txHash });
712
+ }
713
+ await interruptibleSleep(pollMs, opts.signal);
714
+ if (opts.signal?.aborted) {
715
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `getTransactionStatus aborted mid-poll`, { chainId: this.chainId, txHash });
716
+ }
717
+ }
718
+ }
719
+ async getTransactionStatusOnce(txHash) {
381
720
  const provider = this.getProvider();
382
721
  let tx = null;
383
722
  let receipt = null;
@@ -473,6 +812,7 @@ class EvmChain extends chain_base_ts_1.Chain {
473
812
  inclusionAt,
474
813
  error: errorInfo,
475
814
  fees,
815
+ blockNumber: receipt.blockNumber,
476
816
  });
477
817
  }
478
818
  // Only allocated on the Success path — failed txs carry logs: null.
@@ -499,6 +839,7 @@ class EvmChain extends chain_base_ts_1.Chain {
499
839
  balanceChanges,
500
840
  logs,
501
841
  fees,
842
+ blockNumber: receipt.blockNumber,
502
843
  });
503
844
  }
504
845
  async decodeBalanceChanges(args) {
@@ -683,6 +1024,84 @@ function stringifyErr(err) {
683
1024
  return err.message;
684
1025
  return String(err);
685
1026
  }
1027
+ const BATCH_STATUS_CONCURRENCY = 8;
1028
+ async function runBatchStatus(items, fetchOne) {
1029
+ const results = new Array(items.length);
1030
+ const ac = new AbortController();
1031
+ let cursor = 0;
1032
+ const workers = [];
1033
+ const spawn = async () => {
1034
+ while (!ac.signal.aborted) {
1035
+ const idx = cursor++;
1036
+ if (idx >= items.length)
1037
+ return;
1038
+ try {
1039
+ results[idx] = await fetchOne(items[idx], ac.signal);
1040
+ }
1041
+ catch (err) {
1042
+ ac.abort();
1043
+ throw err;
1044
+ }
1045
+ }
1046
+ };
1047
+ const workerCount = Math.min(BATCH_STATUS_CONCURRENCY, items.length);
1048
+ for (let i = 0; i < workerCount; i++)
1049
+ workers.push(spawn());
1050
+ await Promise.all(workers);
1051
+ return results;
1052
+ }
1053
+ function anySignal(a, b) {
1054
+ if (typeof AbortSignal.any === 'function')
1055
+ return AbortSignal.any([a, b]);
1056
+ const ac = new AbortController();
1057
+ const onAbort = () => ac.abort();
1058
+ if (a.aborted || b.aborted)
1059
+ ac.abort();
1060
+ else {
1061
+ a.addEventListener('abort', onAbort, { once: true });
1062
+ b.addEventListener('abort', onAbort, { once: true });
1063
+ }
1064
+ return ac.signal;
1065
+ }
1066
+ async function interruptibleSleep(ms, signal) {
1067
+ if (signal?.aborted)
1068
+ return;
1069
+ await new Promise((resolve) => {
1070
+ const t = setTimeout(() => {
1071
+ signal?.removeEventListener('abort', onAbort);
1072
+ resolve();
1073
+ }, ms);
1074
+ const onAbort = () => {
1075
+ clearTimeout(t);
1076
+ resolve();
1077
+ };
1078
+ signal?.addEventListener('abort', onAbort, { once: true });
1079
+ });
1080
+ }
1081
+ function errCode(err) {
1082
+ if (typeof err !== 'object' || err === null)
1083
+ return undefined;
1084
+ const e = err;
1085
+ const candidates = [
1086
+ typeof e.code === 'number' ? e.code : undefined,
1087
+ e.error?.code,
1088
+ e.info?.error?.code,
1089
+ typeof e.code === 'string' && /^-?\d+$/.test(e.code) ? e.code : undefined,
1090
+ ];
1091
+ for (const raw of candidates) {
1092
+ if (typeof raw === 'number')
1093
+ return raw;
1094
+ if (typeof raw === 'string' && /^-?\d+$/.test(raw))
1095
+ return Number(raw);
1096
+ }
1097
+ return undefined;
1098
+ }
1099
+ function ethersErrCode(err) {
1100
+ if (typeof err !== 'object' || err === null)
1101
+ return undefined;
1102
+ const e = err;
1103
+ return typeof e.code === 'string' ? e.code : undefined;
1104
+ }
686
1105
  function envCandidatesFor(name, chainId) {
687
1106
  const normalized = name.replace(/ /g, '_').toUpperCase() + '_RPC_URL';
688
1107
  return [normalized, `EVM_${chainId}_RPC_URL`];
@@ -1 +1 @@
1
- {"version":3,"file":"evm_chain.js","sourceRoot":"","sources":["../../../evm/evm_chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm_chain.js","sourceRoot":"","sources":["../../../evm/evm_chain.ts"],"names":[],"mappings":"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"}