@arkade-os/sdk 0.4.33 → 0.4.35

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 (84) hide show
  1. package/README.md +1 -1
  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-DEsDMYGv.d.cts → ark-D6sau_6-.d.cts} +522 -9
  9. package/dist/{ark-DEsDMYGv.d.ts → ark-D6sau_6-.d.ts} +522 -9
  10. package/dist/{asyncStorageTaskQueue-D8T1VXEx.d.cts → asyncStorageTaskQueue-CpC027t_.d.cts} +2 -2
  11. package/dist/{asyncStorageTaskQueue-CMrTYlKG.d.ts → asyncStorageTaskQueue-GT8fmPUG.d.ts} +2 -2
  12. package/dist/{chunk-E22HEKLN.js → chunk-3JR77WQ4.js} +140 -42
  13. package/dist/chunk-3JR77WQ4.js.map +1 -0
  14. package/dist/{chunk-WMIPYZSB.cjs → chunk-CMPJR3HS.cjs} +42 -9
  15. package/dist/chunk-CMPJR3HS.cjs.map +1 -0
  16. package/dist/{chunk-AOJUURHM.js → chunk-CUSABEUQ.js} +141 -37
  17. package/dist/chunk-CUSABEUQ.js.map +1 -0
  18. package/dist/{chunk-HAVA4XB7.cjs → chunk-FM7T7JVL.cjs} +7 -7
  19. package/dist/{chunk-HAVA4XB7.cjs.map → chunk-FM7T7JVL.cjs.map} +1 -1
  20. package/dist/{chunk-GYSK5R57.cjs → chunk-GUTKJMSF.cjs} +164 -59
  21. package/dist/chunk-GUTKJMSF.cjs.map +1 -0
  22. package/dist/{chunk-7K3ROJF6.cjs → chunk-H2LX2KKY.cjs} +2161 -466
  23. package/dist/chunk-H2LX2KKY.cjs.map +1 -0
  24. package/dist/{chunk-DSS2GQUG.js → chunk-NOR7XOKN.js} +2021 -331
  25. package/dist/chunk-NOR7XOKN.js.map +1 -0
  26. package/dist/{chunk-BU3BU6XK.js → chunk-OURFR4UR.js} +3 -3
  27. package/dist/{chunk-BU3BU6XK.js.map → chunk-OURFR4UR.js.map} +1 -1
  28. package/dist/{chunk-TU3LVAPX.js → chunk-OUVTG72A.js} +43 -11
  29. package/dist/chunk-OUVTG72A.js.map +1 -0
  30. package/dist/{chunk-5CCRRL5S.cjs → chunk-VYS3KGRI.cjs} +19 -13
  31. package/dist/chunk-VYS3KGRI.cjs.map +1 -0
  32. package/dist/{chunk-SPDNHPM4.cjs → chunk-X2EQLK4O.cjs} +149 -46
  33. package/dist/chunk-X2EQLK4O.cjs.map +1 -0
  34. package/dist/{chunk-L6ZETTX3.js → chunk-XQS2HW4Q.js} +11 -5
  35. package/dist/chunk-XQS2HW4Q.js.map +1 -0
  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-BJeBNP5a.d.cts → delegate-C-L6gSZx.d.cts} +1 -1
  41. package/dist/{delegate-EXN2mfkb.d.ts → delegate-De5__fpZ.d.ts} +1 -1
  42. package/dist/{index-BG2ooYKO.d.ts → index-BETdjE_o.d.ts} +22 -16
  43. package/dist/{index-DHjEeHEp.d.cts → index-jwQfHP6D.d.cts} +22 -16
  44. package/dist/index.cjs +158 -130
  45. package/dist/index.d.cts +125 -16
  46. package/dist/index.d.ts +125 -16
  47. package/dist/index.js +4 -4
  48. package/dist/repositories/realm/index.cjs +14 -14
  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 +5 -5
  53. package/dist/repositories/realm/index.js.map +1 -1
  54. package/dist/repositories/sqlite/index.cjs +13 -13
  55. package/dist/repositories/sqlite/index.d.cts +1 -1
  56. package/dist/repositories/sqlite/index.d.ts +1 -1
  57. package/dist/repositories/sqlite/index.js +4 -4
  58. package/dist/{taskRunner-pIGyarFG.d.cts → taskRunner-DCyp6Gea.d.cts} +2 -2
  59. package/dist/{taskRunner-B7lBU45X.d.ts → taskRunner-DnxtObeq.d.ts} +2 -2
  60. package/dist/wallet/expo/background.cjs +14 -14
  61. package/dist/wallet/expo/background.d.cts +3 -3
  62. package/dist/wallet/expo/background.d.ts +3 -3
  63. package/dist/wallet/expo/background.js +6 -6
  64. package/dist/wallet/expo/index.cjs +13 -13
  65. package/dist/wallet/expo/index.d.cts +5 -5
  66. package/dist/wallet/expo/index.d.ts +5 -5
  67. package/dist/wallet/expo/index.js +5 -5
  68. package/dist/{wallet-D4Dll5Gu.d.cts → wallet-BWHbd5b1.d.cts} +388 -10
  69. package/dist/{wallet-C4L_X0i6.d.ts → wallet-Bth5uucA.d.ts} +388 -10
  70. package/dist/worker/expo/index.cjs +9 -9
  71. package/dist/worker/expo/index.d.cts +4 -4
  72. package/dist/worker/expo/index.d.ts +4 -4
  73. package/dist/worker/expo/index.js +5 -5
  74. package/package.json +5 -5
  75. package/dist/chunk-5CCRRL5S.cjs.map +0 -1
  76. package/dist/chunk-7K3ROJF6.cjs.map +0 -1
  77. package/dist/chunk-AOJUURHM.js.map +0 -1
  78. package/dist/chunk-DSS2GQUG.js.map +0 -1
  79. package/dist/chunk-E22HEKLN.js.map +0 -1
  80. package/dist/chunk-GYSK5R57.cjs.map +0 -1
  81. package/dist/chunk-L6ZETTX3.js.map +0 -1
  82. package/dist/chunk-SPDNHPM4.cjs.map +0 -1
  83. package/dist/chunk-TU3LVAPX.js.map +0 -1
  84. package/dist/chunk-WMIPYZSB.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWMIPYZSB_cjs = require('./chunk-WMIPYZSB.cjs');
3
+ var chunkCMPJR3HS_cjs = require('./chunk-CMPJR3HS.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 chunkWMIPYZSB_cjs.sequenceToTimelock(Number(v));
109
+ return chunkCMPJR3HS_cjs.sequenceToTimelock(Number(v));
110
110
  })
111
111
  };
112
112
  var encodedPsbtFieldKey = Object.fromEntries(
@@ -138,23 +138,27 @@ function maybeArkError(error) {
138
138
  try {
139
139
  if (!(error instanceof Error)) return void 0;
140
140
  const decoded = JSON.parse(error.message);
141
- if (!("details" in decoded)) return void 0;
142
- if (!Array.isArray(decoded.details)) return void 0;
143
- for (const details of decoded.details) {
144
- if (!("@type" in details)) continue;
145
- const type = details["@type"];
146
- if (type !== "type.googleapis.com/ark.v1.ErrorDetails") continue;
147
- if (!("code" in details)) continue;
148
- const code = details.code;
149
- if (!("message" in details)) continue;
150
- const message = details.message;
151
- if (!("name" in details)) continue;
152
- const name = details.name;
153
- let metadata;
154
- if ("metadata" in details && isMetadata(details.metadata)) {
155
- metadata = details.metadata;
141
+ if (Array.isArray(decoded.details)) {
142
+ for (const details of decoded.details) {
143
+ if (!("@type" in details)) continue;
144
+ const type = details["@type"];
145
+ if (type !== "type.googleapis.com/ark.v1.ErrorDetails") continue;
146
+ if (!("code" in details)) continue;
147
+ const code = details.code;
148
+ if (!("message" in details)) continue;
149
+ const message = details.message;
150
+ if (!("name" in details)) continue;
151
+ const name = details.name;
152
+ let metadata;
153
+ if ("metadata" in details && isMetadata(details.metadata)) {
154
+ metadata = details.metadata;
155
+ }
156
+ return new ArkError(code, message, name, metadata);
156
157
  }
157
- return new ArkError(code, message, name, metadata);
158
+ }
159
+ if (typeof decoded.message === "string") {
160
+ const m = decoded.message.match(/^([A-Z][A-Z0-9_]*) \((\d+)\): ([\s\S]*)$/);
161
+ if (m) return new ArkError(Number(m[2]), m[3], m[1]);
158
162
  }
159
163
  return void 0;
160
164
  } catch (e) {
@@ -318,8 +322,8 @@ function prepareCoinAsIntentProofInput(coin) {
318
322
  if (!("tapTree" in coin)) {
319
323
  return coin;
320
324
  }
321
- const vtxoScript = chunkWMIPYZSB_cjs.VtxoScript.decode(coin.tapTree);
322
- const sequence = chunkWMIPYZSB_cjs.getSequence(coin.intentTapLeafScript);
325
+ const vtxoScript = chunkCMPJR3HS_cjs.VtxoScript.decode(coin.tapTree);
326
+ const sequence = chunkCMPJR3HS_cjs.getSequence(coin.intentTapLeafScript);
323
327
  const unknown = [VtxoTaprootTree.encode(coin.tapTree)];
324
328
  if (coin.extraWitness) {
325
329
  unknown.push(ConditionWitness.encode(coin.extraWitness));
@@ -437,7 +441,32 @@ function isEventSourceError(error) {
437
441
  return error instanceof Error && error.name === "EventSourceError";
438
442
  }
439
443
 
444
+ // package.json
445
+ var version = "0.4.35";
446
+
447
+ // src/utils/fetch.ts
448
+ var buildVersion = "0.9.9";
449
+ var sdkVersion = `ts-sdk/${version}`;
450
+ function baseFetch(input, init) {
451
+ if (typeof globalThis.fetch !== "function") {
452
+ throw new Error("Fetch API is not available in this environment.");
453
+ }
454
+ return globalThis.fetch(input, init);
455
+ }
456
+ function fetch(input, init) {
457
+ const headers = new Headers(init?.headers);
458
+ headers.set("X-Build-Version", buildVersion);
459
+ headers.set("X-SDK-VERSION", sdkVersion);
460
+ return baseFetch(input, { ...init, headers });
461
+ }
462
+
440
463
  // src/providers/ark.ts
464
+ var DigestMismatchError = class extends Error {
465
+ constructor(message) {
466
+ super(message);
467
+ this.name = "DigestMismatchError";
468
+ }
469
+ };
441
470
  var SettlementEventType = /* @__PURE__ */ ((SettlementEventType2) => {
442
471
  SettlementEventType2["BatchStarted"] = "batch_started";
443
472
  SettlementEventType2["BatchFinalization"] = "batch_finalization";
@@ -451,9 +480,70 @@ var SettlementEventType = /* @__PURE__ */ ((SettlementEventType2) => {
451
480
  return SettlementEventType2;
452
481
  })(SettlementEventType || {});
453
482
  var RestArkProvider = class {
454
- constructor(serverUrl = chunkWMIPYZSB_cjs.DEFAULT_ARKADE_SERVER_URL) {
483
+ constructor(serverUrl = chunkCMPJR3HS_cjs.DEFAULT_ARKADE_SERVER_URL) {
455
484
  this.serverUrl = serverUrl;
456
485
  }
486
+ /**
487
+ * Last server-info digest seen (from {@link getInfo}). Sent as `X-Digest`
488
+ * on outgoing requests so arkd can reject a client whose cached info is
489
+ * stale. Empty until the first {@link getInfo}.
490
+ */
491
+ _digest = "";
492
+ _serverInfoListeners = /* @__PURE__ */ new Set();
493
+ /**
494
+ * Subscribe to server-info changes. Fired when a request is rejected with
495
+ * `DIGEST_MISMATCH` and fresh info is re-fetched, so consumers (the wallet)
496
+ * can re-derive signer-dependent state mid-session without polling. Returns
497
+ * an unsubscribe function.
498
+ */
499
+ onServerInfoChanged(listener) {
500
+ this._serverInfoListeners.add(listener);
501
+ return () => {
502
+ this._serverInfoListeners.delete(listener);
503
+ };
504
+ }
505
+ emitServerInfoChanged(info) {
506
+ for (const listener of this._serverInfoListeners) {
507
+ try {
508
+ listener(info);
509
+ } catch (e) {
510
+ console.warn("onServerInfoChanged listener threw", e);
511
+ }
512
+ }
513
+ }
514
+ /**
515
+ * `fetch` wrapper for arkd requests that participates in server-info digest
516
+ * negotiation. Sends the cached `X-Digest`; when arkd rejects a request with
517
+ * `DIGEST_MISMATCH`, refreshes {@link getInfo} (updating the digest), fires
518
+ * {@link onServerInfoChanged}, and THROWS {@link DigestMismatchError} — it
519
+ * never silently retries, since the in-flight request was built against the
520
+ * now-stale config. Dormant until arkd returns the error — then it is the
521
+ * instant, event-driven signer-rotation trigger. {@link getInfo} itself never
522
+ * routes through here: it is the refresh path and must not be digest-gated.
523
+ */
524
+ async authedFetch(url, init) {
525
+ const digest = this._digest;
526
+ const headers = {
527
+ ...init.headers
528
+ };
529
+ if (digest) headers["X-Digest"] = digest;
530
+ const response = await fetch(url, { ...init, headers });
531
+ if (response.ok) return response;
532
+ let body;
533
+ try {
534
+ body = await response.clone().text();
535
+ } catch (e) {
536
+ console.warn("authedFetch could not read response body for digest check", e);
537
+ return response;
538
+ }
539
+ if (maybeArkError(new Error(body))?.name !== "DIGEST_MISMATCH") return response;
540
+ this._digest = "";
541
+ const info = await this.getInfo();
542
+ this.emitServerInfoChanged(info);
543
+ throw new DigestMismatchError(
544
+ "Arkade server reported a configuration digest mismatch; server info was refreshed. Rebuild and retry the request under the new server info."
545
+ );
546
+ }
457
547
  async getInfo() {
458
548
  const url = `${this.serverUrl}/v1/info`;
459
549
  const response = await fetch(url);
@@ -462,10 +552,16 @@ var RestArkProvider = class {
462
552
  handleError(errorText, `Failed to get server info: ${response.statusText}`);
463
553
  }
464
554
  const fromServer = await response.json();
465
- return {
555
+ const info = {
466
556
  boardingExitDelay: BigInt(fromServer.boardingExitDelay ?? 0),
467
557
  checkpointTapscript: fromServer.checkpointTapscript ?? "",
468
558
  deprecatedSigners: fromServer.deprecatedSigners?.map((signer) => ({
559
+ // arkd advertises `cutoffDate` as a non-nullable field, so it
560
+ // is always a bigint here — `0n` is the sentinel for "no
561
+ // cutoff" (the classifier maps it to DUE_NOW). The grpc-gateway
562
+ // marshals with EmitUnpopulated, so an unset `cutoff_date`
563
+ // already arrives as `"0"`; a genuinely missing field defaults
564
+ // to `0n` too. Never collapse to `undefined`.
469
565
  cutoffDate: BigInt(signer.cutoffDate ?? 0),
470
566
  pubkey: signer.pubkey ?? ""
471
567
  })) ?? [],
@@ -495,10 +591,12 @@ var RestArkProvider = class {
495
591
  vtxoMaxAmount: BigInt(fromServer.vtxoMaxAmount ?? -1),
496
592
  vtxoMinAmount: BigInt(fromServer.vtxoMinAmount ?? 0)
497
593
  };
594
+ this._digest = info.digest;
595
+ return info;
498
596
  }
499
597
  async submitTx(signedArkTx, checkpointTxs) {
500
598
  const url = `${this.serverUrl}/v1/tx/submit`;
501
- const response = await fetch(url, {
599
+ const response = await this.authedFetch(url, {
502
600
  method: "POST",
503
601
  headers: {
504
602
  "Content-Type": "application/json"
@@ -521,7 +619,7 @@ var RestArkProvider = class {
521
619
  }
522
620
  async finalizeTx(arkTxid, finalCheckpointTxs) {
523
621
  const url = `${this.serverUrl}/v1/tx/finalize`;
524
- const response = await fetch(url, {
622
+ const response = await this.authedFetch(url, {
525
623
  method: "POST",
526
624
  headers: {
527
625
  "Content-Type": "application/json"
@@ -538,7 +636,7 @@ var RestArkProvider = class {
538
636
  }
539
637
  async registerIntent(intent) {
540
638
  const url = `${this.serverUrl}/v1/batch/registerIntent`;
541
- const response = await fetch(url, {
639
+ const response = await this.authedFetch(url, {
542
640
  method: "POST",
543
641
  headers: {
544
642
  "Content-Type": "application/json"
@@ -559,7 +657,7 @@ var RestArkProvider = class {
559
657
  }
560
658
  async deleteIntent(intent) {
561
659
  const url = `${this.serverUrl}/v1/batch/deleteIntent`;
562
- const response = await fetch(url, {
660
+ const response = await this.authedFetch(url, {
563
661
  method: "POST",
564
662
  headers: {
565
663
  "Content-Type": "application/json"
@@ -578,7 +676,7 @@ var RestArkProvider = class {
578
676
  }
579
677
  async confirmRegistration(intentId) {
580
678
  const url = `${this.serverUrl}/v1/batch/ack`;
581
- const response = await fetch(url, {
679
+ const response = await this.authedFetch(url, {
582
680
  method: "POST",
583
681
  headers: {
584
682
  "Content-Type": "application/json"
@@ -594,7 +692,7 @@ var RestArkProvider = class {
594
692
  }
595
693
  async submitTreeNonces(batchId, pubkey, nonces) {
596
694
  const url = `${this.serverUrl}/v1/batch/tree/submitNonces`;
597
- const response = await fetch(url, {
695
+ const response = await this.authedFetch(url, {
598
696
  method: "POST",
599
697
  headers: {
600
698
  "Content-Type": "application/json"
@@ -612,7 +710,7 @@ var RestArkProvider = class {
612
710
  }
613
711
  async submitTreeSignatures(batchId, pubkey, signatures) {
614
712
  const url = `${this.serverUrl}/v1/batch/tree/submitSignatures`;
615
- const response = await fetch(url, {
713
+ const response = await this.authedFetch(url, {
616
714
  method: "POST",
617
715
  headers: {
618
716
  "Content-Type": "application/json"
@@ -630,7 +728,7 @@ var RestArkProvider = class {
630
728
  }
631
729
  async submitSignedForfeitTxs(signedForfeitTxs, signedCommitmentTx) {
632
730
  const url = `${this.serverUrl}/v1/batch/submitForfeitTxs`;
633
- const response = await fetch(url, {
731
+ const response = await this.authedFetch(url, {
634
732
  method: "POST",
635
733
  headers: {
636
734
  "Content-Type": "application/json"
@@ -760,7 +858,7 @@ var RestArkProvider = class {
760
858
  }
761
859
  async getPendingTxs(intent) {
762
860
  const url = `${this.serverUrl}/v1/tx/pending`;
763
- const response = await fetch(url, {
861
+ const response = await this.authedFetch(url, {
764
862
  method: "POST",
765
863
  headers: {
766
864
  "Content-Type": "application/json"
@@ -2189,7 +2287,7 @@ var ChainTxType = /* @__PURE__ */ ((ChainTxType2) => {
2189
2287
  return ChainTxType2;
2190
2288
  })(ChainTxType || {});
2191
2289
  var RestIndexerProvider = class {
2192
- constructor(serverUrl = chunkWMIPYZSB_cjs.DEFAULT_ARKADE_SERVER_URL) {
2290
+ constructor(serverUrl = chunkCMPJR3HS_cjs.DEFAULT_ARKADE_SERVER_URL) {
2193
2291
  this.serverUrl = serverUrl;
2194
2292
  }
2195
2293
  async getVtxoTree(batchOutpoint, opts) {
@@ -2203,7 +2301,7 @@ var RestIndexerProvider = class {
2203
2301
  if (params.toString()) {
2204
2302
  url += "?" + params.toString();
2205
2303
  }
2206
- const res = await fetch(url);
2304
+ const res = await baseFetch(url);
2207
2305
  if (!res.ok) {
2208
2306
  throw new Error(`Failed to fetch vtxo tree: ${res.statusText}`);
2209
2307
  }
@@ -2229,7 +2327,7 @@ var RestIndexerProvider = class {
2229
2327
  if (params.toString()) {
2230
2328
  url += "?" + params.toString();
2231
2329
  }
2232
- const res = await fetch(url);
2330
+ const res = await baseFetch(url);
2233
2331
  if (!res.ok) {
2234
2332
  throw new Error(`Failed to fetch vtxo tree leaves: ${res.statusText}`);
2235
2333
  }
@@ -2241,7 +2339,7 @@ var RestIndexerProvider = class {
2241
2339
  }
2242
2340
  async getBatchSweepTransactions(batchOutpoint) {
2243
2341
  const url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/sweepTxs`;
2244
- const res = await fetch(url);
2342
+ const res = await baseFetch(url);
2245
2343
  if (!res.ok) {
2246
2344
  throw new Error(`Failed to fetch batch sweep transactions: ${res.statusText}`);
2247
2345
  }
@@ -2253,7 +2351,7 @@ var RestIndexerProvider = class {
2253
2351
  }
2254
2352
  async getCommitmentTx(txid) {
2255
2353
  const url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}`;
2256
- const res = await fetch(url);
2354
+ const res = await baseFetch(url);
2257
2355
  if (!res.ok) {
2258
2356
  throw new Error(`Failed to fetch commitment tx: ${res.statusText}`);
2259
2357
  }
@@ -2274,7 +2372,7 @@ var RestIndexerProvider = class {
2274
2372
  if (params.toString()) {
2275
2373
  url += "?" + params.toString();
2276
2374
  }
2277
- const res = await fetch(url);
2375
+ const res = await baseFetch(url);
2278
2376
  if (!res.ok) {
2279
2377
  throw new Error(`Failed to fetch commitment tx connectors: ${res.statusText}`);
2280
2378
  }
@@ -2300,7 +2398,7 @@ var RestIndexerProvider = class {
2300
2398
  if (params.toString()) {
2301
2399
  url += "?" + params.toString();
2302
2400
  }
2303
- const res = await fetch(url);
2401
+ const res = await baseFetch(url);
2304
2402
  if (!res.ok) {
2305
2403
  throw new Error(`Failed to fetch commitment tx forfeitTxs: ${res.statusText}`);
2306
2404
  }
@@ -2383,7 +2481,7 @@ var RestIndexerProvider = class {
2383
2481
  if (params.toString()) {
2384
2482
  url += "?" + params.toString();
2385
2483
  }
2386
- const res = await fetch(url);
2484
+ const res = await baseFetch(url);
2387
2485
  if (!res.ok) {
2388
2486
  throw new Error(`Failed to fetch virtual txs: ${res.statusText}`);
2389
2487
  }
@@ -2404,7 +2502,7 @@ var RestIndexerProvider = class {
2404
2502
  if (params.toString()) {
2405
2503
  url += "?" + params.toString();
2406
2504
  }
2407
- const res = await fetch(url);
2505
+ const res = await baseFetch(url);
2408
2506
  if (!res.ok) {
2409
2507
  throw new Error(`Failed to fetch vtxo chain: ${res.statusText}`);
2410
2508
  }
@@ -2463,7 +2561,7 @@ var RestIndexerProvider = class {
2463
2561
  if (params.toString()) {
2464
2562
  url += "?" + params.toString();
2465
2563
  }
2466
- const res = await fetch(url);
2564
+ const res = await baseFetch(url);
2467
2565
  if (!res.ok) {
2468
2566
  throw new Error(`Failed to fetch vtxos: ${res.statusText}`);
2469
2567
  }
@@ -2478,7 +2576,7 @@ var RestIndexerProvider = class {
2478
2576
  }
2479
2577
  async getAssetDetails(assetId) {
2480
2578
  const url = `${this.serverUrl}/v1/indexer/asset/${encodeURIComponent(assetId)}`;
2481
- const res = await fetch(url);
2579
+ const res = await baseFetch(url);
2482
2580
  if (!res.ok) {
2483
2581
  throw new Error(`Failed to fetch asset details: ${res.statusText}`);
2484
2582
  }
@@ -2496,7 +2594,7 @@ var RestIndexerProvider = class {
2496
2594
  }
2497
2595
  async subscribeForScripts(scripts, subscriptionId) {
2498
2596
  const url = `${this.serverUrl}/v1/indexer/script/subscribe`;
2499
- const res = await fetch(url, {
2597
+ const res = await baseFetch(url, {
2500
2598
  headers: {
2501
2599
  "Content-Type": "application/json"
2502
2600
  },
@@ -2513,7 +2611,7 @@ var RestIndexerProvider = class {
2513
2611
  }
2514
2612
  async unsubscribeForScripts(subscriptionId, scripts) {
2515
2613
  const url = `${this.serverUrl}/v1/indexer/script/unsubscribe`;
2516
- const res = await fetch(url, {
2614
+ const res = await baseFetch(url, {
2517
2615
  headers: {
2518
2616
  "Content-Type": "application/json"
2519
2617
  },
@@ -2680,6 +2778,7 @@ exports.BufferReader = BufferReader;
2680
2778
  exports.ChainTxType = ChainTxType;
2681
2779
  exports.ConditionWitness = ConditionWitness;
2682
2780
  exports.CosignerPublicKey = CosignerPublicKey;
2781
+ exports.DigestMismatchError = DigestMismatchError;
2683
2782
  exports.IndexerTxType = IndexerTxType;
2684
2783
  exports.Metadata = Metadata;
2685
2784
  exports.OP_RETURN_EMPTY_PKSCRIPT = OP_RETURN_EMPTY_PKSCRIPT;
@@ -2691,11 +2790,15 @@ exports.Transaction = Transaction;
2691
2790
  exports.VtxoTaprootTree = VtxoTaprootTree;
2692
2791
  exports.VtxoTreeExpiry = VtxoTreeExpiry;
2693
2792
  exports.asset_exports = asset_exports;
2793
+ exports.baseFetch = baseFetch;
2794
+ exports.buildVersion = buildVersion;
2694
2795
  exports.craftToSpendTx = craftToSpendTx;
2796
+ exports.fetch = fetch;
2695
2797
  exports.getArkPsbtFields = getArkPsbtFields;
2696
2798
  exports.isEventSourceError = isEventSourceError;
2697
2799
  exports.isFetchTimeoutError = isFetchTimeoutError;
2698
2800
  exports.maybeArkError = maybeArkError;
2801
+ exports.sdkVersion = sdkVersion;
2699
2802
  exports.setArkPsbtField = setArkPsbtField;
2700
- //# sourceMappingURL=chunk-SPDNHPM4.cjs.map
2701
- //# sourceMappingURL=chunk-SPDNHPM4.cjs.map
2803
+ //# sourceMappingURL=chunk-X2EQLK4O.cjs.map
2804
+ //# sourceMappingURL=chunk-X2EQLK4O.cjs.map