@lendasat/lendaswap-sdk-pure 0.3.0-preview.0 → 0.3.0-rc.1

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 (500) hide show
  1. package/README.md +129 -255
  2. package/dist/_esm-7KJOBTZC.js +3660 -0
  3. package/dist/_esm-7KJOBTZC.js.map +1 -0
  4. package/dist/_esm-UGRDSVEV.cjs +3662 -0
  5. package/dist/_esm-UGRDSVEV.cjs.map +1 -0
  6. package/dist/api/client.d.ts +4 -3
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/arkade-network.d.ts +8 -0
  9. package/dist/arkade-network.d.ts.map +1 -0
  10. package/dist/arkade.d.ts.map +1 -1
  11. package/dist/base-2KYNAFR3.cjs +109 -0
  12. package/dist/base-2KYNAFR3.cjs.map +1 -0
  13. package/dist/base-B6OGU65B.js +7 -0
  14. package/dist/base-B6OGU65B.js.map +1 -0
  15. package/dist/ccip-MPMAZOUF.js +5 -0
  16. package/dist/ccip-MPMAZOUF.js.map +1 -0
  17. package/dist/ccip-PD37NJHA.cjs +26 -0
  18. package/dist/ccip-PD37NJHA.cjs.map +1 -0
  19. package/dist/cctp/attestation.d.ts +62 -0
  20. package/dist/cctp/attestation.d.ts.map +1 -0
  21. package/dist/cctp/constants.d.ts +49 -0
  22. package/dist/cctp/constants.d.ts.map +1 -0
  23. package/dist/cctp/fee.d.ts +49 -0
  24. package/dist/cctp/fee.d.ts.map +1 -0
  25. package/dist/cctp/index.d.ts +14 -0
  26. package/dist/cctp/index.d.ts.map +1 -0
  27. package/dist/cctp/types.d.ts +76 -0
  28. package/dist/cctp/types.d.ts.map +1 -0
  29. package/dist/cctp/utils.d.ts +44 -0
  30. package/dist/cctp/utils.d.ts.map +1 -0
  31. package/dist/cctp-bridge/bridge.d.ts +62 -0
  32. package/dist/cctp-bridge/bridge.d.ts.map +1 -0
  33. package/dist/cctp-bridge/index.cjs +67 -0
  34. package/dist/cctp-bridge/index.cjs.map +1 -0
  35. package/dist/cctp-bridge/index.d.ts +17 -0
  36. package/dist/cctp-bridge/index.d.ts.map +1 -0
  37. package/dist/cctp-bridge/index.js +52 -0
  38. package/dist/cctp-bridge/index.js.map +1 -0
  39. package/dist/cctp-inbound/approveAndBurn.d.ts +68 -0
  40. package/dist/cctp-inbound/approveAndBurn.d.ts.map +1 -0
  41. package/dist/cctp-inbound/burn.d.ts +51 -0
  42. package/dist/cctp-inbound/burn.d.ts.map +1 -0
  43. package/dist/cctp-inbound/chainMap.d.ts +65 -0
  44. package/dist/cctp-inbound/chainMap.d.ts.map +1 -0
  45. package/dist/cctp-inbound/client.d.ts +1580 -0
  46. package/dist/cctp-inbound/client.d.ts.map +1 -0
  47. package/dist/cctp-inbound/eip2612.d.ts +77 -0
  48. package/dist/cctp-inbound/eip2612.d.ts.map +1 -0
  49. package/dist/cctp-inbound/evmSignerAdapter.d.ts +28 -0
  50. package/dist/cctp-inbound/evmSignerAdapter.d.ts.map +1 -0
  51. package/dist/cctp-inbound/fundSwap.d.ts +94 -0
  52. package/dist/cctp-inbound/fundSwap.d.ts.map +1 -0
  53. package/dist/cctp-inbound/index.d.ts +36 -0
  54. package/dist/cctp-inbound/index.d.ts.map +1 -0
  55. package/dist/cctp-inbound/permit2.d.ts +33 -0
  56. package/dist/cctp-inbound/permit2.d.ts.map +1 -0
  57. package/dist/cctp-inbound/preflight.d.ts +41 -0
  58. package/dist/cctp-inbound/preflight.d.ts.map +1 -0
  59. package/dist/cctp-inbound/recover.d.ts +89 -0
  60. package/dist/cctp-inbound/recover.d.ts.map +1 -0
  61. package/dist/cctp-inbound/smartAccount.d.ts +1524 -0
  62. package/dist/cctp-inbound/smartAccount.d.ts.map +1 -0
  63. package/dist/cctp-inbound/submit.d.ts +80 -0
  64. package/dist/cctp-inbound/submit.d.ts.map +1 -0
  65. package/dist/cctp-inbound/types.d.ts +30 -0
  66. package/dist/cctp-inbound/types.d.ts.map +1 -0
  67. package/dist/cctp-inbound/userOp.d.ts +92 -0
  68. package/dist/cctp-inbound/userOp.d.ts.map +1 -0
  69. package/dist/chunk-3JWT4OW2.js +369 -0
  70. package/dist/chunk-3JWT4OW2.js.map +1 -0
  71. package/dist/chunk-A4GKKURK.cjs +430 -0
  72. package/dist/chunk-A4GKKURK.cjs.map +1 -0
  73. package/dist/chunk-BZU3R5DJ.cjs +554 -0
  74. package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
  75. package/dist/chunk-C4YXYD24.js +418 -0
  76. package/dist/chunk-C4YXYD24.js.map +1 -0
  77. package/dist/chunk-CZNQYFDP.js +6141 -0
  78. package/dist/chunk-CZNQYFDP.js.map +1 -0
  79. package/dist/chunk-DKTFDGIU.js +2207 -0
  80. package/dist/chunk-DKTFDGIU.js.map +1 -0
  81. package/dist/chunk-DNSJDKTP.cjs +96 -0
  82. package/dist/chunk-DNSJDKTP.cjs.map +1 -0
  83. package/dist/chunk-EPKFLKTM.js +47093 -0
  84. package/dist/chunk-EPKFLKTM.js.map +1 -0
  85. package/dist/chunk-JBVKWKD4.cjs +50 -0
  86. package/dist/chunk-JBVKWKD4.cjs.map +1 -0
  87. package/dist/chunk-NPFJAXKV.js +551 -0
  88. package/dist/chunk-NPFJAXKV.js.map +1 -0
  89. package/dist/chunk-PKDJZJMV.cjs +2214 -0
  90. package/dist/chunk-PKDJZJMV.cjs.map +1 -0
  91. package/dist/chunk-PLDDJCW6.js +43 -0
  92. package/dist/chunk-PLDDJCW6.js.map +1 -0
  93. package/dist/chunk-RIOT5VOJ.cjs +47240 -0
  94. package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
  95. package/dist/chunk-WVZSHRV7.cjs +431 -0
  96. package/dist/chunk-WVZSHRV7.cjs.map +1 -0
  97. package/dist/chunk-YEZOPVAH.js +86 -0
  98. package/dist/chunk-YEZOPVAH.js.map +1 -0
  99. package/dist/chunk-YLWPBHMV.cjs +6311 -0
  100. package/dist/chunk-YLWPBHMV.cjs.map +1 -0
  101. package/dist/client.d.ts +630 -42
  102. package/dist/client.d.ts.map +1 -1
  103. package/dist/compose-quote.d.ts +104 -0
  104. package/dist/compose-quote.d.ts.map +1 -0
  105. package/dist/create/arkade-to-lightning.d.ts.map +1 -1
  106. package/dist/create/arkade.d.ts +4 -1
  107. package/dist/create/arkade.d.ts.map +1 -1
  108. package/dist/create/bitcoin-to-arkade.d.ts +4 -1
  109. package/dist/create/bitcoin-to-arkade.d.ts.map +1 -1
  110. package/dist/create/bitcoin.d.ts +4 -1
  111. package/dist/create/bitcoin.d.ts.map +1 -1
  112. package/dist/create/evm-to-arkade.d.ts +4 -1
  113. package/dist/create/evm-to-arkade.d.ts.map +1 -1
  114. package/dist/create/evm-to-bitcoin.d.ts +4 -1
  115. package/dist/create/evm-to-bitcoin.d.ts.map +1 -1
  116. package/dist/create/evm-to-lightning.d.ts.map +1 -1
  117. package/dist/create/index.d.ts +2 -1
  118. package/dist/create/index.d.ts.map +1 -1
  119. package/dist/create/lightning-to-arkade.d.ts +5 -2
  120. package/dist/create/lightning-to-arkade.d.ts.map +1 -1
  121. package/dist/create/lightning.d.ts +4 -15
  122. package/dist/create/lightning.d.ts.map +1 -1
  123. package/dist/create/retry.d.ts +29 -0
  124. package/dist/create/retry.d.ts.map +1 -0
  125. package/dist/create/types.d.ts +136 -11
  126. package/dist/create/types.d.ts.map +1 -1
  127. package/dist/delegate.cjs +23 -0
  128. package/dist/delegate.cjs.map +1 -0
  129. package/dist/delegate.d.ts +9 -0
  130. package/dist/delegate.d.ts.map +1 -1
  131. package/dist/delegate.js +5 -283
  132. package/dist/delegate.js.map +1 -1
  133. package/dist/dist-NE2R4YCX.js +5 -0
  134. package/dist/dist-NE2R4YCX.js.map +1 -0
  135. package/dist/dist-VEHYC67F.cjs +550 -0
  136. package/dist/dist-VEHYC67F.cjs.map +1 -0
  137. package/dist/escrow/index.d.ts +74 -0
  138. package/dist/escrow/index.d.ts.map +1 -0
  139. package/dist/esplora.d.ts +14 -0
  140. package/dist/esplora.d.ts.map +1 -1
  141. package/dist/evm/coordinator.d.ts +12 -0
  142. package/dist/evm/coordinator.d.ts.map +1 -1
  143. package/dist/evm/index.d.ts +2 -1
  144. package/dist/evm/index.d.ts.map +1 -1
  145. package/dist/evm/wallet.d.ts +210 -0
  146. package/dist/evm/wallet.d.ts.map +1 -0
  147. package/dist/generated/api.d.ts +1809 -245
  148. package/dist/generated/api.d.ts.map +1 -1
  149. package/dist/index.cjs +35958 -0
  150. package/dist/index.cjs.map +1 -0
  151. package/dist/index.d.ts +14 -7
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +35804 -23
  154. package/dist/index.js.map +1 -1
  155. package/dist/logging.d.ts +44 -0
  156. package/dist/logging.d.ts.map +1 -0
  157. package/dist/mine.wasm-JJEJEODX.js +9 -0
  158. package/dist/mine.wasm-JJEJEODX.js.map +1 -0
  159. package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
  160. package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
  161. package/dist/node.cjs +166 -0
  162. package/dist/node.cjs.map +1 -0
  163. package/dist/node.js +157 -18
  164. package/dist/node.js.map +1 -1
  165. package/dist/redeem/arkade.d.ts +6 -0
  166. package/dist/redeem/arkade.d.ts.map +1 -1
  167. package/dist/redeem/gasless.d.ts +19 -1
  168. package/dist/redeem/gasless.d.ts.map +1 -1
  169. package/dist/redeem/index.d.ts +2 -1
  170. package/dist/redeem/index.d.ts.map +1 -1
  171. package/dist/redeem/types.d.ts +3 -3
  172. package/dist/redeem/types.d.ts.map +1 -1
  173. package/dist/redeem/userop-claim.d.ts +44 -0
  174. package/dist/redeem/userop-claim.d.ts.map +1 -0
  175. package/dist/refund/arkade.d.ts +5 -0
  176. package/dist/refund/arkade.d.ts.map +1 -1
  177. package/dist/refund/{collab.d.ts → collab-arkade-evm.d.ts} +6 -6
  178. package/dist/refund/collab-arkade-evm.d.ts.map +1 -0
  179. package/dist/refund/collab-arkade-lightning.d.ts +64 -0
  180. package/dist/refund/collab-arkade-lightning.d.ts.map +1 -0
  181. package/dist/refund/index.d.ts +3 -2
  182. package/dist/refund/index.d.ts.map +1 -1
  183. package/dist/secp256k1-PJCSE4N6.cjs +30 -0
  184. package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
  185. package/dist/secp256k1-VZNNVEPN.js +5 -0
  186. package/dist/secp256k1-VZNNVEPN.js.map +1 -0
  187. package/dist/signer/index.d.ts +39 -4
  188. package/dist/signer/index.d.ts.map +1 -1
  189. package/dist/storage/types.d.ts +1 -1
  190. package/dist/tokens.d.ts +135 -7
  191. package/dist/tokens.d.ts.map +1 -1
  192. package/dist/types/chain-config.d.ts +50 -0
  193. package/dist/types/chain-config.d.ts.map +1 -0
  194. package/dist/types/chain.d.ts +24 -0
  195. package/dist/types/chain.d.ts.map +1 -0
  196. package/dist/types/dex-quote.d.ts +139 -0
  197. package/dist/types/dex-quote.d.ts.map +1 -0
  198. package/dist/types/index.d.ts +16 -0
  199. package/dist/types/index.d.ts.map +1 -0
  200. package/dist/types/network-fees.d.ts +43 -0
  201. package/dist/types/network-fees.d.ts.map +1 -0
  202. package/dist/types/quote.d.ts +87 -0
  203. package/dist/types/quote.d.ts.map +1 -0
  204. package/dist/types/referral-fee.d.ts +25 -0
  205. package/dist/types/referral-fee.d.ts.map +1 -0
  206. package/dist/types/swap-pairs.d.ts +37 -0
  207. package/dist/types/swap-pairs.d.ts.map +1 -0
  208. package/dist/usd-price.d.ts +8 -1
  209. package/dist/usd-price.d.ts.map +1 -1
  210. package/dist/usdt0-bridge/constants.d.ts +41 -0
  211. package/dist/usdt0-bridge/constants.d.ts.map +1 -0
  212. package/dist/usdt0-bridge/index.d.ts +10 -2
  213. package/dist/usdt0-bridge/index.d.ts.map +1 -1
  214. package/dist/usdt0-bridge/tracking.d.ts +61 -0
  215. package/dist/usdt0-bridge/tracking.d.ts.map +1 -0
  216. package/dist/usdt0-bridge/utils.d.ts +30 -0
  217. package/dist/usdt0-bridge/utils.d.ts.map +1 -0
  218. package/dist/version.d.ts +4 -0
  219. package/dist/version.d.ts.map +1 -0
  220. package/dist/wallet-SCGRX3EN.js +4 -0
  221. package/dist/wallet-SCGRX3EN.js.map +1 -0
  222. package/dist/wallet-SZJDXAY7.cjs +45 -0
  223. package/dist/wallet-SZJDXAY7.cjs.map +1 -0
  224. package/dist/ws.d.ts +21 -0
  225. package/dist/ws.d.ts.map +1 -0
  226. package/package.json +60 -24
  227. package/dist/api/client.js +0 -12
  228. package/dist/api/client.js.map +0 -1
  229. package/dist/arkade.js +0 -68
  230. package/dist/arkade.js.map +0 -1
  231. package/dist/client.js +0 -2817
  232. package/dist/client.js.map +0 -1
  233. package/dist/create/arkade-to-lightning.js +0 -65
  234. package/dist/create/arkade-to-lightning.js.map +0 -1
  235. package/dist/create/arkade.js +0 -76
  236. package/dist/create/arkade.js.map +0 -1
  237. package/dist/create/bitcoin-to-arkade.js +0 -69
  238. package/dist/create/bitcoin-to-arkade.js.map +0 -1
  239. package/dist/create/bitcoin.js +0 -67
  240. package/dist/create/bitcoin.js.map +0 -1
  241. package/dist/create/evm-to-arkade.js +0 -74
  242. package/dist/create/evm-to-arkade.js.map +0 -1
  243. package/dist/create/evm-to-bitcoin.js +0 -76
  244. package/dist/create/evm-to-bitcoin.js.map +0 -1
  245. package/dist/create/evm-to-lightning.js +0 -77
  246. package/dist/create/evm-to-lightning.js.map +0 -1
  247. package/dist/create/index.js +0 -20
  248. package/dist/create/index.js.map +0 -1
  249. package/dist/create/lightning-to-arkade.js +0 -62
  250. package/dist/create/lightning-to-arkade.js.map +0 -1
  251. package/dist/create/lightning.js +0 -72
  252. package/dist/create/lightning.js.map +0 -1
  253. package/dist/create/types.js +0 -5
  254. package/dist/create/types.js.map +0 -1
  255. package/dist/esplora.js +0 -47
  256. package/dist/esplora.js.map +0 -1
  257. package/dist/evm/coordinator.js +0 -715
  258. package/dist/evm/coordinator.js.map +0 -1
  259. package/dist/evm/htlc.js +0 -278
  260. package/dist/evm/htlc.js.map +0 -1
  261. package/dist/evm/index.js +0 -9
  262. package/dist/evm/index.js.map +0 -1
  263. package/dist/evm/signing.js +0 -70
  264. package/dist/evm/signing.js.map +0 -1
  265. package/dist/generated/api.js +0 -6
  266. package/dist/generated/api.js.map +0 -1
  267. package/dist/price-calculations.js +0 -135
  268. package/dist/price-calculations.js.map +0 -1
  269. package/dist/price-feed.d.ts +0 -124
  270. package/dist/price-feed.d.ts.map +0 -1
  271. package/dist/price-feed.js +0 -178
  272. package/dist/price-feed.js.map +0 -1
  273. package/dist/redeem/arkade.js +0 -217
  274. package/dist/redeem/arkade.js.map +0 -1
  275. package/dist/redeem/ethereum.js +0 -206
  276. package/dist/redeem/ethereum.js.map +0 -1
  277. package/dist/redeem/gasless.js +0 -71
  278. package/dist/redeem/gasless.js.map +0 -1
  279. package/dist/redeem/index.js +0 -189
  280. package/dist/redeem/index.js.map +0 -1
  281. package/dist/redeem/types.js +0 -36
  282. package/dist/redeem/types.js.map +0 -1
  283. package/dist/refund/arkade.js +0 -212
  284. package/dist/refund/arkade.js.map +0 -1
  285. package/dist/refund/collab.d.ts.map +0 -1
  286. package/dist/refund/collab.js +0 -339
  287. package/dist/refund/collab.js.map +0 -1
  288. package/dist/refund/index.js +0 -11
  289. package/dist/refund/index.js.map +0 -1
  290. package/dist/refund/onchain.js +0 -366
  291. package/dist/refund/onchain.js.map +0 -1
  292. package/dist/signer/index.js +0 -199
  293. package/dist/signer/index.js.map +0 -1
  294. package/dist/src/api/client.d.ts +0 -31
  295. package/dist/src/api/client.d.ts.map +0 -1
  296. package/dist/src/api/client.js +0 -12
  297. package/dist/src/api/client.js.map +0 -1
  298. package/dist/src/arkade.d.ts +0 -36
  299. package/dist/src/arkade.d.ts.map +0 -1
  300. package/dist/src/arkade.js +0 -68
  301. package/dist/src/arkade.js.map +0 -1
  302. package/dist/src/client.d.ts +0 -760
  303. package/dist/src/client.d.ts.map +0 -1
  304. package/dist/src/client.js +0 -2169
  305. package/dist/src/client.js.map +0 -1
  306. package/dist/src/create/arkade.d.ts +0 -34
  307. package/dist/src/create/arkade.d.ts.map +0 -1
  308. package/dist/src/create/arkade.js +0 -76
  309. package/dist/src/create/arkade.js.map +0 -1
  310. package/dist/src/create/bitcoin-to-arkade.d.ts +0 -36
  311. package/dist/src/create/bitcoin-to-arkade.d.ts.map +0 -1
  312. package/dist/src/create/bitcoin-to-arkade.js +0 -69
  313. package/dist/src/create/bitcoin-to-arkade.js.map +0 -1
  314. package/dist/src/create/bitcoin.d.ts +0 -31
  315. package/dist/src/create/bitcoin.d.ts.map +0 -1
  316. package/dist/src/create/bitcoin.js +0 -67
  317. package/dist/src/create/bitcoin.js.map +0 -1
  318. package/dist/src/create/evm-to-arkade.d.ts +0 -34
  319. package/dist/src/create/evm-to-arkade.d.ts.map +0 -1
  320. package/dist/src/create/evm-to-arkade.js +0 -69
  321. package/dist/src/create/evm-to-arkade.js.map +0 -1
  322. package/dist/src/create/evm-to-bitcoin.d.ts +0 -35
  323. package/dist/src/create/evm-to-bitcoin.d.ts.map +0 -1
  324. package/dist/src/create/evm-to-bitcoin.js +0 -71
  325. package/dist/src/create/evm-to-bitcoin.js.map +0 -1
  326. package/dist/src/create/evm-to-lightning.d.ts +0 -34
  327. package/dist/src/create/evm-to-lightning.d.ts.map +0 -1
  328. package/dist/src/create/evm-to-lightning.js +0 -66
  329. package/dist/src/create/evm-to-lightning.js.map +0 -1
  330. package/dist/src/create/index.d.ts +0 -19
  331. package/dist/src/create/index.d.ts.map +0 -1
  332. package/dist/src/create/index.js +0 -18
  333. package/dist/src/create/index.js.map +0 -1
  334. package/dist/src/create/lightning.d.ts +0 -31
  335. package/dist/src/create/lightning.d.ts.map +0 -1
  336. package/dist/src/create/lightning.js +0 -72
  337. package/dist/src/create/lightning.js.map +0 -1
  338. package/dist/src/create/types.d.ts +0 -247
  339. package/dist/src/create/types.d.ts.map +0 -1
  340. package/dist/src/create/types.js +0 -5
  341. package/dist/src/create/types.js.map +0 -1
  342. package/dist/src/delegate.d.ts +0 -62
  343. package/dist/src/delegate.d.ts.map +0 -1
  344. package/dist/src/delegate.js +0 -284
  345. package/dist/src/delegate.js.map +0 -1
  346. package/dist/src/esplora.d.ts +0 -41
  347. package/dist/src/esplora.d.ts.map +0 -1
  348. package/dist/src/esplora.js +0 -47
  349. package/dist/src/esplora.js.map +0 -1
  350. package/dist/src/evm/coordinator.d.ts +0 -247
  351. package/dist/src/evm/coordinator.d.ts.map +0 -1
  352. package/dist/src/evm/coordinator.js +0 -414
  353. package/dist/src/evm/coordinator.js.map +0 -1
  354. package/dist/src/evm/htlc.d.ts +0 -238
  355. package/dist/src/evm/htlc.d.ts.map +0 -1
  356. package/dist/src/evm/htlc.js +0 -278
  357. package/dist/src/evm/htlc.js.map +0 -1
  358. package/dist/src/evm/index.d.ts +0 -9
  359. package/dist/src/evm/index.d.ts.map +0 -1
  360. package/dist/src/evm/index.js +0 -9
  361. package/dist/src/evm/index.js.map +0 -1
  362. package/dist/src/evm/signing.d.ts +0 -30
  363. package/dist/src/evm/signing.d.ts.map +0 -1
  364. package/dist/src/evm/signing.js +0 -91
  365. package/dist/src/evm/signing.js.map +0 -1
  366. package/dist/src/generated/api.d.ts +0 -2736
  367. package/dist/src/generated/api.d.ts.map +0 -1
  368. package/dist/src/generated/api.js +0 -6
  369. package/dist/src/generated/api.js.map +0 -1
  370. package/dist/src/index.d.ts +0 -18
  371. package/dist/src/index.d.ts.map +0 -1
  372. package/dist/src/index.js +0 -24
  373. package/dist/src/index.js.map +0 -1
  374. package/dist/src/node.d.ts +0 -19
  375. package/dist/src/node.d.ts.map +0 -1
  376. package/dist/src/node.js +0 -19
  377. package/dist/src/node.js.map +0 -1
  378. package/dist/src/price-calculations.d.ts +0 -109
  379. package/dist/src/price-calculations.d.ts.map +0 -1
  380. package/dist/src/price-calculations.js +0 -135
  381. package/dist/src/price-calculations.js.map +0 -1
  382. package/dist/src/redeem/arkade.d.ts +0 -65
  383. package/dist/src/redeem/arkade.d.ts.map +0 -1
  384. package/dist/src/redeem/arkade.js +0 -217
  385. package/dist/src/redeem/arkade.js.map +0 -1
  386. package/dist/src/redeem/ethereum.d.ts +0 -52
  387. package/dist/src/redeem/ethereum.d.ts.map +0 -1
  388. package/dist/src/redeem/ethereum.js +0 -206
  389. package/dist/src/redeem/ethereum.js.map +0 -1
  390. package/dist/src/redeem/gasless.d.ts +0 -41
  391. package/dist/src/redeem/gasless.d.ts.map +0 -1
  392. package/dist/src/redeem/gasless.js +0 -71
  393. package/dist/src/redeem/gasless.js.map +0 -1
  394. package/dist/src/redeem/index.d.ts +0 -49
  395. package/dist/src/redeem/index.d.ts.map +0 -1
  396. package/dist/src/redeem/index.js +0 -189
  397. package/dist/src/redeem/index.js.map +0 -1
  398. package/dist/src/redeem/types.d.ts +0 -126
  399. package/dist/src/redeem/types.d.ts.map +0 -1
  400. package/dist/src/redeem/types.js +0 -36
  401. package/dist/src/redeem/types.js.map +0 -1
  402. package/dist/src/refund/arkade.d.ts +0 -62
  403. package/dist/src/refund/arkade.d.ts.map +0 -1
  404. package/dist/src/refund/arkade.js +0 -212
  405. package/dist/src/refund/arkade.js.map +0 -1
  406. package/dist/src/refund/index.d.ts +0 -10
  407. package/dist/src/refund/index.d.ts.map +0 -1
  408. package/dist/src/refund/index.js +0 -10
  409. package/dist/src/refund/index.js.map +0 -1
  410. package/dist/src/refund/onchain.d.ts +0 -137
  411. package/dist/src/refund/onchain.d.ts.map +0 -1
  412. package/dist/src/refund/onchain.js +0 -366
  413. package/dist/src/refund/onchain.js.map +0 -1
  414. package/dist/src/signer/index.d.ts +0 -106
  415. package/dist/src/signer/index.d.ts.map +0 -1
  416. package/dist/src/signer/index.js +0 -179
  417. package/dist/src/signer/index.js.map +0 -1
  418. package/dist/src/storage/idb.d.ts +0 -70
  419. package/dist/src/storage/idb.d.ts.map +0 -1
  420. package/dist/src/storage/idb.js +0 -236
  421. package/dist/src/storage/idb.js.map +0 -1
  422. package/dist/src/storage/index.d.ts +0 -152
  423. package/dist/src/storage/index.d.ts.map +0 -1
  424. package/dist/src/storage/index.js +0 -98
  425. package/dist/src/storage/index.js.map +0 -1
  426. package/dist/src/storage/sqlite.d.ts +0 -95
  427. package/dist/src/storage/sqlite.d.ts.map +0 -1
  428. package/dist/src/storage/sqlite.js +0 -206
  429. package/dist/src/storage/sqlite.js.map +0 -1
  430. package/dist/src/storage/types.d.ts +0 -57
  431. package/dist/src/storage/types.d.ts.map +0 -1
  432. package/dist/src/storage/types.js +0 -9
  433. package/dist/src/storage/types.js.map +0 -1
  434. package/dist/src/tokens.d.ts +0 -29
  435. package/dist/src/tokens.d.ts.map +0 -1
  436. package/dist/src/tokens.js +0 -89
  437. package/dist/src/tokens.js.map +0 -1
  438. package/dist/src/usd-price.d.ts +0 -34
  439. package/dist/src/usd-price.d.ts.map +0 -1
  440. package/dist/src/usd-price.js +0 -83
  441. package/dist/src/usd-price.js.map +0 -1
  442. package/dist/storage/idb.js +0 -236
  443. package/dist/storage/idb.js.map +0 -1
  444. package/dist/storage/index.js +0 -98
  445. package/dist/storage/index.js.map +0 -1
  446. package/dist/storage/sqlite.js +0 -206
  447. package/dist/storage/sqlite.js.map +0 -1
  448. package/dist/storage/types.js +0 -9
  449. package/dist/storage/types.js.map +0 -1
  450. package/dist/tests/api-client.test.d.ts +0 -2
  451. package/dist/tests/api-client.test.d.ts.map +0 -1
  452. package/dist/tests/api-client.test.js +0 -86
  453. package/dist/tests/api-client.test.js.map +0 -1
  454. package/dist/tests/client.test.d.ts +0 -2
  455. package/dist/tests/client.test.d.ts.map +0 -1
  456. package/dist/tests/client.test.js +0 -150
  457. package/dist/tests/client.test.js.map +0 -1
  458. package/dist/tests/index.test.d.ts +0 -2
  459. package/dist/tests/index.test.d.ts.map +0 -1
  460. package/dist/tests/index.test.js +0 -8
  461. package/dist/tests/index.test.js.map +0 -1
  462. package/dist/tests/onchain-refund.test.d.ts +0 -2
  463. package/dist/tests/onchain-refund.test.d.ts.map +0 -1
  464. package/dist/tests/onchain-refund.test.js +0 -279
  465. package/dist/tests/onchain-refund.test.js.map +0 -1
  466. package/dist/tests/signer.test.d.ts +0 -2
  467. package/dist/tests/signer.test.d.ts.map +0 -1
  468. package/dist/tests/signer.test.js +0 -92
  469. package/dist/tests/signer.test.js.map +0 -1
  470. package/dist/tests/sqlite-storage.test.d.ts +0 -2
  471. package/dist/tests/sqlite-storage.test.d.ts.map +0 -1
  472. package/dist/tests/sqlite-storage.test.js +0 -160
  473. package/dist/tests/sqlite-storage.test.js.map +0 -1
  474. package/dist/tests/storage.test.d.ts +0 -2
  475. package/dist/tests/storage.test.d.ts.map +0 -1
  476. package/dist/tests/storage.test.js +0 -184
  477. package/dist/tests/storage.test.js.map +0 -1
  478. package/dist/tokens.js +0 -89
  479. package/dist/tokens.js.map +0 -1
  480. package/dist/tsconfig.tsbuildinfo +0 -1
  481. package/dist/usd-price.js +0 -83
  482. package/dist/usd-price.js.map +0 -1
  483. package/dist/usdt0-bridge/bridge.d.ts +0 -82
  484. package/dist/usdt0-bridge/bridge.d.ts.map +0 -1
  485. package/dist/usdt0-bridge/bridge.js +0 -56
  486. package/dist/usdt0-bridge/bridge.js.map +0 -1
  487. package/dist/usdt0-bridge/chains.d.ts +0 -41
  488. package/dist/usdt0-bridge/chains.d.ts.map +0 -1
  489. package/dist/usdt0-bridge/chains.js +0 -117
  490. package/dist/usdt0-bridge/chains.js.map +0 -1
  491. package/dist/usdt0-bridge/index.js +0 -3
  492. package/dist/usdt0-bridge/index.js.map +0 -1
  493. package/dist/usdt0-bridge/layerzero-tracker.d.ts +0 -34
  494. package/dist/usdt0-bridge/layerzero-tracker.d.ts.map +0 -1
  495. package/dist/usdt0-bridge/layerzero-tracker.js +0 -86
  496. package/dist/usdt0-bridge/layerzero-tracker.js.map +0 -1
  497. package/dist/usdt0-bridge/oft-abi.d.ts +0 -145
  498. package/dist/usdt0-bridge/oft-abi.d.ts.map +0 -1
  499. package/dist/usdt0-bridge/oft-abi.js +0 -117
  500. package/dist/usdt0-bridge/oft-abi.js.map +0 -1
package/README.md CHANGED
@@ -15,28 +15,19 @@ This SDK supports the following swap directions:
15
15
 
16
16
  ### BTC to EVM
17
17
 
18
- | Source | Target | Status |
19
- | ------------ | --------------------------- | --------- |
20
- | Lightning | Polygon (USDC, USDT) | Supported |
21
- | Lightning | Arbitrum (USDC, USDT) | Supported |
22
- | Lightning | Ethereum (USDC, USDT, WBTC) | Supported |
23
- | Arkade | Polygon (USDC, USDT) | Supported |
24
- | Arkade | Arbitrum (USDC, USDT) | Supported |
25
- | Arkade | Ethereum (USDC, USDT, WBTC) | Supported |
26
- | On-chain BTC | Polygon (USDC, USDT) | Supported |
27
- | On-chain BTC | Arbitrum (USDC, USDT) | Supported |
28
- | On-chain BTC | Ethereum (USDC, USDT, WBTC) | Supported |
18
+ | Source | Target | Status |
19
+ | --------- | --------------------------- | --------- |
20
+ | Lightning | Ethereum, Polygon, Arbitrum | Supported |
21
+ | Arkade | Ethereum, Polygon, Arbitrum | Supported |
22
+ | On-chain | Ethereum, Polygon, Arbitrum | Supported |
29
23
 
30
24
  ### EVM to BTC
31
25
 
32
26
  | Source | Target | Status |
33
27
  | --------------------------- | --------- | --------- |
34
- | Polygon (USDC, USDT) | Arkade | Supported |
35
- | Polygon (USDC, USDT) | Lightning | Supported |
36
- | Arbitrum (USDC, USDT) | Arkade | Supported |
37
- | Arbitrum (USDC, USDT) | Lightning | Supported |
38
- | Ethereum (USDC, USDT, WBTC) | Arkade | Supported |
39
- | Ethereum (USDC, USDT, WBTC) | Lightning | Supported |
28
+ | Polygon, Arbitrus, Ethereum | Arkade | Supported |
29
+ | Polygon, Arbitrus, Ethereum | Lightning | Supported |
30
+ | Polygon, Arbitrus, Ethereum | On-chain | Supported |
40
31
 
41
32
  **Refund support:**
42
33
 
@@ -56,7 +47,6 @@ import { Client, IdbWalletStorage, IdbSwapStorage } from "@lendasat/lendaswap-sd
56
47
  const client = await Client.builder()
57
48
  .withSignerStorage(new IdbWalletStorage())
58
49
  .withSwapStorage(new IdbSwapStorage())
59
- .withApiKey("your-api-key")
60
50
  .build();
61
51
 
62
52
  // Or import an existing wallet
@@ -70,290 +60,182 @@ const client = await Client.builder()
70
60
  const mnemonic = client.getMnemonic();
71
61
  ```
72
62
 
73
- ### Get a Quote
63
+ ### API Status
74
64
 
75
65
  ```typescript
76
- // Get available asset pairs
77
- const pairs = await client.getAssetPairs();
66
+ const status = await client.getStatus();
67
+ console.log(status.healthy, status.services.bitcoin.healthy);
68
+ ```
69
+
70
+ ### Quotes
78
71
 
79
- // Get a quote for swapping 100k sats to USDC on Polygon
80
- const quote = await client.getQuote("btc_arkade", "usdc_pol", 100000);
72
+ ```typescript
73
+ import { Asset } from "@lendasat/lendaswap-sdk-pure";
74
+
75
+ const quote = await client.getQuote({
76
+ sourceChain: Asset.BTC_ARKADE.chain, // "Arkade"
77
+ sourceToken: Asset.BTC_ARKADE.tokenId, // "btc"
78
+ targetChain: Asset.USDC_POLYGON.chain, // "137"
79
+ targetToken: Asset.USDC_POLYGON.tokenId, // "0x3c499c..."
80
+ sourceAmount: 100_000, // sats
81
+ });
81
82
  console.log(`You'll receive: ${quote.target_amount} USDC`);
82
83
  ```
83
84
 
84
85
  ### Create a Swap
85
86
 
86
- #### Lightning to EVM
87
+ Use `createSwap` for all swap directions. The SDK routes automatically based on the source/target asset:
87
88
 
88
89
  ```typescript
89
- const result = await client.createLightningToEvmSwapGeneric({
90
- targetAddress: "0x1234567890abcdef1234567890abcdef12345678",
91
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
92
- evmChainId: 137, // 1 (Ethereum), 137 (Polygon), 42161 (Arbitrum)
93
- amountIn: 100000, // Amount in sats (or use amountOut for target amount)
90
+ // BTC EVM: Arkade to USDC on Polygon
91
+ const result = await client.createSwap({
92
+ source: Asset.BTC_ARKADE,
93
+ target: Asset.USDC_POLYGON,
94
+ sourceAmount: 100_000, // sats
95
+ targetAddress: "0x...", // your EVM address
94
96
  });
95
97
 
96
- // Pay the Lightning invoice to complete the swap
97
- console.log(`Pay this invoice: ${result.response.boltz_invoice}`);
98
- console.log(`Swap ID: ${result.response.id}`);
99
- ```
100
-
101
- #### Arkade to EVM
98
+ // EVM BTC: USDC on Polygon to Arkade
99
+ const result = await client.createSwap({
100
+ source: Asset.USDC_POLYGON,
101
+ target: Asset.BTC_ARKADE,
102
+ sourceAmount: 10_000_000, // 10 USDC (6 decimals)
103
+ targetAddress: "ark1...", // your Arkade address
104
+ userAddress: "0x...", // your EVM wallet address (required for EVM-sourced swaps)
105
+ });
102
106
 
103
- ```typescript
104
- // Create an Arkade-to-EVM swap (any ERC-20 token via 1inch)
105
- const result = await client.createArkadeToEvmSwapGeneric({
106
- targetAddress: "0x1234567890abcdef1234567890abcdef12345678",
107
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
108
- evmChainId: 137,
109
- sourceAmount: 100000, // sats
107
+ // Or use any token by chain + contract address
108
+ const result = await client.createSwap({
109
+ source: {chain: "42161", tokenId: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"}, // USDC on Arbitrum
110
+ target: Asset.BTC_LIGHTNING,
111
+ targetAddress: "lnbc...", // BOLT11 invoice
110
112
  });
111
113
 
112
- // Send BTC to the Arkade VHTLC address
113
- console.log(`Send BTC to: ${result.response.btc_vhtlc_address}`);
114
- console.log(`Swap ID: ${result.response.id}`);
115
-
116
- // Once the server has funded the EVM HTLC (status: "serverfunded"),
117
- // claim gaslessly — the server submits the tx on your behalf:
118
- const claimResult = await client.claimViaGasless(
119
- result.response.id,
120
- async (digest) => {
121
- // Sign the EIP-712 digest with your EVM wallet
122
- // e.g. using ethers.js: wallet.signMessage(ethers.getBytes(digest))
123
- return { v: 27, r: "0x...", s: "0x..." };
124
- },
125
- "0x1234567890abcdef1234567890abcdef12345678", // destination
126
- );
127
- console.log(`Claimed! TX: ${claimResult.txHash}`);
114
+ const swapId = result.response.id;
128
115
  ```
129
116
 
130
- #### On-chain BTC to EVM
117
+ ### Fund EVM-Sourced Swaps
131
118
 
132
- ```typescript
133
- const result = await client.createBitcoinToEvmSwap({
134
- targetAddress: "0x1234567890abcdef1234567890abcdef12345678",
135
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
136
- evmChainId: 137,
137
- sourceAmount: 100000, // sats
138
- });
119
+ EVM-sourced swaps need to be funded after creation. The SDK handles the full Permit2 flow (allowance check, ERC-20
120
+ approval, EIP-712 signing, transaction submission) in a single call:
139
121
 
140
- // Send BTC to the on-chain HTLC address
141
- console.log(`Send BTC to: ${result.response.btc_htlc_address}`);
142
- console.log(`Swap ID: ${result.response.id}`);
122
+ ```typescript
123
+ // Fund with an external wallet
124
+ const {txHash} = await client.fundSwap(swapId, signer);
143
125
  ```
144
126
 
145
- #### EVM to Arkade
127
+ ### The EvmSigner Interface
146
128
 
147
- ```typescript
148
- const result = await client.createEvmToArkadeSwapGeneric({
149
- targetAddress: "ark1...", // Your Arkade address
150
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
151
- evmChainId: 137,
152
- userAddress: "0x...", // Your EVM wallet address
153
- sourceAmount: 100000000n, // Amount in token's smallest unit (e.g., 6 decimals for USDC)
154
- });
129
+ `EvmSigner` is a minimal wallet abstraction. Implement it once for your stack — the SDK stays free of EVM library
130
+ dependencies:
155
131
 
156
- // Fund the EVM HTLC via coordinator
157
- console.log(`Swap ID: ${result.response.id}`);
132
+ ```typescript
133
+ import type { EvmSigner } from "@lendasat/lendaswap-sdk-pure";
158
134
  ```
159
135
 
160
- #### EVM to Lightning
136
+ **wagmi / viem:**
161
137
 
162
138
  ```typescript
163
- const result = await client.createEvmToLightningSwapGeneric({
164
- lightningInvoice: "lnbc...", // BOLT11 invoice (amount derived from invoice)
165
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
166
- evmChainId: 137,
167
- userAddress: "0x...", // Your EVM wallet address
168
- });
169
-
170
- // Fund the EVM HTLC via coordinator
171
- console.log(`Swap ID: ${result.response.id}`);
139
+ import { createPublicClient, http } from "viem";
140
+
141
+ const publicClient = createPublicClient({chain, transport: http()});
142
+
143
+ const signer: EvmSigner = {
144
+ address: walletClient.account.address,
145
+ chainId: chain.id,
146
+ signTypedData: (td) =>
147
+ walletClient.signTypedData({...td, account: walletClient.account}),
148
+ sendTransaction: (tx) =>
149
+ walletClient.sendTransaction({to: tx.to, data: tx.data, chain, gas: tx.gas}),
150
+ waitForReceipt: (hash) =>
151
+ publicClient.waitForTransactionReceipt({hash}).then((r) => ({
152
+ status: r.status,
153
+ blockNumber: r.blockNumber,
154
+ transactionHash: r.transactionHash,
155
+ })),
156
+ getTransaction: (hash) =>
157
+ publicClient.getTransaction({hash}).then((tx) => ({
158
+ to: tx.to ?? null, input: tx.input, from: tx.from,
159
+ })),
160
+ call: (tx) =>
161
+ publicClient.call({to: tx.to, data: tx.data, account: tx.from, blockNumber: tx.blockNumber})
162
+ .then((r) => r.data ?? "0x"),
163
+ };
172
164
  ```
173
165
 
174
- #### EVM to Bitcoin (on-chain)
166
+ **ethers.js v6:**
175
167
 
176
168
  ```typescript
177
- const result = await client.createEvmToBitcoinSwap({
178
- tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
179
- evmChainId: 137,
180
- userAddress: "0x...", // Your EVM wallet address
181
- targetAddress: "bc1p...", // Your BTC address
182
- sourceAmount: 100000000n, // Amount in token's smallest unit
183
- });
184
-
185
- // Fund the EVM HTLC, then redeem BTC once server funds the BTC HTLC
186
- console.log(`Swap ID: ${result.response.id}`);
169
+ const signer: EvmSigner = {
170
+ address: await wallet.getAddress(),
171
+ chainId: Number((await wallet.provider.getNetwork()).chainId),
172
+ signTypedData: (td) =>
173
+ wallet.signTypedData(td.domain, td.types, td.message),
174
+ sendTransaction: (tx) =>
175
+ wallet.sendTransaction({to: tx.to, data: tx.data, gasLimit: tx.gas})
176
+ .then((r) => r.hash),
177
+ waitForReceipt: (hash) =>
178
+ wallet.provider.waitForTransaction(hash).then((r) => ({
179
+ status: r.status === 1 ? "success" : "reverted",
180
+ blockNumber: BigInt(r.blockNumber),
181
+ transactionHash: r.hash,
182
+ })
183
+ ),
184
+ getTransaction: (hash) =>
185
+ wallet.provider.getTransaction(hash).then((tx) => ({
186
+ to: tx.to, input: tx.data, from: tx.from,
187
+ })),
188
+ call: (tx) =>
189
+ wallet.provider.call({to: tx.to, data: tx.data, from: tx.from, blockTag: tx.blockNumber}),
190
+ };
187
191
  ```
188
192
 
189
193
  ### Monitor Swap Status
190
194
 
191
195
  ```typescript
192
- // Get current swap status
193
- const swap = await client.getSwap("swap-uuid");
196
+ const swap = await client.getSwap(swapId);
194
197
  console.log(`Status: ${swap.status}`);
195
198
 
196
- // Status flow: pending -> clientfunded -> serverfunded -> clientredeemed -> serverredeemed
199
+ // Status flow: pending clientfunded serverfunded clientredeemed serverredeemed
197
200
  ```
198
201
 
199
- ### Claim EVM Tokens
202
+ ### Claim
200
203
 
201
- Once the server has funded the EVM HTLC (`serverfunded` status), claim your tokens:
204
+ For BTC-to-EVM swaps, once the server has funded the EVM HTLC (`serverfunded`), claim your tokens:
202
205
 
203
206
  ```typescript
204
- // Gasless claim for Arkade-to-EVM swaps — the server submits the tx
205
- const claimResult = await client.claimViaGasless(
206
- "swap-uuid",
207
- async (digest) => {
208
- // Sign the EIP-712 digest with your EVM wallet
209
- return { v: 27, r: "0x...", s: "0x..." };
210
- },
211
- "0xYourDestinationAddress",
212
- );
213
- console.log(`Claim tx: ${claimResult.txHash}`);
214
-
215
- // For other swap types (Lightning/On-chain to EVM), use the existing claim:
216
- const result = await client.claim("swap-uuid");
207
+ const result = await client.claim(swapId);
217
208
  ```
218
209
 
219
- ### Refund (if swap times out)
210
+ ### Refund
211
+
212
+ If a swap times out, refund your funds:
220
213
 
221
214
  ```typescript
222
- // For on-chain BTC swaps
223
- const refundResult = await client.refundSwap("swap-uuid", {
224
- destinationAddress: "bc1q...", // Your Bitcoin address
225
- feeRateSatPerVb: 5,
215
+ // BTC swaps (on-chain or Arkade)
216
+ const result = await client.refundSwap(swapId, {
217
+ destinationAddress: "bc1q...", // or "ark1..."
226
218
  });
227
219
 
228
- // For Arkade swaps
229
- const refundResult = await client.refundSwap("swap-uuid", {
230
- destinationAddress: "ark1...", // Your Arkade address
231
- });
232
- ```
220
+ // EVM swaps — manual refund (after timelock expires, user pays gas)
221
+ const {txHash} = await client.refundEvmWithSigner(swapId, signer, "direct");
233
222
 
234
- ### Storage
223
+ // EVM swaps — collaborative refund (instant, gasless, server cosigns)
224
+ const {txHash} = await client.collabRefundEvmWithSigner(swapId, signer, "swap-back");
235
225
 
236
- The SDK provides pluggable storage interfaces for persisting wallet and swap data.
237
- Browser storage uses [Dexie](https://dexie.org/) for IndexedDB access with the database name `lendaswap-v3`.
238
-
239
- **Storage Types:**
240
-
241
- - `WalletStorage` - Stores mnemonic and key derivation index
242
- - `SwapStorage` - Stores `StoredSwap` records (API response + client-side params)
243
-
244
- **StoredSwap Structure:**
245
-
246
- Each swap is stored with both the API response and client-side parameters needed for claim/refund operations:
247
-
248
- ```typescript
249
- interface StoredSwap {
250
- version: number; // Schema version for migrations
251
- swapId: string; // Primary key
252
- keyIndex: number; // Key derivation index
253
- response: GetSwapResponse; // Full API response
254
- publicKey: string; // Hex-encoded compressed public key
255
- preimage: string; // Hex-encoded preimage for claiming HTLCs
256
- preimageHash: string; // Hex-encoded hash lock
257
- secretKey: string; // Hex-encoded secret key for signing
258
- storedAt: number; // Timestamp when first stored
259
- updatedAt: number; // Timestamp when last updated
260
- }
226
+ // EVM swaps collaborative refund for gasless swaps (SDK signs internally)
227
+ const {txHash} = await client.collabRefundEvmSwap(swapId, "swap-back");
261
228
  ```
262
229
 
263
- **Usage:**
264
-
265
- ```typescript
266
- import {
267
- InMemoryWalletStorage,
268
- InMemorySwapStorage,
269
- IdbWalletStorage, // Browser only (IndexedDB via Dexie)
270
- IdbSwapStorage, // Browser only (IndexedDB via Dexie)
271
- idbStorageFactory, // Factory for creating IDB storage
272
- inMemoryStorageFactory,
273
- SWAP_STORAGE_VERSION,
274
- type StoredSwap,
275
- } from "@lendasat/lendaswap-sdk-pure";
276
-
277
- // In-memory storage (for testing or temporary sessions)
278
- const walletStorage = new InMemoryWalletStorage();
279
- const swapStorage = new InMemorySwapStorage();
280
-
281
- // IndexedDB storage (for browser persistence)
282
- // Uses shared "lendaswap-v3" database with "wallet" and "swaps" tables
283
- const walletStorage = new IdbWalletStorage();
284
- const swapStorage = new IdbSwapStorage();
285
-
286
- // Store a swap
287
- await swapStorage.store({
288
- version: SWAP_STORAGE_VERSION,
289
- swapId: "uuid",
290
- keyIndex: 0,
291
- response: apiResponse,
292
- publicKey: "02...",
293
- preimage: "...",
294
- preimageHash: "...",
295
- secretKey: "...",
296
- storedAt: Date.now(),
297
- updatedAt: Date.now(),
298
- });
230
+ Refund mode controls what token you receive:
299
231
 
300
- // Update swap response (e.g., after polling for status)
301
- await swapStorage.update("uuid", newApiResponse);
232
+ - `"direct"` refund as WBTC/TBTC (the HTLC lock token)
233
+ - `"swap-back"` — refund as the original source token (e.g., USDC) via DEX swap
302
234
 
303
- // Custom storage (implement the WalletStorage/SwapStorage interfaces)
304
- // For React Native, you might use AsyncStorage or SQLite
305
- ```
306
-
307
- ## Development
308
-
309
- ### Project Structure
235
+ ### Storage
310
236
 
311
- ```
312
- src/
313
- ├── api/
314
- │ └── client.ts # Low-level API client wrapper
315
- ├── generated/
316
- │ └── api.ts # Auto-generated types from OpenAPI spec
317
- ├── create/
318
- │ ├── index.ts # Swap creation exports
319
- │ ├── types.ts # Type definitions for swap creation
320
- │ ├── arkade.ts # Arkade-to-EVM swap creation
321
- │ ├── bitcoin.ts # Bitcoin-to-EVM swap creation
322
- │ ├── bitcoin-to-arkade.ts # Bitcoin-to-Arkade swap creation
323
- │ ├── evm-to-arkade.ts # EVM-to-Arkade swap creation
324
- │ ├── evm-to-bitcoin.ts # EVM-to-Bitcoin swap creation
325
- │ ├── evm-to-lightning.ts # EVM-to-Lightning swap creation
326
- │ └── lightning.ts # Lightning-to-EVM swap creation
327
- ├── redeem/
328
- │ ├── index.ts # Claim/redeem operation exports
329
- │ ├── arkade.ts # Arkade claim logic
330
- │ ├── ethereum.ts # Ethereum claim logic
331
- │ └── gasless.ts # Gasless claim logic
332
- ├── refund/
333
- │ ├── index.ts # Refund operation exports
334
- │ ├── arkade.ts # Arkade refund logic
335
- │ └── onchain.ts # On-chain refund logic
336
- ├── evm/
337
- │ ├── index.ts # EVM HTLC utilities
338
- │ ├── coordinator.ts # Coordinator interaction
339
- │ ├── htlc.ts # HTLC contract utilities
340
- │ └── signing.ts # EVM signing utilities
341
- ├── signer/
342
- │ └── index.ts # HD wallet key derivation (BIP39/BIP32)
343
- ├── storage/
344
- │ ├── index.ts # Storage interfaces and in-memory implementations
345
- │ ├── idb.ts # IndexedDB storage for browsers
346
- │ ├── sqlite.ts # SQLite storage for Node.js
347
- │ └── types.ts # StoredSwap type definition
348
- ├── client.ts # High-level Client class with convenience methods
349
- ├── arkade.ts # Arkade VHTLC query utilities
350
- ├── delegate.ts # Delegate settlement utilities
351
- ├── tokens.ts # Token helpers and constants
352
- ├── usd-price.ts # USD price fetching via CoinGecko
353
- ├── price-calculations.ts # Price calculation utilities
354
- ├── node.ts # Node.js-specific exports (SQLite storage)
355
- └── index.ts # Public exports
356
- ```
237
+ The SDK provides pluggable storage interfaces for persisting wallet and swap data.
238
+ Browser storage uses [Dexie](https://dexie.org/) for IndexedDB access with the database name `lendaswap-v3`.
357
239
 
358
240
  ### Auto-generated API Types
359
241
 
@@ -375,7 +257,7 @@ When the backend API changes:
375
257
 
376
258
  1. Download the latest OpenAPI spec from the backend:
377
259
  ```bash
378
- curl -o openapi.json https://api.lendaswap.com/api-docs/openapi.json
260
+ curl -o openapi.json https://api.satora.io/api-docs/openapi.json
379
261
  ```
380
262
 
381
263
  2. Run the generate command:
@@ -402,11 +284,3 @@ When adding new functionality:
402
284
  1. **API methods**: Add convenience methods to `src/client.ts` that wrap the low-level API calls
403
285
  2. **New types**: If the backend adds new endpoints, regenerate the API types first
404
286
  3. **Exports**: Update `src/index.ts` to export any new public types or classes
405
-
406
- ### Dependencies
407
-
408
- - `openapi-fetch` - Type-safe HTTP client for OpenAPI specs
409
- - `@noble/hashes` - Cryptographic hash functions
410
- - `@scure/bip32` - BIP32 HD wallet derivation
411
- - `@scure/bip39` - BIP39 mnemonic phrase handling
412
- - `dexie` - IndexedDB wrapper for browser storage