@did-btcr2/method 0.19.0 → 0.20.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/dist/browser.js +715 -1445
- package/dist/browser.mjs +715 -1445
- package/dist/cjs/core/beacon/beacon.js +25 -0
- package/dist/cjs/core/beacon/beacon.js.map +1 -0
- package/dist/cjs/core/beacon/cas-beacon.js +20 -36
- package/dist/cjs/core/beacon/cas-beacon.js.map +1 -1
- package/dist/cjs/core/beacon/error.js +4 -4
- package/dist/cjs/core/beacon/error.js.map +1 -1
- package/dist/cjs/core/beacon/factory.js +5 -7
- package/dist/cjs/core/beacon/factory.js.map +1 -1
- package/dist/cjs/core/beacon/interfaces.js +1 -31
- package/dist/cjs/core/beacon/interfaces.js.map +1 -1
- package/dist/cjs/core/beacon/signal-discovery.js +183 -0
- package/dist/cjs/core/beacon/signal-discovery.js.map +1 -0
- package/dist/cjs/core/beacon/singleton.js +54 -81
- package/dist/cjs/core/beacon/singleton.js.map +1 -1
- package/dist/cjs/core/beacon/smt-beacon.js +22 -39
- package/dist/cjs/core/beacon/smt-beacon.js.map +1 -1
- package/dist/cjs/core/beacon/utils.js +4 -9
- package/dist/cjs/core/beacon/utils.js.map +1 -1
- package/dist/cjs/core/resolve.js +87 -277
- package/dist/cjs/core/resolve.js.map +1 -1
- package/dist/cjs/core/update.js +62 -153
- package/dist/cjs/core/update.js.map +1 -1
- package/dist/cjs/did-btcr2.js +80 -75
- package/dist/cjs/did-btcr2.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/appendix.js +6 -15
- package/dist/cjs/utils/appendix.js.map +1 -1
- package/dist/cjs/utils/did-document-builder.js +5 -0
- package/dist/cjs/utils/did-document-builder.js.map +1 -1
- package/dist/cjs/utils/did-document.js +11 -14
- package/dist/cjs/utils/did-document.js.map +1 -1
- package/dist/esm/core/beacon/beacon.js +25 -0
- package/dist/esm/core/beacon/beacon.js.map +1 -0
- package/dist/esm/core/beacon/cas-beacon.js +20 -36
- package/dist/esm/core/beacon/cas-beacon.js.map +1 -1
- package/dist/esm/core/beacon/error.js +4 -4
- package/dist/esm/core/beacon/error.js.map +1 -1
- package/dist/esm/core/beacon/factory.js +5 -7
- package/dist/esm/core/beacon/factory.js.map +1 -1
- package/dist/esm/core/beacon/interfaces.js +1 -31
- package/dist/esm/core/beacon/interfaces.js.map +1 -1
- package/dist/esm/core/beacon/signal-discovery.js +183 -0
- package/dist/esm/core/beacon/signal-discovery.js.map +1 -0
- package/dist/esm/core/beacon/singleton.js +54 -81
- package/dist/esm/core/beacon/singleton.js.map +1 -1
- package/dist/esm/core/beacon/smt-beacon.js +22 -39
- package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
- package/dist/esm/core/beacon/utils.js +4 -9
- package/dist/esm/core/beacon/utils.js.map +1 -1
- package/dist/esm/core/resolve.js +87 -277
- package/dist/esm/core/resolve.js.map +1 -1
- package/dist/esm/core/update.js +62 -153
- package/dist/esm/core/update.js.map +1 -1
- package/dist/esm/did-btcr2.js +80 -75
- package/dist/esm/did-btcr2.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/appendix.js +6 -15
- package/dist/esm/utils/appendix.js.map +1 -1
- package/dist/esm/utils/did-document-builder.js +5 -0
- package/dist/esm/utils/did-document-builder.js.map +1 -1
- package/dist/esm/utils/did-document.js +11 -14
- package/dist/esm/utils/did-document.js.map +1 -1
- package/dist/types/core/beacon/beacon.d.ts +44 -0
- package/dist/types/core/beacon/beacon.d.ts.map +1 -0
- package/dist/types/core/beacon/cas-beacon.d.ts +19 -30
- package/dist/types/core/beacon/cas-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/error.d.ts +2 -2
- package/dist/types/core/beacon/error.d.ts.map +1 -1
- package/dist/types/core/beacon/factory.d.ts +4 -6
- package/dist/types/core/beacon/factory.d.ts.map +1 -1
- package/dist/types/core/beacon/interfaces.d.ts +7 -46
- package/dist/types/core/beacon/interfaces.d.ts.map +1 -1
- package/dist/types/core/beacon/signal-discovery.d.ts +25 -0
- package/dist/types/core/beacon/signal-discovery.d.ts.map +1 -0
- package/dist/types/core/beacon/singleton.d.ts +16 -29
- package/dist/types/core/beacon/singleton.d.ts.map +1 -1
- package/dist/types/core/beacon/smt-beacon.d.ts +21 -33
- package/dist/types/core/beacon/smt-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/utils.d.ts.map +1 -1
- package/dist/types/core/interfaces.d.ts +1 -8
- package/dist/types/core/interfaces.d.ts.map +1 -1
- package/dist/types/core/resolve.d.ts +27 -43
- package/dist/types/core/resolve.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +21 -8
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/update.d.ts +30 -73
- package/dist/types/core/update.d.ts.map +1 -1
- package/dist/types/did-btcr2.d.ts +37 -44
- package/dist/types/did-btcr2.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/appendix.d.ts.map +1 -1
- package/dist/types/utils/did-document-builder.d.ts +5 -0
- package/dist/types/utils/did-document-builder.d.ts.map +1 -1
- package/dist/types/utils/did-document.d.ts +16 -14
- package/dist/types/utils/did-document.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/core/beacon/beacon.ts +58 -0
- package/src/core/beacon/cas-beacon.ts +30 -44
- package/src/core/beacon/error.ts +5 -6
- package/src/core/beacon/factory.ts +7 -9
- package/src/core/beacon/interfaces.ts +7 -64
- package/src/core/beacon/signal-discovery.ts +237 -0
- package/src/core/beacon/singleton.ts +74 -94
- package/src/core/beacon/smt-beacon.ts +32 -49
- package/src/core/beacon/utils.ts +16 -13
- package/src/core/interfaces.ts +1 -9
- package/src/core/resolve.ts +116 -360
- package/src/core/types.ts +25 -8
- package/src/core/update.ts +90 -235
- package/src/did-btcr2.ts +131 -95
- package/src/index.ts +8 -1
- package/src/utils/appendix.ts +8 -22
- package/src/utils/did-document-builder.ts +5 -0
- package/src/utils/did-document.ts +41 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/resolve.ts"],"names":[],"mappings":"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"}
|
|
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,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { INVALID_DID_UPDATE, JSONPatch, UpdateError } from '@did-btcr2/common';
|
|
2
2
|
import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
|
|
3
|
-
import { CompressedSecp256k1PublicKey, SchnorrKeyPair, Secp256k1SecretKey } from '@did-btcr2/keypair';
|
|
4
|
-
import { Kms } from '@did-btcr2/kms';
|
|
5
3
|
import { canonicalization } from '../did-btcr2.js';
|
|
6
|
-
import { Appendix } from '../utils/appendix.js';
|
|
7
4
|
import { DidDocument } from '../utils/did-document.js';
|
|
8
|
-
import {
|
|
5
|
+
import { BeaconFactory } from './beacon/factory.js';
|
|
9
6
|
/**
|
|
10
|
-
* Implements {@link https://dcdpr.github.io/did-btcr2
|
|
7
|
+
* Implements {@link https://dcdpr.github.io/did-btcr2/operations/update.html | 7.3 Update}.
|
|
11
8
|
*
|
|
12
9
|
* An update to a did:btcr2 document is an invoked capability using the ZCAP-LD
|
|
13
10
|
* data format, signed by a verificationMethod that has the authority to make
|
|
@@ -20,109 +17,62 @@ import { Identifier } from './identifier.js';
|
|
|
20
17
|
*/
|
|
21
18
|
export class Update {
|
|
22
19
|
/**
|
|
23
|
-
* Implements {@link https://dcdpr.github.io/did-btcr2
|
|
20
|
+
* Implements subsection {@link https://dcdpr.github.io/did-btcr2/operations/update.html#construct-btcr2-unsigned-update | 7.3.b Construct BTCR2 Unsigned Update}.
|
|
21
|
+
* This process constructs a BTCR2 Unsigned Update conformant to the spec template.
|
|
24
22
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @
|
|
30
|
-
* @param {string} params.identifier The did-btcr2 identifier to use for verification.
|
|
31
|
-
* @param {DidDocument} params.sourceDocument The source document to be updated.
|
|
32
|
-
* @param {string} params.sourceVersionId The versionId of the source document.
|
|
33
|
-
* @param {DidDocumentPatch} params.patch The JSON patch to be applied to the source document.
|
|
34
|
-
* @returns {Promise<BTCR2SignedUpdate>} The constructed BTCR2SignedUpdate object.
|
|
35
|
-
* @throws {MethodError} InvalidDid if sourceDocument.id does not match identifier.
|
|
23
|
+
* @param {Btcr2DidDocument} sourceDocument The source DID document to be updated.
|
|
24
|
+
* @param {PatchOperation[]} patches The array of JSON Patch operations to apply to the sourceDocument.
|
|
25
|
+
* @param {number} sourceVersionId The version ID of the source document.
|
|
26
|
+
* @returns {Promise<SignedBTCR2Update>} The constructed SignedBTCR2Update object.
|
|
27
|
+
* @throws {UpdateError} InvalidDid if sourceDocument.id does not match identifier.
|
|
36
28
|
*/
|
|
37
|
-
static async construct(
|
|
38
|
-
//
|
|
39
|
-
if (sourceDocument.id !== identifier) {
|
|
40
|
-
throw new UpdateError('Identifier mismatch: sourceDocument.id !== identifier', INVALID_DID_UPDATE, { sourceDocument, identifier });
|
|
41
|
-
}
|
|
42
|
-
// 2. Initialize an unsigned update.
|
|
29
|
+
static async construct(sourceDocument, patches, sourceVersionId) {
|
|
30
|
+
// Initialize an unsigned update conformant to btcr2 spec.
|
|
43
31
|
const unsignedUpdate = {
|
|
44
|
-
// 3. Set BTCR2SignedUpdate.@context to the following list
|
|
45
32
|
'@context': [
|
|
46
33
|
'https://w3id.org/security/v2',
|
|
47
34
|
'https://w3id.org/zcap/v1',
|
|
48
35
|
'https://w3id.org/json-ld-patch/v1',
|
|
49
36
|
'https://btcr2.dev/context/v1'
|
|
50
37
|
],
|
|
51
|
-
|
|
52
|
-
patch,
|
|
38
|
+
patch: patches,
|
|
53
39
|
targetHash: '',
|
|
54
|
-
targetVersionId:
|
|
55
|
-
sourceHash: '',
|
|
40
|
+
targetVersionId: sourceVersionId + 1,
|
|
41
|
+
sourceHash: canonicalization.process(sourceDocument, { encoding: 'base58' }),
|
|
56
42
|
};
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
//
|
|
68
|
-
unsignedUpdate.targetHash =
|
|
69
|
-
//
|
|
70
|
-
unsignedUpdate.targetVersionId = sourceVersionId + 1;
|
|
71
|
-
// 12. Return updatePayload.
|
|
43
|
+
// Apply all JSON patches to sourceDocument.
|
|
44
|
+
const targetDocument = JSONPatch.apply(sourceDocument, patches);
|
|
45
|
+
try {
|
|
46
|
+
// Ensure the targetDocument is conformant to DID Core v1.1.
|
|
47
|
+
DidDocument.isValid(targetDocument);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
// If validation fails, throw an UpdateError with INVALID_DID_UPDATE.
|
|
51
|
+
throw new UpdateError('Error validating targetDocument: ' + (error instanceof Error ? error.message : String(error)), INVALID_DID_UPDATE, targetDocument);
|
|
52
|
+
}
|
|
53
|
+
// Set the targetHash by canonicalizing the targetDocument and encoding it in base58.
|
|
54
|
+
unsignedUpdate.targetHash = canonicalization.process(targetDocument, { encoding: 'base58' });
|
|
55
|
+
// Return unsignedUpdate.
|
|
72
56
|
return unsignedUpdate;
|
|
73
57
|
}
|
|
74
58
|
/**
|
|
75
|
-
* {@link
|
|
59
|
+
* Implements subsection {@link http://dcdpr.github.io/did-btcr2/operations/update.html#construct-btcr2-signed-update | 7.3.c Construct BTCR2 Signed Update }.
|
|
60
|
+
* This process constructs a BTCR2 Signed Update from a BTCR2 Unsigned Update.
|
|
76
61
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* @param {InvokePayloadParams} params Required params for calling the invokePayload method
|
|
83
|
-
* @param {string} params.identifier The did-btcr2 identifier to derive the root capability from
|
|
84
|
-
* @param {BTCR2SignedUpdate} params.BTCR2SignedUpdate The updatePayload object to be signed
|
|
85
|
-
* @param {DidVerificationMethod} params.verificationMethod The verificationMethod object to be used for signing
|
|
86
|
-
* @returns {BTCR2SignedUpdate} Did update payload secured with a proof => BTCR2SignedUpdate
|
|
87
|
-
* @throws {MethodError} if the privateKeyBytes are invalid
|
|
62
|
+
* @param {string} did The did-btcr2 identifier to derive the root capability from
|
|
63
|
+
* @param {UnsignedBTCR2Update} unsignedUpdate The updatePayload object to be signed
|
|
64
|
+
* @param {DidVerificationMethod} verificationMethod The verificationMethod object to be used for signing
|
|
65
|
+
* @returns {SignedBTCR2Update} Did update payload secured with a proof => SignedBTCR2Update
|
|
66
|
+
* @throws {UpdateError} if the privateKeyBytes are invalid
|
|
88
67
|
*/
|
|
89
|
-
static async
|
|
90
|
-
//
|
|
91
|
-
const
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
// associated with the verificationMethod value.
|
|
98
|
-
// 1.1 Let id be the fragment portion of verificationMethod.id.
|
|
99
|
-
const id = fullId.slice(fullId.indexOf('#'));
|
|
100
|
-
// 1.2 Retrieve the key pair from the KMS or from the secretKeyMultibase
|
|
101
|
-
const components = Identifier.decode(id);
|
|
102
|
-
const keyUri = new CompressedSecp256k1PublicKey(components.genesisBytes).hex;
|
|
103
|
-
const keys = secretKeyMultibase
|
|
104
|
-
? new SchnorrKeyPair({ secretKey: Secp256k1SecretKey.decode(secretKeyMultibase) })
|
|
105
|
-
: Kms.getKey(keyUri);
|
|
106
|
-
if (!keys) {
|
|
107
|
-
throw new MethodError('No privateKey found in kms or vm', NOT_FOUND, verificationMethod);
|
|
108
|
-
}
|
|
109
|
-
// 1.3 Set multikey to the result of passing verificationMethod and privateKeyBytes into the Multikey Creation algorithm.
|
|
110
|
-
const multikey = SchnorrMultikey.create({ id, controller, keys });
|
|
111
|
-
// 1.4 If the privateKey is not found, throw an error
|
|
112
|
-
if (!multikey) {
|
|
113
|
-
throw new MethodError('Failed to create multikey from verification method', 'MULTKEY_CREATE_FAILED', verificationMethod);
|
|
114
|
-
}
|
|
115
|
-
// 2. Set rootCapability to the result of passing Identifier into the Derive Root Capability from did:btcr2
|
|
116
|
-
// Identifier algorithm.
|
|
117
|
-
const rootCapability = Appendix.deriveRootCapability(identifier);
|
|
118
|
-
const cryptosuite = 'bip340-jcs-2025';
|
|
119
|
-
// 3. Initialize proofOptions to an empty object.
|
|
120
|
-
// 4. Set proofOptions.type to DataIntegrityProof.
|
|
121
|
-
// 5. Set proofOptions.cryptosuite to schnorr-secp256k1-jcs-2025.
|
|
122
|
-
// 6. Set proofOptions.verificationMethod to verificationMethod.id.
|
|
123
|
-
// 7. Set proofOptions.proofPurpose to capabilityInvocation.
|
|
124
|
-
// 8. Set proofOptions.capability to rootCapability.id.
|
|
125
|
-
// 9. Set proofOptions.capabilityAction to Write.
|
|
68
|
+
static async sign(did, unsignedUpdate, verificationMethod, secretKey) {
|
|
69
|
+
// Parse the controller from the verificationMethod
|
|
70
|
+
const controller = verificationMethod.controller;
|
|
71
|
+
// Parse the fragment from the vmId
|
|
72
|
+
const id = verificationMethod.id.slice(verificationMethod.id.indexOf('#'));
|
|
73
|
+
// Construct a Schnorr Multikey
|
|
74
|
+
const multikey = SchnorrMultikey.fromSecretKey(id, controller, secretKey);
|
|
75
|
+
// Define the Data Integrity proof config
|
|
126
76
|
const config = {
|
|
127
77
|
'@context': [
|
|
128
78
|
'https://w3id.org/security/v2',
|
|
@@ -130,75 +80,34 @@ export class Update {
|
|
|
130
80
|
'https://w3id.org/json-ld-patch/v1',
|
|
131
81
|
'https://btcr2.dev/context/v1'
|
|
132
82
|
],
|
|
133
|
-
cryptosuite,
|
|
83
|
+
cryptosuite: 'bip340-jcs-2025',
|
|
134
84
|
type: 'DataIntegrityProof',
|
|
135
|
-
verificationMethod:
|
|
85
|
+
verificationMethod: verificationMethod.id,
|
|
136
86
|
proofPurpose: 'capabilityInvocation',
|
|
137
|
-
capability:
|
|
87
|
+
capability: `urn:zcap:root:${encodeURIComponent(did)}`,
|
|
138
88
|
capabilityAction: 'Write',
|
|
139
89
|
};
|
|
140
|
-
//
|
|
141
|
-
// Integrity specification passing in proofOptions.
|
|
90
|
+
// Go from multikey => cryptosuite => diproof
|
|
142
91
|
const diproof = multikey.toCryptosuite().toDataIntegrityProof();
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
// 13. Return BTCR2SignedUpdate.
|
|
146
|
-
return await diproof.addProof(unsignedUpdate, config);
|
|
92
|
+
// Use the config to add a proof to the unsigned update
|
|
93
|
+
return diproof.addProof(unsignedUpdate, config);
|
|
147
94
|
}
|
|
148
95
|
/**
|
|
149
|
-
* Implements {@link https://dcdpr.github.io/did-btcr2
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* data to validate the Beacon Signal
|
|
155
|
-
*
|
|
156
|
-
* @param {AnnounceUpdatePayloadParams} params Required params for calling the announcePayload method
|
|
157
|
-
* @param {DidDocument} params.sourceDocument The did-btcr2 did document to derive the root capability from
|
|
158
|
-
* @param {string[]} params.beaconIds The BTCR2SignedUpdate object to be signed
|
|
159
|
-
* @param {BTCR2SignedUpdate} params.BTCR2SignedUpdate The verificationMethod object to be used for signing
|
|
160
|
-
* @returns {BTCR2SignedUpdate} The BTCR2SignedUpdate object containing data to validate the Beacon Signal
|
|
161
|
-
* @throws {MethodError} if the beaconService type is invalid
|
|
96
|
+
* Implements subsection {@link https://dcdpr.github.io/did-btcr2/operations/update.html#announce-did-update | 7.3.d Announce DID Update}.
|
|
97
|
+
* BTCR2 Signed Updates are announced to the Bitcoin blockchain depending on the Beacon Type.
|
|
98
|
+
* @param {BeaconService} beaconService The BeaconService object representing the funded beacon to announce the update to.
|
|
99
|
+
* @param {SignedBTCR2Update} update The signed update object to be announced.
|
|
100
|
+
* @param {KeyBytes} secretKey The private key used to sign the update for announcement.
|
|
101
|
+
* @returns {SignedBTCR2Update} The SignedBTCR2Update object containing data to validate the Beacon Signal
|
|
102
|
+
* @throws {UpdateError} if the beaconService type is invalid
|
|
162
103
|
*/
|
|
163
|
-
static async announce(
|
|
164
|
-
//
|
|
165
|
-
const
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
// 3. For beaconId in beaconIds:
|
|
169
|
-
for (const beaconId of beaconIds) {
|
|
170
|
-
// 3.1 Find the beacon services in the sourceDocument
|
|
171
|
-
const beaconService = sourceDocument.service.find((s) => s.id === beaconId);
|
|
172
|
-
// 3.2 If no beaconService MUST throw beaconNotFound error.
|
|
173
|
-
if (!beaconService) {
|
|
174
|
-
throw new MethodError('Not found: sourceDocument does not contain beaconId', INVALID_DID_DOCUMENT, { beaconId });
|
|
175
|
-
}
|
|
176
|
-
// 3.3 Push beaconService to beaconServices.
|
|
177
|
-
beaconServices.push(beaconService);
|
|
178
|
-
}
|
|
179
|
-
// 4. For beaconService in beaconServices:
|
|
180
|
-
for (const beaconService of beaconServices) {
|
|
181
|
-
// 4.1 Set signalMetadata to null.
|
|
182
|
-
// 4.2 If beaconService.type == SingletonBeacon:
|
|
183
|
-
// 4.2.1 Set signalMetadata to the result of passing beaconService and BTCR2SignedUpdate to the Broadcast
|
|
184
|
-
// Singleton Beacon Signal algorithm.
|
|
185
|
-
// 4.3 Else If beaconService.type == CASBeacon:
|
|
186
|
-
// 4.3.1 Set signalMetadata to the result of passing Identifier, beaconService and BTCR2SignedUpdate to
|
|
187
|
-
// the Broadcast CIDAggregate Beacon Signal algorithm.
|
|
188
|
-
// 4.4 Else If beaconService.type == SMTBeacon:
|
|
189
|
-
// 4.4.1 Set signalMetadata to the result of passing Identifier, beaconService and BTCR2SignedUpdate to
|
|
190
|
-
// the Broadcast SMTAggregate Beacon Signal algorithm.
|
|
191
|
-
// 4.5 Else:
|
|
192
|
-
// 4.5.1 MUST throw invalidBeacon error.
|
|
193
|
-
// const beacon = BeaconFactory.establish(beaconService);
|
|
194
|
-
// sidecarData = await beacon.broadcastSignal(signedUpdate);
|
|
195
|
-
console.log('TODO: refactor this code', signedUpdate, beaconService);
|
|
196
|
-
}
|
|
197
|
-
if (!sidecarData) {
|
|
198
|
-
throw new MethodError('Invalid beacon: no sidecarData found', INVALID_DID_DOCUMENT, { beaconServices });
|
|
199
|
-
}
|
|
104
|
+
static async announce(beaconService, update, secretKey, bitcoin) {
|
|
105
|
+
// Establish a beacon object
|
|
106
|
+
const beacon = BeaconFactory.establish(beaconService);
|
|
107
|
+
// Broadcast the update
|
|
108
|
+
const result = await beacon.broadcastSignal(update, secretKey, bitcoin);
|
|
200
109
|
// Return the sidecarData
|
|
201
|
-
return
|
|
110
|
+
return result;
|
|
202
111
|
}
|
|
203
112
|
}
|
|
204
113
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/core/update.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
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,5 @@
|
|
|
1
1
|
import { BitcoinNetworkConnection } from '@did-btcr2/bitcoin';
|
|
2
|
-
import { Canonicalization, IdentifierHrp, INVALID_DID_DOCUMENT, METHOD_NOT_SUPPORTED, MethodError, MISSING_UPDATE_DATA, ResolveError } from '@did-btcr2/common';
|
|
2
|
+
import { Canonicalization, IdentifierHrp, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, METHOD_NOT_SUPPORTED, MethodError, MISSING_UPDATE_DATA, ResolveError, UpdateError } from '@did-btcr2/common';
|
|
3
3
|
import { Did, DidError, DidErrorCode, EMPTY_DID_RESOLUTION_RESULT } from '@web5/dids';
|
|
4
4
|
import { initEccLib } from 'bitcoinjs-lib';
|
|
5
5
|
import * as tinysecp from 'tiny-secp256k1';
|
|
@@ -8,9 +8,9 @@ import { Identifier } from './core/identifier.js';
|
|
|
8
8
|
import { Resolve } from './core/resolve.js';
|
|
9
9
|
import { Update } from './core/update.js';
|
|
10
10
|
import { Appendix } from './utils/appendix.js';
|
|
11
|
-
// TODO: convert to API driver
|
|
11
|
+
// TODO: convert to API driver?
|
|
12
12
|
export const canonicalization = new Canonicalization();
|
|
13
|
-
// TODO: convert to API driver
|
|
13
|
+
// TODO: convert to API driver?
|
|
14
14
|
/** Initialize tiny secp256k1 */
|
|
15
15
|
initEccLib(tinysecp);
|
|
16
16
|
/**
|
|
@@ -27,7 +27,9 @@ initEccLib(tinysecp);
|
|
|
27
27
|
* @implements {DidMethod}
|
|
28
28
|
*/
|
|
29
29
|
export class DidBtcr2 {
|
|
30
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Name of the DID method, as defined in the DID BTCR2 specification
|
|
32
|
+
*/
|
|
31
33
|
static methodName = 'btcr2';
|
|
32
34
|
/**
|
|
33
35
|
* Implements section {@link https://dcdpr.github.io/did-btcr2/operations/create.html | 7.1 Create}.
|
|
@@ -50,7 +52,7 @@ export class DidBtcr2 {
|
|
|
50
52
|
return Identifier.encode({ idType, genesisBytes, version, network });
|
|
51
53
|
}
|
|
52
54
|
/**
|
|
53
|
-
* Entry point for section {@link https://dcdpr.github.io/did-btcr2
|
|
55
|
+
* Entry point for section {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html | 7.2 Resolve}.
|
|
54
56
|
* See specification for the {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process | Resolve Process}.
|
|
55
57
|
* See {@link Resolve | Resolve (class)} for class implementation.
|
|
56
58
|
*
|
|
@@ -59,14 +61,10 @@ export class DidBtcr2 {
|
|
|
59
61
|
* blockchain by Authorized Beacon Signals. The Initial DID Document is either
|
|
60
62
|
* deterministically created from the DID or provided by Sidecar Data.
|
|
61
63
|
*
|
|
62
|
-
* @param {string} did
|
|
63
|
-
* @param {ResolutionOptions} resolutionOptions
|
|
64
|
-
* @param {number} resolutionOptions.versionId optional version of the identifier and/or DID document
|
|
65
|
-
* @param {number} resolutionOptions.versionTime optional timestamp used during resolution as a bound for when to stop resolving
|
|
66
|
-
* @param {DidDocument} resolutionOptions.sidecar optional data necessary for resolving a DID
|
|
64
|
+
* @param {string} did The did:btcr2 identifier to be resolved.
|
|
65
|
+
* @param {ResolutionOptions} resolutionOptions Options used during the resolution process.
|
|
67
66
|
* @returns {Promise<DidResolutionResult>} Promise resolving to a DID Resolution Result containing the `targetDocument`
|
|
68
|
-
* @throws {
|
|
69
|
-
* @throws {DidError} InvalidDid if the identifier is invalid
|
|
67
|
+
* @throws {ResolveError} If the resolution process fails at any step.
|
|
70
68
|
* @example
|
|
71
69
|
* ```ts
|
|
72
70
|
* const resolution = await DidBtcr2.resolve(
|
|
@@ -91,9 +89,12 @@ export class DidBtcr2 {
|
|
|
91
89
|
// Decode the did to be resolved
|
|
92
90
|
const didComponents = Identifier.decode(did);
|
|
93
91
|
// Process sidecar if provided
|
|
94
|
-
const sidecarData = Resolve.
|
|
95
|
-
//
|
|
96
|
-
if (!resolutionOptions
|
|
92
|
+
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
|
|
97
98
|
resolutionOptions.drivers.bitcoin = new BitcoinNetworkConnection();
|
|
98
99
|
// Set the network based on the decoded identifier
|
|
99
100
|
resolutionOptions.drivers.bitcoin.setActiveNetwork(didComponents.network);
|
|
@@ -107,13 +108,15 @@ export class DidBtcr2 {
|
|
|
107
108
|
throw new ResolveError('External resolution requires genesisDocument', MISSING_UPDATE_DATA, { resolutionOptions });
|
|
108
109
|
}
|
|
109
110
|
// Establish the current document
|
|
110
|
-
const currentDocument = await Resolve.
|
|
111
|
+
const currentDocument = await Resolve.currentDocument(didComponents, genesisDocument);
|
|
111
112
|
// Extract all Beacon services from the current DID Document
|
|
112
113
|
const beaconServices = currentDocument.service
|
|
113
114
|
.filter(BeaconUtils.isBeaconService)
|
|
114
115
|
.map(BeaconUtils.parseBeaconServiceEndpoint);
|
|
116
|
+
console.log('beaconServices', beaconServices);
|
|
115
117
|
// Process the Beacon Signals to get the required updates
|
|
116
|
-
const unsortedUpdates = await Resolve.
|
|
118
|
+
const unsortedUpdates = await Resolve.beaconSignals(beaconServices, sidecarData, resolutionOptions.drivers.bitcoin);
|
|
119
|
+
console.log('unsortedUpdates', unsortedUpdates);
|
|
117
120
|
// If no updates found, return the current document
|
|
118
121
|
if (!unsortedUpdates.length) {
|
|
119
122
|
// Set the current document in the didResolutionResult
|
|
@@ -124,7 +127,7 @@ export class DidBtcr2 {
|
|
|
124
127
|
return didResolutionResult;
|
|
125
128
|
}
|
|
126
129
|
// Process the updates to apply updates to bring the current DID Document to its more current state
|
|
127
|
-
const result = await Resolve.
|
|
130
|
+
const result = await Resolve.updates(currentDocument, unsortedUpdates, resolutionOptions.versionTime, resolutionOptions.versionId);
|
|
128
131
|
// Set all of the required fields in the didResolutionResult
|
|
129
132
|
didResolutionResult.didDocument = result.currentDocument;
|
|
130
133
|
didResolutionResult.didDocumentMetadata.confirmations = result.confirmations;
|
|
@@ -149,77 +152,79 @@ export class DidBtcr2 {
|
|
|
149
152
|
}
|
|
150
153
|
}
|
|
151
154
|
/**
|
|
152
|
-
* Entry point for section {@link https://dcdpr.github.io/did-btcr2/#
|
|
153
|
-
* See {@link
|
|
154
|
-
*
|
|
155
|
-
* An update to a did:btcr2 document is an invoked capability using the ZCAP-LD data format, signed by a
|
|
156
|
-
* verificationMethod that has the authority to make the update as specified in the previous DID document. Capability
|
|
157
|
-
* invocations for updates MUST be authorized using Data Integrity following the bip340-jcs-2025
|
|
158
|
-
* cryptosuite with a proofPurpose of capabilityInvocation.
|
|
159
|
-
*
|
|
160
|
-
* The Update algorithm takes as inputs a Identifier, sourceDocument, sourceVersionId, documentPatch, a
|
|
161
|
-
* verificationMethodId and an array of beaconIds. The sourceDocument is the DID document being updated. The
|
|
162
|
-
* documentPatch is a JSON Patch object containing a set of transformations to be applied to the sourceDocument.
|
|
163
|
-
* The result of these transformations MUST produce a DID document conformant to the DID Core specification. The
|
|
164
|
-
* verificationMethodId is an identifier for a verificationMethod within the sourceDocument. The verificationMethod
|
|
165
|
-
* identified MUST be a BIP340 Multikey. The beaconIds MUST identify service endpoints with one of the three Beacon
|
|
166
|
-
* Types SingletonBeacon, CASBeacon, and SMTBeacon.
|
|
155
|
+
* Entry point for section {@link https://dcdpr.github.io/did-btcr2/#read | 7.3 Update}.
|
|
156
|
+
* See specification for the {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process | Resolve Process}.
|
|
157
|
+
* See {@link Update | Update (class)} for class implementation.
|
|
167
158
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
* @param
|
|
172
|
-
* @param {
|
|
173
|
-
* @param {
|
|
174
|
-
* @param {string
|
|
175
|
-
* @
|
|
176
|
-
* @
|
|
159
|
+
* BTCR2 DID documents can be updated by anchoring BTCR2 Updates to Bitcoin transactions. These transactions MAY be
|
|
160
|
+
* published to the Bitcoin network. Any property in the DID document may be updated except the id. Doing so would
|
|
161
|
+
* invalidate the DID document.
|
|
162
|
+
* @param params An object containing the parameters for the update operation.
|
|
163
|
+
* @param {Btcr2DidDocument} params.sourceDocument The DID document being updated.
|
|
164
|
+
* @param {PatchOperation[]} params.patches The array of JSON Patch operations to apply to the sourceDocument.
|
|
165
|
+
* @param {string} params.sourceVersionId The version ID before applying the update.
|
|
166
|
+
* @param {string} params.verificationMethodId The verificationMethod ID to sign the update with.
|
|
167
|
+
* @param {string} params.beaconId The beacon ID associated with the update.
|
|
168
|
+
* @param {KeyBytes | HexString} [params.signingMaterial] Optional signing material (key bytes or hex string).
|
|
169
|
+
* @param {BitcoinNetworkConnection} [params.bitcoin] Optional Bitcoin network connection for announcing the update. If not provided, a default connection will be initialized.
|
|
170
|
+
* @return {Promise<SignedBTCR2Update>} Promise resolving to the signed BTCR2 update.
|
|
171
|
+
* @throws {UpdateError} if no verificationMethod, verificationMethod type is not `Multikey` or the publicKeyMultibase
|
|
172
|
+
* header is not `zQ3s`
|
|
177
173
|
*/
|
|
178
|
-
static async update(
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
174
|
+
static async update({ sourceDocument, patches, sourceVersionId, verificationMethodId, beaconId, signingMaterial, bitcoin, }) {
|
|
175
|
+
// TODO: provide KMS as alternative
|
|
176
|
+
// If no signingMaterial provided, throw an UpdateError with INVALID_DID_UPDATE.
|
|
177
|
+
if (!signingMaterial) {
|
|
178
|
+
throw new UpdateError('Missing signing material for update', INVALID_DID_UPDATE, { signingMaterial });
|
|
179
|
+
}
|
|
180
|
+
// Convert signingMaterial to bytes if it's a hex string
|
|
181
|
+
const secretKey = typeof signingMaterial === 'string'
|
|
182
|
+
? Buffer.from(signingMaterial, 'hex')
|
|
183
|
+
: signingMaterial;
|
|
184
|
+
// Validate that the verificationMethodId is authorized for capabilityInvocation
|
|
185
|
+
if (!sourceDocument.capabilityInvocation?.some(vr => vr === verificationMethodId)) {
|
|
186
|
+
throw new UpdateError('Invalid verificationMethodId: not authorized for capabilityInvocation', INVALID_DID_DOCUMENT, sourceDocument);
|
|
187
|
+
}
|
|
188
|
+
// Get the verification method to be used for signing the update
|
|
189
|
+
const verificationMethod = this.getSigningMethod(sourceDocument, verificationMethodId);
|
|
193
190
|
// Validate the verificationMethod exists in the sourceDocument
|
|
194
191
|
if (!verificationMethod) {
|
|
195
|
-
throw new
|
|
192
|
+
throw new UpdateError('Invalid verificationMethod: not found in source document', INVALID_DID_DOCUMENT, { sourceDocument, verificationMethodId });
|
|
196
193
|
}
|
|
197
|
-
//
|
|
198
|
-
// 3.1 verificationMethod.type == Multikey
|
|
194
|
+
// Validate the verificationMethod is of type 'Multikey'
|
|
199
195
|
if (verificationMethod.type !== 'Multikey') {
|
|
200
|
-
throw new
|
|
196
|
+
throw new UpdateError('Invalid verificationMethod: verificationMethod.type must be "Multikey"', INVALID_DID_DOCUMENT, verificationMethod);
|
|
197
|
+
}
|
|
198
|
+
// Validate the publicKeyMultibase prefix is 'zQ3s'
|
|
199
|
+
if (verificationMethod.publicKeyMultibase?.slice(0, 4) !== 'zQ3s') {
|
|
200
|
+
throw new UpdateError('Invalid verificationMethodId: publicKeyMultibase prefix must start with "zQ3s"', INVALID_DID_DOCUMENT, verificationMethod);
|
|
201
201
|
}
|
|
202
|
-
//
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
202
|
+
// Construct an unsigned update following the BTCR2 Update construction algorithm
|
|
203
|
+
const update = await Update.construct(sourceDocument, patches, sourceVersionId);
|
|
204
|
+
// Sign the unsigned update using the specified verification method
|
|
205
|
+
const signed = await Update.sign(sourceDocument.id, update, verificationMethod, secretKey);
|
|
206
|
+
// Filter sourceDocument services to get beaconServices matching beaconIds
|
|
207
|
+
const beaconService = sourceDocument.service
|
|
208
|
+
.filter((service) => service.id === beaconId)
|
|
209
|
+
.filter((service) => !!service)
|
|
210
|
+
.shift();
|
|
211
|
+
// If no matching beacon service found, throw an UpdateError with INVALID_DID_UPDATE.
|
|
212
|
+
if (!beaconService) {
|
|
213
|
+
throw new UpdateError('No beacon service found for provided beaconId', INVALID_DID_UPDATE, { sourceDocument, beaconId });
|
|
206
214
|
}
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
// 6. Return signalsMetadata. It is up to implementations to ensure that the signalsMetadata is persisted.
|
|
214
|
-
return signalsMetadata;
|
|
215
|
-
// TODO: Should we be applying the patch, producing a target did document and returning it?
|
|
215
|
+
// If no bitcoin network connection provided, initialize default
|
|
216
|
+
bitcoin ??= new BitcoinNetworkConnection();
|
|
217
|
+
// Announce the signed update to the blockchain using the specified beacon(s)
|
|
218
|
+
// await Update.announce(beaconService, signed, secretKey, bitcoin);
|
|
219
|
+
// Return signed update if announced successfully
|
|
220
|
+
return signed;
|
|
216
221
|
}
|
|
217
222
|
/**
|
|
218
223
|
* Given the W3C DID Document of a `did:btcr2` identifier, return the signing verification method that will be used
|
|
219
224
|
* for signing messages and credentials. If given, the `methodId` parameter is used to select the
|
|
220
225
|
* verification method. If not given, the Identity Key's verification method with an ID fragment
|
|
221
226
|
* of '#initialKey' is used.
|
|
222
|
-
* @param {
|
|
227
|
+
* @param {Btcr2DidDocument} didDocument The DID Document of the `did:btcr2` identifier.
|
|
223
228
|
* @param {string} [methodId] Optional verification method ID to be used for signing.
|
|
224
229
|
* @returns {DidVerificationMethod} Promise resolving to the {@link DidVerificationMethod} object used for signing.
|
|
225
230
|
* @throws {DidError} if the parsed did method does not match `btcr2` or signing method could not be determined.
|