@bitgo-beta/sdk-lib-mpc 8.2.0-beta.2033 → 8.2.0-beta.2034
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/tss/dkls-vrf/dkg.js +1 -1
- package/dist/src/tss/eddsa-mps-vrf/dkg.d.ts +65 -0
- package/dist/src/tss/eddsa-mps-vrf/dkg.d.ts.map +1 -0
- package/dist/src/tss/eddsa-mps-vrf/dkg.js +246 -0
- package/dist/src/tss/eddsa-mps-vrf/index.d.ts +4 -0
- package/dist/src/tss/eddsa-mps-vrf/index.d.ts.map +1 -0
- package/dist/src/tss/eddsa-mps-vrf/index.js +40 -0
- package/dist/src/tss/eddsa-mps-vrf/types.d.ts +31 -0
- package/dist/src/tss/eddsa-mps-vrf/types.d.ts.map +1 -0
- package/dist/src/tss/eddsa-mps-vrf/types.js +97 -0
- package/dist/src/tss/eddsa-mps-vrf/util.d.ts +9 -0
- package/dist/src/tss/eddsa-mps-vrf/util.d.ts.map +1 -0
- package/dist/src/tss/eddsa-mps-vrf/util.js +36 -0
- package/dist/src/tss/index.d.ts +1 -0
- package/dist/src/tss/index.d.ts.map +1 -1
- package/dist/src/tss/index.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.VrfDkgState = void 0;
|
|
37
|
+
exports.decodePartyId = decodePartyId;
|
|
38
|
+
exports.decodeVrfRound1MsgMap = decodeVrfRound1MsgMap;
|
|
39
|
+
exports.decodeVrfDkgSessionData = decodeVrfDkgSessionData;
|
|
40
|
+
const buffer_1 = require("buffer");
|
|
41
|
+
const Either_1 = require("fp-ts/Either");
|
|
42
|
+
const t = __importStar(require("io-ts"));
|
|
43
|
+
/**
|
|
44
|
+
* States of the VRF DKG state machine. Kept separate from `eddsa-mps`'s signing
|
|
45
|
+
* `DkgState` because the round counts differ. MPS wasm state bytes have no round
|
|
46
|
+
* tag, so the round is tracked here and carried in `VrfDkgSessionData`.
|
|
47
|
+
*/
|
|
48
|
+
var VrfDkgState;
|
|
49
|
+
(function (VrfDkgState) {
|
|
50
|
+
VrfDkgState[VrfDkgState["Uninitialized"] = 0] = "Uninitialized";
|
|
51
|
+
/** Commitment created and broadcast; waiting for the other parties' VrfKeygenMsg1. */
|
|
52
|
+
VrfDkgState[VrfDkgState["Round1"] = 1] = "Round1";
|
|
53
|
+
/** Openings created; waiting for the VrfKeygenMsg2 entries addressed to this party. */
|
|
54
|
+
VrfDkgState[VrfDkgState["Round2"] = 2] = "Round2";
|
|
55
|
+
VrfDkgState[VrfDkgState["Complete"] = 3] = "Complete";
|
|
56
|
+
VrfDkgState[VrfDkgState["InvalidState"] = 4] = "InvalidState";
|
|
57
|
+
})(VrfDkgState || (exports.VrfDkgState = VrfDkgState = {}));
|
|
58
|
+
const Uint8ArrayCodec = new t.Type('Uint8Array', (u) => u instanceof Uint8Array, (u, c) => (u instanceof Uint8Array ? t.success(u) : t.failure(u, c)), t.identity);
|
|
59
|
+
const BufferCodec = new t.Type('Buffer', (u) => buffer_1.Buffer.isBuffer(u), (u, c) => (buffer_1.Buffer.isBuffer(u) ? t.success(u) : t.failure(u, c)), t.identity);
|
|
60
|
+
const VrfDkgRound1MsgMap = t.record(t.string, Uint8ArrayCodec);
|
|
61
|
+
const RestorableVrfDkgState = t.union([
|
|
62
|
+
t.literal(VrfDkgState.Round1),
|
|
63
|
+
t.literal(VrfDkgState.Round2),
|
|
64
|
+
t.literal(VrfDkgState.Complete),
|
|
65
|
+
]);
|
|
66
|
+
const VrfDkgSessionDataCodec = t.intersection([
|
|
67
|
+
t.type({ vrfState: RestorableVrfDkgState }),
|
|
68
|
+
t.partial({
|
|
69
|
+
vrfStateBytes: Uint8ArrayCodec,
|
|
70
|
+
keyShareBuff: BufferCodec,
|
|
71
|
+
}),
|
|
72
|
+
]);
|
|
73
|
+
/** Decode a wasm round-1 map key as a party index. */
|
|
74
|
+
function decodePartyId(recipient) {
|
|
75
|
+
const to = Number.parseInt(recipient, 10);
|
|
76
|
+
if (!Number.isInteger(to) || to < 0 || String(to) !== recipient) {
|
|
77
|
+
throw new Error(`VRF DKG round-1 recipient is not a party id: ${recipient}`);
|
|
78
|
+
}
|
|
79
|
+
return to;
|
|
80
|
+
}
|
|
81
|
+
/** Decode the wasm round-1 recipient → bytes map. */
|
|
82
|
+
function decodeVrfRound1MsgMap(msg) {
|
|
83
|
+
const decoded = VrfDkgRound1MsgMap.decode(msg);
|
|
84
|
+
if ((0, Either_1.isLeft)(decoded)) {
|
|
85
|
+
throw new Error('VRF DKG round-1 message is not a party-id map of byte arrays');
|
|
86
|
+
}
|
|
87
|
+
return decoded.right;
|
|
88
|
+
}
|
|
89
|
+
/** Decode persisted VRF DKG session data. */
|
|
90
|
+
function decodeVrfDkgSessionData(sessionData) {
|
|
91
|
+
const decoded = VrfDkgSessionDataCodec.decode(sessionData);
|
|
92
|
+
if ((0, Either_1.isLeft)(decoded)) {
|
|
93
|
+
throw new Error('Invalid VRF DKG session data');
|
|
94
|
+
}
|
|
95
|
+
return decoded.right;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VkZHNhLW1wcy12cmYvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNERBLHNDQU1DO0FBR0Qsc0RBTUM7QUFHRCwwREFNQztBQXBGRCxtQ0FBZ0M7QUFDaEMseUNBQXNDO0FBQ3RDLHlDQUEyQjtBQUUzQjs7OztHQUlHO0FBQ0gsSUFBWSxXQVFYO0FBUkQsV0FBWSxXQUFXO0lBQ3JCLCtEQUFpQixDQUFBO0lBQ2pCLHNGQUFzRjtJQUN0RixpREFBTSxDQUFBO0lBQ04sdUZBQXVGO0lBQ3ZGLGlEQUFNLENBQUE7SUFDTixxREFBUSxDQUFBO0lBQ1IsNkRBQVksQ0FBQTtBQUNkLENBQUMsRUFSVyxXQUFXLDJCQUFYLFdBQVcsUUFRdEI7QUFZRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2hDLFlBQVksRUFDWixDQUFDLENBQUMsRUFBbUIsRUFBRSxDQUFDLENBQUMsWUFBWSxVQUFVLEVBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNwRSxDQUFDLENBQUMsUUFBUSxDQUNYLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzVCLFFBQVEsRUFDUixDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsZUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQy9ELENBQUMsQ0FBQyxRQUFRLENBQ1gsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRS9ELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztDQUNoQyxDQUFDLENBQUM7QUFFSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO0lBQzNDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixhQUFhLEVBQUUsZUFBZTtRQUM5QixZQUFZLEVBQUUsV0FBVztLQUMxQixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUgsc0RBQXNEO0FBQ3RELFNBQWdCLGFBQWEsQ0FBQyxTQUFpQjtJQUM3QyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsU0FBZ0IscUJBQXFCLENBQUMsR0FBWTtJQUNoRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsSUFBSSxJQUFBLGVBQU0sRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCw2Q0FBNkM7QUFDN0MsU0FBZ0IsdUJBQXVCLENBQUMsV0FBb0I7SUFDMUQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELElBQUksSUFBQSxlQUFNLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuLyoqXG4gKiBTdGF0ZXMgb2YgdGhlIFZSRiBES0cgc3RhdGUgbWFjaGluZS4gS2VwdCBzZXBhcmF0ZSBmcm9tIGBlZGRzYS1tcHNgJ3Mgc2lnbmluZ1xuICogYERrZ1N0YXRlYCBiZWNhdXNlIHRoZSByb3VuZCBjb3VudHMgZGlmZmVyLiBNUFMgd2FzbSBzdGF0ZSBieXRlcyBoYXZlIG5vIHJvdW5kXG4gKiB0YWcsIHNvIHRoZSByb3VuZCBpcyB0cmFja2VkIGhlcmUgYW5kIGNhcnJpZWQgaW4gYFZyZkRrZ1Nlc3Npb25EYXRhYC5cbiAqL1xuZXhwb3J0IGVudW0gVnJmRGtnU3RhdGUge1xuICBVbmluaXRpYWxpemVkID0gMCxcbiAgLyoqIENvbW1pdG1lbnQgY3JlYXRlZCBhbmQgYnJvYWRjYXN0OyB3YWl0aW5nIGZvciB0aGUgb3RoZXIgcGFydGllcycgVnJmS2V5Z2VuTXNnMS4gKi9cbiAgUm91bmQxLFxuICAvKiogT3BlbmluZ3MgY3JlYXRlZDsgd2FpdGluZyBmb3IgdGhlIFZyZktleWdlbk1zZzIgZW50cmllcyBhZGRyZXNzZWQgdG8gdGhpcyBwYXJ0eS4gKi9cbiAgUm91bmQyLFxuICBDb21wbGV0ZSxcbiAgSW52YWxpZFN0YXRlLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZyZkRrZ1Nlc3Npb25EYXRhIHtcbiAgLyoqXG4gICAqIFNlcmlhbGl6ZWQgd2FzbSByb3VuZCBzdGF0ZS4gU2VjcmV0IGtleSBtYXRlcmlhbCDigJQgaXQgY2FycmllcyB0aGlzIHBhcnR5J3NcbiAgICogc2VjcmV0IFZSRiBzaGFyZS4gTmV2ZXIgbG9nIGl0IG9yIHBlcnNpc3QgaXQgaW4gdGhlIGNsZWFyLlxuICAgKi9cbiAgdnJmU3RhdGVCeXRlcz86IFVpbnQ4QXJyYXk7XG4gIHZyZlN0YXRlOiBWcmZEa2dTdGF0ZTtcbiAga2V5U2hhcmVCdWZmPzogQnVmZmVyO1xufVxuXG5jb25zdCBVaW50OEFycmF5Q29kZWMgPSBuZXcgdC5UeXBlPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXksIHVua25vd24+KFxuICAnVWludDhBcnJheScsXG4gICh1KTogdSBpcyBVaW50OEFycmF5ID0+IHUgaW5zdGFuY2VvZiBVaW50OEFycmF5LFxuICAodSwgYykgPT4gKHUgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gdC5zdWNjZXNzKHUpIDogdC5mYWlsdXJlKHUsIGMpKSxcbiAgdC5pZGVudGl0eVxuKTtcblxuY29uc3QgQnVmZmVyQ29kZWMgPSBuZXcgdC5UeXBlPEJ1ZmZlciwgQnVmZmVyLCB1bmtub3duPihcbiAgJ0J1ZmZlcicsXG4gICh1KTogdSBpcyBCdWZmZXIgPT4gQnVmZmVyLmlzQnVmZmVyKHUpLFxuICAodSwgYykgPT4gKEJ1ZmZlci5pc0J1ZmZlcih1KSA/IHQuc3VjY2Vzcyh1KSA6IHQuZmFpbHVyZSh1LCBjKSksXG4gIHQuaWRlbnRpdHlcbik7XG5cbmNvbnN0IFZyZkRrZ1JvdW5kMU1zZ01hcCA9IHQucmVjb3JkKHQuc3RyaW5nLCBVaW50OEFycmF5Q29kZWMpO1xuXG5jb25zdCBSZXN0b3JhYmxlVnJmRGtnU3RhdGUgPSB0LnVuaW9uKFtcbiAgdC5saXRlcmFsKFZyZkRrZ1N0YXRlLlJvdW5kMSksXG4gIHQubGl0ZXJhbChWcmZEa2dTdGF0ZS5Sb3VuZDIpLFxuICB0LmxpdGVyYWwoVnJmRGtnU3RhdGUuQ29tcGxldGUpLFxuXSk7XG5cbmNvbnN0IFZyZkRrZ1Nlc3Npb25EYXRhQ29kZWMgPSB0LmludGVyc2VjdGlvbihbXG4gIHQudHlwZSh7IHZyZlN0YXRlOiBSZXN0b3JhYmxlVnJmRGtnU3RhdGUgfSksXG4gIHQucGFydGlhbCh7XG4gICAgdnJmU3RhdGVCeXRlczogVWludDhBcnJheUNvZGVjLFxuICAgIGtleVNoYXJlQnVmZjogQnVmZmVyQ29kZWMsXG4gIH0pLFxuXSk7XG5cbi8qKiBEZWNvZGUgYSB3YXNtIHJvdW5kLTEgbWFwIGtleSBhcyBhIHBhcnR5IGluZGV4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBhcnR5SWQocmVjaXBpZW50OiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCB0byA9IE51bWJlci5wYXJzZUludChyZWNpcGllbnQsIDEwKTtcbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRvKSB8fCB0byA8IDAgfHwgU3RyaW5nKHRvKSAhPT0gcmVjaXBpZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBWUkYgREtHIHJvdW5kLTEgcmVjaXBpZW50IGlzIG5vdCBhIHBhcnR5IGlkOiAke3JlY2lwaWVudH1gKTtcbiAgfVxuICByZXR1cm4gdG87XG59XG5cbi8qKiBEZWNvZGUgdGhlIHdhc20gcm91bmQtMSByZWNpcGllbnQg4oaSIGJ5dGVzIG1hcC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVWcmZSb3VuZDFNc2dNYXAobXNnOiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgVWludDhBcnJheT4ge1xuICBjb25zdCBkZWNvZGVkID0gVnJmRGtnUm91bmQxTXNnTWFwLmRlY29kZShtc2cpO1xuICBpZiAoaXNMZWZ0KGRlY29kZWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdWUkYgREtHIHJvdW5kLTEgbWVzc2FnZSBpcyBub3QgYSBwYXJ0eS1pZCBtYXAgb2YgYnl0ZSBhcnJheXMnKTtcbiAgfVxuICByZXR1cm4gZGVjb2RlZC5yaWdodDtcbn1cblxuLyoqIERlY29kZSBwZXJzaXN0ZWQgVlJGIERLRyBzZXNzaW9uIGRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVnJmRGtnU2Vzc2lvbkRhdGEoc2Vzc2lvbkRhdGE6IHVua25vd24pOiBWcmZEa2dTZXNzaW9uRGF0YSB7XG4gIGNvbnN0IGRlY29kZWQgPSBWcmZEa2dTZXNzaW9uRGF0YUNvZGVjLmRlY29kZShzZXNzaW9uRGF0YSk7XG4gIGlmIChpc0xlZnQoZGVjb2RlZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVlJGIERLRyBzZXNzaW9uIGRhdGEnKTtcbiAgfVxuICByZXR1cm4gZGVjb2RlZC5yaWdodDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
import { VrfDkg } from './dkg';
|
|
3
|
+
/**
|
|
4
|
+
* Runs a local 2-of-3 VRF DKG across user (0), backup (1) and bitgo (2) parties and
|
|
5
|
+
* returns the three completed VrfDkg sessions, mirroring `generateVrfDKGKeyShares` from
|
|
6
|
+
* `dkls-vrf/util.ts`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateVrfDKGKeyShares(seedUser?: Buffer, seedBackup?: Buffer, seedBitgo?: Buffer): Promise<[VrfDkg, VrfDkg, VrfDkg]>;
|
|
9
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/tss/eddsa-mps-vrf/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAiCnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateVrfDKGKeyShares = generateVrfDKGKeyShares;
|
|
4
|
+
const dkg_1 = require("./dkg");
|
|
5
|
+
/**
|
|
6
|
+
* Runs a local 2-of-3 VRF DKG across user (0), backup (1) and bitgo (2) parties and
|
|
7
|
+
* returns the three completed VrfDkg sessions, mirroring `generateVrfDKGKeyShares` from
|
|
8
|
+
* `dkls-vrf/util.ts`.
|
|
9
|
+
*/
|
|
10
|
+
async function generateVrfDKGKeyShares(seedUser, seedBackup, seedBitgo) {
|
|
11
|
+
const user = new dkg_1.VrfDkg(3, 2, 0, seedUser);
|
|
12
|
+
const backup = new dkg_1.VrfDkg(3, 2, 1, seedBackup);
|
|
13
|
+
const bitgo = new dkg_1.VrfDkg(3, 2, 2, seedBitgo);
|
|
14
|
+
// #region round 1
|
|
15
|
+
const userRound1Messages = await user.initDkg();
|
|
16
|
+
const backupRound1Messages = await backup.initDkg();
|
|
17
|
+
const bitgoRound1Messages = await bitgo.initDkg();
|
|
18
|
+
const round1Messages = [userRound1Messages, backupRound1Messages, bitgoRound1Messages];
|
|
19
|
+
// #endregion
|
|
20
|
+
// #region round 2
|
|
21
|
+
const round2Outputs = await Promise.all([user, backup, bitgo].map((party, i) => party.handleIncomingMessages({
|
|
22
|
+
p2pMessages: [],
|
|
23
|
+
broadcastMessages: round1Messages.flatMap((m) => m.broadcastMessages).filter((m) => m.from !== i),
|
|
24
|
+
})));
|
|
25
|
+
// #endregion
|
|
26
|
+
// #region finalize
|
|
27
|
+
for (const [i, party] of [user, backup, bitgo].entries()) {
|
|
28
|
+
await party.handleIncomingMessages({
|
|
29
|
+
p2pMessages: round2Outputs.flatMap((m) => m.p2pMessages).filter((m) => m.to === i),
|
|
30
|
+
broadcastMessages: [],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// #endregion
|
|
34
|
+
return [user, backup, bitgo];
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWRkc2EtbXBzLXZyZi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsMERBcUNDO0FBNUNELCtCQUErQjtBQUUvQjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxRQUFpQixFQUNqQixVQUFtQixFQUNuQixTQUFrQjtJQUVsQixNQUFNLElBQUksR0FBRyxJQUFJLFlBQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU3QyxrQkFBa0I7SUFDbEIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZGLGFBQWE7SUFFYixrQkFBa0I7SUFDbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNyQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3JDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztRQUMzQixXQUFXLEVBQUUsRUFBRTtRQUNmLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7S0FDbEcsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNGLGFBQWE7SUFFYixtQkFBbUI7SUFDbkIsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3pELE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDO1lBQ2pDLFdBQVcsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRixpQkFBaUIsRUFBRSxFQUFFO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhO0lBRWIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBWcmZEa2cgfSBmcm9tICcuL2RrZyc7XG5cbi8qKlxuICogUnVucyBhIGxvY2FsIDItb2YtMyBWUkYgREtHIGFjcm9zcyB1c2VyICgwKSwgYmFja3VwICgxKSBhbmQgYml0Z28gKDIpIHBhcnRpZXMgYW5kXG4gKiByZXR1cm5zIHRoZSB0aHJlZSBjb21wbGV0ZWQgVnJmRGtnIHNlc3Npb25zLCBtaXJyb3JpbmcgYGdlbmVyYXRlVnJmREtHS2V5U2hhcmVzYCBmcm9tXG4gKiBgZGtscy12cmYvdXRpbC50c2AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVZyZkRLR0tleVNoYXJlcyhcbiAgc2VlZFVzZXI/OiBCdWZmZXIsXG4gIHNlZWRCYWNrdXA/OiBCdWZmZXIsXG4gIHNlZWRCaXRnbz86IEJ1ZmZlclxuKTogUHJvbWlzZTxbVnJmRGtnLCBWcmZEa2csIFZyZkRrZ10+IHtcbiAgY29uc3QgdXNlciA9IG5ldyBWcmZEa2coMywgMiwgMCwgc2VlZFVzZXIpO1xuICBjb25zdCBiYWNrdXAgPSBuZXcgVnJmRGtnKDMsIDIsIDEsIHNlZWRCYWNrdXApO1xuICBjb25zdCBiaXRnbyA9IG5ldyBWcmZEa2coMywgMiwgMiwgc2VlZEJpdGdvKTtcblxuICAvLyAjcmVnaW9uIHJvdW5kIDFcbiAgY29uc3QgdXNlclJvdW5kMU1lc3NhZ2VzID0gYXdhaXQgdXNlci5pbml0RGtnKCk7XG4gIGNvbnN0IGJhY2t1cFJvdW5kMU1lc3NhZ2VzID0gYXdhaXQgYmFja3VwLmluaXREa2coKTtcbiAgY29uc3QgYml0Z29Sb3VuZDFNZXNzYWdlcyA9IGF3YWl0IGJpdGdvLmluaXREa2coKTtcbiAgY29uc3Qgcm91bmQxTWVzc2FnZXMgPSBbdXNlclJvdW5kMU1lc3NhZ2VzLCBiYWNrdXBSb3VuZDFNZXNzYWdlcywgYml0Z29Sb3VuZDFNZXNzYWdlc107XG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIHJvdW5kIDJcbiAgY29uc3Qgcm91bmQyT3V0cHV0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIFt1c2VyLCBiYWNrdXAsIGJpdGdvXS5tYXAoKHBhcnR5LCBpKSA9PlxuICAgICAgcGFydHkuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyh7XG4gICAgICAgIHAycE1lc3NhZ2VzOiBbXSxcbiAgICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IHJvdW5kMU1lc3NhZ2VzLmZsYXRNYXAoKG0pID0+IG0uYnJvYWRjYXN0TWVzc2FnZXMpLmZpbHRlcigobSkgPT4gbS5mcm9tICE9PSBpKSxcbiAgICAgIH0pXG4gICAgKVxuICApO1xuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBmaW5hbGl6ZVxuICBmb3IgKGNvbnN0IFtpLCBwYXJ0eV0gb2YgW3VzZXIsIGJhY2t1cCwgYml0Z29dLmVudHJpZXMoKSkge1xuICAgIGF3YWl0IHBhcnR5LmhhbmRsZUluY29taW5nTWVzc2FnZXMoe1xuICAgICAgcDJwTWVzc2FnZXM6IHJvdW5kMk91dHB1dHMuZmxhdE1hcCgobSkgPT4gbS5wMnBNZXNzYWdlcykuZmlsdGVyKChtKSA9PiBtLnRvID09PSBpKSxcbiAgICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSxcbiAgICB9KTtcbiAgfVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgcmV0dXJuIFt1c2VyLCBiYWNrdXAsIGJpdGdvXTtcbn1cbiJdfQ==
|
package/dist/src/tss/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tss/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tss/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/dist/src/tss/index.js
CHANGED
|
@@ -18,5 +18,6 @@ __exportStar(require("./ecdsa"), exports);
|
|
|
18
18
|
__exportStar(require("./ecdsa-dkls"), exports);
|
|
19
19
|
__exportStar(require("./dkls-vrf"), exports);
|
|
20
20
|
__exportStar(require("./eddsa-mps"), exports);
|
|
21
|
+
__exportStar(require("./eddsa-mps-vrf"), exports);
|
|
21
22
|
__exportStar(require("./redpallas-mps"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsK0NBQTZCO0FBQzdCLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsa0RBQWdDO0FBQ2hDLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWNkc2EnO1xuZXhwb3J0ICogZnJvbSAnLi9lY2RzYS1ka2xzJztcbmV4cG9ydCAqIGZyb20gJy4vZGtscy12cmYnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGRzYS1tcHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGRzYS1tcHMtdnJmJztcbmV4cG9ydCAqIGZyb20gJy4vcmVkcGFsbGFzLW1wcyc7XG4iXX0=
|