@did-btcr2/method 0.36.1 → 0.37.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.
Files changed (164) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/browser.js +1060 -96
  3. package/dist/browser.mjs +1060 -96
  4. package/dist/cjs/index.js +1153 -179
  5. package/dist/esm/core/aggregation/beacon-strategy.js +19 -6
  6. package/dist/esm/core/aggregation/beacon-strategy.js.map +1 -1
  7. package/dist/esm/core/aggregation/cohort.js +142 -33
  8. package/dist/esm/core/aggregation/cohort.js.map +1 -1
  9. package/dist/esm/core/aggregation/conditions.js +27 -0
  10. package/dist/esm/core/aggregation/conditions.js.map +1 -1
  11. package/dist/esm/core/aggregation/fallback-spend.js +132 -0
  12. package/dist/esm/core/aggregation/fallback-spend.js.map +1 -0
  13. package/dist/esm/core/aggregation/messages/base.js.map +1 -1
  14. package/dist/esm/core/aggregation/messages/bodies.js +46 -1
  15. package/dist/esm/core/aggregation/messages/bodies.js.map +1 -1
  16. package/dist/esm/core/aggregation/messages/constants.js +11 -0
  17. package/dist/esm/core/aggregation/messages/constants.js.map +1 -1
  18. package/dist/esm/core/aggregation/messages/factories.js +27 -1
  19. package/dist/esm/core/aggregation/messages/factories.js.map +1 -1
  20. package/dist/esm/core/aggregation/messages/guards.js +4 -1
  21. package/dist/esm/core/aggregation/messages/guards.js.map +1 -1
  22. package/dist/esm/core/aggregation/participant.js +210 -21
  23. package/dist/esm/core/aggregation/participant.js.map +1 -1
  24. package/dist/esm/core/aggregation/phases.js +6 -0
  25. package/dist/esm/core/aggregation/phases.js.map +1 -1
  26. package/dist/esm/core/aggregation/recovery-policy.js +156 -0
  27. package/dist/esm/core/aggregation/recovery-policy.js.map +1 -0
  28. package/dist/esm/core/aggregation/recovery-spend.js +106 -0
  29. package/dist/esm/core/aggregation/recovery-spend.js.map +1 -0
  30. package/dist/esm/core/aggregation/runner/aggregation-runner.js +11 -3
  31. package/dist/esm/core/aggregation/runner/aggregation-runner.js.map +1 -1
  32. package/dist/esm/core/aggregation/runner/participant-runner.js +74 -22
  33. package/dist/esm/core/aggregation/runner/participant-runner.js.map +1 -1
  34. package/dist/esm/core/aggregation/runner/service-runner.js +97 -9
  35. package/dist/esm/core/aggregation/runner/service-runner.js.map +1 -1
  36. package/dist/esm/core/aggregation/service.js +221 -11
  37. package/dist/esm/core/aggregation/service.js.map +1 -1
  38. package/dist/esm/core/aggregation/signing-session.js +3 -3
  39. package/dist/esm/core/aggregation/signing-session.js.map +1 -1
  40. package/dist/esm/core/aggregation/transport/http/envelope.js +3 -3
  41. package/dist/esm/core/aggregation/transport/http/inbox-buffer.js +1 -1
  42. package/dist/esm/core/aggregation/transport/http/nonce-cache.js +1 -1
  43. package/dist/esm/core/aggregation/transport/http/rate-limiter.js +1 -1
  44. package/dist/esm/core/aggregation/transport/http/request-auth.js +1 -1
  45. package/dist/esm/core/aggregation/transport/http/server.js +1 -1
  46. package/dist/esm/core/aggregation/transport/http/sse-stream.js +1 -1
  47. package/dist/esm/core/aggregation/transport/http/sse-writer.js +1 -1
  48. package/dist/esm/core/aggregation/transport/in-memory.js +1 -1
  49. package/dist/esm/core/aggregation/transport/nostr.js +6 -6
  50. package/dist/esm/core/beacon/beacon.js +15 -10
  51. package/dist/esm/core/beacon/beacon.js.map +1 -1
  52. package/dist/esm/core/beacon/cas-beacon.js +6 -6
  53. package/dist/esm/core/beacon/cas-beacon.js.map +1 -1
  54. package/dist/esm/core/beacon/singleton-beacon.js +2 -2
  55. package/dist/esm/core/beacon/singleton-beacon.js.map +1 -1
  56. package/dist/esm/core/beacon/smt-beacon.js +3 -3
  57. package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
  58. package/dist/esm/core/resolver.js +8 -8
  59. package/dist/esm/core/resolver.js.map +1 -1
  60. package/dist/esm/core/updater.js +6 -6
  61. package/dist/esm/core/updater.js.map +1 -1
  62. package/dist/esm/did-btcr2.js +2 -2
  63. package/dist/esm/index.js +3 -0
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/types/core/aggregation/beacon-strategy.d.ts +8 -4
  66. package/dist/types/core/aggregation/beacon-strategy.d.ts.map +1 -1
  67. package/dist/types/core/aggregation/cohort.d.ts +88 -17
  68. package/dist/types/core/aggregation/cohort.d.ts.map +1 -1
  69. package/dist/types/core/aggregation/conditions.d.ts +28 -0
  70. package/dist/types/core/aggregation/conditions.d.ts.map +1 -1
  71. package/dist/types/core/aggregation/fallback-spend.d.ts +94 -0
  72. package/dist/types/core/aggregation/fallback-spend.d.ts.map +1 -0
  73. package/dist/types/core/aggregation/logger.d.ts +1 -1
  74. package/dist/types/core/aggregation/messages/base.d.ts +6 -0
  75. package/dist/types/core/aggregation/messages/base.d.ts.map +1 -1
  76. package/dist/types/core/aggregation/messages/bodies.d.ts +50 -2
  77. package/dist/types/core/aggregation/messages/bodies.d.ts.map +1 -1
  78. package/dist/types/core/aggregation/messages/constants.d.ts +8 -0
  79. package/dist/types/core/aggregation/messages/constants.d.ts.map +1 -1
  80. package/dist/types/core/aggregation/messages/factories.d.ts +40 -0
  81. package/dist/types/core/aggregation/messages/factories.d.ts.map +1 -1
  82. package/dist/types/core/aggregation/messages/guards.d.ts.map +1 -1
  83. package/dist/types/core/aggregation/participant.d.ts +41 -7
  84. package/dist/types/core/aggregation/participant.d.ts.map +1 -1
  85. package/dist/types/core/aggregation/phases.d.ts +8 -2
  86. package/dist/types/core/aggregation/phases.d.ts.map +1 -1
  87. package/dist/types/core/aggregation/recovery-policy.d.ts +132 -0
  88. package/dist/types/core/aggregation/recovery-policy.d.ts.map +1 -0
  89. package/dist/types/core/aggregation/recovery-spend.d.ts +94 -0
  90. package/dist/types/core/aggregation/recovery-spend.d.ts.map +1 -0
  91. package/dist/types/core/aggregation/runner/aggregation-runner.d.ts +13 -3
  92. package/dist/types/core/aggregation/runner/aggregation-runner.d.ts.map +1 -1
  93. package/dist/types/core/aggregation/runner/events.d.ts +28 -7
  94. package/dist/types/core/aggregation/runner/events.d.ts.map +1 -1
  95. package/dist/types/core/aggregation/runner/participant-runner.d.ts +3 -3
  96. package/dist/types/core/aggregation/runner/participant-runner.d.ts.map +1 -1
  97. package/dist/types/core/aggregation/runner/service-runner.d.ts +28 -3
  98. package/dist/types/core/aggregation/runner/service-runner.d.ts.map +1 -1
  99. package/dist/types/core/aggregation/service.d.ts +26 -2
  100. package/dist/types/core/aggregation/service.d.ts.map +1 -1
  101. package/dist/types/core/aggregation/signing-session.d.ts +2 -2
  102. package/dist/types/core/aggregation/signing-session.d.ts.map +1 -1
  103. package/dist/types/core/aggregation/transport/http/envelope.d.ts +3 -3
  104. package/dist/types/core/aggregation/transport/http/inbox-buffer.d.ts +1 -1
  105. package/dist/types/core/aggregation/transport/http/nonce-cache.d.ts +1 -1
  106. package/dist/types/core/aggregation/transport/http/rate-limiter.d.ts +1 -1
  107. package/dist/types/core/aggregation/transport/http/request-auth.d.ts +1 -1
  108. package/dist/types/core/aggregation/transport/http/server.d.ts +1 -1
  109. package/dist/types/core/aggregation/transport/http/sse-stream.d.ts +2 -2
  110. package/dist/types/core/aggregation/transport/http/sse-writer.d.ts +1 -1
  111. package/dist/types/core/aggregation/transport/in-memory.d.ts +1 -1
  112. package/dist/types/core/aggregation/transport/nostr.d.ts +4 -4
  113. package/dist/types/core/aggregation/transport/transport.d.ts +4 -4
  114. package/dist/types/core/aggregation/transport/transport.d.ts.map +1 -1
  115. package/dist/types/core/beacon/beacon.d.ts +7 -7
  116. package/dist/types/core/beacon/beacon.d.ts.map +1 -1
  117. package/dist/types/core/beacon/cas-beacon.d.ts +2 -2
  118. package/dist/types/core/beacon/interfaces.d.ts +1 -1
  119. package/dist/types/core/resolver.d.ts +3 -3
  120. package/dist/types/core/updater.d.ts +4 -4
  121. package/dist/types/did-btcr2.d.ts +2 -2
  122. package/dist/types/index.d.ts +3 -0
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/package.json +4 -4
  125. package/src/core/aggregation/beacon-strategy.ts +27 -9
  126. package/src/core/aggregation/cohort.ts +171 -35
  127. package/src/core/aggregation/conditions.ts +56 -0
  128. package/src/core/aggregation/fallback-spend.ts +223 -0
  129. package/src/core/aggregation/logger.ts +1 -1
  130. package/src/core/aggregation/messages/base.ts +6 -0
  131. package/src/core/aggregation/messages/bodies.ts +94 -1
  132. package/src/core/aggregation/messages/constants.ts +12 -0
  133. package/src/core/aggregation/messages/factories.ts +57 -0
  134. package/src/core/aggregation/messages/guards.ts +6 -0
  135. package/src/core/aggregation/participant.ts +255 -23
  136. package/src/core/aggregation/phases.ts +9 -0
  137. package/src/core/aggregation/recovery-policy.ts +237 -0
  138. package/src/core/aggregation/recovery-spend.ts +192 -0
  139. package/src/core/aggregation/runner/aggregation-runner.ts +27 -5
  140. package/src/core/aggregation/runner/events.ts +26 -7
  141. package/src/core/aggregation/runner/participant-runner.ts +75 -23
  142. package/src/core/aggregation/runner/service-runner.ts +120 -10
  143. package/src/core/aggregation/service.ts +260 -14
  144. package/src/core/aggregation/signing-session.ts +3 -3
  145. package/src/core/aggregation/transport/http/envelope.ts +3 -3
  146. package/src/core/aggregation/transport/http/inbox-buffer.ts +1 -1
  147. package/src/core/aggregation/transport/http/nonce-cache.ts +1 -1
  148. package/src/core/aggregation/transport/http/rate-limiter.ts +1 -1
  149. package/src/core/aggregation/transport/http/request-auth.ts +1 -1
  150. package/src/core/aggregation/transport/http/server.ts +1 -1
  151. package/src/core/aggregation/transport/http/sse-stream.ts +2 -2
  152. package/src/core/aggregation/transport/http/sse-writer.ts +1 -1
  153. package/src/core/aggregation/transport/in-memory.ts +1 -1
  154. package/src/core/aggregation/transport/nostr.ts +6 -6
  155. package/src/core/aggregation/transport/transport.ts +4 -4
  156. package/src/core/beacon/beacon.ts +16 -11
  157. package/src/core/beacon/cas-beacon.ts +7 -7
  158. package/src/core/beacon/interfaces.ts +1 -1
  159. package/src/core/beacon/singleton-beacon.ts +2 -2
  160. package/src/core/beacon/smt-beacon.ts +3 -3
  161. package/src/core/resolver.ts +8 -8
  162. package/src/core/updater.ts +6 -6
  163. package/src/did-btcr2.ts +2 -2
  164. package/src/index.ts +3 -0
@@ -60,7 +60,7 @@ export class Resolver {
60
60
  #unsortedUpdates = [];
61
61
  #resolvedResponse = null;
62
62
  /**
63
- * @internal Use {@link DidBtcr2.resolve} to create instances.
63
+ * @internal Use {@link DidBtcr2.resolve} to create instances.
64
64
  */
65
65
  constructor(didComponents, sidecarData, currentDocument, options) {
66
66
  this.#didComponents = didComponents;
@@ -338,20 +338,20 @@ export class Resolver {
338
338
  }
339
339
  /**
340
340
  * Advance the state machine. Returns either:
341
- * - `{ status: 'action-required', needs }` caller must provide data via {@link provide}
342
- * - `{ status: 'resolved', result }` resolution complete
341
+ * - `{ status: 'action-required', needs }` - caller must provide data via {@link provide}
342
+ * - `{ status: 'resolved', result }` - resolution complete
343
343
  *
344
344
  * Analogous to Rust's `Resolver::resolve()`.
345
345
  */
346
346
  resolve() {
347
- // Internal loop keeps advancing through phases until data is needed or done
347
+ // Internal loop: keeps advancing through phases until data is needed or done
348
348
  while (true) {
349
349
  switch (this.#phase) {
350
350
  // Phase: GenesisDocument
351
351
  // Only entered for EXTERNAL (x HRP) identifiers when genesis doc was not in sidecar.
352
352
  case ResolverPhase.GenesisDocument: {
353
353
  if (this.#providedGenesisDocument) {
354
- // Genesis doc was provided establish the current document
354
+ // Genesis doc was provided, establish the current document
355
355
  this.#currentDocument = Resolver.external(this.#didComponents, this.#providedGenesisDocument);
356
356
  this.#providedGenesisDocument = null;
357
357
  this.#phase = ResolverPhase.BeaconDiscovery;
@@ -384,7 +384,7 @@ export class Resolver {
384
384
  needs: [{ kind: 'NeedBeaconSignals', beaconServices: newServices }]
385
385
  };
386
386
  }
387
- // No new beacon services to query move to processing
387
+ // No new beacon services to query, move to processing
388
388
  this.#phase = ResolverPhase.BeaconProcess;
389
389
  continue;
390
390
  }
@@ -400,11 +400,11 @@ export class Resolver {
400
400
  const beacon = BeaconFactory.establish(service);
401
401
  const result = beacon.processSignals(signals, this.#sidecarData);
402
402
  if (result.needs.length > 0) {
403
- // This service has unmet data needs collect them
403
+ // This service has unmet data needs, collect them
404
404
  allNeeds.push(...result.needs);
405
405
  }
406
406
  else {
407
- // All signals for this service resolved collect updates, mark processed
407
+ // All signals for this service resolved, collect updates, mark processed
408
408
  this.#unsortedUpdates.push(...result.updates);
409
409
  this.#processedServices.add(service.id);
410
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,MAAM,IAAI,UAAU,EACpB,MAAM,IAAI,UAAU,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA6EpD;;GAEG;AACH,IAAK,aAMJ;AAND,WAAK,aAAa;IAChB,oDAAmC,CAAA;IACnC,oDAAmC,CAAA;IACnC,gDAAiC,CAAA;IACjC,8CAAgC,CAAA;IAChC,sCAA4B,CAAA;AAC9B,CAAC,EANI,aAAa,KAAb,aAAa,QAMjB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,QAAQ;IACnB,2BAA2B;IAClB,cAAc,CAAgB;IAC9B,UAAU,CAAU;IACpB,YAAY,CAAU;IAE/B;;OAEG;IACH,MAAM,CAAgB;IACtB,YAAY,CAAc;IAC1B,gBAAgB,CAAqB;IACrC,wBAAwB,GAAkB,IAAI,CAAC;IAC/C,sBAAsB,GAA4C,IAAI,GAAG,EAAE,CAAC;IAC5E,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC5C,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IACvC,gBAAgB,GAA8C,EAAE,CAAC;IACjE,iBAAiB,GAAiC,IAAI,CAAC;IAEvD;;OAEG;IACH,YACE,aAA4B,EAC5B,WAAwB,EACxB,eAAmC,EACnC,OAAgF;QAEhF,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,WAAW,CAAC;QAEzC,gFAAgF;QAChF,IAAG,OAAO,EAAE,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;QAC1D,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC,MAAM,GAAG,eAAe;YAC3B,CAAC,CAAC,aAAa,CAAC,eAAe;YAC/B,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,aAA4B;QAC/C,kDAAkD;QAClD,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;QAEhD,wCAAwC;QACxC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAE3D,oGAAoG;QACpG,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,4BAA4B,CAAC,YAAY,CAAC,CAAC;QAErE,kDAAkD;QAClD,MAAM,OAAO,GAAG,WAAW,CAAC,sBAAsB,CAAC;YACjD,EAAE,EAAW,GAAG;YAChB,SAAS,EAAI,YAAY;YACzB,OAAO,EAAM,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;YAC9C,UAAU,EAAG,iBAAiB;SAC/B,CAAC,CAAC;QAEH,OAAO,IAAI,WAAW,CAAC;YACrB,EAAE,EAAmB,GAAG;YACxB,kBAAkB,EAAG,CAAC;oBACpB,EAAE,EAAmB,GAAG,GAAG,aAAa;oBACxC,IAAI,EAAiB,UAAU;oBAC/B,UAAU,EAAW,GAAG;oBACxB,kBAAkB,EAAG,SAAS,CAAC,OAAO;iBACvC,CAAC;YACF,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CACb,aAA4B,EAC5B,eAAuB;QAEvB,oDAAoD;QACpD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAEhE,oFAAoF;QACpF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,YAAY,CACpB,iEAAiE,EACjE,oBAAoB,EAAE;gBACpB,YAAY,EAAU,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;gBACnE,mBAAmB,EAAG,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC;aAC7D,CACF,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAEzE,2EAA2E;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,GAAG,CAAC,CACtE,CAAC;QAEF,uCAAuC;QACvC,OAAO,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,UAAmB,EAAa;QACjD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;QACvD,IAAG,OAAO,CAAC,OAAO,EAAE,MAAM;YACxB,KAAI,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACpE,CAAC;QAEH,wBAAwB;QACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QAClD,IAAG,OAAO,CAAC,UAAU,EAAE,MAAM;YAC3B,KAAI,MAAM,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC;QAEH,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,IAAG,OAAO,CAAC,SAAS,EAAE,MAAM;YAC1B,KAAI,MAAM,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CACZ,eAA4B,EAC5B,eAA0D,EAC1D,WAAoB,EACpB,SAAkB;QAElB,gDAAgD;QAChD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,kEAAkE;QAClE,MAAM,iBAAiB,GAAgB,EAAE,CAAC;QAE1C,mFAAmF;QACnF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CACzE,CAAC;QAEF,mCAAmC;QACnC,MAAM,QAAQ,GAA0B;YACtC,WAAW,EAAG,eAAe;YAC7B,QAAQ,EAAM;gBACZ,SAAS,EAAO,GAAG,gBAAgB,EAAE;gBACrC,aAAa,EAAG,CAAC;gBACjB,OAAO,EAAS,EAAE;gBAClB,WAAW,EAAK,eAAe,CAAC,WAAW,IAAI,KAAK;aACrD;SACF,CAAC;QAEF,wCAAwC;QACxC,KAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,oDAAoD;YACpD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAErE,yCAAyC;YACzC,MAAM,SAAS,GAAG,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE7D,uFAAuF;YAEvF,+DAA+D;YAC/D,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAE1E,+CAA+C;YAC/C,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YAEtD,uGAAuG;YACvG,IAAG,WAAW,EAAE,CAAC;gBACf,0CAA0C;gBAC1C,IAAG,SAAS,GAAG,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5D,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,0EAA0E;YAC1E,IAAG,MAAM,CAAC,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC9C,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACnD,CAAC;YAED,sEAAsE;iBACjE,IAAI,MAAM,CAAC,eAAe,KAAK,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACzD,uEAAuE;gBACvE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBACxE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,YAAY,CACpB,0DAA0D,EAC1D,kBAAkB,EAAE;wBAClB,UAAU,EAAY,MAAM,CAAC,UAAU;wBACvC,mBAAmB,EAAG,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC;qBAC7D,CACF,CAAC;gBACJ,CAAC;gBACD,qEAAqE;gBACrE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAEtE,qEAAqE;gBACrE,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAwB,CAAC;gBACtF,6EAA6E;gBAC7E,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,gFAAgF;iBAC3E,IAAG,MAAM,CAAC,eAAe,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,YAAY,CACpB,uEAAuE,EACvE,uBAAuB,EAAE;oBACvB,eAAe,EAAI,MAAM,CAAC,eAAe;oBACzC,gBAAgB,EAAG,gBAAgB,GAAG,CAAC;iBACxC,CACF,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,gBAAgB,EAAE,CAAC;YAEnB,yDAAyD;YACzD,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,gBAAgB,EAAE,CAAC;YAEpD,4FAA4F;YAC5F,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAClE,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,yEAAyE;YACzE,IAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBACpC,4CAA4C;gBAC5C,QAAQ,CAAC,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;gBACjE,0EAA0E;gBAC1E,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,gBAAgB,CAAC,MAAyB,EAAE,iBAA8B;QACvF,qEAAqE;QACrE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC;QAE/C,uEAAuE;QACvE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAE9D,qEAAqE;QACrE,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAE3E,wEAAwE;QACxE,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,YAAY,CACpB,wEAAwE,EACxE,qBAAqB,EAAE;gBACrB,kBAAkB,EAAG,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC;gBAC1D,cAAc,EAAO,UAAU,CAAC,oBAAoB,EAAE,KAAK,CAAC;aAC7D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,WAAW,CACxB,eAA4B,EAC5B,MAAyB;QAEzB,kDAAkD;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;QAC9C,qDAAqD;QACrD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,uDAAuD;YACvD,MAAM,IAAI,YAAY,CAAC,oCAAoC,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC3F,CAAC;QAED,mEAAmE;QACnE,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEhE,2EAA2E;QAC3E,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;QACxE,+EAA+E;QAC/E,IAAI,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YACjF,2DAA2D;YAC3D,MAAM,IAAI,YAAY,CACpB,yBAAyB,EACzB,kBAAkB,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,CACxD,CAAC;QACJ,CAAC;QAED,kFAAkF;QAClF,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;QAC9D,qDAAqD;QACrD,IAAG,CAAC,oBAAoB,EAAE,CAAC;YACzB,uDAAuD;YACvD,MAAM,IAAI,YAAY,CAAC,uCAAuC,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC9F,CAAC;QAED,mFAAmF;QACnF,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAE5E,mCAAmC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAE5D,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEpD,0BAA0B;QAC1B,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAE7C,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAE1D,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;QAExF,gEAAgE;QAChE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CACpB,oCAAoC,EACpC,kBAAkB,EAAE,kBAAkB,CACvC,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAgB,CAAC;QAEtF,8DAA8D;QAC9D,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAEtC,wFAAwF;QACxF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAEhE,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvD,8DAA8D;QAC9D,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACvD,wDAAwD;YACxD,MAAM,IAAI,YAAY,CACpB,2DAA2D,EAC3D,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAC9D,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,6EAA6E;QAC7E,OAAM,IAAI,EAAE,CAAC;YACX,QAAO,IAAI,CAAC,MAAM,EAAE,CAAC;gBAEnB,yBAAyB;gBACzB,qFAAqF;gBACrF,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;oBACnC,IAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;wBACjC,2DAA2D;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CACvC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,wBAAwB,CACnD,CAAC;wBACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC;wBAC5C,SAAS;oBACX,CAAC;oBAED,oCAAoC;oBACpC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBACxE,OAAO;wBACL,MAAM,EAAG,iBAAiB;wBAC1B,KAAK,EAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC;qBACxD,CAAC;gBACJ,CAAC;gBAED,yBAAyB;gBACzB,iFAAiF;gBACjF,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;oBACnC,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC;oBAE7E,gEAAgE;oBAChE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBAClD,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAyB,CAAC,CAAC;wBACnF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBAEH,IAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,0EAA0E;wBAC1E,KAAI,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAyB,CAAC,CAAC;4BACnF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBAClC,CAAC;wBAED,OAAO;4BACL,MAAM,EAAG,iBAAiB;4BAC1B,KAAK,EAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;yBACtE,CAAC;oBACJ,CAAC;oBAED,sDAAsD;oBACtD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBAED,uBAAuB;gBACvB,iEAAiE;gBACjE,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;oBACjC,MAAM,QAAQ,GAAoB,EAAE,CAAC;oBAErC,KAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC5D,+DAA+D;wBAC/D,IAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;4BAAE,SAAS;wBAExE,mDAAmD;wBACnD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBAChD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEjE,IAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,kDAAkD;4BAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;6BAAM,CAAC;4BACN,yEAAyE;4BACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC9C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBAED,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;oBACxD,CAAC;oBAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,sBAAsB;gBACtB,6EAA6E;gBAC7E,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;oBAChC,IAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,sDAAsD;wBACtD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CACvC,IAAI,CAAC,gBAAiB,EACtB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAChB,CAAC;wBACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;wBAE3B,yEAAyE;wBACzE,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;4BACnD,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAyB,CAAC,CAAC;4BACnF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBAC1C,CAAC,CAAC,CAAC;wBAEH,IAAG,cAAc,EAAE,CAAC;4BAClB,wDAAwD;4BACxD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC;4BAC5C,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,kBAAkB;gBAClB,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5B,OAAO;wBACL,MAAM,EAAG,UAAU;wBACnB,MAAM,EAAG,IAAI,CAAC,iBAAiB,IAAI;4BACjC,WAAW,EAAG,IAAI,CAAC,gBAAiB;4BACpC,QAAQ,EAAM;gCACZ,SAAS,EAAK,IAAI,CAAC,UAAU,IAAI,GAAG;gCACpC,WAAW,EAAG,IAAI,CAAC,gBAAiB,CAAC,WAAW,IAAI,KAAK;6BAC1D;yBACF;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAgBD,OAAO,CAAC,IAAc,EAAE,IAAuG;QAC7H,QAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;gBACrC,MAAM;YACR,CAAC;YAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,IAA+C,CAAC;gBAChE,KAAI,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC/C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3D,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,YAAY,GAAG,IAAuB,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC7F,MAAM;YACR,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAyB,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACpF,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAoB,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAgB,CAAC;gBAC/B,0EAA0E;gBAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC7E,IAAG,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;oBACtC,MAAM,IAAI,YAAY,CACpB,0CAA0C,OAAO,CAAC,WAAW,SAAS,UAAU,EAAE,EAClF,kBAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAC1E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -4,7 +4,7 @@ import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
4
4
  import { DidDocument } from '../utils/did-document.js';
5
5
  import { BeaconFactory } from './beacon/factory.js';
6
6
  /**
7
- * Sans-I/O state machine for did:btcr2 updates the counterpart to {@link Resolver}.
7
+ * Sans-I/O state machine for did:btcr2 updates: the counterpart to {@link Resolver}.
8
8
  *
9
9
  * Created by {@link DidBtcr2.update} (the factory). The caller drives the update by
10
10
  * repeatedly calling {@link advance} and {@link provide}:
@@ -55,7 +55,7 @@ export class Updater {
55
55
  #verificationMethod;
56
56
  #beaconService;
57
57
  /**
58
- * @internal Use {@link DidBtcr2.update} to create instances.
58
+ * @internal Use {@link DidBtcr2.update} to create instances.
59
59
  */
60
60
  constructor(params) {
61
61
  this.#sourceDocument = params.sourceDocument;
@@ -94,7 +94,7 @@ export class Updater {
94
94
  // didTargetDocument.id is not equal to didSourceDocument.id." `DidDocument.isValid`
95
95
  // checks W3C conformance but not this equality, so it's enforced explicitly here.
96
96
  if (targetDocument.id !== sourceDocument.id) {
97
- throw new UpdateError(`Patches must not change the DID document id (source "${sourceDocument.id}" target "${targetDocument.id}").`, INVALID_DID_UPDATE, { sourceId: sourceDocument.id, targetId: targetDocument.id });
97
+ throw new UpdateError(`Patches must not change the DID document id (source "${sourceDocument.id}" to target "${targetDocument.id}").`, INVALID_DID_UPDATE, { sourceId: sourceDocument.id, targetId: targetDocument.id });
98
98
  }
99
99
  try {
100
100
  DidDocument.isValid(targetDocument);
@@ -164,8 +164,8 @@ export class Updater {
164
164
  }
165
165
  /**
166
166
  * Advance the state machine. Returns either:
167
- * - `{ status: 'action-required', needs }` caller must provide data via {@link provide}
168
- * - `{ status: 'complete', result }` update is signed and broadcast
167
+ * - `{ status: 'action-required', needs }` caller must provide data via {@link provide}
168
+ * - `{ status: 'complete', result }` update is signed and broadcast
169
169
  */
170
170
  advance() {
171
171
  while (true) {
@@ -178,7 +178,7 @@ export class Updater {
178
178
  continue;
179
179
  }
180
180
  // Phase: Sign
181
- // Emit NeedSigningKey the caller supplies the secret key (or a KMS signature).
181
+ // Emit NeedSigningKey: the caller supplies the secret key (or a KMS signature).
182
182
  case 'Sign': {
183
183
  return {
184
184
  status: 'action-required',
@@ -1 +1 @@
1
- {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../src/core/updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../src/core/updater.ts"],"names":[],"mappings":"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"}
@@ -91,8 +91,8 @@ export class DidBtcr2 {
91
91
  *
92
92
  * Factory method that validates the update parameters and returns a sans-I/O
93
93
  * {@link Updater} state machine. The caller drives the updater through its
94
- * phases (Construct Sign Broadcast Complete) by calling `advance()` and
95
- * `provide()`. The method package performs **zero I/O** signing key retrieval
94
+ * phases (Construct -> Sign -> Broadcast -> Complete) by calling `advance()` and
95
+ * `provide()`. The method package performs **zero I/O**: signing key retrieval
96
96
  * (or KMS delegation) and the on-chain broadcast are the caller's responsibility.
97
97
  *
98
98
  * For a fully-wired version with Bitcoin broadcast and key handling, see
package/dist/esm/index.js CHANGED
@@ -3,6 +3,9 @@ export * from './core/aggregation/service.js';
3
3
  export * from './core/aggregation/participant.js';
4
4
  export * from './core/aggregation/signer.js';
5
5
  export * from './core/aggregation/conditions.js';
6
+ export * from './core/aggregation/recovery-policy.js';
7
+ export * from './core/aggregation/recovery-spend.js';
8
+ export * from './core/aggregation/fallback-spend.js';
6
9
  export * from './core/aggregation/cohort.js';
7
10
  export * from './core/aggregation/signing-session.js';
8
11
  export * from './core/aggregation/phases.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,UAAU;AACV,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,OAAO;AACP,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,QAAQ;AACR,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,UAAU;AACV,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,OAAO;AACP,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,QAAQ;AACR,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,gBAAgB,CAAC"}
@@ -35,13 +35,17 @@ export interface AggregateBeaconStrategy {
35
35
  getDistributePayload(cohort: AggregationCohort, participantDid: string): BeaconDistributePayload;
36
36
  /**
37
37
  * Participant: verify the aggregated data they received reflects their own
38
- * submitted update. Pure function returns matches + sidecar fields for
39
- * the caller to store.
38
+ * slot. A submitter (`included: true`) checks its update is included; a
39
+ * decliner (`included: false`, cooperative non-inclusion) checks its
40
+ * non-inclusion slot instead (absence from the CAS map, or an SMT
41
+ * non-inclusion proof). `submittedUpdate`/`expectedHash` are present only for a
42
+ * submitter. Pure function: returns matches + sidecar fields for the caller.
40
43
  */
41
44
  validateParticipantView(params: {
42
45
  participantDid: string;
43
- submittedUpdate: SignedBTCR2Update;
44
- expectedHash: string;
46
+ included: boolean;
47
+ submittedUpdate?: SignedBTCR2Update;
48
+ expectedHash?: string;
45
49
  body: BaseBody;
46
50
  }): BeaconValidationResult;
47
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"beacon-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/beacon-strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAEjG;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,iBAAiB,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC;KAChB,GAAG,sBAAsB,CAAC;CAC5B;AA6DD,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAE9E;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAEnF"}
1
+ {"version":3,"file":"beacon-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/beacon-strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAEjG;;;;;;;OAOG;IACH,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,CAAC,EAAE,iBAAiB,CAAC;QACpC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC;KAChB,GAAG,sBAAsB,CAAC;CAC5B;AA2ED,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAE9E;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAEnF"}
@@ -1,19 +1,28 @@
1
1
  import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
2
2
  import type { SerializedSMTProof } from '@did-btcr2/smt';
3
3
  import type { CASAnnouncement } from '../types.js';
4
+ import type { FundingModel } from './recovery-policy.js';
4
5
  export type AggregationCohortParams = {
5
6
  id?: string;
6
7
  serviceDid?: string;
7
8
  minParticipants?: number;
8
9
  network: string;
9
10
  beaconType?: string;
11
+ /** Operator recovery key, x-only (32 bytes). Required to compute the beacon address. */
12
+ recoveryKey?: Uint8Array;
13
+ /** Relative-timelock (BIP-68 nSequence) before recovery is spendable. Required to compute the beacon address. */
14
+ recoverySequence?: number;
15
+ /** Funding model governing the recovery leaves. Defaults to 'operator-funded'. */
16
+ fundingModel?: FundingModel;
17
+ /** Advertised k of the k-of-n fallback leaf. Absent defaults to n-1 at address computation. */
18
+ fallbackThreshold?: number;
10
19
  };
11
20
  /**
12
- * Represents an Aggregation Cohort a set of Aggregation Participants who
21
+ * Represents an Aggregation Cohort: a set of Aggregation Participants who
13
22
  * submitted cryptographic material to an Aggregation Service to coordinate
14
23
  * signing of a shared n-of-n MuSig2 Bitcoin transaction.
15
24
  *
16
- * This is a pure data class it holds cohort state and provides computation
25
+ * This is a pure data class: it holds cohort state and provides computation
17
26
  * helpers (key aggregation, CAS Announcement building, SMT tree building).
18
27
  * It performs no I/O and emits no messages. Both AggregationService and
19
28
  * AggregationParticipant create their own AggregationCohort instances to
@@ -36,23 +45,48 @@ export declare class AggregationCohort {
36
45
  /** List of participant DIDs that have been accepted into the cohort. */
37
46
  participants: Array<string>;
38
47
  /**
39
- * Mapping from participant DID their compressed secp256k1 public key.
40
- * Distinct from {@link cohortKeys} (which is sorted per BIP-327) this lets
48
+ * Mapping from participant DID to their compressed secp256k1 public key.
49
+ * Distinct from {@link cohortKeys} (which is sorted per BIP-327): this lets
41
50
  * callers look up a participant's key without knowing their position in the
42
51
  * sorted array. Populated by the service at `acceptParticipant` time.
43
52
  */
44
53
  participantKeys: Map<string, Uint8Array>;
45
54
  /**
46
- * BIP-341 TapTweak `taggedHash("TapTweak", internalPubkey)` for a key-path-only
47
- * Taproot output. Despite prior naming, this is NOT a Merkle root: key-path-only
48
- * spends have no script tree.
55
+ * BIP-341 TapTweak scalar: `taggedHash("TapTweak", internalPubkey || tapMerkleRoot)`.
56
+ * The beacon output is an internal key (the MuSig2 aggregate) plus a script
57
+ * tree (the recovery leaves), so the tweak commits to the tree's Merkle root.
58
+ * The MuSig2 signing session applies this as an x-only tweak; a value that does
59
+ * not match the root the funded address was derived from silently yields an
60
+ * invalid key-path signature.
49
61
  */
50
62
  tapTweak: Uint8Array;
51
- /** The n-of-n MuSig2 Taproot beacon address. */
63
+ /** The n-of-n MuSig2 aggregate internal key, x-only (32 bytes), set by computeBeaconAddress(). */
64
+ internalKey: Uint8Array;
65
+ /** BIP-341 Taproot Merkle root of the recovery script tree, set by computeBeaconAddress(). */
66
+ tapMerkleRoot: Uint8Array;
67
+ /** Operator recovery key, x-only (32 bytes). Used to build the CSV recovery leaf. */
68
+ recoveryKey?: Uint8Array;
69
+ /** Relative-timelock (BIP-68 nSequence) before the recovery leaf is spendable. */
70
+ recoverySequence?: number;
71
+ /** Funding model governing the recovery leaves (default 'operator-funded'). */
72
+ fundingModel: FundingModel;
73
+ /**
74
+ * Advertised k of the k-of-n fallback leaf, or undefined to default to n-1 at
75
+ * address computation. Read the resolved value via {@link effectiveFallbackThreshold}.
76
+ */
77
+ fallbackThreshold?: number;
78
+ /** The Taproot beacon address: key path is the MuSig2 aggregate, script path is fallback + recovery. */
52
79
  beaconAddress: string;
53
80
  /** Pending DID updates submitted by participants, keyed by DID. */
54
81
  pendingUpdates: Map<string, SignedBTCR2Update>;
55
- /** CAS Beacon Announcement Map (DID → updateHash), set by buildCASAnnouncement(). */
82
+ /**
83
+ * Participant DIDs that explicitly declined to submit an update this round
84
+ * (cooperative non-inclusion). A decliner is absent from the CAS Announcement
85
+ * Map and carries a non-inclusion leaf in the SMT, yet still signs. Kept
86
+ * disjoint from {@link pendingUpdates} so CAS correctness holds by construction.
87
+ */
88
+ nonIncluded: Set<string>;
89
+ /** CAS Beacon Announcement Map (DID to updateHash), set by buildCASAnnouncement(). */
56
90
  casAnnouncement?: CASAnnouncement;
57
91
  /** Per-participant SMT proofs, set by buildSMTTree(). */
58
92
  smtProofs?: Map<string, SerializedSMTProof>;
@@ -62,13 +96,28 @@ export declare class AggregationCohort {
62
96
  validationAcks: Set<string>;
63
97
  /** Set of participant DIDs that have rejected the aggregated data. */
64
98
  validationRejections: Set<string>;
65
- constructor({ id, minParticipants, serviceDid, network, beaconType }: AggregationCohortParams);
99
+ constructor({ id, minParticipants, serviceDid, network, beaconType, recoveryKey, recoverySequence, fundingModel, fallbackThreshold }: AggregationCohortParams);
66
100
  /** Sorted cohort keys (sorted on assignment per BIP-327). */
67
101
  get cohortKeys(): Array<Uint8Array>;
68
102
  set cohortKeys(keys: Array<Uint8Array>);
69
103
  /**
70
- * Computes the n-of-n MuSig2 Taproot beacon address from cohort keys.
71
- * Sets `tapTweak` to the BIP-341 key-path-only tweak.
104
+ * The resolved k of the k-of-n fallback leaf: the advertised
105
+ * {@link fallbackThreshold}, or n-1 (floored at 1) when unadvertised, where n is
106
+ * the current cohort size. This is the value the beacon address commits to and
107
+ * the spend builders must reproduce. Returns 0 before any cohort keys are set.
108
+ */
109
+ get effectiveFallbackThreshold(): number;
110
+ /**
111
+ * Computes the Taproot beacon address from the cohort keys and recovery params.
112
+ *
113
+ * The output's key path is the n-of-n MuSig2 aggregate of the cohort keys; its
114
+ * script path is the recovery tree (a CSV recovery leaf so a missing signer
115
+ * cannot permanently lock the UTXO). Sets `internalKey`, `tapMerkleRoot`, and
116
+ * the `tapTweak` the MuSig2 session must apply for the key-path spend.
117
+ *
118
+ * The tweak is derived from the Merkle root the address was built with (read
119
+ * back from the payment), never recomputed by hand, so the MuSig2 key-path
120
+ * signature is guaranteed to validate against the funded address.
72
121
  */
73
122
  computeBeaconAddress(): string;
74
123
  /**
@@ -84,17 +133,39 @@ export declare class AggregationCohort {
84
133
  */
85
134
  indexOfParticipant(did: string): number;
86
135
  addUpdate(participantDid: string, signedUpdate: SignedBTCR2Update): void;
136
+ /**
137
+ * Record that a participant declined to submit an update this round
138
+ * (cooperative non-inclusion). The member stays in the cohort and still signs.
139
+ */
140
+ addNonInclusion(participantDid: string): void;
87
141
  hasAllUpdates(): boolean;
142
+ /**
143
+ * True when every participant has responded for this round, either with an
144
+ * update or with an explicit non-inclusion. This is the aggregation gate when
145
+ * non-inclusion is in play; it generalizes {@link hasAllUpdates} the same way
146
+ * {@link hasAllValidationResponses} generalizes a unanimous ack.
147
+ */
148
+ hasAllResponses(): boolean;
88
149
  /**
89
150
  * Builds a CAS Announcement Map from collected updates.
90
- * Maps each participant DID base64url canonical hash of their signed update.
151
+ * Maps each participant DID to base64url canonical hash of their signed update.
91
152
  * Computes signal bytes as SHA-256 of canonicalized announcement.
153
+ *
154
+ * Members who declined (cooperative non-inclusion) are naturally absent from
155
+ * the map: the body iterates {@link pendingUpdates}, which never holds a
156
+ * decliner. Absence from the map is exactly the CAS non-inclusion signal.
92
157
  */
93
158
  buildCASAnnouncement(): CASAnnouncement;
94
159
  /**
95
- * Builds an SMT tree from collected updates.
96
- * Each entry uses a random 32-byte nonce + canonicalized signed update bytes.
97
- * Stores per-participant proofs and the SMT root as signalBytes.
160
+ * Builds an SMT tree with one leaf per participant.
161
+ *
162
+ * A member who submitted an update gets an inclusion leaf
163
+ * (SHA-256(SHA-256(nonce) || SHA-256(update))); a member who declined gets a
164
+ * non-inclusion leaf (SHA-256(SHA-256(nonce)), the `signedUpdate` entry field
165
+ * omitted). The cohort mints each member's nonce and returns it inside that
166
+ * member's serialized proof, so a decliner can self-validate its own
167
+ * non-inclusion slot and the resolver can recompute the leaf. Stores
168
+ * per-participant proofs and the SMT root as signalBytes.
98
169
  */
99
170
  buildSMTTree(): Map<string, SerializedSMTProof>;
100
171
  addValidation(participantDid: string, approved: boolean): void;
@@ -103,7 +174,7 @@ export declare class AggregationCohort {
103
174
  */
104
175
  hasAllValidationResponses(): boolean;
105
176
  /**
106
- * True when all participants approved. Note: differs from {@link hasAllValidationResponses}
177
+ * True when all participants approved. Note: differs from {@link hasAllValidationResponses},
107
178
  * this returns false if any participant rejected, even if all responses are in.
108
179
  */
109
180
  isFullyValidated(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cohort.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/cohort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,gBAAgB,CAAC;AAMpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;;IAC5B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IAEX,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IAEnB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IAExB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAEhB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IAEnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAEjC;;;;;OAKG;IACH,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IAKrD;;;;OAIG;IACH,QAAQ,EAAE,UAAU,CAAoB;IAExC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAM;IAE3B,mEAAmE;IACnE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IAE3D,qFAAqF;IACrF,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,yDAAyD;IACzD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE5C,sFAAsF;IACtF,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,sEAAsE;IACtE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAExC,sEAAsE;IACtE,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAElC,EAAE,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,uBAAuB;IAU7F,6DAA6D;IAC7D,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,CAElC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,EAErC;IAED;;;OAGG;IACI,oBAAoB,IAAI,MAAM;IA4BrC;;;;OAIG;IACI,kBAAkB,CACvB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAC5B,qBAAqB,EAAE,MAAM,GAC5B,IAAI;IAiBP;;;;OAIG;IACI,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQvC,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAUxE,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,eAAe;IAgB9C;;;;OAIG;IACI,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IA4B/C,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAcrE;;OAEG;IACI,yBAAyB,IAAI,OAAO;IAI3C;;;OAGG;IACI,gBAAgB,IAAI,OAAO;CAInC"}
1
+ {"version":3,"file":"cohort.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/cohort.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,11 @@
14
14
  * conditions are advertised metadata only - the protocol performs no payment or
15
15
  * settlement (consistent with ADR 008).
16
16
  */
17
+ import type { FundingModel } from './recovery-policy.js';
17
18
  /** Beacon types that support aggregation (singleton is single-party only, per ADR 037). */
18
19
  export declare const KNOWN_BEACON_TYPES: readonly ["CASBeacon", "SMTBeacon"];
20
+ /** Funding models an operator may advertise. Only 'operator-funded' is implemented (ADR 042). */
21
+ export declare const KNOWN_FUNDING_MODELS: readonly ["operator-funded", "participant-funded"];
19
22
  /**
20
23
  * An advertised price. `unit` is operator-defined (the spec does not specify a
21
24
  * currency); `basis` distinguishes a per-DID from a per-participant charge for
@@ -48,6 +51,31 @@ export interface CohortConditions {
48
51
  maxSecondsBetweenAnnouncements?: number;
49
52
  /** 7. Pending-update count that triggers an announcement. Advertised; enforcement staged (AGG-5) - generalizes hasAllUpdates(). */
50
53
  pendingUpdateTrigger?: number;
54
+ /**
55
+ * Who funds the beacon UTXO and holds the recovery path. Defaults to
56
+ * 'operator-funded' when absent. See ADR 042.
57
+ */
58
+ fundingModel?: FundingModel;
59
+ /**
60
+ * Operator recovery key, x-only (64-character hex / 32 bytes). The beacon
61
+ * output commits to a CSV recovery leaf keyed to this key, so a missing signer
62
+ * can never permanently lock the funded UTXO. Required (ADR 042).
63
+ */
64
+ recoveryKey: string;
65
+ /**
66
+ * Relative-timelock (BIP-68 nSequence, in blocks) before the recovery leaf is
67
+ * spendable. Required, >= 1 (ADR 042).
68
+ */
69
+ recoverySequence: number;
70
+ /**
71
+ * Number of signers (k) the k-of-n fallback leaf requires, so any k cohort
72
+ * members can still announce when the optimistic n-of-n key path stalls
73
+ * (graceful liveness, ADR 042). Optional: when absent it defaults to n-1 at
74
+ * keygen, where n is the finalized participant count. When advertised it must
75
+ * be an integer >= 1 (and <= maxParticipants when that is set); the upper bound
76
+ * against the actual cohort size n is enforced at keygen.
77
+ */
78
+ fallbackThreshold?: number;
51
79
  }
52
80
  /**
53
81
  * Validate a set of cohort conditions. Returns a list of human-readable problems
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/conditions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,qCAAsC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC;CACvC;AAED,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,kGAAkG;IAClG,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,+HAA+H;IAC/H,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mIAAmI;IACnI,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA6BD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA4BtE"}
1
+ {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/conditions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,qCAAsC,CAAC;AAEtE,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,oDAAqD,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC;CACvC;AAED,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,kGAAkG;IAClG,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,+HAA+H;IAC/H,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mIAAmI;IACnI,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA6BD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAqDtE"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Fallback spend builder for aggregate beacon outputs.
3
+ *
4
+ * An aggregate beacon UTXO is a Taproot output whose key path is the cohort's
5
+ * n-of-n MuSig2 aggregate key and whose script path carries a k-of-n fallback
6
+ * leaf (`p2tr_ms` CHECKSIGADD) plus a CSV recovery leaf (see
7
+ * {@link ./recovery-policy.ts} and ADR 042). When the optimistic n-of-n key path
8
+ * stalls (a missing or defecting signer), the cohort can still push the SAME
9
+ * announcement transaction through the fallback leaf with any k members'
10
+ * signatures, instead of abandoning the round or waiting out the recovery
11
+ * timelock.
12
+ *
13
+ * Unlike the MuSig2 key path, the fallback is a plain k-of-n script-path spend:
14
+ * each signer produces a standalone BIP-340 signature over the script-path
15
+ * sighash (no nonce round), and the coordinator assembles k of them into the
16
+ * witness. The coordinator never holds a participant secret - it injects the
17
+ * collected signatures and finalizes.
18
+ *
19
+ * This module is pure with respect to the network: it takes the beacon
20
+ * transaction, the cohort and recovery parameters, the spent output, and the
21
+ * collected signatures, and returns a finalized {@link Transaction}.
22
+ * Broadcasting is the caller's concern.
23
+ */
24
+ import type { Transaction } from '@scure/btc-signer';
25
+ import type { FundingModel } from './recovery-policy.js';
26
+ /** A single member's standalone signature over the fallback script-path sighash. */
27
+ export interface FallbackSignature {
28
+ /** Signer's x-only public key (32 bytes). Must be one of the cohort's keys. */
29
+ pubKey: Uint8Array;
30
+ /** 64-byte BIP-340 Schnorr signature over the script-path sighash. */
31
+ signature: Uint8Array;
32
+ }
33
+ /** Inputs to {@link buildFallbackSpend}. */
34
+ export interface FallbackSpendParams {
35
+ /**
36
+ * The beacon announcement transaction to finalize. Input {@link inputIndex}
37
+ * spends the beacon UTXO; its key-path witness must not be set (the fallback
38
+ * assembles a script-path witness instead).
39
+ */
40
+ pendingTx: Transaction;
41
+ /** Index of the beacon input within {@link pendingTx}. Defaults to 0. */
42
+ inputIndex?: number;
43
+ /**
44
+ * The cohort's participant public keys (compressed secp256k1, 33 bytes).
45
+ * Sorted internally per BIP-327 so the reconstructed tree matches the funded
46
+ * output.
47
+ */
48
+ cohortKeys: Uint8Array[];
49
+ /**
50
+ * The advertised k of the k-of-n fallback leaf, or omit for the cohort's n-1
51
+ * default. Resolved against `cohortKeys.length` exactly as the cohort does.
52
+ */
53
+ fallbackThreshold?: number;
54
+ /** Operator recovery key, x-only (32 bytes). Needed to reconstruct the script tree. */
55
+ recoveryKey: Uint8Array;
56
+ /** Relative-timelock (BIP-68) the recovery leaf enforces. Needed to reconstruct the script tree. */
57
+ recoverySequence: number;
58
+ /** Funding model governing the leaves. Defaults to 'operator-funded'. */
59
+ fundingModel?: FundingModel;
60
+ /** Bitcoin network name (bitcoin/mainnet, mutinynet, signet, testnet, regtest). */
61
+ network: string;
62
+ /** scriptPubKey of the beacon UTXO being spent. Must equal the reconstructed tree output script. */
63
+ prevOutScript: Uint8Array;
64
+ /** Value of the beacon UTXO in satoshis. */
65
+ prevOutValue: bigint;
66
+ /**
67
+ * Standalone signatures collected from cohort members. At least
68
+ * {@link fallbackThreshold} valid, distinct-by-key signatures are required;
69
+ * exactly k are injected (a k-of-n CHECKSIGADD leaf demands exactly k).
70
+ */
71
+ signatures: FallbackSignature[];
72
+ }
73
+ /**
74
+ * Compute the BIP-341 script-path sighash a cohort member must sign to authorize
75
+ * the fallback spend. The leaf is the k-of-n fallback leaf; signers produce a
76
+ * standalone BIP-340 signature over this digest with SIGHASH_DEFAULT.
77
+ */
78
+ export declare function fallbackSighash(tx: Transaction, inputIndex: number, prevOutScript: Uint8Array, prevOutValue: bigint, fallbackLeafScript: Uint8Array): Uint8Array;
79
+ /**
80
+ * Assemble and finalize a k-of-n fallback spend of an aggregate beacon UTXO.
81
+ *
82
+ * Reconstructs the funded Taproot output (MuSig2 internal key + fallback/recovery
83
+ * script tree), verifies each collected signature against the script-path
84
+ * sighash and a cohort key, injects exactly k distinct valid signatures into the
85
+ * fallback leaf, and finalizes the witness. The returned transaction is the same
86
+ * announcement the optimistic path would have produced, signed via the script
87
+ * path instead of the key path.
88
+ *
89
+ * @throws {AggregationCohortError} when there are no cohort keys, the spent
90
+ * script does not match the reconstructed tree output, or fewer than k valid
91
+ * distinct signatures were supplied.
92
+ */
93
+ export declare function buildFallbackSpend(params: FallbackSpendParams): Transaction;
94
+ //# sourceMappingURL=fallback-spend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback-spend.d.ts","sourceRoot":"","sources":["../../../../src/core/aggregation/fallback-spend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAUzD,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,MAAM,EAAE,UAAU,CAAC;IACnB,sEAAsE;IACtE,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,EAAE,WAAW,CAAC;IACvB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,WAAW,EAAE,UAAU,CAAC;IACxB,oGAAoG;IACpG,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,aAAa,EAAE,UAAU,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,UAAU,GAC7B,UAAU,CAUZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,WAAW,CA4F3E"}
@@ -6,7 +6,7 @@
6
6
  * {@link SILENT_LOGGER} to suppress output (useful for tests) or a custom
7
7
  * implementation to route logs to pino, winston, Sentry, etc.
8
8
  *
9
- * The interface is intentionally small we don't want production code taking
9
+ * The interface is intentionally small: we don't want production code taking
10
10
  * a hard dependency on any specific logger library.
11
11
  */
12
12
  export interface Logger {