@digitaldefiance/ecies-lib 4.17.2 → 4.17.3
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/package.json +1 -1
- package/src/i18n-setup.d.ts +7 -1
- package/src/i18n-setup.d.ts.map +1 -1
- package/src/i18n-setup.js +12 -0
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +1 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/voting/index.d.ts +1 -0
- package/src/lib/voting/index.d.ts.map +1 -1
- package/src/lib/voting/index.js +2 -0
- package/src/lib/voting/index.js.map +1 -1
- package/src/lib/voting/threshold/decryption-combiner.d.ts +141 -0
- package/src/lib/voting/threshold/decryption-combiner.d.ts.map +1 -0
- package/src/lib/voting/threshold/decryption-combiner.js +343 -0
- package/src/lib/voting/threshold/decryption-combiner.js.map +1 -0
- package/src/lib/voting/threshold/enumerations/ceremony-status.d.ts +19 -0
- package/src/lib/voting/threshold/enumerations/ceremony-status.d.ts.map +1 -0
- package/src/lib/voting/threshold/enumerations/ceremony-status.js +23 -0
- package/src/lib/voting/threshold/enumerations/ceremony-status.js.map +1 -0
- package/src/lib/voting/threshold/enumerations/guardian-status.d.ts +18 -0
- package/src/lib/voting/threshold/enumerations/guardian-status.d.ts.map +1 -0
- package/src/lib/voting/threshold/enumerations/guardian-status.js +22 -0
- package/src/lib/voting/threshold/enumerations/guardian-status.js.map +1 -0
- package/src/lib/voting/threshold/enumerations/index.d.ts +8 -0
- package/src/lib/voting/threshold/enumerations/index.d.ts.map +1 -0
- package/src/lib/voting/threshold/enumerations/index.js +11 -0
- package/src/lib/voting/threshold/enumerations/index.js.map +1 -0
- package/src/lib/voting/threshold/enumerations/interval-trigger-type.d.ts +15 -0
- package/src/lib/voting/threshold/enumerations/interval-trigger-type.d.ts.map +1 -0
- package/src/lib/voting/threshold/enumerations/interval-trigger-type.js +19 -0
- package/src/lib/voting/threshold/enumerations/interval-trigger-type.js.map +1 -0
- package/src/lib/voting/threshold/enumerations/threshold-audit-event-type.d.ts +29 -0
- package/src/lib/voting/threshold/enumerations/threshold-audit-event-type.d.ts.map +1 -0
- package/src/lib/voting/threshold/enumerations/threshold-audit-event-type.js +33 -0
- package/src/lib/voting/threshold/enumerations/threshold-audit-event-type.js.map +1 -0
- package/src/lib/voting/threshold/guardian-registry.d.ts +120 -0
- package/src/lib/voting/threshold/guardian-registry.d.ts.map +1 -0
- package/src/lib/voting/threshold/guardian-registry.js +227 -0
- package/src/lib/voting/threshold/guardian-registry.js.map +1 -0
- package/src/lib/voting/threshold/index.d.ts +49 -0
- package/src/lib/voting/threshold/index.d.ts.map +1 -0
- package/src/lib/voting/threshold/index.js +69 -0
- package/src/lib/voting/threshold/index.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/ceremony-coordinator.d.ts +19 -0
- package/src/lib/voting/threshold/interfaces/ceremony-coordinator.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/ceremony-coordinator.js +3 -0
- package/src/lib/voting/threshold/interfaces/ceremony-coordinator.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/ceremony.d.ts +33 -0
- package/src/lib/voting/threshold/interfaces/ceremony.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/ceremony.js +3 -0
- package/src/lib/voting/threshold/interfaces/ceremony.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/combined-decryption.d.ts +20 -0
- package/src/lib/voting/threshold/interfaces/combined-decryption.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/combined-decryption.js +3 -0
- package/src/lib/voting/threshold/interfaces/combined-decryption.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/combined-zk-proof.d.ts +16 -0
- package/src/lib/voting/threshold/interfaces/combined-zk-proof.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/combined-zk-proof.js +3 -0
- package/src/lib/voting/threshold/interfaces/combined-zk-proof.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/decryption-combiner.d.ts +14 -0
- package/src/lib/voting/threshold/interfaces/decryption-combiner.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/decryption-combiner.js +3 -0
- package/src/lib/voting/threshold/interfaces/decryption-combiner.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian-registry.d.ts +28 -0
- package/src/lib/voting/threshold/interfaces/guardian-registry.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian-registry.js +3 -0
- package/src/lib/voting/threshold/interfaces/guardian-registry.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian-status-change-event.d.ts +16 -0
- package/src/lib/voting/threshold/interfaces/guardian-status-change-event.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian-status-change-event.js +3 -0
- package/src/lib/voting/threshold/interfaces/guardian-status-change-event.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian.d.ts +25 -0
- package/src/lib/voting/threshold/interfaces/guardian.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/guardian.js +3 -0
- package/src/lib/voting/threshold/interfaces/guardian.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/index.d.ts +32 -0
- package/src/lib/voting/threshold/interfaces/index.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/index.js +6 -0
- package/src/lib/voting/threshold/interfaces/index.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-config.d.ts +17 -0
- package/src/lib/voting/threshold/interfaces/interval-config.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-config.js +3 -0
- package/src/lib/voting/threshold/interfaces/interval-config.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-scheduler.d.ts +23 -0
- package/src/lib/voting/threshold/interfaces/interval-scheduler.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-scheduler.js +3 -0
- package/src/lib/voting/threshold/interfaces/interval-scheduler.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-tally.d.ts +30 -0
- package/src/lib/voting/threshold/interfaces/interval-tally.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-tally.js +3 -0
- package/src/lib/voting/threshold/interfaces/interval-tally.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-trigger-event.d.ts +20 -0
- package/src/lib/voting/threshold/interfaces/interval-trigger-event.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/interval-trigger-event.js +3 -0
- package/src/lib/voting/threshold/interfaces/interval-trigger-event.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/key-share.d.ts +15 -0
- package/src/lib/voting/threshold/interfaces/key-share.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/key-share.js +3 -0
- package/src/lib/voting/threshold/interfaces/key-share.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption-service.d.ts +17 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption-service.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption-service.js +3 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption-service.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption.d.ts +20 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption.js +3 -0
- package/src/lib/voting/threshold/interfaces/partial-decryption.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/public-tally-feed.d.ts +19 -0
- package/src/lib/voting/threshold/interfaces/public-tally-feed.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/public-tally-feed.js +3 -0
- package/src/lib/voting/threshold/interfaces/public-tally-feed.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/tally-subscription.d.ts +16 -0
- package/src/lib/voting/threshold/interfaces/tally-subscription.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/tally-subscription.js +3 -0
- package/src/lib/voting/threshold/interfaces/tally-subscription.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/tally-verifier.d.ts +12 -0
- package/src/lib/voting/threshold/interfaces/tally-verifier.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/tally-verifier.js +3 -0
- package/src/lib/voting/threshold/interfaces/tally-verifier.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-aggregator.d.ts +15 -0
- package/src/lib/voting/threshold/interfaces/threshold-aggregator.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-aggregator.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-aggregator.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-audit-entry.d.ts +28 -0
- package/src/lib/voting/threshold/interfaces/threshold-audit-entry.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-audit-entry.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-audit-entry.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-config.d.ts +12 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-config.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-config.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-config.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-generator.d.ts +12 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-generator.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-generator.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-generator.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-pair.d.ts +30 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-pair.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-pair.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-key-pair.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-config.d.ts +19 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-config.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-config.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-config.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-factory.d.ts +16 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-factory.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-factory.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll-factory.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll.d.ts +25 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll.js +3 -0
- package/src/lib/voting/threshold/interfaces/threshold-poll.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/verification-result.d.ts +17 -0
- package/src/lib/voting/threshold/interfaces/verification-result.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/verification-result.js +3 -0
- package/src/lib/voting/threshold/interfaces/verification-result.js.map +1 -0
- package/src/lib/voting/threshold/interfaces/zk-proof.d.ts +15 -0
- package/src/lib/voting/threshold/interfaces/zk-proof.d.ts.map +1 -0
- package/src/lib/voting/threshold/interfaces/zk-proof.js +3 -0
- package/src/lib/voting/threshold/interfaces/zk-proof.js.map +1 -0
- package/src/lib/voting/threshold/partial-decryption-service.d.ts +130 -0
- package/src/lib/voting/threshold/partial-decryption-service.d.ts.map +1 -0
- package/src/lib/voting/threshold/partial-decryption-service.js +288 -0
- package/src/lib/voting/threshold/partial-decryption-service.js.map +1 -0
- package/src/lib/voting/threshold/threshold-key-generator.d.ts +114 -0
- package/src/lib/voting/threshold/threshold-key-generator.d.ts.map +1 -0
- package/src/lib/voting/threshold/threshold-key-generator.js +275 -0
- package/src/lib/voting/threshold/threshold-key-generator.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decryption-combiner.js","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/decryption-combiner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status of a threshold decryption ceremony.
|
|
3
|
+
*
|
|
4
|
+
* A ceremony is the coordinated process where k-of-n Guardians submit
|
|
5
|
+
* their partial decryptions to reveal an aggregate tally.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum CeremonyStatus {
|
|
8
|
+
/** Ceremony created but not yet started */
|
|
9
|
+
Pending = "pending",
|
|
10
|
+
/** Ceremony is actively collecting partial decryptions */
|
|
11
|
+
InProgress = "in-progress",
|
|
12
|
+
/** Ceremony completed successfully with k valid partials */
|
|
13
|
+
Completed = "completed",
|
|
14
|
+
/** Ceremony failed due to invalid partials or other errors */
|
|
15
|
+
Failed = "failed",
|
|
16
|
+
/** Ceremony timed out before receiving k valid partials */
|
|
17
|
+
TimedOut = "timed-out"
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ceremony-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ceremony-status.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/ceremony-status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,2CAA2C;IAC3C,OAAO,YAAY;IACnB,0DAA0D;IAC1D,UAAU,gBAAgB;IAC1B,4DAA4D;IAC5D,SAAS,cAAc;IACvB,8DAA8D;IAC9D,MAAM,WAAW;IACjB,2DAA2D;IAC3D,QAAQ,cAAc;CACvB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CeremonyStatus = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Status of a threshold decryption ceremony.
|
|
6
|
+
*
|
|
7
|
+
* A ceremony is the coordinated process where k-of-n Guardians submit
|
|
8
|
+
* their partial decryptions to reveal an aggregate tally.
|
|
9
|
+
*/
|
|
10
|
+
var CeremonyStatus;
|
|
11
|
+
(function (CeremonyStatus) {
|
|
12
|
+
/** Ceremony created but not yet started */
|
|
13
|
+
CeremonyStatus["Pending"] = "pending";
|
|
14
|
+
/** Ceremony is actively collecting partial decryptions */
|
|
15
|
+
CeremonyStatus["InProgress"] = "in-progress";
|
|
16
|
+
/** Ceremony completed successfully with k valid partials */
|
|
17
|
+
CeremonyStatus["Completed"] = "completed";
|
|
18
|
+
/** Ceremony failed due to invalid partials or other errors */
|
|
19
|
+
CeremonyStatus["Failed"] = "failed";
|
|
20
|
+
/** Ceremony timed out before receiving k valid partials */
|
|
21
|
+
CeremonyStatus["TimedOut"] = "timed-out";
|
|
22
|
+
})(CeremonyStatus || (exports.CeremonyStatus = CeremonyStatus = {}));
|
|
23
|
+
//# sourceMappingURL=ceremony-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ceremony-status.js","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/ceremony-status.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,2CAA2C;IAC3C,qCAAmB,CAAA;IACnB,0DAA0D;IAC1D,4CAA0B,CAAA;IAC1B,4DAA4D;IAC5D,yCAAuB,CAAA;IACvB,8DAA8D;IAC9D,mCAAiB,CAAA;IACjB,2DAA2D;IAC3D,wCAAsB,CAAA;AACxB,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardian availability status for threshold voting.
|
|
3
|
+
*
|
|
4
|
+
* Guardians are trusted key holders who possess shares of the threshold
|
|
5
|
+
* decryption key. Their status is tracked to ensure sufficient Guardians
|
|
6
|
+
* are available for decryption ceremonies.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum GuardianStatus {
|
|
9
|
+
/** Guardian is registered but not yet confirmed online */
|
|
10
|
+
Registered = "registered",
|
|
11
|
+
/** Guardian is online and available for ceremonies */
|
|
12
|
+
Online = "online",
|
|
13
|
+
/** Guardian is temporarily offline */
|
|
14
|
+
Offline = "offline",
|
|
15
|
+
/** Guardian is permanently unavailable (requires backup activation) */
|
|
16
|
+
Unavailable = "unavailable"
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=guardian-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardian-status.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/guardian-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,cAAc;IACxB,0DAA0D;IAC1D,UAAU,eAAe;IACzB,sDAAsD;IACtD,MAAM,WAAW;IACjB,sCAAsC;IACtC,OAAO,YAAY;IACnB,uEAAuE;IACvE,WAAW,gBAAgB;CAC5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuardianStatus = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Guardian availability status for threshold voting.
|
|
6
|
+
*
|
|
7
|
+
* Guardians are trusted key holders who possess shares of the threshold
|
|
8
|
+
* decryption key. Their status is tracked to ensure sufficient Guardians
|
|
9
|
+
* are available for decryption ceremonies.
|
|
10
|
+
*/
|
|
11
|
+
var GuardianStatus;
|
|
12
|
+
(function (GuardianStatus) {
|
|
13
|
+
/** Guardian is registered but not yet confirmed online */
|
|
14
|
+
GuardianStatus["Registered"] = "registered";
|
|
15
|
+
/** Guardian is online and available for ceremonies */
|
|
16
|
+
GuardianStatus["Online"] = "online";
|
|
17
|
+
/** Guardian is temporarily offline */
|
|
18
|
+
GuardianStatus["Offline"] = "offline";
|
|
19
|
+
/** Guardian is permanently unavailable (requires backup activation) */
|
|
20
|
+
GuardianStatus["Unavailable"] = "unavailable";
|
|
21
|
+
})(GuardianStatus || (exports.GuardianStatus = GuardianStatus = {}));
|
|
22
|
+
//# sourceMappingURL=guardian-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardian-status.js","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/guardian-status.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,IAAY,cASX;AATD,WAAY,cAAc;IACxB,0DAA0D;IAC1D,2CAAyB,CAAA;IACzB,sDAAsD;IACtD,mCAAiB,CAAA;IACjB,sCAAsC;IACtC,qCAAmB,CAAA;IACnB,uEAAuE;IACvE,6CAA2B,CAAA;AAC7B,CAAC,EATW,cAAc,8BAAd,cAAc,QASzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* Threshold voting enumerations export module.
|
|
6
|
+
*/
|
|
7
|
+
tslib_1.__exportStar(require("./ceremony-status"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./guardian-status"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./interval-trigger-type"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./threshold-audit-event-type"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,4DAAkC;AAClC,4DAAkC;AAClC,kEAAwC;AACxC,uEAA6C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types of interval triggers for threshold decryption scheduling.
|
|
3
|
+
*
|
|
4
|
+
* Interval decryption allows real-time vote tallies during voting
|
|
5
|
+
* without compromising individual vote privacy.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum IntervalTriggerType {
|
|
8
|
+
/** Trigger decryption at fixed time intervals (e.g., hourly) */
|
|
9
|
+
TimeBased = "time-based",
|
|
10
|
+
/** Trigger decryption after a certain number of votes */
|
|
11
|
+
VoteCountBased = "vote-count-based",
|
|
12
|
+
/** Trigger on either time or vote count, whichever comes first */
|
|
13
|
+
Hybrid = "hybrid"
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=interval-trigger-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-trigger-type.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/interval-trigger-type.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,mBAAmB;IAC7B,gEAAgE;IAChE,SAAS,eAAe;IACxB,yDAAyD;IACzD,cAAc,qBAAqB;IACnC,kEAAkE;IAClE,MAAM,WAAW;CAClB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IntervalTriggerType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Types of interval triggers for threshold decryption scheduling.
|
|
6
|
+
*
|
|
7
|
+
* Interval decryption allows real-time vote tallies during voting
|
|
8
|
+
* without compromising individual vote privacy.
|
|
9
|
+
*/
|
|
10
|
+
var IntervalTriggerType;
|
|
11
|
+
(function (IntervalTriggerType) {
|
|
12
|
+
/** Trigger decryption at fixed time intervals (e.g., hourly) */
|
|
13
|
+
IntervalTriggerType["TimeBased"] = "time-based";
|
|
14
|
+
/** Trigger decryption after a certain number of votes */
|
|
15
|
+
IntervalTriggerType["VoteCountBased"] = "vote-count-based";
|
|
16
|
+
/** Trigger on either time or vote count, whichever comes first */
|
|
17
|
+
IntervalTriggerType["Hybrid"] = "hybrid";
|
|
18
|
+
})(IntervalTriggerType || (exports.IntervalTriggerType = IntervalTriggerType = {}));
|
|
19
|
+
//# sourceMappingURL=interval-trigger-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-trigger-type.js","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/interval-trigger-type.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,gEAAgE;IAChE,+CAAwB,CAAA;IACxB,yDAAyD;IACzD,0DAAmC,CAAA;IACnC,kEAAkE;IAClE,wCAAiB,CAAA;AACnB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit event types specific to threshold voting operations.
|
|
3
|
+
*
|
|
4
|
+
* These events extend the base audit system to track all threshold-related
|
|
5
|
+
* operations for complete auditability.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum ThresholdAuditEventType {
|
|
8
|
+
/** Threshold keys were generated */
|
|
9
|
+
KeyGeneration = "threshold-key-generation",
|
|
10
|
+
/** A key share was distributed to a Guardian */
|
|
11
|
+
KeyShareDistribution = "threshold-key-share-distribution",
|
|
12
|
+
/** A Guardian was registered in the system */
|
|
13
|
+
GuardianRegistration = "guardian-registration",
|
|
14
|
+
/** A Guardian's status changed */
|
|
15
|
+
GuardianStatusChange = "guardian-status-change",
|
|
16
|
+
/** A decryption ceremony was started */
|
|
17
|
+
CeremonyStarted = "ceremony-started",
|
|
18
|
+
/** A partial decryption was submitted */
|
|
19
|
+
PartialSubmitted = "partial-submitted",
|
|
20
|
+
/** A decryption ceremony completed successfully */
|
|
21
|
+
CeremonyCompleted = "ceremony-completed",
|
|
22
|
+
/** A decryption ceremony failed */
|
|
23
|
+
CeremonyFailed = "ceremony-failed",
|
|
24
|
+
/** A tally was published to the public feed */
|
|
25
|
+
TallyPublished = "tally-published",
|
|
26
|
+
/** A key share was rotated */
|
|
27
|
+
KeyShareRotation = "key-share-rotation"
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=threshold-audit-event-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threshold-audit-event-type.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/threshold-audit-event-type.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,uBAAuB;IACjC,oCAAoC;IACpC,aAAa,6BAA6B;IAC1C,gDAAgD;IAChD,oBAAoB,qCAAqC;IACzD,8CAA8C;IAC9C,oBAAoB,0BAA0B;IAC9C,kCAAkC;IAClC,oBAAoB,2BAA2B;IAC/C,wCAAwC;IACxC,eAAe,qBAAqB;IACpC,yCAAyC;IACzC,gBAAgB,sBAAsB;IACtC,mDAAmD;IACnD,iBAAiB,uBAAuB;IACxC,mCAAmC;IACnC,cAAc,oBAAoB;IAClC,+CAA+C;IAC/C,cAAc,oBAAoB;IAClC,8BAA8B;IAC9B,gBAAgB,uBAAuB;CACxC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ThresholdAuditEventType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Audit event types specific to threshold voting operations.
|
|
6
|
+
*
|
|
7
|
+
* These events extend the base audit system to track all threshold-related
|
|
8
|
+
* operations for complete auditability.
|
|
9
|
+
*/
|
|
10
|
+
var ThresholdAuditEventType;
|
|
11
|
+
(function (ThresholdAuditEventType) {
|
|
12
|
+
/** Threshold keys were generated */
|
|
13
|
+
ThresholdAuditEventType["KeyGeneration"] = "threshold-key-generation";
|
|
14
|
+
/** A key share was distributed to a Guardian */
|
|
15
|
+
ThresholdAuditEventType["KeyShareDistribution"] = "threshold-key-share-distribution";
|
|
16
|
+
/** A Guardian was registered in the system */
|
|
17
|
+
ThresholdAuditEventType["GuardianRegistration"] = "guardian-registration";
|
|
18
|
+
/** A Guardian's status changed */
|
|
19
|
+
ThresholdAuditEventType["GuardianStatusChange"] = "guardian-status-change";
|
|
20
|
+
/** A decryption ceremony was started */
|
|
21
|
+
ThresholdAuditEventType["CeremonyStarted"] = "ceremony-started";
|
|
22
|
+
/** A partial decryption was submitted */
|
|
23
|
+
ThresholdAuditEventType["PartialSubmitted"] = "partial-submitted";
|
|
24
|
+
/** A decryption ceremony completed successfully */
|
|
25
|
+
ThresholdAuditEventType["CeremonyCompleted"] = "ceremony-completed";
|
|
26
|
+
/** A decryption ceremony failed */
|
|
27
|
+
ThresholdAuditEventType["CeremonyFailed"] = "ceremony-failed";
|
|
28
|
+
/** A tally was published to the public feed */
|
|
29
|
+
ThresholdAuditEventType["TallyPublished"] = "tally-published";
|
|
30
|
+
/** A key share was rotated */
|
|
31
|
+
ThresholdAuditEventType["KeyShareRotation"] = "key-share-rotation";
|
|
32
|
+
})(ThresholdAuditEventType || (exports.ThresholdAuditEventType = ThresholdAuditEventType = {}));
|
|
33
|
+
//# sourceMappingURL=threshold-audit-event-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threshold-audit-event-type.js","sourceRoot":"","sources":["../../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/enumerations/threshold-audit-event-type.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,uBAqBX;AArBD,WAAY,uBAAuB;IACjC,oCAAoC;IACpC,qEAA0C,CAAA;IAC1C,gDAAgD;IAChD,oFAAyD,CAAA;IACzD,8CAA8C;IAC9C,yEAA8C,CAAA;IAC9C,kCAAkC;IAClC,0EAA+C,CAAA;IAC/C,wCAAwC;IACxC,+DAAoC,CAAA;IACpC,yCAAyC;IACzC,iEAAsC,CAAA;IACtC,mDAAmD;IACnD,mEAAwC,CAAA;IACxC,mCAAmC;IACnC,6DAAkC,CAAA;IAClC,+CAA+C;IAC/C,6DAAkC,CAAA;IAClC,8BAA8B;IAC9B,kEAAuC,CAAA;AACzC,CAAC,EArBW,uBAAuB,uCAAvB,uBAAuB,QAqBlC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardian Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages Guardian registration, status tracking, and backup designation
|
|
5
|
+
* for threshold voting. Guardians are trusted key holders who possess
|
|
6
|
+
* shares of the threshold decryption key.
|
|
7
|
+
*
|
|
8
|
+
* @module voting/threshold
|
|
9
|
+
*/
|
|
10
|
+
import type { PlatformID } from '../../../interfaces/platform-id';
|
|
11
|
+
import { GuardianStatus } from './enumerations/guardian-status';
|
|
12
|
+
import type { Guardian } from './interfaces/guardian';
|
|
13
|
+
import type { GuardianStatusChangeEvent } from './interfaces/guardian-status-change-event';
|
|
14
|
+
import type { IGuardianRegistry } from './interfaces/guardian-registry';
|
|
15
|
+
/**
|
|
16
|
+
* Error thrown when attempting to register a Guardian with a duplicate ID.
|
|
17
|
+
*/
|
|
18
|
+
export declare class GuardianAlreadyRegisteredError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when a Guardian is not found.
|
|
23
|
+
*/
|
|
24
|
+
export declare class GuardianNotFoundError extends Error {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when a share index is invalid or already taken.
|
|
29
|
+
*/
|
|
30
|
+
export declare class InvalidShareIndexError extends Error {
|
|
31
|
+
constructor(message: string);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Error thrown when the registry is full (n Guardians already registered).
|
|
35
|
+
*/
|
|
36
|
+
export declare class RegistryFullError extends Error {
|
|
37
|
+
constructor(message: string);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Registry for managing Guardians in a threshold voting system.
|
|
41
|
+
*
|
|
42
|
+
* Enforces that:
|
|
43
|
+
* - Total registered Guardians equals n (totalShares)
|
|
44
|
+
* - Each Guardian has a unique ID and share index in [1, n]
|
|
45
|
+
* - Status changes emit events for monitoring
|
|
46
|
+
* - Backup Guardians can be designated for unavailable Guardians
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const registry = new GuardianRegistry(5); // 5 total shares
|
|
51
|
+
* registry.register({
|
|
52
|
+
* id: new Uint8Array([1]),
|
|
53
|
+
* name: 'Guardian 1',
|
|
54
|
+
* shareIndex: 1,
|
|
55
|
+
* verificationKey: vk1,
|
|
56
|
+
* status: GuardianStatus.Registered,
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare class GuardianRegistry<TID extends PlatformID = Uint8Array> implements IGuardianRegistry<TID> {
|
|
61
|
+
private readonly _guardians;
|
|
62
|
+
private readonly _indexMap;
|
|
63
|
+
private readonly _statusListeners;
|
|
64
|
+
private readonly _totalShares;
|
|
65
|
+
/**
|
|
66
|
+
* Create a new GuardianRegistry.
|
|
67
|
+
* @param totalShares The total number of key shares (n). The registry
|
|
68
|
+
* enforces that exactly n Guardians can be registered.
|
|
69
|
+
*/
|
|
70
|
+
constructor(totalShares: number);
|
|
71
|
+
/** Total number of shares this registry manages */
|
|
72
|
+
get totalShares(): number;
|
|
73
|
+
/** Number of currently registered Guardians */
|
|
74
|
+
get count(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Register a new Guardian.
|
|
77
|
+
*
|
|
78
|
+
* Validates:
|
|
79
|
+
* - Registry is not full (count < n)
|
|
80
|
+
* - Guardian ID is unique
|
|
81
|
+
* - Share index is in range [1, n] and not already taken
|
|
82
|
+
*/
|
|
83
|
+
register(guardian: Guardian<TID>): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get a Guardian by ID.
|
|
86
|
+
*/
|
|
87
|
+
getGuardian(id: TID): Guardian<TID> | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Get a Guardian by share index.
|
|
90
|
+
*/
|
|
91
|
+
getGuardianByIndex(index: number): Guardian<TID> | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Get all registered Guardians.
|
|
94
|
+
*/
|
|
95
|
+
getAllGuardians(): readonly Guardian<TID>[];
|
|
96
|
+
/**
|
|
97
|
+
* Get all Guardians with Online status.
|
|
98
|
+
*/
|
|
99
|
+
getOnlineGuardians(): readonly Guardian<TID>[];
|
|
100
|
+
/**
|
|
101
|
+
* Update a Guardian's status and emit a status change event.
|
|
102
|
+
*
|
|
103
|
+
* @throws GuardianNotFoundError if the Guardian is not registered
|
|
104
|
+
*/
|
|
105
|
+
updateStatus(id: TID, status: GuardianStatus): void;
|
|
106
|
+
/**
|
|
107
|
+
* Designate a backup Guardian for a primary Guardian.
|
|
108
|
+
*
|
|
109
|
+
* The backup Guardian must already be registered. This creates a
|
|
110
|
+
* one-way link from the primary to the backup.
|
|
111
|
+
*
|
|
112
|
+
* @throws GuardianNotFoundError if either Guardian is not registered
|
|
113
|
+
*/
|
|
114
|
+
designateBackup(guardianId: TID, backupId: TID): void;
|
|
115
|
+
/**
|
|
116
|
+
* Subscribe to Guardian status change events.
|
|
117
|
+
*/
|
|
118
|
+
onStatusChange(callback: (event: GuardianStatusChangeEvent<TID>) => void): void;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=guardian-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardian-registry.d.ts","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/guardian-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAeD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAgB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC/D,YAAW,iBAAiB,CAAC,GAAG,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE1B;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;gBACS,WAAW,EAAE,MAAM;IAS/B,mDAAmD;IACnD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,+CAA+C;IAC/C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;IAqCvC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS;IAI/C;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS;IAM5D;;OAEG;IACH,eAAe,IAAI,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE;IAI3C;;OAEG;IACH,kBAAkB,IAAI,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE;IAM9C;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IA0BnD;;;;;;;OAOG;IACH,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IA2BrD;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,KAAK,IAAI,GACxD,IAAI;CAGR"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Guardian Registry
|
|
4
|
+
*
|
|
5
|
+
* Manages Guardian registration, status tracking, and backup designation
|
|
6
|
+
* for threshold voting. Guardians are trusted key holders who possess
|
|
7
|
+
* shares of the threshold decryption key.
|
|
8
|
+
*
|
|
9
|
+
* @module voting/threshold
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GuardianRegistry = exports.RegistryFullError = exports.InvalidShareIndexError = exports.GuardianNotFoundError = exports.GuardianAlreadyRegisteredError = void 0;
|
|
13
|
+
const guardian_status_1 = require("./enumerations/guardian-status");
|
|
14
|
+
/**
|
|
15
|
+
* Error thrown when attempting to register a Guardian with a duplicate ID.
|
|
16
|
+
*/
|
|
17
|
+
class GuardianAlreadyRegisteredError extends Error {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'GuardianAlreadyRegisteredError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.GuardianAlreadyRegisteredError = GuardianAlreadyRegisteredError;
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when a Guardian is not found.
|
|
26
|
+
*/
|
|
27
|
+
class GuardianNotFoundError extends Error {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.name = 'GuardianNotFoundError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.GuardianNotFoundError = GuardianNotFoundError;
|
|
34
|
+
/**
|
|
35
|
+
* Error thrown when a share index is invalid or already taken.
|
|
36
|
+
*/
|
|
37
|
+
class InvalidShareIndexError extends Error {
|
|
38
|
+
constructor(message) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = 'InvalidShareIndexError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.InvalidShareIndexError = InvalidShareIndexError;
|
|
44
|
+
/**
|
|
45
|
+
* Error thrown when the registry is full (n Guardians already registered).
|
|
46
|
+
*/
|
|
47
|
+
class RegistryFullError extends Error {
|
|
48
|
+
constructor(message) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = 'RegistryFullError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.RegistryFullError = RegistryFullError;
|
|
54
|
+
/**
|
|
55
|
+
* Converts a PlatformID to a string key for Map lookups.
|
|
56
|
+
* Handles Uint8Array (hex encoding), string, and objects with toString().
|
|
57
|
+
*/
|
|
58
|
+
function toKey(id) {
|
|
59
|
+
if (id instanceof Uint8Array) {
|
|
60
|
+
return Array.from(id)
|
|
61
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
62
|
+
.join('');
|
|
63
|
+
}
|
|
64
|
+
return String(id);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Registry for managing Guardians in a threshold voting system.
|
|
68
|
+
*
|
|
69
|
+
* Enforces that:
|
|
70
|
+
* - Total registered Guardians equals n (totalShares)
|
|
71
|
+
* - Each Guardian has a unique ID and share index in [1, n]
|
|
72
|
+
* - Status changes emit events for monitoring
|
|
73
|
+
* - Backup Guardians can be designated for unavailable Guardians
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const registry = new GuardianRegistry(5); // 5 total shares
|
|
78
|
+
* registry.register({
|
|
79
|
+
* id: new Uint8Array([1]),
|
|
80
|
+
* name: 'Guardian 1',
|
|
81
|
+
* shareIndex: 1,
|
|
82
|
+
* verificationKey: vk1,
|
|
83
|
+
* status: GuardianStatus.Registered,
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
class GuardianRegistry {
|
|
88
|
+
_guardians = new Map();
|
|
89
|
+
_indexMap = new Map();
|
|
90
|
+
_statusListeners = [];
|
|
91
|
+
_totalShares;
|
|
92
|
+
/**
|
|
93
|
+
* Create a new GuardianRegistry.
|
|
94
|
+
* @param totalShares The total number of key shares (n). The registry
|
|
95
|
+
* enforces that exactly n Guardians can be registered.
|
|
96
|
+
*/
|
|
97
|
+
constructor(totalShares) {
|
|
98
|
+
if (totalShares < 2 || !Number.isInteger(totalShares)) {
|
|
99
|
+
throw new Error(`totalShares must be an integer >= 2, got ${totalShares}`);
|
|
100
|
+
}
|
|
101
|
+
this._totalShares = totalShares;
|
|
102
|
+
}
|
|
103
|
+
/** Total number of shares this registry manages */
|
|
104
|
+
get totalShares() {
|
|
105
|
+
return this._totalShares;
|
|
106
|
+
}
|
|
107
|
+
/** Number of currently registered Guardians */
|
|
108
|
+
get count() {
|
|
109
|
+
return this._guardians.size;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Register a new Guardian.
|
|
113
|
+
*
|
|
114
|
+
* Validates:
|
|
115
|
+
* - Registry is not full (count < n)
|
|
116
|
+
* - Guardian ID is unique
|
|
117
|
+
* - Share index is in range [1, n] and not already taken
|
|
118
|
+
*/
|
|
119
|
+
register(guardian) {
|
|
120
|
+
const key = toKey(guardian.id);
|
|
121
|
+
if (this._guardians.size >= this._totalShares) {
|
|
122
|
+
throw new RegistryFullError(`Registry is full: ${this._guardians.size}/${this._totalShares} Guardians registered`);
|
|
123
|
+
}
|
|
124
|
+
if (this._guardians.has(key)) {
|
|
125
|
+
throw new GuardianAlreadyRegisteredError(`Guardian with ID '${key}' is already registered`);
|
|
126
|
+
}
|
|
127
|
+
if (guardian.shareIndex < 1 ||
|
|
128
|
+
guardian.shareIndex > this._totalShares ||
|
|
129
|
+
!Number.isInteger(guardian.shareIndex)) {
|
|
130
|
+
throw new InvalidShareIndexError(`Share index must be an integer in [1, ${this._totalShares}], got ${guardian.shareIndex}`);
|
|
131
|
+
}
|
|
132
|
+
if (this._indexMap.has(guardian.shareIndex)) {
|
|
133
|
+
throw new InvalidShareIndexError(`Share index ${guardian.shareIndex} is already assigned to another Guardian`);
|
|
134
|
+
}
|
|
135
|
+
// Store a shallow copy to avoid external mutation of internal state
|
|
136
|
+
const stored = { ...guardian };
|
|
137
|
+
this._guardians.set(key, stored);
|
|
138
|
+
this._indexMap.set(guardian.shareIndex, key);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get a Guardian by ID.
|
|
142
|
+
*/
|
|
143
|
+
getGuardian(id) {
|
|
144
|
+
return this._guardians.get(toKey(id));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get a Guardian by share index.
|
|
148
|
+
*/
|
|
149
|
+
getGuardianByIndex(index) {
|
|
150
|
+
const key = this._indexMap.get(index);
|
|
151
|
+
if (key === undefined)
|
|
152
|
+
return undefined;
|
|
153
|
+
return this._guardians.get(key);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get all registered Guardians.
|
|
157
|
+
*/
|
|
158
|
+
getAllGuardians() {
|
|
159
|
+
return Array.from(this._guardians.values());
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get all Guardians with Online status.
|
|
163
|
+
*/
|
|
164
|
+
getOnlineGuardians() {
|
|
165
|
+
return Array.from(this._guardians.values()).filter((g) => g.status === guardian_status_1.GuardianStatus.Online);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Update a Guardian's status and emit a status change event.
|
|
169
|
+
*
|
|
170
|
+
* @throws GuardianNotFoundError if the Guardian is not registered
|
|
171
|
+
*/
|
|
172
|
+
updateStatus(id, status) {
|
|
173
|
+
const key = toKey(id);
|
|
174
|
+
const guardian = this._guardians.get(key);
|
|
175
|
+
if (!guardian) {
|
|
176
|
+
throw new GuardianNotFoundError(`Guardian with ID '${key}' is not registered`);
|
|
177
|
+
}
|
|
178
|
+
const previousStatus = guardian.status;
|
|
179
|
+
if (previousStatus === status)
|
|
180
|
+
return;
|
|
181
|
+
guardian.status = status;
|
|
182
|
+
const event = {
|
|
183
|
+
guardianId: guardian.id,
|
|
184
|
+
previousStatus,
|
|
185
|
+
newStatus: status,
|
|
186
|
+
timestamp: Date.now(),
|
|
187
|
+
};
|
|
188
|
+
for (const listener of this._statusListeners) {
|
|
189
|
+
listener(event);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Designate a backup Guardian for a primary Guardian.
|
|
194
|
+
*
|
|
195
|
+
* The backup Guardian must already be registered. This creates a
|
|
196
|
+
* one-way link from the primary to the backup.
|
|
197
|
+
*
|
|
198
|
+
* @throws GuardianNotFoundError if either Guardian is not registered
|
|
199
|
+
*/
|
|
200
|
+
designateBackup(guardianId, backupId) {
|
|
201
|
+
const primaryKey = toKey(guardianId);
|
|
202
|
+
const backupKey = toKey(backupId);
|
|
203
|
+
const primary = this._guardians.get(primaryKey);
|
|
204
|
+
if (!primary) {
|
|
205
|
+
throw new GuardianNotFoundError(`Primary Guardian with ID '${primaryKey}' is not registered`);
|
|
206
|
+
}
|
|
207
|
+
const backup = this._guardians.get(backupKey);
|
|
208
|
+
if (!backup) {
|
|
209
|
+
throw new GuardianNotFoundError(`Backup Guardian with ID '${backupKey}' is not registered`);
|
|
210
|
+
}
|
|
211
|
+
// Replace the guardian entry with updated backupGuardianId
|
|
212
|
+
// Using object spread to create a new object with the readonly property set
|
|
213
|
+
const updated = {
|
|
214
|
+
...primary,
|
|
215
|
+
backupGuardianId: backupId,
|
|
216
|
+
};
|
|
217
|
+
this._guardians.set(primaryKey, updated);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Subscribe to Guardian status change events.
|
|
221
|
+
*/
|
|
222
|
+
onStatusChange(callback) {
|
|
223
|
+
this._statusListeners.push(callback);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.GuardianRegistry = GuardianRegistry;
|
|
227
|
+
//# sourceMappingURL=guardian-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardian-registry.js","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/threshold/guardian-registry.ts"],"names":[],"mappings":"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"}
|