@lombard.finance/sdk 4.0.0 → 4.1.2

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 (474) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
  3. package/dist/bridge/lib/config.d.ts +3 -3
  4. package/dist/bridge/lib/config.d.ts.map +1 -1
  5. package/dist/common/chains.d.ts +2 -2
  6. package/dist/common/chains.d.ts.map +1 -1
  7. package/dist/common/feature-config.d.ts.map +1 -1
  8. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
  9. package/dist/index2.cjs +6 -6
  10. package/dist/index2.js +792 -759
  11. package/dist/vaults/lib/config.d.ts +1 -1
  12. package/package.json +7 -8
  13. package/src/__tests__/AssetNamespace.spec.ts +0 -234
  14. package/src/__tests__/helpers/createTestConfig.ts +0 -90
  15. package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
  16. package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
  17. package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
  18. package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
  19. package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
  20. package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
  21. package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
  22. package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
  23. package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
  24. package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
  25. package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
  26. package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
  27. package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
  28. package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
  29. package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
  30. package/src/__tests__/services/ApiService.test.ts +0 -62
  31. package/src/__tests__/services/BtcService.test.ts +0 -30
  32. package/src/__tests__/services/EvmService.test.ts +0 -39
  33. package/src/__tests__/setup.ts +0 -16
  34. package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
  35. package/src/__tests__/test-utils/evm-wallet.ts +0 -38
  36. package/src/__tests__/test-utils/solana-wallet.ts +0 -22
  37. package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
  38. package/src/__tests__/test-utils/sui-wallet.ts +0 -14
  39. package/src/__tests__/test-utils/test-constraints.ts +0 -110
  40. package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
  41. package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
  42. package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
  43. package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
  44. package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
  45. package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
  46. package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
  47. package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
  48. package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
  49. package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
  50. package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
  51. package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
  52. package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
  53. package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
  54. package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
  55. package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
  56. package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
  57. package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
  58. package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
  59. package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
  60. package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
  61. package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
  62. package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
  63. package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
  64. package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
  65. package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
  66. package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
  67. package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
  68. package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
  69. package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
  70. package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
  71. package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
  72. package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
  73. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
  74. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
  75. package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
  76. package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
  77. package/src/api-functions/get-badges-by-address/index.ts +0 -1
  78. package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
  79. package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
  80. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
  81. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
  82. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
  83. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
  84. package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
  85. package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
  86. package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
  87. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
  88. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
  89. package/src/api-functions/getDepositsByAddress/index.ts +0 -1
  90. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
  91. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
  92. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
  93. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
  94. package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
  95. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
  96. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
  97. package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
  98. package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
  99. package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
  100. package/src/api-functions/getPointsByAddress/index.ts +0 -1
  101. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
  102. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
  103. package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
  104. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
  105. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
  106. package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
  107. package/src/api-functions/index.ts +0 -11
  108. package/src/api-functions/setReferral/index.ts +0 -1
  109. package/src/api-functions/setReferral/setReferral.ts +0 -67
  110. package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
  111. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
  112. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
  113. package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
  114. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
  115. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
  116. package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
  117. package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
  118. package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
  119. package/src/bridge/index.ts +0 -16
  120. package/src/bridge/lib/bridge.stories.tsx +0 -90
  121. package/src/bridge/lib/bridge.ts +0 -115
  122. package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
  123. package/src/bridge/lib/ccip-bridge.ts +0 -214
  124. package/src/bridge/lib/ccip-config.ts +0 -54
  125. package/src/bridge/lib/config.ts +0 -384
  126. package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
  127. package/src/bridge/lib/oft-bridge.ts +0 -217
  128. package/src/chains/btc/BtcActions.ts +0 -192
  129. package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
  130. package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
  131. package/src/chains/btc/actions/deposit/config/index.ts +0 -53
  132. package/src/chains/btc/actions/deposit/config/types.ts +0 -108
  133. package/src/chains/btc/actions/deposit/factory.ts +0 -53
  134. package/src/chains/btc/actions/deposit/index.ts +0 -23
  135. package/src/chains/btc/actions/deposit/types.ts +0 -120
  136. package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
  137. package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
  138. package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
  139. package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
  140. package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
  141. package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
  142. package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
  143. package/src/chains/btc/actions/index.ts +0 -14
  144. package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
  145. package/src/chains/btc/actions/shared/index.ts +0 -28
  146. package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
  147. package/src/chains/btc/actions/shared/validation.ts +0 -180
  148. package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
  149. package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
  150. package/src/chains/btc/actions/stake/config/evm.ts +0 -183
  151. package/src/chains/btc/actions/stake/config/index.ts +0 -122
  152. package/src/chains/btc/actions/stake/config/solana.ts +0 -96
  153. package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
  154. package/src/chains/btc/actions/stake/config/sui.ts +0 -61
  155. package/src/chains/btc/actions/stake/config/types.ts +0 -165
  156. package/src/chains/btc/actions/stake/factory.ts +0 -53
  157. package/src/chains/btc/actions/stake/index.ts +0 -22
  158. package/src/chains/btc/actions/stake/types.ts +0 -175
  159. package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
  160. package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
  161. package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
  162. package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
  163. package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
  164. package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
  165. package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
  166. package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
  167. package/src/chains/btc/client/mempool/error.ts +0 -24
  168. package/src/chains/btc/client/mempool/mempool.ts +0 -23
  169. package/src/chains/btc/index.ts +0 -71
  170. package/src/chains/evm/EvmActions.ts +0 -185
  171. package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
  172. package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
  173. package/src/chains/evm/actions/deploy/config/index.ts +0 -8
  174. package/src/chains/evm/actions/deploy/config/types.ts +0 -43
  175. package/src/chains/evm/actions/deploy/factory.ts +0 -44
  176. package/src/chains/evm/actions/deploy/index.ts +0 -17
  177. package/src/chains/evm/actions/deploy/types.ts +0 -74
  178. package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
  179. package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
  180. package/src/chains/evm/actions/deposit/config/index.ts +0 -8
  181. package/src/chains/evm/actions/deposit/config/types.ts +0 -39
  182. package/src/chains/evm/actions/deposit/factory.ts +0 -44
  183. package/src/chains/evm/actions/deposit/index.ts +0 -17
  184. package/src/chains/evm/actions/deposit/types.ts +0 -87
  185. package/src/chains/evm/actions/index.ts +0 -67
  186. package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
  187. package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
  188. package/src/chains/evm/actions/redeem/config/index.ts +0 -8
  189. package/src/chains/evm/actions/redeem/config/types.ts +0 -39
  190. package/src/chains/evm/actions/redeem/factory.ts +0 -43
  191. package/src/chains/evm/actions/redeem/index.ts +0 -17
  192. package/src/chains/evm/actions/redeem/types.ts +0 -93
  193. package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
  194. package/src/chains/evm/actions/stake/config/evm.ts +0 -89
  195. package/src/chains/evm/actions/stake/config/index.ts +0 -8
  196. package/src/chains/evm/actions/stake/config/types.ts +0 -89
  197. package/src/chains/evm/actions/stake/factory.ts +0 -52
  198. package/src/chains/evm/actions/stake/index.ts +0 -30
  199. package/src/chains/evm/actions/stake/types.ts +0 -104
  200. package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
  201. package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
  202. package/src/chains/evm/actions/unstake/config/index.ts +0 -13
  203. package/src/chains/evm/actions/unstake/config/types.ts +0 -37
  204. package/src/chains/evm/actions/unstake/factory.ts +0 -44
  205. package/src/chains/evm/actions/unstake/index.ts +0 -22
  206. package/src/chains/evm/actions/unstake/types.ts +0 -87
  207. package/src/chains/evm/index.ts +0 -16
  208. package/src/chains/evm/shared/feeAuth.ts +0 -198
  209. package/src/chains/evm/shared/index.ts +0 -7
  210. package/src/chains/solana/SolanaActions.ts +0 -85
  211. package/src/chains/solana/actions/index.ts +0 -7
  212. package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
  213. package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
  214. package/src/chains/solana/actions/unstake/config/index.ts +0 -8
  215. package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
  216. package/src/chains/solana/actions/unstake/config/types.ts +0 -35
  217. package/src/chains/solana/actions/unstake/factory.ts +0 -34
  218. package/src/chains/solana/actions/unstake/index.ts +0 -14
  219. package/src/chains/solana/actions/unstake/types.ts +0 -58
  220. package/src/chains/solana/index.ts +0 -8
  221. package/src/chains/starknet/StarknetActions.ts +0 -85
  222. package/src/chains/starknet/actions/index.ts +0 -7
  223. package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
  224. package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
  225. package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
  226. package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
  227. package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
  228. package/src/chains/starknet/actions/unstake/factory.ts +0 -32
  229. package/src/chains/starknet/actions/unstake/index.ts +0 -14
  230. package/src/chains/starknet/actions/unstake/types.ts +0 -57
  231. package/src/chains/starknet/index.ts +0 -8
  232. package/src/chains/sui/SuiActions.ts +0 -82
  233. package/src/chains/sui/actions/index.ts +0 -7
  234. package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
  235. package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
  236. package/src/chains/sui/actions/unstake/config/index.ts +0 -8
  237. package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
  238. package/src/chains/sui/actions/unstake/config/types.ts +0 -27
  239. package/src/chains/sui/actions/unstake/factory.ts +0 -32
  240. package/src/chains/sui/actions/unstake/index.ts +0 -14
  241. package/src/chains/sui/actions/unstake/types.ts +0 -57
  242. package/src/chains/sui/index.ts +0 -8
  243. package/src/client/ApiNamespace.ts +0 -302
  244. package/src/client/AssetNamespace.ts +0 -112
  245. package/src/client/LombardSDK.ts +0 -212
  246. package/src/client/PartnerConfiguration.ts +0 -50
  247. package/src/client/createConfig.ts +0 -90
  248. package/src/client/createLombardSDK.ts +0 -130
  249. package/src/clients/evm-signer-adapter.ts +0 -313
  250. package/src/clients/public-client.ts +0 -49
  251. package/src/clients/rpc-url-config.ts +0 -64
  252. package/src/clients/wallet-client.ts +0 -34
  253. package/src/common/api-config.ts +0 -48
  254. package/src/common/blockchain-identifier.ts +0 -217
  255. package/src/common/chains.stories.tsx +0 -68
  256. package/src/common/chains.ts +0 -449
  257. package/src/common/constants.ts +0 -1
  258. package/src/common/contract-info.ts +0 -9
  259. package/src/common/feature-config.ts +0 -79
  260. package/src/common/fee-requirements.ts +0 -34
  261. package/src/common/parameters.ts +0 -89
  262. package/src/config/defaults.ts +0 -49
  263. package/src/config/index.ts +0 -12
  264. package/src/config/providers.ts +0 -81
  265. package/src/config/types.ts +0 -216
  266. package/src/config/validation.ts +0 -69
  267. package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
  268. package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
  269. package/src/contract-functions/approveLBTC/index.ts +0 -1
  270. package/src/contract-functions/approveToken/approveToken.ts +0 -126
  271. package/src/contract-functions/approveToken/index.ts +0 -1
  272. package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
  273. package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
  274. package/src/contract-functions/claimLBTC/index.ts +0 -1
  275. package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
  276. package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
  277. package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
  278. package/src/contract-functions/deposit/depositToken.ts +0 -214
  279. package/src/contract-functions/deposit/index.ts +0 -1
  280. package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
  281. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
  282. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
  283. package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
  284. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
  285. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
  286. package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
  287. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
  288. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
  289. package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
  290. package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
  291. package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
  292. package/src/contract-functions/getPermitNonce/index.ts +0 -1
  293. package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
  294. package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
  295. package/src/contract-functions/getShareValue/index.ts +0 -1
  296. package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
  297. package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
  298. package/src/contract-functions/getSharesByAddress/index.ts +0 -4
  299. package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
  300. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
  301. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
  302. package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
  303. package/src/contract-functions/index.ts +0 -21
  304. package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
  305. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
  306. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
  307. package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
  308. package/src/contract-functions/signNetworkFee/index.ts +0 -1
  309. package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
  310. package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
  311. package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
  312. package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
  313. package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
  314. package/src/contract-functions/signStakeAndBake/index.ts +0 -2
  315. package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
  316. package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
  317. package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
  318. package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
  319. package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
  320. package/src/contract-functions/unstakeLBTC/index.ts +0 -1
  321. package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
  322. package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
  323. package/src/contracts/abis/index.ts +0 -29
  324. package/src/contracts/index.ts +0 -63
  325. package/src/contracts/types.ts +0 -143
  326. package/src/contracts/utils.ts +0 -288
  327. package/src/core/assets/catalog.ts +0 -343
  328. package/src/core/assets/index.ts +0 -40
  329. package/src/core/assets/types.ts +0 -142
  330. package/src/core/assets/utils.ts +0 -287
  331. package/src/core/chains/catalog.ts +0 -396
  332. package/src/core/chains/index.ts +0 -39
  333. package/src/core/chains/types.ts +0 -193
  334. package/src/core/chains/utils.ts +0 -245
  335. package/src/core/index.ts +0 -72
  336. package/src/core/types.ts +0 -126
  337. package/src/debug-api/btc-script-to-address.ts +0 -20
  338. package/src/debug-api/btc-tx-info.ts +0 -32
  339. package/src/debug-api/evm-by-btc-address.ts +0 -26
  340. package/src/debug-api/index.ts +0 -3
  341. package/src/defi/README.md +0 -517
  342. package/src/defi/defi-registry.stories.tsx +0 -527
  343. package/src/defi/defi-registry.ts +0 -295
  344. package/src/defi/index.ts +0 -17
  345. package/src/index.ts +0 -336
  346. package/src/metrics/get-additional-rewards.ts +0 -69
  347. package/src/metrics/get-lbtc-apy.ts +0 -74
  348. package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
  349. package/src/metrics/get-lbtc-stats.ts +0 -59
  350. package/src/metrics/get-positions-summary.stories.tsx +0 -58
  351. package/src/metrics/get-positions-summary.ts +0 -132
  352. package/src/modules/CapabilityRegistry.ts +0 -125
  353. package/src/modules/apiModule.ts +0 -51
  354. package/src/modules/btcModule.ts +0 -43
  355. package/src/modules/evmModule.ts +0 -48
  356. package/src/modules/index.ts +0 -60
  357. package/src/referrals/ReferralsClient.ts +0 -34
  358. package/src/referrals/index.ts +0 -1
  359. package/src/services/ApiService.ts +0 -152
  360. package/src/services/BtcService.ts +0 -29
  361. package/src/services/EvmService.ts +0 -127
  362. package/src/services/index.ts +0 -43
  363. package/src/shared/__tests__/errors.test.ts +0 -185
  364. package/src/shared/__tests__/events.test.ts +0 -120
  365. package/src/shared/__tests__/types.test.ts +0 -155
  366. package/src/shared/actions/BaseAction.ts +0 -497
  367. package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
  368. package/src/shared/actions/index.ts +0 -9
  369. package/src/shared/constants/statusConstants.ts +0 -108
  370. package/src/shared/context/ContextBuilder.ts +0 -149
  371. package/src/shared/context/index.ts +0 -8
  372. package/src/shared/context/types.ts +0 -156
  373. package/src/shared/deposits/depositStatus.ts +0 -402
  374. package/src/shared/deposits/index.ts +0 -29
  375. package/src/shared/errors.ts +0 -405
  376. package/src/shared/events.ts +0 -260
  377. package/src/shared/evm/switchChain.ts +0 -109
  378. package/src/shared/index.ts +0 -54
  379. package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
  380. package/src/shared/monitoring/createEventEmitter.ts +0 -160
  381. package/src/shared/monitoring/createProgressEmitter.ts +0 -46
  382. package/src/shared/monitoring/depositMonitor.ts +0 -211
  383. package/src/shared/monitoring/index.ts +0 -25
  384. package/src/shared/validation/index.ts +0 -411
  385. package/src/stories/arg-types.ts +0 -38
  386. package/src/stories/components/Badge.tsx +0 -27
  387. package/src/stories/components/Button/Button.css +0 -10
  388. package/src/stories/components/Button/Button.tsx +0 -52
  389. package/src/stories/components/Button/index.ts +0 -1
  390. package/src/stories/components/Card.tsx +0 -18
  391. package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
  392. package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
  393. package/src/stories/components/CodeBlock/index.ts +0 -1
  394. package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
  395. package/src/stories/components/ConnectButton/index.ts +0 -1
  396. package/src/stories/components/JsonPreview.tsx +0 -84
  397. package/src/stories/components/Spinner/Spinner.tsx +0 -27
  398. package/src/stories/components/Spinner/index.ts +0 -1
  399. package/src/stories/components/StatsCard.tsx +0 -30
  400. package/src/stories/components/StatusIndicator.tsx +0 -37
  401. package/src/stories/components/TreeNode.tsx +0 -47
  402. package/src/stories/components/decorators/function-type.tsx +0 -63
  403. package/src/stories/components/decorators/index.ts +0 -2
  404. package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
  405. package/src/stories/components/error-block.tsx +0 -21
  406. package/src/stories/components/index.ts +0 -11
  407. package/src/stories/constants.ts +0 -3
  408. package/src/stories/hooks/useConnection.ts +0 -63
  409. package/src/stories/hooks/useQuery.ts +0 -57
  410. package/src/tokens/__tests__/token-addresses.test.ts +0 -551
  411. package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
  412. package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
  413. package/src/tokens/abi/BTCK_ABI.ts +0 -1092
  414. package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
  415. package/src/tokens/abi/LBTC_ABI.json +0 -1761
  416. package/src/tokens/abi/LBTC_ABI.ts +0 -1761
  417. package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
  418. package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
  419. package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
  420. package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
  421. package/src/tokens/denomination-utils.stories.tsx +0 -176
  422. package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
  423. package/src/tokens/getTokenByAddress.stories.tsx +0 -172
  424. package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
  425. package/src/tokens/getTokenInfo.stories.tsx +0 -133
  426. package/src/tokens/isUpgradedContract.stories.tsx +0 -124
  427. package/src/tokens/lbtc-addresses.ts +0 -18
  428. package/src/tokens/token-addresses.ts +0 -477
  429. package/src/tokens/tokens.ts +0 -249
  430. package/src/tokens/types.ts +0 -80
  431. package/src/utils/array.ts +0 -31
  432. package/src/utils/block.ts +0 -23
  433. package/src/utils/chain.ts +0 -152
  434. package/src/utils/consoleLogger.ts +0 -140
  435. package/src/utils/ensureNotSanctionedAddress.ts +0 -11
  436. package/src/utils/env.ts +0 -20
  437. package/src/utils/err.ts +0 -83
  438. package/src/utils/evmAccount.ts +0 -47
  439. package/src/utils/gas.ts +0 -36
  440. package/src/utils/hex.ts +0 -9
  441. package/src/utils/http.ts +0 -224
  442. package/src/utils/numbers.ts +0 -37
  443. package/src/utils/pagination.ts +0 -70
  444. package/src/utils/satoshi.ts +0 -41
  445. package/src/utils/time.ts +0 -12
  446. package/src/utils/transaction-executor.ts +0 -299
  447. package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
  448. package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
  449. package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
  450. package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
  451. package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
  452. package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
  453. package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
  454. package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
  455. package/src/vaults/abi/index.ts +0 -4
  456. package/src/vaults/index.ts +0 -46
  457. package/src/vaults/lib/config.ts +0 -184
  458. package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
  459. package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
  460. package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
  461. package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
  462. package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
  463. package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
  464. package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
  465. package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
  466. package/src/vaults/lib/ops/deposit.ts +0 -152
  467. package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
  468. package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
  469. package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
  470. package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
  471. package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
  472. package/src/vaults/lib/ops/withdraw.ts +0 -225
  473. package/src/version.ts +0 -56
  474. package/src/vite-env.d.ts +0 -1
@@ -1,24 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Action
3
- *
4
- * Exports for BTC → BTC.b → Vault operations.
5
- *
6
- * @module chains/btc/actions/depositAndDeploy
7
- */
8
-
9
- export { BtcDepositAndDeploy } from './BtcDepositAndDeploy';
10
- export {
11
- depositAndDeployConfig,
12
- isAssetOutSupported as isDepositAndDeployAssetOutSupported,
13
- isDestChainSupported as isDepositAndDeployDestChainSupported,
14
- isProtocolSupported as isDepositAndDeployProtocolSupported,
15
- isRouteAvailable as isDepositAndDeployRouteAvailable,
16
- } from './config';
17
- export { createBtcDepositAndDeploy } from './factory';
18
- export {
19
- BtcActionStatus,
20
- type BtcDepositAndDeployParams,
21
- type BtcDepositAndDeployPrepareParams,
22
- type BtcDepositAndDeployProgress,
23
- type BtcDepositAndDeploy as IBtcDepositAndDeploy,
24
- } from './types';
@@ -1,120 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Action Types
3
- *
4
- * Type definitions for BTC → BTC.b → Vault operations.
5
- * This is the deposit equivalent of StakeAndDeploy, producing BTC.b
6
- * instead of LBTC for protocols that require wrapped BTC (e.g., Silo on Avalanche).
7
- *
8
- * @module chains/btc/actions/depositAndDeploy/types
9
- */
10
-
11
- import type {
12
- AssetId,
13
- Chain,
14
- DeployProtocol,
15
- StepStatus,
16
- StrategyProgress,
17
- } from '../../../../core';
18
- import type { MonitorableAction } from '../../../../shared/actions/BaseAction';
19
- import { BtcActionStatus } from '../../../../shared/constants/statusConstants';
20
- import type { MonitorProgress } from '../../../../shared/monitoring';
21
-
22
- // Re-export for convenience (single export statement avoids duplicate identifier)
23
- export { BtcActionStatus };
24
-
25
- // ═══════════════════════════════════════════════════════════════════════════
26
- // Parameters
27
- // ═══════════════════════════════════════════════════════════════════════════
28
-
29
- /**
30
- * BTC DepositAndDeploy parameters
31
- */
32
- export interface BtcDepositAndDeployParams {
33
- /** Input asset (BTC) */
34
- assetIn?: AssetId;
35
- /** Output asset (BTC.b vault shares) */
36
- assetOut: AssetId;
37
- /** Source Bitcoin network */
38
- sourceChain?: typeof Chain.BITCOIN_MAINNET | typeof Chain.BITCOIN_SIGNET;
39
- /** Destination chain where vault exists (e.g., Avalanche for Silo) */
40
- destChain: Chain;
41
- /** Protocol/vault to deploy to (e.g., Silo) */
42
- protocol: DeployProtocol;
43
- }
44
-
45
- /**
46
- * Prepare parameters
47
- */
48
- export interface BtcDepositAndDeployPrepareParams {
49
- /** Amount of BTC to deposit and deploy (human-readable) */
50
- amount: string;
51
- /** Recipient address on destination chain */
52
- recipient: string;
53
- /** Optional referral code */
54
- referralCode?: string;
55
- }
56
-
57
- // ═══════════════════════════════════════════════════════════════════════════
58
- // Progress
59
- // ═══════════════════════════════════════════════════════════════════════════
60
-
61
- /**
62
- * BTC DepositAndDeploy progress
63
- */
64
- export interface BtcDepositAndDeployProgress
65
- extends StrategyProgress<BtcActionStatus> {
66
- status: BtcActionStatus;
67
- steps: {
68
- created: StepStatus;
69
- verifying: StepStatus;
70
- wrapping: StepStatus;
71
- depositing: StepStatus;
72
- };
73
- depositAddress?: string;
74
- confirmations?: number;
75
- requiredConfirmations?: number;
76
- hasEnoughConfirmations?: boolean;
77
- isWrapped?: boolean;
78
- isDeposited?: boolean;
79
- metadata?: Record<string, unknown>;
80
- }
81
-
82
- // ═══════════════════════════════════════════════════════════════════════════
83
- // Interface
84
- // ═══════════════════════════════════════════════════════════════════════════
85
-
86
- /**
87
- * BTC DepositAndDeploy interface
88
- */
89
- export interface BtcDepositAndDeploy extends MonitorableAction {
90
- readonly status: BtcActionStatus;
91
- readonly amount?: string;
92
- readonly recipient?: string;
93
- readonly depositAddress?: string;
94
- readonly referralCode?: string;
95
-
96
- /**
97
- * Prepare the operation
98
- */
99
- prepare(params: BtcDepositAndDeployPrepareParams): Promise<void>;
100
-
101
- /**
102
- * Authorize vault deposit via signature
103
- */
104
- authorizeDeposit(): Promise<void>;
105
-
106
- /**
107
- * Generate BTC deposit address
108
- */
109
- generateDepositAddress(): Promise<string>;
110
-
111
- /**
112
- * Execute the operation
113
- */
114
- execute(): Promise<{ depositAddress: string; txHash?: string }>;
115
-
116
- /**
117
- * Monitor deposit progress
118
- */
119
- monitorDeposit?(): Promise<MonitorProgress | undefined>;
120
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * BTC Actions Exports
3
- *
4
- * @module chains/btc/actions
5
- */
6
-
7
- // Stake action
8
- export * from './stake';
9
-
10
- // Deposit action
11
- export * from './deposit';
12
-
13
- // StakeAndDeploy action
14
- export * from './stakeAndDeploy';
@@ -1,495 +0,0 @@
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
-
15
- import { z } from 'zod';
16
-
17
- import {
18
- ChainId,
19
- SolanaChain,
20
- StarknetChainId,
21
- SuiChain,
22
- } from '../../../../common/chains';
23
- import { Chain, StepStatus } from '../../../../core';
24
- import { BaseAction } from '../../../../shared/actions';
25
- import type { BtcCoreContext } from '../../../../shared/context';
26
- import { LombardError, ValidationErrorCode } from '../../../../shared/errors';
27
- import type {
28
- MonitorProgress,
29
- NetworkMode,
30
- } from '../../../../shared/monitoring';
31
- import { monitorDeposit } from '../../../../shared/monitoring';
32
- import type { EventHandler } from '../../../../shared/monitoring/createEventEmitter';
33
- import {
34
- btcStakeAmountSchema,
35
- referralCodeSchema,
36
- validatePrepareParams as zodValidate,
37
- } from '../../../../shared/validation';
38
- import { ensureNotSanctionedAddress } from '../../../../utils/ensureNotSanctionedAddress';
39
- import { toSatoshi } from '../../../../utils/satoshi';
40
-
41
- // ═══════════════════════════════════════════════════════════════════════════
42
- // Types
43
- // ═══════════════════════════════════════════════════════════════════════════
44
-
45
- /**
46
- * Common authorization state for BTC actions
47
- */
48
- export interface BtcAuthorizationState {
49
- authorized: boolean;
50
- signature?: string;
51
- typedData?: unknown;
52
- [key: string]: unknown;
53
- }
54
-
55
- /**
56
- * Common params that all BTC actions share
57
- */
58
- export interface BaseBtcParams {
59
- sourceChain?: typeof Chain.BITCOIN_MAINNET | typeof Chain.BITCOIN_SIGNET;
60
- destChain: Chain;
61
- }
62
-
63
- /**
64
- * Common prepare params
65
- */
66
- export interface BasePrepareParams {
67
- amount: string;
68
- recipient: string;
69
- referralCode?: string;
70
- }
71
-
72
- /**
73
- * Progress step definitions
74
- */
75
- export type StepDefinition = Record<string, StepStatus>;
76
-
77
- /**
78
- * Status configuration for template methods
79
- */
80
- export interface StatusConfig<TStatus extends string> {
81
- idle: TStatus;
82
- ready: TStatus;
83
- addressReady: TStatus;
84
- }
85
-
86
- // ═══════════════════════════════════════════════════════════════════════════
87
- // Base Class
88
- // ═══════════════════════════════════════════════════════════════════════════
89
-
90
- /**
91
- * Base class for BTC actions
92
- *
93
- * Provides template methods for common patterns:
94
- * - prepare() with validation and resume
95
- * - generateDepositAddress()
96
- * - execute()
97
- * - monitorDeposit()
98
- *
99
- * Subclasses implement abstract methods to customize behavior.
100
- *
101
- * @example
102
- * ```typescript
103
- * class BtcStake extends BaseBtcAction<StakeEventMap, BtcActionStatus, BtcStakeParams> {
104
- * protected getAddressSchema() { return evmAddressSchema; }
105
- * protected getStatusConfig() { return { idle: BtcActionStatus.IDLE, ... }; }
106
- * protected getInitialSteps() { return { created: StepStatus.IDLE, ... }; }
107
- * }
108
- * ```
109
- */
110
- export abstract class BaseBtcAction<
111
- TEventMap extends Record<string, EventHandler<unknown[]>>,
112
- TStatus extends string,
113
- TParams extends BaseBtcParams,
114
- > extends BaseAction<TEventMap, TStatus> {
115
- // ─────────────────────────────────────────────────────────────────────────
116
- // Common State
117
- // ─────────────────────────────────────────────────────────────────────────
118
-
119
- protected _amount?: string;
120
- protected _recipient?: string;
121
- protected _depositAddress?: string;
122
- protected _referralCode?: string;
123
- protected _chainId?: unknown;
124
-
125
- constructor(
126
- protected readonly ctx: BtcCoreContext,
127
- protected readonly params: TParams,
128
- initialStatus: TStatus,
129
- ) {
130
- super(initialStatus);
131
- }
132
-
133
- // ─────────────────────────────────────────────────────────────────────────
134
- // Abstract Methods - Subclasses Must Implement
135
- // ─────────────────────────────────────────────────────────────────────────
136
-
137
- /** Get the address validation schema for this action */
138
- protected abstract getAddressSchema(): z.ZodType<string>;
139
-
140
- /** Get the status configuration for template methods */
141
- protected abstract getStatusConfig(): StatusConfig<TStatus>;
142
-
143
- /** Get the initial progress steps for this action */
144
- protected abstract getInitialSteps(): StepDefinition;
145
-
146
- /** Check if the action has been authorized */
147
- protected abstract isAuthorized(): boolean;
148
-
149
- /** Get the chain ID (after parsing in constructor) */
150
- protected abstract getChainId():
151
- | ChainId
152
- | SuiChain
153
- | SolanaChain
154
- | StarknetChainId;
155
-
156
- /**
157
- * Get API params for generateDepositAddress
158
- * Subclasses provide action-specific parameters
159
- */
160
- protected abstract getDepositAddressParams(): {
161
- address: string;
162
- chainId: ChainId | SuiChain | SolanaChain | StarknetChainId;
163
- signature: string;
164
- token: string;
165
- eip712Data?: string;
166
- signatureData?: string;
167
- pubKey?: string;
168
- partnerId?: string;
169
- referrerCode?: string;
170
- };
171
-
172
- /**
173
- * Get the expected destination token (LBTC, BTCb, etc.)
174
- * Used for resuming from existing deposits before authorization is complete
175
- */
176
- protected abstract getExpectedToken(): string;
177
-
178
- // ─────────────────────────────────────────────────────────────────────────
179
- // Common Getters
180
- // ─────────────────────────────────────────────────────────────────────────
181
-
182
- /** Amount of BTC to stake/deposit */
183
- get amount(): string | undefined {
184
- return this._amount;
185
- }
186
-
187
- /** Recipient address on destination chain */
188
- get recipient(): string | undefined {
189
- return this._recipient;
190
- }
191
-
192
- /** Generated Bitcoin deposit address */
193
- get depositAddress(): string | undefined {
194
- return this._depositAddress;
195
- }
196
-
197
- /** Referral code (optional) */
198
- get referralCode(): string | undefined {
199
- return this._referralCode;
200
- }
201
-
202
- /** Bitcoin network mode for monitoring */
203
- protected get bitcoinNetwork(): NetworkMode {
204
- const source = this.params.sourceChain;
205
- return source === Chain.BITCOIN_MAINNET ? 'mainnet' : 'testnet';
206
- }
207
-
208
- // ─────────────────────────────────────────────────────────────────────────
209
- // Common Validation
210
- // ─────────────────────────────────────────────────────────────────────────
211
-
212
- /**
213
- * Get the prepare schema (amount + recipient + referralCode)
214
- * Uses abstract getAddressSchema() for chain-specific validation
215
- */
216
- protected get prepareSchema() {
217
- return z.object({
218
- amount: btcStakeAmountSchema,
219
- recipient: this.getAddressSchema(),
220
- referralCode: referralCodeSchema,
221
- });
222
- }
223
-
224
- /**
225
- * Validate prepare params using Zod
226
- * Subclasses can override if they need custom validation
227
- */
228
- protected validatePrepareParams(
229
- params: BasePrepareParams,
230
- ): BasePrepareParams {
231
- return zodValidate(this.prepareSchema, params, {
232
- destChain: this.params.destChain,
233
- });
234
- }
235
-
236
- // ─────────────────────────────────────────────────────────────────────────
237
- // Ensure Methods (throw if missing)
238
- // ─────────────────────────────────────────────────────────────────────────
239
-
240
- protected ensureRecipient(): string {
241
- if (!this._recipient) {
242
- throw LombardError.missingParameter('recipient');
243
- }
244
- return this._recipient;
245
- }
246
-
247
- protected ensureAmount(): string {
248
- if (!this._amount) {
249
- throw LombardError.missingParameter('amount');
250
- }
251
- return this._amount;
252
- }
253
-
254
- protected ensureDepositAddress(): string {
255
- if (!this._depositAddress) {
256
- throw new LombardError(
257
- ValidationErrorCode.INVALID_PARAMETER,
258
- 'Deposit address not generated. Call generateDepositAddress() first.',
259
- );
260
- }
261
- return this._depositAddress;
262
- }
263
-
264
- /**
265
- * Get error message for missing authorization
266
- * Subclasses can override to provide specific messages
267
- */
268
- protected getAuthRequiredMessage(): string {
269
- return 'Authorization required. Complete the authorization step first.';
270
- }
271
-
272
- protected ensureAuthorized(): void {
273
- if (!this.isAuthorized()) {
274
- throw new LombardError(
275
- ValidationErrorCode.INVALID_PARAMETER,
276
- this.getAuthRequiredMessage(),
277
- );
278
- }
279
- }
280
-
281
- // ─────────────────────────────────────────────────────────────────────────
282
- // Common Resume Logic
283
- // ─────────────────────────────────────────────────────────────────────────
284
-
285
- /**
286
- * Try to resume from an existing deposit address
287
- *
288
- * This method only stores the deposit address if found.
289
- * It does NOT update the status - the caller must do that
290
- * after performing any additional validation (e.g., fee authorization).
291
- *
292
- * @param recipient - The recipient address to check
293
- * @returns true if a deposit address was found, false otherwise
294
- */
295
- protected async resumeFromExistingDeposit(
296
- recipient: string,
297
- ): Promise<boolean> {
298
- try {
299
- const depositAddress = await this.ctx.api.getDepositAddress({
300
- address: recipient,
301
- chainId: this.getChainId(),
302
- token: this.getExpectedToken(),
303
- partnerId: this.ctx.partner.getPartnerId(),
304
- });
305
-
306
- if (!depositAddress) {
307
- return false;
308
- }
309
-
310
- this._depositAddress = depositAddress;
311
- // NOTE: Status is NOT updated here - caller must set appropriate status
312
- // after validating fee authorization (which may have expired)
313
- return true;
314
- } catch {
315
- return false;
316
- }
317
- }
318
-
319
- // ─────────────────────────────────────────────────────────────────────────
320
- // Common Generate Deposit Address
321
- // ─────────────────────────────────────────────────────────────────────────
322
-
323
- /**
324
- * Generate a Bitcoin deposit address
325
- *
326
- * Template method that:
327
- * 1. Validates status and authorization
328
- * 2. Calls API to generate address
329
- * 3. Updates state and emits progress
330
- *
331
- * Subclasses must implement getDepositAddressParams() to provide API params.
332
- */
333
- protected async generateDepositAddressImpl(): Promise<string> {
334
- const statusConfig = this.getStatusConfig();
335
-
336
- this.assertStatus(statusConfig.ready, 'generateDepositAddress');
337
- this.ensureAuthorized();
338
-
339
- if (this._depositAddress) {
340
- return this._depositAddress;
341
- }
342
-
343
- return this.act(async () => {
344
- const apiParams = this.getDepositAddressParams();
345
-
346
- const depositAddress =
347
- await this.ctx.api.generateDepositAddress(apiParams);
348
-
349
- ensureNotSanctionedAddress(depositAddress);
350
- this._depositAddress = depositAddress;
351
-
352
- // Emit progress with address ready
353
- const steps = this.getInitialSteps();
354
- const addressReadySteps = Object.fromEntries(
355
- Object.entries(steps).map(([key], index) => [
356
- key,
357
- index === 0 ? StepStatus.COMPLETE : StepStatus.IDLE,
358
- ]),
359
- );
360
-
361
- this.emitProgress({
362
- status: statusConfig.addressReady,
363
- steps: addressReadySteps,
364
- metadata: { depositAddress },
365
- });
366
-
367
- return depositAddress;
368
- }, statusConfig.addressReady);
369
- }
370
-
371
- // ─────────────────────────────────────────────────────────────────────────
372
- // Common Execute Pattern
373
- // ─────────────────────────────────────────────────────────────────────────
374
-
375
- /**
376
- * Execute the action - generate address and optionally send BTC
377
- *
378
- * Template method that:
379
- * 1. Ensures deposit address exists
380
- * 2. Tries to send BTC if provider available
381
- * 3. Returns result
382
- */
383
- protected async executeImpl(): Promise<{
384
- depositAddress: string;
385
- txHash?: string;
386
- }> {
387
- const statusConfig = this.getStatusConfig();
388
-
389
- return this.act(async () => {
390
- this.assertStatus(statusConfig.addressReady, 'execute');
391
-
392
- if (!this._depositAddress) {
393
- await this.generateDepositAddressImpl();
394
- }
395
-
396
- const depositAddress = this.ensureDepositAddress();
397
- const txHash = await this.trySendBitcoin(depositAddress);
398
-
399
- return txHash ? { depositAddress, txHash } : { depositAddress };
400
- });
401
- }
402
-
403
- // ─────────────────────────────────────────────────────────────────────────
404
- // Common Progress Emission
405
- // ─────────────────────────────────────────────────────────────────────────
406
-
407
- /**
408
- * Emit initial progress with action-specific steps
409
- */
410
- protected emitInitialProgress(): void {
411
- this.emitProgress({
412
- status: this.status,
413
- steps: this.getInitialSteps(),
414
- });
415
- }
416
-
417
- // ─────────────────────────────────────────────────────────────────────────
418
- // Deposit Monitoring
419
- // ─────────────────────────────────────────────────────────────────────────
420
-
421
- /**
422
- * Monitor Bitcoin deposit progress
423
- */
424
- async monitorDeposit(): Promise<MonitorProgress | undefined> {
425
- const depositAddress = this._depositAddress;
426
- const recipient = this._recipient;
427
-
428
- if (!depositAddress || !recipient) {
429
- throw LombardError.missingParameter('depositAddress or recipient');
430
- }
431
-
432
- const progress = await monitorDeposit({
433
- network: this.bitcoinNetwork,
434
- btcService: this.ctx.btc,
435
- fetchDeposit: async () => {
436
- const deposits = await this.ctx.api.getDeposits(recipient);
437
- const ourDeposit = deposits.find(
438
- deposit => deposit.depositAddress === depositAddress,
439
- );
440
-
441
- if (!ourDeposit) {
442
- return undefined;
443
- }
444
-
445
- return {
446
- blockHeight: ourDeposit.blockHeight,
447
- isClaimed: ourDeposit.isClaimed,
448
- };
449
- },
450
- onProgress: p => {
451
- this.emitProgress({
452
- status: this.status,
453
- steps: p.steps,
454
- confirmations: p.confirmations,
455
- requiredConfirmations: p.requiredConfirmations,
456
- metadata: { isClaimed: p.isClaimed },
457
- });
458
- },
459
- onComplete: () => {
460
- this.emitCompleted();
461
- },
462
- });
463
-
464
- return progress;
465
- }
466
-
467
- // ─────────────────────────────────────────────────────────────────────────
468
- // Bitcoin Send (Optional)
469
- // ─────────────────────────────────────────────────────────────────────────
470
-
471
- protected async trySendBitcoin(
472
- depositAddress: string,
473
- ): Promise<string | undefined> {
474
- const amount = this._amount;
475
- if (!amount) return undefined;
476
-
477
- try {
478
- const btcProvider = await this.ctx.getProvider('bitcoin');
479
- if (!btcProvider) return undefined;
480
-
481
- const provider = btcProvider as {
482
- sendBitcoin?: (address: string, amountSats: number) => Promise<string>;
483
- };
484
-
485
- if (provider.sendBitcoin) {
486
- const amountSats = toSatoshi(amount).toNumber();
487
- return provider.sendBitcoin(depositAddress, amountSats);
488
- }
489
- } catch {
490
- // Fall back to manual send
491
- }
492
-
493
- return undefined;
494
- }
495
- }
@@ -1,28 +0,0 @@
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
-
9
- export type {
10
- BaseBtcParams,
11
- BtcAuthorizationState,
12
- StatusConfig,
13
- StepDefinition,
14
- } from './BaseBtcAction';
15
- export { BaseBtcAction } from './BaseBtcAction';
16
- export { assetIdToToken } from './tokenUtils';
17
- export type {
18
- ValidatableConfig,
19
- ValidatableParams,
20
- ValidationContext,
21
- } from './validation';
22
- export {
23
- isAssetSupported,
24
- isDestChainSupported,
25
- isRouteAvailable,
26
- validateBtcActionParams,
27
- validateProtocol,
28
- } from './validation';