@openvtc/trust-tasks 0.26.26 → 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.
- package/CHANGELOG.md +66 -0
- package/dist/_shared/components.d.ts +25 -1
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/voting/_shared/0.1/voting.d.ts +1 -1
- package/dist/voting/_shared/0.1/voting.d.ts.map +1 -1
- package/dist/voting/board/read/0.1/payload.d.ts +98 -2
- package/dist/voting/board/read/0.1/payload.d.ts.map +1 -1
- package/dist/voting/board/read/0.1/payload.js +64 -8
- package/dist/voting/board/read/0.1/payload.js.map +1 -1
- package/dist/vtc/config/did-hosting/list/0.1/payload.d.ts +339 -0
- package/dist/vtc/config/did-hosting/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/config/did-hosting/list/0.1/payload.js +185 -0
- package/dist/vtc/config/did-hosting/list/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/show/0.1/payload.d.ts +238 -2
- package/dist/vtc/elections/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/elections/show/0.1/payload.js +130 -0
- package/dist/vtc/elections/show/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +25 -1
- package/src/index.ts +1 -0
- package/src/voting/_shared/0.1/voting.ts +1 -1
- package/src/voting/board/read/0.1/payload.ts +66 -10
- package/src/vtc/config/did-hosting/list/0.1/payload.ts +233 -0
- package/src/vtc/elections/show/0.1/payload.ts +136 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,72 @@ The package versions over **its own API** — what a consumer compiles against
|
|
|
11
11
|
not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
|
|
12
12
|
component.
|
|
13
13
|
|
|
14
|
+
## 0.26.28 — 2026-10-21
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **voting**: Each trustee step on the board is the trustee's signed request (#853)
|
|
20
|
+
|
|
21
|
+
The board recorded each step of the trustees' ceremony as its payload alone, so nothing on it
|
|
22
|
+
showed who took a step. A ballot box could enrol or deal in a trustee's name — a polynomial of its
|
|
23
|
+
own choosing, with matching shares sealed to that trustee's transport key — and every check the
|
|
24
|
+
community, the trustees and certification run would pass while the ballot box held the election
|
|
25
|
+
key, able to open sealed ballots before close. The defence was only that the ballot box runs
|
|
26
|
+
honestly, which VTI-VOT-062 does not let a deployment assume.
|
|
27
|
+
|
|
28
|
+
- A new board entry, `trusteeStep` (appended), carries the trustee's `voting/trustees/enrol`,
|
|
29
|
+
`deal`, `confirm` or `justify` request exactly as the ballot box received it, proof included.
|
|
30
|
+
The `transportKey`, `dealing`, `confirmation` and `justification` kinds are no longer appended,
|
|
31
|
+
and a consumer refuses a board holding one.
|
|
32
|
+
- CONVENTIONS §9.6: whoever replays the ceremony takes a step only when its type, community and
|
|
33
|
+
election are right, its issuer is the trustee the manifest names at the payload's index, and
|
|
34
|
+
its proof is the issuer's. A `partials` entry needs no signature: its Chaum–Pedersen proofs
|
|
35
|
+
already tie it to the trustee's share. `voting/trustees/status` is never evidence of who took a
|
|
36
|
+
step.
|
|
37
|
+
- `vtc/elections/show` item 6: the community forms the key itself by replaying the ceremony from
|
|
38
|
+
the board (open to it on any board), never from `voting/trustees/status`.
|
|
39
|
+
- `vtc/elections/certify` item 8 states the encrypted levels' recount: ceremony, casts and
|
|
40
|
+
partials, from the board alone.
|
|
41
|
+
|
|
42
|
+
## 0.26.27 — 2026-10-21
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- **vtc/config**: Did-hosting/list 0.1 — the hosting servers the community's VTA can publish its identities through (#849)
|
|
48
|
+
|
|
49
|
+
A community's administrator chooses where the identities it mints (its groups'
|
|
50
|
+
and its own rooms') are published. The community either serves each `did:webvh`
|
|
51
|
+
log itself, or has its VTA publish it on a hosting server registered there.
|
|
52
|
+
Without a list of those servers the choice is typed blind.
|
|
53
|
+
|
|
54
|
+
- vtc/config/did-hosting/list/0.1: for holders of `vtc.config.admin`. The
|
|
55
|
+
community asks its own VTA (`vta/webvh/servers/list`), as itself, over the
|
|
56
|
+
link it keeps to it. It answers with each server's `id`, `did` and `label`,
|
|
57
|
+
and nothing else of the VTA's record. A server whose id the configuration
|
|
58
|
+
could not name is left out.
|
|
59
|
+
- Codes: noKeyHolder (no VTA link), keyHolderUnavailable (no answer,
|
|
60
|
+
retryable), keyHolderRefused (the VTA's own code and message in `details`).
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
- **voting**: Encrypted elections on a private board — trustees read their ceremony, voters get the key from vtc/elections/show (#852)
|
|
67
|
+
|
|
68
|
+
On a private board the ballot box answered voting/trustees/status only to the community and
|
|
69
|
+
its auditors, so no trustee could take its next step (transport keys, dealings and targets are
|
|
70
|
+
read from status) and no voter could obtain the election key: a sealed or tallied-encrypted
|
|
71
|
+
election on a private board could not run.
|
|
72
|
+
|
|
73
|
+
- CONVENTIONS §4 gains the rows the trustee tasks were missing; voting/trustees/status
|
|
74
|
+
answers every trustee the manifest names on any board. Nothing the ceremony publishes is
|
|
75
|
+
secret (§9.6, "Who reads the ceremony").
|
|
76
|
+
- vtc/elections/show carries electionKey (optional, appended) once formed, read from the
|
|
77
|
+
ballot box and refused unless the qualified dealings in the same answer form it. A voter
|
|
78
|
+
gets it from the community it already asks for its ticket.
|
|
79
|
+
|
|
14
80
|
## 0.26.26 — 2026-10-20
|
|
15
81
|
|
|
16
82
|
|
|
@@ -388,7 +388,7 @@ export type BlobRef = DigestMultibase;
|
|
|
388
388
|
/**
|
|
389
389
|
* One leaf of a board. A leaf's hash is the RFC 9162 leaf hash of the JCS canonicalization of this object. Entries carry no time of arrival: the order is the board's, and a timestamp would hand anyone who reads the board the timing the registrar's log would need to pair a ticket with its cast.
|
|
390
390
|
*/
|
|
391
|
-
export type BoardEntry = CastEntry | ReplacementEntry | LifecycleEntry | ResultEntry | EncryptedCastEntry | TransportKeyEntry | DealingEntry | ConfirmationEntry | JustificationEntry | ElectionKeyEntry | PartialDecryptionsEntry | UnsealedEntry | SpoiledEntry;
|
|
391
|
+
export type BoardEntry = CastEntry | ReplacementEntry | LifecycleEntry | ResultEntry | EncryptedCastEntry | TransportKeyEntry | DealingEntry | ConfirmationEntry | JustificationEntry | ElectionKeyEntry | PartialDecryptionsEntry | UnsealedEntry | SpoiledEntry | TrusteeStepEntry;
|
|
392
392
|
/**
|
|
393
393
|
* `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).
|
|
394
394
|
*/
|
|
@@ -4574,14 +4574,23 @@ export interface EncryptedCastEntry {
|
|
|
4574
4574
|
kind: "encryptedCast";
|
|
4575
4575
|
cast: EncryptedCast;
|
|
4576
4576
|
}
|
|
4577
|
+
/**
|
|
4578
|
+
* 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.
|
|
4579
|
+
*/
|
|
4577
4580
|
export interface TransportKeyEntry {
|
|
4578
4581
|
kind: "transportKey";
|
|
4579
4582
|
transportKey: TransportKey;
|
|
4580
4583
|
}
|
|
4584
|
+
/**
|
|
4585
|
+
* 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.
|
|
4586
|
+
*/
|
|
4581
4587
|
export interface DealingEntry {
|
|
4582
4588
|
kind: "dealing";
|
|
4583
4589
|
dealing: Dealing;
|
|
4584
4590
|
}
|
|
4591
|
+
/**
|
|
4592
|
+
* 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.
|
|
4593
|
+
*/
|
|
4585
4594
|
export interface ConfirmationEntry {
|
|
4586
4595
|
kind: "confirmation";
|
|
4587
4596
|
trustee: TrusteeIndex;
|
|
@@ -4590,6 +4599,9 @@ export interface ConfirmationEntry {
|
|
|
4590
4599
|
*/
|
|
4591
4600
|
complaints: TrusteeIndex[];
|
|
4592
4601
|
}
|
|
4602
|
+
/**
|
|
4603
|
+
* 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.
|
|
4604
|
+
*/
|
|
4593
4605
|
export interface JustificationEntry {
|
|
4594
4606
|
kind: "justification";
|
|
4595
4607
|
dealer: TrusteeIndex;
|
|
@@ -4621,6 +4633,13 @@ export interface SpoiledEntry {
|
|
|
4621
4633
|
kind: "spoiled";
|
|
4622
4634
|
leafIndex: number;
|
|
4623
4635
|
}
|
|
4636
|
+
/**
|
|
4637
|
+
* 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).
|
|
4638
|
+
*/
|
|
4639
|
+
export interface TrusteeStepEntry {
|
|
4640
|
+
kind: "trusteeStep";
|
|
4641
|
+
request: SignedRequest;
|
|
4642
|
+
}
|
|
4624
4643
|
/**
|
|
4625
4644
|
* 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.
|
|
4626
4645
|
*/
|
|
@@ -9998,6 +10017,11 @@ export interface SigmaProof {
|
|
|
9998
10017
|
c: GroupScalar;
|
|
9999
10018
|
z: GroupScalar;
|
|
10000
10019
|
}
|
|
10020
|
+
/**
|
|
10021
|
+
* 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.
|
|
10022
|
+
*/
|
|
10023
|
+
export interface SignedRequest {
|
|
10024
|
+
}
|
|
10001
10025
|
/**
|
|
10002
10026
|
* 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.
|
|
10003
10027
|
*/
|