@arkade-os/sdk 0.4.64 → 0.4.66
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 +5 -5
- package/dist/adapters/expo.d.cts +3 -6
- package/dist/adapters/expo.d.ts +3 -6
- package/dist/adapters/expo.js +3 -3
- package/dist/adapters/indexedDB.cjs +5 -5
- package/dist/adapters/indexedDB.js +4 -4
- package/dist/{asyncStorageTaskQueue-Dq_UcvDx.d.ts → asyncStorageTaskQueue-B6SijMi3.d.ts} +1 -1
- package/dist/{asyncStorageTaskQueue-Chwe60Ce.d.cts → asyncStorageTaskQueue-BZcIN7sA.d.cts} +1 -1
- package/dist/{chunk-HQ2DDMQN.js → chunk-2JZGPXU4.js} +170 -6
- package/dist/chunk-2JZGPXU4.js.map +1 -0
- package/dist/{chunk-RXITDAV4.cjs → chunk-3S3JZUEN.cjs} +184 -19
- package/dist/chunk-3S3JZUEN.cjs.map +1 -0
- package/dist/{chunk-USXWE2EJ.js → chunk-55ZZ6RBL.js} +4 -4
- package/dist/{chunk-USXWE2EJ.js.map → chunk-55ZZ6RBL.js.map} +1 -1
- package/dist/{chunk-LPEE2H2M.cjs → chunk-5E6IZNRG.cjs} +656 -774
- package/dist/chunk-5E6IZNRG.cjs.map +1 -0
- package/dist/{chunk-LN2VZP63.js → chunk-CYOI4PEA.js} +162 -15
- package/dist/chunk-CYOI4PEA.js.map +1 -0
- package/dist/{chunk-WJN2BLEI.js → chunk-DSC3G6QZ.js} +253 -379
- package/dist/chunk-DSC3G6QZ.js.map +1 -0
- package/dist/{chunk-4N45WCSJ.cjs → chunk-IM6IKNSL.cjs} +17 -17
- package/dist/{chunk-4N45WCSJ.cjs.map → chunk-IM6IKNSL.cjs.map} +1 -1
- package/dist/{chunk-XJCBV4AA.js → chunk-J33ZEM3A.js} +26 -18
- package/dist/chunk-J33ZEM3A.js.map +1 -0
- package/dist/{chunk-35YIP6OA.cjs → chunk-LL47QIHD.cjs} +10 -10
- package/dist/{chunk-35YIP6OA.cjs.map → chunk-LL47QIHD.cjs.map} +1 -1
- package/dist/{chunk-WXCVS6PD.cjs → chunk-PXPPZF5K.cjs} +207 -59
- package/dist/chunk-PXPPZF5K.cjs.map +1 -0
- package/dist/{chunk-ZUEGFM3T.js → chunk-R5POS3RS.js} +4 -4
- package/dist/{chunk-ZUEGFM3T.js.map → chunk-R5POS3RS.js.map} +1 -1
- package/dist/{chunk-FZFSGOTZ.cjs → chunk-ZIRFXBKL.cjs} +26 -18
- package/dist/chunk-ZIRFXBKL.cjs.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-Dv_9OVHv.d.ts → delegate-T-vgxMYZ.d.ts} +1 -1
- package/dist/{delegate-BBQW61ym.d.cts → delegate-YXupcWWJ.d.cts} +1 -1
- package/dist/{index-Bxe9kBFs.d.ts → index-D_FgwLH9.d.ts} +111 -2
- package/dist/{index-aZycGEsQ.d.cts → index-e7LYXk1d.d.cts} +111 -2
- package/dist/{index-CFOMyVMt.d.cts → index-uUE_uQPn.d.cts} +70 -33
- package/dist/{index-CFOMyVMt.d.ts → index-uUE_uQPn.d.ts} +70 -33
- package/dist/index.cjs +308 -268
- package/dist/index.d.cts +214 -19
- package/dist/index.d.ts +214 -19
- package/dist/index.js +4 -4
- package/dist/repositories/realm/index.cjs +19 -19
- package/dist/repositories/realm/index.d.cts +2 -2
- package/dist/repositories/realm/index.d.ts +2 -2
- package/dist/repositories/realm/index.js +5 -5
- package/dist/repositories/sqlite/index.cjs +18 -18
- package/dist/repositories/sqlite/index.d.cts +2 -2
- package/dist/repositories/sqlite/index.d.ts +2 -2
- package/dist/repositories/sqlite/index.js +5 -5
- package/dist/{taskRunner-CIKOS2OO.d.cts → taskRunner-BOVcIH1N.d.cts} +1 -1
- package/dist/{taskRunner-BDzWbpct.d.ts → taskRunner-DNyD1kXG.d.ts} +1 -1
- 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 +14 -14
- package/dist/wallet/expo/index.d.cts +4 -4
- package/dist/wallet/expo/index.d.ts +4 -4
- package/dist/wallet/expo/index.js +5 -5
- package/dist/{wallet-C2NvHjWB.d.cts → wallet-CNibc3yJ.d.ts} +3 -3
- package/dist/{wallet-DJUnN939.d.ts → wallet-DJN1QgFt.d.cts} +3 -3
- 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-FZFSGOTZ.cjs.map +0 -1
- package/dist/chunk-HQ2DDMQN.js.map +0 -1
- package/dist/chunk-LN2VZP63.js.map +0 -1
- package/dist/chunk-LPEE2H2M.cjs.map +0 -1
- package/dist/chunk-RXITDAV4.cjs.map +0 -1
- package/dist/chunk-WJN2BLEI.js.map +0 -1
- package/dist/chunk-WXCVS6PD.cjs.map +0 -1
- package/dist/chunk-XJCBV4AA.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AssetId, AssetGroup, AssetInput, AssetOutput, Metadata, Packet, BufferReader, BufferWriter, AssetRef, RestIndexerProvider } from './chunk-
|
|
2
|
-
import { witnessRefToBytes, validateProgram, toASM, stringifyArtifact, serializeArkadeContractParams, resolveAsm, parseArtifact, getOpcodeValue, getOpcodeName, fromASM, deserializeArkadeContractParams, computeArkadeScriptPublicKey, bytesToASM, asmToBytes, arkadeWitnessHash, arkadeScriptHash, SUPPORTED_PROGRAM_VERSION, OPCODE_VALUES, OPCODE_NAMES, bignum_exports, ArkadeScript, ArkadeProgramScript, ARKADE_OPS, ARKADE_OPCODE_VALUES, ARKADE_OPCODE_NAMES, ARKADE_OPCODES, ARKADE_OP, inputName, contractHandlers, isMainnetDescriptor, descriptorIsOurs, deriveDescriptorLeafPubKey, deriveDescriptorLeafCompressedPubKey, parseHDDescriptor, DefaultVtxo, speculativeReceiveMetadata, DelegateVtxo, WALLET_RECEIVE_SOURCE, BoardingContractHandler, identityDescriptor } from './chunk-
|
|
3
|
-
import { VtxoScript, Transaction, isRecoverable, CSVMultisigTapscript, DEFAULT_NETWORK, resolveEmulatorPubkey, hasTerminalSpend, getNormalizedVtxos, setArkPsbtField, PrevArkTxField, ConditionWitness, craftToSpendTx, ArkAddress, isVirtualCoin, getArkPsbtFields, CosignerPublicKey, ServerResponseMismatchError, OP_RETURN_EMPTY_PKSCRIPT, sequenceToTimelock, decodeTapscript, scriptFromTapLeafScript, CLTVMultisigTapscript, VtxoTaprootTree, timelockToSequence, baseFetch, Intent, rateGate, DEFAULT_NETWORK_NAME, normalizeVtxo, getSequence, toBatchExpiry, maybeArkError, isArkError, ArkErrorName, toOffchainInputFeeParams, canRecoverOnchain, getNetwork, MultisigTapscript, isEventSourceError, isEventSourceUnavailableError, isRetryableProviderError, getAllNormalizedVtxos, DEFAULT_PAGE_SIZE, RestArkProvider, toVirtualStatus, ArkError, TapTreeCoder, resolveTimeHeight, canSpendOffchain, parseLegacyExpiry, isExpired, DEFAULT_ARKADE_SERVER_URL, ProviderUnavailableError, networks as networks$1, isPastExpiry, fetchVtxoCreatedAtByTxid } from './chunk-
|
|
1
|
+
import { AssetId, AssetGroup, AssetInput, AssetOutput, Metadata, Packet, BufferReader, BufferWriter, AssetRef, RestIndexerProvider } from './chunk-2JZGPXU4.js';
|
|
2
|
+
import { witnessRefToBytes, validateProgram, toASM, stringifyArtifact, serializeArkadeContractParams, resolveAsm, parseArtifact, getOpcodeValue, getOpcodeName, fromASM, deserializeArkadeContractParams, computeArkadeScriptPublicKey, bytesToASM, asmToBytes, arkadeWitnessHash, arkadeScriptHash, SUPPORTED_PROGRAM_VERSION, OPCODE_VALUES, OPCODE_NAMES, bignum_exports, ArkadeScript, ArkadeProgramScript, ARKADE_OPS, ARKADE_OPCODE_VALUES, ARKADE_OPCODE_NAMES, ARKADE_OPCODES, ARKADE_OP, toXOnly, inputName, contractHandlers, isMainnetDescriptor, descriptorIsOurs, deriveDescriptorLeafPubKey, deriveDescriptorLeafCompressedPubKey, parseHDDescriptor, DefaultVtxo, speculativeReceiveMetadata, DelegateVtxo, WALLET_RECEIVE_SOURCE, BoardingContractHandler, identityDescriptor } from './chunk-CYOI4PEA.js';
|
|
3
|
+
import { VtxoScript, Transaction, isRecoverable, CSVMultisigTapscript, DEFAULT_NETWORK, resolveEmulatorPubkey, hasTerminalSpend, getNormalizedVtxos, setArkPsbtField, PrevArkTxField, ConditionWitness, craftToSpendTx, ArkAddress, isVirtualCoin, getArkPsbtFields, CosignerPublicKey, ServerResponseMismatchError, OP_RETURN_EMPTY_PKSCRIPT, sequenceToTimelock, decodeTapscript, scriptFromTapLeafScript, CLTVMultisigTapscript, VtxoTaprootTree, timelockToSequence, baseFetch, Intent, rateGate, DEFAULT_NETWORK_NAME, normalizeVtxo, getSequence, toBatchExpiry, maybeArkError, isArkError, ArkErrorName, toOffchainInputFeeParams, canRecoverOnchain, getNetwork, MultisigTapscript, isEventSourceError, isEventSourceUnavailableError, isRetryableProviderError, getAllNormalizedVtxos, DEFAULT_PAGE_SIZE, RestArkProvider, toVirtualStatus, ArkError, TapTreeCoder, resolveTimeHeight, canSpendOffchain, parseLegacyExpiry, isExpired, DEFAULT_ARKADE_SERVER_URL, ProviderUnavailableError, networks as networks$1, isPastExpiry, fetchVtxoCreatedAtByTxid } from './chunk-J33ZEM3A.js';
|
|
4
4
|
import { __export } from './chunk-NSBPE2FW.js';
|
|
5
5
|
import { sha256 as sha256$1, equalBytes, hash160, sha256x2, concatBytes, randomPrivateKeyBytes, pubECDSA, pubSchnorr } from '@scure/btc-signer/utils.js';
|
|
6
6
|
import { SigHash, Script, OP, OutScript, Address, RawWitness, p2tr, p2wpkh, TaprootControlBlock, DEFAULT_SEQUENCE, Transaction as Transaction$2 } from '@scure/btc-signer';
|
|
@@ -2796,8 +2796,7 @@ function selectedCoinsToAssetInputs(selectedCoins) {
|
|
|
2796
2796
|
}
|
|
2797
2797
|
function toXOnlySignerHex(pubkeyHex) {
|
|
2798
2798
|
const bytes = hex.decode(pubkeyHex);
|
|
2799
|
-
if (bytes.length === 33) return hex.encode(bytes
|
|
2800
|
-
if (bytes.length === 32) return hex.encode(bytes);
|
|
2799
|
+
if (bytes.length === 32 || bytes.length === 33) return hex.encode(toXOnly(bytes, "signer key"));
|
|
2801
2800
|
throw new Error(`invalid signer pubkey length: expected 32 or 33 bytes, got ${bytes.length}`);
|
|
2802
2801
|
}
|
|
2803
2802
|
function signerSetFromInfo(info) {
|
|
@@ -3267,9 +3266,7 @@ async function submitOffchainTx(provider, offchainTx, signer, hooks, options) {
|
|
|
3267
3266
|
);
|
|
3268
3267
|
}
|
|
3269
3268
|
const finalArkTx = Transaction.fromPSBT(base64.decode(response.finalArkTx));
|
|
3270
|
-
const serverPubkeyHex = hex.encode(
|
|
3271
|
-
verify.serverPubkey.length === 33 ? verify.serverPubkey.subarray(1) : verify.serverPubkey
|
|
3272
|
-
);
|
|
3269
|
+
const serverPubkeyHex = hex.encode(toXOnly(verify.serverPubkey, "server key"));
|
|
3273
3270
|
for (let i = 0; i < offchainTx.arkTx.inputsLength; i++) {
|
|
3274
3271
|
assertServerSignedLeaf(
|
|
3275
3272
|
finalArkTx,
|
|
@@ -6129,6 +6126,8 @@ function serializeArkInfoSnapshot(info, savedAt) {
|
|
|
6129
6126
|
unilateralExitDelay: info.unilateralExitDelay.toString(),
|
|
6130
6127
|
boardingExitDelay: info.boardingExitDelay.toString(),
|
|
6131
6128
|
vtxoTreeExpiry: info.vtxoTreeExpiry?.toString(),
|
|
6129
|
+
maxTxWeight: info.maxTxWeight?.toString(),
|
|
6130
|
+
maxOpReturnOutputs: info.maxOpReturnOutputs?.toString(),
|
|
6132
6131
|
sessionDuration: info.sessionDuration.toString(),
|
|
6133
6132
|
dust: info.dust.toString(),
|
|
6134
6133
|
fees: info.fees,
|
|
@@ -6179,6 +6178,8 @@ function hydrateArkInfo(snapshot) {
|
|
|
6179
6178
|
signerPubkey: a.signerPubkey,
|
|
6180
6179
|
unilateralExitDelay: BigInt(a.unilateralExitDelay),
|
|
6181
6180
|
vtxoTreeExpiry: a.vtxoTreeExpiry !== void 0 ? BigInt(a.vtxoTreeExpiry) : void 0,
|
|
6181
|
+
maxTxWeight: a.maxTxWeight !== void 0 ? BigInt(a.maxTxWeight) : void 0,
|
|
6182
|
+
maxOpReturnOutputs: a.maxOpReturnOutputs !== void 0 ? BigInt(a.maxOpReturnOutputs) : void 0,
|
|
6182
6183
|
utxoMaxAmount: BigInt(a.utxoMaxAmount),
|
|
6183
6184
|
utxoMinAmount: BigInt(a.utxoMinAmount),
|
|
6184
6185
|
version: a.version,
|
|
@@ -6251,8 +6252,10 @@ function parseStoredArkInfoSnapshot(raw) {
|
|
|
6251
6252
|
]) {
|
|
6252
6253
|
assertDecimalString(a[field], `arkInfo.${field}`);
|
|
6253
6254
|
}
|
|
6254
|
-
|
|
6255
|
-
|
|
6255
|
+
for (const field of ["vtxoTreeExpiry", "maxTxWeight", "maxOpReturnOutputs"]) {
|
|
6256
|
+
if (a[field] !== void 0) {
|
|
6257
|
+
assertDecimalString(a[field], `arkInfo.${field}`);
|
|
6258
|
+
}
|
|
6256
6259
|
}
|
|
6257
6260
|
assertFeeInfo(a.fees, "arkInfo.fees");
|
|
6258
6261
|
if (!Array.isArray(a.deprecatedSigners)) {
|
|
@@ -7547,6 +7550,22 @@ var awaitTransaction = (transaction) => new Promise((resolve, reject) => {
|
|
|
7547
7550
|
transaction.onerror = () => reject(transaction.error);
|
|
7548
7551
|
transaction.onabort = () => reject(transaction.error ?? new Error("transaction aborted"));
|
|
7549
7552
|
});
|
|
7553
|
+
var deleteByIndex = (store, indexName, value) => {
|
|
7554
|
+
const request = store.index(indexName).openCursor(IDBKeyRange.only(value));
|
|
7555
|
+
request.onsuccess = () => {
|
|
7556
|
+
const cursor = request.result;
|
|
7557
|
+
if (!cursor) return;
|
|
7558
|
+
cursor.delete();
|
|
7559
|
+
cursor.continue();
|
|
7560
|
+
};
|
|
7561
|
+
};
|
|
7562
|
+
var getAllByIndexValues = (store, indexName, values) => {
|
|
7563
|
+
if (values.length === 0) return Promise.resolve([]);
|
|
7564
|
+
const index = store.index(indexName);
|
|
7565
|
+
return Promise.all(values.map((value) => promisifyRequest(index.getAll(value)))).then(
|
|
7566
|
+
(results) => results.flat()
|
|
7567
|
+
);
|
|
7568
|
+
};
|
|
7550
7569
|
|
|
7551
7570
|
// src/repositories/indexedDB/manager.ts
|
|
7552
7571
|
function getGlobalObject() {
|
|
@@ -7561,8 +7580,24 @@ function getGlobalObject() {
|
|
|
7561
7580
|
}
|
|
7562
7581
|
throw new Error("Global object not found");
|
|
7563
7582
|
}
|
|
7583
|
+
var BLOCKED_UPGRADE_TIMEOUT_MS = 1e4;
|
|
7584
|
+
var DatabaseUpgradeBlockedError = class extends Error {
|
|
7585
|
+
constructor(dbName) {
|
|
7586
|
+
super(
|
|
7587
|
+
`database "${dbName}" upgrade blocked by another connection for ${BLOCKED_UPGRADE_TIMEOUT_MS}ms; close other tabs and retry`
|
|
7588
|
+
);
|
|
7589
|
+
this.dbName = dbName;
|
|
7590
|
+
}
|
|
7591
|
+
dbName;
|
|
7592
|
+
name = "DatabaseUpgradeBlockedError";
|
|
7593
|
+
};
|
|
7564
7594
|
var dbCache = /* @__PURE__ */ new Map();
|
|
7565
7595
|
var refCounts = /* @__PURE__ */ new Map();
|
|
7596
|
+
function forget(dbName, promise) {
|
|
7597
|
+
if (dbCache.get(dbName)?.promise !== promise) return;
|
|
7598
|
+
dbCache.delete(dbName);
|
|
7599
|
+
refCounts.delete(dbName);
|
|
7600
|
+
}
|
|
7566
7601
|
async function openDatabase(dbName, dbVersion, initDatabase2) {
|
|
7567
7602
|
const { globalObject } = getGlobalObject();
|
|
7568
7603
|
if (!globalObject.indexedDB) {
|
|
@@ -7580,26 +7615,47 @@ async function openDatabase(dbName, dbVersion, initDatabase2) {
|
|
|
7580
7615
|
}
|
|
7581
7616
|
const dbPromise = new Promise((resolve, reject) => {
|
|
7582
7617
|
const request = globalObject.indexedDB.open(dbName, dbVersion);
|
|
7618
|
+
let settled = false;
|
|
7619
|
+
let blockedTimer;
|
|
7620
|
+
const clearBlockedTimer = () => {
|
|
7621
|
+
if (blockedTimer !== void 0) clearTimeout(blockedTimer);
|
|
7622
|
+
blockedTimer = void 0;
|
|
7623
|
+
};
|
|
7583
7624
|
request.onerror = () => {
|
|
7584
|
-
|
|
7585
|
-
|
|
7625
|
+
clearBlockedTimer();
|
|
7626
|
+
if (settled) return;
|
|
7627
|
+
settled = true;
|
|
7628
|
+
forget(dbName, dbPromise);
|
|
7586
7629
|
reject(request.error);
|
|
7587
7630
|
};
|
|
7588
7631
|
request.onsuccess = () => {
|
|
7632
|
+
clearBlockedTimer();
|
|
7589
7633
|
const db = request.result;
|
|
7634
|
+
if (settled) {
|
|
7635
|
+
db.close();
|
|
7636
|
+
return;
|
|
7637
|
+
}
|
|
7638
|
+
settled = true;
|
|
7590
7639
|
db.onversionchange = () => {
|
|
7591
7640
|
db.close();
|
|
7592
|
-
|
|
7593
|
-
refCounts.delete(dbName);
|
|
7641
|
+
forget(dbName, dbPromise);
|
|
7594
7642
|
};
|
|
7643
|
+
db.addEventListener("close", () => forget(dbName, dbPromise));
|
|
7595
7644
|
resolve(db);
|
|
7596
7645
|
};
|
|
7597
7646
|
request.onupgradeneeded = (event) => {
|
|
7647
|
+
clearBlockedTimer();
|
|
7598
7648
|
const db = request.result;
|
|
7599
7649
|
initDatabase2(db, event.oldVersion, request.transaction);
|
|
7600
7650
|
};
|
|
7601
7651
|
request.onblocked = () => {
|
|
7602
7652
|
console.warn("Database upgrade blocked - close other tabs/connections");
|
|
7653
|
+
blockedTimer = setTimeout(() => {
|
|
7654
|
+
if (settled) return;
|
|
7655
|
+
settled = true;
|
|
7656
|
+
forget(dbName, dbPromise);
|
|
7657
|
+
reject(new DatabaseUpgradeBlockedError(dbName));
|
|
7658
|
+
}, BLOCKED_UPGRADE_TIMEOUT_MS);
|
|
7603
7659
|
};
|
|
7604
7660
|
});
|
|
7605
7661
|
dbCache.set(dbName, { version: dbVersion, promise: dbPromise });
|
|
@@ -7623,6 +7679,46 @@ async function closeDatabase(dbName) {
|
|
|
7623
7679
|
}
|
|
7624
7680
|
return true;
|
|
7625
7681
|
}
|
|
7682
|
+
|
|
7683
|
+
// src/repositories/indexedDB/managedConnection.ts
|
|
7684
|
+
var ConnectionDisposedError = class extends Error {
|
|
7685
|
+
constructor(dbName) {
|
|
7686
|
+
super(`connection to database "${dbName}" was disposed`);
|
|
7687
|
+
this.dbName = dbName;
|
|
7688
|
+
}
|
|
7689
|
+
dbName;
|
|
7690
|
+
name = "ConnectionDisposedError";
|
|
7691
|
+
};
|
|
7692
|
+
function createManagedConnection(dbName, version, initDatabase2) {
|
|
7693
|
+
let current = null;
|
|
7694
|
+
let disposed = false;
|
|
7695
|
+
return {
|
|
7696
|
+
get() {
|
|
7697
|
+
if (disposed) return Promise.reject(new ConnectionDisposedError(dbName));
|
|
7698
|
+
if (current) return current;
|
|
7699
|
+
const opening = openDatabase(dbName, version, initDatabase2).then((db) => {
|
|
7700
|
+
const forget2 = () => {
|
|
7701
|
+
if (current === opening) current = null;
|
|
7702
|
+
};
|
|
7703
|
+
db.addEventListener("versionchange", forget2);
|
|
7704
|
+
db.addEventListener("close", forget2);
|
|
7705
|
+
return db;
|
|
7706
|
+
}).catch((err) => {
|
|
7707
|
+
if (current === opening) current = null;
|
|
7708
|
+
throw err;
|
|
7709
|
+
});
|
|
7710
|
+
current = opening;
|
|
7711
|
+
return opening;
|
|
7712
|
+
},
|
|
7713
|
+
async [Symbol.asyncDispose]() {
|
|
7714
|
+
if (disposed) return;
|
|
7715
|
+
disposed = true;
|
|
7716
|
+
if (!current) return;
|
|
7717
|
+
current = null;
|
|
7718
|
+
await closeDatabase(dbName);
|
|
7719
|
+
}
|
|
7720
|
+
};
|
|
7721
|
+
}
|
|
7626
7722
|
function scriptFromArkAddress(address) {
|
|
7627
7723
|
return hex.encode(ArkAddress.decode(address).pkScript);
|
|
7628
7724
|
}
|
|
@@ -7906,16 +8002,17 @@ async function setupServiceWorker(pathOrOptions) {
|
|
|
7906
8002
|
|
|
7907
8003
|
// src/repositories/indexedDB/virtualTxRepository.ts
|
|
7908
8004
|
var IndexedDBVirtualTxRepository = class {
|
|
8005
|
+
version = 1;
|
|
8006
|
+
connection;
|
|
7909
8007
|
constructor(dbName = DEFAULT_DB_NAME) {
|
|
7910
|
-
this.
|
|
8008
|
+
this.connection = createManagedConnection(
|
|
8009
|
+
dbName,
|
|
8010
|
+
INTENT_DB_VERSION,
|
|
8011
|
+
initDatabaseWithIntents
|
|
8012
|
+
);
|
|
7911
8013
|
}
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
db = null;
|
|
7915
|
-
async getDB() {
|
|
7916
|
-
if (!this.db)
|
|
7917
|
-
this.db = await openDatabase(this.dbName, INTENT_DB_VERSION, initDatabaseWithIntents);
|
|
7918
|
-
return this.db;
|
|
8014
|
+
getDB() {
|
|
8015
|
+
return this.connection.get();
|
|
7919
8016
|
}
|
|
7920
8017
|
async clear() {
|
|
7921
8018
|
const db = await this.getDB();
|
|
@@ -8028,24 +8125,23 @@ var IndexedDBVirtualTxRepository = class {
|
|
|
8028
8125
|
await awaitTransaction(transaction);
|
|
8029
8126
|
}
|
|
8030
8127
|
async [Symbol.asyncDispose]() {
|
|
8031
|
-
|
|
8032
|
-
await closeDatabase(this.dbName);
|
|
8033
|
-
this.db = null;
|
|
8128
|
+
await this.connection[Symbol.asyncDispose]();
|
|
8034
8129
|
}
|
|
8035
8130
|
};
|
|
8036
8131
|
|
|
8037
8132
|
// src/repositories/indexedDB/intentRepository.ts
|
|
8038
8133
|
var IndexedDBIntentRepository = class {
|
|
8134
|
+
version = 1;
|
|
8135
|
+
connection;
|
|
8039
8136
|
constructor(dbName = DEFAULT_DB_NAME) {
|
|
8040
|
-
this.
|
|
8137
|
+
this.connection = createManagedConnection(
|
|
8138
|
+
dbName,
|
|
8139
|
+
INTENT_DB_VERSION,
|
|
8140
|
+
initDatabaseWithIntents
|
|
8141
|
+
);
|
|
8041
8142
|
}
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
db = null;
|
|
8045
|
-
async getDB() {
|
|
8046
|
-
if (!this.db)
|
|
8047
|
-
this.db = await openDatabase(this.dbName, INTENT_DB_VERSION, initDatabaseWithIntents);
|
|
8048
|
-
return this.db;
|
|
8143
|
+
getDB() {
|
|
8144
|
+
return this.connection.get();
|
|
8049
8145
|
}
|
|
8050
8146
|
async clear() {
|
|
8051
8147
|
const db = await this.getDB();
|
|
@@ -8078,9 +8174,7 @@ var IndexedDBIntentRepository = class {
|
|
|
8078
8174
|
return out;
|
|
8079
8175
|
}
|
|
8080
8176
|
async [Symbol.asyncDispose]() {
|
|
8081
|
-
|
|
8082
|
-
await closeDatabase(this.dbName);
|
|
8083
|
-
this.db = null;
|
|
8177
|
+
await this.connection[Symbol.asyncDispose]();
|
|
8084
8178
|
}
|
|
8085
8179
|
};
|
|
8086
8180
|
|
|
@@ -10382,33 +10476,17 @@ var deserializeTransaction = (o) => ({
|
|
|
10382
10476
|
|
|
10383
10477
|
// src/repositories/indexedDB/contractRepository.ts
|
|
10384
10478
|
var IndexedDBContractRepository = class {
|
|
10479
|
+
version = 2;
|
|
10480
|
+
connection;
|
|
10385
10481
|
constructor(dbName = DEFAULT_DB_NAME) {
|
|
10386
|
-
this.
|
|
10482
|
+
this.connection = createManagedConnection(dbName, DB_VERSION, initDatabase);
|
|
10387
10483
|
}
|
|
10388
|
-
dbName;
|
|
10389
|
-
version = 2;
|
|
10390
|
-
db = null;
|
|
10391
10484
|
async clear() {
|
|
10392
10485
|
try {
|
|
10393
10486
|
const db = await this.getDB();
|
|
10394
|
-
|
|
10395
|
-
|
|
10396
|
-
|
|
10397
|
-
const contractsStore = transaction.objectStore(STORE_CONTRACTS);
|
|
10398
|
-
const contractDataRequest = contractDataStore.clear();
|
|
10399
|
-
const contractsRequest = contractsStore.clear();
|
|
10400
|
-
let completed = 0;
|
|
10401
|
-
const checkComplete = () => {
|
|
10402
|
-
completed++;
|
|
10403
|
-
if (completed === 2) {
|
|
10404
|
-
resolve();
|
|
10405
|
-
}
|
|
10406
|
-
};
|
|
10407
|
-
contractDataRequest.onsuccess = checkComplete;
|
|
10408
|
-
contractsRequest.onsuccess = checkComplete;
|
|
10409
|
-
contractDataRequest.onerror = () => reject(contractDataRequest.error);
|
|
10410
|
-
contractsRequest.onerror = () => reject(contractsRequest.error);
|
|
10411
|
-
});
|
|
10487
|
+
const transaction = db.transaction([STORE_CONTRACTS], "readwrite");
|
|
10488
|
+
transaction.objectStore(STORE_CONTRACTS).clear();
|
|
10489
|
+
await awaitTransaction(transaction);
|
|
10412
10490
|
} catch (error) {
|
|
10413
10491
|
console.error("Failed to clear contract data:", error);
|
|
10414
10492
|
throw error;
|
|
@@ -10419,28 +10497,20 @@ var IndexedDBContractRepository = class {
|
|
|
10419
10497
|
const db = await this.getDB();
|
|
10420
10498
|
const store = db.transaction([STORE_CONTRACTS], "readonly").objectStore(STORE_CONTRACTS);
|
|
10421
10499
|
if (!filter || Object.keys(filter).length === 0) {
|
|
10422
|
-
return
|
|
10423
|
-
const request = store.getAll();
|
|
10424
|
-
request.onerror = () => reject(request.error);
|
|
10425
|
-
request.onsuccess = () => resolve(request.result ?? []);
|
|
10426
|
-
});
|
|
10500
|
+
return await promisifyRequest(store.getAll()) ?? [];
|
|
10427
10501
|
}
|
|
10428
10502
|
const normalizedFilter = normalizeFilter(filter);
|
|
10429
10503
|
if (normalizedFilter.has("script")) {
|
|
10430
10504
|
const scripts = normalizedFilter.get("script");
|
|
10431
10505
|
const contracts = await Promise.all(
|
|
10432
10506
|
scripts.map(
|
|
10433
|
-
(script) =>
|
|
10434
|
-
const req = store.get(script);
|
|
10435
|
-
req.onerror = () => reject(req.error);
|
|
10436
|
-
req.onsuccess = () => resolve(req.result);
|
|
10437
|
-
})
|
|
10507
|
+
(script) => promisifyRequest(store.get(script))
|
|
10438
10508
|
)
|
|
10439
10509
|
);
|
|
10440
10510
|
return this.applyContractFilter(contracts, normalizedFilter);
|
|
10441
10511
|
}
|
|
10442
10512
|
if (normalizedFilter.has("state")) {
|
|
10443
|
-
const contracts = await
|
|
10513
|
+
const contracts = await getAllByIndexValues(
|
|
10444
10514
|
store,
|
|
10445
10515
|
"state",
|
|
10446
10516
|
normalizedFilter.get("state")
|
|
@@ -10448,18 +10518,14 @@ var IndexedDBContractRepository = class {
|
|
|
10448
10518
|
return this.applyContractFilter(contracts, normalizedFilter);
|
|
10449
10519
|
}
|
|
10450
10520
|
if (normalizedFilter.has("type")) {
|
|
10451
|
-
const contracts = await
|
|
10521
|
+
const contracts = await getAllByIndexValues(
|
|
10452
10522
|
store,
|
|
10453
10523
|
"type",
|
|
10454
10524
|
normalizedFilter.get("type")
|
|
10455
10525
|
);
|
|
10456
10526
|
return this.applyContractFilter(contracts, normalizedFilter);
|
|
10457
10527
|
}
|
|
10458
|
-
const allContracts = await
|
|
10459
|
-
const request = store.getAll();
|
|
10460
|
-
request.onerror = () => reject(request.error);
|
|
10461
|
-
request.onsuccess = () => resolve(request.result ?? []);
|
|
10462
|
-
});
|
|
10528
|
+
const allContracts = await promisifyRequest(store.getAll()) ?? [];
|
|
10463
10529
|
return this.applyContractFilter(allContracts, normalizedFilter);
|
|
10464
10530
|
} catch (error) {
|
|
10465
10531
|
console.error("Failed to get contracts:", error);
|
|
@@ -10469,13 +10535,9 @@ var IndexedDBContractRepository = class {
|
|
|
10469
10535
|
async saveContract(contract) {
|
|
10470
10536
|
try {
|
|
10471
10537
|
const db = await this.getDB();
|
|
10472
|
-
|
|
10473
|
-
|
|
10474
|
-
|
|
10475
|
-
const request = store.put(contract);
|
|
10476
|
-
request.onerror = () => reject(request.error);
|
|
10477
|
-
request.onsuccess = () => resolve();
|
|
10478
|
-
});
|
|
10538
|
+
const transaction = db.transaction([STORE_CONTRACTS], "readwrite");
|
|
10539
|
+
transaction.objectStore(STORE_CONTRACTS).put(contract);
|
|
10540
|
+
await awaitTransaction(transaction);
|
|
10479
10541
|
} catch (error) {
|
|
10480
10542
|
console.error("Failed to save contract:", error);
|
|
10481
10543
|
throw error;
|
|
@@ -10484,34 +10546,14 @@ var IndexedDBContractRepository = class {
|
|
|
10484
10546
|
async deleteContract(script) {
|
|
10485
10547
|
try {
|
|
10486
10548
|
const db = await this.getDB();
|
|
10487
|
-
|
|
10488
|
-
|
|
10489
|
-
|
|
10490
|
-
const getRequest = store.get(script);
|
|
10491
|
-
getRequest.onerror = () => reject(getRequest.error);
|
|
10492
|
-
getRequest.onsuccess = () => {
|
|
10493
|
-
const request = store.delete(script);
|
|
10494
|
-
request.onerror = () => reject(request.error);
|
|
10495
|
-
request.onsuccess = () => resolve();
|
|
10496
|
-
};
|
|
10497
|
-
});
|
|
10549
|
+
const transaction = db.transaction([STORE_CONTRACTS], "readwrite");
|
|
10550
|
+
transaction.objectStore(STORE_CONTRACTS).delete(script);
|
|
10551
|
+
await awaitTransaction(transaction);
|
|
10498
10552
|
} catch (error) {
|
|
10499
10553
|
console.error(`Failed to delete contract ${script}:`, error);
|
|
10500
10554
|
throw error;
|
|
10501
10555
|
}
|
|
10502
10556
|
}
|
|
10503
|
-
getContractsByIndexValues(store, indexName, values) {
|
|
10504
|
-
if (values.length === 0) return Promise.resolve([]);
|
|
10505
|
-
const index = store.index(indexName);
|
|
10506
|
-
const requests = values.map(
|
|
10507
|
-
(value) => new Promise((resolve, reject) => {
|
|
10508
|
-
const request = index.getAll(value);
|
|
10509
|
-
request.onerror = () => reject(request.error);
|
|
10510
|
-
request.onsuccess = () => resolve(request.result ?? []);
|
|
10511
|
-
})
|
|
10512
|
-
);
|
|
10513
|
-
return Promise.all(requests).then((results) => results.flatMap((result) => result));
|
|
10514
|
-
}
|
|
10515
10557
|
applyContractFilter(contracts, filter) {
|
|
10516
10558
|
return contracts.filter((contract) => {
|
|
10517
10559
|
if (contract === void 0) return false;
|
|
@@ -10524,15 +10566,11 @@ var IndexedDBContractRepository = class {
|
|
|
10524
10566
|
return true;
|
|
10525
10567
|
});
|
|
10526
10568
|
}
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
this.db = await openDatabase(this.dbName, DB_VERSION, initDatabase);
|
|
10530
|
-
return this.db;
|
|
10569
|
+
getDB() {
|
|
10570
|
+
return this.connection.get();
|
|
10531
10571
|
}
|
|
10532
10572
|
async [Symbol.asyncDispose]() {
|
|
10533
|
-
|
|
10534
|
-
await closeDatabase(this.dbName);
|
|
10535
|
-
this.db = null;
|
|
10573
|
+
await this.connection[Symbol.asyncDispose]();
|
|
10536
10574
|
}
|
|
10537
10575
|
};
|
|
10538
10576
|
var FILTER_FIELDS = ["script", "state", "type", "watch"];
|
|
@@ -10551,70 +10589,34 @@ function normalizeFilter(filter) {
|
|
|
10551
10589
|
|
|
10552
10590
|
// src/repositories/indexedDB/walletRepository.ts
|
|
10553
10591
|
var IndexedDBWalletRepository = class {
|
|
10592
|
+
version = 1;
|
|
10593
|
+
connection;
|
|
10554
10594
|
constructor(dbName = DEFAULT_DB_NAME) {
|
|
10555
|
-
this.
|
|
10595
|
+
this.connection = createManagedConnection(dbName, DB_VERSION, initDatabase);
|
|
10556
10596
|
}
|
|
10557
|
-
dbName;
|
|
10558
|
-
version = 1;
|
|
10559
|
-
db = null;
|
|
10560
10597
|
async clear() {
|
|
10561
10598
|
try {
|
|
10562
10599
|
const db = await this.getDB();
|
|
10563
|
-
|
|
10564
|
-
|
|
10565
|
-
|
|
10566
|
-
|
|
10567
|
-
);
|
|
10568
|
-
const vtxosStore = transaction.objectStore(STORE_VTXOS);
|
|
10569
|
-
const utxosStore = transaction.objectStore(STORE_UTXOS);
|
|
10570
|
-
const transactionsStore = transaction.objectStore(STORE_TRANSACTIONS);
|
|
10571
|
-
const walletStateStore = transaction.objectStore(STORE_WALLET_STATE);
|
|
10572
|
-
const requests = [
|
|
10573
|
-
vtxosStore.clear(),
|
|
10574
|
-
utxosStore.clear(),
|
|
10575
|
-
transactionsStore.clear(),
|
|
10576
|
-
walletStateStore.clear()
|
|
10577
|
-
];
|
|
10578
|
-
let completed = 0;
|
|
10579
|
-
const checkComplete = () => {
|
|
10580
|
-
completed++;
|
|
10581
|
-
if (completed === requests.length) {
|
|
10582
|
-
resolve();
|
|
10583
|
-
}
|
|
10584
|
-
};
|
|
10585
|
-
requests.forEach((request) => {
|
|
10586
|
-
request.onsuccess = checkComplete;
|
|
10587
|
-
request.onerror = () => reject(request.error);
|
|
10588
|
-
});
|
|
10589
|
-
});
|
|
10600
|
+
const stores = [STORE_VTXOS, STORE_UTXOS, STORE_TRANSACTIONS, STORE_WALLET_STATE];
|
|
10601
|
+
const transaction = db.transaction(stores, "readwrite");
|
|
10602
|
+
for (const name of stores) transaction.objectStore(name).clear();
|
|
10603
|
+
await awaitTransaction(transaction);
|
|
10590
10604
|
} catch (error) {
|
|
10591
10605
|
console.error("Failed to clear wallet data:", error);
|
|
10592
10606
|
throw error;
|
|
10593
10607
|
}
|
|
10594
10608
|
}
|
|
10595
10609
|
async [Symbol.asyncDispose]() {
|
|
10596
|
-
|
|
10597
|
-
await closeDatabase(this.dbName);
|
|
10598
|
-
this.db = null;
|
|
10610
|
+
await this.connection[Symbol.asyncDispose]();
|
|
10599
10611
|
}
|
|
10600
10612
|
async getVtxos(address) {
|
|
10601
10613
|
try {
|
|
10602
10614
|
const db = await this.getDB();
|
|
10603
|
-
|
|
10604
|
-
|
|
10605
|
-
|
|
10606
|
-
|
|
10607
|
-
|
|
10608
|
-
request.onerror = () => reject(request.error);
|
|
10609
|
-
request.onsuccess = () => {
|
|
10610
|
-
const results = request.result || [];
|
|
10611
|
-
try {
|
|
10612
|
-
resolve(results.map(deserializeVtxoWithBackfill));
|
|
10613
|
-
} catch (err) {
|
|
10614
|
-
reject(err);
|
|
10615
|
-
}
|
|
10616
|
-
};
|
|
10617
|
-
});
|
|
10615
|
+
const store = db.transaction([STORE_VTXOS], "readonly").objectStore(STORE_VTXOS);
|
|
10616
|
+
const results = await promisifyRequest(
|
|
10617
|
+
store.index("address").getAll(address)
|
|
10618
|
+
);
|
|
10619
|
+
return (results || []).map(deserializeVtxoWithBackfill);
|
|
10618
10620
|
} catch (error) {
|
|
10619
10621
|
console.error(`Failed to get VTXOs for address ${address}:`, error);
|
|
10620
10622
|
return [];
|
|
@@ -10623,24 +10625,13 @@ var IndexedDBWalletRepository = class {
|
|
|
10623
10625
|
async saveVtxos(address, vtxos) {
|
|
10624
10626
|
try {
|
|
10625
10627
|
const db = await this.getDB();
|
|
10626
|
-
|
|
10627
|
-
|
|
10628
|
-
|
|
10629
|
-
const
|
|
10630
|
-
|
|
10631
|
-
|
|
10632
|
-
|
|
10633
|
-
address,
|
|
10634
|
-
...serialized
|
|
10635
|
-
};
|
|
10636
|
-
const request = store.put(item);
|
|
10637
|
-
request.onerror = () => rejectItem(request.error);
|
|
10638
|
-
request.onsuccess = () => resolveItem();
|
|
10639
|
-
});
|
|
10640
|
-
});
|
|
10641
|
-
Promise.all(promises).then(() => resolve()).catch(reject);
|
|
10642
|
-
transaction.onerror = () => reject(transaction.error);
|
|
10643
|
-
});
|
|
10628
|
+
const transaction = db.transaction([STORE_VTXOS], "readwrite");
|
|
10629
|
+
const store = transaction.objectStore(STORE_VTXOS);
|
|
10630
|
+
for (const vtxo of vtxos) {
|
|
10631
|
+
const serialized = serializeVtxo(vtxo);
|
|
10632
|
+
store.put({ address, ...serialized });
|
|
10633
|
+
}
|
|
10634
|
+
await awaitTransaction(transaction);
|
|
10644
10635
|
} catch (error) {
|
|
10645
10636
|
console.error(`Failed to save VTXOs for address ${address}:`, error);
|
|
10646
10637
|
throw error;
|
|
@@ -10649,22 +10640,9 @@ var IndexedDBWalletRepository = class {
|
|
|
10649
10640
|
async deleteVtxos(address) {
|
|
10650
10641
|
try {
|
|
10651
10642
|
const db = await this.getDB();
|
|
10652
|
-
|
|
10653
|
-
|
|
10654
|
-
|
|
10655
|
-
const index = store.index("address");
|
|
10656
|
-
const request = index.openCursor(IDBKeyRange.only(address));
|
|
10657
|
-
request.onerror = () => reject(request.error);
|
|
10658
|
-
request.onsuccess = () => {
|
|
10659
|
-
const cursor = request.result;
|
|
10660
|
-
if (cursor) {
|
|
10661
|
-
cursor.delete();
|
|
10662
|
-
cursor.continue();
|
|
10663
|
-
} else {
|
|
10664
|
-
resolve();
|
|
10665
|
-
}
|
|
10666
|
-
};
|
|
10667
|
-
});
|
|
10643
|
+
const transaction = db.transaction([STORE_VTXOS], "readwrite");
|
|
10644
|
+
deleteByIndex(transaction.objectStore(STORE_VTXOS), "address", address);
|
|
10645
|
+
await awaitTransaction(transaction);
|
|
10668
10646
|
} catch (error) {
|
|
10669
10647
|
console.error(`Failed to clear VTXOs for address ${address}:`, error);
|
|
10670
10648
|
throw error;
|
|
@@ -10673,34 +10651,24 @@ var IndexedDBWalletRepository = class {
|
|
|
10673
10651
|
async getVtxosForScript(script) {
|
|
10674
10652
|
try {
|
|
10675
10653
|
const db = await this.getDB();
|
|
10676
|
-
|
|
10677
|
-
|
|
10678
|
-
|
|
10679
|
-
|
|
10680
|
-
|
|
10681
|
-
|
|
10682
|
-
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10686
|
-
|
|
10687
|
-
|
|
10688
|
-
|
|
10689
|
-
|
|
10690
|
-
|
|
10691
|
-
|
|
10692
|
-
|
|
10693
|
-
|
|
10694
|
-
if (shouldReplaceVtxo(existing, row)) {
|
|
10695
|
-
byOutpoint.set(outpoint, row);
|
|
10696
|
-
}
|
|
10697
|
-
}
|
|
10698
|
-
resolve(Array.from(byOutpoint.values()).map(deserializeVtxoWithBackfill));
|
|
10699
|
-
} catch (err) {
|
|
10700
|
-
reject(err);
|
|
10701
|
-
}
|
|
10702
|
-
};
|
|
10703
|
-
});
|
|
10654
|
+
const store = db.transaction([STORE_VTXOS], "readonly").objectStore(STORE_VTXOS);
|
|
10655
|
+
const results = await promisifyRequest(
|
|
10656
|
+
store.index("script").getAll(script)
|
|
10657
|
+
);
|
|
10658
|
+
const matching = (results || []).filter((r) => r.script === script);
|
|
10659
|
+
const byOutpoint = /* @__PURE__ */ new Map();
|
|
10660
|
+
for (const row of matching) {
|
|
10661
|
+
const outpoint = `${row.txid}:${row.vout}`;
|
|
10662
|
+
const existing = byOutpoint.get(outpoint);
|
|
10663
|
+
if (!existing) {
|
|
10664
|
+
byOutpoint.set(outpoint, row);
|
|
10665
|
+
continue;
|
|
10666
|
+
}
|
|
10667
|
+
if (shouldReplaceVtxo(existing, row)) {
|
|
10668
|
+
byOutpoint.set(outpoint, row);
|
|
10669
|
+
}
|
|
10670
|
+
}
|
|
10671
|
+
return Array.from(byOutpoint.values()).map(deserializeVtxoWithBackfill);
|
|
10704
10672
|
} catch (error) {
|
|
10705
10673
|
console.error(`Failed to get VTXOs for script ${script}:`, error);
|
|
10706
10674
|
throw error;
|
|
@@ -10722,22 +10690,9 @@ var IndexedDBWalletRepository = class {
|
|
|
10722
10690
|
async deleteVtxosForScript(script) {
|
|
10723
10691
|
try {
|
|
10724
10692
|
const db = await this.getDB();
|
|
10725
|
-
|
|
10726
|
-
|
|
10727
|
-
|
|
10728
|
-
const index = store.index("script");
|
|
10729
|
-
const request = index.openCursor(IDBKeyRange.only(script));
|
|
10730
|
-
request.onerror = () => reject(request.error);
|
|
10731
|
-
request.onsuccess = () => {
|
|
10732
|
-
const cursor = request.result;
|
|
10733
|
-
if (cursor) {
|
|
10734
|
-
cursor.delete();
|
|
10735
|
-
cursor.continue();
|
|
10736
|
-
} else {
|
|
10737
|
-
resolve();
|
|
10738
|
-
}
|
|
10739
|
-
};
|
|
10740
|
-
});
|
|
10693
|
+
const transaction = db.transaction([STORE_VTXOS], "readwrite");
|
|
10694
|
+
deleteByIndex(transaction.objectStore(STORE_VTXOS), "script", script);
|
|
10695
|
+
await awaitTransaction(transaction);
|
|
10741
10696
|
} catch (error) {
|
|
10742
10697
|
console.error(`Failed to clear VTXOs for script ${script}:`, error);
|
|
10743
10698
|
throw error;
|
|
@@ -10746,18 +10701,9 @@ var IndexedDBWalletRepository = class {
|
|
|
10746
10701
|
async getUtxos(address) {
|
|
10747
10702
|
try {
|
|
10748
10703
|
const db = await this.getDB();
|
|
10749
|
-
|
|
10750
|
-
|
|
10751
|
-
|
|
10752
|
-
const index = store.index("address");
|
|
10753
|
-
const request = index.getAll(address);
|
|
10754
|
-
request.onerror = () => reject(request.error);
|
|
10755
|
-
request.onsuccess = () => {
|
|
10756
|
-
const results = request.result || [];
|
|
10757
|
-
const utxos = results.map(deserializeUtxo);
|
|
10758
|
-
resolve(utxos);
|
|
10759
|
-
};
|
|
10760
|
-
});
|
|
10704
|
+
const store = db.transaction([STORE_UTXOS], "readonly").objectStore(STORE_UTXOS);
|
|
10705
|
+
const results = await promisifyRequest(store.index("address").getAll(address));
|
|
10706
|
+
return (results || []).map(deserializeUtxo);
|
|
10761
10707
|
} catch (error) {
|
|
10762
10708
|
console.error(`Failed to get UTXOs for address ${address}:`, error);
|
|
10763
10709
|
return [];
|
|
@@ -10766,24 +10712,10 @@ var IndexedDBWalletRepository = class {
|
|
|
10766
10712
|
async saveUtxos(address, utxos) {
|
|
10767
10713
|
try {
|
|
10768
10714
|
const db = await this.getDB();
|
|
10769
|
-
|
|
10770
|
-
|
|
10771
|
-
|
|
10772
|
-
|
|
10773
|
-
return new Promise((resolveItem, rejectItem) => {
|
|
10774
|
-
const serialized = serializeUtxo(utxo);
|
|
10775
|
-
const item = {
|
|
10776
|
-
address,
|
|
10777
|
-
...serialized
|
|
10778
|
-
};
|
|
10779
|
-
const request = store.put(item);
|
|
10780
|
-
request.onerror = () => rejectItem(request.error);
|
|
10781
|
-
request.onsuccess = () => resolveItem();
|
|
10782
|
-
});
|
|
10783
|
-
});
|
|
10784
|
-
Promise.all(promises).then(() => resolve()).catch(reject);
|
|
10785
|
-
transaction.onerror = () => reject(transaction.error);
|
|
10786
|
-
});
|
|
10715
|
+
const transaction = db.transaction([STORE_UTXOS], "readwrite");
|
|
10716
|
+
const store = transaction.objectStore(STORE_UTXOS);
|
|
10717
|
+
for (const utxo of utxos) store.put({ address, ...serializeUtxo(utxo) });
|
|
10718
|
+
await awaitTransaction(transaction);
|
|
10787
10719
|
} catch (error) {
|
|
10788
10720
|
console.error(`Failed to save UTXOs for address ${address}:`, error);
|
|
10789
10721
|
throw error;
|
|
@@ -10792,22 +10724,9 @@ var IndexedDBWalletRepository = class {
|
|
|
10792
10724
|
async deleteUtxos(address) {
|
|
10793
10725
|
try {
|
|
10794
10726
|
const db = await this.getDB();
|
|
10795
|
-
|
|
10796
|
-
|
|
10797
|
-
|
|
10798
|
-
const index = store.index("address");
|
|
10799
|
-
const request = index.openCursor(IDBKeyRange.only(address));
|
|
10800
|
-
request.onerror = () => reject(request.error);
|
|
10801
|
-
request.onsuccess = () => {
|
|
10802
|
-
const cursor = request.result;
|
|
10803
|
-
if (cursor) {
|
|
10804
|
-
cursor.delete();
|
|
10805
|
-
cursor.continue();
|
|
10806
|
-
} else {
|
|
10807
|
-
resolve();
|
|
10808
|
-
}
|
|
10809
|
-
};
|
|
10810
|
-
});
|
|
10727
|
+
const transaction = db.transaction([STORE_UTXOS], "readwrite");
|
|
10728
|
+
deleteByIndex(transaction.objectStore(STORE_UTXOS), "address", address);
|
|
10729
|
+
await awaitTransaction(transaction);
|
|
10811
10730
|
} catch (error) {
|
|
10812
10731
|
console.error(`Failed to clear UTXOs for address ${address}:`, error);
|
|
10813
10732
|
throw error;
|
|
@@ -10816,17 +10735,11 @@ var IndexedDBWalletRepository = class {
|
|
|
10816
10735
|
async getTransactionHistory(address) {
|
|
10817
10736
|
try {
|
|
10818
10737
|
const db = await this.getDB();
|
|
10819
|
-
|
|
10820
|
-
|
|
10821
|
-
|
|
10822
|
-
|
|
10823
|
-
|
|
10824
|
-
request.onerror = () => reject(request.error);
|
|
10825
|
-
request.onsuccess = () => {
|
|
10826
|
-
const results = request.result || [];
|
|
10827
|
-
resolve(results.sort((a, b) => a.createdAt - b.createdAt));
|
|
10828
|
-
};
|
|
10829
|
-
});
|
|
10738
|
+
const store = db.transaction([STORE_TRANSACTIONS], "readonly").objectStore(STORE_TRANSACTIONS);
|
|
10739
|
+
const results = await promisifyRequest(
|
|
10740
|
+
store.index("address").getAll(address)
|
|
10741
|
+
);
|
|
10742
|
+
return (results || []).sort((a, b) => a.createdAt - b.createdAt);
|
|
10830
10743
|
} catch (error) {
|
|
10831
10744
|
console.error(`Failed to get transaction history for address ${address}:`, error);
|
|
10832
10745
|
return [];
|
|
@@ -10835,23 +10748,18 @@ var IndexedDBWalletRepository = class {
|
|
|
10835
10748
|
async saveTransactions(address, txs) {
|
|
10836
10749
|
try {
|
|
10837
10750
|
const db = await this.getDB();
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
keyArkTxid: tx.key.arkTxid
|
|
10848
|
-
};
|
|
10849
|
-
store.put(item);
|
|
10751
|
+
const transaction = db.transaction([STORE_TRANSACTIONS], "readwrite");
|
|
10752
|
+
const store = transaction.objectStore(STORE_TRANSACTIONS);
|
|
10753
|
+
for (const tx of txs) {
|
|
10754
|
+
store.put({
|
|
10755
|
+
address,
|
|
10756
|
+
...tx,
|
|
10757
|
+
keyBoardingTxid: tx.key.boardingTxid,
|
|
10758
|
+
keyCommitmentTxid: tx.key.commitmentTxid,
|
|
10759
|
+
keyArkTxid: tx.key.arkTxid
|
|
10850
10760
|
});
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
transaction.onabort = () => reject(new Error("Transaction aborted"));
|
|
10854
|
-
});
|
|
10761
|
+
}
|
|
10762
|
+
await awaitTransaction(transaction);
|
|
10855
10763
|
} catch (error) {
|
|
10856
10764
|
console.error(`Failed to save transactions for address ${address}:`, error);
|
|
10857
10765
|
throw error;
|
|
@@ -10860,22 +10768,9 @@ var IndexedDBWalletRepository = class {
|
|
|
10860
10768
|
async deleteTransactions(address) {
|
|
10861
10769
|
try {
|
|
10862
10770
|
const db = await this.getDB();
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
const index = store.index("address");
|
|
10867
|
-
const request = index.openCursor(IDBKeyRange.only(address));
|
|
10868
|
-
request.onerror = () => reject(request.error);
|
|
10869
|
-
request.onsuccess = () => {
|
|
10870
|
-
const cursor = request.result;
|
|
10871
|
-
if (cursor) {
|
|
10872
|
-
cursor.delete();
|
|
10873
|
-
cursor.continue();
|
|
10874
|
-
} else {
|
|
10875
|
-
resolve();
|
|
10876
|
-
}
|
|
10877
|
-
};
|
|
10878
|
-
});
|
|
10771
|
+
const transaction = db.transaction([STORE_TRANSACTIONS], "readwrite");
|
|
10772
|
+
deleteByIndex(transaction.objectStore(STORE_TRANSACTIONS), "address", address);
|
|
10773
|
+
await awaitTransaction(transaction);
|
|
10879
10774
|
} catch (error) {
|
|
10880
10775
|
console.error(`Failed to clear transactions for address ${address}:`, error);
|
|
10881
10776
|
throw error;
|
|
@@ -10884,20 +10779,11 @@ var IndexedDBWalletRepository = class {
|
|
|
10884
10779
|
async getWalletState() {
|
|
10885
10780
|
try {
|
|
10886
10781
|
const db = await this.getDB();
|
|
10887
|
-
|
|
10888
|
-
|
|
10889
|
-
|
|
10890
|
-
|
|
10891
|
-
|
|
10892
|
-
request.onsuccess = () => {
|
|
10893
|
-
const result = request.result;
|
|
10894
|
-
if (result && result.data) {
|
|
10895
|
-
resolve(result.data);
|
|
10896
|
-
} else {
|
|
10897
|
-
resolve(null);
|
|
10898
|
-
}
|
|
10899
|
-
};
|
|
10900
|
-
});
|
|
10782
|
+
const store = db.transaction([STORE_WALLET_STATE], "readonly").objectStore(STORE_WALLET_STATE);
|
|
10783
|
+
const result = await promisifyRequest(
|
|
10784
|
+
store.get("state")
|
|
10785
|
+
);
|
|
10786
|
+
return result?.data ?? null;
|
|
10901
10787
|
} catch (error) {
|
|
10902
10788
|
console.error("Failed to get wallet state:", error);
|
|
10903
10789
|
return null;
|
|
@@ -10906,26 +10792,16 @@ var IndexedDBWalletRepository = class {
|
|
|
10906
10792
|
async saveWalletState(state) {
|
|
10907
10793
|
try {
|
|
10908
10794
|
const db = await this.getDB();
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
const item = {
|
|
10913
|
-
key: "state",
|
|
10914
|
-
data: state
|
|
10915
|
-
};
|
|
10916
|
-
const request = store.put(item);
|
|
10917
|
-
request.onerror = () => reject(request.error);
|
|
10918
|
-
request.onsuccess = () => resolve();
|
|
10919
|
-
});
|
|
10795
|
+
const transaction = db.transaction([STORE_WALLET_STATE], "readwrite");
|
|
10796
|
+
transaction.objectStore(STORE_WALLET_STATE).put({ key: "state", data: state });
|
|
10797
|
+
await awaitTransaction(transaction);
|
|
10920
10798
|
} catch (error) {
|
|
10921
10799
|
console.error("Failed to save wallet state:", error);
|
|
10922
10800
|
throw error;
|
|
10923
10801
|
}
|
|
10924
10802
|
}
|
|
10925
|
-
|
|
10926
|
-
|
|
10927
|
-
this.db = await openDatabase(this.dbName, DB_VERSION, initDatabase);
|
|
10928
|
-
return this.db;
|
|
10803
|
+
getDB() {
|
|
10804
|
+
return this.connection.get();
|
|
10929
10805
|
}
|
|
10930
10806
|
};
|
|
10931
10807
|
function deserializeVtxoWithBackfill(o) {
|
|
@@ -12068,11 +11944,6 @@ function extractArkProviderUrl(provider) {
|
|
|
12068
11944
|
var DEFAULT_LOOK_AHEAD_WINDOW = 20;
|
|
12069
11945
|
var MAX_USED_SIGNING_DESCRIPTORS_LOOK_AHEAD = 1e3;
|
|
12070
11946
|
var MAINNET_UNILATERAL_EXIT_DELAY = 605184n;
|
|
12071
|
-
function toXOnlyPubKey(pubkey) {
|
|
12072
|
-
if (pubkey.length === 33) return pubkey.slice(1);
|
|
12073
|
-
if (pubkey.length === 32) return pubkey;
|
|
12074
|
-
throw new Error(`invalid signer pubkey length: expected 32 or 33, got ${pubkey.length}`);
|
|
12075
|
-
}
|
|
12076
11947
|
function delayToTimelock(delay) {
|
|
12077
11948
|
return {
|
|
12078
11949
|
value: delay,
|
|
@@ -12532,8 +12403,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
12532
12403
|
value: info.boardingExitDelay,
|
|
12533
12404
|
type: info.boardingExitDelay < 512n ? "blocks" : "seconds"
|
|
12534
12405
|
};
|
|
12535
|
-
const serverPubKey = hex.decode(info.signerPubkey)
|
|
12536
|
-
const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => hex.decode(info2.pubkey)
|
|
12406
|
+
const serverPubKey = toXOnly(hex.decode(info.signerPubkey), "ark signer key");
|
|
12407
|
+
const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => toXOnly(hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : config.delegatorProvider ? await config.delegatorProvider.getDelegateInfo().then((info2) => toXOnly(hex.decode(info2.pubkey), "delegate key")).catch(() => void 0) : void 0;
|
|
12537
12408
|
const offchainOptions = {
|
|
12538
12409
|
pubKey,
|
|
12539
12410
|
serverPubKey,
|
|
@@ -13811,7 +13682,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
13811
13682
|
* the stable public API.
|
|
13812
13683
|
*/
|
|
13813
13684
|
async rotateServerSigner(newServerPubKey, checkpointTapscript) {
|
|
13814
|
-
const xonly =
|
|
13685
|
+
const xonly = toXOnly(newServerPubKey, "ark signer key");
|
|
13815
13686
|
const newServerUnrollScript = assertValidServerUnrollScript(
|
|
13816
13687
|
checkpointTapscript,
|
|
13817
13688
|
resolveCheckpointExitDelayPolicy(this.network, this.checkpointExitDelayPolicy)
|
|
@@ -13990,9 +13861,9 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
13990
13861
|
const materialize = (index) => hd ? provider.materializeDescriptorAt(index) : staticDescriptor;
|
|
13991
13862
|
const delegatePubKey = this.offchainTapscript instanceof DelegateVtxo.Script ? this.offchainTapscript.options.delegatePubKey : void 0;
|
|
13992
13863
|
const arkInfo = await this.arkProvider.getInfo();
|
|
13993
|
-
const currentSignerPubKey =
|
|
13864
|
+
const currentSignerPubKey = toXOnly(hex.decode(arkInfo.signerPubkey), "ark signer key");
|
|
13994
13865
|
const deprecatedSignerPubKeys = arkInfo.deprecatedSigners.map(
|
|
13995
|
-
(s) =>
|
|
13866
|
+
(s) => toXOnly(hex.decode(s.pubkey), "deprecated signer key")
|
|
13996
13867
|
);
|
|
13997
13868
|
const deps = {
|
|
13998
13869
|
indexerProvider: this.indexerProvider,
|
|
@@ -14121,7 +13992,7 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
14121
13992
|
throw new Error("Invalid configured public key");
|
|
14122
13993
|
}
|
|
14123
13994
|
const setup = await ReadonlyWallet.setupWalletConfig(config, pubkey);
|
|
14124
|
-
const forfeitPubkey = hex.decode(setup.info.forfeitPubkey)
|
|
13995
|
+
const forfeitPubkey = toXOnly(hex.decode(setup.info.forfeitPubkey), "forfeit key");
|
|
14125
13996
|
const forfeitAddress = Address(setup.network).decode(setup.info.forfeitAddress);
|
|
14126
13997
|
const forfeitOutputScript = OutScript.encode(forfeitAddress);
|
|
14127
13998
|
const checkpointExitDelayOverrides = {
|
|
@@ -14791,9 +14662,11 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
14791
14662
|
if (!sweepTapTreeRoot) {
|
|
14792
14663
|
throw new Error("Sweep tap tree root not set");
|
|
14793
14664
|
}
|
|
14794
|
-
const xOnlyPublicKeys = event.cosignersPublicKeys.map(
|
|
14665
|
+
const xOnlyPublicKeys = event.cosignersPublicKeys.map(
|
|
14666
|
+
(k) => hex.encode(toXOnly(hex.decode(k), "cosigner key"))
|
|
14667
|
+
);
|
|
14795
14668
|
const signerPublicKey = await session.getPublicKey();
|
|
14796
|
-
const xonlySignerPublicKey = signerPublicKey
|
|
14669
|
+
const xonlySignerPublicKey = toXOnly(signerPublicKey, "signer key");
|
|
14797
14670
|
if (!xOnlyPublicKeys.includes(hex.encode(xonlySignerPublicKey))) {
|
|
14798
14671
|
return { skip: true };
|
|
14799
14672
|
}
|
|
@@ -21783,15 +21656,17 @@ function createArkadeBatchHandler(intentId, inputs, signer, signedProof, message
|
|
|
21783
21656
|
batchId = event.id;
|
|
21784
21657
|
const sweepTapscript = CSVMultisigTapscript.encode({
|
|
21785
21658
|
timelock,
|
|
21786
|
-
pubkeys: [hex.decode(info.forfeitPubkey)
|
|
21659
|
+
pubkeys: [toXOnly(hex.decode(info.forfeitPubkey), "forfeit key")]
|
|
21787
21660
|
}).script;
|
|
21788
21661
|
sweepTapTreeRoot = tapLeafHash(sweepTapscript);
|
|
21789
21662
|
return { skip: false };
|
|
21790
21663
|
},
|
|
21791
21664
|
onTreeSigningStarted: async (event, vtxoTree) => {
|
|
21792
21665
|
const signerPubKey = await session.getPublicKey();
|
|
21793
|
-
const xonlySignerPubKey = signerPubKey
|
|
21794
|
-
const xOnlyPubkeys = event.cosignersPublicKeys.map(
|
|
21666
|
+
const xonlySignerPubKey = toXOnly(signerPubKey, "signer key");
|
|
21667
|
+
const xOnlyPubkeys = event.cosignersPublicKeys.map(
|
|
21668
|
+
(k) => hex.encode(toXOnly(hex.decode(k), "cosigner key"))
|
|
21669
|
+
);
|
|
21795
21670
|
if (!xOnlyPubkeys.includes(hex.encode(xonlySignerPubKey))) {
|
|
21796
21671
|
return { skip: true };
|
|
21797
21672
|
}
|
|
@@ -21974,7 +21849,7 @@ var Arkade = class _Arkade {
|
|
|
21974
21849
|
/** Connect and resolve the server key, checkpoint closure and (if present) the co-signer key. */
|
|
21975
21850
|
static async connect(opts) {
|
|
21976
21851
|
const info = await opts.arkade.getInfo();
|
|
21977
|
-
const serverKey = hex.decode(info.signerPubkey)
|
|
21852
|
+
const serverKey = toXOnly(hex.decode(info.signerPubkey), "ark signer key");
|
|
21978
21853
|
const checkpoint = CSVMultisigTapscript.decode(hex.decode(info.checkpointTapscript));
|
|
21979
21854
|
const network = opts.network ?? DEFAULT_NETWORK;
|
|
21980
21855
|
let emulatorKey;
|
|
@@ -21983,8 +21858,7 @@ var Arkade = class _Arkade {
|
|
|
21983
21858
|
}
|
|
21984
21859
|
let userKey;
|
|
21985
21860
|
if (opts.identity) {
|
|
21986
|
-
|
|
21987
|
-
userKey = pub.length === 33 ? pub.slice(1) : pub;
|
|
21861
|
+
userKey = toXOnly(await opts.identity.xOnlyPublicKey(), "identity key");
|
|
21988
21862
|
}
|
|
21989
21863
|
return new _Arkade({
|
|
21990
21864
|
arkProvider: opts.arkade,
|
|
@@ -22759,6 +22633,6 @@ function createDefaultPaymentRouter(wallet) {
|
|
|
22759
22633
|
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
22760
22634
|
*/
|
|
22761
22635
|
|
|
22762
|
-
export { ARKADE_MAGIC, ARKADE_SALTED_PREIMAGE_TAG, ARKADE_SWAP_PREIMAGE_TAG, ActivityRegistry, AmbiguousRouteError, ArkNote, ArkadeCash, ArkadeCashCreateError, AssetManager, BIP21, BIP21Error, BIP322, Batch, ChainedTxType, ContractManager, ContractRepositoryImpl, ContractWatcher, DB_VERSION, DEFAULT_MESSAGE_TIMEOUTS, DEFAULT_MIN_BATCH_EXPIRY_SECONDS, DEFAULT_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorIdentity, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, ForeignDescriptorError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, MAX_USED_SIGNING_DESCRIPTORS_LOOK_AHEAD, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MUTINYNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, PaymentRouter, REGTEST_MIN_BATCH_EXPIRY_SECONDS, REGTEST_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, RestEmulatorProvider, SIGNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, UnannotatableInputError, UnilateralExit, UnknownPacket, Unroll, VtxoManager, Wallet2 as Wallet, WalletCannotSignError, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, adoptContractDescriptor, arkRail, arkTarget, arkade_exports, assertFinalCommitmentMatchesValidated, assertIntentIdUnique, assertSendableAmount, assertSubmittedArkTxid, assertValidBatchExpiry, assertValidServerUnrollScript, assetMintResolver, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, buildPreimageMessage, buildSaltedPreimageMessage, claimWithPreimageIdentity, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, collabExitResolver, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, contractPreimage, contractSigner, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, decodeArkContract, defaultBatchExpiryPolicy, defaultCheckpointExitDelayPolicy, deserializeAssets, deserializeExitPackage, deserializeUtxo, deserializeVtxo, encodeArkContract, extendVirtualCoinForContract, gateExclusion, gatedContracts, getMigrationStatus, getRandomId, hasBoardingTxExpired, hasCandidates, intentMatchesFilter, intentPageBounds, invoiceTarget, isArkContract, isBatchSignable, isBtcAddress, isContractGenericallySpendable, isCooperativelyMigratable, isDeterministicSigner, isDiscoverable, isHDAllocationCapable, isHDDeterministicSignCapable, isHDWalletCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isPerArtifactDescriptor, isSigningIdentity, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, isVtxoForScript, isWatchedContract, logExcludedVtxos, makeHandle, matchServerCheckpoints, mergeChainedTxType, migrateWalletRepository, onchainRail, openDatabase, outpointExclusion, outpointReasons, provisionClaimSecret, provisionRefundKey, requiresMigration, resolveBatchExpiryPolicy, resolveCheckpointExitDelayPolicy, resolveDescriptorSigner, resolveSendAmount, rollbackMigration, saveVtxosForContract, scriptFromArkAddress, selectCoinsWithAsset, selectVirtualCoins, serializeAssets, serializeExitPackage, serializeUtxo, serializeVtxo, setupServiceWorker, signAndSubmitOffchainTx, signerSetFromInfo, signingDescriptorIndex, strictSigningDescriptorIndex, toXOnlySignerHex, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, warnAndFilterVtxosForScript };
|
|
22763
|
-
//# sourceMappingURL=chunk-
|
|
22764
|
-
//# sourceMappingURL=chunk-
|
|
22636
|
+
export { ARKADE_MAGIC, ARKADE_SALTED_PREIMAGE_TAG, ARKADE_SWAP_PREIMAGE_TAG, ActivityRegistry, AmbiguousRouteError, ArkNote, ArkadeCash, ArkadeCashCreateError, AssetManager, BIP21, BIP21Error, BIP322, BLOCKED_UPGRADE_TIMEOUT_MS, Batch, ChainedTxType, ConnectionDisposedError, ContractManager, ContractRepositoryImpl, ContractWatcher, DB_VERSION, DEFAULT_MESSAGE_TIMEOUTS, DEFAULT_MIN_BATCH_EXPIRY_SECONDS, DEFAULT_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, DatabaseUpgradeBlockedError, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorIdentity, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, ForeignDescriptorError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, MAX_USED_SIGNING_DESCRIPTORS_LOOK_AHEAD, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MUTINYNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, PaymentRouter, REGTEST_MIN_BATCH_EXPIRY_SECONDS, REGTEST_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, RestEmulatorProvider, SIGNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, UnannotatableInputError, UnilateralExit, UnknownPacket, Unroll, VtxoManager, Wallet2 as Wallet, WalletCannotSignError, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, adoptContractDescriptor, arkRail, arkTarget, arkade_exports, assertFinalCommitmentMatchesValidated, assertIntentIdUnique, assertSendableAmount, assertSubmittedArkTxid, assertValidBatchExpiry, assertValidServerUnrollScript, assetMintResolver, awaitTransaction, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, buildPreimageMessage, buildSaltedPreimageMessage, claimWithPreimageIdentity, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, collabExitResolver, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, contractPreimage, contractSigner, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, createManagedConnection, decodeArkContract, defaultBatchExpiryPolicy, defaultCheckpointExitDelayPolicy, deleteByIndex, deserializeAssets, deserializeExitPackage, deserializeUtxo, deserializeVtxo, encodeArkContract, extendVirtualCoinForContract, gateExclusion, gatedContracts, getAllByIndexValues, getMigrationStatus, getRandomId, hasBoardingTxExpired, hasCandidates, intentMatchesFilter, intentPageBounds, invoiceTarget, isArkContract, isBatchSignable, isBtcAddress, isContractGenericallySpendable, isCooperativelyMigratable, isDeterministicSigner, isDiscoverable, isHDAllocationCapable, isHDDeterministicSignCapable, isHDWalletCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isPerArtifactDescriptor, isSigningIdentity, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, isVtxoForScript, isWatchedContract, logExcludedVtxos, makeHandle, matchServerCheckpoints, mergeChainedTxType, migrateWalletRepository, onchainRail, openDatabase, outpointExclusion, outpointReasons, promisifyRequest, provisionClaimSecret, provisionRefundKey, requiresMigration, resolveBatchExpiryPolicy, resolveCheckpointExitDelayPolicy, resolveDescriptorSigner, resolveSendAmount, rollbackMigration, saveVtxosForContract, scriptFromArkAddress, selectCoinsWithAsset, selectVirtualCoins, serializeAssets, serializeExitPackage, serializeUtxo, serializeVtxo, setupServiceWorker, signAndSubmitOffchainTx, signerSetFromInfo, signingDescriptorIndex, strictSigningDescriptorIndex, toXOnlySignerHex, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, warnAndFilterVtxosForScript };
|
|
22637
|
+
//# sourceMappingURL=chunk-DSC3G6QZ.js.map
|
|
22638
|
+
//# sourceMappingURL=chunk-DSC3G6QZ.js.map
|