@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,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,57 +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
- import type { GetSwapResponse } from "../api/client.js";
8
- /** Current schema version for stored swaps */
9
- export declare const SWAP_STORAGE_VERSION = 1;
10
- /**
11
- * Extended swap data stored locally.
12
- *
13
- * Contains both the API response and client-side parameters needed
14
- * for claim/refund operations. This matches the Rust SDK's
15
- * `ExtendedSwapStorageData` pattern.
16
- *
17
- * @example
18
- * ```ts
19
- * const storedSwap: StoredSwap = {
20
- * version: SWAP_STORAGE_VERSION,
21
- * swapId: "uuid-here",
22
- * keyIndex: 0,
23
- * response: await client.getSwap("uuid-here"),
24
- * publicKey: "02...",
25
- * preimage: "abc123...",
26
- * preimageHash: "def456...",
27
- * secretKey: "789...",
28
- * storedAt: Date.now(),
29
- * updatedAt: Date.now(),
30
- * };
31
- * ```
32
- */
33
- export interface StoredSwap {
34
- /** Schema version for migrations */
35
- version: number;
36
- /** The swap ID (primary key) */
37
- swapId: string;
38
- /** Key derivation index used for this swap */
39
- keyIndex: number;
40
- /** Full API response from GetSwap endpoint */
41
- response: GetSwapResponse;
42
- /** Compressed public key (hex-encoded, 33 bytes) */
43
- publicKey: string;
44
- /** Preimage for claiming HTLCs (hex-encoded, 32 bytes) */
45
- preimage: string;
46
- /** SHA256 hash of preimage / hash lock (hex-encoded, 32 bytes) */
47
- preimageHash: string;
48
- /** Secret key for signing refund transactions (hex-encoded, 32 bytes) */
49
- secretKey: string;
50
- /** Timestamp when the swap was first stored locally (ms since epoch) */
51
- storedAt: number;
52
- /** Timestamp when the swap was last updated locally (ms since epoch) */
53
- updatedAt: number;
54
- /** Target address for receiving funds (e.g., BTC address for EVM→Bitcoin swaps) */
55
- targetAddress?: string;
56
- }
57
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,QAAQ,EAAE,eAAe,CAAC;IAE1B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IAEjB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAElB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -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 = 1;
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"}
@@ -1,29 +0,0 @@
1
- import type { Chain, TokenId, TokenInfo } from "./api/client.js";
2
- /** A token identifier: either a plain string TokenId or a TokenInfo object. */
3
- export type TokenInput = TokenId;
4
- export declare const BTC_LIGHTNING: TokenId;
5
- export declare const BTC_ARKADE: TokenId;
6
- export declare const BTC_ONCHAIN: TokenId;
7
- export declare const BTC_LIGHTNING_INFO: TokenInfo;
8
- export declare const BTC_ARKADE_INFO: TokenInfo;
9
- export declare const BTC_ONCHAIN_INFO: TokenInfo;
10
- /** Returns true if the token is Bitcoin on Lightning. */
11
- export declare function isLightning(token: TokenInfo): boolean;
12
- /** Returns true if the token is Bitcoin on Arkade. */
13
- export declare function isArkade(token: TokenInfo): boolean;
14
- /** Returns true if the token is Bitcoin on-chain (L1). */
15
- export declare function isBtcOnchain(token: TokenInfo): boolean;
16
- /** Returns true if the token is any form of Bitcoin (Lightning, Arkade, or on-chain). */
17
- export declare function isBtc(token: TokenInfo): boolean;
18
- /** Returns true if the chain is an EVM chain (Ethereum, Polygon, or Arbitrum). */
19
- export declare function isEvmToken(chain: string): boolean;
20
- /** Returns true if the chain is Ethereum. */
21
- export declare function isEthereumToken(c: string): boolean;
22
- /** Returns true if the chain is Polygon. */
23
- export declare function isPolygonToken(c: string): boolean;
24
- /** Returns true if the chain is Arbitrum. */
25
- export declare function isArbitrumToken(chain: string): boolean;
26
- /** Normalizes any chain string to its canonical PascalCase Chain value. */
27
- export declare function toChain(str: string): Chain;
28
- export declare function toChainName(chain: Chain): string;
29
- //# sourceMappingURL=tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjE,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAGjC,eAAO,MAAM,aAAa,EAAE,OAAe,CAAC;AAC5C,eAAO,MAAM,UAAU,EAAE,OAAe,CAAC;AACzC,eAAO,MAAM,WAAW,EAAE,OAAe,CAAC;AAG1C,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAM7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAM9B,CAAC;AAIF,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAElD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEtD;AAED,yFAAyF;AACzF,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE/C;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAS1C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAWhD"}
@@ -1,89 +0,0 @@
1
- // Well-known token ID constants
2
- export const BTC_LIGHTNING = "btc";
3
- export const BTC_ARKADE = "btc";
4
- export const BTC_ONCHAIN = "btc";
5
- // Well-known TokenInfo constants
6
- export const BTC_LIGHTNING_INFO = {
7
- token_id: BTC_LIGHTNING,
8
- symbol: "BTC",
9
- name: "Bitcoin (Lightning)",
10
- decimals: 0,
11
- chain: "Lightning",
12
- };
13
- export const BTC_ARKADE_INFO = {
14
- token_id: BTC_ARKADE,
15
- symbol: "BTC",
16
- name: "Bitcoin (Arkade)",
17
- decimals: 0,
18
- chain: "Arkade",
19
- };
20
- export const BTC_ONCHAIN_INFO = {
21
- token_id: BTC_ONCHAIN,
22
- symbol: "BTC",
23
- name: "Bitcoin (On-chain)",
24
- decimals: 0,
25
- chain: "Bitcoin",
26
- };
27
- const EVM_CHAINS = ["1", "137", "42161"];
28
- /** Returns true if the token is Bitcoin on Lightning. */
29
- export function isLightning(token) {
30
- return token.chain === "Lightning";
31
- }
32
- /** Returns true if the token is Bitcoin on Arkade. */
33
- export function isArkade(token) {
34
- return token.chain === "Arkade";
35
- }
36
- /** Returns true if the token is Bitcoin on-chain (L1). */
37
- export function isBtcOnchain(token) {
38
- return token.chain === "Bitcoin";
39
- }
40
- /** Returns true if the token is any form of Bitcoin (Lightning, Arkade, or on-chain). */
41
- export function isBtc(token) {
42
- return isLightning(token) || isArkade(token) || isBtcOnchain(token);
43
- }
44
- /** Returns true if the chain is an EVM chain (Ethereum, Polygon, or Arbitrum). */
45
- export function isEvmToken(chain) {
46
- return EVM_CHAINS.includes(chain.toLowerCase());
47
- }
48
- /** Returns true if the chain is Ethereum. */
49
- export function isEthereumToken(c) {
50
- return c === "ethereum" || c === "1";
51
- }
52
- /** Returns true if the chain is Polygon. */
53
- export function isPolygonToken(c) {
54
- return c === "polygon" || c === "137";
55
- }
56
- /** Returns true if the chain is Arbitrum. */
57
- export function isArbitrumToken(chain) {
58
- return chain === "arbitrum" || chain === "42161";
59
- }
60
- /** Normalizes any chain string to its canonical PascalCase Chain value. */
61
- export function toChain(str) {
62
- const c = str.toLowerCase();
63
- if (c === "ethereum" || c === "1")
64
- return "1";
65
- if (c === "polygon" || c === "137")
66
- return "137";
67
- if (c === "arbitrum" || c === "42161")
68
- return "42161";
69
- if (c === "lightning")
70
- return "Lightning";
71
- if (c === "arkade")
72
- return "Arkade";
73
- if (c === "bitcoin")
74
- return "Bitcoin";
75
- return "Bitcoin";
76
- }
77
- export function toChainName(chain) {
78
- switch (chain) {
79
- case "1":
80
- return "Ethereum";
81
- case "137":
82
- return "Polygon";
83
- case "42161":
84
- return "Arbitrum";
85
- default:
86
- return chain.toString();
87
- }
88
- }
89
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/tokens.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * USD price fetching utilities using CoinGecko API.
3
- *
4
- * Provides functions to fetch current USD prices for tokens supported by the SDK.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { getUsdPrices } from '@lendasat/lendaswap-sdk';
9
- *
10
- * const prices = await getUsdPrices([
11
- * { symbol: "BTC", chain: "Lightning", token_id: "btc", name: "Bitcoin", decimals: 0 },
12
- * { symbol: "USDC", chain: "137", token_id: "usdc_pol", name: "USDC", decimals: 6 },
13
- * ]);
14
- * // prices is a Map<TokenInfo, number | null>
15
- * ```
16
- */
17
- import type { TokenInfo } from "./api/client.js";
18
- /**
19
- * Get the CoinGecko ID for a token by its symbol.
20
- *
21
- * @returns CoinGecko coin ID or null if not supported
22
- */
23
- export declare function getCoinGeckoId(token: TokenInfo): string | null;
24
- /**
25
- * Fetch current USD prices for multiple tokens in a single CoinGecko request.
26
- *
27
- * @param tokens - Array of TokenInfo objects
28
- * @returns Array of `{ token, usdPrice }` results in the same order as input
29
- */
30
- export declare function getUsdPrices(tokens: TokenInfo[]): Promise<{
31
- token: TokenInfo;
32
- usdPrice: number | null;
33
- }[]>;
34
- //# sourceMappingURL=usd-price.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usd-price.d.ts","sourceRoot":"","sources":["../../src/usd-price.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAyBjD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAE9D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,CAAC,CA0C1D"}
@@ -1,83 +0,0 @@
1
- /**
2
- * USD price fetching utilities using CoinGecko API.
3
- *
4
- * Provides functions to fetch current USD prices for tokens supported by the SDK.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { getUsdPrices } from '@lendasat/lendaswap-sdk';
9
- *
10
- * const prices = await getUsdPrices([
11
- * { symbol: "BTC", chain: "Lightning", token_id: "btc", name: "Bitcoin", decimals: 0 },
12
- * { symbol: "USDC", chain: "137", token_id: "usdc_pol", name: "USDC", decimals: 6 },
13
- * ]);
14
- * // prices is a Map<TokenInfo, number | null>
15
- * ```
16
- */
17
- const COINGECKO_API = "https://api.coingecko.com/api/v3";
18
- /**
19
- * Mapping from lowercase token symbol to CoinGecko coin ID.
20
- * Symbols are unique per chain, and the CoinGecko ID only depends on the symbol.
21
- */
22
- const SYMBOL_TO_COINGECKO = {
23
- btc: "bitcoin",
24
- usdc: "usd-coin",
25
- usdt: "tether",
26
- usdt0: "tether",
27
- xaut: "tether-gold",
28
- wbtc: "wrapped-bitcoin",
29
- pol: "matic-network",
30
- eth: "ethereum",
31
- };
32
- /**
33
- * Get the CoinGecko ID for a token by its symbol.
34
- *
35
- * @returns CoinGecko coin ID or null if not supported
36
- */
37
- export function getCoinGeckoId(token) {
38
- return SYMBOL_TO_COINGECKO[token.symbol.toLowerCase()] ?? null;
39
- }
40
- /**
41
- * Fetch current USD prices for multiple tokens in a single CoinGecko request.
42
- *
43
- * @param tokens - Array of TokenInfo objects
44
- * @returns Array of `{ token, usdPrice }` results in the same order as input
45
- */
46
- export async function getUsdPrices(tokens) {
47
- // Resolve unique CoinGecko IDs we need to fetch
48
- const coinGeckoIds = new Set();
49
- for (const token of tokens) {
50
- const id = getCoinGeckoId(token);
51
- if (id)
52
- coinGeckoIds.add(id);
53
- }
54
- if (coinGeckoIds.size === 0) {
55
- return tokens.map((token) => ({ token, usdPrice: null }));
56
- }
57
- const params = new URLSearchParams({
58
- ids: [...coinGeckoIds].join(","),
59
- vs_currencies: "usd",
60
- });
61
- try {
62
- const response = await fetch(`${COINGECKO_API}/simple/price?${params}`);
63
- if (!response.ok) {
64
- console.error(`CoinGecko API error: ${response.status} ${response.statusText}`);
65
- return tokens.map((token) => ({ token, usdPrice: null }));
66
- }
67
- const data = await response.json();
68
- return tokens.map((token) => {
69
- const coinGeckoId = getCoinGeckoId(token);
70
- if (!coinGeckoId)
71
- return { token, usdPrice: null };
72
- const priceData = data[coinGeckoId];
73
- if (!priceData)
74
- return { token, usdPrice: null };
75
- return { token, usdPrice: priceData.usd };
76
- });
77
- }
78
- catch (error) {
79
- console.error("Failed to fetch USD prices from CoinGecko:", error);
80
- return tokens.map((token) => ({ token, usdPrice: null }));
81
- }
82
- }
83
- //# sourceMappingURL=usd-price.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usd-price.js","sourceRoot":"","sources":["../../src/usd-price.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAEzD;;;GAGG;AACH,MAAM,mBAAmB,GAA2B;IAClD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,UAAU;CAChB,CAAC;AAQF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAmB;IAEnB,gDAAgD;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,EAAE;YAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAChC,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACjE,CAAC;YACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAiC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEjE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAEjD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=api-client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.test.d.ts","sourceRoot":"","sources":["../../tests/api-client.test.ts"],"names":[],"mappings":""}
@@ -1,86 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { createApiClient } from "../src";
3
- describe("API Client", () => {
4
- it("should create a client with base URL", () => {
5
- const client = createApiClient({
6
- baseUrl: "https://api.lendaswap.com",
7
- });
8
- expect(client).toBeDefined();
9
- expect(client.GET).toBeDefined();
10
- expect(client.POST).toBeDefined();
11
- });
12
- it("should create a client with API key", () => {
13
- const client = createApiClient({
14
- baseUrl: "https://api.lendaswap.com",
15
- apiKey: "test-api-key",
16
- });
17
- expect(client).toBeDefined();
18
- });
19
- });
20
- describe("API Client - Type Safety", () => {
21
- it("should have typed GET methods for known endpoints", async () => {
22
- const client = createApiClient({
23
- baseUrl: "https://api.lendaswap.com",
24
- });
25
- // These should type-check correctly
26
- // We're not actually calling the API, just verifying types compile
27
- const _getTokens = () => client.GET("/tokens");
28
- const _getQuote = () => client.GET("/quote", {
29
- params: {
30
- query: {
31
- source_chain: "Arkade",
32
- source_token: "btc",
33
- target_chain: "Polygon",
34
- target_token: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
35
- source_amount: 100000,
36
- },
37
- },
38
- });
39
- const _getSwap = () => client.GET("/swap/{id}", {
40
- params: { path: { id: "123e4567-e89b-12d3-a456-426614174000" } },
41
- });
42
- expect(_getTokens).toBeDefined();
43
- expect(_getQuote).toBeDefined();
44
- expect(_getSwap).toBeDefined();
45
- });
46
- it("should have typed POST methods for swap creation", async () => {
47
- const client = createApiClient({
48
- baseUrl: "https://api.lendaswap.com",
49
- });
50
- // Verify POST methods exist and type-check
51
- const _createArkadeToPolygon = () => client.POST("/swap/arkade/polygon", {
52
- body: {
53
- target_address: "0x1234567890123456789012345678901234567890",
54
- target_token: "usdc_pol",
55
- hash_lock: `0x${"ab".repeat(32)}`,
56
- refund_pk: `02${"cd".repeat(32)}`,
57
- user_id: `03${"ef".repeat(32)}`,
58
- source_amount: 100000,
59
- },
60
- });
61
- const _createLightningToPolygon = () => client.POST("/swap/lightning/polygon", {
62
- body: {
63
- target_address: "0x1234567890123456789012345678901234567890",
64
- target_token: "usdc_pol",
65
- hash_lock: `0x${"ab".repeat(32)}`,
66
- refund_pk: `02${"cd".repeat(32)}`,
67
- user_id: `03${"ef".repeat(32)}`,
68
- source_amount: 100000,
69
- },
70
- });
71
- const _createBitcoinToPolygon = () => client.POST("/swap/bitcoin/polygon", {
72
- body: {
73
- target_address: "0x1234567890123456789012345678901234567890",
74
- target_token: "usdc_pol",
75
- hash_lock: `0x${"ab".repeat(32)}`,
76
- refund_pk: `02${"cd".repeat(32)}`,
77
- user_id: `03${"ef".repeat(32)}`,
78
- source_amount: 100000,
79
- },
80
- });
81
- expect(_createArkadeToPolygon).toBeDefined();
82
- expect(_createLightningToPolygon).toBeDefined();
83
- expect(_createBitcoinToPolygon).toBeDefined();
84
- });
85
- });
86
- //# sourceMappingURL=api-client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.test.js","sourceRoot":"","sources":["../../tests/api-client.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../tests/client.test.ts"],"names":[],"mappings":""}