@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.
- package/README.md +35 -0
- package/dist/adapters/expo.cjs +5 -5
- package/dist/adapters/expo.d.cts +2 -2
- package/dist/adapters/expo.d.ts +2 -2
- package/dist/adapters/expo.js +3 -3
- package/dist/adapters/indexedDB.cjs +5 -5
- package/dist/adapters/indexedDB.js +4 -4
- package/dist/{ark-I8jfe5VE.d.cts → ark-C9ognsOV.d.cts} +94 -2
- package/dist/{ark-I8jfe5VE.d.ts → ark-C9ognsOV.d.ts} +94 -2
- package/dist/{asyncStorageTaskQueue-BtSOVZFn.d.ts → asyncStorageTaskQueue-BAKZ5cS5.d.ts} +2 -2
- package/dist/{asyncStorageTaskQueue-Dap7qUlF.d.cts → asyncStorageTaskQueue-CmBYVlxw.d.cts} +2 -2
- package/dist/{chunk-32YKLQPS.cjs → chunk-4KXOCVXP.cjs} +32 -29
- package/dist/chunk-4KXOCVXP.cjs.map +1 -0
- package/dist/{chunk-RJ6XVCX4.cjs → chunk-6TQJOD72.cjs} +7 -7
- package/dist/{chunk-RJ6XVCX4.cjs.map → chunk-6TQJOD72.cjs.map} +1 -1
- package/dist/{chunk-UBYY2TPK.cjs → chunk-7IYIFMF4.cjs} +178 -79
- package/dist/chunk-7IYIFMF4.cjs.map +1 -0
- package/dist/{chunk-LJ35HPJW.js → chunk-CWJ7ZCP7.js} +171 -75
- package/dist/chunk-CWJ7ZCP7.js.map +1 -0
- package/dist/{chunk-XIVCG6EP.cjs → chunk-D46YDM36.cjs} +1173 -425
- package/dist/chunk-D46YDM36.cjs.map +1 -0
- package/dist/{chunk-BE5MUB7T.js → chunk-FWG4TSPN.js} +7 -2
- package/dist/chunk-FWG4TSPN.js.map +1 -0
- package/dist/{chunk-V7WIZR2B.js → chunk-JTCQ6QXQ.js} +4 -4
- package/dist/{chunk-V7WIZR2B.js.map → chunk-JTCQ6QXQ.js.map} +1 -1
- package/dist/{chunk-HXDZ2QTW.cjs → chunk-MQB5H4X5.cjs} +7 -2
- package/dist/chunk-MQB5H4X5.cjs.map +1 -0
- package/dist/{chunk-FMI2GKYO.js → chunk-P6VBP3CT.js} +977 -231
- package/dist/chunk-P6VBP3CT.js.map +1 -0
- package/dist/{chunk-YNEDJTX2.js → chunk-QKC2T54O.js} +6 -3
- package/dist/chunk-QKC2T54O.js.map +1 -0
- package/dist/{chunk-LCQQPOIT.js → chunk-R2SVAM5Q.js} +3 -3
- package/dist/{chunk-LCQQPOIT.js.map → chunk-R2SVAM5Q.js.map} +1 -1
- package/dist/{chunk-X37EKDIH.cjs → chunk-SOXGAA52.cjs} +14 -14
- package/dist/{chunk-X37EKDIH.cjs.map → chunk-SOXGAA52.cjs.map} +1 -1
- package/dist/contracts/handlers/index.cjs +7 -7
- package/dist/contracts/handlers/index.d.cts +3 -3
- package/dist/contracts/handlers/index.d.ts +3 -3
- package/dist/contracts/handlers/index.js +2 -2
- package/dist/{delegate-BRqbh2fW.d.cts → delegate-DVEgyRwI.d.cts} +1 -1
- package/dist/{delegate-CgjVjYOP.d.ts → delegate-aOd5qINr.d.ts} +1 -1
- package/dist/{index-DvWNB_rl.d.ts → index-CPzL4tqg.d.ts} +2 -2
- package/dist/{index-DHuXlDEg.d.cts → index-D8vmtWWO.d.cts} +2 -2
- package/dist/index.cjs +176 -156
- package/dist/index.d.cts +45 -20
- package/dist/index.d.ts +45 -20
- package/dist/index.js +4 -4
- package/dist/repositories/realm/index.cjs +23 -19
- package/dist/repositories/realm/index.cjs.map +1 -1
- package/dist/repositories/realm/index.d.cts +2 -2
- package/dist/repositories/realm/index.d.ts +2 -2
- package/dist/repositories/realm/index.js +9 -5
- package/dist/repositories/realm/index.js.map +1 -1
- package/dist/repositories/sqlite/index.cjs +22 -18
- package/dist/repositories/sqlite/index.cjs.map +1 -1
- package/dist/repositories/sqlite/index.d.cts +2 -2
- package/dist/repositories/sqlite/index.d.ts +2 -2
- package/dist/repositories/sqlite/index.js +9 -5
- package/dist/repositories/sqlite/index.js.map +1 -1
- package/dist/{taskRunner-Bptw9UMa.d.ts → taskRunner-B48-V-Pb.d.ts} +2 -2
- package/dist/{taskRunner-CeFxKhSH.d.cts → taskRunner-nNecmQ2C.d.cts} +2 -2
- package/dist/wallet/expo/background.cjs +14 -14
- package/dist/wallet/expo/background.d.cts +3 -3
- package/dist/wallet/expo/background.d.ts +3 -3
- package/dist/wallet/expo/background.js +6 -6
- package/dist/wallet/expo/index.cjs +27 -14
- package/dist/wallet/expo/index.cjs.map +1 -1
- package/dist/wallet/expo/index.d.cts +11 -4
- package/dist/wallet/expo/index.d.ts +11 -4
- package/dist/wallet/expo/index.js +18 -5
- package/dist/wallet/expo/index.js.map +1 -1
- package/dist/{wallet-BsqRU8KM.d.cts → wallet-BUg3D4WJ.d.cts} +139 -3
- package/dist/{wallet-D9z7wssl.d.ts → wallet-DM0oShTu.d.ts} +139 -3
- package/dist/worker/expo/index.cjs +10 -9
- package/dist/worker/expo/index.cjs.map +1 -1
- package/dist/worker/expo/index.d.cts +4 -4
- package/dist/worker/expo/index.d.ts +4 -4
- package/dist/worker/expo/index.js +6 -5
- package/dist/worker/expo/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-32YKLQPS.cjs.map +0 -1
- package/dist/chunk-BE5MUB7T.js.map +0 -1
- package/dist/chunk-FMI2GKYO.js.map +0 -1
- package/dist/chunk-HXDZ2QTW.cjs.map +0 -1
- package/dist/chunk-LJ35HPJW.js.map +0 -1
- package/dist/chunk-UBYY2TPK.cjs.map +0 -1
- package/dist/chunk-XIVCG6EP.cjs.map +0 -1
- package/dist/chunk-YNEDJTX2.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VtxoScript, getSequence, sequenceToTimelock, DEFAULT_ARKADE_SERVER_URL } from './chunk-
|
|
1
|
+
import { VtxoScript, getSequence, sequenceToTimelock, DEFAULT_ARKADE_SERVER_URL } from './chunk-FWG4TSPN.js';
|
|
2
2
|
import { __export } from './chunk-NSBPE2FW.js';
|
|
3
3
|
import { OP, Script, SigHash, RawWitness, Transaction as Transaction$1, ScriptNum } from '@scure/btc-signer';
|
|
4
4
|
import { hex } from '@scure/base';
|
|
@@ -122,6 +122,59 @@ function checkKeyIncludes(key, arkPsbtFieldKey) {
|
|
|
122
122
|
return hex.encode(new Uint8Array([key.type, ...key.key])).includes(expected);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
// package.json
|
|
126
|
+
var version = "0.4.46";
|
|
127
|
+
|
|
128
|
+
// src/utils/fetch.ts
|
|
129
|
+
var buildVersion = "0.9.9";
|
|
130
|
+
var sdkVersion = `ts-sdk/${version}`;
|
|
131
|
+
var FetchError = class extends Error {
|
|
132
|
+
/** The request URL that failed, when derivable from the `fetch` input. */
|
|
133
|
+
url;
|
|
134
|
+
/** The HTTP method of the failed request (defaults to `"GET"`). */
|
|
135
|
+
method;
|
|
136
|
+
constructor(message, options) {
|
|
137
|
+
super(message, { cause: options.cause });
|
|
138
|
+
this.name = "FetchError";
|
|
139
|
+
this.url = options.url;
|
|
140
|
+
this.method = options.method;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
function baseFetch(input, init) {
|
|
144
|
+
if (typeof globalThis.fetch !== "function") {
|
|
145
|
+
throw new Error("Fetch API is not available in this environment.");
|
|
146
|
+
}
|
|
147
|
+
return globalThis.fetch(input, init).catch((cause) => {
|
|
148
|
+
const { url, method } = describeRequest(input, init);
|
|
149
|
+
throw new FetchError(`Network request failed: ${method} ${url}`, { url, method, cause });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function fetch(input, init) {
|
|
153
|
+
const headers = new Headers(init?.headers);
|
|
154
|
+
headers.set("X-Build-Version", buildVersion);
|
|
155
|
+
headers.set("X-SDK-VERSION", sdkVersion);
|
|
156
|
+
return baseFetch(input, { ...init, headers });
|
|
157
|
+
}
|
|
158
|
+
function describeRequest(input, init) {
|
|
159
|
+
let url;
|
|
160
|
+
if (typeof input === "string") {
|
|
161
|
+
url = input;
|
|
162
|
+
} else if (input instanceof URL) {
|
|
163
|
+
url = input.href;
|
|
164
|
+
} else {
|
|
165
|
+
url = input.url;
|
|
166
|
+
}
|
|
167
|
+
let method;
|
|
168
|
+
if (init?.method !== void 0) {
|
|
169
|
+
method = init.method;
|
|
170
|
+
} else if (input instanceof Request) {
|
|
171
|
+
method = input.method;
|
|
172
|
+
} else {
|
|
173
|
+
method = "GET";
|
|
174
|
+
}
|
|
175
|
+
return { url, method };
|
|
176
|
+
}
|
|
177
|
+
|
|
125
178
|
// src/providers/errors.ts
|
|
126
179
|
var ArkError = class extends Error {
|
|
127
180
|
constructor(code, message, name, metadata) {
|
|
@@ -131,7 +184,52 @@ var ArkError = class extends Error {
|
|
|
131
184
|
this.name = name;
|
|
132
185
|
this.metadata = metadata;
|
|
133
186
|
}
|
|
187
|
+
code;
|
|
188
|
+
message;
|
|
189
|
+
name;
|
|
190
|
+
metadata;
|
|
191
|
+
};
|
|
192
|
+
var ArkErrorName = {
|
|
193
|
+
DIGEST_MISMATCH: "DIGEST_MISMATCH",
|
|
194
|
+
VTXO_ALREADY_SPENT: "VTXO_ALREADY_SPENT",
|
|
195
|
+
INVALID_TX_FILTER: "INVALID_TX_FILTER",
|
|
196
|
+
TX_FILTERS_LIMIT_EXCEEDED: "TX_FILTERS_LIMIT_EXCEEDED",
|
|
197
|
+
/**
|
|
198
|
+
* A CLTV closure was spent before its absolute locktime matured. Raised only by
|
|
199
|
+
* `submitTx` (never `finalizeTx`), with metadata
|
|
200
|
+
* `{ locktime, current_locktime, type: "height" | "time" }`.
|
|
201
|
+
*
|
|
202
|
+
* Self-healing, so defer and retry rather than fail: the server matures a
|
|
203
|
+
* seconds-locktime against the **chain tip block's timestamp**, not its wall clock,
|
|
204
|
+
* so a spend attempted promptly at maturity is rejected until a later block lands.
|
|
205
|
+
*/
|
|
206
|
+
FORFEIT_CLOSURE_LOCKED: "FORFEIT_CLOSURE_LOCKED"
|
|
207
|
+
};
|
|
208
|
+
function isArkError(error, name) {
|
|
209
|
+
return error instanceof ArkError && (name === void 0 || error.name === name);
|
|
210
|
+
}
|
|
211
|
+
var ProviderUnavailableError = class extends Error {
|
|
212
|
+
/** Always `true`: this error type only ever wraps retryable conditions. */
|
|
213
|
+
retryable = true;
|
|
214
|
+
constructor(message, options) {
|
|
215
|
+
super(message, { cause: options?.cause });
|
|
216
|
+
this.name = "ProviderUnavailableError";
|
|
217
|
+
}
|
|
134
218
|
};
|
|
219
|
+
function throwIfHttpUnavailable(response, kind, body) {
|
|
220
|
+
if (body !== void 0 && maybeArkError(new Error(body))) return;
|
|
221
|
+
if (response.status === 429 || response.status >= 500) {
|
|
222
|
+
throw new ProviderUnavailableError(
|
|
223
|
+
`${kind} unavailable: ${response.status} ${response.statusText}`
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function toProviderUnavailable(err, kind) {
|
|
228
|
+
if (err instanceof FetchError) {
|
|
229
|
+
return new ProviderUnavailableError(`${kind} request failed`, { cause: err });
|
|
230
|
+
}
|
|
231
|
+
return err;
|
|
232
|
+
}
|
|
135
233
|
function maybeArkError(error) {
|
|
136
234
|
try {
|
|
137
235
|
if (!(error instanceof Error)) return void 0;
|
|
@@ -348,59 +446,6 @@ function prepareCoinAsIntentProofInput(coin) {
|
|
|
348
446
|
};
|
|
349
447
|
}
|
|
350
448
|
|
|
351
|
-
// package.json
|
|
352
|
-
var version = "0.4.44";
|
|
353
|
-
|
|
354
|
-
// src/utils/fetch.ts
|
|
355
|
-
var buildVersion = "0.9.9";
|
|
356
|
-
var sdkVersion = `ts-sdk/${version}`;
|
|
357
|
-
var FetchError = class extends Error {
|
|
358
|
-
/** The request URL that failed, when derivable from the `fetch` input. */
|
|
359
|
-
url;
|
|
360
|
-
/** The HTTP method of the failed request (defaults to `"GET"`). */
|
|
361
|
-
method;
|
|
362
|
-
constructor(message, options) {
|
|
363
|
-
super(message, { cause: options.cause });
|
|
364
|
-
this.name = "FetchError";
|
|
365
|
-
this.url = options.url;
|
|
366
|
-
this.method = options.method;
|
|
367
|
-
}
|
|
368
|
-
};
|
|
369
|
-
function baseFetch(input, init) {
|
|
370
|
-
if (typeof globalThis.fetch !== "function") {
|
|
371
|
-
throw new Error("Fetch API is not available in this environment.");
|
|
372
|
-
}
|
|
373
|
-
return globalThis.fetch(input, init).catch((cause) => {
|
|
374
|
-
const { url, method } = describeRequest(input, init);
|
|
375
|
-
throw new FetchError(`Network request failed: ${method} ${url}`, { url, method, cause });
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
function fetch(input, init) {
|
|
379
|
-
const headers = new Headers(init?.headers);
|
|
380
|
-
headers.set("X-Build-Version", buildVersion);
|
|
381
|
-
headers.set("X-SDK-VERSION", sdkVersion);
|
|
382
|
-
return baseFetch(input, { ...init, headers });
|
|
383
|
-
}
|
|
384
|
-
function describeRequest(input, init) {
|
|
385
|
-
let url;
|
|
386
|
-
if (typeof input === "string") {
|
|
387
|
-
url = input;
|
|
388
|
-
} else if (input instanceof URL) {
|
|
389
|
-
url = input.href;
|
|
390
|
-
} else {
|
|
391
|
-
url = input.url;
|
|
392
|
-
}
|
|
393
|
-
let method;
|
|
394
|
-
if (init?.method !== void 0) {
|
|
395
|
-
method = init.method;
|
|
396
|
-
} else if (input instanceof Request) {
|
|
397
|
-
method = input.method;
|
|
398
|
-
} else {
|
|
399
|
-
method = "GET";
|
|
400
|
-
}
|
|
401
|
-
return { url, method };
|
|
402
|
-
}
|
|
403
|
-
|
|
404
449
|
// src/providers/utils.ts
|
|
405
450
|
function createAbortError() {
|
|
406
451
|
const error = new Error("EventSource closed");
|
|
@@ -524,6 +569,7 @@ var RestArkProvider = class {
|
|
|
524
569
|
constructor(serverUrl = DEFAULT_ARKADE_SERVER_URL) {
|
|
525
570
|
this.serverUrl = serverUrl;
|
|
526
571
|
}
|
|
572
|
+
serverUrl;
|
|
527
573
|
/**
|
|
528
574
|
* Last server-info digest seen (from {@link getInfo}). Sent as `X-Digest`
|
|
529
575
|
* on outgoing requests so arkd can reject a client whose cached info is
|
|
@@ -568,16 +614,24 @@ var RestArkProvider = class {
|
|
|
568
614
|
...init.headers
|
|
569
615
|
};
|
|
570
616
|
if (digest) headers["X-Digest"] = digest;
|
|
571
|
-
|
|
617
|
+
let response;
|
|
618
|
+
try {
|
|
619
|
+
response = await fetch(url, { ...init, headers });
|
|
620
|
+
} catch (err) {
|
|
621
|
+
throw toProviderUnavailable(err, "arkade");
|
|
622
|
+
}
|
|
572
623
|
if (response.ok) return response;
|
|
573
624
|
let body;
|
|
574
625
|
try {
|
|
575
626
|
body = await response.clone().text();
|
|
576
627
|
} catch (e) {
|
|
577
628
|
console.warn("authedFetch could not read response body for digest check", e);
|
|
629
|
+
throwIfHttpUnavailable(response, "arkade");
|
|
578
630
|
return response;
|
|
579
631
|
}
|
|
580
|
-
|
|
632
|
+
const arkError = maybeArkError(new Error(body));
|
|
633
|
+
if (!arkError) throwIfHttpUnavailable(response, "arkade");
|
|
634
|
+
if (!isArkError(arkError, ArkErrorName.DIGEST_MISMATCH)) return response;
|
|
581
635
|
this._digest = "";
|
|
582
636
|
const info = await this.getInfo();
|
|
583
637
|
this.emitServerInfoChanged(info);
|
|
@@ -590,6 +644,7 @@ var RestArkProvider = class {
|
|
|
590
644
|
const response = await fetch(url);
|
|
591
645
|
if (!response.ok) {
|
|
592
646
|
const errorText = await response.text();
|
|
647
|
+
throwIfHttpUnavailable(response, "arkade", errorText);
|
|
593
648
|
handleError(errorText, `Failed to get server info: ${response.statusText}`);
|
|
594
649
|
}
|
|
595
650
|
const fromServer = await response.json();
|
|
@@ -1238,6 +1293,8 @@ var AssetId = class _AssetId {
|
|
|
1238
1293
|
this.txid = txid;
|
|
1239
1294
|
this.groupIndex = groupIndex;
|
|
1240
1295
|
}
|
|
1296
|
+
txid;
|
|
1297
|
+
groupIndex;
|
|
1241
1298
|
/**
|
|
1242
1299
|
* Create an asset id from a genesis transaction id and group index.
|
|
1243
1300
|
*
|
|
@@ -1369,6 +1426,7 @@ var AssetRef = class _AssetRef {
|
|
|
1369
1426
|
constructor(ref) {
|
|
1370
1427
|
this.ref = ref;
|
|
1371
1428
|
}
|
|
1429
|
+
ref;
|
|
1372
1430
|
/** Reference type discriminator. */
|
|
1373
1431
|
get type() {
|
|
1374
1432
|
return this.ref.type;
|
|
@@ -1497,6 +1555,7 @@ var AssetInput = class _AssetInput {
|
|
|
1497
1555
|
constructor(input) {
|
|
1498
1556
|
this.input = input;
|
|
1499
1557
|
}
|
|
1558
|
+
input;
|
|
1500
1559
|
/** Gets the transaction input index for an asset input, e.g. 0 */
|
|
1501
1560
|
get vin() {
|
|
1502
1561
|
return this.input.vin;
|
|
@@ -1627,6 +1686,7 @@ var AssetInputs = class _AssetInputs {
|
|
|
1627
1686
|
constructor(inputs) {
|
|
1628
1687
|
this.inputs = inputs;
|
|
1629
1688
|
}
|
|
1689
|
+
inputs;
|
|
1630
1690
|
/** Create a validated list of asset inputs. */
|
|
1631
1691
|
static create(inputs) {
|
|
1632
1692
|
const list = new _AssetInputs(inputs);
|
|
@@ -1699,6 +1759,8 @@ var AssetOutput = class _AssetOutput {
|
|
|
1699
1759
|
this.vout = vout;
|
|
1700
1760
|
this.amount = amount;
|
|
1701
1761
|
}
|
|
1762
|
+
vout;
|
|
1763
|
+
amount;
|
|
1702
1764
|
// 0x01 means local output, there is only 1 local output type currently
|
|
1703
1765
|
// however we serialize it for future upgrades
|
|
1704
1766
|
static TYPE_LOCAL = 1;
|
|
@@ -1779,6 +1841,7 @@ var AssetOutputs = class _AssetOutputs {
|
|
|
1779
1841
|
constructor(outputs) {
|
|
1780
1842
|
this.outputs = outputs;
|
|
1781
1843
|
}
|
|
1844
|
+
outputs;
|
|
1782
1845
|
/** Create a validated list of asset outputs. */
|
|
1783
1846
|
static create(outputs) {
|
|
1784
1847
|
const list = new _AssetOutputs(outputs);
|
|
@@ -1848,6 +1911,8 @@ var Metadata = class _Metadata {
|
|
|
1848
1911
|
this.key = key;
|
|
1849
1912
|
this.value = value;
|
|
1850
1913
|
}
|
|
1914
|
+
key;
|
|
1915
|
+
value;
|
|
1851
1916
|
/** Create a metadata entry from raw key and value bytes. */
|
|
1852
1917
|
static create(key, value) {
|
|
1853
1918
|
const md = new _Metadata(key, value);
|
|
@@ -1925,6 +1990,7 @@ var MetadataList = class _MetadataList {
|
|
|
1925
1990
|
constructor(items) {
|
|
1926
1991
|
this.items = items;
|
|
1927
1992
|
}
|
|
1993
|
+
items;
|
|
1928
1994
|
static ARK_LEAF_TAG = "ArkadeAssetLeaf";
|
|
1929
1995
|
static ARK_BRANCH_TAG = "ArkadeAssetBranch";
|
|
1930
1996
|
static ARK_LEAF_VERSION = 0;
|
|
@@ -2018,6 +2084,10 @@ var AssetGroup = class _AssetGroup {
|
|
|
2018
2084
|
this.outputs = outputs;
|
|
2019
2085
|
this.metadataList = new MetadataList(metadata);
|
|
2020
2086
|
}
|
|
2087
|
+
assetId;
|
|
2088
|
+
controlAsset;
|
|
2089
|
+
inputs;
|
|
2090
|
+
outputs;
|
|
2021
2091
|
metadataList;
|
|
2022
2092
|
/**
|
|
2023
2093
|
* Create and validate an asset group.
|
|
@@ -2214,6 +2284,7 @@ var Packet = class _Packet {
|
|
|
2214
2284
|
constructor(groups) {
|
|
2215
2285
|
this.groups = groups;
|
|
2216
2286
|
}
|
|
2287
|
+
groups;
|
|
2217
2288
|
/** PACKET_TYPE is the 1-byte TLV type tag used in the Extension envelope. */
|
|
2218
2289
|
static PACKET_TYPE = 0;
|
|
2219
2290
|
/** Create a validated asset packet from a list of asset groups. */
|
|
@@ -2313,6 +2384,24 @@ var Packet = class _Packet {
|
|
|
2313
2384
|
return packet;
|
|
2314
2385
|
}
|
|
2315
2386
|
};
|
|
2387
|
+
async function indexerFetch(input, init) {
|
|
2388
|
+
let res;
|
|
2389
|
+
try {
|
|
2390
|
+
res = await baseFetch(input, init);
|
|
2391
|
+
} catch (err) {
|
|
2392
|
+
throw toProviderUnavailable(err, "indexer");
|
|
2393
|
+
}
|
|
2394
|
+
if (!res.ok) {
|
|
2395
|
+
let body;
|
|
2396
|
+
try {
|
|
2397
|
+
body = await res.clone().text();
|
|
2398
|
+
} catch {
|
|
2399
|
+
body = void 0;
|
|
2400
|
+
}
|
|
2401
|
+
throwIfHttpUnavailable(res, "indexer", body);
|
|
2402
|
+
}
|
|
2403
|
+
return res;
|
|
2404
|
+
}
|
|
2316
2405
|
var IndexerTxType = /* @__PURE__ */ ((IndexerTxType2) => {
|
|
2317
2406
|
IndexerTxType2[IndexerTxType2["INDEXER_TX_TYPE_UNSPECIFIED"] = 0] = "INDEXER_TX_TYPE_UNSPECIFIED";
|
|
2318
2407
|
IndexerTxType2[IndexerTxType2["INDEXER_TX_TYPE_RECEIVED"] = 1] = "INDEXER_TX_TYPE_RECEIVED";
|
|
@@ -2331,6 +2420,7 @@ var RestIndexerProvider = class {
|
|
|
2331
2420
|
constructor(serverUrl = DEFAULT_ARKADE_SERVER_URL) {
|
|
2332
2421
|
this.serverUrl = serverUrl;
|
|
2333
2422
|
}
|
|
2423
|
+
serverUrl;
|
|
2334
2424
|
async getVtxoTree(batchOutpoint, opts) {
|
|
2335
2425
|
let url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/tree`;
|
|
2336
2426
|
const params = new URLSearchParams();
|
|
@@ -2342,7 +2432,7 @@ var RestIndexerProvider = class {
|
|
|
2342
2432
|
if (params.toString()) {
|
|
2343
2433
|
url += "?" + params.toString();
|
|
2344
2434
|
}
|
|
2345
|
-
const res = await
|
|
2435
|
+
const res = await indexerFetch(url);
|
|
2346
2436
|
if (!res.ok) {
|
|
2347
2437
|
throw new Error(`Failed to fetch vtxo tree: ${res.statusText}`);
|
|
2348
2438
|
}
|
|
@@ -2368,7 +2458,7 @@ var RestIndexerProvider = class {
|
|
|
2368
2458
|
if (params.toString()) {
|
|
2369
2459
|
url += "?" + params.toString();
|
|
2370
2460
|
}
|
|
2371
|
-
const res = await
|
|
2461
|
+
const res = await indexerFetch(url);
|
|
2372
2462
|
if (!res.ok) {
|
|
2373
2463
|
throw new Error(`Failed to fetch vtxo tree leaves: ${res.statusText}`);
|
|
2374
2464
|
}
|
|
@@ -2380,7 +2470,7 @@ var RestIndexerProvider = class {
|
|
|
2380
2470
|
}
|
|
2381
2471
|
async getBatchSweepTransactions(batchOutpoint) {
|
|
2382
2472
|
const url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/sweepTxs`;
|
|
2383
|
-
const res = await
|
|
2473
|
+
const res = await indexerFetch(url);
|
|
2384
2474
|
if (!res.ok) {
|
|
2385
2475
|
throw new Error(`Failed to fetch batch sweep transactions: ${res.statusText}`);
|
|
2386
2476
|
}
|
|
@@ -2392,7 +2482,7 @@ var RestIndexerProvider = class {
|
|
|
2392
2482
|
}
|
|
2393
2483
|
async getCommitmentTx(txid) {
|
|
2394
2484
|
const url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}`;
|
|
2395
|
-
const res = await
|
|
2485
|
+
const res = await indexerFetch(url);
|
|
2396
2486
|
if (!res.ok) {
|
|
2397
2487
|
throw new Error(`Failed to fetch commitment tx: ${res.statusText}`);
|
|
2398
2488
|
}
|
|
@@ -2413,7 +2503,7 @@ var RestIndexerProvider = class {
|
|
|
2413
2503
|
if (params.toString()) {
|
|
2414
2504
|
url += "?" + params.toString();
|
|
2415
2505
|
}
|
|
2416
|
-
const res = await
|
|
2506
|
+
const res = await indexerFetch(url);
|
|
2417
2507
|
if (!res.ok) {
|
|
2418
2508
|
throw new Error(`Failed to fetch commitment tx connectors: ${res.statusText}`);
|
|
2419
2509
|
}
|
|
@@ -2439,7 +2529,7 @@ var RestIndexerProvider = class {
|
|
|
2439
2529
|
if (params.toString()) {
|
|
2440
2530
|
url += "?" + params.toString();
|
|
2441
2531
|
}
|
|
2442
|
-
const res = await
|
|
2532
|
+
const res = await indexerFetch(url);
|
|
2443
2533
|
if (!res.ok) {
|
|
2444
2534
|
throw new Error(`Failed to fetch commitment tx forfeitTxs: ${res.statusText}`);
|
|
2445
2535
|
}
|
|
@@ -2522,7 +2612,7 @@ var RestIndexerProvider = class {
|
|
|
2522
2612
|
if (params.toString()) {
|
|
2523
2613
|
url += "?" + params.toString();
|
|
2524
2614
|
}
|
|
2525
|
-
const res = await
|
|
2615
|
+
const res = await indexerFetch(url);
|
|
2526
2616
|
if (!res.ok) {
|
|
2527
2617
|
throw new Error(`Failed to fetch virtual txs: ${res.statusText}`);
|
|
2528
2618
|
}
|
|
@@ -2543,7 +2633,7 @@ var RestIndexerProvider = class {
|
|
|
2543
2633
|
if (params.toString()) {
|
|
2544
2634
|
url += "?" + params.toString();
|
|
2545
2635
|
}
|
|
2546
|
-
const res = await
|
|
2636
|
+
const res = await indexerFetch(url);
|
|
2547
2637
|
if (!res.ok) {
|
|
2548
2638
|
throw new Error(`Failed to fetch vtxo chain: ${res.statusText}`);
|
|
2549
2639
|
}
|
|
@@ -2562,12 +2652,16 @@ var RestIndexerProvider = class {
|
|
|
2562
2652
|
if (!hasScripts && !hasOutpoints) {
|
|
2563
2653
|
throw new Error("Either scripts or outpoints must be provided");
|
|
2564
2654
|
}
|
|
2565
|
-
const filterCount = [
|
|
2566
|
-
|
|
2567
|
-
|
|
2655
|
+
const filterCount = [
|
|
2656
|
+
opts?.spendableOnly,
|
|
2657
|
+
opts?.spentOnly,
|
|
2658
|
+
opts?.recoverableOnly,
|
|
2659
|
+
opts?.pendingOnly,
|
|
2660
|
+
opts?.renewableOnly
|
|
2661
|
+
].filter(Boolean).length;
|
|
2568
2662
|
if (filterCount > 1) {
|
|
2569
2663
|
throw new Error(
|
|
2570
|
-
"spendableOnly, spentOnly, and
|
|
2664
|
+
"spendableOnly, spentOnly, recoverableOnly, pendingOnly, and renewableOnly are mutually exclusive options"
|
|
2571
2665
|
);
|
|
2572
2666
|
}
|
|
2573
2667
|
if (opts?.after !== void 0 && opts?.before !== void 0 && opts.after !== 0 && opts.before !== 0 && opts.before <= opts.after) {
|
|
@@ -2593,6 +2687,8 @@ var RestIndexerProvider = class {
|
|
|
2593
2687
|
params.append("recoverableOnly", opts.recoverableOnly.toString());
|
|
2594
2688
|
if (opts.pendingOnly !== void 0)
|
|
2595
2689
|
params.append("pendingOnly", opts.pendingOnly.toString());
|
|
2690
|
+
if (opts.renewableOnly !== void 0)
|
|
2691
|
+
params.append("renewableOnly", opts.renewableOnly.toString());
|
|
2596
2692
|
if (opts.after !== void 0) params.append("after", opts.after.toString());
|
|
2597
2693
|
if (opts.before !== void 0) params.append("before", opts.before.toString());
|
|
2598
2694
|
if (opts.pageIndex !== void 0)
|
|
@@ -2602,7 +2698,7 @@ var RestIndexerProvider = class {
|
|
|
2602
2698
|
if (params.toString()) {
|
|
2603
2699
|
url += "?" + params.toString();
|
|
2604
2700
|
}
|
|
2605
|
-
const res = await
|
|
2701
|
+
const res = await indexerFetch(url);
|
|
2606
2702
|
if (!res.ok) {
|
|
2607
2703
|
throw new Error(`Failed to fetch vtxos: ${res.statusText}`);
|
|
2608
2704
|
}
|
|
@@ -2617,7 +2713,7 @@ var RestIndexerProvider = class {
|
|
|
2617
2713
|
}
|
|
2618
2714
|
async getAssetDetails(assetId) {
|
|
2619
2715
|
const url = `${this.serverUrl}/v1/indexer/asset/${encodeURIComponent(assetId)}`;
|
|
2620
|
-
const res = await
|
|
2716
|
+
const res = await indexerFetch(url);
|
|
2621
2717
|
if (!res.ok) {
|
|
2622
2718
|
throw new Error(`Failed to fetch asset details: ${res.statusText}`);
|
|
2623
2719
|
}
|
|
@@ -2635,7 +2731,7 @@ var RestIndexerProvider = class {
|
|
|
2635
2731
|
}
|
|
2636
2732
|
async subscribeForScripts(scripts, subscriptionId) {
|
|
2637
2733
|
const url = `${this.serverUrl}/v1/indexer/script/subscribe`;
|
|
2638
|
-
const res = await
|
|
2734
|
+
const res = await indexerFetch(url, {
|
|
2639
2735
|
headers: {
|
|
2640
2736
|
"Content-Type": "application/json"
|
|
2641
2737
|
},
|
|
@@ -2652,7 +2748,7 @@ var RestIndexerProvider = class {
|
|
|
2652
2748
|
}
|
|
2653
2749
|
async unsubscribeForScripts(subscriptionId, scripts) {
|
|
2654
2750
|
const url = `${this.serverUrl}/v1/indexer/script/unsubscribe`;
|
|
2655
|
-
const res = await
|
|
2751
|
+
const res = await indexerFetch(url, {
|
|
2656
2752
|
headers: {
|
|
2657
2753
|
"Content-Type": "application/json"
|
|
2658
2754
|
},
|
|
@@ -2807,6 +2903,6 @@ var Response;
|
|
|
2807
2903
|
Response2.isGetAssetResponse = isGetAssetResponse;
|
|
2808
2904
|
})(Response || (Response = {}));
|
|
2809
2905
|
|
|
2810
|
-
export { ArkError, ArkPsbtFieldKey, ArkPsbtFieldKeyType, AssetGroup, AssetId, AssetInput, AssetOutput, AssetRef, BufferReader, ChainTxType, ConditionWitness, CosignerPublicKey, DigestMismatchError, FetchError, IndexerTxType, Intent, Metadata, OP_RETURN_EMPTY_PKSCRIPT, Packet, RestArkProvider, RestIndexerProvider, SettlementEventType, Transaction, VtxoTaprootTree, VtxoTreeExpiry, asset_exports, baseFetch, buildVersion, craftToSpendTx, fetch, getArkPsbtFields, isEventSourceError, isFetchTimeoutError, maybeArkError, sdkVersion, setArkPsbtField };
|
|
2811
|
-
//# sourceMappingURL=chunk-
|
|
2812
|
-
//# sourceMappingURL=chunk-
|
|
2906
|
+
export { ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, AssetGroup, AssetId, AssetInput, AssetOutput, AssetRef, BufferReader, ChainTxType, ConditionWitness, CosignerPublicKey, DigestMismatchError, FetchError, IndexerTxType, Intent, Metadata, OP_RETURN_EMPTY_PKSCRIPT, Packet, ProviderUnavailableError, RestArkProvider, RestIndexerProvider, SettlementEventType, Transaction, VtxoTaprootTree, VtxoTreeExpiry, asset_exports, baseFetch, buildVersion, craftToSpendTx, fetch, getArkPsbtFields, isArkError, isEventSourceError, isFetchTimeoutError, maybeArkError, sdkVersion, setArkPsbtField };
|
|
2907
|
+
//# sourceMappingURL=chunk-CWJ7ZCP7.js.map
|
|
2908
|
+
//# sourceMappingURL=chunk-CWJ7ZCP7.js.map
|