@origintrail-official/dkg-chain 10.0.4 → 10.0.5

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 (39) hide show
  1. package/abi/PublishingConviction.json +132 -0
  2. package/dist/endpoint-stickiness.d.ts +104 -0
  3. package/dist/endpoint-stickiness.d.ts.map +1 -0
  4. package/dist/endpoint-stickiness.js +141 -0
  5. package/dist/endpoint-stickiness.js.map +1 -0
  6. package/dist/evm-adapter-base.d.ts +23 -0
  7. package/dist/evm-adapter-base.d.ts.map +1 -1
  8. package/dist/evm-adapter-base.js +54 -4
  9. package/dist/evm-adapter-base.js.map +1 -1
  10. package/dist/evm-adapter-constants.d.ts +16 -0
  11. package/dist/evm-adapter-constants.d.ts.map +1 -1
  12. package/dist/evm-adapter-constants.js +16 -0
  13. package/dist/evm-adapter-constants.js.map +1 -1
  14. package/dist/evm-adapter-context-graph.d.ts.map +1 -1
  15. package/dist/evm-adapter-context-graph.js +10 -1
  16. package/dist/evm-adapter-context-graph.js.map +1 -1
  17. package/dist/evm-adapter-conviction.d.ts.map +1 -1
  18. package/dist/evm-adapter-conviction.js +55 -2
  19. package/dist/evm-adapter-conviction.js.map +1 -1
  20. package/dist/evm-adapter-events.d.ts +10 -0
  21. package/dist/evm-adapter-events.d.ts.map +1 -1
  22. package/dist/evm-adapter-events.js +11 -1
  23. package/dist/evm-adapter-events.js.map +1 -1
  24. package/dist/hub-rotation-poller.d.ts.map +1 -1
  25. package/dist/hub-rotation-poller.js +11 -3
  26. package/dist/hub-rotation-poller.js.map +1 -1
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/rpc-failover-client.d.ts +65 -4
  32. package/dist/rpc-failover-client.d.ts.map +1 -1
  33. package/dist/rpc-failover-client.js +115 -38
  34. package/dist/rpc-failover-client.js.map +1 -1
  35. package/dist/rpc-failover-log.d.ts +11 -0
  36. package/dist/rpc-failover-log.d.ts.map +1 -1
  37. package/dist/rpc-failover-log.js +40 -1
  38. package/dist/rpc-failover-log.js.map +1 -1
  39. package/package.json +3 -3
@@ -73,6 +73,27 @@
73
73
  "name": "InvalidAmount",
74
74
  "type": "error"
75
75
  },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "uint256",
80
+ "name": "fromEpoch",
81
+ "type": "uint256"
82
+ },
83
+ {
84
+ "internalType": "uint256",
85
+ "name": "toEpoch",
86
+ "type": "uint256"
87
+ },
88
+ {
89
+ "internalType": "uint256",
90
+ "name": "currentEpoch",
91
+ "type": "uint256"
92
+ }
93
+ ],
94
+ "name": "InvalidCollectionRange",
95
+ "type": "error"
96
+ },
76
97
  {
77
98
  "inputs": [
78
99
  {
@@ -181,6 +202,11 @@
181
202
  "name": "PrimaryNodeUnchanged",
182
203
  "type": "error"
183
204
  },
205
+ {
206
+ "inputs": [],
207
+ "name": "TreasuryNotSet",
208
+ "type": "error"
209
+ },
184
210
  {
185
211
  "inputs": [
186
212
  {
@@ -403,6 +429,43 @@
403
429
  "name": "CostCovered",
404
430
  "type": "event"
405
431
  },
432
+ {
433
+ "anonymous": false,
434
+ "inputs": [
435
+ {
436
+ "indexed": true,
437
+ "internalType": "uint256",
438
+ "name": "accountId",
439
+ "type": "uint256"
440
+ },
441
+ {
442
+ "indexed": false,
443
+ "internalType": "uint40",
444
+ "name": "fromWindow",
445
+ "type": "uint40"
446
+ },
447
+ {
448
+ "indexed": false,
449
+ "internalType": "uint40",
450
+ "name": "toWindow",
451
+ "type": "uint40"
452
+ },
453
+ {
454
+ "indexed": false,
455
+ "internalType": "uint96",
456
+ "name": "scheduled",
457
+ "type": "uint96"
458
+ },
459
+ {
460
+ "indexed": false,
461
+ "internalType": "uint96",
462
+ "name": "treasuryFee",
463
+ "type": "uint96"
464
+ }
465
+ ],
466
+ "name": "EmissionScheduled",
467
+ "type": "event"
468
+ },
406
469
  {
407
470
  "anonymous": false,
408
471
  "inputs": [
@@ -459,6 +522,31 @@
459
522
  "name": "ToppedUp",
460
523
  "type": "event"
461
524
  },
525
+ {
526
+ "anonymous": false,
527
+ "inputs": [
528
+ {
529
+ "indexed": false,
530
+ "internalType": "uint256",
531
+ "name": "fromEpoch",
532
+ "type": "uint256"
533
+ },
534
+ {
535
+ "indexed": false,
536
+ "internalType": "uint256",
537
+ "name": "toEpoch",
538
+ "type": "uint256"
539
+ },
540
+ {
541
+ "indexed": false,
542
+ "internalType": "uint96",
543
+ "name": "amount",
544
+ "type": "uint96"
545
+ }
546
+ ],
547
+ "name": "TreasuryEmissionCollected",
548
+ "type": "event"
549
+ },
462
550
  {
463
551
  "anonymous": false,
464
552
  "inputs": [
@@ -522,6 +610,19 @@
522
610
  "stateMutability": "view",
523
611
  "type": "function"
524
612
  },
613
+ {
614
+ "inputs": [],
615
+ "name": "TREASURY_SHARD_ID",
616
+ "outputs": [
617
+ {
618
+ "internalType": "uint256",
619
+ "name": "",
620
+ "type": "uint256"
621
+ }
622
+ ],
623
+ "stateMutability": "view",
624
+ "type": "function"
625
+ },
525
626
  {
526
627
  "inputs": [],
527
628
  "name": "chronos",
@@ -548,6 +649,24 @@
548
649
  "stateMutability": "nonpayable",
549
650
  "type": "function"
550
651
  },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "uint256",
656
+ "name": "fromEpoch",
657
+ "type": "uint256"
658
+ },
659
+ {
660
+ "internalType": "uint256",
661
+ "name": "toEpoch",
662
+ "type": "uint256"
663
+ }
664
+ ],
665
+ "name": "collectTreasuryEmission",
666
+ "outputs": [],
667
+ "stateMutability": "nonpayable",
668
+ "type": "function"
669
+ },
551
670
  {
552
671
  "inputs": [],
553
672
  "name": "convictionStakingStorage",
@@ -770,6 +889,19 @@
770
889
  "stateMutability": "nonpayable",
771
890
  "type": "function"
772
891
  },
892
+ {
893
+ "inputs": [
894
+ {
895
+ "internalType": "uint256[]",
896
+ "name": "accountIds",
897
+ "type": "uint256[]"
898
+ }
899
+ ],
900
+ "name": "migrateEmissionSchedule",
901
+ "outputs": [],
902
+ "stateMutability": "nonpayable",
903
+ "type": "function"
904
+ },
773
905
  {
774
906
  "inputs": [],
775
907
  "name": "name",
@@ -0,0 +1,104 @@
1
+ /**
2
+ * `EndpointStickiness` — the transport-ordering preference state machine extracted
3
+ * from `RpcFailoverClient` (Mechanism B, #1340 retry residual + #1337 policy-read
4
+ * fail-close). It owns the "prefer the last-good backend, re-probe the primary at
5
+ * most once per TTL" decision as a single, typed, testable unit so the four
6
+ * per-endpoint failover loops don't each hand-wire the ordering + outcome
7
+ * bookkeeping.
8
+ *
9
+ * It is PURE TRANSPORT-ORDERING state — it never signs, broadcasts, holds a WAL /
10
+ * serializer / nonce, or gates a return. It only decides which endpoint each loop
11
+ * TRIES FIRST and remembers where the last op succeeded. Callers pass a
12
+ * {@link StickinessIntent} describing the operation; the state machine encodes all
13
+ * the transition rules that were previously scattered boolean parameters:
14
+ *
15
+ * State: `none` | `preferred{ url, source: 'read' | 'write', primaryProbeDueAt }`
16
+ * - `source` distinguishes a preference proven by a READ from one proven by a
17
+ * nonce-critical POPULATE. A read-established backend may lag the signer's
18
+ * pending-nonce state, so a `nonceWrite` (populate) MUST NOT start there —
19
+ * it re-derives nonce from canonical (primary-first = authoritative) until a
20
+ * populate proves the backend.
21
+ *
22
+ * Intents:
23
+ * - `stickyRead` — a normal read: prefer the last-good backend (either source).
24
+ * - `transparentRead` — a TIP-sensitive read (current head / latest block):
25
+ * canonical order AND no state mutation (a lagging preferred would make the
26
+ * tip non-monotonic; and it must not clear a preference the heavy paths rely on).
27
+ * - `nonceWrite` — `populateAndSign`: prefer ONLY a WRITE-proven backend.
28
+ * - `write` — `broadcast` / `getReceipt`: nonce-free, prefer the
29
+ * last-good backend; BUT if the primary takes over a write as a fallback
30
+ * (the preferred backend failed the write op), the preferred backend's nonce
31
+ * view is now stale, so downgrade `source` write→read.
32
+ *
33
+ * All methods are synchronous, so concurrent ops on one instance can only observe
34
+ * a slightly stale order, never torn state.
35
+ */
36
+ /** Minimal endpoint shape the ordering needs — keyed on `rpcUrl` (survives a live
37
+ * provider-pool rebind, unlike a positional index). */
38
+ export interface StickyEndpoint {
39
+ rpcUrl: string;
40
+ }
41
+ export type StickinessIntent = 'stickyRead' | 'transparentRead' | 'nonceWrite' | 'write';
42
+ export interface StickinessConfig {
43
+ /** Monotonic-ish clock (ms). Injected for deterministic cadence tests. */
44
+ now: () => number;
45
+ /** Primary re-probe cadence (ms). */
46
+ ttlMs: number;
47
+ /** LIVE kill-switch predicate — resolved at the CONFIG boundary (e.g. the
48
+ * adapter reads `DKG_DISABLE_RPC_STICKINESS`), so the transport core has no
49
+ * process-global dependency. */
50
+ isEnabled: () => boolean;
51
+ /** Optional host-only observability hook fired once per establishment edge. */
52
+ onEstablished?: (rpcUrl: string) => void;
53
+ }
54
+ export declare class EndpointStickiness {
55
+ private readonly cfg;
56
+ private state;
57
+ constructor(cfg: StickinessConfig);
58
+ /** Whether a preference is currently active (test/introspection helper). */
59
+ hasPreference(): boolean;
60
+ /**
61
+ * Decide the per-op iteration order over `canonical` (the live configured order,
62
+ * index 0 = primary). Returns canonical unless a compatible preference is active
63
+ * and inside the current re-probe window, in which case the preferred endpoint is
64
+ * MOVED to the front (spliced out + unshifted — never duplicated, so fall-through
65
+ * still visits every endpoint exactly once). A `transparentRead` always uses
66
+ * canonical; a `nonceWrite` uses canonical unless the preference is WRITE-proven.
67
+ * When the re-probe deadline has passed this op probes the primary first AND
68
+ * re-arms the deadline `+ttlMs` (at most one primary re-stall per TTL).
69
+ */
70
+ order<T extends StickyEndpoint>(canonical: T[], intent: StickinessIntent): T[];
71
+ /**
72
+ * Record that `endpoint` served the op (intent) successfully, `triedFirst` = it
73
+ * was the first endpoint attempted (loop index 0). No-op for `transparentRead`
74
+ * or when disabled. Encodes every transition:
75
+ * - primary succeeded, tried FIRST → CLEAR (a genuine canonical/TTL re-probe
76
+ * proved the primary healthy again).
77
+ * - primary succeeded as a WRITE fallback → the preferred backend failed the
78
+ * write op and the tx moved to the primary, so the backend's nonce view is
79
+ * stale → downgrade `source` write→read (keeps the read-preference, but the
80
+ * next `nonceWrite` re-derives nonce from canonical). NOT for reads (a read
81
+ * reaching the primary as a fallback doesn't advance the nonce, and
82
+ * downgrading could break a legitimate read-your-write allowance re-read).
83
+ * - a backend succeeded → establish (arm the deadline + fire `onEstablished`)
84
+ * or silently re-point; `source` = 'write' for a populate, else 'read'. A
85
+ * later populate on the SAME preferred upgrades 'read'→'write'.
86
+ */
87
+ recordSuccess<T extends StickyEndpoint>(endpoint: T, canonical: T[], intent: StickinessIntent, triedFirst: boolean): void;
88
+ /**
89
+ * Record that `endpoint` FAILED the op (errored → triggered failover), so the
90
+ * failover loop is moving on to the next endpoint. If the failed endpoint is the
91
+ * current preferred, DE-PREFER it (drop to `none`): a degraded/hanging preferred
92
+ * backup must not keep being tried first, or every subsequent op re-stalls on it
93
+ * until the TTL re-probe — reintroducing the very fail-close this cadence exists
94
+ * to prevent, just with the backup as the staller. A later success re-establishes
95
+ * the new last-good backend. No-op for `transparentRead` (non-mutating) or when
96
+ * the failed endpoint isn't the preferred (e.g. a re-probe where the PRIMARY
97
+ * fails is expected and must not disturb the preference). This is called ONLY on
98
+ * a real error/failover, NOT on a benign `null` (e.g. getReceipt's not-yet-mined
99
+ * null continues the loop without a failover), so a healthy-but-empty backup
100
+ * stays preferred.
101
+ */
102
+ recordFailure<T extends StickyEndpoint>(endpoint: T, intent: StickinessIntent): void;
103
+ }
104
+ //# sourceMappingURL=endpoint-stickiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-stickiness.d.ts","sourceRoot":"","sources":["../src/endpoint-stickiness.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;wDACwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,iBAAiB,GAAG,YAAY,GAAG,OAAO,CAAC;AAMzF,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd;;qCAEiC;IACjC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,KAAK,CAAiC;gBAEjB,GAAG,EAAE,gBAAgB;IAElD,4EAA4E;IAC5E,aAAa,IAAI,OAAO;IAIxB;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,SAAS,cAAc,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,CAAC,EAAE;IAoC9E;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,CAAC,SAAS,cAAc,EACpC,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EAAE,EACd,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,OAAO,GAClB,IAAI;IAyCP;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;CAMrF"}
@@ -0,0 +1,141 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export class EndpointStickiness {
3
+ cfg;
4
+ state = { kind: 'none' };
5
+ constructor(cfg) {
6
+ this.cfg = cfg;
7
+ }
8
+ /** Whether a preference is currently active (test/introspection helper). */
9
+ hasPreference() {
10
+ return this.state.kind === 'preferred';
11
+ }
12
+ /**
13
+ * Decide the per-op iteration order over `canonical` (the live configured order,
14
+ * index 0 = primary). Returns canonical unless a compatible preference is active
15
+ * and inside the current re-probe window, in which case the preferred endpoint is
16
+ * MOVED to the front (spliced out + unshifted — never duplicated, so fall-through
17
+ * still visits every endpoint exactly once). A `transparentRead` always uses
18
+ * canonical; a `nonceWrite` uses canonical unless the preference is WRITE-proven.
19
+ * When the re-probe deadline has passed this op probes the primary first AND
20
+ * re-arms the deadline `+ttlMs` (at most one primary re-stall per TTL).
21
+ */
22
+ order(canonical, intent) {
23
+ if (intent === 'transparentRead' || !this.cfg.isEnabled() || this.state.kind !== 'preferred') {
24
+ return canonical;
25
+ }
26
+ const pref = this.state; // narrowed to the 'preferred' variant
27
+ // A nonce-critical populate must not START on a backend proven only by a READ
28
+ // (it may lag the signer's pending nonce → a stale-nonce sign → phantom
29
+ // `nonce too low` success). Fall back to canonical (authoritative nonce).
30
+ if (intent === 'nonceWrite' && pref.source !== 'write')
31
+ return canonical;
32
+ const idx = canonical.findIndex((e) => e.rpcUrl === pref.url);
33
+ // idx < 0: preferred no longer configured (pool rebind dropped it).
34
+ // idx === 0: preferred IS the primary — canonical already tries it first.
35
+ if (idx <= 0)
36
+ return canonical;
37
+ // The TTL re-probe is a READ-recovery mechanism (only `stickyRead`): it
38
+ // periodically re-tries the configured primary so a recovered primary resumes
39
+ // serving reads. It must NOT redirect ANY write — a primary can be
40
+ // transport-healthy while still behind the block/txpool state that advanced the
41
+ // signer nonce, so (a) a `nonceWrite` populate there would sign a stale/duplicate
42
+ // nonce, and (b) a `write` broadcast/receipt there would split a backup-signed tx
43
+ // across endpoints and a lagging primary could reject the backup's nonce
44
+ // terminally before the loop reaches the backup. Writes therefore keep the
45
+ // write-proven backend past the TTL; they return to the primary only once a READ
46
+ // re-probe CLEARS the preference on primary recovery (or the backend fails, see
47
+ // recordFailure).
48
+ if (intent === 'stickyRead' && this.cfg.now() >= pref.primaryProbeDueAt) {
49
+ // Re-probe the configured primary this op; schedule the next re-probe one TTL
50
+ // out so we don't re-stall on it again until then.
51
+ this.state = { ...pref, primaryProbeDueAt: this.cfg.now() + this.cfg.ttlMs };
52
+ return canonical;
53
+ }
54
+ const reordered = canonical.slice();
55
+ const [preferred] = reordered.splice(idx, 1);
56
+ reordered.unshift(preferred);
57
+ return reordered;
58
+ }
59
+ /**
60
+ * Record that `endpoint` served the op (intent) successfully, `triedFirst` = it
61
+ * was the first endpoint attempted (loop index 0). No-op for `transparentRead`
62
+ * or when disabled. Encodes every transition:
63
+ * - primary succeeded, tried FIRST → CLEAR (a genuine canonical/TTL re-probe
64
+ * proved the primary healthy again).
65
+ * - primary succeeded as a WRITE fallback → the preferred backend failed the
66
+ * write op and the tx moved to the primary, so the backend's nonce view is
67
+ * stale → downgrade `source` write→read (keeps the read-preference, but the
68
+ * next `nonceWrite` re-derives nonce from canonical). NOT for reads (a read
69
+ * reaching the primary as a fallback doesn't advance the nonce, and
70
+ * downgrading could break a legitimate read-your-write allowance re-read).
71
+ * - a backend succeeded → establish (arm the deadline + fire `onEstablished`)
72
+ * or silently re-point; `source` = 'write' for a populate, else 'read'. A
73
+ * later populate on the SAME preferred upgrades 'read'→'write'.
74
+ */
75
+ recordSuccess(endpoint, canonical, intent, triedFirst) {
76
+ if (intent === 'transparentRead' || !this.cfg.isEnabled())
77
+ return;
78
+ const primaryUrl = canonical[0]?.rpcUrl;
79
+ const isPopulate = intent === 'nonceWrite';
80
+ const isWriteOp = intent === 'nonceWrite' || intent === 'write';
81
+ if (endpoint.rpcUrl === primaryUrl) {
82
+ if (triedFirst) {
83
+ this.state = { kind: 'none' };
84
+ }
85
+ else if (isWriteOp && this.state.kind === 'preferred' && this.state.source === 'write') {
86
+ this.state = { ...this.state, source: 'read' };
87
+ }
88
+ return;
89
+ }
90
+ if (this.state.kind !== 'preferred') {
91
+ this.state = {
92
+ kind: 'preferred',
93
+ url: endpoint.rpcUrl,
94
+ source: isPopulate ? 'write' : 'read',
95
+ primaryProbeDueAt: this.cfg.now() + this.cfg.ttlMs,
96
+ };
97
+ this.cfg.onEstablished?.(endpoint.rpcUrl);
98
+ }
99
+ else if (this.state.url !== endpoint.rpcUrl) {
100
+ // Re-point to a different backup (the old one also degraded, or was dropped
101
+ // by a live pool rebind). Keep an in-window deadline (a hop within an ongoing
102
+ // degradation episode, already counted at establishment — no new
103
+ // `onEstablished`), BUT if the carried-over deadline has already EXPIRED, arm
104
+ // a fresh one: otherwise a rebind that swaps in a new backup while the old
105
+ // deadline is stale would re-probe the primary on EVERY subsequent op (the
106
+ // collapse-to-index-0 this cadence exists to prevent).
107
+ const primaryProbeDueAt = this.cfg.now() >= this.state.primaryProbeDueAt
108
+ ? this.cfg.now() + this.cfg.ttlMs
109
+ : this.state.primaryProbeDueAt;
110
+ this.state = { ...this.state, url: endpoint.rpcUrl, source: isPopulate ? 'write' : 'read', primaryProbeDueAt };
111
+ }
112
+ else if (isPopulate && this.state.source !== 'write') {
113
+ // Same preferred backend, now PROVEN nonce-safe by a populate → upgrade.
114
+ // Never DOWNGRADE on a read (a read hitting the write-proven backend doesn't
115
+ // un-prove its nonce view).
116
+ this.state = { ...this.state, source: 'write' };
117
+ }
118
+ }
119
+ /**
120
+ * Record that `endpoint` FAILED the op (errored → triggered failover), so the
121
+ * failover loop is moving on to the next endpoint. If the failed endpoint is the
122
+ * current preferred, DE-PREFER it (drop to `none`): a degraded/hanging preferred
123
+ * backup must not keep being tried first, or every subsequent op re-stalls on it
124
+ * until the TTL re-probe — reintroducing the very fail-close this cadence exists
125
+ * to prevent, just with the backup as the staller. A later success re-establishes
126
+ * the new last-good backend. No-op for `transparentRead` (non-mutating) or when
127
+ * the failed endpoint isn't the preferred (e.g. a re-probe where the PRIMARY
128
+ * fails is expected and must not disturb the preference). This is called ONLY on
129
+ * a real error/failover, NOT on a benign `null` (e.g. getReceipt's not-yet-mined
130
+ * null continues the loop without a failover), so a healthy-but-empty backup
131
+ * stays preferred.
132
+ */
133
+ recordFailure(endpoint, intent) {
134
+ if (intent === 'transparentRead' || !this.cfg.isEnabled())
135
+ return;
136
+ if (this.state.kind === 'preferred' && this.state.url === endpoint.rpcUrl) {
137
+ this.state = { kind: 'none' };
138
+ }
139
+ }
140
+ }
141
+ //# sourceMappingURL=endpoint-stickiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-stickiness.js","sourceRoot":"","sources":["../src/endpoint-stickiness.ts"],"names":[],"mappings":"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"}
@@ -470,6 +470,29 @@ export declare class EVMChainAdapterBase {
470
470
  * the policy/classifier via `opts`.
471
471
  */
472
472
  protected readProvider<T>(label: string, fn: (provider: JsonRpcProvider) => Promise<T>, opts?: ReadOpts): Promise<T>;
473
+ /**
474
+ * Raw PROVIDER read for a TIP-SENSITIVE value — the current head / `latest`
475
+ * block / any read that must stay canonical-fresh and preference-transparent
476
+ * (a lagging endpoint-stickiness backend would make the tip non-monotonic
477
+ * across calls). This is the POSITIVE freshness intent at the call site, so
478
+ * callers pick `readTipProvider` by meaning instead of remembering the
479
+ * transport-internal `skipPreferred` opt-out on a plain `readProvider`.
480
+ */
481
+ protected readTipProvider<T>(label: string, fn: (provider: JsonRpcProvider) => Promise<T>, opts?: ReadOpts): Promise<T>;
482
+ /**
483
+ * Raw PROVIDER read whose `null` is a "not on this endpoint (yet)" signal, not a
484
+ * definitive answer. A `null` FAILS OVER to the other endpoints (a lagging
485
+ * endpoint must not hide an object a healthy one has) WITHOUT de-preferring that
486
+ * endpoint or emitting failover/exhaustion telemetry — because an empty result is
487
+ * not a transport failure. Returns the first NON-null result, or `null` only when
488
+ * EVERY endpoint returned `null` and none had a real transport error. A
489
+ * non-retryable provider error (e.g. `INVALID_ARGUMENT`) or a genuine transport
490
+ * exhaustion PROPAGATES — never masked as `null`. The empty-vs-error distinction
491
+ * (and thus the order-independent all-null decision) is handled by the transport
492
+ * loop via `ReadOpts.isEmptyResult`, so no sentinel exception is tunnelled
493
+ * through the generic failover/telemetry path.
494
+ */
495
+ protected readProviderRetryingNull<T>(label: string, fn: (provider: JsonRpcProvider) => Promise<T>, opts?: ReadOpts): Promise<T | null>;
473
496
  /**
474
497
  * Rebind a CONTRACT to a `provider` for one per-endpoint VIEW read, leaving the
475
498
  * boot-bound `this.contracts.*` handle untouched. The sole remaining base caller
@@ -1 +1 @@
1
- {"version":3,"file":"evm-adapter-base.d.ts","sourceRoot":"","sources":["../src/evm-adapter-base.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAgO,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIpS,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAiC,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG9E,KAAK,mBAAmB,GAAG,CACzB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,KAClC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAExC,KAAK,4BAA4B,GAAG;IAClC,uBAAuB,EAAE,mBAAmB,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,KAAK,0BAA0B,GAAG;KAC/B,CAAC,IAAI,MAAM,aAAa,GAAG,SAAS,SAAS,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3E,CAAC,MAAM,aAAa,CAAC,CAAC;AAEvB,KAAK,mBAAmB,GAAG,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAE1E,KAAK,4BAA4B,GAC7B;IAAE,WAAW,EAAE,mBAAmB,CAAC;IAAC,oBAAoB,CAAC,EAAE,KAAK,CAAA;CAAE,GAClE;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,oBAAoB,EAAE,IAAI,CAAA;CAAE,CAAC;AAiC/D,cAAM,eAAe;IAMjB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAPlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;gBAGgB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM;IAGpC,SAAS,CACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC;IAWlB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAK/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,KAAK;CAQd;AA0BD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAGtC,CAAC;AAEF,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAgBlD,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACnE,oBAAoB,CAAC,uBAAuB,CAAC,CAkB/C;AAgND;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC/C;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAClF,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAErF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,wBAAwB,CAAC;IAClC,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACD;IACE,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,gGAAgG;IAChG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACD;IACE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,gGAAgG;IAChG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEN,qBAAa,mBAAmB;IAC9B,uCAAuC;IACvC,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAU;IAEpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IAE7C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAErC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAE3C;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAClD,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IAE7C,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAE5D,qEAAqE;IACrE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,oFAAoF;IACpF,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAExC,sEAAsE;IACtE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAExC,SAAS,CAAC,WAAW,SAAK;IAE1B,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAqB;IAElE;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,kBAAyB;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,QAAQ,CAAC,8BAA8B,cAAqB;IAEtE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAE/C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAE1D;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAEvD;;;;;OAKG;IAKH,SAAS,CAAC,QAAQ,CAAC,YAAY;gBAA6B,MAAM,GAAG,IAAI;kBAAY,MAAM;cAAQ,MAAM,GAAG,IAAI;gBAAU,MAAM;OAAM;IAEtI,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAElD,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAEnC,SAAS,CAAC,WAAW,UAAS;IAE9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IAEhG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,SAAiB;IAEtE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,SAAa;IAErE;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,EAAG,eAAe,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,YAAY,eAAsB;IAErD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAEzE,SAAS,CAAC,6BAA6B,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE9D,SAAS,CAAC,8BAA8B,SAAK;IAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAkB;IAE5D,SAAS,CAAC,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAEzE,SAAS,CAAC,QAAQ,CAAC,kCAAkC;eAE1C,MAAM;kBAAY,MAAM;OAC/B;IAEJ,SAAS,CAAC,QAAQ,CAAC,4CAA4C,wCAG3D;IAEJ,SAAS,CAAC,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAE9E,SAAS,CAAC,2BAA2B,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAEvF;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAE/E,SAAS,CAAC,QAAQ,CAAC,8BAA8B,EAAE,8BAA8B,CAAC;IAElF;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAEnD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAElD;;;;;;OAMG;IACH,+BAA+B,IAAI,IAAI;IAUvC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1D,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7E,SAAS,CAAC,gCAAgC,IAAI,IAAI;cAKlC,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,OAAO,CAAC;cAUH,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAgB3D,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAI1D,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS7E,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAClC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GACV,OAAO;gBAKE,MAAM,EAAE,gBAAgB;IA0OpC,wDAAwD;IACxD,SAAS,CAAC,UAAU,IAAI,MAAM;IAM9B,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,SAAS,CAAC,sCAAsC,CAC9C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAIhB;;;OAGG;IACH,SAAS,CAAC,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAItG;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,EAC5B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,CAAC;IAMb;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,CAAC,CAAC;IAOb;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,CAAC,EACtB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC7C,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,CAAC,CAAC;IAOb;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,QAAQ;cAIxE,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;cAuBrB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,CAAC,kBAAkB,GACnC,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAOhD;;;;;;;OAOG;cACa,uCAAuC,CACrD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,SAAS,GAAG,QAAQ,EAC5B,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,mBAA6D,GAC5E,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;cA6ChC,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAyBrC;;;;;;;;;;;;;;;;;;OAkBG;cACa,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,GAAG,QAAQ,EAC3B,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,EAC7E,aAAa,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EACnG,aAAa,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,KAAK,GACnD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;cAqBrB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,CAAC,kBAAkB,EACpC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAKrC;;;;;;;OAOG;cACa,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhD;;;;;OAKG;cACa,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAMrC;;;OAGG;cACa,yBAAyB,CAAC,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,OAAO,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,CAAC,CAAC;YAeC,+BAA+B;IAuC7C;;;;;;;;;;;;;;;;;OAiBG;cACa,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAKf,KAAK,UAAQ,EACb,cAAc,GAAE,mBAA6D,GAC5E,OAAO,CAAC,IAAI,CAAC;IAqEhB;;;;;;;;OAQG;cACa,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;;;;;;;OAaG;cACa,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8DrE;;;;;;OAMG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3G;;;;;;;;;;OAUG;cACa,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyC3D;;;;;;;;;OASG;cACa,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,CAAC;IAyClB;;;;;;;;;;;OAWG;cACa,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACjD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;OAIG;cACa,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACjD,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;;;;;;OAaG;cACa,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBnG;;;;;;;;;;;;OAYG;cACa,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAA;KAAE,GACzE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;YAyB5C,iBAAiB;YAcjB,eAAe;IAa7B;gEAC4D;cAC5C,+BAA+B,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IASpF;;;;;OAKG;cACa,qCAAqC,CACnD,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,eAAe,GAAE,MAAW,GAC3B,OAAO,CAAC,OAAO,CAAC;IAkCnB;;;;;;;;OAQG;cACa,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxG;;;;;;;OAOG;IACH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAQrD,gEAAgE;IAChE,kBAAkB,IAAI,MAAM,EAAE;IAI9B,mEAAmE;IACnE,wBAAwB,IAAI,MAAM;IAIlC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;cAIhC,kBAAkB,CAAC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;cAO1E,2BAA2B,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;cASvD,iBAAiB,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;cAS7C,eAAe,CAC7B,eAAe,EAAE,QAAQ,EACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;cAOH,qBAAqB,CACnC,eAAe,EAAE,QAAQ,EACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAOb,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAM1E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;cAqBlE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqBtF;;;;;;;OAOG;IACH,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;cAOxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAyBrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA+G9C,SAAS,CAAC,SAAS,IAAI,IAAI;cASX,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASjE,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAQhC,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC;IAOrD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyH9D;;;;;;;;;;;;;OAaG;YACW,kBAAkB;cAqBhB,kBAAkB,CAChC,YAAY,EAAE,QAAQ,EACtB,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,EAC1C,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,EACzC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC;IAqE5F;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;cACa,2BAA2B,CACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;KAC5C,CAAC;cAQc,kBAAkB,CAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;KAC5C,CAAC;cA4Bc,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;IAiHF;;;;;;;;;OASG;YACW,sBAAsB;IAoC9B,kCAAkC,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBrD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;cAoBtB,sCAAsC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAkClG;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4TpF,gBAAgB,IAAI,MAAM;IAI1B,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,OAAO;IAI1B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,WAAW,IAAI,eAAe;IAI9B;;;;;;;;OAQG;IACH,eAAe,IAAI,eAAe;IAIlC,UAAU,IAAI,MAAM,EAAE;IAItB;;;;;;OAMG;IACH,aAAa,IAAI,cAAc;IAIzB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IASlD;;;;;;;;;;;;;;;OAeG;cACa,iBAAiB,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC;IAgB7E;;;;;;;;;;;;OAYG;cACa,kCAAkC,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC;IAU9F;;;;;;;;OAQG;cACa,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IActE;;;;;;;;;;;;;;;;;;;;OAoBG;cACa,oBAAoB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAezE;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAS9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAczD,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWvD,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;IAIpF,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;IAQ1E,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAS1C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAS7C,SAAS,CAAC,0BAA0B,IAAI,QAAQ;IAWhD;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"evm-adapter-base.d.ts","sourceRoot":"","sources":["../src/evm-adapter-base.ts"],"names":[],"mappings":"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"}
@@ -786,7 +786,13 @@ export class EVMChainAdapterBase {
786
786
  // `this.chainId` is assigned later in this constructor (after the client is
787
787
  // built), so pass a LIVE thunk — resolved at metric-record time — rather
788
788
  // than capturing the still-undefined field value here.
789
- () => this.chainId, async (endpoint) => { await this.ensureConfiguredStaticChainIdValidated(endpoint.provider); });
789
+ () => this.chainId, {
790
+ validateEndpoint: async (endpoint) => { await this.ensureConfiguredStaticChainIdValidated(endpoint.provider); },
791
+ // Endpoint-stickiness config. The kill-switch is resolved HERE at the config
792
+ // boundary (LIVE per-check so flipping the env + restart disables it) so the
793
+ // transport core stays free of any process-global dependency.
794
+ stickiness: { isEnabled: () => process.env.DKG_DISABLE_RPC_STICKINESS !== '1' },
795
+ });
790
796
  this.hubRotationPoller = new HubRotationPoller({
791
797
  readProvider: (label, fn, opts) => this.readProvider(label, fn, opts),
792
798
  intervalMs: HUB_ROTATION_POLL_INTERVAL_MS,
@@ -963,6 +969,33 @@ export class EVMChainAdapterBase {
963
969
  rpcUsageConsumer: opts?.rpcUsageConsumer ?? label,
964
970
  });
965
971
  }
972
+ /**
973
+ * Raw PROVIDER read for a TIP-SENSITIVE value — the current head / `latest`
974
+ * block / any read that must stay canonical-fresh and preference-transparent
975
+ * (a lagging endpoint-stickiness backend would make the tip non-monotonic
976
+ * across calls). This is the POSITIVE freshness intent at the call site, so
977
+ * callers pick `readTipProvider` by meaning instead of remembering the
978
+ * transport-internal `skipPreferred` opt-out on a plain `readProvider`.
979
+ */
980
+ readTipProvider(label, fn, opts) {
981
+ return this.readProvider(label, fn, { ...opts, skipPreferred: true });
982
+ }
983
+ /**
984
+ * Raw PROVIDER read whose `null` is a "not on this endpoint (yet)" signal, not a
985
+ * definitive answer. A `null` FAILS OVER to the other endpoints (a lagging
986
+ * endpoint must not hide an object a healthy one has) WITHOUT de-preferring that
987
+ * endpoint or emitting failover/exhaustion telemetry — because an empty result is
988
+ * not a transport failure. Returns the first NON-null result, or `null` only when
989
+ * EVERY endpoint returned `null` and none had a real transport error. A
990
+ * non-retryable provider error (e.g. `INVALID_ARGUMENT`) or a genuine transport
991
+ * exhaustion PROPAGATES — never masked as `null`. The empty-vs-error distinction
992
+ * (and thus the order-independent all-null decision) is handled by the transport
993
+ * loop via `ReadOpts.isEmptyResult`, so no sentinel exception is tunnelled
994
+ * through the generic failover/telemetry path.
995
+ */
996
+ readProviderRetryingNull(label, fn, opts) {
997
+ return this.readProvider(label, fn, { ...opts, isEmptyResult: (v) => v == null });
998
+ }
966
999
  /**
967
1000
  * Rebind a CONTRACT to a `provider` for one per-endpoint VIEW read, leaving the
968
1001
  * boot-bound `this.contracts.*` handle untouched. The sole remaining base caller
@@ -1892,8 +1925,21 @@ export class EVMChainAdapterBase {
1892
1925
  }
1893
1926
  }
1894
1927
  async getBlockTimestamp(blockNumber) {
1895
- const block = await this.readProvider('getBlock', (p) => p.getBlock(blockNumber));
1896
- return block?.timestamp ?? 0;
1928
+ // A CONCRETE (already-mined receipt) block — NOT the tip, so it uses normal
1929
+ // endpoint stickiness (the endpoint that produced the receipt is the one most
1930
+ // likely to already have the block). It is NOT a `skipPreferred` tip read:
1931
+ // forcing canonical/primary-first here would instead risk querying a lagging
1932
+ // primary that returns `null` for a block a healthy backup already has, and
1933
+ // `null` isn't a retryable transport error, so it would surface as a bogus
1934
+ // `blockTimestamp: 0`. Treat a `null` block as a FAILOVER condition so another
1935
+ // endpoint that has the block can serve it; only if EVERY endpoint lacks it (or
1936
+ // transport is down) do we fall back to the best-effort `0` callers tolerate.
1937
+ // A `null` block (this endpoint hasn't imported it yet) fails over to another
1938
+ // endpoint that has it; best-effort `0` only when EVERY endpoint lacks it and
1939
+ // no transport error occurred. Non-retryable / transport-exhaustion errors
1940
+ // propagate (never masked as a bogus `0`). Order-independent — see the helper.
1941
+ const block = await this.readProviderRetryingNull('getBlock', (p) => p.getBlock(blockNumber));
1942
+ return block?.timestamp != null ? Number(block.timestamp) : 0;
1897
1943
  }
1898
1944
  // =====================================================================
1899
1945
  // Identity
@@ -2638,7 +2684,11 @@ export class EVMChainAdapterBase {
2638
2684
  return !!this.contracts.randomSampling && !!this.contracts.randomSamplingStorage;
2639
2685
  }
2640
2686
  async getBlockNumber() {
2641
- return this.readProvider('getBlockNumber', (p) => p.getBlockNumber());
2687
+ // TIP-SENSITIVE: the current head drives the event-lane cursor, proof-
2688
+ // challenge block, and finalization reads. A lagging sticky backend would
2689
+ // make the head non-monotonic across calls (poller moving backwards / re-
2690
+ // scanning), so read canonical-order + preference-transparent.
2691
+ return this.readTipProvider('getBlockNumber', (p) => p.getBlockNumber());
2642
2692
  }
2643
2693
  getProvider() {
2644
2694
  return this.primaryProvider;