@w3lib/solana-batch-call 0.1.0 → 0.2.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.
- package/CHANGELOG.md +23 -0
- package/README.md +117 -16
- package/dist/address.d.ts +6 -0
- package/dist/address.d.ts.map +1 -1
- package/dist/address.js +46 -7
- package/dist/address.js.map +1 -1
- package/dist/client.d.ts +115 -21
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +616 -220
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +31 -2
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +68 -8
- package/dist/layout.js.map +1 -1
- package/dist/rpc.d.ts +60 -4
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +181 -18
- package/dist/rpc.js.map +1 -1
- package/dist/shortcuts.d.ts +38 -5
- package/dist/shortcuts.d.ts.map +1 -1
- package/dist/shortcuts.js +156 -11
- package/dist/shortcuts.js.map +1 -1
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +2 -4
- package/dist/source.js.map +1 -1
- package/dist/types.d.ts +54 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -10
- package/src/address.ts +49 -7
- package/src/client.ts +783 -238
- package/src/index.ts +47 -3
- package/src/layout.ts +90 -8
- package/src/rpc.ts +218 -18
- package/src/shortcuts.ts +209 -15
- package/src/source.ts +2 -4
- package/src/types.ts +59 -3
package/dist/rpc.js
CHANGED
|
@@ -13,19 +13,53 @@ export class RpcError extends Error {
|
|
|
13
13
|
code === 403 ||
|
|
14
14
|
code === 429 ||
|
|
15
15
|
code === -32005 ||
|
|
16
|
+
// 节点高度没到 minContextSlot:换节点可能成功
|
|
17
|
+
code === MIN_CONTEXT_SLOT_NOT_REACHED ||
|
|
18
|
+
/minimum context slot/i.test(message) ||
|
|
16
19
|
/forbidden|blocked|personal token|api.?key|rate.?limit|too many|not allowed|unauthori[sz]ed|limit exceeded|disabled|not available|not supported/i.test(message);
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
/** HTTP 层错误(非 2xx、网络错误、超时) */
|
|
20
23
|
export class HttpError extends Error {
|
|
21
24
|
status;
|
|
22
|
-
|
|
25
|
+
/** 请求超时(HttpRpcOptions.timeout) */
|
|
26
|
+
timeout;
|
|
27
|
+
constructor(message, status, timeout = false) {
|
|
23
28
|
super(message);
|
|
24
29
|
this.name = 'HttpError';
|
|
25
30
|
this.status = status;
|
|
31
|
+
this.timeout = timeout;
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
|
-
/**
|
|
34
|
+
/** JSON-RPC 错误码:节点高度还没到请求的 minContextSlot */
|
|
35
|
+
export const MIN_CONTEXT_SLOT_NOT_REACHED = -32016;
|
|
36
|
+
/** 是否是请求超时(HttpRpc 的超时,或自定义传输抛出的 TimeoutError) */
|
|
37
|
+
export function isTimeout(err) {
|
|
38
|
+
return (err instanceof HttpError && err.timeout) || err?.name === 'TimeoutError';
|
|
39
|
+
}
|
|
40
|
+
/** 是否是“节点高度没到 minContextSlot”(所有节点都落后时也算) */
|
|
41
|
+
export function isBehind(err) {
|
|
42
|
+
if (err instanceof AllNodesFailedError) {
|
|
43
|
+
return err.errors.length > 0 && err.errors.every((e) => isBehind(e.error));
|
|
44
|
+
}
|
|
45
|
+
return err instanceof RpcError && (err.code === MIN_CONTEXT_SLOT_NOT_REACHED || /minimum context slot/i.test(err.message));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 多节点时所有节点都失败(都是节点问题)。errors 是各节点的错误,按尝试顺序;
|
|
49
|
+
* node 是节点名称(URL 只保留 host,不会带出 path / query 里的 API Key)
|
|
50
|
+
*/
|
|
51
|
+
export class AllNodesFailedError extends Error {
|
|
52
|
+
errors;
|
|
53
|
+
constructor(errors) {
|
|
54
|
+
super(`All RPC nodes failed: ${errors.map((e) => `${e.node}: ${errorMessage(e.error)}`).join(' | ')}`, { cause: errors[errors.length - 1]?.error });
|
|
55
|
+
this.name = 'AllNodesFailedError';
|
|
56
|
+
this.errors = errors;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function errorMessage(err) {
|
|
60
|
+
return err instanceof Error ? err.message : String(err);
|
|
61
|
+
}
|
|
62
|
+
/** 是否是节点问题(应换节点重试):除了确定性的 JSON-RPC 错误(如参数错误),其余都算(包括 AllNodesFailedError) */
|
|
29
63
|
export function isNodeFault(err) {
|
|
30
64
|
if (err instanceof RpcError) {
|
|
31
65
|
return err.nodeFault;
|
|
@@ -44,6 +78,8 @@ function isBatchLimitError(message) {
|
|
|
44
78
|
*/
|
|
45
79
|
export class HttpRpc {
|
|
46
80
|
url;
|
|
81
|
+
/** 报错信息里用的地址:只保留 origin,不带 path / query(常含 API Key) */
|
|
82
|
+
#safeUrl;
|
|
47
83
|
#timeout;
|
|
48
84
|
#headers;
|
|
49
85
|
#batchWait;
|
|
@@ -55,6 +91,7 @@ export class HttpRpc {
|
|
|
55
91
|
#timer = null;
|
|
56
92
|
constructor(url, options = {}) {
|
|
57
93
|
this.url = url;
|
|
94
|
+
this.#safeUrl = safeOrigin(url);
|
|
58
95
|
this.#timeout = options.timeout ?? 10_000;
|
|
59
96
|
this.#headers = { 'content-type': 'application/json', ...options.headers };
|
|
60
97
|
this.#maxBatchSize = Math.max(1, options.maxBatchSize ?? 20);
|
|
@@ -190,7 +227,9 @@ export class HttpRpc {
|
|
|
190
227
|
});
|
|
191
228
|
}
|
|
192
229
|
catch (err) {
|
|
193
|
-
|
|
230
|
+
// AbortSignal.timeout 触发时是 TimeoutError(DOMException)
|
|
231
|
+
const timeout = err?.name === 'TimeoutError';
|
|
232
|
+
throw new HttpError(`Request to ${this.#safeUrl} failed: ${err?.message ?? err}`, undefined, timeout);
|
|
194
233
|
}
|
|
195
234
|
if (response.status === 429 && attempt < this.#retries) {
|
|
196
235
|
await new Promise((r) => setTimeout(r, 500 * 2 ** attempt));
|
|
@@ -202,11 +241,11 @@ export class HttpRpc {
|
|
|
202
241
|
body = parseJson(text);
|
|
203
242
|
}
|
|
204
243
|
catch {
|
|
205
|
-
throw new HttpError(`Invalid JSON from ${this
|
|
244
|
+
throw new HttpError(`Invalid JSON from ${this.#safeUrl} (HTTP ${response.status})`, response.status);
|
|
206
245
|
}
|
|
207
246
|
// 非 2xx 但返回了 JSON-RPC 结构(如 403 Access forbidden、drpc 的 500 + 批量错误数组):交给上层解析
|
|
208
247
|
if (!response.ok && !Array.isArray(body) && !body?.error) {
|
|
209
|
-
throw new HttpError(`HTTP ${response.status} from ${this
|
|
248
|
+
throw new HttpError(`HTTP ${response.status} from ${this.#safeUrl}`, response.status);
|
|
210
249
|
}
|
|
211
250
|
// 有的节点限频时返回 HTTP 200 + JSON-RPC 错误码 429:同样退避重试
|
|
212
251
|
if (attempt < this.#retries && isRateLimited(body)) {
|
|
@@ -234,6 +273,14 @@ function parseJson(text) {
|
|
|
234
273
|
}
|
|
235
274
|
return JSON.parse(text.replace(/([:[,]\s*)(-?\d{16,})(?=\s*[,}\]])/g, '$1"$2"'));
|
|
236
275
|
}
|
|
276
|
+
function safeOrigin(url) {
|
|
277
|
+
try {
|
|
278
|
+
return new URL(url).origin;
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return 'invalid URL';
|
|
282
|
+
}
|
|
283
|
+
}
|
|
237
284
|
function isRateLimited(body) {
|
|
238
285
|
const responses = (Array.isArray(body) ? body : [body]);
|
|
239
286
|
return responses.length > 0 && responses.every((res) => res?.error?.code === 429);
|
|
@@ -249,46 +296,162 @@ function settle(item, response) {
|
|
|
249
296
|
item.resolve(response.result);
|
|
250
297
|
}
|
|
251
298
|
}
|
|
299
|
+
const requestListeners = new Set();
|
|
300
|
+
/**
|
|
301
|
+
* 监听所有客户端发出的 JSON-RPC 调用(节点、方法、耗时、成功与否、第几次尝试),用于统计和排查。返回取消监听的函数。
|
|
302
|
+
*
|
|
303
|
+
* ```ts
|
|
304
|
+
* const stop = onRequest((e) => console.log(e.node, e.method, e.ms, e.ok, e.attempt))
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
export function onRequest(listener) {
|
|
308
|
+
requestListeners.add(listener);
|
|
309
|
+
return () => {
|
|
310
|
+
requestListeners.delete(listener);
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
function emit(event) {
|
|
314
|
+
for (const listener of requestListeners) {
|
|
315
|
+
try {
|
|
316
|
+
listener(event);
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
// 监听函数出错不影响请求
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/** 节点名称:优先用传输自带的 label;HttpRpc 取 URL 的 host(不带 path / query,避免泄露 API Key) */
|
|
324
|
+
export function nodeLabel(node) {
|
|
325
|
+
if (typeof node.label === 'string') {
|
|
326
|
+
return node.label;
|
|
327
|
+
}
|
|
328
|
+
const base = unwrap(node);
|
|
329
|
+
if (base !== node && typeof base.label === 'string') {
|
|
330
|
+
return base.label;
|
|
331
|
+
}
|
|
332
|
+
if (base instanceof HttpRpc) {
|
|
333
|
+
try {
|
|
334
|
+
return new URL(base.url).host || 'custom';
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
return 'custom';
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return 'custom';
|
|
341
|
+
}
|
|
342
|
+
/** 去掉校验层等包装(有 inner 属性的传输),取底层节点 */
|
|
343
|
+
function unwrap(node) {
|
|
344
|
+
let current = node;
|
|
345
|
+
for (let inner = current.inner; inner && typeof inner.request === 'function'; inner = current.inner) {
|
|
346
|
+
current = inner;
|
|
347
|
+
}
|
|
348
|
+
return current;
|
|
349
|
+
}
|
|
350
|
+
// 节点健康状态按节点共享(模块级):客户端重建后,刚出过错的节点仍排在后面。URL 节点按完整 URL,其他按对象
|
|
351
|
+
const healthByUrl = new Map();
|
|
352
|
+
let healthByObject = new WeakMap();
|
|
353
|
+
const MAX_TRACKED_URLS = 1000;
|
|
354
|
+
/** 连续超时这么多次才冷却(单次超时多半只是这次请求慢) */
|
|
355
|
+
const TIMEOUTS_BEFORE_COOLDOWN = 3;
|
|
356
|
+
/** 健康状态的 key:HttpRpc 按完整 URL(不同连接对象共享),其他节点按对象(去掉校验层) */
|
|
357
|
+
function healthKeyOf(node) {
|
|
358
|
+
const base = unwrap(node);
|
|
359
|
+
return base instanceof HttpRpc ? base.url : base;
|
|
360
|
+
}
|
|
361
|
+
/** 每次用时按 key 从全局表里取:表淘汰条目后,各实例仍取到同一个对象 */
|
|
362
|
+
function healthOf(key) {
|
|
363
|
+
if (typeof key === 'string') {
|
|
364
|
+
let health = healthByUrl.get(key);
|
|
365
|
+
if (!health) {
|
|
366
|
+
health = { failedAt: 0, timeouts: 0 };
|
|
367
|
+
healthByUrl.set(key, health);
|
|
368
|
+
if (healthByUrl.size > MAX_TRACKED_URLS) {
|
|
369
|
+
healthByUrl.delete(healthByUrl.keys().next().value);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return health;
|
|
373
|
+
}
|
|
374
|
+
let health = healthByObject.get(key);
|
|
375
|
+
if (!health) {
|
|
376
|
+
health = { failedAt: 0, timeouts: 0 };
|
|
377
|
+
healthByObject.set(key, health);
|
|
378
|
+
}
|
|
379
|
+
return health;
|
|
380
|
+
}
|
|
381
|
+
/** 测试用:清空节点健康状态 */
|
|
382
|
+
export function resetNodeHealth() {
|
|
383
|
+
healthByUrl.clear();
|
|
384
|
+
healthByObject = new WeakMap();
|
|
385
|
+
}
|
|
252
386
|
/**
|
|
253
|
-
* 多节点故障切换:按顺序使用,节点问题(网络、超时、限频、需要 Key、403
|
|
254
|
-
*
|
|
387
|
+
* 多节点故障切换:按顺序使用,节点问题(网络、超时、限频、需要 Key、403、高度不够等)换下一个;
|
|
388
|
+
* 参数错误等确定性错误直接抛出。单个节点也用它包一层(统一 onRequest 事件),此时失败抛原始错误。
|
|
389
|
+
*
|
|
390
|
+
* - 出错的节点在冷却期内排到最后;健康状态按节点全局共享(URL 相同即同一节点),客户端重建后仍然有效
|
|
391
|
+
* - 超时只换节点、不冷却(大批量查询慢一点很正常),同一节点连续 3 次超时才冷却
|
|
392
|
+
* - 节点高度没到 minContextSlot 只换节点、不冷却(只是这次请求要求的 slot 太新)
|
|
393
|
+
* - 多个节点都失败时抛 AllNodesFailedError,带上每个节点的错误
|
|
255
394
|
*/
|
|
256
395
|
export class FallbackRpc {
|
|
257
396
|
nodes;
|
|
258
397
|
#cooldown;
|
|
259
|
-
|
|
398
|
+
/** 节点标识和健康状态的 key 不会变,构造时算好(每次请求只做一次 Map 查找) */
|
|
399
|
+
#labels;
|
|
400
|
+
#healthKeys;
|
|
260
401
|
constructor(nodes, options = {}) {
|
|
261
402
|
if (!nodes.length) {
|
|
262
403
|
throw new Error('FallbackRpc requires at least one node');
|
|
263
404
|
}
|
|
264
405
|
this.nodes = nodes;
|
|
265
406
|
this.#cooldown = options.cooldown ?? 30_000;
|
|
266
|
-
this.#
|
|
407
|
+
this.#labels = nodes.map(nodeLabel);
|
|
408
|
+
this.#healthKeys = nodes.map(healthKeyOf);
|
|
267
409
|
}
|
|
268
410
|
async request(method, params) {
|
|
269
|
-
|
|
270
|
-
|
|
411
|
+
const errors = [];
|
|
412
|
+
const order = this.#order();
|
|
413
|
+
for (let attempt = 0; attempt < order.length; attempt++) {
|
|
414
|
+
const index = order[attempt];
|
|
415
|
+
const node = this.nodes[index];
|
|
416
|
+
const label = this.#labels[index];
|
|
417
|
+
const health = healthOf(this.#healthKeys[index]);
|
|
418
|
+
const started = Date.now();
|
|
271
419
|
try {
|
|
272
|
-
const result = await
|
|
273
|
-
|
|
420
|
+
const result = await node.request(method, params);
|
|
421
|
+
health.failedAt = 0;
|
|
422
|
+
health.timeouts = 0;
|
|
423
|
+
emit({ node: label, method, ms: Date.now() - started, ok: true, attempt });
|
|
274
424
|
return result;
|
|
275
425
|
}
|
|
276
426
|
catch (err) {
|
|
427
|
+
emit({ node: label, method, ms: Date.now() - started, ok: false, error: err, attempt });
|
|
277
428
|
if (!isNodeFault(err)) {
|
|
278
429
|
throw err;
|
|
279
430
|
}
|
|
280
|
-
|
|
281
|
-
|
|
431
|
+
if (isTimeout(err)) {
|
|
432
|
+
if (++health.timeouts >= TIMEOUTS_BEFORE_COOLDOWN) {
|
|
433
|
+
health.failedAt = Date.now();
|
|
434
|
+
health.timeouts = 0;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
else if (!isBehind(err)) {
|
|
438
|
+
health.failedAt = Date.now();
|
|
439
|
+
}
|
|
440
|
+
errors.push({ node: label, error: err });
|
|
282
441
|
}
|
|
283
442
|
}
|
|
284
|
-
|
|
443
|
+
if (this.nodes.length === 1) {
|
|
444
|
+
throw errors[0]?.error;
|
|
445
|
+
}
|
|
446
|
+
throw new AllNodesFailedError(errors);
|
|
285
447
|
}
|
|
286
448
|
#order() {
|
|
287
449
|
const now = Date.now();
|
|
450
|
+
const failedAt = this.#healthKeys.map((key) => healthOf(key).failedAt);
|
|
288
451
|
const healthy = [];
|
|
289
452
|
const cooling = [];
|
|
290
|
-
|
|
291
|
-
cooling.sort((a, b) =>
|
|
453
|
+
failedAt.forEach((at, i) => (at && now - at < this.#cooldown ? cooling : healthy).push(i));
|
|
454
|
+
cooling.sort((a, b) => failedAt[a] - failedAt[b]);
|
|
292
455
|
return [...healthy, ...cooling];
|
|
293
456
|
}
|
|
294
457
|
}
|
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/dist/shortcuts.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SolanaClient, type BalancesOptions, type ClientConfig, type OwnerTokensOptions, type TokensOptions } from './client.js';
|
|
1
|
+
import { SolanaClient, type BalanceQuery, type BalancesOptions, type ClientConfig, type OwnerTokensOptions, type RequestOptions, type SolBalancesOptions, type TokensOptions } from './client.js';
|
|
2
2
|
import type { RpcSource } from './source.js';
|
|
3
3
|
import type { DefaultTokenField, NftDetails, NftOwner, OwnedToken, SolBalance, TokenBalance, TokenDetails, TokenField } from './types.js';
|
|
4
4
|
/** 各函数共用的节点参数 */
|
|
@@ -19,12 +19,24 @@ export interface GetBalancesOptions extends BalancesOptions, ShortcutOptions {
|
|
|
19
19
|
*
|
|
20
20
|
* await getBalances(owner, [NATIVE_MINT, USDC]) // 指定代币:免费公共节点也能用
|
|
21
21
|
* await getBalances(owner, [NATIVE_MINT, USDC], { symbol: true })
|
|
22
|
+
* await getBalances(owner, undefined, { tokenPrograms: ['spl'] }) // 不含 Token-2022 代币
|
|
23
|
+
* await getBalances(owner, [USDC], { accounts: 'all' }) // 算上非 ATA 账户:需要支持 getTokenAccountsByOwner 的节点
|
|
22
24
|
* await getBalances(owner, undefined, { provider: 'https://my-rpc…' }) // 全部持仓:需要支持 getTokenAccountsByOwner 的节点
|
|
23
25
|
* ```
|
|
24
26
|
*/
|
|
25
27
|
export declare function getBalances(owner: string, mints?: readonly string[], options?: GetBalancesOptions): Promise<TokenBalance[]>;
|
|
28
|
+
/**
|
|
29
|
+
* 多个钱包一次查,结果与 queries 一一对应;ATA 模式下所有钱包合并成一次 getMultipleAccounts。参数同 getBalances。
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* await getMultiBalances([{ owner: a, mints: [NATIVE_MINT, USDC] }, { owner: b, mints: [USDC] }])
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function getMultiBalances(queries: readonly BalanceQuery[], options?: GetBalancesOptions): Promise<TokenBalance[][]>;
|
|
36
|
+
export interface GetSolBalancesOptions extends SolBalancesOptions, ShortcutOptions {
|
|
37
|
+
}
|
|
26
38
|
/** 批量查多个地址的 SOL 余额(一次 getMultipleAccounts) */
|
|
27
|
-
export declare function getSolBalances(addresses: readonly string[], options?:
|
|
39
|
+
export declare function getSolBalances(addresses: readonly string[], options?: GetSolBalancesOptions): Promise<SolBalance[]>;
|
|
28
40
|
export interface GetTokensOptions<F extends TokenField = DefaultTokenField> extends TokensOptions<F>, ShortcutOptions {
|
|
29
41
|
}
|
|
30
42
|
/**
|
|
@@ -35,12 +47,14 @@ export interface GetTokensOptions<F extends TokenField = DefaultTokenField> exte
|
|
|
35
47
|
* ```
|
|
36
48
|
*/
|
|
37
49
|
export declare function getTokens<const F extends TokenField = DefaultTokenField>(mints: readonly string[], options?: GetTokensOptions<F>): Promise<TokenDetails<F>[]>;
|
|
50
|
+
export interface GetNftsOptions extends RequestOptions, ShortcutOptions {
|
|
51
|
+
}
|
|
38
52
|
/** 批量查 NFT 元数据(名称、uri、所属集合、版税、创作者等) */
|
|
39
|
-
export declare function getNfts(mints: readonly string[], options?:
|
|
53
|
+
export declare function getNfts(mints: readonly string[], options?: GetNftsOptions): Promise<NftDetails[]>;
|
|
40
54
|
/** 批量查 NFT 持有人 */
|
|
41
|
-
export declare function getNftOwners(mints: readonly string[], options?:
|
|
55
|
+
export declare function getNftOwners(mints: readonly string[], options?: GetNftsOptions): Promise<NftOwner[]>;
|
|
42
56
|
/** 查某地址持有的全部 NFT(需要支持 getTokenAccountsByOwner 的节点) */
|
|
43
|
-
export declare function getOwnerNfts(owner: string, options?:
|
|
57
|
+
export declare function getOwnerNfts(owner: string, options?: GetNftsOptions): Promise<NftDetails[]>;
|
|
44
58
|
export interface GetOwnerTokensOptions extends OwnerTokensOptions, ShortcutOptions {
|
|
45
59
|
}
|
|
46
60
|
/**
|
|
@@ -53,6 +67,25 @@ export interface GetOwnerTokensOptions extends OwnerTokensOptions, ShortcutOptio
|
|
|
53
67
|
* ```
|
|
54
68
|
*/
|
|
55
69
|
export declare function getOwnerTokens(owner: string, options?: GetOwnerTokensOptions): Promise<OwnedToken[]>;
|
|
70
|
+
export interface WatchBalancesOptions extends Omit<GetBalancesOptions, 'signal' | 'minContextSlot'> {
|
|
71
|
+
/** 轮询间隔(毫秒),默认 15000;多处订阅同一份时取最小的 */
|
|
72
|
+
interval?: number;
|
|
73
|
+
/** 第一次拿到结果、以及之后余额(balance)变化时调用;previous 是上一次通知的结果(第一次为 null) */
|
|
74
|
+
onChange: (balances: TokenBalance[], previous: TokenBalance[] | null) => void;
|
|
75
|
+
/** 某次轮询失败时调用(之后照常继续轮询) */
|
|
76
|
+
onError?: (err: unknown) => void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 轮询余额,多处订阅同一个钱包时合并成一份轮询,只在余额变化时通知。返回取消订阅的函数;最后一个订阅者取消时停止轮询。
|
|
80
|
+
* 参数同 getBalances(不支持 signal / minContextSlot);上一次请求没完成时不会发起下一次。
|
|
81
|
+
* 结果顺序按第一个订阅者传的 mints;新订阅者加入时如果已有结果,立即收到一次(previous 为 null)
|
|
82
|
+
*
|
|
83
|
+
* ```ts
|
|
84
|
+
* const stop = watchBalances(owner, [NATIVE_MINT, USDC], { interval: 10_000, onChange: (list) => render(list) })
|
|
85
|
+
* stop()
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function watchBalances(owner: string, mints: readonly string[] | undefined, options: WatchBalancesOptions): () => void;
|
|
56
89
|
/** 测试用:按参数取(或创建)客户端,用于验证缓存复用(不在包的公开导出里) */
|
|
57
90
|
export declare function resolveClientForTest(options: ShortcutOptions): SolanaClient;
|
|
58
91
|
/** 测试用:清空客户端缓存 */
|
package/dist/shortcuts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
|