@arkade-os/sdk 0.4.40 → 0.4.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/dist/adapters/expo.cjs +5 -5
- package/dist/adapters/expo.d.cts +2 -2
- package/dist/adapters/expo.d.ts +2 -2
- package/dist/adapters/expo.js +3 -3
- package/dist/adapters/indexedDB.cjs +5 -5
- package/dist/adapters/indexedDB.js +4 -4
- package/dist/{ark-BaZ6da8C.d.cts → ark-CKDWpuGL.d.cts} +95 -1
- package/dist/{ark-BaZ6da8C.d.ts → ark-CKDWpuGL.d.ts} +95 -1
- package/dist/{asyncStorageTaskQueue-CvV50MjV.d.ts → asyncStorageTaskQueue-BB2MffwG.d.ts} +2 -2
- package/dist/{asyncStorageTaskQueue-trKcQM7q.d.cts → asyncStorageTaskQueue-BpN8RRHR.d.cts} +2 -2
- package/dist/{chunk-SWJBV4UB.js → chunk-2V3BU2X6.js} +4 -4
- package/dist/{chunk-SWJBV4UB.js.map → chunk-2V3BU2X6.js.map} +1 -1
- package/dist/{chunk-GUTKJMSF.cjs → chunk-32YKLQPS.cjs} +29 -29
- package/dist/{chunk-GUTKJMSF.cjs.map → chunk-32YKLQPS.cjs.map} +1 -1
- package/dist/{chunk-GF6NPAOJ.js → chunk-5X5YMZHB.js} +4 -4
- package/dist/{chunk-GF6NPAOJ.js.map → chunk-5X5YMZHB.js.map} +1 -1
- package/dist/{chunk-OUVTG72A.js → chunk-BE5MUB7T.js} +5 -3
- package/dist/chunk-BE5MUB7T.js.map +1 -0
- package/dist/{chunk-I4Z6KKUH.cjs → chunk-ED7JDFX4.cjs} +366 -209
- package/dist/chunk-ED7JDFX4.cjs.map +1 -0
- package/dist/{chunk-5TSUGRHP.js → chunk-FLPPSRYH.js} +3 -3
- package/dist/{chunk-5TSUGRHP.js.map → chunk-FLPPSRYH.js.map} +1 -1
- package/dist/{chunk-TSG74BHI.cjs → chunk-HHPUCCB3.cjs} +7 -7
- package/dist/{chunk-TSG74BHI.cjs.map → chunk-HHPUCCB3.cjs.map} +1 -1
- package/dist/{chunk-CMPJR3HS.cjs → chunk-HXDZ2QTW.cjs} +5 -3
- package/dist/chunk-HXDZ2QTW.cjs.map +1 -0
- package/dist/{chunk-GWISMFO5.cjs → chunk-T2ACJD22.cjs} +14 -14
- package/dist/{chunk-GWISMFO5.cjs.map → chunk-T2ACJD22.cjs.map} +1 -1
- package/dist/{chunk-I2O4Q2EL.js → chunk-V3FCNVJE.js} +185 -31
- package/dist/chunk-V3FCNVJE.js.map +1 -0
- package/dist/{chunk-6EZY43WE.cjs → chunk-YEF5FL6E.cjs} +9 -9
- package/dist/{chunk-6EZY43WE.cjs.map → chunk-YEF5FL6E.cjs.map} +1 -1
- package/dist/{chunk-CUSABEUQ.js → chunk-YNEDJTX2.js} +3 -3
- package/dist/{chunk-CUSABEUQ.js.map → chunk-YNEDJTX2.js.map} +1 -1
- package/dist/contracts/handlers/index.cjs +7 -7
- package/dist/contracts/handlers/index.d.cts +3 -3
- package/dist/contracts/handlers/index.d.ts +3 -3
- package/dist/contracts/handlers/index.js +2 -2
- package/dist/{delegate-ClaZWxlA.d.ts → delegate-DllAQ3Eu.d.ts} +1 -1
- package/dist/{delegate-Bt5H1gbW.d.cts → delegate-yjhcR9n4.d.cts} +1 -1
- package/dist/{index-D6kIRfBy.d.cts → index-D1te-ZR6.d.cts} +2 -2
- package/dist/{index-ByYBDr1g.d.ts → index-DVdCGyyH.d.ts} +2 -2
- package/dist/index.cjs +157 -141
- package/dist/index.d.cts +11 -8
- package/dist/index.d.ts +11 -8
- package/dist/index.js +4 -4
- package/dist/repositories/realm/index.cjs +13 -13
- package/dist/repositories/realm/index.d.cts +1 -1
- package/dist/repositories/realm/index.d.ts +1 -1
- package/dist/repositories/realm/index.js +4 -4
- package/dist/repositories/sqlite/index.cjs +13 -13
- package/dist/repositories/sqlite/index.d.cts +1 -1
- package/dist/repositories/sqlite/index.d.ts +1 -1
- package/dist/repositories/sqlite/index.js +4 -4
- package/dist/{taskRunner-Bwss4MUW.d.ts → taskRunner-BdiRy4iI.d.ts} +2 -2
- package/dist/{taskRunner-D7SuOTOa.d.cts → taskRunner-CuTk8RYg.d.cts} +2 -2
- package/dist/wallet/expo/background.cjs +14 -14
- package/dist/wallet/expo/background.d.cts +3 -3
- package/dist/wallet/expo/background.d.ts +3 -3
- package/dist/wallet/expo/background.js +6 -6
- package/dist/wallet/expo/index.cjs +44 -14
- package/dist/wallet/expo/index.cjs.map +1 -1
- package/dist/wallet/expo/index.d.cts +14 -4
- package/dist/wallet/expo/index.d.ts +14 -4
- package/dist/wallet/expo/index.js +36 -6
- package/dist/wallet/expo/index.js.map +1 -1
- package/dist/{wallet-l-2dKXVh.d.ts → wallet-CrIVUQMb.d.ts} +15 -2
- package/dist/{wallet-V5C4Nlhz.d.cts → wallet-CyPOQ0oM.d.cts} +15 -2
- 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-CMPJR3HS.cjs.map +0 -1
- package/dist/chunk-I2O4Q2EL.js.map +0 -1
- package/dist/chunk-I4Z6KKUH.cjs.map +0 -1
- package/dist/chunk-OUVTG72A.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { craftToSpendTx, Transaction, OP_RETURN_EMPTY_PKSCRIPT, baseFetch, Intent, getArkPsbtFields, CosignerPublicKey, setArkPsbtField, VtxoTaprootTree, maybeArkError, AssetRef, AssetId, AssetOutput, AssetGroup, AssetInput, Packet, Metadata, isEventSourceError, RestArkProvider, RestIndexerProvider, ArkError, BufferReader } from './chunk-
|
|
2
|
-
import { isMainnetDescriptor, descriptorIsOurs, contractHandlers, DEFAULT_PAGE_SIZE, DelegateVtxo, WALLET_RECEIVE_SOURCE, deriveDescriptorLeafPubKey, DefaultVtxo, BoardingContractHandler } from './chunk-
|
|
3
|
-
import { VtxoScript, timelockToSequence, DEFAULT_NETWORK, DEFAULT_NETWORK_NAME, decodeTapscript, scriptFromTapLeafScript, CLTVMultisigTapscript, ArkAddress, CSVMultisigTapscript, getSequence, getNetwork, MultisigTapscript, networks as networks$1, DEFAULT_ARKADE_SERVER_URL } from './chunk-
|
|
1
|
+
import { craftToSpendTx, Transaction, OP_RETURN_EMPTY_PKSCRIPT, baseFetch, Intent, getArkPsbtFields, CosignerPublicKey, setArkPsbtField, VtxoTaprootTree, maybeArkError, AssetRef, AssetId, AssetOutput, AssetGroup, AssetInput, Packet, Metadata, isEventSourceError, RestArkProvider, RestIndexerProvider, ArkError, BufferReader } from './chunk-5X5YMZHB.js';
|
|
2
|
+
import { isMainnetDescriptor, descriptorIsOurs, contractHandlers, DEFAULT_PAGE_SIZE, DelegateVtxo, WALLET_RECEIVE_SOURCE, deriveDescriptorLeafPubKey, DefaultVtxo, BoardingContractHandler } from './chunk-YNEDJTX2.js';
|
|
3
|
+
import { VtxoScript, timelockToSequence, DEFAULT_NETWORK, DEFAULT_NETWORK_NAME, decodeTapscript, scriptFromTapLeafScript, CLTVMultisigTapscript, ArkAddress, CSVMultisigTapscript, getSequence, getNetwork, MultisigTapscript, networks as networks$1, DEFAULT_ARKADE_SERVER_URL } from './chunk-BE5MUB7T.js';
|
|
4
4
|
import { sha256, hash160, sha256x2, concatBytes, randomPrivateKeyBytes, pubECDSA, pubSchnorr, equalBytes as equalBytes$1 } from '@scure/btc-signer/utils.js';
|
|
5
5
|
import { SigHash, Script, p2tr, RawWitness, Address, OutScript, p2wpkh, TaprootControlBlock, DEFAULT_SEQUENCE, Transaction as Transaction$2 } from '@scure/btc-signer';
|
|
6
6
|
import { hex, base58, base64 } from '@scure/base';
|
|
@@ -1678,6 +1678,122 @@ function validateAssetGroupOutput(packet, outputIndex, assetId, expectedAmount)
|
|
|
1678
1678
|
}
|
|
1679
1679
|
}
|
|
1680
1680
|
|
|
1681
|
+
// src/wallet/activity.ts
|
|
1682
|
+
async function buildActivities(txs, resolvers) {
|
|
1683
|
+
const preparedResolvers = (await Promise.all(
|
|
1684
|
+
resolvers.map(async (r) => {
|
|
1685
|
+
try {
|
|
1686
|
+
await r.prepare?.();
|
|
1687
|
+
return r;
|
|
1688
|
+
} catch {
|
|
1689
|
+
return void 0;
|
|
1690
|
+
}
|
|
1691
|
+
})
|
|
1692
|
+
)).filter((r) => r !== void 0);
|
|
1693
|
+
const keyOf = (tx) => tx.key.arkTxid || tx.key.commitmentTxid || tx.key.boardingTxid;
|
|
1694
|
+
const merge = (a, b) => ({
|
|
1695
|
+
groupId: a.groupId,
|
|
1696
|
+
label: a.label ?? b.label,
|
|
1697
|
+
kind: a.kind ?? b.kind,
|
|
1698
|
+
metadata: { ...b.metadata, ...a.metadata },
|
|
1699
|
+
amount: a.amount ?? b.amount
|
|
1700
|
+
});
|
|
1701
|
+
const isSent = (tx) => tx.type === "SENT" /* TxSent */;
|
|
1702
|
+
const signedAmount = (tx, amount = tx.amount) => {
|
|
1703
|
+
const magnitude = Math.abs(amount);
|
|
1704
|
+
return isSent(tx) ? -magnitude : magnitude;
|
|
1705
|
+
};
|
|
1706
|
+
const buckets = /* @__PURE__ */ new Map();
|
|
1707
|
+
for (const tx of txs) {
|
|
1708
|
+
const perGroup = /* @__PURE__ */ new Map();
|
|
1709
|
+
for (const r of preparedResolvers) {
|
|
1710
|
+
let ms;
|
|
1711
|
+
try {
|
|
1712
|
+
ms = r.resolve(tx);
|
|
1713
|
+
} catch {
|
|
1714
|
+
ms = void 0;
|
|
1715
|
+
}
|
|
1716
|
+
for (const m of ms ?? []) {
|
|
1717
|
+
if (!m.groupId) continue;
|
|
1718
|
+
if (m.amount !== void 0 && !Number.isFinite(m.amount)) continue;
|
|
1719
|
+
const existing = perGroup.get(m.groupId);
|
|
1720
|
+
perGroup.set(m.groupId, existing ? merge(existing, m) : { ...m });
|
|
1721
|
+
}
|
|
1722
|
+
}
|
|
1723
|
+
if (perGroup.size === 0) {
|
|
1724
|
+
const id = keyOf(tx);
|
|
1725
|
+
const b = buckets.get(id) ?? { members: [] };
|
|
1726
|
+
b.members.push({ tx, amount: signedAmount(tx) });
|
|
1727
|
+
buckets.set(id, b);
|
|
1728
|
+
continue;
|
|
1729
|
+
}
|
|
1730
|
+
for (const m of perGroup.values()) {
|
|
1731
|
+
const b = buckets.get(m.groupId) ?? { members: [] };
|
|
1732
|
+
b.intent = {
|
|
1733
|
+
label: b.intent?.label ?? m.label,
|
|
1734
|
+
kind: b.intent?.kind ?? m.kind,
|
|
1735
|
+
metadata: { ...m.metadata, ...b.intent?.metadata }
|
|
1736
|
+
};
|
|
1737
|
+
b.members.push({ tx, amount: signedAmount(tx, m.amount ?? tx.amount) });
|
|
1738
|
+
buckets.set(m.groupId, b);
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
const netAmount = (members) => {
|
|
1742
|
+
const sentKeys = new Set(members.filter((x) => isSent(x.tx)).map((x) => keyOf(x.tx)));
|
|
1743
|
+
return members.reduce((s, x) => {
|
|
1744
|
+
if (!isSent(x.tx) && sentKeys.has(keyOf(x.tx))) return s;
|
|
1745
|
+
return s + x.amount;
|
|
1746
|
+
}, 0);
|
|
1747
|
+
};
|
|
1748
|
+
const latest = (a) => a.txs[a.txs.length - 1].createdAt;
|
|
1749
|
+
return [...buckets.entries()].map(([id, b]) => {
|
|
1750
|
+
const members = [...b.members].sort((x, y) => x.tx.createdAt - y.tx.createdAt);
|
|
1751
|
+
return {
|
|
1752
|
+
id,
|
|
1753
|
+
intent: b.intent,
|
|
1754
|
+
txs: members.map((x) => x.tx),
|
|
1755
|
+
amount: netAmount(members),
|
|
1756
|
+
createdAt: members[0].tx.createdAt,
|
|
1757
|
+
settled: members.every((x) => x.tx.settled)
|
|
1758
|
+
};
|
|
1759
|
+
}).sort((a, c) => latest(c) - latest(a));
|
|
1760
|
+
}
|
|
1761
|
+
var ActivityRegistry = class {
|
|
1762
|
+
resolvers = /* @__PURE__ */ new Map();
|
|
1763
|
+
/** Add a resolver, or override an existing one with the same id (kept in place). */
|
|
1764
|
+
use(resolver) {
|
|
1765
|
+
this.resolvers.set(resolver.id, resolver);
|
|
1766
|
+
}
|
|
1767
|
+
/** Remove a resolver (built-in or custom) by id. */
|
|
1768
|
+
remove(id) {
|
|
1769
|
+
this.resolvers.delete(id);
|
|
1770
|
+
}
|
|
1771
|
+
/** The registered resolver ids, in registration order. */
|
|
1772
|
+
list() {
|
|
1773
|
+
return [...this.resolvers.keys()];
|
|
1774
|
+
}
|
|
1775
|
+
/** All registered resolvers, in registration (priority) order. */
|
|
1776
|
+
all() {
|
|
1777
|
+
return [...this.resolvers.values()];
|
|
1778
|
+
}
|
|
1779
|
+
};
|
|
1780
|
+
function boardingResolver() {
|
|
1781
|
+
return {
|
|
1782
|
+
id: "boarding",
|
|
1783
|
+
resolve(tx) {
|
|
1784
|
+
if (!tx.key.boardingTxid) return void 0;
|
|
1785
|
+
return [
|
|
1786
|
+
{ groupId: `boarding:${tx.key.boardingTxid}`, label: "Deposit", kind: "boarding" }
|
|
1787
|
+
];
|
|
1788
|
+
}
|
|
1789
|
+
};
|
|
1790
|
+
}
|
|
1791
|
+
function createDefaultActivityRegistry() {
|
|
1792
|
+
const registry = new ActivityRegistry();
|
|
1793
|
+
registry.use(boardingResolver());
|
|
1794
|
+
return registry;
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1681
1797
|
// src/wallet/index.ts
|
|
1682
1798
|
var TxType = /* @__PURE__ */ ((TxType2) => {
|
|
1683
1799
|
TxType2["TxSent"] = "SENT";
|
|
@@ -5605,7 +5721,13 @@ async function openDatabase(dbName, dbVersion, initDatabase2) {
|
|
|
5605
5721
|
reject(request.error);
|
|
5606
5722
|
};
|
|
5607
5723
|
request.onsuccess = () => {
|
|
5608
|
-
|
|
5724
|
+
const db = request.result;
|
|
5725
|
+
db.onversionchange = () => {
|
|
5726
|
+
db.close();
|
|
5727
|
+
dbCache.delete(dbName);
|
|
5728
|
+
refCounts.delete(dbName);
|
|
5729
|
+
};
|
|
5730
|
+
resolve(db);
|
|
5609
5731
|
};
|
|
5610
5732
|
request.onupgradeneeded = (event) => {
|
|
5611
5733
|
const db = request.result;
|
|
@@ -6994,7 +7116,7 @@ var ContractWatcher = class {
|
|
|
6994
7116
|
this.subscriptionId
|
|
6995
7117
|
);
|
|
6996
7118
|
} catch (error) {
|
|
6997
|
-
const isStale = error instanceof Error && /subscription\
|
|
7119
|
+
const isStale = error instanceof Error && /subscription\b.*\bnot\s+found/i.test(error.message);
|
|
6998
7120
|
if (this.subscriptionId && isStale) {
|
|
6999
7121
|
this.subscriptionId = void 0;
|
|
7000
7122
|
this.subscriptionId = await this.config.indexerProvider.subscribeForScripts(scriptsToWatch);
|
|
@@ -8655,6 +8777,8 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
8655
8777
|
// already on their way out. The set is in-memory only: a process crash
|
|
8656
8778
|
// clears it, and a stale entry only hides a VTXO (never spends one).
|
|
8657
8779
|
_pendingSpendOutpoints = /* @__PURE__ */ new Set();
|
|
8780
|
+
/** Activity resolvers consumed by {@link getActivityHistory}. */
|
|
8781
|
+
activity = createDefaultActivityRegistry();
|
|
8658
8782
|
get assetManager() {
|
|
8659
8783
|
return this._assetManager;
|
|
8660
8784
|
}
|
|
@@ -8860,7 +8984,7 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
8860
8984
|
type: info.boardingExitDelay < 512n ? "blocks" : "seconds"
|
|
8861
8985
|
};
|
|
8862
8986
|
const serverPubKey = hex.decode(info.signerPubkey).slice(1);
|
|
8863
|
-
const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => hex.decode(info2.pubkey).slice(1)) : config.delegatorProvider ? await config.delegatorProvider.getDelegateInfo().then((info2) => hex.decode(info2.pubkey).slice(1)) : void 0;
|
|
8987
|
+
const delegatePubKey = config.delegateProvider ? await config.delegateProvider.getDelegateInfo().then((info2) => hex.decode(info2.pubkey).slice(1)).catch(() => void 0) : config.delegatorProvider ? await config.delegatorProvider.getDelegateInfo().then((info2) => hex.decode(info2.pubkey).slice(1)).catch(() => void 0) : void 0;
|
|
8864
8988
|
const offchainOptions = {
|
|
8865
8989
|
pubKey,
|
|
8866
8990
|
serverPubKey,
|
|
@@ -9051,6 +9175,13 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
9051
9175
|
const getTxCreatedAt = (txid) => this.indexerProvider.getVtxos({ outpoints: [{ txid, vout: 0 }] }).then((res) => res.vtxos[0]?.createdAt.getTime());
|
|
9052
9176
|
return buildTransactionHistory(allVtxos, boardingTxs, commitmentsToIgnore, getTxCreatedAt);
|
|
9053
9177
|
}
|
|
9178
|
+
/**
|
|
9179
|
+
* Wallet history grouped by registered activity resolvers. With no resolver match,
|
|
9180
|
+
* rows bucket by transaction key so send/change pairs stay together.
|
|
9181
|
+
*/
|
|
9182
|
+
async getActivityHistory() {
|
|
9183
|
+
return buildActivities(await this.getTransactionHistory(), this.activity.all());
|
|
9184
|
+
}
|
|
9054
9185
|
/**
|
|
9055
9186
|
* Clear the global VTXO sync cursor, forcing a full re-bootstrap on next sync.
|
|
9056
9187
|
* Useful for recovery after indexer reprocessing or debugging.
|
|
@@ -9058,6 +9189,17 @@ var ReadonlyWallet = class _ReadonlyWallet {
|
|
|
9058
9189
|
async clearSyncCursor() {
|
|
9059
9190
|
await clearSyncCursor(this.walletRepository);
|
|
9060
9191
|
}
|
|
9192
|
+
/**
|
|
9193
|
+
* Wipe all locally persisted wallet data (VTXOs, UTXOs, history, sync
|
|
9194
|
+
* cursor, contracts). Create a fresh wallet instance afterward.
|
|
9195
|
+
*/
|
|
9196
|
+
async clear() {
|
|
9197
|
+
try {
|
|
9198
|
+
await this.dispose();
|
|
9199
|
+
} finally {
|
|
9200
|
+
await Promise.all([this.walletRepository.clear(), this.contractRepository.clear()]);
|
|
9201
|
+
}
|
|
9202
|
+
}
|
|
9061
9203
|
/**
|
|
9062
9204
|
* The on-chain (P2TR) addresses of every boarding tapscript this wallet
|
|
9063
9205
|
* uses — the current address plus any historical rotated boarding
|
|
@@ -10536,6 +10678,9 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10536
10678
|
settlementPsbt = await this._signerRouter.sign(settlementPsbt, [
|
|
10537
10679
|
{ index: i, lookupScript: script }
|
|
10538
10680
|
]);
|
|
10681
|
+
if (!settlementPsbt.getInput(i).tapScriptSig?.length) {
|
|
10682
|
+
throw new Error(await this.unsignableBoardingInputError(input, script));
|
|
10683
|
+
}
|
|
10539
10684
|
hasBoardingUtxos = true;
|
|
10540
10685
|
break;
|
|
10541
10686
|
}
|
|
@@ -10600,6 +10745,24 @@ var Wallet2 = class _Wallet extends ReadonlyWallet {
|
|
|
10600
10745
|
);
|
|
10601
10746
|
}
|
|
10602
10747
|
}
|
|
10748
|
+
// Best-effort: every enrichment is guarded so a secondary failure can't
|
|
10749
|
+
// mask the original signing error.
|
|
10750
|
+
async unsignableBoardingInputError(input, script) {
|
|
10751
|
+
const scriptHex = hex.encode(script);
|
|
10752
|
+
let unresolvedAddress = "<undecodable>";
|
|
10753
|
+
try {
|
|
10754
|
+
unresolvedAddress = Address(this.network).encode(OutScript.decode(script));
|
|
10755
|
+
} catch {
|
|
10756
|
+
}
|
|
10757
|
+
let recognized = "<unavailable>";
|
|
10758
|
+
try {
|
|
10759
|
+
const current = await this.getBoardingAddress();
|
|
10760
|
+
const all = await this.getBoardingAddresses();
|
|
10761
|
+
recognized = `current=${current}; all=[${all.join(", ")}]`;
|
|
10762
|
+
} catch {
|
|
10763
|
+
}
|
|
10764
|
+
return `failed to sign boarding input ${input.txid}:${input.vout}: signer did not recognize script ${scriptHex} (${unresolvedAddress}); would have reached arkd unsigned and been rejected as "not a wallet script". Recognized boarding addresses: ${recognized}. Likely a rotated boarding address with a missing contract row.`;
|
|
10765
|
+
}
|
|
10603
10766
|
/**
|
|
10604
10767
|
* Create a batch event handler for settlement flows.
|
|
10605
10768
|
*
|
|
@@ -13188,26 +13351,19 @@ var WalletMessageHandler = class {
|
|
|
13188
13351
|
});
|
|
13189
13352
|
return filteredVtxos;
|
|
13190
13353
|
}
|
|
13354
|
+
/** Tear down handler subscriptions, then delegate the full wipe to the wallet. */
|
|
13191
13355
|
async clear() {
|
|
13192
|
-
|
|
13193
|
-
if (
|
|
13356
|
+
const wallet = this.wallet ?? this.readonlyWallet;
|
|
13357
|
+
if (!wallet) return;
|
|
13358
|
+
if (this.incomingFundsSubscription) {
|
|
13359
|
+
this.incomingFundsSubscription();
|
|
13360
|
+
this.incomingFundsSubscription = void 0;
|
|
13361
|
+
}
|
|
13194
13362
|
if (this.contractEventsSubscription) {
|
|
13195
13363
|
this.contractEventsSubscription();
|
|
13196
13364
|
this.contractEventsSubscription = void 0;
|
|
13197
13365
|
}
|
|
13198
|
-
|
|
13199
|
-
if (this.wallet) {
|
|
13200
|
-
await this.wallet.dispose();
|
|
13201
|
-
} else {
|
|
13202
|
-
await this.readonlyWallet.dispose();
|
|
13203
|
-
}
|
|
13204
|
-
} catch (_) {
|
|
13205
|
-
}
|
|
13206
|
-
try {
|
|
13207
|
-
await this.walletRepository?.clear();
|
|
13208
|
-
} catch (_) {
|
|
13209
|
-
console.warn("Failed to clear vtxos from wallet repository");
|
|
13210
|
-
}
|
|
13366
|
+
await wallet.clear();
|
|
13211
13367
|
this.wallet = void 0;
|
|
13212
13368
|
this.readonlyWallet = void 0;
|
|
13213
13369
|
this.arkProvider = void 0;
|
|
@@ -13498,6 +13654,7 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13498
13654
|
walletRepository;
|
|
13499
13655
|
contractRepository;
|
|
13500
13656
|
identity;
|
|
13657
|
+
activity = createDefaultActivityRegistry();
|
|
13501
13658
|
_readonlyAssetManager;
|
|
13502
13659
|
initConfig = null;
|
|
13503
13660
|
initWalletPayload = null;
|
|
@@ -13856,19 +14013,13 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13856
14013
|
);
|
|
13857
14014
|
}
|
|
13858
14015
|
}
|
|
13859
|
-
/**
|
|
14016
|
+
/** This tells the service worker to wipe all locally persisted wallet data. */
|
|
13860
14017
|
async clear() {
|
|
13861
14018
|
const message = {
|
|
13862
14019
|
id: getRandomId(),
|
|
13863
14020
|
tag: this.messageTag,
|
|
13864
14021
|
type: "CLEAR"
|
|
13865
14022
|
};
|
|
13866
|
-
try {
|
|
13867
|
-
const address = await this.getAddress();
|
|
13868
|
-
await this.walletRepository.deleteVtxos(address);
|
|
13869
|
-
} catch (_) {
|
|
13870
|
-
console.warn("Failed to clear vtxos from wallet repository");
|
|
13871
|
-
}
|
|
13872
14023
|
await this.sendMessage(message);
|
|
13873
14024
|
}
|
|
13874
14025
|
async getAddress() {
|
|
@@ -13941,6 +14092,9 @@ var ServiceWorkerReadonlyWallet = class _ServiceWorkerReadonlyWallet {
|
|
|
13941
14092
|
throw new Error(`Failed to get status: ${error}`);
|
|
13942
14093
|
}
|
|
13943
14094
|
}
|
|
14095
|
+
async getActivityHistory() {
|
|
14096
|
+
return buildActivities(await this.getTransactionHistory(), this.activity.all());
|
|
14097
|
+
}
|
|
13944
14098
|
async getTransactionHistory() {
|
|
13945
14099
|
const message = {
|
|
13946
14100
|
id: getRandomId(),
|
|
@@ -15944,6 +16098,6 @@ function isArkContract(str) {
|
|
|
15944
16098
|
return str.startsWith(ARKCONTRACT_PREFIX + "=");
|
|
15945
16099
|
}
|
|
15946
16100
|
|
|
15947
|
-
export { ArkNote, AssetManager, BIP322, Batch, ContractManager, ContractRepositoryImpl, ContractWatcher, DB_VERSION, DEFAULT_MESSAGE_TIMEOUTS, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EsploraProvider, Estimator, HDDescriptorProvider, InMemoryContractRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBWalletRepository, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, Unroll, VtxoManager, Wallet2 as Wallet, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, buildForfeitTx, buildOffchainTx, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, decodeArkContract, deserializeAssets, deserializeUtxo, deserializeVtxo, encodeArkContract, extendVirtualCoinForContract, getMigrationStatus, getRandomId, hasBoardingTxExpired, isArkContract, isBatchSignable, isCooperativelyMigratable, isDiscoverable, isExpired, isRecoverable, isSpendable, isSubdust, isValidArkAddress, isVtxoExpiringSoon, isVtxoForScript, migrateWalletRepository, openDatabase, requiresMigration, rollbackMigration, saveVtxosForContract, scriptFromArkAddress, serializeAssets, serializeUtxo, serializeVtxo, setupServiceWorker, signerSetFromInfo, toXOnlySignerHex, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, warnAndFilterVtxosForScript };
|
|
15948
|
-
//# sourceMappingURL=chunk-
|
|
15949
|
-
//# sourceMappingURL=chunk-
|
|
16101
|
+
export { ActivityRegistry, ArkNote, AssetManager, BIP322, Batch, ContractManager, ContractRepositoryImpl, ContractWatcher, DB_VERSION, DEFAULT_MESSAGE_TIMEOUTS, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EsploraProvider, Estimator, HDDescriptorProvider, InMemoryContractRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBWalletRepository, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, Unroll, VtxoManager, Wallet2 as Wallet, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, boardingResolver, buildForfeitTx, buildOffchainTx, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createDefaultActivityRegistry, decodeArkContract, deserializeAssets, deserializeUtxo, deserializeVtxo, encodeArkContract, extendVirtualCoinForContract, getMigrationStatus, getRandomId, hasBoardingTxExpired, isArkContract, isBatchSignable, isCooperativelyMigratable, isDiscoverable, isExpired, isRecoverable, isSpendable, isSubdust, isValidArkAddress, isVtxoExpiringSoon, isVtxoForScript, migrateWalletRepository, openDatabase, requiresMigration, rollbackMigration, saveVtxosForContract, scriptFromArkAddress, serializeAssets, serializeUtxo, serializeVtxo, setupServiceWorker, signerSetFromInfo, toXOnlySignerHex, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, warnAndFilterVtxosForScript };
|
|
16102
|
+
//# sourceMappingURL=chunk-V3FCNVJE.js.map
|
|
16103
|
+
//# sourceMappingURL=chunk-V3FCNVJE.js.map
|