@bananapus/nana-sdk-core 2.20.0 → 2.21.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/dist/cjs/bendystrawOperations.d.ts +4 -1
- package/dist/cjs/bendystrawOperations.d.ts.map +1 -1
- package/dist/cjs/bendystrawOperations.js +4 -1
- package/dist/cjs/bendystrawOperations.js.map +1 -1
- package/dist/cjs/jbcenter/ensureDeployed.d.ts +5 -0
- package/dist/cjs/jbcenter/ensureDeployed.d.ts.map +1 -1
- package/dist/cjs/jbcenter/ensureDeployed.js +13 -15
- package/dist/cjs/jbcenter/ensureDeployed.js.map +1 -1
- package/dist/cjs/jbcenter/rateLimit.d.ts +80 -0
- package/dist/cjs/jbcenter/rateLimit.d.ts.map +1 -0
- package/dist/cjs/jbcenter/rateLimit.js +158 -0
- package/dist/cjs/jbcenter/rateLimit.js.map +1 -0
- package/dist/cjs/jbcenter.d.ts +47 -5
- package/dist/cjs/jbcenter.d.ts.map +1 -1
- package/dist/cjs/jbcenter.js +57 -8
- package/dist/cjs/jbcenter.js.map +1 -1
- package/dist/cjs/pause.d.ts +6 -0
- package/dist/cjs/pause.d.ts.map +1 -0
- package/dist/cjs/pause.js +25 -0
- package/dist/cjs/pause.js.map +1 -0
- package/dist/cjs/safeService.d.ts +23 -9
- package/dist/cjs/safeService.d.ts.map +1 -1
- package/dist/cjs/safeService.js +77 -37
- package/dist/cjs/safeService.js.map +1 -1
- package/dist/esm/bendystrawOperations.d.ts +4 -1
- package/dist/esm/bendystrawOperations.d.ts.map +1 -1
- package/dist/esm/bendystrawOperations.js +4 -1
- package/dist/esm/bendystrawOperations.js.map +1 -1
- package/dist/esm/jbcenter/ensureDeployed.d.ts +5 -0
- package/dist/esm/jbcenter/ensureDeployed.d.ts.map +1 -1
- package/dist/esm/jbcenter/ensureDeployed.js +13 -15
- package/dist/esm/jbcenter/ensureDeployed.js.map +1 -1
- package/dist/esm/jbcenter/rateLimit.d.ts +80 -0
- package/dist/esm/jbcenter/rateLimit.d.ts.map +1 -0
- package/dist/esm/jbcenter/rateLimit.js +151 -0
- package/dist/esm/jbcenter/rateLimit.js.map +1 -0
- package/dist/esm/jbcenter.d.ts +47 -5
- package/dist/esm/jbcenter.d.ts.map +1 -1
- package/dist/esm/jbcenter.js +51 -7
- package/dist/esm/jbcenter.js.map +1 -1
- package/dist/esm/pause.d.ts +6 -0
- package/dist/esm/pause.d.ts.map +1 -0
- package/dist/esm/pause.js +22 -0
- package/dist/esm/pause.js.map +1 -0
- package/dist/esm/safeService.d.ts +23 -9
- package/dist/esm/safeService.d.ts.map +1 -1
- package/dist/esm/safeService.js +75 -35
- package/dist/esm/safeService.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,7 +26,9 @@ export declare function resolvePersistedBendystrawRequest(value: unknown, regist
|
|
|
26
26
|
* Send one persisted operation through the app's same-origin proxy
|
|
27
27
|
* (`/api/bendystraw/{network}/query` unless `endpoint` says otherwise). Only
|
|
28
28
|
* the operation id and variables leave the browser; the response is validated
|
|
29
|
-
* against the document's contract.
|
|
29
|
+
* against the document's contract. When the caller's `signal` aborts, the
|
|
30
|
+
* request under way fails with the signal's reason and is not retried; a signal
|
|
31
|
+
* that has already aborted sends nothing.
|
|
30
32
|
*/
|
|
31
33
|
export declare function requestPersistedBendystraw<T>(args: {
|
|
32
34
|
contract: BendystrawOperationContract;
|
|
@@ -34,5 +36,6 @@ export declare function requestPersistedBendystraw<T>(args: {
|
|
|
34
36
|
query: string;
|
|
35
37
|
variables: Record<string, unknown>;
|
|
36
38
|
endpoint?: string;
|
|
39
|
+
signal?: AbortSignal;
|
|
37
40
|
}): Promise<T>;
|
|
38
41
|
//# sourceMappingURL=bendystrawOperations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bendystrawOperations.d.ts","sourceRoot":"","sources":["../../src/bendystrawOperations.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzE,CAAC;AAwJF;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,2BAA2B,CAiD7B;AAED,4GAA4G;AAC5G,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1E;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACzC,0BAA0B,GAAG,IAAI,CAcnC;AAED
|
|
1
|
+
{"version":3,"file":"bendystrawOperations.d.ts","sourceRoot":"","sources":["../../src/bendystrawOperations.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzE,CAAC;AAwJF;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,2BAA2B,CAiD7B;AAED,4GAA4G;AAC5G,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1E;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACzC,0BAA0B,GAAG,IAAI,CAcnC;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,IAAI,EAAE;IACxD,QAAQ,EAAE,2BAA2B,CAAC;IACtC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,CAAC,CAAC,CAmBb"}
|
|
@@ -194,7 +194,9 @@ function resolvePersistedBendystrawRequest(value, registry) {
|
|
|
194
194
|
* Send one persisted operation through the app's same-origin proxy
|
|
195
195
|
* (`/api/bendystraw/{network}/query` unless `endpoint` says otherwise). Only
|
|
196
196
|
* the operation id and variables leave the browser; the response is validated
|
|
197
|
-
* against the document's contract.
|
|
197
|
+
* against the document's contract. When the caller's `signal` aborts, the
|
|
198
|
+
* request under way fails with the signal's reason and is not retried; a signal
|
|
199
|
+
* that has already aborted sends nothing.
|
|
198
200
|
*/
|
|
199
201
|
async function requestPersistedBendystraw(args) {
|
|
200
202
|
const operation = await bendystrawOperationId(args.query);
|
|
@@ -205,6 +207,7 @@ async function requestPersistedBendystraw(args) {
|
|
|
205
207
|
cache: "no-store",
|
|
206
208
|
}),
|
|
207
209
|
operationName: args.contract.operationName,
|
|
210
|
+
signal: args.signal,
|
|
208
211
|
validateData: (value) => args.contract.validateData(value),
|
|
209
212
|
validateVariables: args.contract.validateVariables,
|
|
210
213
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bendystrawOperations.js","sourceRoot":"","sources":["../../src/bendystrawOperations.ts"],"names":[],"mappings":";;AA8KA,gEAmDC;AAGD,sDASC;AAYD,8EAiBC;
|
|
1
|
+
{"version":3,"file":"bendystrawOperations.js","sourceRoot":"","sources":["../../src/bendystrawOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,12 @@ export type EnsureDeployedOptions = {
|
|
|
30
30
|
*/
|
|
31
31
|
selfPaid?: (calls: JBCenterDeploymentCall[]) => Promise<JBCenterDeploymentInput[]>;
|
|
32
32
|
onStep?: (step: EnsureDeployedStep) => void;
|
|
33
|
+
/** The wait between polls, in milliseconds: a positive finite number, 4,000 by default. */
|
|
33
34
|
pollMs?: number;
|
|
35
|
+
/**
|
|
36
|
+
* How long the run polls before it fails, in milliseconds: a positive
|
|
37
|
+
* number, `Infinity` to poll until the run lands, 600,000 by default.
|
|
38
|
+
*/
|
|
34
39
|
timeoutMs?: number;
|
|
35
40
|
signal?: AbortSignal;
|
|
36
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureDeployed.d.ts","sourceRoot":"","sources":["../../../src/jbcenter/ensureDeployed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensureDeployed.d.ts","sourceRoot":"","sources":["../../../src/jbcenter/ensureDeployed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAQxB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EACF,QAAQ,GACR,MAAM,GACN,WAAW,GACX,QAAQ,GACR,WAAW,GACX,YAAY,CAAC;IACjB,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,sBAAsB,EAAE,KAC5B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAG1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;gBADzB,OAAO,EAAE,MAAM,EACN,OAAO,CAAC,EAAE,MAAM,YAAA;CAK5B;AA+QD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgFjC"}
|
|
@@ -7,6 +7,7 @@ exports.ensureDeployed = ensureDeployed;
|
|
|
7
7
|
// top-level read of `JBCenterRequestError` or `isSponsorable` would resolve
|
|
8
8
|
// before `jbcenter.ts` finishes evaluating under CJS.
|
|
9
9
|
const jbcenter_js_1 = require("../jbcenter.js");
|
|
10
|
+
const pause_js_1 = require("../pause.js");
|
|
10
11
|
const merge_js_1 = require("./merge.js");
|
|
11
12
|
const DEFAULT_POLL_MS = 4_000;
|
|
12
13
|
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
@@ -24,19 +25,6 @@ function checkAborted(signal) {
|
|
|
24
25
|
throw signal.reason;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
function sleep(ms, signal) {
|
|
28
|
-
return new Promise((resolve, reject) => {
|
|
29
|
-
const onAbort = () => {
|
|
30
|
-
clearTimeout(timer);
|
|
31
|
-
reject(signal?.reason);
|
|
32
|
-
};
|
|
33
|
-
const timer = setTimeout(() => {
|
|
34
|
-
signal?.removeEventListener("abort", onAbort);
|
|
35
|
-
resolve();
|
|
36
|
-
}, ms);
|
|
37
|
-
signal?.addEventListener("abort", onAbort, { once: true });
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
28
|
/**
|
|
41
29
|
* The chains this run covers, in the intent's own order. Naming a chain the
|
|
42
30
|
* intent does not carry is a caller mistake, not a deploy failure.
|
|
@@ -89,10 +77,12 @@ async function pollUntilDeployed(client, seed, run, pollMs, timeoutMs, signal, o
|
|
|
89
77
|
if (isRunDeployed(current, run)) {
|
|
90
78
|
return (0, merge_js_1.deployedChains)(current);
|
|
91
79
|
}
|
|
92
|
-
|
|
80
|
+
const elapsed = Date.now() - startedAt;
|
|
81
|
+
if (elapsed >= timeoutMs) {
|
|
93
82
|
throw new EnsureDeployedError("JB Center deploy polling timed out");
|
|
94
83
|
}
|
|
95
|
-
|
|
84
|
+
// A wait never runs past the run's timeout: the read at its end is the last.
|
|
85
|
+
await (0, pause_js_1.pause)(Math.min(pollMs, timeoutMs - elapsed), signal, () => signal?.reason);
|
|
96
86
|
current = await client.getIntent(current.id, { signal });
|
|
97
87
|
}
|
|
98
88
|
}
|
|
@@ -207,6 +197,14 @@ async function ensureDeployed(options) {
|
|
|
207
197
|
const { client, intent, onStep, relayPaid, selfPaid, signal } = options;
|
|
208
198
|
const pollMs = options.pollMs ?? DEFAULT_POLL_MS;
|
|
209
199
|
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
200
|
+
// A wait of NaN, 0 or less fires at once, and the run would poll Center
|
|
201
|
+
// without pause. A timeoutMs of Infinity polls until the run lands.
|
|
202
|
+
if (!Number.isFinite(pollMs) || pollMs <= 0) {
|
|
203
|
+
throw new TypeError("pollMs must be a positive finite number of milliseconds");
|
|
204
|
+
}
|
|
205
|
+
if (typeof timeoutMs !== "number" || !(timeoutMs > 0)) {
|
|
206
|
+
throw new TypeError("timeoutMs must be a positive number of milliseconds");
|
|
207
|
+
}
|
|
210
208
|
if (relayPaid && selfPaid) {
|
|
211
209
|
throw new EnsureDeployedError("ensureDeployed takes relayPaid or selfPaid, never both");
|
|
212
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureDeployed.js","sourceRoot":"","sources":["../../../src/jbcenter/ensureDeployed.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ensureDeployed.js","sourceRoot":"","sources":["../../../src/jbcenter/ensureDeployed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type Transport } from "viem";
|
|
2
|
+
/** What one link of an error chain can say about a refusal. */
|
|
3
|
+
export type ErrorChainLink = {
|
|
4
|
+
status?: unknown;
|
|
5
|
+
code?: unknown;
|
|
6
|
+
message?: unknown;
|
|
7
|
+
details?: unknown;
|
|
8
|
+
retryAfter?: unknown;
|
|
9
|
+
headers?: unknown;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* An error and what it wraps, outermost first, eight links at most. viem
|
|
13
|
+
* wraps whatever its transport throws, so the HTTP status or the JSON-RPC
|
|
14
|
+
* code Center answered with usually sits on a cause.
|
|
15
|
+
*/
|
|
16
|
+
export declare function errorChain(error: unknown): ErrorChainLink[];
|
|
17
|
+
/** Whether `error` is a 429, as an HTTP status or a JSON-RPC code, on it or on anything it wraps. */
|
|
18
|
+
export declare function isRateLimited(error: unknown): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* How long the refusal asked to wait, in seconds, or undefined when nothing
|
|
21
|
+
* says. The first `retryAfter` in the chain that is a finite number comes
|
|
22
|
+
* first: the SDK reads JB Center's Retry-After header into it. Failing that,
|
|
23
|
+
* a link's Retry-After header (viem's HTTP errors carry the response's
|
|
24
|
+
* headers) is read as `retryAfterMs` reads it, in whole seconds rounded up.
|
|
25
|
+
*/
|
|
26
|
+
export declare function retryAfterOf(error: unknown): number | undefined;
|
|
27
|
+
/** The longest a refusal holds a limiter's slots: Center's window is a minute. */
|
|
28
|
+
export declare const JBCENTER_MAX_RATE_LIMIT_PAUSE_MS = 60000;
|
|
29
|
+
export type JBCenterLimiterOptions = {
|
|
30
|
+
/**
|
|
31
|
+
* How many requests may be in flight at once, every chain's together. Slots
|
|
32
|
+
* bound how many are in flight, not how many go out a minute: two in flight
|
|
33
|
+
* send up to 343 a minute at the quickest round trip measured against
|
|
34
|
+
* Center's staging (0.35 s), under the 600 a first-party origin gets but over
|
|
35
|
+
* the 120 any other gets. Past the limit, the first 429 pauses the rest.
|
|
36
|
+
*/
|
|
37
|
+
slots: number;
|
|
38
|
+
};
|
|
39
|
+
/** Requests that share JB Center's rate limit. One limiter serves a whole page. */
|
|
40
|
+
export type JBCenterLimiter = {
|
|
41
|
+
/**
|
|
42
|
+
* `send`, once one of the limiter's slots is free: requests start in the
|
|
43
|
+
* order they came, at most `slots` at once. When Center refuses one with a
|
|
44
|
+
* 429 that says how long to wait, nothing starts until that has passed, a
|
|
45
|
+
* minute at most ({@link JBCENTER_MAX_RATE_LIMIT_PAUSE_MS}): every request in
|
|
46
|
+
* the minute would be refused, and would count. A request whose `signal`
|
|
47
|
+
* aborts while it waits leaves the line, rejecting with the reason, and is
|
|
48
|
+
* never sent. One under way answers to its own signal: the limiter does not
|
|
49
|
+
* stop it, and its slot frees when it ends. A request that `send` asks the
|
|
50
|
+
* same limiter for before it returns is refused at once with a TypeError,
|
|
51
|
+
* since it would wait on the slot its asker holds. One asked for after an
|
|
52
|
+
* await looks like any other request and is not refused, so a request never
|
|
53
|
+
* asks its own limiter for another.
|
|
54
|
+
*/
|
|
55
|
+
run<T>(send: () => Promise<T>, options?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
}): Promise<T>;
|
|
58
|
+
/**
|
|
59
|
+
* `transport`, with every request it sends in one of the limiter's slots.
|
|
60
|
+
* Each try is a request of its own, so viem's retry of a refused request
|
|
61
|
+
* waits out the Retry-After with the rest, and a try made with a signal
|
|
62
|
+
* leaves the line when it aborts. This is for a transport that does not go
|
|
63
|
+
* through JB Center's provider, such as viem's `http`. Give that provider
|
|
64
|
+
* the limiter instead (`createJBCenterRpcProvider`'s `limiter`), so its
|
|
65
|
+
* waits for a node behind the head hold no slot. A transport that already
|
|
66
|
+
* sends through this limiter, one built on a provider that has it or one it
|
|
67
|
+
* wraps already, fails each request at once with a TypeError and sends
|
|
68
|
+
* nothing, where it would wait on its own slot for good.
|
|
69
|
+
*/
|
|
70
|
+
transport(transport: Transport): Transport;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* A limiter for every request a page sends to JB Center: create one when the
|
|
74
|
+
* page loads (at module level in the browser), hand it to every chain's
|
|
75
|
+
* provider (`createJBCenterRpcProvider`'s `limiter`), and wrap any other
|
|
76
|
+
* transport to Center with its `transport`. Every try takes its own slot, so
|
|
77
|
+
* a read waiting out a node behind the head holds none.
|
|
78
|
+
*/
|
|
79
|
+
export declare function createJBCenterLimiter({ slots, }: JBCenterLimiterOptions): JBCenterLimiter;
|
|
80
|
+
//# sourceMappingURL=rateLimit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/jbcenter/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,MAAM,CAAC;AAUvD,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CAU3D;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIrD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAe/D;AAMD,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,CAAC,EACH,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,CAAC,CAAC,CAAC;IACd;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAmDF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,GACN,EAAE,sBAAsB,GAAG,eAAe,CAyE1C"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JBCENTER_MAX_RATE_LIMIT_PAUSE_MS = void 0;
|
|
4
|
+
exports.errorChain = errorChain;
|
|
5
|
+
exports.isRateLimited = isRateLimited;
|
|
6
|
+
exports.retryAfterOf = retryAfterOf;
|
|
7
|
+
exports.createJBCenterLimiter = createJBCenterLimiter;
|
|
8
|
+
const viem_1 = require("viem");
|
|
9
|
+
const untrusted_js_1 = require("../untrusted.js");
|
|
10
|
+
/**
|
|
11
|
+
* An error and what it wraps, outermost first, eight links at most. viem
|
|
12
|
+
* wraps whatever its transport throws, so the HTTP status or the JSON-RPC
|
|
13
|
+
* code Center answered with usually sits on a cause.
|
|
14
|
+
*/
|
|
15
|
+
function errorChain(error) {
|
|
16
|
+
const chain = [];
|
|
17
|
+
for (let next = error; typeof next === "object" && next !== null && chain.length < 8; next = next.cause) {
|
|
18
|
+
chain.push(next);
|
|
19
|
+
}
|
|
20
|
+
return chain;
|
|
21
|
+
}
|
|
22
|
+
/** Whether `error` is a 429, as an HTTP status or a JSON-RPC code, on it or on anything it wraps. */
|
|
23
|
+
function isRateLimited(error) {
|
|
24
|
+
return errorChain(error).some(({ status, code }) => status === 429 || code === 429);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* How long the refusal asked to wait, in seconds, or undefined when nothing
|
|
28
|
+
* says. The first `retryAfter` in the chain that is a finite number comes
|
|
29
|
+
* first: the SDK reads JB Center's Retry-After header into it. Failing that,
|
|
30
|
+
* a link's Retry-After header (viem's HTTP errors carry the response's
|
|
31
|
+
* headers) is read as `retryAfterMs` reads it, in whole seconds rounded up.
|
|
32
|
+
*/
|
|
33
|
+
function retryAfterOf(error) {
|
|
34
|
+
const chain = errorChain(error);
|
|
35
|
+
const said = chain
|
|
36
|
+
.map((link) => link.retryAfter)
|
|
37
|
+
.find((seconds) => typeof seconds === "number" && Number.isFinite(seconds));
|
|
38
|
+
if (said !== undefined)
|
|
39
|
+
return said;
|
|
40
|
+
for (const { headers } of chain) {
|
|
41
|
+
if (!(headers instanceof Headers))
|
|
42
|
+
continue;
|
|
43
|
+
const ms = (0, untrusted_js_1.retryAfterMs)(headers.get("retry-after"));
|
|
44
|
+
if (ms !== null)
|
|
45
|
+
return Math.ceil(ms / 1000);
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
/** What a limiter says when a request it is starting asks it for another slot. */
|
|
50
|
+
const NESTED = "A request this JB Center limiter was starting asked it for another slot. Give the limiter to JB Center's provider or wrap one transport with it, not both, and wrap only once.";
|
|
51
|
+
/** The longest a refusal holds a limiter's slots: Center's window is a minute. */
|
|
52
|
+
exports.JBCENTER_MAX_RATE_LIMIT_PAUSE_MS = 60_000;
|
|
53
|
+
function line(room, held) {
|
|
54
|
+
let running = 0;
|
|
55
|
+
/** What waits, in the order it joined. */
|
|
56
|
+
const waiting = new Set();
|
|
57
|
+
function resume() {
|
|
58
|
+
while (!held() && running < room && waiting.size > 0) {
|
|
59
|
+
const [next] = waiting;
|
|
60
|
+
waiting.delete(next);
|
|
61
|
+
next();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function join(task, signal) {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
if (signal?.aborted)
|
|
67
|
+
return reject(signal.reason);
|
|
68
|
+
function start() {
|
|
69
|
+
signal?.removeEventListener("abort", leave);
|
|
70
|
+
running += 1;
|
|
71
|
+
new Promise((begun) => begun(task()))
|
|
72
|
+
.then(resolve, reject)
|
|
73
|
+
.finally(() => {
|
|
74
|
+
running -= 1;
|
|
75
|
+
resume();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function leave() {
|
|
79
|
+
waiting.delete(start);
|
|
80
|
+
reject(signal.reason);
|
|
81
|
+
}
|
|
82
|
+
signal?.addEventListener("abort", leave, { once: true });
|
|
83
|
+
waiting.add(start);
|
|
84
|
+
resume();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return { join, resume };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* A limiter for every request a page sends to JB Center: create one when the
|
|
91
|
+
* page loads (at module level in the browser), hand it to every chain's
|
|
92
|
+
* provider (`createJBCenterRpcProvider`'s `limiter`), and wrap any other
|
|
93
|
+
* transport to Center with its `transport`. Every try takes its own slot, so
|
|
94
|
+
* a read waiting out a node behind the head holds none.
|
|
95
|
+
*/
|
|
96
|
+
function createJBCenterLimiter({ slots, }) {
|
|
97
|
+
if (!Number.isSafeInteger(slots) || slots <= 0) {
|
|
98
|
+
throw new TypeError("slots must be a positive safe integer");
|
|
99
|
+
}
|
|
100
|
+
/** When the slots open again after a refusal, by the clock, and the timer that opens them. */
|
|
101
|
+
let resumeAt = 0;
|
|
102
|
+
let paused;
|
|
103
|
+
const queue = line(slots, () => paused !== undefined);
|
|
104
|
+
/** Holds every slot for `ms`, or until a later end a refusal already set. */
|
|
105
|
+
function hold(ms) {
|
|
106
|
+
const until = Date.now() + ms;
|
|
107
|
+
if (paused !== undefined && until <= resumeAt)
|
|
108
|
+
return;
|
|
109
|
+
clearTimeout(paused);
|
|
110
|
+
resumeAt = until;
|
|
111
|
+
paused = setTimeout(() => {
|
|
112
|
+
paused = undefined;
|
|
113
|
+
queue.resume();
|
|
114
|
+
}, ms);
|
|
115
|
+
}
|
|
116
|
+
/** Whether one of the limiter's requests is starting: its `send` has not returned yet. */
|
|
117
|
+
let starting = false;
|
|
118
|
+
/** `send()`, with every request it asks this limiter for before it returns refused. */
|
|
119
|
+
function begin(send) {
|
|
120
|
+
starting = true;
|
|
121
|
+
try {
|
|
122
|
+
return send();
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
starting = false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function run(send, { signal } = {}) {
|
|
129
|
+
// Asked for by a request this limiter is starting, it would wait on the
|
|
130
|
+
// slot that request holds, and the request on it.
|
|
131
|
+
if (starting)
|
|
132
|
+
return Promise.reject(new TypeError(NESTED));
|
|
133
|
+
return queue.join(async () => {
|
|
134
|
+
try {
|
|
135
|
+
return await begin(send);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const seconds = isRateLimited(error) ? retryAfterOf(error) : undefined;
|
|
139
|
+
if (seconds !== undefined && seconds > 0) {
|
|
140
|
+
hold(Math.min(seconds * 1_000, exports.JBCENTER_MAX_RATE_LIMIT_PAUSE_MS));
|
|
141
|
+
}
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
}, signal);
|
|
145
|
+
}
|
|
146
|
+
function transport(wrapped) {
|
|
147
|
+
return (parameters) => {
|
|
148
|
+
const { config, value } = wrapped(parameters);
|
|
149
|
+
const send = config.request;
|
|
150
|
+
const request = (args, options) => run(() => send(args, options), {
|
|
151
|
+
signal: options?.signal,
|
|
152
|
+
});
|
|
153
|
+
return (0, viem_1.createTransport)({ ...config, request: request }, value);
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return { run, transport };
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=rateLimit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/jbcenter/rateLimit.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/jbcenter.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Abi, type Address, type ContractFunctionName, type ContractFunctionParameters, type Hex } from "viem";
|
|
2
|
+
import type { JBCenterLimiter } from "./jbcenter/rateLimit.js";
|
|
2
3
|
export declare const JBCENTER_DEFAULT_URL = "https://juicebox.center";
|
|
3
4
|
export declare const JBCENTER_REQUEST_TIMEOUT_MS = 15000;
|
|
4
5
|
export declare const JBCENTER_DEPLOYMENT_TIMEOUT_MS = 45000;
|
|
@@ -6,6 +7,38 @@ export declare const JBCENTER_PIN_TIMEOUT_MS = 300000;
|
|
|
6
7
|
export declare const MAX_JBCENTER_RESPONSE_BYTES: number;
|
|
7
8
|
export declare const JBCENTER_RPC_METHODS: readonly ["eth_blobBaseFee", "eth_blockNumber", "eth_call", "eth_chainId", "eth_createAccessList", "eth_estimateGas", "eth_feeHistory", "eth_gasPrice", "eth_getBalance", "eth_getBlockByHash", "eth_getBlockByNumber", "eth_getBlockReceipts", "eth_getBlockTransactionCountByHash", "eth_getBlockTransactionCountByNumber", "eth_getCode", "eth_getLogs", "eth_getProof", "eth_getStorageAt", "eth_getTransactionByBlockHashAndIndex", "eth_getTransactionByBlockNumberAndIndex", "eth_getTransactionByHash", "eth_getTransactionCount", "eth_getTransactionReceipt", "eth_maxPriorityFeePerGas", "eth_simulateV1", "eth_syncing", "net_version"];
|
|
8
9
|
export type JBCenterRpcMethod = (typeof JBCENTER_RPC_METHODS)[number];
|
|
10
|
+
/**
|
|
11
|
+
* The waits, in milliseconds, before each retry of a read that a node behind
|
|
12
|
+
* the head could not answer: JSON-RPC -32001. JB Center load balances reads
|
|
13
|
+
* across nodes that import blocks at slightly different times, so a read
|
|
14
|
+
* pinned to a block one node has imported can land on a sibling that has not,
|
|
15
|
+
* which answers -32001 ("Requested resource not found." in viem). Waiting out
|
|
16
|
+
* the lag is the only correct answer: reading `latest` instead would read
|
|
17
|
+
* state older than the block the read pins. Base mines every two seconds, so
|
|
18
|
+
* these waits cover a few blocks of drift.
|
|
19
|
+
*/
|
|
20
|
+
export declare const JBCENTER_BLOCK_LAG_RETRY_DELAYS_MS: readonly [250, 500, 1000, 2000, 2000];
|
|
21
|
+
/** How a JB Center RPC provider retries a read. */
|
|
22
|
+
export type JBCenterRpcProviderOptions = {
|
|
23
|
+
/**
|
|
24
|
+
* The waits before each retry of a read a node behind the head answered
|
|
25
|
+
* with -32001, {@link JBCENTER_BLOCK_LAG_RETRY_DELAYS_MS} by default; `[]`
|
|
26
|
+
* retries nothing. No other failure is retried: that answer is the only one
|
|
27
|
+
* that changes by itself, once the node catches up. A revert, bad params or
|
|
28
|
+
* a refusal comes back the same, a 429 must wait out Center's minute, and a
|
|
29
|
+
* timeout has already waited its full time. Every method Center allows is a
|
|
30
|
+
* read, so a retry repeats work, never an effect.
|
|
31
|
+
*/
|
|
32
|
+
blockLagRetryDelaysMs?: readonly number[];
|
|
33
|
+
/**
|
|
34
|
+
* The limiter every try waits for a slot of ({@link createJBCenterLimiter}):
|
|
35
|
+
* one per page, shared by every chain's provider, so the page's requests
|
|
36
|
+
* share its slots and its pause after a 429. Each try takes its own slot, so
|
|
37
|
+
* a wait between tries holds none. Without one, requests go as they are
|
|
38
|
+
* made.
|
|
39
|
+
*/
|
|
40
|
+
limiter?: JBCenterLimiter;
|
|
41
|
+
};
|
|
9
42
|
export type JBCenterRpcRequest = {
|
|
10
43
|
method: JBCenterRpcMethod;
|
|
11
44
|
params?: readonly unknown[];
|
|
@@ -13,8 +46,11 @@ export type JBCenterRpcRequest = {
|
|
|
13
46
|
/** Structurally compatible with EIP-1193 providers, including viem's `custom`. */
|
|
14
47
|
export type JBCenterRpcProvider = {
|
|
15
48
|
/**
|
|
16
|
-
* One read-only JSON-RPC request
|
|
17
|
-
*
|
|
49
|
+
* One read-only JSON-RPC request, asked again while a node behind the head
|
|
50
|
+
* cannot answer it ({@link JBCenterRpcProviderOptions}). `options`, which
|
|
51
|
+
* viem's custom transport passes with the read's `signal`, goes with every
|
|
52
|
+
* try. Once the signal aborts, the request or the wait between tries ends
|
|
53
|
+
* at once with its reason, and nothing more is sent.
|
|
18
54
|
*/
|
|
19
55
|
request<TResult = unknown>(request: {
|
|
20
56
|
method: string;
|
|
@@ -44,6 +80,8 @@ export type { PublishSignedIntentOptions } from "./jbcenter/publish.js";
|
|
|
44
80
|
export { JBCenterIntentMismatchError, publishSignedIntent, } from "./jbcenter/publish.js";
|
|
45
81
|
export type { JBCenterRefusal, JBCenterRefusalCode, } from "./jbcenter/refusal.js";
|
|
46
82
|
export { describeCenterRefusal } from "./jbcenter/refusal.js";
|
|
83
|
+
export type { ErrorChainLink, JBCenterLimiter, JBCenterLimiterOptions, } from "./jbcenter/rateLimit.js";
|
|
84
|
+
export { JBCENTER_MAX_RATE_LIMIT_PAUSE_MS, createJBCenterLimiter, errorChain, isRateLimited, retryAfterOf, } from "./jbcenter/rateLimit.js";
|
|
47
85
|
export type JBCenterContractCall<TAbi extends Abi = Abi, TFunctionName extends ContractFunctionName<TAbi, "payable" | "nonpayable"> = ContractFunctionName<TAbi, "payable" | "nonpayable">> = {
|
|
48
86
|
chainId: number;
|
|
49
87
|
address: Address;
|
|
@@ -240,11 +278,15 @@ export declare class JBCenterClient {
|
|
|
240
278
|
* wallet, signing, transaction-submission, batch, and privileged methods.
|
|
241
279
|
*/
|
|
242
280
|
rpc<TResult = unknown>(chainId: number, request: JBCenterRpcRequest, options?: JBCenterRequestOptions): Promise<TResult>;
|
|
243
|
-
/**
|
|
244
|
-
|
|
281
|
+
/**
|
|
282
|
+
* Returns an EIP-1193-shaped provider suitable for viem's `custom`. It asks
|
|
283
|
+
* again for a read a node behind the head could not answer, as
|
|
284
|
+
* {@link JBCenterRpcProviderOptions} describes.
|
|
285
|
+
*/
|
|
286
|
+
rpcProvider(chainId: number, options?: JBCenterRpcProviderOptions): JBCenterRpcProvider;
|
|
245
287
|
private pinFile;
|
|
246
288
|
private fetchJson;
|
|
247
289
|
}
|
|
248
290
|
export declare function createJBCenterClient(options?: JBCenterClientOptions): JBCenterClient;
|
|
249
|
-
export declare function createJBCenterRpcProvider(chainId: number, options?: JBCenterClientOptions): JBCenterRpcProvider;
|
|
291
|
+
export declare function createJBCenterRpcProvider(chainId: number, options?: JBCenterClientOptions & JBCenterRpcProviderOptions): JBCenterRpcProvider;
|
|
250
292
|
//# sourceMappingURL=jbcenter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbcenter.d.ts","sourceRoot":"","sources":["../../src/jbcenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"jbcenter.d.ts","sourceRoot":"","sources":["../../src/jbcenter.ts"],"names":[],"mappings":"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"}
|