@peerbit/trusted-network 6.0.110 → 6.0.111
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 +52 -5
- package/dist/src/v2.d.ts.map +1 -1
- package/dist/src/v2.js +225 -6
- package/dist/src/v2.js.map +1 -1
- package/package.json +3 -3
- package/src/v2.ts +209 -6
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
|
|
8
|
-
*
|
|
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
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
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
|
package/dist/src/v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/v2.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACN,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,MAAM,kBAAkB,CAAC;AAG1B;;;;;;GAMG;AAEH,eAAO,MAAM,mCAAmC,IAAI,CAAC;AACrD,eAAO,MAAM,qCAAqC,IAAI,CAAC;AAEvD
|
|
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
|
|
44
|
-
*
|
|
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
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
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
|
-
|
|
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
|
package/dist/src/v2.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACN,OAAO,GAGP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4DAA4D,GAAG,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpE,MAAM,CAAC,MAAM,oCAAoC,GAChD,0CAA0C,CAAC;AAC5C,MAAM,CAAC,MAAM,uCAAuC,GACnD,2CAA2C,CAAC;AAE7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,4CAA4C,GAAG,GAAG,CAAC;AAChE,MAAM,CAAC,MAAM,+CAA+C,GAAG,GAAG,CAAC;AAEnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;CACP,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,kCAAkC,GAC9C,kBAAkB,CAAC,KAAK;IACxB,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,UAAU,CAAC;AAE/B,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,qBAAqB,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1E,MAAM,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAC9D,qBAAqB,EACrB,YAAY,CACX,CAAC,GAAI,CAAC;AACR,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,CACtD,qBAAqB,EACrB,MAAM,CAAC,WAAW,CACjB,CAAC,GAAI,CAAC;AAER,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAU,EAAE;IAC5D,IACC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,EAC3C,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;IACjE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACtB,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,KAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IAC1C,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,KAAa,EAAQ,EAAE;IAChE,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACJ,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAc,EAAE;IACtD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAc,EAAE;IAC/C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,KAAc,EAAQ,EAAE;IAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;AACF,CAAC,CAAC;IAGW,mBAAmB;4BAD/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;2CAEd,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;2CAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;+CAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;6CAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iDAGrB,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAdtB,+LAAA,eAAe,6BAAf,eAAe,yGAAS;YAGxB,sLAAA,YAAY,6BAAZ,YAAY,mGAAa;YAGzB,+LAAA,eAAe,6BAAf,eAAe,yGAAgB;YAG/B,2MAAA,mBAAmB,6BAAnB,mBAAmB,iHAAa;YAGhC,qMAAA,iBAAiB,6BAAjB,iBAAiB,6GAAS;YAG1B,iNAAA,qBAAqB,6BAArB,qBAAqB,qHAAS;YAjB/B,6KA6BC;;;YA7BY,uDAAmB;;QAE/B,eAAe,kEAAS;QAGxB,YAAY,8HAAa;QAGzB,eAAe,8HAAgB;QAG/B,mBAAmB,qIAAa;QAGhC,iBAAiB,uIAAS;QAG1B,qBAAqB,yIAAS;QAE9B,YAAY,UAOX;;YACA,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;;SA5BW,mBAAmB;IA+BnB,yBAAyB;;;;;;;iBAAzB,yBAAyB;;;mCACpC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;kCAGrB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YAFtC,uKAAA,OAAO,6BAAP,OAAO,yFAAS;YAGhB,oKAAA,MAAM,6BAAN,MAAM,uFAAa;;;QAHnB,OAAO,0DAAS;QAGhB,MAAM,gHAAa;QAEnB,YAAY,UAAoD;;YAC/D,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;SATW,yBAAyB;IAYzB,sBAAsB;;;;;;;;;;iBAAtB,sBAAsB;;;sCACjC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;mDAGrB,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC;YALnD,gLAAA,UAAU,6BAAV,UAAU,+FAAgB;YAG1B,iKAAA,KAAK,6BAAL,KAAK,qFAAS;YAGd,uNAAA,uBAAuB,6BAAvB,uBAAuB,yHAA6B;;;QANpD,UAAU,6DAAgB;QAG1B,KAAK,kHAAS;QAGd,uBAAuB,+HAA6B;QAEpD,YAAY,UAIX;;YACA,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;SAhBW,sBAAsB;IAoBtB,oBAAoB;4BADhC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;qCAEd,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;oCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gDAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;oCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAR7C,6KAAA,SAAS,6BAAT,SAAS,6FAAa;YAGtB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAS;YAGjB,8MAAA,oBAAoB,6BAApB,oBAAoB,mHAAa;YAGjC,0KAAA,QAAQ,6BAAR,QAAQ,2FAA2B;YAXpC,6KAqBC;;;YArBY,uDAAoB;;QAEhC,SAAS,4DAAa;QAGtB,QAAQ,oHAAS;QAGjB,oBAAoB,+HAAa;QAGjC,QAAQ,+HAA2B;QAEnC,YAAY,UAKX;;YACA,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;;SApBW,oBAAoB;AAuBjC,+EAA+E;IAElE,eAAe;4BAD3B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAEd,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;sCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;yCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;+CAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;0CAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;wCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;+CAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YApBtC,6KAAA,SAAS,6BAAT,SAAS,6FAAa;YAGtB,gLAAA,UAAU,6BAAV,UAAU,+FAAa;YAGvB,yLAAA,aAAa,6BAAb,aAAa,qGAAS;YAGtB,2MAAA,mBAAmB,6BAAnB,mBAAmB,iHAAa;YAGhC,4LAAA,cAAc,6BAAd,cAAc,uGAAS;YAGvB,sLAAA,YAAY,6BAAZ,YAAY,mGAAa;YAGzB,sLAAA,YAAY,6BAAZ,YAAY,mGAAS;YAGrB,2MAAA,mBAAmB,6BAAnB,mBAAmB,iHAAa;YAvBjC,6KAqCC;;;YArCY,uDAAe;;QAE3B,SAAS,4DAAa;QAGtB,UAAU,sHAAa;QAGvB,aAAa,0HAAS;QAGtB,mBAAmB,mIAAa;QAGhC,cAAc,oIAAS;QAGvB,YAAY,6HAAa;QAGzB,YAAY,2HAAS;QAGrB,mBAAmB,kIAAa;QAEhC,YAAY,UASX;;YACA,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;;SApCW,eAAe;AAuC5B,gFAAgF;IAEnE,sBAAsB;4BADlC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;qCAEd,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;sCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;0CAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;uCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;wCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAdvB,6KAAA,SAAS,6BAAT,SAAS,6FAAa;YAGtB,gLAAA,UAAU,6BAAV,UAAU,+FAAa;YAGvB,4LAAA,cAAc,6BAAd,cAAc,uGAAS;YAGvB,sLAAA,YAAY,6BAAZ,YAAY,mGAAa;YAGzB,mLAAA,WAAW,6BAAX,WAAW,iGAAa;YAGxB,sLAAA,YAAY,6BAAZ,YAAY,mGAAS;YAjBtB,6KA6BC;;;YA7BY,uDAAsB;;QAElC,SAAS,4DAAa;QAGtB,UAAU,sHAAa;QAGvB,cAAc,2HAAS;QAGvB,YAAY,6HAAa;QAGzB,WAAW,0HAAa;QAGxB,YAAY,0HAAS;QAErB,YAAY,UAOX;;YACA,IAAI,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChD;;;;SA5BW,sBAAsB;IAgCtB,gBAAgB;4BAD5B,OAAO,CAAC,oBAAoB,CAAC;;;;sBACQ,OAAO;;;;gCAAf,SAAQ,WAAc;;;;sCAClD,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACrC,gLAAA,UAAU,6BAAV,UAAU,+FAAsB;YAFjC,6KAuBC;;;YAvBY,uDAAgB;;QAE5B,UAAU,6DAAsB;QAEhC,YAAY,UAAgD;YAC3D,KAAK,EAAE,CAAC;;YACR,IAAI,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACxD;QAEQ,KAAK,CAAC,UAAU,CACxB,KAAoB,EACpB,QAAoD;YAEpD,MAAM,IAAI,KAAK,CACd,kEAAkE,CAClE,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAa;YACvB,MAAM,IAAI,KAAK,CACd,kEAAkE,CAClE,CAAC;QACH,CAAC;;;;SAtBW,gBAAgB;AAyB7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,UAA+B,EACxB,EAAE;IACT,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,eAAe,KAAK,mCAAmC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IACD,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,YAAY,aAAa,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,aAAa,CAAC,UAAU,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IACrE,UAAU,CAAC,UAAU,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,iBAAiB,KAAK,qCAAqC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACnE,CAAC;IACD,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;IACtE,IACC,UAAU,CAAC,qBAAqB;QAChC,4DAA4D,EAC3D,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,UAA+B,EAClB,EAAE;IACf,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,UAAU,CAChB,MAAM,CAAC;QACN,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;QACtE,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;QACrC,UAAU,CAAC,YAAY;QACvB,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;KACnD,CAAC,CACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,IAA0B,EACb,EAAE;IACf,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,UAAU,CAChB,MAAM,CAAC;QACN,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;QACzE,YAAY,CAAC,KAAK,CAAC;KACnB,CAAC,CACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,IAA0B,EAC1B,UAA+B,EACxB,EAAE;IACT,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/D,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACrE,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,gBAAwC,CAAC;IAC7C,IAAI,gBAAoD,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,YAAY,aAAa,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IACC,gBAAgB,KAAK,SAAS;YAC9B,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,EACvC,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QACD,gBAAgB,GAAG,QAAQ,CAAC;QAE5B,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACd,gEAAgE,CAChE,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3D,gBAAgB,GAAG,OAAO,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IACD,IACC,gBAAgB,KAAK,SAAS;QAC9B,CAAC,gBAAgB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EACxD,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACrD,CAAC;IACD,IACC,IAAI,CAAC,QAAQ,KAAK,EAAE;QACpB,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,EACxE,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACxE,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAiB,EAAoB,EAAE;IAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACrD,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,yBAAyB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,KAAiB,EACjB,UAA+B,EACR,EAAE;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IACtD,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,0BAA0B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,KAAsB,EACtB,UAA+B,EACxB,EAAE;IACT,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC9D,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC9C,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAChD,aAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACd,0DAA0D,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IACD,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAClD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC9C,aAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC3C,KAA6B,EAC7B,UAA+B,EACxB,EAAE;IACT,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC9C,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC9B,KAAiB,EACjB,WAAmB,EACnB,IAAiB,EACb,EAAE;IACN,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACJ,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CACd,yCAAyC,WAAW,QAAQ,CAC5D,CAAC;IACH,CAAC;IACD,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACd,yCAAyC,WAAW,QAAQ,CAC5D,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,KAAiB,EACjB,UAA+B,EACb,EAAE;IACpB,MAAM,KAAK,GAAG,sBAAsB,CACnC,KAAK,EACL,4CAA4C,EAC5C,eAAe,CACf,CAAC;IACF,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC3C,KAAiB,EACjB,UAA+B,EACN,EAAE;IAC3B,MAAM,KAAK,GAAG,sBAAsB,CACnC,KAAK,EACL,+CAA+C,EAC/C,sBAAsB,CACtB,CAAC;IACF,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/trusted-network",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.111",
|
|
4
4
|
"description": "Access controller that operates on a DB",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
"@peerbit/any-store": "2.2.17",
|
|
59
59
|
"@peerbit/any-store-interface": "1.1.4",
|
|
60
60
|
"@peerbit/document": "15.0.17",
|
|
61
|
+
"@peerbit/crypto": "3.1.6",
|
|
61
62
|
"@peerbit/log": "6.2.26",
|
|
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.16"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"ethers": "^6.17.0",
|
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
|
|
23
|
-
*
|
|
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
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
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
|
-
|
|
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
|
+
};
|