@did-btcr2/method 0.28.0 → 0.32.0
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/README.md +13 -5
- package/dist/.tsbuildinfo +1 -1
- package/dist/browser.js +34125 -44647
- package/dist/browser.mjs +26409 -36931
- package/dist/cjs/index.js +2869 -679
- package/dist/esm/core/aggregation/beacon-strategy.js +62 -0
- package/dist/esm/core/aggregation/beacon-strategy.js.map +1 -0
- package/dist/esm/core/aggregation/cohort.js +31 -8
- package/dist/esm/core/aggregation/cohort.js.map +1 -1
- package/dist/esm/core/aggregation/logger.js +15 -0
- package/dist/esm/core/aggregation/logger.js.map +1 -0
- package/dist/esm/core/aggregation/messages/base.js +12 -1
- package/dist/esm/core/aggregation/messages/base.js.map +1 -1
- package/dist/esm/core/aggregation/messages/bodies.js +90 -0
- package/dist/esm/core/aggregation/messages/bodies.js.map +1 -0
- package/dist/esm/core/aggregation/messages/factories.js.map +1 -1
- package/dist/esm/core/aggregation/messages/index.js +1 -0
- package/dist/esm/core/aggregation/messages/index.js.map +1 -1
- package/dist/esm/core/aggregation/participant.js +39 -46
- package/dist/esm/core/aggregation/participant.js.map +1 -1
- package/dist/esm/core/aggregation/runner/participant-runner.js +33 -7
- package/dist/esm/core/aggregation/runner/participant-runner.js.map +1 -1
- package/dist/esm/core/aggregation/runner/service-runner.js +198 -19
- package/dist/esm/core/aggregation/runner/service-runner.js.map +1 -1
- package/dist/esm/core/aggregation/service.js +143 -15
- package/dist/esm/core/aggregation/service.js.map +1 -1
- package/dist/esm/core/aggregation/signing-session.js +44 -5
- package/dist/esm/core/aggregation/signing-session.js.map +1 -1
- package/dist/esm/core/aggregation/transport/didcomm.js +9 -0
- package/dist/esm/core/aggregation/transport/didcomm.js.map +1 -1
- package/dist/esm/core/aggregation/transport/factory.js +15 -6
- package/dist/esm/core/aggregation/transport/factory.js.map +1 -1
- package/dist/esm/core/aggregation/transport/http/client.js +350 -0
- package/dist/esm/core/aggregation/transport/http/client.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/envelope.js +126 -0
- package/dist/esm/core/aggregation/transport/http/envelope.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/errors.js +11 -0
- package/dist/esm/core/aggregation/transport/http/errors.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/inbox-buffer.js +45 -0
- package/dist/esm/core/aggregation/transport/http/inbox-buffer.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/index.js +12 -0
- package/dist/esm/core/aggregation/transport/http/index.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/nonce-cache.js +38 -0
- package/dist/esm/core/aggregation/transport/http/nonce-cache.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/protocol.js +28 -0
- package/dist/esm/core/aggregation/transport/http/protocol.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/rate-limiter.js +45 -0
- package/dist/esm/core/aggregation/transport/http/rate-limiter.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/request-auth.js +100 -0
- package/dist/esm/core/aggregation/transport/http/request-auth.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/server.js +481 -0
- package/dist/esm/core/aggregation/transport/http/server.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/sse-stream.js +110 -0
- package/dist/esm/core/aggregation/transport/http/sse-stream.js.map +1 -0
- package/dist/esm/core/aggregation/transport/http/sse-writer.js +25 -0
- package/dist/esm/core/aggregation/transport/http/sse-writer.js.map +1 -0
- package/dist/esm/core/aggregation/transport/index.js +1 -0
- package/dist/esm/core/aggregation/transport/index.js.map +1 -1
- package/dist/esm/core/aggregation/transport/nostr.js +245 -16
- package/dist/esm/core/aggregation/transport/nostr.js.map +1 -1
- package/dist/esm/core/beacon/beacon.js +295 -63
- package/dist/esm/core/beacon/beacon.js.map +1 -1
- package/dist/esm/core/beacon/cas-beacon.js +3 -3
- package/dist/esm/core/beacon/cas-beacon.js.map +1 -1
- package/dist/esm/core/beacon/singleton-beacon.js +3 -3
- package/dist/esm/core/beacon/singleton-beacon.js.map +1 -1
- package/dist/esm/core/beacon/smt-beacon.js +3 -3
- package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
- package/dist/esm/core/beacon/utils.js +14 -9
- package/dist/esm/core/beacon/utils.js.map +1 -1
- package/dist/esm/core/updater.js +63 -55
- package/dist/esm/core/updater.js.map +1 -1
- package/dist/esm/did-btcr2.js +0 -4
- package/dist/esm/did-btcr2.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/did-document.js +2 -2
- package/dist/esm/utils/did-document.js.map +1 -1
- package/dist/types/core/aggregation/beacon-strategy.d.ts +52 -0
- package/dist/types/core/aggregation/beacon-strategy.d.ts.map +1 -0
- package/dist/types/core/aggregation/cohort.d.ts +20 -3
- package/dist/types/core/aggregation/cohort.d.ts.map +1 -1
- package/dist/types/core/aggregation/logger.d.ts +22 -0
- package/dist/types/core/aggregation/logger.d.ts.map +1 -0
- package/dist/types/core/aggregation/messages/base.d.ts +13 -1
- package/dist/types/core/aggregation/messages/base.d.ts.map +1 -1
- package/dist/types/core/aggregation/messages/bodies.d.ts +130 -0
- package/dist/types/core/aggregation/messages/bodies.d.ts.map +1 -0
- package/dist/types/core/aggregation/messages/factories.d.ts +1 -0
- package/dist/types/core/aggregation/messages/factories.d.ts.map +1 -1
- package/dist/types/core/aggregation/messages/index.d.ts +1 -0
- package/dist/types/core/aggregation/messages/index.d.ts.map +1 -1
- package/dist/types/core/aggregation/participant.d.ts +2 -0
- package/dist/types/core/aggregation/participant.d.ts.map +1 -1
- package/dist/types/core/aggregation/runner/events.d.ts +32 -6
- package/dist/types/core/aggregation/runner/events.d.ts.map +1 -1
- package/dist/types/core/aggregation/runner/participant-runner.d.ts +7 -5
- package/dist/types/core/aggregation/runner/participant-runner.d.ts.map +1 -1
- package/dist/types/core/aggregation/runner/service-runner.d.ts +33 -3
- package/dist/types/core/aggregation/runner/service-runner.d.ts.map +1 -1
- package/dist/types/core/aggregation/service.d.ts +33 -2
- package/dist/types/core/aggregation/service.d.ts.map +1 -1
- package/dist/types/core/aggregation/signing-session.d.ts +5 -1
- package/dist/types/core/aggregation/signing-session.d.ts.map +1 -1
- package/dist/types/core/aggregation/transport/didcomm.d.ts +3 -0
- package/dist/types/core/aggregation/transport/didcomm.d.ts.map +1 -1
- package/dist/types/core/aggregation/transport/factory.d.ts +22 -7
- package/dist/types/core/aggregation/transport/factory.d.ts.map +1 -1
- package/dist/types/core/aggregation/transport/http/client.d.ts +48 -0
- package/dist/types/core/aggregation/transport/http/client.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/envelope.d.ts +64 -0
- package/dist/types/core/aggregation/transport/http/envelope.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/errors.d.ts +9 -0
- package/dist/types/core/aggregation/transport/http/errors.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/inbox-buffer.d.ts +32 -0
- package/dist/types/core/aggregation/transport/http/inbox-buffer.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/index.d.ts +12 -0
- package/dist/types/core/aggregation/transport/http/index.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/nonce-cache.d.ts +26 -0
- package/dist/types/core/aggregation/transport/http/nonce-cache.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/protocol.d.ts +53 -0
- package/dist/types/core/aggregation/transport/http/protocol.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/rate-limiter.d.ts +41 -0
- package/dist/types/core/aggregation/transport/http/rate-limiter.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/request-auth.d.ts +50 -0
- package/dist/types/core/aggregation/transport/http/request-auth.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/server.d.ts +110 -0
- package/dist/types/core/aggregation/transport/http/server.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/sse-stream.d.ts +34 -0
- package/dist/types/core/aggregation/transport/http/sse-stream.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/http/sse-writer.d.ts +12 -0
- package/dist/types/core/aggregation/transport/http/sse-writer.d.ts.map +1 -0
- package/dist/types/core/aggregation/transport/index.d.ts +1 -0
- package/dist/types/core/aggregation/transport/index.d.ts.map +1 -1
- package/dist/types/core/aggregation/transport/nostr.d.ts +99 -1
- package/dist/types/core/aggregation/transport/nostr.d.ts.map +1 -1
- package/dist/types/core/aggregation/transport/transport.d.ts +26 -1
- package/dist/types/core/aggregation/transport/transport.d.ts.map +1 -1
- package/dist/types/core/beacon/beacon.d.ts +149 -22
- package/dist/types/core/beacon/beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/cas-beacon.d.ts +3 -3
- package/dist/types/core/beacon/cas-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/singleton-beacon.d.ts +3 -3
- package/dist/types/core/beacon/singleton-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/smt-beacon.d.ts +3 -3
- package/dist/types/core/beacon/smt-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/utils.d.ts +2 -2
- package/dist/types/core/beacon/utils.d.ts.map +1 -1
- package/dist/types/core/updater.d.ts +27 -12
- package/dist/types/core/updater.d.ts.map +1 -1
- package/dist/types/did-btcr2.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -7
- package/src/core/aggregation/beacon-strategy.ts +123 -0
- package/src/core/aggregation/cohort.ts +34 -8
- package/src/core/aggregation/logger.ts +33 -0
- package/src/core/aggregation/messages/base.ts +20 -5
- package/src/core/aggregation/messages/bodies.ts +223 -0
- package/src/core/aggregation/messages/factories.ts +1 -0
- package/src/core/aggregation/messages/index.ts +1 -0
- package/src/core/aggregation/participant.ts +40 -46
- package/src/core/aggregation/runner/events.ts +27 -3
- package/src/core/aggregation/runner/participant-runner.ts +41 -7
- package/src/core/aggregation/runner/service-runner.ts +227 -19
- package/src/core/aggregation/service.ts +189 -20
- package/src/core/aggregation/signing-session.ts +65 -7
- package/src/core/aggregation/transport/didcomm.ts +17 -0
- package/src/core/aggregation/transport/factory.ts +48 -12
- package/src/core/aggregation/transport/http/client.ts +409 -0
- package/src/core/aggregation/transport/http/envelope.ts +204 -0
- package/src/core/aggregation/transport/http/errors.ts +11 -0
- package/src/core/aggregation/transport/http/inbox-buffer.ts +53 -0
- package/src/core/aggregation/transport/http/index.ts +11 -0
- package/src/core/aggregation/transport/http/nonce-cache.ts +43 -0
- package/src/core/aggregation/transport/http/protocol.ts +57 -0
- package/src/core/aggregation/transport/http/rate-limiter.ts +75 -0
- package/src/core/aggregation/transport/http/request-auth.ts +164 -0
- package/src/core/aggregation/transport/http/server.ts +615 -0
- package/src/core/aggregation/transport/http/sse-stream.ts +121 -0
- package/src/core/aggregation/transport/http/sse-writer.ts +23 -0
- package/src/core/aggregation/transport/index.ts +1 -0
- package/src/core/aggregation/transport/nostr.ts +266 -23
- package/src/core/aggregation/transport/transport.ts +34 -1
- package/src/core/beacon/beacon.ts +411 -79
- package/src/core/beacon/cas-beacon.ts +4 -4
- package/src/core/beacon/singleton-beacon.ts +4 -4
- package/src/core/beacon/smt-beacon.ts +4 -4
- package/src/core/beacon/utils.ts +16 -11
- package/src/core/updater.ts +113 -67
- package/src/did-btcr2.ts +0 -5
- package/src/index.ts +2 -0
- package/src/utils/did-document.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getNetwork } from '@did-btcr2/bitcoin';
|
|
2
2
|
import { DidMethodError, MethodError } from '@did-btcr2/common';
|
|
3
|
-
import {
|
|
3
|
+
import { p2pkh, p2tr, p2wpkh } from '@scure/btc-signer';
|
|
4
4
|
import { Appendix } from '../../utils/appendix.js';
|
|
5
5
|
import { Identifier } from '../identifier.js';
|
|
6
6
|
import { BeaconError } from './error.js';
|
|
@@ -86,7 +86,12 @@ export class BeaconUtils {
|
|
|
86
86
|
// Build the id
|
|
87
87
|
const id = `${did}#initial${addressType.toUpperCase()}`;
|
|
88
88
|
// Generate the bitcoin address
|
|
89
|
-
const
|
|
89
|
+
const address = addressType === 'p2tr'
|
|
90
|
+
? p2tr(pubkey.slice(1, 33), undefined, network).address
|
|
91
|
+
: addressType === 'p2wpkh'
|
|
92
|
+
? p2wpkh(pubkey, network).address
|
|
93
|
+
: p2pkh(pubkey, network).address;
|
|
94
|
+
const serviceEndpoint = `bitcoin:${address}`;
|
|
90
95
|
// Return the beacon serviceD
|
|
91
96
|
return { id, type: beaconType, serviceEndpoint, };
|
|
92
97
|
}
|
|
@@ -103,11 +108,11 @@ export class BeaconUtils {
|
|
|
103
108
|
static generateBeaconServices({ id, publicKey, network, beaconType }) {
|
|
104
109
|
try {
|
|
105
110
|
// Generate the bitcoin addresses for the given public key and network
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
const
|
|
111
|
+
const p2pkhAddr = p2pkh(publicKey, network).address;
|
|
112
|
+
const p2wpkhAddr = p2wpkh(publicKey, network).address;
|
|
113
|
+
const p2trAddr = p2tr(publicKey.slice(1, 33), undefined, network).address;
|
|
109
114
|
// Check that all addresses were generated successfully
|
|
110
|
-
if (!
|
|
115
|
+
if (!p2pkhAddr || !p2wpkhAddr || !p2trAddr) {
|
|
111
116
|
throw new DidMethodError('Failed to generate bitcoin addresses');
|
|
112
117
|
}
|
|
113
118
|
// Return the beacon services with the generated addresses as service endpoints
|
|
@@ -115,17 +120,17 @@ export class BeaconUtils {
|
|
|
115
120
|
{
|
|
116
121
|
id: `${id}#initialP2PKH`,
|
|
117
122
|
type: beaconType,
|
|
118
|
-
serviceEndpoint: `bitcoin:${
|
|
123
|
+
serviceEndpoint: `bitcoin:${p2pkhAddr}`
|
|
119
124
|
},
|
|
120
125
|
{
|
|
121
126
|
id: `${id}#initialP2WPKH`,
|
|
122
127
|
type: beaconType,
|
|
123
|
-
serviceEndpoint: `bitcoin:${
|
|
128
|
+
serviceEndpoint: `bitcoin:${p2wpkhAddr}`
|
|
124
129
|
},
|
|
125
130
|
{
|
|
126
131
|
id: `${id}#initialP2TR`,
|
|
127
132
|
type: beaconType,
|
|
128
|
-
serviceEndpoint: `bitcoin:${
|
|
133
|
+
serviceEndpoint: `bitcoin:${p2trAddr}`
|
|
129
134
|
},
|
|
130
135
|
];
|
|
131
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/beacon/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/beacon/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/core/updater.js
CHANGED
|
@@ -3,18 +3,6 @@ import { canonicalHash, INVALID_DID_UPDATE, JSONPatch, UpdateError } from '@did-
|
|
|
3
3
|
import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
|
|
4
4
|
import { DidDocument } from '../utils/did-document.js';
|
|
5
5
|
import { BeaconFactory } from './beacon/factory.js';
|
|
6
|
-
/**
|
|
7
|
-
* Internal phases of the Updater state machine.
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
var UpdaterPhase;
|
|
11
|
-
(function (UpdaterPhase) {
|
|
12
|
-
UpdaterPhase["Construct"] = "Construct";
|
|
13
|
-
UpdaterPhase["Sign"] = "Sign";
|
|
14
|
-
UpdaterPhase["Fund"] = "Fund";
|
|
15
|
-
UpdaterPhase["Broadcast"] = "Broadcast";
|
|
16
|
-
UpdaterPhase["Complete"] = "Complete";
|
|
17
|
-
})(UpdaterPhase || (UpdaterPhase = {}));
|
|
18
6
|
/**
|
|
19
7
|
* Sans-I/O state machine for did:btcr2 updates — the counterpart to {@link Resolver}.
|
|
20
8
|
*
|
|
@@ -23,20 +11,21 @@ var UpdaterPhase;
|
|
|
23
11
|
*
|
|
24
12
|
* ```typescript
|
|
25
13
|
* const updater = DidBtcr2.update({ sourceDocument, patches, ... });
|
|
14
|
+
* const signer = new LocalSigner(secretKeyBytes); // or KeyManagerSigner / custom
|
|
26
15
|
* let state = updater.advance();
|
|
27
16
|
*
|
|
28
17
|
* while(state.status === 'action-required') {
|
|
29
18
|
* for(const need of state.needs) {
|
|
30
19
|
* switch(need.kind) {
|
|
31
20
|
* case 'NeedSigningKey':
|
|
32
|
-
* updater.provide(need,
|
|
21
|
+
* updater.provide(need, signer);
|
|
33
22
|
* break;
|
|
34
23
|
* case 'NeedFunding':
|
|
35
24
|
* // Check UTXOs at need.beaconAddress, fund if needed
|
|
36
25
|
* updater.provide(need);
|
|
37
26
|
* break;
|
|
38
27
|
* case 'NeedBroadcast':
|
|
39
|
-
* await Updater.announce(need.beaconService, need.signedUpdate,
|
|
28
|
+
* await Updater.announce(need.beaconService, need.signedUpdate, signer, bitcoin);
|
|
40
29
|
* updater.provide(need);
|
|
41
30
|
* break;
|
|
42
31
|
* }
|
|
@@ -59,14 +48,12 @@ var UpdaterPhase;
|
|
|
59
48
|
* @class Updater
|
|
60
49
|
*/
|
|
61
50
|
export class Updater {
|
|
62
|
-
#
|
|
51
|
+
#state = { phase: 'Construct' };
|
|
63
52
|
#sourceDocument;
|
|
64
53
|
#patches;
|
|
65
54
|
#sourceVersionId;
|
|
66
55
|
#verificationMethod;
|
|
67
56
|
#beaconService;
|
|
68
|
-
#unsignedUpdate = null;
|
|
69
|
-
#signedUpdate = null;
|
|
70
57
|
/**
|
|
71
58
|
* @internal — Use {@link DidBtcr2.update} to create instances.
|
|
72
59
|
*/
|
|
@@ -103,6 +90,12 @@ export class Updater {
|
|
|
103
90
|
sourceHash: canonicalHash(sourceDocument),
|
|
104
91
|
};
|
|
105
92
|
const targetDocument = JSONPatch.apply(sourceDocument, patches);
|
|
93
|
+
// Spec (operations/update.md): "An INVALID_DID_UPDATE error MUST be raised if
|
|
94
|
+
// didTargetDocument.id is not equal to didSourceDocument.id." `DidDocument.isValid`
|
|
95
|
+
// checks W3C conformance but not this equality, so it's enforced explicitly here.
|
|
96
|
+
if (targetDocument.id !== sourceDocument.id) {
|
|
97
|
+
throw new UpdateError(`Patches must not change the DID document id (source "${sourceDocument.id}" → target "${targetDocument.id}").`, INVALID_DID_UPDATE, { sourceId: sourceDocument.id, targetId: targetDocument.id });
|
|
98
|
+
}
|
|
106
99
|
try {
|
|
107
100
|
DidDocument.isValid(targetDocument);
|
|
108
101
|
}
|
|
@@ -118,13 +111,20 @@ export class Updater {
|
|
|
118
111
|
* @param {string} did The did-btcr2 identifier to derive the root capability from.
|
|
119
112
|
* @param {UnsignedBTCR2Update} unsignedUpdate The unsigned update to sign.
|
|
120
113
|
* @param {DidVerificationMethod} verificationMethod The verification method for signing.
|
|
121
|
-
* @param {
|
|
114
|
+
* @param {Signer} signer Signer that produces the BIP-340 Schnorr signature.
|
|
122
115
|
* @returns {SignedBTCR2Update} The signed update with a Data Integrity proof.
|
|
123
116
|
*/
|
|
124
|
-
static sign(did, unsignedUpdate, verificationMethod,
|
|
117
|
+
static sign(did, unsignedUpdate, verificationMethod, signer) {
|
|
118
|
+
if (!did.startsWith('did:btcr2:')) {
|
|
119
|
+
throw new UpdateError(`Expected a did:btcr2 identifier for the root capability; got "${did}".`, INVALID_DID_UPDATE, { did });
|
|
120
|
+
}
|
|
125
121
|
const controller = verificationMethod.controller;
|
|
126
|
-
const
|
|
127
|
-
|
|
122
|
+
const hashIdx = verificationMethod.id.indexOf('#');
|
|
123
|
+
if (hashIdx < 0) {
|
|
124
|
+
throw new UpdateError(`Verification method id must contain a fragment (e.g. "${verificationMethod.id}#initialKey"); got "${verificationMethod.id}".`, INVALID_DID_UPDATE, { verificationMethodId: verificationMethod.id });
|
|
125
|
+
}
|
|
126
|
+
const id = verificationMethod.id.slice(hashIdx);
|
|
127
|
+
const multikey = SchnorrMultikey.fromSigner(id, controller, signer);
|
|
128
128
|
const config = {
|
|
129
129
|
'@context': [
|
|
130
130
|
'https://w3id.org/security/v2',
|
|
@@ -148,24 +148,20 @@ export class Updater {
|
|
|
148
148
|
*
|
|
149
149
|
* @param {BeaconService} beaconService The beacon service to broadcast through.
|
|
150
150
|
* @param {SignedBTCR2Update} update The signed update to announce.
|
|
151
|
-
* @param {
|
|
151
|
+
* @param {Signer} signer Signer that produces the ECDSA signature for the Bitcoin transaction.
|
|
152
152
|
* @param {BitcoinConnection} bitcoin The Bitcoin network connection.
|
|
153
153
|
* @returns {Promise<SignedBTCR2Update>} The signed update that was broadcast.
|
|
154
154
|
*/
|
|
155
|
-
static async announce(beaconService, update,
|
|
155
|
+
static async announce(beaconService, update, signer, bitcoin) {
|
|
156
156
|
const beacon = BeaconFactory.establish(beaconService);
|
|
157
|
-
return beacon.broadcastSignal(update,
|
|
157
|
+
return beacon.broadcastSignal(update, signer, bitcoin);
|
|
158
158
|
}
|
|
159
|
-
//
|
|
159
|
+
// Private instance wrappers
|
|
160
160
|
// Delegate to the public statics with bound instance fields for cleaner
|
|
161
161
|
// advance/provide code.
|
|
162
162
|
#construct() {
|
|
163
163
|
return _a.construct(this.#sourceDocument, this.#patches, this.#sourceVersionId);
|
|
164
164
|
}
|
|
165
|
-
#sign(secretKey) {
|
|
166
|
-
return _a.sign(this.#sourceDocument.id, this.#unsignedUpdate, this.#verificationMethod, secretKey);
|
|
167
|
-
}
|
|
168
|
-
// ─── State machine ─────────────────────────────────────────────────────────
|
|
169
165
|
/**
|
|
170
166
|
* Advance the state machine. Returns either:
|
|
171
167
|
* - `{ status: 'action-required', needs }` — caller must provide data via {@link provide}
|
|
@@ -173,30 +169,30 @@ export class Updater {
|
|
|
173
169
|
*/
|
|
174
170
|
advance() {
|
|
175
171
|
while (true) {
|
|
176
|
-
switch (this.#phase) {
|
|
172
|
+
switch (this.#state.phase) {
|
|
177
173
|
// Phase: Construct
|
|
178
174
|
// Build the unsigned update from source doc + patches. Pure, synchronous.
|
|
179
|
-
case
|
|
180
|
-
|
|
181
|
-
this.#
|
|
175
|
+
case 'Construct': {
|
|
176
|
+
const unsignedUpdate = this.#construct();
|
|
177
|
+
this.#state = { phase: 'Sign', unsignedUpdate };
|
|
182
178
|
continue;
|
|
183
179
|
}
|
|
184
180
|
// Phase: Sign
|
|
185
181
|
// Emit NeedSigningKey — the caller supplies the secret key (or a KMS signature).
|
|
186
|
-
case
|
|
182
|
+
case 'Sign': {
|
|
187
183
|
return {
|
|
188
184
|
status: 'action-required',
|
|
189
185
|
needs: [{
|
|
190
186
|
kind: 'NeedSigningKey',
|
|
191
187
|
verificationMethodId: this.#verificationMethod.id,
|
|
192
|
-
unsignedUpdate: this.#unsignedUpdate,
|
|
188
|
+
unsignedUpdate: this.#state.unsignedUpdate,
|
|
193
189
|
}],
|
|
194
190
|
};
|
|
195
191
|
}
|
|
196
192
|
// Phase: Fund
|
|
197
193
|
// Emit NeedFunding with the beacon address. The caller checks UTXOs,
|
|
198
194
|
// funds the address if needed, and provides to continue.
|
|
199
|
-
case
|
|
195
|
+
case 'Fund': {
|
|
200
196
|
const beaconAddress = this.#beaconService.serviceEndpoint.replace('bitcoin:', '');
|
|
201
197
|
return {
|
|
202
198
|
status: 'action-required',
|
|
@@ -210,21 +206,21 @@ export class Updater {
|
|
|
210
206
|
// Phase: Broadcast
|
|
211
207
|
// Emit NeedBroadcast with the signed update + beacon service. The caller performs
|
|
212
208
|
// the actual on-chain announcement (or hands off to the aggregation protocol).
|
|
213
|
-
case
|
|
209
|
+
case 'Broadcast': {
|
|
214
210
|
return {
|
|
215
211
|
status: 'action-required',
|
|
216
212
|
needs: [{
|
|
217
213
|
kind: 'NeedBroadcast',
|
|
218
214
|
beaconService: this.#beaconService,
|
|
219
|
-
signedUpdate: this.#signedUpdate,
|
|
215
|
+
signedUpdate: this.#state.signedUpdate,
|
|
220
216
|
}],
|
|
221
217
|
};
|
|
222
218
|
}
|
|
223
219
|
// Phase: Complete
|
|
224
|
-
case
|
|
220
|
+
case 'Complete': {
|
|
225
221
|
return {
|
|
226
222
|
status: 'complete',
|
|
227
|
-
result: { signedUpdate: this.#signedUpdate },
|
|
223
|
+
result: { signedUpdate: this.#state.signedUpdate },
|
|
228
224
|
};
|
|
229
225
|
}
|
|
230
226
|
}
|
|
@@ -233,33 +229,45 @@ export class Updater {
|
|
|
233
229
|
provide(need, data) {
|
|
234
230
|
switch (need.kind) {
|
|
235
231
|
case 'NeedSigningKey': {
|
|
236
|
-
if (this.#phase !==
|
|
237
|
-
throw new UpdateError(`Cannot provide NeedSigningKey: updater phase is ${this.#phase}, expected Sign.`, INVALID_DID_UPDATE, { phase: this.#phase });
|
|
232
|
+
if (this.#state.phase !== 'Sign') {
|
|
233
|
+
throw new UpdateError(`Cannot provide NeedSigningKey: updater phase is ${this.#state.phase}, expected Sign.`, INVALID_DID_UPDATE, { phase: this.#state.phase });
|
|
238
234
|
}
|
|
239
235
|
if (!data) {
|
|
240
|
-
throw new UpdateError('NeedSigningKey requires
|
|
236
|
+
throw new UpdateError('NeedSigningKey requires a Signer.', INVALID_DID_UPDATE);
|
|
241
237
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
this.#signedUpdate = this.#sign(data);
|
|
246
|
-
this.#phase = UpdaterPhase.Fund;
|
|
238
|
+
const unsignedUpdate = this.#state.unsignedUpdate;
|
|
239
|
+
const signedUpdate = _a.sign(this.#sourceDocument.id, unsignedUpdate, this.#verificationMethod, data);
|
|
240
|
+
this.#state = { phase: 'Fund', unsignedUpdate, signedUpdate };
|
|
247
241
|
break;
|
|
248
242
|
}
|
|
249
243
|
case 'NeedFunding': {
|
|
250
|
-
if (this.#phase !==
|
|
251
|
-
throw new UpdateError(`Cannot provide NeedFunding: updater phase is ${this.#phase}, expected Fund.`, INVALID_DID_UPDATE, { phase: this.#phase });
|
|
244
|
+
if (this.#state.phase !== 'Fund') {
|
|
245
|
+
throw new UpdateError(`Cannot provide NeedFunding: updater phase is ${this.#state.phase}, expected Fund.`, INVALID_DID_UPDATE, { phase: this.#state.phase });
|
|
246
|
+
}
|
|
247
|
+
// If the caller supplies a FundingProof, assert it before transitioning.
|
|
248
|
+
// Optional payload preserves the sans-I/O contract: the caller still does
|
|
249
|
+
// the actual UTXO lookup; this is a contract-level handshake that catches
|
|
250
|
+
// a class of caller bugs (forgot to fund, race with mempool, etc.) at the
|
|
251
|
+
// state-machine boundary rather than at broadcast time.
|
|
252
|
+
if (data !== undefined) {
|
|
253
|
+
const proof = data;
|
|
254
|
+
if (typeof proof.utxoCount !== 'number' || !Number.isFinite(proof.utxoCount) || proof.utxoCount < 1) {
|
|
255
|
+
throw new UpdateError(`NeedFunding proof must have utxoCount >= 1; got ${String(proof.utxoCount)}.`, INVALID_DID_UPDATE, { utxoCount: proof.utxoCount });
|
|
256
|
+
}
|
|
252
257
|
}
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
this.#state = {
|
|
259
|
+
phase: 'Broadcast',
|
|
260
|
+
unsignedUpdate: this.#state.unsignedUpdate,
|
|
261
|
+
signedUpdate: this.#state.signedUpdate,
|
|
262
|
+
};
|
|
255
263
|
break;
|
|
256
264
|
}
|
|
257
265
|
case 'NeedBroadcast': {
|
|
258
|
-
if (this.#phase !==
|
|
259
|
-
throw new UpdateError(`Cannot provide NeedBroadcast: updater phase is ${this.#phase}, expected Broadcast.`, INVALID_DID_UPDATE, { phase: this.#phase });
|
|
266
|
+
if (this.#state.phase !== 'Broadcast') {
|
|
267
|
+
throw new UpdateError(`Cannot provide NeedBroadcast: updater phase is ${this.#state.phase}, expected Broadcast.`, INVALID_DID_UPDATE, { phase: this.#state.phase });
|
|
260
268
|
}
|
|
261
269
|
// Caller has broadcast externally. Transition to Complete.
|
|
262
|
-
this.#
|
|
270
|
+
this.#state = { phase: 'Complete', signedUpdate: this.#state.signedUpdate };
|
|
263
271
|
break;
|
|
264
272
|
}
|
|
265
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../src/core/updater.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAA8E,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../src/core/updater.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/did-btcr2.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { IdentifierHrp, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, METHOD_NOT_SUPPORTED, MethodError, UpdateError } from '@did-btcr2/common';
|
|
2
2
|
import { Did, DidError, DidErrorCode } from '@web5/dids';
|
|
3
|
-
import * as ecc from '@bitcoinerlab/secp256k1';
|
|
4
|
-
import { initEccLib } from 'bitcoinjs-lib';
|
|
5
3
|
import { Identifier } from './core/identifier.js';
|
|
6
4
|
import { Resolver } from './core/resolver.js';
|
|
7
5
|
import { Updater } from './core/updater.js';
|
|
8
6
|
import { Appendix } from './utils/appendix.js';
|
|
9
|
-
/** Initialize secp256k1 ECC library */
|
|
10
|
-
initEccLib(ecc);
|
|
11
7
|
/**
|
|
12
8
|
* Implements {@link https://dcdpr.github.io/did-btcr2 | did:btcr2 DID Method Specification}.
|
|
13
9
|
* did:btcr2 is a censorship-resistant Decentralized Identifier (DID) method using
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-btcr2.js","sourceRoot":"","sources":["../../src/did-btcr2.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,GAAG,EACH,QAAQ,EACR,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"did-btcr2.js","sourceRoot":"","sources":["../../src/did-btcr2.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,6 +5,8 @@ export * from './core/aggregation/cohort.js';
|
|
|
5
5
|
export * from './core/aggregation/signing-session.js';
|
|
6
6
|
export * from './core/aggregation/phases.js';
|
|
7
7
|
export * from './core/aggregation/errors.js';
|
|
8
|
+
export * from './core/aggregation/beacon-strategy.js';
|
|
9
|
+
export * from './core/aggregation/logger.js';
|
|
8
10
|
export * from './core/aggregation/messages/index.js';
|
|
9
11
|
export * from './core/aggregation/transport/index.js';
|
|
10
12
|
export * from './core/aggregation/runner/index.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,UAAU;AACV,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,OAAO;AACP,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,QAAQ;AACR,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,UAAU;AACV,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,OAAO;AACP,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,QAAQ;AACR,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,gBAAgB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { getNetwork } from '@did-btcr2/bitcoin';
|
|
|
2
2
|
import { canonicalize, DidDocumentError, hash, IdentifierTypes, INVALID_DID_DOCUMENT, JSONUtils } from '@did-btcr2/common';
|
|
3
3
|
import { CompressedSecp256k1PublicKey } from '@did-btcr2/keypair';
|
|
4
4
|
import { isDidService } from '@web5/dids/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { p2pkh } from '@scure/btc-signer';
|
|
6
6
|
import { Identifier } from '../core/identifier.js';
|
|
7
7
|
import { Appendix } from './appendix.js';
|
|
8
8
|
export const BTCR2_DID_DOCUMENT_CONTEXT = [
|
|
@@ -382,7 +382,7 @@ export class GenesisDocument extends DidDocument {
|
|
|
382
382
|
static fromPublicKey(publicKey, network) {
|
|
383
383
|
const pk = new CompressedSecp256k1PublicKey(publicKey);
|
|
384
384
|
const id = ID_PLACEHOLDER_VALUE;
|
|
385
|
-
const address =
|
|
385
|
+
const address = p2pkh(pk.compressed, getNetwork(network)).address;
|
|
386
386
|
const services = [{
|
|
387
387
|
id: `${id}#service-0`,
|
|
388
388
|
serviceEndpoint: `bitcoin:${address}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-document.js","sourceRoot":"","sources":["../../../src/utils/did-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,IAAI,EACJ,eAAe,EACf,oBAAoB,EACpB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"did-document.js","sourceRoot":"","sources":["../../../src/utils/did-document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
|
|
2
|
+
import type { SerializedSMTProof } from '@did-btcr2/smt';
|
|
3
|
+
import type { AggregationCohort } from './cohort.js';
|
|
4
|
+
import type { BaseBody } from './messages/base.js';
|
|
5
|
+
/** Validation result returned to the participant for a distribute-data message. */
|
|
6
|
+
export interface BeaconValidationResult {
|
|
7
|
+
matches: boolean;
|
|
8
|
+
casAnnouncement?: Record<string, string>;
|
|
9
|
+
smtProof?: SerializedSMTProof;
|
|
10
|
+
}
|
|
11
|
+
/** Per-participant body attached to DISTRIBUTE_AGGREGATED_DATA by the service. */
|
|
12
|
+
export interface BeaconDistributePayload {
|
|
13
|
+
casAnnouncement?: Record<string, string>;
|
|
14
|
+
smtProof?: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Pluggable strategy for beacon-type-specific aggregation, distribution, and
|
|
18
|
+
* participant-side validation. Lets new beacon types be added without
|
|
19
|
+
* modifying the service or participant state machines: register a new strategy
|
|
20
|
+
* via {@link registerBeaconStrategy}.
|
|
21
|
+
*/
|
|
22
|
+
export interface AggregateBeaconStrategy {
|
|
23
|
+
/** String constant used as `beaconType` on CohortConfig / BaseMessage bodies. */
|
|
24
|
+
readonly type: string;
|
|
25
|
+
/**
|
|
26
|
+
* Service: build the aggregated data on the cohort after all updates are
|
|
27
|
+
* collected. Implementation should mutate the cohort (set signalBytes,
|
|
28
|
+
* casAnnouncement, smtProofs, etc.).
|
|
29
|
+
*/
|
|
30
|
+
buildAggregatedData(cohort: AggregationCohort): void;
|
|
31
|
+
/**
|
|
32
|
+
* Service: produce the body fields to attach to DISTRIBUTE_AGGREGATED_DATA
|
|
33
|
+
* for a specific participant. Called once per cohort member.
|
|
34
|
+
*/
|
|
35
|
+
getDistributePayload(cohort: AggregationCohort, participantDid: string): BeaconDistributePayload;
|
|
36
|
+
/**
|
|
37
|
+
* Participant: verify the aggregated data they received reflects their own
|
|
38
|
+
* submitted update. Pure function — returns matches + sidecar fields for
|
|
39
|
+
* the caller to store.
|
|
40
|
+
*/
|
|
41
|
+
validateParticipantView(params: {
|
|
42
|
+
participantDid: string;
|
|
43
|
+
submittedUpdate: SignedBTCR2Update;
|
|
44
|
+
expectedHash: string;
|
|
45
|
+
body: BaseBody;
|
|
46
|
+
}): BeaconValidationResult;
|
|
47
|
+
}
|
|
48
|
+
/** Register a custom beacon strategy. Overwrites any existing entry with the same type. */
|
|
49
|
+
export declare function registerBeaconStrategy(strategy: AggregateBeaconStrategy): void;
|
|
50
|
+
/** Look up a registered beacon strategy by type, or undefined if not registered. */
|
|
51
|
+
export declare function getBeaconStrategy(type: string): AggregateBeaconStrategy | undefined;
|
|
52
|
+
//# sourceMappingURL=beacon-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beacon-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/beacon-strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAEjG;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,iBAAiB,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC;KAChB,GAAG,sBAAsB,CAAC;CAC5B;AA4DD,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAE9E;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAEnF"}
|
|
@@ -35,8 +35,19 @@ export declare class AggregationCohort {
|
|
|
35
35
|
beaconType: string;
|
|
36
36
|
/** List of participant DIDs that have been accepted into the cohort. */
|
|
37
37
|
participants: Array<string>;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Mapping from participant DID → their compressed secp256k1 public key.
|
|
40
|
+
* Distinct from {@link cohortKeys} (which is sorted per BIP-327) — this lets
|
|
41
|
+
* callers look up a participant's key without knowing their position in the
|
|
42
|
+
* sorted array. Populated by the service at `acceptParticipant` time.
|
|
43
|
+
*/
|
|
44
|
+
participantKeys: Map<string, Uint8Array>;
|
|
45
|
+
/**
|
|
46
|
+
* BIP-341 TapTweak — `taggedHash("TapTweak", internalPubkey)` for a key-path-only
|
|
47
|
+
* Taproot output. Despite prior naming, this is NOT a Merkle root: key-path-only
|
|
48
|
+
* spends have no script tree.
|
|
49
|
+
*/
|
|
50
|
+
tapTweak: Uint8Array;
|
|
40
51
|
/** The n-of-n MuSig2 Taproot beacon address. */
|
|
41
52
|
beaconAddress: string;
|
|
42
53
|
/** Pending DID updates submitted by participants, keyed by DID. */
|
|
@@ -57,7 +68,7 @@ export declare class AggregationCohort {
|
|
|
57
68
|
set cohortKeys(keys: Array<Uint8Array>);
|
|
58
69
|
/**
|
|
59
70
|
* Computes the n-of-n MuSig2 Taproot beacon address from cohort keys.
|
|
60
|
-
* Sets `
|
|
71
|
+
* Sets `tapTweak` to the BIP-341 key-path-only tweak.
|
|
61
72
|
*/
|
|
62
73
|
computeBeaconAddress(): string;
|
|
63
74
|
/**
|
|
@@ -66,6 +77,12 @@ export declare class AggregationCohort {
|
|
|
66
77
|
* messages from the service.
|
|
67
78
|
*/
|
|
68
79
|
validateMembership(participantPkHex: string, cohortKeysHex: Array<string>, expectedBeaconAddress: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the position of a participant's public key in the sorted
|
|
82
|
+
* {@link cohortKeys} array, or -1 if the participant is not in the cohort.
|
|
83
|
+
* Required by MuSig2 partial-sig verification which indexes by signer position.
|
|
84
|
+
*/
|
|
85
|
+
indexOfParticipant(did: string): number;
|
|
69
86
|
addUpdate(participantDid: string, signedUpdate: SignedBTCR2Update): void;
|
|
70
87
|
hasAllUpdates(): boolean;
|
|
71
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cohort.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/cohort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cohort.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/cohort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,gBAAgB,CAAC;AAMpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;;IAC5B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IAEX,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IAEnB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IAExB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAEhB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IAEnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAEjC;;;;;OAKG;IACH,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IAKrD;;;;OAIG;IACH,QAAQ,EAAE,UAAU,CAAoB;IAExC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAM;IAE3B,mEAAmE;IACnE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IAE3D,qFAAqF;IACrF,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,yDAAyD;IACzD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE5C,sFAAsF;IACtF,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,sEAAsE;IACtE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAExC,sEAAsE;IACtE,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAElC,EAAE,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,uBAAuB;IAQ7F,6DAA6D;IAC7D,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,CAElC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,EAErC;IAED;;;OAGG;IACI,oBAAoB,IAAI,MAAM;IAyBrC;;;;OAIG;IACI,kBAAkB,CACvB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAC5B,qBAAqB,EAAE,MAAM,GAC5B,IAAI;IAiBP;;;;OAIG;IACI,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQvC,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAUxE,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,eAAe;IAgB9C;;;;OAIG;IACI,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IA4B/C,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAcrE;;OAEG;IACI,yBAAyB,IAAI,OAAO;IAI3C;;;OAGG;IACI,gBAAgB,IAAI,OAAO;CAInC"}
|