@openvtc/trust-tasks 0.26.27 → 0.26.28

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.
@@ -435,7 +435,8 @@ export type BoardEntry =
435
435
  | ElectionKeyEntry
436
436
  | PartialDecryptionsEntry
437
437
  | UnsealedEntry
438
- | SpoiledEntry;
438
+ | SpoiledEntry
439
+ | TrusteeStepEntry;
439
440
  /**
440
441
  * `public`: anyone reads the board. `private`: the community, the auditors the manifest names and, for one cast's inclusion, the holder of its receipt (VTI-VOT-052).
441
442
  */
@@ -4900,14 +4901,23 @@ export interface EncryptedCastEntry {
4900
4901
  kind: "encryptedCast";
4901
4902
  cast: EncryptedCast;
4902
4903
  }
4904
+ /**
4905
+ * Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind.
4906
+ */
4903
4907
  export interface TransportKeyEntry {
4904
4908
  kind: "transportKey";
4905
4909
  transportKey: TransportKey;
4906
4910
  }
4911
+ /**
4912
+ * Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind.
4913
+ */
4907
4914
  export interface DealingEntry {
4908
4915
  kind: "dealing";
4909
4916
  dealing: Dealing;
4910
4917
  }
4918
+ /**
4919
+ * Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind.
4920
+ */
4911
4921
  export interface ConfirmationEntry {
4912
4922
  kind: "confirmation";
4913
4923
  trustee: TrusteeIndex;
@@ -4916,6 +4926,9 @@ export interface ConfirmationEntry {
4916
4926
  */
4917
4927
  complaints: TrusteeIndex[];
4918
4928
  }
4929
+ /**
4930
+ * Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind.
4931
+ */
4919
4932
  export interface JustificationEntry {
4920
4933
  kind: "justification";
4921
4934
  dealer: TrusteeIndex;
@@ -4947,6 +4960,13 @@ export interface SpoiledEntry {
4947
4960
  kind: "spoiled";
4948
4961
  leafIndex: number;
4949
4962
  }
4963
+ /**
4964
+ * One step of the trustees' ceremony — an enrolment, a dealing, a confirmation or a justification — as the trustee's own signed request, so that anyone reading the board can tell who took it (CONVENTIONS §9.6).
4965
+ */
4966
+ export interface TrusteeStepEntry {
4967
+ kind: "trusteeStep";
4968
+ request: SignedRequest;
4969
+ }
4950
4970
  /**
4951
4971
  * A board's tree head (RFC 9162 §2.1). A head is signed by being carried in a document the ballot box signs; whoever keeps a head keeps that whole document.
4952
4972
  */
@@ -10401,6 +10421,10 @@ export interface SigmaProof {
10401
10421
  c: GroupScalar;
10402
10422
  z: GroupScalar;
10403
10423
  }
10424
+ /**
10425
+ * A whole Trust Task request document — `id`, `type`, `issuer`, `payload` and every other member, `proof` included — exactly as the ballot box received it, never re-serialised: its proof is taken over its members, and a re-serialised copy does not reliably reproduce them. Typed as an open object so every member survives; CONVENTIONS §9.6 gives the checks that make it a trustee's step.
10426
+ */
10427
+ export interface SignedRequest {}
10404
10428
  /**
10405
10429
  * One signing-key delegation, as its holder sees it. A delegation confers nothing of its own: it names an identity that already holds whatever standing it holds, and a document signed by the key is authorized by that identity's standing read at execution time.
10406
10430
  */
@@ -14,4 +14,4 @@ export interface CommunityVotingSharedDefinitions {
14
14
  * The definitions this shared schema publishes, hoisted to one declaration each.
15
15
  * See "../../../_shared/components.js".
16
16
  */
17
- export type { Answer, Ballot, BoardEntry, BoardHead, BoardVisibility, Cast, Dealing, DecryptionTarget, Disclosure, DisjunctiveProof, ElectionId, ElectionKey, ElectionResult, ElectionState, ElectionSummary, ElGamalCiphertext, EncryptedBallot, EncryptedCast, EncryptedOption, EncryptedQuestion, GroupElement, GroupScalar, Key_VotingV0_1 as Key, Manifest, MerklePath, Multibase_VotingV0_1 as Multibase, PartialDecryption, Question, QuestionOption, QuestionResult, Revote, RollRule, SealedPayload, SealedShare, SecrecyLevel, SigmaProof, TransportKey, TrusteeIndex, TrusteePhase, Trustees, VotingParameters } from "../../../_shared/components.js";
17
+ export type { Answer, Ballot, BoardEntry, BoardHead, BoardVisibility, Cast, Dealing, DecryptionTarget, Disclosure, DisjunctiveProof, ElectionId, ElectionKey, ElectionResult, ElectionState, ElectionSummary, ElGamalCiphertext, EncryptedBallot, EncryptedCast, EncryptedOption, EncryptedQuestion, GroupElement, GroupScalar, Key_VotingV0_1 as Key, Manifest, MerklePath, Multibase_VotingV0_1 as Multibase, PartialDecryption, Question, QuestionOption, QuestionResult, Revote, RollRule, SealedPayload, SealedShare, SecrecyLevel, SigmaProof, SignedRequest, TransportKey, TrusteeIndex, TrusteePhase, Trustees, VotingParameters } from "../../../_shared/components.js";
@@ -3,7 +3,7 @@
3
3
  * Source: specs/voting/board/read/0.1/payload.schema.json
4
4
  */
5
5
 
6
- import type { Answer, Ballot, BoardEntry, BoardHead, Cast, CastEntry, ConfirmationEntry, Dealing, DealingEntry, DecryptionTarget, DigestMultibase, ElectionId, ElectionKey, ElectionKeyEntry, ElectionResult, ElGamalCiphertext, EncryptedCast, EncryptedCastEntry, Ext, GroupElement, GroupScalar, JustificationEntry, Key_VotingV0_1 as Key, LifecycleEntry, Multibase_VotingV0_1 as Multibase, PartialDecryption, PartialDecryptionsEntry, QuestionResult, ReplacementEntry, ResultEntry, SealedPayload, SealedShare, SigmaProof, SpoiledEntry, TransportKey, TransportKeyEntry, TrusteeIndex, UnsealedEntry } from "../../../../_shared/components.js";
6
+ import type { Answer, Ballot, BoardEntry, BoardHead, Cast, CastEntry, ConfirmationEntry, Dealing, DealingEntry, DecryptionTarget, DigestMultibase, ElectionId, ElectionKey, ElectionKeyEntry, ElectionResult, ElGamalCiphertext, EncryptedCast, EncryptedCastEntry, Ext, GroupElement, GroupScalar, JustificationEntry, Key_VotingV0_1 as Key, LifecycleEntry, Multibase_VotingV0_1 as Multibase, PartialDecryption, PartialDecryptionsEntry, QuestionResult, ReplacementEntry, ResultEntry, SealedPayload, SealedShare, SigmaProof, SignedRequest, SpoiledEntry, TransportKey, TransportKeyEntry, TrusteeIndex, TrusteeStepEntry, UnsealedEntry } from "../../../../_shared/components.js";
7
7
 
8
8
 
9
9
  /**
@@ -51,7 +51,7 @@ export interface VotingBoardReadResponsePayload {
51
51
  }
52
52
 
53
53
  /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
54
- export type { Answer, Ballot, BoardEntry, BoardHead, Cast, CastEntry, ConfirmationEntry, Dealing, DealingEntry, DecryptionTarget, DigestMultibase, ElectionId, ElectionKey, ElectionKeyEntry, ElectionResult, ElGamalCiphertext, EncryptedCast, EncryptedCastEntry, Ext, GroupElement, GroupScalar, JustificationEntry, Key, LifecycleEntry, Multibase, PartialDecryption, PartialDecryptionsEntry, QuestionResult, ReplacementEntry, ResultEntry, SealedPayload, SealedShare, SigmaProof, SpoiledEntry, TransportKey, TransportKeyEntry, TrusteeIndex, UnsealedEntry };
54
+ export type { Answer, Ballot, BoardEntry, BoardHead, Cast, CastEntry, ConfirmationEntry, Dealing, DealingEntry, DecryptionTarget, DigestMultibase, ElectionId, ElectionKey, ElectionKeyEntry, ElectionResult, ElGamalCiphertext, EncryptedCast, EncryptedCastEntry, Ext, GroupElement, GroupScalar, JustificationEntry, Key, LifecycleEntry, Multibase, PartialDecryption, PartialDecryptionsEntry, QuestionResult, ReplacementEntry, ResultEntry, SealedPayload, SealedShare, SigmaProof, SignedRequest, SpoiledEntry, TransportKey, TransportKeyEntry, TrusteeIndex, TrusteeStepEntry, UnsealedEntry };
55
55
 
56
56
  /** Trust Task type URI. */
57
57
  export const TYPE_URI = "https://trusttasks.org/spec/voting/board/read/0.1" as const;
@@ -296,7 +296,8 @@ export const PAYLOAD_SCHEMA = {
296
296
  "transportKey": {
297
297
  "$ref": "#/$defs/TransportKey"
298
298
  }
299
- }
299
+ },
300
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
300
301
  },
301
302
  {
302
303
  "title": "DealingEntry",
@@ -313,7 +314,8 @@ export const PAYLOAD_SCHEMA = {
313
314
  "dealing": {
314
315
  "$ref": "#/$defs/Dealing"
315
316
  }
316
- }
317
+ },
318
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
317
319
  },
318
320
  {
319
321
  "title": "ConfirmationEntry",
@@ -338,7 +340,8 @@ export const PAYLOAD_SCHEMA = {
338
340
  "$ref": "#/$defs/TrusteeIndex"
339
341
  }
340
342
  }
341
- }
343
+ },
344
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
342
345
  },
343
346
  {
344
347
  "title": "JustificationEntry",
@@ -363,7 +366,8 @@ export const PAYLOAD_SCHEMA = {
363
366
  "share": {
364
367
  "$ref": "#/$defs/GroupScalar"
365
368
  }
366
- }
369
+ },
370
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
367
371
  },
368
372
  {
369
373
  "title": "ElectionKeyEntry",
@@ -448,9 +452,33 @@ export const PAYLOAD_SCHEMA = {
448
452
  "minimum": 0
449
453
  }
450
454
  }
455
+ },
456
+ {
457
+ "title": "TrusteeStepEntry",
458
+ "description": "One step of the trustees' ceremony — an enrolment, a dealing, a confirmation or a justification — as the trustee's own signed request, so that anyone reading the board can tell who took it (CONVENTIONS §9.6).",
459
+ "type": "object",
460
+ "additionalProperties": false,
461
+ "required": [
462
+ "kind",
463
+ "request"
464
+ ],
465
+ "properties": {
466
+ "kind": {
467
+ "const": "trusteeStep"
468
+ },
469
+ "request": {
470
+ "$ref": "#/$defs/SignedRequest"
471
+ }
472
+ }
451
473
  }
452
474
  ]
453
475
  },
476
+ "SignedRequest": {
477
+ "title": "SignedRequest",
478
+ "description": "A whole Trust Task request document — `id`, `type`, `issuer`, `payload` and every other member, `proof` included — exactly as the ballot box received it, never re-serialised: its proof is taken over its members, and a re-serialised copy does not reliably reproduce them. Typed as an open object so every member survives; CONVENTIONS §9.6 gives the checks that make it a trustee's step.",
479
+ "type": "object",
480
+ "minProperties": 1
481
+ },
454
482
  "Ballot": {
455
483
  "title": "Ballot",
456
484
  "description": "An open ballot: one answer per question of the manifest, in any order. The bytes a cast's proof binds are the RFC 8785 (JCS) canonicalization of this object as received.",
@@ -1278,7 +1306,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
1278
1306
  "transportKey": {
1279
1307
  "$ref": "#/$defs/TransportKey"
1280
1308
  }
1281
- }
1309
+ },
1310
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
1282
1311
  },
1283
1312
  {
1284
1313
  "title": "DealingEntry",
@@ -1295,7 +1324,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
1295
1324
  "dealing": {
1296
1325
  "$ref": "#/$defs/Dealing"
1297
1326
  }
1298
- }
1327
+ },
1328
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
1299
1329
  },
1300
1330
  {
1301
1331
  "title": "ConfirmationEntry",
@@ -1320,7 +1350,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
1320
1350
  "$ref": "#/$defs/TrusteeIndex"
1321
1351
  }
1322
1352
  }
1323
- }
1353
+ },
1354
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
1324
1355
  },
1325
1356
  {
1326
1357
  "title": "JustificationEntry",
@@ -1345,7 +1376,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
1345
1376
  "share": {
1346
1377
  "$ref": "#/$defs/GroupScalar"
1347
1378
  }
1348
- }
1379
+ },
1380
+ "description": "Not appended: each enrolment, dealing, confirmation and justification is a `trusteeStep` entry carrying the trustee's signed request (CONVENTIONS §9.6). A consumer MUST refuse a board holding this kind."
1349
1381
  },
1350
1382
  {
1351
1383
  "title": "ElectionKeyEntry",
@@ -1430,9 +1462,33 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
1430
1462
  "minimum": 0
1431
1463
  }
1432
1464
  }
1465
+ },
1466
+ {
1467
+ "title": "TrusteeStepEntry",
1468
+ "description": "One step of the trustees' ceremony — an enrolment, a dealing, a confirmation or a justification — as the trustee's own signed request, so that anyone reading the board can tell who took it (CONVENTIONS §9.6).",
1469
+ "type": "object",
1470
+ "additionalProperties": false,
1471
+ "required": [
1472
+ "kind",
1473
+ "request"
1474
+ ],
1475
+ "properties": {
1476
+ "kind": {
1477
+ "const": "trusteeStep"
1478
+ },
1479
+ "request": {
1480
+ "$ref": "#/$defs/SignedRequest"
1481
+ }
1482
+ }
1433
1483
  }
1434
1484
  ]
1435
1485
  },
1486
+ "SignedRequest": {
1487
+ "title": "SignedRequest",
1488
+ "description": "A whole Trust Task request document — `id`, `type`, `issuer`, `payload` and every other member, `proof` included — exactly as the ballot box received it, never re-serialised: its proof is taken over its members, and a re-serialised copy does not reliably reproduce them. Typed as an open object so every member survives; CONVENTIONS §9.6 gives the checks that make it a trustee's step.",
1489
+ "type": "object",
1490
+ "minProperties": 1
1491
+ },
1436
1492
  "Ballot": {
1437
1493
  "title": "Ballot",
1438
1494
  "description": "An open ballot: one answer per question of the manifest, in any order. The bytes a cast's proof binds are the RFC 8785 (JCS) canonicalization of this object as received.",