@usesigil/kit 0.4.0 → 0.6.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/agent-errors.d.ts +18 -0
- package/dist/agent-errors.d.ts.map +1 -1
- package/dist/agent-errors.js +18 -0
- package/dist/agent-errors.js.map +1 -1
- package/dist/alt-loader.d.ts.map +1 -1
- package/dist/alt-loader.js +4 -2
- package/dist/alt-loader.js.map +1 -1
- package/dist/composer.d.ts.map +1 -1
- package/dist/composer.js +4 -2
- package/dist/composer.js.map +1 -1
- package/dist/core/errors.d.ts +37 -5
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +25 -4
- package/dist/core/errors.js.map +1 -1
- package/dist/create-vault.d.ts.map +1 -1
- package/dist/create-vault.js +10 -3
- package/dist/create-vault.js.map +1 -1
- package/dist/custody-adapter.d.ts.map +1 -1
- package/dist/custody-adapter.js +4 -2
- package/dist/custody-adapter.js.map +1 -1
- package/dist/dashboard/discover.d.ts.map +1 -1
- package/dist/dashboard/discover.js +10 -1
- package/dist/dashboard/discover.js.map +1 -1
- package/dist/dashboard/errors.d.ts +34 -0
- package/dist/dashboard/errors.d.ts.map +1 -1
- package/dist/dashboard/errors.js +149 -1
- package/dist/dashboard/errors.js.map +1 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +6 -4
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/mutations.d.ts.map +1 -1
- package/dist/dashboard/mutations.js +8 -1
- package/dist/dashboard/mutations.js.map +1 -1
- package/dist/dashboard/reads.d.ts.map +1 -1
- package/dist/dashboard/reads.js +20 -27
- package/dist/dashboard/reads.js.map +1 -1
- package/dist/errors/base.d.ts +47 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +85 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/codes.d.ts +71 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/codes.js +68 -0
- package/dist/errors/codes.js.map +1 -0
- package/dist/errors/compose.d.ts +14 -0
- package/dist/errors/compose.d.ts.map +1 -0
- package/dist/errors/compose.js +13 -0
- package/dist/errors/compose.js.map +1 -0
- package/dist/errors/context.d.ts +213 -0
- package/dist/errors/context.d.ts.map +1 -0
- package/dist/errors/context.js +11 -0
- package/dist/errors/context.js.map +1 -0
- package/dist/errors/index.d.ts +22 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +34 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/rpc.d.ts +16 -0
- package/dist/errors/rpc.d.ts.map +1 -0
- package/dist/errors/rpc.js +15 -0
- package/dist/errors/rpc.js.map +1 -0
- package/dist/errors/sdk.d.ts +31 -0
- package/dist/errors/sdk.d.ts.map +1 -0
- package/dist/errors/sdk.js +30 -0
- package/dist/errors/sdk.js.map +1 -0
- package/dist/errors/shield.d.ts +16 -0
- package/dist/errors/shield.d.ts.map +1 -0
- package/dist/errors/shield.js +15 -0
- package/dist/errors/shield.js.map +1 -0
- package/dist/errors/tee.d.ts +18 -0
- package/dist/errors/tee.d.ts.map +1 -0
- package/dist/errors/tee.js +17 -0
- package/dist/errors/tee.js.map +1 -0
- package/dist/errors/walk.d.ts +3 -0
- package/dist/errors/walk.d.ts.map +1 -0
- package/dist/errors/walk.js +71 -0
- package/dist/errors/walk.js.map +1 -0
- package/dist/errors/x402.d.ts +20 -0
- package/dist/errors/x402.d.ts.map +1 -0
- package/dist/errors/x402.js +19 -0
- package/dist/errors/x402.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/inscribe.d.ts.map +1 -1
- package/dist/inscribe.js +5 -3
- package/dist/inscribe.js.map +1 -1
- package/dist/integrations/compose-errors.d.ts +11 -3
- package/dist/integrations/compose-errors.d.ts.map +1 -1
- package/dist/integrations/compose-errors.js +20 -4
- package/dist/integrations/compose-errors.js.map +1 -1
- package/dist/network-errors.d.ts +107 -0
- package/dist/network-errors.d.ts.map +1 -0
- package/dist/network-errors.js +357 -0
- package/dist/network-errors.js.map +1 -0
- package/dist/owner-transaction.d.ts.map +1 -1
- package/dist/owner-transaction.js +6 -3
- package/dist/owner-transaction.js.map +1 -1
- package/dist/priority-fees.d.ts.map +1 -1
- package/dist/priority-fees.js +13 -2
- package/dist/priority-fees.js.map +1 -1
- package/dist/rpc-helpers.d.ts.map +1 -1
- package/dist/rpc-helpers.js +7 -4
- package/dist/rpc-helpers.js.map +1 -1
- package/dist/seal.d.ts.map +1 -1
- package/dist/seal.js +78 -38
- package/dist/seal.js.map +1 -1
- package/dist/shield.d.ts +2 -11
- package/dist/shield.d.ts.map +1 -1
- package/dist/shield.js +34 -16
- package/dist/shield.js.map +1 -1
- package/dist/state-resolver.d.ts.map +1 -1
- package/dist/state-resolver.js +6 -4
- package/dist/state-resolver.js.map +1 -1
- package/dist/tee/providers/crossmint.d.ts.map +1 -1
- package/dist/tee/providers/crossmint.js +15 -8
- package/dist/tee/providers/crossmint.js.map +1 -1
- package/dist/tee/providers/privy.d.ts.map +1 -1
- package/dist/tee/providers/privy.js +13 -8
- package/dist/tee/providers/privy.js.map +1 -1
- package/dist/tee/providers/turnkey.d.ts.map +1 -1
- package/dist/tee/providers/turnkey.js +19 -3
- package/dist/tee/providers/turnkey.js.map +1 -1
- package/dist/tee/types.d.ts +26 -1
- package/dist/tee/types.d.ts.map +1 -1
- package/dist/tee/verify.d.ts +15 -4
- package/dist/tee/verify.d.ts.map +1 -1
- package/dist/tee/verify.js +147 -38
- package/dist/tee/verify.js.map +1 -1
- package/dist/tee/wallet-types.d.ts +28 -5
- package/dist/tee/wallet-types.d.ts.map +1 -1
- package/dist/tee/wallet-types.js +44 -8
- package/dist/tee/wallet-types.js.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +3 -1
- package/dist/tokens.js.map +1 -1
- package/dist/transaction-executor.d.ts.map +1 -1
- package/dist/transaction-executor.js +4 -2
- package/dist/transaction-executor.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -2
- package/dist/types.js.map +1 -1
- package/dist/vault-analytics.d.ts.map +1 -1
- package/dist/vault-analytics.js +10 -1
- package/dist/vault-analytics.js.map +1 -1
- package/dist/x402/errors.d.ts +31 -16
- package/dist/x402/errors.d.ts.map +1 -1
- package/dist/x402/errors.js +44 -23
- package/dist/x402/errors.js.map +1 -1
- package/dist/x402/facilitator-verify.d.ts.map +1 -1
- package/dist/x402/facilitator-verify.js +6 -2
- package/dist/x402/facilitator-verify.js.map +1 -1
- package/dist/x402/transfer-builder.d.ts.map +1 -1
- package/dist/x402/transfer-builder.js +2 -1
- package/dist/x402/transfer-builder.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural transport-error classification and safe error redaction.
|
|
3
|
+
*
|
|
4
|
+
* {@link isTransportError} inspects structural signals only (error class,
|
|
5
|
+
* `.name`, `.cause.code`) — never message regex — to distinguish transport
|
|
6
|
+
* failures (ECONNREFUSED, timeouts, TLS errors, HTTP/2 resets, 5xx upstream
|
|
7
|
+
* responses) from provider denials or logic errors. Intended for SDK call
|
|
8
|
+
* sites that want to surface "this was a network problem, retry may help"
|
|
9
|
+
* in a redacted, diagnosable form without leaking secrets from the raw
|
|
10
|
+
* error to downstream logs.
|
|
11
|
+
*
|
|
12
|
+
* {@link redactCause} returns a small, log-safe projection of any thrown
|
|
13
|
+
* value. Never returns raw `err` — message is sliced, `.stack` is dropped,
|
|
14
|
+
* cycles are broken via WeakSet, and every property access is try-guarded
|
|
15
|
+
* so a hostile error (Proxy traps, throwing getters, null-prototype
|
|
16
|
+
* objects) cannot re-introduce a silent failure by throwing through the
|
|
17
|
+
* redactor itself.
|
|
18
|
+
*/
|
|
19
|
+
// ─── Transport error codes ─────────────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Provider-denial class names. Errors whose `.name` matches one of these are
|
|
22
|
+
* NEVER classified as transport, even if other signals look transport-shaped.
|
|
23
|
+
* A provider that throws a `TimeoutError` for business reasons (e.g., policy
|
|
24
|
+
* lockout after N failed attempts) shouldn't be mis-classified as a network
|
|
25
|
+
* retry candidate. Extend this denylist when wiring a new custody adapter.
|
|
26
|
+
*/
|
|
27
|
+
export const PROVIDER_DENIAL_NAMES = new Set([
|
|
28
|
+
"ProviderDeniedError",
|
|
29
|
+
"CustodyDeniedError",
|
|
30
|
+
"UnauthorizedError",
|
|
31
|
+
"ForbiddenError",
|
|
32
|
+
]);
|
|
33
|
+
/**
|
|
34
|
+
* Error codes that indicate a transport-layer failure (network, TLS,
|
|
35
|
+
* HTTP/2, upstream gateway). `.cause.code` is inspected by
|
|
36
|
+
* {@link isTransportError}.
|
|
37
|
+
*
|
|
38
|
+
* Scope:
|
|
39
|
+
* - Classic POSIX: ECONNREFUSED, ECONNRESET, ETIMEDOUT, ENOTFOUND,
|
|
40
|
+
* EAI_AGAIN, ENETUNREACH, EPIPE.
|
|
41
|
+
* - Undici (Node 18/20/22 fetch): UND_ERR_CONNECT_TIMEOUT,
|
|
42
|
+
* UND_ERR_HEADERS_TIMEOUT, UND_ERR_BODY_TIMEOUT, UND_ERR_SOCKET,
|
|
43
|
+
* UND_ERR_ABORTED.
|
|
44
|
+
* - TLS: CERT_HAS_EXPIRED, UNABLE_TO_VERIFY_LEAF_SIGNATURE,
|
|
45
|
+
* DEPTH_ZERO_SELF_SIGNED_CERT, ERR_TLS_CERT_ALTNAME_INVALID.
|
|
46
|
+
* - HTTP/2: ERR_HTTP2_STREAM_ERROR, ERR_HTTP2_SESSION_ERROR,
|
|
47
|
+
* ERR_HTTP2_GOAWAY_SESSION.
|
|
48
|
+
* - Sigil custody adapters: HTTP_5XX (set on tagged upstream 5xx errors).
|
|
49
|
+
*/
|
|
50
|
+
export const TRANSPORT_CODES = new Set([
|
|
51
|
+
// POSIX
|
|
52
|
+
"ECONNREFUSED",
|
|
53
|
+
"ECONNRESET",
|
|
54
|
+
"ETIMEDOUT",
|
|
55
|
+
"ENOTFOUND",
|
|
56
|
+
"EAI_AGAIN",
|
|
57
|
+
"ENETUNREACH",
|
|
58
|
+
"EPIPE",
|
|
59
|
+
// Undici
|
|
60
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
61
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
62
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
63
|
+
"UND_ERR_SOCKET",
|
|
64
|
+
"UND_ERR_ABORTED",
|
|
65
|
+
// TLS
|
|
66
|
+
"CERT_HAS_EXPIRED",
|
|
67
|
+
"UNABLE_TO_VERIFY_LEAF_SIGNATURE",
|
|
68
|
+
"DEPTH_ZERO_SELF_SIGNED_CERT",
|
|
69
|
+
"ERR_TLS_CERT_ALTNAME_INVALID",
|
|
70
|
+
// HTTP/2
|
|
71
|
+
"ERR_HTTP2_STREAM_ERROR",
|
|
72
|
+
"ERR_HTTP2_SESSION_ERROR",
|
|
73
|
+
"ERR_HTTP2_GOAWAY_SESSION",
|
|
74
|
+
// Custody adapter tag (set by sdk/custody adapters on 5xx upstream)
|
|
75
|
+
"HTTP_5XX",
|
|
76
|
+
]);
|
|
77
|
+
/**
|
|
78
|
+
* Undici's causal ConnectTimeoutError class-name signal. Checked separately
|
|
79
|
+
* from `TRANSPORT_CODES` because some undici paths populate `.name` but not
|
|
80
|
+
* `.code` on the cause.
|
|
81
|
+
*/
|
|
82
|
+
const TRANSPORT_CAUSE_NAMES = new Set([
|
|
83
|
+
"ConnectTimeoutError",
|
|
84
|
+
"HeadersTimeoutError",
|
|
85
|
+
"BodyTimeoutError",
|
|
86
|
+
"SocketError",
|
|
87
|
+
]);
|
|
88
|
+
// ─── isTransportError ──────────────────────────────────────────────────────
|
|
89
|
+
/**
|
|
90
|
+
* `instanceof` that survives hostile proxies. `x instanceof C` internally
|
|
91
|
+
* walks the prototype chain and can invoke `get` traps; a throwing trap
|
|
92
|
+
* would propagate out of the predicate and re-introduce a silent-failure
|
|
93
|
+
* vector. Wrapping the check lets the classifier fall through to `false`
|
|
94
|
+
* instead of crashing.
|
|
95
|
+
*/
|
|
96
|
+
function safeInstanceOf(value, ctor) {
|
|
97
|
+
try {
|
|
98
|
+
return value instanceof ctor;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function safeGetName(value) {
|
|
105
|
+
try {
|
|
106
|
+
if (value && typeof value === "object" && "name" in value) {
|
|
107
|
+
const n = value.name;
|
|
108
|
+
return typeof n === "string" ? n : undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Throwing getter / Proxy trap — treat as unnameable.
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
function safeGetCause(value) {
|
|
117
|
+
try {
|
|
118
|
+
if (value && typeof value === "object" && "cause" in value) {
|
|
119
|
+
return value.cause;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// Throwing getter / Proxy trap.
|
|
124
|
+
}
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
function safeGetCode(value) {
|
|
128
|
+
try {
|
|
129
|
+
if (value && typeof value === "object" && "code" in value) {
|
|
130
|
+
const c = value.code;
|
|
131
|
+
if (typeof c === "string")
|
|
132
|
+
return c;
|
|
133
|
+
if (typeof c === "number" || typeof c === "bigint")
|
|
134
|
+
return String(c);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// Throwing getter / Proxy trap.
|
|
139
|
+
}
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
function safeGetStatusCode(value) {
|
|
143
|
+
try {
|
|
144
|
+
if (value && typeof value === "object") {
|
|
145
|
+
for (const key of ["statusCode", "status"]) {
|
|
146
|
+
if (key in value) {
|
|
147
|
+
const v = value[key];
|
|
148
|
+
if (typeof v === "number" && Number.isFinite(v))
|
|
149
|
+
return v;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Throwing getter / Proxy trap.
|
|
156
|
+
}
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Classify an error as transport-layer (retry-worthy network/TLS/upstream
|
|
161
|
+
* failure) or not. Structural checks only — no message regex.
|
|
162
|
+
*
|
|
163
|
+
* Recognized transport signals (in order of evaluation):
|
|
164
|
+
* 1. `DOMException` with name `AbortError` or `TimeoutError` — undici
|
|
165
|
+
* surfaces `AbortSignal.timeout()` as DOMException, NOT plain Error.
|
|
166
|
+
* 2. `Error` with name `AbortError` or `TimeoutError` — non-undici runtimes.
|
|
167
|
+
* 3. `err.cause.name` ∈ {ConnectTimeoutError, HeadersTimeoutError,
|
|
168
|
+
* BodyTimeoutError, SocketError} — undici class names.
|
|
169
|
+
* 4. `err.cause.code` ∈ {@link TRANSPORT_CODES} — POSIX / undici / TLS /
|
|
170
|
+
* HTTP/2 / HTTP_5XX-tagged codes.
|
|
171
|
+
* 5. `AggregateError` — recurses into `.errors` (Node's Happy Eyeballs
|
|
172
|
+
* fetch surfaces multi-IP failures this way).
|
|
173
|
+
* 6. `err.statusCode` ≥ 500 — for custody adapters that throw Error
|
|
174
|
+
* with a numeric `statusCode` on upstream 5xx without setting a cause.
|
|
175
|
+
* 7. `TypeError("fetch failed")` with no cause — Node undici's bare
|
|
176
|
+
* shape when cause attachment failed.
|
|
177
|
+
*
|
|
178
|
+
* Provider-denial short-circuit: if `err.name` is in
|
|
179
|
+
* {@link PROVIDER_DENIAL_NAMES}, returns false immediately — a provider
|
|
180
|
+
* that throws a `TimeoutError` for business reasons shouldn't be
|
|
181
|
+
* retry-classified.
|
|
182
|
+
*
|
|
183
|
+
* Non-Error inputs (`null`, `undefined`, strings, numbers, plain objects
|
|
184
|
+
* without the expected shape) return false.
|
|
185
|
+
*/
|
|
186
|
+
export function isTransportError(err) {
|
|
187
|
+
if (err === null || err === undefined)
|
|
188
|
+
return false;
|
|
189
|
+
// Provider denial denylist wins over everything.
|
|
190
|
+
const name = safeGetName(err);
|
|
191
|
+
if (name !== undefined && PROVIDER_DENIAL_NAMES.has(name))
|
|
192
|
+
return false;
|
|
193
|
+
// DOMException (undici fetch timeout/abort shape). `safeInstanceOf` is
|
|
194
|
+
// required because a Proxy with a throwing `get` trap would propagate
|
|
195
|
+
// out of a raw `instanceof` check and reintroduce silent failure.
|
|
196
|
+
if (typeof DOMException !== "undefined" &&
|
|
197
|
+
safeInstanceOf(err, DOMException)) {
|
|
198
|
+
return name === "AbortError" || name === "TimeoutError";
|
|
199
|
+
}
|
|
200
|
+
// AggregateError — recurse into wrapped errors.
|
|
201
|
+
if (typeof AggregateError !== "undefined" &&
|
|
202
|
+
safeInstanceOf(err, AggregateError)) {
|
|
203
|
+
try {
|
|
204
|
+
const wrapped = err.errors;
|
|
205
|
+
if (Array.isArray(wrapped))
|
|
206
|
+
return wrapped.some(isTransportError);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// Throwing getter on .errors — treat as non-transport.
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
if (!safeInstanceOf(err, Error))
|
|
214
|
+
return false;
|
|
215
|
+
// Plain Error with transport-shaped name (non-undici runtimes).
|
|
216
|
+
if (name === "AbortError" || name === "TimeoutError")
|
|
217
|
+
return true;
|
|
218
|
+
// cause-chain signals — undici typically wraps the real error in `.cause`.
|
|
219
|
+
const cause = safeGetCause(err);
|
|
220
|
+
if (cause !== undefined && cause !== null) {
|
|
221
|
+
const causeName = safeGetName(cause);
|
|
222
|
+
if (causeName !== undefined && TRANSPORT_CAUSE_NAMES.has(causeName)) {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
const causeCode = safeGetCode(cause);
|
|
226
|
+
if (causeCode !== undefined && TRANSPORT_CODES.has(causeCode)) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Direct `.code` on the error (some legacy undici paths set this on Error,
|
|
231
|
+
// not cause).
|
|
232
|
+
const directCode = safeGetCode(err);
|
|
233
|
+
if (directCode !== undefined && TRANSPORT_CODES.has(directCode))
|
|
234
|
+
return true;
|
|
235
|
+
// Upstream HTTP 5xx tagged on the error itself.
|
|
236
|
+
const statusCode = safeGetStatusCode(err);
|
|
237
|
+
if (statusCode !== undefined && statusCode >= 500 && statusCode < 600) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
// Bare `TypeError("fetch failed")` with no cause — fall-through undici
|
|
241
|
+
// shape when cause attachment failed. Recognized only if nothing else
|
|
242
|
+
// matched.
|
|
243
|
+
if (safeInstanceOf(err, TypeError) && cause === undefined) {
|
|
244
|
+
try {
|
|
245
|
+
const msg = err.message;
|
|
246
|
+
if (typeof msg === "string" && msg === "fetch failed")
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Throwing getter on message — fall through.
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
// ─── redactCause ───────────────────────────────────────────────────────────
|
|
256
|
+
/**
|
|
257
|
+
* Soft cap on cause-chain walks. Pure defense-in-depth against a hostile
|
|
258
|
+
* error whose `.cause` getter returns a freshly-allocated wrapper on every
|
|
259
|
+
* access — the WeakSet cycle-detection sees a new object each time and
|
|
260
|
+
* would otherwise loop until the runtime's memory/stack limit. 16 is
|
|
261
|
+
* deeper than any realistic middleware error-wrapper chain (4–6 is
|
|
262
|
+
* typical for serverless + framework + SDK combinations).
|
|
263
|
+
*/
|
|
264
|
+
const MAX_CAUSE_WALK_DEPTH = 16;
|
|
265
|
+
/**
|
|
266
|
+
* Safe, log-friendly projection of an error's identifying fields.
|
|
267
|
+
*
|
|
268
|
+
* Returned shape:
|
|
269
|
+
* - `name?` — string, from `err.name`, if accessible and a string.
|
|
270
|
+
* - `message?` — string, from `err.message`, sliced to at most 200
|
|
271
|
+
* chars. If `.message` is present but not a string (Symbol, BigInt,
|
|
272
|
+
* object), returns `"<non-string <typeof>>"` so the diagnostic
|
|
273
|
+
* distinguishes "we couldn't read" from "there was no message." This
|
|
274
|
+
* matters at every consumer site that does
|
|
275
|
+
* `cause.message ?? cause.name ?? cause.code ?? "unknown"` — without
|
|
276
|
+
* the non-string projection, `"unknown"` collapses across real gaps
|
|
277
|
+
* and hostile shapes.
|
|
278
|
+
* - `code?` — string, from `err.code` OR `err.cause.code` (walked),
|
|
279
|
+
* coerced from number/bigint if needed.
|
|
280
|
+
*
|
|
281
|
+
* Guarantees:
|
|
282
|
+
* - Never throws. Every property access is `try`-guarded. A hostile
|
|
283
|
+
* error with a throwing getter, Proxy `get` trap, or null-prototype
|
|
284
|
+
* object yields `{}` rather than re-introducing a silent failure.
|
|
285
|
+
* - Never reads `.stack` (may embed API keys, auth headers, or request
|
|
286
|
+
* bodies from upstream SDK wrappers).
|
|
287
|
+
* - Cycles in the cause chain are broken via {@link WeakSet}, and a
|
|
288
|
+
* soft depth cap of {@link MAX_CAUSE_WALK_DEPTH} protects against
|
|
289
|
+
* hostile causes that allocate a fresh wrapper per access (identity-
|
|
290
|
+
* based cycle detection alone cannot catch that pattern).
|
|
291
|
+
* - Non-Error inputs (null, undefined, string, number, Symbol, BigInt,
|
|
292
|
+
* Proxy, null-prototype) return a sensible projection or `{}`.
|
|
293
|
+
*/
|
|
294
|
+
export function redactCause(err) {
|
|
295
|
+
// Handle primitives up-front.
|
|
296
|
+
if (err === null || err === undefined)
|
|
297
|
+
return {};
|
|
298
|
+
if (typeof err === "string") {
|
|
299
|
+
return { message: err.slice(0, 200) };
|
|
300
|
+
}
|
|
301
|
+
if (typeof err === "number" || typeof err === "bigint") {
|
|
302
|
+
return { code: String(err) };
|
|
303
|
+
}
|
|
304
|
+
if (typeof err !== "object")
|
|
305
|
+
return {};
|
|
306
|
+
const out = {};
|
|
307
|
+
const name = safeGetName(err);
|
|
308
|
+
if (name !== undefined)
|
|
309
|
+
out.name = name;
|
|
310
|
+
try {
|
|
311
|
+
if ("message" in err) {
|
|
312
|
+
const m = err.message;
|
|
313
|
+
if (typeof m === "string") {
|
|
314
|
+
out.message = m.slice(0, 200);
|
|
315
|
+
}
|
|
316
|
+
else if (m !== undefined && m !== null) {
|
|
317
|
+
// Present but non-string — preserve the distinguishability
|
|
318
|
+
// signal at consumer sites (see doc-comment rationale).
|
|
319
|
+
out.message = `<non-string ${typeof m}>`;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
// Throwing getter / Proxy trap — skip.
|
|
325
|
+
}
|
|
326
|
+
const directCode = safeGetCode(err);
|
|
327
|
+
if (directCode !== undefined) {
|
|
328
|
+
out.code = directCode;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
// Walk the cause chain for a code, breaking cycles via WeakSet AND
|
|
332
|
+
// capping depth so a hostile getter that allocates fresh objects on
|
|
333
|
+
// every access can't drive the loop into a memory wall.
|
|
334
|
+
const visited = new WeakSet();
|
|
335
|
+
let current = err;
|
|
336
|
+
for (let depth = 0; depth < MAX_CAUSE_WALK_DEPTH; depth++) {
|
|
337
|
+
if (current === null || current === undefined)
|
|
338
|
+
break;
|
|
339
|
+
if (typeof current !== "object")
|
|
340
|
+
break;
|
|
341
|
+
if (visited.has(current))
|
|
342
|
+
break;
|
|
343
|
+
visited.add(current);
|
|
344
|
+
const nextCause = safeGetCause(current);
|
|
345
|
+
if (nextCause === undefined || nextCause === null)
|
|
346
|
+
break;
|
|
347
|
+
const causeCode = safeGetCode(nextCause);
|
|
348
|
+
if (causeCode !== undefined) {
|
|
349
|
+
out.code = causeCode;
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
current = nextCause;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return out;
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=network-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-errors.js","sourceRoot":"","sources":["../src/network-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-transaction.d.ts","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAOL,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-transaction.d.ts","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAOL,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gCAAgC;IAChC,KAAK,EAAE,iBAAiB,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACnD,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAqFjC"}
|
|
@@ -17,6 +17,9 @@ import { AltCache } from "./alt-loader.js";
|
|
|
17
17
|
import { getSigilAltAddress } from "./alt-config.js";
|
|
18
18
|
import { CU_OWNER_ACTION } from "./priority-fees.js";
|
|
19
19
|
import { normalizeNetwork } from "./types.js";
|
|
20
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
21
|
+
import { SigilRpcError } from "./errors/rpc.js";
|
|
22
|
+
import { SIGIL_ERROR__RPC__INSTRUCTION_REQUIRED, SIGIL_ERROR__RPC__TX_TOO_LARGE, } from "./errors/codes.js";
|
|
20
23
|
// ─── Module-level caches ────────────────────────────────────────────────────
|
|
21
24
|
// Per-RPC blockhash cache lives in `rpc-helpers.getBlockhashCache(rpc)`; see
|
|
22
25
|
// its JSDoc for why we no longer hold a module-level singleton. `AltCache`
|
|
@@ -26,7 +29,7 @@ const altCache = new AltCache();
|
|
|
26
29
|
export async function buildOwnerTransaction(params) {
|
|
27
30
|
// 1. Validate inputs
|
|
28
31
|
if (!params.instructions.length) {
|
|
29
|
-
throw new
|
|
32
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__RPC__INSTRUCTION_REQUIRED, "At least one instruction is required.");
|
|
30
33
|
}
|
|
31
34
|
// 2. Resolve blockhash + ALTs in parallel (independent RPC calls)
|
|
32
35
|
const net = normalizeNetwork(params.network);
|
|
@@ -61,8 +64,8 @@ export async function buildOwnerTransaction(params) {
|
|
|
61
64
|
const compiledTx = compileTransaction(txMessage);
|
|
62
65
|
const { wireBase64, byteLength, withinLimit } = measureTransactionSize(compiledTx);
|
|
63
66
|
if (!withinLimit) {
|
|
64
|
-
throw new
|
|
65
|
-
`Reduce instruction count or use address lookup tables
|
|
67
|
+
throw new SigilRpcError(SIGIL_ERROR__RPC__TX_TOO_LARGE, `Owner transaction size ${byteLength} bytes exceeds limit of ${MAX_TX_SIZE} bytes. ` +
|
|
68
|
+
`Reduce instruction count or use address lookup tables.`, { context: { byteLength, limit: MAX_TX_SIZE } });
|
|
66
69
|
}
|
|
67
70
|
return {
|
|
68
71
|
transaction: compiledTx,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-transaction.js","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,EACL,IAAI,EACJ,wBAAwB,EACxB,6BAA6B,EAC7B,oCAAoC,EACpC,2CAA2C,EAC3C,kDAAkD,EAClD,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-transaction.js","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priority-fees.d.ts","sourceRoot":"","sources":["../src/priority-fees.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"priority-fees.d.ts","sourceRoot":"","sources":["../src/priority-fees.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAalE,eAAO,MAAM,iBAAiB,SAAU,CAAC;AACzC,eAAO,MAAM,eAAe,SAAU,CAAC;AACvC,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAC5C,eAAO,MAAM,cAAc,SAAU,CAAC;AACtC,eAAO,MAAM,eAAe,SAAU,CAAC;AACvC,eAAO,MAAM,QAAQ,SAAU,CAAC;AAChC,eAAO,MAAM,cAAc,SAAU,CAAC;AACtC,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAC3C,eAAO,MAAM,iBAAiB,SAAU,CAAC;AACzC,eAAO,MAAM,eAAe,SAAU,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,CA2B1E;AAID,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAqBD;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;gBAGhB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,EAC9C,MAAM,CAAC,EAAE,iBAAiB;IAiBtB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YAmCxC,cAAc;YA6Cd,WAAW;CA+B1B"}
|
package/dist/priority-fees.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* CU constants match the existing SDK values (measured via LiteSVM).
|
|
5
5
|
* 3-layer fallback: Helius → Kit RPC → static.
|
|
6
6
|
*/
|
|
7
|
+
import { redactCause } from "./network-errors.js";
|
|
7
8
|
// ─── Known Protocol Program Addresses ────────────────────────────────────────
|
|
8
9
|
const JUPITER_PROGRAM = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4";
|
|
9
10
|
const JUPITER_LEND_PROGRAM = "JLend2fEim9xUFcaHsyGePEoBzFLvkjMi3MnPcSuCdu";
|
|
@@ -146,7 +147,13 @@ export class PriorityFeeEstimator {
|
|
|
146
147
|
}
|
|
147
148
|
return null;
|
|
148
149
|
}
|
|
149
|
-
catch {
|
|
150
|
+
catch (err) {
|
|
151
|
+
// Previously a silent null — if Helius renames a response field or
|
|
152
|
+
// changes their endpoint, every user quietly falls through to the
|
|
153
|
+
// default fee with no visibility. A warn is cheap and makes API
|
|
154
|
+
// shape drift detectable in production.
|
|
155
|
+
const cause = redactCause(err);
|
|
156
|
+
console.warn(`[priority-fees] Helius estimate failed — falling back: ${cause.message ?? cause.name ?? cause.code ?? "unknown"}`);
|
|
150
157
|
return null;
|
|
151
158
|
}
|
|
152
159
|
}
|
|
@@ -167,7 +174,11 @@ export class PriorityFeeEstimator {
|
|
|
167
174
|
const index = Math.min(Math.ceil((percentile / 100) * sorted.length) - 1, sorted.length - 1);
|
|
168
175
|
return sorted[index];
|
|
169
176
|
}
|
|
170
|
-
catch {
|
|
177
|
+
catch (err) {
|
|
178
|
+
// Same rationale as the Helius path — log so a failing RPC doesn't
|
|
179
|
+
// silently push users to the fallback fee without trace.
|
|
180
|
+
const cause = redactCause(err);
|
|
181
|
+
console.warn(`[priority-fees] RPC getRecentPrioritizationFees failed — falling back: ${cause.message ?? cause.name ?? cause.code ?? "unknown"}`);
|
|
171
182
|
return null;
|
|
172
183
|
}
|
|
173
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priority-fees.js","sourceRoot":"","sources":["../src/priority-fees.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"priority-fees.js","sourceRoot":"","sources":["../src/priority-fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-helpers.d.ts","sourceRoot":"","sources":["../src/rpc-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,YAAY,EACZ,UAAU,EACV,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-helpers.d.ts","sourceRoot":"","sources":["../src/rpc-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,YAAY,EACZ,UAAU,EACV,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAoBrB,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAsBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,cAAc,CAOxE;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,KAAK,CAAC,EAAE,MAAM;IAI1B;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAQrD;;OAEG;IACH,UAAU,IAAI,IAAI;YAKJ,OAAO;CAgBtB;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,4BAA4B,CAAC,CA0BvC;AAID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,kBAAkB,EAAE,4BAA4B,EAChD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CA2DjB"}
|
package/dist/rpc-helpers.js
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* - sendAndConfirmTransaction: Send + poll getSignatureStatuses
|
|
7
7
|
*/
|
|
8
8
|
import { getBase64EncodedWireTransaction } from "@solana/kit";
|
|
9
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
10
|
+
import { SigilRpcError } from "./errors/rpc.js";
|
|
11
|
+
import { SIGIL_ERROR__SDK__SIGNER_INVALID, SIGIL_ERROR__SDK__SIGNATURE_INVALID, SIGIL_ERROR__RPC__TX_FAILED, SIGIL_ERROR__RPC__CONFIRMATION_TIMEOUT, } from "./errors/codes.js";
|
|
9
12
|
// ─── BlockhashCache ─────────────────────────────────────────────────────────
|
|
10
13
|
const DEFAULT_BLOCKHASH_TTL_MS = 30_000;
|
|
11
14
|
/**
|
|
@@ -103,11 +106,11 @@ export async function signAndEncode(signer, compiledTx) {
|
|
|
103
106
|
const signerTyped = signer;
|
|
104
107
|
const signFn = signerTyped.modifyAndSignTransactions ?? signerTyped.signTransactions;
|
|
105
108
|
if (typeof signFn !== "function") {
|
|
106
|
-
throw new
|
|
109
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__SIGNER_INVALID, "Signer must implement signTransactions() or modifyAndSignTransactions()", { context: { reason: "missing-sign-method" } });
|
|
107
110
|
}
|
|
108
111
|
const results = await signFn.call(signerTyped, [compiledTx]);
|
|
109
112
|
if (!Array.isArray(results) || results.length === 0) {
|
|
110
|
-
throw new
|
|
113
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__SIGNATURE_INVALID, "signTransactions returned invalid result: expected non-empty array", { context: { reason: "empty-or-non-array" } });
|
|
111
114
|
}
|
|
112
115
|
const [signedTx] = results;
|
|
113
116
|
return getBase64EncodedWireTransaction(signedTx);
|
|
@@ -139,7 +142,7 @@ export async function sendAndConfirmTransaction(rpc, encodedTransaction, options
|
|
|
139
142
|
const status = statuses[0];
|
|
140
143
|
// Check for error
|
|
141
144
|
if (status.err) {
|
|
142
|
-
throw new
|
|
145
|
+
throw new SigilRpcError(SIGIL_ERROR__RPC__TX_FAILED, `Transaction ${signature} failed: ${JSON.stringify(status.err)}`, { context: { signature: signature } });
|
|
143
146
|
}
|
|
144
147
|
// Check for sufficient confirmation
|
|
145
148
|
const level = status.confirmationStatus;
|
|
@@ -153,7 +156,7 @@ export async function sendAndConfirmTransaction(rpc, encodedTransaction, options
|
|
|
153
156
|
await sleep(delay);
|
|
154
157
|
delay = Math.min(delay * (1.3 + Math.random() * 0.4), 5_000);
|
|
155
158
|
}
|
|
156
|
-
throw new
|
|
159
|
+
throw new SigilRpcError(SIGIL_ERROR__RPC__CONFIRMATION_TIMEOUT, `Transaction ${signature} confirmation timed out after ${timeoutMs}ms`, { context: { signature: signature, timeoutMs } });
|
|
157
160
|
}
|
|
158
161
|
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
159
162
|
function sleep(ms) {
|
package/dist/rpc-helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-helpers.js","sourceRoot":"","sources":["../src/rpc-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-helpers.js","sourceRoot":"","sources":["../src/rpc-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/seal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal.d.ts","sourceRoot":"","sources":["../src/seal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,6BAA6B,EAC7B,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAe,MAAM,aAAa,CAAC;AAM9D,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAE/B,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAmB1B,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"seal.d.ts","sourceRoot":"","sources":["../src/seal.ts"],"names":[],"mappings":"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"}
|