@lendasat/lendaswap-sdk-pure 0.2.21-preview.0 → 0.2.21

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 (205) hide show
  1. package/dist/api/client.d.ts.map +1 -1
  2. package/dist/api/client.js +4 -1
  3. package/dist/api/client.js.map +1 -1
  4. package/dist/version.d.ts +4 -0
  5. package/dist/version.d.ts.map +1 -0
  6. package/dist/version.js +6 -0
  7. package/dist/version.js.map +1 -0
  8. package/package.json +4 -1
  9. package/dist/price-feed.d.ts +0 -124
  10. package/dist/price-feed.d.ts.map +0 -1
  11. package/dist/price-feed.js +0 -178
  12. package/dist/price-feed.js.map +0 -1
  13. package/dist/src/api/client.d.ts +0 -31
  14. package/dist/src/api/client.d.ts.map +0 -1
  15. package/dist/src/api/client.js +0 -12
  16. package/dist/src/api/client.js.map +0 -1
  17. package/dist/src/arkade.d.ts +0 -36
  18. package/dist/src/arkade.d.ts.map +0 -1
  19. package/dist/src/arkade.js +0 -68
  20. package/dist/src/arkade.js.map +0 -1
  21. package/dist/src/client.d.ts +0 -760
  22. package/dist/src/client.d.ts.map +0 -1
  23. package/dist/src/client.js +0 -2169
  24. package/dist/src/client.js.map +0 -1
  25. package/dist/src/create/arkade.d.ts +0 -34
  26. package/dist/src/create/arkade.d.ts.map +0 -1
  27. package/dist/src/create/arkade.js +0 -76
  28. package/dist/src/create/arkade.js.map +0 -1
  29. package/dist/src/create/bitcoin-to-arkade.d.ts +0 -36
  30. package/dist/src/create/bitcoin-to-arkade.d.ts.map +0 -1
  31. package/dist/src/create/bitcoin-to-arkade.js +0 -69
  32. package/dist/src/create/bitcoin-to-arkade.js.map +0 -1
  33. package/dist/src/create/bitcoin.d.ts +0 -31
  34. package/dist/src/create/bitcoin.d.ts.map +0 -1
  35. package/dist/src/create/bitcoin.js +0 -67
  36. package/dist/src/create/bitcoin.js.map +0 -1
  37. package/dist/src/create/evm-to-arkade.d.ts +0 -34
  38. package/dist/src/create/evm-to-arkade.d.ts.map +0 -1
  39. package/dist/src/create/evm-to-arkade.js +0 -69
  40. package/dist/src/create/evm-to-arkade.js.map +0 -1
  41. package/dist/src/create/evm-to-bitcoin.d.ts +0 -35
  42. package/dist/src/create/evm-to-bitcoin.d.ts.map +0 -1
  43. package/dist/src/create/evm-to-bitcoin.js +0 -71
  44. package/dist/src/create/evm-to-bitcoin.js.map +0 -1
  45. package/dist/src/create/evm-to-lightning.d.ts +0 -34
  46. package/dist/src/create/evm-to-lightning.d.ts.map +0 -1
  47. package/dist/src/create/evm-to-lightning.js +0 -66
  48. package/dist/src/create/evm-to-lightning.js.map +0 -1
  49. package/dist/src/create/index.d.ts +0 -19
  50. package/dist/src/create/index.d.ts.map +0 -1
  51. package/dist/src/create/index.js +0 -18
  52. package/dist/src/create/index.js.map +0 -1
  53. package/dist/src/create/lightning.d.ts +0 -31
  54. package/dist/src/create/lightning.d.ts.map +0 -1
  55. package/dist/src/create/lightning.js +0 -72
  56. package/dist/src/create/lightning.js.map +0 -1
  57. package/dist/src/create/types.d.ts +0 -247
  58. package/dist/src/create/types.d.ts.map +0 -1
  59. package/dist/src/create/types.js +0 -5
  60. package/dist/src/create/types.js.map +0 -1
  61. package/dist/src/delegate.d.ts +0 -62
  62. package/dist/src/delegate.d.ts.map +0 -1
  63. package/dist/src/delegate.js +0 -284
  64. package/dist/src/delegate.js.map +0 -1
  65. package/dist/src/esplora.d.ts +0 -41
  66. package/dist/src/esplora.d.ts.map +0 -1
  67. package/dist/src/esplora.js +0 -47
  68. package/dist/src/esplora.js.map +0 -1
  69. package/dist/src/evm/coordinator.d.ts +0 -247
  70. package/dist/src/evm/coordinator.d.ts.map +0 -1
  71. package/dist/src/evm/coordinator.js +0 -414
  72. package/dist/src/evm/coordinator.js.map +0 -1
  73. package/dist/src/evm/htlc.d.ts +0 -238
  74. package/dist/src/evm/htlc.d.ts.map +0 -1
  75. package/dist/src/evm/htlc.js +0 -278
  76. package/dist/src/evm/htlc.js.map +0 -1
  77. package/dist/src/evm/index.d.ts +0 -9
  78. package/dist/src/evm/index.d.ts.map +0 -1
  79. package/dist/src/evm/index.js +0 -9
  80. package/dist/src/evm/index.js.map +0 -1
  81. package/dist/src/evm/signing.d.ts +0 -30
  82. package/dist/src/evm/signing.d.ts.map +0 -1
  83. package/dist/src/evm/signing.js +0 -91
  84. package/dist/src/evm/signing.js.map +0 -1
  85. package/dist/src/generated/api.d.ts +0 -2736
  86. package/dist/src/generated/api.d.ts.map +0 -1
  87. package/dist/src/generated/api.js +0 -6
  88. package/dist/src/generated/api.js.map +0 -1
  89. package/dist/src/index.d.ts +0 -18
  90. package/dist/src/index.d.ts.map +0 -1
  91. package/dist/src/index.js +0 -24
  92. package/dist/src/index.js.map +0 -1
  93. package/dist/src/node.d.ts +0 -19
  94. package/dist/src/node.d.ts.map +0 -1
  95. package/dist/src/node.js +0 -19
  96. package/dist/src/node.js.map +0 -1
  97. package/dist/src/price-calculations.d.ts +0 -109
  98. package/dist/src/price-calculations.d.ts.map +0 -1
  99. package/dist/src/price-calculations.js +0 -135
  100. package/dist/src/price-calculations.js.map +0 -1
  101. package/dist/src/redeem/arkade.d.ts +0 -65
  102. package/dist/src/redeem/arkade.d.ts.map +0 -1
  103. package/dist/src/redeem/arkade.js +0 -217
  104. package/dist/src/redeem/arkade.js.map +0 -1
  105. package/dist/src/redeem/ethereum.d.ts +0 -52
  106. package/dist/src/redeem/ethereum.d.ts.map +0 -1
  107. package/dist/src/redeem/ethereum.js +0 -206
  108. package/dist/src/redeem/ethereum.js.map +0 -1
  109. package/dist/src/redeem/gasless.d.ts +0 -41
  110. package/dist/src/redeem/gasless.d.ts.map +0 -1
  111. package/dist/src/redeem/gasless.js +0 -71
  112. package/dist/src/redeem/gasless.js.map +0 -1
  113. package/dist/src/redeem/index.d.ts +0 -49
  114. package/dist/src/redeem/index.d.ts.map +0 -1
  115. package/dist/src/redeem/index.js +0 -189
  116. package/dist/src/redeem/index.js.map +0 -1
  117. package/dist/src/redeem/types.d.ts +0 -126
  118. package/dist/src/redeem/types.d.ts.map +0 -1
  119. package/dist/src/redeem/types.js +0 -36
  120. package/dist/src/redeem/types.js.map +0 -1
  121. package/dist/src/refund/arkade.d.ts +0 -62
  122. package/dist/src/refund/arkade.d.ts.map +0 -1
  123. package/dist/src/refund/arkade.js +0 -212
  124. package/dist/src/refund/arkade.js.map +0 -1
  125. package/dist/src/refund/index.d.ts +0 -10
  126. package/dist/src/refund/index.d.ts.map +0 -1
  127. package/dist/src/refund/index.js +0 -10
  128. package/dist/src/refund/index.js.map +0 -1
  129. package/dist/src/refund/onchain.d.ts +0 -137
  130. package/dist/src/refund/onchain.d.ts.map +0 -1
  131. package/dist/src/refund/onchain.js +0 -366
  132. package/dist/src/refund/onchain.js.map +0 -1
  133. package/dist/src/signer/index.d.ts +0 -106
  134. package/dist/src/signer/index.d.ts.map +0 -1
  135. package/dist/src/signer/index.js +0 -179
  136. package/dist/src/signer/index.js.map +0 -1
  137. package/dist/src/storage/idb.d.ts +0 -70
  138. package/dist/src/storage/idb.d.ts.map +0 -1
  139. package/dist/src/storage/idb.js +0 -236
  140. package/dist/src/storage/idb.js.map +0 -1
  141. package/dist/src/storage/index.d.ts +0 -152
  142. package/dist/src/storage/index.d.ts.map +0 -1
  143. package/dist/src/storage/index.js +0 -98
  144. package/dist/src/storage/index.js.map +0 -1
  145. package/dist/src/storage/sqlite.d.ts +0 -95
  146. package/dist/src/storage/sqlite.d.ts.map +0 -1
  147. package/dist/src/storage/sqlite.js +0 -206
  148. package/dist/src/storage/sqlite.js.map +0 -1
  149. package/dist/src/storage/types.d.ts +0 -57
  150. package/dist/src/storage/types.d.ts.map +0 -1
  151. package/dist/src/storage/types.js +0 -9
  152. package/dist/src/storage/types.js.map +0 -1
  153. package/dist/src/tokens.d.ts +0 -29
  154. package/dist/src/tokens.d.ts.map +0 -1
  155. package/dist/src/tokens.js +0 -89
  156. package/dist/src/tokens.js.map +0 -1
  157. package/dist/src/usd-price.d.ts +0 -34
  158. package/dist/src/usd-price.d.ts.map +0 -1
  159. package/dist/src/usd-price.js +0 -83
  160. package/dist/src/usd-price.js.map +0 -1
  161. package/dist/tests/api-client.test.d.ts +0 -2
  162. package/dist/tests/api-client.test.d.ts.map +0 -1
  163. package/dist/tests/api-client.test.js +0 -86
  164. package/dist/tests/api-client.test.js.map +0 -1
  165. package/dist/tests/client.test.d.ts +0 -2
  166. package/dist/tests/client.test.d.ts.map +0 -1
  167. package/dist/tests/client.test.js +0 -150
  168. package/dist/tests/client.test.js.map +0 -1
  169. package/dist/tests/index.test.d.ts +0 -2
  170. package/dist/tests/index.test.d.ts.map +0 -1
  171. package/dist/tests/index.test.js +0 -8
  172. package/dist/tests/index.test.js.map +0 -1
  173. package/dist/tests/onchain-refund.test.d.ts +0 -2
  174. package/dist/tests/onchain-refund.test.d.ts.map +0 -1
  175. package/dist/tests/onchain-refund.test.js +0 -279
  176. package/dist/tests/onchain-refund.test.js.map +0 -1
  177. package/dist/tests/signer.test.d.ts +0 -2
  178. package/dist/tests/signer.test.d.ts.map +0 -1
  179. package/dist/tests/signer.test.js +0 -92
  180. package/dist/tests/signer.test.js.map +0 -1
  181. package/dist/tests/sqlite-storage.test.d.ts +0 -2
  182. package/dist/tests/sqlite-storage.test.d.ts.map +0 -1
  183. package/dist/tests/sqlite-storage.test.js +0 -160
  184. package/dist/tests/sqlite-storage.test.js.map +0 -1
  185. package/dist/tests/storage.test.d.ts +0 -2
  186. package/dist/tests/storage.test.d.ts.map +0 -1
  187. package/dist/tests/storage.test.js +0 -184
  188. package/dist/tests/storage.test.js.map +0 -1
  189. package/dist/tsconfig.tsbuildinfo +0 -1
  190. package/dist/usdt0-bridge/bridge.d.ts +0 -82
  191. package/dist/usdt0-bridge/bridge.d.ts.map +0 -1
  192. package/dist/usdt0-bridge/bridge.js +0 -56
  193. package/dist/usdt0-bridge/bridge.js.map +0 -1
  194. package/dist/usdt0-bridge/chains.d.ts +0 -41
  195. package/dist/usdt0-bridge/chains.d.ts.map +0 -1
  196. package/dist/usdt0-bridge/chains.js +0 -117
  197. package/dist/usdt0-bridge/chains.js.map +0 -1
  198. package/dist/usdt0-bridge/layerzero-tracker.d.ts +0 -34
  199. package/dist/usdt0-bridge/layerzero-tracker.d.ts.map +0 -1
  200. package/dist/usdt0-bridge/layerzero-tracker.js +0 -86
  201. package/dist/usdt0-bridge/layerzero-tracker.js.map +0 -1
  202. package/dist/usdt0-bridge/oft-abi.d.ts +0 -145
  203. package/dist/usdt0-bridge/oft-abi.d.ts.map +0 -1
  204. package/dist/usdt0-bridge/oft-abi.js +0 -117
  205. package/dist/usdt0-bridge/oft-abi.js.map +0 -1
@@ -1,70 +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 type { GetSwapResponse } from "../api/client.js";
8
- import type { StoredSwap, SwapStorage, WalletStorage } from "./index.js";
9
- /**
10
- * IndexedDB implementation of WalletStorage using Dexie.
11
- *
12
- * Provides persistent storage for wallet data in browser environments.
13
- * Uses the shared "lendaswap-v3" database with a "wallet" table.
14
- *
15
- * @example
16
- * ```ts
17
- * const storage = new IdbWalletStorage();
18
- * await storage.setMnemonic("your mnemonic phrase");
19
- * ```
20
- */
21
- export declare class IdbWalletStorage implements WalletStorage {
22
- #private;
23
- constructor();
24
- /**
25
- * Whether a legacy (v2) wallet was migrated during this session.
26
- *
27
- * When true, the caller should invoke `client.recoverSwaps()` to
28
- * restore swap history from the server.
29
- */
30
- get migratedFromLegacy(): boolean;
31
- getMnemonic(): Promise<string | null>;
32
- setMnemonic(mnemonic: string): Promise<void>;
33
- getKeyIndex(): Promise<number>;
34
- setKeyIndex(index: number): Promise<void>;
35
- incrementKeyIndex(): Promise<number>;
36
- clear(): Promise<void>;
37
- }
38
- /**
39
- * IndexedDB implementation of SwapStorage using Dexie.
40
- *
41
- * Provides persistent storage for swap data in browser environments.
42
- * Uses the shared "lendaswap-v3" database with a "swaps" table.
43
- *
44
- * @example
45
- * ```ts
46
- * const storage = new IdbSwapStorage();
47
- * await storage.store({ swapId: "swap-id", ... });
48
- * ```
49
- */
50
- export declare class IdbSwapStorage implements SwapStorage {
51
- #private;
52
- constructor();
53
- get(swapId: string): Promise<StoredSwap | null>;
54
- store(swap: StoredSwap): Promise<void>;
55
- update(swapId: string, response: GetSwapResponse): Promise<void>;
56
- delete(swapId: string): Promise<void>;
57
- list(): Promise<string[]>;
58
- getAll(): Promise<StoredSwap[]>;
59
- clear(): Promise<void>;
60
- }
61
- /**
62
- * Storage factory for IndexedDB (browser) storage.
63
- *
64
- * Creates IDB-backed storage instances that persist data in the browser.
65
- */
66
- export declare const idbStorageFactory: {
67
- createWalletStorage: () => WalletStorage;
68
- createSwapStorage: () => SwapStorage;
69
- };
70
- //# sourceMappingURL=idb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"idb.d.ts","sourceRoot":"","sources":["../../../src/storage/idb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyDzE;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,aAAa;;;IAQpD;;;;;OAKG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAEK,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBrC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAUpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,YAAW,WAAW;;;IAO1C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAK/C,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKzB,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAgFD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;+BACH,aAAa;6BACf,WAAW;CACnC,CAAC"}
@@ -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,152 +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
- import type { GetSwapResponse } from "../api/client.js";
8
- import type { StoredSwap } from "./types.js";
9
- export type { StoredSwap } from "./types.js";
10
- export { SWAP_STORAGE_VERSION } from "./types.js";
11
- /**
12
- * Storage interface for wallet data (mnemonic, key index).
13
- *
14
- * Implementations should handle persistence of sensitive wallet data.
15
- * For browser environments, consider using IndexedDB with encryption.
16
- * For desktop/mobile, consider using SQLite with secure storage.
17
- */
18
- export interface WalletStorage {
19
- /**
20
- * Get the stored mnemonic phrase.
21
- * @returns The mnemonic phrase, or null if not stored.
22
- */
23
- getMnemonic(): Promise<string | null>;
24
- /**
25
- * Store the mnemonic phrase.
26
- * @param mnemonic - The mnemonic phrase to store.
27
- */
28
- setMnemonic(mnemonic: string): Promise<void>;
29
- /**
30
- * Get the current key derivation index.
31
- * @returns The current key index, defaults to 0 if not set.
32
- */
33
- getKeyIndex(): Promise<number>;
34
- /**
35
- * Set the key derivation index.
36
- * @param index - The new key index.
37
- */
38
- setKeyIndex(index: number): Promise<void>;
39
- /**
40
- * Increment and return the current key index.
41
- * @returns The index before incrementing (the one to use).
42
- */
43
- incrementKeyIndex(): Promise<number>;
44
- /**
45
- * Clear all wallet data from storage.
46
- */
47
- clear(): Promise<void>;
48
- }
49
- /**
50
- * Storage interface for swap data.
51
- *
52
- * Stores `StoredSwap` records which contain both the API response
53
- * and client-side parameters needed for claim/refund operations.
54
- */
55
- export interface SwapStorage {
56
- /**
57
- * Get swap data by ID.
58
- * @param swapId - The swap ID.
59
- * @returns The stored swap data, or null if not found.
60
- */
61
- get(swapId: string): Promise<StoredSwap | null>;
62
- /**
63
- * Store a new swap.
64
- * @param swap - The swap data to store (must include swapId).
65
- */
66
- store(swap: StoredSwap): Promise<void>;
67
- /**
68
- * Update an existing swap's API response.
69
- * @param swapId - The swap ID.
70
- * @param response - The updated API response.
71
- * @throws Error if swap is not found.
72
- */
73
- update(swapId: string, response: GetSwapResponse): Promise<void>;
74
- /**
75
- * Delete swap data by ID.
76
- * @param swapId - The swap ID.
77
- */
78
- delete(swapId: string): Promise<void>;
79
- /**
80
- * List all swap IDs.
81
- * @returns Array of swap IDs.
82
- */
83
- list(): Promise<string[]>;
84
- /**
85
- * Get all stored swaps.
86
- * @returns Array of all stored swap data.
87
- */
88
- getAll(): Promise<StoredSwap[]>;
89
- /**
90
- * Clear all swap data from storage.
91
- */
92
- clear(): Promise<void>;
93
- }
94
- /**
95
- * In-memory implementation of WalletStorage.
96
- *
97
- * Useful for testing or temporary sessions where persistence is not required.
98
- * Data is lost when the application is closed.
99
- *
100
- * @example
101
- * ```ts
102
- * const storage = new InMemoryWalletStorage();
103
- * await storage.setMnemonic("your mnemonic phrase");
104
- * ```
105
- */
106
- export declare class InMemoryWalletStorage implements WalletStorage {
107
- #private;
108
- getMnemonic(): Promise<string | null>;
109
- setMnemonic(mnemonic: string): Promise<void>;
110
- getKeyIndex(): Promise<number>;
111
- setKeyIndex(index: number): Promise<void>;
112
- incrementKeyIndex(): Promise<number>;
113
- clear(): Promise<void>;
114
- }
115
- /**
116
- * In-memory implementation of SwapStorage.
117
- *
118
- * Useful for testing or temporary sessions where persistence is not required.
119
- * Data is lost when the application is closed.
120
- *
121
- * @example
122
- * ```ts
123
- * const storage = new InMemorySwapStorage();
124
- * await storage.store({ swapId: "swap-id", ... });
125
- * ```
126
- */
127
- export declare class InMemorySwapStorage implements SwapStorage {
128
- #private;
129
- get(swapId: string): Promise<StoredSwap | null>;
130
- store(swap: StoredSwap): Promise<void>;
131
- update(swapId: string, response: GetSwapResponse): Promise<void>;
132
- delete(swapId: string): Promise<void>;
133
- list(): Promise<string[]>;
134
- getAll(): Promise<StoredSwap[]>;
135
- clear(): Promise<void>;
136
- }
137
- /**
138
- * Factory function type for creating storage instances.
139
- *
140
- * This allows the Client to accept different storage backends.
141
- */
142
- export type StorageFactory = {
143
- createWalletStorage: () => WalletStorage;
144
- createSwapStorage: () => SwapStorage;
145
- };
146
- /**
147
- * In-memory storage factory.
148
- *
149
- * Creates in-memory storage instances for testing or temporary sessions.
150
- */
151
- export declare const inMemoryStorageFactory: StorageFactory;
152
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.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,95 +0,0 @@
1
- /**
2
- * SQLite storage implementations for Node.js.
3
- *
4
- * Uses better-sqlite3 for fast, synchronous SQLite access.
5
- */
6
- import type { GetSwapResponse } from "../api/client.js";
7
- import type { SwapStorage, WalletStorage } from "./index.js";
8
- import type { StoredSwap } from "./types.js";
9
- /**
10
- * SQLite-based wallet storage for Node.js.
11
- *
12
- * Stores mnemonic and key index in a SQLite database.
13
- *
14
- * @example
15
- * ```ts
16
- * const storage = new SqliteWalletStorage("./lendaswap.db");
17
- * const client = await Client.builder()
18
- * .withSignerStorage(storage)
19
- * .build();
20
- * ```
21
- */
22
- export declare class SqliteWalletStorage implements WalletStorage {
23
- #private;
24
- /**
25
- * Creates a new SQLite wallet storage.
26
- * @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
27
- */
28
- constructor(dbPath: string);
29
- getMnemonic(): Promise<string | null>;
30
- setMnemonic(mnemonic: string): Promise<void>;
31
- getKeyIndex(): Promise<number>;
32
- setKeyIndex(index: number): Promise<void>;
33
- incrementKeyIndex(): Promise<number>;
34
- clear(): Promise<void>;
35
- /**
36
- * Closes the database connection.
37
- */
38
- close(): void;
39
- }
40
- /**
41
- * SQLite-based swap storage for Node.js.
42
- *
43
- * Stores swap data including responses and cryptographic parameters.
44
- *
45
- * @example
46
- * ```ts
47
- * const storage = new SqliteSwapStorage("./lendaswap.db");
48
- * const client = await Client.builder()
49
- * .withSwapStorage(storage)
50
- * .build();
51
- * ```
52
- */
53
- export declare class SqliteSwapStorage implements SwapStorage {
54
- #private;
55
- /**
56
- * Creates a new SQLite swap storage.
57
- * @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
58
- */
59
- constructor(dbPath: string);
60
- get(swapId: string): Promise<StoredSwap | null>;
61
- store(swap: StoredSwap): Promise<void>;
62
- update(swapId: string, response: GetSwapResponse): Promise<void>;
63
- delete(swapId: string): Promise<void>;
64
- list(): Promise<string[]>;
65
- getAll(): Promise<StoredSwap[]>;
66
- clear(): Promise<void>;
67
- /**
68
- * Closes the database connection.
69
- */
70
- close(): void;
71
- }
72
- /**
73
- * Creates a storage factory that uses SQLite for both wallet and swap storage.
74
- *
75
- * @param dbPath - Path to the SQLite database file.
76
- * @returns A storage factory with shared database connection.
77
- *
78
- * @example
79
- * ```ts
80
- * const { walletStorage, swapStorage, close } = sqliteStorageFactory("./lendaswap.db");
81
- * const client = await Client.builder()
82
- * .withSignerStorage(walletStorage)
83
- * .withSwapStorage(swapStorage)
84
- * .build();
85
- *
86
- * // When done:
87
- * close();
88
- * ```
89
- */
90
- export declare function sqliteStorageFactory(dbPath: string): {
91
- walletStorage: SqliteWalletStorage;
92
- swapStorage: SqliteSwapStorage;
93
- close: () => void;
94
- };
95
- //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,YAAW,aAAa;;IAGvD;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAgBpB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOrC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,WAAW;;IAGnD;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAuBpB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAS/C,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOzB,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAO/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG;IACpD,aAAa,EAAE,mBAAmB,CAAC;IACnC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAYA"}