@lendasat/lendaswap-sdk-pure 0.2.42 → 0.2.44
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/_esm-7KJOBTZC.js +3660 -0
- package/dist/_esm-7KJOBTZC.js.map +1 -0
- package/dist/_esm-UGRDSVEV.cjs +3662 -0
- package/dist/_esm-UGRDSVEV.cjs.map +1 -0
- package/dist/api/client.d.ts +0 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/base-2KYNAFR3.cjs +109 -0
- package/dist/base-2KYNAFR3.cjs.map +1 -0
- package/dist/base-B6OGU65B.js +7 -0
- package/dist/base-B6OGU65B.js.map +1 -0
- package/dist/ccip-MPMAZOUF.js +5 -0
- package/dist/ccip-MPMAZOUF.js.map +1 -0
- package/dist/ccip-PD37NJHA.cjs +26 -0
- package/dist/ccip-PD37NJHA.cjs.map +1 -0
- package/dist/cctp-bridge/index.cjs +67 -0
- package/dist/cctp-bridge/index.cjs.map +1 -0
- package/dist/cctp-bridge/index.js +51 -15
- package/dist/cctp-bridge/index.js.map +1 -1
- package/dist/cctp-inbound/client.d.ts +21 -19
- package/dist/cctp-inbound/client.d.ts.map +1 -1
- package/dist/cctp-inbound/smartAccount.d.ts +21 -19
- package/dist/cctp-inbound/smartAccount.d.ts.map +1 -1
- package/dist/chunk-3JWT4OW2.js +369 -0
- package/dist/chunk-3JWT4OW2.js.map +1 -0
- package/dist/chunk-A4GKKURK.cjs +430 -0
- package/dist/chunk-A4GKKURK.cjs.map +1 -0
- package/dist/chunk-BZU3R5DJ.cjs +554 -0
- package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
- package/dist/chunk-C4YXYD24.js +418 -0
- package/dist/chunk-C4YXYD24.js.map +1 -0
- package/dist/chunk-CZNQYFDP.js +6141 -0
- package/dist/chunk-CZNQYFDP.js.map +1 -0
- package/dist/chunk-DKTFDGIU.js +2207 -0
- package/dist/chunk-DKTFDGIU.js.map +1 -0
- package/dist/chunk-DNSJDKTP.cjs +96 -0
- package/dist/chunk-DNSJDKTP.cjs.map +1 -0
- package/dist/chunk-EPKFLKTM.js +47093 -0
- package/dist/chunk-EPKFLKTM.js.map +1 -0
- package/dist/chunk-JBVKWKD4.cjs +50 -0
- package/dist/chunk-JBVKWKD4.cjs.map +1 -0
- package/dist/chunk-NPFJAXKV.js +551 -0
- package/dist/chunk-NPFJAXKV.js.map +1 -0
- package/dist/chunk-PKDJZJMV.cjs +2214 -0
- package/dist/chunk-PKDJZJMV.cjs.map +1 -0
- package/dist/chunk-PLDDJCW6.js +43 -0
- package/dist/chunk-PLDDJCW6.js.map +1 -0
- package/dist/chunk-RIOT5VOJ.cjs +47240 -0
- package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
- package/dist/chunk-WVZSHRV7.cjs +431 -0
- package/dist/chunk-WVZSHRV7.cjs.map +1 -0
- package/dist/chunk-YEZOPVAH.js +86 -0
- package/dist/chunk-YEZOPVAH.js.map +1 -0
- package/dist/chunk-YLWPBHMV.cjs +6311 -0
- package/dist/chunk-YLWPBHMV.cjs.map +1 -0
- package/dist/client.d.ts +68 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/compose-quote.d.ts +77 -0
- package/dist/compose-quote.d.ts.map +1 -0
- package/dist/delegate.cjs +23 -0
- package/dist/delegate.cjs.map +1 -0
- package/dist/delegate.js +5 -269
- package/dist/delegate.js.map +1 -1
- package/dist/dist-NE2R4YCX.js +5 -0
- package/dist/dist-NE2R4YCX.js.map +1 -0
- package/dist/dist-VEHYC67F.cjs +550 -0
- package/dist/dist-VEHYC67F.cjs.map +1 -0
- package/dist/esplora.d.ts +14 -0
- package/dist/esplora.d.ts.map +1 -1
- package/dist/generated/api.d.ts +235 -38
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.cjs +35461 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35309 -32
- package/dist/index.js.map +1 -1
- package/dist/mine.wasm-JJEJEODX.js +9 -0
- package/dist/mine.wasm-JJEJEODX.js.map +1 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
- package/dist/node.cjs +166 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.js +157 -18
- package/dist/node.js.map +1 -1
- package/dist/secp256k1-PJCSE4N6.cjs +30 -0
- package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
- package/dist/secp256k1-VZNNVEPN.js +5 -0
- package/dist/secp256k1-VZNNVEPN.js.map +1 -0
- package/dist/tokens.d.ts +2 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/types/chain-config.d.ts +50 -0
- package/dist/types/chain-config.d.ts.map +1 -0
- package/dist/types/chain.d.ts +11 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/dex-quote.d.ts +85 -0
- package/dist/types/dex-quote.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/network-fees.d.ts +43 -0
- package/dist/types/network-fees.d.ts.map +1 -0
- package/dist/types/quote.d.ts +87 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/swap-pairs.d.ts +37 -0
- package/dist/types/swap-pairs.d.ts.map +1 -0
- package/dist/version.d.ts +2 -2
- package/dist/wallet-SCGRX3EN.js +4 -0
- package/dist/wallet-SCGRX3EN.js.map +1 -0
- package/dist/wallet-SZJDXAY7.cjs +45 -0
- package/dist/wallet-SZJDXAY7.cjs.map +1 -0
- package/package.json +23 -10
- package/dist/api/client.js +0 -13
- package/dist/api/client.js.map +0 -1
- package/dist/arkade-network.js +0 -40
- package/dist/arkade-network.js.map +0 -1
- package/dist/arkade.js +0 -61
- package/dist/arkade.js.map +0 -1
- package/dist/cctp/attestation.js +0 -149
- package/dist/cctp/attestation.js.map +0 -1
- package/dist/cctp/constants.js +0 -92
- package/dist/cctp/constants.js.map +0 -1
- package/dist/cctp/fee.js +0 -70
- package/dist/cctp/fee.js.map +0 -1
- package/dist/cctp/index.js +0 -13
- package/dist/cctp/index.js.map +0 -1
- package/dist/cctp/types.js +0 -5
- package/dist/cctp/types.js.map +0 -1
- package/dist/cctp/utils.js +0 -91
- package/dist/cctp/utils.js.map +0 -1
- package/dist/cctp-bridge/bridge.js +0 -74
- package/dist/cctp-bridge/bridge.js.map +0 -1
- package/dist/cctp-inbound/approveAndBurn.js +0 -95
- package/dist/cctp-inbound/approveAndBurn.js.map +0 -1
- package/dist/cctp-inbound/burn.js +0 -66
- package/dist/cctp-inbound/burn.js.map +0 -1
- package/dist/cctp-inbound/chainMap.js +0 -128
- package/dist/cctp-inbound/chainMap.js.map +0 -1
- package/dist/cctp-inbound/client.js +0 -125
- package/dist/cctp-inbound/client.js.map +0 -1
- package/dist/cctp-inbound/eip2612.js +0 -95
- package/dist/cctp-inbound/eip2612.js.map +0 -1
- package/dist/cctp-inbound/evmSignerAdapter.js +0 -82
- package/dist/cctp-inbound/evmSignerAdapter.js.map +0 -1
- package/dist/cctp-inbound/fundSwap.js +0 -95
- package/dist/cctp-inbound/fundSwap.js.map +0 -1
- package/dist/cctp-inbound/index.js +0 -34
- package/dist/cctp-inbound/index.js.map +0 -1
- package/dist/cctp-inbound/permit2.js +0 -32
- package/dist/cctp-inbound/permit2.js.map +0 -1
- package/dist/cctp-inbound/preflight.js +0 -84
- package/dist/cctp-inbound/preflight.js.map +0 -1
- package/dist/cctp-inbound/recover.js +0 -177
- package/dist/cctp-inbound/recover.js.map +0 -1
- package/dist/cctp-inbound/smartAccount.js +0 -117
- package/dist/cctp-inbound/smartAccount.js.map +0 -1
- package/dist/cctp-inbound/submit.js +0 -136
- package/dist/cctp-inbound/submit.js.map +0 -1
- package/dist/cctp-inbound/types.js +0 -5
- package/dist/cctp-inbound/types.js.map +0 -1
- package/dist/cctp-inbound/userOp.js +0 -151
- package/dist/cctp-inbound/userOp.js.map +0 -1
- package/dist/client.js +0 -4126
- package/dist/client.js.map +0 -1
- package/dist/create/arkade-to-lightning.js +0 -76
- package/dist/create/arkade-to-lightning.js.map +0 -1
- package/dist/create/arkade.js +0 -86
- package/dist/create/arkade.js.map +0 -1
- package/dist/create/bitcoin-to-arkade.js +0 -76
- package/dist/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/create/bitcoin.js +0 -77
- package/dist/create/bitcoin.js.map +0 -1
- package/dist/create/evm-to-arkade.js +0 -80
- package/dist/create/evm-to-arkade.js.map +0 -1
- package/dist/create/evm-to-bitcoin.js +0 -82
- package/dist/create/evm-to-bitcoin.js.map +0 -1
- package/dist/create/evm-to-lightning.js +0 -89
- package/dist/create/evm-to-lightning.js.map +0 -1
- package/dist/create/index.js +0 -21
- package/dist/create/index.js.map +0 -1
- package/dist/create/lightning-to-arkade.js +0 -69
- package/dist/create/lightning-to-arkade.js.map +0 -1
- package/dist/create/lightning.js +0 -61
- package/dist/create/lightning.js.map +0 -1
- package/dist/create/retry.js +0 -71
- package/dist/create/retry.js.map +0 -1
- package/dist/create/types.js +0 -5
- package/dist/create/types.js.map +0 -1
- package/dist/escrow/index.js +0 -115
- package/dist/escrow/index.js.map +0 -1
- package/dist/esplora.js +0 -47
- package/dist/esplora.js.map +0 -1
- package/dist/evm/coordinator.js +0 -714
- package/dist/evm/coordinator.js.map +0 -1
- package/dist/evm/htlc.js +0 -278
- package/dist/evm/htlc.js.map +0 -1
- package/dist/evm/index.js +0 -10
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/signing.js +0 -70
- package/dist/evm/signing.js.map +0 -1
- package/dist/evm/wallet.js +0 -133
- package/dist/evm/wallet.js.map +0 -1
- package/dist/generated/api.js +0 -6
- package/dist/generated/api.js.map +0 -1
- package/dist/logging.js +0 -130
- package/dist/logging.js.map +0 -1
- package/dist/price-calculations.js +0 -135
- package/dist/price-calculations.js.map +0 -1
- package/dist/redeem/arkade.js +0 -416
- package/dist/redeem/arkade.js.map +0 -1
- package/dist/redeem/ethereum.js +0 -206
- package/dist/redeem/ethereum.js.map +0 -1
- package/dist/redeem/gasless.js +0 -73
- package/dist/redeem/gasless.js.map +0 -1
- package/dist/redeem/index.js +0 -189
- package/dist/redeem/index.js.map +0 -1
- package/dist/redeem/types.js +0 -36
- package/dist/redeem/types.js.map +0 -1
- package/dist/refund/arkade.js +0 -200
- package/dist/refund/arkade.js.map +0 -1
- package/dist/refund/collab-arkade-evm.js +0 -307
- package/dist/refund/collab-arkade-evm.js.map +0 -1
- package/dist/refund/collab-arkade-lightning.js +0 -245
- package/dist/refund/collab-arkade-lightning.js.map +0 -1
- package/dist/refund/index.js +0 -12
- package/dist/refund/index.js.map +0 -1
- package/dist/refund/onchain.js +0 -366
- package/dist/refund/onchain.js.map +0 -1
- package/dist/signer/index.js +0 -249
- package/dist/signer/index.js.map +0 -1
- package/dist/storage/idb.js +0 -236
- package/dist/storage/idb.js.map +0 -1
- package/dist/storage/index.js +0 -98
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/sqlite.js +0 -206
- package/dist/storage/sqlite.js.map +0 -1
- package/dist/storage/types.js +0 -9
- package/dist/storage/types.js.map +0 -1
- package/dist/tokens.js +0 -322
- package/dist/tokens.js.map +0 -1
- package/dist/usd-price.js +0 -96
- package/dist/usd-price.js.map +0 -1
- package/dist/usdt0-bridge/constants.js +0 -71
- package/dist/usdt0-bridge/constants.js.map +0 -1
- package/dist/usdt0-bridge/index.js +0 -11
- package/dist/usdt0-bridge/index.js.map +0 -1
- package/dist/usdt0-bridge/tracking.js +0 -123
- package/dist/usdt0-bridge/tracking.js.map +0 -1
- package/dist/usdt0-bridge/utils.js +0 -51
- package/dist/usdt0-bridge/utils.js.map +0 -1
- package/dist/version.js +0 -6
- package/dist/version.js.map +0 -1
- package/dist/ws.js +0 -145
- package/dist/ws.js.map +0 -1
package/dist/storage/idb.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IndexedDB storage implementation for browser environments using Dexie.
|
|
3
|
-
*
|
|
4
|
-
* This module provides persistent storage using IndexedDB via Dexie,
|
|
5
|
-
* suitable for web browsers and environments that support IndexedDB.
|
|
6
|
-
*/
|
|
7
|
-
import Dexie from "dexie";
|
|
8
|
-
const DB_NAME = "lendaswap-v3";
|
|
9
|
-
const DB_VERSION = 1;
|
|
10
|
-
// Legacy (v2) database constants for migration
|
|
11
|
-
const V2_DB_NAME = "lendaswap-v2";
|
|
12
|
-
const V2_WALLET_STORE = "wallet";
|
|
13
|
-
const V2_WALLET_KEY = "default";
|
|
14
|
-
/**
|
|
15
|
-
* Dexie database class for Lendaswap storage.
|
|
16
|
-
*
|
|
17
|
-
* Schema versions:
|
|
18
|
-
* - v1: Initial schema with wallet and swaps tables
|
|
19
|
-
*/
|
|
20
|
-
class LendaswapDatabase extends Dexie {
|
|
21
|
-
wallet;
|
|
22
|
-
swaps;
|
|
23
|
-
constructor() {
|
|
24
|
-
super(DB_NAME);
|
|
25
|
-
// Version 1: Initial schema
|
|
26
|
-
this.version(DB_VERSION).stores({
|
|
27
|
-
wallet: "key",
|
|
28
|
-
swaps: "swapId",
|
|
29
|
-
});
|
|
30
|
-
// Future migrations would be added here:
|
|
31
|
-
// this.version(2).stores({ ... }).upgrade(tx => { ... });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Singleton database instance
|
|
35
|
-
let dbInstance = null;
|
|
36
|
-
/**
|
|
37
|
-
* Get the shared database instance.
|
|
38
|
-
*/
|
|
39
|
-
function getDatabase() {
|
|
40
|
-
if (!dbInstance) {
|
|
41
|
-
dbInstance = new LendaswapDatabase();
|
|
42
|
-
}
|
|
43
|
-
return dbInstance;
|
|
44
|
-
}
|
|
45
|
-
// Wallet storage keys
|
|
46
|
-
const MNEMONIC_KEY = "mnemonic";
|
|
47
|
-
const KEY_INDEX_KEY = "keyIndex";
|
|
48
|
-
/**
|
|
49
|
-
* IndexedDB implementation of WalletStorage using Dexie.
|
|
50
|
-
*
|
|
51
|
-
* Provides persistent storage for wallet data in browser environments.
|
|
52
|
-
* Uses the shared "lendaswap-v3" database with a "wallet" table.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* const storage = new IdbWalletStorage();
|
|
57
|
-
* await storage.setMnemonic("your mnemonic phrase");
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export class IdbWalletStorage {
|
|
61
|
-
#db;
|
|
62
|
-
#migratedFromLegacy = false;
|
|
63
|
-
constructor() {
|
|
64
|
-
this.#db = getDatabase();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Whether a legacy (v2) wallet was migrated during this session.
|
|
68
|
-
*
|
|
69
|
-
* When true, the caller should invoke `client.recoverSwaps()` to
|
|
70
|
-
* restore swap history from the server.
|
|
71
|
-
*/
|
|
72
|
-
get migratedFromLegacy() {
|
|
73
|
-
return this.#migratedFromLegacy;
|
|
74
|
-
}
|
|
75
|
-
async getMnemonic() {
|
|
76
|
-
const record = await this.#db.wallet.get(MNEMONIC_KEY);
|
|
77
|
-
if (record?.value) {
|
|
78
|
-
return record.value;
|
|
79
|
-
}
|
|
80
|
-
// No mnemonic in v3 — try migrating from v2 (legacy WASM SDK)
|
|
81
|
-
const v2Wallet = await readV2Wallet();
|
|
82
|
-
if (!v2Wallet?.mnemonic) {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
// Persist to v3 so this migration only happens once
|
|
86
|
-
await this.setMnemonic(v2Wallet.mnemonic);
|
|
87
|
-
if (v2Wallet.keyIndex > 0) {
|
|
88
|
-
await this.setKeyIndex(v2Wallet.keyIndex);
|
|
89
|
-
}
|
|
90
|
-
this.#migratedFromLegacy = true;
|
|
91
|
-
return v2Wallet.mnemonic;
|
|
92
|
-
}
|
|
93
|
-
async setMnemonic(mnemonic) {
|
|
94
|
-
await this.#db.wallet.put({ key: MNEMONIC_KEY, value: mnemonic });
|
|
95
|
-
}
|
|
96
|
-
async getKeyIndex() {
|
|
97
|
-
const record = await this.#db.wallet.get(KEY_INDEX_KEY);
|
|
98
|
-
return record?.value ?? 0;
|
|
99
|
-
}
|
|
100
|
-
async setKeyIndex(index) {
|
|
101
|
-
await this.#db.wallet.put({ key: KEY_INDEX_KEY, value: index });
|
|
102
|
-
}
|
|
103
|
-
async incrementKeyIndex() {
|
|
104
|
-
// Use a transaction to ensure atomicity
|
|
105
|
-
return this.#db.transaction("rw", this.#db.wallet, async () => {
|
|
106
|
-
const record = await this.#db.wallet.get(KEY_INDEX_KEY);
|
|
107
|
-
const current = record?.value ?? 0;
|
|
108
|
-
await this.#db.wallet.put({ key: KEY_INDEX_KEY, value: current + 1 });
|
|
109
|
-
return current;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
async clear() {
|
|
113
|
-
await this.#db.wallet.clear();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* IndexedDB implementation of SwapStorage using Dexie.
|
|
118
|
-
*
|
|
119
|
-
* Provides persistent storage for swap data in browser environments.
|
|
120
|
-
* Uses the shared "lendaswap-v3" database with a "swaps" table.
|
|
121
|
-
*
|
|
122
|
-
* @example
|
|
123
|
-
* ```ts
|
|
124
|
-
* const storage = new IdbSwapStorage();
|
|
125
|
-
* await storage.store({ swapId: "swap-id", ... });
|
|
126
|
-
* ```
|
|
127
|
-
*/
|
|
128
|
-
export class IdbSwapStorage {
|
|
129
|
-
#db;
|
|
130
|
-
constructor() {
|
|
131
|
-
this.#db = getDatabase();
|
|
132
|
-
}
|
|
133
|
-
async get(swapId) {
|
|
134
|
-
const record = await this.#db.swaps.get(swapId);
|
|
135
|
-
return record ?? null;
|
|
136
|
-
}
|
|
137
|
-
async store(swap) {
|
|
138
|
-
await this.#db.swaps.put(swap);
|
|
139
|
-
}
|
|
140
|
-
async update(swapId, response) {
|
|
141
|
-
await this.#db.transaction("rw", this.#db.swaps, async () => {
|
|
142
|
-
const existing = await this.#db.swaps.get(swapId);
|
|
143
|
-
if (!existing) {
|
|
144
|
-
throw new Error(`Swap not found: ${swapId}`);
|
|
145
|
-
}
|
|
146
|
-
await this.#db.swaps.put({
|
|
147
|
-
...existing,
|
|
148
|
-
response,
|
|
149
|
-
updatedAt: Date.now(),
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
async delete(swapId) {
|
|
154
|
-
await this.#db.swaps.delete(swapId);
|
|
155
|
-
}
|
|
156
|
-
async list() {
|
|
157
|
-
const records = await this.#db.swaps.toArray();
|
|
158
|
-
return records.map((r) => r.swapId);
|
|
159
|
-
}
|
|
160
|
-
async getAll() {
|
|
161
|
-
return this.#db.swaps.toArray();
|
|
162
|
-
}
|
|
163
|
-
async clear() {
|
|
164
|
-
await this.#db.swaps.clear();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Read wallet data from the legacy v2 (WASM SDK) IndexedDB database.
|
|
169
|
-
*
|
|
170
|
-
* The v2 database ("lendaswap-v2") stores wallet data as a single object
|
|
171
|
-
* under key "default" in the "wallet" object store, with fields:
|
|
172
|
-
* - `mnemonic`: string
|
|
173
|
-
* - `key_index`: number
|
|
174
|
-
*
|
|
175
|
-
* Returns null if the v2 database doesn't exist or has no wallet data.
|
|
176
|
-
*/
|
|
177
|
-
function readV2Wallet() {
|
|
178
|
-
return new Promise((resolve) => {
|
|
179
|
-
if (typeof indexedDB === "undefined") {
|
|
180
|
-
resolve(null);
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const request = indexedDB.open(V2_DB_NAME);
|
|
184
|
-
// If onupgradeneeded fires, the database didn't exist — abort to
|
|
185
|
-
// prevent creating an empty v2 database.
|
|
186
|
-
request.onupgradeneeded = () => {
|
|
187
|
-
request.transaction?.abort();
|
|
188
|
-
};
|
|
189
|
-
request.onerror = () => {
|
|
190
|
-
resolve(null);
|
|
191
|
-
};
|
|
192
|
-
request.onsuccess = () => {
|
|
193
|
-
const db = request.result;
|
|
194
|
-
if (!db.objectStoreNames.contains(V2_WALLET_STORE)) {
|
|
195
|
-
db.close();
|
|
196
|
-
resolve(null);
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
try {
|
|
200
|
-
const tx = db.transaction(V2_WALLET_STORE, "readonly");
|
|
201
|
-
const store = tx.objectStore(V2_WALLET_STORE);
|
|
202
|
-
const getReq = store.get(V2_WALLET_KEY);
|
|
203
|
-
getReq.onsuccess = () => {
|
|
204
|
-
db.close();
|
|
205
|
-
const result = getReq.result;
|
|
206
|
-
if (!result) {
|
|
207
|
-
resolve(null);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
resolve({
|
|
211
|
-
mnemonic: result.mnemonic ?? null,
|
|
212
|
-
keyIndex: typeof result.key_index === "number" ? result.key_index : 0,
|
|
213
|
-
});
|
|
214
|
-
};
|
|
215
|
-
getReq.onerror = () => {
|
|
216
|
-
db.close();
|
|
217
|
-
resolve(null);
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
catch {
|
|
221
|
-
db.close();
|
|
222
|
-
resolve(null);
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Storage factory for IndexedDB (browser) storage.
|
|
229
|
-
*
|
|
230
|
-
* Creates IDB-backed storage instances that persist data in the browser.
|
|
231
|
-
*/
|
|
232
|
-
export const idbStorageFactory = {
|
|
233
|
-
createWalletStorage: () => new IdbWalletStorage(),
|
|
234
|
-
createSwapStorage: () => new IdbSwapStorage(),
|
|
235
|
-
};
|
|
236
|
-
//# sourceMappingURL=idb.js.map
|
package/dist/storage/idb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"idb.js","sourceRoot":"","sources":["../../src/storage/idb.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Storage module for persisting wallet and swap data.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a pluggable storage interface that can be implemented
|
|
5
|
-
* for different backends (IndexedDB, SQLite, etc.).
|
|
6
|
-
*/
|
|
7
|
-
export { SWAP_STORAGE_VERSION } from "./types.js";
|
|
8
|
-
/**
|
|
9
|
-
* In-memory implementation of WalletStorage.
|
|
10
|
-
*
|
|
11
|
-
* Useful for testing or temporary sessions where persistence is not required.
|
|
12
|
-
* Data is lost when the application is closed.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```ts
|
|
16
|
-
* const storage = new InMemoryWalletStorage();
|
|
17
|
-
* await storage.setMnemonic("your mnemonic phrase");
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export class InMemoryWalletStorage {
|
|
21
|
-
#mnemonic = null;
|
|
22
|
-
#keyIndex = 0;
|
|
23
|
-
async getMnemonic() {
|
|
24
|
-
return this.#mnemonic;
|
|
25
|
-
}
|
|
26
|
-
async setMnemonic(mnemonic) {
|
|
27
|
-
this.#mnemonic = mnemonic;
|
|
28
|
-
}
|
|
29
|
-
async getKeyIndex() {
|
|
30
|
-
return this.#keyIndex;
|
|
31
|
-
}
|
|
32
|
-
async setKeyIndex(index) {
|
|
33
|
-
this.#keyIndex = index;
|
|
34
|
-
}
|
|
35
|
-
async incrementKeyIndex() {
|
|
36
|
-
const current = this.#keyIndex;
|
|
37
|
-
this.#keyIndex = current + 1;
|
|
38
|
-
return current;
|
|
39
|
-
}
|
|
40
|
-
async clear() {
|
|
41
|
-
this.#mnemonic = null;
|
|
42
|
-
this.#keyIndex = 0;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* In-memory implementation of SwapStorage.
|
|
47
|
-
*
|
|
48
|
-
* Useful for testing or temporary sessions where persistence is not required.
|
|
49
|
-
* Data is lost when the application is closed.
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* ```ts
|
|
53
|
-
* const storage = new InMemorySwapStorage();
|
|
54
|
-
* await storage.store({ swapId: "swap-id", ... });
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
export class InMemorySwapStorage {
|
|
58
|
-
#data = new Map();
|
|
59
|
-
async get(swapId) {
|
|
60
|
-
return this.#data.get(swapId) ?? null;
|
|
61
|
-
}
|
|
62
|
-
async store(swap) {
|
|
63
|
-
this.#data.set(swap.swapId, swap);
|
|
64
|
-
}
|
|
65
|
-
async update(swapId, response) {
|
|
66
|
-
const existing = this.#data.get(swapId);
|
|
67
|
-
if (!existing) {
|
|
68
|
-
throw new Error(`Swap not found: ${swapId}`);
|
|
69
|
-
}
|
|
70
|
-
this.#data.set(swapId, {
|
|
71
|
-
...existing,
|
|
72
|
-
response,
|
|
73
|
-
updatedAt: Date.now(),
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
async delete(swapId) {
|
|
77
|
-
this.#data.delete(swapId);
|
|
78
|
-
}
|
|
79
|
-
async list() {
|
|
80
|
-
return Array.from(this.#data.keys());
|
|
81
|
-
}
|
|
82
|
-
async getAll() {
|
|
83
|
-
return Array.from(this.#data.values());
|
|
84
|
-
}
|
|
85
|
-
async clear() {
|
|
86
|
-
this.#data.clear();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* In-memory storage factory.
|
|
91
|
-
*
|
|
92
|
-
* Creates in-memory storage instances for testing or temporary sessions.
|
|
93
|
-
*/
|
|
94
|
-
export const inMemoryStorageFactory = {
|
|
95
|
-
createWalletStorage: () => new InMemoryWalletStorage(),
|
|
96
|
-
createSwapStorage: () => new InMemorySwapStorage(),
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAkGlD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAqB;IAChC,SAAS,GAAkB,IAAI,CAAC;IAChC,SAAS,GAAG,CAAC,CAAC;IAEd,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IACrB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE/C,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAgB;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,QAAyB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,GAAG,QAAQ;YACX,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAYD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IACpD,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE;IACtD,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;CACnD,CAAC"}
|
package/dist/storage/sqlite.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite storage implementations for Node.js.
|
|
3
|
-
*
|
|
4
|
-
* Uses better-sqlite3 for fast, synchronous SQLite access.
|
|
5
|
-
*/
|
|
6
|
-
import Database from "better-sqlite3";
|
|
7
|
-
/**
|
|
8
|
-
* SQLite-based wallet storage for Node.js.
|
|
9
|
-
*
|
|
10
|
-
* Stores mnemonic and key index in a SQLite database.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const storage = new SqliteWalletStorage("./lendaswap.db");
|
|
15
|
-
* const client = await Client.builder()
|
|
16
|
-
* .withSignerStorage(storage)
|
|
17
|
-
* .build();
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export class SqliteWalletStorage {
|
|
21
|
-
#db;
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new SQLite wallet storage.
|
|
24
|
-
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
25
|
-
*/
|
|
26
|
-
constructor(dbPath) {
|
|
27
|
-
this.#db = new Database(dbPath);
|
|
28
|
-
this.#initSchema();
|
|
29
|
-
}
|
|
30
|
-
#initSchema() {
|
|
31
|
-
this.#db.exec(`
|
|
32
|
-
CREATE TABLE IF NOT EXISTS wallet (
|
|
33
|
-
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
34
|
-
mnemonic TEXT,
|
|
35
|
-
key_index INTEGER NOT NULL DEFAULT 0
|
|
36
|
-
);
|
|
37
|
-
INSERT OR IGNORE INTO wallet (id, key_index) VALUES (1, 0);
|
|
38
|
-
`);
|
|
39
|
-
}
|
|
40
|
-
async getMnemonic() {
|
|
41
|
-
const row = this.#db
|
|
42
|
-
.prepare("SELECT mnemonic FROM wallet WHERE id = 1")
|
|
43
|
-
.get();
|
|
44
|
-
return row?.mnemonic ?? null;
|
|
45
|
-
}
|
|
46
|
-
async setMnemonic(mnemonic) {
|
|
47
|
-
this.#db
|
|
48
|
-
.prepare("UPDATE wallet SET mnemonic = ? WHERE id = 1")
|
|
49
|
-
.run(mnemonic);
|
|
50
|
-
}
|
|
51
|
-
async getKeyIndex() {
|
|
52
|
-
const row = this.#db
|
|
53
|
-
.prepare("SELECT key_index FROM wallet WHERE id = 1")
|
|
54
|
-
.get();
|
|
55
|
-
return row?.key_index ?? 0;
|
|
56
|
-
}
|
|
57
|
-
async setKeyIndex(index) {
|
|
58
|
-
this.#db.prepare("UPDATE wallet SET key_index = ? WHERE id = 1").run(index);
|
|
59
|
-
}
|
|
60
|
-
async incrementKeyIndex() {
|
|
61
|
-
const current = await this.getKeyIndex();
|
|
62
|
-
await this.setKeyIndex(current + 1);
|
|
63
|
-
return current;
|
|
64
|
-
}
|
|
65
|
-
async clear() {
|
|
66
|
-
this.#db
|
|
67
|
-
.prepare("UPDATE wallet SET mnemonic = NULL, key_index = 0 WHERE id = 1")
|
|
68
|
-
.run();
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Closes the database connection.
|
|
72
|
-
*/
|
|
73
|
-
close() {
|
|
74
|
-
this.#db.close();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* SQLite-based swap storage for Node.js.
|
|
79
|
-
*
|
|
80
|
-
* Stores swap data including responses and cryptographic parameters.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* ```ts
|
|
84
|
-
* const storage = new SqliteSwapStorage("./lendaswap.db");
|
|
85
|
-
* const client = await Client.builder()
|
|
86
|
-
* .withSwapStorage(storage)
|
|
87
|
-
* .build();
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export class SqliteSwapStorage {
|
|
91
|
-
#db;
|
|
92
|
-
/**
|
|
93
|
-
* Creates a new SQLite swap storage.
|
|
94
|
-
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
95
|
-
*/
|
|
96
|
-
constructor(dbPath) {
|
|
97
|
-
this.#db = new Database(dbPath);
|
|
98
|
-
this.#initSchema();
|
|
99
|
-
}
|
|
100
|
-
#initSchema() {
|
|
101
|
-
this.#db.exec(`
|
|
102
|
-
CREATE TABLE IF NOT EXISTS swaps (
|
|
103
|
-
swap_id TEXT PRIMARY KEY,
|
|
104
|
-
version INTEGER NOT NULL,
|
|
105
|
-
key_index INTEGER NOT NULL,
|
|
106
|
-
response TEXT NOT NULL,
|
|
107
|
-
public_key TEXT NOT NULL,
|
|
108
|
-
preimage TEXT NOT NULL,
|
|
109
|
-
preimage_hash TEXT NOT NULL,
|
|
110
|
-
secret_key TEXT NOT NULL,
|
|
111
|
-
stored_at INTEGER NOT NULL,
|
|
112
|
-
updated_at INTEGER NOT NULL
|
|
113
|
-
);
|
|
114
|
-
CREATE INDEX IF NOT EXISTS idx_swaps_stored_at ON swaps(stored_at);
|
|
115
|
-
`);
|
|
116
|
-
}
|
|
117
|
-
async get(swapId) {
|
|
118
|
-
const row = this.#db
|
|
119
|
-
.prepare("SELECT * FROM swaps WHERE swap_id = ?")
|
|
120
|
-
.get(swapId);
|
|
121
|
-
if (!row)
|
|
122
|
-
return null;
|
|
123
|
-
return this.#rowToStoredSwap(row);
|
|
124
|
-
}
|
|
125
|
-
async store(swap) {
|
|
126
|
-
this.#db
|
|
127
|
-
.prepare(`INSERT OR REPLACE INTO swaps
|
|
128
|
-
(swap_id, version, key_index, response, public_key, preimage, preimage_hash, secret_key, stored_at, updated_at)
|
|
129
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
130
|
-
.run(swap.swapId, swap.version, swap.keyIndex, JSON.stringify(swap.response), swap.publicKey, swap.preimage, swap.preimageHash, swap.secretKey, swap.storedAt, swap.updatedAt);
|
|
131
|
-
}
|
|
132
|
-
async update(swapId, response) {
|
|
133
|
-
this.#db
|
|
134
|
-
.prepare("UPDATE swaps SET response = ?, updated_at = ? WHERE swap_id = ?")
|
|
135
|
-
.run(JSON.stringify(response), Date.now(), swapId);
|
|
136
|
-
}
|
|
137
|
-
async delete(swapId) {
|
|
138
|
-
this.#db.prepare("DELETE FROM swaps WHERE swap_id = ?").run(swapId);
|
|
139
|
-
}
|
|
140
|
-
async list() {
|
|
141
|
-
const rows = this.#db
|
|
142
|
-
.prepare("SELECT swap_id FROM swaps ORDER BY stored_at DESC")
|
|
143
|
-
.all();
|
|
144
|
-
return rows.map((r) => r.swap_id);
|
|
145
|
-
}
|
|
146
|
-
async getAll() {
|
|
147
|
-
const rows = this.#db
|
|
148
|
-
.prepare("SELECT * FROM swaps ORDER BY stored_at DESC")
|
|
149
|
-
.all();
|
|
150
|
-
return rows.map((row) => this.#rowToStoredSwap(row));
|
|
151
|
-
}
|
|
152
|
-
async clear() {
|
|
153
|
-
this.#db.prepare("DELETE FROM swaps").run();
|
|
154
|
-
}
|
|
155
|
-
#rowToStoredSwap(row) {
|
|
156
|
-
return {
|
|
157
|
-
swapId: row.swap_id,
|
|
158
|
-
version: row.version,
|
|
159
|
-
keyIndex: row.key_index,
|
|
160
|
-
response: JSON.parse(row.response),
|
|
161
|
-
publicKey: row.public_key,
|
|
162
|
-
preimage: row.preimage,
|
|
163
|
-
preimageHash: row.preimage_hash,
|
|
164
|
-
secretKey: row.secret_key,
|
|
165
|
-
storedAt: row.stored_at,
|
|
166
|
-
updatedAt: row.updated_at,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Closes the database connection.
|
|
171
|
-
*/
|
|
172
|
-
close() {
|
|
173
|
-
this.#db.close();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Creates a storage factory that uses SQLite for both wallet and swap storage.
|
|
178
|
-
*
|
|
179
|
-
* @param dbPath - Path to the SQLite database file.
|
|
180
|
-
* @returns A storage factory with shared database connection.
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* ```ts
|
|
184
|
-
* const { walletStorage, swapStorage, close } = sqliteStorageFactory("./lendaswap.db");
|
|
185
|
-
* const client = await Client.builder()
|
|
186
|
-
* .withSignerStorage(walletStorage)
|
|
187
|
-
* .withSwapStorage(swapStorage)
|
|
188
|
-
* .build();
|
|
189
|
-
*
|
|
190
|
-
* // When done:
|
|
191
|
-
* close();
|
|
192
|
-
* ```
|
|
193
|
-
*/
|
|
194
|
-
export function sqliteStorageFactory(dbPath) {
|
|
195
|
-
const walletStorage = new SqliteWalletStorage(dbPath);
|
|
196
|
-
const swapStorage = new SqliteSwapStorage(dbPath);
|
|
197
|
-
return {
|
|
198
|
-
walletStorage,
|
|
199
|
-
swapStorage,
|
|
200
|
-
close: () => {
|
|
201
|
-
walletStorage.close();
|
|
202
|
-
swapStorage.close();
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=sqlite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/types.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for swap storage.
|
|
3
|
-
*
|
|
4
|
-
* These types define the schema for persisted swap data.
|
|
5
|
-
* The version field enables schema migrations when the structure changes.
|
|
6
|
-
*/
|
|
7
|
-
/** Current schema version for stored swaps */
|
|
8
|
-
export const SWAP_STORAGE_VERSION = 2;
|
|
9
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
|