@w3lib/solana-batch-call 0.2.1 → 0.2.2
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.
- package/CHANGELOG.md +5 -0
- package/dist/rpc.d.ts +3 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +70 -10
- package/dist/rpc.js.map +1 -1
- package/package.json +1 -1
- package/src/rpc.ts +77 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.2
|
|
4
|
+
|
|
5
|
+
- 修复:服务端临时故障(-32000 server busy / overloaded / temporarily unavailable / timeout,或 HTTP 5xx + -32603)不再暂停批量 10 分钟,按节点故障处理、换节点(与限频一样不降级,降级只会加重负载)。批量收到 5xx + -32603 时先重试一次批量(偶发故障这次就成功);仍失败时逐条发送,逐条成功说明节点用 5xx 拒绝批量,才暂停批量。5xx 下的其他错误(方法数量超限、账户数超限、参数错误、minContextSlot 等)照常按类型处理
|
|
6
|
+
- 说明(0.2.1 起的行为):ATA 模式下所属程序未知时,只统计与 mint 所属程序一致的那个 ATA;一个 mint 只属于一个程序,真实链上不会两个 ATA 同时有余额
|
|
7
|
+
|
|
3
8
|
## 0.2.1
|
|
4
9
|
|
|
5
10
|
- 只查主币余额时不再读回账户数据:`getSolBalances` 和单币模式(含 `getMultiBalances`)里的主币用 `getMultipleAccounts` + `dataSlice: { offset: 0, length: 0 }` 只取 lamports。原来钱包是数据很大的程序账户(如 105KB)时整份读回,并发查询会超时
|
package/dist/rpc.d.ts
CHANGED
|
@@ -17,7 +17,9 @@ export declare class HttpError extends Error {
|
|
|
17
17
|
readonly status: number | undefined;
|
|
18
18
|
/** 请求超时(HttpRpcOptions.timeout) */
|
|
19
19
|
readonly timeout: boolean;
|
|
20
|
-
|
|
20
|
+
/** 5xx 的响应体是 JSON-RPC 错误(服务端故障,或节点用 5xx 拒绝批量请求) */
|
|
21
|
+
readonly rpcError: boolean;
|
|
22
|
+
constructor(message: string, status?: number, timeout?: boolean, rpcError?: boolean);
|
|
21
23
|
}
|
|
22
24
|
/** JSON-RPC 错误码:节点高度还没到请求的 minContextSlot */
|
|
23
25
|
export declare const MIN_CONTEXT_SLOT_NOT_REACHED = -32016;
|
package/dist/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7E,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAwB;AACxB,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;gBAEf,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc.js
CHANGED
|
@@ -9,17 +9,42 @@ export class RpcError extends Error {
|
|
|
9
9
|
this.name = 'RpcError';
|
|
10
10
|
this.code = code;
|
|
11
11
|
this.data = data;
|
|
12
|
+
const kind = classifyRpcError(code, message);
|
|
12
13
|
this.nodeFault =
|
|
13
14
|
code === 403 ||
|
|
14
|
-
code === 429 ||
|
|
15
15
|
code === -32005 ||
|
|
16
|
-
// 节点高度没到 minContextSlot
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
// 节点高度没到 minContextSlot、限频、服务端临时故障(繁忙、过载、暂不可用、超时):换节点可能成功;
|
|
17
|
+
// 临时故障也不应据此关闭批量(降级只会加重负载)
|
|
18
|
+
kind === 'min-slot' ||
|
|
19
|
+
kind === 'rate-limited' ||
|
|
20
|
+
kind === 'transient' ||
|
|
21
|
+
(/forbidden|blocked|personal token|api.?key|too many|not allowed|unauthori[sz]ed|limit exceeded|disabled|not available|not supported/i.test(message) &&
|
|
22
|
+
kind !== 'too-many-accounts');
|
|
21
23
|
}
|
|
22
24
|
}
|
|
25
|
+
function classifyRpcError(code, message) {
|
|
26
|
+
if (METHOD_LIMIT.test(message))
|
|
27
|
+
return 'method-limit';
|
|
28
|
+
if (TOO_MANY_ACCOUNTS.test(message))
|
|
29
|
+
return 'too-many-accounts';
|
|
30
|
+
if (code === -32602)
|
|
31
|
+
return 'invalid-params';
|
|
32
|
+
if (code === MIN_CONTEXT_SLOT_NOT_REACHED || /minimum context slot/i.test(message))
|
|
33
|
+
return 'min-slot';
|
|
34
|
+
if (code === 429 || RATE_LIMITED.test(message))
|
|
35
|
+
return 'rate-limited';
|
|
36
|
+
if (TRANSIENT.test(message))
|
|
37
|
+
return 'transient';
|
|
38
|
+
if (code === -32603)
|
|
39
|
+
return 'internal';
|
|
40
|
+
return 'other';
|
|
41
|
+
}
|
|
42
|
+
/** 节点限制单个方法在批量里的数量(如 publicnode:“Maximum number of 'getMultipleAccounts' calls in a batch request is 1”) */
|
|
43
|
+
const METHOD_LIMIT = /maximum number of '([^']+)' calls in a batch request is (\d+)/i;
|
|
44
|
+
/** 限频的报错 */
|
|
45
|
+
const RATE_LIMITED = /rate.?limit|too many requests/i;
|
|
46
|
+
/** 服务端临时故障的报错(如 -32000 server is busy、-32603 + 503 overloaded) */
|
|
47
|
+
const TRANSIENT = /\bbusy\b|overload|temporar(il)?y|unavailable|try again|timed? ?out|timeout/i;
|
|
23
48
|
/** 节点限制单次 getMultipleAccounts 的账户数(如 “Too many accounts requested”):缩小每次的账户数后重试,不是节点故障 */
|
|
24
49
|
const TOO_MANY_ACCOUNTS = /too many accounts/i;
|
|
25
50
|
/** HTTP 层错误(非 2xx、网络错误、超时) */
|
|
@@ -27,11 +52,14 @@ export class HttpError extends Error {
|
|
|
27
52
|
status;
|
|
28
53
|
/** 请求超时(HttpRpcOptions.timeout) */
|
|
29
54
|
timeout;
|
|
30
|
-
|
|
55
|
+
/** 5xx 的响应体是 JSON-RPC 错误(服务端故障,或节点用 5xx 拒绝批量请求) */
|
|
56
|
+
rpcError;
|
|
57
|
+
constructor(message, status, timeout = false, rpcError = false) {
|
|
31
58
|
super(message);
|
|
32
59
|
this.name = 'HttpError';
|
|
33
60
|
this.status = status;
|
|
34
61
|
this.timeout = timeout;
|
|
62
|
+
this.rpcError = rpcError;
|
|
35
63
|
}
|
|
36
64
|
}
|
|
37
65
|
/** JSON-RPC 错误码:节点高度还没到请求的 minContextSlot */
|
|
@@ -201,7 +229,7 @@ export class HttpRpc {
|
|
|
201
229
|
* 记下限制并按限制重新分批,返回 true;限制解析不出或这批本来就没超限(避免无限重发)时返回 false
|
|
202
230
|
*/
|
|
203
231
|
async #retryWithMethodLimit(items, message) {
|
|
204
|
-
const match =
|
|
232
|
+
const match = METHOD_LIMIT.exec(message ?? '');
|
|
205
233
|
const method = match?.[1];
|
|
206
234
|
const limit = Number(match?.[2]);
|
|
207
235
|
if (!method || !Number.isFinite(limit) || limit < 1 || items.filter((item) => item.method === method).length <= limit) {
|
|
@@ -211,7 +239,8 @@ export class HttpRpc {
|
|
|
211
239
|
await Promise.all(this.#split(items).map((chunk) => this.#dispatch(chunk)));
|
|
212
240
|
return true;
|
|
213
241
|
}
|
|
214
|
-
|
|
242
|
+
/** retriedServerError:这一批已经因 5xx + JSON-RPC 错误重试过一次 */
|
|
243
|
+
async #dispatch(items, retriedServerError = false) {
|
|
215
244
|
if (items.length === 1 || !this.#batch) {
|
|
216
245
|
await Promise.all(items.map((item) => this.#single(item)));
|
|
217
246
|
return;
|
|
@@ -235,6 +264,24 @@ export class HttpRpc {
|
|
|
235
264
|
await Promise.all(items.map((item) => this.#single(item)));
|
|
236
265
|
return;
|
|
237
266
|
}
|
|
267
|
+
// 5xx + -32603(含义不明确:临时故障,或节点用 5xx 拒绝批量):先原样重试一次批量(偶发故障这次就成功了,不降级);
|
|
268
|
+
// 仍然失败时只用第一条单独试探——成功说明是批量本身被拒,暂停批量(10 分钟后重试)并逐条发送其余的;
|
|
269
|
+
// 失败则是临时故障,其余的直接报错(换节点),不给出问题的节点加量
|
|
270
|
+
if (err instanceof HttpError && err.rpcError && items.length > 1) {
|
|
271
|
+
if (!retriedServerError) {
|
|
272
|
+
await this.#dispatch(items, true);
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const [first, ...rest] = items;
|
|
276
|
+
if (await this.#single(first)) {
|
|
277
|
+
this.#disableBatch();
|
|
278
|
+
await Promise.all(rest.map((item) => this.#single(item)));
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
rest.forEach((item) => item.reject(err));
|
|
282
|
+
}
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
238
285
|
items.forEach((item) => item.reject(err));
|
|
239
286
|
return;
|
|
240
287
|
}
|
|
@@ -261,7 +308,7 @@ export class HttpRpc {
|
|
|
261
308
|
}
|
|
262
309
|
const byId = new Map(body.map((res) => [res.id, res]));
|
|
263
310
|
// 有的节点把 “方法数量超限” 放在批量结果的某一项里
|
|
264
|
-
const methodLimited = body.find((res) =>
|
|
311
|
+
const methodLimited = body.find((res) => METHOD_LIMIT.test(res.error?.message ?? ''));
|
|
265
312
|
if (methodLimited && (await this.#retryWithMethodLimit(items, methodLimited.error?.message))) {
|
|
266
313
|
return;
|
|
267
314
|
}
|
|
@@ -302,13 +349,16 @@ export class HttpRpc {
|
|
|
302
349
|
async #redispatch(items) {
|
|
303
350
|
await Promise.all(this.#split(items).map((chunk) => this.#dispatch(chunk)));
|
|
304
351
|
}
|
|
352
|
+
/** 逐条发送一个调用;返回是否拿到了结果(没有出错) */
|
|
305
353
|
async #single(item, retries = this.#retries) {
|
|
306
354
|
try {
|
|
307
355
|
const body = (await this.#post({ jsonrpc: '2.0', id: nextId++, method: item.method, params: item.params }, retries));
|
|
308
356
|
settle(item, body);
|
|
357
|
+
return !body?.error;
|
|
309
358
|
}
|
|
310
359
|
catch (err) {
|
|
311
360
|
item.reject(err);
|
|
361
|
+
return false;
|
|
312
362
|
}
|
|
313
363
|
}
|
|
314
364
|
/** 节点明确表示不支持批量:10 分钟内逐条请求,之后重新尝试批量(节点可能只是临时出错或已经升级) */
|
|
@@ -355,6 +405,16 @@ export class HttpRpc {
|
|
|
355
405
|
if (!response.ok && !Array.isArray(body) && !body?.error) {
|
|
356
406
|
throw new HttpError(`HTTP ${response.status} from ${this.#safeUrl}`, response.status);
|
|
357
407
|
}
|
|
408
|
+
// 5xx + 单个 JSON-RPC 错误:
|
|
409
|
+
// - 繁忙、过载等明确的临时故障:按 HTTP 错误处理,直接换节点(不重试、不逐条,不给过载的节点加量)
|
|
410
|
+
// - -32603 internal error:含义不明确,标记 rpcError,由 #dispatch 判断是临时故障还是节点用 5xx 拒绝批量
|
|
411
|
+
// 其他错误(方法数量超限、账户数超限、参数错误、minContextSlot、限频等)照常交给上层按类型处理
|
|
412
|
+
const bodyError = response.status >= 500 && !Array.isArray(body) ? body?.error : undefined;
|
|
413
|
+
const kind = bodyError ? classifyRpcError(bodyError.code, bodyError.message ?? '') : undefined;
|
|
414
|
+
if (kind === 'transient' || kind === 'internal') {
|
|
415
|
+
const message = bodyError?.message;
|
|
416
|
+
throw new HttpError(`HTTP ${response.status} from ${this.#safeUrl}${message ? `: ${message}` : ''}`, response.status, false, kind === 'internal');
|
|
417
|
+
}
|
|
358
418
|
// 有的节点限频时返回 HTTP 200 + JSON-RPC 错误码 429:同样退避重试
|
|
359
419
|
if (attempt < retries && isRateLimited(body)) {
|
|
360
420
|
await new Promise((r) => setTimeout(r, 500 * 2 ** attempt));
|
package/dist/rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@w3lib/solana-batch-call",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Batched Solana reads: SOL / SPL / Token-2022 balances, token metadata, NFTs. Auto-batching JSON-RPC, getMultipleAccounts chunking, RPC failover. No Solana SDK dependency.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"solana",
|
package/src/rpc.ts
CHANGED
|
@@ -17,18 +17,49 @@ export class RpcError extends Error {
|
|
|
17
17
|
this.name = 'RpcError'
|
|
18
18
|
this.code = code
|
|
19
19
|
this.data = data
|
|
20
|
+
const kind = classifyRpcError(code, message)
|
|
20
21
|
this.nodeFault =
|
|
21
22
|
code === 403 ||
|
|
22
|
-
code === 429 ||
|
|
23
23
|
code === -32005 ||
|
|
24
|
-
// 节点高度没到 minContextSlot
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
// 节点高度没到 minContextSlot、限频、服务端临时故障(繁忙、过载、暂不可用、超时):换节点可能成功;
|
|
25
|
+
// 临时故障也不应据此关闭批量(降级只会加重负载)
|
|
26
|
+
kind === 'min-slot' ||
|
|
27
|
+
kind === 'rate-limited' ||
|
|
28
|
+
kind === 'transient' ||
|
|
29
|
+
(/forbidden|blocked|personal token|api.?key|too many|not allowed|unauthori[sz]ed|limit exceeded|disabled|not available|not supported/i.test(message) &&
|
|
30
|
+
kind !== 'too-many-accounts')
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
|
|
34
|
+
/**
|
|
35
|
+
* JSON-RPC 错误的分类(RpcError.nodeFault、HTTP 5xx 的处理共用,避免两份清单各自维护):
|
|
36
|
+
* - method-limit / too-many-accounts:节点对批量 / 单次账户数的限制,按限制重新分批或缩小
|
|
37
|
+
* - invalid-params:参数错误(-32602),确定性的
|
|
38
|
+
* - min-slot / rate-limited / transient:节点落后、限频、服务端临时故障,换节点
|
|
39
|
+
* - internal:-32603 internal error,含义不明确(可能是临时故障,也可能是节点拒绝批量)
|
|
40
|
+
*/
|
|
41
|
+
type RpcErrorKind = 'method-limit' | 'too-many-accounts' | 'invalid-params' | 'min-slot' | 'rate-limited' | 'transient' | 'internal' | 'other'
|
|
42
|
+
|
|
43
|
+
function classifyRpcError(code: number | undefined, message: string): RpcErrorKind {
|
|
44
|
+
if (METHOD_LIMIT.test(message)) return 'method-limit'
|
|
45
|
+
if (TOO_MANY_ACCOUNTS.test(message)) return 'too-many-accounts'
|
|
46
|
+
if (code === -32602) return 'invalid-params'
|
|
47
|
+
if (code === MIN_CONTEXT_SLOT_NOT_REACHED || /minimum context slot/i.test(message)) return 'min-slot'
|
|
48
|
+
if (code === 429 || RATE_LIMITED.test(message)) return 'rate-limited'
|
|
49
|
+
if (TRANSIENT.test(message)) return 'transient'
|
|
50
|
+
if (code === -32603) return 'internal'
|
|
51
|
+
return 'other'
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** 节点限制单个方法在批量里的数量(如 publicnode:“Maximum number of 'getMultipleAccounts' calls in a batch request is 1”) */
|
|
55
|
+
const METHOD_LIMIT = /maximum number of '([^']+)' calls in a batch request is (\d+)/i
|
|
56
|
+
|
|
57
|
+
/** 限频的报错 */
|
|
58
|
+
const RATE_LIMITED = /rate.?limit|too many requests/i
|
|
59
|
+
|
|
60
|
+
/** 服务端临时故障的报错(如 -32000 server is busy、-32603 + 503 overloaded) */
|
|
61
|
+
const TRANSIENT = /\bbusy\b|overload|temporar(il)?y|unavailable|try again|timed? ?out|timeout/i
|
|
62
|
+
|
|
32
63
|
/** 节点限制单次 getMultipleAccounts 的账户数(如 “Too many accounts requested”):缩小每次的账户数后重试,不是节点故障 */
|
|
33
64
|
const TOO_MANY_ACCOUNTS = /too many accounts/i
|
|
34
65
|
|
|
@@ -38,11 +69,15 @@ export class HttpError extends Error {
|
|
|
38
69
|
/** 请求超时(HttpRpcOptions.timeout) */
|
|
39
70
|
readonly timeout: boolean
|
|
40
71
|
|
|
41
|
-
|
|
72
|
+
/** 5xx 的响应体是 JSON-RPC 错误(服务端故障,或节点用 5xx 拒绝批量请求) */
|
|
73
|
+
readonly rpcError: boolean
|
|
74
|
+
|
|
75
|
+
constructor(message: string, status?: number, timeout = false, rpcError = false) {
|
|
42
76
|
super(message)
|
|
43
77
|
this.name = 'HttpError'
|
|
44
78
|
this.status = status
|
|
45
79
|
this.timeout = timeout
|
|
80
|
+
this.rpcError = rpcError
|
|
46
81
|
}
|
|
47
82
|
}
|
|
48
83
|
|
|
@@ -262,7 +297,7 @@ export class HttpRpc implements RpcTransport {
|
|
|
262
297
|
* 记下限制并按限制重新分批,返回 true;限制解析不出或这批本来就没超限(避免无限重发)时返回 false
|
|
263
298
|
*/
|
|
264
299
|
async #retryWithMethodLimit(items: Pending[], message: string | undefined): Promise<boolean> {
|
|
265
|
-
const match =
|
|
300
|
+
const match = METHOD_LIMIT.exec(message ?? '')
|
|
266
301
|
const method = match?.[1]
|
|
267
302
|
const limit = Number(match?.[2])
|
|
268
303
|
if (!method || !Number.isFinite(limit) || limit < 1 || items.filter((item) => item.method === method).length <= limit) {
|
|
@@ -273,7 +308,8 @@ export class HttpRpc implements RpcTransport {
|
|
|
273
308
|
return true
|
|
274
309
|
}
|
|
275
310
|
|
|
276
|
-
|
|
311
|
+
/** retriedServerError:这一批已经因 5xx + JSON-RPC 错误重试过一次 */
|
|
312
|
+
async #dispatch(items: Pending[], retriedServerError = false): Promise<void> {
|
|
277
313
|
if (items.length === 1 || !this.#batch) {
|
|
278
314
|
await Promise.all(items.map((item) => this.#single(item)))
|
|
279
315
|
return
|
|
@@ -296,6 +332,23 @@ export class HttpRpc implements RpcTransport {
|
|
|
296
332
|
await Promise.all(items.map((item) => this.#single(item)))
|
|
297
333
|
return
|
|
298
334
|
}
|
|
335
|
+
// 5xx + -32603(含义不明确:临时故障,或节点用 5xx 拒绝批量):先原样重试一次批量(偶发故障这次就成功了,不降级);
|
|
336
|
+
// 仍然失败时只用第一条单独试探——成功说明是批量本身被拒,暂停批量(10 分钟后重试)并逐条发送其余的;
|
|
337
|
+
// 失败则是临时故障,其余的直接报错(换节点),不给出问题的节点加量
|
|
338
|
+
if (err instanceof HttpError && err.rpcError && items.length > 1) {
|
|
339
|
+
if (!retriedServerError) {
|
|
340
|
+
await this.#dispatch(items, true)
|
|
341
|
+
return
|
|
342
|
+
}
|
|
343
|
+
const [first, ...rest] = items as [Pending, ...Pending[]]
|
|
344
|
+
if (await this.#single(first)) {
|
|
345
|
+
this.#disableBatch()
|
|
346
|
+
await Promise.all(rest.map((item) => this.#single(item)))
|
|
347
|
+
} else {
|
|
348
|
+
rest.forEach((item) => item.reject(err))
|
|
349
|
+
}
|
|
350
|
+
return
|
|
351
|
+
}
|
|
299
352
|
items.forEach((item) => item.reject(err))
|
|
300
353
|
return
|
|
301
354
|
}
|
|
@@ -322,7 +375,7 @@ export class HttpRpc implements RpcTransport {
|
|
|
322
375
|
}
|
|
323
376
|
const byId = new Map((body as RpcResponse[]).map((res) => [res.id, res]))
|
|
324
377
|
// 有的节点把 “方法数量超限” 放在批量结果的某一项里
|
|
325
|
-
const methodLimited = (body as RpcResponse[]).find((res) =>
|
|
378
|
+
const methodLimited = (body as RpcResponse[]).find((res) => METHOD_LIMIT.test(res.error?.message ?? ''))
|
|
326
379
|
if (methodLimited && (await this.#retryWithMethodLimit(items, methodLimited.error?.message))) {
|
|
327
380
|
return
|
|
328
381
|
}
|
|
@@ -363,12 +416,15 @@ export class HttpRpc implements RpcTransport {
|
|
|
363
416
|
await Promise.all(this.#split(items).map((chunk) => this.#dispatch(chunk)))
|
|
364
417
|
}
|
|
365
418
|
|
|
366
|
-
|
|
419
|
+
/** 逐条发送一个调用;返回是否拿到了结果(没有出错) */
|
|
420
|
+
async #single(item: Pending, retries = this.#retries): Promise<boolean> {
|
|
367
421
|
try {
|
|
368
422
|
const body = (await this.#post({ jsonrpc: '2.0', id: nextId++, method: item.method, params: item.params }, retries)) as RpcResponse
|
|
369
423
|
settle(item, body)
|
|
424
|
+
return !body?.error
|
|
370
425
|
} catch (err) {
|
|
371
426
|
item.reject(err)
|
|
427
|
+
return false
|
|
372
428
|
}
|
|
373
429
|
}
|
|
374
430
|
|
|
@@ -414,6 +470,16 @@ export class HttpRpc implements RpcTransport {
|
|
|
414
470
|
if (!response.ok && !Array.isArray(body) && !(body as RpcResponse)?.error) {
|
|
415
471
|
throw new HttpError(`HTTP ${response.status} from ${this.#safeUrl}`, response.status)
|
|
416
472
|
}
|
|
473
|
+
// 5xx + 单个 JSON-RPC 错误:
|
|
474
|
+
// - 繁忙、过载等明确的临时故障:按 HTTP 错误处理,直接换节点(不重试、不逐条,不给过载的节点加量)
|
|
475
|
+
// - -32603 internal error:含义不明确,标记 rpcError,由 #dispatch 判断是临时故障还是节点用 5xx 拒绝批量
|
|
476
|
+
// 其他错误(方法数量超限、账户数超限、参数错误、minContextSlot、限频等)照常交给上层按类型处理
|
|
477
|
+
const bodyError = response.status >= 500 && !Array.isArray(body) ? (body as RpcResponse)?.error : undefined
|
|
478
|
+
const kind = bodyError ? classifyRpcError(bodyError.code, bodyError.message ?? '') : undefined
|
|
479
|
+
if (kind === 'transient' || kind === 'internal') {
|
|
480
|
+
const message = bodyError?.message
|
|
481
|
+
throw new HttpError(`HTTP ${response.status} from ${this.#safeUrl}${message ? `: ${message}` : ''}`, response.status, false, kind === 'internal')
|
|
482
|
+
}
|
|
417
483
|
// 有的节点限频时返回 HTTP 200 + JSON-RPC 错误码 429:同样退避重试
|
|
418
484
|
if (attempt < retries && isRateLimited(body)) {
|
|
419
485
|
await new Promise((r) => setTimeout(r, 500 * 2 ** attempt))
|