passkey-kit 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +18 -9
  2. package/dist/constants.d.ts +4 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +4 -0
  5. package/dist/constants.js.map +1 -1
  6. package/dist/contract-errors.d.ts.map +1 -1
  7. package/dist/contract-errors.js +3 -0
  8. package/dist/contract-errors.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/indexer/mercury.d.ts +6 -0
  14. package/dist/indexer/mercury.d.ts.map +1 -1
  15. package/dist/indexer/mercury.js +10 -2
  16. package/dist/indexer/mercury.js.map +1 -1
  17. package/dist/kit/auth-payload.d.ts +17 -0
  18. package/dist/kit/auth-payload.d.ts.map +1 -1
  19. package/dist/kit/auth-payload.js +24 -0
  20. package/dist/kit/auth-payload.js.map +1 -1
  21. package/dist/kit/tx-ops.d.ts +3 -0
  22. package/dist/kit/tx-ops.d.ts.map +1 -1
  23. package/dist/kit/tx-ops.js +13 -1
  24. package/dist/kit/tx-ops.js.map +1 -1
  25. package/dist/kit.d.ts +5 -1
  26. package/dist/kit.d.ts.map +1 -1
  27. package/dist/kit.js +21 -7
  28. package/dist/kit.js.map +1 -1
  29. package/dist/managers/signer-manager.d.ts +13 -2
  30. package/dist/managers/signer-manager.d.ts.map +1 -1
  31. package/dist/managers/signer-manager.js +22 -3
  32. package/dist/managers/signer-manager.js.map +1 -1
  33. package/dist/relayer.d.ts.map +1 -1
  34. package/dist/relayer.js +4 -1
  35. package/dist/relayer.js.map +1 -1
  36. package/dist/rpc-data.d.ts +10 -0
  37. package/dist/rpc-data.d.ts.map +1 -1
  38. package/dist/rpc-data.js +12 -0
  39. package/dist/rpc-data.js.map +1 -1
  40. package/dist/utils.d.ts +22 -2
  41. package/dist/utils.d.ts.map +1 -1
  42. package/dist/utils.js +145 -45
  43. package/dist/utils.js.map +1 -1
  44. package/dist/validation.d.ts +6 -4
  45. package/dist/validation.d.ts.map +1 -1
  46. package/dist/validation.js +8 -6
  47. package/dist/validation.js.map +1 -1
  48. package/dist/version.d.ts +1 -1
  49. package/dist/version.js +1 -1
  50. package/package.json +3 -3
package/dist/kit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import type { Server } from "@stellar/stellar-sdk/rpc";
14
14
  import type { AssembledTransaction } from "@stellar/stellar-sdk/contract";
15
15
  import type { Client as PasskeyClient, SignerVal } from "passkey-kit-sdk";
16
16
  import type { Signer, SignerContext } from "../signers.js";
17
- import { SignerStore, type SignerKey, type SignerLimits } from "../types.js";
17
+ import { SignerKey, SignerStore, type SignerLimits } from "../types.js";
18
18
  import { type SignOptions } from "../kit/tx-ops.js";
19
19
  import { type WalletTx } from "../kit/wallet-ops.js";
20
20
  export interface SignerManagerDeps {
@@ -37,7 +37,18 @@ export declare class SignerManager {
37
37
  /** Sign an assembled transaction's wallet auth entries. */
38
38
  sign<T>(txn: AssembledTransaction<T>, signer?: Signer, options?: SignOptions): Promise<AssembledTransaction<T>>;
39
39
  addSecp256r1(keyId: string | Uint8Array, publicKey: string | Uint8Array, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
40
- updateSecp256r1(keyId: string | Uint8Array, publicKey: string | Uint8Array, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
40
+ /**
41
+ * Update a passkey signer's limits/storage/expiration.
42
+ *
43
+ * The signer's `publicKey` is deliberately NOT a parameter: `update_signer`
44
+ * replaces the whole on-chain `SignerVal`, so the ledger is treated as the
45
+ * single source of truth for key material — a limits-only update must never
46
+ * change the stored public key. The authoritative key
47
+ * is re-read from the ledger here, and only that value is written back.
48
+ *
49
+ * @throws {SignerNotFoundError} If the keyId is not a live on-chain signer.
50
+ */
51
+ updateSecp256r1(keyId: string | Uint8Array, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
41
52
  addEd25519(publicKey: string, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
42
53
  updateEd25519(publicKey: string, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
43
54
  addPolicy(policy: string, limits: SignerLimits, store: SignerStore, expiration?: number): Promise<WalletTx>;
@@ -1 +1 @@
1
- {"version":3,"file":"signer-manager.d.ts","sourceRoot":"","sources":["../../src/managers/signer-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer-manager.d.ts","sourceRoot":"","sources":["../../src/managers/signer-manager.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@
10
10
  * @packageDocumentation
11
11
  */
12
12
  import { PasskeySigner } from "../signers.js";
13
- import { WalletNotConnectedError } from "../errors.js";
13
+ import { SignerKey, } from "../types.js";
14
+ import base64url from "../base64url.js";
15
+ import { SignerNotFoundError, WalletNotConnectedError } from "../errors.js";
14
16
  import { signAuthEntry as signAuthEntryOp, sign as signOp, } from "../kit/tx-ops.js";
15
17
  import { buildEd25519SignerTx, buildPolicySignerTx, buildRemoveSignerTx, buildSecp256r1SignerTx, buildUpgradeTx, getSigner as getSignerOp, } from "../kit/wallet-ops.js";
16
18
  /** Extract the contract `Spec` from a generated client (not in the public type). */
@@ -56,8 +58,25 @@ export class SignerManager {
56
58
  addSecp256r1(keyId, publicKey, limits, store, expiration) {
57
59
  return buildSecp256r1SignerTx(this.writeDeps(), "add_signer", keyId, publicKey, limits, store, expiration);
58
60
  }
59
- updateSecp256r1(keyId, publicKey, limits, store, expiration) {
60
- return buildSecp256r1SignerTx(this.writeDeps(), "update_signer", keyId, publicKey, limits, store, expiration);
61
+ /**
62
+ * Update a passkey signer's limits/storage/expiration.
63
+ *
64
+ * The signer's `publicKey` is deliberately NOT a parameter: `update_signer`
65
+ * replaces the whole on-chain `SignerVal`, so the ledger is treated as the
66
+ * single source of truth for key material — a limits-only update must never
67
+ * change the stored public key. The authoritative key
68
+ * is re-read from the ledger here, and only that value is written back.
69
+ *
70
+ * @throws {SignerNotFoundError} If the keyId is not a live on-chain signer.
71
+ */
72
+ async updateSecp256r1(keyId, limits, store, expiration) {
73
+ const keyIdBase64 = typeof keyId === "string" ? keyId : base64url(Buffer.from(keyId));
74
+ const signerVal = await this.getSigner(SignerKey.Secp256r1(keyIdBase64));
75
+ if (!signerVal || signerVal.tag !== "Secp256r1") {
76
+ throw new SignerNotFoundError(keyIdBase64, "Cannot update a Secp256r1 signer that does not exist on-chain.");
77
+ }
78
+ const [publicKey] = signerVal.values;
79
+ return buildSecp256r1SignerTx(this.writeDeps(), "update_signer", keyIdBase64, publicKey, limits, store, expiration);
61
80
  }
62
81
  addEd25519(publicKey, limits, store, expiration) {
63
82
  return buildEd25519SignerTx(this.writeDeps(), "add_signer", publicKey, limits, store, expiration);
@@ -1 +1 @@
1
- {"version":3,"file":"signer-manager.js","sourceRoot":"","sources":["../../src/managers/signer-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer-manager.js","sourceRoot":"","sources":["../../src/managers/signer-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relayer.d.ts","sourceRoot":"","sources":["../src/relayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAQxE,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAaD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,MAAM,EAAE,mBAAmB;IAevC;;;;OAIG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAW7B;;;OAGG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAU7B,8EAA8E;IACxE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAIzD,GAAG;IAUjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,QAAQ;CAiCjB"}
1
+ {"version":3,"file":"relayer.d.ts","sourceRoot":"","sources":["../src/relayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAQxE,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,MAAM,EAAE,mBAAmB;IAevC;;;;OAIG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAW7B;;;OAGG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAU7B,8EAA8E;IACxE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAIzD,GAAG;IAUjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,QAAQ;CAiCjB"}
package/dist/relayer.js CHANGED
@@ -28,8 +28,11 @@ import { DEFAULT_RELAYER_TIMEOUT_MS } from "./constants.js";
28
28
  * on-chain inclusion counts as success — anything else is failure or still
29
29
  * pending. An allowlist (not a failure denylist) is deliberate: an unrecognized
30
30
  * or non-terminal status must never be mistaken for a confirmed transaction.
31
+ * Word-bounded so negated forms ("unsuccessful", "unconfirmed") and
32
+ * non-terminal forms ("confirming") never match. Keep identical to
33
+ * relayer-proxy/src/constants.ts.
31
34
  */
32
- const SUCCESS_STATUS = /confirm|success/i;
35
+ const SUCCESS_STATUS = /\b(?:confirm(?:ed)?|success(?:ful)?)\b/i;
33
36
  /** Terminal-failure statuses. */
34
37
  const FAILURE_STATUS = /fail|error|revert|reject/i;
35
38
  export class RelayerClient {
@@ -1 +1 @@
1
- {"version":3,"file":"relayer.js","sourceRoot":"","sources":["../src/relayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayer.js","sourceRoot":"","sources":["../src/relayer.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,16 @@ export declare function contractDataLedgerKey(contractId: string, key: xdr.ScVal
25
25
  * a flaky RPC for an absent entry.
26
26
  */
27
27
  export declare function readContractData(rpc: Server, contractId: string, key: xdr.ScVal, durability: Durability): Promise<xdr.ScVal | null>;
28
+ /**
29
+ * Whether a contract's instance entry exists on-chain.
30
+ *
31
+ * Returns `false` only on a genuine not-found; a transport error (429/5xx/
32
+ * timeout) throws. `connectWallet` uses this to confirm the deterministically
33
+ * derived wallet address: only an authoritative not-found may abandon the
34
+ * canonical derivation for the storage/indexer fallbacks — a flaky RPC must
35
+ * never reroute resolution away from the canonical derivation.
36
+ */
37
+ export declare function contractInstanceExists(rpc: Server, contractId: string): Promise<boolean>;
28
38
  /**
29
39
  * Whether a contract-data entry exists in the given durability.
30
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-data.d.ts","sourceRoot":"","sources":["../src/rpc-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAW,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEnE,oFAAoF;AACpF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,GAAG,CAAC,SAAS,CAWf;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAM3B;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,OAAO,CAAC,CAElB"}
1
+ {"version":3,"file":"rpc-data.d.ts","sourceRoot":"","sources":["../src/rpc-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAW,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEnE,oFAAoF;AACpF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,GAAG,CAAC,SAAS,CAWf;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAM3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,CAAC,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,OAAO,CAAC,CAElB"}
package/dist/rpc-data.js CHANGED
@@ -37,6 +37,18 @@ export async function readContractData(rpc, contractId, key, durability) {
37
37
  const entry = entries[0];
38
38
  return entry ? entry.val.contractData().val() : null;
39
39
  }
40
+ /**
41
+ * Whether a contract's instance entry exists on-chain.
42
+ *
43
+ * Returns `false` only on a genuine not-found; a transport error (429/5xx/
44
+ * timeout) throws. `connectWallet` uses this to confirm the deterministically
45
+ * derived wallet address: only an authoritative not-found may abandon the
46
+ * canonical derivation for the storage/indexer fallbacks — a flaky RPC must
47
+ * never reroute resolution away from the canonical derivation.
48
+ */
49
+ export async function contractInstanceExists(rpc, contractId) {
50
+ return contractDataExists(rpc, contractId, xdr.ScVal.scvLedgerKeyContractInstance(), Durability.Persistent);
51
+ }
40
52
  /**
41
53
  * Whether a contract-data entry exists in the given durability.
42
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-data.js","sourceRoot":"","sources":["../src/rpc-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAe,MAAM,0BAA0B,CAAC;AAEnE,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,GAAG,CAAC,qBAAqB,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QACtD,GAAG;QACH,UAAU,EACR,UAAU,KAAK,UAAU,CAAC,SAAS;YACjC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE;YACxC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,EAAE;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAC5C,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CACnD,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,OAAO,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"rpc-data.js","sourceRoot":"","sources":["../src/rpc-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAe,MAAM,0BAA0B,CAAC;AAEnE,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,GAAG,CAAC,qBAAqB,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QACtD,GAAG;QACH,UAAU,EACR,UAAU,KAAK,UAAU,CAAC,SAAS;YACjC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE;YACxC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,EAAE;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAC5C,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CACnD,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAW,EACX,UAAkB;IAElB,OAAO,kBAAkB,CACvB,GAAG,EACH,UAAU,EACV,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,EACxC,UAAU,CAAC,UAAU,CACtB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,UAAkB,EAClB,GAAc,EACd,UAAsB;IAEtB,OAAO,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC;AAC7E,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -20,6 +20,13 @@ import type { RegistrationResponseJSON } from "@simplewebauthn/browser";
20
20
  * @returns The derived contract address (`C…`)
21
21
  */
22
22
  export declare function deriveContractAddress(keyId: Buffer, deployerPublicKey: string, networkPassphrase: string): string;
23
+ /**
24
+ * Whether an uncompressed `0x04 || x || y` key is a point on the P-256 curve
25
+ * (`y² ≡ x³ − 3x + b (mod p)`, coordinates in-field). A structurally valid but
26
+ * off-curve key would register fine and deploy a wallet no signature can ever
27
+ * satisfy, so extraction rejects it up front.
28
+ */
29
+ export declare function isOnP256Curve(publicKey: Uint8Array): boolean;
23
30
  /**
24
31
  * Extract the 65-byte uncompressed secp256r1 public key from a WebAuthn
25
32
  * registration (attestation) response.
@@ -29,17 +36,30 @@ export declare function deriveContractAddress(keyId: Buffer, deployerPublicKey:
29
36
  * 2. `response.publicKey` decoded from SPKI via WebCrypto (`crypto.subtle`),
30
37
  * which is the correct, non-magic-offset way to normalize the DER-encoded
31
38
  * SubjectPublicKeyInfo most authenticators return.
32
- * 3. Parsing the COSE key out of `authenticatorData` / `attestationObject`.
39
+ * 3. Parsing the COSE key out of `authenticatorData`, then
40
+ * `attestationObject` — with the COSE structure verified in place, never
41
+ * trusted fixed offsets.
33
42
  *
34
- * @throws {WebAuthnError} If the public key cannot be extracted.
43
+ * Whatever the source, the result must be a valid point ON the P-256 curve;
44
+ * a mangled key is rejected here rather than deployed as an unusable wallet
45
+ * signer.
46
+ *
47
+ * @throws {WebAuthnError} If no valid public key can be extracted.
35
48
  */
36
49
  export declare function extractPublicKeyFromAttestation(response: RegistrationResponseJSON["response"]): Promise<Uint8Array>;
37
50
  /**
38
51
  * Convert a DER-encoded ECDSA signature to Stellar's compact `r || s` form with
39
52
  * a low-S value (S <= n/2), as required by the secp256r1 host function.
40
53
  *
54
+ * The DER structure is validated before any offset is dereferenced:
55
+ * sequence/integer tags, short-form lengths that exactly span the buffer, and
56
+ * `r`/`s` values in `[1, n-1]`. A WebAuthn P-256 signature always fits
57
+ * short-form DER (total length < 128 bytes), so long-form lengths are rejected.
58
+ *
41
59
  * @param derSignature - The DER-encoded signature
42
60
  * @returns 64-byte compact signature (`r || s`)
61
+ * @throws {ValidationError} If the signature is not structurally valid DER or
62
+ * `r`/`s` are out of range for P-256.
43
63
  */
44
64
  export declare function compactSignature(derSignature: Buffer): Uint8Array;
45
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAcxE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAcR;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,GAC7C,OAAO,CAAC,UAAU,CAAC,CAsFrB;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAyBjE;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAoBxE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAcR;AAcD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAe5D;AAgDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,GAC7C,OAAO,CAAC,UAAU,CAAC,CAoDrB;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAmDjE;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C"}
package/dist/utils.js CHANGED
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import { StrKey, hash, xdr, Address } from "@stellar/stellar-sdk";
7
7
  import base64url from "./base64url.js";
8
- import { SECP256R1_PUBLIC_KEY_SIZE, SECP256R1_CURVE_ORDER, UNCOMPRESSED_PUBKEY_PREFIX, WEBAUTHN_CHALLENGE_SIZE, } from "./constants.js";
9
- import { WebAuthnError, PasskeyKitErrorCode } from "./errors.js";
8
+ import { SECP256R1_PUBLIC_KEY_SIZE, SECP256R1_CURVE_ORDER, SECP256R1_FIELD_PRIME, SECP256R1_B, UNCOMPRESSED_PUBKEY_PREFIX, WEBAUTHN_CHALLENGE_SIZE, } from "./constants.js";
9
+ import { ValidationError, WebAuthnError, PasskeyKitErrorCode, } from "./errors.js";
10
10
  // ============================================================================
11
11
  // Deterministic contract-address derivation
12
12
  // ============================================================================
@@ -38,6 +38,79 @@ export function deriveContractAddress(keyId, deployerPublicKey, networkPassphras
38
38
  // ============================================================================
39
39
  // WebAuthn public-key extraction
40
40
  // ============================================================================
41
+ /** COSE map prefix for an ES256 (P-256) key: `{1:2, 3:-26, -1:1, -2: bytes(32)…}`. */
42
+ const ES256_COSE_PREFIX = Buffer.from([
43
+ 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01, 0x21, 0x58, 0x20,
44
+ ]);
45
+ /** COSE label for the `y` coordinate that must follow `x`: `-3: bytes(32)`. */
46
+ const COSE_Y_LABEL = Buffer.from([0x22, 0x58, 0x20]);
47
+ /**
48
+ * Whether an uncompressed `0x04 || x || y` key is a point on the P-256 curve
49
+ * (`y² ≡ x³ − 3x + b (mod p)`, coordinates in-field). A structurally valid but
50
+ * off-curve key would register fine and deploy a wallet no signature can ever
51
+ * satisfy, so extraction rejects it up front.
52
+ */
53
+ export function isOnP256Curve(publicKey) {
54
+ const key = Buffer.from(publicKey);
55
+ if (key.length !== SECP256R1_PUBLIC_KEY_SIZE ||
56
+ key[0] !== UNCOMPRESSED_PUBKEY_PREFIX) {
57
+ return false;
58
+ }
59
+ const p = SECP256R1_FIELD_PRIME;
60
+ const x = BigInt("0x" + key.subarray(1, 33).toString("hex"));
61
+ const y = BigInt("0x" + key.subarray(33, 65).toString("hex"));
62
+ if (x >= p || y >= p)
63
+ return false;
64
+ const x3 = (((x * x) % p) * x) % p;
65
+ const rhs = (((x3 - ((3n * x) % p) + SECP256R1_B) % p) + p) % p;
66
+ return (y * y) % p === rhs;
67
+ }
68
+ /**
69
+ * Read `x || y` out of a COSE key at `xStart`, verifying the `y` label bytes
70
+ * and buffer bounds instead of trusting fixed offsets. Returns the
71
+ * uncompressed `0x04 || x || y` point, or `undefined` when the shape doesn't
72
+ * match.
73
+ */
74
+ function coseCoordinates(buf, xStart) {
75
+ const yLabelStart = xStart + 32;
76
+ const yStart = yLabelStart + COSE_Y_LABEL.length;
77
+ if (buf.length < yStart + 32)
78
+ return undefined;
79
+ if (!buf.subarray(yLabelStart, yStart).equals(COSE_Y_LABEL))
80
+ return undefined;
81
+ return Buffer.concat([
82
+ Buffer.from([UNCOMPRESSED_PUBKEY_PREFIX]),
83
+ buf.subarray(xStart, xStart + 32),
84
+ buf.subarray(yStart, yStart + 32),
85
+ ]);
86
+ }
87
+ /**
88
+ * Parse the attested COSE key out of raw `authenticatorData`:
89
+ * `rpIdHash(32) | flags(1) | counter(4) | aaguid(16) | credIdLen(2) | credId | COSE`.
90
+ * Every offset is bounds-checked and the ES256 COSE prefix is verified in
91
+ * place before any coordinate is sliced.
92
+ */
93
+ function coseKeyFromAuthenticatorData(ad) {
94
+ if (ad.length < 55)
95
+ return undefined;
96
+ const credentialIdLength = (ad[53] << 8) | ad[54];
97
+ const coseStart = 55 + credentialIdLength;
98
+ if (ad.length < coseStart + ES256_COSE_PREFIX.length)
99
+ return undefined;
100
+ if (!ad
101
+ .subarray(coseStart, coseStart + ES256_COSE_PREFIX.length)
102
+ .equals(ES256_COSE_PREFIX)) {
103
+ return undefined;
104
+ }
105
+ return coseCoordinates(ad, coseStart + ES256_COSE_PREFIX.length);
106
+ }
107
+ /** Locate the ES256 COSE key inside a CBOR attestation object and extract it. */
108
+ function coseKeyFromAttestationObject(ao) {
109
+ const prefixIndex = ao.indexOf(ES256_COSE_PREFIX);
110
+ if (prefixIndex === -1)
111
+ return undefined;
112
+ return coseCoordinates(ao, prefixIndex + ES256_COSE_PREFIX.length);
113
+ }
41
114
  /**
42
115
  * Extract the 65-byte uncompressed secp256r1 public key from a WebAuthn
43
116
  * registration (attestation) response.
@@ -47,9 +120,15 @@ export function deriveContractAddress(keyId, deployerPublicKey, networkPassphras
47
120
  * 2. `response.publicKey` decoded from SPKI via WebCrypto (`crypto.subtle`),
48
121
  * which is the correct, non-magic-offset way to normalize the DER-encoded
49
122
  * SubjectPublicKeyInfo most authenticators return.
50
- * 3. Parsing the COSE key out of `authenticatorData` / `attestationObject`.
123
+ * 3. Parsing the COSE key out of `authenticatorData`, then
124
+ * `attestationObject` — with the COSE structure verified in place, never
125
+ * trusted fixed offsets.
126
+ *
127
+ * Whatever the source, the result must be a valid point ON the P-256 curve;
128
+ * a mangled key is rejected here rather than deployed as an unusable wallet
129
+ * signer.
51
130
  *
52
- * @throws {WebAuthnError} If the public key cannot be extracted.
131
+ * @throws {WebAuthnError} If no valid public key can be extracted.
53
132
  */
54
133
  export async function extractPublicKeyFromAttestation(response) {
55
134
  let publicKey;
@@ -66,67 +145,88 @@ export async function extractPublicKeyFromAttestation(response) {
66
145
  publicKey = Buffer.from(new Uint8Array(rawKey));
67
146
  }
68
147
  catch {
69
- publicKey = encodedPublicKey.subarray(encodedPublicKey.length - SECP256R1_PUBLIC_KEY_SIZE);
148
+ publicKey = undefined; // not SPKI — fall through to the COSE paths
70
149
  }
71
150
  }
72
- else {
73
- publicKey = encodedPublicKey.subarray(encodedPublicKey.length - SECP256R1_PUBLIC_KEY_SIZE);
74
- }
75
151
  }
76
- // Validate it is a proper uncompressed EC point; otherwise fall back to the
77
- // COSE key embedded in authenticatorData / attestationObject.
78
- if (!publicKey ||
79
- publicKey[0] !== UNCOMPRESSED_PUBKEY_PREFIX ||
80
- publicKey.length !== SECP256R1_PUBLIC_KEY_SIZE) {
81
- let x;
82
- let y;
83
- if (response.authenticatorData) {
84
- const authenticatorData = base64url.toBuffer(response.authenticatorData);
85
- const credentialIdLength = (authenticatorData[53] << 8) | authenticatorData[54];
86
- x = authenticatorData.subarray(65 + credentialIdLength, 97 + credentialIdLength);
87
- y = authenticatorData.subarray(100 + credentialIdLength, 132 + credentialIdLength);
88
- }
89
- else if (response.attestationObject) {
90
- const attestationObject = base64url.toBuffer(response.attestationObject);
91
- // COSE key structure prefix for an ES256 (P-256) key.
92
- const publicKeyPrefixSlice = Buffer.from([
93
- 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01, 0x21, 0x58, 0x20,
94
- ]);
95
- let startIndex = attestationObject.indexOf(publicKeyPrefixSlice);
96
- if (startIndex === -1) {
97
- throw new WebAuthnError("Could not locate the COSE public key in the attestation object", PasskeyKitErrorCode.PUBLIC_KEY_EXTRACTION_FAILED);
98
- }
99
- startIndex = startIndex + publicKeyPrefixSlice.length;
100
- x = attestationObject.subarray(startIndex, 32 + startIndex);
101
- y = attestationObject.subarray(35 + startIndex, 67 + startIndex);
102
- }
103
- else {
104
- throw new WebAuthnError("Could not extract a public key from the attestation response", PasskeyKitErrorCode.PUBLIC_KEY_EXTRACTION_FAILED);
105
- }
106
- publicKey = Buffer.from([UNCOMPRESSED_PUBKEY_PREFIX, ...x, ...y]);
152
+ // Fall back to the attested COSE key when `response.publicKey` is absent or
153
+ // didn't yield a valid on-curve point.
154
+ if (!publicKey || !isOnP256Curve(publicKey)) {
155
+ publicKey =
156
+ (response.authenticatorData
157
+ ? coseKeyFromAuthenticatorData(base64url.toBuffer(response.authenticatorData))
158
+ : undefined) ??
159
+ (response.attestationObject
160
+ ? coseKeyFromAttestationObject(base64url.toBuffer(response.attestationObject))
161
+ : undefined);
162
+ }
163
+ if (!publicKey || !isOnP256Curve(publicKey)) {
164
+ throw new WebAuthnError("Could not extract a valid secp256r1 public key from the attestation response", PasskeyKitErrorCode.PUBLIC_KEY_EXTRACTION_FAILED);
107
165
  }
108
166
  return new Uint8Array(publicKey);
109
167
  }
110
168
  // ============================================================================
111
169
  // Signature encoding
112
170
  // ============================================================================
171
+ function malformedDer(reason) {
172
+ return new ValidationError(`Malformed DER ECDSA signature: ${reason}`, PasskeyKitErrorCode.INVALID_INPUT);
173
+ }
113
174
  /**
114
175
  * Convert a DER-encoded ECDSA signature to Stellar's compact `r || s` form with
115
176
  * a low-S value (S <= n/2), as required by the secp256r1 host function.
116
177
  *
178
+ * The DER structure is validated before any offset is dereferenced:
179
+ * sequence/integer tags, short-form lengths that exactly span the buffer, and
180
+ * `r`/`s` values in `[1, n-1]`. A WebAuthn P-256 signature always fits
181
+ * short-form DER (total length < 128 bytes), so long-form lengths are rejected.
182
+ *
117
183
  * @param derSignature - The DER-encoded signature
118
184
  * @returns 64-byte compact signature (`r || s`)
185
+ * @throws {ValidationError} If the signature is not structurally valid DER or
186
+ * `r`/`s` are out of range for P-256.
119
187
  */
120
188
  export function compactSignature(derSignature) {
121
189
  // DER: 0x30 [total-len] 0x02 [r-len] [r] 0x02 [s-len] [s]
122
- let offset = 2; // skip 0x30 and the total length
123
- const rLength = derSignature[offset + 1];
124
- const r = derSignature.subarray(offset + 2, offset + 2 + rLength);
125
- offset += 2 + rLength;
126
- const sLength = derSignature[offset + 1];
127
- const s = derSignature.subarray(offset + 2, offset + 2 + sLength);
190
+ if (derSignature.length < 8)
191
+ throw malformedDer("too short");
192
+ if (derSignature[0] !== 0x30)
193
+ throw malformedDer("missing SEQUENCE tag");
194
+ const totalLength = derSignature[1];
195
+ if (totalLength >= 0x80)
196
+ throw malformedDer("long-form length not supported");
197
+ if (totalLength !== derSignature.length - 2) {
198
+ throw malformedDer("SEQUENCE length does not span the buffer");
199
+ }
200
+ if (derSignature[2] !== 0x02)
201
+ throw malformedDer("missing INTEGER tag for r");
202
+ const rLength = derSignature[3];
203
+ // A P-256 integer is at most 32 bytes plus one 0x00 sign pad.
204
+ if (rLength < 1 || rLength > 33)
205
+ throw malformedDer("r length out of range");
206
+ if (4 + rLength + 2 > derSignature.length) {
207
+ throw malformedDer("r overruns the buffer");
208
+ }
209
+ const r = derSignature.subarray(4, 4 + rLength);
210
+ const sTagOffset = 4 + rLength;
211
+ if (derSignature[sTagOffset] !== 0x02) {
212
+ throw malformedDer("missing INTEGER tag for s");
213
+ }
214
+ const sLength = derSignature[sTagOffset + 1];
215
+ if (sLength < 1 || sLength > 33)
216
+ throw malformedDer("s length out of range");
217
+ if (sTagOffset + 2 + sLength !== derSignature.length) {
218
+ throw malformedDer("s does not end exactly at the buffer end");
219
+ }
220
+ const s = derSignature.subarray(sTagOffset + 2, sTagOffset + 2 + sLength);
128
221
  const rBigInt = BigInt("0x" + r.toString("hex"));
129
222
  let sBigInt = BigInt("0x" + s.toString("hex"));
223
+ // Scalars must be in [1, n-1] — anything else can never verify on-chain.
224
+ if (rBigInt < 1n || rBigInt >= SECP256R1_CURVE_ORDER) {
225
+ throw malformedDer("r out of curve order range");
226
+ }
227
+ if (sBigInt < 1n || sBigInt >= SECP256R1_CURVE_ORDER) {
228
+ throw malformedDer("s out of curve order range");
229
+ }
130
230
  // Enforce low-S.
131
231
  const halfN = SECP256R1_CURVE_ORDER / 2n;
132
232
  if (sBigInt > halfN) {
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEjE,+EAA+E;AAC/E,4CAA4C;AAC5C,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,iBAAyB,EACzB,iBAAyB;IAEzB,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,sBAAsB,CACxD,IAAI,GAAG,CAAC,wBAAwB,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,CAAC,6BAA6B,CACtE,IAAI,GAAG,CAAC,6BAA6B,CAAC;YACpC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;YAC5D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;SAClB,CAAC,CACH;KACF,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,QAA8C;IAE9C,IAAI,SAA6B,CAAC;IAElC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhE,IACE,gBAAgB,CAAC,MAAM,KAAK,yBAAyB;YACrD,gBAAgB,CAAC,CAAC,CAAC,KAAK,0BAA0B,EAClD,CAAC;YACD,SAAS,GAAG,gBAAgB,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,MAAM,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5C,MAAM,EACN,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAChC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EACtC,IAAI,EACJ,EAAE,CACH,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9D,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CACnC,gBAAgB,CAAC,MAAM,GAAG,yBAAyB,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CACnC,gBAAgB,CAAC,MAAM,GAAG,yBAAyB,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,8DAA8D;IAC9D,IACE,CAAC,SAAS;QACV,SAAS,CAAC,CAAC,CAAC,KAAK,0BAA0B;QAC3C,SAAS,CAAC,MAAM,KAAK,yBAAyB,EAC9C,CAAC;QACD,IAAI,CAAS,CAAC;QACd,IAAI,CAAS,CAAC;QAEd,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACzE,MAAM,kBAAkB,GACtB,CAAC,iBAAiB,CAAC,EAAE,CAAE,IAAI,CAAC,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAE,CAAC;YAEzD,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAC5B,EAAE,GAAG,kBAAkB,EACvB,EAAE,GAAG,kBAAkB,CACxB,CAAC;YACF,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAC5B,GAAG,GAAG,kBAAkB,EACxB,GAAG,GAAG,kBAAkB,CACzB,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAEzE,sDAAsD;YACtD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;aAC3D,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACjE,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CACrB,gEAAgE,EAChE,mBAAmB,CAAC,4BAA4B,CACjD,CAAC;YACJ,CAAC;YACD,UAAU,GAAG,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAEtD,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;YAC5D,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,aAAa,CACrB,8DAA8D,EAC9D,mBAAmB,CAAC,4BAA4B,CACjD,CAAC;QACJ,CAAC;QAED,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,0DAA0D;IAC1D,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,iCAAiC;IAEjD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC1C,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAElE,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC;IAEtB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC1C,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,iBAAiB;IACjB,MAAM,KAAK,GAAG,qBAAqB,GAAG,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;QACpB,OAAO,GAAG,qBAAqB,GAAG,OAAO,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,12 @@ export declare function validateAmount(amount: number, fieldName?: string): void
23
23
  /**
24
24
  * Validate a signer expiration.
25
25
  *
26
- * Must be a non-negative integer within `u32` bounds when provided; `undefined`
27
- * means "no expiration". (Unix-second timestamps fit in `u32` through the year
28
- * 2106, so this bound holds whether the contract interprets the value as a
29
- * ledger sequence or a UNIX timestamp.)
26
+ * The contract types signer expiration as `Option<u64>` UNIX seconds, so the
27
+ * accepted range here is the `u64`-compatible safe-integer range: a
28
+ * non-negative integer up to `Number.MAX_SAFE_INTEGER` (the kit carries the
29
+ * value as a JS number before converting to `BigInt`). `undefined` means "no
30
+ * expiration". Capping at `u32` (the old bound) would reject post-2106
31
+ * timestamps the contract accepts.
30
32
  *
31
33
  * @throws {ValidationError} If the expiration is out of range.
32
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,SAAY,GACpB,IAAI,CAmBN;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAW,GAAG,IAAI,CAezE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAe,GACvB,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,UAAU,EACrB,SAAS,SAAc,GACtB,IAAI,CAeN"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,SAAY,GACpB,IAAI,CAmBN;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAW,GAAG,IAAI,CAezE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAe,GACvB,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,UAAU,EACrB,SAAS,SAAc,GACtB,IAAI,CAeN"}