@arkade-os/sdk 0.4.44 → 0.4.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +35 -0
  2. package/dist/adapters/expo.cjs +5 -5
  3. package/dist/adapters/expo.d.cts +2 -2
  4. package/dist/adapters/expo.d.ts +2 -2
  5. package/dist/adapters/expo.js +3 -3
  6. package/dist/adapters/indexedDB.cjs +5 -5
  7. package/dist/adapters/indexedDB.js +4 -4
  8. package/dist/{ark-I8jfe5VE.d.cts → ark-C9ognsOV.d.cts} +94 -2
  9. package/dist/{ark-I8jfe5VE.d.ts → ark-C9ognsOV.d.ts} +94 -2
  10. package/dist/{asyncStorageTaskQueue-BtSOVZFn.d.ts → asyncStorageTaskQueue-BAKZ5cS5.d.ts} +2 -2
  11. package/dist/{asyncStorageTaskQueue-Dap7qUlF.d.cts → asyncStorageTaskQueue-CmBYVlxw.d.cts} +2 -2
  12. package/dist/{chunk-32YKLQPS.cjs → chunk-4KXOCVXP.cjs} +32 -29
  13. package/dist/chunk-4KXOCVXP.cjs.map +1 -0
  14. package/dist/{chunk-RJ6XVCX4.cjs → chunk-6TQJOD72.cjs} +7 -7
  15. package/dist/{chunk-RJ6XVCX4.cjs.map → chunk-6TQJOD72.cjs.map} +1 -1
  16. package/dist/{chunk-UBYY2TPK.cjs → chunk-7IYIFMF4.cjs} +178 -79
  17. package/dist/chunk-7IYIFMF4.cjs.map +1 -0
  18. package/dist/{chunk-LJ35HPJW.js → chunk-CWJ7ZCP7.js} +171 -75
  19. package/dist/chunk-CWJ7ZCP7.js.map +1 -0
  20. package/dist/{chunk-XIVCG6EP.cjs → chunk-D46YDM36.cjs} +1173 -425
  21. package/dist/chunk-D46YDM36.cjs.map +1 -0
  22. package/dist/{chunk-BE5MUB7T.js → chunk-FWG4TSPN.js} +7 -2
  23. package/dist/chunk-FWG4TSPN.js.map +1 -0
  24. package/dist/{chunk-V7WIZR2B.js → chunk-JTCQ6QXQ.js} +4 -4
  25. package/dist/{chunk-V7WIZR2B.js.map → chunk-JTCQ6QXQ.js.map} +1 -1
  26. package/dist/{chunk-HXDZ2QTW.cjs → chunk-MQB5H4X5.cjs} +7 -2
  27. package/dist/chunk-MQB5H4X5.cjs.map +1 -0
  28. package/dist/{chunk-FMI2GKYO.js → chunk-P6VBP3CT.js} +977 -231
  29. package/dist/chunk-P6VBP3CT.js.map +1 -0
  30. package/dist/{chunk-YNEDJTX2.js → chunk-QKC2T54O.js} +6 -3
  31. package/dist/chunk-QKC2T54O.js.map +1 -0
  32. package/dist/{chunk-LCQQPOIT.js → chunk-R2SVAM5Q.js} +3 -3
  33. package/dist/{chunk-LCQQPOIT.js.map → chunk-R2SVAM5Q.js.map} +1 -1
  34. package/dist/{chunk-X37EKDIH.cjs → chunk-SOXGAA52.cjs} +14 -14
  35. package/dist/{chunk-X37EKDIH.cjs.map → chunk-SOXGAA52.cjs.map} +1 -1
  36. package/dist/contracts/handlers/index.cjs +7 -7
  37. package/dist/contracts/handlers/index.d.cts +3 -3
  38. package/dist/contracts/handlers/index.d.ts +3 -3
  39. package/dist/contracts/handlers/index.js +2 -2
  40. package/dist/{delegate-BRqbh2fW.d.cts → delegate-DVEgyRwI.d.cts} +1 -1
  41. package/dist/{delegate-CgjVjYOP.d.ts → delegate-aOd5qINr.d.ts} +1 -1
  42. package/dist/{index-DvWNB_rl.d.ts → index-CPzL4tqg.d.ts} +2 -2
  43. package/dist/{index-DHuXlDEg.d.cts → index-D8vmtWWO.d.cts} +2 -2
  44. package/dist/index.cjs +176 -156
  45. package/dist/index.d.cts +45 -20
  46. package/dist/index.d.ts +45 -20
  47. package/dist/index.js +4 -4
  48. package/dist/repositories/realm/index.cjs +23 -19
  49. package/dist/repositories/realm/index.cjs.map +1 -1
  50. package/dist/repositories/realm/index.d.cts +2 -2
  51. package/dist/repositories/realm/index.d.ts +2 -2
  52. package/dist/repositories/realm/index.js +9 -5
  53. package/dist/repositories/realm/index.js.map +1 -1
  54. package/dist/repositories/sqlite/index.cjs +22 -18
  55. package/dist/repositories/sqlite/index.cjs.map +1 -1
  56. package/dist/repositories/sqlite/index.d.cts +2 -2
  57. package/dist/repositories/sqlite/index.d.ts +2 -2
  58. package/dist/repositories/sqlite/index.js +9 -5
  59. package/dist/repositories/sqlite/index.js.map +1 -1
  60. package/dist/{taskRunner-Bptw9UMa.d.ts → taskRunner-B48-V-Pb.d.ts} +2 -2
  61. package/dist/{taskRunner-CeFxKhSH.d.cts → taskRunner-nNecmQ2C.d.cts} +2 -2
  62. package/dist/wallet/expo/background.cjs +14 -14
  63. package/dist/wallet/expo/background.d.cts +3 -3
  64. package/dist/wallet/expo/background.d.ts +3 -3
  65. package/dist/wallet/expo/background.js +6 -6
  66. package/dist/wallet/expo/index.cjs +27 -14
  67. package/dist/wallet/expo/index.cjs.map +1 -1
  68. package/dist/wallet/expo/index.d.cts +11 -4
  69. package/dist/wallet/expo/index.d.ts +11 -4
  70. package/dist/wallet/expo/index.js +18 -5
  71. package/dist/wallet/expo/index.js.map +1 -1
  72. package/dist/{wallet-BsqRU8KM.d.cts → wallet-BUg3D4WJ.d.cts} +139 -3
  73. package/dist/{wallet-D9z7wssl.d.ts → wallet-DM0oShTu.d.ts} +139 -3
  74. package/dist/worker/expo/index.cjs +10 -9
  75. package/dist/worker/expo/index.cjs.map +1 -1
  76. package/dist/worker/expo/index.d.cts +4 -4
  77. package/dist/worker/expo/index.d.ts +4 -4
  78. package/dist/worker/expo/index.js +6 -5
  79. package/dist/worker/expo/index.js.map +1 -1
  80. package/package.json +2 -2
  81. package/dist/chunk-32YKLQPS.cjs.map +0 -1
  82. package/dist/chunk-BE5MUB7T.js.map +0 -1
  83. package/dist/chunk-FMI2GKYO.js.map +0 -1
  84. package/dist/chunk-HXDZ2QTW.cjs.map +0 -1
  85. package/dist/chunk-LJ35HPJW.js.map +0 -1
  86. package/dist/chunk-UBYY2TPK.cjs.map +0 -1
  87. package/dist/chunk-XIVCG6EP.cjs.map +0 -1
  88. package/dist/chunk-YNEDJTX2.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkHXDZ2QTW_cjs = require('./chunk-HXDZ2QTW.cjs');
3
+ var chunkMQB5H4X5_cjs = require('./chunk-MQB5H4X5.cjs');
4
4
  var chunk5BLDMQED_cjs = require('./chunk-5BLDMQED.cjs');
5
5
  var btcSigner = require('@scure/btc-signer');
6
6
  var base = require('@scure/base');
@@ -106,7 +106,7 @@ var VtxoTreeExpiry = {
106
106
  if (!checkKeyIncludes(unknown[0], "expiry" /* VtxoTreeExpiry */)) return null;
107
107
  const v = btcSigner.ScriptNum(6, true).decode(unknown[1]);
108
108
  if (!v) return null;
109
- return chunkHXDZ2QTW_cjs.sequenceToTimelock(Number(v));
109
+ return chunkMQB5H4X5_cjs.sequenceToTimelock(Number(v));
110
110
  })
111
111
  };
112
112
  var encodedPsbtFieldKey = Object.fromEntries(
@@ -124,6 +124,59 @@ function checkKeyIncludes(key, arkPsbtFieldKey) {
124
124
  return base.hex.encode(new Uint8Array([key.type, ...key.key])).includes(expected);
125
125
  }
126
126
 
127
+ // package.json
128
+ var version = "0.4.46";
129
+
130
+ // src/utils/fetch.ts
131
+ var buildVersion = "0.9.9";
132
+ var sdkVersion = `ts-sdk/${version}`;
133
+ var FetchError = class extends Error {
134
+ /** The request URL that failed, when derivable from the `fetch` input. */
135
+ url;
136
+ /** The HTTP method of the failed request (defaults to `"GET"`). */
137
+ method;
138
+ constructor(message, options) {
139
+ super(message, { cause: options.cause });
140
+ this.name = "FetchError";
141
+ this.url = options.url;
142
+ this.method = options.method;
143
+ }
144
+ };
145
+ function baseFetch(input, init) {
146
+ if (typeof globalThis.fetch !== "function") {
147
+ throw new Error("Fetch API is not available in this environment.");
148
+ }
149
+ return globalThis.fetch(input, init).catch((cause) => {
150
+ const { url, method } = describeRequest(input, init);
151
+ throw new FetchError(`Network request failed: ${method} ${url}`, { url, method, cause });
152
+ });
153
+ }
154
+ function fetch(input, init) {
155
+ const headers = new Headers(init?.headers);
156
+ headers.set("X-Build-Version", buildVersion);
157
+ headers.set("X-SDK-VERSION", sdkVersion);
158
+ return baseFetch(input, { ...init, headers });
159
+ }
160
+ function describeRequest(input, init) {
161
+ let url;
162
+ if (typeof input === "string") {
163
+ url = input;
164
+ } else if (input instanceof URL) {
165
+ url = input.href;
166
+ } else {
167
+ url = input.url;
168
+ }
169
+ let method;
170
+ if (init?.method !== void 0) {
171
+ method = init.method;
172
+ } else if (input instanceof Request) {
173
+ method = input.method;
174
+ } else {
175
+ method = "GET";
176
+ }
177
+ return { url, method };
178
+ }
179
+
127
180
  // src/providers/errors.ts
128
181
  var ArkError = class extends Error {
129
182
  constructor(code, message, name, metadata) {
@@ -133,7 +186,52 @@ var ArkError = class extends Error {
133
186
  this.name = name;
134
187
  this.metadata = metadata;
135
188
  }
189
+ code;
190
+ message;
191
+ name;
192
+ metadata;
193
+ };
194
+ var ArkErrorName = {
195
+ DIGEST_MISMATCH: "DIGEST_MISMATCH",
196
+ VTXO_ALREADY_SPENT: "VTXO_ALREADY_SPENT",
197
+ INVALID_TX_FILTER: "INVALID_TX_FILTER",
198
+ TX_FILTERS_LIMIT_EXCEEDED: "TX_FILTERS_LIMIT_EXCEEDED",
199
+ /**
200
+ * A CLTV closure was spent before its absolute locktime matured. Raised only by
201
+ * `submitTx` (never `finalizeTx`), with metadata
202
+ * `{ locktime, current_locktime, type: "height" | "time" }`.
203
+ *
204
+ * Self-healing, so defer and retry rather than fail: the server matures a
205
+ * seconds-locktime against the **chain tip block's timestamp**, not its wall clock,
206
+ * so a spend attempted promptly at maturity is rejected until a later block lands.
207
+ */
208
+ FORFEIT_CLOSURE_LOCKED: "FORFEIT_CLOSURE_LOCKED"
209
+ };
210
+ function isArkError(error, name) {
211
+ return error instanceof ArkError && (name === void 0 || error.name === name);
212
+ }
213
+ var ProviderUnavailableError = class extends Error {
214
+ /** Always `true`: this error type only ever wraps retryable conditions. */
215
+ retryable = true;
216
+ constructor(message, options) {
217
+ super(message, { cause: options?.cause });
218
+ this.name = "ProviderUnavailableError";
219
+ }
136
220
  };
221
+ function throwIfHttpUnavailable(response, kind, body) {
222
+ if (body !== void 0 && maybeArkError(new Error(body))) return;
223
+ if (response.status === 429 || response.status >= 500) {
224
+ throw new ProviderUnavailableError(
225
+ `${kind} unavailable: ${response.status} ${response.statusText}`
226
+ );
227
+ }
228
+ }
229
+ function toProviderUnavailable(err, kind) {
230
+ if (err instanceof FetchError) {
231
+ return new ProviderUnavailableError(`${kind} request failed`, { cause: err });
232
+ }
233
+ return err;
234
+ }
137
235
  function maybeArkError(error) {
138
236
  try {
139
237
  if (!(error instanceof Error)) return void 0;
@@ -331,8 +429,8 @@ function prepareCoinAsIntentProofInput(coin) {
331
429
  if (!("tapTree" in coin)) {
332
430
  return coin;
333
431
  }
334
- const vtxoScript = chunkHXDZ2QTW_cjs.VtxoScript.decode(coin.tapTree);
335
- const sequence = chunkHXDZ2QTW_cjs.getSequence(coin.intentTapLeafScript);
432
+ const vtxoScript = chunkMQB5H4X5_cjs.VtxoScript.decode(coin.tapTree);
433
+ const sequence = chunkMQB5H4X5_cjs.getSequence(coin.intentTapLeafScript);
336
434
  const unknown = [VtxoTaprootTree.encode(coin.tapTree)];
337
435
  if (coin.extraWitness) {
338
436
  unknown.push(ConditionWitness.encode(coin.extraWitness));
@@ -350,59 +448,6 @@ function prepareCoinAsIntentProofInput(coin) {
350
448
  };
351
449
  }
352
450
 
353
- // package.json
354
- var version = "0.4.44";
355
-
356
- // src/utils/fetch.ts
357
- var buildVersion = "0.9.9";
358
- var sdkVersion = `ts-sdk/${version}`;
359
- var FetchError = class extends Error {
360
- /** The request URL that failed, when derivable from the `fetch` input. */
361
- url;
362
- /** The HTTP method of the failed request (defaults to `"GET"`). */
363
- method;
364
- constructor(message, options) {
365
- super(message, { cause: options.cause });
366
- this.name = "FetchError";
367
- this.url = options.url;
368
- this.method = options.method;
369
- }
370
- };
371
- function baseFetch(input, init) {
372
- if (typeof globalThis.fetch !== "function") {
373
- throw new Error("Fetch API is not available in this environment.");
374
- }
375
- return globalThis.fetch(input, init).catch((cause) => {
376
- const { url, method } = describeRequest(input, init);
377
- throw new FetchError(`Network request failed: ${method} ${url}`, { url, method, cause });
378
- });
379
- }
380
- function fetch(input, init) {
381
- const headers = new Headers(init?.headers);
382
- headers.set("X-Build-Version", buildVersion);
383
- headers.set("X-SDK-VERSION", sdkVersion);
384
- return baseFetch(input, { ...init, headers });
385
- }
386
- function describeRequest(input, init) {
387
- let url;
388
- if (typeof input === "string") {
389
- url = input;
390
- } else if (input instanceof URL) {
391
- url = input.href;
392
- } else {
393
- url = input.url;
394
- }
395
- let method;
396
- if (init?.method !== void 0) {
397
- method = init.method;
398
- } else if (input instanceof Request) {
399
- method = input.method;
400
- } else {
401
- method = "GET";
402
- }
403
- return { url, method };
404
- }
405
-
406
451
  // src/providers/utils.ts
407
452
  function createAbortError() {
408
453
  const error = new Error("EventSource closed");
@@ -523,9 +568,10 @@ var SettlementEventType = /* @__PURE__ */ ((SettlementEventType2) => {
523
568
  return SettlementEventType2;
524
569
  })(SettlementEventType || {});
525
570
  var RestArkProvider = class {
526
- constructor(serverUrl = chunkHXDZ2QTW_cjs.DEFAULT_ARKADE_SERVER_URL) {
571
+ constructor(serverUrl = chunkMQB5H4X5_cjs.DEFAULT_ARKADE_SERVER_URL) {
527
572
  this.serverUrl = serverUrl;
528
573
  }
574
+ serverUrl;
529
575
  /**
530
576
  * Last server-info digest seen (from {@link getInfo}). Sent as `X-Digest`
531
577
  * on outgoing requests so arkd can reject a client whose cached info is
@@ -570,16 +616,24 @@ var RestArkProvider = class {
570
616
  ...init.headers
571
617
  };
572
618
  if (digest) headers["X-Digest"] = digest;
573
- const response = await fetch(url, { ...init, headers });
619
+ let response;
620
+ try {
621
+ response = await fetch(url, { ...init, headers });
622
+ } catch (err) {
623
+ throw toProviderUnavailable(err, "arkade");
624
+ }
574
625
  if (response.ok) return response;
575
626
  let body;
576
627
  try {
577
628
  body = await response.clone().text();
578
629
  } catch (e) {
579
630
  console.warn("authedFetch could not read response body for digest check", e);
631
+ throwIfHttpUnavailable(response, "arkade");
580
632
  return response;
581
633
  }
582
- if (maybeArkError(new Error(body))?.name !== "DIGEST_MISMATCH") return response;
634
+ const arkError = maybeArkError(new Error(body));
635
+ if (!arkError) throwIfHttpUnavailable(response, "arkade");
636
+ if (!isArkError(arkError, ArkErrorName.DIGEST_MISMATCH)) return response;
583
637
  this._digest = "";
584
638
  const info = await this.getInfo();
585
639
  this.emitServerInfoChanged(info);
@@ -592,6 +646,7 @@ var RestArkProvider = class {
592
646
  const response = await fetch(url);
593
647
  if (!response.ok) {
594
648
  const errorText = await response.text();
649
+ throwIfHttpUnavailable(response, "arkade", errorText);
595
650
  handleError(errorText, `Failed to get server info: ${response.statusText}`);
596
651
  }
597
652
  const fromServer = await response.json();
@@ -1240,6 +1295,8 @@ var AssetId = class _AssetId {
1240
1295
  this.txid = txid;
1241
1296
  this.groupIndex = groupIndex;
1242
1297
  }
1298
+ txid;
1299
+ groupIndex;
1243
1300
  /**
1244
1301
  * Create an asset id from a genesis transaction id and group index.
1245
1302
  *
@@ -1371,6 +1428,7 @@ var AssetRef = class _AssetRef {
1371
1428
  constructor(ref) {
1372
1429
  this.ref = ref;
1373
1430
  }
1431
+ ref;
1374
1432
  /** Reference type discriminator. */
1375
1433
  get type() {
1376
1434
  return this.ref.type;
@@ -1499,6 +1557,7 @@ var AssetInput = class _AssetInput {
1499
1557
  constructor(input) {
1500
1558
  this.input = input;
1501
1559
  }
1560
+ input;
1502
1561
  /** Gets the transaction input index for an asset input, e.g. 0 */
1503
1562
  get vin() {
1504
1563
  return this.input.vin;
@@ -1629,6 +1688,7 @@ var AssetInputs = class _AssetInputs {
1629
1688
  constructor(inputs) {
1630
1689
  this.inputs = inputs;
1631
1690
  }
1691
+ inputs;
1632
1692
  /** Create a validated list of asset inputs. */
1633
1693
  static create(inputs) {
1634
1694
  const list = new _AssetInputs(inputs);
@@ -1701,6 +1761,8 @@ var AssetOutput = class _AssetOutput {
1701
1761
  this.vout = vout;
1702
1762
  this.amount = amount;
1703
1763
  }
1764
+ vout;
1765
+ amount;
1704
1766
  // 0x01 means local output, there is only 1 local output type currently
1705
1767
  // however we serialize it for future upgrades
1706
1768
  static TYPE_LOCAL = 1;
@@ -1781,6 +1843,7 @@ var AssetOutputs = class _AssetOutputs {
1781
1843
  constructor(outputs) {
1782
1844
  this.outputs = outputs;
1783
1845
  }
1846
+ outputs;
1784
1847
  /** Create a validated list of asset outputs. */
1785
1848
  static create(outputs) {
1786
1849
  const list = new _AssetOutputs(outputs);
@@ -1850,6 +1913,8 @@ var Metadata = class _Metadata {
1850
1913
  this.key = key;
1851
1914
  this.value = value;
1852
1915
  }
1916
+ key;
1917
+ value;
1853
1918
  /** Create a metadata entry from raw key and value bytes. */
1854
1919
  static create(key, value) {
1855
1920
  const md = new _Metadata(key, value);
@@ -1927,6 +1992,7 @@ var MetadataList = class _MetadataList {
1927
1992
  constructor(items) {
1928
1993
  this.items = items;
1929
1994
  }
1995
+ items;
1930
1996
  static ARK_LEAF_TAG = "ArkadeAssetLeaf";
1931
1997
  static ARK_BRANCH_TAG = "ArkadeAssetBranch";
1932
1998
  static ARK_LEAF_VERSION = 0;
@@ -2020,6 +2086,10 @@ var AssetGroup = class _AssetGroup {
2020
2086
  this.outputs = outputs;
2021
2087
  this.metadataList = new MetadataList(metadata);
2022
2088
  }
2089
+ assetId;
2090
+ controlAsset;
2091
+ inputs;
2092
+ outputs;
2023
2093
  metadataList;
2024
2094
  /**
2025
2095
  * Create and validate an asset group.
@@ -2216,6 +2286,7 @@ var Packet = class _Packet {
2216
2286
  constructor(groups) {
2217
2287
  this.groups = groups;
2218
2288
  }
2289
+ groups;
2219
2290
  /** PACKET_TYPE is the 1-byte TLV type tag used in the Extension envelope. */
2220
2291
  static PACKET_TYPE = 0;
2221
2292
  /** Create a validated asset packet from a list of asset groups. */
@@ -2315,6 +2386,24 @@ var Packet = class _Packet {
2315
2386
  return packet;
2316
2387
  }
2317
2388
  };
2389
+ async function indexerFetch(input, init) {
2390
+ let res;
2391
+ try {
2392
+ res = await baseFetch(input, init);
2393
+ } catch (err) {
2394
+ throw toProviderUnavailable(err, "indexer");
2395
+ }
2396
+ if (!res.ok) {
2397
+ let body;
2398
+ try {
2399
+ body = await res.clone().text();
2400
+ } catch {
2401
+ body = void 0;
2402
+ }
2403
+ throwIfHttpUnavailable(res, "indexer", body);
2404
+ }
2405
+ return res;
2406
+ }
2318
2407
  var IndexerTxType = /* @__PURE__ */ ((IndexerTxType2) => {
2319
2408
  IndexerTxType2[IndexerTxType2["INDEXER_TX_TYPE_UNSPECIFIED"] = 0] = "INDEXER_TX_TYPE_UNSPECIFIED";
2320
2409
  IndexerTxType2[IndexerTxType2["INDEXER_TX_TYPE_RECEIVED"] = 1] = "INDEXER_TX_TYPE_RECEIVED";
@@ -2330,9 +2419,10 @@ var ChainTxType = /* @__PURE__ */ ((ChainTxType2) => {
2330
2419
  return ChainTxType2;
2331
2420
  })(ChainTxType || {});
2332
2421
  var RestIndexerProvider = class {
2333
- constructor(serverUrl = chunkHXDZ2QTW_cjs.DEFAULT_ARKADE_SERVER_URL) {
2422
+ constructor(serverUrl = chunkMQB5H4X5_cjs.DEFAULT_ARKADE_SERVER_URL) {
2334
2423
  this.serverUrl = serverUrl;
2335
2424
  }
2425
+ serverUrl;
2336
2426
  async getVtxoTree(batchOutpoint, opts) {
2337
2427
  let url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/tree`;
2338
2428
  const params = new URLSearchParams();
@@ -2344,7 +2434,7 @@ var RestIndexerProvider = class {
2344
2434
  if (params.toString()) {
2345
2435
  url += "?" + params.toString();
2346
2436
  }
2347
- const res = await baseFetch(url);
2437
+ const res = await indexerFetch(url);
2348
2438
  if (!res.ok) {
2349
2439
  throw new Error(`Failed to fetch vtxo tree: ${res.statusText}`);
2350
2440
  }
@@ -2370,7 +2460,7 @@ var RestIndexerProvider = class {
2370
2460
  if (params.toString()) {
2371
2461
  url += "?" + params.toString();
2372
2462
  }
2373
- const res = await baseFetch(url);
2463
+ const res = await indexerFetch(url);
2374
2464
  if (!res.ok) {
2375
2465
  throw new Error(`Failed to fetch vtxo tree leaves: ${res.statusText}`);
2376
2466
  }
@@ -2382,7 +2472,7 @@ var RestIndexerProvider = class {
2382
2472
  }
2383
2473
  async getBatchSweepTransactions(batchOutpoint) {
2384
2474
  const url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/sweepTxs`;
2385
- const res = await baseFetch(url);
2475
+ const res = await indexerFetch(url);
2386
2476
  if (!res.ok) {
2387
2477
  throw new Error(`Failed to fetch batch sweep transactions: ${res.statusText}`);
2388
2478
  }
@@ -2394,7 +2484,7 @@ var RestIndexerProvider = class {
2394
2484
  }
2395
2485
  async getCommitmentTx(txid) {
2396
2486
  const url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}`;
2397
- const res = await baseFetch(url);
2487
+ const res = await indexerFetch(url);
2398
2488
  if (!res.ok) {
2399
2489
  throw new Error(`Failed to fetch commitment tx: ${res.statusText}`);
2400
2490
  }
@@ -2415,7 +2505,7 @@ var RestIndexerProvider = class {
2415
2505
  if (params.toString()) {
2416
2506
  url += "?" + params.toString();
2417
2507
  }
2418
- const res = await baseFetch(url);
2508
+ const res = await indexerFetch(url);
2419
2509
  if (!res.ok) {
2420
2510
  throw new Error(`Failed to fetch commitment tx connectors: ${res.statusText}`);
2421
2511
  }
@@ -2441,7 +2531,7 @@ var RestIndexerProvider = class {
2441
2531
  if (params.toString()) {
2442
2532
  url += "?" + params.toString();
2443
2533
  }
2444
- const res = await baseFetch(url);
2534
+ const res = await indexerFetch(url);
2445
2535
  if (!res.ok) {
2446
2536
  throw new Error(`Failed to fetch commitment tx forfeitTxs: ${res.statusText}`);
2447
2537
  }
@@ -2524,7 +2614,7 @@ var RestIndexerProvider = class {
2524
2614
  if (params.toString()) {
2525
2615
  url += "?" + params.toString();
2526
2616
  }
2527
- const res = await baseFetch(url);
2617
+ const res = await indexerFetch(url);
2528
2618
  if (!res.ok) {
2529
2619
  throw new Error(`Failed to fetch virtual txs: ${res.statusText}`);
2530
2620
  }
@@ -2545,7 +2635,7 @@ var RestIndexerProvider = class {
2545
2635
  if (params.toString()) {
2546
2636
  url += "?" + params.toString();
2547
2637
  }
2548
- const res = await baseFetch(url);
2638
+ const res = await indexerFetch(url);
2549
2639
  if (!res.ok) {
2550
2640
  throw new Error(`Failed to fetch vtxo chain: ${res.statusText}`);
2551
2641
  }
@@ -2564,12 +2654,16 @@ var RestIndexerProvider = class {
2564
2654
  if (!hasScripts && !hasOutpoints) {
2565
2655
  throw new Error("Either scripts or outpoints must be provided");
2566
2656
  }
2567
- const filterCount = [opts?.spendableOnly, opts?.spentOnly, opts?.recoverableOnly].filter(
2568
- Boolean
2569
- ).length;
2657
+ const filterCount = [
2658
+ opts?.spendableOnly,
2659
+ opts?.spentOnly,
2660
+ opts?.recoverableOnly,
2661
+ opts?.pendingOnly,
2662
+ opts?.renewableOnly
2663
+ ].filter(Boolean).length;
2570
2664
  if (filterCount > 1) {
2571
2665
  throw new Error(
2572
- "spendableOnly, spentOnly, and recoverableOnly are mutually exclusive options"
2666
+ "spendableOnly, spentOnly, recoverableOnly, pendingOnly, and renewableOnly are mutually exclusive options"
2573
2667
  );
2574
2668
  }
2575
2669
  if (opts?.after !== void 0 && opts?.before !== void 0 && opts.after !== 0 && opts.before !== 0 && opts.before <= opts.after) {
@@ -2595,6 +2689,8 @@ var RestIndexerProvider = class {
2595
2689
  params.append("recoverableOnly", opts.recoverableOnly.toString());
2596
2690
  if (opts.pendingOnly !== void 0)
2597
2691
  params.append("pendingOnly", opts.pendingOnly.toString());
2692
+ if (opts.renewableOnly !== void 0)
2693
+ params.append("renewableOnly", opts.renewableOnly.toString());
2598
2694
  if (opts.after !== void 0) params.append("after", opts.after.toString());
2599
2695
  if (opts.before !== void 0) params.append("before", opts.before.toString());
2600
2696
  if (opts.pageIndex !== void 0)
@@ -2604,7 +2700,7 @@ var RestIndexerProvider = class {
2604
2700
  if (params.toString()) {
2605
2701
  url += "?" + params.toString();
2606
2702
  }
2607
- const res = await baseFetch(url);
2703
+ const res = await indexerFetch(url);
2608
2704
  if (!res.ok) {
2609
2705
  throw new Error(`Failed to fetch vtxos: ${res.statusText}`);
2610
2706
  }
@@ -2619,7 +2715,7 @@ var RestIndexerProvider = class {
2619
2715
  }
2620
2716
  async getAssetDetails(assetId) {
2621
2717
  const url = `${this.serverUrl}/v1/indexer/asset/${encodeURIComponent(assetId)}`;
2622
- const res = await baseFetch(url);
2718
+ const res = await indexerFetch(url);
2623
2719
  if (!res.ok) {
2624
2720
  throw new Error(`Failed to fetch asset details: ${res.statusText}`);
2625
2721
  }
@@ -2637,7 +2733,7 @@ var RestIndexerProvider = class {
2637
2733
  }
2638
2734
  async subscribeForScripts(scripts, subscriptionId) {
2639
2735
  const url = `${this.serverUrl}/v1/indexer/script/subscribe`;
2640
- const res = await baseFetch(url, {
2736
+ const res = await indexerFetch(url, {
2641
2737
  headers: {
2642
2738
  "Content-Type": "application/json"
2643
2739
  },
@@ -2654,7 +2750,7 @@ var RestIndexerProvider = class {
2654
2750
  }
2655
2751
  async unsubscribeForScripts(subscriptionId, scripts) {
2656
2752
  const url = `${this.serverUrl}/v1/indexer/script/unsubscribe`;
2657
- const res = await baseFetch(url, {
2753
+ const res = await indexerFetch(url, {
2658
2754
  headers: {
2659
2755
  "Content-Type": "application/json"
2660
2756
  },
@@ -2810,6 +2906,7 @@ var Response;
2810
2906
  })(Response || (Response = {}));
2811
2907
 
2812
2908
  exports.ArkError = ArkError;
2909
+ exports.ArkErrorName = ArkErrorName;
2813
2910
  exports.ArkPsbtFieldKey = ArkPsbtFieldKey;
2814
2911
  exports.ArkPsbtFieldKeyType = ArkPsbtFieldKeyType;
2815
2912
  exports.AssetGroup = AssetGroup;
@@ -2827,6 +2924,7 @@ exports.IndexerTxType = IndexerTxType;
2827
2924
  exports.Metadata = Metadata;
2828
2925
  exports.OP_RETURN_EMPTY_PKSCRIPT = OP_RETURN_EMPTY_PKSCRIPT;
2829
2926
  exports.Packet = Packet;
2927
+ exports.ProviderUnavailableError = ProviderUnavailableError;
2830
2928
  exports.RestArkProvider = RestArkProvider;
2831
2929
  exports.RestIndexerProvider = RestIndexerProvider;
2832
2930
  exports.SettlementEventType = SettlementEventType;
@@ -2839,10 +2937,11 @@ exports.buildVersion = buildVersion;
2839
2937
  exports.craftToSpendTx = craftToSpendTx;
2840
2938
  exports.fetch = fetch;
2841
2939
  exports.getArkPsbtFields = getArkPsbtFields;
2940
+ exports.isArkError = isArkError;
2842
2941
  exports.isEventSourceError = isEventSourceError;
2843
2942
  exports.isFetchTimeoutError = isFetchTimeoutError;
2844
2943
  exports.maybeArkError = maybeArkError;
2845
2944
  exports.sdkVersion = sdkVersion;
2846
2945
  exports.setArkPsbtField = setArkPsbtField;
2847
- //# sourceMappingURL=chunk-UBYY2TPK.cjs.map
2848
- //# sourceMappingURL=chunk-UBYY2TPK.cjs.map
2946
+ //# sourceMappingURL=chunk-7IYIFMF4.cjs.map
2947
+ //# sourceMappingURL=chunk-7IYIFMF4.cjs.map