@did-btcr2/method 0.20.0 → 0.23.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 +223 -1
- package/dist/browser.js +2566 -3507
- package/dist/browser.mjs +2566 -3507
- package/dist/cjs/core/beacon/aggregation/cohort/index.js +13 -2
- package/dist/cjs/core/beacon/aggregation/cohort/index.js.map +1 -1
- package/dist/cjs/core/beacon/aggregation/cohort/messages/base.js +7 -2
- package/dist/cjs/core/beacon/aggregation/cohort/messages/base.js.map +1 -1
- package/dist/cjs/core/beacon/aggregation/communication/adapter/did-comm.js +5 -10
- package/dist/cjs/core/beacon/aggregation/communication/adapter/did-comm.js.map +1 -1
- package/dist/cjs/core/beacon/aggregation/communication/adapter/nostr.js +4 -7
- package/dist/cjs/core/beacon/aggregation/communication/adapter/nostr.js.map +1 -1
- package/dist/cjs/core/beacon/aggregation/session/index.js +15 -3
- package/dist/cjs/core/beacon/aggregation/session/index.js.map +1 -1
- package/dist/cjs/core/beacon/cas-beacon.js +1 -1
- package/dist/cjs/core/beacon/cas-beacon.js.map +1 -1
- package/dist/cjs/core/beacon/signal-discovery.js +6 -6
- package/dist/cjs/core/beacon/signal-discovery.js.map +1 -1
- package/dist/cjs/core/beacon/singleton.js +18 -20
- package/dist/cjs/core/beacon/singleton.js.map +1 -1
- package/dist/cjs/core/beacon/smt-beacon.js +1 -1
- package/dist/cjs/core/beacon/smt-beacon.js.map +1 -1
- package/dist/cjs/core/identifier.js +11 -13
- package/dist/cjs/core/identifier.js.map +1 -1
- package/dist/cjs/core/resolve.js +52 -49
- package/dist/cjs/core/resolve.js.map +1 -1
- package/dist/cjs/core/update.js +3 -4
- package/dist/cjs/core/update.js.map +1 -1
- package/dist/cjs/did-btcr2.js +36 -35
- package/dist/cjs/did-btcr2.js.map +1 -1
- package/dist/cjs/utils/did-document-builder.js +0 -6
- package/dist/cjs/utils/did-document-builder.js.map +1 -1
- package/dist/cjs/utils/did-document.js +44 -26
- package/dist/cjs/utils/did-document.js.map +1 -1
- package/dist/esm/core/beacon/aggregation/cohort/index.js +13 -2
- package/dist/esm/core/beacon/aggregation/cohort/index.js.map +1 -1
- package/dist/esm/core/beacon/aggregation/cohort/messages/base.js +7 -2
- package/dist/esm/core/beacon/aggregation/cohort/messages/base.js.map +1 -1
- package/dist/esm/core/beacon/aggregation/communication/adapter/did-comm.js +5 -10
- package/dist/esm/core/beacon/aggregation/communication/adapter/did-comm.js.map +1 -1
- package/dist/esm/core/beacon/aggregation/communication/adapter/nostr.js +4 -7
- package/dist/esm/core/beacon/aggregation/communication/adapter/nostr.js.map +1 -1
- package/dist/esm/core/beacon/aggregation/session/index.js +15 -3
- package/dist/esm/core/beacon/aggregation/session/index.js.map +1 -1
- package/dist/esm/core/beacon/cas-beacon.js +1 -1
- package/dist/esm/core/beacon/cas-beacon.js.map +1 -1
- package/dist/esm/core/beacon/signal-discovery.js +6 -6
- package/dist/esm/core/beacon/signal-discovery.js.map +1 -1
- package/dist/esm/core/beacon/singleton.js +18 -20
- package/dist/esm/core/beacon/singleton.js.map +1 -1
- package/dist/esm/core/beacon/smt-beacon.js +1 -1
- package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
- package/dist/esm/core/identifier.js +11 -13
- package/dist/esm/core/identifier.js.map +1 -1
- package/dist/esm/core/resolve.js +52 -49
- package/dist/esm/core/resolve.js.map +1 -1
- package/dist/esm/core/update.js +3 -4
- package/dist/esm/core/update.js.map +1 -1
- package/dist/esm/did-btcr2.js +36 -35
- package/dist/esm/did-btcr2.js.map +1 -1
- package/dist/esm/utils/did-document-builder.js +0 -6
- package/dist/esm/utils/did-document-builder.js.map +1 -1
- package/dist/esm/utils/did-document.js +44 -26
- package/dist/esm/utils/did-document.js.map +1 -1
- package/dist/types/core/beacon/aggregation/cohort/index.d.ts +1 -1
- package/dist/types/core/beacon/aggregation/cohort/index.d.ts.map +1 -1
- package/dist/types/core/beacon/aggregation/cohort/messages/base.d.ts +1 -1
- package/dist/types/core/beacon/aggregation/cohort/messages/base.d.ts.map +1 -1
- package/dist/types/core/beacon/aggregation/communication/adapter/did-comm.d.ts.map +1 -1
- package/dist/types/core/beacon/aggregation/communication/adapter/nostr.d.ts.map +1 -1
- package/dist/types/core/beacon/aggregation/session/index.d.ts +1 -1
- package/dist/types/core/beacon/aggregation/session/index.d.ts.map +1 -1
- package/dist/types/core/beacon/beacon.d.ts +3 -3
- 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/signal-discovery.d.ts +5 -5
- package/dist/types/core/beacon/signal-discovery.d.ts.map +1 -1
- package/dist/types/core/beacon/singleton.d.ts +4 -4
- package/dist/types/core/beacon/singleton.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/identifier.d.ts +17 -21
- package/dist/types/core/identifier.d.ts.map +1 -1
- package/dist/types/core/interfaces.d.ts +2 -2
- package/dist/types/core/interfaces.d.ts.map +1 -1
- package/dist/types/core/resolve.d.ts +10 -7
- package/dist/types/core/resolve.d.ts.map +1 -1
- package/dist/types/core/update.d.ts +2 -2
- package/dist/types/core/update.d.ts.map +1 -1
- package/dist/types/did-btcr2.d.ts +12 -8
- package/dist/types/did-btcr2.d.ts.map +1 -1
- package/dist/types/utils/did-document-builder.d.ts +0 -1
- package/dist/types/utils/did-document-builder.d.ts.map +1 -1
- package/dist/types/utils/did-document.d.ts +14 -9
- package/dist/types/utils/did-document.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/core/beacon/aggregation/cohort/index.ts +13 -2
- package/src/core/beacon/aggregation/cohort/messages/base.ts +7 -2
- package/src/core/beacon/aggregation/communication/adapter/did-comm.ts +5 -12
- package/src/core/beacon/aggregation/communication/adapter/nostr.ts +5 -8
- package/src/core/beacon/aggregation/session/index.ts +15 -3
- package/src/core/beacon/beacon.ts +3 -3
- package/src/core/beacon/cas-beacon.ts +3 -3
- package/src/core/beacon/signal-discovery.ts +9 -9
- package/src/core/beacon/singleton.ts +21 -23
- package/src/core/beacon/smt-beacon.ts +3 -3
- package/src/core/identifier.ts +31 -28
- package/src/core/interfaces.ts +2 -2
- package/src/core/resolve.ts +73 -62
- package/src/core/update.ts +5 -5
- package/src/did-btcr2.ts +47 -43
- package/src/utils/did-document-builder.ts +0 -7
- package/src/utils/did-document.ts +54 -31
package/dist/cjs/core/resolve.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getNetwork } from '@did-btcr2/bitcoin';
|
|
2
|
-
import { DateUtils, IdentifierHrp, INVALID_DID, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, JSONPatch, JSONUtils, LATE_PUBLISHING_ERROR, MISSING_UPDATE_DATA, ResolveError } from '@did-btcr2/common';
|
|
2
|
+
import { Canonicalization, DateUtils, IdentifierHrp, INVALID_DID, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, JSONPatch, JSONUtils, LATE_PUBLISHING_ERROR, MISSING_UPDATE_DATA, ResolveError } from '@did-btcr2/common';
|
|
3
3
|
import { BIP340Cryptosuite, BIP340DataIntegrityProof, SchnorrMultikey } from '@did-btcr2/cryptosuite';
|
|
4
4
|
import { CompressedSecp256k1PublicKey } from '@did-btcr2/keypair';
|
|
5
5
|
import { bytesToHex } from '@noble/hashes/utils';
|
|
6
|
-
import {
|
|
6
|
+
import { DidBtcr2 } from '../did-btcr2.js';
|
|
7
7
|
import { Appendix } from '../utils/appendix.js';
|
|
8
8
|
import { DidDocument, ID_PLACEHOLDER_VALUE } from '../utils/did-document.js';
|
|
9
9
|
import { BeaconFactory } from './beacon/factory.js';
|
|
@@ -26,10 +26,10 @@ export class Resolve {
|
|
|
26
26
|
* @returns {DidDocument} The resolved DID Document object.
|
|
27
27
|
*/
|
|
28
28
|
static deterministic(didComponents) {
|
|
29
|
-
// Encode the did from the didComponents
|
|
30
|
-
const did = Identifier.encode(didComponents);
|
|
31
29
|
// Deconstruct the bytes from the given components
|
|
32
30
|
const { genesisBytes } = didComponents;
|
|
31
|
+
// Encode the did from the didComponents
|
|
32
|
+
const did = Identifier.encode(genesisBytes, didComponents);
|
|
33
33
|
// Construct a new CompressedSecp256k1PublicKey and deconstruct the publicKey and publicKeyMultibase
|
|
34
34
|
const { multibase: publicKeyMultibase } = new CompressedSecp256k1PublicKey(genesisBytes);
|
|
35
35
|
// Generate the service field for the DID Document
|
|
@@ -41,7 +41,6 @@ export class Resolve {
|
|
|
41
41
|
});
|
|
42
42
|
return new DidDocument({
|
|
43
43
|
id: did,
|
|
44
|
-
controller: [did],
|
|
45
44
|
verificationMethod: [{
|
|
46
45
|
id: `${did}#initialKey`,
|
|
47
46
|
type: 'Multikey',
|
|
@@ -60,15 +59,14 @@ export class Resolve {
|
|
|
60
59
|
*/
|
|
61
60
|
static async external(didComponents, genesisDocument) {
|
|
62
61
|
// Canonicalize and sha256 hash the currentDocument
|
|
63
|
-
const hashBytes =
|
|
64
|
-
|
|
65
|
-
const genesisBytes = bytesToHex(didComponents.genesisBytes);
|
|
62
|
+
const hashBytes = Canonicalization.process(genesisDocument, { encoding: 'hex' });
|
|
63
|
+
const { genesisBytes } = didComponents;
|
|
66
64
|
// If the genesisBytes do not match the hashBytes, throw an error
|
|
67
|
-
if (genesisBytes !== hashBytes) {
|
|
68
|
-
throw new ResolveError(`Initial document mismatch: genesisBytes ${genesisBytes} !== hashBytes ${hashBytes}`, INVALID_DID_DOCUMENT, { genesisBytes, hashBytes });
|
|
65
|
+
if (bytesToHex(genesisBytes) !== hashBytes) {
|
|
66
|
+
throw new ResolveError(`Initial document mismatch: genesisBytes ${bytesToHex(genesisBytes)} !== hashBytes ${hashBytes}`, INVALID_DID_DOCUMENT, { genesisBytes, hashBytes });
|
|
69
67
|
}
|
|
70
68
|
// Encode the did from the didComponents
|
|
71
|
-
const did = Identifier.encode(didComponents);
|
|
69
|
+
const did = Identifier.encode(genesisBytes, didComponents);
|
|
72
70
|
// Replace the placeholder did with the did throughout the currentDocument.
|
|
73
71
|
const currentDocument = JSON.parse(JSON.stringify(genesisDocument).replaceAll(ID_PLACEHOLDER_VALUE, did));
|
|
74
72
|
// Return a W3C conformant DID Document
|
|
@@ -84,13 +82,13 @@ export class Resolve {
|
|
|
84
82
|
const updateMap = new Map();
|
|
85
83
|
if (sidecar.updates?.length)
|
|
86
84
|
for (const update of sidecar.updates) {
|
|
87
|
-
updateMap.set(
|
|
85
|
+
updateMap.set(Canonicalization.process(update, { encoding: 'hex' }), update);
|
|
88
86
|
}
|
|
89
87
|
// CAS Announcements map
|
|
90
88
|
const casMap = new Map();
|
|
91
89
|
if (sidecar.casUpdates?.length)
|
|
92
90
|
for (const update of sidecar.casUpdates) {
|
|
93
|
-
casMap.set(
|
|
91
|
+
casMap.set(Canonicalization.process(update, { encoding: 'hex' }), update);
|
|
94
92
|
}
|
|
95
93
|
// SMT Proofs map
|
|
96
94
|
const smtMap = new Map();
|
|
@@ -135,23 +133,23 @@ export class Resolve {
|
|
|
135
133
|
* Signal Bytes (last output in OP_RETURN transaction).
|
|
136
134
|
* @param {Array<BeaconService>} beaconServices The array of BeaconService objects to search for signals.
|
|
137
135
|
* @param {SidecarData} sidecarData The sidecar data containing maps of updates, CAS announcements, and SMT proofs.
|
|
138
|
-
* @param {
|
|
136
|
+
* @param {BitcoinConnection} bitcoin The bitcoin network connection used to fetch beacon signals
|
|
139
137
|
* @returns {Promise<Array<[SignedBTCR2Update, BlockMetadata]>>} The array of BTCR2 Signed Updates announced by the Beacon Signals.
|
|
140
138
|
*/
|
|
141
139
|
static async beaconSignals(beaconServices, sidecarData, bitcoin) {
|
|
142
140
|
// Discover Beacon Signals via indexer server (esplora/electrs) or full node
|
|
143
|
-
const beaconServicesSignals = bitcoin.
|
|
141
|
+
const beaconServicesSignals = bitcoin.rest
|
|
144
142
|
? await BeaconSignalDiscovery.indexer(beaconServices, bitcoin)
|
|
145
143
|
: await BeaconSignalDiscovery.fullnode(beaconServices, bitcoin);
|
|
146
144
|
// Process each beacon's signals in parallel
|
|
147
|
-
const promises = Array.from(beaconServicesSignals.entries()).map(async ([service, signals]) => {
|
|
145
|
+
const promises = await Promise.all(Array.from(beaconServicesSignals.entries()).map(async ([service, signals]) => {
|
|
148
146
|
// Skip beacons with no signals
|
|
149
147
|
if (!signals.length)
|
|
150
148
|
return [];
|
|
151
149
|
// Establish a typed beacon and process its signals
|
|
152
150
|
return BeaconFactory.establish(service).processSignals(signals, sidecarData);
|
|
153
|
-
});
|
|
154
|
-
return
|
|
151
|
+
}));
|
|
152
|
+
return promises.flat();
|
|
155
153
|
}
|
|
156
154
|
/**
|
|
157
155
|
* Implements subsection {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process-updates | 7.2.f Process updates Array}.
|
|
@@ -170,26 +168,30 @@ export class Resolve {
|
|
|
170
168
|
const updates = unsortedUpdates.sort(([upd0, blk0], [upd1, blk1]) => upd0.targetVersionId - upd1.targetVersionId || blk0.height - blk1.height);
|
|
171
169
|
// Create a default response object
|
|
172
170
|
const response = {
|
|
173
|
-
currentDocument,
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
171
|
+
didDocument: currentDocument,
|
|
172
|
+
metadata: {
|
|
173
|
+
versionId: `${currentVersionId}`,
|
|
174
|
+
confirmations: 0,
|
|
175
|
+
updated: '',
|
|
176
|
+
deactivated: currentDocument.deactivated || false
|
|
177
|
+
}
|
|
177
178
|
};
|
|
178
179
|
// Iterate over each (update block) pair
|
|
179
180
|
for (const [update, block] of updates) {
|
|
180
181
|
// Get the hash of the current document
|
|
181
|
-
const currentDocumentHash =
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
// Safely convert versionTime to timestamp
|
|
185
|
-
const vTime = DateUtils.dateStringToTimestamp(versionTime || '');
|
|
186
|
-
// Safely convert block.blocktime to timestamp
|
|
187
|
-
const bTime = DateUtils.blocktimeToTimestamp(block.time);
|
|
182
|
+
const currentDocumentHash = Canonicalization.process(response.didDocument, { encoding: 'base58btc' });
|
|
183
|
+
// Safely convert block.time to timestamp
|
|
184
|
+
const blocktime = DateUtils.blocktimeToTimestamp(block.time);
|
|
188
185
|
// Set the updated field to the blocktime of the current update
|
|
189
|
-
response.updated = DateUtils.toISOStringNonFractional(
|
|
186
|
+
response.metadata.updated = DateUtils.toISOStringNonFractional(blocktime);
|
|
187
|
+
// Set confirmations to the block confirmations
|
|
188
|
+
response.metadata.confirmations = block.confirmations;
|
|
190
189
|
// if resolutionOptions.versionTime is defined and the blocktime is more recent, return currentDocument
|
|
191
|
-
if (
|
|
192
|
-
|
|
190
|
+
if (versionTime) {
|
|
191
|
+
// Safely convert versionTime to timestamp
|
|
192
|
+
if (blocktime > DateUtils.dateStringToTimestamp(versionTime)) {
|
|
193
|
+
return response;
|
|
194
|
+
}
|
|
193
195
|
}
|
|
194
196
|
// Check update.targetVersionId against currentVersionId
|
|
195
197
|
// If update.targetVersionId <= currentVersionId, confirm duplicate update
|
|
@@ -199,37 +201,38 @@ export class Resolve {
|
|
|
199
201
|
}
|
|
200
202
|
// If update.targetVersionId == currentVersionId + 1, apply the update
|
|
201
203
|
else if (update.targetVersionId === currentVersionId + 1) {
|
|
202
|
-
// Prepend `z` to the sourceHash if it does not start with it
|
|
203
|
-
const sourceHash = update.sourceHash.startsWith('z') ? update.sourceHash : `z${update.sourceHash}`;
|
|
204
204
|
// Check if update.sourceHash !== currentDocumentHash
|
|
205
|
-
if (sourceHash !== currentDocumentHash) {
|
|
205
|
+
if (update.sourceHash !== currentDocumentHash) {
|
|
206
206
|
// Raise an INVALID_DID_UPDATE error if they do not match
|
|
207
|
-
throw new ResolveError(`Hash mismatch: update.sourceHash !== currentDocumentHash`, INVALID_DID_UPDATE, { sourceHash, currentDocumentHash });
|
|
207
|
+
throw new ResolveError(`Hash mismatch: update.sourceHash !== currentDocumentHash`, INVALID_DID_UPDATE, { sourceHash: update.sourceHash, currentDocumentHash });
|
|
208
208
|
}
|
|
209
209
|
// Apply the update to the currentDocument and set it in the response
|
|
210
|
-
response.
|
|
210
|
+
response.didDocument = await this.applyUpdate(response.didDocument, update);
|
|
211
211
|
// Create unsigned_update by removing the proof property from update.
|
|
212
212
|
const unsignedUpdate = JSONUtils.deleteKeys(update, ['proof']);
|
|
213
213
|
// Push the canonicalized unsigned update hash to the updateHashHistory
|
|
214
|
-
updateHashHistory.push(
|
|
214
|
+
updateHashHistory.push(Canonicalization.process(unsignedUpdate, { encoding: 'base58btc' }));
|
|
215
215
|
}
|
|
216
216
|
// If update.targetVersionId > currentVersionId + 1, throw LATE_PUBLISHING error
|
|
217
217
|
else if (update.targetVersionId > currentVersionId + 1) {
|
|
218
218
|
throw new ResolveError(`Version Id Mismatch: targetVersionId cannot be > currentVersionId + 1`, 'LATE_PUBLISHING_ERROR', {
|
|
219
219
|
targetVersionId: update.targetVersionId,
|
|
220
|
-
currentVersionId:
|
|
220
|
+
currentVersionId: currentVersionId + 1
|
|
221
221
|
});
|
|
222
222
|
}
|
|
223
223
|
// Increment currentVersionId
|
|
224
224
|
currentVersionId++;
|
|
225
|
-
// Set
|
|
226
|
-
response.versionId = `${currentVersionId}`;
|
|
225
|
+
// Set response.versionId to be the new currentVersionId
|
|
226
|
+
response.metadata.versionId = `${currentVersionId}`;
|
|
227
227
|
// If resolutionOptions.versionId is defined and <= currentVersionId, return currentDocument
|
|
228
228
|
if (currentVersionId >= Number(versionId)) {
|
|
229
229
|
return response;
|
|
230
230
|
}
|
|
231
231
|
// Check if the current document is deactivated before further processing
|
|
232
232
|
if (currentDocument.deactivated) {
|
|
233
|
+
// Set the response deactivated flag to true
|
|
234
|
+
response.metadata.deactivated = currentDocument.deactivated;
|
|
235
|
+
// If deactivated, stop processing further updates and return the response
|
|
233
236
|
return response;
|
|
234
237
|
}
|
|
235
238
|
}
|
|
@@ -244,10 +247,10 @@ export class Resolve {
|
|
|
244
247
|
*/
|
|
245
248
|
static confirmDuplicate(update, updateHashHistory) {
|
|
246
249
|
// Create unsigned_update by removing the proof property from update.
|
|
247
|
-
const unsignedUpdate =
|
|
250
|
+
const { proof: _, ...unsignedUpdate } = update;
|
|
248
251
|
// Hash unsignedUpdate with JSON Document Hashing algorithm
|
|
249
|
-
const unsignedUpdateHash =
|
|
250
|
-
//
|
|
252
|
+
const unsignedUpdateHash = Canonicalization.process(unsignedUpdate);
|
|
253
|
+
// Let historicalUpdateHash equal updateHashHistory[updateHashIndex].
|
|
251
254
|
const historicalUpdateHash = updateHashHistory[update.targetVersionId - 2];
|
|
252
255
|
// Check if the updateHash matches the historical hash
|
|
253
256
|
if (updateHashHistory[update.targetVersionId - 2] !== unsignedUpdateHash) {
|
|
@@ -292,7 +295,7 @@ export class Resolve {
|
|
|
292
295
|
// Construct a new BIP340Cryptosuite with the SchnorrMultikey.
|
|
293
296
|
const cryptosuite = new BIP340Cryptosuite(multikey);
|
|
294
297
|
// Canonicalize the update
|
|
295
|
-
const canonicalUpdate =
|
|
298
|
+
const canonicalUpdate = Canonicalization.canonicalize(update);
|
|
296
299
|
// Construct a DataIntegrityProof with the cryptosuite
|
|
297
300
|
const diProof = new BIP340DataIntegrityProof(cryptosuite);
|
|
298
301
|
// Call the verifyProof method
|
|
@@ -306,13 +309,13 @@ export class Resolve {
|
|
|
306
309
|
// Verify that updatedDocument is conformant to DID Core v1.1.
|
|
307
310
|
DidDocument.validate(updatedDocument);
|
|
308
311
|
// Canonicalize and hash the updatedDocument to get the currentDocumentHash.
|
|
309
|
-
const currentDocumentHash =
|
|
312
|
+
const currentDocumentHash = Canonicalization.process(updatedDocument, { encoding: 'base58btc' });
|
|
310
313
|
// Prepare the update targetHash for comparison with currentDocumentHash.
|
|
311
|
-
const updateTargetHash = update.targetHash
|
|
314
|
+
const updateTargetHash = update.targetHash;
|
|
312
315
|
// Make sure the update.targetHash equals currentDocumentHash.
|
|
313
|
-
if (
|
|
316
|
+
if (update.targetHash !== currentDocumentHash) {
|
|
314
317
|
// If they do not match, throw INVALID_DID_UPDATE error.
|
|
315
|
-
throw new ResolveError(`Invalid update:
|
|
318
|
+
throw new ResolveError(`Invalid update: update.targetHash !== currentDocumentHash`, INVALID_DID_UPDATE, { updateTargetHash, currentDocumentHash });
|
|
316
319
|
}
|
|
317
320
|
// Return final updatedDocument.
|
|
318
321
|
return updatedDocument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/core/update.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { INVALID_DID_UPDATE, JSONPatch, UpdateError } from '@did-btcr2/common';
|
|
1
|
+
import { Canonicalization, INVALID_DID_UPDATE, JSONPatch, UpdateError } from '@did-btcr2/common';
|
|
2
2
|
import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
|
|
3
|
-
import { canonicalization } from '../did-btcr2.js';
|
|
4
3
|
import { DidDocument } from '../utils/did-document.js';
|
|
5
4
|
import { BeaconFactory } from './beacon/factory.js';
|
|
6
5
|
/**
|
|
@@ -38,7 +37,7 @@ export class Update {
|
|
|
38
37
|
patch: patches,
|
|
39
38
|
targetHash: '',
|
|
40
39
|
targetVersionId: sourceVersionId + 1,
|
|
41
|
-
sourceHash:
|
|
40
|
+
sourceHash: Canonicalization.process(sourceDocument, { encoding: 'base58btc' }),
|
|
42
41
|
};
|
|
43
42
|
// Apply all JSON patches to sourceDocument.
|
|
44
43
|
const targetDocument = JSONPatch.apply(sourceDocument, patches);
|
|
@@ -51,7 +50,7 @@ export class Update {
|
|
|
51
50
|
throw new UpdateError('Error validating targetDocument: ' + (error instanceof Error ? error.message : String(error)), INVALID_DID_UPDATE, targetDocument);
|
|
52
51
|
}
|
|
53
52
|
// Set the targetHash by canonicalizing the targetDocument and encoding it in base58.
|
|
54
|
-
unsignedUpdate.targetHash =
|
|
53
|
+
unsignedUpdate.targetHash = Canonicalization.process(targetDocument, { encoding: 'base58btc' });
|
|
55
54
|
// Return unsignedUpdate.
|
|
56
55
|
return unsignedUpdate;
|
|
57
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/core/update.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,EAGT,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/core/update.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/did-btcr2.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Canonicalization, IdentifierHrp, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, METHOD_NOT_SUPPORTED, MethodError, MISSING_UPDATE_DATA, ResolveError, UpdateError } from '@did-btcr2/common';
|
|
1
|
+
import { IdentifierHrp, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, METHOD_NOT_SUPPORTED, MethodError, MISSING_RESOLUTION_OPTIONS, MISSING_UPDATE_DATA, ResolveError, UpdateError } from '@did-btcr2/common';
|
|
3
2
|
import { Did, DidError, DidErrorCode, EMPTY_DID_RESOLUTION_RESULT } from '@web5/dids';
|
|
4
3
|
import { initEccLib } from 'bitcoinjs-lib';
|
|
5
4
|
import * as tinysecp from 'tiny-secp256k1';
|
|
@@ -9,8 +8,6 @@ import { Resolve } from './core/resolve.js';
|
|
|
9
8
|
import { Update } from './core/update.js';
|
|
10
9
|
import { Appendix } from './utils/appendix.js';
|
|
11
10
|
// TODO: convert to API driver?
|
|
12
|
-
export const canonicalization = new Canonicalization();
|
|
13
|
-
// TODO: convert to API driver?
|
|
14
11
|
/** Initialize tiny secp256k1 */
|
|
15
12
|
initEccLib(tinysecp);
|
|
16
13
|
/**
|
|
@@ -41,15 +38,20 @@ export class DidBtcr2 {
|
|
|
41
38
|
* @param {string} options.network The Bitcoin network to use for the identifier, e.g. 'bitcoin', 'testnet', etc. Defaults to 'bitcoin'.
|
|
42
39
|
* @returns {Promise<Btcr2Identifier>} Promise resolving to a Btcr2Identifier string.
|
|
43
40
|
* @throws {MethodError} if any of the checks fail
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const genesisBytes = SchnorrKeyPair.generate().publicKey.compressed;
|
|
44
|
+
* const did = DidBtcr2.create(genesisBytes, { idType: 'KEY', network: 'regtest' });
|
|
45
|
+
* ```
|
|
44
46
|
*/
|
|
45
|
-
static
|
|
47
|
+
static create(genesisBytes, options) {
|
|
46
48
|
// Deconstruct the idType, version and network from the options, setting defaults if not given
|
|
47
49
|
const { idType, version = 1, network = 'bitcoin' } = options || {};
|
|
48
50
|
if (!idType) {
|
|
49
51
|
throw new MethodError('idType is required for creating a did:btcr2 identifier', INVALID_DID_DOCUMENT, options);
|
|
50
52
|
}
|
|
51
53
|
// Call identifier encoding algorithm
|
|
52
|
-
return Identifier.encode({ idType,
|
|
54
|
+
return Identifier.encode(genesisBytes, { idType, version, network });
|
|
53
55
|
}
|
|
54
56
|
/**
|
|
55
57
|
* Entry point for section {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html | 7.2 Resolve}.
|
|
@@ -68,20 +70,22 @@ export class DidBtcr2 {
|
|
|
68
70
|
* @example
|
|
69
71
|
* ```ts
|
|
70
72
|
* const resolution = await DidBtcr2.resolve(
|
|
71
|
-
* 'did:btcr2:
|
|
73
|
+
* 'did:btcr2:k1qgpr45cheptyjekl3cex80xfnkwhxnlclecwwf92gvdjrszm2uwhzlcxu5xte'
|
|
72
74
|
* )
|
|
73
75
|
* ```
|
|
74
76
|
*/
|
|
75
|
-
static async resolve(did, resolutionOptions = {
|
|
77
|
+
static async resolve(did, resolutionOptions = {}) {
|
|
76
78
|
try {
|
|
79
|
+
// Set versionId from resolutionOptions
|
|
80
|
+
const versionId = resolutionOptions.versionId;
|
|
77
81
|
// Initialize an empty DID Resolution Result
|
|
78
82
|
const didResolutionResult = {
|
|
79
83
|
'@context': 'https://w3id.org/did-resolution/v1',
|
|
80
84
|
didResolutionMetadata: { contentType: 'application/ld+json' },
|
|
81
85
|
didDocumentMetadata: {
|
|
86
|
+
versionId,
|
|
82
87
|
deactivated: false,
|
|
83
88
|
updated: undefined,
|
|
84
|
-
versionId: resolutionOptions.versionId,
|
|
85
89
|
confirmations: undefined,
|
|
86
90
|
},
|
|
87
91
|
didDocument: null,
|
|
@@ -90,22 +94,13 @@ export class DidBtcr2 {
|
|
|
90
94
|
const didComponents = Identifier.decode(did);
|
|
91
95
|
// Process sidecar if provided
|
|
92
96
|
const sidecarData = Resolve.sidecarData(resolutionOptions.sidecar);
|
|
93
|
-
// Check if bitcoin driver provided
|
|
94
|
-
if (!resolutionOptions?.drivers?.bitcoin) {
|
|
95
|
-
// If not, initialize default drivers
|
|
96
|
-
resolutionOptions.drivers = resolutionOptions.drivers || {};
|
|
97
|
-
// Set bitcoin driver to default BitcoinNetworkConnection
|
|
98
|
-
resolutionOptions.drivers.bitcoin = new BitcoinNetworkConnection();
|
|
99
|
-
// Set the network based on the decoded identifier
|
|
100
|
-
resolutionOptions.drivers.bitcoin.setActiveNetwork(didComponents.network);
|
|
101
|
-
}
|
|
102
97
|
// Parse the genesis document from the resolution options if provided
|
|
103
98
|
const genesisDocument = resolutionOptions.sidecar?.genesisDocument;
|
|
104
99
|
// Since genesisDocument is optional, check if it exists
|
|
105
100
|
if (!genesisDocument) {
|
|
106
101
|
// If no genesisDocument and x HRP, throw MISSING_UPDATE_DATA error
|
|
107
102
|
if (didComponents.hrp === IdentifierHrp.x)
|
|
108
|
-
throw new ResolveError('External resolution requires genesisDocument', MISSING_UPDATE_DATA,
|
|
103
|
+
throw new ResolveError('External resolution requires genesisDocument', MISSING_UPDATE_DATA, resolutionOptions);
|
|
109
104
|
}
|
|
110
105
|
// Establish the current document
|
|
111
106
|
const currentDocument = await Resolve.currentDocument(didComponents, genesisDocument);
|
|
@@ -113,34 +108,37 @@ export class DidBtcr2 {
|
|
|
113
108
|
const beaconServices = currentDocument.service
|
|
114
109
|
.filter(BeaconUtils.isBeaconService)
|
|
115
110
|
.map(BeaconUtils.parseBeaconServiceEndpoint);
|
|
116
|
-
|
|
111
|
+
// Check if bitcoin driver provided
|
|
112
|
+
if (!resolutionOptions?.drivers?.bitcoin) {
|
|
113
|
+
throw new ResolveError('Bitcoin connection required for resolve. Pass a configured driver via '
|
|
114
|
+
+ 'resolutionOptions.drivers.bitcoin or use DidBtcr2Api which injects it automatically.', MISSING_RESOLUTION_OPTIONS, resolutionOptions);
|
|
115
|
+
}
|
|
116
|
+
// Get the bitcoin driver from the resolution options
|
|
117
|
+
const bitcoin = resolutionOptions.drivers.bitcoin;
|
|
117
118
|
// Process the Beacon Signals to get the required updates
|
|
118
|
-
const unsortedUpdates = await Resolve.beaconSignals(beaconServices, sidecarData,
|
|
119
|
-
console.log('unsortedUpdates', unsortedUpdates);
|
|
119
|
+
const unsortedUpdates = await Resolve.beaconSignals(beaconServices, sidecarData, bitcoin);
|
|
120
120
|
// If no updates found, return the current document
|
|
121
121
|
if (!unsortedUpdates.length) {
|
|
122
|
-
// Set the
|
|
122
|
+
// Set the didDocument in didResolutionResult based on currentDocument
|
|
123
123
|
didResolutionResult.didDocument = currentDocument;
|
|
124
|
-
// Set
|
|
124
|
+
// Set other required fields in the didResolutionResult
|
|
125
125
|
didResolutionResult.didDocumentMetadata.deactivated = !!currentDocument.deactivated;
|
|
126
|
+
didResolutionResult.didDocumentMetadata.versionId = versionId ?? '1';
|
|
126
127
|
// Return the didResolutionResult early
|
|
127
128
|
return didResolutionResult;
|
|
128
129
|
}
|
|
129
130
|
// Process the updates to apply updates to bring the current DID Document to its more current state
|
|
130
|
-
const result = await Resolve.updates(currentDocument, unsortedUpdates, resolutionOptions.versionTime,
|
|
131
|
+
const result = await Resolve.updates(currentDocument, unsortedUpdates, resolutionOptions.versionTime, versionId);
|
|
131
132
|
// Set all of the required fields in the didResolutionResult
|
|
132
|
-
didResolutionResult.didDocument = result.
|
|
133
|
-
didResolutionResult.didDocumentMetadata
|
|
134
|
-
didResolutionResult.didDocumentMetadata.versionId = result.versionId;
|
|
135
|
-
didResolutionResult.didDocumentMetadata.deactivated = !!result.currentDocument.deactivated;
|
|
133
|
+
didResolutionResult.didDocument = result.didDocument;
|
|
134
|
+
didResolutionResult.didDocumentMetadata = result.metadata;
|
|
136
135
|
// Return didResolutionResult;
|
|
137
136
|
return didResolutionResult;
|
|
138
137
|
}
|
|
139
138
|
catch (error) {
|
|
140
|
-
console.error(error);
|
|
141
139
|
// Rethrow any unexpected errors that are not a `ResolveError`.
|
|
142
140
|
if (!(error instanceof ResolveError))
|
|
143
|
-
throw new Error(error);
|
|
141
|
+
throw new Error(error.message ?? error, { cause: error });
|
|
144
142
|
// Return a DID Resolution Result with the appropriate error code.
|
|
145
143
|
return {
|
|
146
144
|
...EMPTY_DID_RESOLUTION_RESULT,
|
|
@@ -166,7 +164,7 @@ export class DidBtcr2 {
|
|
|
166
164
|
* @param {string} params.verificationMethodId The verificationMethod ID to sign the update with.
|
|
167
165
|
* @param {string} params.beaconId The beacon ID associated with the update.
|
|
168
166
|
* @param {KeyBytes | HexString} [params.signingMaterial] Optional signing material (key bytes or hex string).
|
|
169
|
-
* @param {
|
|
167
|
+
* @param {BitcoinConnection} [params.bitcoin] Optional Bitcoin network connection for announcing the update. If not provided, a default connection will be initialized.
|
|
170
168
|
* @return {Promise<SignedBTCR2Update>} Promise resolving to the signed BTCR2 update.
|
|
171
169
|
* @throws {UpdateError} if no verificationMethod, verificationMethod type is not `Multikey` or the publicKeyMultibase
|
|
172
170
|
* header is not `zQ3s`
|
|
@@ -212,10 +210,13 @@ export class DidBtcr2 {
|
|
|
212
210
|
if (!beaconService) {
|
|
213
211
|
throw new UpdateError('No beacon service found for provided beaconId', INVALID_DID_UPDATE, { sourceDocument, beaconId });
|
|
214
212
|
}
|
|
215
|
-
//
|
|
216
|
-
|
|
213
|
+
// Require an explicit bitcoin connection — no silent env-var fallback
|
|
214
|
+
if (!bitcoin) {
|
|
215
|
+
throw new UpdateError('Bitcoin connection required for update. Pass a configured `bitcoin` parameter '
|
|
216
|
+
+ 'or use DidBtcr2Api which injects it automatically.', INVALID_DID_UPDATE, { beaconId });
|
|
217
|
+
}
|
|
217
218
|
// Announce the signed update to the blockchain using the specified beacon(s)
|
|
218
|
-
|
|
219
|
+
await Update.announce(beaconService, signed, secretKey, bitcoin);
|
|
219
220
|
// Return signed update if announced successfully
|
|
220
221
|
return signed;
|
|
221
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-btcr2.js","sourceRoot":"","sources":["../../src/did-btcr2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"did-btcr2.js","sourceRoot":"","sources":["../../src/did-btcr2.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,6 @@ export class DidDocumentBuilder {
|
|
|
17
17
|
this.document['@context'] = initialDocument['@context'];
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
withController(controller) {
|
|
21
|
-
if (controller) {
|
|
22
|
-
this.document.controller = controller ?? [this.document.id];
|
|
23
|
-
}
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
20
|
withAuthentication(authentication) {
|
|
27
21
|
if (authentication) {
|
|
28
22
|
this.document.authentication = authentication;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-document-builder.js","sourceRoot":"","sources":["../../../src/utils/did-document-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,GAAyB,EAAE,CAAC;IAE5C,YAAY,eAAqC;QAC/C,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAE5E,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"did-document-builder.js","sourceRoot":"","sources":["../../../src/utils/did-document-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,GAAyB,EAAE,CAAC;IAE5C,YAAY,eAAqC;QAC/C,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAE5E,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,cAAqD;QACtE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,eAAsD;QACxE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB,CAAC,oBAA2D;QAClF,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB,CAAC,oBAA2D;QAClF,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,OAA6B;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAuB,CAAC,CAAC;QAElE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,IAAI,WAAW,CAAC,GAAwB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,WAAW,CAAC,GAAwB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
|