@peerbit/trusted-network 6.0.110 → 6.0.112

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/dist/src/v2.d.ts CHANGED
@@ -4,15 +4,17 @@ import { Program, type ProgramClient, type ProgramInitializationOptions } from "
4
4
  * Decode-only TrustedNetwork v2 codec scaffold.
5
5
  *
6
6
  * This module is intentionally absent from the package entry point. It pins
7
- * the policy wire contract needed by the next slice without exposing a usable
8
- * controller, policy engine, resource fence, or encryption path.
7
+ * the policy, resource-fence-body, and operation-proof wire contracts without
8
+ * exposing a usable controller, resource validator, or encryption path.
9
9
  */
10
10
  export declare const TRUSTED_NETWORK_V2_PROTOCOL_VERSION = 2;
11
11
  export declare const TRUSTED_NETWORK_V2_POLICY_HASH_SHA256 = 1;
12
12
  /**
13
- * Profile 1 accepts only an EntryV0 whose normal toSignable() bytes (including
14
- * causal metadata) have exactly one successfully verified signature. The
15
- * signer's canonical public-key bytes must equal the descriptor authority.
13
+ * Authority-record profile 1 accepts only a policy-snapshot or resource-fence
14
+ * EntryV0 whose normal toSignable() bytes (including causal metadata) have
15
+ * exactly one successfully verified signature. The signer's canonical
16
+ * public-key bytes must equal the descriptor authority. Protected-resource
17
+ * adapters must define a separate bounded profile for operation entries.
16
18
  */
17
19
  export declare const TRUSTED_NETWORK_V2_ENTRY_V0_AUTHORITY_ONLY_SIGNATURE_PROFILE = 1;
18
20
  /**
@@ -23,6 +25,9 @@ export declare const TRUSTED_NETWORK_V2_ENTRY_V0_AUTHORITY_ONLY_SIGNATURE_PROFIL
23
25
  export declare const TRUSTED_NETWORK_V2_MAX_POLICY_ENTRY_BYTES: number;
24
26
  export declare const TRUSTED_NETWORK_V2_NETWORK_ID_DOMAIN = "peerbit/trusted-network/v2/network-id/v1";
25
27
  export declare const TRUSTED_NETWORK_V2_POLICY_DIGEST_DOMAIN = "peerbit/trusted-network/v2/policy-body/v1";
28
+ /** Fixed first-profile record lengths. Changing either requires a new variant. */
29
+ export declare const TRUSTED_NETWORK_V2_RESOURCE_FENCE_BODY_BYTES = 186;
30
+ export declare const TRUSTED_NETWORK_V2_OPERATION_POLICY_PROOF_BYTES = 146;
26
31
  export declare const TrustedNetworkRole: Readonly<{
27
32
  readonly ADMIN: 1;
28
33
  readonly WRITER: 2;
@@ -76,6 +81,44 @@ export declare class PolicySnapshotBodyV2 {
76
81
  bindings: PolicySubjectBindingV2[];
77
82
  });
78
83
  }
84
+ /** Canonical unsigned payload intended for an authenticated resource fence. */
85
+ export declare class ResourceFenceV2 {
86
+ networkId: Uint8Array;
87
+ resourceId: Uint8Array;
88
+ fenceSequence: bigint;
89
+ previousFenceDigest: Uint8Array;
90
+ policySequence: bigint;
91
+ policyDigest: Uint8Array;
92
+ contentEpoch: bigint;
93
+ epochManifestDigest: Uint8Array;
94
+ constructor(properties?: {
95
+ networkId: Uint8Array;
96
+ resourceId: Uint8Array;
97
+ fenceSequence: bigint;
98
+ previousFenceDigest: Uint8Array;
99
+ policySequence: bigint;
100
+ policyDigest: Uint8Array;
101
+ contentEpoch: bigint;
102
+ epochManifestDigest: Uint8Array;
103
+ });
104
+ }
105
+ /** Constant-size policy commitment intended for a signed resource operation. */
106
+ export declare class OperationPolicyProofV2 {
107
+ networkId: Uint8Array;
108
+ resourceId: Uint8Array;
109
+ policySequence: bigint;
110
+ policyDigest: Uint8Array;
111
+ fenceDigest: Uint8Array;
112
+ contentEpoch: bigint;
113
+ constructor(properties?: {
114
+ networkId: Uint8Array;
115
+ resourceId: Uint8Array;
116
+ policySequence: bigint;
117
+ policyDigest: Uint8Array;
118
+ fenceDigest: Uint8Array;
119
+ contentEpoch: bigint;
120
+ });
121
+ }
79
122
  export declare class TrustedNetworkV2 extends Program<never> {
80
123
  descriptor: NetworkDescriptorV2;
81
124
  constructor(properties?: {
@@ -90,4 +133,8 @@ export declare const digestPolicySnapshotBodyV2: (body: PolicySnapshotBodyV2) =>
90
133
  export declare const assertPolicySnapshotBodyV2: (body: PolicySnapshotBodyV2, descriptor: NetworkDescriptorV2) => void;
91
134
  export declare const decodeTrustedNetworkV2: (bytes: Uint8Array) => TrustedNetworkV2;
92
135
  export declare const decodePolicySnapshotBodyV2: (bytes: Uint8Array, descriptor: NetworkDescriptorV2) => PolicySnapshotBodyV2;
136
+ export declare const assertResourceFenceV2: (fence: ResourceFenceV2, descriptor: NetworkDescriptorV2) => void;
137
+ export declare const assertOperationPolicyProofV2: (proof: OperationPolicyProofV2, descriptor: NetworkDescriptorV2) => void;
138
+ export declare const decodeResourceFenceV2: (bytes: Uint8Array, descriptor: NetworkDescriptorV2) => ResourceFenceV2;
139
+ export declare const decodeOperationPolicyProofV2: (bytes: Uint8Array, descriptor: NetworkDescriptorV2) => OperationPolicyProofV2;
93
140
  //# sourceMappingURL=v2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/v2.ts"],"names":[],"mappings":"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"}
package/dist/src/v2.js CHANGED
@@ -40,15 +40,17 @@ import { compare, concat, equals } from "uint8arrays";
40
40
  * Decode-only TrustedNetwork v2 codec scaffold.
41
41
  *
42
42
  * This module is intentionally absent from the package entry point. It pins
43
- * the policy wire contract needed by the next slice without exposing a usable
44
- * controller, policy engine, resource fence, or encryption path.
43
+ * the policy, resource-fence-body, and operation-proof wire contracts without
44
+ * exposing a usable controller, resource validator, or encryption path.
45
45
  */
46
46
  export const TRUSTED_NETWORK_V2_PROTOCOL_VERSION = 2;
47
47
  export const TRUSTED_NETWORK_V2_POLICY_HASH_SHA256 = 1;
48
48
  /**
49
- * Profile 1 accepts only an EntryV0 whose normal toSignable() bytes (including
50
- * causal metadata) have exactly one successfully verified signature. The
51
- * signer's canonical public-key bytes must equal the descriptor authority.
49
+ * Authority-record profile 1 accepts only a policy-snapshot or resource-fence
50
+ * EntryV0 whose normal toSignable() bytes (including causal metadata) have
51
+ * exactly one successfully verified signature. The signer's canonical
52
+ * public-key bytes must equal the descriptor authority. Protected-resource
53
+ * adapters must define a separate bounded profile for operation entries.
52
54
  */
53
55
  export const TRUSTED_NETWORK_V2_ENTRY_V0_AUTHORITY_ONLY_SIGNATURE_PROFILE = 1;
54
56
  /**
@@ -59,6 +61,9 @@ export const TRUSTED_NETWORK_V2_ENTRY_V0_AUTHORITY_ONLY_SIGNATURE_PROFILE = 1;
59
61
  export const TRUSTED_NETWORK_V2_MAX_POLICY_ENTRY_BYTES = 128 * 1024;
60
62
  export const TRUSTED_NETWORK_V2_NETWORK_ID_DOMAIN = "peerbit/trusted-network/v2/network-id/v1";
61
63
  export const TRUSTED_NETWORK_V2_POLICY_DIGEST_DOMAIN = "peerbit/trusted-network/v2/policy-body/v1";
64
+ /** Fixed first-profile record lengths. Changing either requires a new variant. */
65
+ export const TRUSTED_NETWORK_V2_RESOURCE_FENCE_BODY_BYTES = 186;
66
+ export const TRUSTED_NETWORK_V2_OPERATION_POLICY_PROOF_BYTES = 146;
62
67
  export const TrustedNetworkRole = Object.freeze({
63
68
  ADMIN: 0x01,
64
69
  WRITER: 0x02,
@@ -71,6 +76,20 @@ export const TRUSTED_NETWORK_V2_KNOWN_ROLE_BITS = TrustedNetworkRole.ADMIN |
71
76
  TrustedNetworkRole.REPLICATOR;
72
77
  const ZERO_DIGEST = new Uint8Array(32);
73
78
  const textEncoder = new TextEncoder();
79
+ const TYPED_ARRAY_PROTOTYPE = Object.getPrototypeOf(Uint8Array.prototype);
80
+ const TYPED_ARRAY_BYTE_LENGTH = Object.getOwnPropertyDescriptor(TYPED_ARRAY_PROTOTYPE, "byteLength").get;
81
+ const TYPED_ARRAY_TAG = Object.getOwnPropertyDescriptor(TYPED_ARRAY_PROTOTYPE, Symbol.toStringTag).get;
82
+ const exactUint8ArrayByteLength = (value) => {
83
+ if (!ArrayBuffer.isView(value) ||
84
+ TYPED_ARRAY_TAG.call(value) !== "Uint8Array") {
85
+ throw new TypeError("Expected a genuine Uint8Array");
86
+ }
87
+ const byteLength = TYPED_ARRAY_BYTE_LENGTH.call(value);
88
+ if (byteLength === 0) {
89
+ Uint8Array.prototype.set.call(new Uint8Array(0), value);
90
+ }
91
+ return byteLength;
92
+ };
74
93
  const assertByte = (value, label) => {
75
94
  if (!Number.isInteger(value) || value < 0 || value > 0xff) {
76
95
  throw new Error(`${label} must be a u8`);
@@ -87,7 +106,14 @@ const assertU64 = (value, label) => {
87
106
  }
88
107
  };
89
108
  const assertBytes32 = (value, label) => {
90
- if (!(value instanceof Uint8Array) || value.byteLength !== 32) {
109
+ let byteLength;
110
+ try {
111
+ byteLength = exactUint8ArrayByteLength(value);
112
+ }
113
+ catch {
114
+ throw new Error(`${label} must contain exactly 32 bytes`);
115
+ }
116
+ if (byteLength !== 32) {
91
117
  throw new Error(`${label} must contain exactly 32 bytes`);
92
118
  }
93
119
  };
@@ -270,6 +296,138 @@ let PolicySnapshotBodyV2 = (() => {
270
296
  return PolicySnapshotBodyV2 = _classThis;
271
297
  })();
272
298
  export { PolicySnapshotBodyV2 };
299
+ /** Canonical unsigned payload intended for an authenticated resource fence. */
300
+ let ResourceFenceV2 = (() => {
301
+ let _classDecorators = [variant([2, 2])];
302
+ let _classDescriptor;
303
+ let _classExtraInitializers = [];
304
+ let _classThis;
305
+ let _networkId_decorators;
306
+ let _networkId_initializers = [];
307
+ let _networkId_extraInitializers = [];
308
+ let _resourceId_decorators;
309
+ let _resourceId_initializers = [];
310
+ let _resourceId_extraInitializers = [];
311
+ let _fenceSequence_decorators;
312
+ let _fenceSequence_initializers = [];
313
+ let _fenceSequence_extraInitializers = [];
314
+ let _previousFenceDigest_decorators;
315
+ let _previousFenceDigest_initializers = [];
316
+ let _previousFenceDigest_extraInitializers = [];
317
+ let _policySequence_decorators;
318
+ let _policySequence_initializers = [];
319
+ let _policySequence_extraInitializers = [];
320
+ let _policyDigest_decorators;
321
+ let _policyDigest_initializers = [];
322
+ let _policyDigest_extraInitializers = [];
323
+ let _contentEpoch_decorators;
324
+ let _contentEpoch_initializers = [];
325
+ let _contentEpoch_extraInitializers = [];
326
+ let _epochManifestDigest_decorators;
327
+ let _epochManifestDigest_initializers = [];
328
+ let _epochManifestDigest_extraInitializers = [];
329
+ var ResourceFenceV2 = class {
330
+ static { _classThis = this; }
331
+ static {
332
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
333
+ _networkId_decorators = [field({ type: fixedArray("u8", 32) })];
334
+ _resourceId_decorators = [field({ type: fixedArray("u8", 32) })];
335
+ _fenceSequence_decorators = [field({ type: "u64" })];
336
+ _previousFenceDigest_decorators = [field({ type: fixedArray("u8", 32) })];
337
+ _policySequence_decorators = [field({ type: "u64" })];
338
+ _policyDigest_decorators = [field({ type: fixedArray("u8", 32) })];
339
+ _contentEpoch_decorators = [field({ type: "u64" })];
340
+ _epochManifestDigest_decorators = [field({ type: fixedArray("u8", 32) })];
341
+ __esDecorate(null, null, _networkId_decorators, { kind: "field", name: "networkId", static: false, private: false, access: { has: obj => "networkId" in obj, get: obj => obj.networkId, set: (obj, value) => { obj.networkId = value; } }, metadata: _metadata }, _networkId_initializers, _networkId_extraInitializers);
342
+ __esDecorate(null, null, _resourceId_decorators, { kind: "field", name: "resourceId", static: false, private: false, access: { has: obj => "resourceId" in obj, get: obj => obj.resourceId, set: (obj, value) => { obj.resourceId = value; } }, metadata: _metadata }, _resourceId_initializers, _resourceId_extraInitializers);
343
+ __esDecorate(null, null, _fenceSequence_decorators, { kind: "field", name: "fenceSequence", static: false, private: false, access: { has: obj => "fenceSequence" in obj, get: obj => obj.fenceSequence, set: (obj, value) => { obj.fenceSequence = value; } }, metadata: _metadata }, _fenceSequence_initializers, _fenceSequence_extraInitializers);
344
+ __esDecorate(null, null, _previousFenceDigest_decorators, { kind: "field", name: "previousFenceDigest", static: false, private: false, access: { has: obj => "previousFenceDigest" in obj, get: obj => obj.previousFenceDigest, set: (obj, value) => { obj.previousFenceDigest = value; } }, metadata: _metadata }, _previousFenceDigest_initializers, _previousFenceDigest_extraInitializers);
345
+ __esDecorate(null, null, _policySequence_decorators, { kind: "field", name: "policySequence", static: false, private: false, access: { has: obj => "policySequence" in obj, get: obj => obj.policySequence, set: (obj, value) => { obj.policySequence = value; } }, metadata: _metadata }, _policySequence_initializers, _policySequence_extraInitializers);
346
+ __esDecorate(null, null, _policyDigest_decorators, { kind: "field", name: "policyDigest", static: false, private: false, access: { has: obj => "policyDigest" in obj, get: obj => obj.policyDigest, set: (obj, value) => { obj.policyDigest = value; } }, metadata: _metadata }, _policyDigest_initializers, _policyDigest_extraInitializers);
347
+ __esDecorate(null, null, _contentEpoch_decorators, { kind: "field", name: "contentEpoch", static: false, private: false, access: { has: obj => "contentEpoch" in obj, get: obj => obj.contentEpoch, set: (obj, value) => { obj.contentEpoch = value; } }, metadata: _metadata }, _contentEpoch_initializers, _contentEpoch_extraInitializers);
348
+ __esDecorate(null, null, _epochManifestDigest_decorators, { kind: "field", name: "epochManifestDigest", static: false, private: false, access: { has: obj => "epochManifestDigest" in obj, get: obj => obj.epochManifestDigest, set: (obj, value) => { obj.epochManifestDigest = value; } }, metadata: _metadata }, _epochManifestDigest_initializers, _epochManifestDigest_extraInitializers);
349
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
350
+ ResourceFenceV2 = _classThis = _classDescriptor.value;
351
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
352
+ __runInitializers(_classThis, _classExtraInitializers);
353
+ }
354
+ networkId = __runInitializers(this, _networkId_initializers, void 0);
355
+ resourceId = (__runInitializers(this, _networkId_extraInitializers), __runInitializers(this, _resourceId_initializers, void 0));
356
+ fenceSequence = (__runInitializers(this, _resourceId_extraInitializers), __runInitializers(this, _fenceSequence_initializers, void 0));
357
+ previousFenceDigest = (__runInitializers(this, _fenceSequence_extraInitializers), __runInitializers(this, _previousFenceDigest_initializers, void 0));
358
+ policySequence = (__runInitializers(this, _previousFenceDigest_extraInitializers), __runInitializers(this, _policySequence_initializers, void 0));
359
+ policyDigest = (__runInitializers(this, _policySequence_extraInitializers), __runInitializers(this, _policyDigest_initializers, void 0));
360
+ contentEpoch = (__runInitializers(this, _policyDigest_extraInitializers), __runInitializers(this, _contentEpoch_initializers, void 0));
361
+ epochManifestDigest = (__runInitializers(this, _contentEpoch_extraInitializers), __runInitializers(this, _epochManifestDigest_initializers, void 0));
362
+ constructor(properties) {
363
+ __runInitializers(this, _epochManifestDigest_extraInitializers);
364
+ if (properties)
365
+ Object.assign(this, properties);
366
+ }
367
+ };
368
+ return ResourceFenceV2 = _classThis;
369
+ })();
370
+ export { ResourceFenceV2 };
371
+ /** Constant-size policy commitment intended for a signed resource operation. */
372
+ let OperationPolicyProofV2 = (() => {
373
+ let _classDecorators = [variant([2, 3])];
374
+ let _classDescriptor;
375
+ let _classExtraInitializers = [];
376
+ let _classThis;
377
+ let _networkId_decorators;
378
+ let _networkId_initializers = [];
379
+ let _networkId_extraInitializers = [];
380
+ let _resourceId_decorators;
381
+ let _resourceId_initializers = [];
382
+ let _resourceId_extraInitializers = [];
383
+ let _policySequence_decorators;
384
+ let _policySequence_initializers = [];
385
+ let _policySequence_extraInitializers = [];
386
+ let _policyDigest_decorators;
387
+ let _policyDigest_initializers = [];
388
+ let _policyDigest_extraInitializers = [];
389
+ let _fenceDigest_decorators;
390
+ let _fenceDigest_initializers = [];
391
+ let _fenceDigest_extraInitializers = [];
392
+ let _contentEpoch_decorators;
393
+ let _contentEpoch_initializers = [];
394
+ let _contentEpoch_extraInitializers = [];
395
+ var OperationPolicyProofV2 = class {
396
+ static { _classThis = this; }
397
+ static {
398
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
399
+ _networkId_decorators = [field({ type: fixedArray("u8", 32) })];
400
+ _resourceId_decorators = [field({ type: fixedArray("u8", 32) })];
401
+ _policySequence_decorators = [field({ type: "u64" })];
402
+ _policyDigest_decorators = [field({ type: fixedArray("u8", 32) })];
403
+ _fenceDigest_decorators = [field({ type: fixedArray("u8", 32) })];
404
+ _contentEpoch_decorators = [field({ type: "u64" })];
405
+ __esDecorate(null, null, _networkId_decorators, { kind: "field", name: "networkId", static: false, private: false, access: { has: obj => "networkId" in obj, get: obj => obj.networkId, set: (obj, value) => { obj.networkId = value; } }, metadata: _metadata }, _networkId_initializers, _networkId_extraInitializers);
406
+ __esDecorate(null, null, _resourceId_decorators, { kind: "field", name: "resourceId", static: false, private: false, access: { has: obj => "resourceId" in obj, get: obj => obj.resourceId, set: (obj, value) => { obj.resourceId = value; } }, metadata: _metadata }, _resourceId_initializers, _resourceId_extraInitializers);
407
+ __esDecorate(null, null, _policySequence_decorators, { kind: "field", name: "policySequence", static: false, private: false, access: { has: obj => "policySequence" in obj, get: obj => obj.policySequence, set: (obj, value) => { obj.policySequence = value; } }, metadata: _metadata }, _policySequence_initializers, _policySequence_extraInitializers);
408
+ __esDecorate(null, null, _policyDigest_decorators, { kind: "field", name: "policyDigest", static: false, private: false, access: { has: obj => "policyDigest" in obj, get: obj => obj.policyDigest, set: (obj, value) => { obj.policyDigest = value; } }, metadata: _metadata }, _policyDigest_initializers, _policyDigest_extraInitializers);
409
+ __esDecorate(null, null, _fenceDigest_decorators, { kind: "field", name: "fenceDigest", static: false, private: false, access: { has: obj => "fenceDigest" in obj, get: obj => obj.fenceDigest, set: (obj, value) => { obj.fenceDigest = value; } }, metadata: _metadata }, _fenceDigest_initializers, _fenceDigest_extraInitializers);
410
+ __esDecorate(null, null, _contentEpoch_decorators, { kind: "field", name: "contentEpoch", static: false, private: false, access: { has: obj => "contentEpoch" in obj, get: obj => obj.contentEpoch, set: (obj, value) => { obj.contentEpoch = value; } }, metadata: _metadata }, _contentEpoch_initializers, _contentEpoch_extraInitializers);
411
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
412
+ OperationPolicyProofV2 = _classThis = _classDescriptor.value;
413
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
414
+ __runInitializers(_classThis, _classExtraInitializers);
415
+ }
416
+ networkId = __runInitializers(this, _networkId_initializers, void 0);
417
+ resourceId = (__runInitializers(this, _networkId_extraInitializers), __runInitializers(this, _resourceId_initializers, void 0));
418
+ policySequence = (__runInitializers(this, _resourceId_extraInitializers), __runInitializers(this, _policySequence_initializers, void 0));
419
+ policyDigest = (__runInitializers(this, _policySequence_extraInitializers), __runInitializers(this, _policyDigest_initializers, void 0));
420
+ fenceDigest = (__runInitializers(this, _policyDigest_extraInitializers), __runInitializers(this, _fenceDigest_initializers, void 0));
421
+ contentEpoch = (__runInitializers(this, _fenceDigest_extraInitializers), __runInitializers(this, _contentEpoch_initializers, void 0));
422
+ constructor(properties) {
423
+ __runInitializers(this, _contentEpoch_extraInitializers);
424
+ if (properties)
425
+ Object.assign(this, properties);
426
+ }
427
+ };
428
+ return OperationPolicyProofV2 = _classThis;
429
+ })();
430
+ export { OperationPolicyProofV2 };
273
431
  let TrustedNetworkV2 = (() => {
274
432
  let _classDecorators = [variant("trusted_network_v2")];
275
433
  let _classDescriptor;
@@ -412,4 +570,65 @@ export const decodePolicySnapshotBodyV2 = (bytes, descriptor) => {
412
570
  assertPolicySnapshotBodyV2(body, descriptor);
413
571
  return body;
414
572
  };
573
+ export const assertResourceFenceV2 = (fence, descriptor) => {
574
+ assertNetworkDescriptorV2(descriptor);
575
+ assertBytes32(fence.networkId, "networkId");
576
+ if (!equals(fence.networkId, deriveNetworkIdV2(descriptor))) {
577
+ throw new Error("Resource fence belongs to another network");
578
+ }
579
+ assertBytes32(fence.resourceId, "resourceId");
580
+ assertU64(fence.fenceSequence, "fenceSequence");
581
+ assertBytes32(fence.previousFenceDigest, "previousFenceDigest");
582
+ if (fence.fenceSequence === 0n) {
583
+ if (!equals(fence.previousFenceDigest, ZERO_DIGEST)) {
584
+ throw new Error("Initial resource fence must use the zero previous digest");
585
+ }
586
+ }
587
+ else if (equals(fence.previousFenceDigest, ZERO_DIGEST)) {
588
+ throw new Error("A non-initial resource fence must name its predecessor");
589
+ }
590
+ assertU64(fence.policySequence, "policySequence");
591
+ assertBytes32(fence.policyDigest, "policyDigest");
592
+ assertU64(fence.contentEpoch, "contentEpoch");
593
+ assertBytes32(fence.epochManifestDigest, "epochManifestDigest");
594
+ };
595
+ export const assertOperationPolicyProofV2 = (proof, descriptor) => {
596
+ assertNetworkDescriptorV2(descriptor);
597
+ assertBytes32(proof.networkId, "networkId");
598
+ if (!equals(proof.networkId, deriveNetworkIdV2(descriptor))) {
599
+ throw new Error("Operation policy proof belongs to another network");
600
+ }
601
+ assertBytes32(proof.resourceId, "resourceId");
602
+ assertU64(proof.policySequence, "policySequence");
603
+ assertBytes32(proof.policyDigest, "policyDigest");
604
+ assertBytes32(proof.fenceDigest, "fenceDigest");
605
+ assertU64(proof.contentEpoch, "contentEpoch");
606
+ };
607
+ const decodeExactCanonicalV2 = (bytes, exactLength, type) => {
608
+ let byteLength;
609
+ try {
610
+ byteLength = exactUint8ArrayByteLength(bytes);
611
+ }
612
+ catch {
613
+ throw new Error(`TrustedNetwork v2 record must contain ${exactLength} bytes`);
614
+ }
615
+ if (byteLength !== exactLength) {
616
+ throw new Error(`TrustedNetwork v2 record must contain ${exactLength} bytes`);
617
+ }
618
+ const captured = new Uint8Array(byteLength);
619
+ Uint8Array.prototype.set.call(captured, bytes);
620
+ const value = deserialize(captured, type);
621
+ assertCanonicalEncoding(captured, value);
622
+ return value;
623
+ };
624
+ export const decodeResourceFenceV2 = (bytes, descriptor) => {
625
+ const fence = decodeExactCanonicalV2(bytes, TRUSTED_NETWORK_V2_RESOURCE_FENCE_BODY_BYTES, ResourceFenceV2);
626
+ assertResourceFenceV2(fence, descriptor);
627
+ return fence;
628
+ };
629
+ export const decodeOperationPolicyProofV2 = (bytes, descriptor) => {
630
+ const proof = decodeExactCanonicalV2(bytes, TRUSTED_NETWORK_V2_OPERATION_POLICY_PROOF_BYTES, OperationPolicyProofV2);
631
+ assertOperationPolicyProofV2(proof, descriptor);
632
+ return proof;
633
+ };
415
634
  //# sourceMappingURL=v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../src/v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../src/v2.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/trusted-network",
3
- "version": "6.0.110",
3
+ "version": "6.0.112",
4
4
  "description": "Access controller that operates on a DB",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -57,16 +57,16 @@
57
57
  "uint8arrays": "^5.1.0",
58
58
  "@peerbit/any-store": "2.2.17",
59
59
  "@peerbit/any-store-interface": "1.1.4",
60
- "@peerbit/document": "15.0.17",
61
- "@peerbit/log": "6.2.26",
60
+ "@peerbit/crypto": "3.1.6",
61
+ "@peerbit/document": "15.0.18",
62
+ "@peerbit/log": "6.2.27",
62
63
  "@peerbit/program": "6.0.57",
63
- "@peerbit/shared-log": "16.0.16",
64
- "@peerbit/crypto": "3.1.6"
64
+ "@peerbit/shared-log": "16.0.17"
65
65
  },
66
66
  "devDependencies": {
67
67
  "ethers": "^6.17.0",
68
- "@peerbit/test-utils": "3.1.36",
69
- "@peerbit/time": "3.0.1"
68
+ "@peerbit/time": "3.0.1",
69
+ "@peerbit/test-utils": "3.1.36"
70
70
  },
71
71
  "repository": {
72
72
  "type": "git",
package/src/v2.ts CHANGED
@@ -19,17 +19,19 @@ import { compare, concat, equals } from "uint8arrays";
19
19
  * Decode-only TrustedNetwork v2 codec scaffold.
20
20
  *
21
21
  * This module is intentionally absent from the package entry point. It pins
22
- * the policy wire contract needed by the next slice without exposing a usable
23
- * controller, policy engine, resource fence, or encryption path.
22
+ * the policy, resource-fence-body, and operation-proof wire contracts without
23
+ * exposing a usable controller, resource validator, or encryption path.
24
24
  */
25
25
 
26
26
  export const TRUSTED_NETWORK_V2_PROTOCOL_VERSION = 2;
27
27
  export const TRUSTED_NETWORK_V2_POLICY_HASH_SHA256 = 1;
28
28
 
29
29
  /**
30
- * Profile 1 accepts only an EntryV0 whose normal toSignable() bytes (including
31
- * causal metadata) have exactly one successfully verified signature. The
32
- * signer's canonical public-key bytes must equal the descriptor authority.
30
+ * Authority-record profile 1 accepts only a policy-snapshot or resource-fence
31
+ * EntryV0 whose normal toSignable() bytes (including causal metadata) have
32
+ * exactly one successfully verified signature. The signer's canonical
33
+ * public-key bytes must equal the descriptor authority. Protected-resource
34
+ * adapters must define a separate bounded profile for operation entries.
33
35
  */
34
36
  export const TRUSTED_NETWORK_V2_ENTRY_V0_AUTHORITY_ONLY_SIGNATURE_PROFILE = 1;
35
37
 
@@ -45,6 +47,10 @@ export const TRUSTED_NETWORK_V2_NETWORK_ID_DOMAIN =
45
47
  export const TRUSTED_NETWORK_V2_POLICY_DIGEST_DOMAIN =
46
48
  "peerbit/trusted-network/v2/policy-body/v1";
47
49
 
50
+ /** Fixed first-profile record lengths. Changing either requires a new variant. */
51
+ export const TRUSTED_NETWORK_V2_RESOURCE_FENCE_BODY_BYTES = 186;
52
+ export const TRUSTED_NETWORK_V2_OPERATION_POLICY_PROOF_BYTES = 146;
53
+
48
54
  export const TrustedNetworkRole = Object.freeze({
49
55
  ADMIN: 0x01,
50
56
  WRITER: 0x02,
@@ -60,6 +66,29 @@ export const TRUSTED_NETWORK_V2_KNOWN_ROLE_BITS =
60
66
 
61
67
  const ZERO_DIGEST = new Uint8Array(32);
62
68
  const textEncoder = new TextEncoder();
69
+ const TYPED_ARRAY_PROTOTYPE = Object.getPrototypeOf(Uint8Array.prototype);
70
+ const TYPED_ARRAY_BYTE_LENGTH = Object.getOwnPropertyDescriptor(
71
+ TYPED_ARRAY_PROTOTYPE,
72
+ "byteLength",
73
+ )!.get!;
74
+ const TYPED_ARRAY_TAG = Object.getOwnPropertyDescriptor(
75
+ TYPED_ARRAY_PROTOTYPE,
76
+ Symbol.toStringTag,
77
+ )!.get!;
78
+
79
+ const exactUint8ArrayByteLength = (value: unknown): number => {
80
+ if (
81
+ !ArrayBuffer.isView(value) ||
82
+ TYPED_ARRAY_TAG.call(value) !== "Uint8Array"
83
+ ) {
84
+ throw new TypeError("Expected a genuine Uint8Array");
85
+ }
86
+ const byteLength = TYPED_ARRAY_BYTE_LENGTH.call(value) as number;
87
+ if (byteLength === 0) {
88
+ Uint8Array.prototype.set.call(new Uint8Array(0), value as Uint8Array);
89
+ }
90
+ return byteLength;
91
+ };
63
92
 
64
93
  const assertByte = (value: number, label: string): void => {
65
94
  if (!Number.isInteger(value) || value < 0 || value > 0xff) {
@@ -80,7 +109,13 @@ const assertU64 = (value: bigint, label: string): void => {
80
109
  };
81
110
 
82
111
  const assertBytes32 = (value: Uint8Array, label: string): void => {
83
- if (!(value instanceof Uint8Array) || value.byteLength !== 32) {
112
+ let byteLength: number;
113
+ try {
114
+ byteLength = exactUint8ArrayByteLength(value);
115
+ } catch {
116
+ throw new Error(`${label} must contain exactly 32 bytes`);
117
+ }
118
+ if (byteLength !== 32) {
84
119
  throw new Error(`${label} must contain exactly 32 bytes`);
85
120
  }
86
121
  };
@@ -190,6 +225,80 @@ export class PolicySnapshotBodyV2 {
190
225
  }
191
226
  }
192
227
 
228
+ /** Canonical unsigned payload intended for an authenticated resource fence. */
229
+ @variant([2, 2])
230
+ export class ResourceFenceV2 {
231
+ @field({ type: fixedArray("u8", 32) })
232
+ networkId: Uint8Array;
233
+
234
+ @field({ type: fixedArray("u8", 32) })
235
+ resourceId: Uint8Array;
236
+
237
+ @field({ type: "u64" })
238
+ fenceSequence: bigint;
239
+
240
+ @field({ type: fixedArray("u8", 32) })
241
+ previousFenceDigest: Uint8Array;
242
+
243
+ @field({ type: "u64" })
244
+ policySequence: bigint;
245
+
246
+ @field({ type: fixedArray("u8", 32) })
247
+ policyDigest: Uint8Array;
248
+
249
+ @field({ type: "u64" })
250
+ contentEpoch: bigint;
251
+
252
+ @field({ type: fixedArray("u8", 32) })
253
+ epochManifestDigest: Uint8Array;
254
+
255
+ constructor(properties?: {
256
+ networkId: Uint8Array;
257
+ resourceId: Uint8Array;
258
+ fenceSequence: bigint;
259
+ previousFenceDigest: Uint8Array;
260
+ policySequence: bigint;
261
+ policyDigest: Uint8Array;
262
+ contentEpoch: bigint;
263
+ epochManifestDigest: Uint8Array;
264
+ }) {
265
+ if (properties) Object.assign(this, properties);
266
+ }
267
+ }
268
+
269
+ /** Constant-size policy commitment intended for a signed resource operation. */
270
+ @variant([2, 3])
271
+ export class OperationPolicyProofV2 {
272
+ @field({ type: fixedArray("u8", 32) })
273
+ networkId: Uint8Array;
274
+
275
+ @field({ type: fixedArray("u8", 32) })
276
+ resourceId: Uint8Array;
277
+
278
+ @field({ type: "u64" })
279
+ policySequence: bigint;
280
+
281
+ @field({ type: fixedArray("u8", 32) })
282
+ policyDigest: Uint8Array;
283
+
284
+ @field({ type: fixedArray("u8", 32) })
285
+ fenceDigest: Uint8Array;
286
+
287
+ @field({ type: "u64" })
288
+ contentEpoch: bigint;
289
+
290
+ constructor(properties?: {
291
+ networkId: Uint8Array;
292
+ resourceId: Uint8Array;
293
+ policySequence: bigint;
294
+ policyDigest: Uint8Array;
295
+ fenceDigest: Uint8Array;
296
+ contentEpoch: bigint;
297
+ }) {
298
+ if (properties) Object.assign(this, properties);
299
+ }
300
+ }
301
+
193
302
  @variant("trusted_network_v2")
194
303
  export class TrustedNetworkV2 extends Program<never> {
195
304
  @field({ type: NetworkDescriptorV2 })
@@ -353,3 +462,97 @@ export const decodePolicySnapshotBodyV2 = (
353
462
  assertPolicySnapshotBodyV2(body, descriptor);
354
463
  return body;
355
464
  };
465
+
466
+ export const assertResourceFenceV2 = (
467
+ fence: ResourceFenceV2,
468
+ descriptor: NetworkDescriptorV2,
469
+ ): void => {
470
+ assertNetworkDescriptorV2(descriptor);
471
+ assertBytes32(fence.networkId, "networkId");
472
+ if (!equals(fence.networkId, deriveNetworkIdV2(descriptor))) {
473
+ throw new Error("Resource fence belongs to another network");
474
+ }
475
+ assertBytes32(fence.resourceId, "resourceId");
476
+ assertU64(fence.fenceSequence, "fenceSequence");
477
+ assertBytes32(fence.previousFenceDigest, "previousFenceDigest");
478
+ if (fence.fenceSequence === 0n) {
479
+ if (!equals(fence.previousFenceDigest, ZERO_DIGEST)) {
480
+ throw new Error(
481
+ "Initial resource fence must use the zero previous digest",
482
+ );
483
+ }
484
+ } else if (equals(fence.previousFenceDigest, ZERO_DIGEST)) {
485
+ throw new Error("A non-initial resource fence must name its predecessor");
486
+ }
487
+ assertU64(fence.policySequence, "policySequence");
488
+ assertBytes32(fence.policyDigest, "policyDigest");
489
+ assertU64(fence.contentEpoch, "contentEpoch");
490
+ assertBytes32(fence.epochManifestDigest, "epochManifestDigest");
491
+ };
492
+
493
+ export const assertOperationPolicyProofV2 = (
494
+ proof: OperationPolicyProofV2,
495
+ descriptor: NetworkDescriptorV2,
496
+ ): void => {
497
+ assertNetworkDescriptorV2(descriptor);
498
+ assertBytes32(proof.networkId, "networkId");
499
+ if (!equals(proof.networkId, deriveNetworkIdV2(descriptor))) {
500
+ throw new Error("Operation policy proof belongs to another network");
501
+ }
502
+ assertBytes32(proof.resourceId, "resourceId");
503
+ assertU64(proof.policySequence, "policySequence");
504
+ assertBytes32(proof.policyDigest, "policyDigest");
505
+ assertBytes32(proof.fenceDigest, "fenceDigest");
506
+ assertU64(proof.contentEpoch, "contentEpoch");
507
+ };
508
+
509
+ const decodeExactCanonicalV2 = <T>(
510
+ bytes: Uint8Array,
511
+ exactLength: number,
512
+ type: new () => T,
513
+ ): T => {
514
+ let byteLength: number;
515
+ try {
516
+ byteLength = exactUint8ArrayByteLength(bytes);
517
+ } catch {
518
+ throw new Error(
519
+ `TrustedNetwork v2 record must contain ${exactLength} bytes`,
520
+ );
521
+ }
522
+ if (byteLength !== exactLength) {
523
+ throw new Error(
524
+ `TrustedNetwork v2 record must contain ${exactLength} bytes`,
525
+ );
526
+ }
527
+ const captured = new Uint8Array(byteLength);
528
+ Uint8Array.prototype.set.call(captured, bytes);
529
+ const value = deserialize(captured, type);
530
+ assertCanonicalEncoding(captured, value);
531
+ return value;
532
+ };
533
+
534
+ export const decodeResourceFenceV2 = (
535
+ bytes: Uint8Array,
536
+ descriptor: NetworkDescriptorV2,
537
+ ): ResourceFenceV2 => {
538
+ const fence = decodeExactCanonicalV2(
539
+ bytes,
540
+ TRUSTED_NETWORK_V2_RESOURCE_FENCE_BODY_BYTES,
541
+ ResourceFenceV2,
542
+ );
543
+ assertResourceFenceV2(fence, descriptor);
544
+ return fence;
545
+ };
546
+
547
+ export const decodeOperationPolicyProofV2 = (
548
+ bytes: Uint8Array,
549
+ descriptor: NetworkDescriptorV2,
550
+ ): OperationPolicyProofV2 => {
551
+ const proof = decodeExactCanonicalV2(
552
+ bytes,
553
+ TRUSTED_NETWORK_V2_OPERATION_POLICY_PROOF_BYTES,
554
+ OperationPolicyProofV2,
555
+ );
556
+ assertOperationPolicyProofV2(proof, descriptor);
557
+ return proof;
558
+ };