@motebit/crypto 2.1.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -120,6 +120,13 @@ const vc = await issueReputationCredential(
120
120
  - **`verifySovereignBinding(motebitId, genesisPublicKeyHex)`** — True iff `motebitId` is the sovereign commitment to the genesis key. `verifyKeyBindingAtTime` sets `sovereign: true` on its result when this holds.
121
121
  - **`verifyMigratingKeyBinding(motebitId, presentedKeyHex, identityFile?)`** — Does `presentedKeyHex` legitimately control `motebitId` right now? The migration key↔id check (spec/migration-v1.md §8.2 step 6), fail-closed: a never-rotated sovereign id binds its key directly; a rotated key binds via the identity file's sovereign-rooted succession chain. Composes `verifySovereignBinding` and `verifyKeyBindingAtTime`.
122
122
 
123
+ ### Settlement anchoring
124
+
125
+ - **`verifyAgentSettlementAnchor(record, proof, chainVerifier?)`** — Worker-side self-verification of a per-agent settlement Merkle inclusion proof (`spec/agent-settlement-anchor-v1.md`): the held `SettlementRecord` hashes to the anchored leaf, the Merkle path reconstructs to the root, and the relay's batch signature (suite `AGENT_SETTLEMENT_ANCHOR_SUITE`) checks out — all offline, with only the record, the proof, and the relay's public key. SCITT / RFC 6962 shape. The optional `chainVerifier` adds the onchain non-repudiation cross-check.
126
+ - **`computeAgentSettlementLeaf(record)`** — The leaf hash for a `SettlementRecord`: `SHA-256(canonicalJson(record))` over the whole signed object (never a field projection), so producer and holder derive the identical leaf from the bytes they each hold.
127
+ - **`verifyFederationSettlementAnchor(record, proof, chainVerifier?)`** — Peer-side self-verification of an inter-relay settlement Merkle inclusion proof (`spec/relay-federation-v1.md` §7.6): the held `FederationSettlementRecord` hashes to the anchored leaf, the Merkle path reconstructs to the root, and the relay's batch signature (suite `FEDERATION_SETTLEMENT_ANCHOR_SUITE`) checks out — all offline, with only the record, the proof, and the relay's public key. The federation analogue of `verifyAgentSettlementAnchor`; same SCITT / RFC 6962 shape. The optional `chainVerifier` adds the onchain non-repudiation cross-check.
128
+ - **`computeFederationSettlementLeaf(record)`** — The leaf hash for a `FederationSettlementRecord`: `SHA-256(canonicalJson(record))` over the whole signed object (never a field projection), so producer and holder derive the identical leaf from the bytes they each hold.
129
+
123
130
  ### Primitives
124
131
 
125
132
  - **`generateKeypair()`** — Generate an Ed25519 keypair.
@@ -127,6 +134,9 @@ const vc = await issueReputationCredential(
127
134
  - **`ed25519Verify(signature, message, publicKey)`** — Raw Ed25519 verify.
128
135
  - **`canonicalJson(obj)`** — Deterministic JSON serialization (JCS/RFC 8785).
129
136
  - **`hash(data)`** — SHA-256 hex string.
137
+ - **`hashLeaf(entry, treeHashVersion?)`** — Merkle leaf hash under a `MerkleTreeVersion`: `SHA-256(entry)` for `merkle-sha256-plain-v1` (default), `SHA-256(0x00 ‖ entry)` for the RFC 6962 §2.1 `merkle-sha256-rfc6962-v2` leaf tag. The single dispatch point every leaf builder routes through; throws on an unimplemented version.
138
+ - **`canonicalLeaf(value, treeHashVersion?)`** — JCS-canonicalize `value` then `hashLeaf` it. `canonicalLeaf(x)` (v1 default) is byte-identical to `hash(canonicalJson(x))`.
139
+ - **`resolveTreeHashVersion(raw)`** — Verifier-boundary resolver for a proof's wire `tree_hash_version`: `absent ⇒ merkle-sha256-plain-v1`, a known value to itself, an unknown string to `null` so the caller rejects fail-closed (never silent-downgrade). See `docs/doctrine/merkle-tree-hash-versioning.md`.
130
140
  - **`createSignedToken(payload, privateKey)`** — Create a signed auth token.
131
141
  - **`verifySignedToken(token, publicKey)`** — Verify a signed auth token.
132
142
  - **`publicKeyToDidKey(publicKey)`** / **`didKeyToPublicKey(did)`** — did:key conversion.
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Per-agent settlement anchor — leaf hashing and self-verification.
3
+ *
4
+ * Permissive floor (Apache-2.0): these functions are part of the open
5
+ * protocol. A worker who holds (a) their signed `SettlementRecord`, (b) an
6
+ * `AgentSettlementAnchorProof` for it, and (c) the relay's public key can
7
+ * verify — offline, with only `@motebit/crypto` — that the relay anchored
8
+ * exactly that record into a Merkle root, without contacting the relay.
9
+ *
10
+ * motebit/agent-settlement-anchor@1.0 §3 (leaf hash) and §5 (verification).
11
+ * This is the portable verifier that closes the self-attesting loop the
12
+ * producer (`services/relay/src/anchoring.ts`), the proof endpoint
13
+ * (`GET /api/v1/settlements/:id/anchor-proof`), and the wire types
14
+ * (`@motebit/protocol`) were already shipping without.
15
+ *
16
+ * Sibling of `credential-anchor.ts`: same Merkle primitive
17
+ * (`verifyMerkleInclusion`), same 4-step shape. The third consumer of the
18
+ * canonical `merkle.ts` primitive (see `crypto/CLAUDE.md` rule 6).
19
+ */
20
+ import type { MerkleTreeVersion } from "@motebit/protocol";
21
+ import type { ChainAnchorVerifier } from "./credential-anchor.js";
22
+ /**
23
+ * The one suite AgentSettlementAnchorBatch records sign under today.
24
+ * JCS canonicalization, Ed25519 primitive, hex signature + hex public-key
25
+ * encoding (note: hex, unlike the base64url SettlementRecord suite — the
26
+ * anchor batch and the settlement it commits are independently signed
27
+ * artifacts with their own suites).
28
+ */
29
+ export declare const AGENT_SETTLEMENT_ANCHOR_SUITE: "motebit-jcs-ed25519-hex-v1";
30
+ /**
31
+ * Compute a per-agent settlement leaf hash for Merkle anchoring.
32
+ *
33
+ * The input is the WHOLE signed `SettlementRecord` (signature included),
34
+ * passed as a plain object. The leaf is `SHA-256(canonicalJson(record))` —
35
+ * the holder reproduces it from exactly the bytes they hold, with no field
36
+ * projection. (This is the SCITT / RFC 6962 invariant: anchor the exact
37
+ * signed object; never a re-typed subset — a subset cannot be reproduced
38
+ * from the holder's record and the receipt dies on arrival.)
39
+ *
40
+ * `canonicalJson` is JCS/RFC 8785 — the same canonicalization the relay
41
+ * used to sign the record, so a worker who holds the signed record and a
42
+ * verifier who holds the producer's row derive the identical leaf.
43
+ *
44
+ * @param settlement - The full signed SettlementRecord object (with signature)
45
+ * @returns Hex-encoded SHA-256 hash
46
+ */
47
+ export declare function computeAgentSettlementLeaf(settlement: Record<string, unknown>, treeHashVersion?: MerkleTreeVersion): Promise<string>;
48
+ /** Result of verifying a per-agent settlement anchor proof. */
49
+ export interface AgentSettlementAnchorVerifyResult {
50
+ /** Whether all checked steps passed. */
51
+ valid: boolean;
52
+ /** Individual step results. */
53
+ steps: {
54
+ /** Step 1: the held SettlementRecord hashes to the claimed leaf. */
55
+ hash_valid: boolean;
56
+ /** Step 2: Merkle proof reconstructs to the claimed root. */
57
+ merkle_valid: boolean;
58
+ /** Step 3: relay's Ed25519 signature over the batch payload is valid. */
59
+ relay_signature_valid: boolean;
60
+ /** Step 4: onchain anchor verified (null if not checked). */
61
+ chain_verified: boolean | null;
62
+ };
63
+ /** Error messages for failed steps. */
64
+ errors: string[];
65
+ }
66
+ /** The anchor-proof fields needed for verification (subset of `AgentSettlementAnchorProof`). */
67
+ export interface AgentSettlementAnchorProofFields {
68
+ settlement_hash: string;
69
+ batch_id: string;
70
+ merkle_root: string;
71
+ leaf_count: number;
72
+ first_settled_at: number;
73
+ last_settled_at: number;
74
+ leaf_index: number;
75
+ siblings: string[];
76
+ layer_sizes: number[];
77
+ relay_id: string;
78
+ relay_public_key: string;
79
+ /**
80
+ * Cryptosuite discriminator for `batch_signature`. Always
81
+ * `"motebit-jcs-ed25519-hex-v1"`. Signature-bound: the suite is part of
82
+ * the canonical batch payload (see step 3), so a cross-suite confusion
83
+ * cannot pass verification. Verifiers reject missing or unknown values
84
+ * fail-closed.
85
+ */
86
+ suite: typeof AGENT_SETTLEMENT_ANCHOR_SUITE;
87
+ batch_signature: string;
88
+ anchor: {
89
+ chain: string;
90
+ network: string;
91
+ tx_hash: string;
92
+ anchored_at: number;
93
+ } | null;
94
+ /**
95
+ * Tree-hash recipe for the Merkle path. **Absent ⇒ `merkle-sha256-plain-v1`**.
96
+ * Resolved fail-closed (unknown ⇒ reject, never silent-downgrade); threaded to
97
+ * the leaf builder (step 1) and `verifyMerkleInclusion` (step 2).
98
+ */
99
+ tree_hash_version?: MerkleTreeVersion;
100
+ }
101
+ /**
102
+ * Verify a per-agent settlement anchor proof — the 4-step self-verification
103
+ * algorithm. Steps 1–3 are fully offline. Step 4 (onchain lookup) requires a
104
+ * callback and is skipped if not provided or if the proof has no onchain anchor.
105
+ *
106
+ * @param settlement - The full signed SettlementRecord the worker holds (with signature)
107
+ * @param proof - The AgentSettlementAnchorProof served by the relay
108
+ * @param chainVerifier - Optional callback for step 4 (onchain verification)
109
+ * @returns Verification result with per-step breakdown
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * import { verifyAgentSettlementAnchor } from "@motebit/crypto";
114
+ *
115
+ * const result = await verifyAgentSettlementAnchor(settlementRecord, proof);
116
+ * if (result.valid) {
117
+ * // Steps 1-3 passed: the relay anchored exactly this settlement.
118
+ * }
119
+ * ```
120
+ */
121
+ export declare function verifyAgentSettlementAnchor(settlement: Record<string, unknown>, proof: AgentSettlementAnchorProofFields, chainVerifier?: ChainAnchorVerifier): Promise<AgentSettlementAnchorVerifyResult>;
122
+ //# sourceMappingURL=agent-settlement-anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-settlement-anchor.d.ts","sourceRoot":"","sources":["../src/agent-settlement-anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAG,4BAAqC,CAAC;AAInF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,MAAM,CAAC,CAKjB;AAID,+DAA+D;AAC/D,MAAM,WAAW,iCAAiC;IAChD,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,KAAK,EAAE;QACL,oEAAoE;QACpE,UAAU,EAAE,OAAO,CAAC;QACpB,6DAA6D;QAC7D,YAAY,EAAE,OAAO,CAAC;QACtB,yEAAyE;QACzE,qBAAqB,EAAE,OAAO,CAAC;QAC/B,6DAA6D;QAC7D,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,gGAAgG;AAChG,MAAM,WAAW,gCAAgC;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,6BAA6B,CAAC;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;IACT;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,EAAE,gCAAgC,EACvC,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iCAAiC,CAAC,CA+G5C"}
@@ -529,8 +529,8 @@ export declare function signBalanceWaiver(waiver: Omit<BalanceWaiver, "signature
529
529
  * the caller's responsibility (neither is a cryptographic property).
530
530
  */
531
531
  export declare function verifyBalanceWaiver(waiver: BalanceWaiver, agentPublicKey: Uint8Array): Promise<boolean>;
532
- import type { SettlementRecord } from "@motebit/protocol";
533
- export type { SettlementRecord };
532
+ import type { SettlementRecord, FederationSettlementRecord } from "@motebit/protocol";
533
+ export type { SettlementRecord, FederationSettlementRecord };
534
534
  /** The one suite SettlementRecords sign under today. */
535
535
  export declare const SETTLEMENT_RECORD_SUITE: "motebit-jcs-ed25519-b64-v1";
536
536
  /**
@@ -564,6 +564,33 @@ export declare function signSettlement(settlement: Omit<SettlementRecord, "signa
564
564
  * - primitive-level verification failure
565
565
  */
566
566
  export declare function verifySettlement(settlement: SettlementRecord, issuerPublicKey: Uint8Array): Promise<boolean>;
567
+ /** The one suite FederationSettlementRecords sign under today. */
568
+ export declare const FEDERATION_SETTLEMENT_RECORD_SUITE: "motebit-jcs-ed25519-b64-v1";
569
+ /**
570
+ * Sign a federation settlement record. Each relay signs its OWN copy of a
571
+ * federated settlement (the issuer is the booking relay), committing to the
572
+ * (gross, fee, net, rate) tuple so it cannot issue inconsistent records to
573
+ * different observers — the per-agent `signSettlement` move applied to the
574
+ * inter-relay stream (relay-federation-v1.md §7.6).
575
+ *
576
+ * The signed record is the verbatim-artifact whose canonical bytes become the
577
+ * Merkle leaf (spec/agent-settlement-anchor-v1.md §9.1): the relay persists
578
+ * `canonicalJson(record)` and anchors `canonicalLeaf(record)`, so a peer that
579
+ * holds the record reproduces the leaf with `@motebit/crypto` alone.
580
+ *
581
+ * Callers pass the record without `signature` or `suite`; the signer owns both.
582
+ */
583
+ export declare function signFederationSettlement(settlement: Omit<FederationSettlementRecord, "signature" | "suite">, issuerPrivateKey: Uint8Array): Promise<FederationSettlementRecord>;
584
+ /**
585
+ * Verify a federation settlement record's signature. Reconstructs canonical
586
+ * JSON over all fields except `signature` and verifies Ed25519 against the
587
+ * issuing relay's public key (resolved from `issuer_relay_id` via the
588
+ * federation peer registry).
589
+ *
590
+ * Fail-closed on missing/unknown `suite`, base64url decode errors, or
591
+ * primitive-level verification failure.
592
+ */
593
+ export declare function verifyFederationSettlement(settlement: FederationSettlementRecord, issuerPublicKey: Uint8Array): Promise<boolean>;
567
594
  /** The one suite KeySuccessionRecords sign under today. */
568
595
  export declare const KEY_SUCCESSION_SUITE: "motebit-jcs-ed25519-hex-v1";
569
596
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * motebit/credential-anchor@1.0 §3 (leaf hash) and §5.2 (verification).
9
9
  */
10
+ import type { MerkleTreeVersion } from "@motebit/protocol";
10
11
  /** The one suite CredentialAnchorBatch records sign under today. */
11
12
  export declare const CREDENTIAL_ANCHOR_SUITE: "motebit-jcs-ed25519-hex-v1";
12
13
  /**
@@ -19,7 +20,7 @@ export declare const CREDENTIAL_ANCHOR_SUITE: "motebit-jcs-ed25519-hex-v1";
19
20
  * @param credential - Full verifiable credential object (with proof)
20
21
  * @returns Hex-encoded SHA-256 hash
21
22
  */
22
- export declare function computeCredentialLeaf(credential: Record<string, unknown>): Promise<string>;
23
+ export declare function computeCredentialLeaf(credential: Record<string, unknown>, treeHashVersion?: MerkleTreeVersion): Promise<string>;
23
24
  /** Result of verifying a credential anchor proof. */
24
25
  export interface CredentialAnchorVerifyResult {
25
26
  /** Whether all checked steps passed. */
@@ -81,6 +82,12 @@ export interface CredentialAnchorProofFields {
81
82
  tx_hash: string;
82
83
  anchored_at: number;
83
84
  } | null;
85
+ /**
86
+ * Tree-hash recipe for the Merkle path. **Absent ⇒ `merkle-sha256-plain-v1`**.
87
+ * Resolved fail-closed (unknown ⇒ reject, never silent-downgrade); threaded to
88
+ * the leaf builder (step 1) and `verifyMerkleInclusion` (step 2).
89
+ */
90
+ tree_hash_version?: MerkleTreeVersion;
84
91
  }
85
92
  /**
86
93
  * Verify a credential anchor proof — the 4-step self-verification algorithm.
@@ -1 +1 @@
1
- {"version":3,"file":"credential-anchor.d.ts","sourceRoot":"","sources":["../src/credential-anchor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-anchor.d.ts","sourceRoot":"","sources":["../src/credential-anchor.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,9 @@
24
24
  * admissible signature is then cryptographically verified through
25
25
  * `verifyBySuite`.
26
26
  */
27
- import type { DeletionCertificate, HorizonWitness, HorizonWitnessRequestBody, SuiteId } from "@motebit/protocol";
27
+ import type { DeletionCertificate, HorizonWitness, HorizonWitnessRequestBody } from "@motebit/protocol";
28
28
  /** The cryptosuite every deletion certificate signs under today. */
29
- export declare const DELETION_CERTIFICATE_SUITE: SuiteId;
29
+ export declare const DELETION_CERTIFICATE_SUITE: "motebit-jcs-ed25519-b64-v1";
30
30
  /**
31
31
  * Filing window for `WitnessOmissionDispute` (retention phase 4b-3).
32
32
  * A dispute MUST be filed within 24h of the cert's `issued_at`;
@@ -1 +1 @@
1
- {"version":3,"file":"deletion-certificate.d.ts","sourceRoot":"","sources":["../src/deletion-certificate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deletion-certificate.d.ts","sourceRoot":"","sources":["../src/deletion-certificate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Federation settlement anchor — leaf hashing and self-verification.
3
+ *
4
+ * Permissive floor (Apache-2.0): these functions are part of the open
5
+ * protocol. A peer relay that holds (a) a signed `FederationSettlementRecord`,
6
+ * (b) a `FederationSettlementAnchorProof` for it, and (c) the booking relay's
7
+ * public key can verify — offline, with only `@motebit/crypto` — that the
8
+ * relay anchored exactly that record into a Merkle root, without contacting it.
9
+ *
10
+ * relay-federation-v1.md §7.6 (Merkle batch) + the §9.1 convergence
11
+ * (agent-settlement-anchor-v1.md): the federation leaf is now the
12
+ * verbatim-artifact hash the per-agent and credential streams already use, and
13
+ * this is the portable verifier that closes the self-attesting loop the
14
+ * producer (`services/relay/src/anchoring.ts`), the proof endpoint
15
+ * (`GET /federation/v1/settlement/proof`), and the wire types
16
+ * (`@motebit/protocol`) were shipping without.
17
+ *
18
+ * Sibling of `agent-settlement-anchor.ts` and `credential-anchor.ts`: same
19
+ * Merkle primitive (`verifyMerkleInclusion`), same 4-step shape. The FOURTH
20
+ * consumer of the canonical `merkle.ts` primitive (see `crypto/CLAUDE.md` rule 6).
21
+ */
22
+ import type { MerkleTreeVersion } from "@motebit/protocol";
23
+ import type { ChainAnchorVerifier } from "./credential-anchor.js";
24
+ /**
25
+ * The one suite federation anchor batch records sign under today. JCS
26
+ * canonicalization, Ed25519 primitive, hex signature + hex public-key encoding
27
+ * (note: hex, unlike the base64url `FederationSettlementRecord` suite — the
28
+ * anchor batch and the settlement it commits are independently signed artifacts
29
+ * with their own suites, exactly as on the per-agent stream).
30
+ */
31
+ export declare const FEDERATION_SETTLEMENT_ANCHOR_SUITE: "motebit-jcs-ed25519-hex-v1";
32
+ /**
33
+ * Compute a federation settlement leaf hash for Merkle anchoring.
34
+ *
35
+ * The input is the WHOLE signed `FederationSettlementRecord` (signature
36
+ * included), passed as a plain object. The leaf is `SHA-256(canonicalJson(record))`
37
+ * — the holder reproduces it from exactly the bytes they hold, with no field
38
+ * projection. (This is the SCITT / RFC 6962 invariant: anchor the exact signed
39
+ * object; never a re-typed subset — a subset cannot be reproduced from the
40
+ * holder's record and the receipt dies on arrival. It is the move
41
+ * agent-settlement-anchor-v1.md §9.1 named for this stream.)
42
+ *
43
+ * `canonicalJson` is JCS/RFC 8785 — the same canonicalization the relay used to
44
+ * sign the record, so a peer who holds the signed record and a verifier who
45
+ * holds the producer's row derive the identical leaf.
46
+ *
47
+ * @param settlement - The full signed FederationSettlementRecord object
48
+ * @returns Hex-encoded SHA-256 hash
49
+ */
50
+ export declare function computeFederationSettlementLeaf(settlement: Record<string, unknown>, treeHashVersion?: MerkleTreeVersion): Promise<string>;
51
+ /** Result of verifying a federation settlement anchor proof. */
52
+ export interface FederationSettlementAnchorVerifyResult {
53
+ /** Whether all checked steps passed. */
54
+ valid: boolean;
55
+ /** Individual step results. */
56
+ steps: {
57
+ /** Step 1: the held FederationSettlementRecord hashes to the claimed leaf. */
58
+ hash_valid: boolean;
59
+ /** Step 2: Merkle proof reconstructs to the claimed root. */
60
+ merkle_valid: boolean;
61
+ /** Step 3: relay's Ed25519 signature over the batch payload is valid. */
62
+ relay_signature_valid: boolean;
63
+ /** Step 4: onchain anchor verified (null if not checked). */
64
+ chain_verified: boolean | null;
65
+ };
66
+ /** Error messages for failed steps. */
67
+ errors: string[];
68
+ }
69
+ /** The anchor-proof fields needed for verification (subset of `FederationSettlementAnchorProof`). */
70
+ export interface FederationSettlementAnchorProofFields {
71
+ settlement_hash: string;
72
+ batch_id: string;
73
+ merkle_root: string;
74
+ leaf_count: number;
75
+ first_settled_at: number;
76
+ last_settled_at: number;
77
+ leaf_index: number;
78
+ siblings: string[];
79
+ layer_sizes: number[];
80
+ relay_id: string;
81
+ relay_public_key: string;
82
+ /**
83
+ * Cryptosuite discriminator for `batch_signature`. Always
84
+ * `"motebit-jcs-ed25519-hex-v1"`. Signature-bound: the suite is part of the
85
+ * canonical batch payload (see step 3), so a cross-suite confusion cannot
86
+ * pass verification. Verifiers reject missing or unknown values fail-closed.
87
+ */
88
+ suite: typeof FEDERATION_SETTLEMENT_ANCHOR_SUITE;
89
+ batch_signature: string;
90
+ anchor: {
91
+ chain: string;
92
+ network: string;
93
+ tx_hash: string;
94
+ anchored_at: number;
95
+ } | null;
96
+ /**
97
+ * Tree-hash recipe for the Merkle path. **Absent ⇒ `merkle-sha256-plain-v1`**.
98
+ * Resolved fail-closed (unknown ⇒ reject, never silent-downgrade); threaded to
99
+ * the leaf builder (step 1) and `verifyMerkleInclusion` (step 2).
100
+ */
101
+ tree_hash_version?: MerkleTreeVersion;
102
+ }
103
+ /**
104
+ * Verify a federation settlement anchor proof — the 4-step self-verification
105
+ * algorithm. Steps 1–3 are fully offline. Step 4 (onchain lookup) requires a
106
+ * callback and is skipped if not provided or if the proof has no onchain anchor.
107
+ *
108
+ * **Scope — what this proves and what it does NOT.** A `valid` result proves the
109
+ * relay anchored *these exact record bytes* into a signed, (optionally) onchain
110
+ * Merkle root — content non-equivocation. It does NOT, by design (mirroring the
111
+ * per-agent `verifyAgentSettlementAnchor`):
112
+ * - bind the served `settlement` to a particular `settlement_id` or to the
113
+ * caller's own view of the settlement. A relay could return a *valid*
114
+ * `{proof, record}` for a *different* settlement. A caller auditing a
115
+ * specific settlement MUST compare `settlement.settlement_id` / amounts /
116
+ * counterparties against its own row.
117
+ * - verify the record's OWN Ed25519 signature. The signature bytes are inside
118
+ * the hashed leaf (so tampering fails step 1), but "the issuing relay
119
+ * attested the (gross,fee,net,rate) tuple" requires a separate
120
+ * `verifyFederationSettlement(record, issuerKey)` call.
121
+ *
122
+ * @param settlement - The full signed FederationSettlementRecord the peer holds
123
+ * @param proof - The FederationSettlementAnchorProof served by the relay
124
+ * @param chainVerifier - Optional callback for step 4 (onchain verification)
125
+ * @returns Verification result with per-step breakdown
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { verifyFederationSettlementAnchor } from "@motebit/crypto";
130
+ *
131
+ * const result = await verifyFederationSettlementAnchor(record, proof);
132
+ * if (result.valid) {
133
+ * // Steps 1-3 passed: the relay anchored exactly this settlement.
134
+ * }
135
+ * ```
136
+ */
137
+ export declare function verifyFederationSettlementAnchor(settlement: Record<string, unknown>, proof: FederationSettlementAnchorProofFields, chainVerifier?: ChainAnchorVerifier): Promise<FederationSettlementAnchorVerifyResult>;
138
+ //# sourceMappingURL=federation-settlement-anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-settlement-anchor.d.ts","sourceRoot":"","sources":["../src/federation-settlement-anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,EAAG,4BAAqC,CAAC;AAIxF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,MAAM,CAAC,CAKjB;AAID,gEAAgE;AAChE,MAAM,WAAW,sCAAsC;IACrD,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,KAAK,EAAE;QACL,8EAA8E;QAC9E,UAAU,EAAE,OAAO,CAAC;QACpB,6DAA6D;QAC7D,YAAY,EAAE,OAAO,CAAC;QACtB,yEAAyE;QACzE,qBAAqB,EAAE,OAAO,CAAC;QAC/B,6DAA6D;QAC7D,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,qCAAqC;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,KAAK,EAAE,OAAO,kCAAkC,CAAC;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;IACT;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,EAAE,qCAAqC,EAC5C,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,sCAAsC,CAAC,CA8GjD"}
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@
21
21
  * import { issueReputationCredential } from "@motebit/crypto";
22
22
  * const vc = await issueReputationCredential(snapshot, privateKey, publicKey, did);
23
23
  */
24
+ import type { MerkleTreeVersion } from "@motebit/protocol";
24
25
  export interface MotebitIdentityFile {
25
26
  spec: string;
26
27
  motebit_id: string;
@@ -249,27 +250,6 @@ export interface VerifyOptions {
249
250
  */
250
251
  hardwareAttestation?: HardwareAttestationVerifiers;
251
252
  }
252
- /**
253
- * @deprecated since 1.0.0, removed in 3.0.0. Use {@link VerifyResult} instead.
254
- *
255
- * Reason: pre-0.4.0 return shape with a flat `error: string` field and no
256
- * type discriminator. The modern {@link VerifyResult} is a discriminated
257
- * union (`type: "identity" | "receipt" | "credential" | "presentation"`)
258
- * with a structured `errors: Array<{ message: string }>` — one shape covers
259
- * every artifact type motebit verifies.
260
- */
261
- export interface LegacyVerifyResult {
262
- valid: boolean;
263
- identity: MotebitIdentityFile | null;
264
- did?: string;
265
- error?: string;
266
- succession?: {
267
- valid: boolean;
268
- genesis_public_key?: string;
269
- rotations: number;
270
- error?: string;
271
- };
272
- }
273
253
  /**
274
254
  * Parse a motebit.md file into its components.
275
255
  * Does not verify the signature — use `verify()` for that.
@@ -372,7 +352,7 @@ export declare function verifyMigratingKeyBinding(motebitId: string, presentedKe
372
352
  * produces the log and the verifier that checks inclusion MUST agree on this
373
353
  * convention. See `docs/doctrine/identity-binding-verification.md`.
374
354
  */
375
- export declare function identityLogLeaf(motebitId: string, currentKeyHex: string): Promise<string>;
355
+ export declare function identityLogLeaf(motebitId: string, currentKeyHex: string, treeHashVersion?: MerkleTreeVersion): Promise<string>;
376
356
  /** Merkle inclusion proof of an identity-log leaf under an anchored root. */
377
357
  export interface IdentityLogInclusionProof {
378
358
  /** Leaf position in the bottom layer (0-based). */
@@ -388,6 +368,13 @@ export interface IdentityLogInclusionProof {
388
368
  * non-zero-network and defeats split-view equivocation.
389
369
  */
390
370
  readonly anchoredRoot: string;
371
+ /**
372
+ * Tree-hash recipe for the leaf + Merkle path. **Absent ⇒
373
+ * `merkle-sha256-plain-v1`** — proofs minted before this axis existed verify
374
+ * unchanged. Resolved fail-closed: an unknown value rejects the binding
375
+ * (never silently downgrades). A v2 identity-log producer emits it.
376
+ */
377
+ readonly tree_hash_version?: MerkleTreeVersion;
391
378
  }
392
379
  /**
393
380
  * Anchored identity binding: sovereign-root binding (via
@@ -511,39 +498,16 @@ export declare function verifySkillBundle(input: SkillBundleInput): Promise<Skil
511
498
  * ```
512
499
  */
513
500
  export declare function verify(artifact: unknown, options?: VerifyOptions): Promise<VerifyResult>;
514
- /**
515
- * Verify a motebit.md identity file. Backward-compatible with pre-0.4.0.
516
- *
517
- * @deprecated since 1.0.0, removed in 3.0.0. Use `verify(content, { expectedType: "identity" })` instead.
518
- *
519
- * Reason: `verify()` is the unified dispatcher for every signed artifact
520
- * type (identity, receipt, credential, presentation) and returns a typed
521
- * {@link VerifyResult} discriminated union. `verifyIdentityFile` is the
522
- * pre-0.4.0 identity-only wrapper kept alive for the deprecation window —
523
- * it reshapes `verify()`'s output into the legacy flat-`error` format.
524
- *
525
- * Migration:
526
- * ```ts
527
- * // Before:
528
- * const r = await verifyIdentityFile(content);
529
- * if (r.valid) console.log(r.did);
530
- * else console.log(r.error);
531
- *
532
- * // After:
533
- * const r = await verify(content, { expectedType: "identity" });
534
- * if (r.type === "identity" && r.valid) console.log(r.did);
535
- * else console.log(r.errors?.[0]?.message);
536
- * ```
537
- */
538
- export declare function verifyIdentityFile(content: string): Promise<LegacyVerifyResult>;
539
501
  export * from "./signing.js";
540
502
  export * from "./artifacts.js";
541
503
  export { signVerifiableCredential, verifyVerifiableCredential, signVerifiablePresentation, verifyVerifiablePresentation, issueGradientCredential, issueReputationCredential, issueTrustCredential, createPresentation, type GradientCredentialSubject, type ReputationCredentialSubject, type TrustCredentialSubject, } from "./credentials.js";
542
504
  export { signContentArtifact, verifyContentArtifact, CONTENT_ARTIFACT_SUITE, } from "./content-artifact.js";
543
505
  export type { ContentArtifactManifest, SignContentArtifactOptions, VerifyContentArtifactResult, } from "./content-artifact.js";
544
506
  export { computeCredentialLeaf, verifyCredentialAnchor, verifyRevocationAnchor, type CredentialAnchorVerifyResult, type CredentialAnchorProofFields, type ChainAnchorVerifier, type RevocationAnchorVerifyResult, type RevocationAnchorProof, } from "./credential-anchor.js";
507
+ export { AGENT_SETTLEMENT_ANCHOR_SUITE, computeAgentSettlementLeaf, verifyAgentSettlementAnchor, type AgentSettlementAnchorVerifyResult, type AgentSettlementAnchorProofFields, } from "./agent-settlement-anchor.js";
508
+ export { FEDERATION_SETTLEMENT_ANCHOR_SUITE, computeFederationSettlementLeaf, verifyFederationSettlementAnchor, type FederationSettlementAnchorVerifyResult, type FederationSettlementAnchorProofFields, } from "./federation-settlement-anchor.js";
545
509
  export { SKILL_SIGNATURE_SUITE, canonicalizeSkillManifestBytes, canonicalizeSkillEnvelopeBytes, signSkillManifest, signSkillEnvelope, verifySkillManifest, verifySkillManifestDetailed, verifySkillEnvelope, verifySkillEnvelopeDetailed, decodeSkillSignaturePublicKey, type SkillVerifyReason, type SkillVerifyDetail, } from "./skills.js";
546
510
  export { DELETION_CERTIFICATE_SUITE, WITNESS_OMISSION_DISPUTE_WINDOW_MS, canonicalizeMultiSignatureCert, canonicalizeHorizonCert, canonicalizeHorizonCertForWitness, signCertAsSubject, signCertAsOperator, signCertAsDelegate, signCertAsGuardian, signHorizonCertAsIssuer, signHorizonWitness, canonicalizeHorizonWitnessRequestBody, signHorizonWitnessRequestBody, verifyHorizonWitnessRequestSignature, verifyDeletionCertificate, verifyRetentionManifest, type DeletionCertificateVerifyResult, type DeletionCertificateVerifyContext, type RetentionManifestVerifyResult, } from "./deletion-certificate.js";
547
511
  export { canonicalizeWitnessOmissionDispute, signWitnessOmissionDispute, verifyWitnessOmissionDispute, type WitnessOmissionDisputeVerifyResult, type WitnessOmissionDisputeVerifyContext, } from "./witness-omission-dispute.js";
548
- export { verifyMerkleInclusion } from "./merkle.js";
512
+ export { verifyMerkleInclusion, hashLeaf, canonicalLeaf, resolveTreeHashVersion, } from "./merkle.js";
549
513
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAY3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE;QACR,SAAS,EAAE,SAAS,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;QAC3C,aAAa,EAAE,MAAM,CAAC;QACtB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IAEF,OAAO,EAAE;QACP,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAEF,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,8EAA8E;IAC9E,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,6DAA6D;QAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,4BAA4B,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAEV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,OAAO,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,+BAA+B,CAAC;CACxD;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,iBAAiB,CAAA;SAAE,CAAC;QACxD,SAAS,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACvE,KAAK,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,wBAAwB,GACxB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;CACpD;AA4VD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG;IACtC,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,CAgCA;AAqRD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS3F;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAyD3B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,yBAAyB,EAChC,oBAAoB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA0C3B;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8D3F;AA8DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,gGAAgG;IAChG,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+F3F;AAgND;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAgG9F;AAOD,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,GAC3C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,8BAA8B,EAC9B,uBAAuB,EACvB,iCAAiC,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,qCAAqC,EACrC,6BAA6B,EAC7B,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,4BAA4B,EAC5B,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,GACzC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -4972,6 +4972,25 @@ function isScopeNarrowed(parentScope, childScope) {
4972
4972
  }
4973
4973
 
4974
4974
  // src/merkle.ts
4975
+ var NODE_TAG_V2 = new Uint8Array([1]);
4976
+ var LEAF_TAG_V2 = new Uint8Array([0]);
4977
+ async function hashLeaf(entry, treeHashVersion = "merkle-sha256-plain-v1") {
4978
+ if (treeHashVersion === "merkle-sha256-plain-v1") {
4979
+ return toHex(await sha2562(entry));
4980
+ }
4981
+ if (treeHashVersion === "merkle-sha256-rfc6962-v2") {
4982
+ return toHex(await sha2562(concat(LEAF_TAG_V2, entry)));
4983
+ }
4984
+ throw new Error(`Unsupported MerkleTreeVersion: ${String(treeHashVersion)}`);
4985
+ }
4986
+ async function canonicalLeaf(value, treeHashVersion = "merkle-sha256-plain-v1") {
4987
+ return hashLeaf(new TextEncoder().encode(canonicalJson(value)), treeHashVersion);
4988
+ }
4989
+ function resolveTreeHashVersion(raw) {
4990
+ if (raw === void 0) return "merkle-sha256-plain-v1";
4991
+ if (raw === "merkle-sha256-plain-v1" || raw === "merkle-sha256-rfc6962-v2") return raw;
4992
+ return null;
4993
+ }
4975
4994
  function fromHex(hex) {
4976
4995
  const bytes = new Uint8Array(hex.length / 2);
4977
4996
  for (let i = 0; i < hex.length; i += 2) {
@@ -4988,7 +5007,18 @@ function concat(a, b) {
4988
5007
  out.set(b, a.length);
4989
5008
  return out;
4990
5009
  }
4991
- async function verifyMerkleInclusion(leaf, index, siblings, layerSizes, expectedRoot) {
5010
+ function concat3(a, b, c) {
5011
+ const out = new Uint8Array(a.length + b.length + c.length);
5012
+ out.set(a);
5013
+ out.set(b, a.length);
5014
+ out.set(c, a.length + b.length);
5015
+ return out;
5016
+ }
5017
+ async function verifyMerkleInclusion(leaf, index, siblings, layerSizes, expectedRoot, treeHashVersion = "merkle-sha256-plain-v1") {
5018
+ if (treeHashVersion !== "merkle-sha256-plain-v1" && treeHashVersion !== "merkle-sha256-rfc6962-v2") {
5019
+ return false;
5020
+ }
5021
+ const nodeTag = treeHashVersion === "merkle-sha256-rfc6962-v2" ? NODE_TAG_V2 : null;
4992
5022
  let current;
4993
5023
  try {
4994
5024
  current = fromHex(leaf);
@@ -5008,7 +5038,9 @@ async function verifyMerkleInclusion(leaf, index, siblings, layerSizes, expected
5008
5038
  } catch {
5009
5039
  return false;
5010
5040
  }
5011
- const combined = idx % 2 === 0 ? concat(current, siblingBytes) : concat(siblingBytes, current);
5041
+ const left = idx % 2 === 0 ? current : siblingBytes;
5042
+ const right = idx % 2 === 0 ? siblingBytes : current;
5043
+ const combined = nodeTag ? concat3(nodeTag, left, right) : concat(left, right);
5012
5044
  current = await sha2562(combined);
5013
5045
  sibIdx++;
5014
5046
  }
@@ -5888,6 +5920,26 @@ async function verifySettlement(settlement, issuerPublicKey) {
5888
5920
  return false;
5889
5921
  }
5890
5922
  }
5923
+ var FEDERATION_SETTLEMENT_RECORD_SUITE = "motebit-jcs-ed25519-b64-v1";
5924
+ async function signFederationSettlement(settlement, issuerPrivateKey) {
5925
+ const body = { ...settlement, suite: FEDERATION_SETTLEMENT_RECORD_SUITE };
5926
+ const canonical = canonicalJson(body);
5927
+ const message = new TextEncoder().encode(canonical);
5928
+ const sig = await signBySuite(FEDERATION_SETTLEMENT_RECORD_SUITE, message, issuerPrivateKey);
5929
+ return { ...body, signature: toBase64Url(sig) };
5930
+ }
5931
+ async function verifyFederationSettlement(settlement, issuerPublicKey) {
5932
+ if (settlement.suite !== FEDERATION_SETTLEMENT_RECORD_SUITE) return false;
5933
+ const { signature, ...body } = settlement;
5934
+ const canonical = canonicalJson(body);
5935
+ const message = new TextEncoder().encode(canonical);
5936
+ try {
5937
+ const sig = fromBase64Url(signature);
5938
+ return await verifyBySuite(settlement.suite, message, sig, issuerPublicKey);
5939
+ } catch {
5940
+ return false;
5941
+ }
5942
+ }
5891
5943
  var KEY_SUCCESSION_SUITE = "motebit-jcs-ed25519-hex-v1";
5892
5944
  function keySuccessionPayload(oldPublicKeyHex, newPublicKeyHex, timestamp, reason, recovery) {
5893
5945
  const obj = {
@@ -6533,14 +6585,25 @@ async function verifyContentArtifact(manifest, content) {
6533
6585
 
6534
6586
  // src/credential-anchor.ts
6535
6587
  var CREDENTIAL_ANCHOR_SUITE = "motebit-jcs-ed25519-hex-v1";
6536
- async function computeCredentialLeaf(credential) {
6537
- const canonical = canonicalJson(credential);
6538
- const hash2 = await sha2562(new TextEncoder().encode(canonical));
6539
- return bytesToHex4(hash2);
6588
+ async function computeCredentialLeaf(credential, treeHashVersion = "merkle-sha256-plain-v1") {
6589
+ return canonicalLeaf(credential, treeHashVersion);
6540
6590
  }
6541
6591
  async function verifyCredentialAnchor(credential, anchorProof, chainVerifier) {
6542
6592
  const errors = [];
6543
- const computedHash = await computeCredentialLeaf(credential);
6593
+ const treeHashVersion = resolveTreeHashVersion(anchorProof.tree_hash_version);
6594
+ if (treeHashVersion === null) {
6595
+ return {
6596
+ valid: false,
6597
+ steps: {
6598
+ hash_valid: false,
6599
+ merkle_valid: false,
6600
+ relay_signature_valid: false,
6601
+ chain_verified: null
6602
+ },
6603
+ errors: [`Unknown tree_hash_version "${String(anchorProof.tree_hash_version)}" \u2014 rejected`]
6604
+ };
6605
+ }
6606
+ const computedHash = await computeCredentialLeaf(credential, treeHashVersion);
6544
6607
  const hashValid = computedHash === anchorProof.credential_hash;
6545
6608
  if (!hashValid) {
6546
6609
  errors.push(
@@ -6552,7 +6615,8 @@ async function verifyCredentialAnchor(credential, anchorProof, chainVerifier) {
6552
6615
  anchorProof.leaf_index,
6553
6616
  anchorProof.siblings,
6554
6617
  anchorProof.layer_sizes,
6555
- anchorProof.merkle_root
6618
+ anchorProof.merkle_root,
6619
+ treeHashVersion
6556
6620
  );
6557
6621
  if (!merkleValid) {
6558
6622
  errors.push("Merkle proof does not reconstruct to the claimed root");
@@ -6679,6 +6743,200 @@ async function verifyRevocationAnchor(proof, revocationPayload, chainVerifier) {
6679
6743
  };
6680
6744
  }
6681
6745
 
6746
+ // src/agent-settlement-anchor.ts
6747
+ var AGENT_SETTLEMENT_ANCHOR_SUITE = "motebit-jcs-ed25519-hex-v1";
6748
+ async function computeAgentSettlementLeaf(settlement, treeHashVersion = "merkle-sha256-plain-v1") {
6749
+ return canonicalLeaf(settlement, treeHashVersion);
6750
+ }
6751
+ async function verifyAgentSettlementAnchor(settlement, proof, chainVerifier) {
6752
+ const errors = [];
6753
+ const treeHashVersion = resolveTreeHashVersion(proof.tree_hash_version);
6754
+ if (treeHashVersion === null) {
6755
+ return {
6756
+ valid: false,
6757
+ steps: {
6758
+ hash_valid: false,
6759
+ merkle_valid: false,
6760
+ relay_signature_valid: false,
6761
+ chain_verified: null
6762
+ },
6763
+ errors: [`Unknown tree_hash_version "${String(proof.tree_hash_version)}" \u2014 rejected`]
6764
+ };
6765
+ }
6766
+ const computedHash = await computeAgentSettlementLeaf(settlement, treeHashVersion);
6767
+ const hashValid = computedHash === proof.settlement_hash;
6768
+ if (!hashValid) {
6769
+ errors.push(
6770
+ `Hash mismatch: held record hashes to ${computedHash.slice(0, 16)}\u2026, proof claims ${proof.settlement_hash.slice(0, 16)}\u2026`
6771
+ );
6772
+ }
6773
+ const merkleValid = await verifyMerkleInclusion(
6774
+ proof.settlement_hash,
6775
+ proof.leaf_index,
6776
+ proof.siblings,
6777
+ proof.layer_sizes,
6778
+ proof.merkle_root,
6779
+ treeHashVersion
6780
+ );
6781
+ if (!merkleValid) {
6782
+ errors.push("Merkle proof does not reconstruct to the claimed root");
6783
+ }
6784
+ const suite = proof.suite;
6785
+ let relaySignatureValid = false;
6786
+ if (suite !== AGENT_SETTLEMENT_ANCHOR_SUITE) {
6787
+ errors.push(`Relay batch signature: missing or unsupported suite "${String(suite)}"`);
6788
+ } else {
6789
+ const batchPayload = canonicalJson({
6790
+ batch_id: proof.batch_id,
6791
+ merkle_root: proof.merkle_root,
6792
+ leaf_count: proof.leaf_count,
6793
+ first_settled_at: proof.first_settled_at,
6794
+ last_settled_at: proof.last_settled_at,
6795
+ relay_id: proof.relay_id,
6796
+ suite
6797
+ });
6798
+ const payloadBytes = new TextEncoder().encode(batchPayload);
6799
+ try {
6800
+ relaySignatureValid = await verifyBySuite(
6801
+ suite,
6802
+ payloadBytes,
6803
+ hexToBytes5(proof.batch_signature),
6804
+ hexToBytes5(proof.relay_public_key)
6805
+ );
6806
+ } catch {
6807
+ relaySignatureValid = false;
6808
+ }
6809
+ if (!relaySignatureValid) {
6810
+ errors.push("Relay batch signature verification failed");
6811
+ }
6812
+ }
6813
+ let chainVerified = null;
6814
+ if (proof.anchor && chainVerifier) {
6815
+ try {
6816
+ chainVerified = await chainVerifier({
6817
+ ...proof.anchor,
6818
+ expected_root: proof.merkle_root
6819
+ });
6820
+ if (!chainVerified) {
6821
+ errors.push("Onchain anchor verification failed");
6822
+ }
6823
+ } catch (err2) {
6824
+ chainVerified = false;
6825
+ errors.push(
6826
+ `Onchain verification error: ${err2 instanceof Error ? err2.message : String(err2)}`
6827
+ );
6828
+ }
6829
+ }
6830
+ const valid = hashValid && merkleValid && relaySignatureValid && (chainVerified === null || chainVerified);
6831
+ return {
6832
+ valid,
6833
+ steps: {
6834
+ hash_valid: hashValid,
6835
+ merkle_valid: merkleValid,
6836
+ relay_signature_valid: relaySignatureValid,
6837
+ chain_verified: chainVerified
6838
+ },
6839
+ errors
6840
+ };
6841
+ }
6842
+
6843
+ // src/federation-settlement-anchor.ts
6844
+ var FEDERATION_SETTLEMENT_ANCHOR_SUITE = "motebit-jcs-ed25519-hex-v1";
6845
+ async function computeFederationSettlementLeaf(settlement, treeHashVersion = "merkle-sha256-plain-v1") {
6846
+ return canonicalLeaf(settlement, treeHashVersion);
6847
+ }
6848
+ async function verifyFederationSettlementAnchor(settlement, proof, chainVerifier) {
6849
+ const errors = [];
6850
+ const treeHashVersion = resolveTreeHashVersion(proof.tree_hash_version);
6851
+ if (treeHashVersion === null) {
6852
+ return {
6853
+ valid: false,
6854
+ steps: {
6855
+ hash_valid: false,
6856
+ merkle_valid: false,
6857
+ relay_signature_valid: false,
6858
+ chain_verified: null
6859
+ },
6860
+ errors: [`Unknown tree_hash_version "${String(proof.tree_hash_version)}" \u2014 rejected`]
6861
+ };
6862
+ }
6863
+ const computedHash = await computeFederationSettlementLeaf(settlement, treeHashVersion);
6864
+ const hashValid = computedHash === proof.settlement_hash;
6865
+ if (!hashValid) {
6866
+ errors.push(
6867
+ `Hash mismatch: held record hashes to ${computedHash.slice(0, 16)}\u2026, proof claims ${proof.settlement_hash.slice(0, 16)}\u2026`
6868
+ );
6869
+ }
6870
+ const merkleValid = await verifyMerkleInclusion(
6871
+ proof.settlement_hash,
6872
+ proof.leaf_index,
6873
+ proof.siblings,
6874
+ proof.layer_sizes,
6875
+ proof.merkle_root,
6876
+ treeHashVersion
6877
+ );
6878
+ if (!merkleValid) {
6879
+ errors.push("Merkle proof does not reconstruct to the claimed root");
6880
+ }
6881
+ const suite = proof.suite;
6882
+ let relaySignatureValid = false;
6883
+ if (suite !== FEDERATION_SETTLEMENT_ANCHOR_SUITE) {
6884
+ errors.push(`Relay batch signature: missing or unsupported suite "${String(suite)}"`);
6885
+ } else {
6886
+ const batchPayload = canonicalJson({
6887
+ batch_id: proof.batch_id,
6888
+ merkle_root: proof.merkle_root,
6889
+ leaf_count: proof.leaf_count,
6890
+ first_settled_at: proof.first_settled_at,
6891
+ last_settled_at: proof.last_settled_at,
6892
+ relay_id: proof.relay_id,
6893
+ suite
6894
+ });
6895
+ const payloadBytes = new TextEncoder().encode(batchPayload);
6896
+ try {
6897
+ relaySignatureValid = await verifyBySuite(
6898
+ suite,
6899
+ payloadBytes,
6900
+ hexToBytes5(proof.batch_signature),
6901
+ hexToBytes5(proof.relay_public_key)
6902
+ );
6903
+ } catch {
6904
+ relaySignatureValid = false;
6905
+ }
6906
+ if (!relaySignatureValid) {
6907
+ errors.push("Relay batch signature verification failed");
6908
+ }
6909
+ }
6910
+ let chainVerified = null;
6911
+ if (proof.anchor && chainVerifier) {
6912
+ try {
6913
+ chainVerified = await chainVerifier({
6914
+ ...proof.anchor,
6915
+ expected_root: proof.merkle_root
6916
+ });
6917
+ if (!chainVerified) {
6918
+ errors.push("Onchain anchor verification failed");
6919
+ }
6920
+ } catch (err2) {
6921
+ chainVerified = false;
6922
+ errors.push(
6923
+ `Onchain verification error: ${err2 instanceof Error ? err2.message : String(err2)}`
6924
+ );
6925
+ }
6926
+ }
6927
+ const valid = hashValid && merkleValid && relaySignatureValid && (chainVerified === null || chainVerified);
6928
+ return {
6929
+ valid,
6930
+ steps: {
6931
+ hash_valid: hashValid,
6932
+ merkle_valid: merkleValid,
6933
+ relay_signature_valid: relaySignatureValid,
6934
+ chain_verified: chainVerified
6935
+ },
6936
+ errors
6937
+ };
6938
+ }
6939
+
6682
6940
  // src/deletion-certificate.ts
6683
6941
  var DELETION_CERTIFICATE_SUITE = "motebit-jcs-ed25519-b64-v1";
6684
6942
  var WITNESS_OMISSION_DISPUTE_WINDOW_MS = 24 * 60 * 60 * 1e3;
@@ -7011,7 +7269,7 @@ async function verifyRetentionManifest(manifest, operatorPublicKey) {
7011
7269
  errors.push(`unexpected spec: ${String(manifest.spec)}`);
7012
7270
  }
7013
7271
  if (manifest.suite !== "motebit-jcs-ed25519-hex-v1") {
7014
- errors.push(`unexpected suite: ${manifest.suite}`);
7272
+ errors.push(`unexpected suite: ${String(manifest.suite)}`);
7015
7273
  }
7016
7274
  if (errors.length > 0) {
7017
7275
  return { valid: false, errors, manifest: null };
@@ -7764,14 +8022,15 @@ async function verifyMigratingKeyBinding(motebitId, presentedKeyHex, identityFil
7764
8022
  return false;
7765
8023
  }
7766
8024
  }
7767
- async function identityLogLeaf(motebitId, currentKeyHex) {
7768
- const canonical = canonicalJson2({
7769
- type: "motebit-identity-binding",
7770
- motebit_id: motebitId,
7771
- public_key: currentKeyHex
7772
- });
7773
- const hash2 = await sha2563(new TextEncoder().encode(canonical));
7774
- return Array.from(hash2).map((b) => b.toString(16).padStart(2, "0")).join("");
8025
+ async function identityLogLeaf(motebitId, currentKeyHex, treeHashVersion = "merkle-sha256-plain-v1") {
8026
+ return canonicalLeaf(
8027
+ {
8028
+ type: "motebit-identity-binding",
8029
+ motebit_id: motebitId,
8030
+ public_key: currentKeyHex
8031
+ },
8032
+ treeHashVersion
8033
+ );
7775
8034
  }
7776
8035
  async function verifyIdentityBindingAnchored(identity, signingKeyHex, atTimestampMs, proof, guardianPublicKeyHex) {
7777
8036
  const sovereign = await verifyKeyBindingAtTime(
@@ -7781,13 +8040,26 @@ async function verifyIdentityBindingAnchored(identity, signingKeyHex, atTimestam
7781
8040
  guardianPublicKeyHex
7782
8041
  );
7783
8042
  if (!sovereign.bound) return sovereign;
7784
- const leaf = await identityLogLeaf(identity.motebit_id, identity.identity.public_key);
8043
+ const treeHashVersion = resolveTreeHashVersion(proof.tree_hash_version);
8044
+ if (treeHashVersion === null) {
8045
+ return {
8046
+ bound: false,
8047
+ ...sovereign.genesisPublicKey ? { genesisPublicKey: sovereign.genesisPublicKey } : {},
8048
+ reason: `unknown tree_hash_version "${String(proof.tree_hash_version)}" on identity-log proof`
8049
+ };
8050
+ }
8051
+ const leaf = await identityLogLeaf(
8052
+ identity.motebit_id,
8053
+ identity.identity.public_key,
8054
+ treeHashVersion
8055
+ );
7785
8056
  const included = await verifyMerkleInclusion(
7786
8057
  leaf,
7787
8058
  proof.index,
7788
8059
  proof.siblings,
7789
8060
  proof.layerSizes,
7790
- proof.anchoredRoot
8061
+ proof.anchoredRoot,
8062
+ treeHashVersion
7791
8063
  );
7792
8064
  if (!included) {
7793
8065
  return {
@@ -7801,16 +8073,19 @@ async function verifyIdentityBindingAnchored(identity, signingKeyHex, atTimestam
7801
8073
  async function verifyReceiptSignature(receipt, publicKey) {
7802
8074
  const { signature, ...body } = receipt;
7803
8075
  if (!signature || signature.trim() === "") {
7804
- return { valid: false, error: "Receipt signature is empty" };
8076
+ return { valid: false, error: "\xA711.2 violation: receipt signature is empty" };
7805
8077
  }
7806
8078
  let sig;
7807
8079
  try {
7808
8080
  sig = fromBase64Url2(signature);
7809
8081
  } catch {
7810
- return { valid: false, error: "Receipt signature is not valid base64url" };
8082
+ return { valid: false, error: "\xA711.2 violation: receipt signature is not valid base64url" };
7811
8083
  }
7812
8084
  if (sig.length !== 64) {
7813
- return { valid: false, error: `Receipt signature must be 64 bytes, got ${sig.length}` };
8085
+ return {
8086
+ valid: false,
8087
+ error: `\xA711.2 violation: receipt signature must be 64 bytes, got ${sig.length}`
8088
+ };
7814
8089
  }
7815
8090
  const canonical = canonicalJson2(body);
7816
8091
  const message = new TextEncoder().encode(canonical);
@@ -7838,20 +8113,26 @@ async function verifyReceipt(receipt) {
7838
8113
  type: "receipt",
7839
8114
  valid: false,
7840
8115
  receipt,
7841
- errors: [{ message: "No embedded public_key \u2014 cannot verify without known keys" }],
8116
+ errors: [
8117
+ {
8118
+ message: "\xA711.3 violation: No embedded public_key \u2014 cannot verify without known keys"
8119
+ }
8120
+ ],
7842
8121
  ...delegations2.length > 0 ? { delegations: delegations2 } : {}
7843
8122
  };
7844
8123
  }
7845
8124
  const sigResult = await verifyReceiptSignature(receipt, publicKey);
7846
8125
  const errors = [];
7847
8126
  if (!sigResult.valid) {
7848
- errors.push({ message: sigResult.error ?? "Receipt signature verification failed" });
8127
+ errors.push({
8128
+ message: sigResult.error ?? "\xA711.2 violation: Ed25519 signature did not verify"
8129
+ });
7849
8130
  }
7850
8131
  const delegations = await verifyReceiptDelegations(receipt);
7851
8132
  const delegationErrors = delegations.filter((d) => !d.valid);
7852
8133
  for (const d of delegationErrors) {
7853
8134
  errors.push({
7854
- message: `Delegation ${d.receipt?.task_id ?? "unknown"}: verification failed`,
8135
+ message: `\xA711.5 violation: delegation ${d.receipt?.task_id ?? "unknown"} verification failed`,
7855
8136
  path: `delegation_receipts`
7856
8137
  });
7857
8138
  }
@@ -8187,18 +8468,9 @@ async function verify(artifact, options) {
8187
8468
  return verifySkillEnvelopeArtifact(resolved);
8188
8469
  }
8189
8470
  }
8190
- async function verifyIdentityFile(content) {
8191
- const result = await verifyIdentity(content);
8192
- return {
8193
- valid: result.valid,
8194
- identity: result.identity,
8195
- did: result.did,
8196
- error: result.errors?.[0]?.message,
8197
- succession: result.succession
8198
- };
8199
- }
8200
8471
  export {
8201
8472
  ADJUDICATOR_VOTE_SUITE,
8473
+ AGENT_SETTLEMENT_ANCHOR_SUITE,
8202
8474
  BALANCE_WAIVER_SUITE,
8203
8475
  COLLABORATIVE_RECEIPT_SUITE,
8204
8476
  COMPUTER_SESSION_RECEIPT_SUITE,
@@ -8213,6 +8485,8 @@ export {
8213
8485
  DISPUTE_REQUEST_SUITE,
8214
8486
  DISPUTE_RESOLUTION_SUITE,
8215
8487
  EXECUTION_RECEIPT_SUITE,
8488
+ FEDERATION_SETTLEMENT_ANCHOR_SUITE,
8489
+ FEDERATION_SETTLEMENT_RECORD_SUITE,
8216
8490
  GUARDIAN_REVOCATION_SUITE,
8217
8491
  KEY_SUCCESSION_SUITE,
8218
8492
  SETTLEMENT_RECORD_SUITE,
@@ -8224,6 +8498,7 @@ export {
8224
8498
  base58btcEncode,
8225
8499
  bytesToHex4 as bytesToHex,
8226
8500
  canonicalJson,
8501
+ canonicalLeaf,
8227
8502
  canonicalSecureEnclaveBodyForTest,
8228
8503
  canonicalSha256,
8229
8504
  canonicalizeHorizonCert,
@@ -8233,8 +8508,10 @@ export {
8233
8508
  canonicalizeSkillEnvelopeBytes,
8234
8509
  canonicalizeSkillManifestBytes,
8235
8510
  canonicalizeWitnessOmissionDispute,
8511
+ computeAgentSettlementLeaf,
8236
8512
  computeCredentialLeaf,
8237
8513
  computeExecutionTimelineHash,
8514
+ computeFederationSettlementLeaf,
8238
8515
  createPresentation,
8239
8516
  createSignedToken,
8240
8517
  decodeSkillSignaturePublicKey,
@@ -8249,6 +8526,7 @@ export {
8249
8526
  getPublicKeyBySuite,
8250
8527
  hash,
8251
8528
  hashComputerSessionActions,
8529
+ hashLeaf,
8252
8530
  hashToolPayload,
8253
8531
  hexPublicKeyToDidKey,
8254
8532
  hexToBytes5 as hexToBytes,
@@ -8261,6 +8539,7 @@ export {
8261
8539
  parse,
8262
8540
  parseScopeSet,
8263
8541
  publicKeyToDidKey,
8542
+ resolveTreeHashVersion,
8264
8543
  sha2562 as sha256,
8265
8544
  signAdjudicatorVote,
8266
8545
  signBalanceWaiver,
@@ -8281,6 +8560,7 @@ export {
8281
8560
  signDisputeRequest,
8282
8561
  signDisputeResolution,
8283
8562
  signExecutionReceipt,
8563
+ signFederationSettlement,
8284
8564
  signGuardianRecoverySuccession,
8285
8565
  signGuardianRevocation,
8286
8566
  signHorizonCertAsIssuer,
@@ -8299,6 +8579,7 @@ export {
8299
8579
  toBase64Url,
8300
8580
  verify,
8301
8581
  verifyAdjudicatorVote,
8582
+ verifyAgentSettlementAnchor,
8302
8583
  verifyBalanceWaiver,
8303
8584
  verifyBySuite,
8304
8585
  verifyCollaborativeReceipt,
@@ -8318,12 +8599,13 @@ export {
8318
8599
  verifyDisputeResolution,
8319
8600
  verifyExecutionReceipt,
8320
8601
  verifyExecutionReceiptDetailed,
8602
+ verifyFederationSettlement,
8603
+ verifyFederationSettlementAnchor,
8321
8604
  verifyGoalExecutionManifest,
8322
8605
  verifyGuardianRevocation,
8323
8606
  verifyHardwareAttestationClaim,
8324
8607
  verifyHorizonWitnessRequestSignature,
8325
8608
  verifyIdentityBindingAnchored,
8326
- verifyIdentityFile,
8327
8609
  verifyKeyBindingAtTime,
8328
8610
  verifyKeySuccession,
8329
8611
  verifyMerkleInclusion,
package/dist/merkle.d.ts CHANGED
@@ -13,6 +13,54 @@
13
13
  * - `witness-omission-dispute.ts` — `inclusion_proof` evidence
14
14
  * against a horizon cert's `federation_graph_anchor.merkle_root`.
15
15
  */
16
+ import type { MerkleTreeVersion } from "@motebit/protocol";
17
+ /**
18
+ * Hash a Merkle leaf under a tree-hash version — the single dispatch point for
19
+ * the RFC 6962 §2.1 leaf-domain `0x00` tag, the leaf-side mirror of the
20
+ * interior-node `0x01` tag applied in {@link verifyMerkleInclusion}'s combine
21
+ * step. v1 = `SHA-256(entry)`; v2 = `SHA-256(0x00 ‖ entry)`. Every leaf builder
22
+ * (settlement, credential, identity-log, consolidation) routes its leaf hash
23
+ * through here, so the leaf tag lives in exactly one place — the
24
+ * `check-suite-dispatch` shape applied to the Merkle axis (locked by
25
+ * `check-merkle-tree-hash-canonical`).
26
+ *
27
+ * Producer-side contract: THROWS on a version this primitive does not implement
28
+ * (a builder asking for an unregistered version is a programming error, not
29
+ * untrusted input — unlike the verifier path, which returns `false`). The
30
+ * high-level verifiers validate the proof's `tree_hash_version` at their own
31
+ * boundary before threading it down, so an unhandled value never reaches here
32
+ * from untrusted input.
33
+ *
34
+ * @param entry - the leaf's entry bytes (e.g. encoded `canonicalJson(record)`)
35
+ * @param treeHashVersion - tree-hash recipe; default `merkle-sha256-plain-v1`
36
+ * @returns hex-encoded SHA-256 leaf hash
37
+ */
38
+ export declare function hashLeaf(entry: Uint8Array, treeHashVersion?: MerkleTreeVersion): Promise<string>;
39
+ /**
40
+ * JCS-canonicalize a value, then leaf-hash it via {@link hashLeaf}.
41
+ * `canonicalLeaf(x)` (v1 default) is byte-identical to `canonicalSha256(x)` —
42
+ * the leaf builders that used the latter keep their v1 output unchanged while
43
+ * gaining the v2 path for free. The shared canonicalization means a producer
44
+ * and a holder who hold the same object derive the identical leaf.
45
+ *
46
+ * @param value - the object the leaf commits to (signature included for signed artifacts)
47
+ * @param treeHashVersion - tree-hash recipe; default `merkle-sha256-plain-v1`
48
+ * @returns hex-encoded SHA-256 leaf hash
49
+ */
50
+ export declare function canonicalLeaf(value: unknown, treeHashVersion?: MerkleTreeVersion): Promise<string>;
51
+ /**
52
+ * Resolve a proof's wire `tree_hash_version` string to a `MerkleTreeVersion` at
53
+ * a verifier boundary. **Absent ⇒ `merkle-sha256-plain-v1`** (never silently
54
+ * upgraded — threat-model rule a); a known value passes through; an UNKNOWN
55
+ * string returns `null` so the caller fails closed and REJECTS (never downgrades
56
+ * to v1 — threat-model rule b). The leaf-builder + Merkle-inclusion calls
57
+ * downstream then receive a narrow, supported version. Mirrors the
58
+ * `verifyBySuite` suite-resolution contract, one axis over. The two string
59
+ * literals here are the verifier-side dispatch arms the closed-registry gate
60
+ * (`check-merkle-tree-hash-canonical`) keeps aligned with
61
+ * `ALL_MERKLE_TREE_VERSIONS`.
62
+ */
63
+ export declare function resolveTreeHashVersion(raw: string | undefined): MerkleTreeVersion | null;
16
64
  /**
17
65
  * Verify a Merkle inclusion proof against an expected root.
18
66
  *
@@ -24,11 +72,19 @@
24
72
  * Returns `false` on any malformed input or hash mismatch — never
25
73
  * throws. Same fail-closed contract as `verifyBySuite`.
26
74
  *
75
+ * The `leaf` is the already-computed bottom-layer leaf HASH; the leaf-domain
76
+ * `0x00` tag (RFC 6962 §2.1) lives in the leaf builders that produce it, so this
77
+ * primitive applies only the interior-node `0x01` tag (under v2). `absent ⇒ v1`
78
+ * is resolved by the caller (the high-level verifier reads the proof's
79
+ * `tree_hash_version`); the default here keeps the ~dozen existing 5-arg callers
80
+ * byte-identical (v1) until they thread a version.
81
+ *
27
82
  * @param leaf - hex-encoded SHA-256 leaf hash
28
83
  * @param index - leaf position in the bottom layer (0-based)
29
84
  * @param siblings - hex-encoded sibling hashes, leaf-to-root order
30
85
  * @param layerSizes - bottom-up layer cardinalities
31
86
  * @param expectedRoot - hex-encoded SHA-256 root the proof must reconstruct
87
+ * @param treeHashVersion - tree-hash recipe; default `merkle-sha256-plain-v1`
32
88
  */
33
- export declare function verifyMerkleInclusion(leaf: string, index: number, siblings: string[], layerSizes: number[], expectedRoot: string): Promise<boolean>;
89
+ export declare function verifyMerkleInclusion(leaf: string, index: number, siblings: string[], layerSizes: number[], expectedRoot: string, treeHashVersion?: MerkleTreeVersion): Promise<boolean>;
34
90
  //# sourceMappingURL=merkle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyBH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAiClB"}
1
+ {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0B3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,UAAU,EACjB,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAIxF;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,iBAA4C,GAC5D,OAAO,CAAC,OAAO,CAAC,CA8ClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motebit/crypto",
3
- "version": "2.1.0",
3
+ "version": "3.0.1",
4
4
  "description": "Sign and verify every Motebit artifact — identity files, execution receipts, credentials, delegations, succession records, credential anchors. Ed25519 today, cryptosuite-agile for post-quantum tomorrow. Apache-2.0, zero monorepo dependencies.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,11 +61,11 @@
61
61
  "@noble/ed25519": "~3.1.0",
62
62
  "@noble/hashes": "^2.2.0",
63
63
  "@types/node": "^22.0.0",
64
- "fast-check": "^4.6.0",
64
+ "fast-check": "^4.8.0",
65
65
  "tsup": "^8.0.0",
66
66
  "typescript": "^5.6.0",
67
- "vitest": "^2.1.0",
68
- "@motebit/protocol": "2.0.1"
67
+ "vitest": "^4.1.8",
68
+ "@motebit/protocol": "3.0.0"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=20"