@did-btcr2/method 0.55.0 → 0.58.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 +10 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/browser.js +3 -3
- package/dist/browser.mjs +3 -3
- package/dist/cjs/index.js +172 -66
- package/dist/esm/core/beacon/beacon.js +11 -1
- package/dist/esm/core/beacon/beacon.js.map +1 -1
- package/dist/esm/core/beacon/cas-beacon.js +7 -6
- package/dist/esm/core/beacon/cas-beacon.js.map +1 -1
- package/dist/esm/core/beacon/factory.js +6 -4
- package/dist/esm/core/beacon/factory.js.map +1 -1
- package/dist/esm/core/beacon/signal-discovery.js +124 -38
- package/dist/esm/core/beacon/signal-discovery.js.map +1 -1
- package/dist/esm/core/beacon/singleton-beacon.js +2 -2
- package/dist/esm/core/beacon/singleton-beacon.js.map +1 -1
- package/dist/esm/core/beacon/smt-beacon.js +7 -6
- package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
- package/dist/esm/core/beacon/utils.js +0 -10
- package/dist/esm/core/beacon/utils.js.map +1 -1
- package/dist/esm/core/did-sender-resolver.js +8 -2
- package/dist/esm/core/did-sender-resolver.js.map +1 -1
- package/dist/esm/core/resolver.js +20 -1
- package/dist/esm/core/resolver.js.map +1 -1
- package/dist/esm/core/updater.js +17 -4
- package/dist/esm/core/updater.js.map +1 -1
- package/dist/esm/did-btcr2.js +23 -7
- package/dist/esm/did-btcr2.js.map +1 -1
- package/dist/esm/utils/appendix.js +36 -5
- package/dist/esm/utils/appendix.js.map +1 -1
- package/dist/types/core/beacon/beacon.d.ts +10 -1
- package/dist/types/core/beacon/beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/cas-beacon.d.ts +2 -1
- package/dist/types/core/beacon/cas-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/factory.d.ts +3 -1
- package/dist/types/core/beacon/factory.d.ts.map +1 -1
- package/dist/types/core/beacon/signal-discovery.d.ts +36 -9
- package/dist/types/core/beacon/signal-discovery.d.ts.map +1 -1
- package/dist/types/core/beacon/singleton-beacon.d.ts +1 -1
- package/dist/types/core/beacon/singleton-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/smt-beacon.d.ts +2 -1
- package/dist/types/core/beacon/smt-beacon.d.ts.map +1 -1
- package/dist/types/core/beacon/utils.d.ts +0 -6
- package/dist/types/core/beacon/utils.d.ts.map +1 -1
- package/dist/types/core/did-sender-resolver.d.ts.map +1 -1
- package/dist/types/core/interfaces.d.ts.map +1 -1
- package/dist/types/core/resolver.d.ts.map +1 -1
- package/dist/types/core/updater.d.ts +11 -4
- package/dist/types/core/updater.d.ts.map +1 -1
- package/dist/types/did-btcr2.d.ts.map +1 -1
- package/dist/types/utils/appendix.d.ts +30 -4
- package/dist/types/utils/appendix.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/core/beacon/beacon.ts +12 -1
- package/src/core/beacon/cas-beacon.ts +7 -6
- package/src/core/beacon/factory.ts +6 -4
- package/src/core/beacon/interfaces.ts +1 -1
- package/src/core/beacon/signal-discovery.ts +141 -42
- package/src/core/beacon/singleton-beacon.ts +2 -2
- package/src/core/beacon/smt-beacon.ts +7 -6
- package/src/core/beacon/utils.ts +0 -13
- package/src/core/did-sender-resolver.ts +10 -2
- package/src/core/interfaces.ts +1 -0
- package/src/core/resolver.ts +33 -2
- package/src/core/updater.ts +25 -5
- package/src/did-btcr2.ts +28 -8
- package/src/utils/appendix.ts +37 -5
package/dist/cjs/index.js
CHANGED
|
@@ -60,7 +60,7 @@ __export(index_exports, {
|
|
|
60
60
|
buildAggregationBeaconTx: () => buildAggregationBeaconTx,
|
|
61
61
|
deriveSingletonAddress: () => deriveSingletonAddress,
|
|
62
62
|
detectSingletonScriptKind: () => detectSingletonScriptKind,
|
|
63
|
-
|
|
63
|
+
extractOpReturnSignalHash: () => extractOpReturnSignalHash,
|
|
64
64
|
getAggregationCommunicationKey: () => getAggregationCommunicationKey,
|
|
65
65
|
isMultikeyVerificationMethod: () => isMultikeyVerificationMethod,
|
|
66
66
|
opReturnScript: () => opReturnScript,
|
|
@@ -280,8 +280,18 @@ var SinglePartyBeacon = class {
|
|
|
280
280
|
* The Beacon service configuration parsed from the DID Document.
|
|
281
281
|
*/
|
|
282
282
|
service;
|
|
283
|
-
|
|
283
|
+
/**
|
|
284
|
+
* The absolute did:btcr2 identifier this beacon instance serves.
|
|
285
|
+
*
|
|
286
|
+
* Injected by the caller rather than recovered from {@link service}. A beacon
|
|
287
|
+
* service `id` is permitted to be a relative DID URL (`#beacon-1`), which
|
|
288
|
+
* carries no DID to strip a fragment from, so deriving the subject from it is
|
|
289
|
+
* only correct for the absolute spelling.
|
|
290
|
+
*/
|
|
291
|
+
did;
|
|
292
|
+
constructor(service, did) {
|
|
284
293
|
this.service = service;
|
|
294
|
+
this.did = did;
|
|
285
295
|
}
|
|
286
296
|
/**
|
|
287
297
|
* Build + sign + broadcast a singleton beacon signal transaction. The beacon
|
|
@@ -424,9 +434,10 @@ var CASBeacon = class extends SinglePartyBeacon {
|
|
|
424
434
|
/**
|
|
425
435
|
* Creates an instance of CASBeacon.
|
|
426
436
|
* @param {BeaconService} service The service of the Beacon.
|
|
437
|
+
* @param {string} did The absolute did:btcr2 identifier this beacon serves.
|
|
427
438
|
*/
|
|
428
|
-
constructor(service) {
|
|
429
|
-
super({ ...service, type: "CASBeacon" });
|
|
439
|
+
constructor(service, did) {
|
|
440
|
+
super({ ...service, type: "CASBeacon" }, did);
|
|
430
441
|
}
|
|
431
442
|
/**
|
|
432
443
|
* Implements {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process-cas-beacon | 7.2.e.1 Process CAS Beacon}.
|
|
@@ -444,7 +455,7 @@ var CASBeacon = class extends SinglePartyBeacon {
|
|
|
444
455
|
processSignals(signals, sidecar) {
|
|
445
456
|
const updates = new Array();
|
|
446
457
|
const needs = new Array();
|
|
447
|
-
const did = this.
|
|
458
|
+
const did = this.did;
|
|
448
459
|
for (const signal of signals) {
|
|
449
460
|
const announcementHash = signal.signalBytes;
|
|
450
461
|
const casAnnouncement = sidecar.casMap.get(announcementHash);
|
|
@@ -497,7 +508,7 @@ var CASBeacon = class extends SinglePartyBeacon {
|
|
|
497
508
|
* @throws {BeaconError} if the bitcoin address is invalid, unfunded, or UTXO cannot cover the fee.
|
|
498
509
|
*/
|
|
499
510
|
async broadcastSignal(signedUpdate, signer, bitcoin, options) {
|
|
500
|
-
const did = this.
|
|
511
|
+
const did = this.did;
|
|
501
512
|
const updateHash = (0, import_common2.canonicalHash)(signedUpdate);
|
|
502
513
|
const casAnnouncement = { [did]: updateHash };
|
|
503
514
|
const announcementHash = (0, import_common2.hash)((0, import_common2.canonicalize)(casAnnouncement));
|
|
@@ -519,8 +530,8 @@ var SingletonBeacon = class extends SinglePartyBeacon {
|
|
|
519
530
|
* Creates an instance of SingletonBeacon.
|
|
520
531
|
* @param {BeaconService} service The BeaconService object representing the funded beacon to announce the update to.
|
|
521
532
|
*/
|
|
522
|
-
constructor(service) {
|
|
523
|
-
super({ ...service, type: "SingletonBeacon" });
|
|
533
|
+
constructor(service, did) {
|
|
534
|
+
super({ ...service, type: "SingletonBeacon" }, did);
|
|
524
535
|
}
|
|
525
536
|
/**
|
|
526
537
|
* Processes an array of Beacon Signals associated with a Singleton Beacon Service.
|
|
@@ -575,9 +586,10 @@ var SMTBeacon = class extends SinglePartyBeacon {
|
|
|
575
586
|
/**
|
|
576
587
|
* Creates an instance of SMTBeacon.
|
|
577
588
|
* @param {BeaconService} service The Beacon service.
|
|
589
|
+
* @param {string} did The absolute did:btcr2 identifier this beacon serves.
|
|
578
590
|
*/
|
|
579
|
-
constructor(service) {
|
|
580
|
-
super({ ...service, type: "SMTBeacon" });
|
|
591
|
+
constructor(service, did) {
|
|
592
|
+
super({ ...service, type: "SMTBeacon" }, did);
|
|
581
593
|
}
|
|
582
594
|
/**
|
|
583
595
|
* Implements {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process-smt-beacon | 7.2.e.1 Process SMT Beacon}.
|
|
@@ -595,7 +607,7 @@ var SMTBeacon = class extends SinglePartyBeacon {
|
|
|
595
607
|
processSignals(signals, sidecar) {
|
|
596
608
|
const updates = new Array();
|
|
597
609
|
const needs = new Array();
|
|
598
|
-
const did = this.
|
|
610
|
+
const did = this.did;
|
|
599
611
|
for (const signal of signals) {
|
|
600
612
|
const smtProof = sidecar.smtMap.get(signal.signalBytes);
|
|
601
613
|
if (!smtProof) {
|
|
@@ -659,7 +671,7 @@ var SMTBeacon = class extends SinglePartyBeacon {
|
|
|
659
671
|
* @throws {BeaconError} if the bitcoin address is invalid, unfunded, or UTXO cannot cover the fee.
|
|
660
672
|
*/
|
|
661
673
|
async broadcastSignal(signedUpdate, signer, bitcoin, options) {
|
|
662
|
-
const did = this.
|
|
674
|
+
const did = this.did;
|
|
663
675
|
const canonicalBytes = new TextEncoder().encode((0, import_common4.canonicalize)(signedUpdate));
|
|
664
676
|
const nonce = (0, import_utils2.randomBytes)(32);
|
|
665
677
|
const tree = new import_smt.BTCR2MerkleTree();
|
|
@@ -676,16 +688,18 @@ var BeaconFactory = class {
|
|
|
676
688
|
/**
|
|
677
689
|
* Establish a Beacon instance based on the provided service and optional sidecar data.
|
|
678
690
|
* @param {BeaconService} service The beacon service configuration.
|
|
691
|
+
* @param {string} did The absolute did:btcr2 identifier the beacon serves. Supplied
|
|
692
|
+
* by the caller because a beacon service `id` may be a relative DID URL.
|
|
679
693
|
* @returns {SinglePartyBeacon} The established Beacon instance.
|
|
680
694
|
*/
|
|
681
|
-
static establish(service) {
|
|
695
|
+
static establish(service, did) {
|
|
682
696
|
switch (service.type) {
|
|
683
697
|
case "SingletonBeacon":
|
|
684
|
-
return new SingletonBeacon(service);
|
|
698
|
+
return new SingletonBeacon(service, did);
|
|
685
699
|
case "CASBeacon":
|
|
686
|
-
return new CASBeacon(service);
|
|
700
|
+
return new CASBeacon(service, did);
|
|
687
701
|
case "SMTBeacon":
|
|
688
|
-
return new SMTBeacon(service);
|
|
702
|
+
return new SMTBeacon(service, did);
|
|
689
703
|
default:
|
|
690
704
|
throw new import_common5.MethodError("Invalid Beacon Type", "INVALID_BEACON_ERROR", service);
|
|
691
705
|
}
|
|
@@ -706,14 +720,43 @@ var import_dids = require("@web5/dids");
|
|
|
706
720
|
var import_common6 = require("@did-btcr2/common");
|
|
707
721
|
var Appendix = class _Appendix {
|
|
708
722
|
/**
|
|
709
|
-
*
|
|
710
|
-
*
|
|
711
|
-
*
|
|
723
|
+
* Resolves a DID URL that may be written as a relative reference against the
|
|
724
|
+
* DID it appears under. DID Core permits the `id` of a verification method or
|
|
725
|
+
* service, and the entries of a verification relationship, to be a relative
|
|
726
|
+
* DID URL such as `#initialKey`; it denotes that fragment of `did`. Absolute
|
|
727
|
+
* DID URLs are returned unchanged, so both spellings of the same reference
|
|
728
|
+
* compare equal without discarding the DID being compared.
|
|
729
|
+
*
|
|
730
|
+
* @param {unknown} input The DID URL to resolve. Non-strings yield `undefined`.
|
|
731
|
+
* @param {string} did The DID the relative reference is resolved against.
|
|
732
|
+
* @returns {string | undefined} The absolute DID URL, or `undefined` if `input` is not a usable string.
|
|
712
733
|
*/
|
|
713
|
-
static
|
|
734
|
+
static absoluteDidUrl(input, did) {
|
|
714
735
|
if (typeof input !== "string") return void 0;
|
|
715
736
|
if (input.length === 0) return void 0;
|
|
716
|
-
return input;
|
|
737
|
+
return input.startsWith("#") ? `${did}${input}` : input;
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Resolves a verification relationship entry to the absolute DID URL of the method it
|
|
741
|
+
* names. A relationship entry is either a reference to a method defined elsewhere in the
|
|
742
|
+
* document, or a method embedded inline, which names itself with its own `id`; either
|
|
743
|
+
* spelling may be a relative DID URL.
|
|
744
|
+
*
|
|
745
|
+
* Every comparison of a relationship entry against a method id goes through this helper,
|
|
746
|
+
* on both the read path and the write path, so the two admit exactly the same spellings.
|
|
747
|
+
*
|
|
748
|
+
* Malformed entries yield `undefined` rather than a placeholder string, so two unusable
|
|
749
|
+
* values never compare equal to each other. Callers comparing a resolved entry must still
|
|
750
|
+
* reject an `undefined` target before comparing, or an unusable target matches an
|
|
751
|
+
* unusable entry.
|
|
752
|
+
*
|
|
753
|
+
* @param {unknown} entry The relationship entry: a reference, or an embedded method.
|
|
754
|
+
* @param {string} did The DID the relative reference is resolved against.
|
|
755
|
+
* @returns {string | undefined} The absolute DID URL, or `undefined` if unusable.
|
|
756
|
+
*/
|
|
757
|
+
static relationshipMethodId(entry, did) {
|
|
758
|
+
const id = typeof entry === "object" && entry !== null && !Array.isArray(entry) ? entry.id : entry;
|
|
759
|
+
return _Appendix.absoluteDidUrl(id, did);
|
|
717
760
|
}
|
|
718
761
|
/**
|
|
719
762
|
* Validates that the given object is a DidVerificationMethod
|
|
@@ -1139,16 +1182,6 @@ var BeaconUtils = class {
|
|
|
1139
1182
|
static parseBeaconServiceEndpoint(beacon) {
|
|
1140
1183
|
return { ...beacon, serviceEndpoint: beacon.serviceEndpoint.replace("bitcoin:", "") };
|
|
1141
1184
|
}
|
|
1142
|
-
/**
|
|
1143
|
-
* Create a map of address => beaconService with address field.
|
|
1144
|
-
* @param {Array<BeaconService>} beacons The list of beacon services.
|
|
1145
|
-
* @returns {Map<string, BeaconService>} A map of address => beaconService.
|
|
1146
|
-
*/
|
|
1147
|
-
static getBeaconServicesMap(beacons) {
|
|
1148
|
-
return new Map(
|
|
1149
|
-
beacons.map(this.parseBeaconServiceEndpoint).map((beacon) => [beacon.serviceEndpoint, beacon])
|
|
1150
|
-
);
|
|
1151
|
-
}
|
|
1152
1185
|
/**
|
|
1153
1186
|
* Get the beacon service ids from a list of beacon services.
|
|
1154
1187
|
* @param {DidDocument} didDocument The DID Document to extract the services from.
|
|
@@ -1160,21 +1193,53 @@ var BeaconUtils = class {
|
|
|
1160
1193
|
};
|
|
1161
1194
|
|
|
1162
1195
|
// src/core/beacon/signal-discovery.ts
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
}
|
|
1167
|
-
const tokens = asm.trim().split(/\s+/);
|
|
1168
|
-
if (tokens.length !== 3 || tokens[0] !== "OP_RETURN" || tokens[1] !== "OP_PUSHBYTES_32") {
|
|
1196
|
+
var BEACON_SIGNAL_SCRIPT = /^6a20([0-9a-f]{64})$/i;
|
|
1197
|
+
function extractOpReturnSignalHash(scriptPubKey) {
|
|
1198
|
+
if (!scriptPubKey) {
|
|
1169
1199
|
return null;
|
|
1170
1200
|
}
|
|
1171
|
-
const
|
|
1172
|
-
if (
|
|
1201
|
+
const signal = BEACON_SIGNAL_SCRIPT.exec(scriptPubKey.trim());
|
|
1202
|
+
if (!signal) {
|
|
1173
1203
|
return null;
|
|
1174
1204
|
}
|
|
1175
|
-
return
|
|
1205
|
+
return signal[1].toLowerCase();
|
|
1176
1206
|
}
|
|
1177
|
-
var BeaconSignalDiscovery = class {
|
|
1207
|
+
var BeaconSignalDiscovery = class _BeaconSignalDiscovery {
|
|
1208
|
+
/**
|
|
1209
|
+
* Determines whether a candidate transaction spends an output controlled by the given
|
|
1210
|
+
* beacon address.
|
|
1211
|
+
*
|
|
1212
|
+
* A Beacon Signal is a transaction that *spends from* a Beacon Address, but an address
|
|
1213
|
+
* transaction listing returns every transaction touching the address in either
|
|
1214
|
+
* direction. Without this check, anyone able to pay dust to a beacon address could
|
|
1215
|
+
* attach an arbitrary 32-byte OP_RETURN and have it read as a signal, so the input side
|
|
1216
|
+
* has to be inspected before a transaction is treated as one.
|
|
1217
|
+
*
|
|
1218
|
+
* Esplora embeds the spent output in `vin[].prevout`; when a backend omits it the
|
|
1219
|
+
* funding transaction is fetched instead, so a missing field cannot silently drop a
|
|
1220
|
+
* real signal.
|
|
1221
|
+
*
|
|
1222
|
+
* @param {RawTransactionRest} tx The candidate transaction.
|
|
1223
|
+
* @param {string} address The beacon address the transaction must spend from.
|
|
1224
|
+
* @param {BitcoinConnection} bitcoin Bitcoin network connection to use for REST calls.
|
|
1225
|
+
* @returns {Promise<boolean>} True if at least one input spends an output of the beacon address.
|
|
1226
|
+
*/
|
|
1227
|
+
static async spendsFromAddress(tx, address, bitcoin) {
|
|
1228
|
+
for (const vin of tx.vin ?? []) {
|
|
1229
|
+
if (vin.is_coinbase) {
|
|
1230
|
+
continue;
|
|
1231
|
+
}
|
|
1232
|
+
let prevout = vin.prevout;
|
|
1233
|
+
if (!prevout && vin.txid) {
|
|
1234
|
+
const fundingTx = await bitcoin.rest.transaction.get(vin.txid);
|
|
1235
|
+
prevout = fundingTx?.vout?.[vin.vout];
|
|
1236
|
+
}
|
|
1237
|
+
if (prevout?.scriptpubkey_address === address) {
|
|
1238
|
+
return true;
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1178
1243
|
/**
|
|
1179
1244
|
* Retrieves the beacon signals for the given array of BeaconService objects
|
|
1180
1245
|
* using an esplora/electrs REST API connection via a bitcoin I/O driver.
|
|
@@ -1187,21 +1252,23 @@ var BeaconSignalDiscovery = class {
|
|
|
1187
1252
|
const currentBlockCount = await bitcoin.rest.block.count();
|
|
1188
1253
|
for (const beaconService of beaconServices) {
|
|
1189
1254
|
beaconServiceSignals.set(beaconService, []);
|
|
1190
|
-
const
|
|
1191
|
-
|
|
1192
|
-
);
|
|
1255
|
+
const beaconAddress = BeaconUtils.parseBitcoinAddress(beaconService.serviceEndpoint);
|
|
1256
|
+
const beaconSignals = await bitcoin.rest.address.getTxs(beaconAddress);
|
|
1193
1257
|
if (!beaconSignals || !beaconSignals.length) {
|
|
1194
1258
|
continue;
|
|
1195
1259
|
}
|
|
1196
1260
|
for (const beaconSignal of beaconSignals) {
|
|
1197
|
-
const
|
|
1198
|
-
if (!
|
|
1261
|
+
const lastSignalVout = beaconSignal.vout.slice(-1)[0];
|
|
1262
|
+
if (!lastSignalVout) {
|
|
1199
1263
|
continue;
|
|
1200
1264
|
}
|
|
1201
|
-
const updateHash =
|
|
1265
|
+
const updateHash = extractOpReturnSignalHash(lastSignalVout.scriptpubkey);
|
|
1202
1266
|
if (!updateHash) {
|
|
1203
1267
|
continue;
|
|
1204
1268
|
}
|
|
1269
|
+
if (!await _BeaconSignalDiscovery.spendsFromAddress(beaconSignal, beaconAddress, bitcoin)) {
|
|
1270
|
+
continue;
|
|
1271
|
+
}
|
|
1205
1272
|
const confirmations = currentBlockCount - beaconSignal.status.block_height + 1;
|
|
1206
1273
|
beaconServiceSignals.get(beaconService)?.push({
|
|
1207
1274
|
tx: beaconSignal,
|
|
@@ -1232,7 +1299,9 @@ var BeaconSignalDiscovery = class {
|
|
|
1232
1299
|
throw new import_common9.ResolveError("RPC connection is not available", "RPC_CONNECTION_ERROR", bitcoin);
|
|
1233
1300
|
}
|
|
1234
1301
|
const targetHeight = await rpc.getBlockCount();
|
|
1235
|
-
const beaconServicesMap =
|
|
1302
|
+
const beaconServicesMap = new Map(
|
|
1303
|
+
beaconServices.map((service) => [BeaconUtils.parseBitcoinAddress(service.serviceEndpoint), service])
|
|
1304
|
+
);
|
|
1236
1305
|
let height = 0;
|
|
1237
1306
|
let block = await bitcoin.rpc.getBlock({ height });
|
|
1238
1307
|
console.info(`Searching for beacon signals, please wait ...`);
|
|
@@ -1241,6 +1310,15 @@ var BeaconSignalDiscovery = class {
|
|
|
1241
1310
|
if (tx.txid === import_bitcoin3.GENESIS_TX_ID) {
|
|
1242
1311
|
continue;
|
|
1243
1312
|
}
|
|
1313
|
+
const lastSignalVout = tx.vout.slice(-1)[0];
|
|
1314
|
+
if (!lastSignalVout) {
|
|
1315
|
+
continue;
|
|
1316
|
+
}
|
|
1317
|
+
const updateHash = extractOpReturnSignalHash(lastSignalVout.scriptPubKey?.hex);
|
|
1318
|
+
if (!updateHash) {
|
|
1319
|
+
continue;
|
|
1320
|
+
}
|
|
1321
|
+
const signaled = /* @__PURE__ */ new Set();
|
|
1244
1322
|
for (const vin of tx.vin) {
|
|
1245
1323
|
if (vin.coinbase) {
|
|
1246
1324
|
continue;
|
|
@@ -1263,15 +1341,11 @@ var BeaconSignalDiscovery = class {
|
|
|
1263
1341
|
continue;
|
|
1264
1342
|
}
|
|
1265
1343
|
const beaconService = beaconServicesMap.get(scriptPubKey.address);
|
|
1266
|
-
if (!beaconService) {
|
|
1267
|
-
continue;
|
|
1268
|
-
}
|
|
1269
|
-
const txVoutScriptPubkeyAsm = prevout.vout[vin.vout].scriptPubKey.asm;
|
|
1270
|
-
const updateHash = extractOpReturnSignal(txVoutScriptPubkeyAsm);
|
|
1271
|
-
if (!updateHash) {
|
|
1344
|
+
if (!beaconService || signaled.has(beaconService)) {
|
|
1272
1345
|
continue;
|
|
1273
1346
|
}
|
|
1274
|
-
|
|
1347
|
+
signaled.add(beaconService);
|
|
1348
|
+
console.info(`Tx ${tx.txid} contains beacon address ${scriptPubKey.address}`);
|
|
1275
1349
|
beaconServiceSignals.get(beaconService)?.push({
|
|
1276
1350
|
tx,
|
|
1277
1351
|
signalBytes: updateHash,
|
|
@@ -1788,6 +1862,7 @@ var Updater = class _Updater {
|
|
|
1788
1862
|
}
|
|
1789
1863
|
const id = verificationMethod.id.slice(hashIdx);
|
|
1790
1864
|
const multikey = import_cryptosuite.SchnorrMultikey.fromSigner(id, controller, signer);
|
|
1865
|
+
const absoluteMethodId = hashIdx === 0 ? `${did}${id}` : verificationMethod.id;
|
|
1791
1866
|
const signerKey = multikey.publicKey.multibase.encoded;
|
|
1792
1867
|
if (verificationMethod.publicKeyMultibase && signerKey !== verificationMethod.publicKeyMultibase) {
|
|
1793
1868
|
throw new import_common11.UpdateError(
|
|
@@ -1809,7 +1884,12 @@ var Updater = class _Updater {
|
|
|
1809
1884
|
],
|
|
1810
1885
|
cryptosuite: "bip340-jcs-2025",
|
|
1811
1886
|
type: "DataIntegrityProof",
|
|
1812
|
-
|
|
1887
|
+
// The proof names the signing method by absolute DID URL, even when the document
|
|
1888
|
+
// spells that method's own id relatively: a proof travels apart from the document
|
|
1889
|
+
// that defines the method, so a bare `#initialKey` in it resolves against nothing.
|
|
1890
|
+
// For a document that already spells its ids absolutely this is the id unchanged,
|
|
1891
|
+
// so proofs over such documents are byte-identical to before.
|
|
1892
|
+
verificationMethod: absoluteMethodId,
|
|
1813
1893
|
proofPurpose: "capabilityInvocation",
|
|
1814
1894
|
capability: `urn:zcap:root:${encodeURIComponent(did)}`,
|
|
1815
1895
|
capabilityAction: "Write"
|
|
@@ -1822,6 +1902,8 @@ var Updater = class _Updater {
|
|
|
1822
1902
|
* Announces a signed update to the Bitcoin blockchain via the specified beacon.
|
|
1823
1903
|
*
|
|
1824
1904
|
* @param {BeaconService} beaconService The beacon service to broadcast through.
|
|
1905
|
+
* @param {string} did The DID being updated. Required because a beacon service
|
|
1906
|
+
* `id` may be a relative DID URL and so cannot supply the subject.
|
|
1825
1907
|
* @param {SignedBTCR2Update} update The signed update to announce.
|
|
1826
1908
|
* @param {Signer} signer Signer that produces the ECDSA signature for the Bitcoin transaction.
|
|
1827
1909
|
* @param {BitcoinConnection} bitcoin The Bitcoin network connection.
|
|
@@ -1831,8 +1913,8 @@ var Updater = class _Updater {
|
|
|
1831
1913
|
* @returns {Promise<BroadcastResult>} The broadcast artifacts: the signed update, the signal
|
|
1832
1914
|
* txid, and any per-beacon-type sidecar data (CAS announcement / SMT proof).
|
|
1833
1915
|
*/
|
|
1834
|
-
static async announce(beaconService, update, signer, bitcoin, options) {
|
|
1835
|
-
const beacon = BeaconFactory.establish(beaconService);
|
|
1916
|
+
static async announce(beaconService, did, update, signer, bitcoin, options) {
|
|
1917
|
+
const beacon = BeaconFactory.establish(beaconService, did);
|
|
1836
1918
|
return beacon.broadcastSignal(update, signer, bitcoin, options);
|
|
1837
1919
|
}
|
|
1838
1920
|
// Private instance wrappers
|
|
@@ -1891,7 +1973,8 @@ var Updater = class _Updater {
|
|
|
1891
1973
|
needs: [{
|
|
1892
1974
|
kind: "NeedBroadcast",
|
|
1893
1975
|
beaconService: this.#beaconService,
|
|
1894
|
-
signedUpdate: this.#state.signedUpdate
|
|
1976
|
+
signedUpdate: this.#state.signedUpdate,
|
|
1977
|
+
did: this.#sourceDocument.id
|
|
1895
1978
|
}]
|
|
1896
1979
|
};
|
|
1897
1980
|
}
|
|
@@ -2066,7 +2149,11 @@ var DidBtcr2 = class {
|
|
|
2066
2149
|
verificationMethodId,
|
|
2067
2150
|
beaconId
|
|
2068
2151
|
}) {
|
|
2069
|
-
|
|
2152
|
+
const authorizedMethodId = Appendix.relationshipMethodId(verificationMethodId, sourceDocument.id);
|
|
2153
|
+
const authorized = authorizedMethodId !== void 0 && sourceDocument.capabilityInvocation?.some(
|
|
2154
|
+
(entry) => Appendix.relationshipMethodId(entry, sourceDocument.id) === authorizedMethodId
|
|
2155
|
+
);
|
|
2156
|
+
if (!authorized) {
|
|
2070
2157
|
throw new import_common12.UpdateError(
|
|
2071
2158
|
"Invalid verificationMethodId: not authorized for capabilityInvocation",
|
|
2072
2159
|
import_common12.INVALID_DID_DOCUMENT,
|
|
@@ -2095,7 +2182,8 @@ var DidBtcr2 = class {
|
|
|
2095
2182
|
verificationMethod
|
|
2096
2183
|
);
|
|
2097
2184
|
}
|
|
2098
|
-
const
|
|
2185
|
+
const targetBeaconId = Appendix.absoluteDidUrl(beaconId, sourceDocument.id);
|
|
2186
|
+
const beaconService = sourceDocument.service.filter((service) => targetBeaconId !== void 0 && Appendix.absoluteDidUrl(service.id, sourceDocument.id) === targetBeaconId).filter((service) => !!service).shift();
|
|
2099
2187
|
if (!beaconService) {
|
|
2100
2188
|
throw new import_common12.UpdateError(
|
|
2101
2189
|
"No beacon service found for provided beaconId",
|
|
@@ -2127,8 +2215,9 @@ var DidBtcr2 = class {
|
|
|
2127
2215
|
if (parsedDid && parsedDid.method !== this.methodName) {
|
|
2128
2216
|
throw new import_common12.MethodError(`Method not supported: ${parsedDid.method}`, import_common12.METHOD_NOT_SUPPORTED, { identifier: didDocument.id });
|
|
2129
2217
|
}
|
|
2130
|
-
const
|
|
2131
|
-
|
|
2218
|
+
const targetId = Appendix.absoluteDidUrl(methodId, didDocument.id) ?? Appendix.relationshipMethodId(didDocument.assertionMethod?.[0], didDocument.id);
|
|
2219
|
+
const verificationMethod = targetId === void 0 ? void 0 : didDocument.verificationMethod?.find(
|
|
2220
|
+
(vm) => Appendix.absoluteDidUrl(vm.id, didDocument.id) === targetId
|
|
2132
2221
|
);
|
|
2133
2222
|
if (!(verificationMethod && verificationMethod.publicKeyMultibase)) {
|
|
2134
2223
|
throw new import_dids2.DidError(
|
|
@@ -2427,6 +2516,20 @@ var Resolver = class _Resolver {
|
|
|
2427
2516
|
if (!verificationMethodId) {
|
|
2428
2517
|
throw new import_common13.ResolveError("No verificationMethod found in update", import_common13.INVALID_DID_UPDATE, update);
|
|
2429
2518
|
}
|
|
2519
|
+
const authorizedMethodId = Appendix.relationshipMethodId(verificationMethodId, currentDocument.id);
|
|
2520
|
+
const authorized = authorizedMethodId !== void 0 && currentDocument.capabilityInvocation?.some(
|
|
2521
|
+
(entry) => Appendix.relationshipMethodId(entry, currentDocument.id) === authorizedMethodId
|
|
2522
|
+
);
|
|
2523
|
+
if (!authorized) {
|
|
2524
|
+
throw new import_common13.ResolveError(
|
|
2525
|
+
"Invalid update: verificationMethod is not authorized for capabilityInvocation",
|
|
2526
|
+
import_common13.INVALID_DID_UPDATE,
|
|
2527
|
+
{
|
|
2528
|
+
verificationMethodId,
|
|
2529
|
+
capabilityInvocation: currentDocument.capabilityInvocation
|
|
2530
|
+
}
|
|
2531
|
+
);
|
|
2532
|
+
}
|
|
2430
2533
|
const vm = DidBtcr2.getSigningMethod(currentDocument, verificationMethodId);
|
|
2431
2534
|
const multikey = import_cryptosuite2.SchnorrMultikey.fromVerificationMethod(vm);
|
|
2432
2535
|
const cryptosuite = new import_cryptosuite2.BIP340Cryptosuite(multikey);
|
|
@@ -2508,7 +2611,7 @@ var Resolver = class _Resolver {
|
|
|
2508
2611
|
const allNeeds = [];
|
|
2509
2612
|
for (const [service, signals] of this.#beaconServicesSignals) {
|
|
2510
2613
|
if (this.#processedServices.has(service.id) || !signals.length) continue;
|
|
2511
|
-
const beacon = BeaconFactory.establish(service);
|
|
2614
|
+
const beacon = BeaconFactory.establish(service, this.#currentDocument.id);
|
|
2512
2615
|
const result = beacon.processSignals(signals, this.#sidecarData);
|
|
2513
2616
|
if (result.needs.length > 0) {
|
|
2514
2617
|
allNeeds.push(...result.needs);
|
|
@@ -2670,7 +2773,10 @@ function getAggregationCommunicationKey(document) {
|
|
|
2670
2773
|
{ id: document.id }
|
|
2671
2774
|
);
|
|
2672
2775
|
}
|
|
2673
|
-
const
|
|
2776
|
+
const invocationId = Appendix.absoluteDidUrl(invocation, document.id);
|
|
2777
|
+
const vm = typeof invocation === "string" ? invocationId === void 0 ? void 0 : document.verificationMethod?.find(
|
|
2778
|
+
(method) => Appendix.absoluteDidUrl(method.id, document.id) === invocationId
|
|
2779
|
+
) : invocation;
|
|
2674
2780
|
if (!vm) {
|
|
2675
2781
|
throw new import_common14.DidDocumentError(
|
|
2676
2782
|
`Cannot derive aggregation communication key: capabilityInvocation[0] "${invocation}" does not resolve to a verification method`,
|
|
@@ -2791,7 +2897,7 @@ var DidDocumentBuilder = class {
|
|
|
2791
2897
|
buildAggregationBeaconTx,
|
|
2792
2898
|
deriveSingletonAddress,
|
|
2793
2899
|
detectSingletonScriptKind,
|
|
2794
|
-
|
|
2900
|
+
extractOpReturnSignalHash,
|
|
2795
2901
|
getAggregationCommunicationKey,
|
|
2796
2902
|
isMultikeyVerificationMethod,
|
|
2797
2903
|
opReturnScript,
|
|
@@ -372,8 +372,18 @@ export class SinglePartyBeacon {
|
|
|
372
372
|
* The Beacon service configuration parsed from the DID Document.
|
|
373
373
|
*/
|
|
374
374
|
service;
|
|
375
|
-
|
|
375
|
+
/**
|
|
376
|
+
* The absolute did:btcr2 identifier this beacon instance serves.
|
|
377
|
+
*
|
|
378
|
+
* Injected by the caller rather than recovered from {@link service}. A beacon
|
|
379
|
+
* service `id` is permitted to be a relative DID URL (`#beacon-1`), which
|
|
380
|
+
* carries no DID to strip a fragment from, so deriving the subject from it is
|
|
381
|
+
* only correct for the absolute spelling.
|
|
382
|
+
*/
|
|
383
|
+
did;
|
|
384
|
+
constructor(service, did) {
|
|
376
385
|
this.service = service;
|
|
386
|
+
this.did = did;
|
|
377
387
|
}
|
|
378
388
|
/**
|
|
379
389
|
* Build + sign + broadcast a singleton beacon signal transaction. The beacon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/beacon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/beacon.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,9 +39,10 @@ export class CASBeacon extends SinglePartyBeacon {
|
|
|
39
39
|
/**
|
|
40
40
|
* Creates an instance of CASBeacon.
|
|
41
41
|
* @param {BeaconService} service The service of the Beacon.
|
|
42
|
+
* @param {string} did The absolute did:btcr2 identifier this beacon serves.
|
|
42
43
|
*/
|
|
43
|
-
constructor(service) {
|
|
44
|
-
super({ ...service, type: 'CASBeacon' });
|
|
44
|
+
constructor(service, did) {
|
|
45
|
+
super({ ...service, type: 'CASBeacon' }, did);
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* Implements {@link https://dcdpr.github.io/did-btcr2/operations/resolve.html#process-cas-beacon | 7.2.e.1 Process CAS Beacon}.
|
|
@@ -59,8 +60,8 @@ export class CASBeacon extends SinglePartyBeacon {
|
|
|
59
60
|
processSignals(signals, sidecar) {
|
|
60
61
|
const updates = new Array();
|
|
61
62
|
const needs = new Array();
|
|
62
|
-
//
|
|
63
|
-
const did = this.
|
|
63
|
+
// The DID under resolution keys this beacon's announcement entry.
|
|
64
|
+
const did = this.did;
|
|
64
65
|
for (const signal of signals) {
|
|
65
66
|
// Signal bytes are hex, matches hex-keyed sidecar maps directly
|
|
66
67
|
const announcementHash = signal.signalBytes;
|
|
@@ -121,8 +122,8 @@ export class CASBeacon extends SinglePartyBeacon {
|
|
|
121
122
|
* @throws {BeaconError} if the bitcoin address is invalid, unfunded, or UTXO cannot cover the fee.
|
|
122
123
|
*/
|
|
123
124
|
async broadcastSignal(signedUpdate, signer, bitcoin, options) {
|
|
124
|
-
//
|
|
125
|
-
const did = this.
|
|
125
|
+
// The DID this beacon serves keys its announcement entry.
|
|
126
|
+
const did = this.did;
|
|
126
127
|
// Hash the signed update (base64urlnopad for the CAS Announcement entry per spec)
|
|
127
128
|
const updateHash = canonicalHash(signedUpdate);
|
|
128
129
|
// Create the CAS Announcement mapping this DID to its update hash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/cas-beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IAC9C
|
|
1
|
+
{"version":3,"file":"cas-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/cas-beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IAC9C;;;;OAIG;IACH,YAAY,OAAsB,EAAE,GAAW;QAC7C,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,OAA4B,EAC5B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,KAAK,EAAsC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAY,CAAC;QAEpC,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAErB,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,gEAAgE;YAChE,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC;YAE5C,iDAAiD;YACjD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAE7D,IAAG,CAAC,eAAe,EAAE,CAAC;gBACpB,8CAA8C;gBAC9C,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAgB,qBAAqB;oBACzC,gBAAgB;oBAChB,eAAe,EAAK,IAAI,CAAC,OAAO,CAAC,EAAE;iBACpC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,yDAAyD;YACzD,iFAAiF;YACjF,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAE/C,qFAAqF;YACrF,IAAG,CAAC,iBAAiB,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;YAE9E,iDAAiD;YACjD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAG,CAAC,YAAY,EAAE,CAAC;gBACjB,2CAA2C;gBAC3C,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAe,kBAAkB;oBACrC,UAAU;oBACV,eAAe,EAAI,IAAI,CAAC,OAAO,CAAC,EAAE;iBACnC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,eAAe,CACnB,YAA+B,EAC/B,MAAc,EACd,OAA0B,EAC1B,OAA6B;QAE7B,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAErB,kFAAkF;QAClF,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAE/C,kEAAkE;QAClE,MAAM,eAAe,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC;QAE9C,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;QAE7D,8EAA8E;QAC9E,sDAAsD;QACtD,IAAG,OAAO,EAAE,UAAU,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;QAED,qFAAqF;QACrF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1F,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -11,16 +11,18 @@ export class BeaconFactory {
|
|
|
11
11
|
/**
|
|
12
12
|
* Establish a Beacon instance based on the provided service and optional sidecar data.
|
|
13
13
|
* @param {BeaconService} service The beacon service configuration.
|
|
14
|
+
* @param {string} did The absolute did:btcr2 identifier the beacon serves. Supplied
|
|
15
|
+
* by the caller because a beacon service `id` may be a relative DID URL.
|
|
14
16
|
* @returns {SinglePartyBeacon} The established Beacon instance.
|
|
15
17
|
*/
|
|
16
|
-
static establish(service) {
|
|
18
|
+
static establish(service, did) {
|
|
17
19
|
switch (service.type) {
|
|
18
20
|
case 'SingletonBeacon':
|
|
19
|
-
return new SingletonBeacon(service);
|
|
21
|
+
return new SingletonBeacon(service, did);
|
|
20
22
|
case 'CASBeacon':
|
|
21
|
-
return new CASBeacon(service);
|
|
23
|
+
return new CASBeacon(service, did);
|
|
22
24
|
case 'SMTBeacon':
|
|
23
|
-
return new SMTBeacon(service);
|
|
25
|
+
return new SMTBeacon(service, did);
|
|
24
26
|
default:
|
|
25
27
|
throw new MethodError('Invalid Beacon Type', 'INVALID_BEACON_ERROR', service);
|
|
26
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/core/beacon/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACxB
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/core/beacon/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,OAAsB,EAAE,GAAW;QAClD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,iBAAiB;gBACpB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,WAAW;gBACd,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,WAAW;gBACd,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC;gBACE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;CACF"}
|