@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.
Files changed (252) hide show
  1. package/dist/_esm-7KJOBTZC.js +3660 -0
  2. package/dist/_esm-7KJOBTZC.js.map +1 -0
  3. package/dist/_esm-UGRDSVEV.cjs +3662 -0
  4. package/dist/_esm-UGRDSVEV.cjs.map +1 -0
  5. package/dist/api/client.d.ts +0 -4
  6. package/dist/api/client.d.ts.map +1 -1
  7. package/dist/base-2KYNAFR3.cjs +109 -0
  8. package/dist/base-2KYNAFR3.cjs.map +1 -0
  9. package/dist/base-B6OGU65B.js +7 -0
  10. package/dist/base-B6OGU65B.js.map +1 -0
  11. package/dist/ccip-MPMAZOUF.js +5 -0
  12. package/dist/ccip-MPMAZOUF.js.map +1 -0
  13. package/dist/ccip-PD37NJHA.cjs +26 -0
  14. package/dist/ccip-PD37NJHA.cjs.map +1 -0
  15. package/dist/cctp-bridge/index.cjs +67 -0
  16. package/dist/cctp-bridge/index.cjs.map +1 -0
  17. package/dist/cctp-bridge/index.js +51 -15
  18. package/dist/cctp-bridge/index.js.map +1 -1
  19. package/dist/cctp-inbound/client.d.ts +21 -19
  20. package/dist/cctp-inbound/client.d.ts.map +1 -1
  21. package/dist/cctp-inbound/smartAccount.d.ts +21 -19
  22. package/dist/cctp-inbound/smartAccount.d.ts.map +1 -1
  23. package/dist/chunk-3JWT4OW2.js +369 -0
  24. package/dist/chunk-3JWT4OW2.js.map +1 -0
  25. package/dist/chunk-A4GKKURK.cjs +430 -0
  26. package/dist/chunk-A4GKKURK.cjs.map +1 -0
  27. package/dist/chunk-BZU3R5DJ.cjs +554 -0
  28. package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
  29. package/dist/chunk-C4YXYD24.js +418 -0
  30. package/dist/chunk-C4YXYD24.js.map +1 -0
  31. package/dist/chunk-CZNQYFDP.js +6141 -0
  32. package/dist/chunk-CZNQYFDP.js.map +1 -0
  33. package/dist/chunk-DKTFDGIU.js +2207 -0
  34. package/dist/chunk-DKTFDGIU.js.map +1 -0
  35. package/dist/chunk-DNSJDKTP.cjs +96 -0
  36. package/dist/chunk-DNSJDKTP.cjs.map +1 -0
  37. package/dist/chunk-EPKFLKTM.js +47093 -0
  38. package/dist/chunk-EPKFLKTM.js.map +1 -0
  39. package/dist/chunk-JBVKWKD4.cjs +50 -0
  40. package/dist/chunk-JBVKWKD4.cjs.map +1 -0
  41. package/dist/chunk-NPFJAXKV.js +551 -0
  42. package/dist/chunk-NPFJAXKV.js.map +1 -0
  43. package/dist/chunk-PKDJZJMV.cjs +2214 -0
  44. package/dist/chunk-PKDJZJMV.cjs.map +1 -0
  45. package/dist/chunk-PLDDJCW6.js +43 -0
  46. package/dist/chunk-PLDDJCW6.js.map +1 -0
  47. package/dist/chunk-RIOT5VOJ.cjs +47240 -0
  48. package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
  49. package/dist/chunk-WVZSHRV7.cjs +431 -0
  50. package/dist/chunk-WVZSHRV7.cjs.map +1 -0
  51. package/dist/chunk-YEZOPVAH.js +86 -0
  52. package/dist/chunk-YEZOPVAH.js.map +1 -0
  53. package/dist/chunk-YLWPBHMV.cjs +6311 -0
  54. package/dist/chunk-YLWPBHMV.cjs.map +1 -0
  55. package/dist/client.d.ts +68 -1
  56. package/dist/client.d.ts.map +1 -1
  57. package/dist/compose-quote.d.ts +77 -0
  58. package/dist/compose-quote.d.ts.map +1 -0
  59. package/dist/delegate.cjs +23 -0
  60. package/dist/delegate.cjs.map +1 -0
  61. package/dist/delegate.js +5 -269
  62. package/dist/delegate.js.map +1 -1
  63. package/dist/dist-NE2R4YCX.js +5 -0
  64. package/dist/dist-NE2R4YCX.js.map +1 -0
  65. package/dist/dist-VEHYC67F.cjs +550 -0
  66. package/dist/dist-VEHYC67F.cjs.map +1 -0
  67. package/dist/esplora.d.ts +14 -0
  68. package/dist/esplora.d.ts.map +1 -1
  69. package/dist/generated/api.d.ts +235 -38
  70. package/dist/generated/api.d.ts.map +1 -1
  71. package/dist/index.cjs +35461 -0
  72. package/dist/index.cjs.map +1 -0
  73. package/dist/index.d.ts +2 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +35309 -32
  76. package/dist/index.js.map +1 -1
  77. package/dist/mine.wasm-JJEJEODX.js +9 -0
  78. package/dist/mine.wasm-JJEJEODX.js.map +1 -0
  79. package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
  80. package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
  81. package/dist/node.cjs +166 -0
  82. package/dist/node.cjs.map +1 -0
  83. package/dist/node.js +157 -18
  84. package/dist/node.js.map +1 -1
  85. package/dist/secp256k1-PJCSE4N6.cjs +30 -0
  86. package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
  87. package/dist/secp256k1-VZNNVEPN.js +5 -0
  88. package/dist/secp256k1-VZNNVEPN.js.map +1 -0
  89. package/dist/tokens.d.ts +2 -1
  90. package/dist/tokens.d.ts.map +1 -1
  91. package/dist/types/chain-config.d.ts +50 -0
  92. package/dist/types/chain-config.d.ts.map +1 -0
  93. package/dist/types/chain.d.ts +11 -0
  94. package/dist/types/chain.d.ts.map +1 -0
  95. package/dist/types/dex-quote.d.ts +85 -0
  96. package/dist/types/dex-quote.d.ts.map +1 -0
  97. package/dist/types/index.d.ts +15 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/network-fees.d.ts +43 -0
  100. package/dist/types/network-fees.d.ts.map +1 -0
  101. package/dist/types/quote.d.ts +87 -0
  102. package/dist/types/quote.d.ts.map +1 -0
  103. package/dist/types/swap-pairs.d.ts +37 -0
  104. package/dist/types/swap-pairs.d.ts.map +1 -0
  105. package/dist/version.d.ts +2 -2
  106. package/dist/wallet-SCGRX3EN.js +4 -0
  107. package/dist/wallet-SCGRX3EN.js.map +1 -0
  108. package/dist/wallet-SZJDXAY7.cjs +45 -0
  109. package/dist/wallet-SZJDXAY7.cjs.map +1 -0
  110. package/package.json +23 -10
  111. package/dist/api/client.js +0 -13
  112. package/dist/api/client.js.map +0 -1
  113. package/dist/arkade-network.js +0 -40
  114. package/dist/arkade-network.js.map +0 -1
  115. package/dist/arkade.js +0 -61
  116. package/dist/arkade.js.map +0 -1
  117. package/dist/cctp/attestation.js +0 -149
  118. package/dist/cctp/attestation.js.map +0 -1
  119. package/dist/cctp/constants.js +0 -92
  120. package/dist/cctp/constants.js.map +0 -1
  121. package/dist/cctp/fee.js +0 -70
  122. package/dist/cctp/fee.js.map +0 -1
  123. package/dist/cctp/index.js +0 -13
  124. package/dist/cctp/index.js.map +0 -1
  125. package/dist/cctp/types.js +0 -5
  126. package/dist/cctp/types.js.map +0 -1
  127. package/dist/cctp/utils.js +0 -91
  128. package/dist/cctp/utils.js.map +0 -1
  129. package/dist/cctp-bridge/bridge.js +0 -74
  130. package/dist/cctp-bridge/bridge.js.map +0 -1
  131. package/dist/cctp-inbound/approveAndBurn.js +0 -95
  132. package/dist/cctp-inbound/approveAndBurn.js.map +0 -1
  133. package/dist/cctp-inbound/burn.js +0 -66
  134. package/dist/cctp-inbound/burn.js.map +0 -1
  135. package/dist/cctp-inbound/chainMap.js +0 -128
  136. package/dist/cctp-inbound/chainMap.js.map +0 -1
  137. package/dist/cctp-inbound/client.js +0 -125
  138. package/dist/cctp-inbound/client.js.map +0 -1
  139. package/dist/cctp-inbound/eip2612.js +0 -95
  140. package/dist/cctp-inbound/eip2612.js.map +0 -1
  141. package/dist/cctp-inbound/evmSignerAdapter.js +0 -82
  142. package/dist/cctp-inbound/evmSignerAdapter.js.map +0 -1
  143. package/dist/cctp-inbound/fundSwap.js +0 -95
  144. package/dist/cctp-inbound/fundSwap.js.map +0 -1
  145. package/dist/cctp-inbound/index.js +0 -34
  146. package/dist/cctp-inbound/index.js.map +0 -1
  147. package/dist/cctp-inbound/permit2.js +0 -32
  148. package/dist/cctp-inbound/permit2.js.map +0 -1
  149. package/dist/cctp-inbound/preflight.js +0 -84
  150. package/dist/cctp-inbound/preflight.js.map +0 -1
  151. package/dist/cctp-inbound/recover.js +0 -177
  152. package/dist/cctp-inbound/recover.js.map +0 -1
  153. package/dist/cctp-inbound/smartAccount.js +0 -117
  154. package/dist/cctp-inbound/smartAccount.js.map +0 -1
  155. package/dist/cctp-inbound/submit.js +0 -136
  156. package/dist/cctp-inbound/submit.js.map +0 -1
  157. package/dist/cctp-inbound/types.js +0 -5
  158. package/dist/cctp-inbound/types.js.map +0 -1
  159. package/dist/cctp-inbound/userOp.js +0 -151
  160. package/dist/cctp-inbound/userOp.js.map +0 -1
  161. package/dist/client.js +0 -4126
  162. package/dist/client.js.map +0 -1
  163. package/dist/create/arkade-to-lightning.js +0 -76
  164. package/dist/create/arkade-to-lightning.js.map +0 -1
  165. package/dist/create/arkade.js +0 -86
  166. package/dist/create/arkade.js.map +0 -1
  167. package/dist/create/bitcoin-to-arkade.js +0 -76
  168. package/dist/create/bitcoin-to-arkade.js.map +0 -1
  169. package/dist/create/bitcoin.js +0 -77
  170. package/dist/create/bitcoin.js.map +0 -1
  171. package/dist/create/evm-to-arkade.js +0 -80
  172. package/dist/create/evm-to-arkade.js.map +0 -1
  173. package/dist/create/evm-to-bitcoin.js +0 -82
  174. package/dist/create/evm-to-bitcoin.js.map +0 -1
  175. package/dist/create/evm-to-lightning.js +0 -89
  176. package/dist/create/evm-to-lightning.js.map +0 -1
  177. package/dist/create/index.js +0 -21
  178. package/dist/create/index.js.map +0 -1
  179. package/dist/create/lightning-to-arkade.js +0 -69
  180. package/dist/create/lightning-to-arkade.js.map +0 -1
  181. package/dist/create/lightning.js +0 -61
  182. package/dist/create/lightning.js.map +0 -1
  183. package/dist/create/retry.js +0 -71
  184. package/dist/create/retry.js.map +0 -1
  185. package/dist/create/types.js +0 -5
  186. package/dist/create/types.js.map +0 -1
  187. package/dist/escrow/index.js +0 -115
  188. package/dist/escrow/index.js.map +0 -1
  189. package/dist/esplora.js +0 -47
  190. package/dist/esplora.js.map +0 -1
  191. package/dist/evm/coordinator.js +0 -714
  192. package/dist/evm/coordinator.js.map +0 -1
  193. package/dist/evm/htlc.js +0 -278
  194. package/dist/evm/htlc.js.map +0 -1
  195. package/dist/evm/index.js +0 -10
  196. package/dist/evm/index.js.map +0 -1
  197. package/dist/evm/signing.js +0 -70
  198. package/dist/evm/signing.js.map +0 -1
  199. package/dist/evm/wallet.js +0 -133
  200. package/dist/evm/wallet.js.map +0 -1
  201. package/dist/generated/api.js +0 -6
  202. package/dist/generated/api.js.map +0 -1
  203. package/dist/logging.js +0 -130
  204. package/dist/logging.js.map +0 -1
  205. package/dist/price-calculations.js +0 -135
  206. package/dist/price-calculations.js.map +0 -1
  207. package/dist/redeem/arkade.js +0 -416
  208. package/dist/redeem/arkade.js.map +0 -1
  209. package/dist/redeem/ethereum.js +0 -206
  210. package/dist/redeem/ethereum.js.map +0 -1
  211. package/dist/redeem/gasless.js +0 -73
  212. package/dist/redeem/gasless.js.map +0 -1
  213. package/dist/redeem/index.js +0 -189
  214. package/dist/redeem/index.js.map +0 -1
  215. package/dist/redeem/types.js +0 -36
  216. package/dist/redeem/types.js.map +0 -1
  217. package/dist/refund/arkade.js +0 -200
  218. package/dist/refund/arkade.js.map +0 -1
  219. package/dist/refund/collab-arkade-evm.js +0 -307
  220. package/dist/refund/collab-arkade-evm.js.map +0 -1
  221. package/dist/refund/collab-arkade-lightning.js +0 -245
  222. package/dist/refund/collab-arkade-lightning.js.map +0 -1
  223. package/dist/refund/index.js +0 -12
  224. package/dist/refund/index.js.map +0 -1
  225. package/dist/refund/onchain.js +0 -366
  226. package/dist/refund/onchain.js.map +0 -1
  227. package/dist/signer/index.js +0 -249
  228. package/dist/signer/index.js.map +0 -1
  229. package/dist/storage/idb.js +0 -236
  230. package/dist/storage/idb.js.map +0 -1
  231. package/dist/storage/index.js +0 -98
  232. package/dist/storage/index.js.map +0 -1
  233. package/dist/storage/sqlite.js +0 -206
  234. package/dist/storage/sqlite.js.map +0 -1
  235. package/dist/storage/types.js +0 -9
  236. package/dist/storage/types.js.map +0 -1
  237. package/dist/tokens.js +0 -322
  238. package/dist/tokens.js.map +0 -1
  239. package/dist/usd-price.js +0 -96
  240. package/dist/usd-price.js.map +0 -1
  241. package/dist/usdt0-bridge/constants.js +0 -71
  242. package/dist/usdt0-bridge/constants.js.map +0 -1
  243. package/dist/usdt0-bridge/index.js +0 -11
  244. package/dist/usdt0-bridge/index.js.map +0 -1
  245. package/dist/usdt0-bridge/tracking.js +0 -123
  246. package/dist/usdt0-bridge/tracking.js.map +0 -1
  247. package/dist/usdt0-bridge/utils.js +0 -51
  248. package/dist/usdt0-bridge/utils.js.map +0 -1
  249. package/dist/version.js +0 -6
  250. package/dist/version.js.map +0 -1
  251. package/dist/ws.js +0 -145
  252. package/dist/ws.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"idb.js","sourceRoot":"","sources":["../../src/storage/idb.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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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"}
@@ -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"}