@lombard.finance/sdk 3.7.4 → 4.0.0

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 (855) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +102 -698
  3. package/dist/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.d.ts +15 -0
  4. package/dist/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.d.ts.map +1 -0
  5. package/dist/api-functions/getDepositAddressReferrer/index.d.ts +2 -0
  6. package/dist/api-functions/getDepositAddressReferrer/index.d.ts.map +1 -0
  7. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.d.ts +1 -1
  8. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.d.ts.map +1 -1
  9. package/dist/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.d.ts +3 -0
  10. package/dist/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.d.ts.map +1 -1
  11. package/dist/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.d.ts +8 -0
  12. package/dist/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.d.ts.map +1 -1
  13. package/dist/api-functions/setReferral/setReferral.d.ts +5 -1
  14. package/dist/api-functions/setReferral/setReferral.d.ts.map +1 -1
  15. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.d.ts +5 -1
  16. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.d.ts.map +1 -1
  17. package/dist/bridge/lib/config.d.ts +5 -5
  18. package/dist/chains/btc/BtcActions.d.ts +155 -0
  19. package/dist/chains/btc/BtcActions.d.ts.map +1 -0
  20. package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts +83 -0
  21. package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts.map +1 -0
  22. package/dist/chains/btc/actions/deposit/config/evm.d.ts +22 -0
  23. package/dist/chains/btc/actions/deposit/config/evm.d.ts.map +1 -0
  24. package/dist/chains/btc/actions/deposit/config/index.d.ts +27 -0
  25. package/dist/chains/btc/actions/deposit/config/index.d.ts.map +1 -0
  26. package/dist/chains/btc/actions/deposit/config/types.d.ts +90 -0
  27. package/dist/chains/btc/actions/deposit/config/types.d.ts.map +1 -0
  28. package/dist/chains/btc/actions/deposit/factory.d.ts +39 -0
  29. package/dist/chains/btc/actions/deposit/factory.d.ts.map +1 -0
  30. package/dist/chains/btc/actions/deposit/index.d.ts +11 -0
  31. package/dist/chains/btc/actions/deposit/index.d.ts.map +1 -0
  32. package/dist/chains/btc/actions/deposit/types.d.ts +94 -0
  33. package/dist/chains/btc/actions/deposit/types.d.ts.map +1 -0
  34. package/dist/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.d.ts +69 -0
  35. package/dist/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.d.ts.map +1 -0
  36. package/dist/chains/btc/actions/depositAndDeploy/config/evm.d.ts +19 -0
  37. package/dist/chains/btc/actions/depositAndDeploy/config/evm.d.ts.map +1 -0
  38. package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts +54 -0
  39. package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts.map +1 -0
  40. package/dist/chains/btc/actions/depositAndDeploy/config/types.d.ts +54 -0
  41. package/dist/chains/btc/actions/depositAndDeploy/config/types.d.ts.map +1 -0
  42. package/dist/chains/btc/actions/depositAndDeploy/factory.d.ts +32 -0
  43. package/dist/chains/btc/actions/depositAndDeploy/factory.d.ts.map +1 -0
  44. package/dist/chains/btc/actions/depositAndDeploy/index.d.ts +12 -0
  45. package/dist/chains/btc/actions/depositAndDeploy/index.d.ts.map +1 -0
  46. package/dist/chains/btc/actions/depositAndDeploy/types.d.ts +93 -0
  47. package/dist/chains/btc/actions/depositAndDeploy/types.d.ts.map +1 -0
  48. package/dist/chains/btc/actions/index.d.ts +9 -0
  49. package/dist/chains/btc/actions/index.d.ts.map +1 -0
  50. package/dist/chains/btc/actions/shared/BaseBtcAction.d.ts +201 -0
  51. package/dist/chains/btc/actions/shared/BaseBtcAction.d.ts.map +1 -0
  52. package/dist/chains/btc/actions/shared/index.d.ts +13 -0
  53. package/dist/chains/btc/actions/shared/index.d.ts.map +1 -0
  54. package/dist/chains/btc/actions/shared/tokenUtils.d.ts +54 -0
  55. package/dist/chains/btc/actions/shared/tokenUtils.d.ts.map +1 -0
  56. package/dist/chains/btc/actions/shared/validation.d.ts +90 -0
  57. package/dist/chains/btc/actions/shared/validation.d.ts.map +1 -0
  58. package/dist/chains/btc/actions/stake/BtcStake.d.ts +82 -0
  59. package/dist/chains/btc/actions/stake/BtcStake.d.ts.map +1 -0
  60. package/dist/chains/btc/actions/stake/config/evm.d.ts +20 -0
  61. package/dist/chains/btc/actions/stake/config/evm.d.ts.map +1 -0
  62. package/dist/chains/btc/actions/stake/config/index.d.ts +63 -0
  63. package/dist/chains/btc/actions/stake/config/index.d.ts.map +1 -0
  64. package/dist/chains/btc/actions/stake/config/solana.d.ts +20 -0
  65. package/dist/chains/btc/actions/stake/config/solana.d.ts.map +1 -0
  66. package/dist/chains/btc/actions/stake/config/starknet.d.ts +21 -0
  67. package/dist/chains/btc/actions/stake/config/starknet.d.ts.map +1 -0
  68. package/dist/chains/btc/actions/stake/config/sui.d.ts +20 -0
  69. package/dist/chains/btc/actions/stake/config/sui.d.ts.map +1 -0
  70. package/dist/chains/btc/actions/stake/config/types.d.ts +127 -0
  71. package/dist/chains/btc/actions/stake/config/types.d.ts.map +1 -0
  72. package/dist/chains/btc/actions/stake/factory.d.ts +39 -0
  73. package/dist/chains/btc/actions/stake/factory.d.ts.map +1 -0
  74. package/dist/chains/btc/actions/stake/index.d.ts +11 -0
  75. package/dist/chains/btc/actions/stake/index.d.ts.map +1 -0
  76. package/dist/chains/btc/actions/stake/types.d.ts +152 -0
  77. package/dist/chains/btc/actions/stake/types.d.ts.map +1 -0
  78. package/dist/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.d.ts +68 -0
  79. package/dist/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.d.ts.map +1 -0
  80. package/dist/chains/btc/actions/stakeAndDeploy/config/evm.d.ts +19 -0
  81. package/dist/chains/btc/actions/stakeAndDeploy/config/evm.d.ts.map +1 -0
  82. package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts +54 -0
  83. package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts.map +1 -0
  84. package/dist/chains/btc/actions/stakeAndDeploy/config/types.d.ts +74 -0
  85. package/dist/chains/btc/actions/stakeAndDeploy/config/types.d.ts.map +1 -0
  86. package/dist/chains/btc/actions/stakeAndDeploy/factory.d.ts +40 -0
  87. package/dist/chains/btc/actions/stakeAndDeploy/factory.d.ts.map +1 -0
  88. package/dist/chains/btc/actions/stakeAndDeploy/index.d.ts +11 -0
  89. package/dist/chains/btc/actions/stakeAndDeploy/index.d.ts.map +1 -0
  90. package/dist/chains/btc/actions/stakeAndDeploy/types.d.ts +91 -0
  91. package/dist/chains/btc/actions/stakeAndDeploy/types.d.ts.map +1 -0
  92. package/dist/chains/btc/client/getCurrentBlockHeight.d.ts +6 -0
  93. package/dist/chains/btc/client/getCurrentBlockHeight.d.ts.map +1 -0
  94. package/dist/chains/btc/client/mempool/error.d.ts +10 -0
  95. package/dist/chains/btc/client/mempool/error.d.ts.map +1 -0
  96. package/dist/chains/btc/client/mempool/mempool.d.ts +14 -0
  97. package/dist/chains/btc/client/mempool/mempool.d.ts.map +1 -0
  98. package/dist/chains/btc/index.d.ts +18 -0
  99. package/dist/chains/btc/index.d.ts.map +1 -0
  100. package/dist/chains/evm/EvmActions.d.ts +140 -0
  101. package/dist/chains/evm/EvmActions.d.ts.map +1 -0
  102. package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts +40 -0
  103. package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts.map +1 -0
  104. package/dist/chains/evm/actions/deploy/config/evm.d.ts +22 -0
  105. package/dist/chains/evm/actions/deploy/config/evm.d.ts.map +1 -0
  106. package/dist/chains/evm/actions/deploy/config/index.d.ts +8 -0
  107. package/dist/chains/evm/actions/deploy/config/index.d.ts.map +1 -0
  108. package/dist/chains/evm/actions/deploy/config/types.d.ts +32 -0
  109. package/dist/chains/evm/actions/deploy/config/types.d.ts.map +1 -0
  110. package/dist/chains/evm/actions/deploy/factory.d.ts +30 -0
  111. package/dist/chains/evm/actions/deploy/factory.d.ts.map +1 -0
  112. package/dist/chains/evm/actions/deploy/index.d.ts +11 -0
  113. package/dist/chains/evm/actions/deploy/index.d.ts.map +1 -0
  114. package/dist/chains/evm/actions/deploy/types.d.ts +62 -0
  115. package/dist/chains/evm/actions/deploy/types.d.ts.map +1 -0
  116. package/dist/chains/evm/actions/deposit/EvmDeposit.d.ts +38 -0
  117. package/dist/chains/evm/actions/deposit/EvmDeposit.d.ts.map +1 -0
  118. package/dist/chains/evm/actions/deposit/config/evm.d.ts +23 -0
  119. package/dist/chains/evm/actions/deposit/config/evm.d.ts.map +1 -0
  120. package/dist/chains/evm/actions/deposit/config/index.d.ts +8 -0
  121. package/dist/chains/evm/actions/deposit/config/index.d.ts.map +1 -0
  122. package/dist/chains/evm/actions/deposit/config/types.d.ts +34 -0
  123. package/dist/chains/evm/actions/deposit/config/types.d.ts.map +1 -0
  124. package/dist/chains/evm/actions/deposit/factory.d.ts +30 -0
  125. package/dist/chains/evm/actions/deposit/factory.d.ts.map +1 -0
  126. package/dist/chains/evm/actions/deposit/index.d.ts +11 -0
  127. package/dist/chains/evm/actions/deposit/index.d.ts.map +1 -0
  128. package/dist/chains/evm/actions/deposit/types.d.ts +78 -0
  129. package/dist/chains/evm/actions/deposit/types.d.ts.map +1 -0
  130. package/dist/chains/evm/actions/index.d.ts +13 -0
  131. package/dist/chains/evm/actions/index.d.ts.map +1 -0
  132. package/dist/chains/evm/actions/redeem/EvmRedeem.d.ts +57 -0
  133. package/dist/chains/evm/actions/redeem/EvmRedeem.d.ts.map +1 -0
  134. package/dist/chains/evm/actions/redeem/config/evm.d.ts +24 -0
  135. package/dist/chains/evm/actions/redeem/config/evm.d.ts.map +1 -0
  136. package/dist/chains/evm/actions/redeem/config/index.d.ts +8 -0
  137. package/dist/chains/evm/actions/redeem/config/index.d.ts.map +1 -0
  138. package/dist/chains/evm/actions/redeem/config/types.d.ts +34 -0
  139. package/dist/chains/evm/actions/redeem/config/types.d.ts.map +1 -0
  140. package/dist/chains/evm/actions/redeem/factory.d.ts +29 -0
  141. package/dist/chains/evm/actions/redeem/factory.d.ts.map +1 -0
  142. package/dist/chains/evm/actions/redeem/index.d.ts +11 -0
  143. package/dist/chains/evm/actions/redeem/index.d.ts.map +1 -0
  144. package/dist/chains/evm/actions/redeem/types.d.ts +81 -0
  145. package/dist/chains/evm/actions/redeem/types.d.ts.map +1 -0
  146. package/dist/chains/evm/actions/stake/EvmStake.d.ts +62 -0
  147. package/dist/chains/evm/actions/stake/EvmStake.d.ts.map +1 -0
  148. package/dist/chains/evm/actions/stake/config/evm.d.ts +28 -0
  149. package/dist/chains/evm/actions/stake/config/evm.d.ts.map +1 -0
  150. package/dist/chains/evm/actions/stake/config/index.d.ts +8 -0
  151. package/dist/chains/evm/actions/stake/config/index.d.ts.map +1 -0
  152. package/dist/chains/evm/actions/stake/config/types.d.ts +60 -0
  153. package/dist/chains/evm/actions/stake/config/types.d.ts.map +1 -0
  154. package/dist/chains/evm/actions/stake/factory.d.ts +38 -0
  155. package/dist/chains/evm/actions/stake/factory.d.ts.map +1 -0
  156. package/dist/chains/evm/actions/stake/index.d.ts +13 -0
  157. package/dist/chains/evm/actions/stake/index.d.ts.map +1 -0
  158. package/dist/chains/evm/actions/stake/types.d.ts +94 -0
  159. package/dist/chains/evm/actions/stake/types.d.ts.map +1 -0
  160. package/dist/chains/evm/actions/unstake/EvmUnstake.d.ts +54 -0
  161. package/dist/chains/evm/actions/unstake/EvmUnstake.d.ts.map +1 -0
  162. package/dist/chains/evm/actions/unstake/config/evm.d.ts +34 -0
  163. package/dist/chains/evm/actions/unstake/config/evm.d.ts.map +1 -0
  164. package/dist/chains/evm/actions/unstake/config/index.d.ts +8 -0
  165. package/dist/chains/evm/actions/unstake/config/index.d.ts.map +1 -0
  166. package/dist/chains/evm/actions/unstake/config/types.d.ts +32 -0
  167. package/dist/chains/evm/actions/unstake/config/types.d.ts.map +1 -0
  168. package/dist/chains/evm/actions/unstake/factory.d.ts +30 -0
  169. package/dist/chains/evm/actions/unstake/factory.d.ts.map +1 -0
  170. package/dist/chains/evm/actions/unstake/index.d.ts +11 -0
  171. package/dist/chains/evm/actions/unstake/index.d.ts.map +1 -0
  172. package/dist/chains/evm/actions/unstake/types.d.ts +75 -0
  173. package/dist/chains/evm/actions/unstake/types.d.ts.map +1 -0
  174. package/dist/chains/evm/index.d.ts +11 -0
  175. package/dist/chains/evm/index.d.ts.map +1 -0
  176. package/dist/chains/evm/shared/feeAuth.d.ts +88 -0
  177. package/dist/chains/evm/shared/feeAuth.d.ts.map +1 -0
  178. package/dist/chains/evm/shared/index.d.ts +7 -0
  179. package/dist/chains/evm/shared/index.d.ts.map +1 -0
  180. package/dist/chains/solana/SolanaActions.d.ts +42 -0
  181. package/dist/chains/solana/SolanaActions.d.ts.map +1 -0
  182. package/dist/chains/solana/actions/index.d.ts +7 -0
  183. package/dist/chains/solana/actions/index.d.ts.map +1 -0
  184. package/dist/chains/solana/actions/unstake/SolanaUnstake.d.ts +30 -0
  185. package/dist/chains/solana/actions/unstake/SolanaUnstake.d.ts.map +1 -0
  186. package/dist/chains/solana/actions/unstake/config/btc.d.ts +20 -0
  187. package/dist/chains/solana/actions/unstake/config/btc.d.ts.map +1 -0
  188. package/dist/chains/solana/actions/unstake/config/index.d.ts +8 -0
  189. package/dist/chains/solana/actions/unstake/config/index.d.ts.map +1 -0
  190. package/dist/chains/solana/actions/unstake/config/solana.d.ts +20 -0
  191. package/dist/chains/solana/actions/unstake/config/solana.d.ts.map +1 -0
  192. package/dist/chains/solana/actions/unstake/config/types.d.ts +30 -0
  193. package/dist/chains/solana/actions/unstake/config/types.d.ts.map +1 -0
  194. package/dist/chains/solana/actions/unstake/factory.d.ts +19 -0
  195. package/dist/chains/solana/actions/unstake/factory.d.ts.map +1 -0
  196. package/dist/chains/solana/actions/unstake/index.d.ts +9 -0
  197. package/dist/chains/solana/actions/unstake/index.d.ts.map +1 -0
  198. package/dist/chains/solana/actions/unstake/types.d.ts +49 -0
  199. package/dist/chains/solana/actions/unstake/types.d.ts.map +1 -0
  200. package/dist/chains/solana/index.d.ts +8 -0
  201. package/dist/chains/solana/index.d.ts.map +1 -0
  202. package/dist/chains/starknet/StarknetActions.d.ts +42 -0
  203. package/dist/chains/starknet/StarknetActions.d.ts.map +1 -0
  204. package/dist/chains/starknet/actions/index.d.ts +7 -0
  205. package/dist/chains/starknet/actions/index.d.ts.map +1 -0
  206. package/dist/chains/starknet/actions/unstake/StarknetUnstake.d.ts +30 -0
  207. package/dist/chains/starknet/actions/unstake/StarknetUnstake.d.ts.map +1 -0
  208. package/dist/chains/starknet/actions/unstake/config/btc.d.ts +18 -0
  209. package/dist/chains/starknet/actions/unstake/config/btc.d.ts.map +1 -0
  210. package/dist/chains/starknet/actions/unstake/config/index.d.ts +8 -0
  211. package/dist/chains/starknet/actions/unstake/config/index.d.ts.map +1 -0
  212. package/dist/chains/starknet/actions/unstake/config/starknet.d.ts +18 -0
  213. package/dist/chains/starknet/actions/unstake/config/starknet.d.ts.map +1 -0
  214. package/dist/chains/starknet/actions/unstake/config/types.d.ts +24 -0
  215. package/dist/chains/starknet/actions/unstake/config/types.d.ts.map +1 -0
  216. package/dist/chains/starknet/actions/unstake/factory.d.ts +17 -0
  217. package/dist/chains/starknet/actions/unstake/factory.d.ts.map +1 -0
  218. package/dist/chains/starknet/actions/unstake/index.d.ts +9 -0
  219. package/dist/chains/starknet/actions/unstake/index.d.ts.map +1 -0
  220. package/dist/chains/starknet/actions/unstake/types.d.ts +48 -0
  221. package/dist/chains/starknet/actions/unstake/types.d.ts.map +1 -0
  222. package/dist/chains/starknet/index.d.ts +8 -0
  223. package/dist/chains/starknet/index.d.ts.map +1 -0
  224. package/dist/chains/sui/SuiActions.d.ts +42 -0
  225. package/dist/chains/sui/SuiActions.d.ts.map +1 -0
  226. package/dist/chains/sui/actions/index.d.ts +7 -0
  227. package/dist/chains/sui/actions/index.d.ts.map +1 -0
  228. package/dist/chains/sui/actions/unstake/SuiUnstake.d.ts +30 -0
  229. package/dist/chains/sui/actions/unstake/SuiUnstake.d.ts.map +1 -0
  230. package/dist/chains/sui/actions/unstake/config/btc.d.ts +18 -0
  231. package/dist/chains/sui/actions/unstake/config/btc.d.ts.map +1 -0
  232. package/dist/chains/sui/actions/unstake/config/index.d.ts +8 -0
  233. package/dist/chains/sui/actions/unstake/config/index.d.ts.map +1 -0
  234. package/dist/chains/sui/actions/unstake/config/sui.d.ts +18 -0
  235. package/dist/chains/sui/actions/unstake/config/sui.d.ts.map +1 -0
  236. package/dist/chains/sui/actions/unstake/config/types.d.ts +24 -0
  237. package/dist/chains/sui/actions/unstake/config/types.d.ts.map +1 -0
  238. package/dist/chains/sui/actions/unstake/factory.d.ts +17 -0
  239. package/dist/chains/sui/actions/unstake/factory.d.ts.map +1 -0
  240. package/dist/chains/sui/actions/unstake/index.d.ts +9 -0
  241. package/dist/chains/sui/actions/unstake/index.d.ts.map +1 -0
  242. package/dist/chains/sui/actions/unstake/types.d.ts +48 -0
  243. package/dist/chains/sui/actions/unstake/types.d.ts.map +1 -0
  244. package/dist/chains/sui/index.d.ts +8 -0
  245. package/dist/chains/sui/index.d.ts.map +1 -0
  246. package/dist/client/ApiNamespace.d.ts +207 -0
  247. package/dist/client/ApiNamespace.d.ts.map +1 -0
  248. package/dist/client/AssetNamespace.d.ts +53 -0
  249. package/dist/client/AssetNamespace.d.ts.map +1 -0
  250. package/dist/client/LombardSDK.d.ts +122 -0
  251. package/dist/client/LombardSDK.d.ts.map +1 -0
  252. package/dist/client/PartnerConfiguration.d.ts +34 -0
  253. package/dist/client/PartnerConfiguration.d.ts.map +1 -0
  254. package/dist/client/createConfig.d.ts +30 -0
  255. package/dist/client/createConfig.d.ts.map +1 -0
  256. package/dist/client/createLombardSDK.d.ts +64 -0
  257. package/dist/client/createLombardSDK.d.ts.map +1 -0
  258. package/dist/clients/public-client.d.ts.map +1 -1
  259. package/dist/clients/rpc-url-config.d.ts.map +1 -1
  260. package/dist/common/api-config.d.ts +1 -2
  261. package/dist/common/api-config.d.ts.map +1 -1
  262. package/dist/common/chains.d.ts +745 -768
  263. package/dist/common/chains.d.ts.map +1 -1
  264. package/dist/common/feature-config.d.ts +44 -4
  265. package/dist/common/feature-config.d.ts.map +1 -1
  266. package/dist/common/fee-requirements.d.ts +27 -0
  267. package/dist/common/fee-requirements.d.ts.map +1 -0
  268. package/dist/config/defaults.d.ts +27 -0
  269. package/dist/config/defaults.d.ts.map +1 -0
  270. package/dist/config/index.d.ts +12 -0
  271. package/dist/config/index.d.ts.map +1 -0
  272. package/dist/config/providers.d.ts +23 -0
  273. package/dist/config/providers.d.ts.map +1 -0
  274. package/dist/config/types.d.ts +162 -0
  275. package/dist/config/types.d.ts.map +1 -0
  276. package/dist/config/validation.d.ts +21 -0
  277. package/dist/config/validation.d.ts.map +1 -0
  278. package/dist/contract-functions/signStakeAndBake/signStakeAndBake.d.ts +1 -1
  279. package/dist/contract-functions/signStakeAndBake/signStakeAndBake.d.ts.map +1 -1
  280. package/dist/contract-functions/signStakeAndBake/validation.d.ts +3 -3
  281. package/dist/contracts/abis/index.d.ts +18 -0
  282. package/dist/contracts/abis/index.d.ts.map +1 -0
  283. package/dist/contracts/index.d.ts +43 -0
  284. package/dist/contracts/index.d.ts.map +1 -0
  285. package/dist/contracts/types.d.ts +127 -0
  286. package/dist/contracts/types.d.ts.map +1 -0
  287. package/dist/contracts/utils.d.ts +106 -0
  288. package/dist/contracts/utils.d.ts.map +1 -0
  289. package/dist/core/assets/catalog.d.ts +11 -0
  290. package/dist/core/assets/catalog.d.ts.map +1 -0
  291. package/dist/core/assets/index.d.ts +12 -0
  292. package/dist/core/assets/index.d.ts.map +1 -0
  293. package/dist/core/assets/types.d.ts +93 -0
  294. package/dist/core/assets/types.d.ts.map +1 -0
  295. package/dist/core/assets/utils.d.ts +82 -0
  296. package/dist/core/assets/utils.d.ts.map +1 -0
  297. package/dist/core/chains/catalog.d.ts +14 -0
  298. package/dist/core/chains/catalog.d.ts.map +1 -0
  299. package/dist/core/chains/index.d.ts +13 -0
  300. package/dist/core/chains/index.d.ts.map +1 -0
  301. package/dist/core/chains/types.d.ts +106 -0
  302. package/dist/core/chains/types.d.ts.map +1 -0
  303. package/dist/core/chains/utils.d.ts +55 -0
  304. package/dist/core/chains/utils.d.ts.map +1 -0
  305. package/dist/core/index.d.ts +14 -0
  306. package/dist/core/index.d.ts.map +1 -0
  307. package/dist/core/types.d.ts +86 -0
  308. package/dist/core/types.d.ts.map +1 -0
  309. package/dist/defi/defi-registry.d.ts +63 -6
  310. package/dist/defi/defi-registry.d.ts.map +1 -1
  311. package/dist/defi/index.d.ts +2 -1
  312. package/dist/defi/index.d.ts.map +1 -1
  313. package/dist/index.cjs +1 -1
  314. package/dist/index.d.ts +61 -14
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +268 -155
  317. package/dist/index2.cjs +66 -66
  318. package/dist/index2.js +19778 -14373
  319. package/dist/modules/CapabilityRegistry.d.ts +58 -0
  320. package/dist/modules/CapabilityRegistry.d.ts.map +1 -0
  321. package/dist/modules/apiModule.d.ts +33 -0
  322. package/dist/modules/apiModule.d.ts.map +1 -0
  323. package/dist/modules/btcModule.d.ts +28 -0
  324. package/dist/modules/btcModule.d.ts.map +1 -0
  325. package/dist/modules/evmModule.d.ts +29 -0
  326. package/dist/modules/evmModule.d.ts.map +1 -0
  327. package/dist/modules/index.d.ts +27 -0
  328. package/dist/modules/index.d.ts.map +1 -0
  329. package/dist/referrals/ReferralsClient.d.ts +24 -0
  330. package/dist/referrals/ReferralsClient.d.ts.map +1 -0
  331. package/dist/referrals/index.d.ts +2 -0
  332. package/dist/referrals/index.d.ts.map +1 -0
  333. package/dist/services/ApiService.d.ts +52 -0
  334. package/dist/services/ApiService.d.ts.map +1 -0
  335. package/dist/services/BtcService.d.ts +21 -0
  336. package/dist/services/BtcService.d.ts.map +1 -0
  337. package/dist/services/EvmService.d.ts +48 -0
  338. package/dist/services/EvmService.d.ts.map +1 -0
  339. package/dist/services/index.d.ts +21 -0
  340. package/dist/services/index.d.ts.map +1 -0
  341. package/dist/shared/actions/BaseAction.d.ts +275 -0
  342. package/dist/shared/actions/BaseAction.d.ts.map +1 -0
  343. package/dist/shared/actions/index.d.ts +9 -0
  344. package/dist/shared/actions/index.d.ts.map +1 -0
  345. package/dist/shared/constants/statusConstants.d.ts +92 -0
  346. package/dist/shared/constants/statusConstants.d.ts.map +1 -0
  347. package/dist/shared/context/ContextBuilder.d.ts +46 -0
  348. package/dist/shared/context/ContextBuilder.d.ts.map +1 -0
  349. package/dist/shared/context/index.d.ts +8 -0
  350. package/dist/shared/context/index.d.ts.map +1 -0
  351. package/dist/shared/context/types.d.ts +122 -0
  352. package/dist/shared/context/types.d.ts.map +1 -0
  353. package/dist/shared/deposits/depositStatus.d.ts +138 -0
  354. package/dist/shared/deposits/depositStatus.d.ts.map +1 -0
  355. package/dist/shared/deposits/index.d.ts +10 -0
  356. package/dist/shared/deposits/index.d.ts.map +1 -0
  357. package/dist/shared/errors.d.ts +211 -0
  358. package/dist/shared/errors.d.ts.map +1 -0
  359. package/dist/shared/events.d.ts +209 -0
  360. package/dist/shared/events.d.ts.map +1 -0
  361. package/dist/shared/evm/switchChain.d.ts +35 -0
  362. package/dist/shared/evm/switchChain.d.ts.map +1 -0
  363. package/dist/shared/index.d.ts +12 -0
  364. package/dist/shared/index.d.ts.map +1 -0
  365. package/dist/shared/monitoring/createEventEmitter.d.ts +68 -0
  366. package/dist/shared/monitoring/createEventEmitter.d.ts.map +1 -0
  367. package/dist/shared/monitoring/createProgressEmitter.d.ts +18 -0
  368. package/dist/shared/monitoring/createProgressEmitter.d.ts.map +1 -0
  369. package/dist/shared/monitoring/depositMonitor.d.ts +107 -0
  370. package/dist/shared/monitoring/depositMonitor.d.ts.map +1 -0
  371. package/dist/shared/monitoring/index.d.ts +9 -0
  372. package/dist/shared/monitoring/index.d.ts.map +1 -0
  373. package/dist/shared/validation/index.d.ts +188 -0
  374. package/dist/shared/validation/index.d.ts.map +1 -0
  375. package/dist/stories/arg-types.d.ts.map +1 -1
  376. package/dist/stories/components/Badge.d.ts +13 -0
  377. package/dist/stories/components/Badge.d.ts.map +1 -0
  378. package/dist/stories/components/Button/Button.d.ts +2 -2
  379. package/dist/stories/components/Button/Button.d.ts.map +1 -1
  380. package/dist/stories/components/Card.d.ts +12 -0
  381. package/dist/stories/components/Card.d.ts.map +1 -0
  382. package/dist/stories/components/CodeBlock/CodeBlock.d.ts +1 -1
  383. package/dist/stories/components/CodeBlock/CodeBlock.d.ts.map +1 -1
  384. package/dist/stories/components/ConnectButton/connect-button.d.ts.map +1 -1
  385. package/dist/stories/components/JsonPreview.d.ts +23 -0
  386. package/dist/stories/components/JsonPreview.d.ts.map +1 -0
  387. package/dist/stories/components/StatsCard.d.ts +13 -0
  388. package/dist/stories/components/StatsCard.d.ts.map +1 -0
  389. package/dist/stories/components/StatusIndicator.d.ts +13 -0
  390. package/dist/stories/components/StatusIndicator.d.ts.map +1 -0
  391. package/dist/stories/components/TreeNode.d.ts +15 -0
  392. package/dist/stories/components/TreeNode.d.ts.map +1 -0
  393. package/dist/stories/components/decorators/wagmi-decorator.d.ts.map +1 -1
  394. package/dist/stories/components/index.d.ts +11 -0
  395. package/dist/stories/components/index.d.ts.map +1 -0
  396. package/dist/stories/hooks/useConnection.d.ts.map +1 -1
  397. package/dist/stories/hooks/useQuery.d.ts.map +1 -1
  398. package/dist/tokens/token-addresses.d.ts +18 -0
  399. package/dist/tokens/token-addresses.d.ts.map +1 -1
  400. package/dist/tokens/tokens.d.ts +12 -0
  401. package/dist/tokens/tokens.d.ts.map +1 -1
  402. package/dist/utils/chain.d.ts +107 -0
  403. package/dist/utils/chain.d.ts.map +1 -0
  404. package/dist/utils/consoleLogger.d.ts +71 -0
  405. package/dist/utils/consoleLogger.d.ts.map +1 -0
  406. package/dist/utils/ensureNotSanctionedAddress.d.ts +2 -0
  407. package/dist/utils/ensureNotSanctionedAddress.d.ts.map +1 -0
  408. package/dist/utils/evmAccount.d.ts +13 -0
  409. package/dist/utils/evmAccount.d.ts.map +1 -0
  410. package/dist/utils/http.d.ts +95 -0
  411. package/dist/utils/http.d.ts.map +1 -0
  412. package/dist/utils/numbers.d.ts +20 -0
  413. package/dist/utils/numbers.d.ts.map +1 -1
  414. package/dist/utils/satoshi.d.ts +17 -4
  415. package/dist/utils/satoshi.d.ts.map +1 -1
  416. package/dist/vaults/index.d.ts +1 -1
  417. package/dist/vaults/index.d.ts.map +1 -1
  418. package/dist/vaults/lib/config.d.ts +3 -3
  419. package/dist/vaults/lib/config.d.ts.map +1 -1
  420. package/dist/version.d.ts +27 -0
  421. package/dist/version.d.ts.map +1 -0
  422. package/package.json +21 -4
  423. package/src/__tests__/AssetNamespace.spec.ts +234 -0
  424. package/src/__tests__/helpers/createTestConfig.ts +90 -0
  425. package/src/__tests__/integration/automint-fee.integration.test.ts +74 -0
  426. package/src/__tests__/integration/btc-deposit.integration.test.ts +109 -0
  427. package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +96 -0
  428. package/src/__tests__/integration/btc-stake.integration.test.ts +466 -0
  429. package/src/__tests__/integration/evm-actions.integration.test.ts +932 -0
  430. package/src/__tests__/integration/evm-deploy.integration.test.ts +122 -0
  431. package/src/__tests__/integration/evm-redeem.integration.test.ts +157 -0
  432. package/src/__tests__/integration/faq-patterns.integration.test.ts +465 -0
  433. package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +195 -0
  434. package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +70 -0
  435. package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +47 -0
  436. package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +49 -0
  437. package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +19 -0
  438. package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +19 -0
  439. package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +19 -0
  440. package/src/__tests__/services/ApiService.test.ts +62 -0
  441. package/src/__tests__/services/BtcService.test.ts +30 -0
  442. package/src/__tests__/services/EvmService.test.ts +39 -0
  443. package/src/__tests__/setup.ts +16 -0
  444. package/src/__tests__/test-utils/eip1193-adapter.ts +48 -0
  445. package/src/__tests__/test-utils/evm-wallet.ts +38 -0
  446. package/src/__tests__/test-utils/solana-wallet.ts +22 -0
  447. package/src/__tests__/test-utils/starknet-wallet.ts +9 -0
  448. package/src/__tests__/test-utils/sui-wallet.ts +14 -0
  449. package/src/__tests__/test-utils/test-constraints.ts +110 -0
  450. package/src/__tests__/unit/btc/BtcDeposit.test.ts +253 -0
  451. package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +174 -0
  452. package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +143 -0
  453. package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +221 -0
  454. package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +194 -0
  455. package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +301 -0
  456. package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +200 -0
  457. package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +216 -0
  458. package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +184 -0
  459. package/src/__tests__/unit/btc/btc-deposit-token.test.ts +191 -0
  460. package/src/__tests__/unit/catalog/AssetCatalog.test.ts +293 -0
  461. package/src/__tests__/unit/config/ChainConfig.test.ts +47 -0
  462. package/src/__tests__/unit/config/FeeAuthConfig.test.ts +76 -0
  463. package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +128 -0
  464. package/src/__tests__/unit/core/chain-parsing.test.ts +257 -0
  465. package/src/__tests__/unit/defi/AvailableProtocols.test.ts +100 -0
  466. package/src/__tests__/unit/defi/DefiRegistry.test.ts +25 -0
  467. package/src/__tests__/unit/evm/EvmDeploy.test.ts +224 -0
  468. package/src/__tests__/unit/evm/EvmRedeem.test.ts +207 -0
  469. package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +93 -0
  470. package/src/__tests__/unit/evm/EvmStake.test.ts +207 -0
  471. package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +193 -0
  472. package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +69 -0
  473. package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +203 -0
  474. package/src/__tests__/unit/fee-signature-expiration.test.ts +76 -0
  475. package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +55 -0
  476. package/src/__tests__/unit/shared/BaseAction.test.ts +122 -0
  477. package/src/__tests__/unit/shared/BaseBtcAction.test.ts +114 -0
  478. package/src/__tests__/unit/solana/SolanaUnstake.test.ts +314 -0
  479. package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +318 -0
  480. package/src/__tests__/unit/sui/SuiUnstake.test.ts +310 -0
  481. package/src/__tests__/unit/utils/satoshi.test.ts +27 -0
  482. package/src/__tests__/unit/validation/address-validation.test.ts +350 -0
  483. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +2 -1
  484. package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +38 -0
  485. package/src/api-functions/getDepositAddressReferrer/index.ts +1 -0
  486. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +1 -0
  487. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +5 -4
  488. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +1 -0
  489. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +2 -1
  490. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +1 -0
  491. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +2 -1
  492. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +3 -0
  493. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +2 -1
  494. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +18 -0
  495. package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +2 -1
  496. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +2 -1
  497. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +2 -1
  498. package/src/api-functions/setReferral/setReferral.ts +6 -0
  499. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +1 -0
  500. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +17 -7
  501. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +1 -0
  502. package/src/bridge/lib/bridge.stories.tsx +4 -3
  503. package/src/bridge/lib/ccip-bridge.stories.tsx +3 -2
  504. package/src/bridge/lib/config.ts +1 -1
  505. package/src/bridge/lib/oft-bridge.stories.tsx +2 -1
  506. package/src/chains/btc/BtcActions.ts +192 -0
  507. package/src/chains/btc/actions/deposit/BtcDeposit.ts +388 -0
  508. package/src/chains/btc/actions/deposit/config/evm.ts +197 -0
  509. package/src/chains/btc/actions/deposit/config/index.ts +53 -0
  510. package/src/chains/btc/actions/deposit/config/types.ts +108 -0
  511. package/src/chains/btc/actions/deposit/factory.ts +53 -0
  512. package/src/chains/btc/actions/deposit/index.ts +23 -0
  513. package/src/chains/btc/actions/deposit/types.ts +120 -0
  514. package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +366 -0
  515. package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +105 -0
  516. package/src/chains/btc/actions/depositAndDeploy/config/index.ts +111 -0
  517. package/src/chains/btc/actions/depositAndDeploy/config/types.ts +67 -0
  518. package/src/chains/btc/actions/depositAndDeploy/factory.ts +38 -0
  519. package/src/chains/btc/actions/depositAndDeploy/index.ts +24 -0
  520. package/src/chains/btc/actions/depositAndDeploy/types.ts +120 -0
  521. package/src/chains/btc/actions/index.ts +14 -0
  522. package/src/chains/btc/actions/shared/BaseBtcAction.ts +495 -0
  523. package/src/chains/btc/actions/shared/index.ts +28 -0
  524. package/src/chains/btc/actions/shared/tokenUtils.ts +68 -0
  525. package/src/chains/btc/actions/shared/validation.ts +180 -0
  526. package/src/chains/btc/actions/stake/BtcStake.ts +433 -0
  527. package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +247 -0
  528. package/src/chains/btc/actions/stake/config/evm.ts +183 -0
  529. package/src/chains/btc/actions/stake/config/index.ts +122 -0
  530. package/src/chains/btc/actions/stake/config/solana.ts +96 -0
  531. package/src/chains/btc/actions/stake/config/starknet.ts +66 -0
  532. package/src/chains/btc/actions/stake/config/sui.ts +61 -0
  533. package/src/chains/btc/actions/stake/config/types.ts +165 -0
  534. package/src/chains/btc/actions/stake/factory.ts +53 -0
  535. package/src/chains/btc/actions/stake/index.ts +22 -0
  536. package/src/chains/btc/actions/stake/types.ts +175 -0
  537. package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +415 -0
  538. package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +135 -0
  539. package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +119 -0
  540. package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +93 -0
  541. package/src/chains/btc/actions/stakeAndDeploy/factory.ts +54 -0
  542. package/src/chains/btc/actions/stakeAndDeploy/index.ts +26 -0
  543. package/src/chains/btc/actions/stakeAndDeploy/types.ts +118 -0
  544. package/src/chains/btc/client/getCurrentBlockHeight.ts +28 -0
  545. package/src/chains/btc/client/mempool/error.ts +24 -0
  546. package/src/chains/btc/client/mempool/mempool.ts +23 -0
  547. package/src/chains/btc/index.ts +71 -0
  548. package/src/chains/evm/EvmActions.ts +185 -0
  549. package/src/chains/evm/actions/deploy/EvmDeploy.ts +256 -0
  550. package/src/chains/evm/actions/deploy/config/evm.ts +80 -0
  551. package/src/chains/evm/actions/deploy/config/index.ts +8 -0
  552. package/src/chains/evm/actions/deploy/config/types.ts +43 -0
  553. package/src/chains/evm/actions/deploy/factory.ts +44 -0
  554. package/src/chains/evm/actions/deploy/index.ts +17 -0
  555. package/src/chains/evm/actions/deploy/types.ts +74 -0
  556. package/src/chains/evm/actions/deposit/EvmDeposit.ts +159 -0
  557. package/src/chains/evm/actions/deposit/config/evm.ts +100 -0
  558. package/src/chains/evm/actions/deposit/config/index.ts +8 -0
  559. package/src/chains/evm/actions/deposit/config/types.ts +39 -0
  560. package/src/chains/evm/actions/deposit/factory.ts +44 -0
  561. package/src/chains/evm/actions/deposit/index.ts +17 -0
  562. package/src/chains/evm/actions/deposit/types.ts +87 -0
  563. package/src/chains/evm/actions/index.ts +67 -0
  564. package/src/chains/evm/actions/redeem/EvmRedeem.ts +263 -0
  565. package/src/chains/evm/actions/redeem/config/evm.ts +85 -0
  566. package/src/chains/evm/actions/redeem/config/index.ts +8 -0
  567. package/src/chains/evm/actions/redeem/config/types.ts +39 -0
  568. package/src/chains/evm/actions/redeem/factory.ts +43 -0
  569. package/src/chains/evm/actions/redeem/index.ts +17 -0
  570. package/src/chains/evm/actions/redeem/types.ts +93 -0
  571. package/src/chains/evm/actions/stake/EvmStake.ts +339 -0
  572. package/src/chains/evm/actions/stake/config/evm.ts +89 -0
  573. package/src/chains/evm/actions/stake/config/index.ts +8 -0
  574. package/src/chains/evm/actions/stake/config/types.ts +89 -0
  575. package/src/chains/evm/actions/stake/factory.ts +52 -0
  576. package/src/chains/evm/actions/stake/index.ts +30 -0
  577. package/src/chains/evm/actions/stake/types.ts +104 -0
  578. package/src/chains/evm/actions/unstake/EvmUnstake.ts +258 -0
  579. package/src/chains/evm/actions/unstake/config/evm.ts +123 -0
  580. package/src/chains/evm/actions/unstake/config/index.ts +13 -0
  581. package/src/chains/evm/actions/unstake/config/types.ts +37 -0
  582. package/src/chains/evm/actions/unstake/factory.ts +44 -0
  583. package/src/chains/evm/actions/unstake/index.ts +22 -0
  584. package/src/chains/evm/actions/unstake/types.ts +87 -0
  585. package/src/chains/evm/index.ts +16 -0
  586. package/src/chains/evm/shared/feeAuth.ts +198 -0
  587. package/src/chains/evm/shared/index.ts +7 -0
  588. package/src/chains/solana/SolanaActions.ts +85 -0
  589. package/src/chains/solana/actions/index.ts +7 -0
  590. package/src/chains/solana/actions/unstake/SolanaUnstake.ts +151 -0
  591. package/src/chains/solana/actions/unstake/config/btc.ts +47 -0
  592. package/src/chains/solana/actions/unstake/config/index.ts +8 -0
  593. package/src/chains/solana/actions/unstake/config/solana.ts +47 -0
  594. package/src/chains/solana/actions/unstake/config/types.ts +35 -0
  595. package/src/chains/solana/actions/unstake/factory.ts +34 -0
  596. package/src/chains/solana/actions/unstake/index.ts +14 -0
  597. package/src/chains/solana/actions/unstake/types.ts +58 -0
  598. package/src/chains/solana/index.ts +8 -0
  599. package/src/chains/starknet/StarknetActions.ts +85 -0
  600. package/src/chains/starknet/actions/index.ts +7 -0
  601. package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +128 -0
  602. package/src/chains/starknet/actions/unstake/config/btc.ts +43 -0
  603. package/src/chains/starknet/actions/unstake/config/index.ts +8 -0
  604. package/src/chains/starknet/actions/unstake/config/starknet.ts +43 -0
  605. package/src/chains/starknet/actions/unstake/config/types.ts +27 -0
  606. package/src/chains/starknet/actions/unstake/factory.ts +32 -0
  607. package/src/chains/starknet/actions/unstake/index.ts +14 -0
  608. package/src/chains/starknet/actions/unstake/types.ts +57 -0
  609. package/src/chains/starknet/index.ts +8 -0
  610. package/src/chains/sui/SuiActions.ts +82 -0
  611. package/src/chains/sui/actions/index.ts +7 -0
  612. package/src/chains/sui/actions/unstake/SuiUnstake.ts +146 -0
  613. package/src/chains/sui/actions/unstake/config/btc.ts +43 -0
  614. package/src/chains/sui/actions/unstake/config/index.ts +8 -0
  615. package/src/chains/sui/actions/unstake/config/sui.ts +43 -0
  616. package/src/chains/sui/actions/unstake/config/types.ts +27 -0
  617. package/src/chains/sui/actions/unstake/factory.ts +32 -0
  618. package/src/chains/sui/actions/unstake/index.ts +14 -0
  619. package/src/chains/sui/actions/unstake/types.ts +57 -0
  620. package/src/chains/sui/index.ts +8 -0
  621. package/src/client/ApiNamespace.ts +302 -0
  622. package/src/client/AssetNamespace.ts +112 -0
  623. package/src/client/LombardSDK.ts +212 -0
  624. package/src/client/PartnerConfiguration.ts +50 -0
  625. package/src/client/createConfig.ts +90 -0
  626. package/src/client/createLombardSDK.ts +130 -0
  627. package/src/clients/public-client.ts +0 -4
  628. package/src/clients/rpc-url-config.ts +10 -3
  629. package/src/common/api-config.ts +1 -1
  630. package/src/common/blockchain-identifier.ts +6 -6
  631. package/src/common/chains.stories.tsx +2 -1
  632. package/src/common/chains.ts +28 -15
  633. package/src/common/feature-config.ts +66 -5
  634. package/src/common/fee-requirements.ts +34 -0
  635. package/src/config/defaults.ts +49 -0
  636. package/src/config/index.ts +12 -0
  637. package/src/config/providers.ts +81 -0
  638. package/src/config/types.ts +216 -0
  639. package/src/config/validation.ts +69 -0
  640. package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +5 -4
  641. package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +1 -0
  642. package/src/contract-functions/deposit/depositToken.stories.tsx +1 -0
  643. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +2 -1
  644. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +1 -0
  645. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +1 -0
  646. package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +2 -1
  647. package/src/contract-functions/getShareValue/getShareValue.stories.tsx +6 -4
  648. package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +3 -3
  649. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +1 -1
  650. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +1 -0
  651. package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +1 -0
  652. package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +9 -8
  653. package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +1 -0
  654. package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +3 -2
  655. package/src/contract-functions/signStakeAndBake/validation.ts +17 -17
  656. package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +1 -0
  657. package/src/contracts/abis/index.ts +29 -0
  658. package/src/contracts/index.ts +63 -0
  659. package/src/contracts/types.ts +143 -0
  660. package/src/contracts/utils.ts +288 -0
  661. package/src/core/assets/catalog.ts +343 -0
  662. package/src/core/assets/index.ts +40 -0
  663. package/src/core/assets/types.ts +142 -0
  664. package/src/core/assets/utils.ts +287 -0
  665. package/src/core/chains/catalog.ts +396 -0
  666. package/src/core/chains/index.ts +39 -0
  667. package/src/core/chains/types.ts +193 -0
  668. package/src/core/chains/utils.ts +245 -0
  669. package/src/core/index.ts +72 -0
  670. package/src/core/types.ts +126 -0
  671. package/src/defi/README.md +28 -12
  672. package/src/defi/defi-registry.stories.tsx +1 -0
  673. package/src/defi/defi-registry.ts +128 -12
  674. package/src/defi/index.ts +12 -0
  675. package/src/index.ts +292 -40
  676. package/src/metrics/get-lbtc-stats.stories.tsx +1 -0
  677. package/src/metrics/get-positions-summary.stories.tsx +1 -0
  678. package/src/modules/CapabilityRegistry.ts +125 -0
  679. package/src/modules/apiModule.ts +51 -0
  680. package/src/modules/btcModule.ts +43 -0
  681. package/src/modules/evmModule.ts +48 -0
  682. package/src/modules/index.ts +60 -0
  683. package/src/referrals/ReferralsClient.ts +34 -0
  684. package/src/referrals/index.ts +1 -0
  685. package/src/services/ApiService.ts +152 -0
  686. package/src/services/BtcService.ts +29 -0
  687. package/src/services/EvmService.ts +127 -0
  688. package/src/services/index.ts +43 -0
  689. package/src/shared/__tests__/errors.test.ts +185 -0
  690. package/src/shared/__tests__/events.test.ts +120 -0
  691. package/src/shared/__tests__/types.test.ts +155 -0
  692. package/src/shared/actions/BaseAction.ts +497 -0
  693. package/src/shared/actions/__tests__/BaseAction.test.ts +292 -0
  694. package/src/shared/actions/index.ts +9 -0
  695. package/src/shared/constants/statusConstants.ts +108 -0
  696. package/src/shared/context/ContextBuilder.ts +149 -0
  697. package/src/shared/context/index.ts +8 -0
  698. package/src/shared/context/types.ts +156 -0
  699. package/src/shared/deposits/depositStatus.ts +402 -0
  700. package/src/shared/deposits/index.ts +29 -0
  701. package/src/shared/errors.ts +405 -0
  702. package/src/shared/events.ts +260 -0
  703. package/src/shared/evm/switchChain.ts +109 -0
  704. package/src/shared/index.ts +54 -0
  705. package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +150 -0
  706. package/src/shared/monitoring/createEventEmitter.ts +160 -0
  707. package/src/shared/monitoring/createProgressEmitter.ts +46 -0
  708. package/src/shared/monitoring/depositMonitor.ts +211 -0
  709. package/src/shared/monitoring/index.ts +25 -0
  710. package/src/shared/validation/index.ts +411 -0
  711. package/src/stories/arg-types.ts +1 -0
  712. package/src/stories/components/Badge.tsx +27 -0
  713. package/src/stories/components/Button/Button.tsx +4 -2
  714. package/src/stories/components/Card.tsx +18 -0
  715. package/src/stories/components/CodeBlock/CodeBlock.tsx +3 -2
  716. package/src/stories/components/ConnectButton/connect-button.tsx +1 -0
  717. package/src/stories/components/JsonPreview.tsx +84 -0
  718. package/src/stories/components/StatsCard.tsx +30 -0
  719. package/src/stories/components/StatusIndicator.tsx +37 -0
  720. package/src/stories/components/TreeNode.tsx +47 -0
  721. package/src/stories/components/decorators/function-type.tsx +1 -1
  722. package/src/stories/components/decorators/wagmi-decorator.tsx +2 -1
  723. package/src/stories/components/index.ts +11 -0
  724. package/src/stories/hooks/useConnection.ts +2 -1
  725. package/src/stories/hooks/useQuery.ts +1 -0
  726. package/src/tokens/__tests__/token-addresses.test.ts +551 -0
  727. package/src/tokens/cross-chain-addresses.stories.tsx +1 -0
  728. package/src/tokens/denomination-utils.stories.tsx +1 -0
  729. package/src/tokens/getLbtcContractAddresses.stories.tsx +1 -0
  730. package/src/tokens/getTokenByAddress.stories.tsx +1 -0
  731. package/src/tokens/getTokenContractInfo.stories.tsx +1 -0
  732. package/src/tokens/getTokenInfo.stories.tsx +1 -0
  733. package/src/tokens/isUpgradedContract.stories.tsx +1 -0
  734. package/src/tokens/token-addresses.ts +59 -10
  735. package/src/tokens/tokens.ts +15 -1
  736. package/src/utils/chain.ts +152 -0
  737. package/src/utils/consoleLogger.ts +140 -0
  738. package/src/utils/ensureNotSanctionedAddress.ts +11 -0
  739. package/src/utils/evmAccount.ts +47 -0
  740. package/src/utils/http.ts +224 -0
  741. package/src/utils/numbers.ts +31 -2
  742. package/src/utils/satoshi.ts +22 -6
  743. package/src/vaults/index.ts +1 -1
  744. package/src/vaults/lib/config.ts +4 -23
  745. package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +2 -1
  746. package/src/vaults/lib/metrics/get-vault-points.stories.tsx +2 -1
  747. package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +2 -1
  748. package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +2 -1
  749. package/src/vaults/lib/ops/deposit.stories.tsx +2 -1
  750. package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +2 -1
  751. package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +2 -1
  752. package/src/vaults/lib/ops/withdraw.stories.tsx +2 -1
  753. package/src/version.ts +56 -0
  754. package/dist/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.d.ts +0 -16
  755. package/dist/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.d.ts.map +0 -1
  756. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.d.ts +0 -16
  757. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.d.ts.map +0 -1
  758. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.d.ts +0 -2
  759. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.d.ts.map +0 -1
  760. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.d.ts +0 -16
  761. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.d.ts.map +0 -1
  762. package/dist/api-functions/getDepositsByAddress/getDepositsByAddress.stories.d.ts +0 -13
  763. package/dist/api-functions/getDepositsByAddress/getDepositsByAddress.stories.d.ts.map +0 -1
  764. package/dist/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.d.ts +0 -16
  765. package/dist/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.d.ts.map +0 -1
  766. package/dist/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.d.ts +0 -16
  767. package/dist/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.d.ts.map +0 -1
  768. package/dist/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.d.ts +0 -17
  769. package/dist/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.d.ts.map +0 -1
  770. package/dist/api-functions/getPointsByAddress/getPointsByAddress.stories.d.ts +0 -13
  771. package/dist/api-functions/getPointsByAddress/getPointsByAddress.stories.d.ts.map +0 -1
  772. package/dist/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.d.ts +0 -13
  773. package/dist/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.d.ts.map +0 -1
  774. package/dist/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.d.ts +0 -14
  775. package/dist/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.d.ts.map +0 -1
  776. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.d.ts +0 -14
  777. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.d.ts.map +0 -1
  778. package/dist/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.d.ts +0 -14
  779. package/dist/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.d.ts.map +0 -1
  780. package/dist/bridge/lib/bridge.stories.d.ts +0 -14
  781. package/dist/bridge/lib/bridge.stories.d.ts.map +0 -1
  782. package/dist/bridge/lib/ccip-bridge.stories.d.ts +0 -14
  783. package/dist/bridge/lib/ccip-bridge.stories.d.ts.map +0 -1
  784. package/dist/bridge/lib/oft-bridge.stories.d.ts +0 -14
  785. package/dist/bridge/lib/oft-bridge.stories.d.ts.map +0 -1
  786. package/dist/common/chains.stories.d.ts +0 -17
  787. package/dist/common/chains.stories.d.ts.map +0 -1
  788. package/dist/contract-functions/approveLBTC/approveLBTC.stories.d.ts +0 -17
  789. package/dist/contract-functions/approveLBTC/approveLBTC.stories.d.ts.map +0 -1
  790. package/dist/contract-functions/claimLBTC/claimLBTC.stories.d.ts +0 -17
  791. package/dist/contract-functions/claimLBTC/claimLBTC.stories.d.ts.map +0 -1
  792. package/dist/contract-functions/deposit/depositToken.stories.d.ts +0 -17
  793. package/dist/contract-functions/deposit/depositToken.stories.d.ts.map +0 -1
  794. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.d.ts +0 -16
  795. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.d.ts.map +0 -1
  796. package/dist/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.d.ts +0 -17
  797. package/dist/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.d.ts.map +0 -1
  798. package/dist/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.d.ts +0 -17
  799. package/dist/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.d.ts.map +0 -1
  800. package/dist/contract-functions/getPermitNonce/getPermitNonce.stories.d.ts +0 -14
  801. package/dist/contract-functions/getPermitNonce/getPermitNonce.stories.d.ts.map +0 -1
  802. package/dist/contract-functions/getShareValue/getShareValue.stories.d.ts +0 -13
  803. package/dist/contract-functions/getShareValue/getShareValue.stories.d.ts.map +0 -1
  804. package/dist/contract-functions/getSharesByAddress/getSharesByAddress.stories.d.ts +0 -13
  805. package/dist/contract-functions/getSharesByAddress/getSharesByAddress.stories.d.ts.map +0 -1
  806. package/dist/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.d.ts +0 -2
  807. package/dist/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.d.ts.map +0 -1
  808. package/dist/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.d.ts +0 -17
  809. package/dist/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.d.ts.map +0 -1
  810. package/dist/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.d.ts +0 -9
  811. package/dist/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.d.ts.map +0 -1
  812. package/dist/contract-functions/signNetworkFee/signNetworkFee.stories.d.ts +0 -14
  813. package/dist/contract-functions/signNetworkFee/signNetworkFee.stories.d.ts.map +0 -1
  814. package/dist/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.d.ts +0 -17
  815. package/dist/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.d.ts.map +0 -1
  816. package/dist/contract-functions/signStakeAndBake/signStakeAndBake.stories.d.ts +0 -50
  817. package/dist/contract-functions/signStakeAndBake/signStakeAndBake.stories.d.ts.map +0 -1
  818. package/dist/contract-functions/unstakeLBTC/unstakeLBTC.stories.d.ts +0 -17
  819. package/dist/contract-functions/unstakeLBTC/unstakeLBTC.stories.d.ts.map +0 -1
  820. package/dist/defi/defi-registry.stories.d.ts +0 -18
  821. package/dist/defi/defi-registry.stories.d.ts.map +0 -1
  822. package/dist/metrics/get-lbtc-stats.stories.d.ts +0 -17
  823. package/dist/metrics/get-lbtc-stats.stories.d.ts.map +0 -1
  824. package/dist/metrics/get-positions-summary.stories.d.ts +0 -17
  825. package/dist/metrics/get-positions-summary.stories.d.ts.map +0 -1
  826. package/dist/tokens/cross-chain-addresses.stories.d.ts +0 -60
  827. package/dist/tokens/cross-chain-addresses.stories.d.ts.map +0 -1
  828. package/dist/tokens/denomination-utils.stories.d.ts +0 -62
  829. package/dist/tokens/denomination-utils.stories.d.ts.map +0 -1
  830. package/dist/tokens/getLbtcContractAddresses.stories.d.ts +0 -59
  831. package/dist/tokens/getLbtcContractAddresses.stories.d.ts.map +0 -1
  832. package/dist/tokens/getTokenByAddress.stories.d.ts +0 -64
  833. package/dist/tokens/getTokenByAddress.stories.d.ts.map +0 -1
  834. package/dist/tokens/getTokenContractInfo.stories.d.ts +0 -52
  835. package/dist/tokens/getTokenContractInfo.stories.d.ts.map +0 -1
  836. package/dist/tokens/getTokenInfo.stories.d.ts +0 -42
  837. package/dist/tokens/getTokenInfo.stories.d.ts.map +0 -1
  838. package/dist/tokens/isUpgradedContract.stories.d.ts +0 -50
  839. package/dist/tokens/isUpgradedContract.stories.d.ts.map +0 -1
  840. package/dist/vaults/lib/metrics/get-vault-apy.stories.d.ts +0 -14
  841. package/dist/vaults/lib/metrics/get-vault-apy.stories.d.ts.map +0 -1
  842. package/dist/vaults/lib/metrics/get-vault-points.stories.d.ts +0 -14
  843. package/dist/vaults/lib/metrics/get-vault-points.stories.d.ts.map +0 -1
  844. package/dist/vaults/lib/metrics/get-vault-tvl.stories.d.ts +0 -14
  845. package/dist/vaults/lib/metrics/get-vault-tvl.stories.d.ts.map +0 -1
  846. package/dist/vaults/lib/ops/cancel-withdraw.stories.d.ts +0 -14
  847. package/dist/vaults/lib/ops/cancel-withdraw.stories.d.ts.map +0 -1
  848. package/dist/vaults/lib/ops/deposit.stories.d.ts +0 -14
  849. package/dist/vaults/lib/ops/deposit.stories.d.ts.map +0 -1
  850. package/dist/vaults/lib/ops/get-vault-deposits.stories.d.ts +0 -14
  851. package/dist/vaults/lib/ops/get-vault-deposits.stories.d.ts.map +0 -1
  852. package/dist/vaults/lib/ops/get-vault-withdrawals.stories.d.ts +0 -14
  853. package/dist/vaults/lib/ops/get-vault-withdrawals.stories.d.ts.map +0 -1
  854. package/dist/vaults/lib/ops/withdraw.stories.d.ts +0 -14
  855. package/dist/vaults/lib/ops/withdraw.stories.d.ts.map +0 -1
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Deposit Monitor Utility
3
+ *
4
+ * Shared monitoring logic for tracking Bitcoin deposit confirmations
5
+ * and minting status. Used by BtcStake, BtcDeposit, and BtcStakeAndDeploy actions.
6
+ *
7
+ * @module shared/monitoring/depositMonitor
8
+ */
9
+
10
+ import { StepStatus } from '../../core';
11
+ import type { BtcService } from '../../modules/btcModule';
12
+
13
+ /** Bitcoin network mode */
14
+ export type NetworkMode = 'mainnet' | 'testnet';
15
+
16
+ // ═══════════════════════════════════════════════════════════════════════════
17
+ // Types
18
+ // ═══════════════════════════════════════════════════════════════════════════
19
+
20
+ /**
21
+ * Deposit information returned by fetch function
22
+ */
23
+ export interface DepositInfo {
24
+ /** Block height where deposit was confirmed */
25
+ blockHeight?: number;
26
+ /** Whether LBTC has been minted/claimed */
27
+ isClaimed?: boolean;
28
+ }
29
+
30
+ /**
31
+ * Progress information emitted during monitoring
32
+ */
33
+ export interface MonitorProgress {
34
+ /** Current confirmations */
35
+ confirmations: number;
36
+ /** Required confirmations for finality */
37
+ requiredConfirmations: number;
38
+ /** Whether deposit has enough confirmations */
39
+ hasEnoughConfirmations: boolean;
40
+ /** Whether LBTC has been claimed */
41
+ isClaimed: boolean;
42
+ /** Step statuses for UI */
43
+ steps: {
44
+ created: StepStatus;
45
+ verifying: StepStatus;
46
+ issuing: StepStatus;
47
+ };
48
+ }
49
+
50
+ /**
51
+ * Options for deposit monitoring
52
+ */
53
+ export interface MonitorOptions {
54
+ /** Function to fetch deposit information */
55
+ fetchDeposit: () => Promise<DepositInfo | undefined>;
56
+ /** Bitcoin network mode */
57
+ network: NetworkMode;
58
+ /** BTC service for block height queries */
59
+ btcService: BtcService;
60
+ /** Number of confirmations required (default: 6) */
61
+ requiredConfirmations?: number;
62
+ /** Callback for progress updates */
63
+ onProgress?: (progress: MonitorProgress) => void;
64
+ /** Callback when deposit is fully claimed */
65
+ onComplete?: () => void;
66
+ }
67
+
68
+ // ═══════════════════════════════════════════════════════════════════════════
69
+ // Monitor Function
70
+ // ═══════════════════════════════════════════════════════════════════════════
71
+
72
+ /**
73
+ * Monitor a Bitcoin deposit for confirmations and minting
74
+ *
75
+ * This is a single-shot check. For continuous monitoring, call this
76
+ * function repeatedly with a timer/interval.
77
+ *
78
+ * @param options - Monitoring options
79
+ * @returns Progress information or undefined if deposit not found
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const progress = await monitorDeposit({
84
+ * fetchDeposit: async () => {
85
+ * const deposits = await getDepositsByAddress({ address, env });
86
+ * return deposits.find(d => d.depositAddress === myAddress);
87
+ * },
88
+ * network: 'mainnet',
89
+ * btcService: ctx.btc,
90
+ * onProgress: (p) => console.log(`${p.confirmations}/${p.requiredConfirmations}`),
91
+ * onComplete: () => console.log('Deposit complete!'),
92
+ * });
93
+ * ```
94
+ */
95
+ export async function monitorDeposit(
96
+ options: MonitorOptions,
97
+ ): Promise<MonitorProgress | undefined> {
98
+ const {
99
+ fetchDeposit,
100
+ network,
101
+ btcService,
102
+ requiredConfirmations = 6,
103
+ onProgress,
104
+ onComplete,
105
+ } = options;
106
+
107
+ // Fetch current deposit status
108
+ const deposit = await fetchDeposit();
109
+ if (!deposit) {
110
+ return undefined;
111
+ }
112
+
113
+ const blockHeight = deposit.blockHeight;
114
+ if (typeof blockHeight !== 'number') {
115
+ return undefined;
116
+ }
117
+
118
+ // Get current block height and calculate confirmations
119
+ const currentBlockHeight = await btcService.getCurrentBlockHeight(network);
120
+ const confirmations = Math.max(0, currentBlockHeight - blockHeight);
121
+ const hasEnoughConfirmations = confirmations >= requiredConfirmations;
122
+ const isClaimed = deposit.isClaimed ?? false;
123
+
124
+ // Build progress object
125
+ const progress: MonitorProgress = {
126
+ confirmations,
127
+ requiredConfirmations,
128
+ hasEnoughConfirmations,
129
+ isClaimed,
130
+ steps: {
131
+ created: StepStatus.COMPLETE,
132
+ verifying: hasEnoughConfirmations
133
+ ? StepStatus.COMPLETE
134
+ : StepStatus.PENDING,
135
+ issuing: isClaimed ? StepStatus.COMPLETE : StepStatus.PENDING,
136
+ },
137
+ };
138
+
139
+ // Emit callbacks
140
+ onProgress?.(progress);
141
+ if (isClaimed) {
142
+ onComplete?.();
143
+ }
144
+
145
+ return progress;
146
+ }
147
+
148
+ /**
149
+ * Create a polling monitor that checks deposit status at intervals
150
+ *
151
+ * @param options - Monitoring options
152
+ * @param intervalMs - Polling interval in milliseconds (default: 30000)
153
+ * @returns Stop function to cancel monitoring
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const stop = createPollingMonitor({
158
+ * fetchDeposit,
159
+ * network: 'mainnet',
160
+ * btcService: ctx.btc,
161
+ * onProgress: updateUI,
162
+ * onComplete: () => {
163
+ * stop(); // Stop polling when complete
164
+ * showSuccess();
165
+ * },
166
+ * }, 30000);
167
+ *
168
+ * // Later: stop monitoring
169
+ * stop();
170
+ * ```
171
+ */
172
+ export function createPollingMonitor(
173
+ options: MonitorOptions,
174
+ intervalMs = 30000,
175
+ ): () => void {
176
+ let stopped = false;
177
+ let timeoutId: ReturnType<typeof setTimeout> | undefined;
178
+
179
+ const poll = async () => {
180
+ if (stopped) return;
181
+
182
+ try {
183
+ const progress = await monitorDeposit(options);
184
+
185
+ // Stop polling if claimed
186
+ if (progress?.isClaimed) {
187
+ stopped = true;
188
+ return;
189
+ }
190
+ } catch (error) {
191
+ // Continue polling on error
192
+ console.warn('Deposit monitor poll failed:', error);
193
+ }
194
+
195
+ // Schedule next poll
196
+ if (!stopped) {
197
+ timeoutId = setTimeout(poll, intervalMs);
198
+ }
199
+ };
200
+
201
+ // Start polling
202
+ poll();
203
+
204
+ // Return stop function
205
+ return () => {
206
+ stopped = true;
207
+ if (timeoutId) {
208
+ clearTimeout(timeoutId);
209
+ }
210
+ };
211
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Monitoring Utilities
3
+ *
4
+ * @module shared/monitoring
5
+ */
6
+
7
+ export {
8
+ createPollingMonitor,
9
+ type DepositInfo,
10
+ monitorDeposit,
11
+ type MonitorOptions,
12
+ type MonitorProgress,
13
+ type NetworkMode,
14
+ } from './depositMonitor';
15
+
16
+ // Re-export existing utilities
17
+ export {
18
+ createEventEmitter,
19
+ type EventEmitter,
20
+ type EventHandler,
21
+ } from './createEventEmitter';
22
+ export {
23
+ createProgressEmitter,
24
+ type ProgressEmitter,
25
+ } from './createProgressEmitter';
@@ -0,0 +1,411 @@
1
+ /**
2
+ * Validation Schemas
3
+ *
4
+ * Centralized Zod schemas for validating SDK inputs.
5
+ * These provide type-safe, declarative validation with clear error messages.
6
+ *
7
+ * @module shared/validation
8
+ */
9
+
10
+ import * as bitcoin from 'bitcoinjs-lib';
11
+ import { z } from 'zod';
12
+
13
+ import { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';
14
+
15
+ // ═══════════════════════════════════════════════════════════════════════════
16
+ // Address Validation Helpers
17
+ // ═══════════════════════════════════════════════════════════════════════════
18
+
19
+ /**
20
+ * Validate a Bitcoin address using bitcoinjs-lib
21
+ * This validates the checksum for all address types:
22
+ * - Legacy P2PKH (1..., m..., n...)
23
+ * - P2SH (3..., 2...)
24
+ * - SegWit bech32 (bc1q..., tb1q...)
25
+ * - Taproot bech32m (bc1p..., tb1p...)
26
+ *
27
+ * @param address - The address to validate
28
+ * @returns true if valid, false otherwise
29
+ */
30
+ export function isValidBitcoinAddress(address: string): boolean {
31
+ if (!address || typeof address !== 'string') {
32
+ return false;
33
+ }
34
+
35
+ // Bech32/Bech32m addresses (bc1..., tb1...)
36
+ if (address.startsWith('bc1') || address.startsWith('tb1')) {
37
+ try {
38
+ bitcoin.address.fromBech32(address);
39
+ return true;
40
+ } catch {
41
+ return false;
42
+ }
43
+ }
44
+
45
+ // Legacy and P2SH addresses (base58check)
46
+ try {
47
+ bitcoin.address.fromBase58Check(address);
48
+ return true;
49
+ } catch {
50
+ return false;
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Validate a Solana address (base58 with proper structure)
56
+ * Solana addresses are ed25519 public keys encoded in base58
57
+ *
58
+ * Note: Unlike Bitcoin, Solana addresses don't have a built-in checksum.
59
+ * We validate that the address decodes to exactly 32 bytes.
60
+ *
61
+ * @param address - The address to validate
62
+ * @returns true if valid, false otherwise
63
+ */
64
+ export function isValidSolanaAddress(address: string): boolean {
65
+ // Base58 character set (no 0, O, I, l)
66
+ const base58Regex = /^[1-9A-HJ-NP-Za-km-z]+$/;
67
+
68
+ if (!address || typeof address !== 'string') {
69
+ return false;
70
+ }
71
+
72
+ if (!base58Regex.test(address)) {
73
+ return false;
74
+ }
75
+
76
+ // Solana addresses are exactly 32 bytes when decoded
77
+ // In base58, this results in 32-44 characters
78
+ if (address.length < 32 || address.length > 44) {
79
+ return false;
80
+ }
81
+
82
+ // Validate the base58 decoding produces exactly 32 bytes
83
+ try {
84
+ const decoded = decodeBase58(address);
85
+ return decoded.length === 32;
86
+ } catch {
87
+ return false;
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Base58 decoder for validation purposes
93
+ * Based on the Bitcoin/Solana base58 alphabet
94
+ */
95
+ function decodeBase58(str: string): Uint8Array {
96
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
97
+ const ALPHABET_MAP: Record<string, number> = {};
98
+ for (let i = 0; i < ALPHABET.length; i++) {
99
+ ALPHABET_MAP[ALPHABET[i]] = i;
100
+ }
101
+
102
+ if (str.length === 0) {
103
+ return new Uint8Array(0);
104
+ }
105
+
106
+ // Count leading zeros (represented by '1' in base58)
107
+ let leadingZeros = 0;
108
+ for (let i = 0; i < str.length && str[i] === '1'; i++) {
109
+ leadingZeros++;
110
+ }
111
+
112
+ // Decode the rest
113
+ const size = Math.ceil((str.length * Math.log(58)) / Math.log(256));
114
+ const bytes = new Uint8Array(size);
115
+
116
+ for (let i = leadingZeros; i < str.length; i++) {
117
+ const value = ALPHABET_MAP[str[i]];
118
+ if (value === undefined) {
119
+ throw new Error(`Invalid base58 character: ${str[i]}`);
120
+ }
121
+
122
+ let carry = value;
123
+ for (let j = size - 1; j >= 0; j--) {
124
+ carry += 58 * bytes[j];
125
+ bytes[j] = carry % 256;
126
+ carry = Math.floor(carry / 256);
127
+ }
128
+ }
129
+
130
+ // Find first non-zero byte
131
+ let firstNonZero = 0;
132
+ while (firstNonZero < bytes.length && bytes[firstNonZero] === 0) {
133
+ firstNonZero++;
134
+ }
135
+
136
+ // Combine leading zeros with decoded bytes
137
+ const result = new Uint8Array(leadingZeros + (bytes.length - firstNonZero));
138
+ result.fill(0, 0, leadingZeros);
139
+ result.set(bytes.subarray(firstNonZero), leadingZeros);
140
+
141
+ return result;
142
+ }
143
+
144
+ // ═══════════════════════════════════════════════════════════════════════════
145
+ // Amount Schemas
146
+ // ═══════════════════════════════════════════════════════════════════════════
147
+
148
+ /**
149
+ * Create an amount schema with configurable minimum
150
+ *
151
+ * @param minAmount - Minimum amount in human-readable format (e.g., 0.0002)
152
+ * @returns Zod schema for amount validation
153
+ */
154
+ export function createAmountSchema(minAmount?: number) {
155
+ const baseSchema = z
156
+ .string({ message: 'Amount is required' })
157
+ .min(1, 'Amount is required')
158
+ .refine(val => val !== '0', {
159
+ message: 'Amount must be greater than 0',
160
+ })
161
+ .refine(
162
+ val => {
163
+ const num = Number.parseFloat(val);
164
+ return !Number.isNaN(num) && num > 0;
165
+ },
166
+ { message: 'Invalid amount format' },
167
+ );
168
+
169
+ if (minAmount !== undefined && minAmount > 0) {
170
+ return baseSchema.refine(
171
+ val => {
172
+ const num = Number.parseFloat(val);
173
+ return num >= minAmount;
174
+ },
175
+ { message: `Amount must be at least ${minAmount}` },
176
+ );
177
+ }
178
+
179
+ return baseSchema;
180
+ }
181
+
182
+ /**
183
+ * Amount validation (human-readable string, e.g., "0.1")
184
+ *
185
+ * Validates:
186
+ * - Non-empty string
187
+ * - Not "0"
188
+ * - Parses to positive number
189
+ *
190
+ * Used for both BTC and EVM amounts.
191
+ */
192
+ export const amountSchema = createAmountSchema();
193
+
194
+ /**
195
+ * BTC stake amount schema with minimum 0.0002 BTC
196
+ */
197
+ export const btcStakeAmountSchema = createAmountSchema(MIN_STAKE_AMOUNT_BTC);
198
+
199
+ /** @deprecated Use amountSchema instead */
200
+ export const btcAmountSchema = amountSchema;
201
+
202
+ /** Alias for EVM operations */
203
+ export const evmAmountSchema = amountSchema;
204
+
205
+ /**
206
+ * Satoshi amount validation (bigint or number)
207
+ */
208
+ export const satoshiAmountSchema = z
209
+ .union([z.bigint(), z.number()])
210
+ .refine(val => val > 0, { message: 'Amount must be greater than 0' });
211
+
212
+ // ═══════════════════════════════════════════════════════════════════════════
213
+ // Address Schemas
214
+ // ═══════════════════════════════════════════════════════════════════════════
215
+
216
+ /**
217
+ * EVM address validation (0x + 40 hex chars)
218
+ */
219
+ export const evmAddressSchema = z
220
+ .string({ message: 'Address is required' })
221
+ .regex(/^0x[a-fA-F0-9]{40}$/, 'Invalid EVM address format');
222
+
223
+ /**
224
+ * Solana address validation (base58, exactly 32 bytes when decoded)
225
+ * Uses proper base58 decoding to verify the address structure
226
+ */
227
+ export const solanaAddressSchema = z
228
+ .string({ message: 'Address is required' })
229
+ .refine(isValidSolanaAddress, { message: 'Invalid Solana address format' });
230
+
231
+ /**
232
+ * Sui address validation (0x + 64 hex chars)
233
+ */
234
+ export const suiAddressSchema = z
235
+ .string({ message: 'Address is required' })
236
+ .regex(/^0x[a-fA-F0-9]{64}$/, 'Invalid Sui address format');
237
+
238
+ /**
239
+ * Starknet address validation (0x + 1-64 hex chars)
240
+ */
241
+ export const starknetAddressSchema = z
242
+ .string({ message: 'Address is required' })
243
+ .regex(/^0x[a-fA-F0-9]{1,64}$/, 'Invalid Starknet address format');
244
+
245
+ /**
246
+ * Bitcoin address validation with proper checksum verification
247
+ * Uses bitcoinjs-lib to validate all address formats:
248
+ * - Legacy P2PKH (1..., m..., n...)
249
+ * - P2SH (3..., 2...)
250
+ * - SegWit bech32 (bc1q..., tb1q...)
251
+ * - Taproot bech32m (bc1p..., tb1p...)
252
+ */
253
+ export const bitcoinAddressSchema = z
254
+ .string({ message: 'Address is required' })
255
+ .refine(isValidBitcoinAddress, { message: 'Invalid Bitcoin address format' });
256
+
257
+ /**
258
+ * Map of chain type to address schema
259
+ */
260
+ export const addressSchemasByChainType = {
261
+ evm: evmAddressSchema,
262
+ solana: solanaAddressSchema,
263
+ sui: suiAddressSchema,
264
+ starknet: starknetAddressSchema,
265
+ bitcoin: bitcoinAddressSchema,
266
+ } as const;
267
+
268
+ // ═══════════════════════════════════════════════════════════════════════════
269
+ // Common Schemas
270
+ // ═══════════════════════════════════════════════════════════════════════════
271
+
272
+ /**
273
+ * Referral code validation (optional string)
274
+ */
275
+ export const referralCodeSchema = z.string().optional();
276
+
277
+ /**
278
+ * Transaction hash validation (0x + 64 hex chars)
279
+ */
280
+ export const txHashSchema = z
281
+ .string()
282
+ .regex(/^0x[a-fA-F0-9]{64}$/, 'Invalid transaction hash');
283
+
284
+ // ═══════════════════════════════════════════════════════════════════════════
285
+ // BTC Stake Schemas
286
+ // ═══════════════════════════════════════════════════════════════════════════
287
+
288
+ /**
289
+ * BTC Stake prepare params schema (base - recipient validated separately per chain)
290
+ */
291
+ export const btcStakePrepareBaseSchema = z.object({
292
+ amount: btcStakeAmountSchema,
293
+ recipient: z
294
+ .string({ message: 'Recipient is required' })
295
+ .min(1, 'Recipient is required'),
296
+ referralCode: referralCodeSchema,
297
+ });
298
+
299
+ /**
300
+ * Create a prepare schema with chain-specific address validation
301
+ */
302
+ export function createBtcStakePrepareSchema(addressSchema: z.ZodString) {
303
+ return z.object({
304
+ amount: btcStakeAmountSchema,
305
+ recipient: addressSchema,
306
+ referralCode: referralCodeSchema,
307
+ });
308
+ }
309
+
310
+ // ═══════════════════════════════════════════════════════════════════════════
311
+ // Type Exports
312
+ // ═══════════════════════════════════════════════════════════════════════════
313
+
314
+ export type Amount = z.infer<typeof amountSchema>;
315
+ /** @deprecated Use Amount instead */
316
+ export type BtcAmount = Amount;
317
+ export type EvmAddress = z.infer<typeof evmAddressSchema>;
318
+ export type SolanaAddress = z.infer<typeof solanaAddressSchema>;
319
+ export type SuiAddress = z.infer<typeof suiAddressSchema>;
320
+ export type StarknetAddress = z.infer<typeof starknetAddressSchema>;
321
+ export type BitcoinAddress = z.infer<typeof bitcoinAddressSchema>;
322
+ export type BtcStakePrepareParams = z.infer<typeof btcStakePrepareBaseSchema>;
323
+
324
+ // ═══════════════════════════════════════════════════════════════════════════
325
+ // Validation Helpers
326
+ // ═══════════════════════════════════════════════════════════════════════════
327
+
328
+ import type { Chain } from '../../core';
329
+ import { LombardError } from '../errors';
330
+
331
+ /**
332
+ * Validation error handler configuration
333
+ */
334
+ export interface ValidationErrorConfig {
335
+ /** Chain for address validation errors (optional) */
336
+ destChain?: Chain;
337
+ }
338
+
339
+ /**
340
+ * Validate prepare params with standard error handling
341
+ *
342
+ * This helper provides consistent Zod validation with LombardError mapping:
343
+ * - 'amount' field → LombardError.invalidAmount()
344
+ * - 'recipient' field → LombardError.invalidAddress()
345
+ * - Other fields → LombardError.invalidParameter()
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * private validatePrepareParams(params: PrepareParams) {
350
+ * return validatePrepareParams(this.prepareSchema, params, {
351
+ * destChain: this.params.destChain,
352
+ * });
353
+ * }
354
+ * ```
355
+ */
356
+ export function validatePrepareParams<T>(
357
+ schema: z.ZodSchema<T>,
358
+ params: unknown,
359
+ config: ValidationErrorConfig = {},
360
+ ): T {
361
+ const result = schema.safeParse(params);
362
+
363
+ if (!result.success) {
364
+ const firstIssue = result.error.issues[0];
365
+ const path = firstIssue?.path[0];
366
+ const message = firstIssue?.message ?? 'Invalid parameter';
367
+
368
+ if (path === 'amount') {
369
+ throw LombardError.invalidAmount(message);
370
+ }
371
+ if (path === 'recipient') {
372
+ throw LombardError.invalidAddress(
373
+ (params as Record<string, unknown>)?.recipient as string,
374
+ config.destChain,
375
+ );
376
+ }
377
+ throw LombardError.invalidParameter(String(path), message);
378
+ }
379
+
380
+ return result.data;
381
+ }
382
+
383
+ /**
384
+ * Validate and parse input, throwing error on failure
385
+ */
386
+ export function validateOrThrow<T>(
387
+ schema: z.ZodSchema<T>,
388
+ data: unknown,
389
+ errorFactory: (message: string) => Error,
390
+ ): T {
391
+ const result = schema.safeParse(data);
392
+ if (!result.success) {
393
+ const firstIssue = result.error.issues[0];
394
+ throw errorFactory(firstIssue?.message ?? 'Validation failed');
395
+ }
396
+ return result.data;
397
+ }
398
+
399
+ /**
400
+ * Validate input, returning result object
401
+ */
402
+ export function validate<T>(
403
+ schema: z.ZodSchema<T>,
404
+ data: unknown,
405
+ ): { success: true; data: T } | { success: false; error: z.ZodError } {
406
+ const result = schema.safeParse(data);
407
+ if (result.success) {
408
+ return { success: true, data: result.data };
409
+ }
410
+ return { success: false, error: result.error };
411
+ }
@@ -1,5 +1,6 @@
1
1
  import { Env } from '@lombard.finance/sdk-common';
2
2
  import { ArgTypes } from 'storybook/internal/types';
3
+
3
4
  import { ChainId } from '../common/chains';
4
5
  import { Token } from '../tokens/token-addresses';
5
6
 
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from 'react';
2
+
3
+ interface BadgeProps {
4
+ children: ReactNode;
5
+ variant?:
6
+ | 'primary'
7
+ | 'secondary'
8
+ | 'success'
9
+ | 'danger'
10
+ | 'warning'
11
+ | 'info'
12
+ | 'light'
13
+ | 'dark';
14
+ className?: string;
15
+ }
16
+
17
+ /**
18
+ * Reusable badge component for displaying labels and tags
19
+ * Supports Bootstrap color variants
20
+ */
21
+ export function Badge({
22
+ children,
23
+ variant = 'secondary',
24
+ className = '',
25
+ }: BadgeProps) {
26
+ return <span className={`badge bg-${variant} ${className}`}>{children}</span>;
27
+ }
@@ -1,6 +1,8 @@
1
+ import './Button.css';
2
+
1
3
  import React from 'react';
4
+
2
5
  import { Spinner } from '../Spinner';
3
- import './Button.css';
4
6
 
5
7
  export interface ButtonProps {
6
8
  disabled?: boolean;
@@ -16,7 +18,7 @@ export interface ButtonProps {
16
18
  * Execute action button
17
19
  */
18
20
  export const Button = ({
19
- primary = true,
21
+ primary: _primary = true,
20
22
  size = 'medium',
21
23
  actionName,
22
24
  children,