passkey-kit 0.16.4 → 0.17.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.
Files changed (71) hide show
  1. package/README.md +72 -33
  2. package/dist/contract-errors.d.ts +1 -1
  3. package/dist/contract-errors.d.ts.map +1 -1
  4. package/dist/contract-errors.js +6 -2
  5. package/dist/contract-errors.js.map +1 -1
  6. package/dist/errors.d.ts +7 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +11 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +3 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/indexer/index.d.ts +1 -1
  15. package/dist/indexer/index.d.ts.map +1 -1
  16. package/dist/indexer/index.js.map +1 -1
  17. package/dist/indexer/mercury.d.ts +8 -12
  18. package/dist/indexer/mercury.d.ts.map +1 -1
  19. package/dist/indexer/mercury.js +110 -37
  20. package/dist/indexer/mercury.js.map +1 -1
  21. package/dist/indexer/types.d.ts +41 -5
  22. package/dist/indexer/types.d.ts.map +1 -1
  23. package/dist/kit/birth-verification.d.ts +45 -0
  24. package/dist/kit/birth-verification.d.ts.map +1 -0
  25. package/dist/kit/birth-verification.js +127 -0
  26. package/dist/kit/birth-verification.js.map +1 -0
  27. package/dist/kit/deploy-ops.d.ts +2 -2
  28. package/dist/kit/deploy-ops.d.ts.map +1 -1
  29. package/dist/kit/deploy-ops.js +2 -2
  30. package/dist/kit/deploy-ops.js.map +1 -1
  31. package/dist/kit/wallet-ops.d.ts +14 -2
  32. package/dist/kit/wallet-ops.d.ts.map +1 -1
  33. package/dist/kit/wallet-ops.js +50 -3
  34. package/dist/kit/wallet-ops.js.map +1 -1
  35. package/dist/kit/webauthn-ops.d.ts +3 -1
  36. package/dist/kit/webauthn-ops.d.ts.map +1 -1
  37. package/dist/kit/webauthn-ops.js +8 -2
  38. package/dist/kit/webauthn-ops.js.map +1 -1
  39. package/dist/kit/webauthn-verify.d.ts +166 -0
  40. package/dist/kit/webauthn-verify.d.ts.map +1 -0
  41. package/dist/kit/webauthn-verify.js +328 -0
  42. package/dist/kit/webauthn-verify.js.map +1 -0
  43. package/dist/kit.d.ts +63 -41
  44. package/dist/kit.d.ts.map +1 -1
  45. package/dist/kit.js +339 -115
  46. package/dist/kit.js.map +1 -1
  47. package/dist/managers/credential-manager.d.ts +2 -2
  48. package/dist/managers/credential-manager.d.ts.map +1 -1
  49. package/dist/managers/credential-manager.js +3 -3
  50. package/dist/managers/credential-manager.js.map +1 -1
  51. package/dist/managers/signer-manager.d.ts +10 -4
  52. package/dist/managers/signer-manager.d.ts.map +1 -1
  53. package/dist/managers/signer-manager.js +11 -5
  54. package/dist/managers/signer-manager.js.map +1 -1
  55. package/dist/managers/submission-manager.d.ts +4 -1
  56. package/dist/managers/submission-manager.d.ts.map +1 -1
  57. package/dist/managers/submission-manager.js +11 -3
  58. package/dist/managers/submission-manager.js.map +1 -1
  59. package/dist/server.d.ts +7 -5
  60. package/dist/server.d.ts.map +1 -1
  61. package/dist/server.js +6 -5
  62. package/dist/server.js.map +1 -1
  63. package/dist/types.d.ts +10 -2
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/utils.d.ts +4 -8
  66. package/dist/utils.d.ts.map +1 -1
  67. package/dist/utils.js +4 -8
  68. package/dist/utils.js.map +1 -1
  69. package/dist/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/package.json +2 -2
@@ -29,7 +29,6 @@ import { getSigner } from "../kit/wallet-ops.js";
29
29
  import { contractDataExists } from "../rpc-data.js";
30
30
  import base64url from "../base64url.js";
31
31
  import { signerKeyToContractScVal, walletSpec } from "./codec.js";
32
- import { deriveContractAddress } from "../utils.js";
33
32
  /**
34
33
  * Resolve the hosted passkey-indexer base URL for a network. Mercury indexes
35
34
  * both testnet and mainnet; any other network returns `undefined` (no hosted
@@ -139,50 +138,34 @@ export class MercuryIndexer {
139
138
  ? `/api/lookup/${base64url.toBuffer(key.value).toString("hex")}`
140
139
  : `/api/lookup/address/${key.value}`;
141
140
  const res = await this.get(path);
142
- const candidates = res?.wallets.map((w) => w.contract_id) ?? [];
143
- return this.confirmCandidates(candidates, key);
141
+ return this.confirmCandidates(parseLookupResponse(res), key);
144
142
  }
145
143
  /**
146
- * Harden the reverse lookup (#598 F3): keep a candidate only if it is either
147
- * the deterministic derivation of the keyId OR still holds the signer entry
148
- * on-chain never trust an unverified indexer row.
144
+ * Keep a candidate only when it still holds the signer entry on-chain.
145
+ * Live-signer presence is not birth verification; birth fields pass through
146
+ * unchanged for the kit to check against the creating transaction.
149
147
  *
150
- * Fail-CLOSED: when candidates exist but no confirmation route
151
- * does no `rpc`, and no usable derivation (`hardening` only covers
152
- * Secp256r1 keys) — this throws instead of returning unconfirmed rows. An
153
- * unverifiable answer must never be handed to a caller that will route
154
- * deposits or identity to it.
148
+ * Fail-CLOSED: when candidates exist without `rpc`, this throws instead of
149
+ * returning unconfirmed rows.
155
150
  */
156
- async confirmCandidates(candidates, key) {
157
- const { rpc, hardening } = this.config;
158
- const derived = hardening && key.key === "Secp256r1"
159
- ? deriveContractAddress(base64url.toBuffer(key.value), hardening.deployerPublicKey, hardening.networkPassphrase)
160
- : undefined;
161
- if (candidates.length > 0 && !rpc && !derived) {
162
- throw new IndexerError("Cannot confirm reverse-lookup candidates: configure `rpc` (any key type) " +
163
- "or `hardening` (Secp256r1 derivation) — unconfirmed indexer rows are never returned", PasskeyKitErrorCode.INDEXER_NOT_CONFIGURED, { key: key.key, candidates: candidates.length });
151
+ async confirmCandidates(lookup, key) {
152
+ const { rpc } = this.config;
153
+ if (!lookup.complete)
154
+ return lookup;
155
+ if (lookup.candidates.length > 0 && !rpc) {
156
+ throw new IndexerError("Cannot confirm reverse-lookup candidates: configure `rpc`; " +
157
+ "unconfirmed indexer rows are never returned", PasskeyKitErrorCode.INDEXER_NOT_CONFIGURED, { key: key.key, candidates: lookup.candidates.length });
158
+ }
159
+ if (!rpc || lookup.candidates.length === 0) {
160
+ return lookup;
164
161
  }
165
162
  const confirmed = [];
166
- for (const candidate of candidates) {
167
- if (rpc) {
168
- // Always prefer the on-chain read, including for the derived address.
169
- // Matching derivation is not confirmation: `derive(keyId)` is exactly
170
- // the address an attacker can squat, so accepting it unread would
171
- // "confirm" the one candidate we have the least reason to trust.
172
- // This does not defeat a squat running genuine code with the victim
173
- // installed as a signer — nothing checked here can — it only stops
174
- // unread rows being handed back as confirmed.
175
- const signer = await getSigner({ rpc, spec: walletSpec() }, candidate, key);
176
- if (signer)
177
- confirmed.push(candidate);
178
- continue;
179
- }
180
- // No rpc: derivation is the only available corroboration (fail-closed
181
- // above guarantees one of the two exists).
182
- if (candidate === derived)
163
+ for (const candidate of lookup.candidates) {
164
+ const signer = await getSigner({ rpc, spec: walletSpec() }, candidate.contractId, key);
165
+ if (signer)
183
166
  confirmed.push(candidate);
184
167
  }
185
- return confirmed;
168
+ return { ...lookup, candidates: confirmed };
186
169
  }
187
170
  async health() {
188
171
  try {
@@ -229,6 +212,96 @@ function limitsFromJson(limits) {
229
212
  }
230
213
  return out;
231
214
  }
215
+ const HEX_64 = /^[0-9a-f]{64}$/;
216
+ function isRecord(value) {
217
+ return typeof value === "object" && value !== null && !Array.isArray(value);
218
+ }
219
+ function readString(record, keys) {
220
+ for (const key of keys) {
221
+ const value = record[key];
222
+ if (typeof value === "string" && value.trim() !== "")
223
+ return value.trim();
224
+ }
225
+ return undefined;
226
+ }
227
+ function parseHex64(value) {
228
+ if (!value)
229
+ return undefined;
230
+ const hex = value.toLowerCase().replace(/^0x/, "");
231
+ return HEX_64.test(hex) ? hex : undefined;
232
+ }
233
+ function parseLedger(value) {
234
+ if (typeof value === "number" && Number.isInteger(value) && value >= 1) {
235
+ return value;
236
+ }
237
+ if (typeof value === "string" && /^(?:0|[1-9]\d*)$/.test(value)) {
238
+ const ledger = Number(value);
239
+ return ledger >= 1 ? ledger : undefined;
240
+ }
241
+ return undefined;
242
+ }
243
+ function parseWalletRef(value) {
244
+ if (!isRecord(value))
245
+ return undefined;
246
+ const contractId = readString(value, ["contract_id", "contractId"]);
247
+ if (!contractId || !contractId.startsWith("C"))
248
+ return undefined;
249
+ const candidate = { contractId };
250
+ const birthWasmHash = parseHex64(readString(value, ["birth_wasm_hash", "birthWasmHash"]));
251
+ const creationTransactionHash = parseHex64(readString(value, [
252
+ "creation_transaction_hash",
253
+ "creationTransactionHash",
254
+ "creation_tx",
255
+ ]));
256
+ const creationLedger = parseLedger(value.creation_ledger ?? value.creationLedger);
257
+ if (birthWasmHash)
258
+ candidate.birthWasmHash = birthWasmHash;
259
+ if (creationTransactionHash) {
260
+ candidate.creationTransactionHash = creationTransactionHash;
261
+ }
262
+ if (creationLedger !== undefined)
263
+ candidate.creationLedger = creationLedger;
264
+ return candidate;
265
+ }
266
+ function candidateHasBirth(candidate) {
267
+ return (parseHex64(candidate.birthWasmHash) !== undefined &&
268
+ parseHex64(candidate.creationTransactionHash) !== undefined &&
269
+ candidate.creationLedger !== undefined);
270
+ }
271
+ /** Map a lookup JSON body onto {@link WalletCandidateLookup} without inventing birth data. */
272
+ function parseLookupResponse(res) {
273
+ if (!isRecord(res)) {
274
+ return { complete: false, candidates: [] };
275
+ }
276
+ const rows = Array.isArray(res.wallets)
277
+ ? res.wallets
278
+ : Array.isArray(res.candidates)
279
+ ? res.candidates
280
+ : [];
281
+ const candidates = rows
282
+ .map(parseWalletRef)
283
+ .filter((candidate) => candidate !== undefined);
284
+ const indexedThroughLedger = parseLedger(res.indexed_through_ledger ?? res.indexedThroughLedger);
285
+ const claimedComplete = res.complete === true;
286
+ const complete = res.schema === 2 &&
287
+ claimedComplete &&
288
+ indexedThroughLedger !== undefined &&
289
+ candidates.every(candidateHasBirth);
290
+ if (complete) {
291
+ return {
292
+ complete: true,
293
+ schema: 2,
294
+ indexedThroughLedger,
295
+ candidates: candidates.filter(candidateHasBirth),
296
+ };
297
+ }
298
+ return {
299
+ complete: false,
300
+ ...(typeof res.schema === "number" ? { schema: res.schema } : {}),
301
+ ...(indexedThroughLedger !== undefined ? { indexedThroughLedger } : {}),
302
+ candidates,
303
+ };
304
+ }
232
305
  /** Map a fully-decoded passkey-indexer signer row onto a {@link WalletSigner}. */
233
306
  function jsonToWalletSigner(json) {
234
307
  const publicKey = json.publicKey
@@ -1 +1 @@
1
- {"version":3,"file":"mercury.js","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mercury.js","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,43 @@ export interface IndexerHealth {
44
44
  /** Optional human-readable detail. */
45
45
  detail?: string;
46
46
  }
47
+ /**
48
+ * One reverse-lookup wallet, including birth metadata when the indexer
49
+ * actually supplied it. Missing birth fields stay absent; callers must not
50
+ * treat a live signer as proof of birth.
51
+ */
52
+ export interface WalletCandidate {
53
+ /** Wallet contract id (`C…`). */
54
+ contractId: string;
55
+ /** WASM hash from the creating transaction, lowercase hex. */
56
+ birthWasmHash: string;
57
+ /** Creating transaction hash, lowercase hex. */
58
+ creationTransactionHash: string;
59
+ /** Ledger that created the contract. */
60
+ creationLedger: number;
61
+ }
62
+ /** An incomplete row retained only for diagnostics. It is never connectable. */
63
+ export type IncompleteWalletCandidate = Partial<WalletCandidate> & {
64
+ contractId: string;
65
+ };
66
+ /**
67
+ * Reverse-lookup result. `complete` is true only when the indexer claimed a
68
+ * finished scan and every candidate carries complete birth claims. A 404,
69
+ * an old payload, or a missing field is `complete: false`.
70
+ */
71
+ export type WalletCandidateLookup = {
72
+ schema: 2;
73
+ complete: true;
74
+ indexedThroughLedger: number;
75
+ /** Live-signer-confirmed candidates with complete birth metadata. */
76
+ candidates: WalletCandidate[];
77
+ } | {
78
+ schema?: number;
79
+ complete: false;
80
+ indexedThroughLedger?: number;
81
+ /** Diagnostic rows only. Callers must reject the full response. */
82
+ candidates: IncompleteWalletCandidate[];
83
+ };
47
84
  /**
48
85
  * A pluggable signer indexer.
49
86
  *
@@ -55,15 +92,14 @@ export interface IndexerHealth {
55
92
  export interface SignerIndexer {
56
93
  /** Enumerate all signers currently indexed for a wallet. */
57
94
  getSigners(wallet: string): Promise<WalletSigner[]>;
58
- /** Reverse lookup: the wallet contract ids a signer key belongs to. */
59
- findWallets(key: SignerKey): Promise<string[]>;
95
+ /** Reverse lookup: wallets a signer key belongs to, with birth metadata. */
96
+ findWallets(key: SignerKey): Promise<WalletCandidateLookup>;
60
97
  /** Probe backend health (degrades to `{ ok: false }` rather than throwing). */
61
98
  health(): Promise<IndexerHealth>;
62
99
  }
63
100
  /**
64
- * Deps for the SDK-side `findWallets` hardening (#598 F3): before trusting a
65
- * reverse-lookup result, the candidate wallet is confirmed by re-deriving its
66
- * address from the keyId (deterministic derivation) — no unverified `res[0]`.
101
+ * @deprecated Retained for source compatibility. Derivation does not confirm
102
+ * wallet ownership, so Mercury ignores these values and requires RPC.
67
103
  */
68
104
  export interface FindWalletsHardeningDeps {
69
105
  networkPassphrase: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/indexer/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gCAAgC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,uEAAuE;IACvE,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,+EAA+E;IAC/E,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/indexer/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gCAAgC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,uBAAuB,EAAE,MAAM,CAAC;IAChC,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,IAAI,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,UAAU,EAAE,yBAAyB,EAAE,CAAC;CACzC,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,4EAA4E;IAC5E,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5D,+EAA+E;IAC/E,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Verify a wallet's immutable CreateContractV2 birth transaction.
3
+ *
4
+ * Indexer birth fields are discovery claims. This module treats Stellar RPC
5
+ * as the source of truth and accepts only a successful transaction that
6
+ * directly created the candidate address from an approved WASM hash.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import { xdr } from "@stellar/stellar-sdk";
11
+ import { type Server } from "@stellar/stellar-sdk/rpc";
12
+ import type { Horizon } from "@stellar/stellar-sdk";
13
+ import type { WalletCandidate } from "../indexer/types.js";
14
+ /** A verified, immutable wallet-birth fact. */
15
+ export interface VerifiedWalletBirth extends WalletCandidate {
16
+ /** The lowercase hash read from the verified CreateContractV2 operation. */
17
+ birthWasmHash: string;
18
+ }
19
+ /** A named reason why a wallet-birth claim failed verification. */
20
+ export type WalletBirthFailure = "invalid_candidate" | "transaction_not_found" | "transaction_failed" | "transaction_hash_mismatch" | "ledger_mismatch" | "contract_not_created" | "ambiguous_creation" | "wasm_mismatch" | "wasm_not_accepted";
21
+ export type WalletBirthResult = {
22
+ ok: true;
23
+ birth: VerifiedWalletBirth;
24
+ } | {
25
+ ok: false;
26
+ reason: WalletBirthFailure;
27
+ detail: string;
28
+ };
29
+ export interface WalletBirthVerificationDeps {
30
+ rpc: Server;
31
+ /** Optional full-history source used after Stellar RPC retention expires. */
32
+ history?: Pick<Horizon.Server, "transactions">;
33
+ networkPassphrase: string;
34
+ acceptedBirthWasmHashes: readonly string[];
35
+ }
36
+ /** Derive a contract address from one CreateContractV2 preimage. */
37
+ export declare function contractIdFromCreateV2(networkPassphrase: string, create: xdr.CreateContractArgsV2): string | undefined;
38
+ /**
39
+ * Verify an indexer-supplied wallet-birth claim against Stellar RPC.
40
+ *
41
+ * The function requires a direct CreateContractV2 operation. This matches the
42
+ * passkey-kit deployment path and excludes unverifiable proxy deployments.
43
+ */
44
+ export declare function verifyWalletBirth(deps: WalletBirthVerificationDeps, candidate: WalletCandidate): Promise<WalletBirthResult>;
45
+ //# sourceMappingURL=birth-verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"birth-verification.d.ts","sourceRoot":"","sources":["../../src/kit/birth-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAKL,GAAG,EACJ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,+CAA+C;AAC/C,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,uBAAuB,GACvB,oBAAoB,GACpB,2BAA2B,GAC3B,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAaD,oEAAoE;AACpE,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,GAAG,CAAC,oBAAoB,GAC/B,MAAM,GAAG,SAAS,CAapB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,2BAA2B,EACjC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAiI5B"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Verify a wallet's immutable CreateContractV2 birth transaction.
3
+ *
4
+ * Indexer birth fields are discovery claims. This module treats Stellar RPC
5
+ * as the source of truth and accepts only a successful transaction that
6
+ * directly created the candidate address from an approved WASM hash.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import { FeeBumpTransaction, StrKey, TransactionBuilder, hash, xdr, } from "@stellar/stellar-sdk";
11
+ import { Api } from "@stellar/stellar-sdk/rpc";
12
+ const HASH_HEX = /^[0-9a-f]{64}$/;
13
+ function normalizeHash(value) {
14
+ const normalized = value.toLowerCase();
15
+ return HASH_HEX.test(normalized) ? normalized : undefined;
16
+ }
17
+ function fail(reason, detail) {
18
+ return { ok: false, reason, detail };
19
+ }
20
+ /** Derive a contract address from one CreateContractV2 preimage. */
21
+ export function contractIdFromCreateV2(networkPassphrase, create) {
22
+ const preimage = create.contractIdPreimage();
23
+ if (preimage.switch().name !== "contractIdPreimageFromAddress") {
24
+ return undefined;
25
+ }
26
+ const hashPreimage = xdr.HashIdPreimage.envelopeTypeContractId(new xdr.HashIdPreimageContractId({
27
+ networkId: hash(Buffer.from(networkPassphrase)),
28
+ contractIdPreimage: preimage,
29
+ }));
30
+ return StrKey.encodeContract(hash(hashPreimage.toXDR()));
31
+ }
32
+ /**
33
+ * Verify an indexer-supplied wallet-birth claim against Stellar RPC.
34
+ *
35
+ * The function requires a direct CreateContractV2 operation. This matches the
36
+ * passkey-kit deployment path and excludes unverifiable proxy deployments.
37
+ */
38
+ export async function verifyWalletBirth(deps, candidate) {
39
+ const claimedWasm = normalizeHash(candidate.birthWasmHash);
40
+ const txHash = normalizeHash(candidate.creationTransactionHash);
41
+ const accepted = new Set(deps.acceptedBirthWasmHashes.map(normalizeHash).filter((value) => !!value));
42
+ if (!claimedWasm || !txHash || !Number.isSafeInteger(candidate.creationLedger)) {
43
+ return fail("invalid_candidate", "wallet birth metadata is malformed");
44
+ }
45
+ const rpcResponse = await deps.rpc.getTransaction(txHash);
46
+ let ledger;
47
+ let envelopeXdr;
48
+ if (rpcResponse.status === Api.GetTransactionStatus.SUCCESS) {
49
+ ledger = rpcResponse.ledger;
50
+ envelopeXdr = rpcResponse.envelopeXdr;
51
+ }
52
+ else if (rpcResponse.status === Api.GetTransactionStatus.FAILED) {
53
+ return fail("transaction_failed", "the claimed creation transaction did not succeed");
54
+ }
55
+ else if (deps.history) {
56
+ try {
57
+ const historyResponse = await deps.history
58
+ .transactions()
59
+ .transaction(txHash)
60
+ .call();
61
+ if (!historyResponse.successful) {
62
+ return fail("transaction_failed", "the historical creation transaction did not succeed");
63
+ }
64
+ if (historyResponse.hash.toLowerCase() !== txHash) {
65
+ return fail("transaction_hash_mismatch", "the history response returned a different transaction hash");
66
+ }
67
+ ledger = historyResponse.ledger_attr;
68
+ envelopeXdr = historyResponse.envelope_xdr;
69
+ }
70
+ catch (error) {
71
+ const status = typeof error === "object" && error !== null && "response" in error
72
+ ? error.response?.status
73
+ : undefined;
74
+ if (status !== 404)
75
+ throw error;
76
+ return fail("transaction_not_found", "the creation transaction is unavailable from RPC and history");
77
+ }
78
+ }
79
+ else {
80
+ return fail("transaction_not_found", "the creation transaction is outside RPC retention and no history source is configured");
81
+ }
82
+ if (ledger !== candidate.creationLedger) {
83
+ return fail("ledger_mismatch", `creation ledger ${ledger} does not equal claimed ledger ${candidate.creationLedger}`);
84
+ }
85
+ const parsed = TransactionBuilder.fromXDR(envelopeXdr, deps.networkPassphrase);
86
+ if (parsed.hash().toString("hex") !== txHash) {
87
+ return fail("transaction_hash_mismatch", "the transaction envelope does not match the claimed transaction hash");
88
+ }
89
+ const transaction = parsed instanceof FeeBumpTransaction ? parsed.innerTransaction : parsed;
90
+ const matches = [];
91
+ for (const operation of transaction.operations) {
92
+ if (operation.type !== "invokeHostFunction" ||
93
+ operation.func.switch().name !== "hostFunctionTypeCreateContractV2") {
94
+ continue;
95
+ }
96
+ const create = operation.func.createContractV2();
97
+ if (contractIdFromCreateV2(deps.networkPassphrase, create) === candidate.contractId) {
98
+ matches.push(create);
99
+ }
100
+ }
101
+ if (matches.length === 0) {
102
+ return fail("contract_not_created", "the transaction did not directly create the candidate contract");
103
+ }
104
+ if (matches.length !== 1) {
105
+ return fail("ambiguous_creation", "the transaction contains multiple matching CreateContractV2 operations");
106
+ }
107
+ const executable = matches[0].executable();
108
+ if (executable.switch().name !== "contractExecutableWasm") {
109
+ return fail("contract_not_created", "the matching creation did not use WASM code");
110
+ }
111
+ const actualWasm = Buffer.from(executable.wasmHash()).toString("hex");
112
+ if (actualWasm !== claimedWasm) {
113
+ return fail("wasm_mismatch", `birth WASM ${actualWasm} does not equal claimed WASM ${claimedWasm}`);
114
+ }
115
+ if (!accepted.has(actualWasm)) {
116
+ return fail("wasm_not_accepted", `birth WASM ${actualWasm} is not accepted`);
117
+ }
118
+ return {
119
+ ok: true,
120
+ birth: {
121
+ ...candidate,
122
+ birthWasmHash: actualWasm,
123
+ creationTransactionHash: txHash,
124
+ },
125
+ };
126
+ }
127
+ //# sourceMappingURL=birth-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"birth-verification.js","sourceRoot":"","sources":["../../src/kit/birth-verification.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { Keypair } from "@stellar/stellar-sdk";
12
12
  import type { AssembledTransaction } from "@stellar/stellar-sdk/contract";
13
- import { Client as PasskeyClient } from "passkey-kit-sdk";
13
+ import { Client as PasskeyClient, type Secp256r1Signature } from "passkey-kit-sdk";
14
14
  /**
15
15
  * Resolve the address-derivation deployer keypair from an optional secret.
16
16
  *
@@ -43,5 +43,5 @@ export declare function buildDeployTransaction(deps: {
43
43
  deployerPublicKey: string;
44
44
  usingSharedDeployer: boolean;
45
45
  timeoutInSeconds: number;
46
- }, keyId: Buffer, publicKey: Uint8Array): Promise<AssembledTransaction<PasskeyClient>>;
46
+ }, keyId: Buffer, publicKey: Uint8Array, proof: Secp256r1Signature): Promise<AssembledTransaction<PasskeyClient>>;
47
47
  //# sourceMappingURL=deploy-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-ops.d.ts","sourceRoot":"","sources":["../../src/kit/deploy-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAQ,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,MAAM,IAAI,aAAa,EAExB,MAAM,iBAAiB,CAAC;AAKzB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAY9D;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EAC9D,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,EACD,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAyB9C"}
1
+ {"version":3,"file":"deploy-ops.d.ts","sourceRoot":"","sources":["../../src/kit/deploy-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAQ,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,MAAM,IAAI,aAAa,EACvB,KAAK,kBAAkB,EAExB,MAAM,iBAAiB,CAAC;AAKzB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAY9D;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EAC9D,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,EACD,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAyB9C"}
@@ -47,7 +47,7 @@ export function deriveWalletAddress(deps, keyId) {
47
47
  * uses the null carrier account instead of reading the deployer's sequence.
48
48
  * Custom deployers keep the normal account-source path.
49
49
  */
50
- export async function buildDeployTransaction(deps, keyId, publicKey) {
50
+ export async function buildDeployTransaction(deps, keyId, publicKey, proof) {
51
51
  const signer = {
52
52
  tag: "Secp256r1",
53
53
  values: [
@@ -58,7 +58,7 @@ export async function buildDeployTransaction(deps, keyId, publicKey) {
58
58
  { tag: "Persistent", values: undefined },
59
59
  ],
60
60
  };
61
- return PasskeyClient.deploy({ signer }, {
61
+ return PasskeyClient.deploy({ signer, proof }, {
62
62
  rpcUrl: deps.rpcUrl,
63
63
  wasmHash: deps.walletWasmHash,
64
64
  networkPassphrase: deps.networkPassphrase,
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-ops.js","sourceRoot":"","sources":["../../src/kit/deploy-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,MAAM,IAAI,aAAa,GAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,YAAqB;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,kBAAkB,CAC1B,sDAAsD,EACtD,mBAAmB,CAAC,cAAc,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,IAA8D,EAC9D,KAAa;IAEb,OAAO,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAOC,EACD,KAAa,EACb,SAAqB;IAErB,MAAM,MAAM,GAAc;QACxB,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACtB,CAAC,SAAS,CAAC,EAAE,yBAAyB;YACtC,CAAC,SAAS,CAAC,EAAE,0BAA0B;YACvC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE;SACzC;KACF,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,CACzB,EAAE,MAAM,EAAE,EACV;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,cAAc;QAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,GAAG,CAAC,IAAI,CAAC,mBAAmB;YAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACrC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;QACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"deploy-ops.js","sourceRoot":"","sources":["../../src/kit/deploy-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,MAAM,IAAI,aAAa,GAGxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,YAAqB;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,kBAAkB,CAC1B,sDAAsD,EACtD,mBAAmB,CAAC,cAAc,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,IAA8D,EAC9D,KAAa;IAEb,OAAO,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAOC,EACD,KAAa,EACb,SAAqB,EACrB,KAAyB;IAEzB,MAAM,MAAM,GAAc;QACxB,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACtB,CAAC,SAAS,CAAC,EAAE,yBAAyB;YACtC,CAAC,SAAS,CAAC,EAAE,0BAA0B;YACvC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE;SACzC;KACF,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,CACzB,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,cAAc;QAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,GAAG,CAAC,IAAI,CAAC,mBAAmB;YAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACrC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;QACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CACF,CAAC;AACJ,CAAC"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { type Server } from "@stellar/stellar-sdk/rpc";
16
16
  import type { AssembledTransaction, Result, Spec as ContractSpec } from "@stellar/stellar-sdk/contract";
17
- import { Client as PasskeyClient, type SignerKey as SDKSignerKey, type SignerLimits as SDKSignerLimits, type SignerVal } from "passkey-kit-sdk";
17
+ import { Client as PasskeyClient, type Signer as SDKSigner, type Secp256r1Signature, type SignerKey as SDKSignerKey, type SignerLimits as SDKSignerLimits, type SignerVal } from "passkey-kit-sdk";
18
18
  import { SignerStore, type SignerKey, type SignerLimits } from "../types.js";
19
19
  /**
20
20
  * The result of a signer-write / upgrade transaction. The reworked contract's
@@ -28,14 +28,26 @@ type SignerFn = "add_signer" | "update_signer";
28
28
  export declare function toContractSignerKey({ key, value }: SignerKey): SDKSignerKey;
29
29
  /** Encode SDK-side {@link SignerLimits} into the contract's `SignerLimits`. */
30
30
  export declare function toContractSignerLimits(limits: SignerLimits): SDKSignerLimits;
31
+ export declare function buildSecp256r1Signer(keyId: string | Uint8Array, publicKey: string | Uint8Array, limits: SignerLimits, store: SignerStore, expiration?: number): SDKSigner;
31
32
  /** Shared deps for building signer-write transactions. */
32
33
  export interface WalletWriteDeps {
33
34
  wallet: PasskeyClient;
34
35
  timeoutInSeconds: number;
35
36
  }
36
37
  export declare function buildSecp256r1SignerTx(deps: WalletWriteDeps, fn: SignerFn, keyId: string | Uint8Array, publicKey: string | Uint8Array, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
38
+ /** Build a proof-carrying Secp256r1 signer addition. */
39
+ export declare function buildAddSecp256r1SignerTx(deps: WalletWriteDeps, keyId: string | Uint8Array, publicKey: string | Uint8Array, limits: SignerLimits, store: SignerStore, proof: Secp256r1Signature, expiration?: number): Promise<WalletTx>;
37
40
  export declare function buildEd25519SignerTx(deps: WalletWriteDeps, fn: SignerFn, publicKey: string, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
38
- export declare function buildPolicySignerTx(deps: WalletWriteDeps, fn: SignerFn, policy: string, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
41
+ /** Options for {@link buildPolicySignerTx}. */
42
+ export interface PolicySignerTxOptions {
43
+ /**
44
+ * Allow the policy's `install` hook to add wallet-authorized sub-invocations
45
+ * to the `add_signer` auth entry. Default `false`: the build throws a
46
+ * {@link ValidationError} if the simulated entry carries any sub-invocation.
47
+ */
48
+ allowInstallSubInvocations?: boolean;
49
+ }
50
+ export declare function buildPolicySignerTx(deps: WalletWriteDeps, fn: SignerFn, policy: string, limits: SignerLimits, store: SignerStore, expiration?: number, options?: PolicySignerTxOptions): Promise<WalletTx>;
39
51
  export declare function buildRemoveSignerTx(deps: WalletWriteDeps, signerKey: SignerKey): Promise<WalletTx>;
40
52
  /** Build an `upgrade(new_wasm_hash)` transaction (renamed from update_contract_code). */
41
53
  export declare function buildUpgradeTx(deps: WalletWriteDeps, newWasmHash: Buffer | Uint8Array): Promise<WalletTx>;
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-ops.d.ts","sourceRoot":"","sources":["../../src/kit/wallet-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACN,IAAI,IAAI,YAAY,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,MAAM,IAAI,aAAa,EAGvB,KAAK,SAAS,IAAI,YAAY,EAC9B,KAAK,YAAY,IAAI,eAAe,EACpC,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7E;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAO1D,uCAAuC;AACvC,KAAK,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAC;AAE/C,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,GAAG,YAAY,CAS3E;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAa5E;AA6DD,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,MAAM,GAAG,UAAU,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,EACzC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAW3B"}
1
+ {"version":3,"file":"wallet-ops.d.ts","sourceRoot":"","sources":["../../src/kit/wallet-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACN,IAAI,IAAI,YAAY,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,MAAM,IAAI,aAAa,EACvB,KAAK,MAAM,IAAI,SAAS,EACxB,KAAK,kBAAkB,EAEvB,KAAK,SAAS,IAAI,YAAY,EAC9B,KAAK,YAAY,IAAI,eAAe,EACpC,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7E;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAO1D,uCAAuC;AACvC,KAAK,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAC;AAE/C,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,GAAG,YAAY,CAS3E;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAa5E;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,CAiBX;AAoCD,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,wDAAwD;AACxD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,kBAAkB,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAcnB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAgBnB;AAyCD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,MAAM,GAAG,UAAU,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,EACzC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAW3B"}