@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,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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
|
|
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 =
|
|
335
|
-
const sequence =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 = [
|
|
2568
|
-
|
|
2569
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
2848
|
-
//# sourceMappingURL=chunk-
|
|
2946
|
+
//# sourceMappingURL=chunk-7IYIFMF4.cjs.map
|
|
2947
|
+
//# sourceMappingURL=chunk-7IYIFMF4.cjs.map
|