@arkade-os/sdk 0.5.0-rc.26 → 0.5.0-rc.27

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 (72) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/expo.cjs +5 -5
  3. package/dist/adapters/expo.d.cts +2 -2
  4. package/dist/adapters/expo.d.ts +2 -2
  5. package/dist/adapters/expo.js +3 -3
  6. package/dist/{asyncStorageTaskQueue-CFWscYpG.d.cts → asyncStorageTaskQueue-CGZMG8Mc.d.cts} +1 -1
  7. package/dist/{asyncStorageTaskQueue-DrFapzPg.d.ts → asyncStorageTaskQueue-Ca-mM3NR.d.ts} +1 -1
  8. package/dist/{chunk-HPUKFTZV.js → chunk-BULTXVEN.js} +4 -4
  9. package/dist/{chunk-HPUKFTZV.js.map → chunk-BULTXVEN.js.map} +1 -1
  10. package/dist/{chunk-K2YTDYQF.cjs → chunk-DKHBOT5W.cjs} +16 -16
  11. package/dist/{chunk-K2YTDYQF.cjs.map → chunk-DKHBOT5W.cjs.map} +1 -1
  12. package/dist/{chunk-CFOIHLON.cjs → chunk-EP6XF7JX.cjs} +48 -48
  13. package/dist/{chunk-CFOIHLON.cjs.map → chunk-EP6XF7JX.cjs.map} +1 -1
  14. package/dist/{chunk-5JQ5EOYE.js → chunk-FTJ2YWJJ.js} +3 -3
  15. package/dist/{chunk-5JQ5EOYE.js.map → chunk-FTJ2YWJJ.js.map} +1 -1
  16. package/dist/{chunk-U5ZRDVVB.js → chunk-I4ZWKG7B.js} +11 -6
  17. package/dist/chunk-I4ZWKG7B.js.map +1 -0
  18. package/dist/{chunk-B2YMUJD5.cjs → chunk-PM6KYV7S.cjs} +495 -490
  19. package/dist/chunk-PM6KYV7S.cjs.map +1 -0
  20. package/dist/{chunk-N2VM6V6K.js → chunk-PO6AJUWK.js} +3 -3
  21. package/dist/{chunk-N2VM6V6K.js.map → chunk-PO6AJUWK.js.map} +1 -1
  22. package/dist/{chunk-QCD3SJOL.cjs → chunk-QXZS4J3V.cjs} +10 -10
  23. package/dist/{chunk-QCD3SJOL.cjs.map → chunk-QXZS4J3V.cjs.map} +1 -1
  24. package/dist/{chunk-HTCIPDVW.js → chunk-RUWTAAJK.js} +3 -3
  25. package/dist/{chunk-HTCIPDVW.js.map → chunk-RUWTAAJK.js.map} +1 -1
  26. package/dist/{chunk-FEBAG2K2.cjs → chunk-URILS6HH.cjs} +18 -18
  27. package/dist/{chunk-FEBAG2K2.cjs.map → chunk-URILS6HH.cjs.map} +1 -1
  28. package/dist/{chunk-Y5VSJURH.js → chunk-X42Z36L5.js} +4 -4
  29. package/dist/{chunk-Y5VSJURH.js.map → chunk-X42Z36L5.js.map} +1 -1
  30. package/dist/{chunk-VVFCCNU2.cjs → chunk-ZN7BX5XT.cjs} +3 -3
  31. package/dist/{chunk-VVFCCNU2.cjs.map → chunk-ZN7BX5XT.cjs.map} +1 -1
  32. package/dist/contracts/handlers/index.cjs +9 -9
  33. package/dist/contracts/handlers/index.d.cts +3 -3
  34. package/dist/contracts/handlers/index.d.ts +3 -3
  35. package/dist/contracts/handlers/index.js +2 -2
  36. package/dist/{delegate-Cz8FnLqi.d.ts → delegate-CG3EwryS.d.ts} +1 -1
  37. package/dist/{delegate-r3jh7UcH.d.cts → delegate-CH-QUGok.d.cts} +1 -1
  38. package/dist/{index-DOION7Ta.d.cts → index-BPS3Ki3l.d.cts} +2 -2
  39. package/dist/{index-BfvbSL0W.d.cts → index-BpiwCcFb.d.cts} +2 -2
  40. package/dist/{index-BfvbSL0W.d.ts → index-BpiwCcFb.d.ts} +2 -2
  41. package/dist/{index-Chgwl4dO.d.ts → index-DLn2XUIl.d.ts} +2 -2
  42. package/dist/index.cjs +316 -316
  43. package/dist/index.d.cts +14 -9
  44. package/dist/index.d.ts +14 -9
  45. package/dist/index.js +4 -4
  46. package/dist/repositories/realm/index.cjs +35 -35
  47. package/dist/repositories/realm/index.d.cts +2 -2
  48. package/dist/repositories/realm/index.d.ts +2 -2
  49. package/dist/repositories/realm/index.js +5 -5
  50. package/dist/repositories/sqlite/index.cjs +33 -33
  51. package/dist/repositories/sqlite/index.d.cts +2 -2
  52. package/dist/repositories/sqlite/index.d.ts +2 -2
  53. package/dist/repositories/sqlite/index.js +5 -5
  54. package/dist/{taskRunner-CXAcjtdU.d.ts → taskRunner-Dbdr9WMQ.d.ts} +1 -1
  55. package/dist/{taskRunner-BO8a-SQh.d.cts → taskRunner-DtphXKXv.d.cts} +1 -1
  56. package/dist/wallet/expo/background.cjs +14 -14
  57. package/dist/wallet/expo/background.d.cts +3 -3
  58. package/dist/wallet/expo/background.d.ts +3 -3
  59. package/dist/wallet/expo/background.js +6 -6
  60. package/dist/wallet/expo/index.cjs +15 -15
  61. package/dist/wallet/expo/index.d.cts +4 -4
  62. package/dist/wallet/expo/index.d.ts +4 -4
  63. package/dist/wallet/expo/index.js +5 -5
  64. package/dist/{wallet-s90p-vIk.d.cts → wallet-CTrmow5R.d.cts} +2 -2
  65. package/dist/{wallet-CFIfUlQP.d.ts → wallet-QvS_5Jjd.d.ts} +2 -2
  66. package/dist/worker/expo/index.cjs +9 -9
  67. package/dist/worker/expo/index.d.cts +4 -4
  68. package/dist/worker/expo/index.d.ts +4 -4
  69. package/dist/worker/expo/index.js +5 -5
  70. package/package.json +1 -1
  71. package/dist/chunk-B2YMUJD5.cjs.map +0 -1
  72. package/dist/chunk-U5ZRDVVB.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkFEBAG2K2_cjs = require('./chunk-FEBAG2K2.cjs');
4
- var chunkCFOIHLON_cjs = require('./chunk-CFOIHLON.cjs');
5
- var chunkVVFCCNU2_cjs = require('./chunk-VVFCCNU2.cjs');
3
+ var chunkURILS6HH_cjs = require('./chunk-URILS6HH.cjs');
4
+ var chunkEP6XF7JX_cjs = require('./chunk-EP6XF7JX.cjs');
5
+ var chunkZN7BX5XT_cjs = require('./chunk-ZN7BX5XT.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');
@@ -187,7 +187,7 @@ var TreeSignerSession = class _TreeSignerSession {
187
187
  noncesByPubkey.set(base.hex.encode(myPublicKey.subarray(1)), myNonce);
188
188
  const tx = this.graph.find(txid);
189
189
  if (!tx) throw new Error(`missing tx for txid ${txid}`);
190
- const cosigners = chunkVVFCCNU2_cjs.getArkPsbtFields(tx.root, 0, chunkVVFCCNU2_cjs.CosignerPublicKey).map(
190
+ const cosigners = chunkZN7BX5XT_cjs.getArkPsbtFields(tx.root, 0, chunkZN7BX5XT_cjs.CosignerPublicKey).map(
191
191
  (c) => base.hex.encode(c.key.subarray(1))
192
192
  // xonly pubkey
193
193
  );
@@ -239,7 +239,7 @@ var TreeSignerSession = class _TreeSignerSession {
239
239
  if (!aggNonce) throw new Error("missing aggregate nonce");
240
240
  const prevoutAmounts = [];
241
241
  const prevoutScripts = [];
242
- const cosigners = chunkVVFCCNU2_cjs.getArkPsbtFields(g.root, 0, chunkVVFCCNU2_cjs.CosignerPublicKey).map((c) => c.key);
242
+ const cosigners = chunkZN7BX5XT_cjs.getArkPsbtFields(g.root, 0, chunkZN7BX5XT_cjs.CosignerPublicKey).map((c) => c.key);
243
243
  const { finalKey } = aggregateKeys(cosigners, true, {
244
244
  taprootTweak: this.scriptRoot
245
245
  });
@@ -322,7 +322,7 @@ var SingleKey = class _SingleKey {
322
322
  async sign(tx, inputIndexes) {
323
323
  const txCpy = tx.clone();
324
324
  if (!inputIndexes) {
325
- chunkVVFCCNU2_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH);
325
+ chunkZN7BX5XT_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH);
326
326
  try {
327
327
  if (!txCpy.sign(this.key, ALLOWED_SIGHASH)) {
328
328
  throw new Error("Failed to sign transaction");
@@ -422,7 +422,7 @@ var SeedIdentity = class _SeedIdentity {
422
422
  let network;
423
423
  if ("descriptor" in opts && typeof opts.descriptor === "string") {
424
424
  descriptor = opts.descriptor;
425
- network = chunkCFOIHLON_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
425
+ network = chunkEP6XF7JX_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
426
426
  } else {
427
427
  network = opts.isMainnet ?? true ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
428
428
  descriptor = descriptorsScure.scriptExpressions.trBIP32({
@@ -499,7 +499,7 @@ var SeedIdentity = class _SeedIdentity {
499
499
  }
500
500
  /** Returns true when `descriptor` is derived from this identity's seed. */
501
501
  ownsDescriptor(descriptor) {
502
- return chunkCFOIHLON_cjs.descriptorIsOurs(descriptor, this.descriptor, utils_js.pubSchnorr(this.derivedKey));
502
+ return chunkEP6XF7JX_cjs.descriptorIsOurs(descriptor, this.descriptor, utils_js.pubSchnorr(this.derivedKey));
503
503
  }
504
504
  /**
505
505
  * Signs each request with the key derived from its descriptor.
@@ -538,7 +538,7 @@ var SeedIdentity = class _SeedIdentity {
538
538
  }
539
539
  // ── internal helpers ─────────────────────────────────────────────
540
540
  derivePrivateKeyForDescriptor(descriptor) {
541
- const network = chunkCFOIHLON_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
541
+ const network = chunkEP6XF7JX_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
542
542
  const expansion = descriptorsScure.expand({ descriptor, network });
543
543
  if (expansion.isRanged) {
544
544
  throw new Error(
@@ -563,7 +563,7 @@ var SeedIdentity = class _SeedIdentity {
563
563
  signTxWithKey(tx, key, inputIndexes) {
564
564
  const txCpy = tx.clone();
565
565
  if (!inputIndexes) {
566
- chunkVVFCCNU2_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH2);
566
+ chunkZN7BX5XT_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH2);
567
567
  try {
568
568
  if (!txCpy.sign(key, ALLOWED_SIGHASH2)) {
569
569
  throw new Error("Failed to sign transaction");
@@ -615,7 +615,7 @@ var ReadonlyDescriptorIdentity = class _ReadonlyDescriptorIdentity {
615
615
  /** Wildcard account-descriptor template (e.g. `tr([fp/86'/0'/0']xpub/0/*)`). */
616
616
  descriptor;
617
617
  constructor(descriptor) {
618
- const network = chunkCFOIHLON_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
618
+ const network = chunkEP6XF7JX_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
619
619
  let expansion;
620
620
  try {
621
621
  expansion = descriptorsScure.expand({ descriptor, network, index: 0 });
@@ -650,7 +650,7 @@ var ReadonlyDescriptorIdentity = class _ReadonlyDescriptorIdentity {
650
650
  }
651
651
  /** Returns true when `descriptor` derives from this identity's xpub. */
652
652
  ownsDescriptor(descriptor) {
653
- return chunkCFOIHLON_cjs.descriptorIsOurs(descriptor, this.descriptor, this.indexZero.pubkey);
653
+ return chunkEP6XF7JX_cjs.descriptorIsOurs(descriptor, this.descriptor, this.indexZero.pubkey);
654
654
  }
655
655
  };
656
656
  function serializeSeedOwnedSigningIdentity(identity) {
@@ -793,10 +793,10 @@ var DescriptorIdentity = class {
793
793
  this.base = base;
794
794
  }
795
795
  async xOnlyPublicKey() {
796
- return chunkCFOIHLON_cjs.deriveDescriptorLeafPubKey(this.descriptor);
796
+ return chunkEP6XF7JX_cjs.deriveDescriptorLeafPubKey(this.descriptor);
797
797
  }
798
798
  async compressedPublicKey() {
799
- return chunkCFOIHLON_cjs.deriveDescriptorLeafCompressedPubKey(this.descriptor);
799
+ return chunkEP6XF7JX_cjs.deriveDescriptorLeafCompressedPubKey(this.descriptor);
800
800
  }
801
801
  async sign(tx, inputIndexes) {
802
802
  const [signed] = await this.signer.signWithDescriptor([
@@ -856,8 +856,8 @@ var StaticDescriptorProvider = class _StaticDescriptorProvider {
856
856
  }
857
857
  isOurs(descriptor) {
858
858
  try {
859
- const normalized = chunkCFOIHLON_cjs.normalizeToDescriptor(descriptor);
860
- const pubKey = chunkCFOIHLON_cjs.extractPubKey(normalized);
859
+ const normalized = chunkEP6XF7JX_cjs.normalizeToDescriptor(descriptor);
860
+ const pubKey = chunkEP6XF7JX_cjs.extractPubKey(normalized);
861
861
  return pubKey.toLowerCase() === this.pubKeyHex.toLowerCase();
862
862
  } catch {
863
863
  return false;
@@ -1194,7 +1194,7 @@ function unwrapKeyring(provider) {
1194
1194
  }
1195
1195
  function keyOf(descriptor) {
1196
1196
  try {
1197
- return chunkCFOIHLON_cjs.extractPubKey(chunkCFOIHLON_cjs.normalizeToDescriptor(descriptor)).toLowerCase();
1197
+ return chunkEP6XF7JX_cjs.extractPubKey(chunkEP6XF7JX_cjs.normalizeToDescriptor(descriptor)).toLowerCase();
1198
1198
  } catch {
1199
1199
  return void 0;
1200
1200
  }
@@ -1285,12 +1285,12 @@ async function resolveDescriptorSigner(descriptor, identity, provider) {
1285
1285
  signMessageWithDescriptor: (ownedDescriptor, message, signatureType) => identity.signDescriptorMessage(ownedDescriptor, message, signatureType)
1286
1286
  } : void 0;
1287
1287
  const owner = providerOwner ?? identityOwner;
1288
- if (owner && chunkCFOIHLON_cjs.parseHDDescriptor(descriptor)) {
1288
+ if (owner && chunkEP6XF7JX_cjs.parseHDDescriptor(descriptor)) {
1289
1289
  return new DescriptorIdentity({ descriptor, signer: owner, base: identity });
1290
1290
  }
1291
1291
  let key;
1292
1292
  try {
1293
- key = chunkCFOIHLON_cjs.deriveDescriptorLeafPubKey(descriptor);
1293
+ key = chunkEP6XF7JX_cjs.deriveDescriptorLeafPubKey(descriptor);
1294
1294
  } catch {
1295
1295
  throw new ForeignDescriptorError(descriptor);
1296
1296
  }
@@ -1343,14 +1343,14 @@ function buildSaltedPreimageMessage(xonly, salt) {
1343
1343
  }
1344
1344
  var PREIMAGE_INDEX = 0;
1345
1345
  function isPerArtifactDescriptor(descriptor) {
1346
- return chunkCFOIHLON_cjs.parseHDDescriptor(descriptor) !== null;
1346
+ return chunkEP6XF7JX_cjs.parseHDDescriptor(descriptor) !== null;
1347
1347
  }
1348
1348
  async function provisionDescriptor(wallet) {
1349
1349
  const allocated = isHDAllocationCapable(wallet) ? await wallet.getNextSigningDescriptor() : void 0;
1350
- return allocated ?? await chunkCFOIHLON_cjs.identityDescriptor(wallet.identity);
1350
+ return allocated ?? await chunkEP6XF7JX_cjs.identityDescriptor(wallet.identity);
1351
1351
  }
1352
1352
  async function provisionRefundKey(wallet) {
1353
- const descriptor = await chunkCFOIHLON_cjs.identityDescriptor(wallet.identity);
1353
+ const descriptor = await chunkEP6XF7JX_cjs.identityDescriptor(wallet.identity);
1354
1354
  const signer = await contractSigner(wallet, descriptor);
1355
1355
  const pubkey = await signer.xOnlyPublicKey();
1356
1356
  const identityPubkey = await wallet.identity.xOnlyPublicKey();
@@ -1360,7 +1360,7 @@ async function provisionRefundKey(wallet) {
1360
1360
  );
1361
1361
  }
1362
1362
  const address = await wallet.getAddress();
1363
- const { pkScript } = chunkVVFCCNU2_cjs.ArkAddress.decode(address);
1363
+ const { pkScript } = chunkZN7BX5XT_cjs.ArkAddress.decode(address);
1364
1364
  return { descriptor, pubkey, pkScript, address };
1365
1365
  }
1366
1366
  async function provisionClaimSecret(wallet, opts = {}) {
@@ -1406,7 +1406,7 @@ async function contractSigner(wallet, descriptor) {
1406
1406
  const signer = isHDWalletCapable(wallet) ? await wallet.signerForDescriptor(descriptor) : wallet.identity;
1407
1407
  let expected;
1408
1408
  try {
1409
- expected = chunkCFOIHLON_cjs.deriveDescriptorLeafPubKey(descriptor);
1409
+ expected = chunkEP6XF7JX_cjs.deriveDescriptorLeafPubKey(descriptor);
1410
1410
  } catch (cause) {
1411
1411
  throw new ForeignDescriptorError(descriptor, { cause });
1412
1412
  }
@@ -1488,7 +1488,7 @@ function debugLog(debug, ...args) {
1488
1488
  }
1489
1489
  function normalizeOptions(pathOrOptions) {
1490
1490
  const o = typeof pathOrOptions === "string" ? { path: pathOrOptions } : pathOrOptions;
1491
- chunkVVFCCNU2_cjs.assertTimerMs("activationTimeoutMs", o.activationTimeoutMs);
1491
+ chunkZN7BX5XT_cjs.assertTimerMs("activationTimeoutMs", o.activationTimeoutMs);
1492
1492
  return {
1493
1493
  path: o.path,
1494
1494
  updateViaCache: o.updateViaCache ?? "none",
@@ -1611,14 +1611,14 @@ var RestDelegateProvider = class {
1611
1611
  */
1612
1612
  async delegate(intent, forfeitTxs, options) {
1613
1613
  const url = `${this.url}/v1/delegate`;
1614
- const response = await chunkVVFCCNU2_cjs.baseFetch(url, {
1614
+ const response = await chunkZN7BX5XT_cjs.baseFetch(url, {
1615
1615
  method: "POST",
1616
1616
  headers: {
1617
1617
  "Content-Type": "application/json"
1618
1618
  },
1619
1619
  body: JSON.stringify({
1620
1620
  intent: {
1621
- message: chunkVVFCCNU2_cjs.Intent.encodeMessage(intent.message),
1621
+ message: chunkZN7BX5XT_cjs.Intent.encodeMessage(intent.message),
1622
1622
  proof: intent.proof
1623
1623
  },
1624
1624
  forfeit_txs: forfeitTxs,
@@ -1637,7 +1637,7 @@ var RestDelegateProvider = class {
1637
1637
  */
1638
1638
  async getDelegateInfo() {
1639
1639
  const url = `${this.url}/v1/delegator/info`;
1640
- const response = await chunkVVFCCNU2_cjs.rateGate.runHttp(url, () => chunkVVFCCNU2_cjs.baseFetch(url));
1640
+ const response = await chunkZN7BX5XT_cjs.rateGate.runHttp(url, () => chunkZN7BX5XT_cjs.baseFetch(url));
1641
1641
  if (!response.ok) {
1642
1642
  const errorText2 = await response.text();
1643
1643
  throw new Error(`Failed to get delegate info: ${errorText2}`);
@@ -1693,7 +1693,7 @@ async function collectPages(read) {
1693
1693
  return items;
1694
1694
  }
1695
1695
  function scriptFromArkAddress(address) {
1696
- return base.hex.encode(chunkVVFCCNU2_cjs.ArkAddress.decode(address).pkScript);
1696
+ return base.hex.encode(chunkZN7BX5XT_cjs.ArkAddress.decode(address).pkScript);
1697
1697
  }
1698
1698
 
1699
1699
  // src/repositories/walletRepository.ts
@@ -1755,9 +1755,9 @@ async function collectScriptVtxos(repository, script, options) {
1755
1755
  return [...byOutpoint.values()].map((row) => row.vtxo);
1756
1756
  }
1757
1757
  function unspentScriptVtxos(rows, copies) {
1758
- const spent = copies.filter((copy) => chunkVVFCCNU2_cjs.isVtxoSpent(copy.vtxo));
1758
+ const spent = copies.filter((copy) => chunkZN7BX5XT_cjs.isVtxoSpent(copy.vtxo));
1759
1759
  return rows.filter(
1760
- (row) => !chunkVVFCCNU2_cjs.isVtxoSpent(row.vtxo) && !spent.some(
1760
+ (row) => !chunkZN7BX5XT_cjs.isVtxoSpent(row.vtxo) && !spent.some(
1761
1761
  (copy) => copy.address !== row.address && copy.vtxo.txid === row.vtxo.txid && copy.vtxo.vout === row.vtxo.vout && shouldReplaceScriptVtxo(row, copy)
1762
1762
  )
1763
1763
  );
@@ -1840,7 +1840,7 @@ var ESPLORA_URL = {
1840
1840
  regtest: "http://localhost:3000/api"
1841
1841
  };
1842
1842
  var EsploraProvider = class {
1843
- constructor(baseUrl = ESPLORA_URL[chunkVVFCCNU2_cjs.DEFAULT_NETWORK_NAME], opts) {
1843
+ constructor(baseUrl = ESPLORA_URL[chunkZN7BX5XT_cjs.DEFAULT_NETWORK_NAME], opts) {
1844
1844
  this.baseUrl = baseUrl;
1845
1845
  this.pollingInterval = opts?.pollingInterval ?? 15e3;
1846
1846
  this.forcePolling = opts?.forcePolling ?? false;
@@ -1855,7 +1855,7 @@ var EsploraProvider = class {
1855
1855
  */
1856
1856
  addressWatches = /* @__PURE__ */ new Map();
1857
1857
  async getCoins(address) {
1858
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1858
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1859
1859
  if (!response.ok) {
1860
1860
  throw new Error(`Failed to fetch UTXOs: ${response.statusText}`);
1861
1861
  }
@@ -1864,12 +1864,12 @@ var EsploraProvider = class {
1864
1864
  async getFeeRate() {
1865
1865
  let url = `${this.baseUrl}/fee-estimates`;
1866
1866
  let key = "1";
1867
- let response = await chunkVVFCCNU2_cjs.baseFetch(url);
1867
+ let response = await chunkZN7BX5XT_cjs.baseFetch(url);
1868
1868
  if (response.status === 404) {
1869
1869
  await response.body?.cancel();
1870
1870
  url = `${this.baseUrl}/v1/fees/recommended`;
1871
1871
  key = "fastestFee";
1872
- response = await chunkVVFCCNU2_cjs.baseFetch(url);
1872
+ response = await chunkZN7BX5XT_cjs.baseFetch(url);
1873
1873
  }
1874
1874
  if (response.status === 404) {
1875
1875
  await response.body?.cancel();
@@ -1906,7 +1906,7 @@ var EsploraProvider = class {
1906
1906
  }
1907
1907
  }
1908
1908
  async getTxOutspends(txid) {
1909
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1909
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1910
1910
  if (!response.ok) {
1911
1911
  const error = await response.text();
1912
1912
  throw new Error(`Failed to get transaction outspends: ${error}`);
@@ -1914,7 +1914,7 @@ var EsploraProvider = class {
1914
1914
  return response.json();
1915
1915
  }
1916
1916
  async getTransactions(address) {
1917
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1917
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1918
1918
  if (!response.ok) {
1919
1919
  const error = await response.text();
1920
1920
  throw new Error(`Failed to get transactions: ${error}`);
@@ -1923,14 +1923,14 @@ var EsploraProvider = class {
1923
1923
  }
1924
1924
  /** Orders of magnitude smaller than `/address/{addr}/txs`: the polling fallback's probe. */
1925
1925
  async getAddressStats(address) {
1926
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/address/${address}`);
1926
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/address/${address}`);
1927
1927
  if (!response.ok) {
1928
1928
  throw new Error(`Failed to get address stats: ${response.statusText}`);
1929
1929
  }
1930
1930
  return response.json();
1931
1931
  }
1932
1932
  async getRawTransaction(txid) {
1933
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/hex`);
1933
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/hex`);
1934
1934
  if (!response.ok) {
1935
1935
  const error = await response.text();
1936
1936
  throw new Error(`Failed to get raw transaction ${txid}: ${error}`);
@@ -1938,7 +1938,7 @@ var EsploraProvider = class {
1938
1938
  return base.hex.decode((await response.text()).trim());
1939
1939
  }
1940
1940
  async getTxStatus(txid) {
1941
- const txresponse = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1941
+ const txresponse = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1942
1942
  if (!txresponse.ok) {
1943
1943
  throw new Error(txresponse.statusText);
1944
1944
  }
@@ -1946,7 +1946,7 @@ var EsploraProvider = class {
1946
1946
  if (!tx.status.confirmed) {
1947
1947
  return { confirmed: false };
1948
1948
  }
1949
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1949
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1950
1950
  if (!response.ok) {
1951
1951
  throw new Error(`Failed to get transaction status: ${response.statusText}`);
1952
1952
  }
@@ -2220,9 +2220,9 @@ var EsploraProvider = class {
2220
2220
  return { subscribers, teardown, started };
2221
2221
  }
2222
2222
  async getChainTip() {
2223
- let tipBlocks = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/blocks`);
2223
+ let tipBlocks = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/blocks`);
2224
2224
  if (tipBlocks.status === 404) {
2225
- tipBlocks = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/v1/blocks`);
2225
+ tipBlocks = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/v1/blocks`);
2226
2226
  }
2227
2227
  if (!tipBlocks.ok) {
2228
2228
  throw new Error(`Failed to get chain tip: ${tipBlocks.statusText}`);
@@ -2243,7 +2243,7 @@ var EsploraProvider = class {
2243
2243
  };
2244
2244
  }
2245
2245
  async broadcastPackage(parent, child) {
2246
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
2246
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
2247
2247
  method: "POST",
2248
2248
  headers: {
2249
2249
  "Content-Type": "application/json"
@@ -2259,7 +2259,7 @@ var EsploraProvider = class {
2259
2259
  return result;
2260
2260
  }
2261
2261
  async broadcastTx(tx) {
2262
- const response = await chunkVVFCCNU2_cjs.baseFetch(`${this.baseUrl}/tx`, {
2262
+ const response = await chunkZN7BX5XT_cjs.baseFetch(`${this.baseUrl}/tx`, {
2263
2263
  method: "POST",
2264
2264
  headers: {
2265
2265
  "Content-Type": "text/plain"
@@ -2431,7 +2431,7 @@ function findP2AOutput(tx) {
2431
2431
  var CHILD_DUST_AMOUNT = 546;
2432
2432
  function buildAnchorChild(params) {
2433
2433
  const { parent, feeRate, fundingCoins, changeAddress, tapInternalKey, network } = params;
2434
- const child = new chunkVVFCCNU2_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
2434
+ const child = new chunkZN7BX5XT_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
2435
2435
  const anchor = findP2AOutput(parent);
2436
2436
  child.addInput(anchor);
2437
2437
  const estimator = TxWeightEstimator.create().addP2AInput();
@@ -2480,7 +2480,7 @@ function buildForfeitTx(inputs, forfeitPkScript, txLocktime) {
2480
2480
  );
2481
2481
  }
2482
2482
  function buildForfeitTxWithOutput(inputs, output, txLocktime) {
2483
- const tx = new chunkVVFCCNU2_cjs.Transaction({
2483
+ const tx = new chunkZN7BX5XT_cjs.Transaction({
2484
2484
  version: 3,
2485
2485
  lockTime: txLocktime
2486
2486
  });
@@ -2507,7 +2507,7 @@ function validateConnectorsTxGraph(settlementTxB64, connectorsGraph) {
2507
2507
  connectorsGraph.validate();
2508
2508
  if (connectorsGraph.root.inputsLength !== 1) throw ErrNumberOfInputs;
2509
2509
  const rootInput = connectorsGraph.root.getInput(0);
2510
- const settlementTx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(settlementTxB64));
2510
+ const settlementTx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(settlementTxB64));
2511
2511
  if (settlementTx.outputsLength <= BATCH_OUTPUT_CONNECTORS_INDEX)
2512
2512
  throw ErrInvalidSettlementTxOutputs;
2513
2513
  const expectedRootTxid = settlementTx.id;
@@ -2556,7 +2556,7 @@ function validateVtxoTxGraph(graph, roundTransaction, sweepTapTreeRoot) {
2556
2556
  if (previousScriptKey.length !== 32) {
2557
2557
  throw new Error(`parent output ${childIndex} has invalid script`);
2558
2558
  }
2559
- const cosigners = chunkVVFCCNU2_cjs.getArkPsbtFields(child.root, 0, chunkVVFCCNU2_cjs.CosignerPublicKey);
2559
+ const cosigners = chunkZN7BX5XT_cjs.getArkPsbtFields(child.root, 0, chunkZN7BX5XT_cjs.CosignerPublicKey);
2560
2560
  if (cosigners.length === 0) {
2561
2561
  throw ErrMissingCosignersPublicKeys;
2562
2562
  }
@@ -2614,7 +2614,7 @@ var EmulatorPacket = class _EmulatorPacket {
2614
2614
  return new _EmulatorPacket(entries);
2615
2615
  }
2616
2616
  static fromBytes(data) {
2617
- const reader = new chunkFEBAG2K2_cjs.BufferReader(data);
2617
+ const reader = new chunkURILS6HH_cjs.BufferReader(data);
2618
2618
  const entryCount = reader.readCompactSize();
2619
2619
  const entries = [];
2620
2620
  for (let i = 0; i < entryCount; i++) {
@@ -2632,7 +2632,7 @@ var EmulatorPacket = class _EmulatorPacket {
2632
2632
  return _EmulatorPacket.PACKET_TYPE;
2633
2633
  }
2634
2634
  serialize() {
2635
- const writer = new chunkFEBAG2K2_cjs.BufferWriter();
2635
+ const writer = new chunkURILS6HH_cjs.BufferWriter();
2636
2636
  writer.writeCompactSize(this.entries.length);
2637
2637
  for (const entry of this.entries) {
2638
2638
  writer.writeUint16LE(entry.vin);
@@ -2719,7 +2719,7 @@ var Extension = class _Extension {
2719
2719
  `expected magic prefix ${base.hex.encode(ARKADE_MAGIC)}, got ${base.hex.encode(payload.slice(0, Math.min(payload.length, ARKADE_MAGIC.length)))}`
2720
2720
  );
2721
2721
  }
2722
- const reader = new chunkFEBAG2K2_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
2722
+ const reader = new chunkURILS6HH_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
2723
2723
  const packets = [];
2724
2724
  while (reader.remaining() > 0) {
2725
2725
  const packetType = reader.readByte();
@@ -2792,7 +2792,7 @@ var Extension = class _Extension {
2792
2792
  * getAssetPacket returns the embedded Packet, or null if not present.
2793
2793
  */
2794
2794
  getAssetPacket() {
2795
- return this.packets.find((p) => p instanceof chunkFEBAG2K2_cjs.Packet) ?? null;
2795
+ return this.packets.find((p) => p instanceof chunkURILS6HH_cjs.Packet) ?? null;
2796
2796
  }
2797
2797
  /**
2798
2798
  * getEmulatorPacket returns the embedded EmulatorPacket, or null if not present.
@@ -2816,8 +2816,8 @@ var Extension = class _Extension {
2816
2816
  };
2817
2817
  function parsePacket(packetType, data) {
2818
2818
  switch (packetType) {
2819
- case chunkFEBAG2K2_cjs.Packet.PACKET_TYPE:
2820
- return chunkFEBAG2K2_cjs.Packet.fromBytes(data);
2819
+ case chunkURILS6HH_cjs.Packet.PACKET_TYPE:
2820
+ return chunkURILS6HH_cjs.Packet.fromBytes(data);
2821
2821
  case EmulatorPacket.PACKET_TYPE:
2822
2822
  return EmulatorPacket.fromBytes(data);
2823
2823
  default:
@@ -2864,22 +2864,22 @@ function buildOpReturnScript(data) {
2864
2864
  }
2865
2865
  return script;
2866
2866
  }
2867
- var ErrOffchainOutputNotFound = (address) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(`offchain send output not found: ${address}`);
2868
- var ErrInvalidAssetOutputAmount = (got, want, assetId) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2867
+ var ErrOffchainOutputNotFound = (address) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(`offchain send output not found: ${address}`);
2868
+ var ErrInvalidAssetOutputAmount = (got, want, assetId) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2869
2869
  `invalid asset output amount for ${assetId}: got ${got}, want ${want}`
2870
2870
  );
2871
- var ErrAssetGroupNotFound = (assetId) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(`asset group not found in batch leaf: ${assetId}`);
2872
- var ErrAssetOutputNotFound = (assetId, outputIndex) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2871
+ var ErrAssetGroupNotFound = (assetId) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(`asset group not found in batch leaf: ${assetId}`);
2872
+ var ErrAssetOutputNotFound = (assetId, outputIndex) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2873
2873
  `asset output not found in asset group ${assetId} at index ${outputIndex}`
2874
2874
  );
2875
- var ErrOnchainOutputNotFound = (address) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(`onchain output not found: ${address}`);
2876
- var ErrUnvalidatedOffchainOutput = (address) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2875
+ var ErrOnchainOutputNotFound = (address) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(`onchain output not found: ${address}`);
2876
+ var ErrUnvalidatedOffchainOutput = (address) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2877
2877
  `offchain output ${address} cannot be validated: virtual output tree signing did not run`
2878
2878
  );
2879
- var ErrIntentOutputNotFound = (index, kind) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2879
+ var ErrIntentOutputNotFound = (index, kind) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2880
2880
  `${kind} output ${index} of the intent proof is not present in what the server built`
2881
2881
  );
2882
- var ErrUnvalidatedIntentOutput = (index) => new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2882
+ var ErrUnvalidatedIntentOutput = (index) => new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2883
2883
  `offchain output ${index} of the intent proof cannot be validated: virtual output tree signing did not run`
2884
2884
  );
2885
2885
  var ErrInvalidOnchainOutputAmount = (address) => new Error(`invalid onchain output amount: ${address}`);
@@ -2888,7 +2888,7 @@ var ErrInvalidOffchainOutputAmount = (address) => new Error(`invalid offchain ou
2888
2888
  function assertFinalCommitmentMatchesValidated(finalCommitmentTx, validatedCommitmentTxid, context) {
2889
2889
  if (!validatedCommitmentTxid) return;
2890
2890
  if (finalCommitmentTx.id === validatedCommitmentTxid) return;
2891
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
2891
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
2892
2892
  `${context}: finalization commitment tx ${finalCommitmentTx.id} differs from the validated commitment tx ${validatedCommitmentTxid}`
2893
2893
  );
2894
2894
  }
@@ -2898,7 +2898,7 @@ function validateBatchRecipients(commitmentTx, vtxoTreeLeaves, recipients, netwo
2898
2898
  for (const recipient of recipients) {
2899
2899
  let arkAddress;
2900
2900
  try {
2901
- arkAddress = chunkVVFCCNU2_cjs.ArkAddress.decode(recipient.address);
2901
+ arkAddress = chunkZN7BX5XT_cjs.ArkAddress.decode(recipient.address);
2902
2902
  } catch {
2903
2903
  validateOnchainRecipient(commitmentTx, recipient, network, usedOnchainOutputs);
2904
2904
  continue;
@@ -2910,7 +2910,7 @@ function validateBatchRecipientsWithoutTree(commitmentTx, recipients, network) {
2910
2910
  const usedOnchainOutputs = /* @__PURE__ */ new Set();
2911
2911
  for (const recipient of recipients) {
2912
2912
  try {
2913
- chunkVVFCCNU2_cjs.ArkAddress.decode(recipient.address);
2913
+ chunkZN7BX5XT_cjs.ArkAddress.decode(recipient.address);
2914
2914
  } catch {
2915
2915
  validateOnchainRecipient(commitmentTx, recipient, network, usedOnchainOutputs);
2916
2916
  continue;
@@ -2919,7 +2919,7 @@ function validateBatchRecipientsWithoutTree(commitmentTx, recipients, network) {
2919
2919
  }
2920
2920
  }
2921
2921
  function declaredIntentOutputs(signedProof, onchainOutputIndexes) {
2922
- const proof = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(signedProof));
2922
+ const proof = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(signedProof));
2923
2923
  const onchain = new Set(onchainOutputIndexes);
2924
2924
  const declared = [];
2925
2925
  for (let i = 0; i < proof.outputsLength; i++) {
@@ -3211,7 +3211,7 @@ function assetMintResolver() {
3211
3211
  if (!tx.assets?.length || !tx.key.arkTxid) return void 0;
3212
3212
  const minted = tx.assets.filter((a) => {
3213
3213
  try {
3214
- return base.hex.encode(chunkFEBAG2K2_cjs.AssetId.fromString(a.assetId).txid) === tx.key.arkTxid;
3214
+ return base.hex.encode(chunkURILS6HH_cjs.AssetId.fromString(a.assetId).txid) === tx.key.arkTxid;
3215
3215
  } catch {
3216
3216
  return false;
3217
3217
  }
@@ -3288,7 +3288,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
3288
3288
  const existing = inputsByAssetId.get(asset.assetId);
3289
3289
  inputsByAssetId.set(asset.assetId, [
3290
3290
  ...existing ?? [],
3291
- chunkFEBAG2K2_cjs.AssetInput.create(inputIndex, asset.amount)
3291
+ chunkURILS6HH_cjs.AssetInput.create(inputIndex, asset.amount)
3292
3292
  ]);
3293
3293
  }
3294
3294
  }
@@ -3300,7 +3300,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
3300
3300
  const existing = outputsByAssetId.get(asset.assetId);
3301
3301
  outputsByAssetId.set(asset.assetId, [
3302
3302
  ...existing ?? [],
3303
- chunkFEBAG2K2_cjs.AssetOutput.create(outputIndex, asset.amount)
3303
+ chunkURILS6HH_cjs.AssetOutput.create(outputIndex, asset.amount)
3304
3304
  ]);
3305
3305
  }
3306
3306
  }
@@ -3311,7 +3311,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
3311
3311
  const existing = outputsByAssetId.get(asset.assetId);
3312
3312
  outputsByAssetId.set(asset.assetId, [
3313
3313
  ...existing ?? [],
3314
- chunkFEBAG2K2_cjs.AssetOutput.create(outputIndex, asset.amount)
3314
+ chunkURILS6HH_cjs.AssetOutput.create(outputIndex, asset.amount)
3315
3315
  ]);
3316
3316
  }
3317
3317
  }
@@ -3320,11 +3320,11 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
3320
3320
  for (const assetIdStr of allAssetIds) {
3321
3321
  const inputs = inputsByAssetId.get(assetIdStr);
3322
3322
  const outputs = outputsByAssetId.get(assetIdStr);
3323
- const assetId = chunkFEBAG2K2_cjs.AssetId.fromString(assetIdStr);
3324
- const group = chunkFEBAG2K2_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
3323
+ const assetId = chunkURILS6HH_cjs.AssetId.fromString(assetIdStr);
3324
+ const group = chunkURILS6HH_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
3325
3325
  groups.push(group);
3326
3326
  }
3327
- return chunkFEBAG2K2_cjs.Packet.create(groups);
3327
+ return chunkURILS6HH_cjs.Packet.create(groups);
3328
3328
  }
3329
3329
  function selectCoinsWithAsset(coins, assetId, requiredAmount) {
3330
3330
  const coinsWithAsset = coins.filter((coin) => coin.assets?.some((a) => a.assetId === assetId));
@@ -3408,7 +3408,7 @@ function meetsInputExpiryFloor(coin, floor) {
3408
3408
  }
3409
3409
  function toXOnlySignerHex(pubkeyHex) {
3410
3410
  const bytes = base.hex.decode(pubkeyHex);
3411
- if (bytes.length === 32 || bytes.length === 33) return base.hex.encode(chunkCFOIHLON_cjs.toXOnly(bytes, "signer key"));
3411
+ if (bytes.length === 32 || bytes.length === 33) return base.hex.encode(chunkEP6XF7JX_cjs.toXOnly(bytes, "signer key"));
3412
3412
  throw new Error(`invalid signer pubkey length: expected 32 or 33 bytes, got ${bytes.length}`);
3413
3413
  }
3414
3414
  function signerSetFromInfo(info) {
@@ -3455,13 +3455,13 @@ var toTimelock = (value) => ({
3455
3455
  var toSeconds = (t) => t.type === "seconds" ? t.value : t.value * NOMINAL_BLOCK_SECONDS;
3456
3456
  function assertTimelockInPolicy(timelock, policy, label, overrideOption) {
3457
3457
  if (policy.requireSeconds && timelock.type === "blocks") {
3458
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3458
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3459
3459
  `${label} rejected: block-typed timelocks are not accepted (got ${timelock.value})`
3460
3460
  );
3461
3461
  }
3462
3462
  const seconds = toSeconds(timelock);
3463
3463
  if (seconds < policy.minSeconds) {
3464
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3464
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3465
3465
  `${label} rejected: ${timelock.value} ${timelock.type} is below the ${policy.minSeconds}s floor; pass ${overrideOption}: ${seconds}n to Wallet.create to lower it`
3466
3466
  );
3467
3467
  }
@@ -3482,7 +3482,7 @@ function resolveBatchExpiryPolicy(network, overrides) {
3482
3482
  }
3483
3483
  function assertValidBatchExpiry(batchExpiry, policy) {
3484
3484
  if (policy.advertisedVtxoTreeExpiry !== void 0 && batchExpiry !== policy.advertisedVtxoTreeExpiry) {
3485
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3485
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3486
3486
  `batch expiry rejected: ${batchExpiry} does not match the advertised vtxoTreeExpiry ${policy.advertisedVtxoTreeExpiry}`
3487
3487
  );
3488
3488
  }
@@ -3512,21 +3512,21 @@ function resolveCheckpointExitDelayPolicy(network, overrides) {
3512
3512
  function assertValidServerUnrollScript(checkpointTapscript, policy) {
3513
3513
  let script;
3514
3514
  try {
3515
- script = chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
3515
+ script = chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
3516
3516
  } catch (e) {
3517
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3517
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3518
3518
  `checkpoint exit delay rejected: invalid checkpointTapscript from server (${e instanceof Error ? e.message : String(e)})`
3519
3519
  );
3520
3520
  }
3521
3521
  if (policy.advertisedForfeitPubkey !== void 0) {
3522
3522
  const { pubkeys } = script.params;
3523
3523
  if (pubkeys.length !== 1) {
3524
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3524
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3525
3525
  `checkpoint exit delay rejected: checkpointTapscript must commit to exactly one pubkey, got ${pubkeys.length} [${pubkeys.map(base.hex.encode).join(", ")}]`
3526
3526
  );
3527
3527
  }
3528
3528
  if (!utils_js.equalBytes(pubkeys[0], policy.advertisedForfeitPubkey)) {
3529
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3529
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3530
3530
  `checkpoint exit delay rejected: checkpointTapscript pubkey ${base.hex.encode(pubkeys[0])} does not match the advertised forfeitPubkey ${base.hex.encode(policy.advertisedForfeitPubkey)}`
3531
3531
  );
3532
3532
  }
@@ -3570,8 +3570,8 @@ function buildOffchainTx(inputs, outputs, serverUnrollScript) {
3570
3570
  function buildVirtualTx(inputs, outputs) {
3571
3571
  let lockTime = 0n;
3572
3572
  for (const input of inputs) {
3573
- const tapscript = chunkVVFCCNU2_cjs.decodeTapscript(chunkVVFCCNU2_cjs.scriptFromTapLeafScript(input.tapLeafScript));
3574
- if (chunkVVFCCNU2_cjs.CLTVMultisigTapscript.is(tapscript)) {
3573
+ const tapscript = chunkZN7BX5XT_cjs.decodeTapscript(chunkZN7BX5XT_cjs.scriptFromTapLeafScript(input.tapLeafScript));
3574
+ if (chunkZN7BX5XT_cjs.CLTVMultisigTapscript.is(tapscript)) {
3575
3575
  if (lockTime !== 0n) {
3576
3576
  if (isSeconds(lockTime) !== isSeconds(tapscript.params.absoluteTimelock)) {
3577
3577
  throw new Error("cannot mix seconds and blocks locktime");
@@ -3582,7 +3582,7 @@ function buildVirtualTx(inputs, outputs) {
3582
3582
  }
3583
3583
  }
3584
3584
  }
3585
- const tx = new chunkVVFCCNU2_cjs.Transaction({
3585
+ const tx = new chunkZN7BX5XT_cjs.Transaction({
3586
3586
  version: 3,
3587
3587
  lockTime: Number(lockTime)
3588
3588
  });
@@ -3592,12 +3592,12 @@ function buildVirtualTx(inputs, outputs) {
3592
3592
  index: input.vout,
3593
3593
  sequence: lockTime ? btcSigner.DEFAULT_SEQUENCE - 1 : void 0,
3594
3594
  witnessUtxo: {
3595
- script: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript,
3595
+ script: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript,
3596
3596
  amount: BigInt(input.value)
3597
3597
  },
3598
3598
  tapLeafScript: [input.tapLeafScript]
3599
3599
  });
3600
- chunkVVFCCNU2_cjs.setArkPsbtField(tx, i, chunkVVFCCNU2_cjs.VtxoTaprootTree, input.tapTree);
3600
+ chunkZN7BX5XT_cjs.setArkPsbtField(tx, i, chunkZN7BX5XT_cjs.VtxoTaprootTree, input.tapTree);
3601
3601
  }
3602
3602
  for (const output of outputs) {
3603
3603
  tx.addOutput(output);
@@ -3608,8 +3608,8 @@ function buildVirtualTx(inputs, outputs) {
3608
3608
  return tx;
3609
3609
  }
3610
3610
  function buildCheckpointTx(vtxo, serverUnrollScript) {
3611
- const collaborativeClosure = chunkVVFCCNU2_cjs.decodeTapscript(chunkVVFCCNU2_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
3612
- const checkpointVtxoScript = new chunkVVFCCNU2_cjs.VtxoScript([
3611
+ const collaborativeClosure = chunkZN7BX5XT_cjs.decodeTapscript(chunkZN7BX5XT_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
3612
+ const checkpointVtxoScript = new chunkZN7BX5XT_cjs.VtxoScript([
3613
3613
  serverUnrollScript.script,
3614
3614
  collaborativeClosure.script
3615
3615
  ]);
@@ -3685,7 +3685,7 @@ function verifyTapscriptSignatures(tx, inputIndex, requiredSigners, excludePubke
3685
3685
  const sighashType = signature.length === 65 ? signature[64] : btcSigner.SigHash.DEFAULT;
3686
3686
  const sig = signature.subarray(0, 64);
3687
3687
  if (!allowedSighashTypes.includes(sighashType)) {
3688
- const sighashName = chunkVVFCCNU2_cjs.formatSighash(sighashType);
3688
+ const sighashName = chunkZN7BX5XT_cjs.formatSighash(sighashType);
3689
3689
  throw new Error(
3690
3690
  `Unallowed sighash type ${sighashName} for input ${inputIndex}, pubkey ${pubKeyHex}.`
3691
3691
  );
@@ -3759,7 +3759,7 @@ function combineTapscriptSigs(signedTx, originalTx) {
3759
3759
  }
3760
3760
  function isValidArkAddress(address) {
3761
3761
  try {
3762
- chunkVVFCCNU2_cjs.ArkAddress.decode(address);
3762
+ chunkZN7BX5XT_cjs.ArkAddress.decode(address);
3763
3763
  return true;
3764
3764
  } catch (e) {
3765
3765
  return false;
@@ -3767,16 +3767,16 @@ function isValidArkAddress(address) {
3767
3767
  }
3768
3768
  function matchServerCheckpoints(serverCheckpointTxs, expectedCheckpoints, context) {
3769
3769
  if (serverCheckpointTxs.length !== expectedCheckpoints.length) {
3770
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3770
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3771
3771
  `${context} returned ${serverCheckpointTxs.length} checkpoints, expected ${expectedCheckpoints.length}`
3772
3772
  );
3773
3773
  }
3774
3774
  const byTxid = new Map(expectedCheckpoints.map((c) => [c.id, c]));
3775
3775
  return serverCheckpointTxs.map((encoded, index) => {
3776
- const server = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
3776
+ const server = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
3777
3777
  const local = byTxid.get(server.id);
3778
3778
  if (!local) {
3779
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3779
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3780
3780
  `${context} checkpoint ${index} txid ${server.id} does not match any submitted checkpoint`
3781
3781
  );
3782
3782
  }
@@ -3786,14 +3786,14 @@ function matchServerCheckpoints(serverCheckpointTxs, expectedCheckpoints, contex
3786
3786
  }
3787
3787
  function assertSubmittedArkTxid(response, signedArkTx, context) {
3788
3788
  if (response.arkTxid !== signedArkTx.id) {
3789
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3789
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3790
3790
  `${context} returned ark txid ${response.arkTxid}, expected ${signedArkTx.id}`
3791
3791
  );
3792
3792
  }
3793
3793
  if (response.finalArkTx === void 0) return;
3794
- const finalTxid = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx)).id;
3794
+ const finalTxid = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx)).id;
3795
3795
  if (finalTxid !== signedArkTx.id) {
3796
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3796
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3797
3797
  `${context} returned final ark tx ${finalTxid}, expected ${signedArkTx.id}`
3798
3798
  );
3799
3799
  }
@@ -3805,20 +3805,20 @@ function assertServerSignedLeaf(serverTx, localTx, inputIndex, serverPubkeys, co
3805
3805
  `${context}: input ${inputIndex} carries no spend leaf to verify the server signature against`
3806
3806
  );
3807
3807
  }
3808
- const script = chunkVVFCCNU2_cjs.scriptFromTapLeafScript(leaf);
3808
+ const script = chunkZN7BX5XT_cjs.scriptFromTapLeafScript(leaf);
3809
3809
  let leafPubkeys;
3810
3810
  try {
3811
- leafPubkeys = chunkVVFCCNU2_cjs.decodeTapscript(script).params.pubkeys.map(
3812
- (key) => base.hex.encode(chunkCFOIHLON_cjs.toXOnly(key, "leaf key"))
3811
+ leafPubkeys = chunkZN7BX5XT_cjs.decodeTapscript(script).params.pubkeys.map(
3812
+ (key) => base.hex.encode(chunkEP6XF7JX_cjs.toXOnly(key, "leaf key"))
3813
3813
  );
3814
3814
  } catch (error) {
3815
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3815
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3816
3816
  `${context}: input ${inputIndex} spend leaf cannot be decoded (${error instanceof Error ? error.message : String(error)})`
3817
3817
  );
3818
3818
  }
3819
3819
  const signer = leafPubkeys.find((key) => serverPubkeys.has(key));
3820
3820
  if (!signer) {
3821
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3821
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3822
3822
  `${context}: input ${inputIndex} spend leaf names no signer key the server advertises`
3823
3823
  );
3824
3824
  }
@@ -3832,7 +3832,7 @@ function assertServerSignedLeaf(serverTx, localTx, inputIndex, serverPubkeys, co
3832
3832
  payment_js.tapLeafHash(script)
3833
3833
  );
3834
3834
  } catch (error) {
3835
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3835
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3836
3836
  `${context}: input ${inputIndex} is not signed by the server on the leaf being spent (${error instanceof Error ? error.message : String(error)})`
3837
3837
  );
3838
3838
  }
@@ -3841,20 +3841,20 @@ function assertCheckpointsMatchInputs(checkpoints, inputs, unrollCandidates, con
3841
3841
  const byOutpoint = new Map(inputs.map((input) => [`${input.txid}:${input.vout}`, input]));
3842
3842
  for (const [index, checkpoint] of checkpoints.entries()) {
3843
3843
  if (checkpoint.inputsLength !== 1) {
3844
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3844
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3845
3845
  `${context}: checkpoint ${index} spends ${checkpoint.inputsLength} inputs, expected 1`
3846
3846
  );
3847
3847
  }
3848
3848
  const spent = checkpoint.getInput(0);
3849
3849
  if (!spent.txid || spent.index === void 0) {
3850
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3850
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3851
3851
  `${context}: checkpoint ${index} has no input outpoint`
3852
3852
  );
3853
3853
  }
3854
3854
  const outpoint = `${base.hex.encode(spent.txid)}:${spent.index}`;
3855
3855
  const input = byOutpoint.get(outpoint);
3856
3856
  if (!input) {
3857
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3857
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3858
3858
  `${context}: checkpoint ${index} spends ${outpoint}, which is not one of the requested virtual outputs`
3859
3859
  );
3860
3860
  }
@@ -3862,7 +3862,7 @@ function assertCheckpointsMatchInputs(checkpoints, inputs, unrollCandidates, con
3862
3862
  (unroll) => buildCheckpointTx(input, unroll).tx.id === checkpoint.id
3863
3863
  );
3864
3864
  if (!rebuilt) {
3865
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3865
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3866
3866
  `${context}: checkpoint ${index} txid ${checkpoint.id} differs from the checkpoint built locally for ${outpoint}`
3867
3867
  );
3868
3868
  }
@@ -3888,9 +3888,9 @@ async function submitOffchainTx(provider, offchainTx, signer, hooks, options) {
3888
3888
  const matched = matchServerCheckpoints(signedCheckpointTxs, offchainTx.checkpoints, "submitTx");
3889
3889
  matched.forEach(({ server }, index) => {
3890
3890
  try {
3891
- chunkVVFCCNU2_cjs.assertAllowedSighashTypes(server);
3891
+ chunkZN7BX5XT_cjs.assertAllowedSighashTypes(server);
3892
3892
  } catch (error) {
3893
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3893
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3894
3894
  `submitTx checkpoint ${index}: ${error instanceof Error ? error.message : String(error)}`
3895
3895
  );
3896
3896
  }
@@ -3898,14 +3898,14 @@ async function submitOffchainTx(provider, offchainTx, signer, hooks, options) {
3898
3898
  const verify = options?.verifyServerSignatures;
3899
3899
  if (verify) {
3900
3900
  if (response.finalArkTx === void 0) {
3901
- throw new chunkVVFCCNU2_cjs.ServerResponseMismatchError(
3901
+ throw new chunkZN7BX5XT_cjs.ServerResponseMismatchError(
3902
3902
  "submitTx: server returned no final ark tx to verify its signatures against"
3903
3903
  );
3904
3904
  }
3905
- const finalArkTx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx));
3905
+ const finalArkTx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx));
3906
3906
  const serverPubkeys = new Set(
3907
3907
  [verify.serverPubkey, ...verify.deprecatedServerPubkeys ?? []].map(
3908
- (key) => base.hex.encode(chunkCFOIHLON_cjs.toXOnly(key, "server key"))
3908
+ (key) => base.hex.encode(chunkEP6XF7JX_cjs.toXOnly(key, "server key"))
3909
3909
  )
3910
3910
  );
3911
3911
  for (let i = 0; i < offchainTx.arkTx.inputsLength; i++) {
@@ -3969,7 +3969,7 @@ async function submitViaEmulator(emulator, offchainTx, signer, opts) {
3969
3969
  base.base64.encode(arkTx.toPSBT()),
3970
3970
  checkpoints.map((c) => base.base64.encode(c.toPSBT()))
3971
3971
  );
3972
- const txid = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(res.signedArkTx)).id;
3972
+ const txid = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(res.signedArkTx)).id;
3973
3973
  assertSubmittedArkTxid({ arkTxid: txid }, arkTx, "emulator submitTx");
3974
3974
  return { txid, signedArkTx: res.signedArkTx, signedCheckpointTxs: res.signedCheckpointTxs };
3975
3975
  }
@@ -3977,12 +3977,12 @@ function claimWithPreimageIdentity(identity, preimage) {
3977
3977
  return {
3978
3978
  ...identity,
3979
3979
  sign: async (tx, inputIndexes) => {
3980
- const signed = chunkVVFCCNU2_cjs.Transaction.fromPSBT(
3980
+ const signed = chunkZN7BX5XT_cjs.Transaction.fromPSBT(
3981
3981
  (await identity.sign(tx.clone(), inputIndexes)).toPSBT()
3982
3982
  );
3983
3983
  const indexes = inputIndexes ?? Array.from({ length: signed.inputsLength }, (_, i) => i);
3984
3984
  for (const index of indexes) {
3985
- chunkVVFCCNU2_cjs.setArkPsbtField(signed, index, chunkVVFCCNU2_cjs.ConditionWitness, [preimage]);
3985
+ chunkZN7BX5XT_cjs.setArkPsbtField(signed, index, chunkZN7BX5XT_cjs.ConditionWitness, [preimage]);
3986
3986
  }
3987
3987
  return signed;
3988
3988
  }
@@ -4165,7 +4165,7 @@ function extendCoinWithTapscript(boardingTapscript, utxo) {
4165
4165
  };
4166
4166
  }
4167
4167
  function deriveContractTapscripts(contract) {
4168
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
4168
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
4169
4169
  if (!handler) {
4170
4170
  throw new Error(`No handler for contract type '${contract.type}'`);
4171
4171
  }
@@ -4268,7 +4268,7 @@ function assertRecipientArkadeAddress(encoded, address, context) {
4268
4268
  function assertTapTreeDerivesAddress(encoded, tapTree, address) {
4269
4269
  let derived;
4270
4270
  try {
4271
- derived = chunkVVFCCNU2_cjs.VtxoScript.decode(tapTree).pkScript;
4271
+ derived = chunkZN7BX5XT_cjs.VtxoScript.decode(tapTree).pkScript;
4272
4272
  } catch (e) {
4273
4273
  throw new Error(
4274
4274
  `Invalid tapTree for ${encoded}: ${e instanceof Error ? e.message : String(e)}`
@@ -4285,7 +4285,7 @@ function validateRecipients(recipients, dustAmount, context) {
4285
4285
  for (const recipient of recipients) {
4286
4286
  let address;
4287
4287
  try {
4288
- address = chunkVVFCCNU2_cjs.ArkAddress.decode(recipient.address);
4288
+ address = chunkZN7BX5XT_cjs.ArkAddress.decode(recipient.address);
4289
4289
  } catch (e) {
4290
4290
  throw new Error(`Invalid Arkade address: ${recipient.address}`);
4291
4291
  }
@@ -4310,7 +4310,7 @@ function validateRecipients(recipients, dustAmount, context) {
4310
4310
 
4311
4311
  // src/contracts/spendability.ts
4312
4312
  function isContractGenericallySpendable(contract) {
4313
- return chunkCFOIHLON_cjs.contractHandlers.get(contract.type)?.isGenericallySpendable?.(contract) === true;
4313
+ return chunkEP6XF7JX_cjs.contractHandlers.get(contract.type)?.isGenericallySpendable?.(contract) === true;
4314
4314
  }
4315
4315
  function gatedContracts(contracts) {
4316
4316
  const gated = /* @__PURE__ */ new Map();
@@ -4332,7 +4332,7 @@ function gateExclusion(gated) {
4332
4332
  return (vtxo) => {
4333
4333
  const type = gatedTypeOf(vtxo, gated);
4334
4334
  if (type === void 0) return void 0;
4335
- if (!chunkCFOIHLON_cjs.contractHandlers.has(type)) {
4335
+ if (!chunkEP6XF7JX_cjs.contractHandlers.has(type)) {
4336
4336
  return `at ${vtxo.script} (contract type '${type}') has no handler registered in this build`;
4337
4337
  }
4338
4338
  return `at ${vtxo.script} (contract type '${type}') is not generically spendable`;
@@ -4368,7 +4368,7 @@ function selectPendingRecoveryOutpoints(contractsWithVtxos, signerSet, nowSecond
4368
4368
  continue;
4369
4369
  }
4370
4370
  for (const v of vtxos) {
4371
- if (!chunkVVFCCNU2_cjs.isVtxoSpent(v) && !v.isSwept && !v.isUnrolled) {
4371
+ if (!chunkZN7BX5XT_cjs.isVtxoSpent(v) && !v.isSwept && !v.isUnrolled) {
4372
4372
  out.add(`${v.txid}:${v.vout}`);
4373
4373
  }
4374
4374
  }
@@ -4404,14 +4404,14 @@ function byValueDescending(vtxos) {
4404
4404
  return [...vtxos].sort((a, b) => b.value - a.value);
4405
4405
  }
4406
4406
  async function fetchTimeHeight(wallet) {
4407
- return chunkVVFCCNU2_cjs.resolveTimeHeight(wallet.onchainProvider);
4407
+ return chunkZN7BX5XT_cjs.resolveTimeHeight(wallet.onchainProvider);
4408
4408
  }
4409
4409
  function heldVtxosOf(wallet) {
4410
4410
  const held = wallet.getHeldVtxos;
4411
4411
  return typeof held === "function" ? held.call(wallet) : Promise.resolve([]);
4412
4412
  }
4413
4413
  function canMigrateBySend(vtxo, now) {
4414
- if (!chunkVVFCCNU2_cjs.canSpendOffchain(vtxo, now)) return false;
4414
+ if (!chunkZN7BX5XT_cjs.canSpendOffchain(vtxo, now)) return false;
4415
4415
  return vtxo.expiresAt !== void 0 || vtxo.expiresAtHeight !== void 0;
4416
4416
  }
4417
4417
  function byExpiryAscending(vtxos, now) {
@@ -4419,7 +4419,7 @@ function byExpiryAscending(vtxos, now) {
4419
4419
  if (vtxo.isSwept) return -Infinity;
4420
4420
  if (vtxo.expiresAt !== void 0) return vtxo.expiresAt.getTime();
4421
4421
  if (vtxo.expiresAtHeight !== void 0) {
4422
- return chunkVVFCCNU2_cjs.isPastExpiry(vtxo, now) ? -Infinity : Infinity;
4422
+ return chunkZN7BX5XT_cjs.isPastExpiry(vtxo, now) ? -Infinity : Infinity;
4423
4423
  }
4424
4424
  return Infinity;
4425
4425
  };
@@ -4446,7 +4446,7 @@ function priceSettlementInputs(vtxos, estimator) {
4446
4446
  const payable = [];
4447
4447
  const net = /* @__PURE__ */ new Map();
4448
4448
  for (const vtxo of vtxos) {
4449
- const inputFee = estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(vtxo));
4449
+ const inputFee = estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(vtxo));
4450
4450
  if (inputFee.satoshis >= vtxo.value) {
4451
4451
  continue;
4452
4452
  }
@@ -4475,7 +4475,7 @@ function offchainOutputFee(amount, estimator, arkAddress) {
4475
4475
  }
4476
4476
  const outputFee = estimator.evalOffchainOutput({
4477
4477
  amount,
4478
- script: base.hex.encode(chunkVVFCCNU2_cjs.ArkAddress.decode(arkAddress).pkScript)
4478
+ script: base.hex.encode(chunkZN7BX5XT_cjs.ArkAddress.decode(arkAddress).pkScript)
4479
4479
  });
4480
4480
  return BigInt(outputFee.satoshis);
4481
4481
  }
@@ -4526,10 +4526,10 @@ var DEFAULT_SETTLEMENT_CONFIG = {
4526
4526
  };
4527
4527
  function getRecoverableVtxos(vtxos, dustAmount, now) {
4528
4528
  return vtxos.filter((vtxo) => {
4529
- if (chunkVVFCCNU2_cjs.canRecoverOnchain(vtxo, now)) {
4529
+ if (chunkZN7BX5XT_cjs.canRecoverOnchain(vtxo, now)) {
4530
4530
  return true;
4531
4531
  }
4532
- if (chunkVVFCCNU2_cjs.canSpendOffchain(vtxo, now) && vtxo.isPreconfirmed && isSubdust(vtxo, dustAmount)) {
4532
+ if (chunkZN7BX5XT_cjs.canSpendOffchain(vtxo, now) && vtxo.isPreconfirmed && isSubdust(vtxo, dustAmount)) {
4533
4533
  return true;
4534
4534
  }
4535
4535
  return false;
@@ -4561,7 +4561,7 @@ function getRecoverableWithSubdust(vtxos, dustAmount, now) {
4561
4561
  function isVtxoExpiringSoon(vtxo, thresholdMs) {
4562
4562
  if (vtxo.isUnrolled) return false;
4563
4563
  const realThresholdMs = thresholdMs <= 100 ? DEFAULT_THRESHOLD_MS : thresholdMs;
4564
- const expiresAt = chunkVVFCCNU2_cjs.normalizeVtxo(vtxo).expiresAt;
4564
+ const expiresAt = chunkZN7BX5XT_cjs.normalizeVtxo(vtxo).expiresAt;
4565
4565
  if (expiresAt === void 0) return false;
4566
4566
  const now = Date.now();
4567
4567
  const batchExpiry = expiresAt.getTime();
@@ -4572,7 +4572,7 @@ function getExpiringAndRecoverableVtxos(vtxos, thresholdMs, dustAmount, now) {
4572
4572
  return vtxos.filter(
4573
4573
  // The leading exclusion covers the `isSubdust` arm too, which is a value
4574
4574
  // property and would otherwise re-admit an exited coin on its own.
4575
- (vtxo) => !vtxo.isUnrolled && (isVtxoExpiringSoon(vtxo, thresholdMs) || chunkVVFCCNU2_cjs.canRecoverOnchain(vtxo, now) || isSubdust(vtxo, dustAmount))
4575
+ (vtxo) => !vtxo.isUnrolled && (isVtxoExpiringSoon(vtxo, thresholdMs) || chunkZN7BX5XT_cjs.canRecoverOnchain(vtxo, now) || isSubdust(vtxo, dustAmount))
4576
4576
  );
4577
4577
  }
4578
4578
  function isMigrationCapable(wallet) {
@@ -4632,7 +4632,7 @@ var VtxoManager = class _VtxoManager {
4632
4632
  constructor(wallet, settlementConfig) {
4633
4633
  this.wallet = wallet;
4634
4634
  if (settlementConfig !== false) {
4635
- chunkVVFCCNU2_cjs.assertTimerMs("pollIntervalMs", settlementConfig?.pollIntervalMs);
4635
+ chunkZN7BX5XT_cjs.assertTimerMs("pollIntervalMs", settlementConfig?.pollIntervalMs);
4636
4636
  }
4637
4637
  this.settlementConfig = settlementConfig !== void 0 ? settlementConfig : { ...DEFAULT_SETTLEMENT_CONFIG };
4638
4638
  this.contractEventsSubscriptionReady = this.initializeSubscription();
@@ -4939,7 +4939,7 @@ var VtxoManager = class _VtxoManager {
4939
4939
  * {@link recoverImportedContracts}).
4940
4940
  */
4941
4941
  async recoverOneImportedContract(wallet, contract, vtxos, info, dustAmount) {
4942
- const recoverable = vtxos.filter((vtxo) => vtxo.isSwept && !chunkVVFCCNU2_cjs.isVtxoSpent(vtxo));
4942
+ const recoverable = vtxos.filter((vtxo) => vtxo.isSwept && !chunkZN7BX5XT_cjs.isVtxoSpent(vtxo));
4943
4943
  const estimator = new Estimator(info?.fees.intentFee ?? {});
4944
4944
  const { payable, net } = priceSettlementInputs(recoverable, estimator);
4945
4945
  const vtxoMaxAmount = info?.vtxoMaxAmount ?? -1n;
@@ -4961,7 +4961,7 @@ var VtxoManager = class _VtxoManager {
4961
4961
  if (vtxos.length === 0) return;
4962
4962
  const spent = new Set(batch.map((vtxo) => `${vtxo.txid}:${vtxo.vout}`));
4963
4963
  const stillSpendable = vtxos.some(
4964
- (vtxo) => !chunkVVFCCNU2_cjs.isVtxoSpent(vtxo) && !spent.has(`${vtxo.txid}:${vtxo.vout}`)
4964
+ (vtxo) => !chunkZN7BX5XT_cjs.isVtxoSpent(vtxo) && !spent.has(`${vtxo.txid}:${vtxo.vout}`)
4965
4965
  );
4966
4966
  if (!stillSpendable) {
4967
4967
  await wallet.removeRecoveryContract(contract.script);
@@ -5253,11 +5253,11 @@ var VtxoManager = class _VtxoManager {
5253
5253
  `Sweep not economical: output ${outputAmount} sats after ${fee} sats fee is below dust (${dustAmount} sats)`
5254
5254
  );
5255
5255
  }
5256
- const tx = new chunkVVFCCNU2_cjs.Transaction();
5256
+ const tx = new chunkZN7BX5XT_cjs.Transaction();
5257
5257
  for (const utxo of expiredUtxos) {
5258
- const utxoScript = chunkVVFCCNU2_cjs.VtxoScript.decode(utxo.tapTree);
5258
+ const utxoScript = chunkZN7BX5XT_cjs.VtxoScript.decode(utxo.tapTree);
5259
5259
  const utxoExitLeaf = utxoScript.leaves.find(
5260
- (leaf) => chunkVVFCCNU2_cjs.CSVMultisigTapscript.isScriptValid(chunkVVFCCNU2_cjs.scriptFromTapLeafScript(leaf)) === true
5260
+ (leaf) => chunkZN7BX5XT_cjs.CSVMultisigTapscript.isScriptValid(chunkZN7BX5XT_cjs.scriptFromTapLeafScript(leaf)) === true
5261
5261
  );
5262
5262
  if (!utxoExitLeaf) {
5263
5263
  throw new Error(
@@ -5272,7 +5272,7 @@ var VtxoManager = class _VtxoManager {
5272
5272
  amount: BigInt(utxo.value)
5273
5273
  },
5274
5274
  tapLeafScript: [utxoExitLeaf],
5275
- sequence: chunkVVFCCNU2_cjs.getSequence(utxoExitLeaf)
5275
+ sequence: chunkZN7BX5XT_cjs.getSequence(utxoExitLeaf)
5276
5276
  });
5277
5277
  }
5278
5278
  tx.addOutputAddress(boardingAddress, outputAmount, this.getNetwork());
@@ -5498,8 +5498,8 @@ var VtxoManager = class _VtxoManager {
5498
5498
  const cls = classifyAgainstSignerSet(serverPubKey, signerSet, nowSeconds);
5499
5499
  if (cls.status === "CURRENT") continue;
5500
5500
  const live = vtxos.filter((v) => !v.isUnrolled);
5501
- const recoverable = live.filter((v) => v.isSwept && !chunkVVFCCNU2_cjs.isVtxoSpent(v));
5502
- const spendable = live.filter((v) => !chunkVVFCCNU2_cjs.isVtxoSpent(v) && !v.isSwept);
5501
+ const recoverable = live.filter((v) => v.isSwept && !chunkZN7BX5XT_cjs.isVtxoSpent(v));
5502
+ const spendable = live.filter((v) => !chunkZN7BX5XT_cjs.isVtxoSpent(v) && !v.isSwept);
5503
5503
  const value = spendable.reduce((sum, v) => sum + v.value, 0);
5504
5504
  let recoverableCount = 0;
5505
5505
  let recoverableValue = 0;
@@ -5739,7 +5739,7 @@ var VtxoManager = class _VtxoManager {
5739
5739
  }
5740
5740
  getBoardingTimelock() {
5741
5741
  const wallet = this.getSweepWallet();
5742
- const exitScript = chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(
5742
+ const exitScript = chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(
5743
5743
  base.hex.decode(wallet.boardingTapscript.exitScript)
5744
5744
  );
5745
5745
  return exitScript.params.timelock;
@@ -5847,8 +5847,8 @@ var VtxoManager = class _VtxoManager {
5847
5847
  }
5848
5848
  /** The outpoint a `VTXO_ALREADY_SPENT` error carries in `metadata.vtxo_outpoint`, if any. */
5849
5849
  extractSpentOutpoint(error) {
5850
- const ark = chunkVVFCCNU2_cjs.maybeArkError(error);
5851
- if (!chunkVVFCCNU2_cjs.isArkError(ark, chunkVVFCCNU2_cjs.ArkErrorName.VTXO_ALREADY_SPENT)) return void 0;
5850
+ const ark = chunkZN7BX5XT_cjs.maybeArkError(error);
5851
+ if (!chunkZN7BX5XT_cjs.isArkError(ark, chunkZN7BX5XT_cjs.ArkErrorName.VTXO_ALREADY_SPENT)) return void 0;
5852
5852
  const raw = ark.metadata?.vtxo_outpoint;
5853
5853
  if (typeof raw !== "string") return void 0;
5854
5854
  const [txid, voutStr] = raw.split(":");
@@ -6022,7 +6022,7 @@ var VtxoManager = class _VtxoManager {
6022
6022
  if (filteredVtxos.length >= MAX_VTXOS_PER_SETTLEMENT) {
6023
6023
  break;
6024
6024
  }
6025
- const inputFee = estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(v));
6025
+ const inputFee = estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(v));
6026
6026
  if (inputFee.satoshis >= v.value) {
6027
6027
  continue;
6028
6028
  }
@@ -6042,7 +6042,7 @@ var VtxoManager = class _VtxoManager {
6042
6042
  const arkAddress = await this.wallet.getAddress();
6043
6043
  const outputFee = estimator.evalOffchainOutput({
6044
6044
  amount: totalAmount,
6045
- script: base.hex.encode(chunkVVFCCNU2_cjs.ArkAddress.decode(arkAddress).pkScript)
6045
+ script: base.hex.encode(chunkZN7BX5XT_cjs.ArkAddress.decode(arkAddress).pkScript)
6046
6046
  });
6047
6047
  totalAmount -= BigInt(outputFee.satoshis);
6048
6048
  if (totalAmount < dustAmount) return;
@@ -6126,7 +6126,7 @@ var ArkNote = class _ArkNote {
6126
6126
  this.value = value;
6127
6127
  this.HRP = HRP;
6128
6128
  const preimageHash = utils_js.sha256(this.preimage);
6129
- this.vtxoScript = new chunkVVFCCNU2_cjs.VtxoScript([noteTapscript(preimageHash)]);
6129
+ this.vtxoScript = new chunkZN7BX5XT_cjs.VtxoScript([noteTapscript(preimageHash)]);
6130
6130
  const leaf = this.vtxoScript.leaves[0];
6131
6131
  this.txid = base.hex.encode(new Uint8Array(preimageHash).reverse());
6132
6132
  this.tapTree = this.vtxoScript.encode();
@@ -6299,7 +6299,7 @@ var ArkadeCash = class _ArkadeCash {
6299
6299
  const privateKey = data.slice(1, 33);
6300
6300
  const serverPubKey = data.slice(33, 65);
6301
6301
  const sequence = new DataView(data.buffer, data.byteOffset + 65, 4).getUint32(0, false);
6302
- const csvTimelock2 = chunkVVFCCNU2_cjs.sequenceToTimelock(sequence);
6302
+ const csvTimelock2 = chunkZN7BX5XT_cjs.sequenceToTimelock(sequence);
6303
6303
  return new _ArkadeCash(privateKey, serverPubKey, csvTimelock2, decoded.prefix);
6304
6304
  }
6305
6305
  toString() {
@@ -6307,7 +6307,7 @@ var ArkadeCash = class _ArkadeCash {
6307
6307
  data[0] = _ArkadeCash.Version;
6308
6308
  data.set(this._privateKey, 1);
6309
6309
  data.set(this._serverPubKey, 33);
6310
- const sequence = chunkVVFCCNU2_cjs.timelockToSequence(this.csvTimelock);
6310
+ const sequence = chunkZN7BX5XT_cjs.timelockToSequence(this.csvTimelock);
6311
6311
  new DataView(data.buffer, data.byteOffset + 65, 4).setUint32(0, sequence, false);
6312
6312
  const words = base.bech32m.toWords(data);
6313
6313
  return base.bech32m.encode(this.hrp, words, 1023);
@@ -6316,7 +6316,7 @@ var ArkadeCash = class _ArkadeCash {
6316
6316
  return SingleKey.fromPrivateKey(this._privateKey);
6317
6317
  }
6318
6318
  get vtxoScript() {
6319
- return new chunkCFOIHLON_cjs.DefaultVtxo.Script({
6319
+ return new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
6320
6320
  pubKey: this._publicKey,
6321
6321
  serverPubKey: this._serverPubKey,
6322
6322
  csvTimelock: this.csvTimelock
@@ -6332,7 +6332,7 @@ var NON_TERMINAL_INTENT_STATES = ALL_INTENT_STATES.filter(
6332
6332
  (s) => !isTerminalIntentState(s)
6333
6333
  );
6334
6334
  function isConsumed(vtxo) {
6335
- return vtxo !== void 0 && chunkVVFCCNU2_cjs.isVtxoSpent(vtxo);
6335
+ return vtxo !== void 0 && chunkZN7BX5XT_cjs.isVtxoSpent(vtxo);
6336
6336
  }
6337
6337
  async function classifyIntent(intent, vtxosByOutpoint, now) {
6338
6338
  if (isTerminalIntentState(intent.state)) return void 0;
@@ -6375,7 +6375,7 @@ async function reconcileIntents(deps) {
6375
6375
  let vtxosByOutpoint = /* @__PURE__ */ new Map();
6376
6376
  if (outpoints.length > 0) {
6377
6377
  try {
6378
- const { vtxos } = await chunkVVFCCNU2_cjs.getNormalizedVtxos(deps.indexerProvider, { outpoints });
6378
+ const { vtxos } = await chunkZN7BX5XT_cjs.getNormalizedVtxos(deps.indexerProvider, { outpoints });
6379
6379
  vtxosByOutpoint = new Map(vtxos.map((v) => [outpointKey(v), v]));
6380
6380
  } catch (e) {
6381
6381
  console.error("reconcileIntents: failed to fetch input VTXO state", e);
@@ -6435,7 +6435,7 @@ async function releaseFromServer(intent, deps, now) {
6435
6435
  });
6436
6436
  }
6437
6437
  function isNoMatchingIntentsError(e) {
6438
- return chunkVVFCCNU2_cjs.isArkError(e, chunkVVFCCNU2_cjs.ArkErrorName.INVALID_INTENT_PROOF) && e.message.includes("no matching intents found");
6438
+ return chunkZN7BX5XT_cjs.isArkError(e, chunkZN7BX5XT_cjs.ArkErrorName.INVALID_INTENT_PROOF) && e.message.includes("no matching intents found");
6439
6439
  }
6440
6440
  function terminal(intent, state, now, patch) {
6441
6441
  return { ...intent, ...patch, state, updatedAt: now };
@@ -6654,7 +6654,7 @@ async function captureExitBranch(params) {
6654
6654
  const nonCommitment = ordered.filter((c) => chainTxTypeToChainedExit(c.type) !== 1 /* Commitment */).map((c) => c.txid);
6655
6655
  if (nonCommitment.length > 0) {
6656
6656
  for (const psbt of await resolver.getVirtualTxs(nonCommitment)) {
6657
- psbtByTxid.set(chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
6657
+ psbtByTxid.set(chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
6658
6658
  }
6659
6659
  }
6660
6660
  }
@@ -6697,10 +6697,10 @@ var IndexerExitDataSource = class {
6697
6697
  while (hasMore) {
6698
6698
  const { chain: page, page: meta } = await this.indexer.getVtxoChain(
6699
6699
  { txid: vtxo.txid, vout: vtxo.vout },
6700
- { pageIndex, pageSize: chunkVVFCCNU2_cjs.DEFAULT_PAGE_SIZE }
6700
+ { pageIndex, pageSize: chunkZN7BX5XT_cjs.DEFAULT_PAGE_SIZE }
6701
6701
  );
6702
6702
  chain.push(...page);
6703
- hasMore = meta ? page.length === chunkVVFCCNU2_cjs.DEFAULT_PAGE_SIZE : false;
6703
+ hasMore = meta ? page.length === chunkZN7BX5XT_cjs.DEFAULT_PAGE_SIZE : false;
6704
6704
  pageIndex++;
6705
6705
  }
6706
6706
  return chain;
@@ -6712,12 +6712,12 @@ var IndexerExitDataSource = class {
6712
6712
  while (hasMore) {
6713
6713
  const { txs, page } = await this.indexer.getVirtualTxs(txids, {
6714
6714
  pageIndex,
6715
- pageSize: chunkVVFCCNU2_cjs.DEFAULT_PAGE_SIZE
6715
+ pageSize: chunkZN7BX5XT_cjs.DEFAULT_PAGE_SIZE
6716
6716
  });
6717
6717
  for (const psbt of txs) {
6718
- out.set(chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
6718
+ out.set(chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
6719
6719
  }
6720
- hasMore = page ? txs.length === chunkVVFCCNU2_cjs.DEFAULT_PAGE_SIZE : false;
6720
+ hasMore = page ? txs.length === chunkZN7BX5XT_cjs.DEFAULT_PAGE_SIZE : false;
6721
6721
  pageIndex++;
6722
6722
  }
6723
6723
  return out;
@@ -6738,7 +6738,7 @@ function chainedTxTypeToChainTxType(t) {
6738
6738
  }
6739
6739
  }
6740
6740
  function psbtInputTxids(psbtBase64) {
6741
- return txInputTxids(chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64)));
6741
+ return txInputTxids(chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64)));
6742
6742
  }
6743
6743
  function txInputTxids(tx) {
6744
6744
  const ids = [];
@@ -7042,10 +7042,10 @@ async function resolveArkInfo(arkProvider, walletRepository, opts) {
7042
7042
  try {
7043
7043
  info = await arkProvider.getInfo();
7044
7044
  } catch (err) {
7045
- if (opts?.requireLive || !chunkVVFCCNU2_cjs.isRetryableProviderError(err)) throw err;
7045
+ if (opts?.requireLive || !chunkZN7BX5XT_cjs.isRetryableProviderError(err)) throw err;
7046
7046
  const snapshot = await loadArkInfoSnapshot(walletRepository);
7047
7047
  if (!snapshot) {
7048
- throw new chunkVVFCCNU2_cjs.ProviderUnavailableError(
7048
+ throw new chunkZN7BX5XT_cjs.ProviderUnavailableError(
7049
7049
  "Arkade server info is unavailable and no cached snapshot exists",
7050
7050
  { cause: err }
7051
7051
  );
@@ -7237,7 +7237,7 @@ function buildGraph(rootTxid, chunksByTxid) {
7237
7237
  return new TxTree(rootTx, children);
7238
7238
  }
7239
7239
  function decodeNode(chunk) {
7240
- const tx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(chunk.tx));
7240
+ const tx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(chunk.tx));
7241
7241
  return { tx, children: chunk.children };
7242
7242
  }
7243
7243
  exports.Batch = void 0;
@@ -7440,7 +7440,7 @@ function collectArkTxidsNeedingCreatedAt(vtxos, localCreatedAt) {
7440
7440
  return [...txids];
7441
7441
  }
7442
7442
  async function buildTransactionHistory(vtxos, allBoardingTxs, commitmentsToIgnore, resolveTxCreatedAt, gatedScripts = /* @__PURE__ */ new Map()) {
7443
- const normalized = vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo).sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
7443
+ const normalized = vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo).sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
7444
7444
  const localCreatedAt = localCreatedAtByTxid(normalized);
7445
7445
  const gatedVtxos = normalized.filter((vtxo) => isGatedVtxo(vtxo, gatedScripts));
7446
7446
  const ownVtxos = normalized.filter((vtxo) => !isGatedVtxo(vtxo, gatedScripts));
@@ -7618,7 +7618,7 @@ var AssetManager = class extends ReadonlyAssetManager {
7618
7618
  withRecoverable: false,
7619
7619
  genericallySpendableOnly: true
7620
7620
  });
7621
- const controlAssetRef = params.controlAssetId ? chunkFEBAG2K2_cjs.AssetRef.fromId(chunkFEBAG2K2_cjs.AssetId.fromString(params.controlAssetId)) : null;
7621
+ const controlAssetRef = params.controlAssetId ? chunkURILS6HH_cjs.AssetRef.fromId(chunkURILS6HH_cjs.AssetId.fromString(params.controlAssetId)) : null;
7622
7622
  const coinSelection = selectVirtualCoins(virtualCoins, Number(this.wallet.dustAmount));
7623
7623
  let totalBtcSelected = 0n;
7624
7624
  const assetChanges = /* @__PURE__ */ new Map();
@@ -7631,8 +7631,8 @@ var AssetManager = class extends ReadonlyAssetManager {
7631
7631
  }
7632
7632
  }
7633
7633
  const groups = [];
7634
- const issuedAssetOutput = chunkFEBAG2K2_cjs.AssetOutput.create(0, params.amount);
7635
- const issuedAssetGroup = chunkFEBAG2K2_cjs.AssetGroup.create(
7634
+ const issuedAssetOutput = chunkURILS6HH_cjs.AssetOutput.create(0, params.amount);
7635
+ const issuedAssetGroup = chunkURILS6HH_cjs.AssetGroup.create(
7636
7636
  null,
7637
7637
  controlAssetRef,
7638
7638
  [],
@@ -7645,11 +7645,11 @@ var AssetManager = class extends ReadonlyAssetManager {
7645
7645
  for (const [assetId, amount] of assetChanges) {
7646
7646
  const changeInputs = inputsForAsset(assetInputs, assetId);
7647
7647
  groups.push(
7648
- chunkFEBAG2K2_cjs.AssetGroup.create(
7649
- chunkFEBAG2K2_cjs.AssetId.fromString(assetId),
7648
+ chunkURILS6HH_cjs.AssetGroup.create(
7649
+ chunkURILS6HH_cjs.AssetId.fromString(assetId),
7650
7650
  null,
7651
7651
  changeInputs,
7652
- [chunkFEBAG2K2_cjs.AssetOutput.create(0, amount)],
7652
+ [chunkURILS6HH_cjs.AssetOutput.create(0, amount)],
7653
7653
  []
7654
7654
  )
7655
7655
  );
@@ -7664,7 +7664,7 @@ var AssetManager = class extends ReadonlyAssetManager {
7664
7664
  );
7665
7665
  return {
7666
7666
  arkTxId: arkTxid,
7667
- assetId: chunkFEBAG2K2_cjs.AssetId.create(arkTxid, 0).toString()
7667
+ assetId: chunkURILS6HH_cjs.AssetId.create(arkTxid, 0).toString()
7668
7668
  };
7669
7669
  }
7670
7670
  /**
@@ -7738,23 +7738,23 @@ var AssetManager = class extends ReadonlyAssetManager {
7738
7738
  const assetInputs = selectedCoinsToAssetInputs(selectedCoins);
7739
7739
  const reissueInputs = inputsForAsset(assetInputs, params.assetId);
7740
7740
  const totalAssetAmount = assetToReissueAmount + params.amount;
7741
- const reissueAssetIdObj = chunkFEBAG2K2_cjs.AssetId.fromString(params.assetId);
7742
- const reissueAssetGroup = chunkFEBAG2K2_cjs.AssetGroup.create(
7741
+ const reissueAssetIdObj = chunkURILS6HH_cjs.AssetId.fromString(params.assetId);
7742
+ const reissueAssetGroup = chunkURILS6HH_cjs.AssetGroup.create(
7743
7743
  reissueAssetIdObj,
7744
7744
  null,
7745
7745
  reissueInputs,
7746
- [chunkFEBAG2K2_cjs.AssetOutput.create(0, totalAssetAmount)],
7746
+ [chunkURILS6HH_cjs.AssetOutput.create(0, totalAssetAmount)],
7747
7747
  []
7748
7748
  );
7749
7749
  const groups = [reissueAssetGroup];
7750
7750
  for (const [assetId, amount] of assetChanges) {
7751
7751
  const changeInputs = inputsForAsset(assetInputs, assetId);
7752
7752
  groups.push(
7753
- chunkFEBAG2K2_cjs.AssetGroup.create(
7754
- chunkFEBAG2K2_cjs.AssetId.fromString(assetId),
7753
+ chunkURILS6HH_cjs.AssetGroup.create(
7754
+ chunkURILS6HH_cjs.AssetId.fromString(assetId),
7755
7755
  null,
7756
7756
  changeInputs,
7757
- [chunkFEBAG2K2_cjs.AssetOutput.create(0, amount)],
7757
+ [chunkURILS6HH_cjs.AssetOutput.create(0, amount)],
7758
7758
  []
7759
7759
  )
7760
7760
  );
@@ -7825,11 +7825,11 @@ var AssetManager = class extends ReadonlyAssetManager {
7825
7825
  for (const [assetId, amount] of assetChanges) {
7826
7826
  const changeInputs = inputsForAsset(assetInputs, assetId);
7827
7827
  groups.push(
7828
- chunkFEBAG2K2_cjs.AssetGroup.create(
7829
- chunkFEBAG2K2_cjs.AssetId.fromString(assetId),
7828
+ chunkURILS6HH_cjs.AssetGroup.create(
7829
+ chunkURILS6HH_cjs.AssetId.fromString(assetId),
7830
7830
  null,
7831
7831
  changeInputs,
7832
- amount > 0n ? [chunkFEBAG2K2_cjs.AssetOutput.create(0, amount)] : [],
7832
+ amount > 0n ? [chunkURILS6HH_cjs.AssetOutput.create(0, amount)] : [],
7833
7833
  []
7834
7834
  )
7835
7835
  );
@@ -7842,16 +7842,16 @@ function inputsForAsset(assetInputs, assetId) {
7842
7842
  for (const [inputIndex, assets] of assetInputs) {
7843
7843
  for (const asset of assets) {
7844
7844
  if (asset.assetId !== assetId) continue;
7845
- inputs.push(chunkFEBAG2K2_cjs.AssetInput.create(inputIndex, asset.amount));
7845
+ inputs.push(chunkURILS6HH_cjs.AssetInput.create(inputIndex, asset.amount));
7846
7846
  }
7847
7847
  }
7848
7848
  return inputs;
7849
7849
  }
7850
7850
  async function submitToSelf(submit, wallet, inputs, amount, groups) {
7851
- const outputAddress = chunkVVFCCNU2_cjs.ArkAddress.decode(await wallet.getAddress());
7851
+ const outputAddress = chunkZN7BX5XT_cjs.ArkAddress.decode(await wallet.getAddress());
7852
7852
  const outputs = [
7853
7853
  { script: outputAddress.pkScript, amount: BigInt(amount) },
7854
- Extension.create([chunkFEBAG2K2_cjs.Packet.create(groups)]).txOut()
7854
+ Extension.create([chunkURILS6HH_cjs.Packet.create(groups)]).txOut()
7855
7855
  ];
7856
7856
  const { arkTxid } = await submit(inputs, outputs);
7857
7857
  return arkTxid;
@@ -7875,7 +7875,7 @@ function castMetadata(metadata) {
7875
7875
  } else {
7876
7876
  throw new Error("Invalid metadata value type");
7877
7877
  }
7878
- md.push(chunkFEBAG2K2_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
7878
+ md.push(chunkURILS6HH_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
7879
7879
  }
7880
7880
  return md;
7881
7881
  }
@@ -7896,10 +7896,10 @@ var DelegateManagerImpl = class {
7896
7896
  if (vtxos.length === 0) {
7897
7897
  return { delegated: [], failed: [] };
7898
7898
  }
7899
- const destinationScript = chunkVVFCCNU2_cjs.ArkAddress.decode(destination).pkScript;
7899
+ const destinationScript = chunkZN7BX5XT_cjs.ArkAddress.decode(destination).pkScript;
7900
7900
  const arkInfo = await this.arkInfoProvider.getInfo();
7901
7901
  const delegateInfo = await this.delegateProvider.getDelegateInfo();
7902
- const eligible = vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo).filter(
7902
+ const eligible = vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo).filter(
7903
7903
  (v) => isAnnotated(v) && findDelegateTapLeaf(v, delegateInfo.pubkey) !== void 0
7904
7904
  );
7905
7905
  if (eligible.length === 0) {
@@ -7931,7 +7931,7 @@ var DelegateManagerImpl = class {
7931
7931
  const groupByExpiry = /* @__PURE__ */ new Map();
7932
7932
  let recoverableVtxos = [];
7933
7933
  for (const vtxo of eligible) {
7934
- if (chunkVVFCCNU2_cjs.canRecoverOnchain(vtxo, now)) {
7934
+ if (chunkZN7BX5XT_cjs.canRecoverOnchain(vtxo, now)) {
7935
7935
  recoverableVtxos.push(vtxo);
7936
7936
  continue;
7937
7937
  }
@@ -7983,7 +7983,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
7983
7983
  }
7984
7984
  if (!delegateAt) {
7985
7985
  const now = { timestamp: /* @__PURE__ */ new Date() };
7986
- const expiryTimestamp = vtxos.filter((coin) => !chunkVVFCCNU2_cjs.canRecoverOnchain(coin, now) && coin.expiresAt).reduce(
7986
+ const expiryTimestamp = vtxos.filter((coin) => !chunkZN7BX5XT_cjs.canRecoverOnchain(coin, now) && coin.expiresAt).reduce(
7987
7987
  (min, coin) => Math.min(min, coin.expiresAt.getTime()),
7988
7988
  Number.MAX_SAFE_INTEGER
7989
7989
  );
@@ -8010,7 +8010,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
8010
8010
  let amount = 0n;
8011
8011
  for (const coin of vtxos) {
8012
8012
  const inputFee = estimator.evalOffchainInput({
8013
- ...chunkVVFCCNU2_cjs.toOffchainInputFeeParams(coin),
8013
+ ...chunkZN7BX5XT_cjs.toOffchainInputFeeParams(coin),
8014
8014
  type: "vtxo"
8015
8015
  });
8016
8016
  if (inputFee.satoshis >= coin.value) {
@@ -8024,7 +8024,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
8024
8024
  const delegateFee = BigInt(Number(fee));
8025
8025
  if (delegateFee > 0n) {
8026
8026
  outputs.push({
8027
- script: chunkVVFCCNU2_cjs.ArkAddress.decode(delegateAddress).pkScript,
8027
+ script: chunkZN7BX5XT_cjs.ArkAddress.decode(delegateAddress).pkScript,
8028
8028
  amount: delegateFee
8029
8029
  });
8030
8030
  }
@@ -8057,10 +8057,10 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
8057
8057
  destinationScript
8058
8058
  );
8059
8059
  const forfeitOutputScript = btcSigner.OutScript.encode(
8060
- btcSigner.Address(chunkVVFCCNU2_cjs.getNetwork(network)).decode(forfeitAddress)
8060
+ btcSigner.Address(chunkZN7BX5XT_cjs.getNetwork(network)).decode(forfeitAddress)
8061
8061
  );
8062
8062
  const forfeits = await Promise.all(
8063
- vtxos.filter((v) => chunkVVFCCNU2_cjs.requiresForfeit(v)).map(async (coin) => {
8063
+ vtxos.filter((v) => chunkZN7BX5XT_cjs.requiresForfeit(v)).map(async (coin) => {
8064
8064
  const forfeit = await makeDelegateForfeitTx(
8065
8065
  coin,
8066
8066
  dust,
@@ -8085,7 +8085,7 @@ async function makeDelegateForfeitTx(input, connectorAmount, delegatePubkey, for
8085
8085
  index: input.vout,
8086
8086
  witnessUtxo: {
8087
8087
  amount: BigInt(input.value),
8088
- script: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript
8088
+ script: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript
8089
8089
  },
8090
8090
  sighashType: btcSigner.SigHash.ALL_ANYONECANPAY,
8091
8091
  tapLeafScript: [delegateTapLeaf]
@@ -8143,7 +8143,7 @@ async function makeSignedDelegateIntent(identity, coins, outputs, onchainOutputs
8143
8143
  expire_at: 0,
8144
8144
  cosigners_public_keys: cosignerPubKeys
8145
8145
  };
8146
- const proof = chunkVVFCCNU2_cjs.Intent.create(message, coins, outputs);
8146
+ const proof = chunkZN7BX5XT_cjs.Intent.create(message, coins, outputs);
8147
8147
  const signedProof = await identity.sign(proof);
8148
8148
  return {
8149
8149
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -8169,10 +8169,10 @@ function getDayTimestamp(timestamp) {
8169
8169
  function findDelegateTapLeaf(vtxo, delegatePubkey) {
8170
8170
  if (!vtxo.tapTree) return void 0;
8171
8171
  const pk = delegatePubkey.length === 66 ? delegatePubkey.slice(2) : delegatePubkey;
8172
- const vtxoScript = chunkVVFCCNU2_cjs.VtxoScript.decode(vtxo.tapTree);
8172
+ const vtxoScript = chunkZN7BX5XT_cjs.VtxoScript.decode(vtxo.tapTree);
8173
8173
  return vtxoScript.leaves.find((tapLeaf) => {
8174
- const arkTapscript = chunkVVFCCNU2_cjs.decodeTapscript(chunkVVFCCNU2_cjs.scriptFromTapLeafScript(tapLeaf));
8175
- if (!chunkVVFCCNU2_cjs.MultisigTapscript.is(arkTapscript)) return false;
8174
+ const arkTapscript = chunkZN7BX5XT_cjs.decodeTapscript(chunkZN7BX5XT_cjs.scriptFromTapLeafScript(tapLeaf));
8175
+ if (!chunkZN7BX5XT_cjs.MultisigTapscript.is(arkTapscript)) return false;
8176
8176
  return arkTapscript.params.pubkeys.map(base.hex.encode).includes(pk);
8177
8177
  });
8178
8178
  }
@@ -8728,8 +8728,8 @@ function checkSaveVtxosForScript(backend, key, vtxos) {
8728
8728
  }
8729
8729
  async function getVtxosForContract(repo, contract, options) {
8730
8730
  const vtxos = repo.getVtxosForScriptPage ? await collectScriptVtxos(repo, contract.script, options) : filterVtxosForScript(await collectVtxos(repo, contract.address), contract.script);
8731
- const normalized = vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
8732
- return options?.unspentOnly ? normalized.filter((vtxo) => !chunkVVFCCNU2_cjs.isVtxoSpent(vtxo)) : normalized;
8731
+ const normalized = vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
8732
+ return options?.unspentOnly ? normalized.filter((vtxo) => !chunkZN7BX5XT_cjs.isVtxoSpent(vtxo)) : normalized;
8733
8733
  }
8734
8734
  async function hasVtxosForContract(repo, contract) {
8735
8735
  if (repo.getVtxosForScriptPage) {
@@ -8960,7 +8960,7 @@ function decodeArkContract(encoded) {
8960
8960
  }
8961
8961
  function contractFromArkContract(encoded, options = {}) {
8962
8962
  const parsed = decodeArkContract(encoded);
8963
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(parsed.type);
8963
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(parsed.type);
8964
8964
  if (!handler) {
8965
8965
  throw new Error(`No handler registered for contract type '${parsed.type}'`);
8966
8966
  }
@@ -8974,9 +8974,9 @@ function contractFromArkContract(encoded, options = {}) {
8974
8974
  metadata: options.metadata
8975
8975
  };
8976
8976
  }
8977
- function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunkVVFCCNU2_cjs.DEFAULT_NETWORK.hrp, options = {}) {
8977
+ function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunkZN7BX5XT_cjs.DEFAULT_NETWORK.hrp, options = {}) {
8978
8978
  const parsed = decodeArkContract(encoded);
8979
- const handler = chunkCFOIHLON_cjs.contractHandlers.getOrThrow(parsed.type);
8979
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.getOrThrow(parsed.type);
8980
8980
  const params = parsed.data;
8981
8981
  const vtxoScript = handler.createScript(params);
8982
8982
  return {
@@ -9033,10 +9033,10 @@ var ContractWatcher = class {
9033
9033
  eventSourceReported = false;
9034
9034
  /** @see ContractWatcherConfig */
9035
9035
  constructor(config) {
9036
- chunkVVFCCNU2_cjs.assertTimerMs("failsafePollIntervalMs", config.failsafePollIntervalMs);
9037
- chunkVVFCCNU2_cjs.assertTimerMs("reconnectDelayMs", config.reconnectDelayMs);
9038
- chunkVVFCCNU2_cjs.assertTimerMs("maxReconnectDelayMs", config.maxReconnectDelayMs);
9039
- chunkVVFCCNU2_cjs.assertTimerMs("subscriptionRequestTimeoutMs", config.subscriptionRequestTimeoutMs);
9036
+ chunkZN7BX5XT_cjs.assertTimerMs("failsafePollIntervalMs", config.failsafePollIntervalMs);
9037
+ chunkZN7BX5XT_cjs.assertTimerMs("reconnectDelayMs", config.reconnectDelayMs);
9038
+ chunkZN7BX5XT_cjs.assertTimerMs("maxReconnectDelayMs", config.maxReconnectDelayMs);
9039
+ chunkZN7BX5XT_cjs.assertTimerMs("subscriptionRequestTimeoutMs", config.subscriptionRequestTimeoutMs);
9040
9040
  if (config.subscriptionRequestTimeoutMs === 0) {
9041
9041
  throw new Error("subscriptionRequestTimeoutMs must be greater than 0");
9042
9042
  }
@@ -9259,9 +9259,9 @@ var ContractWatcher = class {
9259
9259
  this.reconnectAttempts = 0;
9260
9260
  this.listenLoop().catch((e) => {
9261
9261
  if (!this.isWatching || signal?.aborted) return;
9262
- if (chunkVVFCCNU2_cjs.isEventSourceError(e)) {
9262
+ if (chunkZN7BX5XT_cjs.isEventSourceError(e)) {
9263
9263
  console.debug("ContractWatcher subscription disconnected; reconnecting");
9264
- } else if (!chunkVVFCCNU2_cjs.isEventSourceUnavailableError(e)) {
9264
+ } else if (!chunkZN7BX5XT_cjs.isEventSourceUnavailableError(e)) {
9265
9265
  console.error(e);
9266
9266
  }
9267
9267
  this.connectionState = "disconnected";
@@ -9271,7 +9271,7 @@ var ContractWatcher = class {
9271
9271
  });
9272
9272
  } catch (error) {
9273
9273
  if (!this.isWatching || signal?.aborted) return;
9274
- if (!chunkVVFCCNU2_cjs.isEventSourceUnavailableError(error)) {
9274
+ if (!chunkZN7BX5XT_cjs.isEventSourceUnavailableError(error)) {
9275
9275
  console.error("ContractWatcher connection failed:", error);
9276
9276
  }
9277
9277
  this.connectionState = "disconnected";
@@ -9287,7 +9287,7 @@ var ContractWatcher = class {
9287
9287
  * few seconds.
9288
9288
  */
9289
9289
  reportEventSourceUnavailable(error) {
9290
- if (!chunkVVFCCNU2_cjs.isEventSourceUnavailableError(error)) return false;
9290
+ if (!chunkZN7BX5XT_cjs.isEventSourceUnavailableError(error)) return false;
9291
9291
  if (!this.eventSourceReported) {
9292
9292
  this.eventSourceReported = true;
9293
9293
  console.warn(
@@ -9352,7 +9352,7 @@ var ContractWatcher = class {
9352
9352
  const now = Date.now();
9353
9353
  let current;
9354
9354
  try {
9355
- current = await chunkVVFCCNU2_cjs.getAllNormalizedVtxos(this.config.indexerProvider, scripts, {
9355
+ current = await chunkZN7BX5XT_cjs.getAllNormalizedVtxos(this.config.indexerProvider, scripts, {
9356
9356
  spendableOnly: true
9357
9357
  });
9358
9358
  } catch (error) {
@@ -9634,14 +9634,14 @@ var ContractWatcher = class {
9634
9634
  const timestamp = Date.now();
9635
9635
  if (update.newVtxos?.length) {
9636
9636
  this.processSubscriptionVtxos(
9637
- update.newVtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo),
9637
+ update.newVtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo),
9638
9638
  "vtxo_received",
9639
9639
  timestamp
9640
9640
  );
9641
9641
  }
9642
9642
  if (update.spentVtxos?.length) {
9643
9643
  this.processSubscriptionVtxos(
9644
- update.spentVtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo),
9644
+ update.spentVtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo),
9645
9645
  "vtxo_spent",
9646
9646
  timestamp
9647
9647
  );
@@ -9666,8 +9666,8 @@ var ContractWatcher = class {
9666
9666
  continue;
9667
9667
  }
9668
9668
  if (target === byWatchedScript && eventType === "vtxo_received") {
9669
- const n = chunkVVFCCNU2_cjs.normalizeVtxo(vtxo);
9670
- if (chunkVVFCCNU2_cjs.isVtxoSpent(n) || n.isSwept || chunkVVFCCNU2_cjs.isPastExpiry(n, now)) continue;
9669
+ const n = chunkZN7BX5XT_cjs.normalizeVtxo(vtxo);
9670
+ if (chunkZN7BX5XT_cjs.isVtxoSpent(n) || n.isSwept || chunkZN7BX5XT_cjs.isPastExpiry(n, now)) continue;
9671
9671
  }
9672
9672
  let bucket = target.get(vtxo.script);
9673
9673
  if (!bucket) {
@@ -9804,7 +9804,7 @@ function annotatableIn(scriptToContract, vtxos, memo) {
9804
9804
  if (!contract) continue;
9805
9805
  try {
9806
9806
  const key = `${contract.type}\0${script}\0${JSON.stringify(contract.params)}`;
9807
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
9807
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
9808
9808
  const hit = memo?.get(script);
9809
9809
  let tapscripts;
9810
9810
  if (hit && hit.key === key && hit.handler === handler) {
@@ -9834,7 +9834,7 @@ function annotatableIn(scriptToContract, vtxos, memo) {
9834
9834
  }
9835
9835
  function annotateAgainst(vtxos, byScript, tapscripts = /* @__PURE__ */ new Map()) {
9836
9836
  return vtxos.map(
9837
- (vtxo) => extendVirtualCoinForContract(chunkVVFCCNU2_cjs.normalizeVtxo(vtxo), byScript, tapscripts)
9837
+ (vtxo) => extendVirtualCoinForContract(chunkZN7BX5XT_cjs.normalizeVtxo(vtxo), byScript, tapscripts)
9838
9838
  );
9839
9839
  }
9840
9840
  var SCAN_MAX_INDEX = 1e4;
@@ -9878,8 +9878,8 @@ var ContractManager = class _ContractManager {
9878
9878
  * `dispose()`, so it re-checks this at every await rather than run on a torn-down watcher. */
9879
9879
  disposed = false;
9880
9880
  constructor(config) {
9881
- chunkVVFCCNU2_cjs.assertNonNegativeMs("vtxoSyncMaxAgeMs", config.vtxoSyncMaxAgeMs);
9882
- chunkVVFCCNU2_cjs.assertNonNegativeMs("vtxoSyncOverlapMs", config.vtxoSyncOverlapMs);
9881
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("vtxoSyncMaxAgeMs", config.vtxoSyncMaxAgeMs);
9882
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("vtxoSyncOverlapMs", config.vtxoSyncOverlapMs);
9883
9883
  this.config = { ...config };
9884
9884
  this.watcher = new ContractWatcher({
9885
9885
  indexerProvider: config.indexerProvider,
@@ -9915,12 +9915,12 @@ var ContractManager = class _ContractManager {
9915
9915
  }
9916
9916
  /** @see ContractManagerConfig.vtxoSyncMaxAgeMs — for factory-built managers. */
9917
9917
  setVtxoSyncMaxAge(maxAgeMs) {
9918
- chunkVVFCCNU2_cjs.assertNonNegativeMs("vtxoSyncMaxAgeMs", maxAgeMs);
9918
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("vtxoSyncMaxAgeMs", maxAgeMs);
9919
9919
  this.config.vtxoSyncMaxAgeMs = maxAgeMs;
9920
9920
  }
9921
9921
  /** @see ContractManagerConfig.vtxoSyncOverlapMs — for factory-built managers. */
9922
9922
  setVtxoSyncOverlap(overlapMs) {
9923
- chunkVVFCCNU2_cjs.assertNonNegativeMs("vtxoSyncOverlapMs", overlapMs);
9923
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("vtxoSyncOverlapMs", overlapMs);
9924
9924
  this.config.vtxoSyncOverlapMs = overlapMs;
9925
9925
  }
9926
9926
  markSyncOnline() {
@@ -9968,7 +9968,7 @@ var ContractManager = class _ContractManager {
9968
9968
  this.markSyncOnline();
9969
9969
  return void 0;
9970
9970
  } catch (err) {
9971
- if (!chunkVVFCCNU2_cjs.isRetryableProviderError(err)) throw err;
9971
+ if (!chunkZN7BX5XT_cjs.isRetryableProviderError(err)) throw err;
9972
9972
  this.markSyncDegraded(err);
9973
9973
  return err;
9974
9974
  }
@@ -9991,7 +9991,7 @@ var ContractManager = class _ContractManager {
9991
9991
  try {
9992
9992
  await this.scheduleLookAheadDrain();
9993
9993
  } catch (err) {
9994
- if (!chunkVVFCCNU2_cjs.isRetryableProviderError(err)) throw err;
9994
+ if (!chunkZN7BX5XT_cjs.isRetryableProviderError(err)) throw err;
9995
9995
  this.lookAheadRefillOwed = true;
9996
9996
  this.markSyncDegraded(err);
9997
9997
  }
@@ -10054,7 +10054,7 @@ var ContractManager = class _ContractManager {
10054
10054
  /** No throw: construction returned long ago, so the state is the channel. */
10055
10055
  reportBackgroundFailure(stage, err) {
10056
10056
  this.markSyncDegraded(err);
10057
- if (!chunkVVFCCNU2_cjs.isRetryableProviderError(err)) {
10057
+ if (!chunkZN7BX5XT_cjs.isRetryableProviderError(err)) {
10058
10058
  console.error(`[contracts] background ${stage} failed`, err);
10059
10059
  }
10060
10060
  }
@@ -10156,7 +10156,7 @@ var ContractManager = class _ContractManager {
10156
10156
  const from = Math.max(0, watermark - lookAhead.size);
10157
10157
  const to = watermark + lookAhead.size;
10158
10158
  const deps = lookAhead.candidateDeps();
10159
- const handlers = chunkCFOIHLON_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkCFOIHLON_cjs.contractHandlers.get(t)).filter(hasCandidates);
10159
+ const handlers = chunkEP6XF7JX_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkEP6XF7JX_cjs.contractHandlers.get(t)).filter(hasCandidates);
10160
10160
  const band = /* @__PURE__ */ new Map();
10161
10161
  for (let index = from; index <= to; index++) {
10162
10162
  const descriptor = lookAhead.materialize(index);
@@ -10167,7 +10167,7 @@ var ContractManager = class _ContractManager {
10167
10167
  index,
10168
10168
  params: {
10169
10169
  ...candidate,
10170
- ...chunkCFOIHLON_cjs.speculativeReceiveMetadata(descriptor)
10170
+ ...chunkEP6XF7JX_cjs.speculativeReceiveMetadata(descriptor)
10171
10171
  }
10172
10172
  });
10173
10173
  }
@@ -10226,7 +10226,7 @@ var ContractManager = class _ContractManager {
10226
10226
  });
10227
10227
  for (const entry of pending) entry.catchUpPending = false;
10228
10228
  } catch (err) {
10229
- if (!chunkVVFCCNU2_cjs.isRetryableProviderError(err)) throw err;
10229
+ if (!chunkZN7BX5XT_cjs.isRetryableProviderError(err)) throw err;
10230
10230
  this.markSyncDegraded(err);
10231
10231
  }
10232
10232
  }
@@ -10317,7 +10317,7 @@ var ContractManager = class _ContractManager {
10317
10317
  return result;
10318
10318
  }
10319
10319
  async upsertContractRow(params) {
10320
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(params.type);
10320
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(params.type);
10321
10321
  if (!handler) {
10322
10322
  throw new Error(`No handler registered for contract type '${params.type}'`);
10323
10323
  }
@@ -10385,7 +10385,7 @@ var ContractManager = class _ContractManager {
10385
10385
  `scanContracts: batchSize must be a positive integer (got ${String(opts.batchSize)})`
10386
10386
  );
10387
10387
  }
10388
- const registered = chunkCFOIHLON_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkCFOIHLON_cjs.contractHandlers.get(t)).filter(isDiscoverable);
10388
+ const registered = chunkEP6XF7JX_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkEP6XF7JX_cjs.contractHandlers.get(t)).filter(isDiscoverable);
10389
10389
  const discoverables = [
10390
10390
  ...registered.filter((h) => h.type === "boarding"),
10391
10391
  ...registered.filter((h) => h.type !== "boarding")
@@ -10511,7 +10511,7 @@ var ContractManager = class _ContractManager {
10511
10511
  return await collectContracts(this.config.contractRepository, dbFilter);
10512
10512
  }
10513
10513
  async getContractsWithVtxos(filter, pageSize, options) {
10514
- chunkVVFCCNU2_cjs.assertNonNegativeMs("maxSyncAgeMs", options?.maxSyncAgeMs);
10514
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("maxSyncAgeMs", options?.maxSyncAgeMs);
10515
10515
  const contracts = await this.getContracts(filter);
10516
10516
  if (this.syncedWithin(
10517
10517
  contracts,
@@ -10618,14 +10618,14 @@ var ContractManager = class _ContractManager {
10618
10618
  const byScript = new Map(contracts.map((contract) => [contract.script, contract]));
10619
10619
  const asking = vtxos.filter((vtxo) => {
10620
10620
  const contract = byScript.get(vtxo.script);
10621
- return contract !== void 0 && chunkCFOIHLON_cjs.contractHandlers.get(contract.type)?.assertSpendableNow !== void 0;
10621
+ return contract !== void 0 && chunkEP6XF7JX_cjs.contractHandlers.get(contract.type)?.assertSpendableNow !== void 0;
10622
10622
  });
10623
10623
  if (asking.length === 0) return refused;
10624
10624
  const tip = await this.currentChainTip();
10625
10625
  const walletDescriptorValue = await walletDescriptor?.();
10626
10626
  for (const vtxo of asking) {
10627
10627
  const contract = byScript.get(vtxo.script);
10628
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
10628
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
10629
10629
  if (!handler?.assertSpendableNow) continue;
10630
10630
  const context = {
10631
10631
  collaborative: true,
@@ -10635,7 +10635,7 @@ var ContractManager = class _ContractManager {
10635
10635
  walletDescriptor: walletDescriptorValue,
10636
10636
  // `isVirtualCoin` only checks `script`, which every input has; `isCsvSpendable`
10637
10637
  // reads `vtxo.status.block_time` unguarded, so require `status` too.
10638
- vtxo: chunkVVFCCNU2_cjs.isVirtualCoin(vtxo) && "status" in vtxo ? vtxo : void 0
10638
+ vtxo: chunkZN7BX5XT_cjs.isVirtualCoin(vtxo) && "status" in vtxo ? vtxo : void 0
10639
10639
  };
10640
10640
  try {
10641
10641
  await handler.assertSpendableNow(
@@ -10748,7 +10748,7 @@ var ContractManager = class _ContractManager {
10748
10748
  const { contractScript, collaborative = true, walletDescriptor, vtxo } = options;
10749
10749
  const [contract] = await this.getContracts({ script: contractScript });
10750
10750
  if (!contract) return [];
10751
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
10751
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
10752
10752
  if (!handler) return [];
10753
10753
  const script = handler.createScript(contract.params);
10754
10754
  const tip = await this.currentChainTip();
@@ -10770,7 +10770,7 @@ var ContractManager = class _ContractManager {
10770
10770
  const { contractScript, collaborative = true, walletDescriptor } = options;
10771
10771
  const [contract] = await this.getContracts({ script: contractScript });
10772
10772
  if (!contract) return [];
10773
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
10773
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
10774
10774
  if (!handler) return [];
10775
10775
  const script = handler.createScript(contract.params);
10776
10776
  const context = {
@@ -10816,7 +10816,7 @@ var ContractManager = class _ContractManager {
10816
10816
  }
10817
10817
  async refreshOutpoints(outpoints) {
10818
10818
  if (outpoints.length === 0) return;
10819
- const { vtxos } = await chunkVVFCCNU2_cjs.getNormalizedVtxos(this.config.indexerProvider, {
10819
+ const { vtxos } = await chunkZN7BX5XT_cjs.getNormalizedVtxos(this.config.indexerProvider, {
10820
10820
  outpoints
10821
10821
  });
10822
10822
  if (vtxos.length === 0) return;
@@ -10917,7 +10917,7 @@ var ContractManager = class _ContractManager {
10917
10917
  break;
10918
10918
  }
10919
10919
  } catch (err) {
10920
- if (!chunkVVFCCNU2_cjs.isRetryableProviderError(err)) throw err;
10920
+ if (!chunkZN7BX5XT_cjs.isRetryableProviderError(err)) throw err;
10921
10921
  this.markSyncDegraded(err);
10922
10922
  synced = false;
10923
10923
  }
@@ -11005,7 +11005,7 @@ var ContractManager = class _ContractManager {
11005
11005
  */
11006
11006
  async reconcilePendingFrontier(contracts) {
11007
11007
  const scriptToContract = new Map(contracts.map((c) => [c.script, c]));
11008
- const vtxos = await chunkVVFCCNU2_cjs.getAllNormalizedVtxos(
11008
+ const vtxos = await chunkZN7BX5XT_cjs.getAllNormalizedVtxos(
11009
11009
  this.config.indexerProvider,
11010
11010
  contracts.map((c) => c.script),
11011
11011
  { pendingOnly: true }
@@ -11079,7 +11079,7 @@ var ContractManager = class _ContractManager {
11079
11079
  }
11080
11080
  return result;
11081
11081
  }
11082
- async fetchContractVtxosBulk(contracts, pageSize = chunkVVFCCNU2_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
11082
+ async fetchContractVtxosBulk(contracts, pageSize = chunkZN7BX5XT_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
11083
11083
  if (contracts.length === 0) {
11084
11084
  return { vtxosByScript: /* @__PURE__ */ new Map(), promoted: /* @__PURE__ */ new Map() };
11085
11085
  }
@@ -11095,7 +11095,7 @@ var ContractManager = class _ContractManager {
11095
11095
  before: syncWindow.before
11096
11096
  }
11097
11097
  } : {};
11098
- const vtxos = await chunkVVFCCNU2_cjs.getAllNormalizedVtxos(
11098
+ const vtxos = await chunkZN7BX5XT_cjs.getAllNormalizedVtxos(
11099
11099
  this.config.indexerProvider,
11100
11100
  contracts.map((c) => c.script),
11101
11101
  { ...windowOpts, pageSize }
@@ -11197,7 +11197,7 @@ function parseLegacyExpiry(batchExpiry) {
11197
11197
  if (typeof batchExpiry !== "number" || !Number.isFinite(batchExpiry) || batchExpiry <= 0) {
11198
11198
  return {};
11199
11199
  }
11200
- if (batchExpiry >= chunkVVFCCNU2_cjs.EXPIRY_MIN_PLAUSIBLE_MS) return { expiresAt: new Date(batchExpiry) };
11200
+ if (batchExpiry >= chunkZN7BX5XT_cjs.EXPIRY_MIN_PLAUSIBLE_MS) return { expiresAt: new Date(batchExpiry) };
11201
11201
  return { expiresAtHeight: batchExpiry / 1e3 };
11202
11202
  }
11203
11203
  function legacyVtxoFacts(status) {
@@ -11435,7 +11435,7 @@ function backfillContractWatchState(store) {
11435
11435
  };
11436
11436
  readPage();
11437
11437
  }
11438
- var unspentFlag = (vtxo) => chunkVVFCCNU2_cjs.isVtxoSpent(vtxo) ? {} : { unspent: 1 };
11438
+ var unspentFlag = (vtxo) => chunkZN7BX5XT_cjs.isVtxoSpent(vtxo) ? {} : { unspent: 1 };
11439
11439
  function backfillVtxoIndexFields(transaction) {
11440
11440
  const store = transaction.objectStore(STORE_VTXOS);
11441
11441
  const pageSize = 1e3;
@@ -11466,7 +11466,7 @@ var DEFAULT_DB_NAME = "arkade-service-worker";
11466
11466
  var DEFAULT_SERVICE_WORKER_ACTIVATION_TIMEOUT_MS = 1e4;
11467
11467
  function normalizeOptions2(pathOrOptions) {
11468
11468
  const o = typeof pathOrOptions === "string" ? { path: pathOrOptions } : pathOrOptions;
11469
- chunkVVFCCNU2_cjs.assertTimerMs("activationTimeoutMs", o.activationTimeoutMs);
11469
+ chunkZN7BX5XT_cjs.assertTimerMs("activationTimeoutMs", o.activationTimeoutMs);
11470
11470
  return {
11471
11471
  path: o.path,
11472
11472
  activationTimeoutMs: o.activationTimeoutMs ?? DEFAULT_SERVICE_WORKER_ACTIVATION_TIMEOUT_MS
@@ -11685,7 +11685,7 @@ var deserializeTapLeaf = (t) => {
11685
11685
  const s = base.hex.decode(t.s);
11686
11686
  return [cb, s];
11687
11687
  };
11688
- var deserializeVtxo = (o) => chunkVVFCCNU2_cjs.normalizeVtxo({
11688
+ var deserializeVtxo = (o) => chunkZN7BX5XT_cjs.normalizeVtxo({
11689
11689
  ...o,
11690
11690
  createdAt: new Date(o.createdAt),
11691
11691
  tapTree: base.hex.decode(o.tapTree),
@@ -12109,7 +12109,7 @@ var HDDescriptorProvider = class _HDDescriptorProvider {
12109
12109
  */
12110
12110
  materializeDescriptorAt(index) {
12111
12111
  const descriptor = this.identity.descriptor;
12112
- const network = chunkCFOIHLON_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
12112
+ const network = chunkEP6XF7JX_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
12113
12113
  const expansion = descriptorsScure.expand({ descriptor, network, index });
12114
12114
  const keyInfo = expansion.expansionMap?.["@0"];
12115
12115
  if (!keyInfo?.keyExpression) {
@@ -12177,7 +12177,7 @@ function signingDescriptorIndex(descriptor) {
12177
12177
  }
12178
12178
  function newestWalletReceiveContract(contracts, serverPubKeyHex) {
12179
12179
  return contracts.filter(
12180
- (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunkCFOIHLON_cjs.WALLET_RECEIVE_SOURCE
12180
+ (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunkEP6XF7JX_cjs.WALLET_RECEIVE_SOURCE
12181
12181
  ).sort((a, b) => {
12182
12182
  if (b.createdAt !== a.createdAt) return b.createdAt - a.createdAt;
12183
12183
  return signingDescriptorIndex(b.metadata?.signingDescriptor) - signingDescriptorIndex(a.metadata?.signingDescriptor);
@@ -12228,7 +12228,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
12228
12228
  const provider = await resolveDescriptorProvider(config, setup.walletRepository);
12229
12229
  if (!provider) return void 0;
12230
12230
  const allowSilentFallback = (config.walletMode ?? "auto") === "auto";
12231
- const expectedContractType = setup.offchainTapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? "delegate" : "default";
12231
+ const expectedContractType = setup.offchainTapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? "delegate" : "default";
12232
12232
  const factoryOpts = {
12233
12233
  walletRepository: setup.walletRepository,
12234
12234
  contractRepository: setup.contractRepository,
@@ -12385,7 +12385,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
12385
12385
  };
12386
12386
  function deriveLeafPubkey(descriptor) {
12387
12387
  try {
12388
- return chunkCFOIHLON_cjs.deriveDescriptorLeafPubKey(descriptor);
12388
+ return chunkEP6XF7JX_cjs.deriveDescriptorLeafPubKey(descriptor);
12389
12389
  } catch (e) {
12390
12390
  throw new NonRangeableDescriptorError(
12391
12391
  "Cannot derive leaf pubkey: descriptor is not a materialized, parsable tr(...) shape.",
@@ -12397,7 +12397,7 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
12397
12397
  const pubKey = deriveLeafPubkey(descriptor);
12398
12398
  const tapscript = rebuildTapscript(current, pubKey);
12399
12399
  const serverPubKey = tapscript.options.serverPubKey;
12400
- const csvTimelock2 = chunkVVFCCNU2_cjs.timelockToSequence(tapscript.options.csvTimelock).toString();
12400
+ const csvTimelock2 = chunkZN7BX5XT_cjs.timelockToSequence(tapscript.options.csvTimelock).toString();
12401
12401
  const base$1 = {
12402
12402
  script: base.hex.encode(tapscript.pkScript),
12403
12403
  address: tapscript.address(hrp, serverPubKey).encode(),
@@ -12405,11 +12405,11 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
12405
12405
  // Read at sign time to route rotated-pubkey inputs through `signWithDescriptor`; without
12406
12406
  // it spends are rejected with `INVALID_PSBT_INPUT (5): missing tapscript spend sig`.
12407
12407
  metadata: {
12408
- ...tagSource && { source: chunkCFOIHLON_cjs.WALLET_RECEIVE_SOURCE },
12408
+ ...tagSource && { source: chunkEP6XF7JX_cjs.WALLET_RECEIVE_SOURCE },
12409
12409
  signingDescriptor: descriptor
12410
12410
  }
12411
12411
  };
12412
- const params = tapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? {
12412
+ const params = tapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? {
12413
12413
  ...base$1,
12414
12414
  type: "delegate",
12415
12415
  params: {
@@ -12430,10 +12430,10 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
12430
12430
  return { tapscript, params };
12431
12431
  }
12432
12432
  function rebuildTapscript(current, pubKey) {
12433
- if (current instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script) {
12434
- return new chunkCFOIHLON_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
12433
+ if (current instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script) {
12434
+ return new chunkEP6XF7JX_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
12435
12435
  }
12436
- return new chunkCFOIHLON_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
12436
+ return new chunkEP6XF7JX_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
12437
12437
  }
12438
12438
  async function pickActiveReceive(contractRepository, serverPubKey, expectedType) {
12439
12439
  const candidates = await collectContracts(contractRepository, {
@@ -12492,7 +12492,7 @@ function computeOffchainBalance(vtxos, caps) {
12492
12492
  }
12493
12493
  };
12494
12494
  for (const vtxo of vtxos) {
12495
- if (chunkVVFCCNU2_cjs.isVtxoSpent(vtxo)) continue;
12495
+ if (chunkZN7BX5XT_cjs.isVtxoSpent(vtxo)) continue;
12496
12496
  addAssets(owned, vtxo);
12497
12497
  if (vtxo.isUnrolled) {
12498
12498
  unrolled += vtxo.value;
@@ -12502,11 +12502,11 @@ function computeOffchainBalance(vtxos, caps) {
12502
12502
  pendingRecovery += vtxo.value;
12503
12503
  continue;
12504
12504
  }
12505
- if (chunkVVFCCNU2_cjs.canRecoverOnchain(vtxo, now)) {
12505
+ if (chunkZN7BX5XT_cjs.canRecoverOnchain(vtxo, now)) {
12506
12506
  recoverable += vtxo.value;
12507
12507
  continue;
12508
12508
  }
12509
- if (!chunkVVFCCNU2_cjs.canSpendOffchain(vtxo, now)) continue;
12509
+ if (!chunkZN7BX5XT_cjs.canSpendOffchain(vtxo, now)) continue;
12510
12510
  if (vtxo.isPreconfirmed) {
12511
12511
  preconfirmed += vtxo.value;
12512
12512
  } else {
@@ -12721,7 +12721,7 @@ function intentProofJobs(coins) {
12721
12721
  if (coins.length === 0) return [];
12722
12722
  const coinJobs = coins.map((coin, i) => ({
12723
12723
  index: i + 1,
12724
- lookupScript: chunkVVFCCNU2_cjs.VtxoScript.decode(coin.tapTree).pkScript
12724
+ lookupScript: chunkZN7BX5XT_cjs.VtxoScript.decode(coin.tapTree).pkScript
12725
12725
  }));
12726
12726
  return [{ index: 0, lookupScript: coinJobs[0].lookupScript }, ...coinJobs];
12727
12727
  }
@@ -12747,7 +12747,7 @@ function dedupeTimelocks(timelocks) {
12747
12747
  const seen = /* @__PURE__ */ new Set();
12748
12748
  const deduped = [];
12749
12749
  for (const timelock of timelocks) {
12750
- const sequence = chunkVVFCCNU2_cjs.timelockToSequence(timelock).toString();
12750
+ const sequence = chunkZN7BX5XT_cjs.timelockToSequence(timelock).toString();
12751
12751
  if (seen.has(sequence)) continue;
12752
12752
  seen.add(sequence);
12753
12753
  deduped.push(timelock);
@@ -12763,7 +12763,7 @@ async function resolveBoardingBootTapscript(contractRepository, serverPubKey, ba
12763
12763
  if (!newest?.params.pubKey) return baseline;
12764
12764
  try {
12765
12765
  const pubKey = base.hex.decode(newest.params.pubKey);
12766
- return new chunkCFOIHLON_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
12766
+ return new chunkEP6XF7JX_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
12767
12767
  } catch (e) {
12768
12768
  console.warn("Skipping malformed boarding contract at boot", newest.script, e);
12769
12769
  return baseline;
@@ -12795,21 +12795,21 @@ function filterFlatVtxos(vtxos, filter, pendingSpendOutpoints) {
12795
12795
  if (vtxo.isUnrolled) {
12796
12796
  return !!f.withUnrolled;
12797
12797
  }
12798
- if (chunkVVFCCNU2_cjs.isVtxoSpent(vtxo)) {
12798
+ if (chunkZN7BX5XT_cjs.isVtxoSpent(vtxo)) {
12799
12799
  return false;
12800
12800
  }
12801
- if (!f.withRecoverable && chunkVVFCCNU2_cjs.canRecoverOnchain(vtxo, now)) {
12801
+ if (!f.withRecoverable && chunkZN7BX5XT_cjs.canRecoverOnchain(vtxo, now)) {
12802
12802
  return false;
12803
12803
  }
12804
12804
  return true;
12805
12805
  });
12806
12806
  }
12807
12807
  async function refreshSweptStateOfExpiredInputs(wallet, inputs) {
12808
- const candidates = inputs.filter(chunkVVFCCNU2_cjs.isVirtualCoin).map(chunkVVFCCNU2_cjs.normalizeVtxo).filter((v) => !v.isSwept);
12808
+ const candidates = inputs.filter(chunkZN7BX5XT_cjs.isVirtualCoin).map(chunkZN7BX5XT_cjs.normalizeVtxo).filter((v) => !v.isSwept);
12809
12809
  if (candidates.length === 0) return inputs;
12810
- const now = candidates.some((v) => v.expiresAtHeight !== void 0) ? await chunkVVFCCNU2_cjs.resolveTimeHeight(wallet.onchainProvider) : { timestamp: /* @__PURE__ */ new Date() };
12810
+ const now = candidates.some((v) => v.expiresAtHeight !== void 0) ? await chunkZN7BX5XT_cjs.resolveTimeHeight(wallet.onchainProvider) : { timestamp: /* @__PURE__ */ new Date() };
12811
12811
  const suspects = candidates.filter(
12812
- (v) => chunkVVFCCNU2_cjs.isPastExpiry(v, now) || v.expiresAtHeight !== void 0 && now.height === void 0
12812
+ (v) => chunkZN7BX5XT_cjs.isPastExpiry(v, now) || v.expiresAtHeight !== void 0 && now.height === void 0
12813
12813
  );
12814
12814
  if (suspects.length === 0) return inputs;
12815
12815
  let sweptNow;
@@ -12823,12 +12823,12 @@ async function refreshSweptStateOfExpiredInputs(wallet, inputs) {
12823
12823
  );
12824
12824
  } catch (e) {
12825
12825
  const message = "could not confirm the swept state of expired settlement inputs; retry the settlement";
12826
- throw chunkVVFCCNU2_cjs.isRetryableProviderError(e) ? new chunkVVFCCNU2_cjs.ProviderUnavailableError(message, { cause: e }) : new Error(message, { cause: e });
12826
+ throw chunkZN7BX5XT_cjs.isRetryableProviderError(e) ? new chunkZN7BX5XT_cjs.ProviderUnavailableError(message, { cause: e }) : new Error(message, { cause: e });
12827
12827
  }
12828
12828
  if (sweptNow.size === 0) return inputs;
12829
12829
  return inputs.map((input) => {
12830
- if (!chunkVVFCCNU2_cjs.isVirtualCoin(input) || !sweptNow.has(`${input.txid}:${input.vout}`)) return input;
12831
- return { ...chunkVVFCCNU2_cjs.normalizeVtxo(input), isSwept: true };
12830
+ if (!chunkZN7BX5XT_cjs.isVirtualCoin(input) || !sweptNow.has(`${input.txid}:${input.vout}`)) return input;
12831
+ return { ...chunkZN7BX5XT_cjs.normalizeVtxo(input), isSwept: true };
12832
12832
  });
12833
12833
  }
12834
12834
  var PENDING_RECOVERY_REASON = "is past its operator signer's rotation cutoff \u2014 the operator will not co-sign it until it recovers";
@@ -13117,7 +13117,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13117
13117
  async getArkadeReader() {
13118
13118
  const indexer = this.indexerProvider;
13119
13119
  return {
13120
- getVtxos: (opts) => chunkVVFCCNU2_cjs.getNormalizedVtxos(indexer, opts),
13120
+ getVtxos: (opts) => chunkZN7BX5XT_cjs.getNormalizedVtxos(indexer, opts),
13121
13121
  getVirtualTxs: (txids, opts) => indexer.getVirtualTxs(txids, opts)
13122
13122
  };
13123
13123
  }
@@ -13152,7 +13152,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13152
13152
  }
13153
13153
  /** Shared setup for ReadonlyWallet.create() and Wallet.create(). */
13154
13154
  static async setupWalletConfig(config, pubKey) {
13155
- const arkProvider = config.arkProvider || new chunkVVFCCNU2_cjs.RestArkProvider();
13155
+ const arkProvider = config.arkProvider || new chunkZN7BX5XT_cjs.RestArkProvider();
13156
13156
  let indexerProvider = config.indexerProvider;
13157
13157
  if (!indexerProvider) {
13158
13158
  const derived = extractArkProviderUrl(arkProvider);
@@ -13161,7 +13161,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13161
13161
  "indexerProvider is required when arkProvider is provided without a discoverable serverUrl"
13162
13162
  );
13163
13163
  }
13164
- indexerProvider = new chunkFEBAG2K2_cjs.RestIndexerProvider(derived ?? chunkVVFCCNU2_cjs.DEFAULT_ARKADE_SERVER_URL);
13164
+ indexerProvider = new chunkURILS6HH_cjs.RestIndexerProvider(derived ?? chunkZN7BX5XT_cjs.DEFAULT_ARKADE_SERVER_URL);
13165
13165
  }
13166
13166
  const walletRepository = config.storage?.walletRepository ?? new IndexedDBWalletRepository();
13167
13167
  const contractRepository = config.storage?.contractRepository ?? new IndexedDBContractRepository();
@@ -13170,7 +13170,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13170
13170
  source: serverInfoSource,
13171
13171
  lastOnlineAt: serverInfoLastOnlineAt
13172
13172
  } = await resolveArkInfo(arkProvider, walletRepository);
13173
- const network = chunkVVFCCNU2_cjs.networkFromArkadeInfo(info);
13173
+ const network = chunkZN7BX5XT_cjs.networkFromArkadeInfo(info);
13174
13174
  if ("descriptor" in config.identity) {
13175
13175
  const descriptor = config.identity.descriptor;
13176
13176
  const identityIsMainnet = !descriptor.includes("tpub");
@@ -13186,7 +13186,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13186
13186
  );
13187
13187
  }
13188
13188
  }
13189
- const onchainProvider = config.onchainProvider || new EsploraProvider(ESPLORA_URL[info.network]);
13189
+ const onchainProvider = typeof config.onchainProvider === "function" ? config.onchainProvider(info.network) : config.onchainProvider || new EsploraProvider(ESPLORA_URL[info.network]);
13190
13190
  if (config.exitTimelock) {
13191
13191
  const { value, type } = config.exitTimelock;
13192
13192
  if (value < 512n && type !== "blocks" || value >= 512n && type !== "seconds") {
@@ -13206,18 +13206,18 @@ var ReadonlyWallet = class _ReadonlyWallet {
13206
13206
  }
13207
13207
  }
13208
13208
  const boardingTimelock = config.boardingTimelock ?? toTimelock(info.boardingExitDelay);
13209
- const serverPubKey = chunkCFOIHLON_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
13210
- const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => chunkCFOIHLON_cjs.toXOnly(base.hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : void 0;
13209
+ const serverPubKey = chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
13210
+ const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : void 0;
13211
13211
  const offchainOptions = {
13212
13212
  pubKey,
13213
13213
  serverPubKey,
13214
13214
  csvTimelock: exitTimelock
13215
13215
  };
13216
- const offchainTapscript = !delegatePubKey ? new chunkCFOIHLON_cjs.DefaultVtxo.Script(offchainOptions) : new chunkCFOIHLON_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
13217
- const boardingTapscript = chunkCFOIHLON_cjs.BoardingContractHandler.createScript({
13216
+ const offchainTapscript = !delegatePubKey ? new chunkEP6XF7JX_cjs.DefaultVtxo.Script(offchainOptions) : new chunkEP6XF7JX_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
13217
+ const boardingTapscript = chunkEP6XF7JX_cjs.BoardingContractHandler.createScript({
13218
13218
  pubKey: base.hex.encode(pubKey),
13219
13219
  serverPubKey: base.hex.encode(serverPubKey),
13220
- csvTimelock: chunkVVFCCNU2_cjs.timelockToSequence(boardingTimelock).toString()
13220
+ csvTimelock: chunkZN7BX5XT_cjs.timelockToSequence(boardingTimelock).toString()
13221
13221
  });
13222
13222
  return {
13223
13223
  arkProvider,
@@ -13383,7 +13383,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13383
13383
  if (!filter?.withUnrolled) {
13384
13384
  logExcludedVtxos(
13385
13385
  "getSpendableVtxos",
13386
- snapshot.flatMap((contract) => contract.vtxos).filter((vtxo) => vtxo.isUnrolled && !chunkVVFCCNU2_cjs.isVtxoSpent(vtxo)),
13386
+ snapshot.flatMap((contract) => contract.vtxos).filter((vtxo) => vtxo.isUnrolled && !chunkZN7BX5XT_cjs.isVtxoSpent(vtxo)),
13387
13387
  [() => UNROLLED_REASON]
13388
13388
  );
13389
13389
  }
@@ -13526,7 +13526,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13526
13526
  this.getBoardingTxs()
13527
13527
  ]);
13528
13528
  const allVtxos = snapshot.flatMap((_) => _.vtxos);
13529
- const resolveTxCreatedAt = (txids) => chunkVVFCCNU2_cjs.fetchVtxoCreatedAtByTxid(this.indexerProvider, txids);
13529
+ const resolveTxCreatedAt = (txids) => chunkZN7BX5XT_cjs.fetchVtxoCreatedAtByTxid(this.indexerProvider, txids);
13530
13530
  return buildTransactionHistory(
13531
13531
  allVtxos,
13532
13532
  boardingTxs,
@@ -13680,9 +13680,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
13680
13680
  async getBoardingTapscripts(allowedSigners) {
13681
13681
  const byScript = /* @__PURE__ */ new Map();
13682
13682
  const add = (s) => byScript.set(base.hex.encode(s.pkScript), s);
13683
- const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunkCFOIHLON_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13683
+ const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunkEP6XF7JX_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13684
13684
  add(
13685
- new chunkCFOIHLON_cjs.DefaultVtxo.Script({
13685
+ new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
13686
13686
  pubKey: await this.identity.xOnlyPublicKey(),
13687
13687
  serverPubKey: this.boardingTapscript.options.serverPubKey,
13688
13688
  csvTimelock: boardingCsv
@@ -13697,7 +13697,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13697
13697
  for (const c of boardingContracts) {
13698
13698
  if (!allowed.has(toXOnlySignerHex(c.params.serverPubKey))) continue;
13699
13699
  try {
13700
- add(chunkCFOIHLON_cjs.BoardingContractHandler.createScript(c.params));
13700
+ add(chunkEP6XF7JX_cjs.BoardingContractHandler.createScript(c.params));
13701
13701
  } catch (e) {
13702
13702
  console.warn("Skipping malformed boarding contract", c.script, e);
13703
13703
  }
@@ -13726,7 +13726,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13726
13726
  // Per-row CSV delay decoded from THIS tapscript's exit leaf —
13727
13727
  // not the wallet's current boarding timelock, which a signer
13728
13728
  // rotation may have changed.
13729
- csvTimelock: chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
13729
+ csvTimelock: chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
13730
13730
  coins: utxos
13731
13731
  };
13732
13732
  })
@@ -13882,7 +13882,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13882
13882
  /** Fetch Arkade transaction ids that are still pending final settlement. */
13883
13883
  async fetchPendingTxs() {
13884
13884
  const scripts = await this.getWalletScripts();
13885
- const vtxos = await chunkVVFCCNU2_cjs.getAllNormalizedVtxos(this.indexerProvider, scripts);
13885
+ const vtxos = await chunkZN7BX5XT_cjs.getAllNormalizedVtxos(this.indexerProvider, scripts);
13886
13886
  return vtxos.filter(
13887
13887
  (vtxo) => (vtxo.isSpent || vtxo.isPreconfirmed && !vtxo.isSwept) && vtxo.arkTxId !== void 0
13888
13888
  ).map((_) => _.arkTxId);
@@ -13913,7 +13913,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
13913
13913
  });
13914
13914
  for (const contract of contracts) {
13915
13915
  if (map.has(contract.script)) continue;
13916
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
13916
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
13917
13917
  if (handler) {
13918
13918
  const script = handler.createScript(contract.params);
13919
13919
  map.set(contract.script, script);
@@ -14025,7 +14025,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
14025
14025
  }
14026
14026
  });
14027
14027
  const baselinePubkey = await this.identity.xOnlyPublicKey();
14028
- const delegatePubKey = this.offchainTapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
14028
+ const delegatePubKey = this.offchainTapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
14029
14029
  const baselineSigners = [
14030
14030
  this.offchainTapscript.options.serverPubKey,
14031
14031
  ...[...this._deprecatedSigners.keys()].map((h) => base.hex.decode(h))
@@ -14033,8 +14033,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
14033
14033
  const seenBaselineScripts = /* @__PURE__ */ new Set();
14034
14034
  for (const serverPubKey of baselineSigners) {
14035
14035
  for (const csvTimelock2 of this.walletContractTimelocks) {
14036
- const csvTimelockStr = chunkVVFCCNU2_cjs.timelockToSequence(csvTimelock2).toString();
14037
- const defaultScript = new chunkCFOIHLON_cjs.DefaultVtxo.Script({
14036
+ const csvTimelockStr = chunkZN7BX5XT_cjs.timelockToSequence(csvTimelock2).toString();
14037
+ const defaultScript = new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
14038
14038
  pubKey: baselinePubkey,
14039
14039
  serverPubKey,
14040
14040
  csvTimelock: csvTimelock2
@@ -14055,7 +14055,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
14055
14055
  });
14056
14056
  }
14057
14057
  if (delegatePubKey) {
14058
- const delegateScript = new chunkCFOIHLON_cjs.DelegateVtxo.Script({
14058
+ const delegateScript = new chunkEP6XF7JX_cjs.DelegateVtxo.Script({
14059
14059
  pubKey: baselinePubkey,
14060
14060
  serverPubKey,
14061
14061
  delegatePubKey,
@@ -14079,9 +14079,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
14079
14079
  }
14080
14080
  }
14081
14081
  }
14082
- const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunkCFOIHLON_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14082
+ const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunkEP6XF7JX_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14083
14083
  for (const serverPubKey of baselineSigners) {
14084
- const baselineBoarding = new chunkCFOIHLON_cjs.DefaultVtxo.Script({
14084
+ const baselineBoarding = new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
14085
14085
  pubKey: baselinePubkey,
14086
14086
  serverPubKey,
14087
14087
  csvTimelock: boardingCsvTimelock
@@ -14094,7 +14094,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
14094
14094
  params: {
14095
14095
  pubKey: base.hex.encode(baselineBoarding.options.pubKey),
14096
14096
  serverPubKey: base.hex.encode(serverPubKey),
14097
- csvTimelock: chunkVVFCCNU2_cjs.timelockToSequence(boardingCsvTimelock).toString()
14097
+ csvTimelock: chunkZN7BX5XT_cjs.timelockToSequence(boardingCsvTimelock).toString()
14098
14098
  },
14099
14099
  script: boardingScriptHex,
14100
14100
  address: baselineBoarding.address(this.network.hrp, serverPubKey).encode(),
@@ -14281,7 +14281,7 @@ var Wallet2 = class extends ReadonlyWallet {
14281
14281
  serverPubKey: this.offchainTapscript.options.serverPubKey,
14282
14282
  deprecatedSignerPubKeys: [...this._deprecatedSigners.keys()].map((h) => base.hex.decode(h)),
14283
14283
  csvTimelocks: this.walletContractTimelocks,
14284
- delegatePubKey: this.offchainTapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0
14284
+ delegatePubKey: this.offchainTapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0
14285
14285
  };
14286
14286
  }
14287
14287
  _signerRouter;
@@ -14441,7 +14441,7 @@ var Wallet2 = class extends ReadonlyWallet {
14441
14441
  const [row] = await manager.getContracts({ script: base.hex.encode(display.pkScript) });
14442
14442
  const persisted = row?.metadata?.signingDescriptor;
14443
14443
  if (typeof persisted === "string") return persisted;
14444
- return chunkCFOIHLON_cjs.identityDescriptor(this.identity);
14444
+ return chunkEP6XF7JX_cjs.identityDescriptor(this.identity);
14445
14445
  }
14446
14446
  /**
14447
14447
  * Build, persist and shape one address of `type` owned by `descriptor`. The descriptor is the
@@ -14451,7 +14451,7 @@ var Wallet2 = class extends ReadonlyWallet {
14451
14451
  async mintAddress(manager, type, descriptor, tagSource, allocated) {
14452
14452
  if (type === "boarding") {
14453
14453
  const built2 = this.buildBoardingContract(
14454
- chunkCFOIHLON_cjs.deriveDescriptorLeafPubKey(descriptor),
14454
+ chunkEP6XF7JX_cjs.deriveDescriptorLeafPubKey(descriptor),
14455
14455
  descriptor,
14456
14456
  tagSource
14457
14457
  );
@@ -14488,11 +14488,11 @@ var Wallet2 = class extends ReadonlyWallet {
14488
14488
  * (offchain analogue: {@link buildReceiveContract}).
14489
14489
  */
14490
14490
  buildBoardingContract(pubKey, descriptor, tagSource) {
14491
- const tapscript = new chunkCFOIHLON_cjs.DefaultVtxo.Script({
14491
+ const tapscript = new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
14492
14492
  ...this._boardingTapscript.options,
14493
14493
  pubKey
14494
14494
  });
14495
- const csvTimelock2 = tapscript.options.csvTimelock ?? chunkCFOIHLON_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14495
+ const csvTimelock2 = tapscript.options.csvTimelock ?? chunkEP6XF7JX_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14496
14496
  return {
14497
14497
  tapscript,
14498
14498
  params: {
@@ -14500,13 +14500,13 @@ var Wallet2 = class extends ReadonlyWallet {
14500
14500
  params: {
14501
14501
  pubKey: base.hex.encode(pubKey),
14502
14502
  serverPubKey: base.hex.encode(tapscript.options.serverPubKey),
14503
- csvTimelock: chunkVVFCCNU2_cjs.timelockToSequence(csvTimelock2).toString()
14503
+ csvTimelock: chunkZN7BX5XT_cjs.timelockToSequence(csvTimelock2).toString()
14504
14504
  },
14505
14505
  script: base.hex.encode(tapscript.pkScript),
14506
14506
  address: tapscript.address(this.network.hrp, this.arkServerPublicKey).encode(),
14507
14507
  state: "active",
14508
14508
  metadata: {
14509
- ...tagSource && { source: chunkCFOIHLON_cjs.WALLET_RECEIVE_SOURCE },
14509
+ ...tagSource && { source: chunkEP6XF7JX_cjs.WALLET_RECEIVE_SOURCE },
14510
14510
  signingDescriptor: descriptor
14511
14511
  }
14512
14512
  }
@@ -14528,7 +14528,7 @@ var Wallet2 = class extends ReadonlyWallet {
14528
14528
  if (this._hdProvider) {
14529
14529
  return (await this.getContractManager()).getNextSigningDescriptor();
14530
14530
  }
14531
- return chunkCFOIHLON_cjs.identityDescriptor(this.identity);
14531
+ return chunkEP6XF7JX_cjs.identityDescriptor(this.identity);
14532
14532
  }
14533
14533
  /**
14534
14534
  * @see HDAllocationCapable.advanceSigningDescriptorWatermark
@@ -14604,7 +14604,7 @@ var Wallet2 = class extends ReadonlyWallet {
14604
14604
  * the stable public API.
14605
14605
  */
14606
14606
  async rotateServerSigner(newServerPubKey, checkpointTapscript) {
14607
- const xonly = chunkCFOIHLON_cjs.toXOnly(newServerPubKey, "ark signer key");
14607
+ const xonly = chunkEP6XF7JX_cjs.toXOnly(newServerPubKey, "ark signer key");
14608
14608
  const newServerUnrollScript = assertValidServerUnrollScript(
14609
14609
  checkpointTapscript,
14610
14610
  resolveCheckpointExitDelayPolicy(this.network, this.checkpointExitDelayPolicy)
@@ -14633,21 +14633,21 @@ var Wallet2 = class extends ReadonlyWallet {
14633
14633
  const [currentBoardingRow] = await manager.getContracts({
14634
14634
  script: currentBoardingScript
14635
14635
  });
14636
- const newOffchain = this.offchainTapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? new chunkCFOIHLON_cjs.DelegateVtxo.Script({
14636
+ const newOffchain = this.offchainTapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? new chunkEP6XF7JX_cjs.DelegateVtxo.Script({
14637
14637
  ...this.offchainTapscript.options,
14638
14638
  serverPubKey: xonly
14639
- }) : new chunkCFOIHLON_cjs.DefaultVtxo.Script({
14639
+ }) : new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
14640
14640
  ...this.offchainTapscript.options,
14641
14641
  serverPubKey: xonly
14642
14642
  });
14643
- const newBoarding = new chunkCFOIHLON_cjs.DefaultVtxo.Script({
14643
+ const newBoarding = new chunkEP6XF7JX_cjs.DefaultVtxo.Script({
14644
14644
  ...this._boardingTapscript.options,
14645
14645
  serverPubKey: xonly
14646
14646
  });
14647
- const offchainCsv = chunkVVFCCNU2_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
14647
+ const offchainCsv = chunkZN7BX5XT_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
14648
14648
  const newOffchainScript = base.hex.encode(newOffchain.pkScript);
14649
14649
  const newOffchainAddress = newOffchain.address(this.network.hrp, xonly).encode();
14650
- if (newOffchain instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script) {
14650
+ if (newOffchain instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script) {
14651
14651
  await manager.createContract({
14652
14652
  type: "delegate",
14653
14653
  params: {
@@ -14675,13 +14675,13 @@ var Wallet2 = class extends ReadonlyWallet {
14675
14675
  metadata: currentOffchainRow?.metadata
14676
14676
  });
14677
14677
  }
14678
- const boardingCsv = newBoarding.options.csvTimelock ?? chunkCFOIHLON_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14678
+ const boardingCsv = newBoarding.options.csvTimelock ?? chunkEP6XF7JX_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
14679
14679
  await manager.createContract({
14680
14680
  type: "boarding",
14681
14681
  params: {
14682
14682
  pubKey: base.hex.encode(newBoarding.options.pubKey),
14683
14683
  serverPubKey: base.hex.encode(xonly),
14684
- csvTimelock: chunkVVFCCNU2_cjs.timelockToSequence(boardingCsv).toString()
14684
+ csvTimelock: chunkZN7BX5XT_cjs.timelockToSequence(boardingCsv).toString()
14685
14685
  },
14686
14686
  script: base.hex.encode(newBoarding.pkScript),
14687
14687
  address: newBoarding.address(this.network.hrp, xonly).encode(),
@@ -14709,14 +14709,14 @@ var Wallet2 = class extends ReadonlyWallet {
14709
14709
  _restoreInFlight;
14710
14710
  _addPendingSpends(inputs) {
14711
14711
  for (const input of inputs) {
14712
- if (chunkVVFCCNU2_cjs.isVirtualCoin(input)) {
14712
+ if (chunkZN7BX5XT_cjs.isVirtualCoin(input)) {
14713
14713
  this._pendingSpendOutpoints.add(`${input.txid}:${input.vout}`);
14714
14714
  }
14715
14715
  }
14716
14716
  }
14717
14717
  _removePendingSpends(inputs) {
14718
14718
  for (const input of inputs) {
14719
- if (chunkVVFCCNU2_cjs.isVirtualCoin(input)) {
14719
+ if (chunkZN7BX5XT_cjs.isVirtualCoin(input)) {
14720
14720
  this._pendingSpendOutpoints.delete(`${input.txid}:${input.vout}`);
14721
14721
  }
14722
14722
  }
@@ -14780,7 +14780,7 @@ var Wallet2 = class extends ReadonlyWallet {
14780
14780
  if (clashing.length > 0) throw new VtxoReservedError(clashing, "in-flight");
14781
14781
  }
14782
14782
  _assertNotHeld(inputs) {
14783
- const held = coinKeys(inputs.filter(chunkVVFCCNU2_cjs.isVirtualCoin)).filter(
14783
+ const held = coinKeys(inputs.filter(chunkZN7BX5XT_cjs.isVirtualCoin)).filter(
14784
14784
  (key) => this._heldOutpoints.has(key)
14785
14785
  );
14786
14786
  if (held.length > 0) throw new VtxoReservedError(held, "held");
@@ -14818,13 +14818,13 @@ var Wallet2 = class extends ReadonlyWallet {
14818
14818
  const manager = await this.getContractManager();
14819
14819
  const provider = this._hdProvider;
14820
14820
  const hd = provider !== void 0;
14821
- const staticDescriptor = hd ? void 0 : await chunkCFOIHLON_cjs.identityDescriptor(this.identity);
14821
+ const staticDescriptor = hd ? void 0 : await chunkEP6XF7JX_cjs.identityDescriptor(this.identity);
14822
14822
  const materialize = (index) => hd ? provider.materializeDescriptorAt(index) : staticDescriptor;
14823
- const delegatePubKey = this.offchainTapscript instanceof chunkCFOIHLON_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
14823
+ const delegatePubKey = this.offchainTapscript instanceof chunkEP6XF7JX_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
14824
14824
  const arkInfo = await this.arkProvider.getInfo();
14825
- const currentSignerPubKey = chunkCFOIHLON_cjs.toXOnly(base.hex.decode(arkInfo.signerPubkey), "ark signer key");
14825
+ const currentSignerPubKey = chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(arkInfo.signerPubkey), "ark signer key");
14826
14826
  const deprecatedSignerPubKeys = arkInfo.deprecatedSigners.map(
14827
- (s) => chunkCFOIHLON_cjs.toXOnly(base.hex.decode(s.pubkey), "deprecated signer key")
14827
+ (s) => chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(s.pubkey), "deprecated signer key")
14828
14828
  );
14829
14829
  const deps = {
14830
14830
  indexerProvider: this.indexerProvider,
@@ -14836,7 +14836,7 @@ var Wallet2 = class extends ReadonlyWallet {
14836
14836
  deprecatedSignerPubKeys,
14837
14837
  csvTimelocks: this.walletContractTimelocks,
14838
14838
  // Boarding-exit CSV, distinct from the unilateral-exit matrix.
14839
- boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunkCFOIHLON_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
14839
+ boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunkEP6XF7JX_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
14840
14840
  delegatePubKey
14841
14841
  };
14842
14842
  const result = await manager.scanContracts({
@@ -14952,7 +14952,7 @@ var Wallet2 = class extends ReadonlyWallet {
14952
14952
  throw new Error("Invalid configured public key");
14953
14953
  }
14954
14954
  const setup = await ReadonlyWallet.setupWalletConfig(config, pubkey);
14955
- const forfeitPubkey = chunkCFOIHLON_cjs.toXOnly(base.hex.decode(setup.info.forfeitPubkey), "forfeit key");
14955
+ const forfeitPubkey = chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(setup.info.forfeitPubkey), "forfeit key");
14956
14956
  const forfeitAddress = btcSigner.Address(setup.network).decode(setup.info.forfeitAddress);
14957
14957
  const forfeitOutputScript = btcSigner.OutScript.encode(forfeitAddress);
14958
14958
  const checkpointExitDelayOverrides = {
@@ -15124,13 +15124,13 @@ var Wallet2 = class extends ReadonlyWallet {
15124
15124
  void this.logUngatedInputs("settle({ inputs })", params.inputs);
15125
15125
  }
15126
15126
  const offchainAddress = await this.getAddress();
15127
- const offchainPkScript = chunkVVFCCNU2_cjs.ArkAddress.decode(offchainAddress).pkScript;
15127
+ const offchainPkScript = chunkZN7BX5XT_cjs.ArkAddress.decode(offchainAddress).pkScript;
15128
15128
  const offchainOutputScript = base.hex.encode(offchainPkScript);
15129
15129
  if (!params) {
15130
15130
  const { fees, vtxoMaxAmount } = await this.arkProvider.getInfo();
15131
15131
  const estimator = new Estimator(fees.intentFee);
15132
15132
  let amount = 0;
15133
- const exitScript = chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(
15133
+ const exitScript = chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(
15134
15134
  base.hex.decode(this.boardingTapscript.exitScript)
15135
15135
  );
15136
15136
  const boardingTimelock = exitScript.params.timelock;
@@ -15162,7 +15162,7 @@ var Wallet2 = class extends ReadonlyWallet {
15162
15162
  if (filteredVtxos.length >= MAX_VTXOS_PER_SETTLEMENT) {
15163
15163
  break;
15164
15164
  }
15165
- const inputFee = estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(vtxo));
15165
+ const inputFee = estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(vtxo));
15166
15166
  if (inputFee.satoshis >= vtxo.value) {
15167
15167
  continue;
15168
15168
  }
@@ -15214,7 +15214,7 @@ var Wallet2 = class extends ReadonlyWallet {
15214
15214
  let script;
15215
15215
  let arkAddress;
15216
15216
  try {
15217
- arkAddress = chunkVVFCCNU2_cjs.ArkAddress.decode(output.address);
15217
+ arkAddress = chunkZN7BX5XT_cjs.ArkAddress.decode(output.address);
15218
15218
  } catch {
15219
15219
  arkAddress = void 0;
15220
15220
  }
@@ -15286,11 +15286,11 @@ var Wallet2 = class extends ReadonlyWallet {
15286
15286
  ]);
15287
15287
  let intentTxId;
15288
15288
  try {
15289
- intentTxId = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(intent.proof)).id;
15289
+ intentTxId = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(intent.proof)).id;
15290
15290
  } catch {
15291
15291
  intentTxId = params.inputs.map((i) => `${i.txid}:${i.vout}`).sort().join("|");
15292
15292
  }
15293
- const settleInputVtxos = params.inputs.filter(chunkVVFCCNU2_cjs.isVirtualCoin);
15293
+ const settleInputVtxos = params.inputs.filter(chunkZN7BX5XT_cjs.isVirtualCoin);
15294
15294
  const contractManager = await this.getContractManager();
15295
15295
  await contractManager.assertAnnotatable(settleInputVtxos);
15296
15296
  await contractManager.assertSpendableNow?.(
@@ -15299,7 +15299,7 @@ var Wallet2 = class extends ReadonlyWallet {
15299
15299
  );
15300
15300
  if (picked) this._assertNotHeld(params.inputs);
15301
15301
  this._addPendingSpends(params.inputs);
15302
- const boardingKeys = onReserved ? coinKeys(params.inputs.filter((i) => !chunkVVFCCNU2_cjs.isVirtualCoin(i))) : [];
15302
+ const boardingKeys = onReserved ? coinKeys(params.inputs.filter((i) => !chunkZN7BX5XT_cjs.isVirtualCoin(i))) : [];
15303
15303
  for (const key of boardingKeys) this._pendingSpendOutpoints.add(key);
15304
15304
  const settlingKeys = params.inputs.map((i) => `${i.txid}:${i.vout}`);
15305
15305
  for (const key of settlingKeys) this._settlingOutpoints.add(key);
@@ -15410,7 +15410,7 @@ var Wallet2 = class extends ReadonlyWallet {
15410
15410
  async maybeRotateBoardingAfterBoard(inputs) {
15411
15411
  if (!this._descriptorProvider) return;
15412
15412
  const consumedBoarding = inputs.some(
15413
- (input) => typeof input !== "string" && !chunkVVFCCNU2_cjs.isVirtualCoin(input)
15413
+ (input) => typeof input !== "string" && !chunkZN7BX5XT_cjs.isVirtualCoin(input)
15414
15414
  );
15415
15415
  if (!consumedBoarding) return;
15416
15416
  try {
@@ -15421,7 +15421,7 @@ var Wallet2 = class extends ReadonlyWallet {
15421
15421
  }
15422
15422
  async handleSettlementFinalizationEvent(event, inputs, forfeitOutputScript, expectedRecipients, connectorsGraph, validatedCommitmentTxid) {
15423
15423
  const signedForfeits = [];
15424
- let settlementPsbt = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
15424
+ let settlementPsbt = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
15425
15425
  assertFinalCommitmentMatchesValidated(
15426
15426
  settlementPsbt,
15427
15427
  validatedCommitmentTxid,
@@ -15434,7 +15434,7 @@ var Wallet2 = class extends ReadonlyWallet {
15434
15434
  let connectorIndex = 0;
15435
15435
  const connectorsLeaves = connectorsGraph?.leaves() || [];
15436
15436
  for (const input of inputs) {
15437
- if (!chunkVVFCCNU2_cjs.isVirtualCoin(input)) {
15437
+ if (!chunkZN7BX5XT_cjs.isVirtualCoin(input)) {
15438
15438
  let matched = false;
15439
15439
  for (let i = 0; i < settlementPsbt.inputsLength; i++) {
15440
15440
  const settlementInput = settlementPsbt.getInput(i);
@@ -15472,7 +15472,7 @@ var Wallet2 = class extends ReadonlyWallet {
15472
15472
  }
15473
15473
  continue;
15474
15474
  }
15475
- if (!chunkVVFCCNU2_cjs.requiresForfeit(input) || isSubdust({ value: input.value }, this.dustAmount)) {
15475
+ if (!chunkZN7BX5XT_cjs.requiresForfeit(input) || isSubdust({ value: input.value }, this.dustAmount)) {
15476
15476
  continue;
15477
15477
  }
15478
15478
  if (connectorsLeaves.length === 0) {
@@ -15500,7 +15500,7 @@ var Wallet2 = class extends ReadonlyWallet {
15500
15500
  index: input.vout,
15501
15501
  witnessUtxo: {
15502
15502
  amount: BigInt(input.value),
15503
- script: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript
15503
+ script: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript
15504
15504
  },
15505
15505
  sighashType: btcSigner.SigHash.DEFAULT,
15506
15506
  tapLeafScript: [input.forfeitTapLeafScript]
@@ -15519,7 +15519,7 @@ var Wallet2 = class extends ReadonlyWallet {
15519
15519
  forfeitTx = await this._signerRouter.sign(forfeitTx, [
15520
15520
  {
15521
15521
  index: 0,
15522
- lookupScript: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript
15522
+ lookupScript: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript
15523
15523
  }
15524
15524
  ]);
15525
15525
  signedForfeits.push(base.base64.encode(forfeitTx.toPSBT()));
@@ -15577,7 +15577,7 @@ var Wallet2 = class extends ReadonlyWallet {
15577
15577
  resolveBatchExpiryPolicy(this.network, this.batchExpiryPolicy)
15578
15578
  );
15579
15579
  await this.arkProvider.confirmRegistration(intentId);
15580
- const sweepTapscript = chunkVVFCCNU2_cjs.CSVMultisigTapscript.encode({
15580
+ const sweepTapscript = chunkZN7BX5XT_cjs.CSVMultisigTapscript.encode({
15581
15581
  timelock,
15582
15582
  pubkeys: [this.forfeitPubkey]
15583
15583
  }).script;
@@ -15592,14 +15592,14 @@ var Wallet2 = class extends ReadonlyWallet {
15592
15592
  throw new Error("Sweep tap tree root not set");
15593
15593
  }
15594
15594
  const xOnlyPublicKeys = event.cosignersPublicKeys.map(
15595
- (k) => base.hex.encode(chunkCFOIHLON_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
15595
+ (k) => base.hex.encode(chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
15596
15596
  );
15597
15597
  const signerPublicKey = await session.getPublicKey();
15598
- const xonlySignerPublicKey = chunkCFOIHLON_cjs.toXOnly(signerPublicKey, "signer key");
15598
+ const xonlySignerPublicKey = chunkEP6XF7JX_cjs.toXOnly(signerPublicKey, "signer key");
15599
15599
  if (!xOnlyPublicKeys.includes(base.hex.encode(xonlySignerPublicKey))) {
15600
15600
  return { skip: true };
15601
15601
  }
15602
- const commitmentTx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(
15602
+ const commitmentTx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(
15603
15603
  base.base64.decode(event.unsignedCommitmentTx)
15604
15604
  );
15605
15605
  validateVtxoTxGraph(vtxoTree, commitmentTx, sweepTapTreeRoot);
@@ -15681,9 +15681,9 @@ var Wallet2 = class extends ReadonlyWallet {
15681
15681
  ...existing ?? {},
15682
15682
  intentTxId,
15683
15683
  registerProof: intent.proof,
15684
- registerProofMessage: chunkVVFCCNU2_cjs.Intent.encodeMessage(intent.message),
15684
+ registerProofMessage: chunkZN7BX5XT_cjs.Intent.encodeMessage(intent.message),
15685
15685
  deleteProof: deleteIntent.proof,
15686
- deleteProofMessage: chunkVVFCCNU2_cjs.Intent.encodeMessage(deleteIntent.message),
15686
+ deleteProofMessage: chunkZN7BX5XT_cjs.Intent.encodeMessage(deleteIntent.message),
15687
15687
  intentVtxos: inputs.map((i) => ({
15688
15688
  txid: i.txid,
15689
15689
  vout: i.vout
@@ -15716,7 +15716,7 @@ var Wallet2 = class extends ReadonlyWallet {
15716
15716
  try {
15717
15717
  return await this.arkProvider.registerIntent(intent);
15718
15718
  } catch (error) {
15719
- if (error instanceof chunkVVFCCNU2_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
15719
+ if (error instanceof chunkZN7BX5XT_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
15720
15720
  const deleteIntent = await this.makeDeleteIntentSignature(inputs);
15721
15721
  await this.arkProvider.deleteIntent(deleteIntent);
15722
15722
  return this.arkProvider.registerIntent(intent);
@@ -15732,7 +15732,7 @@ var Wallet2 = class extends ReadonlyWallet {
15732
15732
  expire_at: 0,
15733
15733
  cosigners_public_keys: cosignerPubKeys
15734
15734
  };
15735
- const proof = chunkVVFCCNU2_cjs.Intent.create(message, coins, outputs);
15735
+ const proof = chunkZN7BX5XT_cjs.Intent.create(message, coins, outputs);
15736
15736
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
15737
15737
  return {
15738
15738
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -15744,7 +15744,7 @@ var Wallet2 = class extends ReadonlyWallet {
15744
15744
  type: "delete",
15745
15745
  expire_at: 0
15746
15746
  };
15747
- const proof = chunkVVFCCNU2_cjs.Intent.create(message, coins, []);
15747
+ const proof = chunkZN7BX5XT_cjs.Intent.create(message, coins, []);
15748
15748
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
15749
15749
  return {
15750
15750
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -15756,7 +15756,7 @@ var Wallet2 = class extends ReadonlyWallet {
15756
15756
  type: "get-pending-tx",
15757
15757
  expire_at: 0
15758
15758
  };
15759
- const proof = chunkVVFCCNU2_cjs.Intent.create(message, coins, []);
15759
+ const proof = chunkZN7BX5XT_cjs.Intent.create(message, coins, []);
15760
15760
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
15761
15761
  return {
15762
15762
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -15777,7 +15777,7 @@ var Wallet2 = class extends ReadonlyWallet {
15777
15777
  if (!vtxos || vtxos.length === 0) {
15778
15778
  const scriptMap = await this.getScriptMap();
15779
15779
  const allExtended = [];
15780
- const fetchedVtxos = await chunkVVFCCNU2_cjs.getAllNormalizedVtxos(this.indexerProvider, [
15780
+ const fetchedVtxos = await chunkZN7BX5XT_cjs.getAllNormalizedVtxos(this.indexerProvider, [
15781
15781
  ...scriptMap.keys()
15782
15782
  ]);
15783
15783
  for (const vtxo of fetchedVtxos) {
@@ -15820,8 +15820,8 @@ var Wallet2 = class extends ReadonlyWallet {
15820
15820
  batchPending.push(pendingTx.arkTxid);
15821
15821
  try {
15822
15822
  const checkpointTxs = pendingTx.signedCheckpointTxs.map((c) => {
15823
- const tx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(c));
15824
- chunkVVFCCNU2_cjs.assertAllowedSighashTypes(tx);
15823
+ const tx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(c));
15824
+ chunkZN7BX5XT_cjs.assertAllowedSighashTypes(tx);
15825
15825
  return tx;
15826
15826
  });
15827
15827
  assertCheckpointsMatchInputs(
@@ -15890,11 +15890,11 @@ var Wallet2 = class extends ReadonlyWallet {
15890
15890
  * and one per deprecated signer — else a pre-rotation tx would stay pending forever.
15891
15891
  */
15892
15892
  checkpointUnrollCandidates(info) {
15893
- const current = chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
15893
+ const current = chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
15894
15894
  const candidates = [this._serverUnrollScript, current];
15895
15895
  for (const deprecated of signerSetFromInfo(info).deprecated.keys()) {
15896
15896
  candidates.push(
15897
- chunkVVFCCNU2_cjs.CSVMultisigTapscript.encode({
15897
+ chunkZN7BX5XT_cjs.CSVMultisigTapscript.encode({
15898
15898
  ...current.params,
15899
15899
  pubkeys: [base.hex.decode(deprecated)]
15900
15900
  })
@@ -15989,7 +15989,7 @@ var Wallet2 = class extends ReadonlyWallet {
15989
15989
  if (vtxos.length === 0) {
15990
15990
  throw new Error("No VTXOs found for this arkadeCash");
15991
15991
  }
15992
- const myPkScript = chunkVVFCCNU2_cjs.ArkAddress.decode(await this.getAddress()).pkScript;
15992
+ const myPkScript = chunkZN7BX5XT_cjs.ArkAddress.decode(await this.getAddress()).pkScript;
15993
15993
  let { spendable, recoverable, unclaimed } = this.classifyCashVtxos(vtxos);
15994
15994
  let swept = 0;
15995
15995
  const drainable = vtxos.filter(
@@ -16115,7 +16115,7 @@ var Wallet2 = class extends ReadonlyWallet {
16115
16115
  params: {
16116
16116
  pubKey: base.hex.encode(cash.publicKey),
16117
16117
  serverPubKey: base.hex.encode(cash.serverPubKey),
16118
- csvTimelock: chunkVVFCCNU2_cjs.timelockToSequence(cash.csvTimelock).toString()
16118
+ csvTimelock: chunkZN7BX5XT_cjs.timelockToSequence(cash.csvTimelock).toString()
16119
16119
  },
16120
16120
  script: base.hex.encode(cashScript.pkScript),
16121
16121
  address: cashAddress.encode(),
@@ -16196,7 +16196,7 @@ var Wallet2 = class extends ReadonlyWallet {
16196
16196
  const recoverable = [];
16197
16197
  const unclaimed = [];
16198
16198
  for (const vtxo of vtxos) {
16199
- if (chunkVVFCCNU2_cjs.isVtxoSpent(vtxo)) {
16199
+ if (chunkZN7BX5XT_cjs.isVtxoSpent(vtxo)) {
16200
16200
  unclaimed.push(cashReport(vtxo, "already-spent"));
16201
16201
  } else if (vtxo.isUnrolled) {
16202
16202
  unclaimed.push(cashReport(vtxo, "exited"));
@@ -16218,7 +16218,7 @@ var Wallet2 = class extends ReadonlyWallet {
16218
16218
  const all = [];
16219
16219
  const seen = /* @__PURE__ */ new Set();
16220
16220
  for (let pageIndex = 0; ; pageIndex++) {
16221
- const { vtxos, page } = await chunkVVFCCNU2_cjs.getNormalizedVtxos(this.indexerProvider, {
16221
+ const { vtxos, page } = await chunkZN7BX5XT_cjs.getNormalizedVtxos(this.indexerProvider, {
16222
16222
  scripts,
16223
16223
  pageIndex,
16224
16224
  pageSize
@@ -16256,7 +16256,7 @@ var Wallet2 = class extends ReadonlyWallet {
16256
16256
  for (let i = 0; i < inputs.length; i += MAX_INPUTS_PER_INTENT) {
16257
16257
  const batch = inputs.slice(i, i + MAX_INPUTS_PER_INTENT);
16258
16258
  const message = { type: "get-pending-tx", expire_at: 0 };
16259
- const proof = chunkVVFCCNU2_cjs.Intent.create(message, batch, []);
16259
+ const proof = chunkZN7BX5XT_cjs.Intent.create(message, batch, []);
16260
16260
  const signedProof = await identity.sign(
16261
16261
  proof,
16262
16262
  Array.from({ length: batch.length + 1 }, (_, j) => j)
@@ -16277,8 +16277,8 @@ var Wallet2 = class extends ReadonlyWallet {
16277
16277
  for (const pendingTx of pendingTxs) {
16278
16278
  try {
16279
16279
  const checkpointTxs = pendingTx.signedCheckpointTxs.map((checkpoint) => {
16280
- const tx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(checkpoint));
16281
- chunkVVFCCNU2_cjs.assertAllowedSighashTypes(tx);
16280
+ const tx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(checkpoint));
16281
+ chunkZN7BX5XT_cjs.assertAllowedSighashTypes(tx);
16282
16282
  return tx;
16283
16283
  });
16284
16284
  assertCheckpointsMatchInputs(
@@ -16318,7 +16318,7 @@ var Wallet2 = class extends ReadonlyWallet {
16318
16318
  }
16319
16319
  /** Sum the outputs of an ark tx PSBT that pay the given scriptPubKey. */
16320
16320
  arkTxAmountPaidTo(arkTxPsbt, pkScriptHex) {
16321
- const arkTx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(arkTxPsbt));
16321
+ const arkTx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(arkTxPsbt));
16322
16322
  let total = 0;
16323
16323
  for (let i = 0; i < arkTx.outputsLength; i++) {
16324
16324
  const output = arkTx.getOutput(i);
@@ -16377,7 +16377,7 @@ var Wallet2 = class extends ReadonlyWallet {
16377
16377
  throw new Error("send({ maxChangeFee }): expected a non-negative safe integer");
16378
16378
  }
16379
16379
  if (selectedVtxos) {
16380
- if (inputExpiryFloor) selectedVtxos = selectedVtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
16380
+ if (inputExpiryFloor) selectedVtxos = selectedVtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
16381
16381
  if (inputExpiryFloor && selectedVtxos.some((coin) => !meetsInputExpiryFloor(coin, inputExpiryFloor))) {
16382
16382
  throw new Error("send({ selectedVtxos }): input expiry floor not met");
16383
16383
  }
@@ -16512,7 +16512,7 @@ var Wallet2 = class extends ReadonlyWallet {
16512
16512
  script: recipient.script,
16513
16513
  amount: BigInt(recipient.amount),
16514
16514
  // Already checked against the recipient address in `validateRecipients`.
16515
- ...recipient.tapTree ? { tapTree: chunkVVFCCNU2_cjs.toBIP371TapTree(recipient.tapTree) } : {}
16515
+ ...recipient.tapTree ? { tapTree: chunkZN7BX5XT_cjs.toBIP371TapTree(recipient.tapTree) } : {}
16516
16516
  }));
16517
16517
  const totalBtcOutput = outputs.reduce((sum, o) => sum + Number(o.amount), 0);
16518
16518
  let changeAmount = totalBtcSelected - totalBtcOutput;
@@ -16704,10 +16704,10 @@ var Wallet2 = class extends ReadonlyWallet {
16704
16704
  const serverPubKey = this.arkServerPublicKey;
16705
16705
  const serverUnrollScript = this.serverUnrollScript;
16706
16706
  const arkAddress = offchainTapscript.address(this.network.hrp, serverPubKey);
16707
- const normalizedInputs = inputs.map(chunkVVFCCNU2_cjs.normalizeVtxo);
16708
- const at = now ?? await chunkVVFCCNU2_cjs.resolveTimeHeight(this.onchainProvider);
16707
+ const normalizedInputs = inputs.map(chunkZN7BX5XT_cjs.normalizeVtxo);
16708
+ const at = now ?? await chunkZN7BX5XT_cjs.resolveTimeHeight(this.onchainProvider);
16709
16709
  for (const input of normalizedInputs) {
16710
- if (!chunkVVFCCNU2_cjs.canSpendOffchain(input, at)) {
16710
+ if (!chunkZN7BX5XT_cjs.canSpendOffchain(input, at)) {
16711
16711
  throw new Error(
16712
16712
  `sendSelectedVtxosToSelf: input ${input.txid}:${input.vout} is not cooperatively spendable`
16713
16713
  );
@@ -16791,7 +16791,7 @@ var Wallet2 = class extends ReadonlyWallet {
16791
16791
  );
16792
16792
  const arkTxJobs = inputs.map((input, index) => ({
16793
16793
  index,
16794
- lookupScript: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript
16794
+ lookupScript: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript
16795
16795
  }));
16796
16796
  const identity = this.identity;
16797
16797
  const signer = {
@@ -16900,7 +16900,7 @@ var Wallet2 = class extends ReadonlyWallet {
16900
16900
  }
16901
16901
  const checkpointIdByOutpoint = /* @__PURE__ */ new Map();
16902
16902
  for (const encoded of signedCheckpointTxs) {
16903
- const checkpoint = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
16903
+ const checkpoint = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
16904
16904
  for (let i = 0; i < checkpoint.inputsLength; i++) {
16905
16905
  const input = checkpoint.getInput(i);
16906
16906
  if (!input.txid) continue;
@@ -17016,12 +17016,12 @@ var Wallet2 = class extends ReadonlyWallet {
17016
17016
  const spentVtxos = [];
17017
17017
  const inputArkTxIds = /* @__PURE__ */ new Set();
17018
17018
  const boardingRemovalsByAddress = /* @__PURE__ */ new Map();
17019
- const vtxoInputs = inputs.filter(chunkVVFCCNU2_cjs.isVirtualCoin);
17019
+ const vtxoInputs = inputs.filter(chunkZN7BX5XT_cjs.isVirtualCoin);
17020
17020
  const cm = await this.getContractManager();
17021
17021
  const annotatedVtxos = await cm.annotateVtxos(vtxoInputs);
17022
17022
  const annotatedByKey = new Map(annotatedVtxos.map((v) => [`${v.txid}:${v.vout}`, v]));
17023
17023
  for (const input of inputs) {
17024
- if (chunkVVFCCNU2_cjs.isVirtualCoin(input)) {
17024
+ if (chunkZN7BX5XT_cjs.isVirtualCoin(input)) {
17025
17025
  const outpoint = `${input.txid}:${input.vout}`;
17026
17026
  const vtxo = annotatedByKey.get(outpoint);
17027
17027
  if (!vtxo) {
@@ -17038,7 +17038,7 @@ var Wallet2 = class extends ReadonlyWallet {
17038
17038
  } else {
17039
17039
  let sourceAddress;
17040
17040
  try {
17041
- sourceAddress = chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
17041
+ sourceAddress = chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
17042
17042
  this.network
17043
17043
  );
17044
17044
  } catch {
@@ -17110,7 +17110,7 @@ function bySelectionOrder(a, b) {
17110
17110
  return b.value - a.value;
17111
17111
  }
17112
17112
  function selectVirtualCoins(coins, targetAmount) {
17113
- const sortedCoins = coins.map(chunkVVFCCNU2_cjs.normalizeVtxo).sort(bySelectionOrder);
17113
+ const sortedCoins = coins.map(chunkZN7BX5XT_cjs.normalizeVtxo).sort(bySelectionOrder);
17114
17114
  const selectedCoins = [];
17115
17115
  let selectedAmount = 0;
17116
17116
  for (const coin of sortedCoins) {
@@ -17227,7 +17227,7 @@ function assertTimeoutMap(name, timeouts) {
17227
17227
  if (value === void 0) {
17228
17228
  throw new Error(`${name}.${key} must be a non-negative safe integer`);
17229
17229
  }
17230
- chunkVVFCCNU2_cjs.assertTimerMs(`${name}.${key}`, value);
17230
+ chunkZN7BX5XT_cjs.assertTimerMs(`${name}.${key}`, value);
17231
17231
  }
17232
17232
  }
17233
17233
  var MessageBus = class {
@@ -17238,15 +17238,17 @@ var MessageBus = class {
17238
17238
  messageTimeoutMs = 3e4,
17239
17239
  messageTimeoutOverrides = {},
17240
17240
  intentRepository,
17241
+ onchainProvider,
17241
17242
  debug = false,
17242
17243
  buildServices
17243
17244
  }) {
17244
17245
  this.walletRepository = walletRepository;
17245
17246
  this.contractRepository = contractRepository;
17246
- chunkVVFCCNU2_cjs.assertTimerMs("tickIntervalMs", tickIntervalMs);
17247
- chunkVVFCCNU2_cjs.assertTimerMs("messageTimeoutMs", messageTimeoutMs);
17247
+ chunkZN7BX5XT_cjs.assertTimerMs("tickIntervalMs", tickIntervalMs);
17248
+ chunkZN7BX5XT_cjs.assertTimerMs("messageTimeoutMs", messageTimeoutMs);
17248
17249
  assertTimeoutMap("messageTimeoutOverrides", messageTimeoutOverrides);
17249
17250
  this.intentRepository = intentRepository;
17251
+ this.onchainProvider = onchainProvider;
17250
17252
  this.handlers = new Map(messageHandlers.map((u) => [u.messageTag, u]));
17251
17253
  this.tickIntervalMs = tickIntervalMs;
17252
17254
  this.messageTimeoutMs = messageTimeoutMs;
@@ -17281,6 +17283,7 @@ var MessageBus = class {
17281
17283
  buildServicesFn;
17282
17284
  boundOnMessage = this.onMessage.bind(this);
17283
17285
  intentRepository;
17286
+ onchainProvider;
17284
17287
  /** Pending broadcasts, drained FIFO by a single {@link drain} loop. */
17285
17288
  broadcastQueue = [];
17286
17289
  draining = false;
@@ -17498,14 +17501,14 @@ var MessageBus = class {
17498
17501
  this.initialized = true;
17499
17502
  }
17500
17503
  async buildServices(config) {
17501
- const arkProvider = new chunkVVFCCNU2_cjs.RestArkProvider(config.arkServer.url);
17504
+ const arkProvider = new chunkZN7BX5XT_cjs.RestArkProvider(config.arkServer.url);
17502
17505
  const storage = {
17503
17506
  walletRepository: this.walletRepository,
17504
17507
  contractRepository: this.contractRepository,
17505
17508
  ...this.intentRepository && { intentRepository: this.intentRepository }
17506
17509
  };
17507
17510
  const delegateProvider = config.delegateUrl ? new RestDelegateProvider(config.delegateUrl) : void 0;
17508
- const indexerProvider = new chunkFEBAG2K2_cjs.RestIndexerProvider(config.arkServer.url);
17511
+ const indexerProvider = new chunkURILS6HH_cjs.RestIndexerProvider(config.arkServer.url);
17509
17512
  const serialized = normalizeSerializedIdentity(config.wallet);
17510
17513
  if (isSigningSerialized(serialized)) {
17511
17514
  const identity2 = hydrateIdentity(serialized);
@@ -17514,6 +17517,7 @@ var MessageBus = class {
17514
17517
  arkProvider,
17515
17518
  arkServerPublicKey: config.arkServer.publicKey,
17516
17519
  indexerProvider,
17520
+ onchainProvider: this.onchainProvider,
17517
17521
  storage,
17518
17522
  delegateProvider,
17519
17523
  settlementConfig: config.settlementConfig,
@@ -17534,6 +17538,7 @@ var MessageBus = class {
17534
17538
  arkProvider,
17535
17539
  arkServerPublicKey: config.arkServer.publicKey,
17536
17540
  indexerProvider,
17541
+ onchainProvider: this.onchainProvider,
17537
17542
  storage,
17538
17543
  delegateProvider,
17539
17544
  watcherConfig: config.watcherConfig
@@ -17846,7 +17851,7 @@ var offboardNetworkNames = [
17846
17851
  function offboardDestinationScript(destinationAddress) {
17847
17852
  for (const networkName of offboardNetworkNames) {
17848
17853
  try {
17849
- const network = chunkVVFCCNU2_cjs.networks[networkName];
17854
+ const network = chunkZN7BX5XT_cjs.networks[networkName];
17850
17855
  const addr = btcSigner.Address(network).decode(destinationAddress);
17851
17856
  return btcSigner.OutScript.encode(addr);
17852
17857
  } catch {
@@ -17886,7 +17891,7 @@ function filterOffboardInputs(vtxos, feeInfo, named) {
17886
17891
  const inputs = [];
17887
17892
  let subtotal = 0n;
17888
17893
  for (const vtxo of vtxos) {
17889
- const inputFee = estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(vtxo));
17894
+ const inputFee = estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(vtxo));
17890
17895
  if (inputFee.satoshis >= vtxo.value) {
17891
17896
  if (named) {
17892
17897
  throw new Error(
@@ -17983,7 +17988,7 @@ var Ramps = class {
17983
17988
  }
17984
17989
  amount = amount ?? totalAmount;
17985
17990
  const offchainAddress = await this.wallet.getAddress();
17986
- const offchainAddr = chunkVVFCCNU2_cjs.ArkAddress.decode(offchainAddress);
17991
+ const offchainAddr = chunkZN7BX5XT_cjs.ArkAddress.decode(offchainAddress);
17987
17992
  const offchainScript = base.hex.encode(offchainAddr.pkScript);
17988
17993
  const outputFee = estimator.evalOffchainOutput({
17989
17994
  amount,
@@ -18133,7 +18138,7 @@ var Ramps = class {
18133
18138
  const ordered = [...candidates].sort(bySelectionOrder);
18134
18139
  let covered = 0n;
18135
18140
  for (let i = 0; i < ordered.length && i < MAX_VTXOS_PER_SETTLEMENT; i++) {
18136
- const fee = estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(ordered[i])).satoshis;
18141
+ const fee = estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(ordered[i])).satoshis;
18137
18142
  covered += BigInt(ordered[i].value) - BigInt(fee);
18138
18143
  if (covered < needed) continue;
18139
18144
  try {
@@ -18167,7 +18172,7 @@ var Ramps = class {
18167
18172
  async fundChange(left, estimator) {
18168
18173
  if (left <= 0n) return { change: 0n };
18169
18174
  const changeAddress = await this.wallet.getAddress();
18170
- const changeScript = base.hex.encode(chunkVVFCCNU2_cjs.ArkAddress.decode(changeAddress).pkScript);
18175
+ const changeScript = base.hex.encode(chunkZN7BX5XT_cjs.ArkAddress.decode(changeAddress).pkScript);
18171
18176
  const { change } = changeAfterOutputFee(
18172
18177
  left,
18173
18178
  (amount) => BigInt(estimator.evalOffchainOutput({ amount, script: changeScript }).satoshis)
@@ -19092,7 +19097,7 @@ var WalletMessageHandler = class {
19092
19097
  this.lazyBoardingInit = payload.lazyBoarding ?? false;
19093
19098
  this.boardingEpoch++;
19094
19099
  this.boardingLoaded = false;
19095
- this.indexerProvider = new chunkFEBAG2K2_cjs.RestIndexerProvider(arkServerUrl);
19100
+ this.indexerProvider = new chunkURILS6HH_cjs.RestIndexerProvider(arkServerUrl);
19096
19101
  await this.onWalletInitialized();
19097
19102
  }
19098
19103
  /** @see RequestInitWallet.payload.lazyBoarding */
@@ -19514,7 +19519,7 @@ var WalletMessageHandler = class {
19514
19519
  this.readonlyWallet.getBoardingTxs()
19515
19520
  ]);
19516
19521
  const indexerProvider = this.indexerProvider;
19517
- const resolveTxCreatedAt = indexerProvider ? (txids) => chunkVVFCCNU2_cjs.fetchVtxoCreatedAtByTxid(indexerProvider, txids) : void 0;
19522
+ const resolveTxCreatedAt = indexerProvider ? (txids) => chunkZN7BX5XT_cjs.fetchVtxoCreatedAtByTxid(indexerProvider, txids) : void 0;
19518
19523
  return buildTransactionHistory(
19519
19524
  vtxos,
19520
19525
  boardingTxs,
@@ -19583,7 +19588,7 @@ var DEFAULT_MESSAGE_TIMEOUTS = {
19583
19588
  // budget so the worker's snapshot fallback stays reachable before this
19584
19589
  // page deadline fires — lowering it below the budget would time the page
19585
19590
  // out while the worker is still seconds from answering from cache.
19586
- GET_ARKADE_INFO: chunkVVFCCNU2_cjs.INFO_FETCH_TIMEOUT_MS + 8e3,
19591
+ GET_ARKADE_INFO: chunkZN7BX5XT_cjs.INFO_FETCH_TIMEOUT_MS + 8e3,
19587
19592
  INDEXER_GET_VTXOS: 2e4,
19588
19593
  INDEXER_GET_VIRTUAL_TXS: 2e4,
19589
19594
  GET_VTXOS: 2e4,
@@ -19726,7 +19731,7 @@ var ServiceWorkerAssetManager = class extends ServiceWorkerReadonlyAssetManager
19726
19731
  }
19727
19732
  };
19728
19733
  var initializeMessageBus = (serviceWorker, config, timeoutMs = 2e3) => {
19729
- chunkVVFCCNU2_cjs.assertTimerMs("messageBusTimeoutMs", timeoutMs);
19734
+ chunkZN7BX5XT_cjs.assertTimerMs("messageBusTimeoutMs", timeoutMs);
19730
19735
  const initCmd = {
19731
19736
  tag: "INITIALIZE_MESSAGE_BUS",
19732
19737
  id: getRandomId(),
@@ -19814,7 +19819,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
19814
19819
  }
19815
19820
  /** Shared tail of both `create()` factories: boot the bus, INIT_WALLET, cache for reinit. */
19816
19821
  static async bootstrap(wallet, options, serializedWallet, busConfig) {
19817
- const arkServer = options.arkServer ?? { url: chunkVVFCCNU2_cjs.DEFAULT_ARKADE_SERVER_URL };
19822
+ const arkServer = options.arkServer ?? { url: chunkZN7BX5XT_cjs.DEFAULT_ARKADE_SERVER_URL };
19818
19823
  const initWalletPayload = {
19819
19824
  lazyBoarding: options.lazyBoarding,
19820
19825
  arkServerUrl: arkServer.url,
@@ -19824,7 +19829,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
19824
19829
  Object.entries(options.messageTimeouts ?? {}).filter(([, ms]) => ms !== void 0)
19825
19830
  );
19826
19831
  for (const [key, value] of Object.entries(overrides)) {
19827
- chunkVVFCCNU2_cjs.assertTimerMs(`messageTimeouts.${key}`, value);
19832
+ chunkZN7BX5XT_cjs.assertTimerMs(`messageTimeouts.${key}`, value);
19828
19833
  }
19829
19834
  const messageTimeouts = {
19830
19835
  ...DEFAULT_MESSAGE_TIMEOUTS,
@@ -20164,7 +20169,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
20164
20169
  try {
20165
20170
  const response = await this.sendMessage(message);
20166
20171
  const { vtxos, page } = response.payload;
20167
- return { vtxos: vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo), page: page && { ...page } };
20172
+ return { vtxos: vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo), page: page && { ...page } };
20168
20173
  } catch (cause) {
20169
20174
  throw new Error(`Failed to get vtxos: ${cause}`, { cause });
20170
20175
  }
@@ -20268,7 +20273,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
20268
20273
  };
20269
20274
  try {
20270
20275
  const response = await this.sendMessage(message);
20271
- return response.payload.vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
20276
+ return response.payload.vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
20272
20277
  } catch (error) {
20273
20278
  throw new Error(`Failed to get vtxos: ${error}`);
20274
20279
  }
@@ -20299,7 +20304,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
20299
20304
  "Service worker does not support the requested contract scope or freshness check"
20300
20305
  );
20301
20306
  }
20302
- return payload.vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
20307
+ return payload.vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
20303
20308
  } catch (error) {
20304
20309
  throw new Error(`Failed to get spendable vtxos: ${error}`);
20305
20310
  }
@@ -20494,7 +20499,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
20494
20499
  };
20495
20500
  try {
20496
20501
  const response = await sendContractMessage(message);
20497
- return response.payload.vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
20502
+ return response.payload.vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
20498
20503
  } catch (cause) {
20499
20504
  throw new Error(`Failed to annotate vtxos: ${cause}`, { cause });
20500
20505
  }
@@ -21122,7 +21127,7 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
21122
21127
  };
21123
21128
  try {
21124
21129
  const response = await wallet.sendMessage(message);
21125
- return response.payload.vtxos.map(chunkVVFCCNU2_cjs.normalizeVtxo);
21130
+ return response.payload.vtxos.map(chunkZN7BX5XT_cjs.normalizeVtxo);
21126
21131
  } catch (e) {
21127
21132
  throw new Error(`Failed to get expiring vtxos: ${e}`);
21128
21133
  }
@@ -21239,12 +21244,12 @@ var OnchainWallet = class _OnchainWallet {
21239
21244
  * @returns Configured onchain wallet
21240
21245
  * @throws Error if the configured identity cannot produce a valid x-only public key
21241
21246
  */
21242
- static async create(identity, networkName = chunkVVFCCNU2_cjs.DEFAULT_NETWORK_NAME, provider) {
21247
+ static async create(identity, networkName = chunkZN7BX5XT_cjs.DEFAULT_NETWORK_NAME, provider) {
21243
21248
  const pubkey = await identity.xOnlyPublicKey();
21244
21249
  if (!pubkey) {
21245
21250
  throw new Error("Invalid configured public key");
21246
21251
  }
21247
- const network = chunkVVFCCNU2_cjs.getNetwork(networkName);
21252
+ const network = chunkZN7BX5XT_cjs.getNetwork(networkName);
21248
21253
  const onchainProvider = provider || new EsploraProvider(ESPLORA_URL[networkName]);
21249
21254
  const onchainP2TR = btcSigner.p2tr(pubkey, void 0, network);
21250
21255
  return new _OnchainWallet(identity, network, onchainP2TR, onchainProvider);
@@ -21344,7 +21349,7 @@ var OnchainWallet = class _OnchainWallet {
21344
21349
  feeRate,
21345
21350
  params.address
21346
21351
  );
21347
- let tx = new chunkVVFCCNU2_cjs.Transaction();
21352
+ let tx = new chunkZN7BX5XT_cjs.Transaction();
21348
21353
  for (const input of inputs) {
21349
21354
  tx.addInput({
21350
21355
  txid: input.txid,
@@ -21402,7 +21407,7 @@ var OnchainWallet = class _OnchainWallet {
21402
21407
  * @throws If the parent has no anchor, or funding cannot be selected/signed
21403
21408
  */
21404
21409
  async bumpAnchor(parentHex, feeRate) {
21405
- const parent = chunkVVFCCNU2_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
21410
+ const parent = chunkZN7BX5XT_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
21406
21411
  const coins = (await this.getCoins()).filter((c) => c.status.confirmed);
21407
21412
  const child = await this.buildBumpPackage(parent, feeRate, coins);
21408
21413
  return [parent.hex, child.hex];
@@ -22218,7 +22223,7 @@ var CachingArkProvider = class {
22218
22223
  constructor(inner, ttlMs = DEFAULT_TTL_MS) {
22219
22224
  this.inner = inner;
22220
22225
  this.ttlMs = ttlMs;
22221
- chunkVVFCCNU2_cjs.assertNonNegativeMs("ttlMs", ttlMs);
22226
+ chunkZN7BX5XT_cjs.assertNonNegativeMs("ttlMs", ttlMs);
22222
22227
  this.unsubscribe = inner.onServerInfoChanged?.((info) => {
22223
22228
  this.cached = info;
22224
22229
  this.expiresAt = Date.now() + this.ttlMs;
@@ -22310,7 +22315,7 @@ async function resolvePrevTxs(txids, source, onchain) {
22310
22315
  try {
22311
22316
  const { txs } = await source.getVirtualTxs(wanted);
22312
22317
  for (const psbt of txs) {
22313
- const tx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbt));
22318
+ const tx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbt));
22314
22319
  resolved.set(tx.id, tx.toBytes());
22315
22320
  }
22316
22321
  } catch (err) {
@@ -22343,7 +22348,7 @@ async function resolvePrevTxs(txids, source, onchain) {
22343
22348
  async function attachPrevArkTxs(tx, txids, source, onchain) {
22344
22349
  const pending = [];
22345
22350
  for (let i = 0; i < tx.inputsLength; i++) {
22346
- if (chunkVVFCCNU2_cjs.getArkPsbtFields(tx, i, chunkVVFCCNU2_cjs.PrevArkTxField).length === 0) pending.push(i);
22351
+ if (chunkZN7BX5XT_cjs.getArkPsbtFields(tx, i, chunkZN7BX5XT_cjs.PrevArkTxField).length === 0) pending.push(i);
22347
22352
  }
22348
22353
  if (pending.length === 0) return;
22349
22354
  const resolved = await resolvePrevTxs(
@@ -22352,13 +22357,13 @@ async function attachPrevArkTxs(tx, txids, source, onchain) {
22352
22357
  onchain
22353
22358
  );
22354
22359
  for (const i of pending) {
22355
- chunkVVFCCNU2_cjs.setArkPsbtField(tx, i, chunkVVFCCNU2_cjs.PrevArkTxField, resolved.get(txidAt(txids, i)));
22360
+ chunkZN7BX5XT_cjs.setArkPsbtField(tx, i, chunkZN7BX5XT_cjs.PrevArkTxField, resolved.get(txidAt(txids, i)));
22356
22361
  }
22357
22362
  }
22358
22363
  async function attachPrevoutTxs(tx, source) {
22359
22364
  const pending = [];
22360
22365
  for (let i = 0; i < tx.inputsLength; i++) {
22361
- if (chunkVVFCCNU2_cjs.getArkPsbtFields(tx, i, chunkVVFCCNU2_cjs.PrevoutTxField).length > 0) continue;
22366
+ if (chunkZN7BX5XT_cjs.getArkPsbtFields(tx, i, chunkZN7BX5XT_cjs.PrevoutTxField).length > 0) continue;
22362
22367
  const input = tx.getInput(i);
22363
22368
  if (!input?.txid) throw new PrevTxUnavailableError(`input ${i} has no outpoint`);
22364
22369
  pending.push({ index: i, txid: base.hex.encode(input.txid) });
@@ -22369,7 +22374,7 @@ async function attachPrevoutTxs(tx, source) {
22369
22374
  resolved.set(txid, await source.getRawTransaction(txid));
22370
22375
  }
22371
22376
  for (const { index, txid } of pending) {
22372
- chunkVVFCCNU2_cjs.setArkPsbtField(tx, index, chunkVVFCCNU2_cjs.PrevoutTxField, resolved.get(txid));
22377
+ chunkZN7BX5XT_cjs.setArkPsbtField(tx, index, chunkZN7BX5XT_cjs.PrevoutTxField, resolved.get(txid));
22373
22378
  }
22374
22379
  }
22375
22380
  async function withPrevTxs(coins, source, onchain) {
@@ -22395,7 +22400,7 @@ exports.BIP322 = void 0;
22395
22400
  async function sign2(message, identity, network) {
22396
22401
  const xOnlyPubKey = await identity.xOnlyPublicKey();
22397
22402
  const payment = btcSigner.p2tr(xOnlyPubKey, void 0, network);
22398
- const toSpend = chunkVVFCCNU2_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
22403
+ const toSpend = chunkZN7BX5XT_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
22399
22404
  const toSign = craftBIP322ToSignP2TR(toSpend, payment.script, xOnlyPubKey);
22400
22405
  const signed = await identity.sign(toSign, [0]);
22401
22406
  signed.finalizeIdx(0);
@@ -22453,7 +22458,7 @@ function verifyP2TR(message, witnessItems, pkScript, pubkey) {
22453
22458
  if (sighashType !== btcSigner.SigHash.DEFAULT && sighashType !== btcSigner.SigHash.ALL) {
22454
22459
  return false;
22455
22460
  }
22456
- const toSpend = chunkVVFCCNU2_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
22461
+ const toSpend = chunkZN7BX5XT_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
22457
22462
  const toSign = craftBIP322ToSignP2TR(toSpend, pkScript);
22458
22463
  const sighash = toSign.preimageWitnessV1(0, [pkScript], sighashType, [0n]);
22459
22464
  const rawSig = sig.length === 65 ? sig.subarray(0, 64) : sig;
@@ -22474,7 +22479,7 @@ function verifyP2WPKH(message, witnessItems, pkScript, addressHash) {
22474
22479
  }
22475
22480
  const sighashType = sigWithHash[sigWithHash.length - 1];
22476
22481
  const derSig = sigWithHash.subarray(0, sigWithHash.length - 1);
22477
- const toSpend = chunkVVFCCNU2_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
22482
+ const toSpend = chunkZN7BX5XT_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
22478
22483
  const toSign = craftBIP322ToSignSimple(toSpend, pkScript);
22479
22484
  const scriptCode = btcSigner.OutScript.encode({ type: "pkh", hash: addressHash });
22480
22485
  const sighash = toSign.preimageWitnessV0(0, scriptCode, sighashType, 0n);
@@ -22527,7 +22532,7 @@ function encodeCompactSize(n) {
22527
22532
  return buf;
22528
22533
  }
22529
22534
  function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
22530
- const tx = new chunkVVFCCNU2_cjs.Transaction({ version: 0 });
22535
+ const tx = new chunkZN7BX5XT_cjs.Transaction({ version: 0 });
22531
22536
  tx.addInput({
22532
22537
  txid: toSpend.id,
22533
22538
  index: 0,
@@ -22541,12 +22546,12 @@ function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
22541
22546
  });
22542
22547
  tx.addOutput({
22543
22548
  amount: 0n,
22544
- script: chunkVVFCCNU2_cjs.OP_RETURN_EMPTY_PKSCRIPT
22549
+ script: chunkZN7BX5XT_cjs.OP_RETURN_EMPTY_PKSCRIPT
22545
22550
  });
22546
22551
  return tx;
22547
22552
  }
22548
22553
  function craftBIP322ToSignSimple(toSpend, pkScript) {
22549
- const tx = new chunkVVFCCNU2_cjs.Transaction({ version: 0 });
22554
+ const tx = new chunkZN7BX5XT_cjs.Transaction({ version: 0 });
22550
22555
  tx.addInput({
22551
22556
  txid: toSpend.id,
22552
22557
  index: 0,
@@ -22558,7 +22563,7 @@ function craftBIP322ToSignSimple(toSpend, pkScript) {
22558
22563
  });
22559
22564
  tx.addOutput({
22560
22565
  amount: 0n,
22561
- script: chunkVVFCCNU2_cjs.OP_RETURN_EMPTY_PKSCRIPT
22566
+ script: chunkZN7BX5XT_cjs.OP_RETURN_EMPTY_PKSCRIPT
22562
22567
  });
22563
22568
  return tx;
22564
22569
  }
@@ -22571,7 +22576,7 @@ var RestEmulatorProvider = class {
22571
22576
  serverUrl;
22572
22577
  async getInfo() {
22573
22578
  const url = `${this.serverUrl}/v1/info`;
22574
- const response = await chunkVVFCCNU2_cjs.baseFetch(url);
22579
+ const response = await chunkZN7BX5XT_cjs.baseFetch(url);
22575
22580
  if (!response.ok) {
22576
22581
  const errorText2 = await response.text();
22577
22582
  throw new Error(`Failed to get emulator info: ${errorText2}`);
@@ -22689,7 +22694,7 @@ var RestEmulatorProvider = class {
22689
22694
  }
22690
22695
  };
22691
22696
  function finalizeVirtualTx(type, psbtBase64) {
22692
- const tx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
22697
+ const tx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
22693
22698
  if (type === "INDEXER_CHAINED_TX_TYPE_TREE" /* TREE */) {
22694
22699
  const input = tx.getInput(0);
22695
22700
  if (!input) {
@@ -22716,14 +22721,14 @@ var ExitPathError = class extends Error {
22716
22721
  reason;
22717
22722
  };
22718
22723
  function delayWeight(sequence) {
22719
- const t = chunkVVFCCNU2_cjs.sequenceToTimelock(sequence);
22724
+ const t = chunkZN7BX5XT_cjs.sequenceToTimelock(sequence);
22720
22725
  return t.type === "blocks" ? Number(t.value) : Number(t.value) / 600;
22721
22726
  }
22722
22727
  async function resolveUnilateralPath(params) {
22723
22728
  const { vtxo, scriptHex, contractRepository } = params;
22724
22729
  const contract = contractRepository ? (await collectContracts(contractRepository, { script: scriptHex }))[0] : void 0;
22725
22730
  if (contract) {
22726
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
22731
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
22727
22732
  if (!handler) {
22728
22733
  throw new ExitPathError(
22729
22734
  "no-handler",
@@ -22745,12 +22750,12 @@ async function resolveUnilateralPath(params) {
22745
22750
  paths.sort((a, b) => delayWeight(a.sequence) - delayWeight(b.sequence));
22746
22751
  return { selection: paths[0], label: `${contract.type}:unilateral` };
22747
22752
  }
22748
- const decoded = chunkVVFCCNU2_cjs.VtxoScript.decode(vtxo.tapTree);
22753
+ const decoded = chunkZN7BX5XT_cjs.VtxoScript.decode(vtxo.tapTree);
22749
22754
  let best;
22750
22755
  for (const exit of decoded.exitPaths()) {
22751
22756
  const leaf = decoded.findLeaf(base.hex.encode(exit.script));
22752
22757
  if (!leaf) continue;
22753
- const sequence = chunkVVFCCNU2_cjs.timelockToSequence(exit.params.timelock);
22758
+ const sequence = chunkZN7BX5XT_cjs.timelockToSequence(exit.params.timelock);
22754
22759
  const weight = delayWeight(sequence);
22755
22760
  if (!best || weight < best.weight) {
22756
22761
  best = { selection: { leaf, sequence }, weight };
@@ -22957,7 +22962,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
22957
22962
  const txWeightEstimator = TxWeightEstimator.create();
22958
22963
  const walletDescriptor = base.hex.encode(await wallet.identity.xOnlyPublicKey());
22959
22964
  for (const vtxo of vtxos) {
22960
- if (!chunkVVFCCNU2_cjs.canSweepOnchain(vtxo)) {
22965
+ if (!chunkZN7BX5XT_cjs.canSweepOnchain(vtxo)) {
22961
22966
  throw new Error(
22962
22967
  `Vtxo ${vtxo.txid}:${vtxo.vout} cannot be swept onchain: it is not fully unrolled (use unroll first), or its exit output was already spent`
22963
22968
  );
@@ -22968,14 +22973,14 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
22968
22973
  }
22969
22974
  const resolved = await resolveUnilateralPath({
22970
22975
  vtxo,
22971
- scriptHex: base.hex.encode(chunkVVFCCNU2_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
22976
+ scriptHex: base.hex.encode(chunkZN7BX5XT_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
22972
22977
  contractRepository: wallet.contractRepository,
22973
22978
  walletDescriptor,
22974
22979
  currentTime: Date.now()
22975
22980
  });
22976
22981
  const spendingLeaf = resolved.selection.leaf;
22977
22982
  const sequence = resolved.selection.sequence;
22978
- const timelock = chunkVVFCCNU2_cjs.sequenceToTimelock(sequence);
22983
+ const timelock = chunkZN7BX5XT_cjs.sequenceToTimelock(sequence);
22979
22984
  const elapsed = timelock.type === "blocks" ? chainTip.height >= txStatus.blockHeight + Number(timelock.value) : chainTip.time >= txStatus.blockTime + Number(timelock.value);
22980
22985
  if (!elapsed) {
22981
22986
  throw new Error(`no available exit path found for vtxo ${vtxo.txid}:${vtxo.vout}`);
@@ -22988,7 +22993,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
22988
22993
  sequence,
22989
22994
  witnessUtxo: {
22990
22995
  amount: BigInt(vtxo.value),
22991
- script: chunkVVFCCNU2_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
22996
+ script: chunkZN7BX5XT_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
22992
22997
  },
22993
22998
  sighashType: btcSigner.SigHash.DEFAULT
22994
22999
  });
@@ -22998,7 +23003,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
22998
23003
  btcSigner.TaprootControlBlock.encode(spendingLeaf[0]).length
22999
23004
  );
23000
23005
  }
23001
- const tx = new chunkVVFCCNU2_cjs.Transaction({ version: 2 });
23006
+ const tx = new chunkZN7BX5XT_cjs.Transaction({ version: 2 });
23002
23007
  for (const input of inputs) {
23003
23008
  tx.addInput(input);
23004
23009
  }
@@ -23081,7 +23086,7 @@ async function buildSignedSweep(params) {
23081
23086
  `uneconomic vtxo ${vtxo.txid}:${vtxo.vout}: value ${vtxo.value} - fee ${fee} < dust`
23082
23087
  );
23083
23088
  }
23084
- const tx = new chunkVVFCCNU2_cjs.Transaction({ version: 2 });
23089
+ const tx = new chunkZN7BX5XT_cjs.Transaction({ version: 2 });
23085
23090
  tx.addInput({
23086
23091
  txid: vtxo.txid,
23087
23092
  index: vtxo.vout,
@@ -23106,7 +23111,7 @@ async function buildSignedSweep(params) {
23106
23111
  finalScriptWitness: [
23107
23112
  tapScriptSig[0][1],
23108
23113
  ...path.extraWitness,
23109
- chunkVVFCCNU2_cjs.scriptFromTapLeafScript(path.leaf),
23114
+ chunkZN7BX5XT_cjs.scriptFromTapLeafScript(path.leaf),
23110
23115
  btcSigner.TaprootControlBlock.encode(controlBlock)
23111
23116
  ]
23112
23117
  });
@@ -23136,7 +23141,7 @@ async function resolveFeeRate(opts) {
23136
23141
  }
23137
23142
  async function selectExitVtxos(opts) {
23138
23143
  if (!opts.vtxos) return opts.wallet.getVtxos();
23139
- const res = await chunkVVFCCNU2_cjs.getNormalizedVtxos(opts.wallet.indexerProvider, { outpoints: opts.vtxos });
23144
+ const res = await chunkZN7BX5XT_cjs.getNormalizedVtxos(opts.wallet.indexerProvider, { outpoints: opts.vtxos });
23140
23145
  const tapTrees = /* @__PURE__ */ new Map();
23141
23146
  const out = [];
23142
23147
  for (const vtxo of res.vtxos) {
@@ -23151,7 +23156,7 @@ async function selectExitVtxos(opts) {
23151
23156
  `no contract registered for vtxo script ${vtxo.script} \u2014 register the contract before exiting`
23152
23157
  );
23153
23158
  }
23154
- const handler = chunkCFOIHLON_cjs.contractHandlers.get(contract.type);
23159
+ const handler = chunkEP6XF7JX_cjs.contractHandlers.get(contract.type);
23155
23160
  if (!handler) {
23156
23161
  throw new Error(`no contract handler registered for type '${contract.type}'`);
23157
23162
  }
@@ -23181,7 +23186,7 @@ async function computeExitLayout(opts, feeRate) {
23181
23186
  if (pendingNodes.length > 0) {
23182
23187
  const txs = await resolver.getVirtualTxs(pendingNodes.map((n) => n.txid));
23183
23188
  for (const psbt of txs) {
23184
- psbts.set(chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
23189
+ psbts.set(chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
23185
23190
  }
23186
23191
  }
23187
23192
  const childVsize = Number(
@@ -23209,7 +23214,7 @@ async function computeExitLayout(opts, feeRate) {
23209
23214
  try {
23210
23215
  const resolved = await resolveUnilateralPath({
23211
23216
  vtxo,
23212
- scriptHex: base.hex.encode(chunkVVFCCNU2_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
23217
+ scriptHex: base.hex.encode(chunkZN7BX5XT_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
23213
23218
  contractRepository: wallet.contractRepository,
23214
23219
  walletDescriptor,
23215
23220
  currentTime: Date.now()
@@ -23228,7 +23233,7 @@ async function computeExitLayout(opts, feeRate) {
23228
23233
  });
23229
23234
  continue;
23230
23235
  }
23231
- const t = chunkVVFCCNU2_cjs.sequenceToTimelock(resolved.selection.sequence);
23236
+ const t = chunkZN7BX5XT_cjs.sequenceToTimelock(resolved.selection.sequence);
23232
23237
  const delay = { type: t.type, value: Number(t.value) };
23233
23238
  infos.push({ outpoint, value: vtxo.value, sweepFee, path: resolved.label, delay });
23234
23239
  sweeps.push({ vtxo, resolved, sweepFee, delay });
@@ -23335,7 +23340,7 @@ var Executor = class {
23335
23340
  constructor(pkg, provider, opts) {
23336
23341
  this.pkg = pkg;
23337
23342
  this.provider = provider;
23338
- chunkVVFCCNU2_cjs.assertTimerMs("pollIntervalMs", opts?.pollIntervalMs);
23343
+ chunkZN7BX5XT_cjs.assertTimerMs("pollIntervalMs", opts?.pollIntervalMs);
23339
23344
  this.pollIntervalMs = opts?.pollIntervalMs ?? 5e3;
23340
23345
  this.feeWallet = opts?.feeWallet;
23341
23346
  this.signal = opts?.signal;
@@ -23630,7 +23635,7 @@ async function prepare(opts) {
23630
23635
  txid: sweep.vtxo.txid,
23631
23636
  vout: sweep.vtxo.vout,
23632
23637
  value: sweep.vtxo.value,
23633
- pkScript: chunkVVFCCNU2_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
23638
+ pkScript: chunkZN7BX5XT_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
23634
23639
  },
23635
23640
  path: sweep.resolved.selection,
23636
23641
  outputAddress: opts.sweepAddress,
@@ -23719,7 +23724,7 @@ async function prepare(opts) {
23719
23724
  if (newFee <= splitterFee) break;
23720
23725
  splitterFee = newFee;
23721
23726
  }
23722
- const splitter = new chunkVVFCCNU2_cjs.Transaction({ version: 2 });
23727
+ const splitter = new chunkZN7BX5XT_cjs.Transaction({ version: 2 });
23723
23728
  for (const coin of selected.inputs) {
23724
23729
  splitter.addInput({
23725
23730
  txid: coin.txid,
@@ -23858,44 +23863,44 @@ var UnilateralExit = {
23858
23863
 
23859
23864
  // src/arkade/index.ts
23860
23865
  var arkade_exports = {};
23861
- chunkVVFCCNU2_cjs.__export(arkade_exports, {
23862
- ARKADE_OP: () => chunkCFOIHLON_cjs.ARKADE_OP,
23863
- ARKADE_OPCODES: () => chunkCFOIHLON_cjs.ARKADE_OPCODES,
23864
- ARKADE_OPCODE_NAMES: () => chunkCFOIHLON_cjs.ARKADE_OPCODE_NAMES,
23865
- ARKADE_OPCODE_VALUES: () => chunkCFOIHLON_cjs.ARKADE_OPCODE_VALUES,
23866
- ARKADE_OPS: () => chunkCFOIHLON_cjs.ARKADE_OPS,
23866
+ chunkZN7BX5XT_cjs.__export(arkade_exports, {
23867
+ ARKADE_OP: () => chunkEP6XF7JX_cjs.ARKADE_OP,
23868
+ ARKADE_OPCODES: () => chunkEP6XF7JX_cjs.ARKADE_OPCODES,
23869
+ ARKADE_OPCODE_NAMES: () => chunkEP6XF7JX_cjs.ARKADE_OPCODE_NAMES,
23870
+ ARKADE_OPCODE_VALUES: () => chunkEP6XF7JX_cjs.ARKADE_OPCODE_VALUES,
23871
+ ARKADE_OPS: () => chunkEP6XF7JX_cjs.ARKADE_OPS,
23867
23872
  Arkade: () => Arkade,
23868
23873
  ArkadeContract: () => ArkadeContract,
23869
- ArkadeProgramScript: () => chunkCFOIHLON_cjs.ArkadeProgramScript,
23870
- ArkadeScript: () => chunkCFOIHLON_cjs.ArkadeScript,
23874
+ ArkadeProgramScript: () => chunkEP6XF7JX_cjs.ArkadeProgramScript,
23875
+ ArkadeScript: () => chunkEP6XF7JX_cjs.ArkadeScript,
23871
23876
  ArkadeTransactionBuilder: () => ArkadeTransactionBuilder,
23872
- BigNum: () => chunkCFOIHLON_cjs.bignum_exports,
23877
+ BigNum: () => chunkEP6XF7JX_cjs.bignum_exports,
23873
23878
  OP: () => btcSigner.OP,
23874
- OPCODE_NAMES: () => chunkCFOIHLON_cjs.OPCODE_NAMES,
23875
- OPCODE_VALUES: () => chunkCFOIHLON_cjs.OPCODE_VALUES,
23876
- SUPPORTED_PROGRAM_VERSION: () => chunkCFOIHLON_cjs.SUPPORTED_PROGRAM_VERSION,
23879
+ OPCODE_NAMES: () => chunkEP6XF7JX_cjs.OPCODE_NAMES,
23880
+ OPCODE_VALUES: () => chunkEP6XF7JX_cjs.OPCODE_VALUES,
23881
+ SUPPORTED_PROGRAM_VERSION: () => chunkEP6XF7JX_cjs.SUPPORTED_PROGRAM_VERSION,
23877
23882
  Script: () => btcSigner.Script,
23878
- arkadeScriptHash: () => chunkCFOIHLON_cjs.arkadeScriptHash,
23879
- arkadeWitnessHash: () => chunkCFOIHLON_cjs.arkadeWitnessHash,
23880
- asmToBytes: () => chunkCFOIHLON_cjs.asmToBytes,
23881
- bytesToASM: () => chunkCFOIHLON_cjs.bytesToASM,
23882
- computeArkadeScriptPublicKey: () => chunkCFOIHLON_cjs.computeArkadeScriptPublicKey,
23883
+ arkadeScriptHash: () => chunkEP6XF7JX_cjs.arkadeScriptHash,
23884
+ arkadeWitnessHash: () => chunkEP6XF7JX_cjs.arkadeWitnessHash,
23885
+ asmToBytes: () => chunkEP6XF7JX_cjs.asmToBytes,
23886
+ bytesToASM: () => chunkEP6XF7JX_cjs.bytesToASM,
23887
+ computeArkadeScriptPublicKey: () => chunkEP6XF7JX_cjs.computeArkadeScriptPublicKey,
23883
23888
  createArkadeBatchHandler: () => createArkadeBatchHandler,
23884
- deserializeArkadeContractParams: () => chunkCFOIHLON_cjs.deserializeArkadeContractParams,
23885
- fromASM: () => chunkCFOIHLON_cjs.fromASM,
23886
- getOpcodeName: () => chunkCFOIHLON_cjs.getOpcodeName,
23887
- getOpcodeValue: () => chunkCFOIHLON_cjs.getOpcodeValue,
23889
+ deserializeArkadeContractParams: () => chunkEP6XF7JX_cjs.deserializeArkadeContractParams,
23890
+ fromASM: () => chunkEP6XF7JX_cjs.fromASM,
23891
+ getOpcodeName: () => chunkEP6XF7JX_cjs.getOpcodeName,
23892
+ getOpcodeValue: () => chunkEP6XF7JX_cjs.getOpcodeValue,
23888
23893
  isContractArtifact: () => isContractArtifact,
23889
- parseArtifact: () => chunkCFOIHLON_cjs.parseArtifact,
23894
+ parseArtifact: () => chunkEP6XF7JX_cjs.parseArtifact,
23890
23895
  programFromArtifact: () => programFromArtifact,
23891
- resolveAsm: () => chunkCFOIHLON_cjs.resolveAsm,
23892
- serializeArkadeContractParams: () => chunkCFOIHLON_cjs.serializeArkadeContractParams,
23893
- stringifyArtifact: () => chunkCFOIHLON_cjs.stringifyArtifact,
23894
- toASM: () => chunkCFOIHLON_cjs.toASM,
23895
- validateProgram: () => chunkCFOIHLON_cjs.validateProgram,
23896
- witnessRefToBytes: () => chunkCFOIHLON_cjs.witnessRefToBytes
23896
+ resolveAsm: () => chunkEP6XF7JX_cjs.resolveAsm,
23897
+ serializeArkadeContractParams: () => chunkEP6XF7JX_cjs.serializeArkadeContractParams,
23898
+ stringifyArtifact: () => chunkEP6XF7JX_cjs.stringifyArtifact,
23899
+ toASM: () => chunkEP6XF7JX_cjs.toASM,
23900
+ validateProgram: () => chunkEP6XF7JX_cjs.validateProgram,
23901
+ witnessRefToBytes: () => chunkEP6XF7JX_cjs.witnessRefToBytes
23897
23902
  });
23898
- var isVtxoCoin = (input) => chunkVVFCCNU2_cjs.isVirtualCoin(input);
23903
+ var isVtxoCoin = (input) => chunkZN7BX5XT_cjs.isVirtualCoin(input);
23899
23904
  function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message, session, arkProvider, emulator, network, recipients, batchExpiryPolicy) {
23900
23905
  let batchId;
23901
23906
  let sweepTapTreeRoot;
@@ -23916,23 +23921,23 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
23916
23921
  );
23917
23922
  await arkProvider.confirmRegistration(intentId);
23918
23923
  batchId = event.id;
23919
- const sweepTapscript = chunkVVFCCNU2_cjs.CSVMultisigTapscript.encode({
23924
+ const sweepTapscript = chunkZN7BX5XT_cjs.CSVMultisigTapscript.encode({
23920
23925
  timelock,
23921
- pubkeys: [chunkCFOIHLON_cjs.toXOnly(base.hex.decode(info.forfeitPubkey), "forfeit key")]
23926
+ pubkeys: [chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(info.forfeitPubkey), "forfeit key")]
23922
23927
  }).script;
23923
23928
  sweepTapTreeRoot = payment_js.tapLeafHash(sweepTapscript);
23924
23929
  return { skip: false };
23925
23930
  },
23926
23931
  onTreeSigningStarted: async (event, vtxoTree) => {
23927
23932
  const signerPubKey = await session.getPublicKey();
23928
- const xonlySignerPubKey = chunkCFOIHLON_cjs.toXOnly(signerPubKey, "signer key");
23933
+ const xonlySignerPubKey = chunkEP6XF7JX_cjs.toXOnly(signerPubKey, "signer key");
23929
23934
  const xOnlyPubkeys = event.cosignersPublicKeys.map(
23930
- (k) => base.hex.encode(chunkCFOIHLON_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
23935
+ (k) => base.hex.encode(chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
23931
23936
  );
23932
23937
  if (!xOnlyPubkeys.includes(base.hex.encode(xonlySignerPubKey))) {
23933
23938
  return { skip: true };
23934
23939
  }
23935
- const commitmentTx = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(event.unsignedCommitmentTx));
23940
+ const commitmentTx = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(event.unsignedCommitmentTx));
23936
23941
  validateVtxoTxGraph(vtxoTree, commitmentTx, sweepTapTreeRoot);
23937
23942
  if (recipients && recipients.length > 0) {
23938
23943
  validateBatchRecipients(commitmentTx, vtxoTree.leaves(), recipients, network);
@@ -23970,7 +23975,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
23970
23975
  if (connectorTree) {
23971
23976
  validateConnectorsTxGraph(event.commitmentTx, connectorTree);
23972
23977
  }
23973
- let commitmentPsbt = chunkVVFCCNU2_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
23978
+ let commitmentPsbt = chunkZN7BX5XT_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
23974
23979
  assertFinalCommitmentMatchesValidated(
23975
23980
  commitmentPsbt,
23976
23981
  validatedCommitmentTxid,
@@ -24012,7 +24017,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
24012
24017
  boardingIndices.push(boardingIdx);
24013
24018
  continue;
24014
24019
  }
24015
- if (!chunkVVFCCNU2_cjs.requiresForfeit(input) || isSubdust(input, info.dust)) {
24020
+ if (!chunkZN7BX5XT_cjs.requiresForfeit(input) || isSubdust(input, info.dust)) {
24016
24021
  continue;
24017
24022
  }
24018
24023
  if (connectorIndex >= connectorLeaves.length) {
@@ -24033,7 +24038,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
24033
24038
  index: input.vout,
24034
24039
  witnessUtxo: {
24035
24040
  amount: BigInt(input.value),
24036
- script: chunkVVFCCNU2_cjs.VtxoScript.decode(input.tapTree).pkScript
24041
+ script: chunkZN7BX5XT_cjs.VtxoScript.decode(input.tapTree).pkScript
24037
24042
  },
24038
24043
  sighashType: btcSigner.SigHash.DEFAULT,
24039
24044
  tapLeafScript: [input.forfeitTapLeafScript]
@@ -24178,7 +24183,7 @@ function flatten(param, structs, stack = []) {
24178
24183
  function opcodeToken(token) {
24179
24184
  const base = token.slice(3);
24180
24185
  const name = base === "0" || /^([1-9]|1[0-6])$/.test(base) ? token : base;
24181
- if (!Object.hasOwn(chunkCFOIHLON_cjs.ARKADE_OPS, name)) {
24186
+ if (!Object.hasOwn(chunkEP6XF7JX_cjs.ARKADE_OPS, name)) {
24182
24187
  fail(`opcode '${token}' is not in this SDK's table`);
24183
24188
  }
24184
24189
  return name;
@@ -24225,7 +24230,7 @@ function providedWitness(witness) {
24225
24230
  }
24226
24231
  function csvTimelock(leafName, operand) {
24227
24232
  if (typeof operand === "string") return { type: "sequence", value: operand };
24228
- const timelock = chunkVVFCCNU2_cjs.sequenceToCanonicalTimelock(operand);
24233
+ const timelock = chunkZN7BX5XT_cjs.sequenceToCanonicalTimelock(operand);
24229
24234
  if (!timelock) {
24230
24235
  fail(`leaf '${leafName}': CSV literal ${operand} is not a canonical BIP68 sequence`);
24231
24236
  }
@@ -24344,7 +24349,7 @@ function programFromArtifact(artifact) {
24344
24349
  const paramNames = /* @__PURE__ */ new Set();
24345
24350
  for (const param of params) claim(paramNames, param.name, "program parameter");
24346
24351
  return {
24347
- version: chunkCFOIHLON_cjs.SUPPORTED_PROGRAM_VERSION,
24352
+ version: chunkEP6XF7JX_cjs.SUPPORTED_PROGRAM_VERSION,
24348
24353
  name: artifact.contractName,
24349
24354
  params,
24350
24355
  functions
@@ -24385,16 +24390,16 @@ var Arkade = class _Arkade {
24385
24390
  /** Connect and resolve the server key, checkpoint closure and (if present) the co-signer key. */
24386
24391
  static async connect(opts) {
24387
24392
  const info = await opts.arkade.getInfo();
24388
- const serverKey = chunkCFOIHLON_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
24389
- const checkpoint = chunkVVFCCNU2_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
24390
- const network = opts.network ?? (Object.hasOwn(chunkVVFCCNU2_cjs.networks, info.network) ? chunkVVFCCNU2_cjs.getNetwork(info.network) : chunkVVFCCNU2_cjs.DEFAULT_NETWORK);
24393
+ const serverKey = chunkEP6XF7JX_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
24394
+ const checkpoint = chunkZN7BX5XT_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
24395
+ const network = opts.network ?? (Object.hasOwn(chunkZN7BX5XT_cjs.networks, info.network) ? chunkZN7BX5XT_cjs.getNetwork(info.network) : chunkZN7BX5XT_cjs.DEFAULT_NETWORK);
24391
24396
  let emulatorKey;
24392
24397
  if (opts.emulator) {
24393
- emulatorKey = base.hex.decode(chunkVVFCCNU2_cjs.resolveEmulatorPubkey(network, opts.emulatorPubkey));
24398
+ emulatorKey = base.hex.decode(chunkZN7BX5XT_cjs.resolveEmulatorPubkey(network, opts.emulatorPubkey));
24394
24399
  }
24395
24400
  let userKey;
24396
24401
  if (opts.identity) {
24397
- userKey = chunkCFOIHLON_cjs.toXOnly(await opts.identity.xOnlyPublicKey(), "identity key");
24402
+ userKey = chunkEP6XF7JX_cjs.toXOnly(await opts.identity.xOnlyPublicKey(), "identity key");
24398
24403
  }
24399
24404
  return new _Arkade({
24400
24405
  arkProvider: opts.arkade,
@@ -24417,7 +24422,7 @@ var Arkade = class _Arkade {
24417
24422
  * explicit args win.
24418
24423
  */
24419
24424
  contract(program, args = {}) {
24420
- const declared = (program.params ?? []).map(chunkCFOIHLON_cjs.inputName);
24425
+ const declared = (program.params ?? []).map(chunkEP6XF7JX_cjs.inputName);
24421
24426
  if (declared.includes("server") && args.server === void 0) {
24422
24427
  args = { ...args, server: this.serverKey };
24423
24428
  }
@@ -24437,7 +24442,7 @@ var ArkadeContract = class _ArkadeContract {
24437
24442
  userKey: client.userKey,
24438
24443
  emulatorKey: client.emulatorKey
24439
24444
  };
24440
- this.vtxoScript = new chunkCFOIHLON_cjs.ArkadeProgramScript(program, args, this.keys);
24445
+ this.vtxoScript = new chunkEP6XF7JX_cjs.ArkadeProgramScript(program, args, this.keys);
24441
24446
  this.tapTree = this.vtxoScript.encode();
24442
24447
  this.compiled = this.vtxoScript.compiled;
24443
24448
  }
@@ -24462,7 +24467,7 @@ var ArkadeContract = class _ArkadeContract {
24462
24467
  `ArkadeContract.fromContract: expected contract type 'arkade', got '${contract.type}'`
24463
24468
  );
24464
24469
  }
24465
- const typed = chunkCFOIHLON_cjs.deserializeArkadeContractParams(contract.params);
24470
+ const typed = chunkEP6XF7JX_cjs.deserializeArkadeContractParams(contract.params);
24466
24471
  return new _ArkadeContract(client, typed.program, typed.args, {
24467
24472
  serverKey: typed.serverKey,
24468
24473
  userKey: typed.userKey,
@@ -24498,7 +24503,7 @@ var ArkadeContract = class _ArkadeContract {
24498
24503
  toContractParams() {
24499
24504
  return {
24500
24505
  type: "arkade",
24501
- params: chunkCFOIHLON_cjs.serializeArkadeContractParams({
24506
+ params: chunkEP6XF7JX_cjs.serializeArkadeContractParams({
24502
24507
  program: this.program,
24503
24508
  args: this.args,
24504
24509
  serverKey: this.keys.serverKey,
@@ -24538,17 +24543,17 @@ var ArkadeContract = class _ArkadeContract {
24538
24543
  const [registered] = await manager.getContracts({ script: scriptHex });
24539
24544
  if (registered) {
24540
24545
  const [withVtxos] = await manager.getContractsWithVtxos({ script: scriptHex });
24541
- return (withVtxos?.vtxos ?? []).filter((v) => !chunkVVFCCNU2_cjs.isVtxoSpent(v) && !v.isUnrolled);
24546
+ return (withVtxos?.vtxos ?? []).filter((v) => !chunkZN7BX5XT_cjs.isVtxoSpent(v) && !v.isUnrolled);
24542
24547
  }
24543
24548
  }
24544
24549
  if (!this.client.indexer) {
24545
24550
  throw new Error("ArkadeContract.getUtxos: an indexer is required");
24546
24551
  }
24547
- const { vtxos } = await chunkVVFCCNU2_cjs.getNormalizedVtxos(this.client.indexer, {
24552
+ const { vtxos } = await chunkZN7BX5XT_cjs.getNormalizedVtxos(this.client.indexer, {
24548
24553
  scripts: [scriptHex],
24549
24554
  spendableOnly: true
24550
24555
  });
24551
- return vtxos.filter((v) => !chunkVVFCCNU2_cjs.isVtxoSpent(v) && !v.isUnrolled);
24556
+ return vtxos.filter((v) => !chunkZN7BX5XT_cjs.isVtxoSpent(v) && !v.isUnrolled);
24552
24557
  }
24553
24558
  /** Total spendable balance (requires an indexer). */
24554
24559
  async getBalance() {
@@ -24652,7 +24657,7 @@ var ArkadeTransactionBuilder = class {
24652
24657
  this.contract.client.checkpoint
24653
24658
  );
24654
24659
  if (coin.sourceTx) {
24655
- chunkVVFCCNU2_cjs.setArkPsbtField(arkTx, 0, chunkVVFCCNU2_cjs.PrevArkTxField, coin.sourceTx);
24660
+ chunkZN7BX5XT_cjs.setArkPsbtField(arkTx, 0, chunkZN7BX5XT_cjs.PrevArkTxField, coin.sourceTx);
24656
24661
  }
24657
24662
  if (this.fn.arkadeScript) {
24658
24663
  const indexer = this.contract.client.indexer;
@@ -24669,8 +24674,8 @@ var ArkadeTransactionBuilder = class {
24669
24674
  }
24670
24675
  const condition = (def.tapscript.witness ?? []).map((w) => this.witnessBytes(w));
24671
24676
  if (condition.length > 0) {
24672
- chunkVVFCCNU2_cjs.setArkPsbtField(arkTx, 0, chunkVVFCCNU2_cjs.ConditionWitness, condition);
24673
- chunkVVFCCNU2_cjs.setArkPsbtField(checkpoints[0], 0, chunkVVFCCNU2_cjs.ConditionWitness, condition);
24677
+ chunkZN7BX5XT_cjs.setArkPsbtField(arkTx, 0, chunkZN7BX5XT_cjs.ConditionWitness, condition);
24678
+ chunkZN7BX5XT_cjs.setArkPsbtField(checkpoints[0], 0, chunkZN7BX5XT_cjs.ConditionWitness, condition);
24674
24679
  }
24675
24680
  const packets = [];
24676
24681
  if (this.assetSpecs.length > 0) {
@@ -24762,23 +24767,23 @@ var ArkadeTransactionBuilder = class {
24762
24767
  }
24763
24768
  buildAssetPacket() {
24764
24769
  const groups = this.assetSpecs.map((s) => {
24765
- const id = typeof s.assetId === "string" ? chunkFEBAG2K2_cjs.AssetId.fromString(s.assetId) : chunkFEBAG2K2_cjs.AssetId.fromBytes(s.assetId);
24766
- return chunkFEBAG2K2_cjs.AssetGroup.create(
24770
+ const id = typeof s.assetId === "string" ? chunkURILS6HH_cjs.AssetId.fromString(s.assetId) : chunkURILS6HH_cjs.AssetId.fromBytes(s.assetId);
24771
+ return chunkURILS6HH_cjs.AssetGroup.create(
24767
24772
  id,
24768
24773
  null,
24769
- s.inputs.map((i) => chunkFEBAG2K2_cjs.AssetInput.create(i.vin, i.amount)),
24770
- s.outputs.map((o) => chunkFEBAG2K2_cjs.AssetOutput.create(o.vout, o.amount)),
24771
- (s.metadata ?? []).map((m) => chunkFEBAG2K2_cjs.Metadata.create(m.key, m.value))
24774
+ s.inputs.map((i) => chunkURILS6HH_cjs.AssetInput.create(i.vin, i.amount)),
24775
+ s.outputs.map((o) => chunkURILS6HH_cjs.AssetOutput.create(o.vout, o.amount)),
24776
+ (s.metadata ?? []).map((m) => chunkURILS6HH_cjs.Metadata.create(m.key, m.value))
24772
24777
  );
24773
24778
  });
24774
- return chunkFEBAG2K2_cjs.Packet.create(groups);
24779
+ return chunkURILS6HH_cjs.Packet.create(groups);
24775
24780
  }
24776
24781
  witnessBytes(ref) {
24777
- return chunkCFOIHLON_cjs.witnessRefToBytes(ref, this.args, this.contract.args);
24782
+ return chunkEP6XF7JX_cjs.witnessRefToBytes(ref, this.args, this.contract.args);
24778
24783
  }
24779
24784
  };
24780
24785
  function bindInputs(fn, callArgs) {
24781
- const names = (fn.def.inputs ?? []).map(chunkCFOIHLON_cjs.inputName);
24786
+ const names = (fn.def.inputs ?? []).map(chunkEP6XF7JX_cjs.inputName);
24782
24787
  if (callArgs.length !== names.length) {
24783
24788
  throw new Error(`${fn.name}: expected ${names.length} argument(s), got ${callArgs.length}`);
24784
24789
  }
@@ -25192,17 +25197,17 @@ var walletFeeSource = (wallet) => async () => (await wallet.arkProvider.getInfo(
25192
25197
  function offchainInputFees(vtxos, fees) {
25193
25198
  const estimator = new Estimator(fees?.intentFee ?? {});
25194
25199
  return vtxos.reduce(
25195
- (total, vtxo) => total + estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(vtxo)).satoshis,
25200
+ (total, vtxo) => total + estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(vtxo)).satoshis,
25196
25201
  0
25197
25202
  );
25198
25203
  }
25199
25204
  async function changeOutputFee(wallet, inputs, needed, fees) {
25200
25205
  const estimator = new Estimator(fees?.intentFee ?? {});
25201
25206
  const net = inputs.reduce(
25202
- (total, vtxo) => total + BigInt(vtxo.value) - BigInt(estimator.evalOffchainInput(chunkVVFCCNU2_cjs.toOffchainInputFeeParams(vtxo)).satoshis),
25207
+ (total, vtxo) => total + BigInt(vtxo.value) - BigInt(estimator.evalOffchainInput(chunkZN7BX5XT_cjs.toOffchainInputFeeParams(vtxo)).satoshis),
25203
25208
  0n
25204
25209
  );
25205
- const script = base.hex.encode(chunkVVFCCNU2_cjs.ArkAddress.decode(await wallet.getAddress()).pkScript);
25210
+ const script = base.hex.encode(chunkZN7BX5XT_cjs.ArkAddress.decode(await wallet.getAddress()).pkScript);
25206
25211
  return changeAfterOutputFee(
25207
25212
  net - needed,
25208
25213
  (amount) => BigInt(estimator.evalOffchainOutput({ amount, script }).satoshis)
@@ -25510,5 +25515,5 @@ exports.waitForIncomingFunds = waitForIncomingFunds;
25510
25515
  exports.walletFeeSource = walletFeeSource;
25511
25516
  exports.warnAndFilterVtxosForScript = warnAndFilterVtxosForScript;
25512
25517
  exports.withPrevTxs = withPrevTxs;
25513
- //# sourceMappingURL=chunk-B2YMUJD5.cjs.map
25514
- //# sourceMappingURL=chunk-B2YMUJD5.cjs.map
25518
+ //# sourceMappingURL=chunk-PM6KYV7S.cjs.map
25519
+ //# sourceMappingURL=chunk-PM6KYV7S.cjs.map