@arkade-os/sdk 0.5.0-rc.13 → 0.5.0-rc.14

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 (41) hide show
  1. package/dist/adapters/expo.cjs +5 -5
  2. package/dist/adapters/expo.js +3 -3
  3. package/dist/{chunk-BFQX2KS3.cjs → chunk-2TOHNPEP.cjs} +18 -18
  4. package/dist/{chunk-BFQX2KS3.cjs.map → chunk-2TOHNPEP.cjs.map} +1 -1
  5. package/dist/{chunk-I4YBVHAK.cjs → chunk-D77GIHME.cjs} +451 -451
  6. package/dist/{chunk-I4YBVHAK.cjs.map → chunk-D77GIHME.cjs.map} +1 -1
  7. package/dist/{chunk-EJYWGTZ7.js → chunk-GNZKO2ZU.js} +3 -3
  8. package/dist/{chunk-EJYWGTZ7.js.map → chunk-GNZKO2ZU.js.map} +1 -1
  9. package/dist/{chunk-FDQQOF3F.cjs → chunk-IHI3X2J4.cjs} +47 -47
  10. package/dist/{chunk-FDQQOF3F.cjs.map → chunk-IHI3X2J4.cjs.map} +1 -1
  11. package/dist/{chunk-JOUPIZ32.js → chunk-JHWAZOS3.js} +3 -3
  12. package/dist/{chunk-JOUPIZ32.js.map → chunk-JHWAZOS3.js.map} +1 -1
  13. package/dist/{chunk-7BACS4XK.cjs → chunk-JJEB6VXZ.cjs} +10 -10
  14. package/dist/{chunk-7BACS4XK.cjs.map → chunk-JJEB6VXZ.cjs.map} +1 -1
  15. package/dist/{chunk-RDQSVIXD.cjs → chunk-KEQDQ7VL.cjs} +15 -15
  16. package/dist/{chunk-RDQSVIXD.cjs.map → chunk-KEQDQ7VL.cjs.map} +1 -1
  17. package/dist/{chunk-3JLYJ5KZ.js → chunk-TXYOPQ3Q.js} +3 -3
  18. package/dist/{chunk-3JLYJ5KZ.js.map → chunk-TXYOPQ3Q.js.map} +1 -1
  19. package/dist/{chunk-D7JLTHSZ.js → chunk-UUE5GF7R.js} +4 -4
  20. package/dist/{chunk-D7JLTHSZ.js.map → chunk-UUE5GF7R.js.map} +1 -1
  21. package/dist/{chunk-7NK6XFC3.cjs → chunk-UV6VUA43.cjs} +3 -3
  22. package/dist/{chunk-7NK6XFC3.cjs.map → chunk-UV6VUA43.cjs.map} +1 -1
  23. package/dist/{chunk-4EU2Q6YT.js → chunk-Y7TRVM6G.js} +4 -4
  24. package/dist/{chunk-4EU2Q6YT.js.map → chunk-Y7TRVM6G.js.map} +1 -1
  25. package/dist/{chunk-IV2252XM.js → chunk-ZGEYOUPK.js} +5 -5
  26. package/dist/{chunk-IV2252XM.js.map → chunk-ZGEYOUPK.js.map} +1 -1
  27. package/dist/contracts/handlers/index.cjs +9 -9
  28. package/dist/contracts/handlers/index.js +2 -2
  29. package/dist/index.cjs +305 -305
  30. package/dist/index.js +4 -4
  31. package/dist/repositories/realm/index.cjs +34 -34
  32. package/dist/repositories/realm/index.js +5 -5
  33. package/dist/repositories/sqlite/index.cjs +32 -32
  34. package/dist/repositories/sqlite/index.js +5 -5
  35. package/dist/wallet/expo/background.cjs +14 -14
  36. package/dist/wallet/expo/background.js +6 -6
  37. package/dist/wallet/expo/index.cjs +14 -14
  38. package/dist/wallet/expo/index.js +5 -5
  39. package/dist/worker/expo/index.cjs +9 -9
  40. package/dist/worker/expo/index.js +5 -5
  41. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkBFQX2KS3_cjs = require('./chunk-BFQX2KS3.cjs');
4
- var chunkFDQQOF3F_cjs = require('./chunk-FDQQOF3F.cjs');
5
- var chunk7NK6XFC3_cjs = require('./chunk-7NK6XFC3.cjs');
3
+ var chunk2TOHNPEP_cjs = require('./chunk-2TOHNPEP.cjs');
4
+ var chunkIHI3X2J4_cjs = require('./chunk-IHI3X2J4.cjs');
5
+ var chunkUV6VUA43_cjs = require('./chunk-UV6VUA43.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 = chunk7NK6XFC3_cjs.getArkPsbtFields(tx.root, 0, chunk7NK6XFC3_cjs.CosignerPublicKey).map(
190
+ const cosigners = chunkUV6VUA43_cjs.getArkPsbtFields(tx.root, 0, chunkUV6VUA43_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 = chunk7NK6XFC3_cjs.getArkPsbtFields(g.root, 0, chunk7NK6XFC3_cjs.CosignerPublicKey).map((c) => c.key);
242
+ const cosigners = chunkUV6VUA43_cjs.getArkPsbtFields(g.root, 0, chunkUV6VUA43_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
- chunk7NK6XFC3_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH);
325
+ chunkUV6VUA43_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 = chunkFDQQOF3F_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
425
+ network = chunkIHI3X2J4_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 chunkFDQQOF3F_cjs.descriptorIsOurs(descriptor, this.descriptor, utils_js.pubSchnorr(this.derivedKey));
502
+ return chunkIHI3X2J4_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 = chunkFDQQOF3F_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
541
+ const network = chunkIHI3X2J4_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
- chunk7NK6XFC3_cjs.assertAllowedSighashTypes(txCpy, ALLOWED_SIGHASH2);
566
+ chunkUV6VUA43_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 = chunkFDQQOF3F_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
618
+ const network = chunkIHI3X2J4_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 chunkFDQQOF3F_cjs.descriptorIsOurs(descriptor, this.descriptor, this.indexZero.pubkey);
653
+ return chunkIHI3X2J4_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 chunkFDQQOF3F_cjs.deriveDescriptorLeafPubKey(this.descriptor);
796
+ return chunkIHI3X2J4_cjs.deriveDescriptorLeafPubKey(this.descriptor);
797
797
  }
798
798
  async compressedPublicKey() {
799
- return chunkFDQQOF3F_cjs.deriveDescriptorLeafCompressedPubKey(this.descriptor);
799
+ return chunkIHI3X2J4_cjs.deriveDescriptorLeafCompressedPubKey(this.descriptor);
800
800
  }
801
801
  async sign(tx, inputIndexes) {
802
802
  const [signed] = await this.signer.signWithDescriptor([
@@ -869,12 +869,12 @@ async function resolveDescriptorSigner(descriptor, identity, provider) {
869
869
  signMessageWithDescriptor: (ownedDescriptor, message, signatureType) => identity.signDescriptorMessage(ownedDescriptor, message, signatureType)
870
870
  } : void 0;
871
871
  const owner = providerOwner ?? identityOwner;
872
- if (owner && chunkFDQQOF3F_cjs.parseHDDescriptor(descriptor)) {
872
+ if (owner && chunkIHI3X2J4_cjs.parseHDDescriptor(descriptor)) {
873
873
  return new DescriptorIdentity({ descriptor, signer: owner, base: identity });
874
874
  }
875
875
  let key;
876
876
  try {
877
- key = chunkFDQQOF3F_cjs.deriveDescriptorLeafPubKey(descriptor);
877
+ key = chunkIHI3X2J4_cjs.deriveDescriptorLeafPubKey(descriptor);
878
878
  } catch {
879
879
  throw new ForeignDescriptorError(descriptor);
880
880
  }
@@ -927,14 +927,14 @@ function buildSaltedPreimageMessage(xonly, salt) {
927
927
  }
928
928
  var PREIMAGE_INDEX = 0;
929
929
  function isPerArtifactDescriptor(descriptor) {
930
- return chunkFDQQOF3F_cjs.parseHDDescriptor(descriptor) !== null;
930
+ return chunkIHI3X2J4_cjs.parseHDDescriptor(descriptor) !== null;
931
931
  }
932
932
  async function provisionDescriptor(wallet) {
933
933
  const allocated = isHDAllocationCapable(wallet) ? await wallet.getNextSigningDescriptor() : void 0;
934
- return allocated ?? await chunkFDQQOF3F_cjs.identityDescriptor(wallet.identity);
934
+ return allocated ?? await chunkIHI3X2J4_cjs.identityDescriptor(wallet.identity);
935
935
  }
936
936
  async function provisionRefundKey(wallet) {
937
- const descriptor = await chunkFDQQOF3F_cjs.identityDescriptor(wallet.identity);
937
+ const descriptor = await chunkIHI3X2J4_cjs.identityDescriptor(wallet.identity);
938
938
  const signer = await contractSigner(wallet, descriptor);
939
939
  const pubkey = await signer.xOnlyPublicKey();
940
940
  const identityPubkey = await wallet.identity.xOnlyPublicKey();
@@ -944,7 +944,7 @@ async function provisionRefundKey(wallet) {
944
944
  );
945
945
  }
946
946
  const address = await wallet.getAddress();
947
- const { pkScript } = chunk7NK6XFC3_cjs.ArkAddress.decode(address);
947
+ const { pkScript } = chunkUV6VUA43_cjs.ArkAddress.decode(address);
948
948
  return { descriptor, pubkey, pkScript, address };
949
949
  }
950
950
  async function provisionClaimSecret(wallet, opts = {}) {
@@ -990,7 +990,7 @@ async function contractSigner(wallet, descriptor) {
990
990
  const signer = isHDWalletCapable(wallet) ? await wallet.signerForDescriptor(descriptor) : wallet.identity;
991
991
  let expected;
992
992
  try {
993
- expected = chunkFDQQOF3F_cjs.deriveDescriptorLeafPubKey(descriptor);
993
+ expected = chunkIHI3X2J4_cjs.deriveDescriptorLeafPubKey(descriptor);
994
994
  } catch (cause) {
995
995
  throw new ForeignDescriptorError(descriptor, { cause });
996
996
  }
@@ -1194,14 +1194,14 @@ var RestDelegateProvider = class {
1194
1194
  */
1195
1195
  async delegate(intent, forfeitTxs, options) {
1196
1196
  const url = `${this.url}/v1/delegate`;
1197
- const response = await chunk7NK6XFC3_cjs.baseFetch(url, {
1197
+ const response = await chunkUV6VUA43_cjs.baseFetch(url, {
1198
1198
  method: "POST",
1199
1199
  headers: {
1200
1200
  "Content-Type": "application/json"
1201
1201
  },
1202
1202
  body: JSON.stringify({
1203
1203
  intent: {
1204
- message: chunk7NK6XFC3_cjs.Intent.encodeMessage(intent.message),
1204
+ message: chunkUV6VUA43_cjs.Intent.encodeMessage(intent.message),
1205
1205
  proof: intent.proof
1206
1206
  },
1207
1207
  forfeit_txs: forfeitTxs,
@@ -1220,7 +1220,7 @@ var RestDelegateProvider = class {
1220
1220
  */
1221
1221
  async getDelegateInfo() {
1222
1222
  const url = `${this.url}/v1/delegator/info`;
1223
- const response = await chunk7NK6XFC3_cjs.rateGate.runHttp(url, () => chunk7NK6XFC3_cjs.baseFetch(url));
1223
+ const response = await chunkUV6VUA43_cjs.rateGate.runHttp(url, () => chunkUV6VUA43_cjs.baseFetch(url));
1224
1224
  if (!response.ok) {
1225
1225
  const errorText2 = await response.text();
1226
1226
  throw new Error(`Failed to get delegate info: ${errorText2}`);
@@ -1276,7 +1276,7 @@ async function collectPages(read) {
1276
1276
  return items;
1277
1277
  }
1278
1278
  function scriptFromArkAddress(address) {
1279
- return base.hex.encode(chunk7NK6XFC3_cjs.ArkAddress.decode(address).pkScript);
1279
+ return base.hex.encode(chunkUV6VUA43_cjs.ArkAddress.decode(address).pkScript);
1280
1280
  }
1281
1281
 
1282
1282
  // src/repositories/walletRepository.ts
@@ -1335,9 +1335,9 @@ async function collectScriptVtxos(repository, script, options) {
1335
1335
  return [...byOutpoint.values()].map((row) => row.vtxo);
1336
1336
  }
1337
1337
  function unspentScriptVtxos(rows, copies) {
1338
- const spent = copies.filter((copy) => chunk7NK6XFC3_cjs.isVtxoSpent(copy.vtxo));
1338
+ const spent = copies.filter((copy) => chunkUV6VUA43_cjs.isVtxoSpent(copy.vtxo));
1339
1339
  return rows.filter(
1340
- (row) => !chunk7NK6XFC3_cjs.isVtxoSpent(row.vtxo) && !spent.some(
1340
+ (row) => !chunkUV6VUA43_cjs.isVtxoSpent(row.vtxo) && !spent.some(
1341
1341
  (copy) => copy.address !== row.address && copy.vtxo.txid === row.vtxo.txid && copy.vtxo.vout === row.vtxo.vout && shouldReplaceScriptVtxo(row, copy)
1342
1342
  )
1343
1343
  );
@@ -1420,7 +1420,7 @@ var ESPLORA_URL = {
1420
1420
  regtest: "http://localhost:3000/api"
1421
1421
  };
1422
1422
  var EsploraProvider = class {
1423
- constructor(baseUrl = ESPLORA_URL[chunk7NK6XFC3_cjs.DEFAULT_NETWORK_NAME], opts) {
1423
+ constructor(baseUrl = ESPLORA_URL[chunkUV6VUA43_cjs.DEFAULT_NETWORK_NAME], opts) {
1424
1424
  this.baseUrl = baseUrl;
1425
1425
  this.pollingInterval = opts?.pollingInterval ?? 15e3;
1426
1426
  this.forcePolling = opts?.forcePolling ?? false;
@@ -1435,14 +1435,14 @@ var EsploraProvider = class {
1435
1435
  */
1436
1436
  addressWatches = /* @__PURE__ */ new Map();
1437
1437
  async getCoins(address) {
1438
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1438
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
1439
1439
  if (!response.ok) {
1440
1440
  throw new Error(`Failed to fetch UTXOs: ${response.statusText}`);
1441
1441
  }
1442
1442
  return response.json();
1443
1443
  }
1444
1444
  async getFeeRate() {
1445
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/fee-estimates`);
1445
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/fee-estimates`);
1446
1446
  if (response.status === 404) {
1447
1447
  return void 0;
1448
1448
  }
@@ -1463,7 +1463,7 @@ var EsploraProvider = class {
1463
1463
  }
1464
1464
  }
1465
1465
  async getTxOutspends(txid) {
1466
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1466
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
1467
1467
  if (!response.ok) {
1468
1468
  const error = await response.text();
1469
1469
  throw new Error(`Failed to get transaction outspends: ${error}`);
@@ -1471,7 +1471,7 @@ var EsploraProvider = class {
1471
1471
  return response.json();
1472
1472
  }
1473
1473
  async getTransactions(address) {
1474
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1474
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
1475
1475
  if (!response.ok) {
1476
1476
  const error = await response.text();
1477
1477
  throw new Error(`Failed to get transactions: ${error}`);
@@ -1480,14 +1480,14 @@ var EsploraProvider = class {
1480
1480
  }
1481
1481
  /** Orders of magnitude smaller than `/address/{addr}/txs`: the polling fallback's probe. */
1482
1482
  async getAddressStats(address) {
1483
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/address/${address}`);
1483
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/address/${address}`);
1484
1484
  if (!response.ok) {
1485
1485
  throw new Error(`Failed to get address stats: ${response.statusText}`);
1486
1486
  }
1487
1487
  return response.json();
1488
1488
  }
1489
1489
  async getRawTransaction(txid) {
1490
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/hex`);
1490
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/hex`);
1491
1491
  if (!response.ok) {
1492
1492
  const error = await response.text();
1493
1493
  throw new Error(`Failed to get raw transaction ${txid}: ${error}`);
@@ -1495,7 +1495,7 @@ var EsploraProvider = class {
1495
1495
  return base.hex.decode((await response.text()).trim());
1496
1496
  }
1497
1497
  async getTxStatus(txid) {
1498
- const txresponse = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1498
+ const txresponse = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
1499
1499
  if (!txresponse.ok) {
1500
1500
  throw new Error(txresponse.statusText);
1501
1501
  }
@@ -1503,7 +1503,7 @@ var EsploraProvider = class {
1503
1503
  if (!tx.status.confirmed) {
1504
1504
  return { confirmed: false };
1505
1505
  }
1506
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1506
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
1507
1507
  if (!response.ok) {
1508
1508
  throw new Error(`Failed to get transaction status: ${response.statusText}`);
1509
1509
  }
@@ -1777,9 +1777,9 @@ var EsploraProvider = class {
1777
1777
  return { subscribers, teardown, started };
1778
1778
  }
1779
1779
  async getChainTip() {
1780
- let tipBlocks = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/blocks`);
1780
+ let tipBlocks = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/blocks`);
1781
1781
  if (tipBlocks.status === 404) {
1782
- tipBlocks = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/v1/blocks`);
1782
+ tipBlocks = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/v1/blocks`);
1783
1783
  }
1784
1784
  if (!tipBlocks.ok) {
1785
1785
  throw new Error(`Failed to get chain tip: ${tipBlocks.statusText}`);
@@ -1800,7 +1800,7 @@ var EsploraProvider = class {
1800
1800
  };
1801
1801
  }
1802
1802
  async broadcastPackage(parent, child) {
1803
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
1803
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
1804
1804
  method: "POST",
1805
1805
  headers: {
1806
1806
  "Content-Type": "application/json"
@@ -1816,7 +1816,7 @@ var EsploraProvider = class {
1816
1816
  return result;
1817
1817
  }
1818
1818
  async broadcastTx(tx) {
1819
- const response = await chunk7NK6XFC3_cjs.baseFetch(`${this.baseUrl}/tx`, {
1819
+ const response = await chunkUV6VUA43_cjs.baseFetch(`${this.baseUrl}/tx`, {
1820
1820
  method: "POST",
1821
1821
  headers: {
1822
1822
  "Content-Type": "text/plain"
@@ -1993,7 +1993,7 @@ function findP2AOutput(tx) {
1993
1993
  var CHILD_DUST_AMOUNT = 546;
1994
1994
  function buildAnchorChild(params) {
1995
1995
  const { parent, feeRate, fundingCoins, changeAddress, tapInternalKey, network } = params;
1996
- const child = new chunk7NK6XFC3_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
1996
+ const child = new chunkUV6VUA43_cjs.Transaction({ version: 3, allowLegacyWitnessUtxo: true });
1997
1997
  child.addInput(findP2AOutput(parent));
1998
1998
  const estimator = TxWeightEstimator.create().addP2AInput();
1999
1999
  for (const _ of fundingCoins) {
@@ -2041,7 +2041,7 @@ function buildForfeitTx(inputs, forfeitPkScript, txLocktime) {
2041
2041
  );
2042
2042
  }
2043
2043
  function buildForfeitTxWithOutput(inputs, output, txLocktime) {
2044
- const tx = new chunk7NK6XFC3_cjs.Transaction({
2044
+ const tx = new chunkUV6VUA43_cjs.Transaction({
2045
2045
  version: 3,
2046
2046
  lockTime: txLocktime
2047
2047
  });
@@ -2117,7 +2117,7 @@ function validateVtxoTxGraph(graph, roundTransaction, sweepTapTreeRoot) {
2117
2117
  if (previousScriptKey.length !== 32) {
2118
2118
  throw new Error(`parent output ${childIndex} has invalid script`);
2119
2119
  }
2120
- const cosigners = chunk7NK6XFC3_cjs.getArkPsbtFields(child.root, 0, chunk7NK6XFC3_cjs.CosignerPublicKey);
2120
+ const cosigners = chunkUV6VUA43_cjs.getArkPsbtFields(child.root, 0, chunkUV6VUA43_cjs.CosignerPublicKey);
2121
2121
  if (cosigners.length === 0) {
2122
2122
  throw ErrMissingCosignersPublicKeys;
2123
2123
  }
@@ -2175,7 +2175,7 @@ var EmulatorPacket = class _EmulatorPacket {
2175
2175
  return new _EmulatorPacket(entries);
2176
2176
  }
2177
2177
  static fromBytes(data) {
2178
- const reader = new chunkBFQX2KS3_cjs.BufferReader(data);
2178
+ const reader = new chunk2TOHNPEP_cjs.BufferReader(data);
2179
2179
  const entryCount = reader.readCompactSize();
2180
2180
  const entries = [];
2181
2181
  for (let i = 0; i < entryCount; i++) {
@@ -2193,7 +2193,7 @@ var EmulatorPacket = class _EmulatorPacket {
2193
2193
  return _EmulatorPacket.PACKET_TYPE;
2194
2194
  }
2195
2195
  serialize() {
2196
- const writer = new chunkBFQX2KS3_cjs.BufferWriter();
2196
+ const writer = new chunk2TOHNPEP_cjs.BufferWriter();
2197
2197
  writer.writeCompactSize(this.entries.length);
2198
2198
  for (const entry of this.entries) {
2199
2199
  writer.writeUint16LE(entry.vin);
@@ -2280,7 +2280,7 @@ var Extension = class _Extension {
2280
2280
  `expected magic prefix ${base.hex.encode(ARKADE_MAGIC)}, got ${base.hex.encode(payload.slice(0, Math.min(payload.length, ARKADE_MAGIC.length)))}`
2281
2281
  );
2282
2282
  }
2283
- const reader = new chunkBFQX2KS3_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
2283
+ const reader = new chunk2TOHNPEP_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
2284
2284
  const packets = [];
2285
2285
  while (reader.remaining() > 0) {
2286
2286
  const packetType = reader.readByte();
@@ -2353,7 +2353,7 @@ var Extension = class _Extension {
2353
2353
  * getAssetPacket returns the embedded Packet, or null if not present.
2354
2354
  */
2355
2355
  getAssetPacket() {
2356
- return this.packets.find((p) => p instanceof chunkBFQX2KS3_cjs.Packet) ?? null;
2356
+ return this.packets.find((p) => p instanceof chunk2TOHNPEP_cjs.Packet) ?? null;
2357
2357
  }
2358
2358
  /**
2359
2359
  * getEmulatorPacket returns the embedded EmulatorPacket, or null if not present.
@@ -2377,8 +2377,8 @@ var Extension = class _Extension {
2377
2377
  };
2378
2378
  function parsePacket(packetType, data) {
2379
2379
  switch (packetType) {
2380
- case chunkBFQX2KS3_cjs.Packet.PACKET_TYPE:
2381
- return chunkBFQX2KS3_cjs.Packet.fromBytes(data);
2380
+ case chunk2TOHNPEP_cjs.Packet.PACKET_TYPE:
2381
+ return chunk2TOHNPEP_cjs.Packet.fromBytes(data);
2382
2382
  case EmulatorPacket.PACKET_TYPE:
2383
2383
  return EmulatorPacket.fromBytes(data);
2384
2384
  default:
@@ -2425,22 +2425,22 @@ function buildOpReturnScript(data) {
2425
2425
  }
2426
2426
  return script;
2427
2427
  }
2428
- var ErrOffchainOutputNotFound = (address) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(`offchain send output not found: ${address}`);
2429
- var ErrInvalidAssetOutputAmount = (got, want, assetId) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2428
+ var ErrOffchainOutputNotFound = (address) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(`offchain send output not found: ${address}`);
2429
+ var ErrInvalidAssetOutputAmount = (got, want, assetId) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2430
2430
  `invalid asset output amount for ${assetId}: got ${got}, want ${want}`
2431
2431
  );
2432
- var ErrAssetGroupNotFound = (assetId) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(`asset group not found in batch leaf: ${assetId}`);
2433
- var ErrAssetOutputNotFound = (assetId, outputIndex) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2432
+ var ErrAssetGroupNotFound = (assetId) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(`asset group not found in batch leaf: ${assetId}`);
2433
+ var ErrAssetOutputNotFound = (assetId, outputIndex) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2434
2434
  `asset output not found in asset group ${assetId} at index ${outputIndex}`
2435
2435
  );
2436
- var ErrOnchainOutputNotFound = (address) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(`onchain output not found: ${address}`);
2437
- var ErrUnvalidatedOffchainOutput = (address) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2436
+ var ErrOnchainOutputNotFound = (address) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(`onchain output not found: ${address}`);
2437
+ var ErrUnvalidatedOffchainOutput = (address) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2438
2438
  `offchain output ${address} cannot be validated: virtual output tree signing did not run`
2439
2439
  );
2440
- var ErrIntentOutputNotFound = (index, kind) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2440
+ var ErrIntentOutputNotFound = (index, kind) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2441
2441
  `${kind} output ${index} of the intent proof is not present in what the server built`
2442
2442
  );
2443
- var ErrUnvalidatedIntentOutput = (index) => new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2443
+ var ErrUnvalidatedIntentOutput = (index) => new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2444
2444
  `offchain output ${index} of the intent proof cannot be validated: virtual output tree signing did not run`
2445
2445
  );
2446
2446
  var ErrInvalidOnchainOutputAmount = (address) => new Error(`invalid onchain output amount: ${address}`);
@@ -2449,7 +2449,7 @@ var ErrInvalidOffchainOutputAmount = (address) => new Error(`invalid offchain ou
2449
2449
  function assertFinalCommitmentMatchesValidated(finalCommitmentTx, validatedCommitmentTxid, context) {
2450
2450
  if (!validatedCommitmentTxid) return;
2451
2451
  if (finalCommitmentTx.id === validatedCommitmentTxid) return;
2452
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2452
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2453
2453
  `${context}: finalization commitment tx ${finalCommitmentTx.id} differs from the validated commitment tx ${validatedCommitmentTxid}`
2454
2454
  );
2455
2455
  }
@@ -2459,7 +2459,7 @@ function validateBatchRecipients(commitmentTx, vtxoTreeLeaves, recipients, netwo
2459
2459
  for (const recipient of recipients) {
2460
2460
  let arkAddress;
2461
2461
  try {
2462
- arkAddress = chunk7NK6XFC3_cjs.ArkAddress.decode(recipient.address);
2462
+ arkAddress = chunkUV6VUA43_cjs.ArkAddress.decode(recipient.address);
2463
2463
  } catch {
2464
2464
  validateOnchainRecipient(commitmentTx, recipient, network, usedOnchainOutputs);
2465
2465
  continue;
@@ -2471,7 +2471,7 @@ function validateBatchRecipientsWithoutTree(commitmentTx, recipients, network) {
2471
2471
  const usedOnchainOutputs = /* @__PURE__ */ new Set();
2472
2472
  for (const recipient of recipients) {
2473
2473
  try {
2474
- chunk7NK6XFC3_cjs.ArkAddress.decode(recipient.address);
2474
+ chunkUV6VUA43_cjs.ArkAddress.decode(recipient.address);
2475
2475
  } catch {
2476
2476
  validateOnchainRecipient(commitmentTx, recipient, network, usedOnchainOutputs);
2477
2477
  continue;
@@ -2480,7 +2480,7 @@ function validateBatchRecipientsWithoutTree(commitmentTx, recipients, network) {
2480
2480
  }
2481
2481
  }
2482
2482
  function declaredIntentOutputs(signedProof, onchainOutputIndexes) {
2483
- const proof = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(signedProof));
2483
+ const proof = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(signedProof));
2484
2484
  const onchain = new Set(onchainOutputIndexes);
2485
2485
  const declared = [];
2486
2486
  for (let i = 0; i < proof.outputsLength; i++) {
@@ -2772,7 +2772,7 @@ function assetMintResolver() {
2772
2772
  if (!tx.assets?.length || !tx.key.arkTxid) return void 0;
2773
2773
  const minted = tx.assets.filter((a) => {
2774
2774
  try {
2775
- return base.hex.encode(chunkBFQX2KS3_cjs.AssetId.fromString(a.assetId).txid) === tx.key.arkTxid;
2775
+ return base.hex.encode(chunk2TOHNPEP_cjs.AssetId.fromString(a.assetId).txid) === tx.key.arkTxid;
2776
2776
  } catch {
2777
2777
  return false;
2778
2778
  }
@@ -2849,7 +2849,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2849
2849
  const existing = inputsByAssetId.get(asset.assetId);
2850
2850
  inputsByAssetId.set(asset.assetId, [
2851
2851
  ...existing ?? [],
2852
- chunkBFQX2KS3_cjs.AssetInput.create(inputIndex, asset.amount)
2852
+ chunk2TOHNPEP_cjs.AssetInput.create(inputIndex, asset.amount)
2853
2853
  ]);
2854
2854
  }
2855
2855
  }
@@ -2861,7 +2861,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2861
2861
  const existing = outputsByAssetId.get(asset.assetId);
2862
2862
  outputsByAssetId.set(asset.assetId, [
2863
2863
  ...existing ?? [],
2864
- chunkBFQX2KS3_cjs.AssetOutput.create(outputIndex, asset.amount)
2864
+ chunk2TOHNPEP_cjs.AssetOutput.create(outputIndex, asset.amount)
2865
2865
  ]);
2866
2866
  }
2867
2867
  }
@@ -2872,7 +2872,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2872
2872
  const existing = outputsByAssetId.get(asset.assetId);
2873
2873
  outputsByAssetId.set(asset.assetId, [
2874
2874
  ...existing ?? [],
2875
- chunkBFQX2KS3_cjs.AssetOutput.create(outputIndex, asset.amount)
2875
+ chunk2TOHNPEP_cjs.AssetOutput.create(outputIndex, asset.amount)
2876
2876
  ]);
2877
2877
  }
2878
2878
  }
@@ -2881,11 +2881,11 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
2881
2881
  for (const assetIdStr of allAssetIds) {
2882
2882
  const inputs = inputsByAssetId.get(assetIdStr);
2883
2883
  const outputs = outputsByAssetId.get(assetIdStr);
2884
- const assetId = chunkBFQX2KS3_cjs.AssetId.fromString(assetIdStr);
2885
- const group = chunkBFQX2KS3_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
2884
+ const assetId = chunk2TOHNPEP_cjs.AssetId.fromString(assetIdStr);
2885
+ const group = chunk2TOHNPEP_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
2886
2886
  groups.push(group);
2887
2887
  }
2888
- return chunkBFQX2KS3_cjs.Packet.create(groups);
2888
+ return chunk2TOHNPEP_cjs.Packet.create(groups);
2889
2889
  }
2890
2890
  function selectCoinsWithAsset(coins, assetId, requiredAmount) {
2891
2891
  const coinsWithAsset = coins.filter((coin) => coin.assets?.some((a) => a.assetId === assetId));
@@ -2922,7 +2922,7 @@ function selectedCoinsToAssetInputs(selectedCoins) {
2922
2922
  }
2923
2923
  function toXOnlySignerHex(pubkeyHex) {
2924
2924
  const bytes = base.hex.decode(pubkeyHex);
2925
- if (bytes.length === 32 || bytes.length === 33) return base.hex.encode(chunkFDQQOF3F_cjs.toXOnly(bytes, "signer key"));
2925
+ if (bytes.length === 32 || bytes.length === 33) return base.hex.encode(chunkIHI3X2J4_cjs.toXOnly(bytes, "signer key"));
2926
2926
  throw new Error(`invalid signer pubkey length: expected 32 or 33 bytes, got ${bytes.length}`);
2927
2927
  }
2928
2928
  function signerSetFromInfo(info) {
@@ -2969,13 +2969,13 @@ var toTimelock = (value) => ({
2969
2969
  var toSeconds = (t) => t.type === "seconds" ? t.value : t.value * NOMINAL_BLOCK_SECONDS;
2970
2970
  function assertTimelockInPolicy(timelock, policy, label, overrideOption) {
2971
2971
  if (policy.requireSeconds && timelock.type === "blocks") {
2972
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2972
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2973
2973
  `${label} rejected: block-typed timelocks are not accepted (got ${timelock.value})`
2974
2974
  );
2975
2975
  }
2976
2976
  const seconds = toSeconds(timelock);
2977
2977
  if (seconds < policy.minSeconds) {
2978
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2978
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
2979
2979
  `${label} rejected: ${timelock.value} ${timelock.type} is below the ${policy.minSeconds}s floor; pass ${overrideOption}: ${seconds}n to Wallet.create to lower it`
2980
2980
  );
2981
2981
  }
@@ -2996,7 +2996,7 @@ function resolveBatchExpiryPolicy(network, overrides) {
2996
2996
  }
2997
2997
  function assertValidBatchExpiry(batchExpiry, policy) {
2998
2998
  if (policy.advertisedVtxoTreeExpiry !== void 0 && batchExpiry !== policy.advertisedVtxoTreeExpiry) {
2999
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
2999
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3000
3000
  `batch expiry rejected: ${batchExpiry} does not match the advertised vtxoTreeExpiry ${policy.advertisedVtxoTreeExpiry}`
3001
3001
  );
3002
3002
  }
@@ -3026,21 +3026,21 @@ function resolveCheckpointExitDelayPolicy(network, overrides) {
3026
3026
  function assertValidServerUnrollScript(checkpointTapscript, policy) {
3027
3027
  let script;
3028
3028
  try {
3029
- script = chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
3029
+ script = chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(base.hex.decode(checkpointTapscript));
3030
3030
  } catch (e) {
3031
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3031
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3032
3032
  `checkpoint exit delay rejected: invalid checkpointTapscript from server (${e instanceof Error ? e.message : String(e)})`
3033
3033
  );
3034
3034
  }
3035
3035
  if (policy.advertisedForfeitPubkey !== void 0) {
3036
3036
  const { pubkeys } = script.params;
3037
3037
  if (pubkeys.length !== 1) {
3038
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3038
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3039
3039
  `checkpoint exit delay rejected: checkpointTapscript must commit to exactly one pubkey, got ${pubkeys.length} [${pubkeys.map(base.hex.encode).join(", ")}]`
3040
3040
  );
3041
3041
  }
3042
3042
  if (!utils_js.equalBytes(pubkeys[0], policy.advertisedForfeitPubkey)) {
3043
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3043
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3044
3044
  `checkpoint exit delay rejected: checkpointTapscript pubkey ${base.hex.encode(pubkeys[0])} does not match the advertised forfeitPubkey ${base.hex.encode(policy.advertisedForfeitPubkey)}`
3045
3045
  );
3046
3046
  }
@@ -3084,8 +3084,8 @@ function buildOffchainTx(inputs, outputs, serverUnrollScript) {
3084
3084
  function buildVirtualTx(inputs, outputs) {
3085
3085
  let lockTime = 0n;
3086
3086
  for (const input of inputs) {
3087
- const tapscript = chunk7NK6XFC3_cjs.decodeTapscript(chunk7NK6XFC3_cjs.scriptFromTapLeafScript(input.tapLeafScript));
3088
- if (chunk7NK6XFC3_cjs.CLTVMultisigTapscript.is(tapscript)) {
3087
+ const tapscript = chunkUV6VUA43_cjs.decodeTapscript(chunkUV6VUA43_cjs.scriptFromTapLeafScript(input.tapLeafScript));
3088
+ if (chunkUV6VUA43_cjs.CLTVMultisigTapscript.is(tapscript)) {
3089
3089
  if (lockTime !== 0n) {
3090
3090
  if (isSeconds(lockTime) !== isSeconds(tapscript.params.absoluteTimelock)) {
3091
3091
  throw new Error("cannot mix seconds and blocks locktime");
@@ -3096,7 +3096,7 @@ function buildVirtualTx(inputs, outputs) {
3096
3096
  }
3097
3097
  }
3098
3098
  }
3099
- const tx = new chunk7NK6XFC3_cjs.Transaction({
3099
+ const tx = new chunkUV6VUA43_cjs.Transaction({
3100
3100
  version: 3,
3101
3101
  lockTime: Number(lockTime)
3102
3102
  });
@@ -3106,12 +3106,12 @@ function buildVirtualTx(inputs, outputs) {
3106
3106
  index: input.vout,
3107
3107
  sequence: lockTime ? btcSigner.DEFAULT_SEQUENCE - 1 : void 0,
3108
3108
  witnessUtxo: {
3109
- script: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript,
3109
+ script: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript,
3110
3110
  amount: BigInt(input.value)
3111
3111
  },
3112
3112
  tapLeafScript: [input.tapLeafScript]
3113
3113
  });
3114
- chunk7NK6XFC3_cjs.setArkPsbtField(tx, i, chunk7NK6XFC3_cjs.VtxoTaprootTree, input.tapTree);
3114
+ chunkUV6VUA43_cjs.setArkPsbtField(tx, i, chunkUV6VUA43_cjs.VtxoTaprootTree, input.tapTree);
3115
3115
  }
3116
3116
  for (const output of outputs) {
3117
3117
  tx.addOutput(output);
@@ -3120,8 +3120,8 @@ function buildVirtualTx(inputs, outputs) {
3120
3120
  return tx;
3121
3121
  }
3122
3122
  function buildCheckpointTx(vtxo, serverUnrollScript) {
3123
- const collaborativeClosure = chunk7NK6XFC3_cjs.decodeTapscript(chunk7NK6XFC3_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
3124
- const checkpointVtxoScript = new chunk7NK6XFC3_cjs.VtxoScript([
3123
+ const collaborativeClosure = chunkUV6VUA43_cjs.decodeTapscript(chunkUV6VUA43_cjs.scriptFromTapLeafScript(vtxo.tapLeafScript));
3124
+ const checkpointVtxoScript = new chunkUV6VUA43_cjs.VtxoScript([
3125
3125
  serverUnrollScript.script,
3126
3126
  collaborativeClosure.script
3127
3127
  ]);
@@ -3197,7 +3197,7 @@ function verifyTapscriptSignatures(tx, inputIndex, requiredSigners, excludePubke
3197
3197
  const sighashType = signature.length === 65 ? signature[64] : btcSigner.SigHash.DEFAULT;
3198
3198
  const sig = signature.subarray(0, 64);
3199
3199
  if (!allowedSighashTypes.includes(sighashType)) {
3200
- const sighashName = chunk7NK6XFC3_cjs.formatSighash(sighashType);
3200
+ const sighashName = chunkUV6VUA43_cjs.formatSighash(sighashType);
3201
3201
  throw new Error(
3202
3202
  `Unallowed sighash type ${sighashName} for input ${inputIndex}, pubkey ${pubKeyHex}.`
3203
3203
  );
@@ -3271,7 +3271,7 @@ function combineTapscriptSigs(signedTx, originalTx) {
3271
3271
  }
3272
3272
  function isValidArkAddress(address) {
3273
3273
  try {
3274
- chunk7NK6XFC3_cjs.ArkAddress.decode(address);
3274
+ chunkUV6VUA43_cjs.ArkAddress.decode(address);
3275
3275
  return true;
3276
3276
  } catch (e) {
3277
3277
  return false;
@@ -3279,16 +3279,16 @@ function isValidArkAddress(address) {
3279
3279
  }
3280
3280
  function matchServerCheckpoints(serverCheckpointTxs, expectedCheckpoints, context) {
3281
3281
  if (serverCheckpointTxs.length !== expectedCheckpoints.length) {
3282
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3282
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3283
3283
  `${context} returned ${serverCheckpointTxs.length} checkpoints, expected ${expectedCheckpoints.length}`
3284
3284
  );
3285
3285
  }
3286
3286
  const byTxid = new Map(expectedCheckpoints.map((c) => [c.id, c]));
3287
3287
  return serverCheckpointTxs.map((encoded, index) => {
3288
- const server = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
3288
+ const server = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(encoded));
3289
3289
  const local = byTxid.get(server.id);
3290
3290
  if (!local) {
3291
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3291
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3292
3292
  `${context} checkpoint ${index} txid ${server.id} does not match any submitted checkpoint`
3293
3293
  );
3294
3294
  }
@@ -3298,14 +3298,14 @@ function matchServerCheckpoints(serverCheckpointTxs, expectedCheckpoints, contex
3298
3298
  }
3299
3299
  function assertSubmittedArkTxid(response, signedArkTx, context) {
3300
3300
  if (response.arkTxid !== signedArkTx.id) {
3301
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3301
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3302
3302
  `${context} returned ark txid ${response.arkTxid}, expected ${signedArkTx.id}`
3303
3303
  );
3304
3304
  }
3305
3305
  if (response.finalArkTx === void 0) return;
3306
- const finalTxid = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx)).id;
3306
+ const finalTxid = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx)).id;
3307
3307
  if (finalTxid !== signedArkTx.id) {
3308
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3308
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3309
3309
  `${context} returned final ark tx ${finalTxid}, expected ${signedArkTx.id}`
3310
3310
  );
3311
3311
  }
@@ -3317,20 +3317,20 @@ function assertServerSignedLeaf(serverTx, localTx, inputIndex, serverPubkeys, co
3317
3317
  `${context}: input ${inputIndex} carries no spend leaf to verify the server signature against`
3318
3318
  );
3319
3319
  }
3320
- const script = chunk7NK6XFC3_cjs.scriptFromTapLeafScript(leaf);
3320
+ const script = chunkUV6VUA43_cjs.scriptFromTapLeafScript(leaf);
3321
3321
  let leafPubkeys;
3322
3322
  try {
3323
- leafPubkeys = chunk7NK6XFC3_cjs.decodeTapscript(script).params.pubkeys.map(
3324
- (key) => base.hex.encode(chunkFDQQOF3F_cjs.toXOnly(key, "leaf key"))
3323
+ leafPubkeys = chunkUV6VUA43_cjs.decodeTapscript(script).params.pubkeys.map(
3324
+ (key) => base.hex.encode(chunkIHI3X2J4_cjs.toXOnly(key, "leaf key"))
3325
3325
  );
3326
3326
  } catch (error) {
3327
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3327
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3328
3328
  `${context}: input ${inputIndex} spend leaf cannot be decoded (${error instanceof Error ? error.message : String(error)})`
3329
3329
  );
3330
3330
  }
3331
3331
  const signer = leafPubkeys.find((key) => serverPubkeys.has(key));
3332
3332
  if (!signer) {
3333
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3333
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3334
3334
  `${context}: input ${inputIndex} spend leaf names no signer key the server advertises`
3335
3335
  );
3336
3336
  }
@@ -3344,7 +3344,7 @@ function assertServerSignedLeaf(serverTx, localTx, inputIndex, serverPubkeys, co
3344
3344
  payment_js.tapLeafHash(script)
3345
3345
  );
3346
3346
  } catch (error) {
3347
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3347
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3348
3348
  `${context}: input ${inputIndex} is not signed by the server on the leaf being spent (${error instanceof Error ? error.message : String(error)})`
3349
3349
  );
3350
3350
  }
@@ -3353,20 +3353,20 @@ function assertCheckpointsMatchInputs(checkpoints, inputs, unrollCandidates, con
3353
3353
  const byOutpoint = new Map(inputs.map((input) => [`${input.txid}:${input.vout}`, input]));
3354
3354
  for (const [index, checkpoint] of checkpoints.entries()) {
3355
3355
  if (checkpoint.inputsLength !== 1) {
3356
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3356
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3357
3357
  `${context}: checkpoint ${index} spends ${checkpoint.inputsLength} inputs, expected 1`
3358
3358
  );
3359
3359
  }
3360
3360
  const spent = checkpoint.getInput(0);
3361
3361
  if (!spent.txid || spent.index === void 0) {
3362
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3362
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3363
3363
  `${context}: checkpoint ${index} has no input outpoint`
3364
3364
  );
3365
3365
  }
3366
3366
  const outpoint = `${base.hex.encode(spent.txid)}:${spent.index}`;
3367
3367
  const input = byOutpoint.get(outpoint);
3368
3368
  if (!input) {
3369
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3369
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3370
3370
  `${context}: checkpoint ${index} spends ${outpoint}, which is not one of the requested virtual outputs`
3371
3371
  );
3372
3372
  }
@@ -3374,7 +3374,7 @@ function assertCheckpointsMatchInputs(checkpoints, inputs, unrollCandidates, con
3374
3374
  (unroll) => buildCheckpointTx(input, unroll).tx.id === checkpoint.id
3375
3375
  );
3376
3376
  if (!rebuilt) {
3377
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3377
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3378
3378
  `${context}: checkpoint ${index} txid ${checkpoint.id} differs from the checkpoint built locally for ${outpoint}`
3379
3379
  );
3380
3380
  }
@@ -3400,9 +3400,9 @@ async function submitOffchainTx(provider, offchainTx, signer, hooks, options) {
3400
3400
  const matched = matchServerCheckpoints(signedCheckpointTxs, offchainTx.checkpoints, "submitTx");
3401
3401
  matched.forEach(({ server }, index) => {
3402
3402
  try {
3403
- chunk7NK6XFC3_cjs.assertAllowedSighashTypes(server);
3403
+ chunkUV6VUA43_cjs.assertAllowedSighashTypes(server);
3404
3404
  } catch (error) {
3405
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3405
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3406
3406
  `submitTx checkpoint ${index}: ${error instanceof Error ? error.message : String(error)}`
3407
3407
  );
3408
3408
  }
@@ -3410,14 +3410,14 @@ async function submitOffchainTx(provider, offchainTx, signer, hooks, options) {
3410
3410
  const verify = options?.verifyServerSignatures;
3411
3411
  if (verify) {
3412
3412
  if (response.finalArkTx === void 0) {
3413
- throw new chunk7NK6XFC3_cjs.ServerResponseMismatchError(
3413
+ throw new chunkUV6VUA43_cjs.ServerResponseMismatchError(
3414
3414
  "submitTx: server returned no final ark tx to verify its signatures against"
3415
3415
  );
3416
3416
  }
3417
- const finalArkTx = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx));
3417
+ const finalArkTx = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(response.finalArkTx));
3418
3418
  const serverPubkeys = new Set(
3419
3419
  [verify.serverPubkey, ...verify.deprecatedServerPubkeys ?? []].map(
3420
- (key) => base.hex.encode(chunkFDQQOF3F_cjs.toXOnly(key, "server key"))
3420
+ (key) => base.hex.encode(chunkIHI3X2J4_cjs.toXOnly(key, "server key"))
3421
3421
  )
3422
3422
  );
3423
3423
  for (let i = 0; i < offchainTx.arkTx.inputsLength; i++) {
@@ -3469,12 +3469,12 @@ function claimWithPreimageIdentity(identity, preimage) {
3469
3469
  return {
3470
3470
  ...identity,
3471
3471
  sign: async (tx, inputIndexes) => {
3472
- const signed = chunk7NK6XFC3_cjs.Transaction.fromPSBT(
3472
+ const signed = chunkUV6VUA43_cjs.Transaction.fromPSBT(
3473
3473
  (await identity.sign(tx.clone(), inputIndexes)).toPSBT()
3474
3474
  );
3475
3475
  const indexes = inputIndexes ?? Array.from({ length: signed.inputsLength }, (_, i) => i);
3476
3476
  for (const index of indexes) {
3477
- chunk7NK6XFC3_cjs.setArkPsbtField(signed, index, chunk7NK6XFC3_cjs.ConditionWitness, [preimage]);
3477
+ chunkUV6VUA43_cjs.setArkPsbtField(signed, index, chunkUV6VUA43_cjs.ConditionWitness, [preimage]);
3478
3478
  }
3479
3479
  return signed;
3480
3480
  }
@@ -3654,7 +3654,7 @@ function extendCoinWithTapscript(boardingTapscript, utxo) {
3654
3654
  };
3655
3655
  }
3656
3656
  function deriveContractTapscripts(contract) {
3657
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
3657
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
3658
3658
  if (!handler) {
3659
3659
  throw new Error(`No handler for contract type '${contract.type}'`);
3660
3660
  }
@@ -3745,7 +3745,7 @@ function assertRecipientArkadeAddress(encoded, address, context) {
3745
3745
  function assertTapTreeDerivesAddress(encoded, tapTree, address) {
3746
3746
  let derived;
3747
3747
  try {
3748
- derived = chunk7NK6XFC3_cjs.VtxoScript.decode(tapTree).pkScript;
3748
+ derived = chunkUV6VUA43_cjs.VtxoScript.decode(tapTree).pkScript;
3749
3749
  } catch (e) {
3750
3750
  throw new Error(
3751
3751
  `Invalid tapTree for ${encoded}: ${e instanceof Error ? e.message : String(e)}`
@@ -3762,7 +3762,7 @@ function validateRecipients(recipients, dustAmount, context) {
3762
3762
  for (const recipient of recipients) {
3763
3763
  let address;
3764
3764
  try {
3765
- address = chunk7NK6XFC3_cjs.ArkAddress.decode(recipient.address);
3765
+ address = chunkUV6VUA43_cjs.ArkAddress.decode(recipient.address);
3766
3766
  } catch (e) {
3767
3767
  throw new Error(`Invalid Arkade address: ${recipient.address}`);
3768
3768
  }
@@ -3787,7 +3787,7 @@ function validateRecipients(recipients, dustAmount, context) {
3787
3787
 
3788
3788
  // src/contracts/spendability.ts
3789
3789
  function isContractGenericallySpendable(contract) {
3790
- return chunkFDQQOF3F_cjs.contractHandlers.get(contract.type)?.isGenericallySpendable?.(contract) === true;
3790
+ return chunkIHI3X2J4_cjs.contractHandlers.get(contract.type)?.isGenericallySpendable?.(contract) === true;
3791
3791
  }
3792
3792
  function gatedContracts(contracts) {
3793
3793
  const gated = /* @__PURE__ */ new Map();
@@ -3809,7 +3809,7 @@ function gateExclusion(gated) {
3809
3809
  return (vtxo) => {
3810
3810
  const type = gatedTypeOf(vtxo, gated);
3811
3811
  if (type === void 0) return void 0;
3812
- if (!chunkFDQQOF3F_cjs.contractHandlers.has(type)) {
3812
+ if (!chunkIHI3X2J4_cjs.contractHandlers.has(type)) {
3813
3813
  return `at ${vtxo.script} (contract type '${type}') has no handler registered in this build`;
3814
3814
  }
3815
3815
  return `at ${vtxo.script} (contract type '${type}') is not generically spendable`;
@@ -3845,7 +3845,7 @@ function selectPendingRecoveryOutpoints(contractsWithVtxos, signerSet, nowSecond
3845
3845
  continue;
3846
3846
  }
3847
3847
  for (const v of vtxos) {
3848
- if (!chunk7NK6XFC3_cjs.isVtxoSpent(v) && !v.isSwept && !v.isUnrolled) {
3848
+ if (!chunkUV6VUA43_cjs.isVtxoSpent(v) && !v.isSwept && !v.isUnrolled) {
3849
3849
  out.add(`${v.txid}:${v.vout}`);
3850
3850
  }
3851
3851
  }
@@ -3880,10 +3880,10 @@ function byValueDescending(vtxos) {
3880
3880
  return [...vtxos].sort((a, b) => b.value - a.value);
3881
3881
  }
3882
3882
  async function fetchTimeHeight(wallet) {
3883
- return chunk7NK6XFC3_cjs.resolveTimeHeight(wallet.onchainProvider);
3883
+ return chunkUV6VUA43_cjs.resolveTimeHeight(wallet.onchainProvider);
3884
3884
  }
3885
3885
  function canMigrateBySend(vtxo, now) {
3886
- if (!chunk7NK6XFC3_cjs.canSpendOffchain(vtxo, now)) return false;
3886
+ if (!chunkUV6VUA43_cjs.canSpendOffchain(vtxo, now)) return false;
3887
3887
  return vtxo.expiresAt !== void 0 || vtxo.expiresAtHeight !== void 0;
3888
3888
  }
3889
3889
  function byExpiryAscending(vtxos, now) {
@@ -3891,7 +3891,7 @@ function byExpiryAscending(vtxos, now) {
3891
3891
  if (vtxo.isSwept) return -Infinity;
3892
3892
  if (vtxo.expiresAt !== void 0) return vtxo.expiresAt.getTime();
3893
3893
  if (vtxo.expiresAtHeight !== void 0) {
3894
- return chunk7NK6XFC3_cjs.isPastExpiry(vtxo, now) ? -Infinity : Infinity;
3894
+ return chunkUV6VUA43_cjs.isPastExpiry(vtxo, now) ? -Infinity : Infinity;
3895
3895
  }
3896
3896
  return Infinity;
3897
3897
  };
@@ -3918,7 +3918,7 @@ function priceSettlementInputs(vtxos, estimator) {
3918
3918
  const payable = [];
3919
3919
  const net = /* @__PURE__ */ new Map();
3920
3920
  for (const vtxo of vtxos) {
3921
- const inputFee = estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(vtxo));
3921
+ const inputFee = estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(vtxo));
3922
3922
  if (inputFee.satoshis >= vtxo.value) {
3923
3923
  continue;
3924
3924
  }
@@ -3944,7 +3944,7 @@ function deductOffchainOutputFee(subtotal, estimator, arkAddress) {
3944
3944
  }
3945
3945
  const outputFee = estimator.evalOffchainOutput({
3946
3946
  amount: subtotal,
3947
- script: base.hex.encode(chunk7NK6XFC3_cjs.ArkAddress.decode(arkAddress).pkScript)
3947
+ script: base.hex.encode(chunkUV6VUA43_cjs.ArkAddress.decode(arkAddress).pkScript)
3948
3948
  });
3949
3949
  return subtotal - BigInt(outputFee.satoshis);
3950
3950
  }
@@ -3958,10 +3958,10 @@ var DEFAULT_SETTLEMENT_CONFIG = {
3958
3958
  };
3959
3959
  function getRecoverableVtxos(vtxos, dustAmount, now) {
3960
3960
  return vtxos.filter((vtxo) => {
3961
- if (chunk7NK6XFC3_cjs.canRecoverOnchain(vtxo, now)) {
3961
+ if (chunkUV6VUA43_cjs.canRecoverOnchain(vtxo, now)) {
3962
3962
  return true;
3963
3963
  }
3964
- if (chunk7NK6XFC3_cjs.canSpendOffchain(vtxo, now) && vtxo.isPreconfirmed && isSubdust(vtxo, dustAmount)) {
3964
+ if (chunkUV6VUA43_cjs.canSpendOffchain(vtxo, now) && vtxo.isPreconfirmed && isSubdust(vtxo, dustAmount)) {
3965
3965
  return true;
3966
3966
  }
3967
3967
  return false;
@@ -3993,7 +3993,7 @@ function getRecoverableWithSubdust(vtxos, dustAmount, now) {
3993
3993
  function isVtxoExpiringSoon(vtxo, thresholdMs) {
3994
3994
  if (vtxo.isUnrolled) return false;
3995
3995
  const realThresholdMs = thresholdMs <= 100 ? DEFAULT_THRESHOLD_MS : thresholdMs;
3996
- const expiresAt = chunk7NK6XFC3_cjs.normalizeVtxo(vtxo).expiresAt;
3996
+ const expiresAt = chunkUV6VUA43_cjs.normalizeVtxo(vtxo).expiresAt;
3997
3997
  if (expiresAt === void 0) return false;
3998
3998
  const now = Date.now();
3999
3999
  const batchExpiry = expiresAt.getTime();
@@ -4004,7 +4004,7 @@ function getExpiringAndRecoverableVtxos(vtxos, thresholdMs, dustAmount, now) {
4004
4004
  return vtxos.filter(
4005
4005
  // The leading exclusion covers the `isSubdust` arm too, which is a value
4006
4006
  // property and would otherwise re-admit an exited coin on its own.
4007
- (vtxo) => !vtxo.isUnrolled && (isVtxoExpiringSoon(vtxo, thresholdMs) || chunk7NK6XFC3_cjs.canRecoverOnchain(vtxo, now) || isSubdust(vtxo, dustAmount))
4007
+ (vtxo) => !vtxo.isUnrolled && (isVtxoExpiringSoon(vtxo, thresholdMs) || chunkUV6VUA43_cjs.canRecoverOnchain(vtxo, now) || isSubdust(vtxo, dustAmount))
4008
4008
  );
4009
4009
  }
4010
4010
  function isMigrationCapable(wallet) {
@@ -4537,11 +4537,11 @@ var VtxoManager = class _VtxoManager {
4537
4537
  `Sweep not economical: output ${outputAmount} sats after ${fee} sats fee is below dust (${dustAmount} sats)`
4538
4538
  );
4539
4539
  }
4540
- const tx = new chunk7NK6XFC3_cjs.Transaction();
4540
+ const tx = new chunkUV6VUA43_cjs.Transaction();
4541
4541
  for (const utxo of expiredUtxos) {
4542
- const utxoScript = chunk7NK6XFC3_cjs.VtxoScript.decode(utxo.tapTree);
4542
+ const utxoScript = chunkUV6VUA43_cjs.VtxoScript.decode(utxo.tapTree);
4543
4543
  const utxoExitLeaf = utxoScript.leaves.find(
4544
- (leaf) => chunk7NK6XFC3_cjs.CSVMultisigTapscript.isScriptValid(chunk7NK6XFC3_cjs.scriptFromTapLeafScript(leaf)) === true
4544
+ (leaf) => chunkUV6VUA43_cjs.CSVMultisigTapscript.isScriptValid(chunkUV6VUA43_cjs.scriptFromTapLeafScript(leaf)) === true
4545
4545
  );
4546
4546
  if (!utxoExitLeaf) {
4547
4547
  throw new Error(
@@ -4556,7 +4556,7 @@ var VtxoManager = class _VtxoManager {
4556
4556
  amount: BigInt(utxo.value)
4557
4557
  },
4558
4558
  tapLeafScript: [utxoExitLeaf],
4559
- sequence: chunk7NK6XFC3_cjs.getSequence(utxoExitLeaf)
4559
+ sequence: chunkUV6VUA43_cjs.getSequence(utxoExitLeaf)
4560
4560
  });
4561
4561
  }
4562
4562
  tx.addOutputAddress(boardingAddress, outputAmount, this.getNetwork());
@@ -4782,8 +4782,8 @@ var VtxoManager = class _VtxoManager {
4782
4782
  const cls = classifyAgainstSignerSet(serverPubKey, signerSet, nowSeconds);
4783
4783
  if (cls.status === "CURRENT") continue;
4784
4784
  const live = vtxos.filter((v) => !v.isUnrolled);
4785
- const recoverable = live.filter((v) => v.isSwept && !chunk7NK6XFC3_cjs.isVtxoSpent(v));
4786
- const spendable = live.filter((v) => !chunk7NK6XFC3_cjs.isVtxoSpent(v) && !v.isSwept);
4785
+ const recoverable = live.filter((v) => v.isSwept && !chunkUV6VUA43_cjs.isVtxoSpent(v));
4786
+ const spendable = live.filter((v) => !chunkUV6VUA43_cjs.isVtxoSpent(v) && !v.isSwept);
4787
4787
  const value = spendable.reduce((sum, v) => sum + v.value, 0);
4788
4788
  let recoverableCount = 0;
4789
4789
  let recoverableValue = 0;
@@ -5018,7 +5018,7 @@ var VtxoManager = class _VtxoManager {
5018
5018
  }
5019
5019
  getBoardingTimelock() {
5020
5020
  const wallet = this.getSweepWallet();
5021
- const exitScript = chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(
5021
+ const exitScript = chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(
5022
5022
  base.hex.decode(wallet.boardingTapscript.exitScript)
5023
5023
  );
5024
5024
  return exitScript.params.timelock;
@@ -5126,8 +5126,8 @@ var VtxoManager = class _VtxoManager {
5126
5126
  }
5127
5127
  /** The outpoint a `VTXO_ALREADY_SPENT` error carries in `metadata.vtxo_outpoint`, if any. */
5128
5128
  extractSpentOutpoint(error) {
5129
- const ark = chunk7NK6XFC3_cjs.maybeArkError(error);
5130
- if (!chunk7NK6XFC3_cjs.isArkError(ark, chunk7NK6XFC3_cjs.ArkErrorName.VTXO_ALREADY_SPENT)) return void 0;
5129
+ const ark = chunkUV6VUA43_cjs.maybeArkError(error);
5130
+ if (!chunkUV6VUA43_cjs.isArkError(ark, chunkUV6VUA43_cjs.ArkErrorName.VTXO_ALREADY_SPENT)) return void 0;
5131
5131
  const raw = ark.metadata?.vtxo_outpoint;
5132
5132
  if (typeof raw !== "string") return void 0;
5133
5133
  const [txid, voutStr] = raw.split(":");
@@ -5300,7 +5300,7 @@ var VtxoManager = class _VtxoManager {
5300
5300
  if (filteredVtxos.length >= MAX_VTXOS_PER_SETTLEMENT) {
5301
5301
  break;
5302
5302
  }
5303
- const inputFee = estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(v));
5303
+ const inputFee = estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(v));
5304
5304
  if (inputFee.satoshis >= v.value) {
5305
5305
  continue;
5306
5306
  }
@@ -5320,7 +5320,7 @@ var VtxoManager = class _VtxoManager {
5320
5320
  const arkAddress = await this.wallet.getAddress();
5321
5321
  const outputFee = estimator.evalOffchainOutput({
5322
5322
  amount: totalAmount,
5323
- script: base.hex.encode(chunk7NK6XFC3_cjs.ArkAddress.decode(arkAddress).pkScript)
5323
+ script: base.hex.encode(chunkUV6VUA43_cjs.ArkAddress.decode(arkAddress).pkScript)
5324
5324
  });
5325
5325
  totalAmount -= BigInt(outputFee.satoshis);
5326
5326
  if (totalAmount < dustAmount) return;
@@ -5400,7 +5400,7 @@ var ArkNote = class _ArkNote {
5400
5400
  this.value = value;
5401
5401
  this.HRP = HRP;
5402
5402
  const preimageHash = utils_js.sha256(this.preimage);
5403
- this.vtxoScript = new chunk7NK6XFC3_cjs.VtxoScript([noteTapscript(preimageHash)]);
5403
+ this.vtxoScript = new chunkUV6VUA43_cjs.VtxoScript([noteTapscript(preimageHash)]);
5404
5404
  const leaf = this.vtxoScript.leaves[0];
5405
5405
  this.txid = base.hex.encode(new Uint8Array(preimageHash).reverse());
5406
5406
  this.tapTree = this.vtxoScript.encode();
@@ -5566,7 +5566,7 @@ var ArkadeCash = class _ArkadeCash {
5566
5566
  const privateKey = data.slice(1, 33);
5567
5567
  const serverPubKey = data.slice(33, 65);
5568
5568
  const sequence = new DataView(data.buffer, data.byteOffset + 65, 4).getUint32(0, false);
5569
- const csvTimelock2 = chunk7NK6XFC3_cjs.sequenceToTimelock(sequence);
5569
+ const csvTimelock2 = chunkUV6VUA43_cjs.sequenceToTimelock(sequence);
5570
5570
  return new _ArkadeCash(privateKey, serverPubKey, csvTimelock2, decoded.prefix);
5571
5571
  }
5572
5572
  toString() {
@@ -5574,7 +5574,7 @@ var ArkadeCash = class _ArkadeCash {
5574
5574
  data[0] = _ArkadeCash.Version;
5575
5575
  data.set(this._privateKey, 1);
5576
5576
  data.set(this._serverPubKey, 33);
5577
- const sequence = chunk7NK6XFC3_cjs.timelockToSequence(this.csvTimelock);
5577
+ const sequence = chunkUV6VUA43_cjs.timelockToSequence(this.csvTimelock);
5578
5578
  new DataView(data.buffer, data.byteOffset + 65, 4).setUint32(0, sequence, false);
5579
5579
  const words = base.bech32m.toWords(data);
5580
5580
  return base.bech32m.encode(this.hrp, words, 1023);
@@ -5583,7 +5583,7 @@ var ArkadeCash = class _ArkadeCash {
5583
5583
  return SingleKey.fromPrivateKey(this._privateKey);
5584
5584
  }
5585
5585
  get vtxoScript() {
5586
- return new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
5586
+ return new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
5587
5587
  pubKey: this._publicKey,
5588
5588
  serverPubKey: this._serverPubKey,
5589
5589
  csvTimelock: this.csvTimelock
@@ -5793,7 +5793,7 @@ async function captureExitBranch(params) {
5793
5793
  const nonCommitment = ordered.filter((c) => chainTxTypeToChainedExit(c.type) !== 1 /* Commitment */).map((c) => c.txid);
5794
5794
  if (nonCommitment.length > 0) {
5795
5795
  for (const psbt of await resolver.getVirtualTxs(nonCommitment)) {
5796
- psbtByTxid.set(chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
5796
+ psbtByTxid.set(chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
5797
5797
  }
5798
5798
  }
5799
5799
  }
@@ -5836,10 +5836,10 @@ var IndexerExitDataSource = class {
5836
5836
  while (hasMore) {
5837
5837
  const { chain: page, page: meta } = await this.indexer.getVtxoChain(
5838
5838
  { txid: vtxo.txid, vout: vtxo.vout },
5839
- { pageIndex, pageSize: chunk7NK6XFC3_cjs.DEFAULT_PAGE_SIZE }
5839
+ { pageIndex, pageSize: chunkUV6VUA43_cjs.DEFAULT_PAGE_SIZE }
5840
5840
  );
5841
5841
  chain.push(...page);
5842
- hasMore = meta ? page.length === chunk7NK6XFC3_cjs.DEFAULT_PAGE_SIZE : false;
5842
+ hasMore = meta ? page.length === chunkUV6VUA43_cjs.DEFAULT_PAGE_SIZE : false;
5843
5843
  pageIndex++;
5844
5844
  }
5845
5845
  return chain;
@@ -5851,12 +5851,12 @@ var IndexerExitDataSource = class {
5851
5851
  while (hasMore) {
5852
5852
  const { txs, page } = await this.indexer.getVirtualTxs(txids, {
5853
5853
  pageIndex,
5854
- pageSize: chunk7NK6XFC3_cjs.DEFAULT_PAGE_SIZE
5854
+ pageSize: chunkUV6VUA43_cjs.DEFAULT_PAGE_SIZE
5855
5855
  });
5856
5856
  for (const psbt of txs) {
5857
- out.set(chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
5857
+ out.set(chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
5858
5858
  }
5859
- hasMore = page ? txs.length === chunk7NK6XFC3_cjs.DEFAULT_PAGE_SIZE : false;
5859
+ hasMore = page ? txs.length === chunkUV6VUA43_cjs.DEFAULT_PAGE_SIZE : false;
5860
5860
  pageIndex++;
5861
5861
  }
5862
5862
  return out;
@@ -5877,7 +5877,7 @@ function chainedTxTypeToChainTxType(t) {
5877
5877
  }
5878
5878
  }
5879
5879
  function psbtInputTxids(psbtBase64) {
5880
- return txInputTxids(chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64)));
5880
+ return txInputTxids(chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64)));
5881
5881
  }
5882
5882
  function txInputTxids(tx) {
5883
5883
  const ids = [];
@@ -6238,10 +6238,10 @@ async function resolveArkInfo(arkProvider, walletRepository, opts) {
6238
6238
  try {
6239
6239
  info = await arkProvider.getInfo();
6240
6240
  } catch (err) {
6241
- if (opts?.requireLive || !chunk7NK6XFC3_cjs.isRetryableProviderError(err)) throw err;
6241
+ if (opts?.requireLive || !chunkUV6VUA43_cjs.isRetryableProviderError(err)) throw err;
6242
6242
  const snapshot = await loadArkInfoSnapshot(walletRepository);
6243
6243
  if (!snapshot) {
6244
- throw new chunk7NK6XFC3_cjs.ProviderUnavailableError(
6244
+ throw new chunkUV6VUA43_cjs.ProviderUnavailableError(
6245
6245
  "Arkade server info is unavailable and no cached snapshot exists",
6246
6246
  { cause: err }
6247
6247
  );
@@ -6636,7 +6636,7 @@ function collectArkTxidsNeedingCreatedAt(vtxos, localCreatedAt) {
6636
6636
  return [...txids];
6637
6637
  }
6638
6638
  async function buildTransactionHistory(vtxos, allBoardingTxs, commitmentsToIgnore, resolveTxCreatedAt, gatedScripts = /* @__PURE__ */ new Map()) {
6639
- const normalized = vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo).sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
6639
+ const normalized = vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo).sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
6640
6640
  const localCreatedAt = localCreatedAtByTxid(normalized);
6641
6641
  const gatedVtxos = normalized.filter((vtxo) => isGatedVtxo(vtxo, gatedScripts));
6642
6642
  const ownVtxos = normalized.filter((vtxo) => !isGatedVtxo(vtxo, gatedScripts));
@@ -6811,7 +6811,7 @@ var AssetManager = class extends ReadonlyAssetManager {
6811
6811
  withRecoverable: false,
6812
6812
  genericallySpendableOnly: true
6813
6813
  });
6814
- const controlAssetRef = params.controlAssetId ? chunkBFQX2KS3_cjs.AssetRef.fromId(chunkBFQX2KS3_cjs.AssetId.fromString(params.controlAssetId)) : null;
6814
+ const controlAssetRef = params.controlAssetId ? chunk2TOHNPEP_cjs.AssetRef.fromId(chunk2TOHNPEP_cjs.AssetId.fromString(params.controlAssetId)) : null;
6815
6815
  const coinSelection = selectVirtualCoins(virtualCoins, Number(this.wallet.dustAmount));
6816
6816
  let totalBtcSelected = 0n;
6817
6817
  const assetChanges = /* @__PURE__ */ new Map();
@@ -6824,8 +6824,8 @@ var AssetManager = class extends ReadonlyAssetManager {
6824
6824
  }
6825
6825
  }
6826
6826
  const groups = [];
6827
- const issuedAssetOutput = chunkBFQX2KS3_cjs.AssetOutput.create(0, params.amount);
6828
- const issuedAssetGroup = chunkBFQX2KS3_cjs.AssetGroup.create(
6827
+ const issuedAssetOutput = chunk2TOHNPEP_cjs.AssetOutput.create(0, params.amount);
6828
+ const issuedAssetGroup = chunk2TOHNPEP_cjs.AssetGroup.create(
6829
6829
  null,
6830
6830
  controlAssetRef,
6831
6831
  [],
@@ -6838,11 +6838,11 @@ var AssetManager = class extends ReadonlyAssetManager {
6838
6838
  for (const [assetId, amount] of assetChanges) {
6839
6839
  const changeInputs = inputsForAsset(assetInputs, assetId);
6840
6840
  groups.push(
6841
- chunkBFQX2KS3_cjs.AssetGroup.create(
6842
- chunkBFQX2KS3_cjs.AssetId.fromString(assetId),
6841
+ chunk2TOHNPEP_cjs.AssetGroup.create(
6842
+ chunk2TOHNPEP_cjs.AssetId.fromString(assetId),
6843
6843
  null,
6844
6844
  changeInputs,
6845
- [chunkBFQX2KS3_cjs.AssetOutput.create(0, amount)],
6845
+ [chunk2TOHNPEP_cjs.AssetOutput.create(0, amount)],
6846
6846
  []
6847
6847
  )
6848
6848
  );
@@ -6856,7 +6856,7 @@ var AssetManager = class extends ReadonlyAssetManager {
6856
6856
  );
6857
6857
  return {
6858
6858
  arkTxId: arkTxid,
6859
- assetId: chunkBFQX2KS3_cjs.AssetId.create(arkTxid, 0).toString()
6859
+ assetId: chunk2TOHNPEP_cjs.AssetId.create(arkTxid, 0).toString()
6860
6860
  };
6861
6861
  }
6862
6862
  /**
@@ -6927,23 +6927,23 @@ var AssetManager = class extends ReadonlyAssetManager {
6927
6927
  const assetInputs = selectedCoinsToAssetInputs(selectedCoins);
6928
6928
  const reissueInputs = inputsForAsset(assetInputs, params.assetId);
6929
6929
  const totalAssetAmount = assetToReissueAmount + params.amount;
6930
- const reissueAssetIdObj = chunkBFQX2KS3_cjs.AssetId.fromString(params.assetId);
6931
- const reissueAssetGroup = chunkBFQX2KS3_cjs.AssetGroup.create(
6930
+ const reissueAssetIdObj = chunk2TOHNPEP_cjs.AssetId.fromString(params.assetId);
6931
+ const reissueAssetGroup = chunk2TOHNPEP_cjs.AssetGroup.create(
6932
6932
  reissueAssetIdObj,
6933
6933
  null,
6934
6934
  reissueInputs,
6935
- [chunkBFQX2KS3_cjs.AssetOutput.create(0, totalAssetAmount)],
6935
+ [chunk2TOHNPEP_cjs.AssetOutput.create(0, totalAssetAmount)],
6936
6936
  []
6937
6937
  );
6938
6938
  const groups = [reissueAssetGroup];
6939
6939
  for (const [assetId, amount] of assetChanges) {
6940
6940
  const changeInputs = inputsForAsset(assetInputs, assetId);
6941
6941
  groups.push(
6942
- chunkBFQX2KS3_cjs.AssetGroup.create(
6943
- chunkBFQX2KS3_cjs.AssetId.fromString(assetId),
6942
+ chunk2TOHNPEP_cjs.AssetGroup.create(
6943
+ chunk2TOHNPEP_cjs.AssetId.fromString(assetId),
6944
6944
  null,
6945
6945
  changeInputs,
6946
- [chunkBFQX2KS3_cjs.AssetOutput.create(0, amount)],
6946
+ [chunk2TOHNPEP_cjs.AssetOutput.create(0, amount)],
6947
6947
  []
6948
6948
  )
6949
6949
  );
@@ -7011,11 +7011,11 @@ var AssetManager = class extends ReadonlyAssetManager {
7011
7011
  for (const [assetId, amount] of assetChanges) {
7012
7012
  const changeInputs = inputsForAsset(assetInputs, assetId);
7013
7013
  groups.push(
7014
- chunkBFQX2KS3_cjs.AssetGroup.create(
7015
- chunkBFQX2KS3_cjs.AssetId.fromString(assetId),
7014
+ chunk2TOHNPEP_cjs.AssetGroup.create(
7015
+ chunk2TOHNPEP_cjs.AssetId.fromString(assetId),
7016
7016
  null,
7017
7017
  changeInputs,
7018
- amount > 0n ? [chunkBFQX2KS3_cjs.AssetOutput.create(0, amount)] : [],
7018
+ amount > 0n ? [chunk2TOHNPEP_cjs.AssetOutput.create(0, amount)] : [],
7019
7019
  []
7020
7020
  )
7021
7021
  );
@@ -7028,16 +7028,16 @@ function inputsForAsset(assetInputs, assetId) {
7028
7028
  for (const [inputIndex, assets] of assetInputs) {
7029
7029
  for (const asset of assets) {
7030
7030
  if (asset.assetId !== assetId) continue;
7031
- inputs.push(chunkBFQX2KS3_cjs.AssetInput.create(inputIndex, asset.amount));
7031
+ inputs.push(chunk2TOHNPEP_cjs.AssetInput.create(inputIndex, asset.amount));
7032
7032
  }
7033
7033
  }
7034
7034
  return inputs;
7035
7035
  }
7036
7036
  async function submitToSelf(wallet, inputs, amount, groups) {
7037
- const outputAddress = chunk7NK6XFC3_cjs.ArkAddress.decode(await wallet.getAddress());
7037
+ const outputAddress = chunkUV6VUA43_cjs.ArkAddress.decode(await wallet.getAddress());
7038
7038
  const outputs = [
7039
7039
  { script: outputAddress.pkScript, amount: BigInt(amount) },
7040
- Extension.create([chunkBFQX2KS3_cjs.Packet.create(groups)]).txOut()
7040
+ Extension.create([chunk2TOHNPEP_cjs.Packet.create(groups)]).txOut()
7041
7041
  ];
7042
7042
  const { arkTxid } = await wallet.buildAndSubmitOffchainTx(inputs, outputs);
7043
7043
  return arkTxid;
@@ -7061,7 +7061,7 @@ function castMetadata(metadata) {
7061
7061
  } else {
7062
7062
  throw new Error("Invalid metadata value type");
7063
7063
  }
7064
- md.push(chunkBFQX2KS3_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
7064
+ md.push(chunk2TOHNPEP_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
7065
7065
  }
7066
7066
  return md;
7067
7067
  }
@@ -7082,10 +7082,10 @@ var DelegateManagerImpl = class {
7082
7082
  if (vtxos.length === 0) {
7083
7083
  return { delegated: [], failed: [] };
7084
7084
  }
7085
- const destinationScript = chunk7NK6XFC3_cjs.ArkAddress.decode(destination).pkScript;
7085
+ const destinationScript = chunkUV6VUA43_cjs.ArkAddress.decode(destination).pkScript;
7086
7086
  const arkInfo = await this.arkInfoProvider.getInfo();
7087
7087
  const delegateInfo = await this.delegateProvider.getDelegateInfo();
7088
- const eligible = vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo).filter(
7088
+ const eligible = vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo).filter(
7089
7089
  (v) => isAnnotated(v) && findDelegateTapLeaf(v, delegateInfo.pubkey) !== void 0
7090
7090
  );
7091
7091
  if (eligible.length === 0) {
@@ -7117,7 +7117,7 @@ var DelegateManagerImpl = class {
7117
7117
  const groupByExpiry = /* @__PURE__ */ new Map();
7118
7118
  let recoverableVtxos = [];
7119
7119
  for (const vtxo of eligible) {
7120
- if (chunk7NK6XFC3_cjs.canRecoverOnchain(vtxo, now)) {
7120
+ if (chunkUV6VUA43_cjs.canRecoverOnchain(vtxo, now)) {
7121
7121
  recoverableVtxos.push(vtxo);
7122
7122
  continue;
7123
7123
  }
@@ -7169,7 +7169,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
7169
7169
  }
7170
7170
  if (!delegateAt) {
7171
7171
  const now = { timestamp: /* @__PURE__ */ new Date() };
7172
- const expiryTimestamp = vtxos.filter((coin) => !chunk7NK6XFC3_cjs.canRecoverOnchain(coin, now) && coin.expiresAt).reduce(
7172
+ const expiryTimestamp = vtxos.filter((coin) => !chunkUV6VUA43_cjs.canRecoverOnchain(coin, now) && coin.expiresAt).reduce(
7173
7173
  (min, coin) => Math.min(min, coin.expiresAt.getTime()),
7174
7174
  Number.MAX_SAFE_INTEGER
7175
7175
  );
@@ -7196,7 +7196,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
7196
7196
  let amount = 0n;
7197
7197
  for (const coin of vtxos) {
7198
7198
  const inputFee = estimator.evalOffchainInput({
7199
- ...chunk7NK6XFC3_cjs.toOffchainInputFeeParams(coin),
7199
+ ...chunkUV6VUA43_cjs.toOffchainInputFeeParams(coin),
7200
7200
  type: "vtxo"
7201
7201
  });
7202
7202
  if (inputFee.satoshis >= coin.value) {
@@ -7210,7 +7210,7 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
7210
7210
  const delegateFee = BigInt(Number(fee));
7211
7211
  if (delegateFee > 0n) {
7212
7212
  outputs.push({
7213
- script: chunk7NK6XFC3_cjs.ArkAddress.decode(delegateAddress).pkScript,
7213
+ script: chunkUV6VUA43_cjs.ArkAddress.decode(delegateAddress).pkScript,
7214
7214
  amount: delegateFee
7215
7215
  });
7216
7216
  }
@@ -7243,10 +7243,10 @@ async function delegate(identity, delegateProvider, arkInfo, delegateInfo, vtxos
7243
7243
  destinationScript
7244
7244
  );
7245
7245
  const forfeitOutputScript = btcSigner.OutScript.encode(
7246
- btcSigner.Address(chunk7NK6XFC3_cjs.getNetwork(network)).decode(forfeitAddress)
7246
+ btcSigner.Address(chunkUV6VUA43_cjs.getNetwork(network)).decode(forfeitAddress)
7247
7247
  );
7248
7248
  const forfeits = await Promise.all(
7249
- vtxos.filter((v) => chunk7NK6XFC3_cjs.requiresForfeit(v)).map(async (coin) => {
7249
+ vtxos.filter((v) => chunkUV6VUA43_cjs.requiresForfeit(v)).map(async (coin) => {
7250
7250
  const forfeit = await makeDelegateForfeitTx(
7251
7251
  coin,
7252
7252
  dust,
@@ -7271,7 +7271,7 @@ async function makeDelegateForfeitTx(input, connectorAmount, delegatePubkey, for
7271
7271
  index: input.vout,
7272
7272
  witnessUtxo: {
7273
7273
  amount: BigInt(input.value),
7274
- script: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript
7274
+ script: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript
7275
7275
  },
7276
7276
  sighashType: btcSigner.SigHash.ALL_ANYONECANPAY,
7277
7277
  tapLeafScript: [delegateTapLeaf]
@@ -7329,7 +7329,7 @@ async function makeSignedDelegateIntent(identity, coins, outputs, onchainOutputs
7329
7329
  expire_at: 0,
7330
7330
  cosigners_public_keys: cosignerPubKeys
7331
7331
  };
7332
- const proof = chunk7NK6XFC3_cjs.Intent.create(message, coins, outputs);
7332
+ const proof = chunkUV6VUA43_cjs.Intent.create(message, coins, outputs);
7333
7333
  const signedProof = await identity.sign(proof);
7334
7334
  return {
7335
7335
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -7355,10 +7355,10 @@ function getDayTimestamp(timestamp) {
7355
7355
  function findDelegateTapLeaf(vtxo, delegatePubkey) {
7356
7356
  if (!vtxo.tapTree) return void 0;
7357
7357
  const pk = delegatePubkey.length === 66 ? delegatePubkey.slice(2) : delegatePubkey;
7358
- const vtxoScript = chunk7NK6XFC3_cjs.VtxoScript.decode(vtxo.tapTree);
7358
+ const vtxoScript = chunkUV6VUA43_cjs.VtxoScript.decode(vtxo.tapTree);
7359
7359
  return vtxoScript.leaves.find((tapLeaf) => {
7360
- const arkTapscript = chunk7NK6XFC3_cjs.decodeTapscript(chunk7NK6XFC3_cjs.scriptFromTapLeafScript(tapLeaf));
7361
- if (!chunk7NK6XFC3_cjs.MultisigTapscript.is(arkTapscript)) return false;
7360
+ const arkTapscript = chunkUV6VUA43_cjs.decodeTapscript(chunkUV6VUA43_cjs.scriptFromTapLeafScript(tapLeaf));
7361
+ if (!chunkUV6VUA43_cjs.MultisigTapscript.is(arkTapscript)) return false;
7362
7362
  return arkTapscript.params.pubkeys.map(base.hex.encode).includes(pk);
7363
7363
  });
7364
7364
  }
@@ -7646,7 +7646,7 @@ function parseLegacyExpiry(batchExpiry) {
7646
7646
  if (typeof batchExpiry !== "number" || !Number.isFinite(batchExpiry) || batchExpiry <= 0) {
7647
7647
  return {};
7648
7648
  }
7649
- if (batchExpiry >= chunk7NK6XFC3_cjs.EXPIRY_MIN_PLAUSIBLE_MS) return { expiresAt: new Date(batchExpiry) };
7649
+ if (batchExpiry >= chunkUV6VUA43_cjs.EXPIRY_MIN_PLAUSIBLE_MS) return { expiresAt: new Date(batchExpiry) };
7650
7650
  return { expiresAtHeight: batchExpiry / 1e3 };
7651
7651
  }
7652
7652
  function legacyVtxoFacts(status) {
@@ -7847,7 +7847,7 @@ function initDatabase(db, oldVersion, transaction) {
7847
7847
  }
7848
7848
  }
7849
7849
  }
7850
- var unspentFlag = (vtxo) => chunk7NK6XFC3_cjs.isVtxoSpent(vtxo) ? {} : { unspent: 1 };
7850
+ var unspentFlag = (vtxo) => chunkUV6VUA43_cjs.isVtxoSpent(vtxo) ? {} : { unspent: 1 };
7851
7851
  function initDatabaseWithIntents(db, oldVersion, transaction) {
7852
7852
  initDatabase(db, oldVersion, transaction);
7853
7853
  if (!db.objectStoreNames.contains(STORE_INTENTS)) {
@@ -8222,8 +8222,8 @@ function checkSaveVtxosForScript(backend, key, vtxos) {
8222
8222
  }
8223
8223
  async function getVtxosForContract(repo, contract, options) {
8224
8224
  const vtxos = repo.getVtxosForScriptPage ? await collectScriptVtxos(repo, contract.script, options) : filterVtxosForScript(await collectVtxos(repo, contract.address), contract.script);
8225
- const normalized = vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo);
8226
- return options?.unspentOnly ? normalized.filter((vtxo) => !chunk7NK6XFC3_cjs.isVtxoSpent(vtxo)) : normalized;
8225
+ const normalized = vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo);
8226
+ return options?.unspentOnly ? normalized.filter((vtxo) => !chunkUV6VUA43_cjs.isVtxoSpent(vtxo)) : normalized;
8227
8227
  }
8228
8228
  async function hasVtxosForContract(repo, contract) {
8229
8229
  if (repo.getVtxosForScriptPage) {
@@ -8452,7 +8452,7 @@ function decodeArkContract(encoded) {
8452
8452
  }
8453
8453
  function contractFromArkContract(encoded, options = {}) {
8454
8454
  const parsed = decodeArkContract(encoded);
8455
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(parsed.type);
8455
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(parsed.type);
8456
8456
  if (!handler) {
8457
8457
  throw new Error(`No handler registered for contract type '${parsed.type}'`);
8458
8458
  }
@@ -8466,9 +8466,9 @@ function contractFromArkContract(encoded, options = {}) {
8466
8466
  metadata: options.metadata
8467
8467
  };
8468
8468
  }
8469
- function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunk7NK6XFC3_cjs.DEFAULT_NETWORK.hrp, options = {}) {
8469
+ function contractFromArkContractWithAddress(encoded, serverPubKey, addressPrefix = chunkUV6VUA43_cjs.DEFAULT_NETWORK.hrp, options = {}) {
8470
8470
  const parsed = decodeArkContract(encoded);
8471
- const handler = chunkFDQQOF3F_cjs.contractHandlers.getOrThrow(parsed.type);
8471
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.getOrThrow(parsed.type);
8472
8472
  const params = parsed.data;
8473
8473
  const vtxoScript = handler.createScript(params);
8474
8474
  return {
@@ -8717,9 +8717,9 @@ var ContractWatcher = class {
8717
8717
  this.connectionState = "connected";
8718
8718
  this.reconnectAttempts = 0;
8719
8719
  this.listenLoop().catch((e) => {
8720
- if (chunk7NK6XFC3_cjs.isEventSourceError(e)) {
8720
+ if (chunkUV6VUA43_cjs.isEventSourceError(e)) {
8721
8721
  console.debug("ContractWatcher subscription disconnected; reconnecting");
8722
- } else if (!chunk7NK6XFC3_cjs.isEventSourceUnavailableError(e)) {
8722
+ } else if (!chunkUV6VUA43_cjs.isEventSourceUnavailableError(e)) {
8723
8723
  console.error(e);
8724
8724
  }
8725
8725
  this.connectionState = "disconnected";
@@ -8731,7 +8731,7 @@ var ContractWatcher = class {
8731
8731
  this.scheduleReconnect();
8732
8732
  });
8733
8733
  } catch (error) {
8734
- if (!chunk7NK6XFC3_cjs.isEventSourceUnavailableError(error)) {
8734
+ if (!chunkUV6VUA43_cjs.isEventSourceUnavailableError(error)) {
8735
8735
  console.error("ContractWatcher connection failed:", error);
8736
8736
  }
8737
8737
  this.connectionState = "disconnected";
@@ -8750,7 +8750,7 @@ var ContractWatcher = class {
8750
8750
  * few seconds. Failsafe polling keeps the watcher correct, just slower.
8751
8751
  */
8752
8752
  reportEventSourceUnavailable(error) {
8753
- if (!chunk7NK6XFC3_cjs.isEventSourceUnavailableError(error)) return false;
8753
+ if (!chunkUV6VUA43_cjs.isEventSourceUnavailableError(error)) return false;
8754
8754
  if (!this.eventSourceReported) {
8755
8755
  this.eventSourceReported = true;
8756
8756
  console.warn(
@@ -8813,7 +8813,7 @@ var ContractWatcher = class {
8813
8813
  const now = Date.now();
8814
8814
  let current;
8815
8815
  try {
8816
- current = await chunk7NK6XFC3_cjs.getAllNormalizedVtxos(this.config.indexerProvider, scripts, {
8816
+ current = await chunkUV6VUA43_cjs.getAllNormalizedVtxos(this.config.indexerProvider, scripts, {
8817
8817
  spendableOnly: true
8818
8818
  });
8819
8819
  } catch (error) {
@@ -9002,14 +9002,14 @@ var ContractWatcher = class {
9002
9002
  const timestamp = Date.now();
9003
9003
  if (update.newVtxos?.length) {
9004
9004
  this.processSubscriptionVtxos(
9005
- update.newVtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo),
9005
+ update.newVtxos.map(chunkUV6VUA43_cjs.normalizeVtxo),
9006
9006
  "vtxo_received",
9007
9007
  timestamp
9008
9008
  );
9009
9009
  }
9010
9010
  if (update.spentVtxos?.length) {
9011
9011
  this.processSubscriptionVtxos(
9012
- update.spentVtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo),
9012
+ update.spentVtxos.map(chunkUV6VUA43_cjs.normalizeVtxo),
9013
9013
  "vtxo_spent",
9014
9014
  timestamp
9015
9015
  );
@@ -9034,8 +9034,8 @@ var ContractWatcher = class {
9034
9034
  continue;
9035
9035
  }
9036
9036
  if (target === byWatchedScript && eventType === "vtxo_received") {
9037
- const n = chunk7NK6XFC3_cjs.normalizeVtxo(vtxo);
9038
- if (chunk7NK6XFC3_cjs.isVtxoSpent(n) || n.isSwept || chunk7NK6XFC3_cjs.isPastExpiry(n, now)) continue;
9037
+ const n = chunkUV6VUA43_cjs.normalizeVtxo(vtxo);
9038
+ if (chunkUV6VUA43_cjs.isVtxoSpent(n) || n.isSwept || chunkUV6VUA43_cjs.isPastExpiry(n, now)) continue;
9039
9039
  }
9040
9040
  let bucket = target.get(vtxo.script);
9041
9041
  if (!bucket) {
@@ -9131,7 +9131,7 @@ var NON_TERMINAL_INTENT_STATES = ALL_INTENT_STATES.filter(
9131
9131
  (s) => !isTerminalIntentState(s)
9132
9132
  );
9133
9133
  function isConsumed(vtxo) {
9134
- return vtxo !== void 0 && chunk7NK6XFC3_cjs.isVtxoSpent(vtxo);
9134
+ return vtxo !== void 0 && chunkUV6VUA43_cjs.isVtxoSpent(vtxo);
9135
9135
  }
9136
9136
  async function classifyIntent(intent, vtxosByOutpoint, now) {
9137
9137
  if (isTerminalIntentState(intent.state)) return void 0;
@@ -9174,7 +9174,7 @@ async function reconcileIntents(deps) {
9174
9174
  let vtxosByOutpoint = /* @__PURE__ */ new Map();
9175
9175
  if (outpoints.length > 0) {
9176
9176
  try {
9177
- const { vtxos } = await chunk7NK6XFC3_cjs.getNormalizedVtxos(deps.indexerProvider, { outpoints });
9177
+ const { vtxos } = await chunkUV6VUA43_cjs.getNormalizedVtxos(deps.indexerProvider, { outpoints });
9178
9178
  vtxosByOutpoint = new Map(vtxos.map((v) => [outpointKey(v), v]));
9179
9179
  } catch (e) {
9180
9180
  console.error("reconcileIntents: failed to fetch input VTXO state", e);
@@ -9231,7 +9231,7 @@ function annotatableIn(scriptToContract, vtxos, memo) {
9231
9231
  if (!contract) continue;
9232
9232
  try {
9233
9233
  const key = `${contract.type}\0${script}\0${JSON.stringify(contract.params)}`;
9234
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
9234
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
9235
9235
  const hit = memo?.get(script);
9236
9236
  let tapscripts;
9237
9237
  if (hit && hit.key === key && hit.handler === handler) {
@@ -9364,7 +9364,7 @@ var ContractManager = class _ContractManager {
9364
9364
  this.markSyncOnline();
9365
9365
  return void 0;
9366
9366
  } catch (err) {
9367
- if (!chunk7NK6XFC3_cjs.isRetryableProviderError(err)) throw err;
9367
+ if (!chunkUV6VUA43_cjs.isRetryableProviderError(err)) throw err;
9368
9368
  this.markSyncDegraded(err);
9369
9369
  return err;
9370
9370
  }
@@ -9384,7 +9384,7 @@ var ContractManager = class _ContractManager {
9384
9384
  try {
9385
9385
  await this.scheduleLookAheadDrain();
9386
9386
  } catch (err) {
9387
- if (!chunk7NK6XFC3_cjs.isRetryableProviderError(err)) throw err;
9387
+ if (!chunkUV6VUA43_cjs.isRetryableProviderError(err)) throw err;
9388
9388
  this.lookAheadRefillOwed = true;
9389
9389
  this.markSyncDegraded(err);
9390
9390
  }
@@ -9493,7 +9493,7 @@ var ContractManager = class _ContractManager {
9493
9493
  const from = Math.max(0, watermark - lookAhead.size);
9494
9494
  const to = watermark + lookAhead.size;
9495
9495
  const deps = lookAhead.candidateDeps();
9496
- const handlers = chunkFDQQOF3F_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkFDQQOF3F_cjs.contractHandlers.get(t)).filter(hasCandidates);
9496
+ const handlers = chunkIHI3X2J4_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkIHI3X2J4_cjs.contractHandlers.get(t)).filter(hasCandidates);
9497
9497
  const band = /* @__PURE__ */ new Map();
9498
9498
  for (let index = from; index <= to; index++) {
9499
9499
  const descriptor = lookAhead.materialize(index);
@@ -9504,7 +9504,7 @@ var ContractManager = class _ContractManager {
9504
9504
  index,
9505
9505
  params: {
9506
9506
  ...candidate,
9507
- ...chunkFDQQOF3F_cjs.speculativeReceiveMetadata(descriptor)
9507
+ ...chunkIHI3X2J4_cjs.speculativeReceiveMetadata(descriptor)
9508
9508
  }
9509
9509
  });
9510
9510
  }
@@ -9563,7 +9563,7 @@ var ContractManager = class _ContractManager {
9563
9563
  });
9564
9564
  for (const entry of pending) entry.catchUpPending = false;
9565
9565
  } catch (err) {
9566
- if (!chunk7NK6XFC3_cjs.isRetryableProviderError(err)) throw err;
9566
+ if (!chunkUV6VUA43_cjs.isRetryableProviderError(err)) throw err;
9567
9567
  this.markSyncDegraded(err);
9568
9568
  }
9569
9569
  }
@@ -9654,7 +9654,7 @@ var ContractManager = class _ContractManager {
9654
9654
  return result;
9655
9655
  }
9656
9656
  async upsertContractRow(params) {
9657
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(params.type);
9657
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(params.type);
9658
9658
  if (!handler) {
9659
9659
  throw new Error(`No handler registered for contract type '${params.type}'`);
9660
9660
  }
@@ -9722,7 +9722,7 @@ var ContractManager = class _ContractManager {
9722
9722
  `scanContracts: batchSize must be a positive integer (got ${String(opts.batchSize)})`
9723
9723
  );
9724
9724
  }
9725
- const registered = chunkFDQQOF3F_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkFDQQOF3F_cjs.contractHandlers.get(t)).filter(isDiscoverable);
9725
+ const registered = chunkIHI3X2J4_cjs.contractHandlers.getRegisteredTypes().map((t) => chunkIHI3X2J4_cjs.contractHandlers.get(t)).filter(isDiscoverable);
9726
9726
  const discoverables = [
9727
9727
  ...registered.filter((h) => h.type === "boarding"),
9728
9728
  ...registered.filter((h) => h.type !== "boarding")
@@ -9889,7 +9889,7 @@ var ContractManager = class _ContractManager {
9889
9889
  }
9890
9890
  const tapscriptCache = tapscripts ?? /* @__PURE__ */ new Map();
9891
9891
  return vtxos.map(
9892
- (vtxo) => extendVirtualCoinForContract(chunk7NK6XFC3_cjs.normalizeVtxo(vtxo), byScript, tapscriptCache)
9892
+ (vtxo) => extendVirtualCoinForContract(chunkUV6VUA43_cjs.normalizeVtxo(vtxo), byScript, tapscriptCache)
9893
9893
  );
9894
9894
  }
9895
9895
  /** @inheritdoc */
@@ -9934,14 +9934,14 @@ var ContractManager = class _ContractManager {
9934
9934
  const byScript = new Map(contracts.map((contract) => [contract.script, contract]));
9935
9935
  const asking = vtxos.filter((vtxo) => {
9936
9936
  const contract = byScript.get(vtxo.script);
9937
- return contract !== void 0 && chunkFDQQOF3F_cjs.contractHandlers.get(contract.type)?.assertSpendableNow !== void 0;
9937
+ return contract !== void 0 && chunkIHI3X2J4_cjs.contractHandlers.get(contract.type)?.assertSpendableNow !== void 0;
9938
9938
  });
9939
9939
  if (asking.length === 0) return refused;
9940
9940
  const tip = await this.currentChainTip();
9941
9941
  const walletDescriptorValue = await walletDescriptor?.();
9942
9942
  for (const vtxo of asking) {
9943
9943
  const contract = byScript.get(vtxo.script);
9944
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
9944
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
9945
9945
  if (!handler?.assertSpendableNow) continue;
9946
9946
  const context = {
9947
9947
  collaborative: true,
@@ -9951,7 +9951,7 @@ var ContractManager = class _ContractManager {
9951
9951
  walletDescriptor: walletDescriptorValue,
9952
9952
  // `isVirtualCoin` only checks `script`, which every input has; `isCsvSpendable`
9953
9953
  // reads `vtxo.status.block_time` unguarded, so require `status` too.
9954
- vtxo: chunk7NK6XFC3_cjs.isVirtualCoin(vtxo) && "status" in vtxo ? vtxo : void 0
9954
+ vtxo: chunkUV6VUA43_cjs.isVirtualCoin(vtxo) && "status" in vtxo ? vtxo : void 0
9955
9955
  };
9956
9956
  try {
9957
9957
  await handler.assertSpendableNow(
@@ -10060,7 +10060,7 @@ var ContractManager = class _ContractManager {
10060
10060
  const { contractScript, collaborative = true, walletDescriptor, vtxo } = options;
10061
10061
  const [contract] = await this.getContracts({ script: contractScript });
10062
10062
  if (!contract) return [];
10063
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
10063
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
10064
10064
  if (!handler) return [];
10065
10065
  const script = handler.createScript(contract.params);
10066
10066
  const tip = await this.currentChainTip();
@@ -10082,7 +10082,7 @@ var ContractManager = class _ContractManager {
10082
10082
  const { contractScript, collaborative = true, walletDescriptor } = options;
10083
10083
  const [contract] = await this.getContracts({ script: contractScript });
10084
10084
  if (!contract) return [];
10085
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
10085
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
10086
10086
  if (!handler) return [];
10087
10087
  const script = handler.createScript(contract.params);
10088
10088
  const context = {
@@ -10128,7 +10128,7 @@ var ContractManager = class _ContractManager {
10128
10128
  }
10129
10129
  async refreshOutpoints(outpoints) {
10130
10130
  if (outpoints.length === 0) return;
10131
- const { vtxos } = await chunk7NK6XFC3_cjs.getNormalizedVtxos(this.config.indexerProvider, {
10131
+ const { vtxos } = await chunkUV6VUA43_cjs.getNormalizedVtxos(this.config.indexerProvider, {
10132
10132
  outpoints
10133
10133
  });
10134
10134
  if (vtxos.length === 0) return;
@@ -10220,7 +10220,7 @@ var ContractManager = class _ContractManager {
10220
10220
  break;
10221
10221
  }
10222
10222
  } catch (err) {
10223
- if (!chunk7NK6XFC3_cjs.isRetryableProviderError(err)) throw err;
10223
+ if (!chunkUV6VUA43_cjs.isRetryableProviderError(err)) throw err;
10224
10224
  this.markSyncDegraded(err);
10225
10225
  }
10226
10226
  this.emitEvent(event);
@@ -10295,7 +10295,7 @@ var ContractManager = class _ContractManager {
10295
10295
  */
10296
10296
  async reconcilePendingFrontier(contracts) {
10297
10297
  const scriptToContract = new Map(contracts.map((c) => [c.script, c]));
10298
- const vtxos = await chunk7NK6XFC3_cjs.getAllNormalizedVtxos(
10298
+ const vtxos = await chunkUV6VUA43_cjs.getAllNormalizedVtxos(
10299
10299
  this.config.indexerProvider,
10300
10300
  contracts.map((c) => c.script),
10301
10301
  { pendingOnly: true }
@@ -10369,7 +10369,7 @@ var ContractManager = class _ContractManager {
10369
10369
  }
10370
10370
  return result;
10371
10371
  }
10372
- async fetchContractVtxosBulk(contracts, pageSize = chunk7NK6XFC3_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
10372
+ async fetchContractVtxosBulk(contracts, pageSize = chunkUV6VUA43_cjs.DEFAULT_PAGE_SIZE, syncWindow) {
10373
10373
  if (contracts.length === 0) {
10374
10374
  return { vtxosByScript: /* @__PURE__ */ new Map(), promoted: /* @__PURE__ */ new Map() };
10375
10375
  }
@@ -10385,7 +10385,7 @@ var ContractManager = class _ContractManager {
10385
10385
  before: syncWindow.before
10386
10386
  }
10387
10387
  } : {};
10388
- const vtxos = await chunk7NK6XFC3_cjs.getAllNormalizedVtxos(
10388
+ const vtxos = await chunkUV6VUA43_cjs.getAllNormalizedVtxos(
10389
10389
  this.config.indexerProvider,
10390
10390
  contracts.map((c) => c.script),
10391
10391
  { ...windowOpts, pageSize }
@@ -10620,7 +10620,7 @@ var deserializeTapLeaf = (t) => {
10620
10620
  const s = base.hex.decode(t.s);
10621
10621
  return [cb, s];
10622
10622
  };
10623
- var deserializeVtxo = (o) => chunk7NK6XFC3_cjs.normalizeVtxo({
10623
+ var deserializeVtxo = (o) => chunkUV6VUA43_cjs.normalizeVtxo({
10624
10624
  ...o,
10625
10625
  createdAt: new Date(o.createdAt),
10626
10626
  tapTree: base.hex.decode(o.tapTree),
@@ -11039,7 +11039,7 @@ var HDDescriptorProvider = class _HDDescriptorProvider {
11039
11039
  */
11040
11040
  materializeDescriptorAt(index) {
11041
11041
  const descriptor = this.identity.descriptor;
11042
- const network = chunkFDQQOF3F_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
11042
+ const network = chunkIHI3X2J4_cjs.isMainnetDescriptor(descriptor) ? descriptorsScure.networks.bitcoin : descriptorsScure.networks.testnet;
11043
11043
  const expansion = descriptorsScure.expand({ descriptor, network, index });
11044
11044
  const keyInfo = expansion.expansionMap?.["@0"];
11045
11045
  if (!keyInfo?.keyExpression) {
@@ -11107,7 +11107,7 @@ function signingDescriptorIndex(descriptor) {
11107
11107
  }
11108
11108
  function newestWalletReceiveContract(contracts, serverPubKeyHex) {
11109
11109
  return contracts.filter(
11110
- (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunkFDQQOF3F_cjs.WALLET_RECEIVE_SOURCE
11110
+ (c) => c.params.serverPubKey === serverPubKeyHex && c.metadata?.source === chunkIHI3X2J4_cjs.WALLET_RECEIVE_SOURCE
11111
11111
  ).sort((a, b) => {
11112
11112
  if (b.createdAt !== a.createdAt) return b.createdAt - a.createdAt;
11113
11113
  return signingDescriptorIndex(b.metadata?.signingDescriptor) - signingDescriptorIndex(a.metadata?.signingDescriptor);
@@ -11158,7 +11158,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
11158
11158
  const provider = await resolveDescriptorProvider(config, setup.walletRepository);
11159
11159
  if (!provider) return void 0;
11160
11160
  const allowSilentFallback = (config.walletMode ?? "auto") === "auto";
11161
- const expectedContractType = setup.offchainTapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? "delegate" : "default";
11161
+ const expectedContractType = setup.offchainTapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? "delegate" : "default";
11162
11162
  const factoryOpts = {
11163
11163
  walletRepository: setup.walletRepository,
11164
11164
  contractRepository: setup.contractRepository,
@@ -11315,7 +11315,7 @@ var WalletReceiveRotator = class _WalletReceiveRotator {
11315
11315
  };
11316
11316
  function deriveLeafPubkey(descriptor) {
11317
11317
  try {
11318
- return chunkFDQQOF3F_cjs.deriveDescriptorLeafPubKey(descriptor);
11318
+ return chunkIHI3X2J4_cjs.deriveDescriptorLeafPubKey(descriptor);
11319
11319
  } catch (e) {
11320
11320
  throw new NonRangeableDescriptorError(
11321
11321
  "Cannot derive leaf pubkey: descriptor is not a materialized, parsable tr(...) shape.",
@@ -11327,7 +11327,7 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
11327
11327
  const pubKey = deriveLeafPubkey(descriptor);
11328
11328
  const tapscript = rebuildTapscript(current, pubKey);
11329
11329
  const serverPubKey = tapscript.options.serverPubKey;
11330
- const csvTimelock2 = chunk7NK6XFC3_cjs.timelockToSequence(tapscript.options.csvTimelock).toString();
11330
+ const csvTimelock2 = chunkUV6VUA43_cjs.timelockToSequence(tapscript.options.csvTimelock).toString();
11331
11331
  const base$1 = {
11332
11332
  script: base.hex.encode(tapscript.pkScript),
11333
11333
  address: tapscript.address(hrp, serverPubKey).encode(),
@@ -11335,11 +11335,11 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
11335
11335
  // Read at sign time to route rotated-pubkey inputs through `signWithDescriptor`; without
11336
11336
  // it spends are rejected with `INVALID_PSBT_INPUT (5): missing tapscript spend sig`.
11337
11337
  metadata: {
11338
- ...tagSource && { source: chunkFDQQOF3F_cjs.WALLET_RECEIVE_SOURCE },
11338
+ ...tagSource && { source: chunkIHI3X2J4_cjs.WALLET_RECEIVE_SOURCE },
11339
11339
  signingDescriptor: descriptor
11340
11340
  }
11341
11341
  };
11342
- const params = tapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? {
11342
+ const params = tapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? {
11343
11343
  ...base$1,
11344
11344
  type: "delegate",
11345
11345
  params: {
@@ -11360,10 +11360,10 @@ function buildReceiveContract(current, descriptor, hrp, tagSource) {
11360
11360
  return { tapscript, params };
11361
11361
  }
11362
11362
  function rebuildTapscript(current, pubKey) {
11363
- if (current instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script) {
11364
- return new chunkFDQQOF3F_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
11363
+ if (current instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script) {
11364
+ return new chunkIHI3X2J4_cjs.DelegateVtxo.Script({ ...current.options, pubKey });
11365
11365
  }
11366
- return new chunkFDQQOF3F_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
11366
+ return new chunkIHI3X2J4_cjs.DefaultVtxo.Script({ ...current.options, pubKey });
11367
11367
  }
11368
11368
  async function pickActiveReceive(contractRepository, serverPubKey, expectedType) {
11369
11369
  const candidates = await collectContracts(contractRepository, {
@@ -11421,7 +11421,7 @@ function computeOffchainBalance(vtxos, caps) {
11421
11421
  }
11422
11422
  };
11423
11423
  for (const vtxo of vtxos) {
11424
- if (chunk7NK6XFC3_cjs.isVtxoSpent(vtxo)) continue;
11424
+ if (chunkUV6VUA43_cjs.isVtxoSpent(vtxo)) continue;
11425
11425
  addAssets(owned, vtxo);
11426
11426
  if (vtxo.isUnrolled) {
11427
11427
  unrolled += vtxo.value;
@@ -11431,11 +11431,11 @@ function computeOffchainBalance(vtxos, caps) {
11431
11431
  pendingRecovery += vtxo.value;
11432
11432
  continue;
11433
11433
  }
11434
- if (chunk7NK6XFC3_cjs.canRecoverOnchain(vtxo, now)) {
11434
+ if (chunkUV6VUA43_cjs.canRecoverOnchain(vtxo, now)) {
11435
11435
  recoverable += vtxo.value;
11436
11436
  continue;
11437
11437
  }
11438
- if (!chunk7NK6XFC3_cjs.canSpendOffchain(vtxo, now)) continue;
11438
+ if (!chunkUV6VUA43_cjs.canSpendOffchain(vtxo, now)) continue;
11439
11439
  if (vtxo.isPreconfirmed) {
11440
11440
  preconfirmed += vtxo.value;
11441
11441
  } else {
@@ -11646,7 +11646,7 @@ function intentProofJobs(coins) {
11646
11646
  if (coins.length === 0) return [];
11647
11647
  const coinJobs = coins.map((coin, i) => ({
11648
11648
  index: i + 1,
11649
- lookupScript: chunk7NK6XFC3_cjs.VtxoScript.decode(coin.tapTree).pkScript
11649
+ lookupScript: chunkUV6VUA43_cjs.VtxoScript.decode(coin.tapTree).pkScript
11650
11650
  }));
11651
11651
  return [{ index: 0, lookupScript: coinJobs[0].lookupScript }, ...coinJobs];
11652
11652
  }
@@ -11672,7 +11672,7 @@ function dedupeTimelocks(timelocks) {
11672
11672
  const seen = /* @__PURE__ */ new Set();
11673
11673
  const deduped = [];
11674
11674
  for (const timelock of timelocks) {
11675
- const sequence = chunk7NK6XFC3_cjs.timelockToSequence(timelock).toString();
11675
+ const sequence = chunkUV6VUA43_cjs.timelockToSequence(timelock).toString();
11676
11676
  if (seen.has(sequence)) continue;
11677
11677
  seen.add(sequence);
11678
11678
  deduped.push(timelock);
@@ -11688,7 +11688,7 @@ async function resolveBoardingBootTapscript(contractRepository, serverPubKey, ba
11688
11688
  if (!newest?.params.pubKey) return baseline;
11689
11689
  try {
11690
11690
  const pubKey = base.hex.decode(newest.params.pubKey);
11691
- return new chunkFDQQOF3F_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
11691
+ return new chunkIHI3X2J4_cjs.DefaultVtxo.Script({ ...baseline.options, pubKey });
11692
11692
  } catch (e) {
11693
11693
  console.warn("Skipping malformed boarding contract at boot", newest.script, e);
11694
11694
  return baseline;
@@ -11707,21 +11707,21 @@ function filterSnapshotVtxos(snapshot, filter, pendingSpendOutpoints) {
11707
11707
  if (vtxo.isUnrolled) {
11708
11708
  return !!f.withUnrolled;
11709
11709
  }
11710
- if (chunk7NK6XFC3_cjs.isVtxoSpent(vtxo)) {
11710
+ if (chunkUV6VUA43_cjs.isVtxoSpent(vtxo)) {
11711
11711
  return false;
11712
11712
  }
11713
- if (!f.withRecoverable && chunk7NK6XFC3_cjs.canRecoverOnchain(vtxo, now)) {
11713
+ if (!f.withRecoverable && chunkUV6VUA43_cjs.canRecoverOnchain(vtxo, now)) {
11714
11714
  return false;
11715
11715
  }
11716
11716
  return true;
11717
11717
  });
11718
11718
  }
11719
11719
  async function refreshSweptStateOfExpiredInputs(wallet, inputs) {
11720
- const candidates = inputs.filter(chunk7NK6XFC3_cjs.isVirtualCoin).map(chunk7NK6XFC3_cjs.normalizeVtxo).filter((v) => !v.isSwept);
11720
+ const candidates = inputs.filter(chunkUV6VUA43_cjs.isVirtualCoin).map(chunkUV6VUA43_cjs.normalizeVtxo).filter((v) => !v.isSwept);
11721
11721
  if (candidates.length === 0) return inputs;
11722
- const now = candidates.some((v) => v.expiresAtHeight !== void 0) ? await chunk7NK6XFC3_cjs.resolveTimeHeight(wallet.onchainProvider) : { timestamp: /* @__PURE__ */ new Date() };
11722
+ const now = candidates.some((v) => v.expiresAtHeight !== void 0) ? await chunkUV6VUA43_cjs.resolveTimeHeight(wallet.onchainProvider) : { timestamp: /* @__PURE__ */ new Date() };
11723
11723
  const suspects = candidates.filter(
11724
- (v) => chunk7NK6XFC3_cjs.isPastExpiry(v, now) || v.expiresAtHeight !== void 0 && now.height === void 0
11724
+ (v) => chunkUV6VUA43_cjs.isPastExpiry(v, now) || v.expiresAtHeight !== void 0 && now.height === void 0
11725
11725
  );
11726
11726
  if (suspects.length === 0) return inputs;
11727
11727
  let sweptNow;
@@ -11735,12 +11735,12 @@ async function refreshSweptStateOfExpiredInputs(wallet, inputs) {
11735
11735
  );
11736
11736
  } catch (e) {
11737
11737
  const message = "could not confirm the swept state of expired settlement inputs; retry the settlement";
11738
- throw chunk7NK6XFC3_cjs.isRetryableProviderError(e) ? new chunk7NK6XFC3_cjs.ProviderUnavailableError(message, { cause: e }) : new Error(message, { cause: e });
11738
+ throw chunkUV6VUA43_cjs.isRetryableProviderError(e) ? new chunkUV6VUA43_cjs.ProviderUnavailableError(message, { cause: e }) : new Error(message, { cause: e });
11739
11739
  }
11740
11740
  if (sweptNow.size === 0) return inputs;
11741
11741
  return inputs.map((input) => {
11742
- if (!chunk7NK6XFC3_cjs.isVirtualCoin(input) || !sweptNow.has(`${input.txid}:${input.vout}`)) return input;
11743
- return { ...chunk7NK6XFC3_cjs.normalizeVtxo(input), isSwept: true };
11742
+ if (!chunkUV6VUA43_cjs.isVirtualCoin(input) || !sweptNow.has(`${input.txid}:${input.vout}`)) return input;
11743
+ return { ...chunkUV6VUA43_cjs.normalizeVtxo(input), isSwept: true };
11744
11744
  });
11745
11745
  }
11746
11746
  var PENDING_RECOVERY_REASON = "is past its operator signer's rotation cutoff \u2014 the operator will not co-sign it until it recovers";
@@ -12003,7 +12003,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12003
12003
  async getArkadeReader() {
12004
12004
  const indexer = this.indexerProvider;
12005
12005
  return {
12006
- getVtxos: (opts) => chunk7NK6XFC3_cjs.getNormalizedVtxos(indexer, opts),
12006
+ getVtxos: (opts) => chunkUV6VUA43_cjs.getNormalizedVtxos(indexer, opts),
12007
12007
  getVirtualTxs: (txids, opts) => indexer.getVirtualTxs(txids, opts)
12008
12008
  };
12009
12009
  }
@@ -12038,7 +12038,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12038
12038
  }
12039
12039
  /** Shared setup for ReadonlyWallet.create() and Wallet.create(). */
12040
12040
  static async setupWalletConfig(config, pubKey) {
12041
- const arkProvider = config.arkProvider || new chunk7NK6XFC3_cjs.RestArkProvider();
12041
+ const arkProvider = config.arkProvider || new chunkUV6VUA43_cjs.RestArkProvider();
12042
12042
  let indexerProvider = config.indexerProvider;
12043
12043
  if (!indexerProvider) {
12044
12044
  const derived = extractArkProviderUrl(arkProvider);
@@ -12047,7 +12047,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12047
12047
  "indexerProvider is required when arkProvider is provided without a discoverable serverUrl"
12048
12048
  );
12049
12049
  }
12050
- indexerProvider = new chunkBFQX2KS3_cjs.RestIndexerProvider(derived ?? chunk7NK6XFC3_cjs.DEFAULT_ARKADE_SERVER_URL);
12050
+ indexerProvider = new chunk2TOHNPEP_cjs.RestIndexerProvider(derived ?? chunkUV6VUA43_cjs.DEFAULT_ARKADE_SERVER_URL);
12051
12051
  }
12052
12052
  const walletRepository = config.storage?.walletRepository ?? new IndexedDBWalletRepository();
12053
12053
  const contractRepository = config.storage?.contractRepository ?? new IndexedDBContractRepository();
@@ -12056,7 +12056,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12056
12056
  source: serverInfoSource,
12057
12057
  lastOnlineAt: serverInfoLastOnlineAt
12058
12058
  } = await resolveArkInfo(arkProvider, walletRepository);
12059
- const network = chunk7NK6XFC3_cjs.networkFromArkadeInfo(info);
12059
+ const network = chunkUV6VUA43_cjs.networkFromArkadeInfo(info);
12060
12060
  if ("descriptor" in config.identity) {
12061
12061
  const descriptor = config.identity.descriptor;
12062
12062
  const identityIsMainnet = !descriptor.includes("tpub");
@@ -12092,18 +12092,18 @@ var ReadonlyWallet = class _ReadonlyWallet {
12092
12092
  }
12093
12093
  }
12094
12094
  const boardingTimelock = config.boardingTimelock ?? toTimelock(info.boardingExitDelay);
12095
- const serverPubKey = chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
12096
- const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : void 0;
12095
+ const serverPubKey = chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
12096
+ const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : void 0;
12097
12097
  const offchainOptions = {
12098
12098
  pubKey,
12099
12099
  serverPubKey,
12100
12100
  csvTimelock: exitTimelock
12101
12101
  };
12102
- const offchainTapscript = !delegatePubKey ? new chunkFDQQOF3F_cjs.DefaultVtxo.Script(offchainOptions) : new chunkFDQQOF3F_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
12103
- const boardingTapscript = chunkFDQQOF3F_cjs.BoardingContractHandler.createScript({
12102
+ const offchainTapscript = !delegatePubKey ? new chunkIHI3X2J4_cjs.DefaultVtxo.Script(offchainOptions) : new chunkIHI3X2J4_cjs.DelegateVtxo.Script({ ...offchainOptions, delegatePubKey });
12103
+ const boardingTapscript = chunkIHI3X2J4_cjs.BoardingContractHandler.createScript({
12104
12104
  pubKey: base.hex.encode(pubKey),
12105
12105
  serverPubKey: base.hex.encode(serverPubKey),
12106
- csvTimelock: chunk7NK6XFC3_cjs.timelockToSequence(boardingTimelock).toString()
12106
+ csvTimelock: chunkUV6VUA43_cjs.timelockToSequence(boardingTimelock).toString()
12107
12107
  });
12108
12108
  return {
12109
12109
  arkProvider,
@@ -12241,7 +12241,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12241
12241
  if (!filter?.withUnrolled) {
12242
12242
  logExcludedVtxos(
12243
12243
  "getSpendableVtxos",
12244
- snapshot.flatMap((contract) => contract.vtxos).filter((vtxo) => vtxo.isUnrolled && !chunk7NK6XFC3_cjs.isVtxoSpent(vtxo)),
12244
+ snapshot.flatMap((contract) => contract.vtxos).filter((vtxo) => vtxo.isUnrolled && !chunkUV6VUA43_cjs.isVtxoSpent(vtxo)),
12245
12245
  [() => UNROLLED_REASON]
12246
12246
  );
12247
12247
  }
@@ -12379,7 +12379,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12379
12379
  this.getBoardingTxs()
12380
12380
  ]);
12381
12381
  const allVtxos = snapshot.flatMap((_) => _.vtxos);
12382
- const resolveTxCreatedAt = (txids) => chunk7NK6XFC3_cjs.fetchVtxoCreatedAtByTxid(this.indexerProvider, txids);
12382
+ const resolveTxCreatedAt = (txids) => chunkUV6VUA43_cjs.fetchVtxoCreatedAtByTxid(this.indexerProvider, txids);
12383
12383
  return buildTransactionHistory(
12384
12384
  allVtxos,
12385
12385
  boardingTxs,
@@ -12514,9 +12514,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
12514
12514
  async getBoardingTapscripts(allowedSigners) {
12515
12515
  const byScript = /* @__PURE__ */ new Map();
12516
12516
  const add = (s) => byScript.set(base.hex.encode(s.pkScript), s);
12517
- const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunkFDQQOF3F_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
12517
+ const boardingCsv = this.boardingTapscript.options.csvTimelock ?? chunkIHI3X2J4_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
12518
12518
  add(
12519
- new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
12519
+ new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
12520
12520
  pubKey: await this.identity.xOnlyPublicKey(),
12521
12521
  serverPubKey: this.boardingTapscript.options.serverPubKey,
12522
12522
  csvTimelock: boardingCsv
@@ -12531,7 +12531,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12531
12531
  for (const c of boardingContracts) {
12532
12532
  if (!allowed.has(toXOnlySignerHex(c.params.serverPubKey))) continue;
12533
12533
  try {
12534
- add(chunkFDQQOF3F_cjs.BoardingContractHandler.createScript(c.params));
12534
+ add(chunkIHI3X2J4_cjs.BoardingContractHandler.createScript(c.params));
12535
12535
  } catch (e) {
12536
12536
  console.warn("Skipping malformed boarding contract", c.script, e);
12537
12537
  }
@@ -12560,7 +12560,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12560
12560
  // Per-row CSV delay decoded from THIS tapscript's exit leaf —
12561
12561
  // not the wallet's current boarding timelock, which a signer
12562
12562
  // rotation may have changed.
12563
- csvTimelock: chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
12563
+ csvTimelock: chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(base.hex.decode(tapscript.exitScript)).params.timelock,
12564
12564
  coins: utxos
12565
12565
  };
12566
12566
  })
@@ -12685,7 +12685,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12685
12685
  /** Fetch Arkade transaction ids that are still pending final settlement. */
12686
12686
  async fetchPendingTxs() {
12687
12687
  const scripts = await this.getWalletScripts();
12688
- const vtxos = await chunk7NK6XFC3_cjs.getAllNormalizedVtxos(this.indexerProvider, scripts);
12688
+ const vtxos = await chunkUV6VUA43_cjs.getAllNormalizedVtxos(this.indexerProvider, scripts);
12689
12689
  return vtxos.filter(
12690
12690
  (vtxo) => (vtxo.isSpent || vtxo.isPreconfirmed && !vtxo.isSwept) && vtxo.arkTxId !== void 0
12691
12691
  ).map((_) => _.arkTxId);
@@ -12716,7 +12716,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12716
12716
  });
12717
12717
  for (const contract of contracts) {
12718
12718
  if (map.has(contract.script)) continue;
12719
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
12719
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
12720
12720
  if (handler) {
12721
12721
  const script = handler.createScript(contract.params);
12722
12722
  map.set(contract.script, script);
@@ -12821,7 +12821,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12821
12821
  }
12822
12822
  });
12823
12823
  const baselinePubkey = await this.identity.xOnlyPublicKey();
12824
- const delegatePubKey = this.offchainTapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
12824
+ const delegatePubKey = this.offchainTapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
12825
12825
  const baselineSigners = [
12826
12826
  this.offchainTapscript.options.serverPubKey,
12827
12827
  ...[...this._deprecatedSigners.keys()].map((h) => base.hex.decode(h))
@@ -12829,8 +12829,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
12829
12829
  const seenBaselineScripts = /* @__PURE__ */ new Set();
12830
12830
  for (const serverPubKey of baselineSigners) {
12831
12831
  for (const csvTimelock2 of this.walletContractTimelocks) {
12832
- const csvTimelockStr = chunk7NK6XFC3_cjs.timelockToSequence(csvTimelock2).toString();
12833
- const defaultScript = new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
12832
+ const csvTimelockStr = chunkUV6VUA43_cjs.timelockToSequence(csvTimelock2).toString();
12833
+ const defaultScript = new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
12834
12834
  pubKey: baselinePubkey,
12835
12835
  serverPubKey,
12836
12836
  csvTimelock: csvTimelock2
@@ -12851,7 +12851,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12851
12851
  });
12852
12852
  }
12853
12853
  if (delegatePubKey) {
12854
- const delegateScript = new chunkFDQQOF3F_cjs.DelegateVtxo.Script({
12854
+ const delegateScript = new chunkIHI3X2J4_cjs.DelegateVtxo.Script({
12855
12855
  pubKey: baselinePubkey,
12856
12856
  serverPubKey,
12857
12857
  delegatePubKey,
@@ -12875,9 +12875,9 @@ var ReadonlyWallet = class _ReadonlyWallet {
12875
12875
  }
12876
12876
  }
12877
12877
  }
12878
- const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunkFDQQOF3F_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
12878
+ const boardingCsvTimelock = this.boardingTapscript.options.csvTimelock ?? chunkIHI3X2J4_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
12879
12879
  for (const serverPubKey of baselineSigners) {
12880
- const baselineBoarding = new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
12880
+ const baselineBoarding = new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
12881
12881
  pubKey: baselinePubkey,
12882
12882
  serverPubKey,
12883
12883
  csvTimelock: boardingCsvTimelock
@@ -12890,7 +12890,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
12890
12890
  params: {
12891
12891
  pubKey: base.hex.encode(baselineBoarding.options.pubKey),
12892
12892
  serverPubKey: base.hex.encode(serverPubKey),
12893
- csvTimelock: chunk7NK6XFC3_cjs.timelockToSequence(boardingCsvTimelock).toString()
12893
+ csvTimelock: chunkUV6VUA43_cjs.timelockToSequence(boardingCsvTimelock).toString()
12894
12894
  },
12895
12895
  script: boardingScriptHex,
12896
12896
  address: baselineBoarding.address(this.network.hrp, serverPubKey).encode(),
@@ -13038,7 +13038,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13038
13038
  serverPubKey: this.offchainTapscript.options.serverPubKey,
13039
13039
  deprecatedSignerPubKeys: [...this._deprecatedSigners.keys()].map((h) => base.hex.decode(h)),
13040
13040
  csvTimelocks: this.walletContractTimelocks,
13041
- delegatePubKey: this.offchainTapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0
13041
+ delegatePubKey: this.offchainTapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0
13042
13042
  };
13043
13043
  }
13044
13044
  _signerRouter;
@@ -13198,7 +13198,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13198
13198
  const [row] = await manager.getContracts({ script: base.hex.encode(display.pkScript) });
13199
13199
  const persisted = row?.metadata?.signingDescriptor;
13200
13200
  if (typeof persisted === "string") return persisted;
13201
- return chunkFDQQOF3F_cjs.identityDescriptor(this.identity);
13201
+ return chunkIHI3X2J4_cjs.identityDescriptor(this.identity);
13202
13202
  }
13203
13203
  /**
13204
13204
  * Build, persist and shape one address of `type` owned by `descriptor`. The descriptor is the
@@ -13208,7 +13208,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13208
13208
  async mintAddress(manager, type, descriptor, tagSource, allocated) {
13209
13209
  if (type === "boarding") {
13210
13210
  const built2 = this.buildBoardingContract(
13211
- chunkFDQQOF3F_cjs.deriveDescriptorLeafPubKey(descriptor),
13211
+ chunkIHI3X2J4_cjs.deriveDescriptorLeafPubKey(descriptor),
13212
13212
  descriptor,
13213
13213
  tagSource
13214
13214
  );
@@ -13245,11 +13245,11 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13245
13245
  * (offchain analogue: {@link buildReceiveContract}).
13246
13246
  */
13247
13247
  buildBoardingContract(pubKey, descriptor, tagSource) {
13248
- const tapscript = new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
13248
+ const tapscript = new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
13249
13249
  ...this._boardingTapscript.options,
13250
13250
  pubKey
13251
13251
  });
13252
- const csvTimelock2 = tapscript.options.csvTimelock ?? chunkFDQQOF3F_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13252
+ const csvTimelock2 = tapscript.options.csvTimelock ?? chunkIHI3X2J4_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13253
13253
  return {
13254
13254
  tapscript,
13255
13255
  params: {
@@ -13257,13 +13257,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13257
13257
  params: {
13258
13258
  pubKey: base.hex.encode(pubKey),
13259
13259
  serverPubKey: base.hex.encode(tapscript.options.serverPubKey),
13260
- csvTimelock: chunk7NK6XFC3_cjs.timelockToSequence(csvTimelock2).toString()
13260
+ csvTimelock: chunkUV6VUA43_cjs.timelockToSequence(csvTimelock2).toString()
13261
13261
  },
13262
13262
  script: base.hex.encode(tapscript.pkScript),
13263
13263
  address: tapscript.address(this.network.hrp, this.arkServerPublicKey).encode(),
13264
13264
  state: "active",
13265
13265
  metadata: {
13266
- ...tagSource && { source: chunkFDQQOF3F_cjs.WALLET_RECEIVE_SOURCE },
13266
+ ...tagSource && { source: chunkIHI3X2J4_cjs.WALLET_RECEIVE_SOURCE },
13267
13267
  signingDescriptor: descriptor
13268
13268
  }
13269
13269
  }
@@ -13287,7 +13287,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13287
13287
  if (this._descriptorProvider instanceof HDDescriptorProvider) {
13288
13288
  return (await this.getContractManager()).getNextSigningDescriptor();
13289
13289
  }
13290
- return chunkFDQQOF3F_cjs.identityDescriptor(this.identity);
13290
+ return chunkIHI3X2J4_cjs.identityDescriptor(this.identity);
13291
13291
  }
13292
13292
  /**
13293
13293
  * @see HDAllocationCapable.advanceSigningDescriptorWatermark
@@ -13362,7 +13362,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13362
13362
  * the stable public API.
13363
13363
  */
13364
13364
  async rotateServerSigner(newServerPubKey, checkpointTapscript) {
13365
- const xonly = chunkFDQQOF3F_cjs.toXOnly(newServerPubKey, "ark signer key");
13365
+ const xonly = chunkIHI3X2J4_cjs.toXOnly(newServerPubKey, "ark signer key");
13366
13366
  const newServerUnrollScript = assertValidServerUnrollScript(
13367
13367
  checkpointTapscript,
13368
13368
  resolveCheckpointExitDelayPolicy(this.network, this.checkpointExitDelayPolicy)
@@ -13391,21 +13391,21 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13391
13391
  const [currentBoardingRow] = await manager.getContracts({
13392
13392
  script: currentBoardingScript
13393
13393
  });
13394
- const newOffchain = this.offchainTapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? new chunkFDQQOF3F_cjs.DelegateVtxo.Script({
13394
+ const newOffchain = this.offchainTapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? new chunkIHI3X2J4_cjs.DelegateVtxo.Script({
13395
13395
  ...this.offchainTapscript.options,
13396
13396
  serverPubKey: xonly
13397
- }) : new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
13397
+ }) : new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
13398
13398
  ...this.offchainTapscript.options,
13399
13399
  serverPubKey: xonly
13400
13400
  });
13401
- const newBoarding = new chunkFDQQOF3F_cjs.DefaultVtxo.Script({
13401
+ const newBoarding = new chunkIHI3X2J4_cjs.DefaultVtxo.Script({
13402
13402
  ...this._boardingTapscript.options,
13403
13403
  serverPubKey: xonly
13404
13404
  });
13405
- const offchainCsv = chunk7NK6XFC3_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
13405
+ const offchainCsv = chunkUV6VUA43_cjs.timelockToSequence(newOffchain.options.csvTimelock).toString();
13406
13406
  const newOffchainScript = base.hex.encode(newOffchain.pkScript);
13407
13407
  const newOffchainAddress = newOffchain.address(this.network.hrp, xonly).encode();
13408
- if (newOffchain instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script) {
13408
+ if (newOffchain instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script) {
13409
13409
  await manager.createContract({
13410
13410
  type: "delegate",
13411
13411
  params: {
@@ -13433,13 +13433,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13433
13433
  metadata: currentOffchainRow?.metadata
13434
13434
  });
13435
13435
  }
13436
- const boardingCsv = newBoarding.options.csvTimelock ?? chunkFDQQOF3F_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13436
+ const boardingCsv = newBoarding.options.csvTimelock ?? chunkIHI3X2J4_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK;
13437
13437
  await manager.createContract({
13438
13438
  type: "boarding",
13439
13439
  params: {
13440
13440
  pubKey: base.hex.encode(newBoarding.options.pubKey),
13441
13441
  serverPubKey: base.hex.encode(xonly),
13442
- csvTimelock: chunk7NK6XFC3_cjs.timelockToSequence(boardingCsv).toString()
13442
+ csvTimelock: chunkUV6VUA43_cjs.timelockToSequence(boardingCsv).toString()
13443
13443
  },
13444
13444
  script: base.hex.encode(newBoarding.pkScript),
13445
13445
  address: newBoarding.address(this.network.hrp, xonly).encode(),
@@ -13465,14 +13465,14 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13465
13465
  _restoreInFlight;
13466
13466
  _addPendingSpends(inputs) {
13467
13467
  for (const input of inputs) {
13468
- if (chunk7NK6XFC3_cjs.isVirtualCoin(input)) {
13468
+ if (chunkUV6VUA43_cjs.isVirtualCoin(input)) {
13469
13469
  this._pendingSpendOutpoints.add(`${input.txid}:${input.vout}`);
13470
13470
  }
13471
13471
  }
13472
13472
  }
13473
13473
  _removePendingSpends(inputs) {
13474
13474
  for (const input of inputs) {
13475
- if (chunk7NK6XFC3_cjs.isVirtualCoin(input)) {
13475
+ if (chunkUV6VUA43_cjs.isVirtualCoin(input)) {
13476
13476
  this._pendingSpendOutpoints.delete(`${input.txid}:${input.vout}`);
13477
13477
  }
13478
13478
  }
@@ -13523,13 +13523,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13523
13523
  const manager = await this.getContractManager();
13524
13524
  const provider = this._descriptorProvider;
13525
13525
  const hd = provider instanceof HDDescriptorProvider;
13526
- const staticDescriptor = hd ? void 0 : await chunkFDQQOF3F_cjs.identityDescriptor(this.identity);
13526
+ const staticDescriptor = hd ? void 0 : await chunkIHI3X2J4_cjs.identityDescriptor(this.identity);
13527
13527
  const materialize = (index) => hd ? provider.materializeDescriptorAt(index) : staticDescriptor;
13528
- const delegatePubKey = this.offchainTapscript instanceof chunkFDQQOF3F_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
13528
+ const delegatePubKey = this.offchainTapscript instanceof chunkIHI3X2J4_cjs.DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
13529
13529
  const arkInfo = await this.arkProvider.getInfo();
13530
- const currentSignerPubKey = chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(arkInfo.signerPubkey), "ark signer key");
13530
+ const currentSignerPubKey = chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(arkInfo.signerPubkey), "ark signer key");
13531
13531
  const deprecatedSignerPubKeys = arkInfo.deprecatedSigners.map(
13532
- (s) => chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(s.pubkey), "deprecated signer key")
13532
+ (s) => chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(s.pubkey), "deprecated signer key")
13533
13533
  );
13534
13534
  const deps = {
13535
13535
  indexerProvider: this.indexerProvider,
@@ -13541,7 +13541,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13541
13541
  deprecatedSignerPubKeys,
13542
13542
  csvTimelocks: this.walletContractTimelocks,
13543
13543
  // Boarding-exit CSV, distinct from the unilateral-exit matrix.
13544
- boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunkFDQQOF3F_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
13544
+ boardingTimelock: this.boardingTapscript.options.csvTimelock ?? chunkIHI3X2J4_cjs.DefaultVtxo.Script.DEFAULT_TIMELOCK,
13545
13545
  delegatePubKey
13546
13546
  };
13547
13547
  const result = await manager.scanContracts({
@@ -13664,7 +13664,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13664
13664
  throw new Error("Invalid configured public key");
13665
13665
  }
13666
13666
  const setup = await ReadonlyWallet.setupWalletConfig(config, pubkey);
13667
- const forfeitPubkey = chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(setup.info.forfeitPubkey), "forfeit key");
13667
+ const forfeitPubkey = chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(setup.info.forfeitPubkey), "forfeit key");
13668
13668
  const forfeitAddress = btcSigner.Address(setup.network).decode(setup.info.forfeitAddress);
13669
13669
  const forfeitOutputScript = btcSigner.OutScript.encode(forfeitAddress);
13670
13670
  const checkpointExitDelayOverrides = {
@@ -13808,13 +13808,13 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13808
13808
  void this.logUngatedInputs("settle({ inputs })", params.inputs);
13809
13809
  }
13810
13810
  const offchainAddress = await this.getAddress();
13811
- const offchainPkScript = chunk7NK6XFC3_cjs.ArkAddress.decode(offchainAddress).pkScript;
13811
+ const offchainPkScript = chunkUV6VUA43_cjs.ArkAddress.decode(offchainAddress).pkScript;
13812
13812
  const offchainOutputScript = base.hex.encode(offchainPkScript);
13813
13813
  if (!params) {
13814
13814
  const { fees, vtxoMaxAmount } = await this.arkProvider.getInfo();
13815
13815
  const estimator = new Estimator(fees.intentFee);
13816
13816
  let amount = 0;
13817
- const exitScript = chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(
13817
+ const exitScript = chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(
13818
13818
  base.hex.decode(this.boardingTapscript.exitScript)
13819
13819
  );
13820
13820
  const boardingTimelock = exitScript.params.timelock;
@@ -13846,7 +13846,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13846
13846
  if (filteredVtxos.length >= MAX_VTXOS_PER_SETTLEMENT) {
13847
13847
  break;
13848
13848
  }
13849
- const inputFee = estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(vtxo));
13849
+ const inputFee = estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(vtxo));
13850
13850
  if (inputFee.satoshis >= vtxo.value) {
13851
13851
  continue;
13852
13852
  }
@@ -13897,7 +13897,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13897
13897
  let script;
13898
13898
  let arkAddress;
13899
13899
  try {
13900
- arkAddress = chunk7NK6XFC3_cjs.ArkAddress.decode(output.address);
13900
+ arkAddress = chunkUV6VUA43_cjs.ArkAddress.decode(output.address);
13901
13901
  } catch {
13902
13902
  arkAddress = void 0;
13903
13903
  }
@@ -13987,7 +13987,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
13987
13987
  const abortController = new AbortController();
13988
13988
  let stream;
13989
13989
  let committedTxid;
13990
- const settleInputVtxos = params.inputs.filter(chunk7NK6XFC3_cjs.isVirtualCoin);
13990
+ const settleInputVtxos = params.inputs.filter(chunkUV6VUA43_cjs.isVirtualCoin);
13991
13991
  const contractManager = await this.getContractManager();
13992
13992
  await contractManager.assertAnnotatable(settleInputVtxos);
13993
13993
  await contractManager.assertSpendableNow?.(
@@ -14079,7 +14079,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14079
14079
  async maybeRotateBoardingAfterBoard(inputs) {
14080
14080
  if (!this._descriptorProvider) return;
14081
14081
  const consumedBoarding = inputs.some(
14082
- (input) => typeof input !== "string" && !chunk7NK6XFC3_cjs.isVirtualCoin(input)
14082
+ (input) => typeof input !== "string" && !chunkUV6VUA43_cjs.isVirtualCoin(input)
14083
14083
  );
14084
14084
  if (!consumedBoarding) return;
14085
14085
  try {
@@ -14103,7 +14103,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14103
14103
  let connectorIndex = 0;
14104
14104
  const connectorsLeaves = connectorsGraph?.leaves() || [];
14105
14105
  for (const input of inputs) {
14106
- if (!chunk7NK6XFC3_cjs.isVirtualCoin(input)) {
14106
+ if (!chunkUV6VUA43_cjs.isVirtualCoin(input)) {
14107
14107
  let matched = false;
14108
14108
  for (let i = 0; i < settlementPsbt.inputsLength; i++) {
14109
14109
  const settlementInput = settlementPsbt.getInput(i);
@@ -14141,7 +14141,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14141
14141
  }
14142
14142
  continue;
14143
14143
  }
14144
- if (!chunk7NK6XFC3_cjs.requiresForfeit(input) || isSubdust({ value: input.value }, this.dustAmount)) {
14144
+ if (!chunkUV6VUA43_cjs.requiresForfeit(input) || isSubdust({ value: input.value }, this.dustAmount)) {
14145
14145
  continue;
14146
14146
  }
14147
14147
  if (connectorsLeaves.length === 0) {
@@ -14169,7 +14169,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14169
14169
  index: input.vout,
14170
14170
  witnessUtxo: {
14171
14171
  amount: BigInt(input.value),
14172
- script: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript
14172
+ script: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript
14173
14173
  },
14174
14174
  sighashType: btcSigner.SigHash.DEFAULT,
14175
14175
  tapLeafScript: [input.forfeitTapLeafScript]
@@ -14188,7 +14188,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14188
14188
  forfeitTx = await this._signerRouter.sign(forfeitTx, [
14189
14189
  {
14190
14190
  index: 0,
14191
- lookupScript: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript
14191
+ lookupScript: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript
14192
14192
  }
14193
14193
  ]);
14194
14194
  signedForfeits.push(base.base64.encode(forfeitTx.toPSBT()));
@@ -14246,7 +14246,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14246
14246
  resolveBatchExpiryPolicy(this.network, this.batchExpiryPolicy)
14247
14247
  );
14248
14248
  await this.arkProvider.confirmRegistration(intentId);
14249
- const sweepTapscript = chunk7NK6XFC3_cjs.CSVMultisigTapscript.encode({
14249
+ const sweepTapscript = chunkUV6VUA43_cjs.CSVMultisigTapscript.encode({
14250
14250
  timelock,
14251
14251
  pubkeys: [this.forfeitPubkey]
14252
14252
  }).script;
@@ -14261,10 +14261,10 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14261
14261
  throw new Error("Sweep tap tree root not set");
14262
14262
  }
14263
14263
  const xOnlyPublicKeys = event.cosignersPublicKeys.map(
14264
- (k) => base.hex.encode(chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
14264
+ (k) => base.hex.encode(chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
14265
14265
  );
14266
14266
  const signerPublicKey = await session.getPublicKey();
14267
- const xonlySignerPublicKey = chunkFDQQOF3F_cjs.toXOnly(signerPublicKey, "signer key");
14267
+ const xonlySignerPublicKey = chunkIHI3X2J4_cjs.toXOnly(signerPublicKey, "signer key");
14268
14268
  if (!xOnlyPublicKeys.includes(base.hex.encode(xonlySignerPublicKey))) {
14269
14269
  return { skip: true };
14270
14270
  }
@@ -14350,9 +14350,9 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14350
14350
  ...existing ?? {},
14351
14351
  intentTxId,
14352
14352
  registerProof: intent.proof,
14353
- registerProofMessage: chunk7NK6XFC3_cjs.Intent.encodeMessage(intent.message),
14353
+ registerProofMessage: chunkUV6VUA43_cjs.Intent.encodeMessage(intent.message),
14354
14354
  deleteProof: deleteIntent.proof,
14355
- deleteProofMessage: chunk7NK6XFC3_cjs.Intent.encodeMessage(deleteIntent.message),
14355
+ deleteProofMessage: chunkUV6VUA43_cjs.Intent.encodeMessage(deleteIntent.message),
14356
14356
  intentVtxos: inputs.map((i) => ({
14357
14357
  txid: i.txid,
14358
14358
  vout: i.vout
@@ -14385,7 +14385,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14385
14385
  try {
14386
14386
  return await this.arkProvider.registerIntent(intent);
14387
14387
  } catch (error) {
14388
- if (error instanceof chunk7NK6XFC3_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
14388
+ if (error instanceof chunkUV6VUA43_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
14389
14389
  const deleteIntent = await this.makeDeleteIntentSignature(inputs);
14390
14390
  await this.arkProvider.deleteIntent(deleteIntent);
14391
14391
  return this.arkProvider.registerIntent(intent);
@@ -14401,7 +14401,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14401
14401
  expire_at: 0,
14402
14402
  cosigners_public_keys: cosignerPubKeys
14403
14403
  };
14404
- const proof = chunk7NK6XFC3_cjs.Intent.create(message, coins, outputs);
14404
+ const proof = chunkUV6VUA43_cjs.Intent.create(message, coins, outputs);
14405
14405
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
14406
14406
  return {
14407
14407
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -14413,7 +14413,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14413
14413
  type: "delete",
14414
14414
  expire_at: 0
14415
14415
  };
14416
- const proof = chunk7NK6XFC3_cjs.Intent.create(message, coins, []);
14416
+ const proof = chunkUV6VUA43_cjs.Intent.create(message, coins, []);
14417
14417
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
14418
14418
  return {
14419
14419
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -14425,7 +14425,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14425
14425
  type: "get-pending-tx",
14426
14426
  expire_at: 0
14427
14427
  };
14428
- const proof = chunk7NK6XFC3_cjs.Intent.create(message, coins, []);
14428
+ const proof = chunkUV6VUA43_cjs.Intent.create(message, coins, []);
14429
14429
  const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
14430
14430
  return {
14431
14431
  proof: base.base64.encode(signedProof.toPSBT()),
@@ -14446,7 +14446,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14446
14446
  if (!vtxos || vtxos.length === 0) {
14447
14447
  const scriptMap = await this.getScriptMap();
14448
14448
  const allExtended = [];
14449
- const fetchedVtxos = await chunk7NK6XFC3_cjs.getAllNormalizedVtxos(this.indexerProvider, [
14449
+ const fetchedVtxos = await chunkUV6VUA43_cjs.getAllNormalizedVtxos(this.indexerProvider, [
14450
14450
  ...scriptMap.keys()
14451
14451
  ]);
14452
14452
  for (const vtxo of fetchedVtxos) {
@@ -14490,7 +14490,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14490
14490
  try {
14491
14491
  const checkpointTxs = pendingTx.signedCheckpointTxs.map((c) => {
14492
14492
  const tx = btcSigner.Transaction.fromPSBT(base.base64.decode(c));
14493
- chunk7NK6XFC3_cjs.assertAllowedSighashTypes(tx);
14493
+ chunkUV6VUA43_cjs.assertAllowedSighashTypes(tx);
14494
14494
  return tx;
14495
14495
  });
14496
14496
  assertCheckpointsMatchInputs(
@@ -14559,11 +14559,11 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14559
14559
  * and one per deprecated signer — else a pre-rotation tx would stay pending forever.
14560
14560
  */
14561
14561
  checkpointUnrollCandidates(info) {
14562
- const current = chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
14562
+ const current = chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
14563
14563
  const candidates = [this._serverUnrollScript, current];
14564
14564
  for (const deprecated of signerSetFromInfo(info).deprecated.keys()) {
14565
14565
  candidates.push(
14566
- chunk7NK6XFC3_cjs.CSVMultisigTapscript.encode({
14566
+ chunkUV6VUA43_cjs.CSVMultisigTapscript.encode({
14567
14567
  ...current.params,
14568
14568
  pubkeys: [base.hex.decode(deprecated)]
14569
14569
  })
@@ -14639,7 +14639,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14639
14639
  if (vtxos.length === 0) {
14640
14640
  throw new Error("No VTXOs found for this arkadeCash");
14641
14641
  }
14642
- const myPkScript = chunk7NK6XFC3_cjs.ArkAddress.decode(await this.getAddress()).pkScript;
14642
+ const myPkScript = chunkUV6VUA43_cjs.ArkAddress.decode(await this.getAddress()).pkScript;
14643
14643
  let { spendable, unclaimed } = this.classifyCashVtxos(vtxos);
14644
14644
  let swept = 0;
14645
14645
  const drainable = vtxos.filter(
@@ -14715,7 +14715,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14715
14715
  const spendable = [];
14716
14716
  const unclaimed = [];
14717
14717
  for (const vtxo of vtxos) {
14718
- if (chunk7NK6XFC3_cjs.isVtxoSpent(vtxo)) {
14718
+ if (chunkUV6VUA43_cjs.isVtxoSpent(vtxo)) {
14719
14719
  unclaimed.push(cashReport(vtxo, "already-spent"));
14720
14720
  } else if (vtxo.isUnrolled) {
14721
14721
  unclaimed.push(cashReport(vtxo, "exited"));
@@ -14737,7 +14737,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14737
14737
  const all = [];
14738
14738
  const seen = /* @__PURE__ */ new Set();
14739
14739
  for (let pageIndex = 0; ; pageIndex++) {
14740
- const { vtxos, page } = await chunk7NK6XFC3_cjs.getNormalizedVtxos(this.indexerProvider, {
14740
+ const { vtxos, page } = await chunkUV6VUA43_cjs.getNormalizedVtxos(this.indexerProvider, {
14741
14741
  scripts,
14742
14742
  pageIndex,
14743
14743
  pageSize
@@ -14775,7 +14775,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14775
14775
  for (let i = 0; i < inputs.length; i += MAX_INPUTS_PER_INTENT) {
14776
14776
  const batch = inputs.slice(i, i + MAX_INPUTS_PER_INTENT);
14777
14777
  const message = { type: "get-pending-tx", expire_at: 0 };
14778
- const proof = chunk7NK6XFC3_cjs.Intent.create(message, batch, []);
14778
+ const proof = chunkUV6VUA43_cjs.Intent.create(message, batch, []);
14779
14779
  const signedProof = await identity.sign(
14780
14780
  proof,
14781
14781
  Array.from({ length: batch.length + 1 }, (_, j) => j)
@@ -14797,7 +14797,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
14797
14797
  try {
14798
14798
  const checkpointTxs = pendingTx.signedCheckpointTxs.map((checkpoint) => {
14799
14799
  const tx = btcSigner.Transaction.fromPSBT(base.base64.decode(checkpoint));
14800
- chunk7NK6XFC3_cjs.assertAllowedSighashTypes(tx);
14800
+ chunkUV6VUA43_cjs.assertAllowedSighashTypes(tx);
14801
14801
  return tx;
14802
14802
  });
14803
14803
  assertCheckpointsMatchInputs(
@@ -15008,7 +15008,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15008
15008
  script: recipient.script,
15009
15009
  amount: BigInt(recipient.amount),
15010
15010
  // Already checked against the recipient address in `validateRecipients`.
15011
- ...recipient.tapTree ? { tapTree: chunk7NK6XFC3_cjs.TapTreeCoder.decode(recipient.tapTree) } : {}
15011
+ ...recipient.tapTree ? { tapTree: chunkUV6VUA43_cjs.TapTreeCoder.decode(recipient.tapTree) } : {}
15012
15012
  }));
15013
15013
  const totalBtcOutput = outputs.reduce((sum, o) => sum + Number(o.amount), 0);
15014
15014
  let changeAmount = totalBtcSelected - totalBtcOutput;
@@ -15179,10 +15179,10 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15179
15179
  const serverPubKey = this.arkServerPublicKey;
15180
15180
  const serverUnrollScript = this.serverUnrollScript;
15181
15181
  const arkAddress = offchainTapscript.address(this.network.hrp, serverPubKey);
15182
- const normalizedInputs = inputs.map(chunk7NK6XFC3_cjs.normalizeVtxo);
15183
- const at = now ?? await chunk7NK6XFC3_cjs.resolveTimeHeight(this.onchainProvider);
15182
+ const normalizedInputs = inputs.map(chunkUV6VUA43_cjs.normalizeVtxo);
15183
+ const at = now ?? await chunkUV6VUA43_cjs.resolveTimeHeight(this.onchainProvider);
15184
15184
  for (const input of normalizedInputs) {
15185
- if (!chunk7NK6XFC3_cjs.canSpendOffchain(input, at)) {
15185
+ if (!chunkUV6VUA43_cjs.canSpendOffchain(input, at)) {
15186
15186
  throw new Error(
15187
15187
  `sendSelectedVtxosToSelf: input ${input.txid}:${input.vout} is not cooperatively spendable`
15188
15188
  );
@@ -15252,7 +15252,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15252
15252
  );
15253
15253
  const arkTxJobs = inputs.map((input, index) => ({
15254
15254
  index,
15255
- lookupScript: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript
15255
+ lookupScript: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript
15256
15256
  }));
15257
15257
  const identity = this.identity;
15258
15258
  const signer = {
@@ -15447,12 +15447,12 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15447
15447
  const spentVtxos = [];
15448
15448
  const inputArkTxIds = /* @__PURE__ */ new Set();
15449
15449
  const boardingRemovalsByAddress = /* @__PURE__ */ new Map();
15450
- const vtxoInputs = inputs.filter(chunk7NK6XFC3_cjs.isVirtualCoin);
15450
+ const vtxoInputs = inputs.filter(chunkUV6VUA43_cjs.isVirtualCoin);
15451
15451
  const cm = await this.getContractManager();
15452
15452
  const annotatedVtxos = await cm.annotateVtxos(vtxoInputs);
15453
15453
  const annotatedByKey = new Map(annotatedVtxos.map((v) => [`${v.txid}:${v.vout}`, v]));
15454
15454
  for (const input of inputs) {
15455
- if (chunk7NK6XFC3_cjs.isVirtualCoin(input)) {
15455
+ if (chunkUV6VUA43_cjs.isVirtualCoin(input)) {
15456
15456
  const outpoint = `${input.txid}:${input.vout}`;
15457
15457
  const vtxo = annotatedByKey.get(outpoint);
15458
15458
  if (!vtxo) {
@@ -15469,7 +15469,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15469
15469
  } else {
15470
15470
  let sourceAddress;
15471
15471
  try {
15472
- sourceAddress = chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
15472
+ sourceAddress = chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).onchainAddress(
15473
15473
  this.network
15474
15474
  );
15475
15475
  } catch {
@@ -15527,7 +15527,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
15527
15527
  }
15528
15528
  };
15529
15529
  function selectVirtualCoins(coins, targetAmount) {
15530
- const sortedCoins = coins.map(chunk7NK6XFC3_cjs.normalizeVtxo).sort((a, b) => {
15530
+ const sortedCoins = coins.map(chunkUV6VUA43_cjs.normalizeVtxo).sort((a, b) => {
15531
15531
  const expiryA = a.expiresAt?.getTime() || Number.MAX_SAFE_INTEGER;
15532
15532
  const expiryB = b.expiresAt?.getTime() || Number.MAX_SAFE_INTEGER;
15533
15533
  if (expiryA !== expiryB) {
@@ -15898,14 +15898,14 @@ var MessageBus = class {
15898
15898
  this.initialized = true;
15899
15899
  }
15900
15900
  async buildServices(config) {
15901
- const arkProvider = new chunk7NK6XFC3_cjs.RestArkProvider(config.arkServer.url);
15901
+ const arkProvider = new chunkUV6VUA43_cjs.RestArkProvider(config.arkServer.url);
15902
15902
  const storage = {
15903
15903
  walletRepository: this.walletRepository,
15904
15904
  contractRepository: this.contractRepository,
15905
15905
  ...this.intentRepository && { intentRepository: this.intentRepository }
15906
15906
  };
15907
15907
  const delegateProvider = config.delegateUrl ? new RestDelegateProvider(config.delegateUrl) : void 0;
15908
- const indexerProvider = new chunkBFQX2KS3_cjs.RestIndexerProvider(config.arkServer.url);
15908
+ const indexerProvider = new chunk2TOHNPEP_cjs.RestIndexerProvider(config.arkServer.url);
15909
15909
  const serialized = normalizeSerializedIdentity(config.wallet);
15910
15910
  if (isSigningSerialized(serialized)) {
15911
15911
  const identity2 = hydrateIdentity(serialized);
@@ -16243,7 +16243,7 @@ var offboardNetworkNames = [
16243
16243
  function offboardDestinationScript(destinationAddress) {
16244
16244
  for (const networkName of offboardNetworkNames) {
16245
16245
  try {
16246
- const network = chunk7NK6XFC3_cjs.networks[networkName];
16246
+ const network = chunkUV6VUA43_cjs.networks[networkName];
16247
16247
  const addr = btcSigner.Address(network).decode(destinationAddress);
16248
16248
  return btcSigner.OutScript.encode(addr);
16249
16249
  } catch {
@@ -16279,7 +16279,7 @@ function filterOffboardInputs(vtxos, feeInfo, named) {
16279
16279
  const inputs = [];
16280
16280
  let subtotal = 0n;
16281
16281
  for (const vtxo of vtxos) {
16282
- const inputFee = estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(vtxo));
16282
+ const inputFee = estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(vtxo));
16283
16283
  if (inputFee.satoshis >= vtxo.value) {
16284
16284
  if (named) {
16285
16285
  throw new Error(
@@ -16376,7 +16376,7 @@ var Ramps = class {
16376
16376
  }
16377
16377
  amount = amount ?? totalAmount;
16378
16378
  const offchainAddress = await this.wallet.getAddress();
16379
- const offchainAddr = chunk7NK6XFC3_cjs.ArkAddress.decode(offchainAddress);
16379
+ const offchainAddr = chunkUV6VUA43_cjs.ArkAddress.decode(offchainAddress);
16380
16380
  const offchainScript = base.hex.encode(offchainAddr.pkScript);
16381
16381
  const outputFee = estimator.evalOffchainOutput({
16382
16382
  amount,
@@ -16500,7 +16500,7 @@ var Ramps = class {
16500
16500
  async fundChange(left, estimator) {
16501
16501
  if (left <= 0n) return { change: 0n };
16502
16502
  const changeAddress = await this.wallet.getAddress();
16503
- const changeScript = base.hex.encode(chunk7NK6XFC3_cjs.ArkAddress.decode(changeAddress).pkScript);
16503
+ const changeScript = base.hex.encode(chunkUV6VUA43_cjs.ArkAddress.decode(changeAddress).pkScript);
16504
16504
  const { change } = changeAfterOutputFee(
16505
16505
  left,
16506
16506
  (amount) => BigInt(estimator.evalOffchainOutput({ amount, script: changeScript }).satoshis)
@@ -17366,7 +17366,7 @@ var WalletMessageHandler = class {
17366
17366
  // Wallet methods
17367
17367
  async handleInitWallet({ payload }) {
17368
17368
  const { arkServerUrl } = payload;
17369
- this.indexerProvider = new chunkBFQX2KS3_cjs.RestIndexerProvider(arkServerUrl);
17369
+ this.indexerProvider = new chunk2TOHNPEP_cjs.RestIndexerProvider(arkServerUrl);
17370
17370
  await this.onWalletInitialized();
17371
17371
  }
17372
17372
  /**
@@ -17618,7 +17618,7 @@ var WalletMessageHandler = class {
17618
17618
  if (v.isUnrolled) {
17619
17619
  return withUnrolled;
17620
17620
  }
17621
- if (chunk7NK6XFC3_cjs.isVtxoSpent(v)) {
17621
+ if (chunkUV6VUA43_cjs.isVtxoSpent(v)) {
17622
17622
  return false;
17623
17623
  }
17624
17624
  if (includeRecoverable) {
@@ -17627,7 +17627,7 @@ var WalletMessageHandler = class {
17627
17627
  if (dustAmount != null && isSubdust(v, dustAmount)) {
17628
17628
  return false;
17629
17629
  }
17630
- return chunk7NK6XFC3_cjs.canSpendOffchain(v, { timestamp: /* @__PURE__ */ new Date() });
17630
+ return chunkUV6VUA43_cjs.canSpendOffchain(v, { timestamp: /* @__PURE__ */ new Date() });
17631
17631
  });
17632
17632
  }
17633
17633
  /** Tear down handler subscriptions, then delegate the full wipe to the wallet. */
@@ -17735,7 +17735,7 @@ var WalletMessageHandler = class {
17735
17735
  this.readonlyWallet.getBoardingTxs()
17736
17736
  ]);
17737
17737
  const indexerProvider = this.indexerProvider;
17738
- const resolveTxCreatedAt = indexerProvider ? (txids) => chunk7NK6XFC3_cjs.fetchVtxoCreatedAtByTxid(indexerProvider, txids) : void 0;
17738
+ const resolveTxCreatedAt = indexerProvider ? (txids) => chunkUV6VUA43_cjs.fetchVtxoCreatedAtByTxid(indexerProvider, txids) : void 0;
17739
17739
  return buildTransactionHistory(
17740
17740
  vtxos,
17741
17741
  boardingTxs,
@@ -17804,7 +17804,7 @@ var DEFAULT_MESSAGE_TIMEOUTS = {
17804
17804
  // budget so the worker's snapshot fallback stays reachable before this
17805
17805
  // page deadline fires — lowering it below the budget would time the page
17806
17806
  // out while the worker is still seconds from answering from cache.
17807
- GET_ARKADE_INFO: chunk7NK6XFC3_cjs.INFO_FETCH_TIMEOUT_MS + 8e3,
17807
+ GET_ARKADE_INFO: chunkUV6VUA43_cjs.INFO_FETCH_TIMEOUT_MS + 8e3,
17808
17808
  INDEXER_GET_VTXOS: 2e4,
17809
17809
  INDEXER_GET_VIRTUAL_TXS: 2e4,
17810
17810
  GET_VTXOS: 2e4,
@@ -18029,7 +18029,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
18029
18029
  }
18030
18030
  /** Shared tail of both `create()` factories: boot the bus, INIT_WALLET, cache for reinit. */
18031
18031
  static async bootstrap(wallet, options, serializedWallet, busConfig) {
18032
- const arkServer = options.arkServer ?? { url: chunk7NK6XFC3_cjs.DEFAULT_ARKADE_SERVER_URL };
18032
+ const arkServer = options.arkServer ?? { url: chunkUV6VUA43_cjs.DEFAULT_ARKADE_SERVER_URL };
18033
18033
  const initWalletPayload = {
18034
18034
  arkServerUrl: arkServer.url,
18035
18035
  arkServerPublicKey: arkServer.publicKey
@@ -18362,7 +18362,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
18362
18362
  try {
18363
18363
  const response = await this.sendMessage(message);
18364
18364
  const { vtxos, page } = response.payload;
18365
- return { vtxos: vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo), page: page && { ...page } };
18365
+ return { vtxos: vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo), page: page && { ...page } };
18366
18366
  } catch (error) {
18367
18367
  throw new Error(`Failed to get vtxos: ${error}`, { cause: error });
18368
18368
  }
@@ -18466,7 +18466,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
18466
18466
  };
18467
18467
  try {
18468
18468
  const response = await this.sendMessage(message);
18469
- return response.payload.vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo);
18469
+ return response.payload.vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo);
18470
18470
  } catch (error) {
18471
18471
  throw new Error(`Failed to get vtxos: ${error}`);
18472
18472
  }
@@ -18497,7 +18497,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
18497
18497
  "Service worker does not support the requested contract scope or freshness check"
18498
18498
  );
18499
18499
  }
18500
- return payload.vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo);
18500
+ return payload.vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo);
18501
18501
  } catch (error) {
18502
18502
  throw new Error(`Failed to get spendable vtxos: ${error}`);
18503
18503
  }
@@ -18673,7 +18673,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
18673
18673
  };
18674
18674
  try {
18675
18675
  const response = await sendContractMessage(message);
18676
- return response.payload.vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo);
18676
+ return response.payload.vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo);
18677
18677
  } catch (e) {
18678
18678
  throw new Error("Failed to annotate vtxos");
18679
18679
  }
@@ -19256,7 +19256,7 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
19256
19256
  };
19257
19257
  try {
19258
19258
  const response = await wallet.sendMessage(message);
19259
- return response.payload.vtxos.map(chunk7NK6XFC3_cjs.normalizeVtxo);
19259
+ return response.payload.vtxos.map(chunkUV6VUA43_cjs.normalizeVtxo);
19260
19260
  } catch (e) {
19261
19261
  throw new Error(`Failed to get expiring vtxos: ${e}`);
19262
19262
  }
@@ -19368,12 +19368,12 @@ var OnchainWallet = class _OnchainWallet {
19368
19368
  * @returns Configured onchain wallet
19369
19369
  * @throws Error if the configured identity cannot produce a valid x-only public key
19370
19370
  */
19371
- static async create(identity, networkName = chunk7NK6XFC3_cjs.DEFAULT_NETWORK_NAME, provider) {
19371
+ static async create(identity, networkName = chunkUV6VUA43_cjs.DEFAULT_NETWORK_NAME, provider) {
19372
19372
  const pubkey = await identity.xOnlyPublicKey();
19373
19373
  if (!pubkey) {
19374
19374
  throw new Error("Invalid configured public key");
19375
19375
  }
19376
- const network = chunk7NK6XFC3_cjs.getNetwork(networkName);
19376
+ const network = chunkUV6VUA43_cjs.getNetwork(networkName);
19377
19377
  const onchainProvider = provider || new EsploraProvider(ESPLORA_URL[networkName]);
19378
19378
  const onchainP2TR = btcSigner.p2tr(pubkey, void 0, network);
19379
19379
  return new _OnchainWallet(identity, network, onchainP2TR, onchainProvider);
@@ -19473,7 +19473,7 @@ var OnchainWallet = class _OnchainWallet {
19473
19473
  feeRate,
19474
19474
  params.address
19475
19475
  );
19476
- let tx = new chunk7NK6XFC3_cjs.Transaction();
19476
+ let tx = new chunkUV6VUA43_cjs.Transaction();
19477
19477
  for (const input of inputs) {
19478
19478
  tx.addInput({
19479
19479
  txid: input.txid,
@@ -19531,7 +19531,7 @@ var OnchainWallet = class _OnchainWallet {
19531
19531
  * @throws If the parent has no anchor, or funding cannot be selected/signed
19532
19532
  */
19533
19533
  async bumpAnchor(parentHex, feeRate) {
19534
- const parent = chunk7NK6XFC3_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
19534
+ const parent = chunkUV6VUA43_cjs.Transaction.fromRaw(base.hex.decode(parentHex));
19535
19535
  const coins = (await this.getCoins()).filter((c) => c.status.confirmed);
19536
19536
  const child = await this.buildBumpPackage(parent, feeRate, coins);
19537
19537
  return [parent.hex, child.hex];
@@ -20438,7 +20438,7 @@ async function resolvePrevTxs(txids, source, onchain) {
20438
20438
  try {
20439
20439
  const { txs } = await source.getVirtualTxs(wanted);
20440
20440
  for (const psbt of txs) {
20441
- const tx = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbt));
20441
+ const tx = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbt));
20442
20442
  resolved.set(tx.id, tx.toBytes());
20443
20443
  }
20444
20444
  } catch (err) {
@@ -20471,7 +20471,7 @@ async function resolvePrevTxs(txids, source, onchain) {
20471
20471
  async function attachPrevArkTxs(tx, txids, source, onchain) {
20472
20472
  const pending = [];
20473
20473
  for (let i = 0; i < tx.inputsLength; i++) {
20474
- if (chunk7NK6XFC3_cjs.getArkPsbtFields(tx, i, chunk7NK6XFC3_cjs.PrevArkTxField).length === 0) pending.push(i);
20474
+ if (chunkUV6VUA43_cjs.getArkPsbtFields(tx, i, chunkUV6VUA43_cjs.PrevArkTxField).length === 0) pending.push(i);
20475
20475
  }
20476
20476
  if (pending.length === 0) return;
20477
20477
  const resolved = await resolvePrevTxs(
@@ -20480,13 +20480,13 @@ async function attachPrevArkTxs(tx, txids, source, onchain) {
20480
20480
  onchain
20481
20481
  );
20482
20482
  for (const i of pending) {
20483
- chunk7NK6XFC3_cjs.setArkPsbtField(tx, i, chunk7NK6XFC3_cjs.PrevArkTxField, resolved.get(txidAt(txids, i)));
20483
+ chunkUV6VUA43_cjs.setArkPsbtField(tx, i, chunkUV6VUA43_cjs.PrevArkTxField, resolved.get(txidAt(txids, i)));
20484
20484
  }
20485
20485
  }
20486
20486
  async function attachPrevoutTxs(tx, source) {
20487
20487
  const pending = [];
20488
20488
  for (let i = 0; i < tx.inputsLength; i++) {
20489
- if (chunk7NK6XFC3_cjs.getArkPsbtFields(tx, i, chunk7NK6XFC3_cjs.PrevoutTxField).length > 0) continue;
20489
+ if (chunkUV6VUA43_cjs.getArkPsbtFields(tx, i, chunkUV6VUA43_cjs.PrevoutTxField).length > 0) continue;
20490
20490
  const input = tx.getInput(i);
20491
20491
  if (!input?.txid) throw new PrevTxUnavailableError(`input ${i} has no outpoint`);
20492
20492
  pending.push({ index: i, txid: base.hex.encode(input.txid) });
@@ -20497,7 +20497,7 @@ async function attachPrevoutTxs(tx, source) {
20497
20497
  resolved.set(txid, await source.getRawTransaction(txid));
20498
20498
  }
20499
20499
  for (const { index, txid } of pending) {
20500
- chunk7NK6XFC3_cjs.setArkPsbtField(tx, index, chunk7NK6XFC3_cjs.PrevoutTxField, resolved.get(txid));
20500
+ chunkUV6VUA43_cjs.setArkPsbtField(tx, index, chunkUV6VUA43_cjs.PrevoutTxField, resolved.get(txid));
20501
20501
  }
20502
20502
  }
20503
20503
  async function withPrevTxs(coins, source, onchain) {
@@ -20523,7 +20523,7 @@ exports.BIP322 = void 0;
20523
20523
  async function sign2(message, identity, network) {
20524
20524
  const xOnlyPubKey = await identity.xOnlyPublicKey();
20525
20525
  const payment = btcSigner.p2tr(xOnlyPubKey, void 0, network);
20526
- const toSpend = chunk7NK6XFC3_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
20526
+ const toSpend = chunkUV6VUA43_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
20527
20527
  const toSign = craftBIP322ToSignP2TR(toSpend, payment.script, xOnlyPubKey);
20528
20528
  const signed = await identity.sign(toSign, [0]);
20529
20529
  signed.finalizeIdx(0);
@@ -20581,7 +20581,7 @@ function verifyP2TR(message, witnessItems, pkScript, pubkey) {
20581
20581
  if (sighashType !== btcSigner.SigHash.DEFAULT && sighashType !== btcSigner.SigHash.ALL) {
20582
20582
  return false;
20583
20583
  }
20584
- const toSpend = chunk7NK6XFC3_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
20584
+ const toSpend = chunkUV6VUA43_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
20585
20585
  const toSign = craftBIP322ToSignP2TR(toSpend, pkScript, pubkey);
20586
20586
  const sighash = toSign.preimageWitnessV1(0, [pkScript], sighashType, [0n]);
20587
20587
  const rawSig = sig.length === 65 ? sig.subarray(0, 64) : sig;
@@ -20602,7 +20602,7 @@ function verifyP2WPKH(message, witnessItems, pkScript, addressHash) {
20602
20602
  }
20603
20603
  const sighashType = sigWithHash[sigWithHash.length - 1];
20604
20604
  const derSig = sigWithHash.subarray(0, sigWithHash.length - 1);
20605
- const toSpend = chunk7NK6XFC3_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
20605
+ const toSpend = chunkUV6VUA43_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
20606
20606
  const toSign = craftBIP322ToSignSimple(toSpend, pkScript);
20607
20607
  const scriptCode = btcSigner.OutScript.encode({ type: "pkh", hash: addressHash });
20608
20608
  const sighash = toSign.preimageWitnessV0(0, scriptCode, sighashType, 0n);
@@ -20655,7 +20655,7 @@ function encodeCompactSize(n) {
20655
20655
  return buf;
20656
20656
  }
20657
20657
  function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
20658
- const tx = new chunk7NK6XFC3_cjs.Transaction({ version: 0 });
20658
+ const tx = new chunkUV6VUA43_cjs.Transaction({ version: 0 });
20659
20659
  tx.addInput({
20660
20660
  txid: toSpend.id,
20661
20661
  index: 0,
@@ -20669,12 +20669,12 @@ function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
20669
20669
  });
20670
20670
  tx.addOutput({
20671
20671
  amount: 0n,
20672
- script: chunk7NK6XFC3_cjs.OP_RETURN_EMPTY_PKSCRIPT
20672
+ script: chunkUV6VUA43_cjs.OP_RETURN_EMPTY_PKSCRIPT
20673
20673
  });
20674
20674
  return tx;
20675
20675
  }
20676
20676
  function craftBIP322ToSignSimple(toSpend, pkScript) {
20677
- const tx = new chunk7NK6XFC3_cjs.Transaction({ version: 0 });
20677
+ const tx = new chunkUV6VUA43_cjs.Transaction({ version: 0 });
20678
20678
  tx.addInput({
20679
20679
  txid: toSpend.id,
20680
20680
  index: 0,
@@ -20686,7 +20686,7 @@ function craftBIP322ToSignSimple(toSpend, pkScript) {
20686
20686
  });
20687
20687
  tx.addOutput({
20688
20688
  amount: 0n,
20689
- script: chunk7NK6XFC3_cjs.OP_RETURN_EMPTY_PKSCRIPT
20689
+ script: chunkUV6VUA43_cjs.OP_RETURN_EMPTY_PKSCRIPT
20690
20690
  });
20691
20691
  return tx;
20692
20692
  }
@@ -20699,7 +20699,7 @@ var RestEmulatorProvider = class {
20699
20699
  serverUrl;
20700
20700
  async getInfo() {
20701
20701
  const url = `${this.serverUrl}/v1/info`;
20702
- const response = await chunk7NK6XFC3_cjs.baseFetch(url);
20702
+ const response = await chunkUV6VUA43_cjs.baseFetch(url);
20703
20703
  if (!response.ok) {
20704
20704
  const errorText2 = await response.text();
20705
20705
  throw new Error(`Failed to get emulator info: ${errorText2}`);
@@ -20817,7 +20817,7 @@ var RestEmulatorProvider = class {
20817
20817
  }
20818
20818
  };
20819
20819
  function finalizeVirtualTx(type, psbtBase64) {
20820
- const tx = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
20820
+ const tx = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbtBase64));
20821
20821
  if (type === "INDEXER_CHAINED_TX_TYPE_TREE" /* TREE */) {
20822
20822
  const input = tx.getInput(0);
20823
20823
  if (!input) {
@@ -20844,14 +20844,14 @@ var ExitPathError = class extends Error {
20844
20844
  reason;
20845
20845
  };
20846
20846
  function delayWeight(sequence) {
20847
- const t = chunk7NK6XFC3_cjs.sequenceToTimelock(sequence);
20847
+ const t = chunkUV6VUA43_cjs.sequenceToTimelock(sequence);
20848
20848
  return t.type === "blocks" ? Number(t.value) : Number(t.value) / 600;
20849
20849
  }
20850
20850
  async function resolveUnilateralPath(params) {
20851
20851
  const { vtxo, scriptHex, contractRepository } = params;
20852
20852
  const contract = contractRepository ? (await collectContracts(contractRepository, { script: scriptHex }))[0] : void 0;
20853
20853
  if (contract) {
20854
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
20854
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
20855
20855
  if (!handler) {
20856
20856
  throw new ExitPathError(
20857
20857
  "no-handler",
@@ -20873,12 +20873,12 @@ async function resolveUnilateralPath(params) {
20873
20873
  paths.sort((a, b) => delayWeight(a.sequence) - delayWeight(b.sequence));
20874
20874
  return { selection: paths[0], label: `${contract.type}:unilateral` };
20875
20875
  }
20876
- const decoded = chunk7NK6XFC3_cjs.VtxoScript.decode(vtxo.tapTree);
20876
+ const decoded = chunkUV6VUA43_cjs.VtxoScript.decode(vtxo.tapTree);
20877
20877
  let best;
20878
20878
  for (const exit of decoded.exitPaths()) {
20879
20879
  const leaf = decoded.findLeaf(base.hex.encode(exit.script));
20880
20880
  if (!leaf) continue;
20881
- const sequence = chunk7NK6XFC3_cjs.timelockToSequence(exit.params.timelock);
20881
+ const sequence = chunkUV6VUA43_cjs.timelockToSequence(exit.params.timelock);
20882
20882
  const weight = delayWeight(sequence);
20883
20883
  if (!best || weight < best.weight) {
20884
20884
  best = { selection: { leaf, sequence }, weight };
@@ -21085,7 +21085,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
21085
21085
  const txWeightEstimator = TxWeightEstimator.create();
21086
21086
  const walletDescriptor = base.hex.encode(await wallet.identity.xOnlyPublicKey());
21087
21087
  for (const vtxo of vtxos) {
21088
- if (!chunk7NK6XFC3_cjs.canSweepOnchain(vtxo)) {
21088
+ if (!chunkUV6VUA43_cjs.canSweepOnchain(vtxo)) {
21089
21089
  throw new Error(
21090
21090
  `Vtxo ${vtxo.txid}:${vtxo.vout} cannot be swept onchain: it is not fully unrolled (use unroll first), or its exit output was already spent`
21091
21091
  );
@@ -21096,14 +21096,14 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
21096
21096
  }
21097
21097
  const resolved = await resolveUnilateralPath({
21098
21098
  vtxo,
21099
- scriptHex: base.hex.encode(chunk7NK6XFC3_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
21099
+ scriptHex: base.hex.encode(chunkUV6VUA43_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
21100
21100
  contractRepository: wallet.contractRepository,
21101
21101
  walletDescriptor,
21102
21102
  currentTime: Date.now()
21103
21103
  });
21104
21104
  const spendingLeaf = resolved.selection.leaf;
21105
21105
  const sequence = resolved.selection.sequence;
21106
- const timelock = chunk7NK6XFC3_cjs.sequenceToTimelock(sequence);
21106
+ const timelock = chunkUV6VUA43_cjs.sequenceToTimelock(sequence);
21107
21107
  const elapsed = timelock.type === "blocks" ? chainTip.height >= txStatus.blockHeight + Number(timelock.value) : chainTip.time >= txStatus.blockTime + Number(timelock.value);
21108
21108
  if (!elapsed) {
21109
21109
  throw new Error(`no available exit path found for vtxo ${vtxo.txid}:${vtxo.vout}`);
@@ -21116,7 +21116,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
21116
21116
  sequence,
21117
21117
  witnessUtxo: {
21118
21118
  amount: BigInt(vtxo.value),
21119
- script: chunk7NK6XFC3_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
21119
+ script: chunkUV6VUA43_cjs.VtxoScript.decode(vtxo.tapTree).pkScript
21120
21120
  },
21121
21121
  sighashType: btcSigner.SigHash.DEFAULT
21122
21122
  });
@@ -21126,7 +21126,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
21126
21126
  btcSigner.TaprootControlBlock.encode(spendingLeaf[0]).length
21127
21127
  );
21128
21128
  }
21129
- const tx = new chunk7NK6XFC3_cjs.Transaction({ version: 2 });
21129
+ const tx = new chunkUV6VUA43_cjs.Transaction({ version: 2 });
21130
21130
  for (const input of inputs) {
21131
21131
  tx.addInput(input);
21132
21132
  }
@@ -21209,7 +21209,7 @@ async function buildSignedSweep(params) {
21209
21209
  `uneconomic vtxo ${vtxo.txid}:${vtxo.vout}: value ${vtxo.value} - fee ${fee} < dust`
21210
21210
  );
21211
21211
  }
21212
- const tx = new chunk7NK6XFC3_cjs.Transaction({ version: 2 });
21212
+ const tx = new chunkUV6VUA43_cjs.Transaction({ version: 2 });
21213
21213
  tx.addInput({
21214
21214
  txid: vtxo.txid,
21215
21215
  index: vtxo.vout,
@@ -21234,7 +21234,7 @@ async function buildSignedSweep(params) {
21234
21234
  finalScriptWitness: [
21235
21235
  tapScriptSig[0][1],
21236
21236
  ...path.extraWitness,
21237
- chunk7NK6XFC3_cjs.scriptFromTapLeafScript(path.leaf),
21237
+ chunkUV6VUA43_cjs.scriptFromTapLeafScript(path.leaf),
21238
21238
  btcSigner.TaprootControlBlock.encode(controlBlock)
21239
21239
  ]
21240
21240
  });
@@ -21264,7 +21264,7 @@ async function resolveFeeRate(opts) {
21264
21264
  }
21265
21265
  async function selectExitVtxos(opts) {
21266
21266
  if (!opts.vtxos) return opts.wallet.getVtxos();
21267
- const res = await chunk7NK6XFC3_cjs.getNormalizedVtxos(opts.wallet.indexerProvider, { outpoints: opts.vtxos });
21267
+ const res = await chunkUV6VUA43_cjs.getNormalizedVtxos(opts.wallet.indexerProvider, { outpoints: opts.vtxos });
21268
21268
  const tapTrees = /* @__PURE__ */ new Map();
21269
21269
  const out = [];
21270
21270
  for (const vtxo of res.vtxos) {
@@ -21279,7 +21279,7 @@ async function selectExitVtxos(opts) {
21279
21279
  `no contract registered for vtxo script ${vtxo.script} \u2014 register the contract before exiting`
21280
21280
  );
21281
21281
  }
21282
- const handler = chunkFDQQOF3F_cjs.contractHandlers.get(contract.type);
21282
+ const handler = chunkIHI3X2J4_cjs.contractHandlers.get(contract.type);
21283
21283
  if (!handler) {
21284
21284
  throw new Error(`no contract handler registered for type '${contract.type}'`);
21285
21285
  }
@@ -21309,7 +21309,7 @@ async function computeExitLayout(opts, feeRate) {
21309
21309
  if (pendingNodes.length > 0) {
21310
21310
  const txs = await resolver.getVirtualTxs(pendingNodes.map((n) => n.txid));
21311
21311
  for (const psbt of txs) {
21312
- psbts.set(chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
21312
+ psbts.set(chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(psbt)).id, psbt);
21313
21313
  }
21314
21314
  }
21315
21315
  const childVsize = Number(
@@ -21337,7 +21337,7 @@ async function computeExitLayout(opts, feeRate) {
21337
21337
  try {
21338
21338
  const resolved = await resolveUnilateralPath({
21339
21339
  vtxo,
21340
- scriptHex: base.hex.encode(chunk7NK6XFC3_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
21340
+ scriptHex: base.hex.encode(chunkUV6VUA43_cjs.VtxoScript.decode(vtxo.tapTree).pkScript),
21341
21341
  contractRepository: wallet.contractRepository,
21342
21342
  walletDescriptor,
21343
21343
  currentTime: Date.now()
@@ -21356,7 +21356,7 @@ async function computeExitLayout(opts, feeRate) {
21356
21356
  });
21357
21357
  continue;
21358
21358
  }
21359
- const t = chunk7NK6XFC3_cjs.sequenceToTimelock(resolved.selection.sequence);
21359
+ const t = chunkUV6VUA43_cjs.sequenceToTimelock(resolved.selection.sequence);
21360
21360
  const delay = { type: t.type, value: Number(t.value) };
21361
21361
  infos.push({ outpoint, value: vtxo.value, sweepFee, path: resolved.label, delay });
21362
21362
  sweeps.push({ vtxo, resolved, sweepFee, delay });
@@ -21757,7 +21757,7 @@ async function prepare(opts) {
21757
21757
  txid: sweep.vtxo.txid,
21758
21758
  vout: sweep.vtxo.vout,
21759
21759
  value: sweep.vtxo.value,
21760
- pkScript: chunk7NK6XFC3_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
21760
+ pkScript: chunkUV6VUA43_cjs.VtxoScript.decode(sweep.vtxo.tapTree).pkScript
21761
21761
  },
21762
21762
  path: sweep.resolved.selection,
21763
21763
  outputAddress: opts.sweepAddress,
@@ -21846,7 +21846,7 @@ async function prepare(opts) {
21846
21846
  if (newFee <= splitterFee) break;
21847
21847
  splitterFee = newFee;
21848
21848
  }
21849
- const splitter = new chunk7NK6XFC3_cjs.Transaction({ version: 2 });
21849
+ const splitter = new chunkUV6VUA43_cjs.Transaction({ version: 2 });
21850
21850
  for (const coin of selected.inputs) {
21851
21851
  splitter.addInput({
21852
21852
  txid: coin.txid,
@@ -21985,44 +21985,44 @@ var UnilateralExit = {
21985
21985
 
21986
21986
  // src/arkade/index.ts
21987
21987
  var arkade_exports = {};
21988
- chunk7NK6XFC3_cjs.__export(arkade_exports, {
21989
- ARKADE_OP: () => chunkFDQQOF3F_cjs.ARKADE_OP,
21990
- ARKADE_OPCODES: () => chunkFDQQOF3F_cjs.ARKADE_OPCODES,
21991
- ARKADE_OPCODE_NAMES: () => chunkFDQQOF3F_cjs.ARKADE_OPCODE_NAMES,
21992
- ARKADE_OPCODE_VALUES: () => chunkFDQQOF3F_cjs.ARKADE_OPCODE_VALUES,
21993
- ARKADE_OPS: () => chunkFDQQOF3F_cjs.ARKADE_OPS,
21988
+ chunkUV6VUA43_cjs.__export(arkade_exports, {
21989
+ ARKADE_OP: () => chunkIHI3X2J4_cjs.ARKADE_OP,
21990
+ ARKADE_OPCODES: () => chunkIHI3X2J4_cjs.ARKADE_OPCODES,
21991
+ ARKADE_OPCODE_NAMES: () => chunkIHI3X2J4_cjs.ARKADE_OPCODE_NAMES,
21992
+ ARKADE_OPCODE_VALUES: () => chunkIHI3X2J4_cjs.ARKADE_OPCODE_VALUES,
21993
+ ARKADE_OPS: () => chunkIHI3X2J4_cjs.ARKADE_OPS,
21994
21994
  Arkade: () => Arkade,
21995
21995
  ArkadeContract: () => ArkadeContract,
21996
- ArkadeProgramScript: () => chunkFDQQOF3F_cjs.ArkadeProgramScript,
21997
- ArkadeScript: () => chunkFDQQOF3F_cjs.ArkadeScript,
21996
+ ArkadeProgramScript: () => chunkIHI3X2J4_cjs.ArkadeProgramScript,
21997
+ ArkadeScript: () => chunkIHI3X2J4_cjs.ArkadeScript,
21998
21998
  ArkadeTransactionBuilder: () => ArkadeTransactionBuilder,
21999
- BigNum: () => chunkFDQQOF3F_cjs.bignum_exports,
21999
+ BigNum: () => chunkIHI3X2J4_cjs.bignum_exports,
22000
22000
  OP: () => btcSigner.OP,
22001
- OPCODE_NAMES: () => chunkFDQQOF3F_cjs.OPCODE_NAMES,
22002
- OPCODE_VALUES: () => chunkFDQQOF3F_cjs.OPCODE_VALUES,
22003
- SUPPORTED_PROGRAM_VERSION: () => chunkFDQQOF3F_cjs.SUPPORTED_PROGRAM_VERSION,
22001
+ OPCODE_NAMES: () => chunkIHI3X2J4_cjs.OPCODE_NAMES,
22002
+ OPCODE_VALUES: () => chunkIHI3X2J4_cjs.OPCODE_VALUES,
22003
+ SUPPORTED_PROGRAM_VERSION: () => chunkIHI3X2J4_cjs.SUPPORTED_PROGRAM_VERSION,
22004
22004
  Script: () => btcSigner.Script,
22005
- arkadeScriptHash: () => chunkFDQQOF3F_cjs.arkadeScriptHash,
22006
- arkadeWitnessHash: () => chunkFDQQOF3F_cjs.arkadeWitnessHash,
22007
- asmToBytes: () => chunkFDQQOF3F_cjs.asmToBytes,
22008
- bytesToASM: () => chunkFDQQOF3F_cjs.bytesToASM,
22009
- computeArkadeScriptPublicKey: () => chunkFDQQOF3F_cjs.computeArkadeScriptPublicKey,
22005
+ arkadeScriptHash: () => chunkIHI3X2J4_cjs.arkadeScriptHash,
22006
+ arkadeWitnessHash: () => chunkIHI3X2J4_cjs.arkadeWitnessHash,
22007
+ asmToBytes: () => chunkIHI3X2J4_cjs.asmToBytes,
22008
+ bytesToASM: () => chunkIHI3X2J4_cjs.bytesToASM,
22009
+ computeArkadeScriptPublicKey: () => chunkIHI3X2J4_cjs.computeArkadeScriptPublicKey,
22010
22010
  createArkadeBatchHandler: () => createArkadeBatchHandler,
22011
- deserializeArkadeContractParams: () => chunkFDQQOF3F_cjs.deserializeArkadeContractParams,
22012
- fromASM: () => chunkFDQQOF3F_cjs.fromASM,
22013
- getOpcodeName: () => chunkFDQQOF3F_cjs.getOpcodeName,
22014
- getOpcodeValue: () => chunkFDQQOF3F_cjs.getOpcodeValue,
22011
+ deserializeArkadeContractParams: () => chunkIHI3X2J4_cjs.deserializeArkadeContractParams,
22012
+ fromASM: () => chunkIHI3X2J4_cjs.fromASM,
22013
+ getOpcodeName: () => chunkIHI3X2J4_cjs.getOpcodeName,
22014
+ getOpcodeValue: () => chunkIHI3X2J4_cjs.getOpcodeValue,
22015
22015
  isContractArtifact: () => isContractArtifact,
22016
- parseArtifact: () => chunkFDQQOF3F_cjs.parseArtifact,
22016
+ parseArtifact: () => chunkIHI3X2J4_cjs.parseArtifact,
22017
22017
  programFromArtifact: () => programFromArtifact,
22018
- resolveAsm: () => chunkFDQQOF3F_cjs.resolveAsm,
22019
- serializeArkadeContractParams: () => chunkFDQQOF3F_cjs.serializeArkadeContractParams,
22020
- stringifyArtifact: () => chunkFDQQOF3F_cjs.stringifyArtifact,
22021
- toASM: () => chunkFDQQOF3F_cjs.toASM,
22022
- validateProgram: () => chunkFDQQOF3F_cjs.validateProgram,
22023
- witnessRefToBytes: () => chunkFDQQOF3F_cjs.witnessRefToBytes
22018
+ resolveAsm: () => chunkIHI3X2J4_cjs.resolveAsm,
22019
+ serializeArkadeContractParams: () => chunkIHI3X2J4_cjs.serializeArkadeContractParams,
22020
+ stringifyArtifact: () => chunkIHI3X2J4_cjs.stringifyArtifact,
22021
+ toASM: () => chunkIHI3X2J4_cjs.toASM,
22022
+ validateProgram: () => chunkIHI3X2J4_cjs.validateProgram,
22023
+ witnessRefToBytes: () => chunkIHI3X2J4_cjs.witnessRefToBytes
22024
22024
  });
22025
- var isVtxoCoin = (input) => chunk7NK6XFC3_cjs.isVirtualCoin(input);
22025
+ var isVtxoCoin = (input) => chunkUV6VUA43_cjs.isVirtualCoin(input);
22026
22026
  function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message, session, arkProvider, emulator, network, recipients, batchExpiryPolicy) {
22027
22027
  let batchId;
22028
22028
  let sweepTapTreeRoot;
@@ -22043,23 +22043,23 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
22043
22043
  );
22044
22044
  await arkProvider.confirmRegistration(intentId);
22045
22045
  batchId = event.id;
22046
- const sweepTapscript = chunk7NK6XFC3_cjs.CSVMultisigTapscript.encode({
22046
+ const sweepTapscript = chunkUV6VUA43_cjs.CSVMultisigTapscript.encode({
22047
22047
  timelock,
22048
- pubkeys: [chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(info.forfeitPubkey), "forfeit key")]
22048
+ pubkeys: [chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(info.forfeitPubkey), "forfeit key")]
22049
22049
  }).script;
22050
22050
  sweepTapTreeRoot = payment_js.tapLeafHash(sweepTapscript);
22051
22051
  return { skip: false };
22052
22052
  },
22053
22053
  onTreeSigningStarted: async (event, vtxoTree) => {
22054
22054
  const signerPubKey = await session.getPublicKey();
22055
- const xonlySignerPubKey = chunkFDQQOF3F_cjs.toXOnly(signerPubKey, "signer key");
22055
+ const xonlySignerPubKey = chunkIHI3X2J4_cjs.toXOnly(signerPubKey, "signer key");
22056
22056
  const xOnlyPubkeys = event.cosignersPublicKeys.map(
22057
- (k) => base.hex.encode(chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
22057
+ (k) => base.hex.encode(chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(k), "cosigner key"))
22058
22058
  );
22059
22059
  if (!xOnlyPubkeys.includes(base.hex.encode(xonlySignerPubKey))) {
22060
22060
  return { skip: true };
22061
22061
  }
22062
- const commitmentTx = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(event.unsignedCommitmentTx));
22062
+ const commitmentTx = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(event.unsignedCommitmentTx));
22063
22063
  validateVtxoTxGraph(vtxoTree, commitmentTx, sweepTapTreeRoot);
22064
22064
  if (recipients && recipients.length > 0) {
22065
22065
  validateBatchRecipients(commitmentTx, vtxoTree.leaves(), recipients, network);
@@ -22097,7 +22097,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
22097
22097
  if (connectorTree) {
22098
22098
  validateConnectorsTxGraph(event.commitmentTx, connectorTree);
22099
22099
  }
22100
- let commitmentPsbt = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
22100
+ let commitmentPsbt = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(event.commitmentTx));
22101
22101
  assertFinalCommitmentMatchesValidated(
22102
22102
  commitmentPsbt,
22103
22103
  validatedCommitmentTxid,
@@ -22139,7 +22139,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
22139
22139
  boardingIndices.push(boardingIdx);
22140
22140
  continue;
22141
22141
  }
22142
- if (!chunk7NK6XFC3_cjs.requiresForfeit(input) || isSubdust(input, info.dust)) {
22142
+ if (!chunkUV6VUA43_cjs.requiresForfeit(input) || isSubdust(input, info.dust)) {
22143
22143
  continue;
22144
22144
  }
22145
22145
  if (connectorIndex >= connectorLeaves.length) {
@@ -22160,7 +22160,7 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
22160
22160
  index: input.vout,
22161
22161
  witnessUtxo: {
22162
22162
  amount: BigInt(input.value),
22163
- script: chunk7NK6XFC3_cjs.VtxoScript.decode(input.tapTree).pkScript
22163
+ script: chunkUV6VUA43_cjs.VtxoScript.decode(input.tapTree).pkScript
22164
22164
  },
22165
22165
  sighashType: btcSigner.SigHash.DEFAULT,
22166
22166
  tapLeafScript: [input.forfeitTapLeafScript]
@@ -22305,7 +22305,7 @@ function flatten(param, structs, stack = []) {
22305
22305
  function opcodeToken(token) {
22306
22306
  const base = token.slice(3);
22307
22307
  const name = base === "0" || /^([1-9]|1[0-6])$/.test(base) ? token : base;
22308
- if (!Object.hasOwn(chunkFDQQOF3F_cjs.ARKADE_OPS, name)) {
22308
+ if (!Object.hasOwn(chunkIHI3X2J4_cjs.ARKADE_OPS, name)) {
22309
22309
  fail(`opcode '${token}' is not in this SDK's table`);
22310
22310
  }
22311
22311
  return name;
@@ -22352,8 +22352,8 @@ function providedWitness(witness) {
22352
22352
  }
22353
22353
  function csvTimelock(leafName, operand) {
22354
22354
  if (typeof operand === "string") return { type: "blocks", value: operand };
22355
- const timelock = operand >= 0n && operand < 0x80000000n ? chunk7NK6XFC3_cjs.sequenceToTimelock(Number(operand)) : void 0;
22356
- if (!timelock || BigInt(chunk7NK6XFC3_cjs.timelockToSequence(timelock)) !== operand) {
22355
+ const timelock = operand >= 0n && operand < 0x80000000n ? chunkUV6VUA43_cjs.sequenceToTimelock(Number(operand)) : void 0;
22356
+ if (!timelock || BigInt(chunkUV6VUA43_cjs.timelockToSequence(timelock)) !== operand) {
22357
22357
  fail(`leaf '${leafName}': CSV literal ${operand} is not a canonical BIP68 sequence`);
22358
22358
  }
22359
22359
  return timelock;
@@ -22471,7 +22471,7 @@ function programFromArtifact(artifact) {
22471
22471
  const paramNames = /* @__PURE__ */ new Set();
22472
22472
  for (const param of params) claim(paramNames, param.name, "program parameter");
22473
22473
  return {
22474
- version: chunkFDQQOF3F_cjs.SUPPORTED_PROGRAM_VERSION,
22474
+ version: chunkIHI3X2J4_cjs.SUPPORTED_PROGRAM_VERSION,
22475
22475
  name: artifact.contractName,
22476
22476
  params,
22477
22477
  functions
@@ -22512,16 +22512,16 @@ var Arkade = class _Arkade {
22512
22512
  /** Connect and resolve the server key, checkpoint closure and (if present) the co-signer key. */
22513
22513
  static async connect(opts) {
22514
22514
  const info = await opts.arkade.getInfo();
22515
- const serverKey = chunkFDQQOF3F_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
22516
- const checkpoint = chunk7NK6XFC3_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
22517
- const network = opts.network ?? (Object.hasOwn(chunk7NK6XFC3_cjs.networks, info.network) ? chunk7NK6XFC3_cjs.getNetwork(info.network) : chunk7NK6XFC3_cjs.DEFAULT_NETWORK);
22515
+ const serverKey = chunkIHI3X2J4_cjs.toXOnly(base.hex.decode(info.signerPubkey), "ark signer key");
22516
+ const checkpoint = chunkUV6VUA43_cjs.CSVMultisigTapscript.decode(base.hex.decode(info.checkpointTapscript));
22517
+ const network = opts.network ?? (Object.hasOwn(chunkUV6VUA43_cjs.networks, info.network) ? chunkUV6VUA43_cjs.getNetwork(info.network) : chunkUV6VUA43_cjs.DEFAULT_NETWORK);
22518
22518
  let emulatorKey;
22519
22519
  if (opts.emulator) {
22520
- emulatorKey = base.hex.decode(chunk7NK6XFC3_cjs.resolveEmulatorPubkey(network, opts.emulatorPubkey));
22520
+ emulatorKey = base.hex.decode(chunkUV6VUA43_cjs.resolveEmulatorPubkey(network, opts.emulatorPubkey));
22521
22521
  }
22522
22522
  let userKey;
22523
22523
  if (opts.identity) {
22524
- userKey = chunkFDQQOF3F_cjs.toXOnly(await opts.identity.xOnlyPublicKey(), "identity key");
22524
+ userKey = chunkIHI3X2J4_cjs.toXOnly(await opts.identity.xOnlyPublicKey(), "identity key");
22525
22525
  }
22526
22526
  return new _Arkade({
22527
22527
  arkProvider: opts.arkade,
@@ -22544,7 +22544,7 @@ var Arkade = class _Arkade {
22544
22544
  * explicit args win.
22545
22545
  */
22546
22546
  contract(program, args = {}) {
22547
- const declared = (program.params ?? []).map(chunkFDQQOF3F_cjs.inputName);
22547
+ const declared = (program.params ?? []).map(chunkIHI3X2J4_cjs.inputName);
22548
22548
  if (declared.includes("server") && args.server === void 0) {
22549
22549
  args = { ...args, server: this.serverKey };
22550
22550
  }
@@ -22564,7 +22564,7 @@ var ArkadeContract = class _ArkadeContract {
22564
22564
  userKey: client.userKey,
22565
22565
  emulatorKey: client.emulatorKey
22566
22566
  };
22567
- this.vtxoScript = new chunkFDQQOF3F_cjs.ArkadeProgramScript(program, args, this.keys);
22567
+ this.vtxoScript = new chunkIHI3X2J4_cjs.ArkadeProgramScript(program, args, this.keys);
22568
22568
  this.tapTree = this.vtxoScript.encode();
22569
22569
  this.compiled = this.vtxoScript.compiled;
22570
22570
  }
@@ -22589,7 +22589,7 @@ var ArkadeContract = class _ArkadeContract {
22589
22589
  `ArkadeContract.fromContract: expected contract type 'arkade', got '${contract.type}'`
22590
22590
  );
22591
22591
  }
22592
- const typed = chunkFDQQOF3F_cjs.deserializeArkadeContractParams(contract.params);
22592
+ const typed = chunkIHI3X2J4_cjs.deserializeArkadeContractParams(contract.params);
22593
22593
  return new _ArkadeContract(client, typed.program, typed.args, {
22594
22594
  serverKey: typed.serverKey,
22595
22595
  userKey: typed.userKey,
@@ -22625,7 +22625,7 @@ var ArkadeContract = class _ArkadeContract {
22625
22625
  toContractParams() {
22626
22626
  return {
22627
22627
  type: "arkade",
22628
- params: chunkFDQQOF3F_cjs.serializeArkadeContractParams({
22628
+ params: chunkIHI3X2J4_cjs.serializeArkadeContractParams({
22629
22629
  program: this.program,
22630
22630
  args: this.args,
22631
22631
  serverKey: this.keys.serverKey,
@@ -22665,17 +22665,17 @@ var ArkadeContract = class _ArkadeContract {
22665
22665
  const [registered] = await manager.getContracts({ script: scriptHex });
22666
22666
  if (registered) {
22667
22667
  const [withVtxos] = await manager.getContractsWithVtxos({ script: scriptHex });
22668
- return (withVtxos?.vtxos ?? []).filter((v) => !chunk7NK6XFC3_cjs.isVtxoSpent(v) && !v.isUnrolled);
22668
+ return (withVtxos?.vtxos ?? []).filter((v) => !chunkUV6VUA43_cjs.isVtxoSpent(v) && !v.isUnrolled);
22669
22669
  }
22670
22670
  }
22671
22671
  if (!this.client.indexer) {
22672
22672
  throw new Error("ArkadeContract.getUtxos: an indexer is required");
22673
22673
  }
22674
- const { vtxos } = await chunk7NK6XFC3_cjs.getNormalizedVtxos(this.client.indexer, {
22674
+ const { vtxos } = await chunkUV6VUA43_cjs.getNormalizedVtxos(this.client.indexer, {
22675
22675
  scripts: [scriptHex],
22676
22676
  spendableOnly: true
22677
22677
  });
22678
- return vtxos.filter((v) => !chunk7NK6XFC3_cjs.isVtxoSpent(v) && !v.isUnrolled);
22678
+ return vtxos.filter((v) => !chunkUV6VUA43_cjs.isVtxoSpent(v) && !v.isUnrolled);
22679
22679
  }
22680
22680
  /** Total spendable balance (requires an indexer). */
22681
22681
  async getBalance() {
@@ -22773,7 +22773,7 @@ var ArkadeTransactionBuilder = class {
22773
22773
  this.contract.client.checkpoint
22774
22774
  );
22775
22775
  if (coin.sourceTx) {
22776
- chunk7NK6XFC3_cjs.setArkPsbtField(arkTx, 0, chunk7NK6XFC3_cjs.PrevArkTxField, coin.sourceTx);
22776
+ chunkUV6VUA43_cjs.setArkPsbtField(arkTx, 0, chunkUV6VUA43_cjs.PrevArkTxField, coin.sourceTx);
22777
22777
  }
22778
22778
  if (this.fn.arkadeScript) {
22779
22779
  const indexer = this.contract.client.indexer;
@@ -22790,8 +22790,8 @@ var ArkadeTransactionBuilder = class {
22790
22790
  }
22791
22791
  const condition = (def.tapscript.witness ?? []).map((w) => this.witnessBytes(w));
22792
22792
  if (condition.length > 0) {
22793
- chunk7NK6XFC3_cjs.setArkPsbtField(arkTx, 0, chunk7NK6XFC3_cjs.ConditionWitness, condition);
22794
- chunk7NK6XFC3_cjs.setArkPsbtField(checkpoints[0], 0, chunk7NK6XFC3_cjs.ConditionWitness, condition);
22793
+ chunkUV6VUA43_cjs.setArkPsbtField(arkTx, 0, chunkUV6VUA43_cjs.ConditionWitness, condition);
22794
+ chunkUV6VUA43_cjs.setArkPsbtField(checkpoints[0], 0, chunkUV6VUA43_cjs.ConditionWitness, condition);
22795
22795
  }
22796
22796
  const packets = [];
22797
22797
  if (this.assetSpecs.length > 0) {
@@ -22830,7 +22830,7 @@ var ArkadeTransactionBuilder = class {
22830
22830
  base.base64.encode(signedArk2.toPSBT()),
22831
22831
  signedCps.map((c) => base.base64.encode(c.toPSBT()))
22832
22832
  );
22833
- const txid = chunk7NK6XFC3_cjs.Transaction.fromPSBT(base.base64.decode(res2.signedArkTx)).id;
22833
+ const txid = chunkUV6VUA43_cjs.Transaction.fromPSBT(base.base64.decode(res2.signedArkTx)).id;
22834
22834
  return {
22835
22835
  txid,
22836
22836
  signedArkTx: res2.signedArkTx,
@@ -22895,23 +22895,23 @@ var ArkadeTransactionBuilder = class {
22895
22895
  }
22896
22896
  buildAssetPacket() {
22897
22897
  const groups = this.assetSpecs.map((s) => {
22898
- const id = typeof s.assetId === "string" ? chunkBFQX2KS3_cjs.AssetId.fromString(s.assetId) : chunkBFQX2KS3_cjs.AssetId.fromBytes(s.assetId);
22899
- return chunkBFQX2KS3_cjs.AssetGroup.create(
22898
+ const id = typeof s.assetId === "string" ? chunk2TOHNPEP_cjs.AssetId.fromString(s.assetId) : chunk2TOHNPEP_cjs.AssetId.fromBytes(s.assetId);
22899
+ return chunk2TOHNPEP_cjs.AssetGroup.create(
22900
22900
  id,
22901
22901
  null,
22902
- s.inputs.map((i) => chunkBFQX2KS3_cjs.AssetInput.create(i.vin, i.amount)),
22903
- s.outputs.map((o) => chunkBFQX2KS3_cjs.AssetOutput.create(o.vout, o.amount)),
22904
- (s.metadata ?? []).map((m) => chunkBFQX2KS3_cjs.Metadata.create(m.key, m.value))
22902
+ s.inputs.map((i) => chunk2TOHNPEP_cjs.AssetInput.create(i.vin, i.amount)),
22903
+ s.outputs.map((o) => chunk2TOHNPEP_cjs.AssetOutput.create(o.vout, o.amount)),
22904
+ (s.metadata ?? []).map((m) => chunk2TOHNPEP_cjs.Metadata.create(m.key, m.value))
22905
22905
  );
22906
22906
  });
22907
- return chunkBFQX2KS3_cjs.Packet.create(groups);
22907
+ return chunk2TOHNPEP_cjs.Packet.create(groups);
22908
22908
  }
22909
22909
  witnessBytes(ref) {
22910
- return chunkFDQQOF3F_cjs.witnessRefToBytes(ref, this.args, this.contract.args);
22910
+ return chunkIHI3X2J4_cjs.witnessRefToBytes(ref, this.args, this.contract.args);
22911
22911
  }
22912
22912
  };
22913
22913
  function bindInputs(fn, callArgs) {
22914
- const names = (fn.def.inputs ?? []).map(chunkFDQQOF3F_cjs.inputName);
22914
+ const names = (fn.def.inputs ?? []).map(chunkIHI3X2J4_cjs.inputName);
22915
22915
  if (callArgs.length !== names.length) {
22916
22916
  throw new Error(`${fn.name}: expected ${names.length} argument(s), got ${callArgs.length}`);
22917
22917
  }
@@ -23325,17 +23325,17 @@ var walletFeeSource = (wallet) => async () => (await wallet.arkProvider.getInfo(
23325
23325
  function offchainInputFees(vtxos, fees) {
23326
23326
  const estimator = new Estimator(fees?.intentFee ?? {});
23327
23327
  return vtxos.reduce(
23328
- (total, vtxo) => total + estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(vtxo)).satoshis,
23328
+ (total, vtxo) => total + estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(vtxo)).satoshis,
23329
23329
  0
23330
23330
  );
23331
23331
  }
23332
23332
  async function changeOutputFee(wallet, inputs, needed, fees) {
23333
23333
  const estimator = new Estimator(fees?.intentFee ?? {});
23334
23334
  const net = inputs.reduce(
23335
- (total, vtxo) => total + BigInt(vtxo.value) - BigInt(estimator.evalOffchainInput(chunk7NK6XFC3_cjs.toOffchainInputFeeParams(vtxo)).satoshis),
23335
+ (total, vtxo) => total + BigInt(vtxo.value) - BigInt(estimator.evalOffchainInput(chunkUV6VUA43_cjs.toOffchainInputFeeParams(vtxo)).satoshis),
23336
23336
  0n
23337
23337
  );
23338
- const script = base.hex.encode(chunk7NK6XFC3_cjs.ArkAddress.decode(await wallet.getAddress()).pkScript);
23338
+ const script = base.hex.encode(chunkUV6VUA43_cjs.ArkAddress.decode(await wallet.getAddress()).pkScript);
23339
23339
  return changeAfterOutputFee(
23340
23340
  net - needed,
23341
23341
  (amount) => BigInt(estimator.evalOffchainOutput({ amount, script }).satoshis)
@@ -23635,5 +23635,5 @@ exports.waitForIncomingFunds = waitForIncomingFunds;
23635
23635
  exports.walletFeeSource = walletFeeSource;
23636
23636
  exports.warnAndFilterVtxosForScript = warnAndFilterVtxosForScript;
23637
23637
  exports.withPrevTxs = withPrevTxs;
23638
- //# sourceMappingURL=chunk-I4YBVHAK.cjs.map
23639
- //# sourceMappingURL=chunk-I4YBVHAK.cjs.map
23638
+ //# sourceMappingURL=chunk-D77GIHME.cjs.map
23639
+ //# sourceMappingURL=chunk-D77GIHME.cjs.map