@did-btcr2/method 0.36.1 → 0.38.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 (169) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/browser.js +1149 -126
  3. package/dist/browser.mjs +1149 -126
  4. package/dist/cjs/index.js +1244 -208
  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 +12 -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 +104 -11
  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 +116 -20
  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/fee-estimator.js +8 -0
  55. package/dist/esm/core/beacon/fee-estimator.js.map +1 -1
  56. package/dist/esm/core/beacon/singleton-beacon.js +2 -2
  57. package/dist/esm/core/beacon/singleton-beacon.js.map +1 -1
  58. package/dist/esm/core/beacon/smt-beacon.js +3 -3
  59. package/dist/esm/core/beacon/smt-beacon.js.map +1 -1
  60. package/dist/esm/core/resolver.js +8 -8
  61. package/dist/esm/core/resolver.js.map +1 -1
  62. package/dist/esm/core/updater.js +6 -6
  63. package/dist/esm/core/updater.js.map +1 -1
  64. package/dist/esm/did-btcr2.js +2 -2
  65. package/dist/esm/index.js +3 -0
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/types/core/aggregation/beacon-strategy.d.ts +8 -4
  68. package/dist/types/core/aggregation/beacon-strategy.d.ts.map +1 -1
  69. package/dist/types/core/aggregation/cohort.d.ts +88 -17
  70. package/dist/types/core/aggregation/cohort.d.ts.map +1 -1
  71. package/dist/types/core/aggregation/conditions.d.ts +28 -0
  72. package/dist/types/core/aggregation/conditions.d.ts.map +1 -1
  73. package/dist/types/core/aggregation/fallback-spend.d.ts +94 -0
  74. package/dist/types/core/aggregation/fallback-spend.d.ts.map +1 -0
  75. package/dist/types/core/aggregation/logger.d.ts +1 -1
  76. package/dist/types/core/aggregation/messages/base.d.ts +6 -0
  77. package/dist/types/core/aggregation/messages/base.d.ts.map +1 -1
  78. package/dist/types/core/aggregation/messages/bodies.d.ts +50 -2
  79. package/dist/types/core/aggregation/messages/bodies.d.ts.map +1 -1
  80. package/dist/types/core/aggregation/messages/constants.d.ts +8 -0
  81. package/dist/types/core/aggregation/messages/constants.d.ts.map +1 -1
  82. package/dist/types/core/aggregation/messages/factories.d.ts +40 -0
  83. package/dist/types/core/aggregation/messages/factories.d.ts.map +1 -1
  84. package/dist/types/core/aggregation/messages/guards.d.ts.map +1 -1
  85. package/dist/types/core/aggregation/participant.d.ts +41 -7
  86. package/dist/types/core/aggregation/participant.d.ts.map +1 -1
  87. package/dist/types/core/aggregation/phases.d.ts +8 -2
  88. package/dist/types/core/aggregation/phases.d.ts.map +1 -1
  89. package/dist/types/core/aggregation/recovery-policy.d.ts +132 -0
  90. package/dist/types/core/aggregation/recovery-policy.d.ts.map +1 -0
  91. package/dist/types/core/aggregation/recovery-spend.d.ts +94 -0
  92. package/dist/types/core/aggregation/recovery-spend.d.ts.map +1 -0
  93. package/dist/types/core/aggregation/runner/aggregation-runner.d.ts +19 -3
  94. package/dist/types/core/aggregation/runner/aggregation-runner.d.ts.map +1 -1
  95. package/dist/types/core/aggregation/runner/events.d.ts +28 -7
  96. package/dist/types/core/aggregation/runner/events.d.ts.map +1 -1
  97. package/dist/types/core/aggregation/runner/participant-runner.d.ts +3 -3
  98. package/dist/types/core/aggregation/runner/participant-runner.d.ts.map +1 -1
  99. package/dist/types/core/aggregation/runner/service-runner.d.ts +47 -5
  100. package/dist/types/core/aggregation/runner/service-runner.d.ts.map +1 -1
  101. package/dist/types/core/aggregation/service.d.ts +26 -2
  102. package/dist/types/core/aggregation/service.d.ts.map +1 -1
  103. package/dist/types/core/aggregation/signing-session.d.ts +2 -2
  104. package/dist/types/core/aggregation/signing-session.d.ts.map +1 -1
  105. package/dist/types/core/aggregation/transport/http/envelope.d.ts +3 -3
  106. package/dist/types/core/aggregation/transport/http/inbox-buffer.d.ts +1 -1
  107. package/dist/types/core/aggregation/transport/http/nonce-cache.d.ts +1 -1
  108. package/dist/types/core/aggregation/transport/http/rate-limiter.d.ts +1 -1
  109. package/dist/types/core/aggregation/transport/http/request-auth.d.ts +1 -1
  110. package/dist/types/core/aggregation/transport/http/server.d.ts +1 -1
  111. package/dist/types/core/aggregation/transport/http/sse-stream.d.ts +2 -2
  112. package/dist/types/core/aggregation/transport/http/sse-writer.d.ts +1 -1
  113. package/dist/types/core/aggregation/transport/in-memory.d.ts +1 -1
  114. package/dist/types/core/aggregation/transport/nostr.d.ts +4 -4
  115. package/dist/types/core/aggregation/transport/transport.d.ts +4 -4
  116. package/dist/types/core/aggregation/transport/transport.d.ts.map +1 -1
  117. package/dist/types/core/beacon/beacon.d.ts +66 -10
  118. package/dist/types/core/beacon/beacon.d.ts.map +1 -1
  119. package/dist/types/core/beacon/cas-beacon.d.ts +2 -2
  120. package/dist/types/core/beacon/fee-estimator.d.ts +8 -0
  121. package/dist/types/core/beacon/fee-estimator.d.ts.map +1 -1
  122. package/dist/types/core/beacon/interfaces.d.ts +1 -1
  123. package/dist/types/core/resolver.d.ts +3 -3
  124. package/dist/types/core/updater.d.ts +4 -4
  125. package/dist/types/did-btcr2.d.ts +2 -2
  126. package/dist/types/index.d.ts +3 -0
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/package.json +4 -4
  129. package/src/core/aggregation/beacon-strategy.ts +27 -9
  130. package/src/core/aggregation/cohort.ts +171 -35
  131. package/src/core/aggregation/conditions.ts +56 -0
  132. package/src/core/aggregation/fallback-spend.ts +223 -0
  133. package/src/core/aggregation/logger.ts +1 -1
  134. package/src/core/aggregation/messages/base.ts +6 -0
  135. package/src/core/aggregation/messages/bodies.ts +94 -1
  136. package/src/core/aggregation/messages/constants.ts +12 -0
  137. package/src/core/aggregation/messages/factories.ts +57 -0
  138. package/src/core/aggregation/messages/guards.ts +6 -0
  139. package/src/core/aggregation/participant.ts +255 -23
  140. package/src/core/aggregation/phases.ts +9 -0
  141. package/src/core/aggregation/recovery-policy.ts +237 -0
  142. package/src/core/aggregation/recovery-spend.ts +192 -0
  143. package/src/core/aggregation/runner/aggregation-runner.ts +34 -5
  144. package/src/core/aggregation/runner/events.ts +26 -7
  145. package/src/core/aggregation/runner/participant-runner.ts +75 -23
  146. package/src/core/aggregation/runner/service-runner.ts +144 -12
  147. package/src/core/aggregation/service.ts +260 -14
  148. package/src/core/aggregation/signing-session.ts +3 -3
  149. package/src/core/aggregation/transport/http/envelope.ts +3 -3
  150. package/src/core/aggregation/transport/http/inbox-buffer.ts +1 -1
  151. package/src/core/aggregation/transport/http/nonce-cache.ts +1 -1
  152. package/src/core/aggregation/transport/http/rate-limiter.ts +1 -1
  153. package/src/core/aggregation/transport/http/request-auth.ts +1 -1
  154. package/src/core/aggregation/transport/http/server.ts +1 -1
  155. package/src/core/aggregation/transport/http/sse-stream.ts +2 -2
  156. package/src/core/aggregation/transport/http/sse-writer.ts +1 -1
  157. package/src/core/aggregation/transport/in-memory.ts +1 -1
  158. package/src/core/aggregation/transport/nostr.ts +6 -6
  159. package/src/core/aggregation/transport/transport.ts +4 -4
  160. package/src/core/beacon/beacon.ts +149 -25
  161. package/src/core/beacon/cas-beacon.ts +7 -7
  162. package/src/core/beacon/fee-estimator.ts +9 -0
  163. package/src/core/beacon/interfaces.ts +1 -1
  164. package/src/core/beacon/singleton-beacon.ts +2 -2
  165. package/src/core/beacon/smt-beacon.ts +3 -3
  166. package/src/core/resolver.ts +8 -8
  167. package/src/core/updater.ts +6 -6
  168. package/src/did-btcr2.ts +2 -2
  169. package/src/index.ts +3 -0
@@ -1,23 +1,21 @@
1
1
  import { concatBytes, hexToBytes } from '@noble/hashes/utils.js';
2
2
  import { Address, OutScript, p2pkh, p2tr, p2wpkh, Script, SigHash, Transaction } from '@scure/btc-signer';
3
3
  import { BeaconError } from './error.js';
4
- import { StaticFeeEstimator } from './fee-estimator.js';
5
- /** Default fee estimator used when none is supplied. ~5 sat/vB static rate. */
6
- const DEFAULT_FEE_ESTIMATOR = new StaticFeeEstimator(5);
4
+ import { DEFAULT_FEE_ESTIMATOR } from './fee-estimator.js';
7
5
  /**
8
- * Conservative vsize estimate for a 1-input P2TR key-path 1 P2TR change + 1 OP_RETURN(32) tx.
6
+ * Conservative vsize estimate for a 1-input P2TR key-path to 1 P2TR change + 1 OP_RETURN(32) tx.
9
7
  * Stripped 137 + witness ≈ 68 (marker + flag + stack-count + sig-len + 64 BIP-340 sig).
10
8
  * Weight = 137*4 + 68 = 616, vsize ≈ 154, rounded to 160 for headroom.
11
9
  */
12
10
  export const P2TR_BEACON_TX_VSIZE = 160;
13
11
  /**
14
- * Conservative vsize estimate for a 1-input P2WPKH 1 P2WPKH change + 1 OP_RETURN(32) tx.
12
+ * Conservative vsize estimate for a 1-input P2WPKH to 1 P2WPKH change + 1 OP_RETURN(32) tx.
15
13
  * Stripped 125 + witness ≈ 110 (worst-case DER ECDSA sig 72 + sighash byte + 33 pubkey + framing).
16
14
  * vsize = ceil((125*4 + 110) / 4) ≈ 153, rounded to 155.
17
15
  */
18
16
  export const P2WPKH_BEACON_TX_VSIZE = 155;
19
17
  /**
20
- * Conservative vsize estimate for a 1-input P2PKH 1 P2PKH change + 1 OP_RETURN(32) tx.
18
+ * Conservative vsize estimate for a 1-input P2PKH to 1 P2PKH change + 1 OP_RETURN(32) tx.
21
19
  * Legacy (non-segwit): scriptSig carries the full sig+pubkey (~108 bytes), no witness
22
20
  * discount. Stripped ≈ 4 nVer + 1 vin-count + (32+4+1+108+4) input + 1 vout-count +
23
21
  * 34 P2PKH-change + 43 OP_RETURN + 4 nLockTime ≈ 236 bytes. vsize = 236, rounded to 240.
@@ -29,6 +27,48 @@ export const SINGLETON_BEACON_TX_VSIZE = {
29
27
  p2wpkh: P2WPKH_BEACON_TX_VSIZE,
30
28
  p2tr: P2TR_BEACON_TX_VSIZE,
31
29
  };
30
+ /**
31
+ * Serialized size (vbytes) of a single change output, by script kind:
32
+ * 8 (value) + 1 (scriptPubKey length) + scriptPubKey bytes. P2PKH 25, P2WPKH 22,
33
+ * P2TR 34. These are non-witness bytes, so each contributes its full byte count to
34
+ * the transaction vsize. The {@link SINGLETON_BEACON_TX_VSIZE} constants bake in a
35
+ * same-kind change output; {@link beaconTxVsize} uses these deltas to re-size the
36
+ * fee when a caller routes change to an address of a different kind (ADR 044).
37
+ */
38
+ export const CHANGE_OUTPUT_VBYTES = {
39
+ p2pkh: 34,
40
+ p2wpkh: 31,
41
+ p2tr: 43,
42
+ };
43
+ /**
44
+ * Dust threshold (sats) below which a change output is not worth creating, by script
45
+ * kind (the standard Bitcoin Core dust relay thresholds at the default 3 sat/vB dust
46
+ * rate). When the change after fees falls below this, the builders omit the change
47
+ * output and let the remainder fall into the fee rather than emit an unspendable,
48
+ * relay-rejected dust output (ADR 044).
49
+ */
50
+ export const DUST_LIMIT_SATS = {
51
+ p2pkh: 546,
52
+ p2wpkh: 294,
53
+ p2tr: 330,
54
+ };
55
+ /**
56
+ * vsize (vbytes) for a beacon transaction that spends one input of `beaconKind`
57
+ * and returns change to an output of `changeKind`, plus the OP_RETURN(32) signal.
58
+ *
59
+ * When `changeKind === beaconKind` (the default, change to the beacon address) this
60
+ * returns the per-kind {@link SINGLETON_BEACON_TX_VSIZE} constant unchanged, so the
61
+ * default path and the constants' lock-in tests are byte-identical. A differing
62
+ * `changeKind` swaps the assumed same-kind change output for the actual one, keeping
63
+ * the result a valid upper bound. The aggregation key-path spend is the
64
+ * `beaconKind: 'p2tr'` case (its input is always the cohort's P2TR key path; only the
65
+ * change output varies), the analytical sizing ADR 045 calls for, computed without a
66
+ * secret.
67
+ */
68
+ export function beaconTxVsize(beaconKind, changeKind) {
69
+ const base = SINGLETON_BEACON_TX_VSIZE[beaconKind] - CHANGE_OUTPUT_VBYTES[beaconKind];
70
+ return base + CHANGE_OUTPUT_VBYTES[changeKind];
71
+ }
32
72
  /**
33
73
  * Detect the singleton script kind of a Bitcoin address (P2PKH / P2WPKH / P2TR).
34
74
  * The deterministic-DID document emits all three kinds; the broadcast path needs
@@ -58,6 +98,37 @@ export function deriveSingletonAddress(kind, pubkey, network) {
58
98
  // P2TR key-path: x-only internal key (drop the SEC prefix byte).
59
99
  return p2tr(pubkey.slice(1, 33), undefined, network).address;
60
100
  }
101
+ /**
102
+ * Resolve the change-output recipient for a beacon transaction. Returns the beacon
103
+ * address when no change address is supplied (preserving the prior behavior of
104
+ * returning change to the spent address), otherwise validates the caller-supplied
105
+ * address against the network and returns it. Validating here fails fast rather than
106
+ * burning a real UTXO on a transaction that breaks at broadcast (ADR 044).
107
+ */
108
+ export function resolveChangeAddress(beaconAddress, network, changeAddress) {
109
+ if (!changeAddress || changeAddress === beaconAddress)
110
+ return beaconAddress;
111
+ try {
112
+ Address(network).decode(changeAddress);
113
+ }
114
+ catch {
115
+ throw new BeaconError(`Invalid change address "${changeAddress}" for network "${network}".`, 'INVALID_CHANGE_ADDRESS', { changeAddress, network });
116
+ }
117
+ return changeAddress;
118
+ }
119
+ /**
120
+ * Detect the change output's script kind for fee sizing. A change address that is not
121
+ * one of the three singleton kinds (for example P2SH or P2WSH) is sized as P2TR, the
122
+ * largest standard change output, so the estimated fee stays a valid upper bound.
123
+ */
124
+ function changeOutputKind(changeAddress, network) {
125
+ try {
126
+ return detectSingletonScriptKind(changeAddress, network);
127
+ }
128
+ catch {
129
+ return 'p2tr';
130
+ }
131
+ }
61
132
  /**
62
133
  * Build an OP_RETURN script carrying a 32-byte beacon signal.
63
134
  * Exported as a utility so callers building txs outside SinglePartyBeacon (e.g., the aggregation
@@ -96,7 +167,7 @@ async function fetchSpendableUtxo(bitcoinAddress, bitcoin) {
96
167
  * signing session consumes (via {@link SigningTxData}).
97
168
  *
98
169
  * This is the reusable counterpart to {@link SinglePartyBeacon.buildSignAndBroadcast}'s internal
99
- * construction step the aggregation path must produce an unsigned tx because the
170
+ * construction step: the aggregation path must produce an unsigned tx because the
100
171
  * signature comes from a MuSig2 round, not a local secret key.
101
172
  *
102
173
  * @param opts Parameters including the cohort's aggregate internal pubkey.
@@ -105,10 +176,19 @@ async function fetchSpendableUtxo(bitcoinAddress, bitcoin) {
105
176
  export async function buildAggregationBeaconTx(opts) {
106
177
  const feeEstimator = opts.feeEstimator ?? DEFAULT_FEE_ESTIMATOR;
107
178
  const { utxo, prevTxBytes } = await fetchSpendableUtxo(opts.beaconAddress, opts.bitcoin);
108
- const tapOut = p2tr(opts.internalPubkey, undefined, opts.network);
109
- const witnessScript = tapOut.script;
110
- // Fee cannot be probe-measured (no secret key for MuSig2 round). Use fixed P2TR vsize.
111
- const feeSats = await feeEstimator.estimateFee(P2TR_BEACON_TX_VSIZE);
179
+ const changeAddress = resolveChangeAddress(opts.beaconAddress, opts.network, opts.changeAddress);
180
+ // The funded beacon output is a Taproot script-tree output: key path is the
181
+ // MuSig2 aggregate, script path is the k-of-n fallback + CSV recovery leaves
182
+ // (see cohort.ts and ADR 042). Derive the witnessUtxo scriptPubKey from the
183
+ // funded address itself; recomputing a key-path-only p2tr(internalPubkey) here
184
+ // would not match the script-tree UTXO on chain and would invalidate both the
185
+ // key-path sighash and the fallback script-path sighash.
186
+ const witnessScript = OutScript.encode(Address(opts.network).decode(opts.beaconAddress));
187
+ // The fee cannot be probe-measured (no secret key until the downstream MuSig2
188
+ // round), so size it analytically. The input is the cohort's P2TR key path; only
189
+ // the change output's kind varies, so the vsize follows the change address (ADR 045).
190
+ const changeKind = changeOutputKind(changeAddress, opts.network);
191
+ const feeSats = await feeEstimator.estimateFee(beaconTxVsize('p2tr', changeKind));
112
192
  if (BigInt(utxo.value) <= feeSats) {
113
193
  throw new BeaconError(`UTXO value (${utxo.value}) insufficient to cover fee (${feeSats}).`, 'INSUFFICIENT_FUNDS', { address: opts.beaconAddress, valueSats: utxo.value, feeSats });
114
194
  }
@@ -123,13 +203,19 @@ export async function buildAggregationBeaconTx(opts) {
123
203
  witnessUtxo: { amount: BigInt(utxo.value), script: witnessScript },
124
204
  tapInternalKey: opts.internalPubkey,
125
205
  });
126
- tx.addOutputAddress(opts.beaconAddress, BigInt(utxo.value) - feeSats, opts.network);
206
+ // Change first (omitted when it would be dust, sweeping the remainder into the
207
+ // fee), then the OP_RETURN signal, which the spec requires to be the last output.
208
+ const changeValue = BigInt(utxo.value) - feeSats;
209
+ if (changeValue >= BigInt(DUST_LIMIT_SATS[changeKind])) {
210
+ tx.addOutputAddress(changeAddress, changeValue, opts.network);
211
+ }
127
212
  tx.addOutput({ script: opReturnScript(opts.signalBytes), amount: 0n });
128
213
  return {
129
214
  tx,
130
215
  prevOutScripts: [witnessScript],
131
216
  prevOutValues: [BigInt(utxo.value)],
132
217
  beaconAddress: opts.beaconAddress,
218
+ changeAddress,
133
219
  utxo,
134
220
  feeSats,
135
221
  scriptKind: 'p2tr',
@@ -155,7 +241,7 @@ async function signSingletonInput(tx, inputIdx, kind, signer, prevOutScript, amo
155
241
  // directly. We need only the sighash bytes so an external Signer can produce
156
242
  // the signature, so we reach through the type system here. If scure ever
157
243
  // renames this method, the P2PKH path tests fail loudly.
158
- // TODO: track https://github.com/paulmillr/scure-btc-signer/issues/142
244
+ // TODO: track https://github.com/paulmillr/scure-btc-signer/issues/142 -
159
245
  // drop the cast once a public preimage (e.g. `preimageP2PKH`) lands upstream.
160
246
  const sighashType = SigHash.ALL;
161
247
  const sighash = tx.preimageLegacy(inputIdx, prevOutScript, sighashType);
@@ -191,7 +277,7 @@ async function signSingletonInput(tx, inputIdx, kind, signer, prevOutScript, amo
191
277
  // `d' = taprootTweakPrivKey(d, merkleRoot)`; the verifier checks against the
192
278
  // tweaked output internal key `Q = P + tG`. The tweak lives inside the Signer
193
279
  // (it needs the secret key), so we use scheme 'bip341' rather than the raw
194
- // 'bip340' scheme. No script tree on singleton beacons no merkleRoot.
280
+ // 'bip340' scheme. No script tree on singleton beacons, no merkleRoot.
195
281
  const sighash = tx.preimageWitnessV1(inputIdx, [prevOutScript], SigHash.DEFAULT, [amount]);
196
282
  const sig = signer.sign(sighash, 'bip341');
197
283
  tx.updateInput(inputIdx, { tapKeySig: sig });
@@ -230,7 +316,7 @@ export class SinglePartyBeacon {
230
316
  *
231
317
  * Composed from the three extracted phases ({@link buildSinglePartyTx},
232
318
  * {@link signSinglePartyTx}, {@link broadcastRawTx}) so each piece can be exercised
233
- * in isolation. Aggregation beacons use {@link buildAggregationBeaconTx} instead
319
+ * in isolation. Aggregation beacons use {@link buildAggregationBeaconTx} instead:
234
320
  * the multi-party path can't share the signing phase, but the tx-construction
235
321
  * plumbing (UTXO fetch + OP_RETURN output + change output) is shared.
236
322
  *
@@ -247,6 +333,7 @@ export class SinglePartyBeacon {
247
333
  const { utxo, prevTxBytes } = await fetchSpendableUtxo(beaconAddress, bitcoin);
248
334
  const plan = await this.buildSinglePartyTx({
249
335
  signalBytes, beaconAddress, utxo, prevTxBytes, signer, bitcoin, feeEstimator,
336
+ changeAddress: options?.changeAddress,
250
337
  });
251
338
  const signedHex = await this.signSinglePartyTx(plan, signer);
252
339
  return this.broadcastRawTx(bitcoin, signedHex);
@@ -256,20 +343,23 @@ export class SinglePartyBeacon {
256
343
  *
257
344
  * Detects the beacon address script kind (P2PKH / P2WPKH / P2TR) and configures
258
345
  * the input accordingly. Validates that the signer's pubkey produces the beacon
259
- * address under that script kind without this check, a misconfigured caller
346
+ * address under that script kind: without this check, a misconfigured caller
260
347
  * would burn a real UTXO on a tx that fails at broadcast. Fees are computed from
261
- * the per-kind {@link SINGLETON_BEACON_TX_VSIZE} constant, avoiding any probe-sign
262
- * round-trip.
348
+ * the per-kind {@link SINGLETON_BEACON_TX_VSIZE} constant (via {@link beaconTxVsize}),
349
+ * avoiding any probe-sign round-trip; a change address of a different kind re-sizes
350
+ * the fee by the change output's size delta so it stays a valid upper bound.
263
351
  */
264
352
  async buildSinglePartyTx(opts) {
265
353
  const network = opts.bitcoin.data;
266
354
  const pubkey = opts.signer.publicKey;
267
355
  const kind = detectSingletonScriptKind(opts.beaconAddress, network);
356
+ const changeAddress = resolveChangeAddress(opts.beaconAddress, network, opts.changeAddress);
268
357
  const derivedAddress = deriveSingletonAddress(kind, pubkey, network);
269
358
  if (derivedAddress !== opts.beaconAddress) {
270
359
  throw new BeaconError(`Signer pubkey produces ${kind.toUpperCase()} address "${derivedAddress}", but beacon address is "${opts.beaconAddress}".`, 'SIGNER_KEY_MISMATCH', { kind, address: opts.beaconAddress, derivedAddress });
271
360
  }
272
- const feeSats = await opts.feeEstimator.estimateFee(SINGLETON_BEACON_TX_VSIZE[kind]);
361
+ const changeKind = changeOutputKind(changeAddress, network);
362
+ const feeSats = await opts.feeEstimator.estimateFee(beaconTxVsize(kind, changeKind));
273
363
  const amount = BigInt(opts.utxo.value);
274
364
  if (amount <= feeSats) {
275
365
  throw new BeaconError(`UTXO value (${opts.utxo.value}) insufficient to cover fee (${feeSats}).`, 'INSUFFICIENT_FUNDS', { address: opts.beaconAddress, valueSats: opts.utxo.value, feeSats });
@@ -310,13 +400,19 @@ export class SinglePartyBeacon {
310
400
  tapInternalKey: internalKey,
311
401
  });
312
402
  }
313
- tx.addOutputAddress(opts.beaconAddress, amount - feeSats, network);
403
+ // Change first (omitted when it would be dust, sweeping the remainder into the
404
+ // fee), then the OP_RETURN signal, which the spec requires to be the last output.
405
+ const changeValue = amount - feeSats;
406
+ if (changeValue >= BigInt(DUST_LIMIT_SATS[changeKind])) {
407
+ tx.addOutputAddress(changeAddress, changeValue, network);
408
+ }
314
409
  tx.addOutput({ script: opReturnScript(opts.signalBytes), amount: 0n });
315
410
  return {
316
411
  tx,
317
412
  prevOutScripts: [prevOutScript],
318
413
  prevOutValues: [amount],
319
414
  beaconAddress: opts.beaconAddress,
415
+ changeAddress,
320
416
  utxo: opts.utxo,
321
417
  feeSats,
322
418
  scriptKind: kind,
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/beacon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG1G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD,+EAA+E;AAC/E,MAAM,qBAAqB,GAAiB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAUtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAkD;IACtF,KAAK,EAAI,qBAAqB;IAC9B,MAAM,EAAG,sBAAsB;IAC/B,IAAI,EAAK,oBAAoB;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAsB,EACtB,OAAmB;IAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,IAAG,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAG,OAAO,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,WAAW,CACnB,8CAA8C,OAAO,CAAC,IAAI,KAAK;UAC7D,qDAAqD,EACvD,iCAAiC,EACjC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAChD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAyB,EACzB,MAAgB,EAChB,OAAmB;IAEnB,IAAG,IAAI,KAAK,OAAO;QAAG,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;IAC7D,IAAG,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;IAC9D,iEAAiE;IACjE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;AAChE,CAAC;AAkCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,WAAuB;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,cAAsB,EACtB,OAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,IAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,WAAW,CACnB,sCAAsC,EACtC,yBAAyB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IACzF,IAAG,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,WAAW,CACnB,uDAAuD,EACvD,yBAAyB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAa9C;IACC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAChE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAEpC,uFAAuF;IACvF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACrE,IAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,CAAC,KAAK,gCAAgC,OAAO,IAAI,EACpE,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,QAAQ,CAAC;QACV,IAAI,EAAa,IAAI,CAAC,IAAI;QAC1B,KAAK,EAAY,IAAI,CAAC,IAAI;QAC1B,cAAc,EAAG,WAAW;QAC5B,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;QACtE,cAAc,EAAG,IAAI,CAAC,cAAc;KACrC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpF,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvE,OAAO;QACL,EAAE;QACF,cAAc,EAAG,CAAC,aAAa,CAAC;QAChC,aAAa,EAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,aAAa,EAAI,IAAI,CAAC,aAAa;QACnC,IAAI;QACJ,OAAO;QACP,UAAU,EAAO,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,kBAAkB,CAC/B,EAAe,EACf,QAAgB,EAChB,IAAyB,EACzB,MAAc,EACd,aAAyB,EACzB,MAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,IAAG,IAAI,KAAK,OAAO,EAAE,CAAC;QACpB,qEAAqE;QACrE,6EAA6E;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,yEAAyE;QACzE,yDAAyD;QACzD,yEAAyE;QACzE,8EAA8E;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,OAAO,GAAI,EAEf,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,EAAE,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;IAChB,CAAC;IAED,IAAG,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrB,+EAA+E;QAC/E,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,gFAAgF;QAChF,+EAA+E;QAC/E,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CACnB,4CAA4C,OAAO,CAAC,IAAI,IAAI,EAC5D,yBAAyB,EACzB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,EAAE,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,QAAQ,EAAE,CAAC;IACd,OAAO,EAAE,CAAC,GAAG,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAgB,iBAAiB;IACrC;;OAEG;IACM,OAAO,CAAgB;IAEhC,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAmCD;;;;;;;;;;;;;;;;;OAiBG;IACO,KAAK,CAAC,qBAAqB,CACnC,WAAuB,EACvB,MAAc,EACd,OAA0B,EAC1B,OAA0B;QAE1B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,qBAAqB,CAAC;QACpE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACzC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;SAC7E,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,kBAAkB,CAAC,IAQlC;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,IAAG,cAAc,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,IAAI,WAAW,CACnB,0BAA0B,IAAI,CAAC,WAAW,EAAE,aAAa,cAAc,6BAA6B,IAAI,CAAC,aAAa,IAAI,EAC1H,qBAAqB,EACrB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAG,MAAM,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,gCAAgC,OAAO,IAAI,EACzE,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,yEAAyE;QACzE,8EAA8E;QAC9E,IAAI,aAAyB,CAAC;QAC9B,IAAG,IAAI,KAAK,OAAO,EAAE,CAAC;YACpB,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,IAAG,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC/C,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;gBACjC,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC7D,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;gBACjC,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;gBAClD,cAAc,EAAG,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvE,OAAO;YACL,EAAE;YACF,cAAc,EAAG,CAAC,aAAa,CAAC;YAChC,aAAa,EAAI,CAAC,MAAM,CAAC;YACzB,aAAa,EAAI,IAAI,CAAC,aAAa;YACnC,IAAI,EAAa,IAAI,CAAC,IAAI;YAC1B,OAAO;YACP,UAAU,EAAO,IAAI;SACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,iBAAiB,CAAC,IAAkB,EAAE,MAAc;QAClE,OAAO,kBAAkB,CACvB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EACnC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,CAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,cAAc,CAAC,OAA0B,EAAE,MAAc;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/beacon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG1G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAY3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAkD;IACtF,KAAK,EAAI,qBAAqB;IAC9B,MAAM,EAAG,sBAAsB;IAC/B,IAAI,EAAK,oBAAoB;CAC9B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkD;IACjF,KAAK,EAAI,EAAE;IACX,MAAM,EAAG,EAAE;IACX,IAAI,EAAK,EAAE;CACZ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkD;IAC5E,KAAK,EAAI,GAAG;IACZ,MAAM,EAAG,GAAG;IACZ,IAAI,EAAK,GAAG;CACb,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,UAA+B,EAC/B,UAA+B;IAE/B,MAAM,IAAI,GAAG,yBAAyB,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACtF,OAAO,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAsB,EACtB,OAAmB;IAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,IAAG,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAG,OAAO,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,WAAW,CACnB,8CAA8C,OAAO,CAAC,IAAI,KAAK;UAC7D,qDAAqD,EACvD,iCAAiC,EACjC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAChD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAyB,EACzB,MAAgB,EAChB,OAAmB;IAEnB,IAAG,IAAI,KAAK,OAAO;QAAG,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;IAC7D,IAAG,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;IAC9D,iEAAiE;IACjE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,OAAQ,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,aAAqB,EACrB,OAAmB,EACnB,aAAsB;IAEtB,IAAG,CAAC,aAAa,IAAI,aAAa,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IAC3E,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CACnB,2BAA2B,aAAa,kBAAkB,OAAO,IAAI,EACrE,wBAAwB,EACxB,EAAE,aAAa,EAAE,OAAO,EAAE,CAC3B,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,aAAqB,EAAE,OAAmB;IAClE,IAAI,CAAC;QACH,OAAO,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AA0CD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,WAAuB;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,cAAsB,EACtB,OAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,IAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,WAAW,CACnB,sCAAsC,EACtC,yBAAyB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IACzF,IAAG,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,WAAW,CACnB,uDAAuD,EACvD,yBAAyB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAoB9C;IACC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAChE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAEjG,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,yDAAyD;IACzD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEzF,8EAA8E;IAC9E,iFAAiF;IACjF,sFAAsF;IACtF,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAClF,IAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,CAAC,KAAK,gCAAgC,OAAO,IAAI,EACpE,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,QAAQ,CAAC;QACV,IAAI,EAAa,IAAI,CAAC,IAAI;QAC1B,KAAK,EAAY,IAAI,CAAC,IAAI;QAC1B,cAAc,EAAG,WAAW;QAC5B,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;QACtE,cAAc,EAAG,IAAI,CAAC,cAAc;KACrC,CAAC,CAAC;IACH,+EAA+E;IAC/E,kFAAkF;IAClF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjD,IAAG,WAAW,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACtD,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvE,OAAO;QACL,EAAE;QACF,cAAc,EAAG,CAAC,aAAa,CAAC;QAChC,aAAa,EAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,aAAa,EAAI,IAAI,CAAC,aAAa;QACnC,aAAa;QACb,IAAI;QACJ,OAAO;QACP,UAAU,EAAO,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,kBAAkB,CAC/B,EAAe,EACf,QAAgB,EAChB,IAAyB,EACzB,MAAc,EACd,aAAyB,EACzB,MAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,IAAG,IAAI,KAAK,OAAO,EAAE,CAAC;QACpB,qEAAqE;QACrE,6EAA6E;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,yEAAyE;QACzE,yDAAyD;QACzD,yEAAyE;QACzE,8EAA8E;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,OAAO,GAAI,EAEf,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,EAAE,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;IAChB,CAAC;IAED,IAAG,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrB,+EAA+E;QAC/E,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,gFAAgF;QAChF,+EAA+E;QAC/E,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CACnB,4CAA4C,OAAO,CAAC,IAAI,IAAI,EAC5D,yBAAyB,EACzB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,EAAE,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,QAAQ,EAAE,CAAC;IACd,OAAO,EAAE,CAAC,GAAG,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAgB,iBAAiB;IACrC;;OAEG;IACM,OAAO,CAAgB;IAEhC,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAmCD;;;;;;;;;;;;;;;;;OAiBG;IACO,KAAK,CAAC,qBAAqB,CACnC,WAAuB,EACvB,MAAc,EACd,OAA0B,EAC1B,OAA0B;QAE1B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,qBAAqB,CAAC;QACpE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACzC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;YAC5E,aAAa,EAAG,OAAO,EAAE,aAAa;SACvC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,kBAAkB,CAAC,IASlC;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5F,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,IAAG,cAAc,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,IAAI,WAAW,CACnB,0BAA0B,IAAI,CAAC,WAAW,EAAE,aAAa,cAAc,6BAA6B,IAAI,CAAC,aAAa,IAAI,EAC1H,qBAAqB,EACrB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAG,MAAM,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,gCAAgC,OAAO,IAAI,EACzE,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,yEAAyE;QACzE,8EAA8E;QAC9E,IAAI,aAAyB,CAAC;QAC9B,IAAG,IAAI,KAAK,OAAO,EAAE,CAAC;YACpB,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,IAAG,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC/C,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;gBACjC,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC7D,EAAE,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/B,cAAc,EAAG,IAAI,CAAC,WAAW;gBACjC,WAAW,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;gBAClD,cAAc,EAAG,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,+EAA+E;QAC/E,kFAAkF;QAClF,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QACrC,IAAG,WAAW,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACtD,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvE,OAAO;YACL,EAAE;YACF,cAAc,EAAG,CAAC,aAAa,CAAC;YAChC,aAAa,EAAI,CAAC,MAAM,CAAC;YACzB,aAAa,EAAI,IAAI,CAAC,aAAa;YACnC,aAAa;YACb,IAAI,EAAa,IAAI,CAAC,IAAI;YAC1B,OAAO;YACP,UAAU,EAAO,IAAI;SACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,iBAAiB,CAAC,IAAkB,EAAE,MAAc;QAClE,OAAO,kBAAkB,CACvB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EACnC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,CAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,cAAc,CAAC,OAA0B,EAAE,MAAc;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -4,7 +4,7 @@ import { SinglePartyBeacon } from './beacon.js';
4
4
  * Implements {@link https://dcdpr.github.io/did-btcr2/terminology.html#cas-beacon | CAS Beacon}.
5
5
  *
6
6
  * A CAS (Content-Addressed Store) Beacon aggregates updates for multiple DIDs
7
- * into a single CAS Announcement a mapping of DIDs to their update hashes.
7
+ * into a single CAS Announcement: a mapping of DIDs to their update hashes.
8
8
  * The hash of the CAS Announcement is broadcast on-chain via OP_RETURN.
9
9
  * During resolution, the CAS Announcement is retrieved from the sidecar (or CAS)
10
10
  * and used to look up the individual signed update for the DID being resolved.
@@ -40,12 +40,12 @@ export class CASBeacon extends SinglePartyBeacon {
40
40
  // Extract the DID from the beacon service id (strip the #fragment)
41
41
  const did = this.service.id.split('#')[0];
42
42
  for (const signal of signals) {
43
- // Signal bytes are hex matches hex-keyed sidecar maps directly
43
+ // Signal bytes are hex, matches hex-keyed sidecar maps directly
44
44
  const announcementHash = signal.signalBytes;
45
45
  // Look up the CAS Announcement in sidecar casMap
46
46
  const casAnnouncement = sidecar.casMap.get(announcementHash);
47
47
  if (!casAnnouncement) {
48
- // CAS Announcement not available emit a need
48
+ // CAS Announcement not available, emit a need
49
49
  needs.push({
50
50
  kind: 'NeedCASAnnouncement',
51
51
  announcementHash,
@@ -54,9 +54,9 @@ export class CASBeacon extends SinglePartyBeacon {
54
54
  continue;
55
55
  }
56
56
  // Look up this DID's update hash in the CAS Announcement
57
- // Announcement values are base64urlnopad per spec convert to hex for map lookup
57
+ // Announcement values are base64urlnopad per spec, convert to hex for map lookup
58
58
  const updateHashEncoded = casAnnouncement[did];
59
- // If no entry for this DID, this announcement doesn't contain an update for us skip
59
+ // If no entry for this DID, this announcement doesn't contain an update for us, skip
60
60
  if (!updateHashEncoded) {
61
61
  continue;
62
62
  }
@@ -64,7 +64,7 @@ export class CASBeacon extends SinglePartyBeacon {
64
64
  // Look up the signed update in sidecar updateMap
65
65
  const signedUpdate = sidecar.updateMap.get(updateHash);
66
66
  if (!signedUpdate) {
67
- // Signed update not available emit a need
67
+ // Signed update not available, emit a need
68
68
  needs.push({
69
69
  kind: 'NeedSignedUpdate',
70
70
  updateHash,
@@ -1 +1 @@
1
- {"version":3,"file":"cas-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/cas-beacon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cas-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/cas-beacon.ts"],"names":[],"mappings":"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"}
@@ -27,4 +27,12 @@ export class StaticFeeEstimator {
27
27
  return BigInt(Math.ceil(vsize * this.satsPerVbyte));
28
28
  }
29
29
  }
30
+ /**
31
+ * Default fee estimator used when a caller supplies none: a static 5 sat/vB rate.
32
+ * Suitable for tests and regtest. Production callers should inject a dynamic
33
+ * estimator (a mempool API, or Bitcoin Core `estimatesmartfee`) at the point the
34
+ * beacon transaction is built (single-party broadcast options, or the aggregation
35
+ * service runner's fee estimator).
36
+ */
37
+ export const DEFAULT_FEE_ESTIMATOR = new StaticFeeEstimator(5);
30
38
  //# sourceMappingURL=fee-estimator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fee-estimator.js","sourceRoot":"","sources":["../../../../src/core/beacon/fee-estimator.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,kBAAkB;IACpB,YAAY,CAAS;IAE9B;;OAEG;IACH,YAAY,eAAuB,CAAC;QAClC,IAAG,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"fee-estimator.js","sourceRoot":"","sources":["../../../../src/core/beacon/fee-estimator.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,kBAAkB;IACpB,YAAY,CAAS;IAE9B;;OAEG;IACH,YAAY,eAAuB,CAAC;QAClC,IAAG,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
@@ -24,12 +24,12 @@ export class SingletonBeacon extends SinglePartyBeacon {
24
24
  const updates = new Array();
25
25
  const needs = new Array();
26
26
  for (const signal of signals) {
27
- // Signal bytes are hex matches hex-keyed sidecar maps directly
27
+ // Signal bytes are hex, matches hex-keyed sidecar maps directly
28
28
  const updateHash = signal.signalBytes;
29
29
  // Look up the signed update in sidecar updateMap
30
30
  const signedUpdate = sidecar.updateMap.get(updateHash);
31
31
  if (!signedUpdate) {
32
- // Data not available emit a need instead of throwing
32
+ // Data not available, emit a need instead of throwing
33
33
  needs.push({
34
34
  kind: 'NeedSignedUpdate',
35
35
  updateHash,
@@ -1 +1 @@
1
- {"version":3,"file":"singleton-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/singleton-beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IAEpD;;;OAGG;IACH,YAAY,OAAsB;QAChC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,OAA4B,EAC5B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,KAAK,EAAsC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAY,CAAC;QAEpC,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,iEAAiE;YACjE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YAEtC,iDAAiD;YACjD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAG,CAAC,YAAY,EAAE,CAAC;gBACjB,uDAAuD;gBACvD,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;IACD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CACnB,YAA+B,EAC/B,MAAc,EACd,OAA0B,EAC1B,OAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"singleton-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/singleton-beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IAEpD;;;OAGG;IACH,YAAY,OAAsB;QAChC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,OAA4B,EAC5B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,KAAK,EAAsC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAY,CAAC;QAEpC,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,gEAAgE;YAChE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YAEtC,iDAAiD;YACjD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAG,CAAC,YAAY,EAAE,CAAC;gBACjB,sDAAsD;gBACtD,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;IACD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CACnB,YAA+B,EAC/B,MAAc,EACd,OAA0B,EAC1B,OAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -45,7 +45,7 @@ export class SMTBeacon extends SinglePartyBeacon {
45
45
  // Signal bytes are the hex-encoded SMT root hash; smtMap is keyed by proof.id (also hex)
46
46
  const smtProof = sidecar.smtMap.get(signal.signalBytes);
47
47
  if (!smtProof) {
48
- // SMT Proof not available emit a need
48
+ // SMT Proof not available, emit a need
49
49
  needs.push({
50
50
  kind: 'NeedSMTProof',
51
51
  smtRootHash: signal.signalBytes,
@@ -70,7 +70,7 @@ export class SMTBeacon extends SinglePartyBeacon {
70
70
  if (!valid) {
71
71
  throw new SMTBeaconError('SMT proof verification failed.', 'INVALID_SMT_PROOF', { smtProof, did });
72
72
  }
73
- // Non-inclusion proof verified no update for this DID this epoch, skip.
73
+ // Non-inclusion proof verified: no update for this DID this epoch, skip.
74
74
  if (!smtProof.updateId) {
75
75
  continue;
76
76
  }
@@ -79,7 +79,7 @@ export class SMTBeacon extends SinglePartyBeacon {
79
79
  const updateHashHex = hashToHex(base64UrlToHash(smtProof.updateId));
80
80
  const signedUpdate = sidecar.updateMap.get(updateHashHex);
81
81
  if (!signedUpdate) {
82
- // Signed update not available emit a need
82
+ // Signed update not available, emit a need
83
83
  needs.push({
84
84
  kind: 'NeedSignedUpdate',
85
85
  updateHash: updateHashHex,
@@ -1 +1 @@
1
- {"version":3,"file":"smt-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/smt-beacon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smt-beacon.js","sourceRoot":"","sources":["../../../../src/core/beacon/smt-beacon.ts"],"names":[],"mappings":"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"}
@@ -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":"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,8EAA8E;QAC9E,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,4DAA4D;wBAC5D,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,uDAAuD;oBACvD,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,mDAAmD;4BACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;6BAAM,CAAC;4BACN,0EAA0E;4BAC1E,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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/resolver.ts"],"names":[],"mappings":"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"}
@@ -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',