@motebit/protocol 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/agent-revocation.d.ts +184 -0
- package/dist/agent-revocation.d.ts.map +1 -0
- package/dist/agent-revocation.js +108 -0
- package/dist/agent-revocation.js.map +1 -0
- package/dist/agent-settlement-anchor.d.ts +12 -0
- package/dist/agent-settlement-anchor.d.ts.map +1 -1
- package/dist/artifact-type.d.ts +25 -7
- package/dist/artifact-type.d.ts.map +1 -1
- package/dist/artifact-type.js +9 -0
- package/dist/artifact-type.js.map +1 -1
- package/dist/base58.d.ts +20 -0
- package/dist/base58.d.ts.map +1 -0
- package/dist/base58.js +47 -0
- package/dist/base58.js.map +1 -0
- package/dist/credential-anchor.d.ts +12 -0
- package/dist/credential-anchor.d.ts.map +1 -1
- package/dist/federation-settlement-anchor.d.ts +140 -0
- package/dist/federation-settlement-anchor.d.ts.map +1 -0
- package/dist/federation-settlement-anchor.js +22 -0
- package/dist/federation-settlement-anchor.js.map +1 -0
- package/dist/index.d.ts +111 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -14
- package/dist/index.js.map +1 -1
- package/dist/memory-events.d.ts +5 -2
- package/dist/memory-events.d.ts.map +1 -1
- package/dist/merkle-tree-hash.d.ts +97 -0
- package/dist/merkle-tree-hash.d.ts.map +1 -0
- package/dist/merkle-tree-hash.js +78 -0
- package/dist/merkle-tree-hash.js.map +1 -0
- package/dist/money.d.ts +45 -0
- package/dist/money.d.ts.map +1 -1
- package/dist/money.js +50 -0
- package/dist/money.js.map +1 -1
- package/dist/retention-policy.d.ts +7 -8
- package/dist/retention-policy.d.ts.map +1 -1
- package/dist/retention-policy.js.map +1 -1
- package/dist/settlement-mode.d.ts +34 -0
- package/dist/settlement-mode.d.ts.map +1 -1
- package/dist/settlement-summary.d.ts +102 -0
- package/dist/settlement-summary.d.ts.map +1 -0
- package/dist/settlement-summary.js +28 -0
- package/dist/settlement-summary.js.map +1 -0
- package/dist/skills.d.ts +1 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/transparency.d.ts +2 -3
- package/dist/transparency.d.ts.map +1 -1
- package/dist/transparency.js.map +1 -1
- package/dist/trust-algebra.d.ts +0 -15
- package/dist/trust-algebra.d.ts.map +1 -1
- package/dist/trust-algebra.js +2 -15
- package/dist/trust-algebra.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/memory-events.d.ts
CHANGED
|
@@ -108,8 +108,11 @@ export interface MemoryConsolidatedPayload {
|
|
|
108
108
|
* phantom/conflict/near-death categorization — that is a compute,
|
|
109
109
|
* not an event. */
|
|
110
110
|
export interface MemoryAuditPayload {
|
|
111
|
-
/**
|
|
112
|
-
*
|
|
111
|
+
/** Memory-worthy pattern labels the ai-core heuristic detected in the
|
|
112
|
+
* turn but the model didn't tag — each is a `<label>: "<excerpt>"`
|
|
113
|
+
* string (label ∈ preference / personal_fact / goal / correction),
|
|
114
|
+
* produced by `detectUntaggedMemoryPatterns`. Free-form strings, NOT
|
|
115
|
+
* sensitivity levels — the type is `string`, not `SensitivityLevel`. */
|
|
113
116
|
readonly missed_patterns: ReadonlyArray<string>;
|
|
114
117
|
/** Up to 200 characters of the triggering user message. The cap
|
|
115
118
|
* keeps this event within sync-safe bounds even when the turn
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-events.d.ts","sourceRoot":"","sources":["../src/memory-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;2DAE2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzD;;;iCAGiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;8CAC0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC;6DACyD;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB;mEAC+D;IAC/D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACjD;;;kDAG8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;uEACmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;kCAEkC;AAClC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;+BAE+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;+CAI+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;0EAE0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7D;0DACsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC;mDAC+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;0DACsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;8DAG0D;IAC1D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;;;;oBAKoB;AACpB,MAAM,WAAW,kBAAkB;IACjC;
|
|
1
|
+
{"version":3,"file":"memory-events.d.ts","sourceRoot":"","sources":["../src/memory-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;2DAE2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzD;;;iCAGiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;8CAC0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC;6DACyD;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB;mEAC+D;IAC/D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACjD;;;kDAG8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;uEACmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;kCAEkC;AAClC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;+BAE+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;+CAI+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;0EAE0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7D;0DACsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC;mDAC+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;0DACsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;8DAG0D;IAC1D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;;;;oBAKoB;AACpB,MAAM,WAAW,kBAAkB;IACjC;;;;6EAIyE;IACzE,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD;;0BAEsB;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merkle tree-hash version registry — the agility axis for how a Merkle
|
|
3
|
+
* tree's leaves and interior nodes are hashed.
|
|
4
|
+
*
|
|
5
|
+
* A `MerkleTreeVersion` is the complete specification of the tree-hash
|
|
6
|
+
* recipe for a class of anchored artifacts: which leaf-domain tag, which
|
|
7
|
+
* node-domain tag, which hash function. It is a SEPARATE axis from
|
|
8
|
+
* `SuiteId` (`crypto-suite.ts`) — that names the SIGNATURE recipe over a
|
|
9
|
+
* batch payload; this names the TREE-HASH recipe that builds the root the
|
|
10
|
+
* signature commits to. Keeping them distinct registries prevents the
|
|
11
|
+
* confusion their names would otherwise invite.
|
|
12
|
+
*
|
|
13
|
+
* Scope of a `MerkleTreeVersion` — exactly `(leaf tag, node tag, hash
|
|
14
|
+
* function)`. It does **not** cover payload canonicalization: the bytes a
|
|
15
|
+
* leaf commits to (`canonicalJson` / JCS over the signed artifact) are the
|
|
16
|
+
* entry-bytes contract and version independently. A reviewer must not read
|
|
17
|
+
* this axis as governing canonicalization.
|
|
18
|
+
*
|
|
19
|
+
* Migration is a registry append, not a wire break (see
|
|
20
|
+
* `docs/doctrine/merkle-tree-hash-versioning.md` and
|
|
21
|
+
* `docs/doctrine/agility-as-role.md`): a signed Merkle proof carries an
|
|
22
|
+
* optional `tree_hash_version` field; absent ⇒ `merkle-sha256-plain-v1`
|
|
23
|
+
* (every proof minted before this axis existed still verifies offline).
|
|
24
|
+
* Adding a version means a new entry here + a new dispatch arm in the
|
|
25
|
+
* Merkle primitives (`@motebit/crypto/merkle.ts`,
|
|
26
|
+
* `@motebit/encryption/merkle.ts`), exactly as a new `SuiteId` means a new
|
|
27
|
+
* arm in `verifyBySuite`.
|
|
28
|
+
*
|
|
29
|
+
* Permissive floor (Apache-2.0), type + constants, zero runtime deps. The
|
|
30
|
+
* tag bytes below are documentation-canonical; the dispatching primitives
|
|
31
|
+
* apply them in an exhaustive switch and the known-answer vectors pin the
|
|
32
|
+
* actual byte layout against an independent RFC 6962 implementation.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* The closed set of tree-hash version identifiers motebit supports.
|
|
36
|
+
*
|
|
37
|
+
* - `merkle-sha256-plain-v1` — SHA-256 with NO domain separation: leaf =
|
|
38
|
+
* `SHA-256(entry)`, node = `SHA-256(left ‖ right)`. The original
|
|
39
|
+
* behavior. `legacy`: verifiers accept it, producers MUST NOT emit it.
|
|
40
|
+
* - `merkle-sha256-rfc6962-v2` — RFC 6962 §2.1 domain separation: leaf =
|
|
41
|
+
* `SHA-256(0x00 ‖ entry)`, node = `SHA-256(0x01 ‖ left ‖ right)`. The
|
|
42
|
+
* `preferred` version; gives the leaf-vs-node second-preimage
|
|
43
|
+
* resistance the anchor specs' RFC 6962 citation promises.
|
|
44
|
+
*/
|
|
45
|
+
export type MerkleTreeVersion = "merkle-sha256-plain-v1" | "merkle-sha256-rfc6962-v2";
|
|
46
|
+
/**
|
|
47
|
+
* Lifecycle status, mirroring `SuiteStatus`. `legacy` = accept on verify,
|
|
48
|
+
* never emit; `preferred` = producers SHOULD emit, verifiers accept.
|
|
49
|
+
*/
|
|
50
|
+
export type MerkleTreeVersionStatus = "preferred" | "allowed" | "legacy";
|
|
51
|
+
/** The hash function a tree-hash version uses. */
|
|
52
|
+
export type MerkleHashFunction = "SHA-256";
|
|
53
|
+
/**
|
|
54
|
+
* The complete tree-hash recipe for one version. `leafTag` / `nodeTag` are
|
|
55
|
+
* the RFC 6962 §2.1 domain-separation prefix bytes, or `null` when the
|
|
56
|
+
* version applies no tag (the legacy v1 behavior). Documentation-canonical:
|
|
57
|
+
* the dispatching Merkle primitives hold the authoritative algorithm in an
|
|
58
|
+
* exhaustive switch; a known-answer vector pins the bytes. A test asserts
|
|
59
|
+
* this metadata stays consistent with the primitives' behavior.
|
|
60
|
+
*/
|
|
61
|
+
export interface MerkleTreeVersionEntry {
|
|
62
|
+
readonly id: MerkleTreeVersion;
|
|
63
|
+
readonly hash: MerkleHashFunction;
|
|
64
|
+
/** RFC 6962 leaf-domain prefix byte, or `null` for no leaf tag (v1). */
|
|
65
|
+
readonly leafTag: number | null;
|
|
66
|
+
/** RFC 6962 node-domain prefix byte, or `null` for no node tag (v1). */
|
|
67
|
+
readonly nodeTag: number | null;
|
|
68
|
+
readonly status: MerkleTreeVersionStatus;
|
|
69
|
+
/** Short prose description — surfaces in tooling, error messages, docs. */
|
|
70
|
+
readonly description: string;
|
|
71
|
+
}
|
|
72
|
+
export declare const MERKLE_TREE_VERSION_REGISTRY: Readonly<Record<MerkleTreeVersion, MerkleTreeVersionEntry>>;
|
|
73
|
+
/**
|
|
74
|
+
* The default version for a proof that carries no `tree_hash_version`
|
|
75
|
+
* field. Absent ⇒ v1 — never silently upgraded. This is the load-bearing
|
|
76
|
+
* downgrade-safety constant: verifiers resolve absent to exactly this and
|
|
77
|
+
* a v2 producer MUST emit the field rather than rely on the default.
|
|
78
|
+
*/
|
|
79
|
+
export declare const DEFAULT_MERKLE_TREE_VERSION: MerkleTreeVersion;
|
|
80
|
+
/**
|
|
81
|
+
* Type guard — narrows `unknown` / arbitrary strings to `MerkleTreeVersion`.
|
|
82
|
+
* Verifiers MUST call this (or resolve absent ⇒ default) before dispatching;
|
|
83
|
+
* an unchecked cast is a fail-open path.
|
|
84
|
+
*/
|
|
85
|
+
export declare function isMerkleTreeVersion(value: unknown): value is MerkleTreeVersion;
|
|
86
|
+
/**
|
|
87
|
+
* Look up a tree-hash version entry. Returns `undefined` for unknown IDs so
|
|
88
|
+
* callers decide rejection at their boundary (verifiers reject fail-closed).
|
|
89
|
+
*/
|
|
90
|
+
export declare function getMerkleTreeVersionEntry(id: MerkleTreeVersion): MerkleTreeVersionEntry;
|
|
91
|
+
export declare function getMerkleTreeVersionEntry(id: string): MerkleTreeVersionEntry | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Canonical frozen list of all registered tree-hash versions. Iterate this
|
|
94
|
+
* (not `Object.keys`) so TypeScript sees the narrow union.
|
|
95
|
+
*/
|
|
96
|
+
export declare const ALL_MERKLE_TREE_VERSIONS: readonly MerkleTreeVersion[];
|
|
97
|
+
//# sourceMappingURL=merkle-tree-hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkle-tree-hash.d.ts","sourceRoot":"","sources":["../src/merkle-tree-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CACjD,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAoBjD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAA4C,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,sBAAsB,CAAC;AACzF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAC;AAK1F;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,iBAAiB,EAG/D,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merkle tree-hash version registry — the agility axis for how a Merkle
|
|
3
|
+
* tree's leaves and interior nodes are hashed.
|
|
4
|
+
*
|
|
5
|
+
* A `MerkleTreeVersion` is the complete specification of the tree-hash
|
|
6
|
+
* recipe for a class of anchored artifacts: which leaf-domain tag, which
|
|
7
|
+
* node-domain tag, which hash function. It is a SEPARATE axis from
|
|
8
|
+
* `SuiteId` (`crypto-suite.ts`) — that names the SIGNATURE recipe over a
|
|
9
|
+
* batch payload; this names the TREE-HASH recipe that builds the root the
|
|
10
|
+
* signature commits to. Keeping them distinct registries prevents the
|
|
11
|
+
* confusion their names would otherwise invite.
|
|
12
|
+
*
|
|
13
|
+
* Scope of a `MerkleTreeVersion` — exactly `(leaf tag, node tag, hash
|
|
14
|
+
* function)`. It does **not** cover payload canonicalization: the bytes a
|
|
15
|
+
* leaf commits to (`canonicalJson` / JCS over the signed artifact) are the
|
|
16
|
+
* entry-bytes contract and version independently. A reviewer must not read
|
|
17
|
+
* this axis as governing canonicalization.
|
|
18
|
+
*
|
|
19
|
+
* Migration is a registry append, not a wire break (see
|
|
20
|
+
* `docs/doctrine/merkle-tree-hash-versioning.md` and
|
|
21
|
+
* `docs/doctrine/agility-as-role.md`): a signed Merkle proof carries an
|
|
22
|
+
* optional `tree_hash_version` field; absent ⇒ `merkle-sha256-plain-v1`
|
|
23
|
+
* (every proof minted before this axis existed still verifies offline).
|
|
24
|
+
* Adding a version means a new entry here + a new dispatch arm in the
|
|
25
|
+
* Merkle primitives (`@motebit/crypto/merkle.ts`,
|
|
26
|
+
* `@motebit/encryption/merkle.ts`), exactly as a new `SuiteId` means a new
|
|
27
|
+
* arm in `verifyBySuite`.
|
|
28
|
+
*
|
|
29
|
+
* Permissive floor (Apache-2.0), type + constants, zero runtime deps. The
|
|
30
|
+
* tag bytes below are documentation-canonical; the dispatching primitives
|
|
31
|
+
* apply them in an exhaustive switch and the known-answer vectors pin the
|
|
32
|
+
* actual byte layout against an independent RFC 6962 implementation.
|
|
33
|
+
*/
|
|
34
|
+
export const MERKLE_TREE_VERSION_REGISTRY = Object.freeze({
|
|
35
|
+
"merkle-sha256-plain-v1": {
|
|
36
|
+
id: "merkle-sha256-plain-v1",
|
|
37
|
+
hash: "SHA-256",
|
|
38
|
+
leafTag: null,
|
|
39
|
+
nodeTag: null,
|
|
40
|
+
status: "legacy",
|
|
41
|
+
description: "SHA-256, no domain separation (leaf = SHA-256(entry), node = SHA-256(left ‖ right)). The original tree-hash; verifiers accept, producers must not emit. Proofs minted before the tree_hash_version field existed are this version by the absent ⇒ v1 default.",
|
|
42
|
+
},
|
|
43
|
+
"merkle-sha256-rfc6962-v2": {
|
|
44
|
+
id: "merkle-sha256-rfc6962-v2",
|
|
45
|
+
hash: "SHA-256",
|
|
46
|
+
leafTag: 0x00,
|
|
47
|
+
nodeTag: 0x01,
|
|
48
|
+
status: "preferred",
|
|
49
|
+
description: "RFC 6962 §2.1 domain separation (leaf = SHA-256(0x00 ‖ entry), node = SHA-256(0x01 ‖ left ‖ right)). Provides the leaf-vs-node second-preimage resistance the anchor specs' RFC 6962 citation promises.",
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* The default version for a proof that carries no `tree_hash_version`
|
|
54
|
+
* field. Absent ⇒ v1 — never silently upgraded. This is the load-bearing
|
|
55
|
+
* downgrade-safety constant: verifiers resolve absent to exactly this and
|
|
56
|
+
* a v2 producer MUST emit the field rather than rely on the default.
|
|
57
|
+
*/
|
|
58
|
+
export const DEFAULT_MERKLE_TREE_VERSION = "merkle-sha256-plain-v1";
|
|
59
|
+
/**
|
|
60
|
+
* Type guard — narrows `unknown` / arbitrary strings to `MerkleTreeVersion`.
|
|
61
|
+
* Verifiers MUST call this (or resolve absent ⇒ default) before dispatching;
|
|
62
|
+
* an unchecked cast is a fail-open path.
|
|
63
|
+
*/
|
|
64
|
+
export function isMerkleTreeVersion(value) {
|
|
65
|
+
return typeof value === "string" && value in MERKLE_TREE_VERSION_REGISTRY;
|
|
66
|
+
}
|
|
67
|
+
export function getMerkleTreeVersionEntry(id) {
|
|
68
|
+
return MERKLE_TREE_VERSION_REGISTRY[id];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Canonical frozen list of all registered tree-hash versions. Iterate this
|
|
72
|
+
* (not `Object.keys`) so TypeScript sees the narrow union.
|
|
73
|
+
*/
|
|
74
|
+
export const ALL_MERKLE_TREE_VERSIONS = Object.freeze([
|
|
75
|
+
"merkle-sha256-plain-v1",
|
|
76
|
+
"merkle-sha256-rfc6962-v2",
|
|
77
|
+
]);
|
|
78
|
+
//# sourceMappingURL=merkle-tree-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkle-tree-hash.js","sourceRoot":"","sources":["../src/merkle-tree-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA4CH,MAAM,CAAC,MAAM,4BAA4B,GAErC,MAAM,CAAC,MAAM,CAAC;IAChB,wBAAwB,EAAE;QACxB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,QAAQ;QAChB,WAAW,EACT,+PAA+P;KAClQ;IACD,0BAA0B,EAAE;QAC1B,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,WAAW;QACnB,WAAW,EACT,yMAAyM;KAC5M;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB,wBAAwB,CAAC;AAEvF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,4BAA4B,CAAC;AAC5E,CAAC;AAQD,MAAM,UAAU,yBAAyB,CAAC,EAAU;IAClD,OAAO,4BAA4B,CAAC,EAAuB,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAiC,MAAM,CAAC,MAAM,CAAC;IAClF,wBAAwB;IACxB,0BAA0B;CAC3B,CAAC,CAAC"}
|
package/dist/money.d.ts
CHANGED
|
@@ -30,4 +30,49 @@ export declare function fromMicro(micro: number): number;
|
|
|
30
30
|
export declare function toCents(dollars: number): number;
|
|
31
31
|
/** Integer cents → API dollars (float). */
|
|
32
32
|
export declare function fromCents(cents: number): number;
|
|
33
|
+
/**
|
|
34
|
+
* P2P settlement fee leg, in micro-units. A paid direct delegation settles in
|
|
35
|
+
* one atomic onchain transaction that splits into a worker leg
|
|
36
|
+
* (`netCostMicro` — the listing unit_cost the worker earns net) and this fee
|
|
37
|
+
* leg to the relay treasury. The fee is `gross - net` where
|
|
38
|
+
* `gross = round(net / (1 - feeRate))`.
|
|
39
|
+
*
|
|
40
|
+
* This is interop law on the money path: the relay's settlement validator (the
|
|
41
|
+
* `requiresP2pProof` submission check) and the delegator client that builds the
|
|
42
|
+
* proof MUST compute the fee identically — a one-micro disagreement rejects the
|
|
43
|
+
* proof (`TASK_P2P_FEE_AMOUNT_MISMATCH`). The formula therefore lives here as
|
|
44
|
+
* the single canonical source, never inline at each site. Pure integer math
|
|
45
|
+
* over a float `feeRate` ratio — no dollar arithmetic.
|
|
46
|
+
*
|
|
47
|
+
* @param netCostMicro worker net in micro-units (integer)
|
|
48
|
+
* @param feeRate platform fee rate in [0, 1) — e.g. 0.05
|
|
49
|
+
*/
|
|
50
|
+
export declare function computeP2pFeeMicro(netCostMicro: number, feeRate: number): number;
|
|
51
|
+
/** The three legs of a cross-operator federated P2P settlement, in micro-units. */
|
|
52
|
+
export interface FederatedFeeSplit {
|
|
53
|
+
/** Origin relay (A) fee leg — `round(budget · feeRate)`. */
|
|
54
|
+
originFeeMicro: number;
|
|
55
|
+
/** Executor relay (B) fee leg — `round((budget − originFee) · feeRate)`. */
|
|
56
|
+
executorFeeMicro: number;
|
|
57
|
+
/** Worker net leg — the remainder. `budget − originFee − executorFee`. */
|
|
58
|
+
workerNetMicro: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cross-operator federated P2P fee-from-budget split (spec `relay-federation-v1`
|
|
62
|
+
* §7.1). Unlike single-operator P2P (fee on TOP of the worker's unit_cost), the
|
|
63
|
+
* remote worker's listed `unit_cost` IS the budget: the origin relay (A) takes
|
|
64
|
+
* `feeRate` of it, forwards the remainder, the executor relay (B) takes `feeRate`
|
|
65
|
+
* of THAT, and the worker nets the rest. `$1.00 → A $0.05 / B $0.0475 / worker
|
|
66
|
+
* $0.9025`. The three legs sum to the budget exactly (no float drift — integer
|
|
67
|
+
* subtraction down the chain).
|
|
68
|
+
*
|
|
69
|
+
* Interop law on the money path: the origin relay's forward-site validator
|
|
70
|
+
* (`federatedP2pIntent`) and the delegator client that builds the 3-leg proof
|
|
71
|
+
* MUST compute this identically, or the proof is rejected leg-by-leg. Hosted
|
|
72
|
+
* here as the single canonical source consumed by both.
|
|
73
|
+
*
|
|
74
|
+
* @param budgetMicro the remote worker's listed unit_cost, in micro-units
|
|
75
|
+
* @param feeRate platform fee rate in [0, 1) — e.g. 0.05
|
|
76
|
+
*/
|
|
77
|
+
export declare function computeFederatedFeeSplit(budgetMicro: number, feeRate: number): FederatedFeeSplit;
|
|
33
78
|
//# sourceMappingURL=money.d.ts.map
|
package/dist/money.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kEAAkE;AAClE,eAAO,MAAM,KAAK,UAAY,CAAC;AAE/B,mEAAmE;AACnE,eAAO,MAAM,KAAK,MAAM,CAAC;AAEzB,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
|
1
|
+
{"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kEAAkE;AAClE,eAAO,MAAM,KAAK,UAAY,CAAC;AAE/B,mEAAmE;AACnE,eAAO,MAAM,KAAK,MAAM,CAAC;AAEzB,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKhF;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAShG"}
|
package/dist/money.js
CHANGED
|
@@ -38,4 +38,54 @@ export function toCents(dollars) {
|
|
|
38
38
|
export function fromCents(cents) {
|
|
39
39
|
return cents / CENTS;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* P2P settlement fee leg, in micro-units. A paid direct delegation settles in
|
|
43
|
+
* one atomic onchain transaction that splits into a worker leg
|
|
44
|
+
* (`netCostMicro` — the listing unit_cost the worker earns net) and this fee
|
|
45
|
+
* leg to the relay treasury. The fee is `gross - net` where
|
|
46
|
+
* `gross = round(net / (1 - feeRate))`.
|
|
47
|
+
*
|
|
48
|
+
* This is interop law on the money path: the relay's settlement validator (the
|
|
49
|
+
* `requiresP2pProof` submission check) and the delegator client that builds the
|
|
50
|
+
* proof MUST compute the fee identically — a one-micro disagreement rejects the
|
|
51
|
+
* proof (`TASK_P2P_FEE_AMOUNT_MISMATCH`). The formula therefore lives here as
|
|
52
|
+
* the single canonical source, never inline at each site. Pure integer math
|
|
53
|
+
* over a float `feeRate` ratio — no dollar arithmetic.
|
|
54
|
+
*
|
|
55
|
+
* @param netCostMicro worker net in micro-units (integer)
|
|
56
|
+
* @param feeRate platform fee rate in [0, 1) — e.g. 0.05
|
|
57
|
+
*/
|
|
58
|
+
export function computeP2pFeeMicro(netCostMicro, feeRate) {
|
|
59
|
+
if (feeRate < 0 || feeRate >= 1) {
|
|
60
|
+
throw new Error(`feeRate must be in [0, 1), got ${feeRate}`);
|
|
61
|
+
}
|
|
62
|
+
return Math.round(netCostMicro / (1 - feeRate)) - netCostMicro;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Cross-operator federated P2P fee-from-budget split (spec `relay-federation-v1`
|
|
66
|
+
* §7.1). Unlike single-operator P2P (fee on TOP of the worker's unit_cost), the
|
|
67
|
+
* remote worker's listed `unit_cost` IS the budget: the origin relay (A) takes
|
|
68
|
+
* `feeRate` of it, forwards the remainder, the executor relay (B) takes `feeRate`
|
|
69
|
+
* of THAT, and the worker nets the rest. `$1.00 → A $0.05 / B $0.0475 / worker
|
|
70
|
+
* $0.9025`. The three legs sum to the budget exactly (no float drift — integer
|
|
71
|
+
* subtraction down the chain).
|
|
72
|
+
*
|
|
73
|
+
* Interop law on the money path: the origin relay's forward-site validator
|
|
74
|
+
* (`federatedP2pIntent`) and the delegator client that builds the 3-leg proof
|
|
75
|
+
* MUST compute this identically, or the proof is rejected leg-by-leg. Hosted
|
|
76
|
+
* here as the single canonical source consumed by both.
|
|
77
|
+
*
|
|
78
|
+
* @param budgetMicro the remote worker's listed unit_cost, in micro-units
|
|
79
|
+
* @param feeRate platform fee rate in [0, 1) — e.g. 0.05
|
|
80
|
+
*/
|
|
81
|
+
export function computeFederatedFeeSplit(budgetMicro, feeRate) {
|
|
82
|
+
if (feeRate < 0 || feeRate >= 1) {
|
|
83
|
+
throw new Error(`feeRate must be in [0, 1), got ${feeRate}`);
|
|
84
|
+
}
|
|
85
|
+
const originFeeMicro = Math.round(budgetMicro * feeRate);
|
|
86
|
+
const forwardedMicro = budgetMicro - originFeeMicro;
|
|
87
|
+
const executorFeeMicro = Math.round(forwardedMicro * feeRate);
|
|
88
|
+
const workerNetMicro = forwardedMicro - executorFeeMicro;
|
|
89
|
+
return { originFeeMicro, executorFeeMicro, workerNetMicro };
|
|
90
|
+
}
|
|
41
91
|
//# sourceMappingURL=money.js.map
|
package/dist/money.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAE/B,mEAAmE;AACnE,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAC;AAEzB,iDAAiD;AACjD,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAE/B,mEAAmE;AACnE,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAC;AAEzB,iDAAiD;AACjD,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB,EAAE,OAAe;IACtE,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC;AACjE,CAAC;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,OAAe;IAC3E,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,WAAW,GAAG,cAAc,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,cAAc,GAAG,gBAAgB,CAAC;IACzD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* Doctrine: docs/doctrine/retention-policy.md.
|
|
14
14
|
*/
|
|
15
15
|
import type { MotebitId, NodeId } from "./index.js";
|
|
16
|
-
import type { SuiteId } from "./crypto-suite.js";
|
|
17
16
|
/** A ceiling for retention in days, or `Infinity` for "no upper bound." */
|
|
18
17
|
export type RetentionCeilingDays = number;
|
|
19
18
|
/**
|
|
@@ -183,7 +182,7 @@ export interface HorizonWitnessRequestBody {
|
|
|
183
182
|
* for grandfathered pre-4b-3 callers.
|
|
184
183
|
*/
|
|
185
184
|
readonly federation_graph_anchor?: FederationGraphAnchor;
|
|
186
|
-
readonly suite:
|
|
185
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
187
186
|
}
|
|
188
187
|
/**
|
|
189
188
|
* `POST /federation/v1/horizon/witness` request body — issuer asks a
|
|
@@ -254,13 +253,13 @@ export interface WitnessSolicitationResponse {
|
|
|
254
253
|
/** Subject (motebit) signature block. */
|
|
255
254
|
export interface SubjectSignature {
|
|
256
255
|
readonly motebit_id: MotebitId;
|
|
257
|
-
readonly suite:
|
|
256
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
258
257
|
readonly signature: string;
|
|
259
258
|
}
|
|
260
259
|
/** Operator signature block. */
|
|
261
260
|
export interface OperatorSignature {
|
|
262
261
|
readonly operator_id: string;
|
|
263
|
-
readonly suite:
|
|
262
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
264
263
|
readonly signature: string;
|
|
265
264
|
}
|
|
266
265
|
/**
|
|
@@ -271,7 +270,7 @@ export interface OperatorSignature {
|
|
|
271
270
|
export interface DelegateSignature {
|
|
272
271
|
readonly motebit_id: MotebitId;
|
|
273
272
|
readonly delegation_receipt_id: string;
|
|
274
|
-
readonly suite:
|
|
273
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
275
274
|
readonly signature: string;
|
|
276
275
|
}
|
|
277
276
|
/**
|
|
@@ -282,7 +281,7 @@ export interface DelegateSignature {
|
|
|
282
281
|
export interface GuardianSignature {
|
|
283
282
|
/** Hex-encoded guardian Ed25519 public key. Matches `motebit.md` §3.3 `guardian.public_key`. */
|
|
284
283
|
readonly guardian_public_key: string;
|
|
285
|
-
readonly suite:
|
|
284
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
286
285
|
readonly signature: string;
|
|
287
286
|
}
|
|
288
287
|
/**
|
|
@@ -349,7 +348,7 @@ export type DeletionCertificate = {
|
|
|
349
348
|
*/
|
|
350
349
|
readonly federation_graph_anchor?: FederationGraphAnchor;
|
|
351
350
|
readonly issued_at: number;
|
|
352
|
-
readonly suite:
|
|
351
|
+
readonly suite: "motebit-jcs-ed25519-b64-v1";
|
|
353
352
|
readonly signature: string;
|
|
354
353
|
} | {
|
|
355
354
|
readonly kind: "consolidation_flush";
|
|
@@ -458,7 +457,7 @@ export interface RetentionManifest {
|
|
|
458
457
|
* ships with the chain anchor in `honest_gaps` until stage 2.
|
|
459
458
|
*/
|
|
460
459
|
readonly honest_gaps?: string[];
|
|
461
|
-
readonly suite:
|
|
460
|
+
readonly suite: "motebit-jcs-ed25519-hex-v1";
|
|
462
461
|
readonly signature: string;
|
|
463
462
|
}
|
|
464
463
|
//# sourceMappingURL=retention-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retention-policy.d.ts","sourceRoot":"","sources":["../src/retention-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"retention-policy.d.ts","sourceRoot":"","sources":["../src/retention-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retention-policy.js","sourceRoot":"","sources":["../src/retention-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"retention-policy.js","sourceRoot":"","sources":["../src/retention-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAMzC,MAAM,CAAC,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAM/C,MAAM,CAAC,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AA8FH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA0B,MAAM,CAAC,MAAM,CAAC;IAChF,IAAI,EAAE,kBAAkB;IACxB,+CAA+C;IAC/C,WAAW,EAAE,kEAAkE;IAC/E,UAAU,EAAE,CAAC;CACd,CAAC,CAAC;AAqWH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAEnC,MAAM,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB;QACvB,iCAAiC,EAAE,uCAAuC;KAC3E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAqB;QAC3B,2BAA2B,EAAE,GAAG;QAChC,gBAAgB,EAAE,KAAK;KACxB;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,QAAQ;QAClB,sBAAsB,EAAE,KAAK;KAC9B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,QAAQ;QAClB,sBAAsB,EAAE,IAAI;KAC7B;IACD,qEAAqE;IACrE,yDAAyD;IACzD,yEAAyE;IACzE,qEAAqE;IACrE,iEAAiE;IACjE,gEAAgE;IAChE,WAAW,EAAE;QACX,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,QAAQ;QAClB,sBAAsB,EAAE,KAAK;KAC9B;CACF,CAAC,CAAC"}
|
|
@@ -132,8 +132,42 @@ export interface P2pPaymentProof {
|
|
|
132
132
|
* `gross - amount_micro` where `gross = amount_micro / (1 - platformFeeRate)`.
|
|
133
133
|
* The verifier validates this matches the relay's recorded
|
|
134
134
|
* `platform_fee_rate` against the declared `amount_micro`.
|
|
135
|
+
*
|
|
136
|
+
* For a cross-operator **federated** P2P task this is the ORIGIN relay's
|
|
137
|
+
* fee leg (relay A's 5% of the budget); the executor relay's fee is the
|
|
138
|
+
* separate `b_fee_*` leg below.
|
|
135
139
|
*/
|
|
136
140
|
fee_amount_micro: number;
|
|
141
|
+
/**
|
|
142
|
+
* Executor-relay (B) treasury Solana address (base58). Present ONLY for
|
|
143
|
+
* cross-operator **federated** P2P, where the task is delegated to a
|
|
144
|
+
* worker hosted on a different operator (relay B). Absent for
|
|
145
|
+
* single-operator P2P (where there is exactly one relay and one fee leg).
|
|
146
|
+
*
|
|
147
|
+
* Federation settles per `spec/relay-federation-v1.md` §7.1 fee-from-budget:
|
|
148
|
+
* the delegator's single atomic Solana tx composes THREE SPL Transfer
|
|
149
|
+
* instructions —
|
|
150
|
+
*
|
|
151
|
+
* 1. **Worker leg** — delegator → worker, `amount_micro` (the worker's
|
|
152
|
+
* net after both operators' fees: `budget·(1−rate)²`).
|
|
153
|
+
* 2. **Origin-fee leg** — delegator → relay A treasury, `fee_amount_micro`
|
|
154
|
+
* (`round(budget·rate)`).
|
|
155
|
+
* 3. **Executor-fee leg** — delegator → relay B treasury,
|
|
156
|
+
* `b_fee_amount_micro` (`round((budget − origin_fee)·rate)`).
|
|
157
|
+
*
|
|
158
|
+
* Each relay verifies only the leg(s) funding its OWN treasury (custody
|
|
159
|
+
* split): A verifies the origin-fee leg, B verifies the worker leg + the
|
|
160
|
+
* executor-fee leg. The relay never transmits funds cross-operator — the
|
|
161
|
+
* delegator pays all three legs directly onchain. Doctrine:
|
|
162
|
+
* `docs/doctrine/off-ramp-as-user-action.md` § federated P2P.
|
|
163
|
+
*/
|
|
164
|
+
b_fee_to_address?: string;
|
|
165
|
+
/**
|
|
166
|
+
* Executor-relay (B) fee leg amount in micro-units. Present ONLY for
|
|
167
|
+
* cross-operator federated P2P. Computed fee-from-budget:
|
|
168
|
+
* `round((budget − fee_amount_micro)·platform_fee_rate)`.
|
|
169
|
+
*/
|
|
170
|
+
b_fee_amount_micro?: number;
|
|
137
171
|
}
|
|
138
172
|
/** Verification status of an onchain payment proof. */
|
|
139
173
|
export type PaymentVerificationStatus = "pending" | "verified" | "failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settlement-mode.d.ts","sourceRoot":"","sources":["../src/settlement-mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EAGpC,CAAC;AAEvB;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"settlement-mode.d.ts","sourceRoot":"","sources":["../src/settlement-mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EAGpC,CAAC;AAEvB;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,uDAAuD;AACvD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAI1E;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
|