@arkade-os/sdk 0.4.45 → 0.4.46

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 (87) hide show
  1. package/dist/adapters/expo.cjs +5 -5
  2. package/dist/adapters/expo.d.cts +2 -2
  3. package/dist/adapters/expo.d.ts +2 -2
  4. package/dist/adapters/expo.js +3 -3
  5. package/dist/adapters/indexedDB.cjs +5 -5
  6. package/dist/adapters/indexedDB.js +4 -4
  7. package/dist/{ark-C-PjOngm.d.cts → ark-C9ognsOV.d.cts} +6 -2
  8. package/dist/{ark-C-PjOngm.d.ts → ark-C9ognsOV.d.ts} +6 -2
  9. package/dist/{asyncStorageTaskQueue-CHpI3moJ.d.ts → asyncStorageTaskQueue-BAKZ5cS5.d.ts} +1 -1
  10. package/dist/{asyncStorageTaskQueue-BmBPvTyh.d.cts → asyncStorageTaskQueue-CmBYVlxw.d.cts} +1 -1
  11. package/dist/{chunk-32YKLQPS.cjs → chunk-4KXOCVXP.cjs} +32 -29
  12. package/dist/chunk-4KXOCVXP.cjs.map +1 -0
  13. package/dist/{chunk-OFQGANH2.cjs → chunk-6TQJOD72.cjs} +7 -7
  14. package/dist/{chunk-OFQGANH2.cjs.map → chunk-6TQJOD72.cjs.map} +1 -1
  15. package/dist/{chunk-UHOHLN3C.cjs → chunk-7IYIFMF4.cjs} +63 -14
  16. package/dist/chunk-7IYIFMF4.cjs.map +1 -0
  17. package/dist/{chunk-YBQV7XBC.js → chunk-CWJ7ZCP7.js} +57 -10
  18. package/dist/chunk-CWJ7ZCP7.js.map +1 -0
  19. package/dist/{chunk-SRCWBFSZ.cjs → chunk-D46YDM36.cjs} +282 -212
  20. package/dist/chunk-D46YDM36.cjs.map +1 -0
  21. package/dist/{chunk-BE5MUB7T.js → chunk-FWG4TSPN.js} +7 -2
  22. package/dist/chunk-FWG4TSPN.js.map +1 -0
  23. package/dist/{chunk-BOA4SHCD.js → chunk-JTCQ6QXQ.js} +4 -4
  24. package/dist/{chunk-BOA4SHCD.js.map → chunk-JTCQ6QXQ.js.map} +1 -1
  25. package/dist/{chunk-HXDZ2QTW.cjs → chunk-MQB5H4X5.cjs} +7 -2
  26. package/dist/chunk-MQB5H4X5.cjs.map +1 -0
  27. package/dist/{chunk-TGRJ5WAX.js → chunk-P6VBP3CT.js} +80 -10
  28. package/dist/chunk-P6VBP3CT.js.map +1 -0
  29. package/dist/{chunk-YNEDJTX2.js → chunk-QKC2T54O.js} +6 -3
  30. package/dist/chunk-QKC2T54O.js.map +1 -0
  31. package/dist/{chunk-QZ6HZZZK.js → chunk-R2SVAM5Q.js} +3 -3
  32. package/dist/{chunk-QZ6HZZZK.js.map → chunk-R2SVAM5Q.js.map} +1 -1
  33. package/dist/{chunk-HZ7VIN7P.cjs → chunk-SOXGAA52.cjs} +14 -14
  34. package/dist/{chunk-HZ7VIN7P.cjs.map → chunk-SOXGAA52.cjs.map} +1 -1
  35. package/dist/contracts/handlers/index.cjs +7 -7
  36. package/dist/contracts/handlers/index.d.cts +3 -3
  37. package/dist/contracts/handlers/index.d.ts +3 -3
  38. package/dist/contracts/handlers/index.js +2 -2
  39. package/dist/{delegate-DOEobYwH.d.cts → delegate-DVEgyRwI.d.cts} +1 -1
  40. package/dist/{delegate-BKNqva1j.d.ts → delegate-aOd5qINr.d.ts} +1 -1
  41. package/dist/{index-Cm2fGeox.d.ts → index-CPzL4tqg.d.ts} +2 -2
  42. package/dist/{index-BlW4I30l.d.cts → index-D8vmtWWO.d.cts} +2 -2
  43. package/dist/index.cjs +167 -159
  44. package/dist/index.d.cts +6 -6
  45. package/dist/index.d.ts +6 -6
  46. package/dist/index.js +4 -4
  47. package/dist/repositories/realm/index.cjs +23 -19
  48. package/dist/repositories/realm/index.cjs.map +1 -1
  49. package/dist/repositories/realm/index.d.cts +2 -2
  50. package/dist/repositories/realm/index.d.ts +2 -2
  51. package/dist/repositories/realm/index.js +9 -5
  52. package/dist/repositories/realm/index.js.map +1 -1
  53. package/dist/repositories/sqlite/index.cjs +22 -18
  54. package/dist/repositories/sqlite/index.cjs.map +1 -1
  55. package/dist/repositories/sqlite/index.d.cts +2 -2
  56. package/dist/repositories/sqlite/index.d.ts +2 -2
  57. package/dist/repositories/sqlite/index.js +9 -5
  58. package/dist/repositories/sqlite/index.js.map +1 -1
  59. package/dist/{taskRunner-BngWSFMi.d.ts → taskRunner-B48-V-Pb.d.ts} +1 -1
  60. package/dist/{taskRunner-DOiyRuJa.d.cts → taskRunner-nNecmQ2C.d.cts} +1 -1
  61. package/dist/wallet/expo/background.cjs +14 -14
  62. package/dist/wallet/expo/background.d.cts +3 -3
  63. package/dist/wallet/expo/background.d.ts +3 -3
  64. package/dist/wallet/expo/background.js +6 -6
  65. package/dist/wallet/expo/index.cjs +18 -14
  66. package/dist/wallet/expo/index.cjs.map +1 -1
  67. package/dist/wallet/expo/index.d.cts +4 -4
  68. package/dist/wallet/expo/index.d.ts +4 -4
  69. package/dist/wallet/expo/index.js +9 -5
  70. package/dist/wallet/expo/index.js.map +1 -1
  71. package/dist/{wallet-DBjumS42.d.cts → wallet-BUg3D4WJ.d.cts} +37 -3
  72. package/dist/{wallet-B3awP1Nj.d.ts → wallet-DM0oShTu.d.ts} +37 -3
  73. package/dist/worker/expo/index.cjs +10 -9
  74. package/dist/worker/expo/index.cjs.map +1 -1
  75. package/dist/worker/expo/index.d.cts +4 -4
  76. package/dist/worker/expo/index.d.ts +4 -4
  77. package/dist/worker/expo/index.js +6 -5
  78. package/dist/worker/expo/index.js.map +1 -1
  79. package/package.json +2 -2
  80. package/dist/chunk-32YKLQPS.cjs.map +0 -1
  81. package/dist/chunk-BE5MUB7T.js.map +0 -1
  82. package/dist/chunk-HXDZ2QTW.cjs.map +0 -1
  83. package/dist/chunk-SRCWBFSZ.cjs.map +0 -1
  84. package/dist/chunk-TGRJ5WAX.js.map +0 -1
  85. package/dist/chunk-UHOHLN3C.cjs.map +0 -1
  86. package/dist/chunk-YBQV7XBC.js.map +0 -1
  87. package/dist/chunk-YNEDJTX2.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkUHOHLN3C_cjs = require('./chunk-UHOHLN3C.cjs');
4
- var chunk32YKLQPS_cjs = require('./chunk-32YKLQPS.cjs');
5
- var chunkHXDZ2QTW_cjs = require('./chunk-HXDZ2QTW.cjs');
3
+ var chunk7IYIFMF4_cjs = require('./chunk-7IYIFMF4.cjs');
4
+ var chunk4KXOCVXP_cjs = require('./chunk-4KXOCVXP.cjs');
5
+ var chunkMQB5H4X5_cjs = require('./chunk-MQB5H4X5.cjs');
6
6
  var utils_js = require('@scure/btc-signer/utils.js');
7
7
  var btcSigner = require('@scure/btc-signer');
8
8
  var base = require('@scure/base');
@@ -84,6 +84,8 @@ var PartialSig = class _PartialSig {
84
84
  throw new PartialSignatureError("Invalid R length");
85
85
  }
86
86
  }
87
+ s;
88
+ R;
87
89
  /**
88
90
  * Encodes the partial signature into bytes
89
91
  * Returns a 32-byte array containing just the s value
@@ -133,6 +135,7 @@ var TreeSignerSession = class _TreeSignerSession {
133
135
  constructor(secretKey) {
134
136
  this.secretKey = secretKey;
135
137
  }
138
+ secretKey;
136
139
  static NOT_INITIALIZED = new Error("session not initialized, call init method");
137
140
  myNonces = null;
138
141
  aggregateNonces = null;
@@ -181,7 +184,7 @@ var TreeSignerSession = class _TreeSignerSession {
181
184
  noncesByPubkey.set(base.hex.encode(myPublicKey.subarray(1)), myNonce);
182
185
  const tx = this.graph.find(txid);
183
186
  if (!tx) throw new Error(`missing tx for txid ${txid}`);
184
- const cosigners = chunkUHOHLN3C_cjs.getArkPsbtFields(tx.root, 0, chunkUHOHLN3C_cjs.CosignerPublicKey).map(
187
+ const cosigners = chunk7IYIFMF4_cjs.getArkPsbtFields(tx.root, 0, chunk7IYIFMF4_cjs.CosignerPublicKey).map(
185
188
  (c) => base.hex.encode(c.key.subarray(1))
186
189
  // xonly pubkey
187
190
  );
@@ -233,7 +236,7 @@ var TreeSignerSession = class _TreeSignerSession {
233
236
  if (!aggNonce) throw new Error("missing aggregate nonce");
234
237
  const prevoutAmounts = [];
235
238
  const prevoutScripts = [];
236
- const cosigners = chunkUHOHLN3C_cjs.getArkPsbtFields(g.root, 0, chunkUHOHLN3C_cjs.CosignerPublicKey).map((c) => c.key);
239
+ const cosigners = chunk7IYIFMF4_cjs.getArkPsbtFields(g.root, 0, chunk7IYIFMF4_cjs.CosignerPublicKey).map((c) => c.key);
237
240
  const { finalKey } = aggregateKeys(cosigners, true, {
238
241
  taprootTweak: this.scriptRoot
239
242
  });
@@ -359,6 +362,7 @@ var ReadonlySingleKey = class _ReadonlySingleKey {
359
362
  throw new Error("Invalid public key length");
360
363
  }
361
364
  }
365
+ publicKey;
362
366
  /**
363
367
  * Create a ReadonlySingleKey from a compressed public key.
364
368
  *
@@ -411,7 +415,7 @@ var SeedIdentity = class _SeedIdentity {
411
415
  let network;
412
416
  if ("descriptor" in opts && typeof opts.descriptor === "string") {
413
417
  descriptor = opts.descriptor;
414
- network = chunk32YKLQPS_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
418
+ network = chunk4KXOCVXP_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
415
419
  } else {
416
420
  network = opts.isMainnet ?? true ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
417
421
  descriptor = descriptorsScure.scriptExpressions.trBIP32({
@@ -496,7 +500,7 @@ var SeedIdentity = class _SeedIdentity {
496
500
  * `StaticDescriptorProvider` for legacy single-key wallets.
497
501
  */
498
502
  isOurs(descriptor) {
499
- return chunk32YKLQPS_cjs.descriptorIsOurs(descriptor, this.descriptor, utils_js.pubSchnorr(this.derivedKey));
503
+ return chunk4KXOCVXP_cjs.descriptorIsOurs(descriptor, this.descriptor, utils_js.pubSchnorr(this.derivedKey));
500
504
  }
501
505
  /**
502
506
  * Signs each request with the key derived from its descriptor.
@@ -533,7 +537,7 @@ var SeedIdentity = class _SeedIdentity {
533
537
  }
534
538
  // ── internal helpers ─────────────────────────────────────────────
535
539
  derivePrivateKeyForDescriptor(descriptor) {
536
- const network = chunk32YKLQPS_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
540
+ const network = chunk4KXOCVXP_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
537
541
  const expansion = descriptorsScure.expand({ descriptor, network });
538
542
  if (expansion.isRanged) {
539
543
  throw new Error(
@@ -619,7 +623,7 @@ var ReadonlyDescriptorIdentity = class _ReadonlyDescriptorIdentity {
619
623
  */
620
624
  descriptor;
621
625
  constructor(descriptor) {
622
- const network = chunk32YKLQPS_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
626
+ const network = chunk4KXOCVXP_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
623
627
  let expansion;
624
628
  try {
625
629
  expansion = descriptorsScure.expand({ descriptor, network, index: 0 });
@@ -669,7 +673,7 @@ var ReadonlyDescriptorIdentity = class _ReadonlyDescriptorIdentity {
669
673
  * `StaticDescriptorProvider` for legacy single-key wallets.
670
674
  */
671
675
  isOurs(descriptor) {
672
- return chunk32YKLQPS_cjs.descriptorIsOurs(descriptor, this.descriptor, this.indexZero.pubkey);
676
+ return chunk4KXOCVXP_cjs.descriptorIsOurs(descriptor, this.descriptor, this.indexZero.pubkey);
673
677
  }
674
678
  };
675
679
  function serializeSeedOwnedSigningIdentity(identity) {
@@ -970,6 +974,7 @@ var RestDelegateProvider = class {
970
974
  constructor(url) {
971
975
  this.url = url;
972
976
  }
977
+ url;
973
978
  /**
974
979
  * Submit a delegation request to the remote delegation service.
975
980
  *
@@ -980,14 +985,14 @@ var RestDelegateProvider = class {
980
985
  */
981
986
  async delegate(intent, forfeitTxs, options) {
982
987
  const url = `${this.url}/v1/delegate`;
983
- const response = await chunkUHOHLN3C_cjs.baseFetch(url, {
988
+ const response = await chunk7IYIFMF4_cjs.baseFetch(url, {
984
989
  method: "POST",
985
990
  headers: {
986
991
  "Content-Type": "application/json"
987
992
  },
988
993
  body: JSON.stringify({
989
994
  intent: {
990
- message: chunkUHOHLN3C_cjs.Intent.encodeMessage(intent.message),
995
+ message: chunk7IYIFMF4_cjs.Intent.encodeMessage(intent.message),
991
996
  proof: intent.proof
992
997
  },
993
998
  forfeit_txs: forfeitTxs,
@@ -1007,7 +1012,7 @@ var RestDelegateProvider = class {
1007
1012
  */
1008
1013
  async getDelegateInfo() {
1009
1014
  const url = `${this.url}/v1/delegator/info`;
1010
- const response = await chunkUHOHLN3C_cjs.baseFetch(url);
1015
+ const response = await chunk7IYIFMF4_cjs.baseFetch(url);
1011
1016
  if (!response.ok) {
1012
1017
  const errorText2 = await response.text();
1013
1018
  throw new Error(`Failed to get delegate info: ${errorText2}`);
@@ -1034,22 +1039,23 @@ var ESPLORA_URL = {
1034
1039
  regtest: "http://localhost:3000/api"
1035
1040
  };
1036
1041
  var EsploraProvider = class {
1037
- constructor(baseUrl = ESPLORA_URL[chunkHXDZ2QTW_cjs.DEFAULT_NETWORK_NAME], opts) {
1042
+ constructor(baseUrl = ESPLORA_URL[chunkMQB5H4X5_cjs.DEFAULT_NETWORK_NAME], opts) {
1038
1043
  this.baseUrl = baseUrl;
1039
1044
  this.pollingInterval = opts?.pollingInterval ?? 15e3;
1040
1045
  this.forcePolling = opts?.forcePolling ?? false;
1041
1046
  }
1047
+ baseUrl;
1042
1048
  pollingInterval;
1043
1049
  forcePolling;
1044
1050
  async getCoins(address) {
1045
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1051
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1046
1052
  if (!response.ok) {
1047
1053
  throw new Error(`Failed to fetch UTXOs: ${response.statusText}`);
1048
1054
  }
1049
1055
  return response.json();
1050
1056
  }
1051
1057
  async getFeeRate() {
1052
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/fee-estimates`);
1058
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/fee-estimates`);
1053
1059
  if (response.status === 404) {
1054
1060
  return void 0;
1055
1061
  }
@@ -1070,7 +1076,7 @@ var EsploraProvider = class {
1070
1076
  }
1071
1077
  }
1072
1078
  async getTxOutspends(txid) {
1073
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1079
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1074
1080
  if (!response.ok) {
1075
1081
  const error = await response.text();
1076
1082
  throw new Error(`Failed to get transaction outspends: ${error}`);
@@ -1078,7 +1084,7 @@ var EsploraProvider = class {
1078
1084
  return response.json();
1079
1085
  }
1080
1086
  async getTransactions(address) {
1081
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1087
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1082
1088
  if (!response.ok) {
1083
1089
  const error = await response.text();
1084
1090
  throw new Error(`Failed to get transactions: ${error}`);
@@ -1086,7 +1092,7 @@ var EsploraProvider = class {
1086
1092
  return response.json();
1087
1093
  }
1088
1094
  async getTxStatus(txid) {
1089
- const txresponse = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1095
+ const txresponse = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1090
1096
  if (!txresponse.ok) {
1091
1097
  throw new Error(txresponse.statusText);
1092
1098
  }
@@ -1094,7 +1100,7 @@ var EsploraProvider = class {
1094
1100
  if (!tx.status.confirmed) {
1095
1101
  return { confirmed: false };
1096
1102
  }
1097
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1103
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1098
1104
  if (!response.ok) {
1099
1105
  throw new Error(`Failed to get transaction status: ${response.statusText}`);
1100
1106
  }
@@ -1178,7 +1184,7 @@ var EsploraProvider = class {
1178
1184
  return stopFunc;
1179
1185
  }
1180
1186
  async getChainTip() {
1181
- const tipBlocks = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/blocks`);
1187
+ const tipBlocks = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/blocks`);
1182
1188
  if (!tipBlocks.ok) {
1183
1189
  throw new Error(`Failed to get chain tip: ${tipBlocks.statusText}`);
1184
1190
  }
@@ -1197,7 +1203,7 @@ var EsploraProvider = class {
1197
1203
  };
1198
1204
  }
1199
1205
  async broadcastPackage(parent, child) {
1200
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
1206
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
1201
1207
  method: "POST",
1202
1208
  headers: {
1203
1209
  "Content-Type": "application/json"
@@ -1211,7 +1217,7 @@ var EsploraProvider = class {
1211
1217
  return response.json();
1212
1218
  }
1213
1219
  async broadcastTx(tx) {
1214
- const response = await chunkUHOHLN3C_cjs.baseFetch(`${this.baseUrl}/tx`, {
1220
+ const response = await chunk7IYIFMF4_cjs.baseFetch(`${this.baseUrl}/tx`, {
1215
1221
  method: "POST",
1216
1222
  headers: {
1217
1223
  "Content-Type": "text/plain"
@@ -1373,7 +1379,7 @@ function findP2AOutput(tx) {
1373
1379
  var CHILD_DUST_AMOUNT = 546;
1374
1380
  function buildAnchorChild(params) {
1375
1381
  const { parent, feeRate, fundingCoins, changeAddress, tapInternalKey, network } = params;
1376
- const child = new chunkUHOHLN3C_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
1382
+ const child = new chunk7IYIFMF4_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
1377
1383
  child.addInput(findP2AOutput(parent));
1378
1384
  const estimator = TxWeightEstimator.create().addP2AInput();
1379
1385
  for (const _ of fundingCoins) {
@@ -1421,7 +1427,7 @@ function buildForfeitTx(inputs, forfeitPkScript, txLocktime) {
1421
1427
  );
1422
1428
  }
1423
1429
  function buildForfeitTxWithOutput(inputs, output, txLocktime) {
1424
- const tx = new chunkUHOHLN3C_cjs.Transaction({
1430
+ const tx = new chunk7IYIFMF4_cjs.Transaction({
1425
1431
  version: 3,
1426
1432
  lockTime: txLocktime
1427
1433
  });
@@ -1497,7 +1503,7 @@ function validateVtxoTxGraph(graph, roundTransaction, sweepTapTreeRoot) {
1497
1503
  if (previousScriptKey.length !== 32) {
1498
1504
  throw new Error(`parent output ${childIndex} has invalid script`);
1499
1505
  }
1500
- const cosigners = chunkUHOHLN3C_cjs.getArkPsbtFields(child.root, 0, chunkUHOHLN3C_cjs.CosignerPublicKey);
1506
+ const cosigners = chunk7IYIFMF4_cjs.getArkPsbtFields(child.root, 0, chunk7IYIFMF4_cjs.CosignerPublicKey);
1501
1507
  if (cosigners.length === 0) {
1502
1508
  throw ErrMissingCosignersPublicKeys;
1503
1509
  }
@@ -1518,6 +1524,8 @@ var UnknownPacket = class {
1518
1524
  this.packetType = packetType;
1519
1525
  this.data = data;
1520
1526
  }
1527
+ packetType;
1528
+ data;
1521
1529
  type() {
1522
1530
  return this.packetType;
1523
1531
  }
@@ -1538,6 +1546,7 @@ var Extension = class _Extension {
1538
1546
  constructor(packets) {
1539
1547
  this.packets = packets;
1540
1548
  }
1549
+ packets;
1541
1550
  static create(packets) {
1542
1551
  if (packets.length === 0) {
1543
1552
  throw new Error("missing packets");
@@ -1597,7 +1606,7 @@ var Extension = class _Extension {
1597
1606
  `expected magic prefix ${base.hex.encode(ARKADE_MAGIC)}, got ${base.hex.encode(payload.slice(0, Math.min(payload.length, ARKADE_MAGIC.length)))}`
1598
1607
  );
1599
1608
  }
1600
- const reader = new chunkUHOHLN3C_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
1609
+ const reader = new chunk7IYIFMF4_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
1601
1610
  const packets = [];
1602
1611
  while (reader.remaining() > 0) {
1603
1612
  const packetType = reader.readByte();
@@ -1671,7 +1680,7 @@ var Extension = class _Extension {
1671
1680
  */
1672
1681
  getAssetPacket() {
1673
1682
  for (const p of this.packets) {
1674
- if (p instanceof chunkUHOHLN3C_cjs.Packet) {
1683
+ if (p instanceof chunk7IYIFMF4_cjs.Packet) {
1675
1684
  return p;
1676
1685
  }
1677
1686
  }
@@ -1679,8 +1688,8 @@ var Extension = class _Extension {
1679
1688
  }
1680
1689
  };
1681
1690
  function parsePacket(packetType, data) {
1682
- if (packetType === chunkUHOHLN3C_cjs.Packet.PACKET_TYPE) {
1683
- return chunkUHOHLN3C_cjs.Packet.fromBytes(data);
1691
+ if (packetType === chunk7IYIFMF4_cjs.Packet.PACKET_TYPE) {
1692
+ return chunk7IYIFMF4_cjs.Packet.fromBytes(data);
1684
1693
  }
1685
1694
  return new UnknownPacket(packetType, data);
1686
1695
  }
@@ -1738,7 +1747,7 @@ function validateBatchRecipients(commitmentTx, vtxoTreeLeaves, recipients, netwo
1738
1747
  for (const recipient of recipients) {
1739
1748
  let arkAddress;
1740
1749
  try {
1741
- arkAddress = chunkHXDZ2QTW_cjs.ArkAddress.decode(recipient.address);
1750
+ arkAddress = chunkMQB5H4X5_cjs.ArkAddress.decode(recipient.address);
1742
1751
  } catch {
1743
1752
  validateOnchainRecipient(commitmentTx, recipient, network, usedOnchainOutputs);
1744
1753
  continue;
@@ -1976,6 +1985,7 @@ function isExpired(vtxo) {
1976
1985
  return expiry <= Date.now();
1977
1986
  }
1978
1987
  function isSubdust(vtxo, dust) {
1988
+ if (typeof vtxo === "bigint") return vtxo < dust;
1979
1989
  return vtxo.value < dust;
1980
1990
  }
1981
1991
 
@@ -1987,7 +1997,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
1987
1997
  const existing = inputsByAssetId.get(asset.assetId);
1988
1998
  inputsByAssetId.set(asset.assetId, [
1989
1999
  ...existing ?? [],
1990
- chunkUHOHLN3C_cjs.AssetInput.create(inputIndex, asset.amount)
2000
+ chunk7IYIFMF4_cjs.AssetInput.create(inputIndex, asset.amount)
1991
2001
  ]);
1992
2002
  }
1993
2003
  }
@@ -1999,7 +2009,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
1999
2009
  const existing = outputsByAssetId.get(asset.assetId);
2000
2010
  outputsByAssetId.set(asset.assetId, [
2001
2011
  ...existing ?? [],
2002
- chunkUHOHLN3C_cjs.AssetOutput.create(outputIndex, asset.amount)
2012
+ chunk7IYIFMF4_cjs.AssetOutput.create(outputIndex, asset.amount)
2003
2013
  ]);
2004
2014
  }
2005
2015
  }
@@ -2010,7 +2020,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2010
2020
  const existing = outputsByAssetId.get(asset.assetId);
2011
2021
  outputsByAssetId.set(asset.assetId, [
2012
2022
  ...existing ?? [],
2013
- chunkUHOHLN3C_cjs.AssetOutput.create(outputIndex, asset.amount)
2023
+ chunk7IYIFMF4_cjs.AssetOutput.create(outputIndex, asset.amount)
2014
2024
  ]);
2015
2025
  }
2016
2026
  }
@@ -2019,11 +2029,11 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2019
2029
  for (const assetIdStr of allAssetIds) {
2020
2030
  const inputs = inputsByAssetId.get(assetIdStr);
2021
2031
  const outputs = outputsByAssetId.get(assetIdStr);
2022
- const assetId = chunkUHOHLN3C_cjs.AssetId.fromString(assetIdStr);
2023
- const group = chunkUHOHLN3C_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
2032
+ const assetId = chunk7IYIFMF4_cjs.AssetId.fromString(assetIdStr);
2033
+ const group = chunk7IYIFMF4_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
2024
2034
  groups.push(group);
2025
2035
  }
2026
- return chunkUHOHLN3C_cjs.Packet.create(groups);
2036
+ return chunk7IYIFMF4_cjs.Packet.create(groups);
2027
2037
  }
2028
2038
  function selectCoinsWithAsset(coins, assetId, requiredAmount) {
2029
2039
  const coinsWithAsset = coins.filter((coin) => coin.assets?.some((a) => a.assetId === assetId));
@@ -2128,8 +2138,8 @@ function buildOffchainTx(inputs, outputs, serverUnrollScript) {
2128
2138
  function buildVirtualTx(inputs, outputs) {
2129
2139
  let lockTime = 0n;
2130
2140
  for (const input of inputs) {
2131
- const tapscript = chunkHXDZ2QTW_cjs.decodeTapscript(chunkHXDZ2QTW_cjs.scriptFromTapLeafScript(input.tapLeafScript));
2132
- if (chunkHXDZ2QTW_cjs.CLTVMultisigTapscript.is(tapscript)) {
2141
+ const tapscript = chunkMQB5H4X5_cjs.decodeTapscript(chunkMQB5H4X5_cjs.scriptFromTapLeafScript(input.tapLeafScript));
2142
+ if (chunkMQB5H4X5_cjs.CLTVMultisigTapscript.is(tapscript)) {
2133
2143
  if (lockTime !== 0n) {
2134
2144
  if (isSeconds(lockTime) !== isSeconds(tapscript.params.absoluteTimelock)) {
2135
2145
  throw new Error("cannot mix seconds and blocks locktime");
@@ -2140,7 +2150,7 @@ function buildVirtualTx(inputs, outputs) {
2140
2150
  }
2141
2151
  }
2142
2152
  }
2143
- const tx = new chunkUHOHLN3C_cjs.Transaction({
2153
+ const tx = new chunk7IYIFMF4_cjs.Transaction({
2144
2154
  version: 3,
2145
2155
  lockTime: Number(lockTime)
2146
2156
  });
@@ -2150,12 +2160,12 @@ function buildVirtualTx(inputs, outputs) {
2150
2160
  index: input.vout,
2151
2161
  sequence: lockTime ? btcSigner.DEFAULT_SEQUENCE - 1 : void 0,
2152
2162
  witnessUtxo: {
2153
- script: chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).pkScript,
2163
+ script: chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).pkScript,
2154
2164
  amount: BigInt(input.value)
2155
2165
  },
2156
2166
  tapLeafScript: [input.tapLeafScript]
2157
2167
  });
2158
- chunkUHOHLN3C_cjs.setArkPsbtField(tx, i, chunkUHOHLN3C_cjs.VtxoTaprootTree, input.tapTree);
2168
+ chunk7IYIFMF4_cjs.setArkPsbtField(tx, i, chunk7IYIFMF4_cjs.VtxoTaprootTree, input.tapTree);
2159
2169
  }
2160
2170
  for (const output of outputs) {
2161
2171
  tx.addOutput(output);
@@ -2164,8 +2174,8 @@ function buildVirtualTx(inputs, outputs) {
2164
2174
  return tx;
2165
2175
  }
2166
2176
  function buildCheckpointTx(vtxo, serverUnrollScript) {
2167
- const collaborativeClosure = chunkHXDZ2QTW_cjs.decodeTapscript(chunkHXDZ2QTW_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
2168
- const checkpointVtxoScript = new chunkHXDZ2QTW_cjs.VtxoScript([
2177
+ const collaborativeClosure = chunkMQB5H4X5_cjs.decodeTapscript(chunkMQB5H4X5_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
2178
+ const checkpointVtxoScript = new chunkMQB5H4X5_cjs.VtxoScript([
2169
2179
  serverUnrollScript.script,
2170
2180
  collaborativeClosure.script
2171
2181
  ]);
@@ -2309,7 +2319,7 @@ function combineTapscriptSigs(signedTx, originalTx) {
2309
2319
  }
2310
2320
  function isValidArkAddress(address) {
2311
2321
  try {
2312
- chunkHXDZ2QTW_cjs.ArkAddress.decode(address);
2322
+ chunkMQB5H4X5_cjs.ArkAddress.decode(address);
2313
2323
  return true;
2314
2324
  } catch (e) {
2315
2325
  return false;
@@ -2334,6 +2344,7 @@ var FeeAmount = class _FeeAmount {
2334
2344
  constructor(value) {
2335
2345
  this.value = value;
2336
2346
  }
2347
+ value;
2337
2348
  static ZERO = new _FeeAmount(0);
2338
2349
  /** Returns the fee amount rounded up to whole satoshis. */
2339
2350
  get satoshis() {
@@ -2358,6 +2369,7 @@ var Estimator = class {
2358
2369
  this.intentOffchainOutput = config.offchainOutput ? parseProgram(config.offchainOutput, IntentOutputEnv) : void 0;
2359
2370
  this.intentOnchainOutput = config.onchainOutput ? parseProgram(config.onchainOutput, IntentOutputEnv) : void 0;
2360
2371
  }
2372
+ config;
2361
2373
  intentOffchainInput;
2362
2374
  intentOnchainInput;
2363
2375
  intentOffchainOutput;
@@ -2482,7 +2494,7 @@ function extendCoinWithTapscript(boardingTapscript, utxo) {
2482
2494
  };
2483
2495
  }
2484
2496
  function deriveContractTapscripts(contract) {
2485
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
2497
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
2486
2498
  if (!handler) {
2487
2499
  throw new Error(`No handler for contract type '${contract.type}'`);
2488
2500
  }
@@ -2552,7 +2564,7 @@ function validateRecipients(recipients, dustAmount) {
2552
2564
  for (const recipient of recipients) {
2553
2565
  let address;
2554
2566
  try {
2555
- address = chunkHXDZ2QTW_cjs.ArkAddress.decode(recipient.address);
2567
+ address = chunkMQB5H4X5_cjs.ArkAddress.decode(recipient.address);
2556
2568
  } catch (e) {
2557
2569
  throw new Error(`Invalid Arkade address: ${recipient.address}`);
2558
2570
  }
@@ -2760,6 +2772,8 @@ var VtxoManager = class _VtxoManager {
2760
2772
  }
2761
2773
  this.contractEventsSubscriptionReady = this.initializeSubscription();
2762
2774
  }
2775
+ wallet;
2776
+ renewalConfig;
2763
2777
  settlementConfig;
2764
2778
  contractEventsSubscriptionReady;
2765
2779
  disposePromise;
@@ -3157,11 +3171,11 @@ var VtxoManager = class _VtxoManager {
3157
3171
  `Sweep not economical: output ${outputAmount} sats after ${fee} sats fee is below dust (${dustAmount} sats)`
3158
3172
  );
3159
3173
  }
3160
- const tx = new chunkUHOHLN3C_cjs.Transaction();
3174
+ const tx = new chunk7IYIFMF4_cjs.Transaction();
3161
3175
  for (const utxo of expiredUtxos) {
3162
- const utxoScript = chunkHXDZ2QTW_cjs.VtxoScript.decode(utxo.tapTree);
3176
+ const utxoScript = chunkMQB5H4X5_cjs.VtxoScript.decode(utxo.tapTree);
3163
3177
  const utxoExitLeaf = utxoScript.leaves.find(
3164
- (leaf) => chunkHXDZ2QTW_cjs.CSVMultisigTapscript.isScriptValid(chunkHXDZ2QTW_cjs.scriptFromTapLeafScript(leaf)) === true
3178
+ (leaf) => chunkMQB5H4X5_cjs.CSVMultisigTapscript.isScriptValid(chunkMQB5H4X5_cjs.scriptFromTapLeafScript(leaf)) === true
3165
3179
  );
3166
3180
  if (!utxoExitLeaf) {
3167
3181
  throw new Error(
@@ -3176,7 +3190,7 @@ var VtxoManager = class _VtxoManager {
3176
3190
  amount: BigInt(utxo.value)
3177
3191
  },
3178
3192
  tapLeafScript: [utxoExitLeaf],
3179
- sequence: chunkHXDZ2QTW_cjs.getSequence(utxoExitLeaf)
3193
+ sequence: chunkMQB5H4X5_cjs.getSequence(utxoExitLeaf)
3180
3194
  });
3181
3195
  }
3182
3196
  tx.addOutputAddress(boardingAddress, outputAmount, this.getNetwork());
@@ -3665,7 +3679,7 @@ var VtxoManager = class _VtxoManager {
3665
3679
  /** Decodes the boarding tapscript exit path to extract the CSV timelock. */
3666
3680
  getBoardingTimelock() {
3667
3681
  const wallet = this.getSweepWallet();
3668
- const exitScript = chunkHXDZ2QTW_cjs.CSVMultisigTapscript.decode(
3682
+ const exitScript = chunkMQB5H4X5_cjs.CSVMultisigTapscript.decode(
3669
3683
  base.hex.decode(wallet.boardingTapscript.exitScript)
3670
3684
  );
3671
3685
  return exitScript.params.timelock;
@@ -3796,8 +3810,8 @@ var VtxoManager = class _VtxoManager {
3796
3810
  * or doesn't carry the metadata.
3797
3811
  */
3798
3812
  extractSpentOutpoint(error) {
3799
- const ark = chunkUHOHLN3C_cjs.maybeArkError(error);
3800
- if (!ark || ark.name !== "VTXO_ALREADY_SPENT") return void 0;
3813
+ const ark = chunk7IYIFMF4_cjs.maybeArkError(error);
3814
+ if (!chunk7IYIFMF4_cjs.isArkError(ark, chunk7IYIFMF4_cjs.ArkErrorName.VTXO_ALREADY_SPENT)) return void 0;
3801
3815
  const raw = ark.metadata?.vtxo_outpoint;
3802
3816
  if (typeof raw !== "string") return void 0;
3803
3817
  const [txid, voutStr] = raw.split(":");
@@ -4011,7 +4025,7 @@ var VtxoManager = class _VtxoManager {
4011
4025
  const arkAddress = await this.wallet.getAddress();
4012
4026
  const outputFee = estimator.evalOffchainOutput({
4013
4027
  amount: totalAmount,
4014
- script: base.hex.encode(chunkHXDZ2QTW_cjs.ArkAddress.decode(arkAddress).pkScript)
4028
+ script: base.hex.encode(chunkMQB5H4X5_cjs.ArkAddress.decode(arkAddress).pkScript)
4015
4029
  });
4016
4030
  totalAmount -= BigInt(outputFee.satoshis);
4017
4031
  if (totalAmount < dustAmount) return;
@@ -4091,7 +4105,7 @@ var ArkNote = class _ArkNote {
4091
4105
  this.value = value;
4092
4106
  this.HRP = HRP;
4093
4107
  const preimageHash = utils_js.sha256(this.preimage);
4094
- this.vtxoScript = new chunkHXDZ2QTW_cjs.VtxoScript([noteTapscript(preimageHash)]);
4108
+ this.vtxoScript = new chunkMQB5H4X5_cjs.VtxoScript([noteTapscript(preimageHash)]);
4095
4109
  const leaf = this.vtxoScript.leaves[0];
4096
4110
  this.txid = base.hex.encode(new Uint8Array(preimageHash).reverse());
4097
4111
  this.tapTree = this.vtxoScript.encode();
@@ -4101,6 +4115,9 @@ var ArkNote = class _ArkNote {
4101
4115
  this.status = { confirmed: true };
4102
4116
  this.extraWitness = [this.preimage];
4103
4117
  }
4118
+ preimage;
4119
+ value;
4120
+ HRP;
4104
4121
  static DefaultHRP = "arknote";
4105
4122
  static PreimageLength = 32;
4106
4123
  // 32 bytes for the preimage
@@ -4443,7 +4460,7 @@ async function captureExitBranch(params) {
4443
4460
  const nonCommitment = ordered.filter((c) => chainTxTypeToChainedExit(c.type) !== 1 /* Commitment */).map((c) => c.txid);
4444
4461
  if (nonCommitment.length > 0) {
4445
4462
  for (const psbt of await resolver.getVirtualTxs(nonCommitment)) {
4446
- psbtByTxid.set(chunkUHOHLN3C_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
4463
+ psbtByTxid.set(chunk7IYIFMF4_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
4447
4464
  }
4448
4465
  }
4449
4466
  }
@@ -4477,6 +4494,7 @@ var IndexerExitDataSource = class {
4477
4494
  constructor(indexer) {
4478
4495
  this.indexer = indexer;
4479
4496
  }
4497
+ indexer;
4480
4498
  name = "indexer";
4481
4499
  async getVtxoChain(vtxo) {
4482
4500
  const chain = [];
@@ -4485,10 +4503,10 @@ var IndexerExitDataSource = class {
4485
4503
  while (hasMore) {
4486
4504
  const { chain: page, page: meta } = await this.indexer.getVtxoChain(
4487
4505
  { txid: vtxo.txid, vout: vtxo.vout },
4488
- { pageIndex, pageSize: chunk32YKLQPS_cjs.DEFAULT_PAGE_SIZE }
4506
+ { pageIndex, pageSize: chunk4KXOCVXP_cjs.DEFAULT_PAGE_SIZE }
4489
4507
  );
4490
4508
  chain.push(...page);
4491
- hasMore = meta ? page.length === chunk32YKLQPS_cjs.DEFAULT_PAGE_SIZE : false;
4509
+ hasMore = meta ? page.length === chunk4KXOCVXP_cjs.DEFAULT_PAGE_SIZE : false;
4492
4510
  pageIndex++;
4493
4511
  }
4494
4512
  return chain;
@@ -4500,12 +4518,12 @@ var IndexerExitDataSource = class {
4500
4518
  while (hasMore) {
4501
4519
  const { txs, page } = await this.indexer.getVirtualTxs(txids, {
4502
4520
  pageIndex,
4503
- pageSize: chunk32YKLQPS_cjs.DEFAULT_PAGE_SIZE
4521
+ pageSize: chunk4KXOCVXP_cjs.DEFAULT_PAGE_SIZE
4504
4522
  });
4505
4523
  for (const psbt of txs) {
4506
- out.set(chunkUHOHLN3C_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
4524
+ out.set(chunk7IYIFMF4_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
4507
4525
  }
4508
- hasMore = page ? txs.length === chunk32YKLQPS_cjs.DEFAULT_PAGE_SIZE : false;
4526
+ hasMore = page ? txs.length === chunk4KXOCVXP_cjs.DEFAULT_PAGE_SIZE : false;
4509
4527
  pageIndex++;
4510
4528
  }
4511
4529
  return out;
@@ -4526,7 +4544,7 @@ function chainedTxTypeToChainTxType(t) {
4526
4544
  }
4527
4545
  }
4528
4546
  function psbtInputTxids(psbtBase64) {
4529
- const tx = chunkUHOHLN3C_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
4547
+ const tx = chunk7IYIFMF4_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
4530
4548
  const ids = [];
4531
4549
  for (let i = 0; i < tx.inputsLength; i++) {
4532
4550
  const txid = tx.getInput(i).txid;
@@ -4538,6 +4556,7 @@ var RepositoryExitDataSource = class {
4538
4556
  constructor(repo) {
4539
4557
  this.repo = repo;
4540
4558
  }
4559
+ repo;
4541
4560
  name = "repository";
4542
4561
  async getVtxoChain(vtxo) {
4543
4562
  const branch = await this.repo.getBranch(vtxo);
@@ -4575,6 +4594,8 @@ var OrderedExitChainResolver = class {
4575
4594
  this.sources = sources;
4576
4595
  this.persist = persist;
4577
4596
  }
4597
+ sources;
4598
+ persist;
4578
4599
  async getVtxoChain(vtxo) {
4579
4600
  let lastErr;
4580
4601
  for (const source of this.sources) {
@@ -4626,7 +4647,7 @@ function createExitChainResolver(params) {
4626
4647
 
4627
4648
  // src/providers/availability.ts
4628
4649
  function isRetryableProviderError(error) {
4629
- return error instanceof chunkUHOHLN3C_cjs.ProviderUnavailableError || error instanceof chunkUHOHLN3C_cjs.FetchError || chunkUHOHLN3C_cjs.isFetchTimeoutError(error);
4650
+ return error instanceof chunk7IYIFMF4_cjs.ProviderUnavailableError || error instanceof chunk7IYIFMF4_cjs.FetchError || chunk7IYIFMF4_cjs.isFetchTimeoutError(error);
4630
4651
  }
4631
4652
 
4632
4653
  // src/utils/syncCursors.ts
@@ -4879,7 +4900,7 @@ async function resolveArkInfo(arkProvider, walletRepository) {
4879
4900
  if (!isRetryableProviderError(err)) throw err;
4880
4901
  const snapshot = await loadArkInfoSnapshot(walletRepository);
4881
4902
  if (!snapshot) {
4882
- throw new chunkUHOHLN3C_cjs.ProviderUnavailableError(
4903
+ throw new chunk7IYIFMF4_cjs.ProviderUnavailableError(
4883
4904
  "Arkade server info is unavailable and no cached snapshot exists",
4884
4905
  { cause: err }
4885
4906
  );
@@ -4900,6 +4921,8 @@ var TxTree = class {
4900
4921
  this.root = root;
4901
4922
  this.children = children;
4902
4923
  }
4924
+ root;
4925
+ children;
4903
4926
  static create(chunks) {
4904
4927
  if (chunks.length === 0) {
4905
4928
  throw new Error("empty chunks");
@@ -5371,6 +5394,7 @@ var ReadonlyAssetManager = class {
5371
5394
  constructor(indexer) {
5372
5395
  this.indexer = indexer;
5373
5396
  }
5397
+ indexer;
5374
5398
  async getAssetDetails(assetId) {
5375
5399
  return this.indexer.getAssetDetails(assetId);
5376
5400
  }
@@ -5380,6 +5404,7 @@ var AssetManager = class extends ReadonlyAssetManager {
5380
5404
  super(wallet.indexerProvider);
5381
5405
  this.wallet = wallet;
5382
5406
  }
5407
+ wallet;
5383
5408
  /**
5384
5409
  * Issue a new asset.
5385
5410
  * @param params - Parameters for asset issuance
@@ -5410,7 +5435,7 @@ var AssetManager = class extends ReadonlyAssetManager {
5410
5435
  const virtualCoins = await this.wallet.getVtxos({
5411
5436
  withRecoverable: false
5412
5437
  });
5413
- const controlAssetRef = params.controlAssetId ? chunkUHOHLN3C_cjs.AssetRef.fromId(chunkUHOHLN3C_cjs.AssetId.fromString(params.controlAssetId)) : null;
5438
+ const controlAssetRef = params.controlAssetId ? chunk7IYIFMF4_cjs.AssetRef.fromId(chunk7IYIFMF4_cjs.AssetId.fromString(params.controlAssetId)) : null;
5414
5439
  const coinSelection = selectVirtualCoins(virtualCoins, Number(this.wallet.dustAmount));
5415
5440
  let totalBtcSelected = 0n;
5416
5441
  const assetChanges = /* @__PURE__ */ new Map();
@@ -5423,8 +5448,8 @@ var AssetManager = class extends ReadonlyAssetManager {
5423
5448
  }
5424
5449
  }
5425
5450
  const groups = [];
5426
- const issuedAssetOutput = chunkUHOHLN3C_cjs.AssetOutput.create(0, params.amount);
5427
- const issuedAssetGroup = chunkUHOHLN3C_cjs.AssetGroup.create(
5451
+ const issuedAssetOutput = chunk7IYIFMF4_cjs.AssetOutput.create(0, params.amount);
5452
+ const issuedAssetGroup = chunk7IYIFMF4_cjs.AssetGroup.create(
5428
5453
  null,
5429
5454
  controlAssetRef,
5430
5455
  [],
@@ -5439,28 +5464,28 @@ var AssetManager = class extends ReadonlyAssetManager {
5439
5464
  for (const [inputIndex, assets] of assetInputs) {
5440
5465
  for (const asset of assets) {
5441
5466
  if (asset.assetId !== assetId) continue;
5442
- changeInputs.push(chunkUHOHLN3C_cjs.AssetInput.create(inputIndex, asset.amount));
5467
+ changeInputs.push(chunk7IYIFMF4_cjs.AssetInput.create(inputIndex, asset.amount));
5443
5468
  }
5444
5469
  }
5445
5470
  groups.push(
5446
- chunkUHOHLN3C_cjs.AssetGroup.create(
5447
- chunkUHOHLN3C_cjs.AssetId.fromString(assetId),
5471
+ chunk7IYIFMF4_cjs.AssetGroup.create(
5472
+ chunk7IYIFMF4_cjs.AssetId.fromString(assetId),
5448
5473
  null,
5449
5474
  changeInputs,
5450
- [chunkUHOHLN3C_cjs.AssetOutput.create(0, amount)],
5475
+ [chunk7IYIFMF4_cjs.AssetOutput.create(0, amount)],
5451
5476
  []
5452
5477
  )
5453
5478
  );
5454
5479
  }
5455
5480
  }
5456
5481
  const address = await this.wallet.getAddress();
5457
- const outputAddress = chunkHXDZ2QTW_cjs.ArkAddress.decode(address);
5482
+ const outputAddress = chunkMQB5H4X5_cjs.ArkAddress.decode(address);
5458
5483
  const outputs = [
5459
5484
  {
5460
5485
  script: outputAddress.pkScript,
5461
5486
  amount: BigInt(totalBtcSelected)
5462
5487
  },
5463
- Extension.create([chunkUHOHLN3C_cjs.Packet.create(groups)]).txOut()
5488
+ Extension.create([chunk7IYIFMF4_cjs.Packet.create(groups)]).txOut()
5464
5489
  ];
5465
5490
  const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(
5466
5491
  coinSelection.inputs,
@@ -5468,7 +5493,7 @@ var AssetManager = class extends ReadonlyAssetManager {
5468
5493
  );
5469
5494
  return {
5470
5495
  arkTxId: arkTxid,
5471
- assetId: chunkUHOHLN3C_cjs.AssetId.create(arkTxid, 0).toString()
5496
+ assetId: chunk7IYIFMF4_cjs.AssetId.create(arkTxid, 0).toString()
5472
5497
  };
5473
5498
  }
5474
5499
  /**
@@ -5540,16 +5565,16 @@ var AssetManager = class extends ReadonlyAssetManager {
5540
5565
  for (const [inputIndex, assets] of assetInputs) {
5541
5566
  for (const asset of assets) {
5542
5567
  if (asset.assetId !== params.assetId) continue;
5543
- reissueInputs.push(chunkUHOHLN3C_cjs.AssetInput.create(inputIndex, asset.amount));
5568
+ reissueInputs.push(chunk7IYIFMF4_cjs.AssetInput.create(inputIndex, asset.amount));
5544
5569
  }
5545
5570
  }
5546
5571
  const totalAssetAmount = assetToReissueAmount + params.amount;
5547
- const reissueAssetIdObj = chunkUHOHLN3C_cjs.AssetId.fromString(params.assetId);
5548
- const reissueAssetGroup = chunkUHOHLN3C_cjs.AssetGroup.create(
5572
+ const reissueAssetIdObj = chunk7IYIFMF4_cjs.AssetId.fromString(params.assetId);
5573
+ const reissueAssetGroup = chunk7IYIFMF4_cjs.AssetGroup.create(
5549
5574
  reissueAssetIdObj,
5550
5575
  null,
5551
5576
  reissueInputs,
5552
- [chunkUHOHLN3C_cjs.AssetOutput.create(0, totalAssetAmount)],
5577
+ [chunk7IYIFMF4_cjs.AssetOutput.create(0, totalAssetAmount)],
5553
5578
  []
5554
5579
  );
5555
5580
  const groups = [reissueAssetGroup];
@@ -5558,27 +5583,27 @@ var AssetManager = class extends ReadonlyAssetManager {
5558
5583
  for (const [inputIndex, assets] of assetInputs) {
5559
5584
  for (const asset of assets) {
5560
5585
  if (asset.assetId !== assetId) continue;
5561
- changeInputs.push(chunkUHOHLN3C_cjs.AssetInput.create(inputIndex, asset.amount));
5586
+ changeInputs.push(chunk7IYIFMF4_cjs.AssetInput.create(inputIndex, asset.amount));
5562
5587
  }
5563
5588
  }
5564
5589
  groups.push(
5565
- chunkUHOHLN3C_cjs.AssetGroup.create(
5566
- chunkUHOHLN3C_cjs.AssetId.fromString(assetId),
5590
+ chunk7IYIFMF4_cjs.AssetGroup.create(
5591
+ chunk7IYIFMF4_cjs.AssetId.fromString(assetId),
5567
5592
  null,
5568
5593
  changeInputs,
5569
- [chunkUHOHLN3C_cjs.AssetOutput.create(0, amount)],
5594
+ [chunk7IYIFMF4_cjs.AssetOutput.create(0, amount)],
5570
5595
  []
5571
5596
  )
5572
5597
  );
5573
5598
  }
5574
5599
  const address = await this.wallet.getAddress();
5575
- const outputAddress = chunkHXDZ2QTW_cjs.ArkAddress.decode(address);
5600
+ const outputAddress = chunkMQB5H4X5_cjs.ArkAddress.decode(address);
5576
5601
  const outputs = [
5577
5602
  {
5578
5603
  script: outputAddress.pkScript,
5579
5604
  amount: BigInt(totalBtcSelected)
5580
5605
  },
5581
- Extension.create([chunkUHOHLN3C_cjs.Packet.create(groups)]).txOut()
5606
+ Extension.create([chunk7IYIFMF4_cjs.Packet.create(groups)]).txOut()
5582
5607
  ];
5583
5608
  const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(selectedCoins, outputs);
5584
5609
  return arkTxid;
@@ -5645,27 +5670,27 @@ var AssetManager = class extends ReadonlyAssetManager {
5645
5670
  for (const [inputIndex, assets] of assetInputs) {
5646
5671
  for (const asset of assets) {
5647
5672
  if (asset.assetId !== assetId) continue;
5648
- changeInputs.push(chunkUHOHLN3C_cjs.AssetInput.create(inputIndex, asset.amount));
5673
+ changeInputs.push(chunk7IYIFMF4_cjs.AssetInput.create(inputIndex, asset.amount));
5649
5674
  }
5650
5675
  }
5651
5676
  groups.push(
5652
- chunkUHOHLN3C_cjs.AssetGroup.create(
5653
- chunkUHOHLN3C_cjs.AssetId.fromString(assetId),
5677
+ chunk7IYIFMF4_cjs.AssetGroup.create(
5678
+ chunk7IYIFMF4_cjs.AssetId.fromString(assetId),
5654
5679
  null,
5655
5680
  changeInputs,
5656
- amount > 0n ? [chunkUHOHLN3C_cjs.AssetOutput.create(0, amount)] : [],
5681
+ amount > 0n ? [chunk7IYIFMF4_cjs.AssetOutput.create(0, amount)] : [],
5657
5682
  []
5658
5683
  )
5659
5684
  );
5660
5685
  }
5661
5686
  const address = await this.wallet.getAddress();
5662
- const outputAddress = chunkHXDZ2QTW_cjs.ArkAddress.decode(address);
5687
+ const outputAddress = chunkMQB5H4X5_cjs.ArkAddress.decode(address);
5663
5688
  const outputs = [
5664
5689
  {
5665
5690
  script: outputAddress.pkScript,
5666
5691
  amount: BigInt(totalBtcSelected)
5667
5692
  },
5668
- Extension.create([chunkUHOHLN3C_cjs.Packet.create(groups)]).txOut()
5693
+ Extension.create([chunk7IYIFMF4_cjs.Packet.create(groups)]).txOut()
5669
5694
  ];
5670
5695
  const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(selectedCoins, outputs);
5671
5696
  return arkTxid;
@@ -5690,7 +5715,7 @@ function castMetadata(metadata) {
5690
5715
  } else {
5691
5716
  throw new Error("Invalid metadata value type");
5692
5717
  }
5693
- md.push(chunkUHOHLN3C_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
5718
+ md.push(chunk7IYIFMF4_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
5694
5719
  }
5695
5720
  return md;
5696
5721
  }
@@ -5701,6 +5726,9 @@ var DelegateManagerImpl = class {
5701
5726
  this.arkInfoProvider = arkInfoProvider;
5702
5727
  this.identity = identity;
5703
5728
  }
5729
+ delegateProvider;
5730
+ arkInfoProvider;
5731
+ identity;
5704
5732
  async getDelegateInfo() {
5705
5733
  return this.delegateProvider.getDelegateInfo();
5706
5734
  }
@@ -5708,7 +5736,7 @@ var DelegateManagerImpl = class {
5708
5736
  if (vtxos.length === 0) {
5709
5737
  return { delegated: [], failed: [] };
5710
5738
  }
5711
- const destinationScript = chunkHXDZ2QTW_cjs.ArkAddress.decode(destination).pkScript;
5739
+ const destinationScript = chunkMQB5H4X5_cjs.ArkAddress.decode(destination).pkScript;
5712
5740
  const arkInfo = await this.arkInfoProvider.getInfo();
5713
5741
  const delegateInfo = await this.delegateProvider.getDelegateInfo();
5714
5742
  const eligible = vtxos.filter(
@@ -5856,7 +5884,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
5856
5884
  const delegateFee = BigInt(Number(fee));
5857
5885
  if (delegateFee > 0n) {
5858
5886
  outputs.push({
5859
- script: chunkHXDZ2QTW_cjs.ArkAddress.decode(delegateAddress).pkScript,
5887
+ script: chunkMQB5H4X5_cjs.ArkAddress.decode(delegateAddress).pkScript,
5860
5888
  amount: delegateFee
5861
5889
  });
5862
5890
  }
@@ -5867,12 +5895,12 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
5867
5895
  script: base.hex.encode(output.script)
5868
5896
  }).satoshis;
5869
5897
  }, 0);
5870
- if (amount - BigInt(outputFee) <= dust) {
5898
+ if (isSubdust(amount - BigInt(outputFee), dust)) {
5871
5899
  throw new Error("Amount is below dust limit, cannot delegate");
5872
5900
  }
5873
5901
  amount -= BigInt(outputFee);
5874
5902
  amount -= delegateFee;
5875
- if (amount <= dust) {
5903
+ if (isSubdust(amount, dust)) {
5876
5904
  throw new Error("Amount is below dust limit, cannot delegate");
5877
5905
  }
5878
5906
  outputs.push({
@@ -5889,7 +5917,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
5889
5917
  destinationScript
5890
5918
  );
5891
5919
  const forfeitOutputScript = btcSigner.OutScript.encode(
5892
- btcSigner.Address(chunkHXDZ2QTW_cjs.getNetwork(network)).decode(forfeitAddress)
5920
+ btcSigner.Address(chunkMQB5H4X5_cjs.getNetwork(network)).decode(forfeitAddress)
5893
5921
  );
5894
5922
  const forfeits = await Promise.all(
5895
5923
  vtxos.filter((v) => !isRecoverable(v)).map(async (coin) => {
@@ -5917,7 +5945,7 @@ async function makeDelegateForfeitTx(input, connectorAmount, delegatePubkey, for
5917
5945
  index: input.vout,
5918
5946
  witnessUtxo: {
5919
5947
  amount: BigInt(input.value),
5920
- script: chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).pkScript
5948
+ script: chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).pkScript
5921
5949
  },
5922
5950
  sighashType: btcSigner.SigHash.ALL_ANYONECANPAY,
5923
5951
  tapLeafScript: [delegateTapLeaf]
@@ -5975,7 +6003,7 @@ async function makeSignedDelegateIntent(identity, coins, outputs, onchainOutputs
5975
6003
  expire_at: 0,
5976
6004
  cosigners_public_keys: cosignerPubKeys
5977
6005
  };
5978
- const proof = chunkUHOHLN3C_cjs.Intent.create(message, coins, outputs);
6006
+ const proof = chunk7IYIFMF4_cjs.Intent.create(message, coins, outputs);
5979
6007
  const signedProof = await identity.sign(proof);
5980
6008
  return {
5981
6009
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -5993,10 +6021,10 @@ function getDayTimestamp(timestamp) {
5993
6021
  function findDelegateTapLeaf(vtxo, delegatePubkey) {
5994
6022
  if (!vtxo.tapTree) return void 0;
5995
6023
  const pk = delegatePubkey.length === 66 ? delegatePubkey.slice(2) : delegatePubkey;
5996
- const vtxoScript = chunkHXDZ2QTW_cjs.VtxoScript.decode(vtxo.tapTree);
6024
+ const vtxoScript = chunkMQB5H4X5_cjs.VtxoScript.decode(vtxo.tapTree);
5997
6025
  return vtxoScript.leaves.find((tapLeaf) => {
5998
- const arkTapscript = chunkHXDZ2QTW_cjs.decodeTapscript(chunkHXDZ2QTW_cjs.scriptFromTapLeafScript(tapLeaf));
5999
- if (!chunkHXDZ2QTW_cjs.MultisigTapscript.is(arkTapscript)) return false;
6026
+ const arkTapscript = chunkMQB5H4X5_cjs.decodeTapscript(chunkMQB5H4X5_cjs.scriptFromTapLeafScript(tapLeaf));
6027
+ if (!chunkMQB5H4X5_cjs.MultisigTapscript.is(arkTapscript)) return false;
6000
6028
  return arkTapscript.params.pubkeys.map(base.hex.encode).includes(pk);
6001
6029
  });
6002
6030
  }
@@ -6184,7 +6212,7 @@ async function closeDatabase(dbName) {
6184
6212
  return true;
6185
6213
  }
6186
6214
  function scriptFromArkAddress(address) {
6187
- return base.hex.encode(chunkHXDZ2QTW_cjs.ArkAddress.decode(address).pkScript);
6215
+ return base.hex.encode(chunkMQB5H4X5_cjs.ArkAddress.decode(address).pkScript);
6188
6216
  }
6189
6217
 
6190
6218
  // src/repositories/indexedDB/schema.ts
@@ -6469,6 +6497,7 @@ var IndexedDBVirtualTxRepository = class {
6469
6497
  constructor(dbName = DEFAULT_DB_NAME) {
6470
6498
  this.dbName = dbName;
6471
6499
  }
6500
+ dbName;
6472
6501
  version = 1;
6473
6502
  db = null;
6474
6503
  async getDB() {
@@ -6598,6 +6627,7 @@ var IndexedDBIntentRepository = class {
6598
6627
  constructor(dbName = DEFAULT_DB_NAME) {
6599
6628
  this.dbName = dbName;
6600
6629
  }
6630
+ dbName;
6601
6631
  version = 1;
6602
6632
  db = null;
6603
6633
  async getDB() {
@@ -6908,6 +6938,7 @@ var IndexedDBContractRepository = class {
6908
6938
  constructor(dbName = DEFAULT_DB_NAME) {
6909
6939
  this.dbName = dbName;
6910
6940
  }
6941
+ dbName;
6911
6942
  version = 1;
6912
6943
  db = null;
6913
6944
  async clear() {
@@ -7074,6 +7105,7 @@ var IndexedDBWalletRepository = class {
7074
7105
  constructor(dbName = DEFAULT_DB_NAME) {
7075
7106
  this.dbName = dbName;
7076
7107
  }
7108
+ dbName;
7077
7109
  version = 1;
7078
7110
  db = null;
7079
7111
  async clear() {
@@ -8059,7 +8091,7 @@ var ContractWatcher = class {
8059
8091
  this.connectionState = "connected";
8060
8092
  this.reconnectAttempts = 0;
8061
8093
  this.listenLoop().catch((e) => {
8062
- if (chunkUHOHLN3C_cjs.isEventSourceError(e)) {
8094
+ if (chunk7IYIFMF4_cjs.isEventSourceError(e)) {
8063
8095
  console.debug("ContractWatcher subscription disconnected; reconnecting");
8064
8096
  } else {
8065
8097
  console.error(e);
@@ -8585,7 +8617,7 @@ var ContractManager = class _ContractManager {
8585
8617
  * `persisted` is `true`.
8586
8618
  */
8587
8619
  async upsertContract(params) {
8588
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(params.type);
8620
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(params.type);
8589
8621
  if (!handler) {
8590
8622
  throw new Error(`No handler registered for contract type '${params.type}'`);
8591
8623
  }
@@ -8668,7 +8700,7 @@ var ContractManager = class _ContractManager {
8668
8700
  `scanContracts: batchSize must be a positive integer (got ${String(opts.batchSize)})`
8669
8701
  );
8670
8702
  }
8671
- const registered = chunk32YKLQPS_cjs.contractHandlers.getRegisteredTypes().map((t) => chunk32YKLQPS_cjs.contractHandlers.get(t)).filter(isDiscoverable);
8703
+ const registered = chunk4KXOCVXP_cjs.contractHandlers.getRegisteredTypes().map((t) => chunk4KXOCVXP_cjs.contractHandlers.get(t)).filter(isDiscoverable);
8672
8704
  const discoverables = [
8673
8705
  ...registered.filter((h) => h.type === "boarding"),
8674
8706
  ...registered.filter((h) => h.type !== "boarding")
@@ -8858,7 +8890,7 @@ var ContractManager = class _ContractManager {
8858
8890
  const { contractScript, collaborative = true, walletPubKey, vtxo } = options;
8859
8891
  const [contract] = await this.getContracts({ script: contractScript });
8860
8892
  if (!contract) return [];
8861
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
8893
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
8862
8894
  if (!handler) return [];
8863
8895
  const script = handler.createScript(contract.params);
8864
8896
  const context = {
@@ -8878,7 +8910,7 @@ var ContractManager = class _ContractManager {
8878
8910
  const { contractScript, collaborative = true, walletPubKey } = options;
8879
8911
  const [contract] = await this.getContracts({ script: contractScript });
8880
8912
  if (!contract) return [];
8881
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
8913
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
8882
8914
  if (!handler) return [];
8883
8915
  const script = handler.createScript(contract.params);
8884
8916
  const context = {
@@ -9145,7 +9177,7 @@ var ContractManager = class _ContractManager {
9145
9177
  }
9146
9178
  return result;
9147
9179
  }
9148
- async fetchContractVtxosBulk(contracts, pageSize = chunk32YKLQPS_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
9180
+ async fetchContractVtxosBulk(contracts, pageSize = chunk4KXOCVXP_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
9149
9181
  if (contracts.length === 0) {
9150
9182
  return /* @__PURE__ */ new Map();
9151
9183
  }
@@ -9219,6 +9251,8 @@ var HDDescriptorProvider = class _HDDescriptorProvider {
9219
9251
  this.identity = identity;
9220
9252
  this.walletRepository = walletRepository;
9221
9253
  }
9254
+ identity;
9255
+ walletRepository;
9222
9256
  /**
9223
9257
  * Construct an HDDescriptorProvider. No I/O is performed here;
9224
9258
  * persisted state is read lazily on the first call to
@@ -9321,7 +9355,7 @@ var HDDescriptorProvider = class _HDDescriptorProvider {
9321
9355
  */
9322
9356
  materializeDescriptorAt(index) {
9323
9357
  const descriptor = this.identity.descriptor;
9324
- const network = chunk32YKLQPS_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
9358
+ const network = chunk4KXOCVXP_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
9325
9359
  const expansion = descriptorsScure.expand({ descriptor, network, index });
9326
9360
  const keyInfo = expansion.expansionMap?.["@0"];
9327
9361
  if (!keyInfo?.keyExpression) {
@@ -9411,6 +9445,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
9411
9445
  this.currentTaggedScript = priorTaggedScript;
9412
9446
  this.logger = logger ?? console;
9413
9447
  }
9448
+ provider;
9414
9449
  unsubscribe;
9415
9450
  chain = Promise.resolve();
9416
9451
  /**
@@ -9464,7 +9499,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
9464
9499
  const provider = await resolveDescriptorProvider(config, setup.walletRepository);
9465
9500
  if (!provider) return void 0;
9466
9501
  const allowSilentFallback = (config.walletMode ?? "auto") === "auto";
9467
- const expectedContractType = setup.offchainTapscript instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script ? "delegate" : "default";
9502
+ const expectedContractType = setup.offchainTapscript instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script ? "delegate" : "default";
9468
9503
  const factoryOpts = {
9469
9504
  walletRepository: setup.walletRepository,
9470
9505
  contractRepository: setup.contractRepository,
@@ -9647,7 +9682,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
9647
9682
  const newAddress = newTapscript.address(wallet.network.hrp, wallet.arkServerPublicKey).encode();
9648
9683
  const manager = await wallet.getContractManager();
9649
9684
  const csvTimelock = newTapscript.options.csvTimelock;
9650
- const csvTimelockStr = chunkHXDZ2QTW_cjs.timelockToSequence(csvTimelock).toString();
9685
+ const csvTimelockStr = chunkMQB5H4X5_cjs.timelockToSequence(csvTimelock).toString();
9651
9686
  const serverPubKeyHex = base.hex.encode(newTapscript.options.serverPubKey);
9652
9687
  const baseParams = {
9653
9688
  script: newScript,
@@ -9661,11 +9696,11 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
9661
9696
  // produce unsigned PSBTs that the server rejects with
9662
9697
  // `INVALID_PSBT_INPUT (5): missing tapscript spend sig`.
9663
9698
  metadata: {
9664
- source: chunk32YKLQPS_cjs.WALLET_RECEIVE_SOURCE,
9699
+ source: chunk4KXOCVXP_cjs.WALLET_RECEIVE_SOURCE,
9665
9700
  signingDescriptor: descriptor
9666
9701
  }
9667
9702
  };
9668
- if (newTapscript instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script) {
9703
+ if (newTapscript instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script) {
9669
9704
  await manager.createContract({
9670
9705
  ...baseParams,
9671
9706
  type: "delegate",
@@ -9697,7 +9732,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
9697
9732
  };
9698
9733
  function deriveLeafPubkey(descriptor) {
9699
9734
  try {
9700
- return chunk32YKLQPS_cjs.deriveDescriptorLeafPubKey(descriptor);
9735
+ return chunk4KXOCVXP_cjs.deriveDescriptorLeafPubKey(descriptor);
9701
9736
  } catch (e) {
9702
9737
  throw new NonRangeableDescriptorError(
9703
9738
  "Cannot derive leaf pubkey: descriptor is not a materialized, parsable tr(...) shape.",
@@ -9706,10 +9741,10 @@ function deriveLeafPubkey(descriptor) {
9706
9741
  }
9707
9742
  }
9708
9743
  function rebuildTapscript(current, pubKey) {
9709
- if (current instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script) {
9710
- return new chunk32YKLQPS_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
9744
+ if (current instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script) {
9745
+ return new chunk4KXOCVXP_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
9711
9746
  }
9712
- return new chunk32YKLQPS_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
9747
+ return new chunk4KXOCVXP_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
9713
9748
  }
9714
9749
  async function pickActiveReceive(contractRepository, serverPubKey, expectedType) {
9715
9750
  const candidates = await contractRepository.getContracts({
@@ -9718,7 +9753,7 @@ async function pickActiveReceive(contractRepository, serverPubKey, expectedType)
9718
9753
  });
9719
9754
  const serverPubKeyHex = base.hex.encode(serverPubKey);
9720
9755
  const matching = candidates.filter(
9721
- (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunk32YKLQPS_cjs.WALLET_RECEIVE_SOURCE
9756
+ (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunk4KXOCVXP_cjs.WALLET_RECEIVE_SOURCE
9722
9757
  ).sort((a, b) => {
9723
9758
  if (b.createdAt !== a.createdAt) return b.createdAt - a.createdAt;
9724
9759
  return signingDescriptorIndex(b.metadata?.signingDescriptor) - signingDescriptorIndex(a.metadata?.signingDescriptor);
@@ -9764,6 +9799,8 @@ var MissingSigningDescriptorError = class extends Error {
9764
9799
  this.contractScript = contractScript;
9765
9800
  this.contractType = contractType;
9766
9801
  }
9802
+ contractScript;
9803
+ contractType;
9767
9804
  name = "MissingSigningDescriptorError";
9768
9805
  };
9769
9806
  var DescriptorSigningProviderMissingError = class extends Error {
@@ -9779,6 +9816,7 @@ var InputSignerRouter = class {
9779
9816
  constructor(deps) {
9780
9817
  this.deps = deps;
9781
9818
  }
9819
+ deps;
9782
9820
  /**
9783
9821
  * Resolve each job to its target signer without invoking signing. The
9784
9822
  * returned plan is the single source of truth for both {@link sign} and
@@ -9891,12 +9929,12 @@ var InputSignerRouter = class {
9891
9929
  };
9892
9930
 
9893
9931
  // src/wallet/wallet.ts
9894
- var getArkadeServerUrl = ({ arkServerUrl }) => arkServerUrl || chunkHXDZ2QTW_cjs.DEFAULT_ARKADE_SERVER_URL;
9932
+ var getArkadeServerUrl = ({ arkServerUrl }) => arkServerUrl || chunkMQB5H4X5_cjs.DEFAULT_ARKADE_SERVER_URL;
9895
9933
  function intentProofJobs(coins) {
9896
9934
  if (coins.length === 0) return [];
9897
9935
  const coinJobs = coins.map((coin, i) => ({
9898
9936
  index: i + 1,
9899
- lookupScript: chunkHXDZ2QTW_cjs.VtxoScript.decode(coin.tapTree).pkScript
9937
+ lookupScript: chunkMQB5H4X5_cjs.VtxoScript.decode(coin.tapTree).pkScript
9900
9938
  }));
9901
9939
  return [{ index: 0, lookupScript: coinJobs[0].lookupScript }, ...coinJobs];
9902
9940
  }
@@ -9920,7 +9958,7 @@ function dedupeTimelocks(timelocks) {
9920
9958
  const seen = /* @__PURE__ */ new Set();
9921
9959
  const deduped = [];
9922
9960
  for (const timelock of timelocks) {
9923
- const sequence = chunkHXDZ2QTW_cjs.timelockToSequence(timelock).toString();
9961
+ const sequence = chunkMQB5H4X5_cjs.timelockToSequence(timelock).toString();
9924
9962
  if (seen.has(sequence)) continue;
9925
9963
  seen.add(sequence);
9926
9964
  deduped.push(timelock);
@@ -9937,7 +9975,7 @@ async function resolveBoardingBootTapscript(contractRepository, serverPubKey, ba
9937
9975
  state: "active"
9938
9976
  });
9939
9977
  const newest = candidates.filter(
9940
- (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunk32YKLQPS_cjs.WALLET_RECEIVE_SOURCE
9978
+ (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunk4KXOCVXP_cjs.WALLET_RECEIVE_SOURCE
9941
9979
  ).sort((a, b) => {
9942
9980
  if (b.createdAt !== a.createdAt) return b.createdAt - a.createdAt;
9943
9981
  return signingDescriptorIndex(b.metadata?.signingDescriptor) - signingDescriptorIndex(a.metadata?.signingDescriptor);
@@ -9945,7 +9983,7 @@ async function resolveBoardingBootTapscript(contractRepository, serverPubKey, ba
9945
9983
  if (!newest?.params.pubKey) return baseline;
9946
9984
  try {
9947
9985
  const pubKey = base.hex.decode(newest.params.pubKey);
9948
- return new chunk32YKLQPS_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
9986
+ return new chunk4KXOCVXP_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
9949
9987
  } catch (e) {
9950
9988
  console.warn("Skipping malformed boarding contract at boot", newest.script, e);
9951
9989
  return baseline;
@@ -9997,6 +10035,14 @@ var ReadonlyWallet = class _ReadonlyWallet {
9997
10035
  this._assetManager = new ReadonlyAssetManager(this.indexerProvider);
9998
10036
  this.walletContractTimelocks = walletContractTimelocks && walletContractTimelocks.length > 0 ? dedupeTimelocks(walletContractTimelocks) : [this.offchainTapscript.options.csvTimelock];
9999
10037
  }
10038
+ identity;
10039
+ network;
10040
+ onchainProvider;
10041
+ indexerProvider;
10042
+ dustAmount;
10043
+ walletRepository;
10044
+ contractRepository;
10045
+ delegateProvider;
10000
10046
  _contractManager;
10001
10047
  _contractManagerInitializing;
10002
10048
  watcherConfig;
@@ -10239,7 +10285,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10239
10285
  */
10240
10286
  static async setupWalletConfig(config, pubKey) {
10241
10287
  const arkadeServerUrl = getArkadeServerUrl(config);
10242
- const arkProvider = config.arkProvider || new chunkUHOHLN3C_cjs.RestArkProvider(arkadeServerUrl);
10288
+ const arkProvider = config.arkProvider || new chunk7IYIFMF4_cjs.RestArkProvider(arkadeServerUrl);
10243
10289
  let indexerProvider = config.indexerProvider;
10244
10290
  if (!indexerProvider) {
10245
10291
  let indexerUrl = config.indexerUrl;
@@ -10256,7 +10302,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10256
10302
  indexerUrl = arkadeServerUrl;
10257
10303
  }
10258
10304
  }
10259
- indexerProvider = new chunkUHOHLN3C_cjs.RestIndexerProvider(indexerUrl);
10305
+ indexerProvider = new chunk7IYIFMF4_cjs.RestIndexerProvider(indexerUrl);
10260
10306
  }
10261
10307
  const walletRepository = config.storage?.walletRepository ?? new IndexedDBWalletRepository();
10262
10308
  const contractRepository = config.storage?.contractRepository ?? new IndexedDBContractRepository();
@@ -10265,7 +10311,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10265
10311
  source: serverInfoSource,
10266
10312
  lastOnlineAt: serverInfoLastOnlineAt
10267
10313
  } = await resolveArkInfo(arkProvider, walletRepository);
10268
- const network = chunkHXDZ2QTW_cjs.getNetwork(info.network);
10314
+ const network = chunkMQB5H4X5_cjs.getNetwork(info.network);
10269
10315
  if ("descriptor" in config.identity) {
10270
10316
  const descriptor = config.identity.descriptor;
10271
10317
  const identityIsMainnet = !descriptor.includes("tpub");
@@ -10312,11 +10358,11 @@ var ReadonlyWallet = class _ReadonlyWallet {
10312
10358
  serverPubKey,
10313
10359
  csvTimelock: exitTimelock
10314
10360
  };
10315
- const offchainTapscript = !delegatePubKey ? new chunk32YKLQPS_cjs.DefaultVtxo.Script(offchainOptions) : new chunk32YKLQPS_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
10316
- const boardingTapscript = chunk32YKLQPS_cjs.BoardingContractHandler.createScript({
10361
+ const offchainTapscript = !delegatePubKey ? new chunk4KXOCVXP_cjs.DefaultVtxo.Script(offchainOptions) : new chunk4KXOCVXP_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
10362
+ const boardingTapscript = chunk4KXOCVXP_cjs.BoardingContractHandler.createScript({
10317
10363
  pubKey: base.hex.encode(pubKey),
10318
10364
  serverPubKey: base.hex.encode(serverPubKey),
10319
- csvTimelock: chunkHXDZ2QTW_cjs.timelockToSequence(boardingTimelock).toString()
10365
+ csvTimelock: chunkMQB5H4X5_cjs.timelockToSequence(boardingTimelock).toString()
10320
10366
  });
10321
10367
  return {
10322
10368
  arkProvider,
@@ -10650,9 +10696,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
10650
10696
  async getBoardingTapscripts(allowedSigners) {
10651
10697
  const byScript = /* @__PURE__ */ new Map();
10652
10698
  const add = (s) => byScript.set(base.hex.encode(s.pkScript), s);
10653
- const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunk32YKLQPS_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
10699
+ const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunk4KXOCVXP_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
10654
10700
  add(
10655
- new chunk32YKLQPS_cjs.DefaultVtxo.Script({
10701
+ new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
10656
10702
  pubKey: await this.identity.xOnlyPublicKey(),
10657
10703
  serverPubKey: this.boardingTapscript.options.serverPubKey,
10658
10704
  csvTimelock: boardingCsv
@@ -10667,7 +10713,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10667
10713
  for (const c of boardingContracts) {
10668
10714
  if (!allowed.has(toXOnlySignerHex(c.params.serverPubKey))) continue;
10669
10715
  try {
10670
- add(chunk32YKLQPS_cjs.BoardingContractHandler.createScript(c.params));
10716
+ add(chunk4KXOCVXP_cjs.BoardingContractHandler.createScript(c.params));
10671
10717
  } catch (e) {
10672
10718
  console.warn("Skipping malformed boarding contract", c.script, e);
10673
10719
  }
@@ -10705,7 +10751,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10705
10751
  // Per-row CSV delay decoded from THIS tapscript's exit leaf —
10706
10752
  // not the wallet's current boarding timelock, which a signer
10707
10753
  // rotation may have changed.
10708
- csvTimelock: chunkHXDZ2QTW_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
10754
+ csvTimelock: chunkMQB5H4X5_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
10709
10755
  coins: utxos
10710
10756
  });
10711
10757
  }
@@ -10871,7 +10917,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10871
10917
  });
10872
10918
  for (const contract of contracts) {
10873
10919
  if (map.has(contract.script)) continue;
10874
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
10920
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
10875
10921
  if (handler) {
10876
10922
  const script = handler.createScript(contract.params);
10877
10923
  map.set(contract.script, script);
@@ -10965,7 +11011,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10965
11011
  watcherConfig: this.watcherConfig
10966
11012
  });
10967
11013
  const baselinePubkey = await this.identity.xOnlyPublicKey();
10968
- const delegatePubKey = this.offchainTapscript instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
11014
+ const delegatePubKey = this.offchainTapscript instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
10969
11015
  const baselineSigners = [
10970
11016
  this.offchainTapscript.options.serverPubKey,
10971
11017
  ...[...this._deprecatedSigners.keys()].map((h) => base.hex.decode(h))
@@ -10973,8 +11019,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
10973
11019
  const seenBaselineScripts = /* @__PURE__ */ new Set();
10974
11020
  for (const serverPubKey of baselineSigners) {
10975
11021
  for (const csvTimelock of this.walletContractTimelocks) {
10976
- const csvTimelockStr = chunkHXDZ2QTW_cjs.timelockToSequence(csvTimelock).toString();
10977
- const defaultScript = new chunk32YKLQPS_cjs.DefaultVtxo.Script({
11022
+ const csvTimelockStr = chunkMQB5H4X5_cjs.timelockToSequence(csvTimelock).toString();
11023
+ const defaultScript = new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
10978
11024
  pubKey: baselinePubkey,
10979
11025
  serverPubKey,
10980
11026
  csvTimelock
@@ -10995,7 +11041,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
10995
11041
  });
10996
11042
  }
10997
11043
  if (delegatePubKey) {
10998
- const delegateScript = new chunk32YKLQPS_cjs.DelegateVtxo.Script({
11044
+ const delegateScript = new chunk4KXOCVXP_cjs.DelegateVtxo.Script({
10999
11045
  pubKey: baselinePubkey,
11000
11046
  serverPubKey,
11001
11047
  delegatePubKey,
@@ -11019,9 +11065,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
11019
11065
  }
11020
11066
  }
11021
11067
  }
11022
- const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunk32YKLQPS_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11068
+ const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunk4KXOCVXP_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11023
11069
  for (const serverPubKey of baselineSigners) {
11024
- const baselineBoarding = new chunk32YKLQPS_cjs.DefaultVtxo.Script({
11070
+ const baselineBoarding = new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
11025
11071
  pubKey: baselinePubkey,
11026
11072
  serverPubKey,
11027
11073
  csvTimelock: boardingCsvTimelock
@@ -11034,7 +11080,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
11034
11080
  params: {
11035
11081
  pubKey: base.hex.encode(baselineBoarding.options.pubKey),
11036
11082
  serverPubKey: base.hex.encode(serverPubKey),
11037
- csvTimelock: chunkHXDZ2QTW_cjs.timelockToSequence(boardingCsvTimelock).toString()
11083
+ csvTimelock: chunkMQB5H4X5_cjs.timelockToSequence(boardingCsvTimelock).toString()
11038
11084
  },
11039
11085
  script: boardingScriptHex,
11040
11086
  address: baselineBoarding.address(this.network.hrp, serverPubKey).encode(),
@@ -11103,6 +11149,9 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11103
11149
  boardingPkScript: boardingTapscript.pkScript
11104
11150
  });
11105
11151
  }
11152
+ arkProvider;
11153
+ forfeitOutputScript;
11154
+ forfeitPubkey;
11106
11155
  static MIN_FEE_RATE = 1;
11107
11156
  // sats/vbyte
11108
11157
  identity;
@@ -11254,25 +11303,25 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11254
11303
  return this.getBoardingAddress();
11255
11304
  }
11256
11305
  const descriptor = await provider.getNextSigningDescriptor();
11257
- const pubKey = chunk32YKLQPS_cjs.deriveDescriptorLeafPubKey(descriptor);
11258
- const newBoarding = new chunk32YKLQPS_cjs.DefaultVtxo.Script({
11306
+ const pubKey = chunk4KXOCVXP_cjs.deriveDescriptorLeafPubKey(descriptor);
11307
+ const newBoarding = new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
11259
11308
  ...this._boardingTapscript.options,
11260
11309
  pubKey
11261
11310
  });
11262
- const csvTimelock = newBoarding.options.csvTimelock ?? chunk32YKLQPS_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11311
+ const csvTimelock = newBoarding.options.csvTimelock ?? chunk4KXOCVXP_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11263
11312
  const manager = await this.getContractManager();
11264
11313
  await manager.createContract({
11265
11314
  type: "boarding",
11266
11315
  params: {
11267
11316
  pubKey: base.hex.encode(pubKey),
11268
11317
  serverPubKey: base.hex.encode(newBoarding.options.serverPubKey),
11269
- csvTimelock: chunkHXDZ2QTW_cjs.timelockToSequence(csvTimelock).toString()
11318
+ csvTimelock: chunkMQB5H4X5_cjs.timelockToSequence(csvTimelock).toString()
11270
11319
  },
11271
11320
  script: base.hex.encode(newBoarding.pkScript),
11272
11321
  address: newBoarding.address(this.network.hrp, this.arkServerPublicKey).encode(),
11273
11322
  state: "active",
11274
11323
  metadata: {
11275
- source: chunk32YKLQPS_cjs.WALLET_RECEIVE_SOURCE,
11324
+ source: chunk4KXOCVXP_cjs.WALLET_RECEIVE_SOURCE,
11276
11325
  signingDescriptor: descriptor
11277
11326
  }
11278
11327
  });
@@ -11311,7 +11360,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11311
11360
  const xonly = toXOnlyPubKey(newServerPubKey);
11312
11361
  let newServerUnrollScript;
11313
11362
  try {
11314
- newServerUnrollScript = chunkHXDZ2QTW_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
11363
+ newServerUnrollScript = chunkMQB5H4X5_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
11315
11364
  } catch (e) {
11316
11365
  throw new Error("Invalid checkpointTapscript from server");
11317
11366
  }
@@ -11339,21 +11388,21 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11339
11388
  const [currentBoardingRow] = await manager.getContracts({
11340
11389
  script: currentBoardingScript
11341
11390
  });
11342
- const newOffchain = this.offchainTapscript instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script ? new chunk32YKLQPS_cjs.DelegateVtxo.Script({
11391
+ const newOffchain = this.offchainTapscript instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script ? new chunk4KXOCVXP_cjs.DelegateVtxo.Script({
11343
11392
  ...this.offchainTapscript.options,
11344
11393
  serverPubKey: xonly
11345
- }) : new chunk32YKLQPS_cjs.DefaultVtxo.Script({
11394
+ }) : new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
11346
11395
  ...this.offchainTapscript.options,
11347
11396
  serverPubKey: xonly
11348
11397
  });
11349
- const newBoarding = new chunk32YKLQPS_cjs.DefaultVtxo.Script({
11398
+ const newBoarding = new chunk4KXOCVXP_cjs.DefaultVtxo.Script({
11350
11399
  ...this._boardingTapscript.options,
11351
11400
  serverPubKey: xonly
11352
11401
  });
11353
- const offchainCsv = chunkHXDZ2QTW_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
11402
+ const offchainCsv = chunkMQB5H4X5_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
11354
11403
  const newOffchainScript = base.hex.encode(newOffchain.pkScript);
11355
11404
  const newOffchainAddress = newOffchain.address(this.network.hrp, xonly).encode();
11356
- if (newOffchain instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script) {
11405
+ if (newOffchain instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script) {
11357
11406
  await manager.createContract({
11358
11407
  type: "delegate",
11359
11408
  params: {
@@ -11381,13 +11430,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11381
11430
  metadata: currentOffchainRow?.metadata
11382
11431
  });
11383
11432
  }
11384
- const boardingCsv = newBoarding.options.csvTimelock ?? chunk32YKLQPS_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11433
+ const boardingCsv = newBoarding.options.csvTimelock ?? chunk4KXOCVXP_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
11385
11434
  await manager.createContract({
11386
11435
  type: "boarding",
11387
11436
  params: {
11388
11437
  pubKey: base.hex.encode(newBoarding.options.pubKey),
11389
11438
  serverPubKey: base.hex.encode(xonly),
11390
- csvTimelock: chunkHXDZ2QTW_cjs.timelockToSequence(boardingCsv).toString()
11439
+ csvTimelock: chunkMQB5H4X5_cjs.timelockToSequence(boardingCsv).toString()
11391
11440
  },
11392
11441
  script: base.hex.encode(newBoarding.pkScript),
11393
11442
  address: newBoarding.address(this.network.hrp, xonly).encode(),
@@ -11482,7 +11531,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11482
11531
  const hd = provider instanceof HDDescriptorProvider;
11483
11532
  const staticDescriptor = hd ? void 0 : `tr(${base.hex.encode(await this.identity.xOnlyPublicKey())})`;
11484
11533
  const materialize = (index) => hd ? provider.materializeDescriptorAt(index) : staticDescriptor;
11485
- const delegatePubKey = this.offchainTapscript instanceof chunk32YKLQPS_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
11534
+ const delegatePubKey = this.offchainTapscript instanceof chunk4KXOCVXP_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
11486
11535
  const arkInfo = await this.arkProvider.getInfo();
11487
11536
  const currentSignerPubKey = toXOnlyPubKey(base.hex.decode(arkInfo.signerPubkey));
11488
11537
  const deprecatedSignerPubKeys = arkInfo.deprecatedSigners.map(
@@ -11501,7 +11550,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11501
11550
  csvTimelocks: this.walletContractTimelocks,
11502
11551
  // Boarding-exit CSV so the boarding handler can build its
11503
11552
  // candidate script (distinct from the unilateral-exit matrix).
11504
- boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunk32YKLQPS_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
11553
+ boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunk4KXOCVXP_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
11505
11554
  delegatePubKey
11506
11555
  };
11507
11556
  const result = await manager.scanContracts({
@@ -11605,7 +11654,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11605
11654
  let serverUnrollScript;
11606
11655
  try {
11607
11656
  const raw = base.hex.decode(setup.info.checkpointTapscript);
11608
- serverUnrollScript = chunkHXDZ2QTW_cjs.CSVMultisigTapscript.decode(raw);
11657
+ serverUnrollScript = chunkMQB5H4X5_cjs.CSVMultisigTapscript.decode(raw);
11609
11658
  } catch (e) {
11610
11659
  throw new Error("Invalid checkpointTapscript from server");
11611
11660
  }
@@ -11742,7 +11791,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11742
11791
  inputs: params.selectedVtxos,
11743
11792
  changeAmount: BigInt(changeAmount)
11744
11793
  };
11745
- const outputAddress = chunkHXDZ2QTW_cjs.ArkAddress.decode(params.address);
11794
+ const outputAddress = chunkMQB5H4X5_cjs.ArkAddress.decode(params.address);
11746
11795
  const outputScript = BigInt(params.amount) < this.dustAmount ? outputAddress.subdustPkScript : outputAddress.pkScript;
11747
11796
  const outputs = [
11748
11797
  {
@@ -11795,13 +11844,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11795
11844
  }
11796
11845
  }
11797
11846
  const offchainAddress = await this.getAddress();
11798
- const offchainPkScript = chunkHXDZ2QTW_cjs.ArkAddress.decode(offchainAddress).pkScript;
11847
+ const offchainPkScript = chunkMQB5H4X5_cjs.ArkAddress.decode(offchainAddress).pkScript;
11799
11848
  const offchainOutputScript = base.hex.encode(offchainPkScript);
11800
11849
  if (!params) {
11801
11850
  const { fees, vtxoMaxAmount } = await this.arkProvider.getInfo();
11802
11851
  const estimator = new Estimator(fees.intentFee);
11803
11852
  let amount = 0;
11804
- const exitScript = chunkHXDZ2QTW_cjs.CSVMultisigTapscript.decode(
11853
+ const exitScript = chunkMQB5H4X5_cjs.CSVMultisigTapscript.decode(
11805
11854
  base.hex.decode(this.boardingTapscript.exitScript)
11806
11855
  );
11807
11856
  const boardingTimelock = exitScript.params.timelock;
@@ -11867,7 +11916,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11867
11916
  script: offchainOutputScript
11868
11917
  });
11869
11918
  output.amount -= BigInt(outputFee.satoshis);
11870
- if (output.amount <= this.dustAmount) {
11919
+ if (isSubdust(output.amount, this.dustAmount)) {
11871
11920
  throw new Error("Output amount is below dust limit");
11872
11921
  }
11873
11922
  params = {
@@ -11881,7 +11930,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
11881
11930
  for (const [index, output] of params.outputs.entries()) {
11882
11931
  let script;
11883
11932
  try {
11884
- const addr = chunkHXDZ2QTW_cjs.ArkAddress.decode(output.address);
11933
+ const addr = chunkMQB5H4X5_cjs.ArkAddress.decode(output.address);
11885
11934
  script = addr.pkScript;
11886
11935
  hasOffchainOutputs = true;
11887
11936
  } catch {
@@ -12115,7 +12164,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12115
12164
  }
12116
12165
  continue;
12117
12166
  }
12118
- if (isRecoverable(input) || isSubdust(input, this.dustAmount)) {
12167
+ if (isRecoverable(input) || isSubdust({ value: input.value }, this.dustAmount)) {
12119
12168
  continue;
12120
12169
  }
12121
12170
  if (connectorsLeaves.length === 0) {
@@ -12143,7 +12192,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12143
12192
  index: input.vout,
12144
12193
  witnessUtxo: {
12145
12194
  amount: BigInt(input.value),
12146
- script: chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).pkScript
12195
+ script: chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).pkScript
12147
12196
  },
12148
12197
  sighashType: btcSigner.SigHash.DEFAULT,
12149
12198
  tapLeafScript: [input.forfeitTapLeafScript]
@@ -12162,7 +12211,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12162
12211
  forfeitTx = await this._signerRouter.sign(forfeitTx, [
12163
12212
  {
12164
12213
  index: 0,
12165
- lookupScript: chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).pkScript
12214
+ lookupScript: chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).pkScript
12166
12215
  }
12167
12216
  ]);
12168
12217
  signedForfeits.push(base.base64.encode(forfeitTx.toPSBT()));
@@ -12220,7 +12269,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12220
12269
  if (skip) {
12221
12270
  return { skip };
12222
12271
  }
12223
- const sweepTapscript = chunkHXDZ2QTW_cjs.CSVMultisigTapscript.encode({
12272
+ const sweepTapscript = chunkMQB5H4X5_cjs.CSVMultisigTapscript.encode({
12224
12273
  timelock: {
12225
12274
  value: event.batchExpiry,
12226
12275
  type: event.batchExpiry >= 512n ? "seconds" : "blocks"
@@ -12326,9 +12375,9 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12326
12375
  ...existing ?? {},
12327
12376
  intentTxId,
12328
12377
  registerProof: intent.proof,
12329
- registerProofMessage: chunkUHOHLN3C_cjs.Intent.encodeMessage(intent.message),
12378
+ registerProofMessage: chunk7IYIFMF4_cjs.Intent.encodeMessage(intent.message),
12330
12379
  deleteProof: deleteIntent.proof,
12331
- deleteProofMessage: chunkUHOHLN3C_cjs.Intent.encodeMessage(deleteIntent.message),
12380
+ deleteProofMessage: chunk7IYIFMF4_cjs.Intent.encodeMessage(deleteIntent.message),
12332
12381
  intentVtxos: inputs.map((i) => ({
12333
12382
  txid: i.txid,
12334
12383
  vout: i.vout
@@ -12360,7 +12409,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12360
12409
  try {
12361
12410
  return await this.arkProvider.registerIntent(intent);
12362
12411
  } catch (error) {
12363
- if (error instanceof chunkUHOHLN3C_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
12412
+ if (error instanceof chunk7IYIFMF4_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
12364
12413
  const deleteIntent = await this.makeDeleteIntentSignature(inputs);
12365
12414
  await this.arkProvider.deleteIntent(deleteIntent);
12366
12415
  return this.arkProvider.registerIntent(intent);
@@ -12376,7 +12425,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12376
12425
  expire_at: 0,
12377
12426
  cosigners_public_keys: cosignerPubKeys
12378
12427
  };
12379
- const proof = chunkUHOHLN3C_cjs.Intent.create(message, coins, outputs);
12428
+ const proof = chunk7IYIFMF4_cjs.Intent.create(message, coins, outputs);
12380
12429
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
12381
12430
  return {
12382
12431
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -12388,7 +12437,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12388
12437
  type: "delete",
12389
12438
  expire_at: 0
12390
12439
  };
12391
- const proof = chunkUHOHLN3C_cjs.Intent.create(message, coins, []);
12440
+ const proof = chunk7IYIFMF4_cjs.Intent.create(message, coins, []);
12392
12441
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
12393
12442
  return {
12394
12443
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -12400,7 +12449,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12400
12449
  type: "get-pending-tx",
12401
12450
  expire_at: 0
12402
12451
  };
12403
- const proof = chunkUHOHLN3C_cjs.Intent.create(message, coins, []);
12452
+ const proof = chunk7IYIFMF4_cjs.Intent.create(message, coins, []);
12404
12453
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
12405
12454
  return {
12406
12455
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -12816,7 +12865,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
12816
12865
  );
12817
12866
  const arkTxJobs = inputs.map((input, index) => ({
12818
12867
  index,
12819
- lookupScript: chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).pkScript
12868
+ lookupScript: chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).pkScript
12820
12869
  }));
12821
12870
  const checkpointJobs = offchainTx.checkpoints.map(
12822
12871
  (c) => this.inputSigningJobsFromWitnessUtxos(c)
@@ -13049,7 +13098,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13049
13098
  } else {
13050
13099
  let sourceAddress;
13051
13100
  try {
13052
- sourceAddress = chunkHXDZ2QTW_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
13101
+ sourceAddress = chunkMQB5H4X5_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
13053
13102
  this.network
13054
13103
  );
13055
13104
  } catch {
@@ -13194,6 +13243,8 @@ var MessageBus = class {
13194
13243
  this.debug = debug;
13195
13244
  this.buildServicesFn = buildServices ?? this.buildServices.bind(this);
13196
13245
  }
13246
+ walletRepository;
13247
+ contractRepository;
13197
13248
  handlers;
13198
13249
  tickIntervalMs;
13199
13250
  messageTimeoutMs;
@@ -13358,7 +13409,7 @@ var MessageBus = class {
13358
13409
  this.initialized = true;
13359
13410
  }
13360
13411
  async buildServices(config) {
13361
- const arkProvider = new chunkUHOHLN3C_cjs.RestArkProvider(config.arkServer.url);
13412
+ const arkProvider = new chunk7IYIFMF4_cjs.RestArkProvider(config.arkServer.url);
13362
13413
  const storage = {
13363
13414
  walletRepository: this.walletRepository,
13364
13415
  contractRepository: this.contractRepository
@@ -13695,6 +13746,7 @@ var Ramps = class {
13695
13746
  constructor(wallet) {
13696
13747
  this.wallet = wallet;
13697
13748
  }
13749
+ wallet;
13698
13750
  /**
13699
13751
  * Onboard boarding inputs.
13700
13752
  *
@@ -13740,7 +13792,7 @@ var Ramps = class {
13740
13792
  }
13741
13793
  amount = amount ?? totalAmount;
13742
13794
  const offchainAddress = await this.wallet.getAddress();
13743
- const offchainAddr = chunkHXDZ2QTW_cjs.ArkAddress.decode(offchainAddress);
13795
+ const offchainAddr = chunkMQB5H4X5_cjs.ArkAddress.decode(offchainAddress);
13744
13796
  const offchainScript = base.hex.encode(offchainAddr.pkScript);
13745
13797
  const outputFee = estimator.evalOffchainOutput({
13746
13798
  amount,
@@ -13838,7 +13890,7 @@ var Ramps = class {
13838
13890
  let destinationScript;
13839
13891
  for (const networkName of networkNames) {
13840
13892
  try {
13841
- const network = chunkHXDZ2QTW_cjs.networks[networkName];
13893
+ const network = chunkMQB5H4X5_cjs.networks[networkName];
13842
13894
  const addr = btcSigner.Address(network).decode(destinationAddress);
13843
13895
  destinationScript = btcSigner.OutScript.encode(addr);
13844
13896
  break;
@@ -14523,7 +14575,7 @@ var WalletMessageHandler = class {
14523
14575
  // Wallet methods
14524
14576
  async handleInitWallet({ payload }) {
14525
14577
  const { arkServerUrl } = payload;
14526
- this.indexerProvider = new chunkUHOHLN3C_cjs.RestIndexerProvider(arkServerUrl);
14578
+ this.indexerProvider = new chunk7IYIFMF4_cjs.RestIndexerProvider(arkServerUrl);
14527
14579
  await this.onWalletInitialized();
14528
14580
  }
14529
14581
  async handleGetBalance() {
@@ -15041,6 +15093,8 @@ var ServiceWorkerReadonlyAssetManager = class {
15041
15093
  this.sendMessage = sendMessage;
15042
15094
  this.messageTag = messageTag;
15043
15095
  }
15096
+ sendMessage;
15097
+ messageTag;
15044
15098
  async getAssetDetails(assetId) {
15045
15099
  const message = {
15046
15100
  tag: this.messageTag,
@@ -15125,6 +15179,8 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
15125
15179
  messageTag
15126
15180
  );
15127
15181
  }
15182
+ serviceWorker;
15183
+ messageTag;
15128
15184
  walletRepository;
15129
15185
  contractRepository;
15130
15186
  identity;
@@ -15877,6 +15933,7 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
15877
15933
  );
15878
15934
  this.hasDelegate = hasDelegate;
15879
15935
  }
15936
+ serviceWorker;
15880
15937
  walletRepository;
15881
15938
  contractRepository;
15882
15939
  identity;
@@ -16258,6 +16315,7 @@ var OnchainWallet = class _OnchainWallet {
16258
16315
  this.onchainP2TR = onchainP2TR;
16259
16316
  this.provider = provider;
16260
16317
  }
16318
+ identity;
16261
16319
  static MIN_FEE_RATE = 1;
16262
16320
  // sat/vbyte
16263
16321
  onchainP2TR;
@@ -16272,12 +16330,12 @@ var OnchainWallet = class _OnchainWallet {
16272
16330
  * @returns Configured onchain wallet
16273
16331
  * @throws Error if the configured identity cannot produce a valid x-only public key
16274
16332
  */
16275
- static async create(identity, networkName = chunkHXDZ2QTW_cjs.DEFAULT_NETWORK_NAME, provider) {
16333
+ static async create(identity, networkName = chunkMQB5H4X5_cjs.DEFAULT_NETWORK_NAME, provider) {
16276
16334
  const pubkey = await identity.xOnlyPublicKey();
16277
16335
  if (!pubkey) {
16278
16336
  throw new Error("Invalid configured public key");
16279
16337
  }
16280
- const network = chunkHXDZ2QTW_cjs.getNetwork(networkName);
16338
+ const network = chunkMQB5H4X5_cjs.getNetwork(networkName);
16281
16339
  const onchainProvider = provider || new EsploraProvider(ESPLORA_URL[networkName]);
16282
16340
  const onchainP2TR = btcSigner.p2tr(pubkey, void 0, network);
16283
16341
  return new _OnchainWallet(identity, network, onchainP2TR, onchainProvider);
@@ -16383,7 +16441,7 @@ var OnchainWallet = class _OnchainWallet {
16383
16441
  if (!inputs) {
16384
16442
  throw new Error("Fee estimation failed");
16385
16443
  }
16386
- let tx = new chunkUHOHLN3C_cjs.Transaction();
16444
+ let tx = new chunk7IYIFMF4_cjs.Transaction();
16387
16445
  for (const input of inputs) {
16388
16446
  tx.addInput({
16389
16447
  txid: input.txid,
@@ -16441,7 +16499,7 @@ var OnchainWallet = class _OnchainWallet {
16441
16499
  * @throws If the parent has no anchor, or funding cannot be selected/signed
16442
16500
  */
16443
16501
  async bumpAnchor(parentHex, feeRate) {
16444
- const parent = chunkUHOHLN3C_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
16502
+ const parent = chunk7IYIFMF4_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
16445
16503
  const coins = (await this.getCoins()).filter((c) => c.status.confirmed);
16446
16504
  const child = await this.buildBumpPackage(parent, feeRate, coins);
16447
16505
  return [parent.hex, child.hex];
@@ -16559,6 +16617,8 @@ var WsElectrumChainSource = class {
16559
16617
  this.ws = ws;
16560
16618
  this.network = network;
16561
16619
  }
16620
+ ws;
16621
+ network;
16562
16622
  // Cached chain tip kept fresh by the headers subscription. Initialized
16563
16623
  // lazily on first call to subscribeHeaders().
16564
16624
  cachedTip = null;
@@ -16841,6 +16901,8 @@ var ElectrumOnchainProvider = class {
16841
16901
  this.network = network;
16842
16902
  this.chain = new WsElectrumChainSource(ws, network);
16843
16903
  }
16904
+ ws;
16905
+ network;
16844
16906
  chain;
16845
16907
  async getCoins(address) {
16846
16908
  const script = this.encodeAddress(address);
@@ -17202,7 +17264,7 @@ exports.BIP322 = void 0;
17202
17264
  async function sign2(message, identity, network) {
17203
17265
  const xOnlyPubKey = await identity.xOnlyPublicKey();
17204
17266
  const payment = btcSigner.p2tr(xOnlyPubKey, void 0, network);
17205
- const toSpend = chunkUHOHLN3C_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
17267
+ const toSpend = chunk7IYIFMF4_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
17206
17268
  const toSign = craftBIP322ToSignP2TR(toSpend, payment.script, xOnlyPubKey);
17207
17269
  const signed = await identity.sign(toSign, [0]);
17208
17270
  signed.finalizeIdx(0);
@@ -17260,7 +17322,7 @@ function verifyP2TR(message, witnessItems, pkScript, pubkey) {
17260
17322
  if (sighashType !== btcSigner.SigHash.DEFAULT && sighashType !== btcSigner.SigHash.ALL) {
17261
17323
  return false;
17262
17324
  }
17263
- const toSpend = chunkUHOHLN3C_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
17325
+ const toSpend = chunk7IYIFMF4_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
17264
17326
  const toSign = craftBIP322ToSignP2TR(toSpend, pkScript, pubkey);
17265
17327
  const sighash = toSign.preimageWitnessV1(0, [pkScript], sighashType, [0n]);
17266
17328
  const rawSig = sig.length === 65 ? sig.subarray(0, 64) : sig;
@@ -17281,7 +17343,7 @@ function verifyP2WPKH(message, witnessItems, pkScript, addressHash) {
17281
17343
  }
17282
17344
  const sighashType = sigWithHash[sigWithHash.length - 1];
17283
17345
  const derSig = sigWithHash.subarray(0, sigWithHash.length - 1);
17284
- const toSpend = chunkUHOHLN3C_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
17346
+ const toSpend = chunk7IYIFMF4_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
17285
17347
  const toSign = craftBIP322ToSignSimple(toSpend, pkScript);
17286
17348
  const scriptCode = btcSigner.OutScript.encode({ type: "pkh", hash: addressHash });
17287
17349
  const sighash = toSign.preimageWitnessV0(0, scriptCode, sighashType, 0n);
@@ -17334,7 +17396,7 @@ function encodeCompactSize(n) {
17334
17396
  return buf;
17335
17397
  }
17336
17398
  function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
17337
- const tx = new chunkUHOHLN3C_cjs.Transaction({ version: 0 });
17399
+ const tx = new chunk7IYIFMF4_cjs.Transaction({ version: 0 });
17338
17400
  tx.addInput({
17339
17401
  txid: toSpend.id,
17340
17402
  index: 0,
@@ -17348,12 +17410,12 @@ function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
17348
17410
  });
17349
17411
  tx.addOutput({
17350
17412
  amount: 0n,
17351
- script: chunkUHOHLN3C_cjs.OP_RETURN_EMPTY_PKSCRIPT
17413
+ script: chunk7IYIFMF4_cjs.OP_RETURN_EMPTY_PKSCRIPT
17352
17414
  });
17353
17415
  return tx;
17354
17416
  }
17355
17417
  function craftBIP322ToSignSimple(toSpend, pkScript) {
17356
- const tx = new chunkUHOHLN3C_cjs.Transaction({ version: 0 });
17418
+ const tx = new chunk7IYIFMF4_cjs.Transaction({ version: 0 });
17357
17419
  tx.addInput({
17358
17420
  txid: toSpend.id,
17359
17421
  index: 0,
@@ -17365,12 +17427,12 @@ function craftBIP322ToSignSimple(toSpend, pkScript) {
17365
17427
  });
17366
17428
  tx.addOutput({
17367
17429
  amount: 0n,
17368
- script: chunkUHOHLN3C_cjs.OP_RETURN_EMPTY_PKSCRIPT
17430
+ script: chunk7IYIFMF4_cjs.OP_RETURN_EMPTY_PKSCRIPT
17369
17431
  });
17370
17432
  return tx;
17371
17433
  }
17372
17434
  function finalizeVirtualTx(type, psbtBase64) {
17373
- const tx = chunkUHOHLN3C_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
17435
+ const tx = chunk7IYIFMF4_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
17374
17436
  if (type === "INDEXER_CHAINED_TX_TYPE_TREE" /* TREE */) {
17375
17437
  const input = tx.getInput(0);
17376
17438
  if (!input) {
@@ -17394,16 +17456,17 @@ var ExitPathError = class extends Error {
17394
17456
  this.reason = reason;
17395
17457
  this.name = "ExitPathError";
17396
17458
  }
17459
+ reason;
17397
17460
  };
17398
17461
  function delayWeight(sequence) {
17399
- const t = chunkHXDZ2QTW_cjs.sequenceToTimelock(sequence);
17462
+ const t = chunkMQB5H4X5_cjs.sequenceToTimelock(sequence);
17400
17463
  return t.type === "blocks" ? Number(t.value) : Number(t.value) / 600;
17401
17464
  }
17402
17465
  async function resolveUnilateralPath(params) {
17403
17466
  const { vtxo, scriptHex, contractRepository } = params;
17404
17467
  const contract = contractRepository ? (await contractRepository.getContracts({ script: scriptHex }))[0] : void 0;
17405
17468
  if (contract) {
17406
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
17469
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
17407
17470
  if (!handler) {
17408
17471
  throw new ExitPathError(
17409
17472
  "no-handler",
@@ -17426,12 +17489,12 @@ async function resolveUnilateralPath(params) {
17426
17489
  paths.sort((a, b) => delayWeight(a.sequence) - delayWeight(b.sequence));
17427
17490
  return { selection: paths[0], label: `${contract.type}:unilateral` };
17428
17491
  }
17429
- const decoded = chunkHXDZ2QTW_cjs.VtxoScript.decode(vtxo.tapTree);
17492
+ const decoded = chunkMQB5H4X5_cjs.VtxoScript.decode(vtxo.tapTree);
17430
17493
  let best;
17431
17494
  for (const exit of decoded.exitPaths()) {
17432
17495
  const leaf = decoded.findLeaf(base.hex.encode(exit.script));
17433
17496
  if (!leaf) continue;
17434
- const sequence = chunkHXDZ2QTW_cjs.timelockToSequence(exit.params.timelock);
17497
+ const sequence = chunkMQB5H4X5_cjs.timelockToSequence(exit.params.timelock);
17435
17498
  const weight = delayWeight(sequence);
17436
17499
  if (!best || weight < best.weight) {
17437
17500
  best = { selection: { leaf, sequence }, weight };
@@ -17477,6 +17540,11 @@ exports.Unroll = void 0;
17477
17540
  this.indexer = indexer;
17478
17541
  this.virtualTxRepository = virtualTxRepository;
17479
17542
  }
17543
+ toUnroll;
17544
+ bumper;
17545
+ explorer;
17546
+ indexer;
17547
+ virtualTxRepository;
17480
17548
  /** Create an unroll session by loading the virtual output chain from the indexer. */
17481
17549
  static async create(toUnroll, bumper, explorer, indexer, virtualTxRepository) {
17482
17550
  const { chain } = await indexer.getVtxoChain(toUnroll);
@@ -17612,14 +17680,14 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
17612
17680
  }
17613
17681
  const resolved = await resolveUnilateralPath({
17614
17682
  vtxo,
17615
- scriptHex: base.hex.encode(chunkHXDZ2QTW_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
17683
+ scriptHex: base.hex.encode(chunkMQB5H4X5_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
17616
17684
  contractRepository: wallet.contractRepository,
17617
17685
  walletPubKeyHex: base.hex.encode(await wallet.identity.xOnlyPublicKey()),
17618
17686
  currentTime: Date.now()
17619
17687
  });
17620
17688
  const spendingLeaf = resolved.selection.leaf;
17621
17689
  const sequence = resolved.selection.sequence;
17622
- const timelock = chunkHXDZ2QTW_cjs.sequenceToTimelock(sequence);
17690
+ const timelock = chunkMQB5H4X5_cjs.sequenceToTimelock(sequence);
17623
17691
  const elapsed = timelock.type === "blocks" ? chainTip.height >= txStatus.blockHeight + Number(timelock.value) : chainTip.time >= txStatus.blockTime + Number(timelock.value);
17624
17692
  if (!elapsed) {
17625
17693
  throw new Error(`no available exit path found for vtxo ${vtxo.txid}:${vtxo.vout}`);
@@ -17632,7 +17700,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
17632
17700
  sequence,
17633
17701
  witnessUtxo: {
17634
17702
  amount: BigInt(vtxo.value),
17635
- script: chunkHXDZ2QTW_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
17703
+ script: chunkMQB5H4X5_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
17636
17704
  },
17637
17705
  sighashType: btcSigner.SigHash.DEFAULT
17638
17706
  });
@@ -17642,7 +17710,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
17642
17710
  btcSigner.TaprootControlBlock.encode(spendingLeaf[0]).length
17643
17711
  );
17644
17712
  }
17645
- const tx = new chunkUHOHLN3C_cjs.Transaction({ version: 2 });
17713
+ const tx = new chunk7IYIFMF4_cjs.Transaction({ version: 2 });
17646
17714
  for (const input of inputs) {
17647
17715
  tx.addInput(input);
17648
17716
  }
@@ -17709,7 +17777,7 @@ async function buildSignedSweep(params) {
17709
17777
  `uneconomic vtxo ${vtxo.txid}:${vtxo.vout}: value ${vtxo.value} - fee ${fee} < dust`
17710
17778
  );
17711
17779
  }
17712
- const tx = new chunkUHOHLN3C_cjs.Transaction({ version: 2 });
17780
+ const tx = new chunk7IYIFMF4_cjs.Transaction({ version: 2 });
17713
17781
  tx.addInput({
17714
17782
  txid: vtxo.txid,
17715
17783
  index: vtxo.vout,
@@ -17734,7 +17802,7 @@ async function buildSignedSweep(params) {
17734
17802
  finalScriptWitness: [
17735
17803
  tapScriptSig[0][1],
17736
17804
  ...path.extraWitness,
17737
- chunkHXDZ2QTW_cjs.scriptFromTapLeafScript(path.leaf),
17805
+ chunkMQB5H4X5_cjs.scriptFromTapLeafScript(path.leaf),
17738
17806
  btcSigner.TaprootControlBlock.encode(controlBlock)
17739
17807
  ]
17740
17808
  });
@@ -17779,7 +17847,7 @@ async function selectExitVtxos(opts) {
17779
17847
  `no contract registered for vtxo script ${vtxo.script} \u2014 register the contract before exiting`
17780
17848
  );
17781
17849
  }
17782
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(contract.type);
17850
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(contract.type);
17783
17851
  if (!handler) {
17784
17852
  throw new Error(`no contract handler registered for type '${contract.type}'`);
17785
17853
  }
@@ -17809,7 +17877,7 @@ async function computeExitLayout(opts, feeRate) {
17809
17877
  if (pendingNodes.length > 0) {
17810
17878
  const txs = await resolver.getVirtualTxs(pendingNodes.map((n) => n.txid));
17811
17879
  for (const psbt of txs) {
17812
- psbts.set(chunkUHOHLN3C_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
17880
+ psbts.set(chunk7IYIFMF4_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
17813
17881
  }
17814
17882
  }
17815
17883
  const childVsize = Number(
@@ -17845,7 +17913,7 @@ async function computeExitLayout(opts, feeRate) {
17845
17913
  try {
17846
17914
  const resolved = await resolveUnilateralPath({
17847
17915
  vtxo,
17848
- scriptHex: base.hex.encode(chunkHXDZ2QTW_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
17916
+ scriptHex: base.hex.encode(chunkMQB5H4X5_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
17849
17917
  contractRepository: wallet.contractRepository,
17850
17918
  walletPubKeyHex,
17851
17919
  currentTime: Date.now()
@@ -17864,7 +17932,7 @@ async function computeExitLayout(opts, feeRate) {
17864
17932
  });
17865
17933
  continue;
17866
17934
  }
17867
- const t = chunkHXDZ2QTW_cjs.sequenceToTimelock(resolved.selection.sequence);
17935
+ const t = chunkMQB5H4X5_cjs.sequenceToTimelock(resolved.selection.sequence);
17868
17936
  const delay = { type: t.type, value: Number(t.value) };
17869
17937
  infos.push({ outpoint, value: vtxo.value, sweepFee, path: resolved.label, delay });
17870
17938
  sweeps.push({ vtxo, resolved, sweepFee, delay });
@@ -17957,6 +18025,8 @@ var Executor = class {
17957
18025
  this.pollIntervalMs = opts?.pollIntervalMs ?? 5e3;
17958
18026
  this.feeWallet = opts?.feeWallet;
17959
18027
  }
18028
+ pkg;
18029
+ provider;
17960
18030
  pollIntervalMs;
17961
18031
  feeWallet;
17962
18032
  sleep() {
@@ -18169,7 +18239,7 @@ async function prepare(opts) {
18169
18239
  txid: sweep.vtxo.txid,
18170
18240
  vout: sweep.vtxo.vout,
18171
18241
  value: sweep.vtxo.value,
18172
- pkScript: chunkHXDZ2QTW_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
18242
+ pkScript: chunkMQB5H4X5_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
18173
18243
  },
18174
18244
  path: sweep.resolved.selection,
18175
18245
  outputAddress: opts.sweepAddress,
@@ -18254,7 +18324,7 @@ async function prepare(opts) {
18254
18324
  if (newFee <= splitterFee) break;
18255
18325
  splitterFee = newFee;
18256
18326
  }
18257
- const splitter = new chunkUHOHLN3C_cjs.Transaction({ version: 2 });
18327
+ const splitter = new chunk7IYIFMF4_cjs.Transaction({ version: 2 });
18258
18328
  for (const coin of selected.inputs) {
18259
18329
  splitter.addInput({
18260
18330
  txid: coin.txid,
@@ -18418,7 +18488,7 @@ function decodeArkContract(encoded) {
18418
18488
  }
18419
18489
  function contractFromArkContract(encoded, options = {}) {
18420
18490
  const parsed = decodeArkContract(encoded);
18421
- const handler = chunk32YKLQPS_cjs.contractHandlers.get(parsed.type);
18491
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.get(parsed.type);
18422
18492
  if (!handler) {
18423
18493
  throw new Error(`No handler registered for contract type '${parsed.type}'`);
18424
18494
  }
@@ -18432,9 +18502,9 @@ function contractFromArkContract(encoded, options = {}) {
18432
18502
  metadata: options.metadata
18433
18503
  };
18434
18504
  }
18435
- function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunkHXDZ2QTW_cjs.DEFAULT_NETWORK.hrp, options = {}) {
18505
+ function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunkMQB5H4X5_cjs.DEFAULT_NETWORK.hrp, options = {}) {
18436
18506
  const parsed = decodeArkContract(encoded);
18437
- const handler = chunk32YKLQPS_cjs.contractHandlers.getOrThrow(parsed.type);
18507
+ const handler = chunk4KXOCVXP_cjs.contractHandlers.getOrThrow(parsed.type);
18438
18508
  const params = parsed.data;
18439
18509
  const vtxoScript = handler.createScript(params);
18440
18510
  return {
@@ -18572,5 +18642,5 @@ exports.validateVtxoTxGraph = validateVtxoTxGraph;
18572
18642
  exports.verifyTapscriptSignatures = verifyTapscriptSignatures;
18573
18643
  exports.waitForIncomingFunds = waitForIncomingFunds;
18574
18644
  exports.warnAndFilterVtxosForScript = warnAndFilterVtxosForScript;
18575
- //# sourceMappingURL=chunk-SRCWBFSZ.cjs.map
18576
- //# sourceMappingURL=chunk-SRCWBFSZ.cjs.map
18645
+ //# sourceMappingURL=chunk-D46YDM36.cjs.map
18646
+ //# sourceMappingURL=chunk-D46YDM36.cjs.map