passkey-kit 0.17.1 → 0.17.3
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 +19 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/index.d.ts +1 -1
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/mercury.d.ts +2 -1
- package/dist/indexer/mercury.d.ts.map +1 -1
- package/dist/indexer/mercury.js +184 -7
- package/dist/indexer/mercury.js.map +1 -1
- package/dist/indexer/types.d.ts +8 -0
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/kit/tx-ops.d.ts +56 -0
- package/dist/kit/tx-ops.d.ts.map +1 -1
- package/dist/kit/tx-ops.js +153 -1
- package/dist/kit/tx-ops.js.map +1 -1
- package/dist/kit.d.ts +7 -0
- package/dist/kit.d.ts.map +1 -1
- package/dist/kit.js +31 -0
- package/dist/kit.js.map +1 -1
- package/dist/managers/signer-manager.d.ts +16 -1
- package/dist/managers/signer-manager.d.ts.map +1 -1
- package/dist/managers/signer-manager.js +19 -1
- package/dist/managers/signer-manager.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/base.d.ts +0 -7
- package/dist/base.d.ts.map +0 -1
- package/dist/base.js +0 -16
- package/dist/base.js.map +0 -1
- package/dist/indexer/stellar-indexer.d.ts +0 -115
- package/dist/indexer/stellar-indexer.d.ts.map +0 -1
- package/dist/indexer/stellar-indexer.js +0 -279
- package/dist/indexer/stellar-indexer.js.map +0 -1
package/README.md
CHANGED
|
@@ -277,15 +277,22 @@ import { SignerStore, SignerKey } from "passkey-kit";
|
|
|
277
277
|
|
|
278
278
|
// Add an unlimited Ed25519 co-signer, stored persistently.
|
|
279
279
|
const tx = await kit.addEd25519("G…", undefined, SignerStore.Persistent);
|
|
280
|
-
await kit.
|
|
280
|
+
await kit.signAdmin(tx); // wallet-admin write: declares reentry intent
|
|
281
281
|
await server.send(tx);
|
|
282
282
|
|
|
283
283
|
// Remove it.
|
|
284
284
|
const rm = await kit.remove(SignerKey.Ed25519("G…"));
|
|
285
|
-
await kit.
|
|
285
|
+
await kit.signAdmin(rm);
|
|
286
286
|
await server.send(rm);
|
|
287
287
|
```
|
|
288
288
|
|
|
289
|
+
Generic dApp calls (transfers, swaps, mints) keep using `kit.sign(tx)`: it
|
|
290
|
+
refuses any wallet-admin call (`add_signer`, `add_secp256r1`, `update_signer`,
|
|
291
|
+
`remove_signer`, `upgrade`) at the entry root or nested beneath it. The only
|
|
292
|
+
legit exception is a nested self-`remove_signer` (the contract lets a limited
|
|
293
|
+
signer remove itself); pass `allowWalletReentry: true` — or `kit.signAdmin(tx)`
|
|
294
|
+
for full admin transactions — to declare that intent.
|
|
295
|
+
|
|
289
296
|
## `PasskeyServer` (server)
|
|
290
297
|
|
|
291
298
|
Server-only facade (`passkey-kit/server`). Holds the relayer secret — never import it from browser code.
|
|
@@ -344,14 +351,15 @@ The SDK abstracts discovery behind a `SignerIndexer` interface (`getSigners` / `
|
|
|
344
351
|
|
|
345
352
|
| Backend | Config | Wire | Status |
|
|
346
353
|
|---|---|---|---|
|
|
347
|
-
| `MercuryIndexer` | `MercuryIndexerConfig` (`url?`, `rpc?`) | Keyless REST (`GET /api/wallet/*`, `/api/lookup/*`) |
|
|
354
|
+
| `MercuryIndexer` | `MercuryIndexerConfig` (`url?`, `rpc?`) | Keyless REST (`GET /api/wallet/*`, `/api/v2/lookup/*`, `/api/lookup/address/*`) | The SDK uses the versioned credential route on supported networks. Testnet fixtures verified the schema-2 response on 2026-09-08. |
|
|
348
355
|
|
|
349
356
|
> [!NOTE]
|
|
350
357
|
> Mercury's hosted passkey-indexer is public and **keyless** on testnet and mainnet.
|
|
351
|
-
> Its
|
|
352
|
-
>
|
|
353
|
-
>
|
|
354
|
-
>
|
|
358
|
+
> Its v2 credential route returns immutable birth claims and complete ledger positions.
|
|
359
|
+
> The SDK validates the frozen v2 shape.
|
|
360
|
+
> It verifies candidate birth, current code, and signer state independently.
|
|
361
|
+
> An incomplete, stale, malformed, or ambiguous result still fails closed.
|
|
362
|
+
> The 2026-09-08 fixture check covered testnet only. It did not independently verify mainnet v2 responses.
|
|
355
363
|
> See the [schema-2 response contract](docs/indexer-signer-provenance-response.md).
|
|
356
364
|
|
|
357
365
|
```ts
|
|
@@ -493,6 +501,9 @@ enum SignerStore { Persistent = "Persistent", Temporary = "Temporary" }
|
|
|
493
501
|
|
|
494
502
|
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.
|
|
495
503
|
|
|
504
|
+
`connectWallet` applies the same boundary to the stored on-chain passkey signer.
|
|
505
|
+
It uses the latest Stellar RPC ledger close timestamp.
|
|
506
|
+
|
|
496
507
|
## Caveats
|
|
497
508
|
|
|
498
509
|
> [!WARNING]
|
|
@@ -500,7 +511,7 @@ Signer and signature expiration are **UNIX timestamps in seconds** (inclusive: v
|
|
|
500
511
|
|
|
501
512
|
- **Limit value and authority.** Limit wallet balances, signer permissions, policy allowances, and relayer permissions. Monitor wallet activity. Keep independent recovery, submission, and authorized upgrade paths.
|
|
502
513
|
- **Hosted services can fail or return stale data.** Do not treat relayer or indexer responses as authoritative chain state. Confirm security-sensitive state through Stellar RPC.
|
|
503
|
-
- **Fresh-device discovery needs schema
|
|
514
|
+
- **Fresh-device discovery needs a complete schema-2 result.** The SDK uses Mercury's v2 route on supported networks. Testnet fixtures verified the response on 2026-09-08. Mainnet v2 responses were not independently verified. The SDK still rejects incomplete, stale, malformed, or ambiguous results.
|
|
504
515
|
- **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.
|
|
505
516
|
- **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).
|
|
506
517
|
- **Current code identity is not signer provenance.** The SDK also verifies immutable birth code and address-bound proofs. See the [signer-provenance design](docs/security-signer-provenance-v2.md).
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { SignerKey, SignerStore, type SignerKeyTag, type SignerLimits, type Stor
|
|
|
15
15
|
export type { PolicySignerTxOptions } from "./kit/wallet-ops.js";
|
|
16
16
|
export { PasskeyKitError, PasskeyKitErrorCode, ConfigurationError, WalletNotConnectedError, WalletOwnershipError, WalletAmbiguousError, WebAuthnError, SigningError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, IndexerError, RelayerError, ContractError, wrapError, } from "./errors.js";
|
|
17
17
|
export { CONTRACT_ERROR_REGISTRY, contractErrorFromCode, decodeContractError, type ContractErrorFamily, type ContractErrorInfo, } from "./contract-errors.js";
|
|
18
|
-
export { MercuryIndexer, mercuryPasskeyIndexerUrl, MERCURY_PASSKEY_INDEXER_URLS, lookupWithRetry, type MercuryIndexerConfig, type SignerIndexer, type WalletSigner, type WalletCandidate, type IncompleteWalletCandidate, type WalletCandidateLookup, type IndexerHealth, type SignerStatus, type SignerStorageClass, type FindWalletsHardeningDeps, } from "./indexer/index.js";
|
|
18
|
+
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, type FindWalletsHardeningDeps, } from "./indexer/index.js";
|
|
19
19
|
export { PasskeyEventEmitter, type PasskeyEvent, type PasskeyEventMap, type EventListener, } from "./events.js";
|
|
20
20
|
export { deriveContractAddress, extractPublicKeyFromAttestation, compactSignature, generateChallenge, isOnP256Curve, } from "./utils.js";
|
|
21
21
|
export { validateAddress, validateAmount, validateExpiration, validateSecp256r1PublicKey, } from "./validation.js";
|
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;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,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,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"}
|
|
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,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.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,
|
|
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,GAahB,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"}
|
package/dist/indexer/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
|
-
export type { SignerIndexer, WalletSigner, WalletCandidate, IncompleteWalletCandidate, WalletCandidateLookup, IndexerHealth, SignerStatus, SignerStorageClass, FindWalletsHardeningDeps, } from "./types.js";
|
|
12
|
+
export type { SignerIndexer, WalletSigner, WalletCandidate, WalletCandidateIncompleteReason, IncompleteWalletCandidate, WalletCandidateLookup, WalletLookupIncompleteReason, IndexerHealth, SignerStatus, SignerStorageClass, FindWalletsHardeningDeps, } from "./types.js";
|
|
13
13
|
export { MercuryIndexer, mercuryPasskeyIndexerUrl, type MercuryIndexerConfig, } from "./mercury.js";
|
|
14
14
|
export { MERCURY_PASSKEY_INDEXER_URLS } from "../constants.js";
|
|
15
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EACtB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC;CACtC,GACA,OAAO,CAAC,CAAC,EAAE,CAAC,CAcd"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,+BAA+B,EAC/B,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EACtB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC;CACtC,GACA,OAAO,CAAC,CAAC,EAAE,CAAC,CAcd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,OAAO,EACL,cAAc,EACd,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAsB,EACtB,OAIC;IAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE9D,IAAI,IAAI,GAAQ,EAAE,CAAC;IACnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QAClB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,OAAO,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* `https://{testnet,mainnet}.mercurydata.app/rest/passkey-indexer`
|
|
13
13
|
* GET / -> `{ service, status }` health
|
|
14
14
|
* GET /api/wallet/:contractId -> signers (this backend's getSigners)
|
|
15
|
-
* GET /api/lookup/:credentialId
|
|
15
|
+
* GET /api/v2/lookup/:credentialId -> wallets by passkey keyId (hex)
|
|
16
16
|
* GET /api/lookup/address/:address -> wallets by ed25519 (G…) / policy (C…)
|
|
17
17
|
* GET /api/stats -> indexer statistics
|
|
18
18
|
*
|
|
@@ -50,6 +50,7 @@ export interface MercuryIndexerConfig {
|
|
|
50
50
|
}
|
|
51
51
|
export declare class MercuryIndexer implements SignerIndexer {
|
|
52
52
|
private readonly config;
|
|
53
|
+
private expectedNetwork?;
|
|
53
54
|
constructor(config: MercuryIndexerConfig);
|
|
54
55
|
/**
|
|
55
56
|
* Null-tolerant factory: resolve the hosted base URL for `networkPassphrase`
|
|
@@ -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,EAExB,aAAa,EACb,aAAa,
|
|
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,EAExB,aAAa,EACb,aAAa,EAGb,qBAAqB,EAErB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAMpB;AA8FD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,cAAe,YAAW,aAAa;IAGtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,eAAe,CAAC,CAAwB;gBAEnB,MAAM,EAAE,oBAAoB;IAezD;;;;;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;IAaxB;;;;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,qBAAqB,CAAC;IAkBjE;;;;;;;OAOG;YACW,iBAAiB;IAiCzB,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;CAiBvC"}
|
package/dist/indexer/mercury.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* `https://{testnet,mainnet}.mercurydata.app/rest/passkey-indexer`
|
|
13
13
|
* GET / -> `{ service, status }` health
|
|
14
14
|
* GET /api/wallet/:contractId -> signers (this backend's getSigners)
|
|
15
|
-
* GET /api/lookup/:credentialId
|
|
15
|
+
* GET /api/v2/lookup/:credentialId -> wallets by passkey keyId (hex)
|
|
16
16
|
* GET /api/lookup/address/:address -> wallets by ed25519 (G…) / policy (C…)
|
|
17
17
|
* GET /api/stats -> indexer statistics
|
|
18
18
|
*
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* @packageDocumentation
|
|
22
22
|
*/
|
|
23
|
-
import { Networks } from "@stellar/stellar-sdk";
|
|
23
|
+
import { Networks, StrKey } from "@stellar/stellar-sdk";
|
|
24
24
|
import { Durability } from "@stellar/stellar-sdk/rpc";
|
|
25
25
|
import { SignerKey } from "../types.js";
|
|
26
26
|
import { IndexerError, PasskeyKitErrorCode } from "../errors.js";
|
|
@@ -43,11 +43,19 @@ export function mercuryPasskeyIndexerUrl(networkPassphrase) {
|
|
|
43
43
|
}
|
|
44
44
|
export class MercuryIndexer {
|
|
45
45
|
config;
|
|
46
|
+
expectedNetwork;
|
|
46
47
|
constructor(config) {
|
|
47
48
|
this.config = config;
|
|
48
49
|
if (!config.url) {
|
|
49
50
|
throw new IndexerError("MercuryIndexer requires a url", PasskeyKitErrorCode.INDEXER_NOT_CONFIGURED);
|
|
50
51
|
}
|
|
52
|
+
const normalizedUrl = config.url.replace(/\/$/, "");
|
|
53
|
+
if (normalizedUrl === MERCURY_PASSKEY_INDEXER_URLS.testnet) {
|
|
54
|
+
this.expectedNetwork = "testnet";
|
|
55
|
+
}
|
|
56
|
+
else if (normalizedUrl === MERCURY_PASSKEY_INDEXER_URLS.mainnet) {
|
|
57
|
+
this.expectedNetwork = "mainnet";
|
|
58
|
+
}
|
|
51
59
|
}
|
|
52
60
|
/**
|
|
53
61
|
* Null-tolerant factory: resolve the hosted base URL for `networkPassphrase`
|
|
@@ -59,7 +67,14 @@ export class MercuryIndexer {
|
|
|
59
67
|
const url = config.url ?? mercuryPasskeyIndexerUrl(networkPassphrase);
|
|
60
68
|
if (!url)
|
|
61
69
|
return null;
|
|
62
|
-
|
|
70
|
+
const indexer = new MercuryIndexer({ ...config, url });
|
|
71
|
+
if (networkPassphrase === Networks.TESTNET) {
|
|
72
|
+
indexer.expectedNetwork = "testnet";
|
|
73
|
+
}
|
|
74
|
+
if (networkPassphrase === Networks.PUBLIC) {
|
|
75
|
+
indexer.expectedNetwork = "mainnet";
|
|
76
|
+
}
|
|
77
|
+
return indexer;
|
|
63
78
|
}
|
|
64
79
|
/**
|
|
65
80
|
* GET a passkey-indexer route. Returns the parsed JSON, or `null` on a `404`
|
|
@@ -134,11 +149,17 @@ export class MercuryIndexer {
|
|
|
134
149
|
// Secp256r1 keys are looked up by hex credential id; ed25519/policy keys by
|
|
135
150
|
// their strkey address. The SDK carries the Secp256r1 keyId as base64url, so
|
|
136
151
|
// convert to the hex the credential-id route expects.
|
|
137
|
-
const
|
|
138
|
-
?
|
|
152
|
+
const credentialId = key.key === "Secp256r1"
|
|
153
|
+
? base64url.toBuffer(key.value).toString("hex")
|
|
154
|
+
: undefined;
|
|
155
|
+
const path = credentialId
|
|
156
|
+
? `/api/v2/lookup/${credentialId}`
|
|
139
157
|
: `/api/lookup/address/${key.value}`;
|
|
140
158
|
const res = await this.get(path);
|
|
141
|
-
|
|
159
|
+
const lookup = credentialId
|
|
160
|
+
? parseV2LookupResponse(res, credentialId, this.expectedNetwork)
|
|
161
|
+
: parseLegacyLookupResponse(res);
|
|
162
|
+
return this.confirmCandidates(lookup, key);
|
|
142
163
|
}
|
|
143
164
|
/**
|
|
144
165
|
* Keep a candidate only when it still holds the signer entry on-chain.
|
|
@@ -240,6 +261,11 @@ function parseLedger(value) {
|
|
|
240
261
|
}
|
|
241
262
|
return undefined;
|
|
242
263
|
}
|
|
264
|
+
function parseV2Ledger(value) {
|
|
265
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 1
|
|
266
|
+
? value
|
|
267
|
+
: undefined;
|
|
268
|
+
}
|
|
243
269
|
function parseWalletRef(value) {
|
|
244
270
|
if (!isRecord(value))
|
|
245
271
|
return undefined;
|
|
@@ -280,7 +306,7 @@ function sameContractIds(candidates, otherRows) {
|
|
|
280
306
|
[...candidateIds].every((contractId) => otherIds.has(contractId)));
|
|
281
307
|
}
|
|
282
308
|
/** Map a lookup JSON body onto {@link WalletCandidateLookup} without inventing birth data. */
|
|
283
|
-
function
|
|
309
|
+
function parseLegacyLookupResponse(res) {
|
|
284
310
|
if (!isRecord(res)) {
|
|
285
311
|
return { complete: false, candidates: [] };
|
|
286
312
|
}
|
|
@@ -320,6 +346,157 @@ function parseLookupResponse(res) {
|
|
|
320
346
|
candidates,
|
|
321
347
|
};
|
|
322
348
|
}
|
|
349
|
+
const CANDIDATE_INCOMPLETE_REASONS = new Set([
|
|
350
|
+
"missing_birth",
|
|
351
|
+
"rpc_unchecked",
|
|
352
|
+
"signer_unconfirmed",
|
|
353
|
+
"instance_missing",
|
|
354
|
+
"wasm_unresolved",
|
|
355
|
+
"inconsistent_creation_ledger",
|
|
356
|
+
]);
|
|
357
|
+
const LOOKUP_INCOMPLETE_REASONS = new Set([
|
|
358
|
+
"reducer_errors",
|
|
359
|
+
"index_behind",
|
|
360
|
+
]);
|
|
361
|
+
const PUBLIC_KEY_HEX = /^04[0-9a-f]{128}$/;
|
|
362
|
+
function closedReasons(value, allowed) {
|
|
363
|
+
if (!Array.isArray(value) || value.length === 0)
|
|
364
|
+
return undefined;
|
|
365
|
+
if (!value.every((reason) => typeof reason === "string" && allowed.has(reason))) {
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|
|
368
|
+
return value;
|
|
369
|
+
}
|
|
370
|
+
function v2SignerIsComplete(value) {
|
|
371
|
+
if (!isRecord(value))
|
|
372
|
+
return false;
|
|
373
|
+
const expiration = value.expiration;
|
|
374
|
+
const expirationUnit = value.expiration_unit;
|
|
375
|
+
return (typeof value.publicKey === "string" &&
|
|
376
|
+
PUBLIC_KEY_HEX.test(value.publicKey) &&
|
|
377
|
+
(expiration === null ||
|
|
378
|
+
(typeof expiration === "number" &&
|
|
379
|
+
Number.isSafeInteger(expiration) &&
|
|
380
|
+
expiration >= 0)) &&
|
|
381
|
+
((expiration === null && expirationUnit === null) ||
|
|
382
|
+
(expiration !== null &&
|
|
383
|
+
(expirationUnit === "unix" || expirationUnit === "ledger"))) &&
|
|
384
|
+
(value.storage === "persistent" || value.storage === "temporary") &&
|
|
385
|
+
value.status === "live" &&
|
|
386
|
+
value.rpcConfirmed === true);
|
|
387
|
+
}
|
|
388
|
+
function parseV2DiagnosticCandidate(value) {
|
|
389
|
+
const candidate = parseWalletRef(value);
|
|
390
|
+
if (!candidate || !isRecord(value))
|
|
391
|
+
return candidate;
|
|
392
|
+
if (value.incomplete === true) {
|
|
393
|
+
const reasons = closedReasons(value.incompleteReasons, CANDIDATE_INCOMPLETE_REASONS);
|
|
394
|
+
if (reasons)
|
|
395
|
+
candidate.incompleteReasons = reasons;
|
|
396
|
+
}
|
|
397
|
+
return candidate;
|
|
398
|
+
}
|
|
399
|
+
function v2EnvelopeIsComplete(input, credentialId, indexedThroughLedger, expectedNetwork) {
|
|
400
|
+
if (!isRecord(input))
|
|
401
|
+
return false;
|
|
402
|
+
const value = input;
|
|
403
|
+
const rpcCheckedAtLedger = parseV2Ledger(value.rpcCheckedAtLedger);
|
|
404
|
+
return (value.schema === 2 &&
|
|
405
|
+
value.credentialId === credentialId &&
|
|
406
|
+
expectedNetwork !== undefined &&
|
|
407
|
+
value.network === expectedNetwork &&
|
|
408
|
+
value.complete === true &&
|
|
409
|
+
indexedThroughLedger !== undefined &&
|
|
410
|
+
rpcCheckedAtLedger !== undefined &&
|
|
411
|
+
indexedThroughLedger >= rpcCheckedAtLedger &&
|
|
412
|
+
Array.isArray(value.candidates) &&
|
|
413
|
+
(!Object.hasOwn(value, "wallets") ||
|
|
414
|
+
(Array.isArray(value.wallets) &&
|
|
415
|
+
sameContractIds(value.candidates
|
|
416
|
+
.map(parseWalletRef)
|
|
417
|
+
.filter((candidate) => candidate !== undefined), value.wallets))) &&
|
|
418
|
+
Number.isSafeInteger(value.count) &&
|
|
419
|
+
value.count === value.candidates.length &&
|
|
420
|
+
typeof value.ambiguous === "boolean" &&
|
|
421
|
+
!("incompleteReasons" in value));
|
|
422
|
+
}
|
|
423
|
+
function parseCompleteV2Candidate(value) {
|
|
424
|
+
if (!isRecord(value) || value.incomplete !== false)
|
|
425
|
+
return undefined;
|
|
426
|
+
if ("incompleteReasons" in value)
|
|
427
|
+
return undefined;
|
|
428
|
+
const contractId = value.contractId;
|
|
429
|
+
const birthWasmHash = value.birthWasmHash;
|
|
430
|
+
const creationTransactionHash = value.creationTransactionHash;
|
|
431
|
+
const creationLedger = parseV2Ledger(value.creationLedger);
|
|
432
|
+
if (typeof contractId !== "string" ||
|
|
433
|
+
!StrKey.isValidContract(contractId) ||
|
|
434
|
+
typeof birthWasmHash !== "string" ||
|
|
435
|
+
!HEX_64.test(birthWasmHash) ||
|
|
436
|
+
typeof creationTransactionHash !== "string" ||
|
|
437
|
+
!HEX_64.test(creationTransactionHash) ||
|
|
438
|
+
creationLedger === undefined ||
|
|
439
|
+
typeof value.currentWasmHash !== "string" ||
|
|
440
|
+
!HEX_64.test(value.currentWasmHash) ||
|
|
441
|
+
(value.generation !== "legacy" && value.generation !== "v1") ||
|
|
442
|
+
typeof value.derivedAddress !== "boolean" ||
|
|
443
|
+
typeof value.collision !== "boolean" ||
|
|
444
|
+
!v2SignerIsComplete(value.signer)) {
|
|
445
|
+
return undefined;
|
|
446
|
+
}
|
|
447
|
+
return {
|
|
448
|
+
contractId,
|
|
449
|
+
birthWasmHash,
|
|
450
|
+
creationTransactionHash,
|
|
451
|
+
creationLedger,
|
|
452
|
+
derivedAddress: value.derivedAddress,
|
|
453
|
+
collision: value.collision,
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
/** Parse the frozen Mercury credential-lookup v2 wire contract fail-closed. */
|
|
457
|
+
function parseV2LookupResponse(res, credentialId, expectedNetwork) {
|
|
458
|
+
if (!isRecord(res))
|
|
459
|
+
return { complete: false, candidates: [] };
|
|
460
|
+
const rows = Array.isArray(res.candidates) ? res.candidates : [];
|
|
461
|
+
const diagnosticRows = rows.length > 0 || !Array.isArray(res.wallets) ? rows : res.wallets;
|
|
462
|
+
const diagnosticCandidates = diagnosticRows
|
|
463
|
+
.map(parseV2DiagnosticCandidate)
|
|
464
|
+
.filter((candidate) => candidate !== undefined);
|
|
465
|
+
const indexedThroughLedger = parseV2Ledger(res.indexedThroughLedger);
|
|
466
|
+
const responseReasons = closedReasons(res.incompleteReasons, LOOKUP_INCOMPLETE_REASONS);
|
|
467
|
+
const incomplete = () => ({
|
|
468
|
+
complete: false,
|
|
469
|
+
...(typeof res.schema === "number" ? { schema: res.schema } : {}),
|
|
470
|
+
...(indexedThroughLedger !== undefined ? { indexedThroughLedger } : {}),
|
|
471
|
+
...(responseReasons ? { incompleteReasons: responseReasons } : {}),
|
|
472
|
+
candidates: diagnosticCandidates,
|
|
473
|
+
});
|
|
474
|
+
if (!v2EnvelopeIsComplete(res, credentialId, indexedThroughLedger, expectedNetwork)) {
|
|
475
|
+
return incomplete();
|
|
476
|
+
}
|
|
477
|
+
const candidates = rows.map(parseCompleteV2Candidate);
|
|
478
|
+
if (candidates.some((candidate) => candidate === undefined)) {
|
|
479
|
+
return incomplete();
|
|
480
|
+
}
|
|
481
|
+
const completeCandidates = candidates;
|
|
482
|
+
const ids = new Set(completeCandidates.map(({ contractId }) => contractId));
|
|
483
|
+
const ambiguous = ids.size > 1;
|
|
484
|
+
const hasDerived = completeCandidates.some(({ derivedAddress }) => derivedAddress);
|
|
485
|
+
const hasNonDerived = completeCandidates.some(({ derivedAddress }) => !derivedAddress);
|
|
486
|
+
const collision = hasDerived && hasNonDerived;
|
|
487
|
+
if (ids.size !== completeCandidates.length ||
|
|
488
|
+
res.ambiguous !== ambiguous ||
|
|
489
|
+
completeCandidates.some((candidate) => candidate.creationLedger > res.indexedThroughLedger) ||
|
|
490
|
+
completeCandidates.some((candidate) => candidate.collision !== collision)) {
|
|
491
|
+
return incomplete();
|
|
492
|
+
}
|
|
493
|
+
return {
|
|
494
|
+
schema: 2,
|
|
495
|
+
complete: true,
|
|
496
|
+
indexedThroughLedger: res.indexedThroughLedger,
|
|
497
|
+
candidates: completeCandidates.map(({ derivedAddress: _derivedAddress, collision: _collision, ...candidate }) => candidate),
|
|
498
|
+
};
|
|
499
|
+
}
|
|
323
500
|
/** Map a fully-decoded passkey-indexer signer row onto a {@link WalletSigner}. */
|
|
324
501
|
function jsonToWalletSigner(json) {
|
|
325
502
|
const publicKey = json.publicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mercury.js","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mercury.js","sourceRoot":"","sources":["../../src/indexer/mercury.ts"],"names":[],"mappings":"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"}
|
package/dist/indexer/types.d.ts
CHANGED
|
@@ -59,9 +59,15 @@ export interface WalletCandidate {
|
|
|
59
59
|
/** Ledger that created the contract. */
|
|
60
60
|
creationLedger: number;
|
|
61
61
|
}
|
|
62
|
+
/** Closed Mercury v2 causes for one incomplete candidate. */
|
|
63
|
+
export type WalletCandidateIncompleteReason = "missing_birth" | "rpc_unchecked" | "signer_unconfirmed" | "instance_missing" | "wasm_unresolved" | "inconsistent_creation_ledger";
|
|
64
|
+
/** Closed Mercury v2 causes for an incomplete lookup response. */
|
|
65
|
+
export type WalletLookupIncompleteReason = "reducer_errors" | "index_behind";
|
|
62
66
|
/** An incomplete row retained only for diagnostics. It is never connectable. */
|
|
63
67
|
export type IncompleteWalletCandidate = Partial<WalletCandidate> & {
|
|
64
68
|
contractId: string;
|
|
69
|
+
/** Mercury v2 candidate-level causes. Present only for an incomplete row. */
|
|
70
|
+
incompleteReasons?: WalletCandidateIncompleteReason[];
|
|
65
71
|
};
|
|
66
72
|
/**
|
|
67
73
|
* Reverse-lookup result. `complete` is true only when the indexer claimed a
|
|
@@ -78,6 +84,8 @@ export type WalletCandidateLookup = {
|
|
|
78
84
|
schema?: number;
|
|
79
85
|
complete: false;
|
|
80
86
|
indexedThroughLedger?: number;
|
|
87
|
+
/** Mercury v2 response-level causes. These do not describe one row. */
|
|
88
|
+
incompleteReasons?: WalletLookupIncompleteReason[];
|
|
81
89
|
/** Diagnostic rows only. Callers must reject the full response. */
|
|
82
90
|
candidates: IncompleteWalletCandidate[];
|
|
83
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/indexer/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gCAAgC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,uBAAuB,EAAE,MAAM,CAAC;IAChC,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IACjE,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/indexer/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gCAAgC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,uBAAuB,EAAE,MAAM,CAAC;IAChC,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,MAAM,+BAA+B,GACvC,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,8BAA8B,CAAC;AAEnC,kEAAkE;AAClE,MAAM,MAAM,4BAA4B,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAE7E,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,+BAA+B,EAAE,CAAC;CACvD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,IAAI,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACnD,mEAAmE;IACnE,UAAU,EAAE,yBAAyB,EAAE,CAAC;CACzC,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,4EAA4E;IAC5E,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5D,+EAA+E;IAC/E,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
|
package/dist/kit/tx-ops.d.ts
CHANGED
|
@@ -36,12 +36,44 @@ export interface SignAuthEntryDeps {
|
|
|
36
36
|
spec: ContractSpec;
|
|
37
37
|
signerContext: SignerContext;
|
|
38
38
|
calculateExpiration: () => Promise<number>;
|
|
39
|
+
/** Connected wallet contract id. Required to refuse nested wallet-admin calls. */
|
|
40
|
+
contractId?: string;
|
|
39
41
|
}
|
|
40
42
|
/** Per-call signing options. */
|
|
41
43
|
export interface SignOptions {
|
|
42
44
|
/** Signature expiration ledger (defaults to the configured window). */
|
|
43
45
|
expiration?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Allow this entry to authorize nested calls back into the connected wallet
|
|
48
|
+
* (e.g. `add_signer`, `update_signer`, `remove_signer`, `upgrade`,
|
|
49
|
+
* `add_secp256r1`). Default `false`. Wallet-admin writes must use the
|
|
50
|
+
* dedicated builders (`addEd25519`, `addSecp256r1`, `addPolicy`, `remove`,
|
|
51
|
+
* `upgrade`), never a generic dApp `sign()` call.
|
|
52
|
+
*/
|
|
53
|
+
allowWalletReentry?: boolean;
|
|
44
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Refuse any wallet-admin use covered by this signature — the entry root
|
|
57
|
+
* itself or any nested sub-invocation. A signature covers the whole
|
|
58
|
+
* authorization tree, so both shapes are the same grant:
|
|
59
|
+
*
|
|
60
|
+
* - Shape A (graft): dApp root (e.g. `evil.claim`) with a nested
|
|
61
|
+
* `wallet.add_signer(attacker)` sub-invocation.
|
|
62
|
+
* - Shape B (hostile root): the transaction's top-level call IS
|
|
63
|
+
* `wallet.add_signer(attacker)` (or `add_secp256r1` / `update_signer` /
|
|
64
|
+
* `remove_signer` / `upgrade`), built by a hostile dApp and handed to
|
|
65
|
+
* generic `sign()`. The auth-entry root is the admin call itself, so a
|
|
66
|
+
* sub-invocation-only check signs it clean.
|
|
67
|
+
*
|
|
68
|
+
* Legit wallet-admin writes build the admin call as the transaction's own
|
|
69
|
+
* host function through the dedicated builders (`addEd25519`,
|
|
70
|
+
* `addSecp256r1`, `addPolicy`, `remove`, `upgrade`). They pass
|
|
71
|
+
* `allowWalletReentry: true` at sign time to declare that intent. A generic
|
|
72
|
+
* dApp `sign()` call must never carry wallet-admin authority, root or nested.
|
|
73
|
+
*
|
|
74
|
+
* @throws {SigningError} If wallet-admin authority is found and not allowed.
|
|
75
|
+
*/
|
|
76
|
+
export declare function assertNoWalletAdminReentry(entry: xdr.SorobanAuthorizationEntry, contractId: string | undefined, allowWalletReentry: boolean): void;
|
|
45
77
|
/**
|
|
46
78
|
* Sign a single Soroban authorization entry with a {@link Signer}, merging the
|
|
47
79
|
* resulting `(SignerKey, Signature)` pair into the entry's flat `Signatures`
|
|
@@ -54,11 +86,35 @@ export declare function signAuthEntry(deps: SignAuthEntryDeps, entry: xdr.Soroba
|
|
|
54
86
|
export interface SignTxDeps extends SignAuthEntryDeps {
|
|
55
87
|
getContractId: () => string | undefined;
|
|
56
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Pin each wallet-admin entry root to the transaction's own top-level host
|
|
91
|
+
* function. The dedicated builders produce exactly this shape: the transaction
|
|
92
|
+
* invokes `wallet.<admin-fn>` and the single auth entry roots at that same
|
|
93
|
+
* call. A hostile dApp handing over a pre-built admin transaction cannot forge
|
|
94
|
+
* the caller's envelope, so a mismatch is refused even when the caller opted
|
|
95
|
+
* into `allowWalletReentry` (making `signAdmin` self-validating instead of a
|
|
96
|
+
* full bypass on misuse).
|
|
97
|
+
*
|
|
98
|
+
* Non-admin roots (dApp calls such as token transfers) pass through: the
|
|
99
|
+
* per-entry tree check already refused nested wallet-admin authority.
|
|
100
|
+
*
|
|
101
|
+
* @throws {SigningError} If a wallet-admin root does not match the top-level call.
|
|
102
|
+
*/
|
|
103
|
+
export declare function assertAdminRootMatchesHostFunction(entry: xdr.SorobanAuthorizationEntry, contractId: string, hostFunc: xdr.HostFunction): void;
|
|
57
104
|
/**
|
|
58
105
|
* Sign every auth entry of an {@link AssembledTransaction} that is authorized by
|
|
59
106
|
* the connected wallet, using `signer`. Returns the same transaction with its
|
|
60
107
|
* auth entries signed.
|
|
61
108
|
*
|
|
109
|
+
* Generic dApp `sign()` calls must never carry wallet-admin authority. Standalone
|
|
110
|
+
* `signAuthEntry()` has no transaction context, so a wallet-admin entry root is
|
|
111
|
+
* necessarily hostile there (dedicated builders are the only legit producers of
|
|
112
|
+
* admin roots, and they sign through this path with `allowWalletReentry: true`).
|
|
113
|
+
* This function additionally pins each wallet-admin entry root to the
|
|
114
|
+
* transaction's own top-level host function: the dedicated builders produce
|
|
115
|
+
* exactly that shape, while a hostile dApp handing over a pre-built admin
|
|
116
|
+
* transaction cannot forge the transaction envelope the caller already holds.
|
|
117
|
+
*
|
|
62
118
|
* @throws {SigningError} If no wallet is connected.
|
|
63
119
|
*/
|
|
64
120
|
export declare function sign<T>(deps: SignTxDeps, txn: AssembledTransaction<T>, signer: Signer, options?: SignOptions): Promise<AssembledTransaction<T>>;
|
package/dist/kit/tx-ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-ops.d.ts","sourceRoot":"","sources":["../../src/kit/tx-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tx-ops.d.ts","sourceRoot":"","sources":["../../src/kit/tx-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA0C,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,IAAI,YAAY,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAa3D,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/E;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAyBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,GAAG,CAAC,yBAAyB,EACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,kBAAkB,EAAE,OAAO,GAC1B,IAAI,CAuDN;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,GAAG,CAAC,yBAAyB,EACpC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAoDxC;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,GAAG,CAAC,yBAAyB,EACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,CAAC,YAAY,GACzB,IAAI,CA+BN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,IAAI,CAAC,CAAC,EAC1B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAkClC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE;QAAE,KAAK,IAAI,GAAG,CAAC,sBAAsB,CAAA;KAAE,CAAC;CAC1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,EACD,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,CAiDjB"}
|