@arkade-os/sdk 0.4.39 → 0.4.40
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/dist/adapters/expo.cjs +4 -4
- package/dist/adapters/expo.d.cts +2 -2
- package/dist/adapters/expo.d.ts +2 -2
- package/dist/adapters/expo.js +2 -2
- package/dist/adapters/indexedDB.cjs +3 -3
- package/dist/adapters/indexedDB.js +2 -2
- package/dist/{ark-BzUNnkoc.d.cts → ark-BaZ6da8C.d.cts} +17 -4
- package/dist/{ark-BzUNnkoc.d.ts → ark-BaZ6da8C.d.ts} +17 -4
- package/dist/{asyncStorageTaskQueue-CIYeI6GM.d.ts → asyncStorageTaskQueue-CvV50MjV.d.ts} +2 -2
- package/dist/{asyncStorageTaskQueue-C0kQoY1x.d.cts → asyncStorageTaskQueue-trKcQM7q.d.cts} +2 -2
- package/dist/{chunk-UIFBMKI7.js → chunk-5TSUGRHP.js} +3 -3
- package/dist/{chunk-UIFBMKI7.js.map → chunk-5TSUGRHP.js.map} +1 -1
- package/dist/{chunk-LJLEFPWD.cjs → chunk-6EZY43WE.cjs} +14 -5
- package/dist/chunk-6EZY43WE.cjs.map +1 -0
- package/dist/{chunk-D744IES4.js → chunk-GF6NPAOJ.js} +14 -5
- package/dist/chunk-GF6NPAOJ.js.map +1 -0
- package/dist/{chunk-N56IDZON.cjs → chunk-GWISMFO5.cjs} +11 -11
- package/dist/{chunk-N56IDZON.cjs.map → chunk-GWISMFO5.cjs.map} +1 -1
- package/dist/{chunk-SYEGCMNV.js → chunk-I2O4Q2EL.js} +175 -78
- package/dist/chunk-I2O4Q2EL.js.map +1 -0
- package/dist/{chunk-P5FKMIGY.cjs → chunk-I4Z6KKUH.cjs} +251 -152
- package/dist/chunk-I4Z6KKUH.cjs.map +1 -0
- package/dist/{chunk-VGXTJ7HR.js → chunk-SWJBV4UB.js} +3 -3
- package/dist/{chunk-VGXTJ7HR.js.map → chunk-SWJBV4UB.js.map} +1 -1
- package/dist/{chunk-A5RLZCPO.cjs → chunk-TSG74BHI.cjs} +7 -7
- package/dist/{chunk-A5RLZCPO.cjs.map → chunk-TSG74BHI.cjs.map} +1 -1
- package/dist/contracts/handlers/index.d.cts +3 -3
- package/dist/contracts/handlers/index.d.ts +3 -3
- package/dist/{delegate-DHAgMIS9.d.cts → delegate-Bt5H1gbW.d.cts} +1 -1
- package/dist/{delegate-BjPbX-MR.d.ts → delegate-ClaZWxlA.d.ts} +1 -1
- package/dist/{index-BOQKDCmS.d.ts → index-ByYBDr1g.d.ts} +2 -2
- package/dist/{index-YkMAtSfw.d.cts → index-D6kIRfBy.d.cts} +2 -2
- package/dist/index.cjs +121 -113
- package/dist/index.d.cts +49 -10
- package/dist/index.d.ts +49 -10
- package/dist/index.js +2 -2
- package/dist/repositories/realm/index.cjs +11 -11
- package/dist/repositories/realm/index.d.cts +1 -1
- package/dist/repositories/realm/index.d.ts +1 -1
- package/dist/repositories/realm/index.js +2 -2
- package/dist/repositories/sqlite/index.cjs +11 -11
- package/dist/repositories/sqlite/index.d.cts +1 -1
- package/dist/repositories/sqlite/index.d.ts +1 -1
- package/dist/repositories/sqlite/index.js +2 -2
- package/dist/{taskRunner-Dfmt7ZPN.d.ts → taskRunner-Bwss4MUW.d.ts} +2 -2
- package/dist/{taskRunner-CVEgBO6d.d.cts → taskRunner-D7SuOTOa.d.cts} +2 -2
- package/dist/wallet/expo/background.cjs +12 -12
- package/dist/wallet/expo/background.d.cts +3 -3
- package/dist/wallet/expo/background.d.ts +3 -3
- package/dist/wallet/expo/background.js +4 -4
- package/dist/wallet/expo/index.cjs +11 -11
- package/dist/wallet/expo/index.d.cts +4 -4
- package/dist/wallet/expo/index.d.ts +4 -4
- package/dist/wallet/expo/index.js +3 -3
- package/dist/{wallet-_PTv-lMe.d.cts → wallet-V5C4Nlhz.d.cts} +2 -2
- package/dist/{wallet-C4Pide44.d.ts → wallet-l-2dKXVh.d.ts} +2 -2
- package/dist/worker/expo/index.cjs +7 -7
- package/dist/worker/expo/index.d.cts +4 -4
- package/dist/worker/expo/index.d.ts +4 -4
- package/dist/worker/expo/index.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-D744IES4.js.map +0 -1
- package/dist/chunk-LJLEFPWD.cjs.map +0 -1
- package/dist/chunk-P5FKMIGY.cjs.map +0 -1
- package/dist/chunk-SYEGCMNV.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk6EZY43WE_cjs = require('./chunk-6EZY43WE.cjs');
|
|
4
4
|
var chunkGUTKJMSF_cjs = require('./chunk-GUTKJMSF.cjs');
|
|
5
5
|
var chunkCMPJR3HS_cjs = require('./chunk-CMPJR3HS.cjs');
|
|
6
6
|
var utils_js = require('@scure/btc-signer/utils.js');
|
|
@@ -181,7 +181,7 @@ var TreeSignerSession = class _TreeSignerSession {
|
|
|
181
181
|
noncesByPubkey.set(base.hex.encode(myPublicKey.subarray(1)), myNonce);
|
|
182
182
|
const tx = this.graph.find(txid);
|
|
183
183
|
if (!tx) throw new Error(`missing tx for txid ${txid}`);
|
|
184
|
-
const cosigners =
|
|
184
|
+
const cosigners = chunk6EZY43WE_cjs.getArkPsbtFields(tx.root, 0, chunk6EZY43WE_cjs.CosignerPublicKey).map(
|
|
185
185
|
(c) => base.hex.encode(c.key.subarray(1))
|
|
186
186
|
// xonly pubkey
|
|
187
187
|
);
|
|
@@ -233,7 +233,7 @@ var TreeSignerSession = class _TreeSignerSession {
|
|
|
233
233
|
if (!aggNonce) throw new Error("missing aggregate nonce");
|
|
234
234
|
const prevoutAmounts = [];
|
|
235
235
|
const prevoutScripts = [];
|
|
236
|
-
const cosigners =
|
|
236
|
+
const cosigners = chunk6EZY43WE_cjs.getArkPsbtFields(g.root, 0, chunk6EZY43WE_cjs.CosignerPublicKey).map((c) => c.key);
|
|
237
237
|
const { finalKey } = aggregateKeys(cosigners, true, {
|
|
238
238
|
taprootTweak: this.scriptRoot
|
|
239
239
|
});
|
|
@@ -980,14 +980,14 @@ var RestDelegateProvider = class {
|
|
|
980
980
|
*/
|
|
981
981
|
async delegate(intent, forfeitTxs, options) {
|
|
982
982
|
const url = `${this.url}/v1/delegate`;
|
|
983
|
-
const response = await
|
|
983
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(url, {
|
|
984
984
|
method: "POST",
|
|
985
985
|
headers: {
|
|
986
986
|
"Content-Type": "application/json"
|
|
987
987
|
},
|
|
988
988
|
body: JSON.stringify({
|
|
989
989
|
intent: {
|
|
990
|
-
message:
|
|
990
|
+
message: chunk6EZY43WE_cjs.Intent.encodeMessage(intent.message),
|
|
991
991
|
proof: intent.proof
|
|
992
992
|
},
|
|
993
993
|
forfeit_txs: forfeitTxs,
|
|
@@ -1007,7 +1007,7 @@ var RestDelegateProvider = class {
|
|
|
1007
1007
|
*/
|
|
1008
1008
|
async getDelegateInfo() {
|
|
1009
1009
|
const url = `${this.url}/v1/delegator/info`;
|
|
1010
|
-
const response = await
|
|
1010
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(url);
|
|
1011
1011
|
if (!response.ok) {
|
|
1012
1012
|
const errorText2 = await response.text();
|
|
1013
1013
|
throw new Error(`Failed to get delegate info: ${errorText2}`);
|
|
@@ -1042,14 +1042,14 @@ var EsploraProvider = class {
|
|
|
1042
1042
|
pollingInterval;
|
|
1043
1043
|
forcePolling;
|
|
1044
1044
|
async getCoins(address) {
|
|
1045
|
-
const response = await
|
|
1045
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/address/${address}/utxo`);
|
|
1046
1046
|
if (!response.ok) {
|
|
1047
1047
|
throw new Error(`Failed to fetch UTXOs: ${response.statusText}`);
|
|
1048
1048
|
}
|
|
1049
1049
|
return response.json();
|
|
1050
1050
|
}
|
|
1051
1051
|
async getFeeRate() {
|
|
1052
|
-
const response = await
|
|
1052
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/fee-estimates`);
|
|
1053
1053
|
if (response.status === 404) {
|
|
1054
1054
|
return void 0;
|
|
1055
1055
|
}
|
|
@@ -1070,7 +1070,7 @@ var EsploraProvider = class {
|
|
|
1070
1070
|
}
|
|
1071
1071
|
}
|
|
1072
1072
|
async getTxOutspends(txid) {
|
|
1073
|
-
const response = await
|
|
1073
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/outspends`);
|
|
1074
1074
|
if (!response.ok) {
|
|
1075
1075
|
const error = await response.text();
|
|
1076
1076
|
throw new Error(`Failed to get transaction outspends: ${error}`);
|
|
@@ -1078,7 +1078,7 @@ var EsploraProvider = class {
|
|
|
1078
1078
|
return response.json();
|
|
1079
1079
|
}
|
|
1080
1080
|
async getTransactions(address) {
|
|
1081
|
-
const response = await
|
|
1081
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/address/${address}/txs`);
|
|
1082
1082
|
if (!response.ok) {
|
|
1083
1083
|
const error = await response.text();
|
|
1084
1084
|
throw new Error(`Failed to get transactions: ${error}`);
|
|
@@ -1086,7 +1086,7 @@ var EsploraProvider = class {
|
|
|
1086
1086
|
return response.json();
|
|
1087
1087
|
}
|
|
1088
1088
|
async getTxStatus(txid) {
|
|
1089
|
-
const txresponse = await
|
|
1089
|
+
const txresponse = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/tx/${txid}`);
|
|
1090
1090
|
if (!txresponse.ok) {
|
|
1091
1091
|
throw new Error(txresponse.statusText);
|
|
1092
1092
|
}
|
|
@@ -1094,7 +1094,7 @@ var EsploraProvider = class {
|
|
|
1094
1094
|
if (!tx.status.confirmed) {
|
|
1095
1095
|
return { confirmed: false };
|
|
1096
1096
|
}
|
|
1097
|
-
const response = await
|
|
1097
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/tx/${txid}/status`);
|
|
1098
1098
|
if (!response.ok) {
|
|
1099
1099
|
throw new Error(`Failed to get transaction status: ${response.statusText}`);
|
|
1100
1100
|
}
|
|
@@ -1178,7 +1178,7 @@ var EsploraProvider = class {
|
|
|
1178
1178
|
return stopFunc;
|
|
1179
1179
|
}
|
|
1180
1180
|
async getChainTip() {
|
|
1181
|
-
const tipBlocks = await
|
|
1181
|
+
const tipBlocks = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/blocks`);
|
|
1182
1182
|
if (!tipBlocks.ok) {
|
|
1183
1183
|
throw new Error(`Failed to get chain tip: ${tipBlocks.statusText}`);
|
|
1184
1184
|
}
|
|
@@ -1197,7 +1197,7 @@ var EsploraProvider = class {
|
|
|
1197
1197
|
};
|
|
1198
1198
|
}
|
|
1199
1199
|
async broadcastPackage(parent, child) {
|
|
1200
|
-
const response = await
|
|
1200
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/txs/package`, {
|
|
1201
1201
|
method: "POST",
|
|
1202
1202
|
headers: {
|
|
1203
1203
|
"Content-Type": "application/json"
|
|
@@ -1211,7 +1211,7 @@ var EsploraProvider = class {
|
|
|
1211
1211
|
return response.json();
|
|
1212
1212
|
}
|
|
1213
1213
|
async broadcastTx(tx) {
|
|
1214
|
-
const response = await
|
|
1214
|
+
const response = await chunk6EZY43WE_cjs.baseFetch(`${this.baseUrl}/tx`, {
|
|
1215
1215
|
method: "POST",
|
|
1216
1216
|
headers: {
|
|
1217
1217
|
"Content-Type": "text/plain"
|
|
@@ -1231,7 +1231,9 @@ function isValidBlocksTip(tip) {
|
|
|
1231
1231
|
});
|
|
1232
1232
|
}
|
|
1233
1233
|
var isExplorerTransaction = (tx) => {
|
|
1234
|
-
return typeof tx.txid === "string" && Array.isArray(tx.
|
|
1234
|
+
return typeof tx.txid === "string" && (tx.vin === void 0 || Array.isArray(tx.vin) && tx.vin.every(
|
|
1235
|
+
(vin) => typeof vin.txid === "string" && typeof vin.vout === "number"
|
|
1236
|
+
)) && Array.isArray(tx.vout) && tx.vout.every(
|
|
1235
1237
|
(vout) => typeof vout.scriptpubkey_address === "string" && typeof vout.value === "number"
|
|
1236
1238
|
) && typeof tx.status === "object" && typeof tx.status.confirmed === "boolean";
|
|
1237
1239
|
};
|
|
@@ -1280,7 +1282,7 @@ function buildForfeitTx(inputs, forfeitPkScript, txLocktime) {
|
|
|
1280
1282
|
);
|
|
1281
1283
|
}
|
|
1282
1284
|
function buildForfeitTxWithOutput(inputs, output, txLocktime) {
|
|
1283
|
-
const tx = new
|
|
1285
|
+
const tx = new chunk6EZY43WE_cjs.Transaction({
|
|
1284
1286
|
version: 3,
|
|
1285
1287
|
lockTime: txLocktime
|
|
1286
1288
|
});
|
|
@@ -1356,7 +1358,7 @@ function validateVtxoTxGraph(graph, roundTransaction, sweepTapTreeRoot) {
|
|
|
1356
1358
|
if (previousScriptKey.length !== 32) {
|
|
1357
1359
|
throw new Error(`parent output ${childIndex} has invalid script`);
|
|
1358
1360
|
}
|
|
1359
|
-
const cosigners =
|
|
1361
|
+
const cosigners = chunk6EZY43WE_cjs.getArkPsbtFields(child.root, 0, chunk6EZY43WE_cjs.CosignerPublicKey);
|
|
1360
1362
|
if (cosigners.length === 0) {
|
|
1361
1363
|
throw ErrMissingCosignersPublicKeys;
|
|
1362
1364
|
}
|
|
@@ -1456,7 +1458,7 @@ var Extension = class _Extension {
|
|
|
1456
1458
|
`expected magic prefix ${base.hex.encode(ARKADE_MAGIC)}, got ${base.hex.encode(payload.slice(0, Math.min(payload.length, ARKADE_MAGIC.length)))}`
|
|
1457
1459
|
);
|
|
1458
1460
|
}
|
|
1459
|
-
const reader = new
|
|
1461
|
+
const reader = new chunk6EZY43WE_cjs.BufferReader(payload.slice(ARKADE_MAGIC.length));
|
|
1460
1462
|
const packets = [];
|
|
1461
1463
|
while (reader.remaining() > 0) {
|
|
1462
1464
|
const packetType = reader.readByte();
|
|
@@ -1530,7 +1532,7 @@ var Extension = class _Extension {
|
|
|
1530
1532
|
*/
|
|
1531
1533
|
getAssetPacket() {
|
|
1532
1534
|
for (const p of this.packets) {
|
|
1533
|
-
if (p instanceof
|
|
1535
|
+
if (p instanceof chunk6EZY43WE_cjs.Packet) {
|
|
1534
1536
|
return p;
|
|
1535
1537
|
}
|
|
1536
1538
|
}
|
|
@@ -1538,8 +1540,8 @@ var Extension = class _Extension {
|
|
|
1538
1540
|
}
|
|
1539
1541
|
};
|
|
1540
1542
|
function parsePacket(packetType, data) {
|
|
1541
|
-
if (packetType ===
|
|
1542
|
-
return
|
|
1543
|
+
if (packetType === chunk6EZY43WE_cjs.Packet.PACKET_TYPE) {
|
|
1544
|
+
return chunk6EZY43WE_cjs.Packet.fromBytes(data);
|
|
1543
1545
|
}
|
|
1544
1546
|
return new UnknownPacket(packetType, data);
|
|
1545
1547
|
}
|
|
@@ -1730,7 +1732,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
|
|
|
1730
1732
|
const existing = inputsByAssetId.get(asset.assetId);
|
|
1731
1733
|
inputsByAssetId.set(asset.assetId, [
|
|
1732
1734
|
...existing ?? [],
|
|
1733
|
-
|
|
1735
|
+
chunk6EZY43WE_cjs.AssetInput.create(inputIndex, asset.amount)
|
|
1734
1736
|
]);
|
|
1735
1737
|
}
|
|
1736
1738
|
}
|
|
@@ -1742,7 +1744,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
|
|
|
1742
1744
|
const existing = outputsByAssetId.get(asset.assetId);
|
|
1743
1745
|
outputsByAssetId.set(asset.assetId, [
|
|
1744
1746
|
...existing ?? [],
|
|
1745
|
-
|
|
1747
|
+
chunk6EZY43WE_cjs.AssetOutput.create(outputIndex, asset.amount)
|
|
1746
1748
|
]);
|
|
1747
1749
|
}
|
|
1748
1750
|
}
|
|
@@ -1753,7 +1755,7 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
|
|
|
1753
1755
|
const existing = outputsByAssetId.get(asset.assetId);
|
|
1754
1756
|
outputsByAssetId.set(asset.assetId, [
|
|
1755
1757
|
...existing ?? [],
|
|
1756
|
-
|
|
1758
|
+
chunk6EZY43WE_cjs.AssetOutput.create(outputIndex, asset.amount)
|
|
1757
1759
|
]);
|
|
1758
1760
|
}
|
|
1759
1761
|
}
|
|
@@ -1762,11 +1764,11 @@ function createAssetPacket(assetInputs, receivers, changeReceiver) {
|
|
|
1762
1764
|
for (const assetIdStr of allAssetIds) {
|
|
1763
1765
|
const inputs = inputsByAssetId.get(assetIdStr);
|
|
1764
1766
|
const outputs = outputsByAssetId.get(assetIdStr);
|
|
1765
|
-
const assetId =
|
|
1766
|
-
const group =
|
|
1767
|
+
const assetId = chunk6EZY43WE_cjs.AssetId.fromString(assetIdStr);
|
|
1768
|
+
const group = chunk6EZY43WE_cjs.AssetGroup.create(assetId, null, inputs ?? [], outputs ?? [], []);
|
|
1767
1769
|
groups.push(group);
|
|
1768
1770
|
}
|
|
1769
|
-
return
|
|
1771
|
+
return chunk6EZY43WE_cjs.Packet.create(groups);
|
|
1770
1772
|
}
|
|
1771
1773
|
function selectCoinsWithAsset(coins, assetId, requiredAmount) {
|
|
1772
1774
|
const coinsWithAsset = coins.filter((coin) => coin.assets?.some((a) => a.assetId === assetId));
|
|
@@ -1883,7 +1885,7 @@ function buildVirtualTx(inputs, outputs) {
|
|
|
1883
1885
|
}
|
|
1884
1886
|
}
|
|
1885
1887
|
}
|
|
1886
|
-
const tx = new
|
|
1888
|
+
const tx = new chunk6EZY43WE_cjs.Transaction({
|
|
1887
1889
|
version: 3,
|
|
1888
1890
|
lockTime: Number(lockTime)
|
|
1889
1891
|
});
|
|
@@ -1898,7 +1900,7 @@ function buildVirtualTx(inputs, outputs) {
|
|
|
1898
1900
|
},
|
|
1899
1901
|
tapLeafScript: [input.tapLeafScript]
|
|
1900
1902
|
});
|
|
1901
|
-
|
|
1903
|
+
chunk6EZY43WE_cjs.setArkPsbtField(tx, i, chunk6EZY43WE_cjs.VtxoTaprootTree, input.tapTree);
|
|
1902
1904
|
}
|
|
1903
1905
|
for (const output of outputs) {
|
|
1904
1906
|
tx.addOutput(output);
|
|
@@ -2269,7 +2271,7 @@ var Estimator = class {
|
|
|
2269
2271
|
* @param onchainOutputs - Array of onchain outputs to evaluate
|
|
2270
2272
|
* @returns The total fee amount
|
|
2271
2273
|
*/
|
|
2272
|
-
|
|
2274
|
+
evaluate(offchainInputs, onchainInputs, offchainOutputs, onchainOutputs) {
|
|
2273
2275
|
let fee = FeeAmount.ZERO;
|
|
2274
2276
|
for (const input of offchainInputs) {
|
|
2275
2277
|
fee = fee.add(this.evalOffchainInput(input));
|
|
@@ -3006,7 +3008,7 @@ var VtxoManager = class _VtxoManager {
|
|
|
3006
3008
|
`Sweep not economical: output ${outputAmount} sats after ${fee} sats fee is below dust (${dustAmount} sats)`
|
|
3007
3009
|
);
|
|
3008
3010
|
}
|
|
3009
|
-
const tx = new
|
|
3011
|
+
const tx = new chunk6EZY43WE_cjs.Transaction();
|
|
3010
3012
|
for (const utxo of expiredUtxos) {
|
|
3011
3013
|
const utxoScript = chunkCMPJR3HS_cjs.VtxoScript.decode(utxo.tapTree);
|
|
3012
3014
|
const utxoExitLeaf = utxoScript.leaves.find(
|
|
@@ -3644,7 +3646,7 @@ var VtxoManager = class _VtxoManager {
|
|
|
3644
3646
|
* or doesn't carry the metadata.
|
|
3645
3647
|
*/
|
|
3646
3648
|
extractSpentOutpoint(error) {
|
|
3647
|
-
const ark =
|
|
3649
|
+
const ark = chunk6EZY43WE_cjs.maybeArkError(error);
|
|
3648
3650
|
if (!ark || ark.name !== "VTXO_ALREADY_SPENT") return void 0;
|
|
3649
3651
|
const raw = ark.metadata?.vtxo_outpoint;
|
|
3650
3652
|
if (typeof raw !== "string") return void 0;
|
|
@@ -4555,7 +4557,7 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4555
4557
|
const virtualCoins = await this.wallet.getVtxos({
|
|
4556
4558
|
withRecoverable: false
|
|
4557
4559
|
});
|
|
4558
|
-
const controlAssetRef = params.controlAssetId ?
|
|
4560
|
+
const controlAssetRef = params.controlAssetId ? chunk6EZY43WE_cjs.AssetRef.fromId(chunk6EZY43WE_cjs.AssetId.fromString(params.controlAssetId)) : null;
|
|
4559
4561
|
const coinSelection = selectVirtualCoins(virtualCoins, Number(this.wallet.dustAmount));
|
|
4560
4562
|
let totalBtcSelected = 0n;
|
|
4561
4563
|
const assetChanges = /* @__PURE__ */ new Map();
|
|
@@ -4568,8 +4570,8 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4568
4570
|
}
|
|
4569
4571
|
}
|
|
4570
4572
|
const groups = [];
|
|
4571
|
-
const issuedAssetOutput =
|
|
4572
|
-
const issuedAssetGroup =
|
|
4573
|
+
const issuedAssetOutput = chunk6EZY43WE_cjs.AssetOutput.create(0, params.amount);
|
|
4574
|
+
const issuedAssetGroup = chunk6EZY43WE_cjs.AssetGroup.create(
|
|
4573
4575
|
null,
|
|
4574
4576
|
controlAssetRef,
|
|
4575
4577
|
[],
|
|
@@ -4584,15 +4586,15 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4584
4586
|
for (const [inputIndex, assets] of assetInputs) {
|
|
4585
4587
|
for (const asset of assets) {
|
|
4586
4588
|
if (asset.assetId !== assetId) continue;
|
|
4587
|
-
changeInputs.push(
|
|
4589
|
+
changeInputs.push(chunk6EZY43WE_cjs.AssetInput.create(inputIndex, asset.amount));
|
|
4588
4590
|
}
|
|
4589
4591
|
}
|
|
4590
4592
|
groups.push(
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
+
chunk6EZY43WE_cjs.AssetGroup.create(
|
|
4594
|
+
chunk6EZY43WE_cjs.AssetId.fromString(assetId),
|
|
4593
4595
|
null,
|
|
4594
4596
|
changeInputs,
|
|
4595
|
-
[
|
|
4597
|
+
[chunk6EZY43WE_cjs.AssetOutput.create(0, amount)],
|
|
4596
4598
|
[]
|
|
4597
4599
|
)
|
|
4598
4600
|
);
|
|
@@ -4605,7 +4607,7 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4605
4607
|
script: outputAddress.pkScript,
|
|
4606
4608
|
amount: BigInt(totalBtcSelected)
|
|
4607
4609
|
},
|
|
4608
|
-
Extension.create([
|
|
4610
|
+
Extension.create([chunk6EZY43WE_cjs.Packet.create(groups)]).txOut()
|
|
4609
4611
|
];
|
|
4610
4612
|
const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(
|
|
4611
4613
|
coinSelection.inputs,
|
|
@@ -4613,7 +4615,7 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4613
4615
|
);
|
|
4614
4616
|
return {
|
|
4615
4617
|
arkTxId: arkTxid,
|
|
4616
|
-
assetId:
|
|
4618
|
+
assetId: chunk6EZY43WE_cjs.AssetId.create(arkTxid, 0).toString()
|
|
4617
4619
|
};
|
|
4618
4620
|
}
|
|
4619
4621
|
/**
|
|
@@ -4685,16 +4687,16 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4685
4687
|
for (const [inputIndex, assets] of assetInputs) {
|
|
4686
4688
|
for (const asset of assets) {
|
|
4687
4689
|
if (asset.assetId !== params.assetId) continue;
|
|
4688
|
-
reissueInputs.push(
|
|
4690
|
+
reissueInputs.push(chunk6EZY43WE_cjs.AssetInput.create(inputIndex, asset.amount));
|
|
4689
4691
|
}
|
|
4690
4692
|
}
|
|
4691
4693
|
const totalAssetAmount = assetToReissueAmount + params.amount;
|
|
4692
|
-
const reissueAssetIdObj =
|
|
4693
|
-
const reissueAssetGroup =
|
|
4694
|
+
const reissueAssetIdObj = chunk6EZY43WE_cjs.AssetId.fromString(params.assetId);
|
|
4695
|
+
const reissueAssetGroup = chunk6EZY43WE_cjs.AssetGroup.create(
|
|
4694
4696
|
reissueAssetIdObj,
|
|
4695
4697
|
null,
|
|
4696
4698
|
reissueInputs,
|
|
4697
|
-
[
|
|
4699
|
+
[chunk6EZY43WE_cjs.AssetOutput.create(0, totalAssetAmount)],
|
|
4698
4700
|
[]
|
|
4699
4701
|
);
|
|
4700
4702
|
const groups = [reissueAssetGroup];
|
|
@@ -4703,15 +4705,15 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4703
4705
|
for (const [inputIndex, assets] of assetInputs) {
|
|
4704
4706
|
for (const asset of assets) {
|
|
4705
4707
|
if (asset.assetId !== assetId) continue;
|
|
4706
|
-
changeInputs.push(
|
|
4708
|
+
changeInputs.push(chunk6EZY43WE_cjs.AssetInput.create(inputIndex, asset.amount));
|
|
4707
4709
|
}
|
|
4708
4710
|
}
|
|
4709
4711
|
groups.push(
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
+
chunk6EZY43WE_cjs.AssetGroup.create(
|
|
4713
|
+
chunk6EZY43WE_cjs.AssetId.fromString(assetId),
|
|
4712
4714
|
null,
|
|
4713
4715
|
changeInputs,
|
|
4714
|
-
[
|
|
4716
|
+
[chunk6EZY43WE_cjs.AssetOutput.create(0, amount)],
|
|
4715
4717
|
[]
|
|
4716
4718
|
)
|
|
4717
4719
|
);
|
|
@@ -4723,7 +4725,7 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4723
4725
|
script: outputAddress.pkScript,
|
|
4724
4726
|
amount: BigInt(totalBtcSelected)
|
|
4725
4727
|
},
|
|
4726
|
-
Extension.create([
|
|
4728
|
+
Extension.create([chunk6EZY43WE_cjs.Packet.create(groups)]).txOut()
|
|
4727
4729
|
];
|
|
4728
4730
|
const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(selectedCoins, outputs);
|
|
4729
4731
|
return arkTxid;
|
|
@@ -4790,15 +4792,15 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4790
4792
|
for (const [inputIndex, assets] of assetInputs) {
|
|
4791
4793
|
for (const asset of assets) {
|
|
4792
4794
|
if (asset.assetId !== assetId) continue;
|
|
4793
|
-
changeInputs.push(
|
|
4795
|
+
changeInputs.push(chunk6EZY43WE_cjs.AssetInput.create(inputIndex, asset.amount));
|
|
4794
4796
|
}
|
|
4795
4797
|
}
|
|
4796
4798
|
groups.push(
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
+
chunk6EZY43WE_cjs.AssetGroup.create(
|
|
4800
|
+
chunk6EZY43WE_cjs.AssetId.fromString(assetId),
|
|
4799
4801
|
null,
|
|
4800
4802
|
changeInputs,
|
|
4801
|
-
amount > 0n ? [
|
|
4803
|
+
amount > 0n ? [chunk6EZY43WE_cjs.AssetOutput.create(0, amount)] : [],
|
|
4802
4804
|
[]
|
|
4803
4805
|
)
|
|
4804
4806
|
);
|
|
@@ -4810,7 +4812,7 @@ var AssetManager = class extends ReadonlyAssetManager {
|
|
|
4810
4812
|
script: outputAddress.pkScript,
|
|
4811
4813
|
amount: BigInt(totalBtcSelected)
|
|
4812
4814
|
},
|
|
4813
|
-
Extension.create([
|
|
4815
|
+
Extension.create([chunk6EZY43WE_cjs.Packet.create(groups)]).txOut()
|
|
4814
4816
|
];
|
|
4815
4817
|
const { arkTxid } = await this.wallet.buildAndSubmitOffchainTx(selectedCoins, outputs);
|
|
4816
4818
|
return arkTxid;
|
|
@@ -4835,7 +4837,7 @@ function castMetadata(metadata) {
|
|
|
4835
4837
|
} else {
|
|
4836
4838
|
throw new Error("Invalid metadata value type");
|
|
4837
4839
|
}
|
|
4838
|
-
md.push(
|
|
4840
|
+
md.push(chunk6EZY43WE_cjs.Metadata.create(textEncoder.encode(key), valueBytes));
|
|
4839
4841
|
}
|
|
4840
4842
|
return md;
|
|
4841
4843
|
}
|
|
@@ -5120,7 +5122,7 @@ async function makeSignedDelegateIntent(identity, coins, outputs, onchainOutputs
|
|
|
5120
5122
|
expire_at: 0,
|
|
5121
5123
|
cosigners_public_keys: cosignerPubKeys
|
|
5122
5124
|
};
|
|
5123
|
-
const proof =
|
|
5125
|
+
const proof = chunk6EZY43WE_cjs.Intent.create(message, coins, outputs);
|
|
5124
5126
|
const signedProof = await identity.sign(proof);
|
|
5125
5127
|
return {
|
|
5126
5128
|
proof: base.base64.encode(signedProof.toPSBT()),
|
|
@@ -6863,7 +6865,7 @@ var ContractWatcher = class {
|
|
|
6863
6865
|
this.connectionState = "connected";
|
|
6864
6866
|
this.reconnectAttempts = 0;
|
|
6865
6867
|
this.listenLoop().catch((e) => {
|
|
6866
|
-
if (
|
|
6868
|
+
if (chunk6EZY43WE_cjs.isEventSourceError(e)) {
|
|
6867
6869
|
console.debug("ContractWatcher subscription disconnected; reconnecting");
|
|
6868
6870
|
} else {
|
|
6869
6871
|
console.error(e);
|
|
@@ -8819,7 +8821,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
8819
8821
|
*/
|
|
8820
8822
|
static async setupWalletConfig(config, pubKey) {
|
|
8821
8823
|
const arkadeServerUrl = getArkadeServerUrl(config);
|
|
8822
|
-
const arkProvider = config.arkProvider || new
|
|
8824
|
+
const arkProvider = config.arkProvider || new chunk6EZY43WE_cjs.RestArkProvider(arkadeServerUrl);
|
|
8823
8825
|
let indexerProvider = config.indexerProvider;
|
|
8824
8826
|
if (!indexerProvider) {
|
|
8825
8827
|
let indexerUrl = config.indexerUrl;
|
|
@@ -8836,7 +8838,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
8836
8838
|
indexerUrl = arkadeServerUrl;
|
|
8837
8839
|
}
|
|
8838
8840
|
}
|
|
8839
|
-
indexerProvider = new
|
|
8841
|
+
indexerProvider = new chunk6EZY43WE_cjs.RestIndexerProvider(indexerUrl);
|
|
8840
8842
|
}
|
|
8841
8843
|
const info = await arkProvider.getInfo();
|
|
8842
8844
|
const network = chunkCMPJR3HS_cjs.getNetwork(info.network);
|
|
@@ -9102,6 +9104,12 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
9102
9104
|
const boardingAddress = tapscript.onchainAddress(this.network);
|
|
9103
9105
|
const scriptHex = base.hex.encode(tapscript.pkScript);
|
|
9104
9106
|
const txs = await this.onchainProvider.getTransactions(boardingAddress);
|
|
9107
|
+
const commitmentByOutpoint = /* @__PURE__ */ new Map();
|
|
9108
|
+
for (const tx of txs) {
|
|
9109
|
+
for (const input of tx.vin ?? []) {
|
|
9110
|
+
commitmentByOutpoint.set(`${input.txid}:${input.vout}`, tx.txid);
|
|
9111
|
+
}
|
|
9112
|
+
}
|
|
9105
9113
|
for (const tx of txs) {
|
|
9106
9114
|
for (let i = 0; i < tx.vout.length; i++) {
|
|
9107
9115
|
const vout = tx.vout[i];
|
|
@@ -9112,8 +9120,10 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
9112
9120
|
outspendCache.set(tx.txid, spentStatuses);
|
|
9113
9121
|
}
|
|
9114
9122
|
const spentStatus = spentStatuses[i];
|
|
9115
|
-
|
|
9116
|
-
|
|
9123
|
+
const commitmentTxid = spentStatus?.txid || commitmentByOutpoint.get(`${tx.txid}:${i}`);
|
|
9124
|
+
const spent = Boolean(spentStatus?.spent) || commitmentTxid !== void 0;
|
|
9125
|
+
if (spent && commitmentTxid) {
|
|
9126
|
+
commitmentsToIgnore.add(commitmentTxid);
|
|
9117
9127
|
}
|
|
9118
9128
|
utxos.push({
|
|
9119
9129
|
txid: tx.txid,
|
|
@@ -9125,8 +9135,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
9125
9135
|
},
|
|
9126
9136
|
isUnrolled: true,
|
|
9127
9137
|
virtualStatus: {
|
|
9128
|
-
state:
|
|
9129
|
-
commitmentTxIds:
|
|
9138
|
+
state: spent ? "spent" : "settled",
|
|
9139
|
+
commitmentTxIds: spent && commitmentTxid ? [commitmentTxid] : void 0
|
|
9130
9140
|
},
|
|
9131
9141
|
createdAt: tx.status.confirmed ? new Date(tx.status.block_time * 1e3) : /* @__PURE__ */ new Date(0),
|
|
9132
9142
|
script: scriptHex
|
|
@@ -10744,7 +10754,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10744
10754
|
try {
|
|
10745
10755
|
return await this.arkProvider.registerIntent(intent);
|
|
10746
10756
|
} catch (error) {
|
|
10747
|
-
if (error instanceof
|
|
10757
|
+
if (error instanceof chunk6EZY43WE_cjs.ArkError && error.code === 0 && error.message.includes("duplicated input")) {
|
|
10748
10758
|
const deleteIntent = await this.makeDeleteIntentSignature(inputs);
|
|
10749
10759
|
await this.arkProvider.deleteIntent(deleteIntent);
|
|
10750
10760
|
return this.arkProvider.registerIntent(intent);
|
|
@@ -10760,7 +10770,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10760
10770
|
expire_at: 0,
|
|
10761
10771
|
cosigners_public_keys: cosignerPubKeys
|
|
10762
10772
|
};
|
|
10763
|
-
const proof =
|
|
10773
|
+
const proof = chunk6EZY43WE_cjs.Intent.create(message, coins, outputs);
|
|
10764
10774
|
const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
|
|
10765
10775
|
return {
|
|
10766
10776
|
proof: base.base64.encode(signedProof.toPSBT()),
|
|
@@ -10772,7 +10782,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10772
10782
|
type: "delete",
|
|
10773
10783
|
expire_at: 0
|
|
10774
10784
|
};
|
|
10775
|
-
const proof =
|
|
10785
|
+
const proof = chunk6EZY43WE_cjs.Intent.create(message, coins, []);
|
|
10776
10786
|
const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
|
|
10777
10787
|
return {
|
|
10778
10788
|
proof: base.base64.encode(signedProof.toPSBT()),
|
|
@@ -10784,7 +10794,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10784
10794
|
type: "get-pending-tx",
|
|
10785
10795
|
expire_at: 0
|
|
10786
10796
|
};
|
|
10787
|
-
const proof =
|
|
10797
|
+
const proof = chunk6EZY43WE_cjs.Intent.create(message, coins, []);
|
|
10788
10798
|
const signedProof = await this._signerRouter.sign(proof, intentProofJobs(coins));
|
|
10789
10799
|
return {
|
|
10790
10800
|
proof: base.base64.encode(signedProof.toPSBT()),
|
|
@@ -11539,9 +11549,15 @@ async function waitForIncomingFunds(wallet) {
|
|
|
11539
11549
|
|
|
11540
11550
|
// src/worker/errors.ts
|
|
11541
11551
|
var MESSAGE_BUS_NOT_INITIALIZED = "MessageBus not initialized";
|
|
11552
|
+
var MESSAGE_BUS_INITIALIZING = `${MESSAGE_BUS_NOT_INITIALIZED}: initializing`;
|
|
11542
11553
|
var MessageBusNotInitializedError = class extends Error {
|
|
11554
|
+
constructor(message = MESSAGE_BUS_NOT_INITIALIZED) {
|
|
11555
|
+
super(message);
|
|
11556
|
+
}
|
|
11557
|
+
};
|
|
11558
|
+
var MessageBusInitializingError = class extends MessageBusNotInitializedError {
|
|
11543
11559
|
constructor() {
|
|
11544
|
-
super(
|
|
11560
|
+
super(MESSAGE_BUS_INITIALIZING);
|
|
11545
11561
|
}
|
|
11546
11562
|
};
|
|
11547
11563
|
var ServiceWorkerTimeoutError = class extends Error {
|
|
@@ -11583,6 +11599,16 @@ var MessageBus = class {
|
|
|
11583
11599
|
tickInProgress = false;
|
|
11584
11600
|
debug = false;
|
|
11585
11601
|
initialized = false;
|
|
11602
|
+
/**
|
|
11603
|
+
* FIFO chain that serializes `INITIALIZE_MESSAGE_BUS` handling. Each init
|
|
11604
|
+
* runs to completion in enqueue order.
|
|
11605
|
+
*/
|
|
11606
|
+
initChain = Promise.resolve();
|
|
11607
|
+
/**
|
|
11608
|
+
* Number of inits accepted but not yet settled (queued or running). The
|
|
11609
|
+
* bus refuses ordinary wallet messages while this is > 0.
|
|
11610
|
+
*/
|
|
11611
|
+
pendingInitCount = 0;
|
|
11586
11612
|
buildServicesFn;
|
|
11587
11613
|
boundOnMessage = this.onMessage.bind(this);
|
|
11588
11614
|
/** Start the message bus and attach service-worker event listeners. */
|
|
@@ -11628,11 +11654,12 @@ var MessageBus = class {
|
|
|
11628
11654
|
async runTick() {
|
|
11629
11655
|
if (!this.running) return;
|
|
11630
11656
|
if (this.tickInProgress) return;
|
|
11631
|
-
this.tickInProgress = true;
|
|
11632
11657
|
if (this.tickTimeout !== null) {
|
|
11633
11658
|
self.clearTimeout(this.tickTimeout);
|
|
11634
11659
|
this.tickTimeout = null;
|
|
11635
11660
|
}
|
|
11661
|
+
if (this.pendingInitCount > 0) return;
|
|
11662
|
+
this.tickInProgress = true;
|
|
11636
11663
|
try {
|
|
11637
11664
|
const now = Date.now();
|
|
11638
11665
|
for (const updater of this.handlers.values()) {
|
|
@@ -11666,7 +11693,34 @@ var MessageBus = class {
|
|
|
11666
11693
|
this.scheduleNextTick();
|
|
11667
11694
|
}
|
|
11668
11695
|
}
|
|
11669
|
-
|
|
11696
|
+
/**
|
|
11697
|
+
* Serialize init requests on {@link initChain}.
|
|
11698
|
+
* Returns this init's own result.
|
|
11699
|
+
*/
|
|
11700
|
+
waitForInit(config) {
|
|
11701
|
+
this.pendingInitCount += 1;
|
|
11702
|
+
const run = this.initChain.then(
|
|
11703
|
+
() => this.doInit(config),
|
|
11704
|
+
// A rejected init never blocks the next request.
|
|
11705
|
+
() => this.doInit(config)
|
|
11706
|
+
).finally(() => {
|
|
11707
|
+
this.pendingInitCount -= 1;
|
|
11708
|
+
});
|
|
11709
|
+
this.initChain = run.catch(() => void 0);
|
|
11710
|
+
return run;
|
|
11711
|
+
}
|
|
11712
|
+
/**
|
|
11713
|
+
* The bus serves ordinary wallet messages only when it is initialized AND
|
|
11714
|
+
* no init is in flight.
|
|
11715
|
+
*/
|
|
11716
|
+
acceptsWalletMessages() {
|
|
11717
|
+
return this.initialized && this.pendingInitCount === 0;
|
|
11718
|
+
}
|
|
11719
|
+
async doInit(config) {
|
|
11720
|
+
if (this.tickTimeout !== null) {
|
|
11721
|
+
self.clearTimeout(this.tickTimeout);
|
|
11722
|
+
this.tickTimeout = null;
|
|
11723
|
+
}
|
|
11670
11724
|
if (this.initialized) {
|
|
11671
11725
|
this.initialized = false;
|
|
11672
11726
|
await Promise.all(
|
|
@@ -11679,17 +11733,26 @@ var MessageBus = class {
|
|
|
11679
11733
|
...config.messageTimeouts ?? {}
|
|
11680
11734
|
};
|
|
11681
11735
|
const services = await this.buildServicesFn(config);
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
|
|
11686
|
-
|
|
11736
|
+
const started = [];
|
|
11737
|
+
try {
|
|
11738
|
+
for (const updater of this.handlers.values()) {
|
|
11739
|
+
if (this.debug) console.log(`Starting updater: ${updater.messageTag}`);
|
|
11740
|
+
await updater.start(services, {
|
|
11741
|
+
walletRepository: this.walletRepository
|
|
11742
|
+
});
|
|
11743
|
+
started.push(updater);
|
|
11744
|
+
}
|
|
11745
|
+
} catch (err) {
|
|
11746
|
+
await Promise.all(started.map((h) => h.stop().catch(() => {
|
|
11747
|
+
})));
|
|
11748
|
+
this.initialized = false;
|
|
11749
|
+
throw err;
|
|
11687
11750
|
}
|
|
11688
11751
|
this.scheduleNextTick();
|
|
11689
11752
|
this.initialized = true;
|
|
11690
11753
|
}
|
|
11691
11754
|
async buildServices(config) {
|
|
11692
|
-
const arkProvider = new
|
|
11755
|
+
const arkProvider = new chunk6EZY43WE_cjs.RestArkProvider(config.arkServer.url);
|
|
11693
11756
|
const storage = {
|
|
11694
11757
|
walletRepository: this.walletRepository,
|
|
11695
11758
|
contractRepository: this.contractRepository
|
|
@@ -11742,23 +11805,29 @@ var MessageBus = class {
|
|
|
11742
11805
|
if (this.debug) {
|
|
11743
11806
|
console.log("Init Command received");
|
|
11744
11807
|
}
|
|
11745
|
-
|
|
11746
|
-
|
|
11747
|
-
|
|
11748
|
-
|
|
11808
|
+
try {
|
|
11809
|
+
await this.waitForInit(event.data.config);
|
|
11810
|
+
this.deliverResponse(event.source, { id, tag }, { id, tag });
|
|
11811
|
+
if (this.debug) {
|
|
11812
|
+
console.log("MessageBus initialized");
|
|
11813
|
+
}
|
|
11814
|
+
} catch (error) {
|
|
11815
|
+
if (this.debug) console.error("MessageBus init failed", error);
|
|
11816
|
+
this.deliverResponse(event.source, { id, tag, error: toError(error) }, { id, tag });
|
|
11749
11817
|
}
|
|
11750
11818
|
return;
|
|
11751
11819
|
}
|
|
11752
|
-
if (!this.
|
|
11820
|
+
if (!this.acceptsWalletMessages()) {
|
|
11753
11821
|
if (this.debug)
|
|
11754
|
-
console.warn("Event received
|
|
11822
|
+
console.warn("Event received while bus unavailable, dropping", event.data);
|
|
11755
11823
|
const fallbackTag = tag ?? "unknown";
|
|
11824
|
+
const error = this.pendingInitCount > 0 ? new MessageBusInitializingError() : new MessageBusNotInitializedError();
|
|
11756
11825
|
this.deliverResponse(
|
|
11757
11826
|
event.source,
|
|
11758
11827
|
{
|
|
11759
11828
|
id,
|
|
11760
11829
|
tag: fallbackTag,
|
|
11761
|
-
error
|
|
11830
|
+
error
|
|
11762
11831
|
},
|
|
11763
11832
|
{ id, tag: fallbackTag }
|
|
11764
11833
|
);
|
|
@@ -12840,7 +12909,7 @@ var WalletMessageHandler = class {
|
|
|
12840
12909
|
// Wallet methods
|
|
12841
12910
|
async handleInitWallet({ payload }) {
|
|
12842
12911
|
const { arkServerUrl } = payload;
|
|
12843
|
-
this.indexerProvider = new
|
|
12912
|
+
this.indexerProvider = new chunk6EZY43WE_cjs.RestIndexerProvider(arkServerUrl);
|
|
12844
12913
|
await this.onWalletInitialized();
|
|
12845
12914
|
}
|
|
12846
12915
|
async handleGetBalance() {
|
|
@@ -13268,6 +13337,13 @@ var WalletMessageHandler = class {
|
|
|
13268
13337
|
function isMessageBusNotInitializedError(error) {
|
|
13269
13338
|
return error instanceof Error && error.message.includes(MESSAGE_BUS_NOT_INITIALIZED);
|
|
13270
13339
|
}
|
|
13340
|
+
function isMessageBusInitializingError(error) {
|
|
13341
|
+
return error instanceof Error && error.message.includes(MESSAGE_BUS_INITIALIZING);
|
|
13342
|
+
}
|
|
13343
|
+
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
13344
|
+
var INIT_WAIT_BACKOFF_CAP_MS = 2e3;
|
|
13345
|
+
var MAX_INIT_WAITS = 8;
|
|
13346
|
+
var initWaitBackoffMs = (attempt) => Math.min(100 * 2 ** attempt, INIT_WAIT_BACKOFF_CAP_MS);
|
|
13271
13347
|
var DEFAULT_MESSAGE_TIMEOUTS = {
|
|
13272
13348
|
// Fast reads — fail quickly
|
|
13273
13349
|
GET_ADDRESS: 1e4,
|
|
@@ -13536,6 +13612,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13536
13612
|
wallet.initWalletPayload = initWalletPayload;
|
|
13537
13613
|
wallet.messageBusTimeoutMs = options.messageBusTimeoutMs;
|
|
13538
13614
|
wallet.messageTimeouts = messageTimeouts;
|
|
13615
|
+
await wallet.assertWorkerIdentityMatches();
|
|
13539
13616
|
return wallet;
|
|
13540
13617
|
}
|
|
13541
13618
|
/**
|
|
@@ -13667,7 +13744,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13667
13744
|
}
|
|
13668
13745
|
// send a message, retrying up to 2 times if the service worker was
|
|
13669
13746
|
// killed and restarted by the OS (mobile browsers do this aggressively)
|
|
13670
|
-
async sendMessageWithRetry(request) {
|
|
13747
|
+
async sendMessageWithRetry(request, withEvents) {
|
|
13671
13748
|
if (this.initConfig) {
|
|
13672
13749
|
try {
|
|
13673
13750
|
await this.pingServiceWorker();
|
|
@@ -13677,32 +13754,23 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13677
13754
|
}
|
|
13678
13755
|
const timeoutMs = this.getTimeoutForRequest(request);
|
|
13679
13756
|
const maxRetries = 2;
|
|
13680
|
-
for (let attempt = 0; ; attempt++) {
|
|
13757
|
+
for (let attempt = 0, initWaits = 0; ; attempt++) {
|
|
13681
13758
|
try {
|
|
13759
|
+
if (withEvents) {
|
|
13760
|
+
return await this.sendMessageStreaming(
|
|
13761
|
+
request,
|
|
13762
|
+
withEvents.onEvent,
|
|
13763
|
+
withEvents.isComplete
|
|
13764
|
+
);
|
|
13765
|
+
}
|
|
13682
13766
|
return await this.sendMessageDirect(request, timeoutMs);
|
|
13683
13767
|
} catch (error) {
|
|
13684
|
-
if (
|
|
13685
|
-
throw error;
|
|
13768
|
+
if (isMessageBusInitializingError(error)) {
|
|
13769
|
+
if (initWaits >= MAX_INIT_WAITS) throw error;
|
|
13770
|
+
await sleep(initWaitBackoffMs(initWaits++));
|
|
13771
|
+
attempt--;
|
|
13772
|
+
continue;
|
|
13686
13773
|
}
|
|
13687
|
-
await this.reinitialize();
|
|
13688
|
-
}
|
|
13689
|
-
}
|
|
13690
|
-
}
|
|
13691
|
-
// Like sendMessage but for streaming responses — retries with
|
|
13692
|
-
// reinitialize when the service worker has been killed/restarted.
|
|
13693
|
-
async sendMessageWithEvents(request, onEvent, isComplete) {
|
|
13694
|
-
if (this.initConfig) {
|
|
13695
|
-
try {
|
|
13696
|
-
await this.pingServiceWorker();
|
|
13697
|
-
} catch {
|
|
13698
|
-
await this.reinitialize();
|
|
13699
|
-
}
|
|
13700
|
-
}
|
|
13701
|
-
const maxRetries = 2;
|
|
13702
|
-
for (let attempt = 0; ; attempt++) {
|
|
13703
|
-
try {
|
|
13704
|
-
return await this.sendMessageStreaming(request, onEvent, isComplete);
|
|
13705
|
-
} catch (error) {
|
|
13706
13774
|
if (!isMessageBusNotInitializedError(error) || attempt >= maxRetries) {
|
|
13707
13775
|
throw error;
|
|
13708
13776
|
}
|
|
@@ -13775,11 +13843,41 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13775
13843
|
payload
|
|
13776
13844
|
};
|
|
13777
13845
|
await this.sendMessageDirect(initMessage, this.getTimeoutForRequest(initMessage));
|
|
13846
|
+
await this.assertWorkerIdentityMatches();
|
|
13778
13847
|
})().finally(() => {
|
|
13779
13848
|
this.reinitPromise = null;
|
|
13780
13849
|
});
|
|
13781
13850
|
return this.reinitPromise;
|
|
13782
13851
|
}
|
|
13852
|
+
/**
|
|
13853
|
+
* Verify the worker is bound to this wallet's identity before the SDK hands
|
|
13854
|
+
* back (or recovers) a usable wallet object.
|
|
13855
|
+
*
|
|
13856
|
+
* Compares the stable baseline identity key (`identity.xOnlyPublicKey()`) to the one reported
|
|
13857
|
+
* by the worker via GET_STATUS.
|
|
13858
|
+
*/
|
|
13859
|
+
async assertWorkerIdentityMatches() {
|
|
13860
|
+
const expected = base.hex.encode(await this.identity.xOnlyPublicKey());
|
|
13861
|
+
const message = {
|
|
13862
|
+
id: getRandomId(),
|
|
13863
|
+
tag: this.messageTag,
|
|
13864
|
+
type: "GET_STATUS"
|
|
13865
|
+
};
|
|
13866
|
+
const response = await this.sendMessageDirect(
|
|
13867
|
+
message,
|
|
13868
|
+
this.getTimeoutForRequest(message)
|
|
13869
|
+
);
|
|
13870
|
+
const workerKey = response.payload.xOnlyPublicKey;
|
|
13871
|
+
if (!workerKey) {
|
|
13872
|
+
throw new Error("Service worker identity mismatch: worker did not report an identity");
|
|
13873
|
+
}
|
|
13874
|
+
const actual = base.hex.encode(workerKey);
|
|
13875
|
+
if (actual !== expected) {
|
|
13876
|
+
throw new Error(
|
|
13877
|
+
`Service worker identity mismatch: expected ${expected}, got ${actual}`
|
|
13878
|
+
);
|
|
13879
|
+
}
|
|
13880
|
+
}
|
|
13783
13881
|
/** Clear cached wallet state from both the page and service worker storage. */
|
|
13784
13882
|
async clear() {
|
|
13785
13883
|
const message = {
|
|
@@ -14200,6 +14298,7 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14200
14298
|
wallet.initWalletPayload = initWalletPayload;
|
|
14201
14299
|
wallet.messageBusTimeoutMs = options.messageBusTimeoutMs;
|
|
14202
14300
|
wallet.messageTimeouts = messageTimeouts;
|
|
14301
|
+
await wallet.assertWorkerIdentityMatches();
|
|
14203
14302
|
return wallet;
|
|
14204
14303
|
}
|
|
14205
14304
|
/**
|
|
@@ -14247,11 +14346,10 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14247
14346
|
payload: { params }
|
|
14248
14347
|
};
|
|
14249
14348
|
try {
|
|
14250
|
-
const response = await this.
|
|
14251
|
-
|
|
14252
|
-
(resp) =>
|
|
14253
|
-
|
|
14254
|
-
);
|
|
14349
|
+
const response = await this.sendMessageWithRetry(message, {
|
|
14350
|
+
onEvent: (resp) => callback?.(resp.payload),
|
|
14351
|
+
isComplete: (resp) => resp.type === "SETTLE_SUCCESS"
|
|
14352
|
+
});
|
|
14255
14353
|
return response.payload.txid;
|
|
14256
14354
|
} catch (error) {
|
|
14257
14355
|
throw new Error(`Settlement failed: ${error}`);
|
|
@@ -14276,12 +14374,11 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14276
14374
|
payload: opts ?? {}
|
|
14277
14375
|
};
|
|
14278
14376
|
try {
|
|
14279
|
-
await this.
|
|
14280
|
-
|
|
14281
|
-
() => {
|
|
14377
|
+
await this.sendMessageWithRetry(message, {
|
|
14378
|
+
onEvent: () => {
|
|
14282
14379
|
},
|
|
14283
|
-
(resp) => resp.type === "RESTORE_WALLET_SUCCESS"
|
|
14284
|
-
);
|
|
14380
|
+
isComplete: (resp) => resp.type === "RESTORE_WALLET_SUCCESS"
|
|
14381
|
+
});
|
|
14285
14382
|
} catch (error) {
|
|
14286
14383
|
if (isSerializedAggregateError(error)) {
|
|
14287
14384
|
throw deserializeAggregateError(error);
|
|
@@ -14369,11 +14466,10 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14369
14466
|
id: getRandomId()
|
|
14370
14467
|
};
|
|
14371
14468
|
try {
|
|
14372
|
-
const response = await wallet.
|
|
14373
|
-
|
|
14374
|
-
(resp) =>
|
|
14375
|
-
|
|
14376
|
-
);
|
|
14469
|
+
const response = await wallet.sendMessageWithRetry(message, {
|
|
14470
|
+
onEvent: (resp) => eventCallback?.(resp.payload),
|
|
14471
|
+
isComplete: (resp) => resp.type === "RECOVER_VTXOS_SUCCESS"
|
|
14472
|
+
});
|
|
14377
14473
|
return response.payload.txid;
|
|
14378
14474
|
} catch (e) {
|
|
14379
14475
|
throw new Error(`Failed to recover vtxos: ${e}`);
|
|
@@ -14420,11 +14516,10 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14420
14516
|
payload: options
|
|
14421
14517
|
};
|
|
14422
14518
|
try {
|
|
14423
|
-
const response = await wallet.
|
|
14424
|
-
|
|
14425
|
-
(resp) =>
|
|
14426
|
-
|
|
14427
|
-
);
|
|
14519
|
+
const response = await wallet.sendMessageWithRetry(message, {
|
|
14520
|
+
onEvent: (resp) => eventCallback?.(resp.payload),
|
|
14521
|
+
isComplete: (resp) => resp.type === "RENEW_VTXOS_SUCCESS"
|
|
14522
|
+
});
|
|
14428
14523
|
return response.payload.txid;
|
|
14429
14524
|
} catch (e) {
|
|
14430
14525
|
throw new Error(`Failed to renew vtxos: ${e}`);
|
|
@@ -14463,13 +14558,12 @@ var ServiceWorkerWallet = class _ServiceWorkerWallet extends ServiceWorkerReadon
|
|
|
14463
14558
|
id: getRandomId()
|
|
14464
14559
|
};
|
|
14465
14560
|
try {
|
|
14466
|
-
const response = await wallet.
|
|
14467
|
-
|
|
14468
|
-
(resp) => options?.eventCallback?.(
|
|
14561
|
+
const response = await wallet.sendMessageWithRetry(message, {
|
|
14562
|
+
onEvent: (resp) => options?.eventCallback?.(
|
|
14469
14563
|
resp.payload
|
|
14470
14564
|
),
|
|
14471
|
-
(resp) => resp.type === "MIGRATE_DEPRECATED_SIGNER_VTXOS_SUCCESS"
|
|
14472
|
-
);
|
|
14565
|
+
isComplete: (resp) => resp.type === "MIGRATE_DEPRECATED_SIGNER_VTXOS_SUCCESS"
|
|
14566
|
+
});
|
|
14473
14567
|
return deserializeMigrationReport(
|
|
14474
14568
|
response.payload.report
|
|
14475
14569
|
);
|
|
@@ -14631,7 +14725,7 @@ var OnchainWallet = class _OnchainWallet {
|
|
|
14631
14725
|
if (!inputs) {
|
|
14632
14726
|
throw new Error("Fee estimation failed");
|
|
14633
14727
|
}
|
|
14634
|
-
let tx = new
|
|
14728
|
+
let tx = new chunk6EZY43WE_cjs.Transaction();
|
|
14635
14729
|
for (const input of inputs) {
|
|
14636
14730
|
tx.addInput({
|
|
14637
14731
|
txid: input.txid,
|
|
@@ -14662,7 +14756,7 @@ var OnchainWallet = class _OnchainWallet {
|
|
|
14662
14756
|
*/
|
|
14663
14757
|
async bumpP2A(parent) {
|
|
14664
14758
|
const parentVsize = parent.vsize;
|
|
14665
|
-
let child = new
|
|
14759
|
+
let child = new chunk6EZY43WE_cjs.Transaction({
|
|
14666
14760
|
version: 3,
|
|
14667
14761
|
allowLegacyWitnessUtxo: true
|
|
14668
14762
|
});
|
|
@@ -15405,12 +15499,15 @@ function errorText(err) {
|
|
|
15405
15499
|
}
|
|
15406
15500
|
return "";
|
|
15407
15501
|
}
|
|
15502
|
+
function normalizedErrorText(err) {
|
|
15503
|
+
return errorText(err).toLowerCase().replace(/\s+/g, "");
|
|
15504
|
+
}
|
|
15408
15505
|
function isMissingHeightError(err) {
|
|
15409
|
-
return
|
|
15506
|
+
return normalizedErrorText(err).includes("missingheight");
|
|
15410
15507
|
}
|
|
15411
15508
|
function isTxNotInBlockError(err) {
|
|
15412
|
-
const normalized =
|
|
15413
|
-
return normalized.includes("
|
|
15509
|
+
const normalized = normalizedErrorText(err);
|
|
15510
|
+
return normalized.includes("notyetinablock") || normalized.includes("notinablock") || normalized.includes("notinblock") || normalized.includes("noconfirmedtransaction");
|
|
15414
15511
|
}
|
|
15415
15512
|
function childTxidFromHex(txHex) {
|
|
15416
15513
|
const tx = btcSigner.Transaction.fromRaw(base.hex.decode(txHex), {
|
|
@@ -15425,7 +15522,7 @@ exports.BIP322 = void 0;
|
|
|
15425
15522
|
async function sign2(message, identity, network) {
|
|
15426
15523
|
const xOnlyPubKey = await identity.xOnlyPublicKey();
|
|
15427
15524
|
const payment = btcSigner.p2tr(xOnlyPubKey, void 0, network);
|
|
15428
|
-
const toSpend =
|
|
15525
|
+
const toSpend = chunk6EZY43WE_cjs.craftToSpendTx(message, payment.script, TAG_BIP322);
|
|
15429
15526
|
const toSign = craftBIP322ToSignP2TR(toSpend, payment.script, xOnlyPubKey);
|
|
15430
15527
|
const signed = await identity.sign(toSign, [0]);
|
|
15431
15528
|
signed.finalizeIdx(0);
|
|
@@ -15483,7 +15580,7 @@ function verifyP2TR(message, witnessItems, pkScript, pubkey) {
|
|
|
15483
15580
|
if (sighashType !== btcSigner.SigHash.DEFAULT && sighashType !== btcSigner.SigHash.ALL) {
|
|
15484
15581
|
return false;
|
|
15485
15582
|
}
|
|
15486
|
-
const toSpend =
|
|
15583
|
+
const toSpend = chunk6EZY43WE_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
|
|
15487
15584
|
const toSign = craftBIP322ToSignP2TR(toSpend, pkScript, pubkey);
|
|
15488
15585
|
const sighash = toSign.preimageWitnessV1(0, [pkScript], sighashType, [0n]);
|
|
15489
15586
|
const rawSig = sig.length === 65 ? sig.subarray(0, 64) : sig;
|
|
@@ -15504,7 +15601,7 @@ function verifyP2WPKH(message, witnessItems, pkScript, addressHash) {
|
|
|
15504
15601
|
}
|
|
15505
15602
|
const sighashType = sigWithHash[sigWithHash.length - 1];
|
|
15506
15603
|
const derSig = sigWithHash.subarray(0, sigWithHash.length - 1);
|
|
15507
|
-
const toSpend =
|
|
15604
|
+
const toSpend = chunk6EZY43WE_cjs.craftToSpendTx(message, pkScript, TAG_BIP322);
|
|
15508
15605
|
const toSign = craftBIP322ToSignSimple(toSpend, pkScript);
|
|
15509
15606
|
const scriptCode = btcSigner.OutScript.encode({ type: "pkh", hash: addressHash });
|
|
15510
15607
|
const sighash = toSign.preimageWitnessV0(0, scriptCode, sighashType, 0n);
|
|
@@ -15557,7 +15654,7 @@ function encodeCompactSize(n) {
|
|
|
15557
15654
|
return buf;
|
|
15558
15655
|
}
|
|
15559
15656
|
function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
|
|
15560
|
-
const tx = new
|
|
15657
|
+
const tx = new chunk6EZY43WE_cjs.Transaction({ version: 0 });
|
|
15561
15658
|
tx.addInput({
|
|
15562
15659
|
txid: toSpend.id,
|
|
15563
15660
|
index: 0,
|
|
@@ -15571,12 +15668,12 @@ function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
|
|
|
15571
15668
|
});
|
|
15572
15669
|
tx.addOutput({
|
|
15573
15670
|
amount: 0n,
|
|
15574
|
-
script:
|
|
15671
|
+
script: chunk6EZY43WE_cjs.OP_RETURN_EMPTY_PKSCRIPT
|
|
15575
15672
|
});
|
|
15576
15673
|
return tx;
|
|
15577
15674
|
}
|
|
15578
15675
|
function craftBIP322ToSignSimple(toSpend, pkScript) {
|
|
15579
|
-
const tx = new
|
|
15676
|
+
const tx = new chunk6EZY43WE_cjs.Transaction({ version: 0 });
|
|
15580
15677
|
tx.addInput({
|
|
15581
15678
|
txid: toSpend.id,
|
|
15582
15679
|
index: 0,
|
|
@@ -15588,7 +15685,7 @@ function craftBIP322ToSignSimple(toSpend, pkScript) {
|
|
|
15588
15685
|
});
|
|
15589
15686
|
tx.addOutput({
|
|
15590
15687
|
amount: 0n,
|
|
15591
|
-
script:
|
|
15688
|
+
script: chunk6EZY43WE_cjs.OP_RETURN_EMPTY_PKSCRIPT
|
|
15592
15689
|
});
|
|
15593
15690
|
return tx;
|
|
15594
15691
|
}
|
|
@@ -15649,7 +15746,7 @@ exports.Unroll = void 0;
|
|
|
15649
15746
|
if (virtualTxs.txs.length === 0) {
|
|
15650
15747
|
throw new Error(`Tx ${nextTxToBroadcast.txid} not found`);
|
|
15651
15748
|
}
|
|
15652
|
-
const tx =
|
|
15749
|
+
const tx = chunk6EZY43WE_cjs.Transaction.fromPSBT(base.base64.decode(virtualTxs.txs[0]));
|
|
15653
15750
|
if (nextTxToBroadcast.type === "INDEXER_CHAINED_TX_TYPE_TREE" /* TREE */) {
|
|
15654
15751
|
const input = tx.getInput(0);
|
|
15655
15752
|
if (!input) {
|
|
@@ -15681,7 +15778,7 @@ exports.Unroll = void 0;
|
|
|
15681
15778
|
let lastStep;
|
|
15682
15779
|
do {
|
|
15683
15780
|
if (lastStep !== void 0) {
|
|
15684
|
-
await
|
|
15781
|
+
await sleep2(1e3);
|
|
15685
15782
|
}
|
|
15686
15783
|
const step = await this.next();
|
|
15687
15784
|
await step.do();
|
|
@@ -15749,7 +15846,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
|
|
|
15749
15846
|
btcSigner.TaprootControlBlock.encode(spendingLeaf[0]).length
|
|
15750
15847
|
);
|
|
15751
15848
|
}
|
|
15752
|
-
const tx = new
|
|
15849
|
+
const tx = new chunk6EZY43WE_cjs.Transaction({ version: 2 });
|
|
15753
15850
|
for (const input of inputs) {
|
|
15754
15851
|
tx.addInput(input);
|
|
15755
15852
|
}
|
|
@@ -15771,7 +15868,7 @@ async function prepareUnrollTransaction(wallet, vtxoTxIds, outputAddress) {
|
|
|
15771
15868
|
signedTx.finalize();
|
|
15772
15869
|
return signedTx;
|
|
15773
15870
|
}
|
|
15774
|
-
function
|
|
15871
|
+
function sleep2(ms) {
|
|
15775
15872
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
15776
15873
|
}
|
|
15777
15874
|
function doUnroll(onchainProvider, pkg) {
|
|
@@ -15893,9 +15990,11 @@ exports.InMemoryContractRepository = InMemoryContractRepository;
|
|
|
15893
15990
|
exports.InMemoryWalletRepository = InMemoryWalletRepository;
|
|
15894
15991
|
exports.IndexedDBContractRepository = IndexedDBContractRepository;
|
|
15895
15992
|
exports.IndexedDBWalletRepository = IndexedDBWalletRepository;
|
|
15993
|
+
exports.MESSAGE_BUS_INITIALIZING = MESSAGE_BUS_INITIALIZING;
|
|
15896
15994
|
exports.MESSAGE_BUS_NOT_INITIALIZED = MESSAGE_BUS_NOT_INITIALIZED;
|
|
15897
15995
|
exports.MIGRATION_KEY = MIGRATION_KEY;
|
|
15898
15996
|
exports.MessageBus = MessageBus;
|
|
15997
|
+
exports.MessageBusInitializingError = MessageBusInitializingError;
|
|
15899
15998
|
exports.MessageBusNotInitializedError = MessageBusNotInitializedError;
|
|
15900
15999
|
exports.MissingSigningDescriptorError = MissingSigningDescriptorError;
|
|
15901
16000
|
exports.MnemonicIdentity = MnemonicIdentity;
|
|
@@ -15968,5 +16067,5 @@ exports.validateVtxoTxGraph = validateVtxoTxGraph;
|
|
|
15968
16067
|
exports.verifyTapscriptSignatures = verifyTapscriptSignatures;
|
|
15969
16068
|
exports.waitForIncomingFunds = waitForIncomingFunds;
|
|
15970
16069
|
exports.warnAndFilterVtxosForScript = warnAndFilterVtxosForScript;
|
|
15971
|
-
//# sourceMappingURL=chunk-
|
|
15972
|
-
//# sourceMappingURL=chunk-
|
|
16070
|
+
//# sourceMappingURL=chunk-I4Z6KKUH.cjs.map
|
|
16071
|
+
//# sourceMappingURL=chunk-I4Z6KKUH.cjs.map
|