@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
package/dist/tee/verify.js
CHANGED
|
@@ -12,6 +12,37 @@ import { AttestationStatus, } from "./types.js";
|
|
|
12
12
|
import { verifyCrossmint } from "./providers/crossmint.js";
|
|
13
13
|
import { verifyPrivy } from "./providers/privy.js";
|
|
14
14
|
import { verifyTurnkey } from "./providers/turnkey.js";
|
|
15
|
+
import { redactCause } from "../network-errors.js";
|
|
16
|
+
/**
|
|
17
|
+
* Cache-key delimiter. `|` is chosen over `:` because base58 cannot
|
|
18
|
+
* contain `|` (or `:`), but `:` looks like part of a URL scheme and
|
|
19
|
+
* `deleteByPrefix(\`${publicKey}:\`)` would ambiguously match any
|
|
20
|
+
* future suffix scheme. `|` eliminates that fragility.
|
|
21
|
+
*/
|
|
22
|
+
const CACHE_KEY_DELIMITER = "|";
|
|
23
|
+
/**
|
|
24
|
+
* Guarded introspection — a hostile wallet can expose `publicKey` or
|
|
25
|
+
* `provider` as throwing getters and bypass the entire `TeeAttestationError`
|
|
26
|
+
* contract by making the raw getter error escape `verifyTeeAttestation`.
|
|
27
|
+
* Returns `undefined` on any throw; caller treats that as a synthetic
|
|
28
|
+
* Failed result.
|
|
29
|
+
*/
|
|
30
|
+
function readWalletIdentity(wallet) {
|
|
31
|
+
try {
|
|
32
|
+
const publicKey = wallet.publicKey;
|
|
33
|
+
if (typeof publicKey !== "string" || publicKey.length === 0) {
|
|
34
|
+
return { error: new Error("wallet.publicKey is not a non-empty string") };
|
|
35
|
+
}
|
|
36
|
+
// `detectProvider` touches `isTeeWallet` which reads `wallet.provider`
|
|
37
|
+
// — include it in the same guard so a provider-getter throw doesn't
|
|
38
|
+
// bypass the contract either.
|
|
39
|
+
const detected = detectProvider(wallet);
|
|
40
|
+
return { publicKey, detected };
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
return { error: err };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
15
46
|
/** Module-level singleton cache. */
|
|
16
47
|
const globalCache = new AttestationCache(DEFAULT_CACHE_TTL_MS);
|
|
17
48
|
/** Detect the TEE provider from a wallet. */
|
|
@@ -50,20 +81,74 @@ function attestationStatusMeetsLevel(status, level) {
|
|
|
50
81
|
* 1. Check cache (unless cacheTtlMs === 0)
|
|
51
82
|
* 2. Detect provider from wallet
|
|
52
83
|
* 3. Route to provider-specific verifier
|
|
53
|
-
* 4. Cache
|
|
54
|
-
* 5. Fire onVerified
|
|
55
|
-
* 6.
|
|
56
|
-
*
|
|
84
|
+
* 4. Cache successful results only (`Failed` and `Unavailable` never cache)
|
|
85
|
+
* 5. Fire `onVerified` on success; fire `onDegraded` on non-verified status
|
|
86
|
+
* 6. Enforce `requireAttestation` — throws `TeeAttestationError` with
|
|
87
|
+
* `.result` attached when verification didn't reach a verified status
|
|
88
|
+
* 7. Enforce `minAttestationLevel`
|
|
89
|
+
*
|
|
90
|
+
* **Safe-by-default behavior (changed in PR 1.B safety lockdown).**
|
|
91
|
+
* `requireAttestation` now defaults to `true`, so a call like
|
|
92
|
+
* `verifyTeeAttestation(wallet)` with no config throws on any degraded
|
|
93
|
+
* outcome instead of silently returning a Failed/Unavailable result.
|
|
94
|
+
* Consumers that want the old forgiving behavior must pass
|
|
95
|
+
* `{ requireAttestation: false, onDegraded: ... }` — the callback is
|
|
96
|
+
* mandatory under the forgiving path; omitting it is treated as the
|
|
97
|
+
* silent-failure vector this default was introduced to prevent and
|
|
98
|
+
* yields an immediate throw.
|
|
57
99
|
*/
|
|
58
100
|
export async function verifyTeeAttestation(wallet, config) {
|
|
59
|
-
//
|
|
60
|
-
|
|
101
|
+
// Safe-by-default: `requireAttestation` implicitly true when unset.
|
|
102
|
+
// Consumers who want the forgiving path must say so explicitly AND
|
|
103
|
+
// supply `onDegraded` — otherwise we would silently re-introduce the
|
|
104
|
+
// vulnerability this default fixes.
|
|
105
|
+
const requireAttestation = config?.requireAttestation ?? true;
|
|
106
|
+
if (!requireAttestation && typeof config?.onDegraded !== "function") {
|
|
107
|
+
throw new TeeAttestationError("verifyTeeAttestation called with `requireAttestation: false` but no `onDegraded` callback. " +
|
|
108
|
+
"Omitting the callback is a silent-degradation vector — supply `onDegraded` to observe degraded results, " +
|
|
109
|
+
"or remove `requireAttestation: false` to fail closed.");
|
|
110
|
+
}
|
|
111
|
+
// Guarded introspection — a throwing `publicKey` or `provider` getter
|
|
112
|
+
// would otherwise bypass every safety check below by escaping with a
|
|
113
|
+
// raw exception the caller didn't contract for.
|
|
114
|
+
const identity = readWalletIdentity(wallet);
|
|
115
|
+
if ("error" in identity) {
|
|
116
|
+
const syntheticResult = {
|
|
117
|
+
status: AttestationStatus.Failed,
|
|
118
|
+
provider: "crossmint", // placeholder — real provider unreadable
|
|
119
|
+
publicKey: "<unreadable>",
|
|
120
|
+
metadata: {
|
|
121
|
+
provider: "crossmint",
|
|
122
|
+
verifiedAt: Date.now(),
|
|
123
|
+
rawAttestation: {
|
|
124
|
+
introspectionFailed: true,
|
|
125
|
+
cause: redactCause(identity.error),
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
message: "Wallet rejected attestation introspection — `publicKey` or `provider` getter threw. " +
|
|
129
|
+
"This indicates a hostile or buggy wallet adapter.",
|
|
130
|
+
};
|
|
131
|
+
if (requireAttestation) {
|
|
132
|
+
throw new TeeAttestationError(syntheticResult.message, syntheticResult);
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
config?.onDegraded?.(syntheticResult);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// Degraded callback errors are non-fatal.
|
|
139
|
+
}
|
|
140
|
+
return syntheticResult;
|
|
141
|
+
}
|
|
142
|
+
const publicKey = identity.publicKey;
|
|
143
|
+
const detectedProvider = identity.detected;
|
|
61
144
|
const cacheTtlMs = config?.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
|
|
62
145
|
const useCache = Number.isFinite(cacheTtlMs) && cacheTtlMs > 0;
|
|
63
146
|
// H3: Include config-sensitive params in cache key so different configs
|
|
64
|
-
// don't share results (e.g., different expectedPcr3 values).
|
|
147
|
+
// don't share results (e.g., different expectedPcr3 values). Delimiter
|
|
148
|
+
// is `|` so `deleteByPrefix(\`${publicKey}${DELIMITER}\`)` is unambiguous
|
|
149
|
+
// — base58 cannot contain `|`.
|
|
65
150
|
const cacheKey = config?.expectedPcr3
|
|
66
|
-
? `${publicKey}
|
|
151
|
+
? `${publicKey}${CACHE_KEY_DELIMITER}pcr3=${config.expectedPcr3}`
|
|
67
152
|
: publicKey;
|
|
68
153
|
// Step 1: Cache check
|
|
69
154
|
let result;
|
|
@@ -72,7 +157,7 @@ export async function verifyTeeAttestation(wallet, config) {
|
|
|
72
157
|
}
|
|
73
158
|
// Step 2-3: Verify if not cached
|
|
74
159
|
if (!result) {
|
|
75
|
-
const provider =
|
|
160
|
+
const provider = detectedProvider;
|
|
76
161
|
if (!provider) {
|
|
77
162
|
// TeeProvider is required by AttestationResult — "crossmint" used as
|
|
78
163
|
// placeholder for unrecognized wallets. Status is Unavailable so the
|
|
@@ -109,51 +194,75 @@ export async function verifyTeeAttestation(wallet, config) {
|
|
|
109
194
|
};
|
|
110
195
|
}
|
|
111
196
|
}
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
typeof result.metadata.rawAttestation === "object" &&
|
|
117
|
-
result.metadata.rawAttestation
|
|
118
|
-
.custodyCheckFailed === true;
|
|
197
|
+
// Cache only verified outcomes — `Failed` and `Unavailable` should
|
|
198
|
+
// allow the next call to retry. The previous `isCustodyFallback`
|
|
199
|
+
// guard is unnecessary now that custody-API errors surface as
|
|
200
|
+
// `Failed` (which is excluded from this allowlist).
|
|
119
201
|
if (useCache &&
|
|
120
|
-
!isCustodyFallback &&
|
|
121
202
|
(result.status === AttestationStatus.CryptographicallyVerified ||
|
|
122
203
|
result.status === AttestationStatus.ProviderVerified ||
|
|
123
204
|
result.status === AttestationStatus.ProviderTrusted)) {
|
|
124
205
|
globalCache.set(cacheKey, result, cacheTtlMs);
|
|
125
206
|
}
|
|
126
207
|
}
|
|
127
|
-
//
|
|
128
|
-
|
|
129
|
-
if (result.status === AttestationStatus.CryptographicallyVerified ||
|
|
208
|
+
// Classification.
|
|
209
|
+
const isVerifiedStatus = result.status === AttestationStatus.CryptographicallyVerified ||
|
|
130
210
|
result.status === AttestationStatus.ProviderVerified ||
|
|
131
|
-
result.status === AttestationStatus.ProviderTrusted
|
|
211
|
+
result.status === AttestationStatus.ProviderTrusted;
|
|
212
|
+
// Step 5a: Enforce requireAttestation. Default `true` after PR 1.B.
|
|
213
|
+
// This fires BEFORE the success callback so `onVerified` never fires
|
|
214
|
+
// on a result the dispatcher is about to reject.
|
|
215
|
+
if (requireAttestation && !isVerifiedStatus) {
|
|
132
216
|
try {
|
|
133
|
-
config?.
|
|
217
|
+
config?.onDegraded?.(result);
|
|
134
218
|
}
|
|
135
219
|
catch {
|
|
136
|
-
//
|
|
220
|
+
// Degraded callback errors are non-fatal — we still throw below.
|
|
137
221
|
}
|
|
222
|
+
throw new TeeAttestationError(`TEE attestation required but verification ${result.status}: ${result.message} ` +
|
|
223
|
+
`Set \`requireAttestation: false\` with an \`onDegraded\` callback to proceed without verification.`, result);
|
|
138
224
|
}
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
//
|
|
149
|
-
// is true but no explicit level is set (prevents ProviderTrusted from passing silently)
|
|
225
|
+
// Step 5b: Enforce minAttestationLevel. Defaults to "provider_verified"
|
|
226
|
+
// when requireAttestation is true and no explicit level is set — prevents
|
|
227
|
+
// ProviderTrusted from passing silently under the safe-by-default path.
|
|
228
|
+
//
|
|
229
|
+
// Note the literal string: `AttestationLevel` and `AttestationStatus` are
|
|
230
|
+
// distinct union/enum types whose values overlap for `provider_trusted`
|
|
231
|
+
// and `provider_verified` but diverge for the cryptographic tier
|
|
232
|
+
// (`"cryptographic"` vs `"cryptographically_verified"`). Using the
|
|
233
|
+
// literal here ensures a future maintainer raising the default bar
|
|
234
|
+
// cannot accidentally pass an enum value that fails level lookup.
|
|
150
235
|
const effectiveMinLevel = config?.minAttestationLevel ??
|
|
151
|
-
(
|
|
152
|
-
? AttestationStatus.ProviderVerified
|
|
153
|
-
: undefined);
|
|
236
|
+
(requireAttestation ? "provider_verified" : undefined);
|
|
154
237
|
if (effectiveMinLevel) {
|
|
155
238
|
if (!attestationStatusMeetsLevel(result.status, effectiveMinLevel)) {
|
|
156
|
-
|
|
239
|
+
try {
|
|
240
|
+
config?.onDegraded?.(result);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// Non-fatal.
|
|
244
|
+
}
|
|
245
|
+
throw new TeeAttestationError(`Attestation level ${result.status} does not meet minimum required level: ${effectiveMinLevel}`, result);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Step 5c: Level checks passed (or were skipped). Only fire `onVerified`
|
|
249
|
+
// now — never on a result the dispatcher is about to throw over.
|
|
250
|
+
// `onDegraded` for the "returns Failed without throwing" path fires
|
|
251
|
+
// here too, since the caller opted into the forgiving mode.
|
|
252
|
+
if (isVerifiedStatus) {
|
|
253
|
+
try {
|
|
254
|
+
config?.onVerified?.(result);
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// Attestation succeeded — callback errors are non-fatal.
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
try {
|
|
262
|
+
config?.onDegraded?.(result);
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
// Non-fatal.
|
|
157
266
|
}
|
|
158
267
|
}
|
|
159
268
|
return result;
|
package/dist/tee/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/tee/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACL,iBAAiB,GAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/tee/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,19 +43,42 @@ export interface TeeWallet extends WalletLike {
|
|
|
43
43
|
export declare const VALID_TEE_PROVIDERS: Set<string>;
|
|
44
44
|
/** Type guard to detect TEE-backed wallets. */
|
|
45
45
|
export declare function isTeeWallet(wallet: WalletLike): wallet is TeeWallet;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
import type { AttestationResult } from "./types.js";
|
|
47
|
+
import { SigilTeeError } from "../errors/tee.js";
|
|
48
|
+
import { type SigilTeeErrorCode } from "../errors/codes.js";
|
|
49
|
+
/**
|
|
50
|
+
* Error class for TEE attestation failures.
|
|
51
|
+
*
|
|
52
|
+
* Carries the full {@link AttestationResult} (when available) so structured
|
|
53
|
+
* observability tooling — Sentry's `captureException`, Datadog's custom
|
|
54
|
+
* error metrics — picks up `err.result.status`, `.provider`, and
|
|
55
|
+
* `.metadata.verifiedAt` automatically without callsite instrumentation.
|
|
56
|
+
* Prefer this over a separate `onDegraded` callback when throwing.
|
|
57
|
+
*
|
|
58
|
+
* Per UD2 (PR 2.A): rebased on `SigilTeeError`, which extends `SigilError`.
|
|
59
|
+
* `instanceof TeeAttestationError` checks survive (class name + .result
|
|
60
|
+
* preserved); `instanceof SigilTeeError` and `instanceof SigilError` checks
|
|
61
|
+
* now also work. The two re-throw guards in `tee/providers/turnkey.ts:359`
|
|
62
|
+
* and `:563` continue to work because the class identity is unchanged.
|
|
63
|
+
*/
|
|
64
|
+
export declare class TeeAttestationError extends SigilTeeError<SigilTeeErrorCode> {
|
|
65
|
+
/**
|
|
66
|
+
* The attestation result that triggered this error, when available.
|
|
67
|
+
* `undefined` for subclasses thrown before a result is constructed
|
|
68
|
+
* (certificate-chain parse failure, PCR mismatch on an incomplete result).
|
|
69
|
+
*/
|
|
70
|
+
readonly result?: AttestationResult;
|
|
71
|
+
constructor(message: string, result?: AttestationResult, code?: SigilTeeErrorCode, extraContext?: Record<string, unknown>);
|
|
49
72
|
}
|
|
50
73
|
/** Error class for certificate chain validation failures. */
|
|
51
74
|
export declare class AttestationCertChainError extends TeeAttestationError {
|
|
52
|
-
constructor(message: string);
|
|
75
|
+
constructor(message: string, result?: AttestationResult);
|
|
53
76
|
}
|
|
54
77
|
/** Error class for PCR value mismatch. */
|
|
55
78
|
export declare class AttestationPcrMismatchError extends TeeAttestationError {
|
|
56
79
|
readonly pcrIndex: number;
|
|
57
80
|
readonly expected: string;
|
|
58
81
|
readonly actual: string;
|
|
59
|
-
constructor(pcrIndex: number, expected: string, actual: string);
|
|
82
|
+
constructor(pcrIndex: number, expected: string, actual: string, result?: AttestationResult);
|
|
60
83
|
}
|
|
61
84
|
//# sourceMappingURL=wallet-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-types.d.ts","sourceRoot":"","sources":["../../src/tee/wallet-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,eAAe,CAAC,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC;AAED,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,aAA6C,CAAC;AAE9E,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,SAAS,CAQnE;
|
|
1
|
+
{"version":3,"file":"wallet-types.d.ts","sourceRoot":"","sources":["../../src/tee/wallet-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,eAAe,CAAC,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC;AAED,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,aAA6C,CAAC;AAE9E,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,SAAS,CAQnE;AAOD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACvE;;;;OAIG;IACH,SAAgB,MAAM,CAAC,EAAE,iBAAiB,CAAC;gBAGzC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,GAAE,iBAAwD,EAC9D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAezC;AAED,6DAA6D;AAC7D,qBAAa,yBAA0B,SAAQ,mBAAmB;gBACpD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB;CAIxD;AAED,0CAA0C;AAC1C,qBAAa,2BAA4B,SAAQ,mBAAmB;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,iBAAiB;CAiB7B"}
|
package/dist/tee/wallet-types.js
CHANGED
|
@@ -12,17 +12,49 @@ export function isTeeWallet(wallet) {
|
|
|
12
12
|
typeof wallet.provider === "string" &&
|
|
13
13
|
VALID_TEE_PROVIDERS.has(wallet.provider));
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
import { SigilTeeError } from "../errors/tee.js";
|
|
16
|
+
import { SIGIL_ERROR__TEE__ATTESTATION_FAILED, SIGIL_ERROR__TEE__CERT_CHAIN_INVALID, SIGIL_ERROR__TEE__PCR_MISMATCH, } from "../errors/codes.js";
|
|
17
|
+
/**
|
|
18
|
+
* Error class for TEE attestation failures.
|
|
19
|
+
*
|
|
20
|
+
* Carries the full {@link AttestationResult} (when available) so structured
|
|
21
|
+
* observability tooling — Sentry's `captureException`, Datadog's custom
|
|
22
|
+
* error metrics — picks up `err.result.status`, `.provider`, and
|
|
23
|
+
* `.metadata.verifiedAt` automatically without callsite instrumentation.
|
|
24
|
+
* Prefer this over a separate `onDegraded` callback when throwing.
|
|
25
|
+
*
|
|
26
|
+
* Per UD2 (PR 2.A): rebased on `SigilTeeError`, which extends `SigilError`.
|
|
27
|
+
* `instanceof TeeAttestationError` checks survive (class name + .result
|
|
28
|
+
* preserved); `instanceof SigilTeeError` and `instanceof SigilError` checks
|
|
29
|
+
* now also work. The two re-throw guards in `tee/providers/turnkey.ts:359`
|
|
30
|
+
* and `:563` continue to work because the class identity is unchanged.
|
|
31
|
+
*/
|
|
32
|
+
export class TeeAttestationError extends SigilTeeError {
|
|
33
|
+
/**
|
|
34
|
+
* The attestation result that triggered this error, when available.
|
|
35
|
+
* `undefined` for subclasses thrown before a result is constructed
|
|
36
|
+
* (certificate-chain parse failure, PCR mismatch on an incomplete result).
|
|
37
|
+
*/
|
|
38
|
+
result;
|
|
39
|
+
constructor(message, result, code = SIGIL_ERROR__TEE__ATTESTATION_FAILED, extraContext) {
|
|
40
|
+
// PR 2.A C1 fix (silent-failure-hunter Finding 4): subclasses must be able
|
|
41
|
+
// to merge their own context fields into the typed-context map. Without
|
|
42
|
+
// this, AttestationPcrMismatchError.pcrIndex/expected/actual were stored
|
|
43
|
+
// as sibling instance fields only — `err.context.pcrIndex` was undefined
|
|
44
|
+
// even though SigilErrorContext[SIGIL_ERROR__TEE__PCR_MISMATCH] declared
|
|
45
|
+
// it required. Subclasses now pass their context-extension fields via
|
|
46
|
+
// extraContext to satisfy the per-code context contract at runtime.
|
|
47
|
+
super(code, message, {
|
|
48
|
+
context: { result, ...(extraContext ?? {}) },
|
|
49
|
+
});
|
|
19
50
|
this.name = "TeeAttestationError";
|
|
51
|
+
this.result = result;
|
|
20
52
|
}
|
|
21
53
|
}
|
|
22
54
|
/** Error class for certificate chain validation failures. */
|
|
23
55
|
export class AttestationCertChainError extends TeeAttestationError {
|
|
24
|
-
constructor(message) {
|
|
25
|
-
super(message);
|
|
56
|
+
constructor(message, result) {
|
|
57
|
+
super(message, result, SIGIL_ERROR__TEE__CERT_CHAIN_INVALID);
|
|
26
58
|
this.name = "AttestationCertChainError";
|
|
27
59
|
}
|
|
28
60
|
}
|
|
@@ -31,8 +63,12 @@ export class AttestationPcrMismatchError extends TeeAttestationError {
|
|
|
31
63
|
pcrIndex;
|
|
32
64
|
expected;
|
|
33
65
|
actual;
|
|
34
|
-
constructor(pcrIndex, expected, actual) {
|
|
35
|
-
|
|
66
|
+
constructor(pcrIndex, expected, actual, result) {
|
|
67
|
+
// PR 2.A C1 fix: pass pcrIndex/expected/actual into the typed context so
|
|
68
|
+
// `err.context.pcrIndex` etc. resolve at runtime, matching the
|
|
69
|
+
// SigilErrorContext[SIGIL_ERROR__TEE__PCR_MISMATCH] shape declared in
|
|
70
|
+
// sdk/kit/src/errors/context.ts. Direct fields preserved for back-compat.
|
|
71
|
+
super(`PCR${pcrIndex} mismatch: expected ${expected}, got ${actual}`, result, SIGIL_ERROR__TEE__PCR_MISMATCH, { pcrIndex, expected, actual });
|
|
36
72
|
this.name = "AttestationPcrMismatchError";
|
|
37
73
|
this.pcrIndex = pcrIndex;
|
|
38
74
|
this.expected = expected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-types.js","sourceRoot":"","sources":["../../src/tee/wallet-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwCH,kCAAkC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,OAAO,CACL,UAAU,IAAI,MAAM;QACpB,OAAQ,MAAkC,CAAC,QAAQ,KAAK,QAAQ;QAChE,mBAAmB,CAAC,GAAG,CACpB,MAAkC,CAAC,QAAkB,CACvD,CACF,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet-types.js","sourceRoot":"","sources":["../../src/tee/wallet-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwCH,kCAAkC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,OAAO,CACL,UAAU,IAAI,MAAM;QACpB,OAAQ,MAAkC,CAAC,QAAQ,KAAK,QAAQ;QAChE,mBAAmB,CAAC,GAAG,CACpB,MAAkC,CAAC,QAAkB,CACvD,CACF,CAAC;AACJ,CAAC;AAQD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,oCAAoC,EACpC,oCAAoC,EACpC,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAgC;IACvE;;;;OAIG;IACa,MAAM,CAAqB;IAE3C,YACE,OAAe,EACf,MAA0B,EAC1B,OAA0B,oCAAoC,EAC9D,YAAsC;QAEtC,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,oEAAoE;QACpE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;YACnB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAW;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,OAAO,yBAA0B,SAAQ,mBAAmB;IAChE,YAAY,OAAe,EAAE,MAA0B;QACrD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,oCAAoC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,OAAO,2BAA4B,SAAQ,mBAAmB;IACzD,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAS;IAExB,YACE,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,MAA0B;QAE1B,yEAAyE;QACzE,+DAA+D;QAC/D,sEAAsE;QACtE,0EAA0E;QAC1E,KAAK,CACH,MAAM,QAAQ,uBAAuB,QAAQ,SAAS,MAAM,EAAE,EAC9D,MAAM,EACN,8BAA8B,EAC9B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0GD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,OAAwB,GAChC,aAAa,GAAG,IAAI,CAmBtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY7E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtE"}
|
package/dist/tokens.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* base58 parse → (caller can add Jupiter API) → error.
|
|
6
6
|
*/
|
|
7
7
|
import { USDC_MINT_DEVNET, USDC_MINT_MAINNET, USDT_MINT_DEVNET, USDT_MINT_MAINNET, } from "./types.js";
|
|
8
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
9
|
+
import { SIGIL_ERROR__SDK__INVALID_AMOUNT } from "./errors/codes.js";
|
|
8
10
|
/** Well-known tokens with hardcoded mints and decimals */
|
|
9
11
|
const WELL_KNOWN_TOKENS = {
|
|
10
12
|
USDC: {
|
|
@@ -140,7 +142,7 @@ export function resolveToken(tokenOrMint, network = "mainnet-beta") {
|
|
|
140
142
|
export function toBaseUnits(amount, decimals) {
|
|
141
143
|
const num = typeof amount === "string" ? parseFloat(amount) : amount;
|
|
142
144
|
if (!Number.isFinite(num) || num < 0) {
|
|
143
|
-
throw new
|
|
145
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_AMOUNT, `Invalid amount: ${amount}. Must be a finite non-negative number.`, { context: { received: amount } });
|
|
144
146
|
}
|
|
145
147
|
const multiplier = Math.pow(10, decimals);
|
|
146
148
|
const baseUnits = Math.round(num * multiplier);
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-executor.d.ts","sourceRoot":"","sources":["../src/transaction-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,uBAAuB,EAGxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAIL,KAAK,gBAAgB,EAErB,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-executor.d.ts","sourceRoot":"","sources":["../src/transaction-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ import { simulateBeforeSend, adjustCU, RISK_FLAG_FULL_DRAIN, } from "./simulatio
|
|
|
14
14
|
import { parseSigilEvents } from "./events.js";
|
|
15
15
|
import { BlockhashCache, signAndEncode, sendAndConfirmTransaction, } from "./rpc-helpers.js";
|
|
16
16
|
import { estimateComposedCU } from "./priority-fees.js";
|
|
17
|
+
import { SigilRpcError } from "./errors/rpc.js";
|
|
18
|
+
import { SIGIL_ERROR__RPC__SIMULATION_FAILED, SIGIL_ERROR__RPC__DRAIN_DETECTED, } from "./errors/codes.js";
|
|
17
19
|
// ─── TransactionExecutor ────────────────────────────────────────────────────
|
|
18
20
|
export class TransactionExecutor {
|
|
19
21
|
rpc;
|
|
@@ -148,12 +150,12 @@ export class TransactionExecutor {
|
|
|
148
150
|
const errMsg = simulation.error?.suggestion ??
|
|
149
151
|
simulation.error?.message ??
|
|
150
152
|
"Simulation failed";
|
|
151
|
-
throw new
|
|
153
|
+
throw new SigilRpcError(SIGIL_ERROR__RPC__SIMULATION_FAILED, `Simulation failed: ${errMsg}`);
|
|
152
154
|
}
|
|
153
155
|
// Drain detection: FULL_DRAIN blocks TX, others are warnings
|
|
154
156
|
if (simulation.riskFlags.length > 0) {
|
|
155
157
|
if (simulation.riskFlags.includes(RISK_FLAG_FULL_DRAIN)) {
|
|
156
|
-
throw new
|
|
158
|
+
throw new SigilRpcError(SIGIL_ERROR__RPC__DRAIN_DETECTED, `Transaction blocked: drain detection triggered (${simulation.riskFlags.join(", ")})`, { context: { reason: simulation.riskFlags.join(",") } });
|
|
157
159
|
}
|
|
158
160
|
riskWarnings.push(...simulation.riskFlags);
|
|
159
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-executor.js","sourceRoot":"","sources":["../src/transaction-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,GAKrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,cAAc,EACd,aAAa,EACb,yBAAyB,GAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-executor.js","sourceRoot":"","sources":["../src/transaction-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* All types use Kit's `Address` (branded string) instead of web3.js `PublicKey`,
|
|
5
5
|
* and `bigint` instead of `BN`.
|
|
6
6
|
*/
|
|
7
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
8
|
+
import { SIGIL_ERROR__SDK__INVALID_NETWORK, SIGIL_ERROR__SDK__INVALID_ACTION_TYPE, } from "./errors/codes.js";
|
|
7
9
|
// Re-export the program address from generated code
|
|
8
10
|
export { SIGIL_PROGRAM_ADDRESS } from "./generated/programs/sigil.js";
|
|
9
11
|
// ─── Fee Constants ────────────────────────────────────────────────────────────
|
|
@@ -87,7 +89,12 @@ export const RECOGNIZED_DEFI_PROGRAMS = new Set([
|
|
|
87
89
|
export function validateNetwork(network) {
|
|
88
90
|
const normalized = network === "mainnet" ? "mainnet-beta" : network;
|
|
89
91
|
if (normalized !== "devnet" && normalized !== "mainnet-beta") {
|
|
90
|
-
throw new
|
|
92
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_NETWORK, `Invalid network: "${network}". Must be "devnet", "mainnet", or "mainnet-beta".`, {
|
|
93
|
+
context: {
|
|
94
|
+
received: network,
|
|
95
|
+
valid: ["devnet", "mainnet", "mainnet-beta"],
|
|
96
|
+
},
|
|
97
|
+
});
|
|
91
98
|
}
|
|
92
99
|
}
|
|
93
100
|
/** Convert short-form network to canonical Network type.
|
|
@@ -164,7 +171,9 @@ export function stringsToPermissions(strings) {
|
|
|
164
171
|
for (const s of strings) {
|
|
165
172
|
if (!Object.prototype.hasOwnProperty.call(ACTION_PERMISSION_MAP, s)) {
|
|
166
173
|
const valid = Object.keys(ACTION_PERMISSION_MAP).join(", ");
|
|
167
|
-
throw new
|
|
174
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_ACTION_TYPE, `Unknown action type: "${s}". Valid types: ${valid}`, {
|
|
175
|
+
context: { received: s, valid: Object.keys(ACTION_PERMISSION_MAP) },
|
|
176
|
+
});
|
|
168
177
|
}
|
|
169
178
|
const bit = ACTION_PERMISSION_MAP[s];
|
|
170
179
|
result |= bit;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|