@sentio/sdk 4.4.0-rc.1 → 4.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEzE,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK1C,eAAO,MAAM,aAAa,iBAA2C,CAAA;AAcrE,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe,CAqCjE;AAmCD,qBAAa,2BAA4B,SAAQ,eAAe;;IAC9D,QAAQ,EAAE,MAAM,CAAA;gBAcJ,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI;IAMxE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAoF7C,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAsD3F,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,KAAK;IAiBzE,QAAQ;CAGT"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEzE,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK1C,eAAO,MAAM,aAAa,iBAA2C,CAAA;AAcrE,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe,CAqCjE;AA4GD,qBAAa,2BAA4B,SAAQ,eAAe;;IAC9D,QAAQ,EAAE,MAAM,CAAA;gBAcJ,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI;IAMxE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAwF7C,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAsD3F,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,KAAK;IAiBzE,QAAQ;CAGT"}
@@ -42,6 +42,74 @@ export function getProvider(chainId) {
42
42
  providers.set(key, provider);
43
43
  return provider;
44
44
  }
45
+ // Default upper bound for a single RPC promise to settle, queue wait included.
46
+ // Deliberately above any sane queue+request latency and far below "stuck forever".
47
+ const DEFAULT_RPC_CALL_TIMEOUT_MS = 120_000;
48
+ // Read per call so tests (and operators) can adjust without a module reload.
49
+ function rpcCallTimeoutMs() {
50
+ const n = Number(process.env['RPC_CALL_TIMEOUT_MS']);
51
+ return Number.isFinite(n) && n > 0 ? n : DEFAULT_RPC_CALL_TIMEOUT_MS;
52
+ }
53
+ // Keep the diagnostic bounded: `what` may describe params with large calldata.
54
+ const TIMEOUT_WHAT_MAX = 120;
55
+ function timeoutError(ms, what) {
56
+ const bounded = what.length > TIMEOUT_WHAT_MAX ? `${what.slice(0, TIMEOUT_WHAT_MAX)}…(${what.length} chars)` : what;
57
+ const e = new Error(`rpc request did not settle within ${ms}ms: ${bounded}`);
58
+ e.code = 'TIMEOUT';
59
+ return e;
60
+ }
61
+ /**
62
+ * Run `task` on `executor` such that BOTH of these settle within the deadline:
63
+ *
64
+ * - the returned (outward) promise — a request whose transport dies without
65
+ * ever settling (half-dead keep-alive connection, a rejection lost inside a
66
+ * lower layer) must not hang its awaiters. For eth_call this is amplified by
67
+ * the in-flight promise cache: the pending promise is cached by tag, so one
68
+ * dead request would pin every later identical call, surviving even
69
+ * process-level retries (the replayed block issues the same call and awaits
70
+ * the same zombie promise);
71
+ * - the queue task itself — PQueue must always get its concurrency slot back.
72
+ * Racing only the outward promise would leave the never-settling task owning
73
+ * its slot forever, and after `concurrency` such zombies every later call
74
+ * could only time out in the queue.
75
+ *
76
+ * A task that only starts after the deadline rejects immediately, releasing
77
+ * the slot without touching the transport. A task still running when its
78
+ * remaining budget expires is abandoned; the orphaned transport promise gets a
79
+ * swallow-handler so a late rejection is never unhandled.
80
+ *
81
+ * The timeout error carries code 'TIMEOUT' so the existing eth_call retry
82
+ * path treats it exactly like an ethers transport timeout.
83
+ */
84
+ function boundedTask(executor, what, task) {
85
+ const ms = rpcCallTimeoutMs();
86
+ const enqueued = Date.now();
87
+ const settled = executor.add(() => {
88
+ const remaining = ms - (Date.now() - enqueued);
89
+ if (remaining <= 0) {
90
+ return Promise.reject(timeoutError(ms, what));
91
+ }
92
+ const running = task();
93
+ let timer;
94
+ const deadline = new Promise((_, reject) => {
95
+ timer = setTimeout(() => {
96
+ running.catch(() => { });
97
+ reject(timeoutError(ms, what));
98
+ }, remaining);
99
+ // A pending deadline must never keep the process alive on its own.
100
+ timer.unref?.();
101
+ });
102
+ return Promise.race([running, deadline]).finally(() => clearTimeout(timer));
103
+ });
104
+ // Bound the outward promise as well: with a saturated queue the task may not
105
+ // even have started by the deadline, but callers must still see settlement.
106
+ let timer;
107
+ const deadline = new Promise((_, reject) => {
108
+ timer = setTimeout(() => reject(timeoutError(ms, what)), ms);
109
+ timer.unref?.();
110
+ });
111
+ return Promise.race([settled, deadline]).finally(() => clearTimeout(timer));
112
+ }
45
113
  function getTag(prefix, value) {
46
114
  return (prefix +
47
115
  ':' +
@@ -88,7 +156,7 @@ export class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
88
156
  }
89
157
  async send(method, params) {
90
158
  if (method !== 'eth_call' || params.length > 2) {
91
- return await this.executor.add(() => super.send(method, params));
159
+ return await boundedTask(this.executor, method, () => super.send(method, params));
92
160
  }
93
161
  const tag = getTag(method, params);
94
162
  const block = params[params.length - 1];
@@ -97,7 +165,11 @@ export class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
97
165
  miss_count.add(1);
98
166
  const handler = metricsStorage.getStore();
99
167
  const queued = Date.now();
100
- perform = this.executor.add(() => {
168
+ // The bounded description (not the full tag): the tag embeds calldata.
169
+ const what = `eth_call to=${params[0]?.to} block=${block}`;
170
+ // boundedTask keeps the CACHED promise settleable: the cache must never
171
+ // hold a promise that can stay pending forever.
172
+ perform = boundedTask(this.executor, what, () => {
101
173
  const started = Date.now();
102
174
  processMetrics.processor_rpc_queue_duration.record(started - queued, {
103
175
  chain_id: this._network.chainId.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "4.4.0-rc.1",
3
+ "version": "4.4.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -97,8 +97,8 @@
97
97
  "typechain": "^8.3.2",
98
98
  "utility-types": "^3.11.0",
99
99
  "yaml": "^2.3.4",
100
- "@sentio/protos": "4.4.0-rc.1",
101
- "@sentio/runtime": "^4.4.0-rc.1"
100
+ "@sentio/protos": "4.4.0",
101
+ "@sentio/runtime": "^4.4.0"
102
102
  },
103
103
  "peerDependencies": {
104
104
  "tsdown": "^0.22.3"
@@ -60,6 +60,79 @@ export function getProvider(chainId?: EthChainId): JsonRpcProvider {
60
60
  return provider
61
61
  }
62
62
 
63
+ // Default upper bound for a single RPC promise to settle, queue wait included.
64
+ // Deliberately above any sane queue+request latency and far below "stuck forever".
65
+ const DEFAULT_RPC_CALL_TIMEOUT_MS = 120_000
66
+
67
+ // Read per call so tests (and operators) can adjust without a module reload.
68
+ function rpcCallTimeoutMs(): number {
69
+ const n = Number(process.env['RPC_CALL_TIMEOUT_MS'])
70
+ return Number.isFinite(n) && n > 0 ? n : DEFAULT_RPC_CALL_TIMEOUT_MS
71
+ }
72
+
73
+ // Keep the diagnostic bounded: `what` may describe params with large calldata.
74
+ const TIMEOUT_WHAT_MAX = 120
75
+
76
+ function timeoutError(ms: number, what: string): Error & { code: string } {
77
+ const bounded = what.length > TIMEOUT_WHAT_MAX ? `${what.slice(0, TIMEOUT_WHAT_MAX)}…(${what.length} chars)` : what
78
+ const e = new Error(`rpc request did not settle within ${ms}ms: ${bounded}`) as Error & { code: string }
79
+ e.code = 'TIMEOUT'
80
+ return e
81
+ }
82
+
83
+ /**
84
+ * Run `task` on `executor` such that BOTH of these settle within the deadline:
85
+ *
86
+ * - the returned (outward) promise — a request whose transport dies without
87
+ * ever settling (half-dead keep-alive connection, a rejection lost inside a
88
+ * lower layer) must not hang its awaiters. For eth_call this is amplified by
89
+ * the in-flight promise cache: the pending promise is cached by tag, so one
90
+ * dead request would pin every later identical call, surviving even
91
+ * process-level retries (the replayed block issues the same call and awaits
92
+ * the same zombie promise);
93
+ * - the queue task itself — PQueue must always get its concurrency slot back.
94
+ * Racing only the outward promise would leave the never-settling task owning
95
+ * its slot forever, and after `concurrency` such zombies every later call
96
+ * could only time out in the queue.
97
+ *
98
+ * A task that only starts after the deadline rejects immediately, releasing
99
+ * the slot without touching the transport. A task still running when its
100
+ * remaining budget expires is abandoned; the orphaned transport promise gets a
101
+ * swallow-handler so a late rejection is never unhandled.
102
+ *
103
+ * The timeout error carries code 'TIMEOUT' so the existing eth_call retry
104
+ * path treats it exactly like an ethers transport timeout.
105
+ */
106
+ function boundedTask<T>(executor: PQueue, what: string, task: () => Promise<T>): Promise<T> {
107
+ const ms = rpcCallTimeoutMs()
108
+ const enqueued = Date.now()
109
+ const settled = executor.add(() => {
110
+ const remaining = ms - (Date.now() - enqueued)
111
+ if (remaining <= 0) {
112
+ return Promise.reject(timeoutError(ms, what))
113
+ }
114
+ const running = task()
115
+ let timer: NodeJS.Timeout | undefined
116
+ const deadline = new Promise<never>((_, reject) => {
117
+ timer = setTimeout(() => {
118
+ running.catch(() => {})
119
+ reject(timeoutError(ms, what))
120
+ }, remaining)
121
+ // A pending deadline must never keep the process alive on its own.
122
+ timer.unref?.()
123
+ })
124
+ return Promise.race([running, deadline]).finally(() => clearTimeout(timer))
125
+ })
126
+ // Bound the outward promise as well: with a saturated queue the task may not
127
+ // even have started by the deadline, but callers must still see settlement.
128
+ let timer: NodeJS.Timeout | undefined
129
+ const deadline = new Promise<never>((_, reject) => {
130
+ timer = setTimeout(() => reject(timeoutError(ms, what)), ms)
131
+ timer.unref?.()
132
+ })
133
+ return Promise.race([settled, deadline]).finally(() => clearTimeout(timer)) as Promise<T>
134
+ }
135
+
63
136
  function getTag(prefix: string, value: any): string {
64
137
  return (
65
138
  prefix +
@@ -116,7 +189,7 @@ export class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
116
189
 
117
190
  async send(method: string, params: Array<any>): Promise<any> {
118
191
  if (method !== 'eth_call' || params.length > 2) {
119
- return await this.executor.add(() => super.send(method, params))
192
+ return await boundedTask(this.executor, method, () => super.send(method, params))
120
193
  }
121
194
  const tag = getTag(method, params)
122
195
  const block = params[params.length - 1]
@@ -125,7 +198,11 @@ export class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
125
198
  miss_count.add(1)
126
199
  const handler = metricsStorage.getStore()
127
200
  const queued: number = Date.now()
128
- perform = this.executor.add(() => {
201
+ // The bounded description (not the full tag): the tag embeds calldata.
202
+ const what = `eth_call to=${params[0]?.to} block=${block}`
203
+ // boundedTask keeps the CACHED promise settleable: the cache must never
204
+ // hold a promise that can stay pending forever.
205
+ perform = boundedTask(this.executor, what, () => {
129
206
  const started = Date.now()
130
207
  processMetrics.processor_rpc_queue_duration.record(started - queued, {
131
208
  chain_id: this._network.chainId.toString(),