passkey-kit 0.18.3 → 0.19.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/README.md CHANGED
@@ -580,6 +580,7 @@ pnpm verify:bindings # assert the committed bindings match the canonical WASM
580
580
  - **[CHANGELOG.md](./CHANGELOG.md)** — the v1 overhaul, by component.
581
581
  - **[SECURITY.md](./SECURITY.md)** — supported versions and private vulnerability reporting.
582
582
  - **[docs/migration-v1.md](./docs/migration-v1.md)** — upgrading from 0.12.x, with Before/After and a gap analysis.
583
+ - **[docs/legacy-wallet-upgrade.md](./docs/legacy-wallet-upgrade.md)** — in-place upgrade for pre-fix legacy wallets (known-vulnerable WASM hashes in [SECURITY.md](./SECURITY.md)).
583
584
  - **[docs/releasing.md](./docs/releasing.md)** — the dependency-ordered publish flow.
584
585
 
585
586
  ## Resources
package/SECURITY.md CHANGED
@@ -14,6 +14,25 @@ Only the latest npm releases and the canonical smart-wallet WASM receive securit
14
14
 
15
15
  The current [`deployment manifest`](./docs/deployments-2026-09-01.md) identifies the canonical WASM. Existing wallet instances do not upgrade automatically.
16
16
 
17
+ ## Known-vulnerable wallet WASM hashes
18
+
19
+ Wallets deployed from the following mainnet WASM hashes run code in which `update_signer` has no authorization check. Anyone who knows a signer key can overwrite that signer. The defect was fixed in source in commit [`dcc6e3dc9c`](https://github.com/kalepail/passkey-kit/commit/dcc6e3dc9cfd32e64b98f23541cd2d96812b64c4) on 2025-03-27. Deployed wallets keep the old code until their owner upgrades them.
20
+
21
+ | WASM hash | Storage layout |
22
+ |---|---|
23
+ | `0c0a264d4cc0b3e79b8533e2a2e1f0ed21501a5a3f9f2455d2f18c232940b865` | bare (pre-`6a27d48`) |
24
+ | `19868df3653d427cafa1c30bdb6cec1ca5c8c815eeabab8a8bae6d83efb1fedd` | bare (pre-`6a27d48`) |
25
+ | `b62f62217ff256d557513793e9e44317b25b14401a8a6b6149a04d38d72d6c7c` | wrapped |
26
+ | `c5509dfa5f022deb8ae621f073adac5fd788feca0b24d15b5f392ab22c2ff222` | wrapped (not built from this repo) |
27
+
28
+ Do not deploy new wallets from these hashes, or from any Makefile or `.env` pin older than commit `da472f9`.
29
+
30
+ Upgrade affected wallets in place to the legacy-line build `c079d3a4136eb6ca68eb724acd3d8af11b0be4a0ed82605925a6dfd4dd83a97c`, built from [`contracts-legacy/`](./contracts-legacy) and live on mainnet (upload tx `501bd5d5…`, 2026-09-17). It reads both storage layouts. The earlier post-fix builds `ecd990f0…` and `e45c42b9…` and the v1 build read only the wrapped layout and brick a bare-layout wallet. See [`docs/legacy-wallet-upgrade.md`](./docs/legacy-wallet-upgrade.md) for the procedure.
31
+
32
+ Move funds out of any affected wallet you do not intend to upgrade.
33
+
34
+ The current SDK refuses to deploy from these hashes, throws `LegacyWalletError` with the upgrade guidance when `connectWallet` meets a wallet running one of them, and builds the upgrade itself through `inspectLegacyWallet` / `buildLegacyUpgradeTx` / `signLegacyUpgradeTx`.
35
+
17
36
  ## Cargo advisory status
18
37
 
19
38
  The lockfile retains `serde_with@3.14.0` and its inactive `time@0.3.41` optional dependency.
@@ -99,4 +99,26 @@ export declare const MERCURY_PASSKEY_INDEXER_URLS: {
99
99
  };
100
100
  /** Stellar Friendbot URL for testnet funding. */
101
101
  export declare const FRIENDBOT_URL = "https://friendbot.stellar.org";
102
+ /**
103
+ * Mainnet smart-wallet WASM hashes whose `update_signer` has no authorization
104
+ * check (fixed in source by commit dcc6e3dc9c, 2025-03-27). Any signer on a
105
+ * wallet running one of these can be overwritten by anyone. The kit refuses to
106
+ * deploy from them and names them in {@link LegacyWalletError} on connect.
107
+ * See SECURITY.md and docs/legacy-wallet-upgrade.md.
108
+ */
109
+ export declare const KNOWN_VULNERABLE_WALLET_WASM_HASHES: readonly string[];
110
+ /**
111
+ * Patched pre-1.0 smart-wallet WASM hashes. Wallets on these are not
112
+ * vulnerable but predate the v1 contract, so this kit cannot connect to them;
113
+ * the 0.10.20–0.12.x kit line can.
114
+ */
115
+ export declare const LEGACY_WALLET_WASM_HASHES: readonly string[];
116
+ /**
117
+ * The in-place upgrade target for every vulnerable legacy wallet. Built from
118
+ * `contracts-legacy/`; it reads both pre-1.0 storage layouts, which the other
119
+ * patched builds do not (they brick `0c0a264d…`/`19868df3…` wallets).
120
+ */
121
+ export declare const LEGACY_UPGRADE_TARGET_WASM_HASH = "c079d3a4136eb6ca68eb724acd3d8af11b0be4a0ed82605925a6dfd4dd83a97c";
122
+ /** Operator guide for upgrading legacy wallets in place. */
123
+ export declare const LEGACY_WALLET_UPGRADE_GUIDE_URL = "https://github.com/stellar/passkey-kit/blob/main/docs/legacy-wallet-upgrade.md";
102
124
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,IAAO,CAAC;AAE/C,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,QAEvB,CAAC;AAMF,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAMhD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C,sEAAsE;AACtE,eAAO,MAAM,OAAO,gBAAgB,CAAC;AAErC,wCAAwC;AACxC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,sEAAsE;AACtE,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAMtE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAElD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AAExE,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAMhF,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;;CAG/B,CAAC;AAMX,iDAAiD;AACjD,eAAO,MAAM,aAAa,kCAAkC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,IAAO,CAAC;AAE/C,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,QAEvB,CAAC;AAMF,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAMhD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C,sEAAsE;AACtE,eAAO,MAAM,OAAO,gBAAgB,CAAC;AAErC,wCAAwC;AACxC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,sEAAsE;AACtE,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAMtE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAElD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AAExE,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAMhF,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;;CAG/B,CAAC;AAMX,iDAAiD;AACjD,eAAO,MAAM,aAAa,kCAAkC,CAAC;AAM7D;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,MAAM,EAKhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAItD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,qEACwB,CAAC;AAErE,4DAA4D;AAC5D,eAAO,MAAM,+BAA+B,mFACsC,CAAC"}
package/dist/constants.js CHANGED
@@ -123,4 +123,38 @@ export const MERCURY_PASSKEY_INDEXER_URLS = {
123
123
  // ============================================================================
124
124
  /** Stellar Friendbot URL for testnet funding. */
125
125
  export const FRIENDBOT_URL = "https://friendbot.stellar.org";
126
+ // ============================================================================
127
+ // Legacy (pre-1.0) wallet code identities
128
+ // ============================================================================
129
+ /**
130
+ * Mainnet smart-wallet WASM hashes whose `update_signer` has no authorization
131
+ * check (fixed in source by commit dcc6e3dc9c, 2025-03-27). Any signer on a
132
+ * wallet running one of these can be overwritten by anyone. The kit refuses to
133
+ * deploy from them and names them in {@link LegacyWalletError} on connect.
134
+ * See SECURITY.md and docs/legacy-wallet-upgrade.md.
135
+ */
136
+ export const KNOWN_VULNERABLE_WALLET_WASM_HASHES = [
137
+ "0c0a264d4cc0b3e79b8533e2a2e1f0ed21501a5a3f9f2455d2f18c232940b865",
138
+ "19868df3653d427cafa1c30bdb6cec1ca5c8c815eeabab8a8bae6d83efb1fedd",
139
+ "b62f62217ff256d557513793e9e44317b25b14401a8a6b6149a04d38d72d6c7c",
140
+ "c5509dfa5f022deb8ae621f073adac5fd788feca0b24d15b5f392ab22c2ff222",
141
+ ];
142
+ /**
143
+ * Patched pre-1.0 smart-wallet WASM hashes. Wallets on these are not
144
+ * vulnerable but predate the v1 contract, so this kit cannot connect to them;
145
+ * the 0.10.20–0.12.x kit line can.
146
+ */
147
+ export const LEGACY_WALLET_WASM_HASHES = [
148
+ "ecd990f0b45ca6817149b6175f79b32efb442f35731985a084131e8265c4cd90",
149
+ "e45c42b944a767bd5f37f8c4a469b48917d28e23481dbfd550419c84cdacde92",
150
+ "c079d3a4136eb6ca68eb724acd3d8af11b0be4a0ed82605925a6dfd4dd83a97c",
151
+ ];
152
+ /**
153
+ * The in-place upgrade target for every vulnerable legacy wallet. Built from
154
+ * `contracts-legacy/`; it reads both pre-1.0 storage layouts, which the other
155
+ * patched builds do not (they brick `0c0a264d…`/`19868df3…` wallets).
156
+ */
157
+ export const LEGACY_UPGRADE_TARGET_WASM_HASH = "c079d3a4136eb6ca68eb724acd3d8af11b0be4a0ed82605925a6dfd4dd83a97c";
158
+ /** Operator guide for upgrading legacy wallets in place. */
159
+ export const LEGACY_WALLET_UPGRADE_GUIDE_URL = "https://github.com/stellar/passkey-kit/blob/main/docs/legacy-wallet-upgrade.md";
126
160
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,6DAA6D;AAC7D,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,iEAAiE;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CACzC,oEAAoE,CACrE,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CACzC,oEAAoE,CACrE,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAC/B,oEAAoE,CACrE,CAAC;AAEF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAEhD,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,sEAAsE;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAExE,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEhF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,OAAO,EAAE,sDAAsD;IAC/D,OAAO,EAAE,sDAAsD;CACvD,CAAC;AAEX,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,+BAA+B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,6DAA6D;AAC7D,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,iEAAiE;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CACzC,oEAAoE,CACrE,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CACzC,oEAAoE,CACrE,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAC/B,oEAAoE,CACrE,CAAC;AAEF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAEhD,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,sEAAsE;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAExE,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEhF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,OAAO,EAAE,sDAAsD;IAC/D,OAAO,EAAE,sDAAsD;CACvD,CAAC;AAEX,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,+BAA+B,CAAC;AAE7D,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAsB;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;CACnE,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;CACnE,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,kEAAkE,CAAC;AAErE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,+BAA+B,GAC1C,gFAAgF,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -36,6 +36,8 @@ export declare enum PasskeyKitErrorCode {
36
36
  WALLET_NOT_FOUND = 2003,
37
37
  WALLET_OWNERSHIP_MISMATCH = 2004,
38
38
  WALLET_AMBIGUOUS = 2005,
39
+ /** The wallet runs pre-1.0 contract code; see {@link LegacyWalletError}. */
40
+ WALLET_LEGACY_CODE = 2006,
39
41
  WEBAUTHN_REGISTRATION_FAILED = 3001,
40
42
  WEBAUTHN_AUTHENTICATION_FAILED = 3002,
41
43
  WEBAUTHN_NOT_SUPPORTED = 3003,
@@ -96,6 +98,34 @@ export declare class WalletNotConnectedError extends PasskeyKitError {
96
98
  export declare class WalletOwnershipError extends PasskeyKitError {
97
99
  constructor(message: string, context?: Record<string, unknown>);
98
100
  }
101
+ /**
102
+ * Thrown when a wallet runs pre-1.0 (legacy) contract code, which this kit
103
+ * cannot operate. Two cases, distinguished by {@link LegacyWalletError.vulnerable}:
104
+ *
105
+ * - `vulnerable: true` — the code is one of the known-vulnerable builds whose
106
+ * `update_signer` has no authorization check. Anyone can take the wallet
107
+ * over. It must be upgraded in place to {@link upgradeTarget} (or drained)
108
+ * using the 0.10.20–0.12.x kit line; see {@link guideUrl}.
109
+ * - `vulnerable: false` — the code is a patched legacy build. The wallet is
110
+ * safe but only the 0.10.20–0.12.x kit line can connect to it.
111
+ */
112
+ export declare class LegacyWalletError extends PasskeyKitError {
113
+ /** The wallet's current code hash (hex). */
114
+ readonly wasmHash: string;
115
+ /** Whether the code has the unauthenticated `update_signer` defect. */
116
+ readonly vulnerable: boolean;
117
+ /** WASM hash to upgrade to in place (safe for every legacy layout). */
118
+ readonly upgradeTarget: string;
119
+ /** Operator guide for the upgrade. */
120
+ readonly guideUrl: string;
121
+ constructor(options: {
122
+ contractId: string;
123
+ wasmHash: string;
124
+ vulnerable: boolean;
125
+ upgradeTarget: string;
126
+ guideUrl: string;
127
+ });
128
+ }
99
129
  /** Thrown when more than one verified wallet contains the connecting passkey. */
100
130
  export declare class WalletAmbiguousError extends PasskeyKitError {
101
131
  /** Every candidate that passed the configured wallet checks. */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -39,6 +39,8 @@ export var PasskeyKitErrorCode;
39
39
  PasskeyKitErrorCode[PasskeyKitErrorCode["WALLET_NOT_FOUND"] = 2003] = "WALLET_NOT_FOUND";
40
40
  PasskeyKitErrorCode[PasskeyKitErrorCode["WALLET_OWNERSHIP_MISMATCH"] = 2004] = "WALLET_OWNERSHIP_MISMATCH";
41
41
  PasskeyKitErrorCode[PasskeyKitErrorCode["WALLET_AMBIGUOUS"] = 2005] = "WALLET_AMBIGUOUS";
42
+ /** The wallet runs pre-1.0 contract code; see {@link LegacyWalletError}. */
43
+ PasskeyKitErrorCode[PasskeyKitErrorCode["WALLET_LEGACY_CODE"] = 2006] = "WALLET_LEGACY_CODE";
42
44
  // WebAuthn (3xxx)
43
45
  PasskeyKitErrorCode[PasskeyKitErrorCode["WEBAUTHN_REGISTRATION_FAILED"] = 3001] = "WEBAUTHN_REGISTRATION_FAILED";
44
46
  PasskeyKitErrorCode[PasskeyKitErrorCode["WEBAUTHN_AUTHENTICATION_FAILED"] = 3002] = "WEBAUTHN_AUTHENTICATION_FAILED";
@@ -136,6 +138,47 @@ export class WalletOwnershipError extends PasskeyKitError {
136
138
  this.name = "WalletOwnershipError";
137
139
  }
138
140
  }
141
+ /**
142
+ * Thrown when a wallet runs pre-1.0 (legacy) contract code, which this kit
143
+ * cannot operate. Two cases, distinguished by {@link LegacyWalletError.vulnerable}:
144
+ *
145
+ * - `vulnerable: true` — the code is one of the known-vulnerable builds whose
146
+ * `update_signer` has no authorization check. Anyone can take the wallet
147
+ * over. It must be upgraded in place to {@link upgradeTarget} (or drained)
148
+ * using the 0.10.20–0.12.x kit line; see {@link guideUrl}.
149
+ * - `vulnerable: false` — the code is a patched legacy build. The wallet is
150
+ * safe but only the 0.10.20–0.12.x kit line can connect to it.
151
+ */
152
+ export class LegacyWalletError extends PasskeyKitError {
153
+ /** The wallet's current code hash (hex). */
154
+ wasmHash;
155
+ /** Whether the code has the unauthenticated `update_signer` defect. */
156
+ vulnerable;
157
+ /** WASM hash to upgrade to in place (safe for every legacy layout). */
158
+ upgradeTarget;
159
+ /** Operator guide for the upgrade. */
160
+ guideUrl;
161
+ constructor(options) {
162
+ const { contractId, wasmHash, vulnerable, upgradeTarget, guideUrl } = options;
163
+ const message = vulnerable
164
+ ? `Wallet ${contractId} runs known-vulnerable legacy code ${wasmHash.slice(0, 8)}…: ` +
165
+ `its update_signer has no authorization check, so anyone can take the wallet over. ` +
166
+ `Upgrade it in place to ${upgradeTarget} with the passkey-kit 0.10.20–0.12.x line ` +
167
+ `(update_contract_code, then migrate_signers), or move its funds out. ` +
168
+ `This kit version cannot connect to it. Guide: ${guideUrl}`
169
+ : `Wallet ${contractId} runs patched legacy code ${wasmHash.slice(0, 8)}…, ` +
170
+ `which this kit version cannot connect to. Use the passkey-kit 0.10.20–0.12.x ` +
171
+ `line for this wallet. Guide: ${guideUrl}`;
172
+ super(message, PasskeyKitErrorCode.WALLET_LEGACY_CODE, {
173
+ context: { contractId, wasmHash, vulnerable, upgradeTarget, guideUrl },
174
+ });
175
+ this.name = "LegacyWalletError";
176
+ this.wasmHash = wasmHash;
177
+ this.vulnerable = vulnerable;
178
+ this.upgradeTarget = upgradeTarget;
179
+ this.guideUrl = guideUrl;
180
+ }
181
+ }
139
182
  /** Thrown when more than one verified wallet contains the connecting passkey. */
140
183
  export class WalletAmbiguousError extends PasskeyKitError {
141
184
  /** Every candidate that passed the configured wallet checks. */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,9 @@ export { Client as PasskeyClient } from "passkey-kit-sdk";
13
13
  export { PasskeySigner, Ed25519Signer, PolicySigner, type Signer, type SignerContext, type PreparedSignature, type WebAuthnAuthenticator, } from "./signers.js";
14
14
  export { SignerKey, SignerStore, type SignerKeyTag, type SignerLimits, type StoredPasskey, type StorageAdapter, type CreateWalletResult, type ConnectWalletResult, type TransactionResult, type TransactionSuccess, type TransactionFailure, type SubmissionMethod, } from "./types.js";
15
15
  export type { PolicySignerTxOptions } from "./kit/wallet-ops.js";
16
- export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, WebAuthnError, SigningError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, IndexerError, RelayerError, ContractError, wrapError, } from "./errors.js";
16
+ export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, LegacyWalletError, WebAuthnError, SigningError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, IndexerError, RelayerError, ContractError, wrapError, } from "./errors.js";
17
+ export { classifyWasmHash, BARE_LAYOUT_WALLET_WASM_HASHES, type LegacyCodeStatus, type LegacyWalletInspection, } from "./kit/legacy-ops.js";
18
+ export { KNOWN_VULNERABLE_WALLET_WASM_HASHES, LEGACY_WALLET_WASM_HASHES, LEGACY_UPGRADE_TARGET_WASM_HASH, LEGACY_WALLET_UPGRADE_GUIDE_URL, } from "./constants.js";
17
19
  export { CONTRACT_ERROR_REGISTRY, contractErrorFromCode, decodeContractError, type ContractErrorFamily, type ContractErrorInfo, } from "./contract-errors.js";
18
20
  export { MercuryIndexer, mercuryPasskeyIndexerUrl, MERCURY_PASSKEY_INDEXER_URLS, lookupWithRetry, type MercuryIndexerConfig, type SignerIndexer, type WalletSigner, type WalletCandidate, type WalletCandidateIncompleteReason, type IncompleteWalletCandidate, type WalletCandidateLookup, type WalletLookupIncompleteReason, type IndexerHealth, type SignerStatus, type SignerStorageClass, } from "./indexer/index.js";
19
21
  export { PasskeyEventEmitter, type PasskeyEvent, type PasskeyEventMap, type EventListener, } from "./events.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -19,7 +19,11 @@ export { PasskeySigner, Ed25519Signer, PolicySigner, } from "./signers.js";
19
19
  // Signer-key helpers, storage + result types
20
20
  export { SignerKey, SignerStore, } from "./types.js";
21
21
  // Typed errors
22
- export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, WebAuthnError, SigningError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, IndexerError, RelayerError, ContractError, wrapError, } from "./errors.js";
22
+ export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, LegacyWalletError, WebAuthnError, SigningError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, IndexerError, RelayerError, ContractError, wrapError, } from "./errors.js";
23
+ // Legacy (pre-1.0) wallet upgrade helpers
24
+ export { classifyWasmHash, BARE_LAYOUT_WALLET_WASM_HASHES, } from "./kit/legacy-ops.js";
25
+ // Legacy (pre-1.0) wallet code identities
26
+ export { KNOWN_VULNERABLE_WALLET_WASM_HASHES, LEGACY_WALLET_WASM_HASHES, LEGACY_UPGRADE_TARGET_WASM_HASH, LEGACY_WALLET_UPGRADE_GUIDE_URL, } from "./constants.js";
23
27
  // Contract-error decoding
24
28
  export { CONTRACT_ERROR_REGISTRY, contractErrorFromCode, decodeContractError, } from "./contract-errors.js";
25
29
  // Indexer abstraction. Mercury's hosted passkey-indexer is keyless, so the
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,8EAA8E;AAC9E,SAAS;AACT,OAAO,EACL,UAAU,GAIX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAErE,4BAA4B;AAC5B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE1D,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,6CAA6C;AAC7C,OAAO,EACL,SAAS,EACT,WAAW,GAWZ,MAAM,YAAY,CAAC;AAGpB,eAAe;AACf,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAC3E,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAYhB,MAAM,oBAAoB,CAAC;AAE5B,SAAS;AACT,OAAO,EACL,mBAAmB,GAIpB,MAAM,aAAa,CAAC;AAErB,8BAA8B;AAC9B,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,8EAA8E;AAC9E,SAAS;AACT,OAAO,EACL,UAAU,GAIX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAErE,4BAA4B;AAC5B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE1D,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,6CAA6C;AAC7C,OAAO,EACL,SAAS,EACT,WAAW,GAWZ,MAAM,YAAY,CAAC;AAGpB,eAAe;AACf,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,0CAA0C;AAC1C,OAAO,EACL,gBAAgB,EAChB,8BAA8B,GAG/B,MAAM,qBAAqB,CAAC;AAE7B,0CAA0C;AAC1C,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAC3E,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAYhB,MAAM,oBAAoB,CAAC;AAE5B,SAAS;AACT,OAAO,EACL,mBAAmB,GAIpB,MAAM,aAAa,CAAC;AAErB,8BAA8B;AAC9B,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Legacy (pre-1.0) wallet upgrade helpers.
3
+ *
4
+ * The kit cannot connect to a pre-1.0 wallet (`connectWallet` throws
5
+ * {@link LegacyWalletError}), but it can still craft the one transaction such
6
+ * a wallet needs: an in-place `update_contract_code` to the legacy-line build
7
+ * that reads both pre-1.0 storage layouts, followed for the bare-layout cohort
8
+ * by a `migrate_signers` call. This module builds those transactions from the
9
+ * wallet's actual on-chain state, so an application only has to sign and
10
+ * submit. See docs/legacy-wallet-upgrade.md for the full procedure.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import { AssembledTransaction, type Spec as ContractSpec } from "@stellar/stellar-sdk/contract";
15
+ import type { Server } from "@stellar/stellar-sdk/rpc";
16
+ import type { SignerKey } from "../types.js";
17
+ import type { Signer } from "../signers.js";
18
+ import { type SignAuthEntryDeps, type SignOptions } from "./tx-ops.js";
19
+ /**
20
+ * Pre-1.0 wallets that store signers in the pre-`6a27d48` (2024-12-13)
21
+ * layout. Every later build fails to decode them, which is why only the
22
+ * legacy-line target is a safe upgrade for them and why `migrate_signers`
23
+ * exists.
24
+ */
25
+ export declare const BARE_LAYOUT_WALLET_WASM_HASHES: readonly string[];
26
+ /** How a wallet's current code relates to this kit. */
27
+ export type LegacyCodeStatus =
28
+ /** One of the known-vulnerable pre-fix builds: upgrade or drain now. */
29
+ "vulnerable"
30
+ /** A patched pre-1.0 build: safe, but only legacy tooling operates it. */
31
+ | "legacy"
32
+ /** One of this kit's accepted hashes: nothing to do. */
33
+ | "current"
34
+ /** Not a hash this kit knows. */
35
+ | "unknown";
36
+ /** What {@link inspectLegacyWallet} learned about a wallet. */
37
+ export interface LegacyWalletInspection {
38
+ contractId: string;
39
+ /** Current code hash (hex). */
40
+ wasmHash: string;
41
+ status: LegacyCodeStatus;
42
+ /** Storage layout cohort, when the code is a known pre-1.0 build. */
43
+ cohort: "bare" | "wrapped" | null;
44
+ /** The in-place upgrade target for every pre-1.0 wallet. */
45
+ upgradeTarget: string;
46
+ /** True when the wallet should call `update_contract_code(upgradeTarget)`. */
47
+ upgradeRequired: boolean;
48
+ /** True when `migrate_signers` should follow the upgrade (bare cohort). */
49
+ migrateRequired: boolean;
50
+ /**
51
+ * Ledger entries that are archived and must be restored before anything on
52
+ * the wallet can run. `instance` is the wallet instance, `code` its current
53
+ * code, `target` the upgrade target's code.
54
+ */
55
+ archived: {
56
+ instance: boolean;
57
+ code: boolean;
58
+ target: boolean;
59
+ };
60
+ /** Operator guide. */
61
+ guideUrl: string;
62
+ /** One-paragraph instruction for this wallet. */
63
+ recommendation: string;
64
+ }
65
+ /** Classify a code hash without touching the network. */
66
+ export declare function classifyWasmHash(wasmHash: string, acceptedWasmHashes: readonly string[]): {
67
+ status: LegacyCodeStatus;
68
+ cohort: "bare" | "wrapped" | null;
69
+ };
70
+ /** Deps for {@link inspectLegacyWallet}. */
71
+ export interface InspectDeps {
72
+ rpc: Server;
73
+ acceptedWasmHashes: readonly string[];
74
+ /** Read the wallet's current code hash (hex). */
75
+ contractWasmHash: (contractId: string) => Promise<string>;
76
+ }
77
+ /**
78
+ * Read a wallet's code hash and the liveness of the entries an upgrade
79
+ * touches, and say what to do.
80
+ */
81
+ export declare function inspectLegacyWallet(deps: InspectDeps, contractId: string): Promise<LegacyWalletInspection>;
82
+ /** Deps for the transaction builders. */
83
+ export interface LegacyTxDeps {
84
+ rpcUrl: string;
85
+ networkPassphrase: string;
86
+ timeoutInSeconds: number;
87
+ /** The wallet contract spec, used to encode `SignerKey` arguments. */
88
+ spec: ContractSpec;
89
+ }
90
+ /**
91
+ * Build `wallet.update_contract_code(target)` for a legacy wallet.
92
+ *
93
+ * The transaction's single auth entry is the wallet's own, to be signed by an
94
+ * existing signer through {@link signLegacyUpgradeTx}. The envelope source is
95
+ * the SDK's placeholder account, so submit through `PasskeyServer.send` (a
96
+ * relayer supplies the source and fees) or rebuild with your own funded source.
97
+ */
98
+ export declare function buildLegacyUpgradeTx(deps: LegacyTxDeps, contractId: string, target?: string): Promise<AssembledTransaction<null>>;
99
+ /**
100
+ * Build `wallet.migrate_signers(keys)` for a wallet already on the legacy-line
101
+ * target. The call needs no wallet authorization (it is a value-preserving
102
+ * re-encoding), so any funded source can submit it. Returns the number of
103
+ * entries rewritten when simulated or executed.
104
+ *
105
+ * Soroban has no storage iteration, so the caller supplies the keys: the
106
+ * hosted passkey indexer (`MercuryIndexer.getSigners` /
107
+ * `PasskeyServer.getSigners`) lists every signer a wallet has ever held.
108
+ */
109
+ export declare function buildLegacyMigrateTx(deps: LegacyTxDeps, contractId: string, signerKeys: readonly SignerKey[]): Promise<AssembledTransaction<number>>;
110
+ /**
111
+ * Sign a legacy wallet's `update_contract_code` auth entry with one of its
112
+ * existing signers, without a connected wallet.
113
+ *
114
+ * Passkey and Ed25519 signature entries encode identically on every pre-1.0
115
+ * build, and the signature covers the V2 address-bound payload the host
116
+ * presents to any custom account, so the kit's normal signers work here. The
117
+ * entry root is pinned to the transaction's own host function, as for every
118
+ * wallet-admin write.
119
+ */
120
+ export declare function signLegacyUpgradeTx<T>(deps: SignAuthEntryDeps & {
121
+ contractId: string;
122
+ }, tx: AssembledTransaction<T>, signer: Signer, options?: Omit<SignOptions, "allowWalletReentry">): Promise<AssembledTransaction<T>>;
123
+ //# sourceMappingURL=legacy-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-ops.d.ts","sourceRoot":"","sources":["../../src/kit/legacy-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Legacy (pre-1.0) wallet upgrade helpers.
3
+ *
4
+ * The kit cannot connect to a pre-1.0 wallet (`connectWallet` throws
5
+ * {@link LegacyWalletError}), but it can still craft the one transaction such
6
+ * a wallet needs: an in-place `update_contract_code` to the legacy-line build
7
+ * that reads both pre-1.0 storage layouts, followed for the bare-layout cohort
8
+ * by a `migrate_signers` call. This module builds those transactions from the
9
+ * wallet's actual on-chain state, so an application only has to sign and
10
+ * submit. See docs/legacy-wallet-upgrade.md for the full procedure.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import { Address, xdr } from "@stellar/stellar-sdk";
15
+ import { AssembledTransaction } from "@stellar/stellar-sdk/contract";
16
+ import { KNOWN_VULNERABLE_WALLET_WASM_HASHES, LEGACY_UPGRADE_TARGET_WASM_HASH, LEGACY_WALLET_UPGRADE_GUIDE_URL, LEGACY_WALLET_WASM_HASHES, } from "../constants.js";
17
+ import { PasskeyKitErrorCode, SigningError, ValidationError } from "../errors.js";
18
+ import { signerKeyToScVal } from "./auth-payload.js";
19
+ import { assertAdminRootMatchesHostFunction, signAuthEntry, } from "./tx-ops.js";
20
+ import { toContractSignerKey } from "./wallet-ops.js";
21
+ /**
22
+ * Pre-1.0 wallets that store signers in the pre-`6a27d48` (2024-12-13)
23
+ * layout. Every later build fails to decode them, which is why only the
24
+ * legacy-line target is a safe upgrade for them and why `migrate_signers`
25
+ * exists.
26
+ */
27
+ export const BARE_LAYOUT_WALLET_WASM_HASHES = [
28
+ "0c0a264d4cc0b3e79b8533e2a2e1f0ed21501a5a3f9f2455d2f18c232940b865",
29
+ "19868df3653d427cafa1c30bdb6cec1ca5c8c815eeabab8a8bae6d83efb1fedd",
30
+ ];
31
+ /** Classify a code hash without touching the network. */
32
+ export function classifyWasmHash(wasmHash, acceptedWasmHashes) {
33
+ const hash = wasmHash.toLowerCase();
34
+ if (acceptedWasmHashes.includes(hash)) {
35
+ return { status: "current", cohort: null };
36
+ }
37
+ if (KNOWN_VULNERABLE_WALLET_WASM_HASHES.includes(hash)) {
38
+ return {
39
+ status: "vulnerable",
40
+ cohort: BARE_LAYOUT_WALLET_WASM_HASHES.includes(hash) ? "bare" : "wrapped",
41
+ };
42
+ }
43
+ if (LEGACY_WALLET_WASM_HASHES.includes(hash)) {
44
+ return { status: "legacy", cohort: "wrapped" };
45
+ }
46
+ return { status: "unknown", cohort: null };
47
+ }
48
+ function instanceLedgerKey(contractId) {
49
+ return xdr.LedgerKey.contractData(new xdr.LedgerKeyContractData({
50
+ contract: Address.fromString(contractId).toScAddress(),
51
+ key: xdr.ScVal.scvLedgerKeyContractInstance(),
52
+ durability: xdr.ContractDataDurability.persistent(),
53
+ }));
54
+ }
55
+ function codeLedgerKey(wasmHash) {
56
+ return xdr.LedgerKey.contractCode(new xdr.LedgerKeyContractCode({ hash: Buffer.from(wasmHash, "hex") }));
57
+ }
58
+ /**
59
+ * Read a wallet's code hash and the liveness of the entries an upgrade
60
+ * touches, and say what to do.
61
+ */
62
+ export async function inspectLegacyWallet(deps, contractId) {
63
+ const wasmHash = (await deps.contractWasmHash(contractId)).toLowerCase();
64
+ const { status, cohort } = classifyWasmHash(wasmHash, deps.acceptedWasmHashes);
65
+ const upgradeTarget = LEGACY_UPGRADE_TARGET_WASM_HASH;
66
+ const keys = [instanceLedgerKey(contractId), codeLedgerKey(wasmHash), codeLedgerKey(upgradeTarget)];
67
+ const response = await deps.rpc.getLedgerEntries(...keys);
68
+ const latest = response.latestLedger;
69
+ const liveByKey = new Map();
70
+ for (const entry of response.entries) {
71
+ const liveUntil = entry.liveUntilLedgerSeq;
72
+ liveByKey.set(entry.key.toXDR("base64"), liveUntil !== undefined && liveUntil > latest);
73
+ }
74
+ const isLive = (key) => liveByKey.get(key.toXDR("base64")) === true;
75
+ const archived = {
76
+ instance: !isLive(keys[0]),
77
+ code: !isLive(keys[1]),
78
+ target: !isLive(keys[2]),
79
+ };
80
+ const upgradeRequired = status === "vulnerable";
81
+ const migrateRequired = cohort === "bare";
82
+ let recommendation;
83
+ switch (status) {
84
+ case "vulnerable":
85
+ recommendation =
86
+ `This wallet runs known-vulnerable code ${wasmHash.slice(0, 8)}…; anyone can overwrite ` +
87
+ `its signers. Upgrade it in place now: ` +
88
+ (archived.instance || archived.code || archived.target
89
+ ? `restore the archived entries (${[
90
+ archived.instance && "instance",
91
+ archived.code && "current code",
92
+ archived.target && "target code",
93
+ ]
94
+ .filter(Boolean)
95
+ .join(", ")}), then `
96
+ : "") +
97
+ `call update_contract_code(${upgradeTarget.slice(0, 8)}…) authorized by an existing signer` +
98
+ (migrateRequired
99
+ ? `, then call migrate_signers with every signer key (this wallet stores the pre-6a27d48 layout)`
100
+ : "") +
101
+ `. Or move its funds out. Guide: ${LEGACY_WALLET_UPGRADE_GUIDE_URL}`;
102
+ break;
103
+ case "legacy":
104
+ recommendation =
105
+ `This wallet runs patched pre-1.0 code ${wasmHash.slice(0, 8)}…. It is not vulnerable; ` +
106
+ `operate it with the passkey-kit 0.10.20–0.12.x line. Guide: ${LEGACY_WALLET_UPGRADE_GUIDE_URL}`;
107
+ break;
108
+ case "current":
109
+ recommendation = "This wallet runs accepted current code. No upgrade is needed.";
110
+ break;
111
+ default:
112
+ recommendation =
113
+ `This wallet runs code ${wasmHash.slice(0, 8)}… that this kit does not recognize. ` +
114
+ `Verify its provenance before acting.`;
115
+ }
116
+ return {
117
+ contractId,
118
+ wasmHash,
119
+ status,
120
+ cohort,
121
+ upgradeTarget,
122
+ upgradeRequired,
123
+ migrateRequired,
124
+ archived,
125
+ guideUrl: LEGACY_WALLET_UPGRADE_GUIDE_URL,
126
+ recommendation,
127
+ };
128
+ }
129
+ /**
130
+ * Build `wallet.update_contract_code(target)` for a legacy wallet.
131
+ *
132
+ * The transaction's single auth entry is the wallet's own, to be signed by an
133
+ * existing signer through {@link signLegacyUpgradeTx}. The envelope source is
134
+ * the SDK's placeholder account, so submit through `PasskeyServer.send` (a
135
+ * relayer supplies the source and fees) or rebuild with your own funded source.
136
+ */
137
+ export function buildLegacyUpgradeTx(deps, contractId, target = LEGACY_UPGRADE_TARGET_WASM_HASH) {
138
+ if (!/^[0-9a-f]{64}$/i.test(target)) {
139
+ throw new ValidationError("upgrade target must be a 32-byte hex WASM hash", PasskeyKitErrorCode.INVALID_INPUT, { target });
140
+ }
141
+ return AssembledTransaction.build({
142
+ method: "update_contract_code",
143
+ args: [xdr.ScVal.scvBytes(Buffer.from(target, "hex"))],
144
+ contractId,
145
+ rpcUrl: deps.rpcUrl,
146
+ networkPassphrase: deps.networkPassphrase,
147
+ timeoutInSeconds: deps.timeoutInSeconds,
148
+ parseResultXdr: () => null,
149
+ });
150
+ }
151
+ /**
152
+ * Build `wallet.migrate_signers(keys)` for a wallet already on the legacy-line
153
+ * target. The call needs no wallet authorization (it is a value-preserving
154
+ * re-encoding), so any funded source can submit it. Returns the number of
155
+ * entries rewritten when simulated or executed.
156
+ *
157
+ * Soroban has no storage iteration, so the caller supplies the keys: the
158
+ * hosted passkey indexer (`MercuryIndexer.getSigners` /
159
+ * `PasskeyServer.getSigners`) lists every signer a wallet has ever held.
160
+ */
161
+ export function buildLegacyMigrateTx(deps, contractId, signerKeys) {
162
+ if (signerKeys.length === 0) {
163
+ throw new ValidationError("migrate_signers needs at least one signer key", PasskeyKitErrorCode.INVALID_INPUT, { contractId });
164
+ }
165
+ const keys = signerKeys.map((key) => signerKeyToScVal(deps.spec, toContractSignerKey(key)));
166
+ return AssembledTransaction.build({
167
+ method: "migrate_signers",
168
+ args: [xdr.ScVal.scvVec(keys)],
169
+ contractId,
170
+ rpcUrl: deps.rpcUrl,
171
+ networkPassphrase: deps.networkPassphrase,
172
+ timeoutInSeconds: deps.timeoutInSeconds,
173
+ parseResultXdr: (value) => value.u32(),
174
+ });
175
+ }
176
+ /**
177
+ * Sign a legacy wallet's `update_contract_code` auth entry with one of its
178
+ * existing signers, without a connected wallet.
179
+ *
180
+ * Passkey and Ed25519 signature entries encode identically on every pre-1.0
181
+ * build, and the signature covers the V2 address-bound payload the host
182
+ * presents to any custom account, so the kit's normal signers work here. The
183
+ * entry root is pinned to the transaction's own host function, as for every
184
+ * wallet-admin write.
185
+ */
186
+ export async function signLegacyUpgradeTx(deps, tx, signer, options) {
187
+ const built = tx.built;
188
+ const topOp = built?.operations[0];
189
+ const topFunc = topOp?.type === "invokeHostFunction"
190
+ ? topOp.func
191
+ : undefined;
192
+ if (!topFunc) {
193
+ throw new ValidationError("the transaction has no invoke-host-function operation to sign", PasskeyKitErrorCode.INVALID_INPUT, { contractId: deps.contractId });
194
+ }
195
+ // Resolve the expiration once here (the kit's own ledger-based default) so
196
+ // the SDK does not fetch it, and pass the same value to every entry.
197
+ const expiration = options?.expiration ?? (await deps.calculateExpiration());
198
+ await tx.signAuthEntries({
199
+ address: deps.contractId,
200
+ expiration,
201
+ authorizeEntry: async (entry) => {
202
+ const clone = xdr.SorobanAuthorizationEntry.fromXDR(entry.toXDR());
203
+ assertRootIsExactlyThisCall(clone, deps.contractId, topFunc);
204
+ assertAdminRootMatchesHostFunction(clone, deps.contractId, topFunc);
205
+ return signAuthEntry(deps, clone, signer, {
206
+ ...options,
207
+ expiration,
208
+ allowWalletReentry: true,
209
+ });
210
+ },
211
+ });
212
+ return tx;
213
+ }
214
+ /**
215
+ * The legacy upgrade signs exactly one thing: this wallet's own
216
+ * `update_contract_code` (or `migrate_signers`) as the transaction's
217
+ * top-level call, with no sub-invocations. Anything else is refused before
218
+ * hashing, so a hostile transaction cannot borrow this signing path.
219
+ */
220
+ function assertRootIsExactlyThisCall(entry, contractId, topFunc) {
221
+ const root = entry.rootInvocation();
222
+ const fn = root.function();
223
+ const expected = topFunc.switch().name === "hostFunctionTypeInvokeContract"
224
+ ? topFunc.invokeContract()
225
+ : undefined;
226
+ const actual = fn.switch().name === "sorobanAuthorizedFunctionTypeContractFn" ? fn.contractFn() : undefined;
227
+ const ok = expected !== undefined &&
228
+ actual !== undefined &&
229
+ root.subInvocations().length === 0 &&
230
+ Address.fromScAddress(actual.contractAddress()).toString() === contractId &&
231
+ actual.toXDR("base64") === expected.toXDR("base64");
232
+ if (!ok) {
233
+ throw new SigningError(`Refusing to sign: the auth entry must root at ${contractId}'s own top-level ` +
234
+ `update_contract_code / migrate_signers call with no sub-invocations`, PasskeyKitErrorCode.SIGNING_FAILED, { contractId });
235
+ }
236
+ }
237
+ //# sourceMappingURL=legacy-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-ops.js","sourceRoot":"","sources":["../../src/kit/legacy-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAA6B,MAAM,+BAA+B,CAAC;AAIhG,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,kCAAkC,EAClC,aAAa,GAGd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAsB;IAC/D,kEAAkE;IAClE,kEAAkE;CACnE,CAAC;AAuCF,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,kBAAqC;IAErC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,mCAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,8BAA8B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC3E,CAAC;IACJ,CAAC;IACD,IAAI,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,GAAG,CAAC,qBAAqB,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QACtD,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE;QAC7C,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,UAAU,EAAE;KACpD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CACtE,CAAC;AACJ,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAiB,EACjB,UAAkB;IAElB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,+BAA+B,CAAC;IAEtD,MAAM,IAAI,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IACpG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC;IACnF,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;KAC1B,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,KAAK,YAAY,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,KAAK,MAAM,CAAC;IAE1C,IAAI,cAAsB,CAAC;IAC3B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,cAAc;gBACZ,0CAA0C,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0BAA0B;oBACxF,wCAAwC;oBACxC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM;wBACpD,CAAC,CAAC,iCAAiC;4BAC/B,QAAQ,CAAC,QAAQ,IAAI,UAAU;4BAC/B,QAAQ,CAAC,IAAI,IAAI,cAAc;4BAC/B,QAAQ,CAAC,MAAM,IAAI,aAAa;yBACjC;6BACE,MAAM,CAAC,OAAO,CAAC;6BACf,IAAI,CAAC,IAAI,CAAC,UAAU;wBACzB,CAAC,CAAC,EAAE,CAAC;oBACP,6BAA6B,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,qCAAqC;oBAC3F,CAAC,eAAe;wBACd,CAAC,CAAC,+FAA+F;wBACjG,CAAC,CAAC,EAAE,CAAC;oBACP,mCAAmC,+BAA+B,EAAE,CAAC;YACvE,MAAM;QACR,KAAK,QAAQ;YACX,cAAc;gBACZ,yCAAyC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,2BAA2B;oBACxF,+DAA+D,+BAA+B,EAAE,CAAC;YACnG,MAAM;QACR,KAAK,SAAS;YACZ,cAAc,GAAG,+DAA+D,CAAC;YACjF,MAAM;QACR;YACE,cAAc;gBACZ,yBAAyB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sCAAsC;oBACnF,sCAAsC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,UAAU;QACV,QAAQ;QACR,MAAM;QACN,MAAM;QACN,aAAa;QACb,eAAe;QACf,eAAe;QACf,QAAQ;QACR,QAAQ,EAAE,+BAA+B;QACzC,cAAc;KACf,CAAC;AACJ,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,UAAkB,EAClB,SAAiB,+BAA+B;IAEhD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CACvB,gDAAgD,EAChD,mBAAmB,CAAC,aAAa,EACjC,EAAE,MAAM,EAAE,CACX,CAAC;IACJ,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,CAAO;QACtC,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,UAAU;QACV,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,UAAkB,EAClB,UAAgC;IAEhC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,+CAA+C,EAC/C,mBAAmB,CAAC,aAAa,EACjC,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAClC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CACtD,CAAC;IACF,OAAO,oBAAoB,CAAC,KAAK,CAAS;QACxC,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,UAAU;QACV,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAgD,EAChD,EAA2B,EAC3B,MAAc,EACd,OAAiD;IAEjD,MAAM,KAAK,GAAI,EAAmD,CAAC,KAAK,CAAC;IACzE,MAAM,KAAK,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GACX,KAAK,EAAE,IAAI,KAAK,oBAAoB;QAClC,CAAC,CAAE,KAAsC,CAAC,IAAI;QAC9C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CACvB,+DAA+D,EAC/D,mBAAmB,CAAC,aAAa,EACjC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAChC,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE7E,MAAM,EAAE,CAAC,eAAe,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,UAAU;QACV,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACnE,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7D,kCAAkC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBACxC,GAAG,OAAO;gBACV,UAAU;gBACV,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,KAAoC,EACpC,UAAkB,EAClB,OAAyB;IAEzB,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,gCAAgC;QACzE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE;QAC1B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GACV,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,EAAE,GACN,QAAQ,KAAK,SAAS;QACtB,MAAM,KAAK,SAAS;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC;QAClC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,UAAU;QACzE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,YAAY,CACpB,iDAAiD,UAAU,mBAAmB;YAC5E,qEAAqE,EACvE,mBAAmB,CAAC,cAAc,EAClC,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/kit.d.ts CHANGED
@@ -22,6 +22,7 @@ import { type Signer } from "./signers.js";
22
22
  import type { WebAuthnClient } from "./kit/webauthn-ops.js";
23
23
  import type { CreatedPasskey } from "./kit/webauthn-ops.js";
24
24
  import type { SignOptions } from "./kit/tx-ops.js";
25
+ import { type LegacyWalletInspection } from "./kit/legacy-ops.js";
25
26
  import { type PolicySignerTxOptions, type WalletTx } from "./kit/wallet-ops.js";
26
27
  import type { WalletCandidateLookup } from "./indexer/types.js";
27
28
  import { type VerifiedWalletBirth } from "./kit/birth-verification.js";
@@ -97,6 +98,8 @@ export declare class PasskeyKit {
97
98
  readonly acceptedWasmHashes: readonly string[];
98
99
  /** Accepted immutable birth code identities, lowercase hex. Never empty. */
99
100
  readonly acceptedBirthWasmHashes: readonly string[];
101
+ /** Funded key used only for footprint restores, when configured. */
102
+ private readonly restoreKeypair?;
100
103
  /** Full-history source for immutable wallet-birth verification. */
101
104
  readonly history?: Horizon.Server;
102
105
  readonly rpId?: string;
@@ -143,6 +146,13 @@ export declare class PasskeyKit {
143
146
  * @throws {WalletOwnershipError} If the keyId is not a signer on the wallet.
144
147
  */
145
148
  connectWallet(options?: ConnectOptions): Promise<ConnectWalletResult>;
149
+ /**
150
+ * Reject a wallet whose current code is a pre-1.0 build, with guidance.
151
+ * Known-vulnerable builds get the upgrade instructions; patched legacy
152
+ * builds get the "use the 0.10.20–0.12.x kit" instruction. Accepted hashes
153
+ * are never legacy, so an integrator cannot opt into a vulnerable build.
154
+ */
155
+ private assertNotLegacyWallet;
146
156
  private assertWalletWasmHash;
147
157
  private contractWasmHash;
148
158
  /** Create the address-bound proof required for a Secp256r1 signer write. */
@@ -154,6 +164,47 @@ export declare class PasskeyKit {
154
164
  private assertWebAuthnVerificationConfig;
155
165
  /** Disconnect the current wallet. */
156
166
  disconnect(): void;
167
+ /**
168
+ * Inspect a wallet this kit cannot connect to and say what it needs:
169
+ * its code status (vulnerable / legacy / current / unknown), its storage
170
+ * cohort, which ledger entries are archived, and a plain recommendation.
171
+ * Read-only.
172
+ */
173
+ inspectLegacyWallet(contractId: string): Promise<LegacyWalletInspection>;
174
+ private legacyTxDeps;
175
+ /**
176
+ * Restore archived entries a simulated transaction needs, using the
177
+ * configured `restoreSource`, and rebuild. Throws with guidance when no
178
+ * restore source is configured.
179
+ */
180
+ private withRestore;
181
+ /**
182
+ * Build the in-place upgrade for a pre-1.0 wallet:
183
+ * `update_contract_code(<legacy-line target>)`, authorized by the wallet.
184
+ * Refuses wallets that are not on a known pre-1.0 build. Restores archived
185
+ * entries first when `restoreSource` is configured.
186
+ *
187
+ * Sign it with {@link signLegacyUpgradeTx} and submit through
188
+ * `PasskeyServer.send` (or your own funded source).
189
+ */
190
+ buildLegacyUpgradeTx(contractId: string): Promise<{
191
+ inspection: LegacyWalletInspection;
192
+ tx: AssembledTransaction<null>;
193
+ }>;
194
+ /**
195
+ * Build `migrate_signers(keys)` for a wallet already upgraded to the
196
+ * legacy-line target. Needs no wallet authorization; any funded source can
197
+ * submit it. Get the keys from `PasskeyServer.getSigners` /
198
+ * `MercuryIndexer.getSigners`.
199
+ */
200
+ buildLegacyMigrateTx(contractId: string, signerKeys: readonly SignerKey[]): Promise<AssembledTransaction<number>>;
201
+ /**
202
+ * Sign a legacy wallet's upgrade transaction with one of its existing
203
+ * signers, without connecting. Defaults to a discoverable passkey prompt;
204
+ * pass `new PasskeySigner(keyId)` to require a specific credential, or an
205
+ * `Ed25519Signer`.
206
+ */
207
+ signLegacyUpgradeTx<T>(tx: AssembledTransaction<T>, contractId: string, signer?: Signer, options?: Omit<SignOptions, "allowWalletReentry">): Promise<AssembledTransaction<T>>;
157
208
  /** Sign a single auth entry (defaults to the connected passkey signer). */
158
209
  signAuthEntry(entry: xdr.SorobanAuthorizationEntry, signer?: Signer, options?: SignOptions): Promise<xdr.SorobanAuthorizationEntry>;
159
210
  /** Sign an assembled transaction's wallet auth entries. */
package/dist/kit.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
package/dist/kit.js CHANGED
@@ -17,14 +17,16 @@ import { startAuthentication, startRegistration, } from "@simplewebauthn/browser
17
17
  import { Client as PasskeyClient, } from "passkey-kit-sdk";
18
18
  import base64url from "./base64url.js";
19
19
  import { SignerKey, SignerStore, } from "./types.js";
20
- import { ConfigurationError, PasskeyKitError, PasskeyKitErrorCode, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, } from "./errors.js";
20
+ import { ConfigurationError, PasskeyKitError, ValidationError, PasskeyKitErrorCode, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, LegacyWalletError, } from "./errors.js";
21
21
  import { PasskeyEventEmitter } from "./events.js";
22
22
  import { isDefaultDeployer } from "./utils.js";
23
- import { DEFAULT_TIMEOUT_SECONDS } from "./constants.js";
23
+ import { DEFAULT_TIMEOUT_SECONDS, KNOWN_VULNERABLE_WALLET_WASM_HASHES, LEGACY_UPGRADE_TARGET_WASM_HASH, LEGACY_WALLET_UPGRADE_GUIDE_URL, LEGACY_WALLET_WASM_HASHES, } from "./constants.js";
24
24
  import { PasskeySigner } from "./signers.js";
25
25
  import { calculateExpiration } from "./kit/tx-ops.js";
26
26
  import { CredentialManager, SignerManager, SubmissionManager, } from "./managers/index.js";
27
27
  import { resolveDeployer } from "./kit/deploy-ops.js";
28
+ import { buildLegacyMigrateTx, buildLegacyUpgradeTx, inspectLegacyWallet, signLegacyUpgradeTx, } from "./kit/legacy-ops.js";
29
+ import { restoreFootprint } from "./kit/tx-ops.js";
28
30
  import { buildSecp256r1Signer, } from "./kit/wallet-ops.js";
29
31
  import { verifyWalletBirth, } from "./kit/birth-verification.js";
30
32
  import { bindingChallenge, verifyBindingRecord, verifyFreshAssertion, verifyStoredProof, } from "./kit/webauthn-verify.js";
@@ -44,6 +46,8 @@ export class PasskeyKit {
44
46
  acceptedWasmHashes;
45
47
  /** Accepted immutable birth code identities, lowercase hex. Never empty. */
46
48
  acceptedBirthWasmHashes;
49
+ /** Funded key used only for footprint restores, when configured. */
50
+ restoreKeypair;
47
51
  /** Full-history source for immutable wallet-birth verification. */
48
52
  history;
49
53
  rpId;
@@ -70,6 +74,18 @@ export class PasskeyKit {
70
74
  if (!config.walletWasmHash) {
71
75
  throw new ConfigurationError("walletWasmHash is required", PasskeyKitErrorCode.MISSING_CONFIG);
72
76
  }
77
+ for (const configured of [
78
+ config.walletWasmHash,
79
+ ...(config.acceptedWasmHashes ?? []),
80
+ ...(config.acceptedBirthWasmHashes ?? []),
81
+ ]) {
82
+ if (KNOWN_VULNERABLE_WALLET_WASM_HASHES.includes(configured.toLowerCase())) {
83
+ throw new ConfigurationError(`walletWasmHash ${configured.slice(0, 8)}… is a known-vulnerable legacy build ` +
84
+ `(update_signer has no authorization check). Do not deploy from it or accept it. ` +
85
+ `Existing wallets on it must upgrade to ${LEGACY_UPGRADE_TARGET_WASM_HASH}; ` +
86
+ `see ${LEGACY_WALLET_UPGRADE_GUIDE_URL}`, PasskeyKitErrorCode.INVALID_CONFIG, { wasmHash: configured.toLowerCase() });
87
+ }
88
+ }
73
89
  this.rpc = new Server(config.rpcUrl);
74
90
  this.rpcUrl = config.rpcUrl;
75
91
  this.networkPassphrase = config.networkPassphrase;
@@ -130,6 +146,7 @@ export class PasskeyKit {
130
146
  getSignerContext: () => this.signerContext(),
131
147
  calculateExpiration: () => calculateExpiration({ rpc: this.rpc, timeoutInSeconds: this.timeoutInSeconds }),
132
148
  });
149
+ this.restoreKeypair = restoreKeypair;
133
150
  this.submissionManager = new SubmissionManager({
134
151
  rpc: this.rpc,
135
152
  rpcUrl: config.rpcUrl,
@@ -299,6 +316,9 @@ export class PasskeyKit {
299
316
  // The last definitive rejection, rethrown verbatim when nothing verifies so
300
317
  // its context (e.g. the rejected wasm hash) is not replaced by a summary.
301
318
  let lastMismatch;
319
+ // A candidate on pre-1.0 code is a definitive answer with its own guidance.
320
+ // It is reported in preference to any generic mismatch when nothing verifies.
321
+ let legacyMismatch;
302
322
  for (const candidate of candidates) {
303
323
  const wallet = new PasskeyClient({
304
324
  contractId: candidate.contractId,
@@ -308,6 +328,10 @@ export class PasskeyKit {
308
328
  this.wallet = wallet;
309
329
  this.keyId = keyIdBase64;
310
330
  try {
331
+ // Before birth verification: a legacy wallet fails that check for
332
+ // reasons that would hide the real problem (no constructor birth, an
333
+ // unaccepted hash). Name the legacy code and the upgrade path instead.
334
+ await this.assertNotLegacyWallet(candidate.contractId);
311
335
  const birth = await verifyWalletBirth({
312
336
  rpc: this.rpc,
313
337
  history: this.history,
@@ -358,6 +382,10 @@ export class PasskeyKit {
358
382
  catch (err) {
359
383
  this.wallet = undefined;
360
384
  this.keyId = undefined;
385
+ if (err instanceof LegacyWalletError) {
386
+ legacyMismatch = err;
387
+ continue;
388
+ }
361
389
  if (err instanceof WalletOwnershipError) {
362
390
  lastMismatch = err;
363
391
  continue;
@@ -368,7 +396,8 @@ export class PasskeyKit {
368
396
  this.wallet = undefined;
369
397
  this.keyId = undefined;
370
398
  if (verified.size === 0) {
371
- throw (lastMismatch ??
399
+ throw (legacyMismatch ??
400
+ lastMismatch ??
372
401
  new WalletOwnershipError("The passkey is not a signer on any resolved wallet", {
373
402
  candidates: candidates.map(({ contractId }) => contractId),
374
403
  keyId: keyIdBase64,
@@ -392,6 +421,26 @@ export class PasskeyKit {
392
421
  this.events.emit("walletConnected", { contractId, keyId: keyIdBase64 });
393
422
  return { rawResponse, keyId: keyIdBuffer, keyIdBase64, contractId };
394
423
  }
424
+ /**
425
+ * Reject a wallet whose current code is a pre-1.0 build, with guidance.
426
+ * Known-vulnerable builds get the upgrade instructions; patched legacy
427
+ * builds get the "use the 0.10.20–0.12.x kit" instruction. Accepted hashes
428
+ * are never legacy, so an integrator cannot opt into a vulnerable build.
429
+ */
430
+ async assertNotLegacyWallet(contractId) {
431
+ const wasmHash = await this.contractWasmHash(contractId);
432
+ const vulnerable = KNOWN_VULNERABLE_WALLET_WASM_HASHES.includes(wasmHash);
433
+ if (!vulnerable && !LEGACY_WALLET_WASM_HASHES.includes(wasmHash)) {
434
+ return;
435
+ }
436
+ throw new LegacyWalletError({
437
+ contractId,
438
+ wasmHash,
439
+ vulnerable,
440
+ upgradeTarget: LEGACY_UPGRADE_TARGET_WASM_HASH,
441
+ guideUrl: LEGACY_WALLET_UPGRADE_GUIDE_URL,
442
+ });
443
+ }
395
444
  async assertWalletWasmHash(contractId) {
396
445
  const wasmHash = await this.contractWasmHash(contractId);
397
446
  if (!this.acceptedWasmHashes.includes(wasmHash)) {
@@ -512,6 +561,98 @@ export class PasskeyKit {
512
561
  this.events.emit("walletDisconnected", { contractId });
513
562
  }
514
563
  }
564
+ // -- Legacy (pre-1.0) wallet upgrade ------------------------------------------
565
+ /**
566
+ * Inspect a wallet this kit cannot connect to and say what it needs:
567
+ * its code status (vulnerable / legacy / current / unknown), its storage
568
+ * cohort, which ledger entries are archived, and a plain recommendation.
569
+ * Read-only.
570
+ */
571
+ inspectLegacyWallet(contractId) {
572
+ return inspectLegacyWallet({
573
+ rpc: this.rpc,
574
+ acceptedWasmHashes: this.acceptedWasmHashes,
575
+ contractWasmHash: (id) => this.contractWasmHash(id),
576
+ }, contractId);
577
+ }
578
+ legacyTxDeps(contractId) {
579
+ return {
580
+ rpcUrl: this.rpcUrl,
581
+ networkPassphrase: this.networkPassphrase,
582
+ timeoutInSeconds: this.timeoutInSeconds,
583
+ spec: new PasskeyClient({
584
+ contractId,
585
+ rpcUrl: this.rpcUrl,
586
+ networkPassphrase: this.networkPassphrase,
587
+ }).spec,
588
+ };
589
+ }
590
+ /**
591
+ * Restore archived entries a simulated transaction needs, using the
592
+ * configured `restoreSource`, and rebuild. Throws with guidance when no
593
+ * restore source is configured.
594
+ */
595
+ async withRestore(build, contractId) {
596
+ let tx = await build();
597
+ const simulation = tx.simulation;
598
+ if (simulation && Api.isSimulationRestore(simulation)) {
599
+ if (!this.restoreKeypair) {
600
+ throw new PasskeyKitError(`Wallet ${contractId} has archived ledger entries that must be restored before this ` +
601
+ `call can run. Configure \`restoreSource\` (a funded key) on the kit, or submit a ` +
602
+ `RestoreFootprint operation yourself, then retry.`, PasskeyKitErrorCode.RESTORE_REQUIRED, { context: { contractId } });
603
+ }
604
+ await restoreFootprint({
605
+ rpc: this.rpc,
606
+ networkPassphrase: this.networkPassphrase,
607
+ sourceKeypair: this.restoreKeypair,
608
+ timeoutInSeconds: this.timeoutInSeconds,
609
+ }, simulation.restorePreamble);
610
+ tx = await build();
611
+ }
612
+ return tx;
613
+ }
614
+ /**
615
+ * Build the in-place upgrade for a pre-1.0 wallet:
616
+ * `update_contract_code(<legacy-line target>)`, authorized by the wallet.
617
+ * Refuses wallets that are not on a known pre-1.0 build. Restores archived
618
+ * entries first when `restoreSource` is configured.
619
+ *
620
+ * Sign it with {@link signLegacyUpgradeTx} and submit through
621
+ * `PasskeyServer.send` (or your own funded source).
622
+ */
623
+ async buildLegacyUpgradeTx(contractId) {
624
+ const inspection = await this.inspectLegacyWallet(contractId);
625
+ if (inspection.status !== "vulnerable" && inspection.status !== "legacy") {
626
+ throw new ValidationError(`Wallet ${contractId} is not on a known pre-1.0 build (${inspection.status}); ` +
627
+ `there is no legacy upgrade to build. ${inspection.recommendation}`, PasskeyKitErrorCode.INVALID_INPUT, { contractId, wasmHash: inspection.wasmHash, status: inspection.status });
628
+ }
629
+ const tx = await this.withRestore(() => buildLegacyUpgradeTx(this.legacyTxDeps(contractId), contractId, inspection.upgradeTarget), contractId);
630
+ return { inspection, tx };
631
+ }
632
+ /**
633
+ * Build `migrate_signers(keys)` for a wallet already upgraded to the
634
+ * legacy-line target. Needs no wallet authorization; any funded source can
635
+ * submit it. Get the keys from `PasskeyServer.getSigners` /
636
+ * `MercuryIndexer.getSigners`.
637
+ */
638
+ buildLegacyMigrateTx(contractId, signerKeys) {
639
+ return this.withRestore(() => buildLegacyMigrateTx(this.legacyTxDeps(contractId), contractId, signerKeys), contractId);
640
+ }
641
+ /**
642
+ * Sign a legacy wallet's upgrade transaction with one of its existing
643
+ * signers, without connecting. Defaults to a discoverable passkey prompt;
644
+ * pass `new PasskeySigner(keyId)` to require a specific credential, or an
645
+ * `Ed25519Signer`.
646
+ */
647
+ signLegacyUpgradeTx(tx, contractId, signer = new PasskeySigner("any"), options) {
648
+ return signLegacyUpgradeTx({
649
+ networkPassphrase: this.networkPassphrase,
650
+ spec: this.legacyTxDeps(contractId).spec,
651
+ signerContext: this.signerContext(),
652
+ calculateExpiration: () => calculateExpiration({ rpc: this.rpc, timeoutInSeconds: this.timeoutInSeconds }),
653
+ contractId,
654
+ }, tx, signer, options);
655
+ }
515
656
  // -- Signing -----------------------------------------------------------------
516
657
  /** Sign a single auth entry (defaults to the connected passkey signer). */
517
658
  signAuthEntry(entry, signer, options) {
package/dist/kit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -2,6 +2,6 @@
2
2
  * Package version — auto-generated from package.json.
3
3
  * @packageDocumentation
4
4
  */
5
- export declare const VERSION = "0.18.3";
5
+ export declare const VERSION = "0.19.0";
6
6
  export declare const NAME = "passkey-kit";
7
7
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -4,6 +4,6 @@
4
4
  */
5
5
  // This file is auto-generated. Do not edit manually.
6
6
  // Run `pnpm run sync-version` (or `pnpm build`) to update.
7
- export const VERSION = "0.18.3";
7
+ export const VERSION = "0.19.0";
8
8
  export const NAME = "passkey-kit";
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passkey-kit",
3
- "version": "0.18.3",
3
+ "version": "0.19.0",
4
4
  "description": "A helper library for creating and using smart wallet accounts on the Stellar blockchain.",
5
5
  "author": "Tyler van der Hoeven <tyler@stellar.org>",
6
6
  "license": "MIT",