passkey-kit 0.13.1 → 0.15.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 +29 -20
- package/dist/constants.d.ts +20 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +20 -5
- package/dist/constants.js.map +1 -1
- package/dist/contract-errors.d.ts.map +1 -1
- package/dist/contract-errors.js +3 -0
- package/dist/contract-errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/mercury.d.ts +6 -0
- package/dist/indexer/mercury.d.ts.map +1 -1
- package/dist/indexer/mercury.js +10 -2
- package/dist/indexer/mercury.js.map +1 -1
- package/dist/kit/auth-payload.d.ts +17 -0
- package/dist/kit/auth-payload.d.ts.map +1 -1
- package/dist/kit/auth-payload.js +24 -0
- package/dist/kit/auth-payload.js.map +1 -1
- package/dist/kit/deploy-ops.d.ts +9 -7
- package/dist/kit/deploy-ops.d.ts.map +1 -1
- package/dist/kit/deploy-ops.js +11 -8
- package/dist/kit/deploy-ops.js.map +1 -1
- package/dist/kit/tx-ops.d.ts +7 -4
- package/dist/kit/tx-ops.d.ts.map +1 -1
- package/dist/kit/tx-ops.js +27 -6
- package/dist/kit/tx-ops.js.map +1 -1
- package/dist/kit.d.ts +16 -8
- package/dist/kit.d.ts.map +1 -1
- package/dist/kit.js +85 -22
- package/dist/kit.js.map +1 -1
- package/dist/managers/signer-manager.d.ts +13 -2
- package/dist/managers/signer-manager.d.ts.map +1 -1
- package/dist/managers/signer-manager.js +22 -3
- package/dist/managers/signer-manager.js.map +1 -1
- package/dist/managers/submission-manager.d.ts +12 -17
- package/dist/managers/submission-manager.d.ts.map +1 -1
- package/dist/managers/submission-manager.js +77 -19
- package/dist/managers/submission-manager.js.map +1 -1
- package/dist/relayer.d.ts +2 -2
- package/dist/relayer.d.ts.map +1 -1
- package/dist/relayer.js +6 -3
- package/dist/relayer.js.map +1 -1
- package/dist/rpc-data.d.ts +10 -0
- package/dist/rpc-data.d.ts.map +1 -1
- package/dist/rpc-data.js +12 -0
- package/dist/rpc-data.js.map +1 -1
- package/dist/server.d.ts +4 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -5
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.d.ts +36 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +162 -46
- package/dist/utils.js.map +1 -1
- package/dist/validation.d.ts +6 -4
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +8 -6
- package/dist/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -6,10 +6,10 @@ A TypeScript SDK for creating and using **smart-wallet accounts on Stellar with
|
|
|
6
6
|
- **Server (`PasskeyServer`)** — runs server-side: submits transactions through a relayer (fee sponsorship), plus convenience signer-discovery helpers over the keyless Mercury indexer. Holds the relayer secret.
|
|
7
7
|
|
|
8
8
|
> [!IMPORTANT]
|
|
9
|
-
> **Security.**
|
|
9
|
+
> **Security.** Review the contract and SDK yourself before holding meaningful value, and read [Caveats](#caveats).
|
|
10
10
|
|
|
11
11
|
> [!NOTE]
|
|
12
|
-
> **Looking for context rules, thresholds, and spending-limit policies?** [smart-account-kit](https://github.com/
|
|
12
|
+
> **Looking for context rules, thresholds, and spending-limit policies?** [smart-account-kit](https://github.com/stellar/smart-account-kit) is a sibling SDK built on the audited [OpenZeppelin stellar-contracts](https://github.com/OpenZeppelin/stellar-contracts) account. It uses a different on-chain authorization model (context rules + an auth digest) than passkey-kit's flat `Signatures` map, so the two are not drop-in compatible — pick the model that fits your app.
|
|
13
13
|
|
|
14
14
|
## Contents
|
|
15
15
|
|
|
@@ -26,7 +26,7 @@ A TypeScript SDK for creating and using **smart-wallet accounts on Stellar with
|
|
|
26
26
|
- [Storage adapters](#storage-adapters)
|
|
27
27
|
- [Errors](#errors)
|
|
28
28
|
- [Types](#types)
|
|
29
|
-
- [Caveats
|
|
29
|
+
- [Caveats](#caveats)
|
|
30
30
|
- [Contract interface](#contract-interface)
|
|
31
31
|
- [Repository layout & development](#repository-layout--development)
|
|
32
32
|
- [Resources](#resources)
|
|
@@ -71,7 +71,7 @@ const kit = new PasskeyKit({
|
|
|
71
71
|
rpcUrl: "https://soroban-testnet.stellar.org",
|
|
72
72
|
networkPassphrase: "Test SDF Network ; September 2015",
|
|
73
73
|
// Canonical v1 smart-wallet WASM hash (testnet); see docs/deployments-*.md
|
|
74
|
-
walletWasmHash: "
|
|
74
|
+
walletWasmHash: "fdefad64b96837147e1c333e51f537b696eab925e9f147e63d597c04e3c903f0",
|
|
75
75
|
});
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -148,7 +148,7 @@ Browser-side facade for wallet lifecycle and signing. Holds no secrets.
|
|
|
148
148
|
| `networkPassphrase` | `string` | Yes | Network passphrase. |
|
|
149
149
|
| `walletWasmHash` | `string` (hex) | Yes | Smart-wallet WASM hash used to deploy new wallets. |
|
|
150
150
|
| `rpId` | `string` | No | WebAuthn Relying Party id (domain). Defaults to the current origin. |
|
|
151
|
-
| `deploySource` | `string` (`S…`) | No | Secret key for
|
|
151
|
+
| `deploySource` | `string` (`S…`) | No | Secret key for a deployer you control, which then sources and pays for its own deployments. Defaults to the canonical deterministic deployer, which is sign-only and never pays. **Overriding it changes derived wallet addresses** (see [Deterministic derivation](#deterministic-derivation)). |
|
|
152
152
|
| `timeoutInSeconds` | `number` | No | Transaction time bound (default `30`; the relayer requires `<= 30`). |
|
|
153
153
|
| `storage` | `StorageAdapter` | No | Passkey-record persistence (see [Storage adapters](#storage-adapters)). |
|
|
154
154
|
| `WebAuthn` | `WebAuthnClient` | No | Custom `startRegistration`/`startAuthentication` (for testing). |
|
|
@@ -160,7 +160,7 @@ Browser-side facade for wallet lifecycle and signing. Holds no secrets.
|
|
|
160
160
|
| `keyId` | `string \| undefined` | Connected passkey's base64url credential id. |
|
|
161
161
|
| `wallet` | `PasskeyClient \| undefined` | Connected wallet's generated contract client. |
|
|
162
162
|
| `contractId` | `string \| undefined` | Connected wallet address (getter). |
|
|
163
|
-
| `deployerPublicKey` | `string` | The
|
|
163
|
+
| `deployerPublicKey` | `string` | The deployer's `G…` address (getter). Pays only when it is a custom `deploySource`. |
|
|
164
164
|
| `networkPassphrase` / `rpcUrl` / `walletWasmHash` / `rpId` | `string` | The resolved config. |
|
|
165
165
|
| `events` | `PasskeyEventEmitter` | Lifecycle events: `walletCreated`, `walletConnected`, `walletDisconnected`. |
|
|
166
166
|
|
|
@@ -169,8 +169,8 @@ Browser-side facade for wallet lifecycle and signing. Holds no secrets.
|
|
|
169
169
|
| Method | Returns | Description |
|
|
170
170
|
|---|---|---|
|
|
171
171
|
| `createKey(appName, userName, options?)` | `CreatedPasskey` | Run a passkey registration ceremony **without** deploying a wallet. |
|
|
172
|
-
| `createWallet(appName, userName, options?)` | `CreateWalletResult` | Register a passkey and build a
|
|
173
|
-
| `connectWallet(options?)` | `ConnectWalletResult` | Resolve a wallet from a passkey (
|
|
172
|
+
| `createWallet(appName, userName, options?)` | `CreateWalletResult` | Register a passkey and build a deploy carrier (initializes the wallet via `__constructor` with the passkey as the first signer). For the shared deployer the carrier holds a signed authorization entry and no envelope signature. Submit the returned `signedTx` via `PasskeyServer`. |
|
|
173
|
+
| `connectWallet(options?)` | `ConnectWalletResult` | Resolve a wallet from a passkey (local storage → injected indexer lookup → deterministic derivation) and **verify** the passkey is a live signer on it. |
|
|
174
174
|
| `disconnect()` | `void` | Clear the connected wallet/keyId. |
|
|
175
175
|
| `requireWallet()` | `PasskeyClient` | Return the connected wallet or throw `WalletNotConnectedError`. |
|
|
176
176
|
|
|
@@ -181,7 +181,7 @@ Browser-side facade for wallet lifecycle and signing. Holds no secrets.
|
|
|
181
181
|
| Option | Type | Description |
|
|
182
182
|
|---|---|---|
|
|
183
183
|
| `keyId` | `string \| Uint8Array` | Connect a specific credential, skipping the discovery ceremony. |
|
|
184
|
-
| `getContractId` | `(keyId: string) => Promise<string \| undefined>` | Indexer-backed keyId → wallet lookup,
|
|
184
|
+
| `getContractId` | `(keyId: string) => Promise<string \| undefined>` | Indexer-backed keyId → wallet lookup, tried after local storage and before deterministic derivation. |
|
|
185
185
|
| `verifyWasmHash` | `boolean` | Also assert the wallet's on-chain WASM hash equals `walletWasmHash`. Off by default (an upgraded wallet legitimately runs a different hash). |
|
|
186
186
|
|
|
187
187
|
### Signing methods
|
|
@@ -229,7 +229,7 @@ Each method builds an `AssembledTransaction` (`WalletTx`) that wraps one contrac
|
|
|
229
229
|
| Method | Wrapped contract fn | Description |
|
|
230
230
|
|---|---|---|
|
|
231
231
|
| `addSecp256r1(keyId, publicKey, limits, store, expiration?)` | `add_signer` | Add a passkey signer. |
|
|
232
|
-
| `updateSecp256r1(keyId,
|
|
232
|
+
| `updateSecp256r1(keyId, limits, store, expiration?)` | `update_signer` | Update a passkey signer's limits/storage/expiration. The public key is re-read from the ledger, never caller-supplied. |
|
|
233
233
|
| `addEd25519(publicKey, limits, store, expiration?)` | `add_signer` | Add an Ed25519 signer (`publicKey` = `G…`). |
|
|
234
234
|
| `updateEd25519(publicKey, limits, store, expiration?)` | `update_signer` | Update an Ed25519 signer. |
|
|
235
235
|
| `addPolicy(policy, limits, store, expiration?)` | `add_signer` | Add a policy signer (`policy` = `C…`). Invokes the policy's `install` hook. |
|
|
@@ -247,6 +247,16 @@ Parameters:
|
|
|
247
247
|
- `store` — `SignerStore.Persistent` or `SignerStore.Temporary`.
|
|
248
248
|
- `expiration` — optional UNIX-timestamp (seconds) after which the signer is invalid.
|
|
249
249
|
|
|
250
|
+
> [!IMPORTANT]
|
|
251
|
+
> **Signer key material comes from the ledger or the authenticator, not from
|
|
252
|
+
> an indexer.** Indexer rows (`getSigners`, `WalletSigner.publicKey`) are for
|
|
253
|
+
> display/lookup only. The kit's `updateSecp256r1` re-reads the key from the
|
|
254
|
+
> ledger, and `addSecp256r1` should only ever receive the key from the
|
|
255
|
+
> WebAuthn `createKey`/`connectWallet` attestation. If you build
|
|
256
|
+
> `update_signer`/`add_signer` transactions yourself (e.g. via
|
|
257
|
+
> `buildSecp256r1SignerTx`), source key material from the ledger
|
|
258
|
+
> (`getSigner`) or the authenticator.
|
|
259
|
+
|
|
250
260
|
```ts
|
|
251
261
|
import { SignerStore, SignerKey } from "passkey-kit";
|
|
252
262
|
|
|
@@ -295,7 +305,7 @@ All wallet writes are fee-sponsored by the [OpenZeppelin Relayer Channels](https
|
|
|
295
305
|
Two submission modes are chosen automatically:
|
|
296
306
|
|
|
297
307
|
- **`{ func, auth }`** (`submitSorobanTransaction`) — for wallet invocations (transfers, signer management) whose auth is carried by Address credentials. The relayer builds the envelope.
|
|
298
|
-
- **`{ xdr }`** (`submitTransaction`) — for an already-signed envelope that needs a fee bump (deploys / source-account auth).
|
|
308
|
+
- **`{ xdr }`** (`submitTransaction`) — for an already-signed envelope that needs a fee bump (custom-`deploySource` deploys / source-account auth). Shared-deployer deploys never take this path.
|
|
299
309
|
|
|
300
310
|
### Browsers: the relayer-proxy worker
|
|
301
311
|
|
|
@@ -303,7 +313,7 @@ The relayer API key is a secret, so a browser must never hold it. The [`relayer-
|
|
|
303
313
|
|
|
304
314
|
## Discovery (indexer)
|
|
305
315
|
|
|
306
|
-
|
|
316
|
+
The "reconnect" path needs no indexer: `connectWallet` resolves from a stored passkey → wallet association or, failing that, deterministic derivation (see [Deterministic derivation](#deterministic-derivation)), then confirms ownership on-chain. Derivation is a last resort because it is only correct for a wallet's first credential and is the one resolution path a squatted contract can hijack — trusted storage wins. An indexer is for **richer discovery**: enumerating a wallet's full signer set, and reverse-looking-up which wallets a given signer belongs to.
|
|
307
317
|
|
|
308
318
|
The SDK abstracts discovery behind a `SignerIndexer` interface (`getSigners` / `findWallets` / `health`), implemented by the **keyless** `MercuryIndexer` — exported from the main `passkey-kit` entry (no secret, so it runs in the browser):
|
|
309
319
|
|
|
@@ -430,21 +440,20 @@ const limits = new Map([["C…token", [SignerKey.Secp256r1(keyId)]]]);
|
|
|
430
440
|
enum SignerStore { Persistent = "Persistent", Temporary = "Temporary" }
|
|
431
441
|
```
|
|
432
442
|
|
|
433
|
-
`Temporary` entries are cheaper but **can be evicted** when their ledger TTL lapses — see [Caveats](#caveats
|
|
443
|
+
`Temporary` entries are cheaper but **can be evicted** when their ledger TTL lapses — see [Caveats](#caveats).
|
|
434
444
|
|
|
435
445
|
### Expiration
|
|
436
446
|
|
|
437
447
|
Signer and signature expiration are **UNIX timestamps in seconds** (inclusive: valid while `now <= expiration`). Pre-1.0 these were ledger sequence numbers; timestamps don't drift as ledger close-time changes.
|
|
438
448
|
|
|
439
|
-
## Caveats
|
|
449
|
+
## Caveats
|
|
440
450
|
|
|
441
451
|
> [!WARNING]
|
|
442
452
|
> These are inherent to the wallet model. The SDK does not guard against them — handle them in your app.
|
|
443
453
|
|
|
444
|
-
- **
|
|
445
|
-
- **
|
|
446
|
-
- **
|
|
447
|
-
- **Deploy front-running.** Because the deployer is public and the WASM is not part of the address preimage, anyone who learns a `keyId` before the wallet is deployed could deploy other code at the derived address. `connectWallet` mitigates this by verifying the keyId is a live signer (and, with `verifyWasmHash: true`, checking the on-chain WASM hash) — never trust a bare derived/looked-up address without that check.
|
|
454
|
+
- **Keep at least one durable admin signer.** The contract rejects any change that would remove or demote its last durable (`Persistent`, non-expiring) admin signer (`LastAdminSigner = 103`) or leave it without any durable signer (`LastSigner = 104`), so a wallet always retains one signer that cannot evict or expire. Signers outside that guard — `Temporary` storage or with an expiration — lapse on their own: add a replacement *before* removing or demoting an existing signer.
|
|
455
|
+
- **The default deployer is a shared, public keypair — its secret is publicly derivable.** It salts deployment and signs only the CreateContractV2 authorization entry; the relayer supplies the envelope source, sequence, and fees. It never controls the wallet. Its determinism is load-bearing for discovery: overriding `deploySource` changes every derived address and breaks keyId → wallet lookup. Use a separate funded `restoreSource` for `restoreFootprint`; never fund the shared deployer. A third-party `bumpSequence` to `INT64_MAX` no longer blocks the current SDK because it never uses the shared deployer as an envelope source. Full analysis: [`docs/security-deterministic-deployer.md`](docs/security-deterministic-deployer.md).
|
|
456
|
+
- **Deploy front-running remains an accepted residual.** Anyone who learns a `keyId` before deployment could place arbitrary code at the derived address. A signer getter check alone is not proof of ownership because arbitrary squatted code can lie; bind the accepted WASM/code identity before trusting signer or policy state. See the [security analysis](docs/security-deterministic-deployer.md#accepted-residual-address-squatting).
|
|
448
457
|
- **WebAuthn requires User Presence (UP), not User Verification (UV).** The contract requires the UP flag but not UV (biometric/PIN), so it stays compatible with non-UV authenticators. Enforce UV at the client/relayer layer if you need it.
|
|
449
458
|
- **Value-moving policies need a cumulative cap or a co-signer.** A `Signature::Policy` carries no secret, so a per-transfer cap alone is trivially drained by repeated capped transfers. See the [contract interface](#contract-interface) and `sample-policy`.
|
|
450
459
|
|
|
@@ -478,10 +487,10 @@ contractId = sha256(XDR(HashIdPreimage::EnvelopeTypeContractId {
|
|
|
478
487
|
}))
|
|
479
488
|
```
|
|
480
489
|
|
|
481
|
-
- The canonical deployer keypair is `Keypair.fromRawEd25519Seed(sha256("kalepail"))`. It
|
|
490
|
+
- The canonical deployer keypair is `Keypair.fromRawEd25519Seed(sha256("kalepail"))`. It salts the deploy and signs the deploy authorization — it never pays fees and never controls the wallet — but its determinism is **load-bearing**: overriding `deploySource` changes every derived address and breaks keyId → wallet discovery.
|
|
482
491
|
- The WASM hash is deliberately **not** in the preimage, so an `upgrade` never moves a wallet's address.
|
|
483
492
|
|
|
484
|
-
This tuple is normative and must never change. See [`docs/deployments-testnet-2026-07-11.md`](./docs/deployments-testnet-2026-07-11.md) for the canonical WASM hashes, the deployer `G…` address, and the full derivation spec (including the deploy-front-running consequence in [Caveats](#caveats
|
|
493
|
+
This tuple is normative and must never change. See [`docs/deployments-testnet-2026-07-11.md`](./docs/deployments-testnet-2026-07-11.md) for the canonical WASM hashes, the deployer `G…` address, and the full derivation spec (including the deploy-front-running consequence in [Caveats](#caveats)).
|
|
485
494
|
|
|
486
495
|
## Repository layout & development
|
|
487
496
|
|
package/dist/constants.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ export declare const ED25519_SIGNATURE_SIZE = 64;
|
|
|
19
19
|
* @see https://github.com/stellar/stellar-protocol/discussions/1435
|
|
20
20
|
*/
|
|
21
21
|
export declare const SECP256R1_CURVE_ORDER: bigint;
|
|
22
|
+
/** Field prime (p) of the secp256r1 (P-256) curve. */
|
|
23
|
+
export declare const SECP256R1_FIELD_PRIME: bigint;
|
|
24
|
+
/** Curve coefficient `b` of secp256r1 (P-256): y² = x³ − 3x + b (mod p). */
|
|
25
|
+
export declare const SECP256R1_B: bigint;
|
|
22
26
|
/** Default timeout for WebAuthn ceremonies, in milliseconds. */
|
|
23
27
|
export declare const WEBAUTHN_TIMEOUT_MS = 60000;
|
|
24
28
|
/** Length, in bytes, of a randomly generated WebAuthn challenge. */
|
|
@@ -33,12 +37,23 @@ export declare const WEBAUTHN_CHALLENGE_SIZE = 32;
|
|
|
33
37
|
* `deployer = this keypair`), which is exactly what the indexer reverse-lookup
|
|
34
38
|
* (keyId → contract) depends on.
|
|
35
39
|
*
|
|
36
|
-
* This value MUST remain `"kalepail"`:
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
40
|
+
* This value MUST remain `"kalepail"`: it is the current deterministic deployer,
|
|
41
|
+
* and the derivation is load-bearing for keyId → contract discovery. (Wallets
|
|
42
|
+
* deployed BEFORE commit 23597d8 used an earlier scheme — the deployer was
|
|
43
|
+
* derived from `sha256(networkPassphrase)` — so those wallets live under
|
|
44
|
+
* different, legacy deployer addresses; see the deployer inventory in
|
|
45
|
+
* docs/security-deterministic-deployer.md. It is NOT true that every wallet ever
|
|
46
|
+
* used this seed.) The deployer salts and signs deploy authorization entries — it
|
|
47
|
+
* never controls the wallet and is never the default transaction source. Provide
|
|
48
|
+
* your own `deploySource` only to change the derivation identity (note: doing so
|
|
41
49
|
* changes the derived contract addresses and breaks keyId → contract discovery).
|
|
50
|
+
*
|
|
51
|
+
* ⚠️ SECURITY: the seed is a published constant, so the SECRET key is publicly
|
|
52
|
+
* derivable and the account is SHARED across default-configured integrators.
|
|
53
|
+
* The relayer/channel supplies deploy sequence and fees; footprint restores use
|
|
54
|
+
* the separate `restoreSource`. The shared account's balance and sequence are
|
|
55
|
+
* therefore irrelevant to SDK deploys.
|
|
56
|
+
* See docs/security-deterministic-deployer.md.
|
|
42
57
|
*/
|
|
43
58
|
export declare const DEFAULT_DEPLOYER_SEED = "kalepail";
|
|
44
59
|
/**
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -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;AAMF,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C
|
|
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"}
|
package/dist/constants.js
CHANGED
|
@@ -22,6 +22,10 @@ export const ED25519_SIGNATURE_SIZE = 64;
|
|
|
22
22
|
* @see https://github.com/stellar/stellar-protocol/discussions/1435
|
|
23
23
|
*/
|
|
24
24
|
export const SECP256R1_CURVE_ORDER = BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551");
|
|
25
|
+
/** Field prime (p) of the secp256r1 (P-256) curve. */
|
|
26
|
+
export const SECP256R1_FIELD_PRIME = BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff");
|
|
27
|
+
/** Curve coefficient `b` of secp256r1 (P-256): y² = x³ − 3x + b (mod p). */
|
|
28
|
+
export const SECP256R1_B = BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");
|
|
25
29
|
// ============================================================================
|
|
26
30
|
// WebAuthn configuration
|
|
27
31
|
// ============================================================================
|
|
@@ -42,12 +46,23 @@ export const WEBAUTHN_CHALLENGE_SIZE = 32;
|
|
|
42
46
|
* `deployer = this keypair`), which is exactly what the indexer reverse-lookup
|
|
43
47
|
* (keyId → contract) depends on.
|
|
44
48
|
*
|
|
45
|
-
* This value MUST remain `"kalepail"`:
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
49
|
+
* This value MUST remain `"kalepail"`: it is the current deterministic deployer,
|
|
50
|
+
* and the derivation is load-bearing for keyId → contract discovery. (Wallets
|
|
51
|
+
* deployed BEFORE commit 23597d8 used an earlier scheme — the deployer was
|
|
52
|
+
* derived from `sha256(networkPassphrase)` — so those wallets live under
|
|
53
|
+
* different, legacy deployer addresses; see the deployer inventory in
|
|
54
|
+
* docs/security-deterministic-deployer.md. It is NOT true that every wallet ever
|
|
55
|
+
* used this seed.) The deployer salts and signs deploy authorization entries — it
|
|
56
|
+
* never controls the wallet and is never the default transaction source. Provide
|
|
57
|
+
* your own `deploySource` only to change the derivation identity (note: doing so
|
|
50
58
|
* changes the derived contract addresses and breaks keyId → contract discovery).
|
|
59
|
+
*
|
|
60
|
+
* ⚠️ SECURITY: the seed is a published constant, so the SECRET key is publicly
|
|
61
|
+
* derivable and the account is SHARED across default-configured integrators.
|
|
62
|
+
* The relayer/channel supplies deploy sequence and fees; footprint restores use
|
|
63
|
+
* the separate `restoreSource`. The shared account's balance and sequence are
|
|
64
|
+
* therefore irrelevant to SDK deploys.
|
|
65
|
+
* See docs/security-deterministic-deployer.md.
|
|
51
66
|
*/
|
|
52
67
|
export const DEFAULT_DEPLOYER_SEED = "kalepail";
|
|
53
68
|
// ============================================================================
|
package/dist/constants.js.map
CHANGED
|
@@ -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,+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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-errors.d.ts","sourceRoot":"","sources":["../src/contract-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,aAAa,EAGb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"contract-errors.d.ts","sourceRoot":"","sources":["../src/contract-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,aAAa,EAGb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAiClC,CAAC;AAkBF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,aAAa,GAAG,IAAI,CAMtB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAM7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAMpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAQpB"}
|
package/dist/contract-errors.js
CHANGED
|
@@ -29,6 +29,8 @@ export const CONTRACT_ERROR_REGISTRY = Object.freeze(Object.fromEntries([
|
|
|
29
29
|
entry(100, "SignerNotFound", "SmartWallet", "The requested signer does not exist on this smart wallet."),
|
|
30
30
|
entry(101, "SignerAlreadyExists", "SmartWallet", "add_signer was called with a signer key that already exists."),
|
|
31
31
|
entry(102, "SignerExpired", "SmartWallet", "The signer's expiration timestamp is in the past."),
|
|
32
|
+
entry(103, "LastAdminSigner", "SmartWallet", "This change would remove or demote the wallet's last durable admin signer (persistent, non-expiring, independently admin-capable) and permanently lock the wallet's admin surface; add or promote a replacement admin signer first."),
|
|
33
|
+
entry(104, "LastSigner", "SmartWallet", "The operation would leave the wallet without any durable (Persistent, non-expiring) signer — thrown by remove_signer, update_signer demotions, and a __constructor with a non-durable first signer; keep or add a Persistent, non-expiring signer."),
|
|
32
34
|
// 110-119: auth (__check_auth)
|
|
33
35
|
entry(110, "MissingContext", "SmartWallet", "No signer in the signatures map is permitted to authorize one of the requested auth contexts."),
|
|
34
36
|
entry(111, "SignatureKeyValueMismatch", "SmartWallet", "A signature's variant does not match the stored signer it claims to be for."),
|
|
@@ -39,6 +41,7 @@ export const CONTRACT_ERROR_REGISTRY = Object.freeze(Object.fromEntries([
|
|
|
39
41
|
entry(123, "InvalidWebAuthnType", "SmartWallet", 'clientDataJSON `type` is not "webauthn.get".'),
|
|
40
42
|
entry(124, "InvalidAuthenticatorData", "SmartWallet", "authenticatorData is shorter than the WebAuthn minimum of 37 bytes."),
|
|
41
43
|
entry(125, "UserPresenceRequired", "SmartWallet", "The authenticator did not set the User Present (UP) flag."),
|
|
44
|
+
entry(126, "AuthenticatorDataTooLarge", "SmartWallet", "authenticatorData exceeds the 1024-byte cap."),
|
|
42
45
|
// --- Legacy (pre-1.0) 1-9 — kept so errors from legacy deployed wallets decode ---
|
|
43
46
|
entry(1, "NotFound", "SmartWalletLegacy", "[legacy] The specified signer was not found."),
|
|
44
47
|
entry(2, "AlreadyExists", "SmartWalletLegacy", "[legacy] The signer already exists on this wallet."),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-errors.js","sourceRoot":"","sources":["../src/contract-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,GAEhB,MAAM,aAAa,CAAC;AAmBrB,SAAS,KAAK,CACZ,IAAY,EACZ,IAAY,EACZ,MAA2B,EAC3B,OAAe;IAEf,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAEhC,MAAM,CAAC,MAAM,CACf,MAAM,CAAC,WAAW,CAAC;IACjB,gFAAgF;IAChF,uCAAuC;IACvC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,2DAA2D,CAAC;IACxG,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,aAAa,EAAE,8DAA8D,CAAC;IAChH,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,mDAAmD,CAAC;IAC/F,+BAA+B;IAC/B,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,+FAA+F,CAAC;IAC5I,KAAK,CAAC,GAAG,EAAE,2BAA2B,EAAE,aAAa,EAAE,6EAA6E,CAAC;IACrI,6CAA6C;IAC7C,KAAK,CAAC,GAAG,EAAE,wBAAwB,EAAE,aAAa,EAAE,oDAAoD,CAAC;IACzG,KAAK,CAAC,GAAG,EAAE,0BAA0B,EAAE,aAAa,EAAE,uEAAuE,CAAC;IAC9H,KAAK,CAAC,GAAG,EAAE,kCAAkC,EAAE,aAAa,EAAE,uGAAuG,CAAC;IACtK,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,aAAa,EAAE,8CAA8C,CAAC;IAChG,KAAK,CAAC,GAAG,EAAE,0BAA0B,EAAE,aAAa,EAAE,qEAAqE,CAAC;IAC5H,KAAK,CAAC,GAAG,EAAE,sBAAsB,EAAE,aAAa,EAAE,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"contract-errors.js","sourceRoot":"","sources":["../src/contract-errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConn
|
|
|
16
16
|
export { CONTRACT_ERROR_REGISTRY, contractErrorFromCode, decodeContractError, type ContractErrorFamily, type ContractErrorInfo, } from "./contract-errors.js";
|
|
17
17
|
export { MercuryIndexer, mercuryPasskeyIndexerUrl, MERCURY_PASSKEY_INDEXER_URLS, lookupWithRetry, type MercuryIndexerConfig, type SignerIndexer, type WalletSigner, type IndexerHealth, type SignerStatus, type SignerStorageClass, type FindWalletsHardeningDeps, } from "./indexer/index.js";
|
|
18
18
|
export { PasskeyEventEmitter, type PasskeyEvent, type PasskeyEventMap, type EventListener, } from "./events.js";
|
|
19
|
-
export { deriveContractAddress, extractPublicKeyFromAttestation, compactSignature, generateChallenge, } from "./utils.js";
|
|
19
|
+
export { deriveContractAddress, extractPublicKeyFromAttestation, compactSignature, generateChallenge, isOnP256Curve, } from "./utils.js";
|
|
20
20
|
export { validateAddress, validateAmount, validateExpiration, validateSecp256r1PublicKey, } from "./validation.js";
|
|
21
21
|
export { VERSION, NAME } from "./version.js";
|
|
22
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;AAGpB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,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,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,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,
|
|
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;AAGpB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,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,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,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
|
@@ -28,7 +28,7 @@ export { MercuryIndexer, mercuryPasskeyIndexerUrl, MERCURY_PASSKEY_INDEXER_URLS,
|
|
|
28
28
|
// Events
|
|
29
29
|
export { PasskeyEventEmitter, } from "./events.js";
|
|
30
30
|
// Crypto / derivation helpers
|
|
31
|
-
export { deriveContractAddress, extractPublicKeyFromAttestation, compactSignature, generateChallenge, } from "./utils.js";
|
|
31
|
+
export { deriveContractAddress, extractPublicKeyFromAttestation, compactSignature, generateChallenge, isOnP256Curve, } from "./utils.js";
|
|
32
32
|
// Client-side validation
|
|
33
33
|
export { validateAddress, validateAmount, validateExpiration, validateSecp256r1PublicKey, } from "./validation.js";
|
|
34
34
|
// Package metadata
|
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;AAEpB,eAAe;AACf,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,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,GAQhB,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,
|
|
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;AAEpB,eAAe;AACf,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,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,GAQhB,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"}
|
|
@@ -81,6 +81,12 @@ export declare class MercuryIndexer implements SignerIndexer {
|
|
|
81
81
|
* Harden the reverse lookup (#598 F3): keep a candidate only if it is either
|
|
82
82
|
* the deterministic derivation of the keyId OR still holds the signer entry
|
|
83
83
|
* on-chain — never trust an unverified indexer row.
|
|
84
|
+
*
|
|
85
|
+
* Fail-CLOSED: when candidates exist but no confirmation route
|
|
86
|
+
* does — no `rpc`, and no usable derivation (`hardening` only covers
|
|
87
|
+
* Secp256r1 keys) — this throws instead of returning unconfirmed rows. An
|
|
88
|
+
* unverifiable answer must never be handed to a caller that will route
|
|
89
|
+
* deposits or identity to it.
|
|
84
90
|
*/
|
|
85
91
|
private confirmCandidates;
|
|
86
92
|
health(): Promise<IndexerHealth>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mercury.d.ts","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAS3D,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAMpB;AAmDD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,cAAe,YAAW,aAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IASzD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5D,iBAAiB,EAAE,MAAM,GACxB,cAAc,GAAG,IAAI;IAMxB;;;;OAIG;YACW,GAAG;IAqCX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8BzD;;;;;;OAMG;YACW,WAAW;IASnB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAapD
|
|
1
|
+
{"version":3,"file":"mercury.d.ts","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAS3D,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAMpB;AAmDD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,cAAe,YAAW,aAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IASzD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5D,iBAAiB,EAAE,MAAM,GACxB,cAAc,GAAG,IAAI;IAMxB;;;;OAIG;YACW,GAAG;IAqCX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8BzD;;;;;;OAMG;YACW,WAAW;IASnB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAapD;;;;;;;;;;OAUG;YACW,iBAAiB;IAsCzB,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;CAiBvC"}
|
package/dist/indexer/mercury.js
CHANGED
|
@@ -146,14 +146,22 @@ export class MercuryIndexer {
|
|
|
146
146
|
* Harden the reverse lookup (#598 F3): keep a candidate only if it is either
|
|
147
147
|
* the deterministic derivation of the keyId OR still holds the signer entry
|
|
148
148
|
* on-chain — never trust an unverified indexer row.
|
|
149
|
+
*
|
|
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.
|
|
149
155
|
*/
|
|
150
156
|
async confirmCandidates(candidates, key) {
|
|
151
157
|
const { rpc, hardening } = this.config;
|
|
152
|
-
if (!rpc && !hardening)
|
|
153
|
-
return candidates; // nothing to verify with
|
|
154
158
|
const derived = hardening && key.key === "Secp256r1"
|
|
155
159
|
? deriveContractAddress(base64url.toBuffer(key.value), hardening.deployerPublicKey, hardening.networkPassphrase)
|
|
156
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 });
|
|
164
|
+
}
|
|
157
165
|
const confirmed = [];
|
|
158
166
|
for (const candidate of candidates) {
|
|
159
167
|
if (candidate === derived) {
|
|
@@ -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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"}
|
|
@@ -29,6 +29,23 @@ export declare function getAddressCredentials(credentials: xdr.SorobanCredential
|
|
|
29
29
|
* V2 / with-delegates variants), whose preimage binds the invoker address.
|
|
30
30
|
*/
|
|
31
31
|
export declare function usesAddressBoundPayload(credentials: xdr.SorobanCredentials): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Coerce a credentials union to an address-bound variant (CAP-0071-02).
|
|
34
|
+
*
|
|
35
|
+
* Legacy V1 `sorobanCredentialsAddress` credentials are upgraded to
|
|
36
|
+
* `sorobanCredentialsAddressV2` IN PLACE of the signed payload's semantics: the
|
|
37
|
+
* V2 preimage (`HashIdPreimageSorobanAuthorizationWithAddress`) binds the
|
|
38
|
+
* authorizing address into the hash the signer signs, so the same signer key on
|
|
39
|
+
* two different wallets can never produce interchangeable signatures. V1's
|
|
40
|
+
* preimage has no address field — signing it verbatim would produce a payload
|
|
41
|
+
* that is identical across wallets for a signer key installed on more than
|
|
42
|
+
* one wallet.
|
|
43
|
+
*
|
|
44
|
+
* Already-address-bound variants (V2, with-delegates) pass through unchanged.
|
|
45
|
+
*
|
|
46
|
+
* @throws {SigningError} If the credentials are not address-based.
|
|
47
|
+
*/
|
|
48
|
+
export declare function toAddressBoundCredentials(credentials: xdr.SorobanCredentials): xdr.SorobanCredentials;
|
|
32
49
|
/**
|
|
33
50
|
* Assert that a signature-expiration ledger is a valid `u32`.
|
|
34
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-payload.d.ts","sourceRoot":"","sources":["../../src/kit/auth-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,GAAG,EACJ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EACV,SAAS,IAAI,YAAY,EACzB,SAAS,IAAI,YAAY,EAC1B,MAAM,iBAAiB,CAAC;AAOzB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,GAAG,CAAC,kBAAkB,GAClC,GAAG,CAAC,yBAAyB,CAc/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,GAAG,CAAC,kBAAkB,GAClC,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAYxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,GAAG,CAAC,yBAAyB,EACpC,UAAU,EAAE,MAAM,GACjB,MAAM,CAaR;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAmD/D;AAaD,gFAAgF;AAChF,eAAO,MAAM,cAAc,mBAE1B,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,YAAY,GAChB,GAAG,CAAC,KAAK,CAEX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,YAAY,GAAG,SAAS,GAC5B,GAAG,CAAC,KAAK,CAEX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,GAAG,CAAC,yBAAyB,EAC1C,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,KAAK,EAAE,GAAG,CAAC,KAAK,GACf,IAAI,CAmCN"}
|
|
1
|
+
{"version":3,"file":"auth-payload.d.ts","sourceRoot":"","sources":["../../src/kit/auth-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,GAAG,EACJ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EACV,SAAS,IAAI,YAAY,EACzB,SAAS,IAAI,YAAY,EAC1B,MAAM,iBAAiB,CAAC;AAOzB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,GAAG,CAAC,kBAAkB,GAClC,GAAG,CAAC,yBAAyB,CAc/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,GAAG,CAAC,kBAAkB,GAClC,OAAO,CAMT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,GAAG,CAAC,kBAAkB,GAClC,GAAG,CAAC,kBAAkB,CASxB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAYxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,GAAG,CAAC,yBAAyB,EACpC,UAAU,EAAE,MAAM,GACjB,MAAM,CAaR;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAmD/D;AAaD,gFAAgF;AAChF,eAAO,MAAM,cAAc,mBAE1B,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,YAAY,GAChB,GAAG,CAAC,KAAK,CAEX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,YAAY,GAAG,SAAS,GAC5B,GAAG,CAAC,KAAK,CAEX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,GAAG,CAAC,yBAAyB,EAC1C,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,KAAK,EAAE,GAAG,CAAC,KAAK,GACf,IAAI,CAmCN"}
|
package/dist/kit/auth-payload.js
CHANGED
|
@@ -46,6 +46,30 @@ export function usesAddressBoundPayload(credentials) {
|
|
|
46
46
|
return (name === "sorobanCredentialsAddressV2" ||
|
|
47
47
|
name === "sorobanCredentialsAddressWithDelegates");
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Coerce a credentials union to an address-bound variant (CAP-0071-02).
|
|
51
|
+
*
|
|
52
|
+
* Legacy V1 `sorobanCredentialsAddress` credentials are upgraded to
|
|
53
|
+
* `sorobanCredentialsAddressV2` IN PLACE of the signed payload's semantics: the
|
|
54
|
+
* V2 preimage (`HashIdPreimageSorobanAuthorizationWithAddress`) binds the
|
|
55
|
+
* authorizing address into the hash the signer signs, so the same signer key on
|
|
56
|
+
* two different wallets can never produce interchangeable signatures. V1's
|
|
57
|
+
* preimage has no address field — signing it verbatim would produce a payload
|
|
58
|
+
* that is identical across wallets for a signer key installed on more than
|
|
59
|
+
* one wallet.
|
|
60
|
+
*
|
|
61
|
+
* Already-address-bound variants (V2, with-delegates) pass through unchanged.
|
|
62
|
+
*
|
|
63
|
+
* @throws {SigningError} If the credentials are not address-based.
|
|
64
|
+
*/
|
|
65
|
+
export function toAddressBoundCredentials(credentials) {
|
|
66
|
+
if (credentials.switch().name === "sorobanCredentialsAddress") {
|
|
67
|
+
return xdr.SorobanCredentials.sorobanCredentialsAddressV2(credentials.address());
|
|
68
|
+
}
|
|
69
|
+
// Anything else must already be address-bound (or is rejected here).
|
|
70
|
+
getAddressCredentials(credentials);
|
|
71
|
+
return credentials;
|
|
72
|
+
}
|
|
49
73
|
/**
|
|
50
74
|
* Assert that a signature-expiration ledger is a valid `u32`.
|
|
51
75
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-payload.js","sourceRoot":"","sources":["../../src/kit/auth-payload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-payload.js","sourceRoot":"","sources":["../../src/kit/auth-payload.ts"],"names":[],"mappings":"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"}
|
package/dist/kit/deploy-ops.d.ts
CHANGED
|
@@ -12,13 +12,13 @@ import { Keypair } from "@stellar/stellar-sdk";
|
|
|
12
12
|
import type { AssembledTransaction } from "@stellar/stellar-sdk/contract";
|
|
13
13
|
import { Client as PasskeyClient } from "passkey-kit-sdk";
|
|
14
14
|
/**
|
|
15
|
-
* Resolve the
|
|
15
|
+
* Resolve the address-derivation deployer keypair from an optional secret.
|
|
16
16
|
*
|
|
17
17
|
* With no secret, derives the canonical deterministic deployer from
|
|
18
|
-
* {@link DEFAULT_DEPLOYER_SEED}. The deployer only
|
|
19
|
-
*
|
|
20
|
-
* changes the derived contract addresses (and breaks
|
|
21
|
-
* discovery), so this is documented as an advanced option.
|
|
18
|
+
* {@link DEFAULT_DEPLOYER_SEED}. The default deployer only salts and authorizes
|
|
19
|
+
* deploys; it never controls the wallet or sources the transaction. Supplying a
|
|
20
|
+
* different `deploySource` changes the derived contract addresses (and breaks
|
|
21
|
+
* keyId → contract discovery), so this is documented as an advanced option.
|
|
22
22
|
*
|
|
23
23
|
* @throws {ConfigurationError} If `deploySource` is not a valid secret key.
|
|
24
24
|
*/
|
|
@@ -32,14 +32,16 @@ export declare function deriveWalletAddress(deps: {
|
|
|
32
32
|
* Build the smart-wallet deploy transaction, initializing it with the passkey as
|
|
33
33
|
* the first (unlimited, persistent) Secp256r1 signer via `__constructor`.
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* Shared-default deploys use the SDK's address-only build path, so simulation
|
|
36
|
+
* uses the null carrier account instead of reading the deployer's sequence.
|
|
37
|
+
* Custom deployers keep the normal account-source path.
|
|
37
38
|
*/
|
|
38
39
|
export declare function buildDeployTransaction(deps: {
|
|
39
40
|
rpcUrl: string;
|
|
40
41
|
networkPassphrase: string;
|
|
41
42
|
walletWasmHash: string;
|
|
42
43
|
deployerPublicKey: string;
|
|
44
|
+
usingSharedDeployer: boolean;
|
|
43
45
|
timeoutInSeconds: number;
|
|
44
46
|
}, keyId: Buffer, publicKey: Uint8Array): Promise<AssembledTransaction<PasskeyClient>>;
|
|
45
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
|
|
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"}
|