@lombard.finance/sdk 3.7.3 → 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 +49 -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 +747 -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 +19781 -14374
  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 +30 -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,201 @@
1
+ /**
2
+ * Base BTC Action Class
3
+ *
4
+ * Provides common functionality for all BTC actions:
5
+ * - State management (amount, recipient, depositAddress, referralCode)
6
+ * - Ensure methods for validation
7
+ * - Bitcoin network helpers
8
+ * - Deposit monitoring
9
+ * - Bitcoin send operations
10
+ * - Common validation and prepare patterns
11
+ *
12
+ * @module chains/btc/actions/shared/BaseBtcAction
13
+ */
14
+ import { z } from 'zod';
15
+ import { ChainId, SolanaChain, StarknetChainId, SuiChain } from '../../../../common/chains';
16
+ import { Chain, StepStatus } from '../../../../core';
17
+ import { BaseAction } from '../../../../shared/actions';
18
+ import type { BtcCoreContext } from '../../../../shared/context';
19
+ import type { MonitorProgress, NetworkMode } from '../../../../shared/monitoring';
20
+ import type { EventHandler } from '../../../../shared/monitoring/createEventEmitter';
21
+ /**
22
+ * Common authorization state for BTC actions
23
+ */
24
+ export interface BtcAuthorizationState {
25
+ authorized: boolean;
26
+ signature?: string;
27
+ typedData?: unknown;
28
+ [key: string]: unknown;
29
+ }
30
+ /**
31
+ * Common params that all BTC actions share
32
+ */
33
+ export interface BaseBtcParams {
34
+ sourceChain?: typeof Chain.BITCOIN_MAINNET | typeof Chain.BITCOIN_SIGNET;
35
+ destChain: Chain;
36
+ }
37
+ /**
38
+ * Common prepare params
39
+ */
40
+ export interface BasePrepareParams {
41
+ amount: string;
42
+ recipient: string;
43
+ referralCode?: string;
44
+ }
45
+ /**
46
+ * Progress step definitions
47
+ */
48
+ export type StepDefinition = Record<string, StepStatus>;
49
+ /**
50
+ * Status configuration for template methods
51
+ */
52
+ export interface StatusConfig<TStatus extends string> {
53
+ idle: TStatus;
54
+ ready: TStatus;
55
+ addressReady: TStatus;
56
+ }
57
+ /**
58
+ * Base class for BTC actions
59
+ *
60
+ * Provides template methods for common patterns:
61
+ * - prepare() with validation and resume
62
+ * - generateDepositAddress()
63
+ * - execute()
64
+ * - monitorDeposit()
65
+ *
66
+ * Subclasses implement abstract methods to customize behavior.
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * class BtcStake extends BaseBtcAction<StakeEventMap, BtcActionStatus, BtcStakeParams> {
71
+ * protected getAddressSchema() { return evmAddressSchema; }
72
+ * protected getStatusConfig() { return { idle: BtcActionStatus.IDLE, ... }; }
73
+ * protected getInitialSteps() { return { created: StepStatus.IDLE, ... }; }
74
+ * }
75
+ * ```
76
+ */
77
+ export declare abstract class BaseBtcAction<TEventMap extends Record<string, EventHandler<unknown[]>>, TStatus extends string, TParams extends BaseBtcParams> extends BaseAction<TEventMap, TStatus> {
78
+ protected readonly ctx: BtcCoreContext;
79
+ protected readonly params: TParams;
80
+ protected _amount?: string;
81
+ protected _recipient?: string;
82
+ protected _depositAddress?: string;
83
+ protected _referralCode?: string;
84
+ protected _chainId?: unknown;
85
+ constructor(ctx: BtcCoreContext, params: TParams, initialStatus: TStatus);
86
+ /** Get the address validation schema for this action */
87
+ protected abstract getAddressSchema(): z.ZodType<string>;
88
+ /** Get the status configuration for template methods */
89
+ protected abstract getStatusConfig(): StatusConfig<TStatus>;
90
+ /** Get the initial progress steps for this action */
91
+ protected abstract getInitialSteps(): StepDefinition;
92
+ /** Check if the action has been authorized */
93
+ protected abstract isAuthorized(): boolean;
94
+ /** Get the chain ID (after parsing in constructor) */
95
+ protected abstract getChainId(): ChainId | SuiChain | SolanaChain | StarknetChainId;
96
+ /**
97
+ * Get API params for generateDepositAddress
98
+ * Subclasses provide action-specific parameters
99
+ */
100
+ protected abstract getDepositAddressParams(): {
101
+ address: string;
102
+ chainId: ChainId | SuiChain | SolanaChain | StarknetChainId;
103
+ signature: string;
104
+ token: string;
105
+ eip712Data?: string;
106
+ signatureData?: string;
107
+ pubKey?: string;
108
+ partnerId?: string;
109
+ referrerCode?: string;
110
+ };
111
+ /**
112
+ * Get the expected destination token (LBTC, BTCb, etc.)
113
+ * Used for resuming from existing deposits before authorization is complete
114
+ */
115
+ protected abstract getExpectedToken(): string;
116
+ /** Amount of BTC to stake/deposit */
117
+ get amount(): string | undefined;
118
+ /** Recipient address on destination chain */
119
+ get recipient(): string | undefined;
120
+ /** Generated Bitcoin deposit address */
121
+ get depositAddress(): string | undefined;
122
+ /** Referral code (optional) */
123
+ get referralCode(): string | undefined;
124
+ /** Bitcoin network mode for monitoring */
125
+ protected get bitcoinNetwork(): NetworkMode;
126
+ /**
127
+ * Get the prepare schema (amount + recipient + referralCode)
128
+ * Uses abstract getAddressSchema() for chain-specific validation
129
+ */
130
+ protected get prepareSchema(): z.ZodObject<{
131
+ amount: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string> | z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
132
+ recipient: z.ZodType<string, z.ZodTypeDef, string>;
133
+ referralCode: z.ZodOptional<z.ZodString>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ amount: string;
136
+ recipient: string;
137
+ referralCode?: string | undefined;
138
+ }, {
139
+ amount: string;
140
+ recipient: string;
141
+ referralCode?: string | undefined;
142
+ }>;
143
+ /**
144
+ * Validate prepare params using Zod
145
+ * Subclasses can override if they need custom validation
146
+ */
147
+ protected validatePrepareParams(params: BasePrepareParams): BasePrepareParams;
148
+ protected ensureRecipient(): string;
149
+ protected ensureAmount(): string;
150
+ protected ensureDepositAddress(): string;
151
+ /**
152
+ * Get error message for missing authorization
153
+ * Subclasses can override to provide specific messages
154
+ */
155
+ protected getAuthRequiredMessage(): string;
156
+ protected ensureAuthorized(): void;
157
+ /**
158
+ * Try to resume from an existing deposit address
159
+ *
160
+ * This method only stores the deposit address if found.
161
+ * It does NOT update the status - the caller must do that
162
+ * after performing any additional validation (e.g., fee authorization).
163
+ *
164
+ * @param recipient - The recipient address to check
165
+ * @returns true if a deposit address was found, false otherwise
166
+ */
167
+ protected resumeFromExistingDeposit(recipient: string): Promise<boolean>;
168
+ /**
169
+ * Generate a Bitcoin deposit address
170
+ *
171
+ * Template method that:
172
+ * 1. Validates status and authorization
173
+ * 2. Calls API to generate address
174
+ * 3. Updates state and emits progress
175
+ *
176
+ * Subclasses must implement getDepositAddressParams() to provide API params.
177
+ */
178
+ protected generateDepositAddressImpl(): Promise<string>;
179
+ /**
180
+ * Execute the action - generate address and optionally send BTC
181
+ *
182
+ * Template method that:
183
+ * 1. Ensures deposit address exists
184
+ * 2. Tries to send BTC if provider available
185
+ * 3. Returns result
186
+ */
187
+ protected executeImpl(): Promise<{
188
+ depositAddress: string;
189
+ txHash?: string;
190
+ }>;
191
+ /**
192
+ * Emit initial progress with action-specific steps
193
+ */
194
+ protected emitInitialProgress(): void;
195
+ /**
196
+ * Monitor Bitcoin deposit progress
197
+ */
198
+ monitorDeposit(): Promise<MonitorProgress | undefined>;
199
+ protected trySendBitcoin(depositAddress: string): Promise<string | undefined>;
200
+ }
201
+ //# sourceMappingURL=BaseBtcAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseBtcAction.d.ts","sourceRoot":"","sources":["../../../../../src/chains/btc/actions/shared/BaseBtcAction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,OAAO,EACP,WAAW,EACX,eAAe,EACf,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAarF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,OAAO,KAAK,CAAC,eAAe,GAAG,OAAO,KAAK,CAAC,cAAc,CAAC;IACzE,SAAS,EAAE,KAAK,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,aAAa,CACjC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EACzD,OAAO,SAAS,MAAM,EACtB,OAAO,SAAS,aAAa,CAC7B,SAAQ,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;IAYpC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;IARpC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAGR,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,OAAO,EAClC,aAAa,EAAE,OAAO;IASxB,wDAAwD;IACxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAExD,wDAAwD;IACxD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,YAAY,CAAC,OAAO,CAAC;IAE3D,qDAAqD;IACrD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,8CAA8C;IAC9C,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO;IAE1C,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,UAAU,IACzB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,eAAe;IAEnB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,uBAAuB,IAAI;QAC5C,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAC;QAC5D,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAED;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,MAAM;IAM7C,qCAAqC;IACrC,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,6CAA6C;IAC7C,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,wCAAwC;IACxC,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,+BAA+B;IAC/B,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,0CAA0C;IAC1C,SAAS,KAAK,cAAc,IAAI,WAAW,CAG1C;IAMD;;;OAGG;IACH,SAAS,KAAK,aAAa;;;;;;;;;;;;OAM1B;IAED;;;OAGG;IACH,SAAS,CAAC,qBAAqB,CAC7B,MAAM,EAAE,iBAAiB,GACxB,iBAAiB;IAUpB,SAAS,CAAC,eAAe,IAAI,MAAM;IAOnC,SAAS,CAAC,YAAY,IAAI,MAAM;IAOhC,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAUxC;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM;IAI1C,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAalC;;;;;;;;;OASG;cACa,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IA0BnB;;;;;;;;;OASG;cACa,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IA0C7D;;;;;;;OAOG;cACa,WAAW,IAAI,OAAO,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAqBF;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAWrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cA+C5C,cAAc,CAC5B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAsB/B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared BTC Action Utilities
3
+ *
4
+ * Common utilities and base classes for BTC actions.
5
+ *
6
+ * @module chains/btc/actions/shared
7
+ */
8
+ export type { BaseBtcParams, BtcAuthorizationState, StatusConfig, StepDefinition, } from './BaseBtcAction';
9
+ export { BaseBtcAction } from './BaseBtcAction';
10
+ export { assetIdToToken } from './tokenUtils';
11
+ export type { ValidatableConfig, ValidatableParams, ValidationContext, } from './validation';
12
+ export { isAssetSupported, isDestChainSupported, isRouteAvailable, validateBtcActionParams, validateProtocol, } from './validation';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/chains/btc/actions/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Token Utilities for BTC Actions
3
+ *
4
+ * Shared utilities for mapping asset IDs to tokens.
5
+ *
6
+ * ## Token Parameter Pattern for StakeAndBake/DepositAndDeploy
7
+ *
8
+ * The `token` parameter in authorization functions determines which DEFI_REGISTRY
9
+ * entry is used, which affects the `amountStrategy`:
10
+ *
11
+ * | Action | Flow | Token Param | Strategy | Reason |
12
+ * |---------------------|-------------------|---------------|-------------|----------------------------|
13
+ * | BtcStakeAndDeploy | BTC → LBTC → Vault | AssetId.BTC | btcToLbtc | Apply BTC/LBTC ratio |
14
+ * | BtcDepositAndDeploy | BTC → BTCb → Vault | Token.BTCb | identity | 1:1 ratio, no conversion |
15
+ *
16
+ * **Key Insight:**
17
+ * - LBTC has a variable exchange rate with BTC (~1.00265 BTC = 1 LBTC)
18
+ * - BTC.b is 1:1 with BTC (wrapped representation)
19
+ *
20
+ * For LBTC outputs, use the SOURCE asset (`'BTC'`) to trigger ratio conversion.
21
+ * For BTC.b outputs, use the OUTPUT asset (`Token.BTCb`) since no conversion needed.
22
+ *
23
+ * @see DEFI_REGISTRY in defi/defi-registry.ts
24
+ * @see signStakeAndBake for how amountStrategy is applied
25
+ *
26
+ * @module chains/btc/actions/shared/tokenUtils
27
+ */
28
+ import { AssetId } from '../../../../core/assets';
29
+ import { Token } from '../../../../tokens/token-addresses';
30
+ /**
31
+ * Maps an AssetId to its corresponding Token value for API calls.
32
+ *
33
+ * **Note:** This function handles LBTC and BTCb. For BTC → LBTC flows that need
34
+ * ratio conversion, use `AssetId.BTC` directly instead of this function.
35
+ *
36
+ * @param assetId - The asset ID to convert
37
+ * @param defaultToken - The default token if assetId doesn't match known types (defaults to LBTC)
38
+ * @returns The corresponding Token value
39
+ *
40
+ * @example
41
+ * // For BTC.b outputs (1:1 with BTC)
42
+ * assetIdToToken(AssetId.BTCb) // returns Token.BTCb
43
+ *
44
+ * @example
45
+ * // For LBTC outputs from LBTC source (no ratio conversion)
46
+ * assetIdToToken(AssetId.LBTC) // returns Token.LBTC
47
+ *
48
+ * @example
49
+ * // For BTC → LBTC (needs ratio conversion)
50
+ * // DON'T use assetIdToToken, use AssetId.BTC directly
51
+ * token: AssetId.BTC // triggers btcToLbtc strategy
52
+ */
53
+ export declare function assetIdToToken(assetId: AssetId, defaultToken?: Token): Token;
54
+ //# sourceMappingURL=tokenUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUtils.d.ts","sourceRoot":"","sources":["../../../../../src/chains/btc/actions/shared/tokenUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,KAAkB,GAC/B,KAAK,CASP"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Shared Validation Utilities for BTC Actions
3
+ *
4
+ * Provides common validation logic used across all BTC actions.
5
+ * Reduces code duplication and ensures consistent error handling.
6
+ *
7
+ * @module chains/btc/actions/shared/validation
8
+ */
9
+ import type { AssetId, Chain, Env } from '../../../../core';
10
+ /**
11
+ * Common config interface for validation
12
+ * All BTC action configs should implement these properties
13
+ */
14
+ export interface ValidatableConfig {
15
+ destChains: Chain[];
16
+ supportedAssetsOut: AssetId[];
17
+ routes: Array<{
18
+ sourceChains: Chain[];
19
+ envs: Env[];
20
+ }>;
21
+ }
22
+ /**
23
+ * Common params interface for validation
24
+ */
25
+ export interface ValidatableParams {
26
+ assetOut: AssetId;
27
+ destChain: Chain;
28
+ sourceChain?: Chain;
29
+ }
30
+ /**
31
+ * Validation context
32
+ */
33
+ export interface ValidationContext {
34
+ env: Env;
35
+ actionName: string;
36
+ expectedAssets: AssetId[];
37
+ alternativeAction?: string;
38
+ }
39
+ /**
40
+ * Check if an asset is in the supported list
41
+ */
42
+ export declare function isAssetSupported(supportedAssets: AssetId[], assetOut: AssetId): boolean;
43
+ /**
44
+ * Check if a destination chain is in the supported list
45
+ */
46
+ export declare function isDestChainSupported(supportedChains: Chain[], destChain: Chain): boolean;
47
+ /**
48
+ * Check if a route is available for the given source chain and environment
49
+ */
50
+ export declare function isRouteAvailable(routes: ValidatableConfig['routes'], sourceChain: Chain | undefined, env: Env): boolean;
51
+ /**
52
+ * Validate common BTC action parameters
53
+ *
54
+ * Performs all standard validations in one call:
55
+ * - Asset output validation
56
+ * - Destination chain validation
57
+ * - Route availability validation
58
+ *
59
+ * Throws descriptive errors if validation fails.
60
+ *
61
+ * @param config - Action configuration with supported chains/assets
62
+ * @param params - Action parameters to validate
63
+ * @param context - Validation context (env, action name, etc.)
64
+ *
65
+ * @throws LombardError with appropriate code and message
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * validateBtcActionParams(
70
+ * stakeConfig,
71
+ * { assetOut: AssetId.LBTC, destChain: Chain.ETHEREUM },
72
+ * {
73
+ * env: 'prod',
74
+ * actionName: 'BTC Stake',
75
+ * expectedAssets: [AssetId.LBTC],
76
+ * alternativeAction: 'BtcDeposit',
77
+ * }
78
+ * );
79
+ * ```
80
+ */
81
+ export declare function validateBtcActionParams(config: ValidatableConfig, params: ValidatableParams, context: ValidationContext): void;
82
+ /**
83
+ * Validate protocol is supported (for deploy actions)
84
+ *
85
+ * @param supportedProtocols - List of supported protocols
86
+ * @param protocol - Protocol to validate
87
+ * @param actionName - Name of action for error message
88
+ */
89
+ export declare function validateProtocol(supportedProtocols: string[], protocol: string, actionName: string): void;
90
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../src/chains/btc/actions/shared/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,EAAE,KAAK,CAAC;QACZ,YAAY,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,EAAE,GAAG,EAAE,CAAC;KACb,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,OAAO,EAAE,EAC1B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,KAAK,EAAE,EACxB,SAAS,EAAE,KAAK,GACf,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,GAAG,EAAE,GAAG,GACP,OAAO,CAOT;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAgCN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAQN"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * BTC Stake Action
3
+ *
4
+ * A configuration-driven action that handles BTC → LBTC staking
5
+ * to any supported destination chain. Chain-specific logic is delegated
6
+ * to ChainConfig objects in the config/ folder.
7
+ *
8
+ * @module chains/btc/actions/stake/BtcStake
9
+ */
10
+ import type { z } from 'zod';
11
+ import type { ChainId, SolanaChain, StarknetChainId, SuiChain } from '../../../../common/chains';
12
+ import { BtcActionStatus } from '../../../../shared/constants/statusConstants';
13
+ import type { BtcCoreContext } from '../../../../shared/context';
14
+ import type { StakeEventMap } from '../../../../shared/events';
15
+ import type { MonitorProgress } from '../../../../shared/monitoring';
16
+ import { BaseBtcAction, type StatusConfig, type StepDefinition } from '../shared';
17
+ import type { BtcStake as IBtcStake, BtcStakeParams } from './types';
18
+ type AnyChainId = ChainId | SolanaChain | SuiChain | StarknetChainId;
19
+ /**
20
+ * BTC Stake Action
21
+ *
22
+ * Handles BTC → LBTC staking to any supported destination chain.
23
+ * Uses configuration-driven design for chain-specific logic.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const stake = new BtcStake(ctx, {
28
+ * assetOut: AssetId.LBTC,
29
+ * destChain: Chain.ETHEREUM,
30
+ * });
31
+ *
32
+ * await stake.prepare({ amount: '0.1', recipient: '0x...' });
33
+ * await stake.authorize();
34
+ * const address = await stake.generateDepositAddress();
35
+ * ```
36
+ */
37
+ export declare class BtcStake extends BaseBtcAction<StakeEventMap, BtcActionStatus, BtcStakeParams> implements IBtcStake {
38
+ private readonly config;
39
+ private readonly chainId;
40
+ private readonly authState;
41
+ /** Fee auth config - null if not required for this destination */
42
+ private feeAuthConfig;
43
+ constructor(ctx: BtcCoreContext, params: BtcStakeParams);
44
+ protected getAddressSchema(): z.ZodType<string>;
45
+ protected getStatusConfig(): StatusConfig<BtcActionStatus>;
46
+ protected getInitialSteps(): StepDefinition;
47
+ protected isAuthorized(): boolean;
48
+ protected getChainId(): AnyChainId;
49
+ protected getDepositAddressParams(): {
50
+ address: string;
51
+ chainId: AnyChainId;
52
+ signature: string;
53
+ token: string;
54
+ eip712Data: string | undefined;
55
+ pubKey: string | undefined;
56
+ partnerId: string | undefined;
57
+ referrerCode: string | undefined;
58
+ };
59
+ /**
60
+ * Get expected token for this action (LBTC by default for BTC Stake)
61
+ */
62
+ protected getExpectedToken(): string;
63
+ protected getAuthRequiredMessage(): string;
64
+ /** Get minting fee (available after prepare() for fee-auth chains) */
65
+ get mintingFee(): string | undefined;
66
+ prepare(params: {
67
+ amount: string;
68
+ recipient: string;
69
+ referralCode?: string;
70
+ }): Promise<void>;
71
+ authorize(): Promise<void>;
72
+ generateDepositAddress(): Promise<string>;
73
+ execute(): Promise<{
74
+ depositAddress: string;
75
+ txHash?: string;
76
+ }>;
77
+ monitorDeposit(): Promise<MonitorProgress | undefined>;
78
+ private ensureMintingFee;
79
+ private getActiveSignature;
80
+ }
81
+ export {};
82
+ //# sourceMappingURL=BtcStake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BtcStake.d.ts","sourceRoot":"","sources":["../../../../../src/chains/btc/actions/stake/BtcStake.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,eAAe,EACf,QAAQ,EACX,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EAEH,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACtB,MAAM,WAAW,CAAC;AAUnB,OAAO,KAAK,EAAE,QAAQ,IAAI,SAAS,EAAC,cAAc,EAAE,MAAM,SAAS,CAAC;AAMpE,KAAK,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAC;AAgBrE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QACX,SAAQ,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CACpE,YAAW,SAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IAEvE,kEAAkE;IAClE,OAAO,CAAC,aAAa,CAA8B;gBAEvC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc;IA8CvD,SAAS,CAAC,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAI/C,SAAS,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,CAAC;IAQ1D,SAAS,CAAC,eAAe,IAAI,cAAc;IAQ3C,SAAS,CAAC,YAAY,IAAI,OAAO;IAIjC,SAAS,CAAC,UAAU,IAAI,UAAU;IAIlC,SAAS,CAAC,uBAAuB;;;;;;;;;;IAuBjC;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,sBAAsB,IAAI,MAAM;IAQ1C,sEAAsE;IACtE,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAMK,OAAO,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiGX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC1B,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyCzC,OAAO,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/D,cAAc,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAQ5D,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * EVM Chain Configuration
3
+ *
4
+ * Handles all EVM-compatible destination chains (Ethereum, Base, Arbitrum, etc.)
5
+ * Includes fee authorization for Ethereum mainnet and destination signing for others.
6
+ *
7
+ * Supported chains are derived from ASSET_CATALOG - single source of truth.
8
+ *
9
+ * @module chains/btc/actions/stake/config/evm
10
+ */
11
+ import type { ChainConfig } from './types';
12
+ /**
13
+ * EVM chain configuration for BTC stake
14
+ *
15
+ * BTC Stake: BTC → LBTC (yield-bearing staked BTC)
16
+ * Supports staking BTC to LBTC on any EVM-compatible chain.
17
+ * Supported chains are derived from ASSET_CATALOG[AssetId.LBTC].deployments.
18
+ */
19
+ export declare const evmConfig: ChainConfig;
20
+ //# sourceMappingURL=evm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../src/chains/btc/actions/stake/config/evm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AAuG1D;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,WAiDvB,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Chain Configuration Registry
3
+ *
4
+ * Exports all chain configurations and provides registry lookup functions.
5
+ *
6
+ * BTC Stake: BTC → LBTC (yield-bearing staked BTC)
7
+ *
8
+ * @module chains/btc/actions/stake/config
9
+ */
10
+ import type { AssetId, Chain, ChainType, Env } from '../../../../../core';
11
+ import type { ChainConfig } from './types';
12
+ export type { ChainConfig, FeeAuthConfig, FeeAuthResult, RouteDefinition, SignatureResult, StoredFeeSignature, } from './types';
13
+ export { evmConfig } from './evm';
14
+ export { solanaConfig } from './solana';
15
+ export { starknetConfig } from './starknet';
16
+ export { suiConfig } from './sui';
17
+ /**
18
+ * Registry of all chain configurations
19
+ *
20
+ * Add new chain types here to support additional destination chains.
21
+ * The key must match the ChainType from the chain catalog.
22
+ */
23
+ export declare const chainConfigs: Partial<Record<ChainType, ChainConfig>>;
24
+ /**
25
+ * Get chain configuration by chain type
26
+ *
27
+ * @param chainType - The chain type from getChainType()
28
+ * @returns ChainConfig or undefined if not supported
29
+ */
30
+ export declare function getChainConfig(chainType: ChainType): ChainConfig | undefined;
31
+ /**
32
+ * Check if a chain type is supported for BTC staking
33
+ *
34
+ * @param chainType - The chain type to check
35
+ * @returns true if supported
36
+ */
37
+ export declare function isChainTypeSupported(chainType: ChainType): boolean;
38
+ /**
39
+ * Check if a specific route is available
40
+ *
41
+ * @param config - Chain configuration
42
+ * @param sourceChain - Source chain (Bitcoin network)
43
+ * @param env - Environment
44
+ * @returns true if route is available
45
+ */
46
+ export declare function isRouteAvailable(config: ChainConfig, sourceChain: Chain | undefined, env: Env): boolean;
47
+ /**
48
+ * Check if a destination chain is supported by a config
49
+ *
50
+ * @param config - Chain configuration
51
+ * @param destChain - Destination chain
52
+ * @returns true if destination chain is supported
53
+ */
54
+ export declare function isDestChainSupported(config: ChainConfig, destChain: Chain): boolean;
55
+ /**
56
+ * Check if an output asset is supported by a config
57
+ *
58
+ * @param config - Chain configuration
59
+ * @param assetOut - Output asset
60
+ * @returns true if output asset is supported
61
+ */
62
+ export declare function isAssetOutSupported(config: ChainConfig, assetOut: AssetId): boolean;
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/chains/btc/actions/stake/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAK1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,YAAY,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAKhE,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,GAAG,EAAE,GAAG,GACP,OAAO,CAOT;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,KAAK,GACf,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAET"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Solana Chain Configuration
3
+ *
4
+ * Handles Solana destination chains (mainnet and devnet).
5
+ * Uses Solana wallet signing via the Solana SDK module.
6
+ *
7
+ * BTC Stake: BTC → LBTC (yield-bearing staked BTC)
8
+ * Supported chains derived from ASSET_CATALOG.
9
+ *
10
+ * @module chains/btc/actions/stake/config/solana
11
+ */
12
+ import type { ChainConfig } from './types';
13
+ /**
14
+ * Solana chain configuration for BTC stake
15
+ *
16
+ * Supports staking BTC to LBTC on Solana.
17
+ * Requires the @lombard.finance/sdk-solana module to be installed.
18
+ */
19
+ export declare const solanaConfig: ChainConfig;
20
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../../../src/chains/btc/actions/stake/config/solana.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkC3C;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,WAqC1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Starknet Chain Configuration
3
+ *
4
+ * Handles Starknet destination chains (mainnet and Sepolia).
5
+ * Uses Starknet wallet signing via the Starknet SDK module.
6
+ * Note: Starknet requires address padding and returns a public key.
7
+ *
8
+ * BTC Stake: BTC → LBTC (yield-bearing staked BTC)
9
+ * Supported chains derived from ASSET_CATALOG.
10
+ *
11
+ * @module chains/btc/actions/stake/config/starknet
12
+ */
13
+ import type { ChainConfig } from './types';
14
+ /**
15
+ * Starknet chain configuration for BTC stake
16
+ *
17
+ * Supports staking BTC to LBTC on Starknet.
18
+ * Requires the @lombard.finance/sdk-starknet module to be installed.
19
+ */
20
+ export declare const starknetConfig: ChainConfig;
21
+ //# sourceMappingURL=starknet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../../../../src/chains/btc/actions/stake/config/starknet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,WAsC5B,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Sui Chain Configuration
3
+ *
4
+ * Handles Sui destination chains (mainnet and testnet).
5
+ * Uses Sui wallet signing via the Sui SDK module.
6
+ *
7
+ * BTC Stake: BTC → LBTC (yield-bearing staked BTC)
8
+ * Supported chains derived from ASSET_CATALOG.
9
+ *
10
+ * @module chains/btc/actions/stake/config/sui
11
+ */
12
+ import type { ChainConfig } from './types';
13
+ /**
14
+ * Sui chain configuration for BTC stake
15
+ *
16
+ * Supports staking BTC to LBTC on Sui.
17
+ * Requires the @lombard.finance/sdk-sui module to be installed.
18
+ */
19
+ export declare const suiConfig: ChainConfig;
20
+ //# sourceMappingURL=sui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../src/chains/btc/actions/stake/config/sui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,WAmCvB,CAAC"}