@arkade-os/sdk 0.5.2 → 0.5.4
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 +36 -34
- package/dist/adapters/expo.cjs +9 -5
- package/dist/adapters/expo.d.cts +11 -7
- package/dist/adapters/expo.d.ts +11 -7
- package/dist/adapters/expo.js +3 -3
- package/dist/{asyncStorageTaskQueue-DIn7bTqN.d.ts → asyncStorageTaskQueue-DHMIxY04.d.ts} +2 -2
- package/dist/{asyncStorageTaskQueue-BtEc3Qca.d.cts → asyncStorageTaskQueue-DTBa8EH7.d.cts} +2 -2
- package/dist/{chunk-LWRMSC4M.js → chunk-6CUP6ZIF.js} +4 -4
- package/dist/{chunk-LWRMSC4M.js.map → chunk-6CUP6ZIF.js.map} +1 -1
- package/dist/{chunk-HKG26NUT.js → chunk-AG4TFD6F.js} +140 -59
- package/dist/chunk-AG4TFD6F.js.map +1 -0
- package/dist/{chunk-PVFQFQBY.cjs → chunk-B6VNKGIH.cjs} +10 -10
- package/dist/chunk-B6VNKGIH.cjs.map +1 -0
- package/dist/{chunk-U5XG7SWA.js → chunk-BTRCN4JJ.js} +22 -19
- package/dist/chunk-BTRCN4JJ.js.map +1 -0
- package/dist/{chunk-TAIWH3HG.cjs → chunk-DNITZVNG.cjs} +28 -47
- package/dist/chunk-DNITZVNG.cjs.map +1 -0
- package/dist/{chunk-OM6FJ76H.cjs → chunk-E6OOJEHL.cjs} +49 -49
- package/dist/{chunk-OM6FJ76H.cjs.map → chunk-E6OOJEHL.cjs.map} +1 -1
- package/dist/{chunk-2OCYL6BJ.cjs → chunk-F3FAE7VJ.cjs} +850 -652
- package/dist/chunk-F3FAE7VJ.cjs.map +1 -0
- package/dist/{chunk-GGKR4O5X.cjs → chunk-GHUUT54D.cjs} +143 -58
- package/dist/chunk-GHUUT54D.cjs.map +1 -0
- package/dist/{chunk-MOBDJ7U2.js → chunk-MWVAWFX6.js} +4 -4
- package/dist/chunk-MWVAWFX6.js.map +1 -0
- package/dist/{chunk-2QRUQXLS.js → chunk-TUOLZBNC.js} +19 -39
- package/dist/chunk-TUOLZBNC.js.map +1 -0
- package/dist/{chunk-64R7CRKN.cjs → chunk-WXNSISXK.cjs} +37 -34
- package/dist/chunk-WXNSISXK.cjs.map +1 -0
- package/dist/{chunk-AJWXVQYG.js → chunk-ZJHLLDBP.js} +372 -177
- package/dist/chunk-ZJHLLDBP.js.map +1 -0
- package/dist/contracts/handlers/index.cjs +9 -9
- 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-CaL8EN4Q.d.cts → delegate-f4_t864Z.d.cts} +1 -1
- package/dist/{delegate-Jd4zs88Q.d.ts → delegate-xrSBNybC.d.ts} +1 -1
- package/dist/{index-D-xqVzf8.d.ts → index-BJDz15ms.d.ts} +5 -5
- package/dist/{index-BwdGzNSn.d.cts → index-BjiVGtp8.d.cts} +5 -5
- package/dist/{index-DdKxfC29.d.cts → index-DRwe0UDN.d.cts} +194 -114
- package/dist/{index-DdKxfC29.d.ts → index-DRwe0UDN.d.ts} +194 -114
- package/dist/index.cjs +333 -313
- package/dist/index.d.cts +80 -45
- package/dist/index.d.ts +80 -45
- package/dist/index.js +4 -4
- package/dist/repositories/realm/index.cjs +65 -36
- package/dist/repositories/realm/index.cjs.map +1 -1
- package/dist/repositories/realm/index.d.cts +7 -3
- package/dist/repositories/realm/index.d.ts +7 -3
- package/dist/repositories/realm/index.js +35 -6
- package/dist/repositories/realm/index.js.map +1 -1
- package/dist/repositories/sqlite/index.cjs +176 -110
- package/dist/repositories/sqlite/index.cjs.map +1 -1
- package/dist/repositories/sqlite/index.d.cts +23 -13
- package/dist/repositories/sqlite/index.d.ts +23 -13
- package/dist/repositories/sqlite/index.js +148 -83
- package/dist/repositories/sqlite/index.js.map +1 -1
- package/dist/{taskRunner-ZyGGjtIq.d.ts → taskRunner-BPPU-YHG.d.cts} +4 -4
- package/dist/{taskRunner-67YSEpsz.d.cts → taskRunner-CDlNeth0.d.ts} +4 -4
- package/dist/wallet/expo/background.cjs +14 -14
- package/dist/wallet/expo/background.cjs.map +1 -1
- package/dist/wallet/expo/background.d.cts +3 -3
- package/dist/wallet/expo/background.d.ts +3 -3
- package/dist/wallet/expo/background.js +7 -7
- package/dist/wallet/expo/background.js.map +1 -1
- package/dist/wallet/expo/index.cjs +18 -15
- package/dist/wallet/expo/index.cjs.map +1 -1
- package/dist/wallet/expo/index.d.cts +7 -6
- package/dist/wallet/expo/index.d.ts +7 -6
- package/dist/wallet/expo/index.js +9 -6
- package/dist/wallet/expo/index.js.map +1 -1
- package/dist/{wallet-bFS7VybL.d.ts → wallet-Oc3Wd5gv.d.ts} +27 -19
- package/dist/{wallet-B8LW7cV1.d.cts → wallet-jVBDQl6R.d.cts} +27 -19
- package/dist/worker/expo/index.cjs +9 -9
- package/dist/worker/expo/index.d.cts +4 -4
- package/dist/worker/expo/index.d.ts +4 -4
- package/dist/worker/expo/index.js +5 -5
- package/package.json +1 -1
- package/dist/chunk-2OCYL6BJ.cjs.map +0 -1
- package/dist/chunk-2QRUQXLS.js.map +0 -1
- package/dist/chunk-64R7CRKN.cjs.map +0 -1
- package/dist/chunk-AJWXVQYG.js.map +0 -1
- package/dist/chunk-GGKR4O5X.cjs.map +0 -1
- package/dist/chunk-HKG26NUT.js.map +0 -1
- package/dist/chunk-MOBDJ7U2.js.map +0 -1
- package/dist/chunk-PVFQFQBY.cjs.map +0 -1
- package/dist/chunk-TAIWH3HG.cjs.map +0 -1
- package/dist/chunk-U5XG7SWA.js.map +0 -1
|
@@ -18,7 +18,8 @@ var getNetwork = (network) => {
|
|
|
18
18
|
if (!found) throw new Error(`Unsupported network: ${network}`);
|
|
19
19
|
return found;
|
|
20
20
|
};
|
|
21
|
-
var
|
|
21
|
+
var networkFromOperatorInfo = (info) => getNetwork(info.network);
|
|
22
|
+
var networkFromArkadeInfo = networkFromOperatorInfo;
|
|
22
23
|
var networks = {
|
|
23
24
|
bitcoin: withArkPrefix(NETWORK, "ark", "bitcoin"),
|
|
24
25
|
testnet: withArkPrefix(TEST_NETWORK, "tark", "testnet"),
|
|
@@ -1170,32 +1171,8 @@ function checkKeyMatch(key, arkPsbtFieldKey, prefixOnly = false) {
|
|
|
1170
1171
|
return true;
|
|
1171
1172
|
}
|
|
1172
1173
|
|
|
1173
|
-
// src/providers/eventSource.ts
|
|
1174
|
-
var GUIDANCE = "Pass one with configureEventSource(url => new EventSource(url)) \u2014 in Node, from the `eventsource` package or by running with --experimental-eventsource. In React Native, use ExpoArkProvider / ExpoIndexerProvider instead.";
|
|
1175
|
-
var EventSourceUnavailableError = class extends Error {
|
|
1176
|
-
constructor() {
|
|
1177
|
-
super(`no EventSource is available, so server-sent events cannot be opened. ${GUIDANCE}`);
|
|
1178
|
-
this.name = "EventSourceUnavailableError";
|
|
1179
|
-
}
|
|
1180
|
-
};
|
|
1181
|
-
function isEventSourceUnavailableError(error) {
|
|
1182
|
-
return error instanceof EventSourceUnavailableError || error instanceof Error && error.name === "EventSourceUnavailableError";
|
|
1183
|
-
}
|
|
1184
|
-
var configured;
|
|
1185
|
-
function configureEventSource(factory) {
|
|
1186
|
-
configured = factory;
|
|
1187
|
-
}
|
|
1188
|
-
function getConfiguredEventSource() {
|
|
1189
|
-
return configured;
|
|
1190
|
-
}
|
|
1191
|
-
function resolveEventSource(override) {
|
|
1192
|
-
const factory = override ?? configured ?? (typeof EventSource === "undefined" ? void 0 : (url) => new EventSource(url));
|
|
1193
|
-
if (!factory) throw new EventSourceUnavailableError();
|
|
1194
|
-
return factory;
|
|
1195
|
-
}
|
|
1196
|
-
|
|
1197
1174
|
// package.json
|
|
1198
|
-
var version = "0.5.
|
|
1175
|
+
var version = "0.5.4";
|
|
1199
1176
|
|
|
1200
1177
|
// src/utils/fetch.ts
|
|
1201
1178
|
var buildVersion = "0.9.9";
|
|
@@ -1261,6 +1238,103 @@ function describeRequest(input, init) {
|
|
|
1261
1238
|
return { url, method };
|
|
1262
1239
|
}
|
|
1263
1240
|
|
|
1241
|
+
// src/providers/sseFrames.ts
|
|
1242
|
+
async function* readSseFrames(body) {
|
|
1243
|
+
const reader = body.getReader();
|
|
1244
|
+
const decoder = new TextDecoder();
|
|
1245
|
+
let buffer = "";
|
|
1246
|
+
let pendingCR = false;
|
|
1247
|
+
let event = "";
|
|
1248
|
+
let data = [];
|
|
1249
|
+
try {
|
|
1250
|
+
for (; ; ) {
|
|
1251
|
+
const { done, value: chunk } = await reader.read();
|
|
1252
|
+
if (done) return;
|
|
1253
|
+
const text = decoder.decode(chunk, { stream: true });
|
|
1254
|
+
if (!text) continue;
|
|
1255
|
+
const skipLF = pendingCR && text.startsWith("\n");
|
|
1256
|
+
pendingCR = text.endsWith("\r");
|
|
1257
|
+
buffer += (skipLF ? text.slice(1) : text).replace(/\r\n?/g, "\n");
|
|
1258
|
+
const lines = buffer.split("\n");
|
|
1259
|
+
buffer = lines.pop() ?? "";
|
|
1260
|
+
for (const line of lines) {
|
|
1261
|
+
if (line === "") {
|
|
1262
|
+
const joined = data.join("\n");
|
|
1263
|
+
if (joined) yield { event: event || "message", data: joined };
|
|
1264
|
+
event = "";
|
|
1265
|
+
data = [];
|
|
1266
|
+
continue;
|
|
1267
|
+
}
|
|
1268
|
+
const colon = line.indexOf(":");
|
|
1269
|
+
const field = colon === -1 ? line : line.slice(0, colon);
|
|
1270
|
+
const value = colon === -1 ? "" : line.slice(colon + 1).replace(/^ /, "");
|
|
1271
|
+
if (field === "event") event = value;
|
|
1272
|
+
else if (field === "data") data.push(value);
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
} finally {
|
|
1276
|
+
await reader.cancel().catch(() => {
|
|
1277
|
+
});
|
|
1278
|
+
}
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
// src/providers/eventSource.ts
|
|
1282
|
+
var GUIDANCE = "Pass one with configureEventSource(url => new EventSource(url)) \u2014 in Node, from the `eventsource` package or by running with --experimental-eventsource. In React Native, use ExpoOperatorProvider / ExpoIndexerProvider instead.";
|
|
1283
|
+
var EventSourceUnavailableError = class extends Error {
|
|
1284
|
+
constructor() {
|
|
1285
|
+
super(`no EventSource is available, so server-sent events cannot be opened. ${GUIDANCE}`);
|
|
1286
|
+
this.name = "EventSourceUnavailableError";
|
|
1287
|
+
}
|
|
1288
|
+
};
|
|
1289
|
+
function isEventSourceUnavailableError(error) {
|
|
1290
|
+
return error instanceof EventSourceUnavailableError || error instanceof Error && error.name === "EventSourceUnavailableError";
|
|
1291
|
+
}
|
|
1292
|
+
var configured;
|
|
1293
|
+
function configureEventSource(factory) {
|
|
1294
|
+
configured = factory;
|
|
1295
|
+
}
|
|
1296
|
+
function getConfiguredEventSource() {
|
|
1297
|
+
return configured;
|
|
1298
|
+
}
|
|
1299
|
+
function resolveEventSource(override) {
|
|
1300
|
+
const factory = override ?? configured ?? (typeof globalThis.fetch === "function" && typeof ReadableStream !== "undefined" ? (url, headers) => new FetchEventSource(url, headers) : void 0) ?? (typeof EventSource === "undefined" ? void 0 : (url) => new EventSource(url));
|
|
1301
|
+
if (!factory) throw new EventSourceUnavailableError();
|
|
1302
|
+
return factory;
|
|
1303
|
+
}
|
|
1304
|
+
var FetchEventSource = class {
|
|
1305
|
+
events = new EventTarget();
|
|
1306
|
+
controller = new AbortController();
|
|
1307
|
+
constructor(url, headers = {}) {
|
|
1308
|
+
this.read(url, headers).catch(() => {
|
|
1309
|
+
if (!this.controller.signal.aborted) this.events.dispatchEvent(new Event("error"));
|
|
1310
|
+
});
|
|
1311
|
+
}
|
|
1312
|
+
addEventListener(type, listener) {
|
|
1313
|
+
this.events.addEventListener(type, listener);
|
|
1314
|
+
}
|
|
1315
|
+
removeEventListener(type, listener) {
|
|
1316
|
+
this.events.removeEventListener(type, listener);
|
|
1317
|
+
}
|
|
1318
|
+
close() {
|
|
1319
|
+
this.controller.abort();
|
|
1320
|
+
}
|
|
1321
|
+
async read(url, headers) {
|
|
1322
|
+
const response = await baseFetch(url, {
|
|
1323
|
+
headers: { Accept: "text/event-stream", ...headers },
|
|
1324
|
+
signal: this.controller.signal
|
|
1325
|
+
});
|
|
1326
|
+
const type = response.headers.get("Content-Type") ?? "";
|
|
1327
|
+
if (response.status !== 200 || !response.body || !/^text\/event-stream\s*(;|$)/i.test(type)) {
|
|
1328
|
+
await response.body?.cancel();
|
|
1329
|
+
throw new Error(`SSE response ${response.status} ${type}`);
|
|
1330
|
+
}
|
|
1331
|
+
for await (const { event, data } of readSseFrames(response.body)) {
|
|
1332
|
+
this.events.dispatchEvent(new MessageEvent(event, { data }));
|
|
1333
|
+
}
|
|
1334
|
+
throw new Error("SSE stream ended");
|
|
1335
|
+
}
|
|
1336
|
+
};
|
|
1337
|
+
|
|
1264
1338
|
// src/providers/errors.ts
|
|
1265
1339
|
var ArkError = class extends Error {
|
|
1266
1340
|
constructor(code, message, name, metadata) {
|
|
@@ -1355,42 +1429,42 @@ function maybeArkError(error) {
|
|
|
1355
1429
|
function isMetadata(value) {
|
|
1356
1430
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1357
1431
|
}
|
|
1358
|
-
var
|
|
1359
|
-
((
|
|
1432
|
+
var Proof;
|
|
1433
|
+
((Proof2) => {
|
|
1360
1434
|
function create(message, ins, outputs = []) {
|
|
1361
1435
|
if (typeof message !== "string") {
|
|
1362
1436
|
message = encodeMessage(message);
|
|
1363
1437
|
}
|
|
1364
|
-
if (ins.length == 0) throw new Error("
|
|
1365
|
-
const inputs = ins.map(
|
|
1438
|
+
if (ins.length == 0) throw new Error("proof requires at least one input");
|
|
1439
|
+
const inputs = ins.map(prepareProofInput);
|
|
1366
1440
|
validateInputs(inputs);
|
|
1367
1441
|
validateOutputs(outputs);
|
|
1368
1442
|
const toSpend = craftToSpendTx(message, inputs[0].witnessUtxo.script);
|
|
1369
1443
|
return craftToSignTx(toSpend, inputs, outputs, message);
|
|
1370
1444
|
}
|
|
1371
|
-
|
|
1445
|
+
Proof2.create = create;
|
|
1372
1446
|
function fee(proof) {
|
|
1373
1447
|
let sumOfInputs = 0n;
|
|
1374
1448
|
for (let i = 0; i < proof.inputsLength; i++) {
|
|
1375
1449
|
const input = proof.getInput(i);
|
|
1376
1450
|
if (input.witnessUtxo === void 0)
|
|
1377
|
-
throw new Error("
|
|
1451
|
+
throw new Error("proof input requires witness utxo");
|
|
1378
1452
|
sumOfInputs += input.witnessUtxo.amount;
|
|
1379
1453
|
}
|
|
1380
1454
|
let sumOfOutputs = 0n;
|
|
1381
1455
|
for (let i = 0; i < proof.outputsLength; i++) {
|
|
1382
1456
|
const output = proof.getOutput(i);
|
|
1383
|
-
if (output.amount === void 0) throw new Error("
|
|
1457
|
+
if (output.amount === void 0) throw new Error("proof output requires amount");
|
|
1384
1458
|
sumOfOutputs += output.amount;
|
|
1385
1459
|
}
|
|
1386
1460
|
if (sumOfOutputs > sumOfInputs) {
|
|
1387
1461
|
throw new Error(
|
|
1388
|
-
`
|
|
1462
|
+
`proof output amount is greater than input amount: ${sumOfOutputs} > ${sumOfInputs}`
|
|
1389
1463
|
);
|
|
1390
1464
|
}
|
|
1391
1465
|
return Number(sumOfInputs - sumOfOutputs);
|
|
1392
1466
|
}
|
|
1393
|
-
|
|
1467
|
+
Proof2.fee = fee;
|
|
1394
1468
|
function encodeMessage(message) {
|
|
1395
1469
|
switch (message.type) {
|
|
1396
1470
|
case "register":
|
|
@@ -1413,31 +1487,31 @@ var Intent;
|
|
|
1413
1487
|
});
|
|
1414
1488
|
}
|
|
1415
1489
|
}
|
|
1416
|
-
|
|
1417
|
-
})(
|
|
1490
|
+
Proof2.encodeMessage = encodeMessage;
|
|
1491
|
+
})(Proof || (Proof = {}));
|
|
1492
|
+
var Intent = Proof;
|
|
1418
1493
|
var OP_RETURN_EMPTY_PKSCRIPT = new Uint8Array([OP.RETURN]);
|
|
1419
1494
|
var ZERO_32 = new Uint8Array(32).fill(0);
|
|
1420
1495
|
var MAX_INDEX = 4294967295;
|
|
1421
|
-
var
|
|
1496
|
+
var TAG_PROOF = "ark-intent-proof-message";
|
|
1422
1497
|
function validateInput(input) {
|
|
1423
|
-
if (input.index === void 0) throw new Error("
|
|
1424
|
-
if (input.txid === void 0) throw new Error("
|
|
1425
|
-
if (input.witnessUtxo === void 0)
|
|
1426
|
-
throw new Error("intent proof input requires witness utxo");
|
|
1498
|
+
if (input.index === void 0) throw new Error("proof input requires index");
|
|
1499
|
+
if (input.txid === void 0) throw new Error("proof input requires txid");
|
|
1500
|
+
if (input.witnessUtxo === void 0) throw new Error("proof input requires witness utxo");
|
|
1427
1501
|
return true;
|
|
1428
1502
|
}
|
|
1429
1503
|
function validateInputs(inputs) {
|
|
1430
1504
|
inputs.forEach(validateInput);
|
|
1431
1505
|
}
|
|
1432
1506
|
function validateOutput(output) {
|
|
1433
|
-
if (output.amount === void 0) throw new Error("
|
|
1434
|
-
if (output.script === void 0) throw new Error("
|
|
1507
|
+
if (output.amount === void 0) throw new Error("proof output requires amount");
|
|
1508
|
+
if (output.script === void 0) throw new Error("proof output requires script");
|
|
1435
1509
|
return true;
|
|
1436
1510
|
}
|
|
1437
1511
|
function validateOutputs(outputs) {
|
|
1438
1512
|
outputs.forEach(validateOutput);
|
|
1439
1513
|
}
|
|
1440
|
-
function craftToSpendTx(message, pkScript, tag =
|
|
1514
|
+
function craftToSpendTx(message, pkScript, tag = TAG_PROOF) {
|
|
1441
1515
|
const messageHash = hashMessage(message, tag);
|
|
1442
1516
|
const tx = new Transaction({
|
|
1443
1517
|
version: 0
|
|
@@ -1502,10 +1576,10 @@ function craftToSignTx(toSpend, inputs, outputs, message) {
|
|
|
1502
1576
|
tx.global.genericSignedMessage = new TextEncoder().encode(message);
|
|
1503
1577
|
return tx;
|
|
1504
1578
|
}
|
|
1505
|
-
function hashMessage(message, tag =
|
|
1579
|
+
function hashMessage(message, tag = TAG_PROOF) {
|
|
1506
1580
|
return schnorr.utils.taggedHash(tag, new TextEncoder().encode(message));
|
|
1507
1581
|
}
|
|
1508
|
-
function
|
|
1582
|
+
function prepareProofInput(coin) {
|
|
1509
1583
|
if (!("tapTree" in coin)) {
|
|
1510
1584
|
return coin;
|
|
1511
1585
|
}
|
|
@@ -1806,7 +1880,7 @@ function advertisedLimit(fromServer) {
|
|
|
1806
1880
|
const limit = BigInt(fromServer);
|
|
1807
1881
|
return limit > 0n ? limit : void 0;
|
|
1808
1882
|
}
|
|
1809
|
-
var
|
|
1883
|
+
var RestOperatorProvider = class {
|
|
1810
1884
|
constructor(serverUrl = DEFAULT_ARKADE_SERVER_URL, options = {}) {
|
|
1811
1885
|
this.serverUrl = serverUrl;
|
|
1812
1886
|
this.eventSource = options.eventSource;
|
|
@@ -1815,7 +1889,7 @@ var RestArkProvider = class {
|
|
|
1815
1889
|
/** Overrides {@link configureEventSource} for this provider's streams. */
|
|
1816
1890
|
eventSource;
|
|
1817
1891
|
/**
|
|
1818
|
-
* Last
|
|
1892
|
+
* Last operator info digest seen (from {@link getInfo}). Sent as `X-Digest`
|
|
1819
1893
|
* on outgoing requests so arkd can reject a client whose cached info is
|
|
1820
1894
|
* stale. Empty until the first {@link getInfo}.
|
|
1821
1895
|
*/
|
|
@@ -1824,7 +1898,7 @@ var RestArkProvider = class {
|
|
|
1824
1898
|
_suppressNextGetInfoChangeEmit = false;
|
|
1825
1899
|
_serverInfoListeners = /* @__PURE__ */ new Set();
|
|
1826
1900
|
/**
|
|
1827
|
-
* Subscribe to
|
|
1901
|
+
* Subscribe to operator info changes. Fired after a stale-info
|
|
1828
1902
|
* `DIGEST_MISMATCH` refresh or when {@link getInfo} observes a changed digest.
|
|
1829
1903
|
* Returns an unsubscribe function.
|
|
1830
1904
|
*/
|
|
@@ -1844,7 +1918,7 @@ var RestArkProvider = class {
|
|
|
1844
1918
|
}
|
|
1845
1919
|
}
|
|
1846
1920
|
/**
|
|
1847
|
-
* `fetch` wrapper for arkd requests that participates in
|
|
1921
|
+
* `fetch` wrapper for arkd requests that participates in operator info digest
|
|
1848
1922
|
* negotiation. Sends the cached `X-Digest`; when arkd rejects a request with
|
|
1849
1923
|
* `DIGEST_MISMATCH`, refreshes {@link getInfo} (updating the digest), fires
|
|
1850
1924
|
* {@link onServerInfoChanged}, and THROWS {@link DigestMismatchError} — it
|
|
@@ -1981,6 +2055,9 @@ var RestArkProvider = class {
|
|
|
1981
2055
|
(errorText) => `Failed to submit virtual transaction: ${errorText}`
|
|
1982
2056
|
);
|
|
1983
2057
|
const data = await response.json();
|
|
2058
|
+
if (typeof data.finalArkTx !== "string" || !data.finalArkTx) {
|
|
2059
|
+
throw new Error("Invalid submitTx response: missing finalArkTx");
|
|
2060
|
+
}
|
|
1984
2061
|
return {
|
|
1985
2062
|
arkTxid: data.arkTxid,
|
|
1986
2063
|
finalArkTx: data.finalArkTx,
|
|
@@ -2005,7 +2082,7 @@ var RestArkProvider = class {
|
|
|
2005
2082
|
{
|
|
2006
2083
|
intent: {
|
|
2007
2084
|
proof: intent.proof,
|
|
2008
|
-
message:
|
|
2085
|
+
message: Proof.encodeMessage(intent.message)
|
|
2009
2086
|
}
|
|
2010
2087
|
},
|
|
2011
2088
|
(errorText) => `Failed to register intent: ${errorText}`
|
|
@@ -2020,7 +2097,7 @@ var RestArkProvider = class {
|
|
|
2020
2097
|
{
|
|
2021
2098
|
intent: {
|
|
2022
2099
|
proof: intent.proof,
|
|
2023
|
-
message:
|
|
2100
|
+
message: Proof.encodeMessage(intent.message)
|
|
2024
2101
|
}
|
|
2025
2102
|
},
|
|
2026
2103
|
(errorText) => `Failed to delete intent: ${errorText}`
|
|
@@ -2083,7 +2160,10 @@ var RestArkProvider = class {
|
|
|
2083
2160
|
try {
|
|
2084
2161
|
while (!signal?.aborted) {
|
|
2085
2162
|
const currentIterator = eventSourceIterator(
|
|
2086
|
-
resolveEventSource(self.eventSource)(
|
|
2163
|
+
resolveEventSource(self.eventSource)(
|
|
2164
|
+
url + queryParams,
|
|
2165
|
+
ARKADE_VERSION_HEADERS
|
|
2166
|
+
)
|
|
2087
2167
|
);
|
|
2088
2168
|
iterator = currentIterator;
|
|
2089
2169
|
try {
|
|
@@ -2143,7 +2223,7 @@ var RestArkProvider = class {
|
|
|
2143
2223
|
while (!signal?.aborted) {
|
|
2144
2224
|
try {
|
|
2145
2225
|
const currentIterator = eventSourceIterator(
|
|
2146
|
-
resolveEventSource(self.eventSource)(url)
|
|
2226
|
+
resolveEventSource(self.eventSource)(url, ARKADE_VERSION_HEADERS)
|
|
2147
2227
|
);
|
|
2148
2228
|
iterator = currentIterator;
|
|
2149
2229
|
for await (const event of currentIterator) {
|
|
@@ -2197,7 +2277,7 @@ var RestArkProvider = class {
|
|
|
2197
2277
|
{
|
|
2198
2278
|
intent: {
|
|
2199
2279
|
proof: intent.proof,
|
|
2200
|
-
message:
|
|
2280
|
+
message: Proof.encodeMessage(intent.message)
|
|
2201
2281
|
}
|
|
2202
2282
|
},
|
|
2203
2283
|
(errorText) => `Failed to get pending transactions: ${errorText}`
|
|
@@ -2389,6 +2469,7 @@ function handleError(errorText, defaultMessage) {
|
|
|
2389
2469
|
const arkError = maybeArkError(error);
|
|
2390
2470
|
throw arkError ?? new Error(defaultMessage);
|
|
2391
2471
|
}
|
|
2472
|
+
var RestArkProvider = RestOperatorProvider;
|
|
2392
2473
|
|
|
2393
2474
|
// src/providers/availability.ts
|
|
2394
2475
|
function isRetryableProviderError(error) {
|
|
@@ -2558,6 +2639,6 @@ function isVirtualCoin(input) {
|
|
|
2558
2639
|
return typeof input === "object" && input !== null && typeof input.script === "string";
|
|
2559
2640
|
}
|
|
2560
2641
|
|
|
2561
|
-
export { ARKADE_VERSION_HEADERS, ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, BITCOIN_EMULATOR_PUBKEY, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DEFAULT_ARKADE_EMULATOR_URL, DEFAULT_ARKADE_SERVER_URL, DEFAULT_NETWORK, DEFAULT_NETWORK_NAME, DEFAULT_PAGE_SIZE, DigestMismatchError, EXPIRY_MIN_PLAUSIBLE_MS, EventSourceUnavailableError, FetchError, INFO_FETCH_TIMEOUT_MS, Intent, MUTINYNET_EMULATOR_PUBKEY, MultisigTapscript, OP_RETURN_EMPTY_PKSCRIPT, PrevArkTxField, PrevoutTxField, ProviderUnavailableError, READ_TIMEOUT_MS, REGTEST_EMULATOR_PUBKEY, RestArkProvider, SCRIPT_QUERY_CHUNK_SIZE, ServerResponseMismatchError, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, __export, assembleBtcdTaprootTree, assertAllowedSighashTypes, assertNonNegativeMs, assertTimerMs, baseFetch, buildVersion, canRecoverOnchain, canSpendOffchain, canSweepOnchain, configureEventSource, convertVtxo, craftToSpendTx, decodeTapscript, defaultEmulatorPubkey, eventSourceIterator, fetchVtxoCreatedAtByTxid, formatSighash, getAllNormalizedVtxos, getArkPsbtFields, getConfiguredEventSource, getNetwork, getNormalizedVtxos, getSequence, isArkError, isEventSourceError, isEventSourceUnavailableError, isFetchTimeoutError, isPastExpiry, isRetryableProviderError, isVirtualCoin, isVtxoSpent, maybeArkError, networkFromArkadeInfo, networks, normalizeVtxo, rateGate, requiresForfeit, resolveEmulatorPubkey, resolveEventSource, resolveTimeHeight, scriptFromTapLeafScript, sdkVersion, sequenceToCanonicalTimelock, sequenceToTimelock, setArkPsbtField, streamFailureError, throwIfHttpUnavailable, timelockToSequence, toBIP371TapTree, toOffchainInputFeeParams, toProviderUnavailable };
|
|
2562
|
-
//# sourceMappingURL=chunk-
|
|
2563
|
-
//# sourceMappingURL=chunk-
|
|
2642
|
+
export { ARKADE_VERSION_HEADERS, ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, BITCOIN_EMULATOR_PUBKEY, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DEFAULT_ARKADE_EMULATOR_URL, DEFAULT_ARKADE_SERVER_URL, DEFAULT_NETWORK, DEFAULT_NETWORK_NAME, DEFAULT_PAGE_SIZE, DigestMismatchError, EXPIRY_MIN_PLAUSIBLE_MS, EventSourceUnavailableError, FetchError, INFO_FETCH_TIMEOUT_MS, Intent, MUTINYNET_EMULATOR_PUBKEY, MultisigTapscript, OP_RETURN_EMPTY_PKSCRIPT, PrevArkTxField, PrevoutTxField, Proof, ProviderUnavailableError, READ_TIMEOUT_MS, REGTEST_EMULATOR_PUBKEY, RestArkProvider, RestOperatorProvider, SCRIPT_QUERY_CHUNK_SIZE, ServerResponseMismatchError, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, __export, assembleBtcdTaprootTree, assertAllowedSighashTypes, assertNonNegativeMs, assertTimerMs, baseFetch, buildVersion, canRecoverOnchain, canSpendOffchain, canSweepOnchain, configureEventSource, convertVtxo, craftToSpendTx, decodeTapscript, defaultEmulatorPubkey, eventSourceIterator, fetchVtxoCreatedAtByTxid, formatSighash, getAllNormalizedVtxos, getArkPsbtFields, getConfiguredEventSource, getNetwork, getNormalizedVtxos, getSequence, isArkError, isEventSourceError, isEventSourceUnavailableError, isFetchTimeoutError, isPastExpiry, isRetryableProviderError, isVirtualCoin, isVtxoSpent, maybeArkError, networkFromArkadeInfo, networkFromOperatorInfo, networks, normalizeVtxo, rateGate, readSseFrames, requiresForfeit, resolveEmulatorPubkey, resolveEventSource, resolveTimeHeight, scriptFromTapLeafScript, sdkVersion, sequenceToCanonicalTimelock, sequenceToTimelock, setArkPsbtField, streamFailureError, throwIfHttpUnavailable, timelockToSequence, toBIP371TapTree, toOffchainInputFeeParams, toProviderUnavailable };
|
|
2643
|
+
//# sourceMappingURL=chunk-AG4TFD6F.js.map
|
|
2644
|
+
//# sourceMappingURL=chunk-AG4TFD6F.js.map
|