@lombard.finance/sdk 4.0.0 → 4.1.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 (467) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/common/feature-config.d.ts.map +1 -1
  3. package/dist/index2.cjs +6 -6
  4. package/dist/index2.js +762 -754
  5. package/package.json +7 -8
  6. package/src/__tests__/AssetNamespace.spec.ts +0 -234
  7. package/src/__tests__/helpers/createTestConfig.ts +0 -90
  8. package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
  9. package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
  10. package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
  11. package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
  12. package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
  13. package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
  14. package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
  15. package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
  16. package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
  17. package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
  18. package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
  19. package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
  20. package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
  21. package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
  22. package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
  23. package/src/__tests__/services/ApiService.test.ts +0 -62
  24. package/src/__tests__/services/BtcService.test.ts +0 -30
  25. package/src/__tests__/services/EvmService.test.ts +0 -39
  26. package/src/__tests__/setup.ts +0 -16
  27. package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
  28. package/src/__tests__/test-utils/evm-wallet.ts +0 -38
  29. package/src/__tests__/test-utils/solana-wallet.ts +0 -22
  30. package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
  31. package/src/__tests__/test-utils/sui-wallet.ts +0 -14
  32. package/src/__tests__/test-utils/test-constraints.ts +0 -110
  33. package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
  34. package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
  35. package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
  36. package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
  37. package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
  38. package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
  39. package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
  40. package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
  41. package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
  42. package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
  43. package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
  44. package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
  45. package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
  46. package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
  47. package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
  48. package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
  49. package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
  50. package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
  51. package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
  52. package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
  53. package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
  54. package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
  55. package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
  56. package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
  57. package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
  58. package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
  59. package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
  60. package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
  61. package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
  62. package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
  63. package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
  64. package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
  65. package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
  66. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
  67. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
  68. package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
  69. package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
  70. package/src/api-functions/get-badges-by-address/index.ts +0 -1
  71. package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
  72. package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
  73. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
  74. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
  75. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
  76. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
  77. package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
  78. package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
  79. package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
  80. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
  81. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
  82. package/src/api-functions/getDepositsByAddress/index.ts +0 -1
  83. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
  84. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
  85. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
  86. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
  87. package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
  88. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
  89. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
  90. package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
  91. package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
  92. package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
  93. package/src/api-functions/getPointsByAddress/index.ts +0 -1
  94. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
  95. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
  96. package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
  97. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
  98. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
  99. package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
  100. package/src/api-functions/index.ts +0 -11
  101. package/src/api-functions/setReferral/index.ts +0 -1
  102. package/src/api-functions/setReferral/setReferral.ts +0 -67
  103. package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
  104. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
  105. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
  106. package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
  107. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
  108. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
  109. package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
  110. package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
  111. package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
  112. package/src/bridge/index.ts +0 -16
  113. package/src/bridge/lib/bridge.stories.tsx +0 -90
  114. package/src/bridge/lib/bridge.ts +0 -115
  115. package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
  116. package/src/bridge/lib/ccip-bridge.ts +0 -214
  117. package/src/bridge/lib/ccip-config.ts +0 -54
  118. package/src/bridge/lib/config.ts +0 -384
  119. package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
  120. package/src/bridge/lib/oft-bridge.ts +0 -217
  121. package/src/chains/btc/BtcActions.ts +0 -192
  122. package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
  123. package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
  124. package/src/chains/btc/actions/deposit/config/index.ts +0 -53
  125. package/src/chains/btc/actions/deposit/config/types.ts +0 -108
  126. package/src/chains/btc/actions/deposit/factory.ts +0 -53
  127. package/src/chains/btc/actions/deposit/index.ts +0 -23
  128. package/src/chains/btc/actions/deposit/types.ts +0 -120
  129. package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
  130. package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
  131. package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
  132. package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
  133. package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
  134. package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
  135. package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
  136. package/src/chains/btc/actions/index.ts +0 -14
  137. package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
  138. package/src/chains/btc/actions/shared/index.ts +0 -28
  139. package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
  140. package/src/chains/btc/actions/shared/validation.ts +0 -180
  141. package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
  142. package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
  143. package/src/chains/btc/actions/stake/config/evm.ts +0 -183
  144. package/src/chains/btc/actions/stake/config/index.ts +0 -122
  145. package/src/chains/btc/actions/stake/config/solana.ts +0 -96
  146. package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
  147. package/src/chains/btc/actions/stake/config/sui.ts +0 -61
  148. package/src/chains/btc/actions/stake/config/types.ts +0 -165
  149. package/src/chains/btc/actions/stake/factory.ts +0 -53
  150. package/src/chains/btc/actions/stake/index.ts +0 -22
  151. package/src/chains/btc/actions/stake/types.ts +0 -175
  152. package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
  153. package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
  154. package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
  155. package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
  156. package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
  157. package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
  158. package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
  159. package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
  160. package/src/chains/btc/client/mempool/error.ts +0 -24
  161. package/src/chains/btc/client/mempool/mempool.ts +0 -23
  162. package/src/chains/btc/index.ts +0 -71
  163. package/src/chains/evm/EvmActions.ts +0 -185
  164. package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
  165. package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
  166. package/src/chains/evm/actions/deploy/config/index.ts +0 -8
  167. package/src/chains/evm/actions/deploy/config/types.ts +0 -43
  168. package/src/chains/evm/actions/deploy/factory.ts +0 -44
  169. package/src/chains/evm/actions/deploy/index.ts +0 -17
  170. package/src/chains/evm/actions/deploy/types.ts +0 -74
  171. package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
  172. package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
  173. package/src/chains/evm/actions/deposit/config/index.ts +0 -8
  174. package/src/chains/evm/actions/deposit/config/types.ts +0 -39
  175. package/src/chains/evm/actions/deposit/factory.ts +0 -44
  176. package/src/chains/evm/actions/deposit/index.ts +0 -17
  177. package/src/chains/evm/actions/deposit/types.ts +0 -87
  178. package/src/chains/evm/actions/index.ts +0 -67
  179. package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
  180. package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
  181. package/src/chains/evm/actions/redeem/config/index.ts +0 -8
  182. package/src/chains/evm/actions/redeem/config/types.ts +0 -39
  183. package/src/chains/evm/actions/redeem/factory.ts +0 -43
  184. package/src/chains/evm/actions/redeem/index.ts +0 -17
  185. package/src/chains/evm/actions/redeem/types.ts +0 -93
  186. package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
  187. package/src/chains/evm/actions/stake/config/evm.ts +0 -89
  188. package/src/chains/evm/actions/stake/config/index.ts +0 -8
  189. package/src/chains/evm/actions/stake/config/types.ts +0 -89
  190. package/src/chains/evm/actions/stake/factory.ts +0 -52
  191. package/src/chains/evm/actions/stake/index.ts +0 -30
  192. package/src/chains/evm/actions/stake/types.ts +0 -104
  193. package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
  194. package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
  195. package/src/chains/evm/actions/unstake/config/index.ts +0 -13
  196. package/src/chains/evm/actions/unstake/config/types.ts +0 -37
  197. package/src/chains/evm/actions/unstake/factory.ts +0 -44
  198. package/src/chains/evm/actions/unstake/index.ts +0 -22
  199. package/src/chains/evm/actions/unstake/types.ts +0 -87
  200. package/src/chains/evm/index.ts +0 -16
  201. package/src/chains/evm/shared/feeAuth.ts +0 -198
  202. package/src/chains/evm/shared/index.ts +0 -7
  203. package/src/chains/solana/SolanaActions.ts +0 -85
  204. package/src/chains/solana/actions/index.ts +0 -7
  205. package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
  206. package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
  207. package/src/chains/solana/actions/unstake/config/index.ts +0 -8
  208. package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
  209. package/src/chains/solana/actions/unstake/config/types.ts +0 -35
  210. package/src/chains/solana/actions/unstake/factory.ts +0 -34
  211. package/src/chains/solana/actions/unstake/index.ts +0 -14
  212. package/src/chains/solana/actions/unstake/types.ts +0 -58
  213. package/src/chains/solana/index.ts +0 -8
  214. package/src/chains/starknet/StarknetActions.ts +0 -85
  215. package/src/chains/starknet/actions/index.ts +0 -7
  216. package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
  217. package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
  218. package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
  219. package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
  220. package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
  221. package/src/chains/starknet/actions/unstake/factory.ts +0 -32
  222. package/src/chains/starknet/actions/unstake/index.ts +0 -14
  223. package/src/chains/starknet/actions/unstake/types.ts +0 -57
  224. package/src/chains/starknet/index.ts +0 -8
  225. package/src/chains/sui/SuiActions.ts +0 -82
  226. package/src/chains/sui/actions/index.ts +0 -7
  227. package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
  228. package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
  229. package/src/chains/sui/actions/unstake/config/index.ts +0 -8
  230. package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
  231. package/src/chains/sui/actions/unstake/config/types.ts +0 -27
  232. package/src/chains/sui/actions/unstake/factory.ts +0 -32
  233. package/src/chains/sui/actions/unstake/index.ts +0 -14
  234. package/src/chains/sui/actions/unstake/types.ts +0 -57
  235. package/src/chains/sui/index.ts +0 -8
  236. package/src/client/ApiNamespace.ts +0 -302
  237. package/src/client/AssetNamespace.ts +0 -112
  238. package/src/client/LombardSDK.ts +0 -212
  239. package/src/client/PartnerConfiguration.ts +0 -50
  240. package/src/client/createConfig.ts +0 -90
  241. package/src/client/createLombardSDK.ts +0 -130
  242. package/src/clients/evm-signer-adapter.ts +0 -313
  243. package/src/clients/public-client.ts +0 -49
  244. package/src/clients/rpc-url-config.ts +0 -64
  245. package/src/clients/wallet-client.ts +0 -34
  246. package/src/common/api-config.ts +0 -48
  247. package/src/common/blockchain-identifier.ts +0 -217
  248. package/src/common/chains.stories.tsx +0 -68
  249. package/src/common/chains.ts +0 -449
  250. package/src/common/constants.ts +0 -1
  251. package/src/common/contract-info.ts +0 -9
  252. package/src/common/feature-config.ts +0 -79
  253. package/src/common/fee-requirements.ts +0 -34
  254. package/src/common/parameters.ts +0 -89
  255. package/src/config/defaults.ts +0 -49
  256. package/src/config/index.ts +0 -12
  257. package/src/config/providers.ts +0 -81
  258. package/src/config/types.ts +0 -216
  259. package/src/config/validation.ts +0 -69
  260. package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
  261. package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
  262. package/src/contract-functions/approveLBTC/index.ts +0 -1
  263. package/src/contract-functions/approveToken/approveToken.ts +0 -126
  264. package/src/contract-functions/approveToken/index.ts +0 -1
  265. package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
  266. package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
  267. package/src/contract-functions/claimLBTC/index.ts +0 -1
  268. package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
  269. package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
  270. package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
  271. package/src/contract-functions/deposit/depositToken.ts +0 -214
  272. package/src/contract-functions/deposit/index.ts +0 -1
  273. package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
  274. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
  275. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
  276. package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
  277. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
  278. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
  279. package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
  280. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
  281. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
  282. package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
  283. package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
  284. package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
  285. package/src/contract-functions/getPermitNonce/index.ts +0 -1
  286. package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
  287. package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
  288. package/src/contract-functions/getShareValue/index.ts +0 -1
  289. package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
  290. package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
  291. package/src/contract-functions/getSharesByAddress/index.ts +0 -4
  292. package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
  293. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
  294. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
  295. package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
  296. package/src/contract-functions/index.ts +0 -21
  297. package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
  298. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
  299. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
  300. package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
  301. package/src/contract-functions/signNetworkFee/index.ts +0 -1
  302. package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
  303. package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
  304. package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
  305. package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
  306. package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
  307. package/src/contract-functions/signStakeAndBake/index.ts +0 -2
  308. package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
  309. package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
  310. package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
  311. package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
  312. package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
  313. package/src/contract-functions/unstakeLBTC/index.ts +0 -1
  314. package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
  315. package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
  316. package/src/contracts/abis/index.ts +0 -29
  317. package/src/contracts/index.ts +0 -63
  318. package/src/contracts/types.ts +0 -143
  319. package/src/contracts/utils.ts +0 -288
  320. package/src/core/assets/catalog.ts +0 -343
  321. package/src/core/assets/index.ts +0 -40
  322. package/src/core/assets/types.ts +0 -142
  323. package/src/core/assets/utils.ts +0 -287
  324. package/src/core/chains/catalog.ts +0 -396
  325. package/src/core/chains/index.ts +0 -39
  326. package/src/core/chains/types.ts +0 -193
  327. package/src/core/chains/utils.ts +0 -245
  328. package/src/core/index.ts +0 -72
  329. package/src/core/types.ts +0 -126
  330. package/src/debug-api/btc-script-to-address.ts +0 -20
  331. package/src/debug-api/btc-tx-info.ts +0 -32
  332. package/src/debug-api/evm-by-btc-address.ts +0 -26
  333. package/src/debug-api/index.ts +0 -3
  334. package/src/defi/README.md +0 -517
  335. package/src/defi/defi-registry.stories.tsx +0 -527
  336. package/src/defi/defi-registry.ts +0 -295
  337. package/src/defi/index.ts +0 -17
  338. package/src/index.ts +0 -336
  339. package/src/metrics/get-additional-rewards.ts +0 -69
  340. package/src/metrics/get-lbtc-apy.ts +0 -74
  341. package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
  342. package/src/metrics/get-lbtc-stats.ts +0 -59
  343. package/src/metrics/get-positions-summary.stories.tsx +0 -58
  344. package/src/metrics/get-positions-summary.ts +0 -132
  345. package/src/modules/CapabilityRegistry.ts +0 -125
  346. package/src/modules/apiModule.ts +0 -51
  347. package/src/modules/btcModule.ts +0 -43
  348. package/src/modules/evmModule.ts +0 -48
  349. package/src/modules/index.ts +0 -60
  350. package/src/referrals/ReferralsClient.ts +0 -34
  351. package/src/referrals/index.ts +0 -1
  352. package/src/services/ApiService.ts +0 -152
  353. package/src/services/BtcService.ts +0 -29
  354. package/src/services/EvmService.ts +0 -127
  355. package/src/services/index.ts +0 -43
  356. package/src/shared/__tests__/errors.test.ts +0 -185
  357. package/src/shared/__tests__/events.test.ts +0 -120
  358. package/src/shared/__tests__/types.test.ts +0 -155
  359. package/src/shared/actions/BaseAction.ts +0 -497
  360. package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
  361. package/src/shared/actions/index.ts +0 -9
  362. package/src/shared/constants/statusConstants.ts +0 -108
  363. package/src/shared/context/ContextBuilder.ts +0 -149
  364. package/src/shared/context/index.ts +0 -8
  365. package/src/shared/context/types.ts +0 -156
  366. package/src/shared/deposits/depositStatus.ts +0 -402
  367. package/src/shared/deposits/index.ts +0 -29
  368. package/src/shared/errors.ts +0 -405
  369. package/src/shared/events.ts +0 -260
  370. package/src/shared/evm/switchChain.ts +0 -109
  371. package/src/shared/index.ts +0 -54
  372. package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
  373. package/src/shared/monitoring/createEventEmitter.ts +0 -160
  374. package/src/shared/monitoring/createProgressEmitter.ts +0 -46
  375. package/src/shared/monitoring/depositMonitor.ts +0 -211
  376. package/src/shared/monitoring/index.ts +0 -25
  377. package/src/shared/validation/index.ts +0 -411
  378. package/src/stories/arg-types.ts +0 -38
  379. package/src/stories/components/Badge.tsx +0 -27
  380. package/src/stories/components/Button/Button.css +0 -10
  381. package/src/stories/components/Button/Button.tsx +0 -52
  382. package/src/stories/components/Button/index.ts +0 -1
  383. package/src/stories/components/Card.tsx +0 -18
  384. package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
  385. package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
  386. package/src/stories/components/CodeBlock/index.ts +0 -1
  387. package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
  388. package/src/stories/components/ConnectButton/index.ts +0 -1
  389. package/src/stories/components/JsonPreview.tsx +0 -84
  390. package/src/stories/components/Spinner/Spinner.tsx +0 -27
  391. package/src/stories/components/Spinner/index.ts +0 -1
  392. package/src/stories/components/StatsCard.tsx +0 -30
  393. package/src/stories/components/StatusIndicator.tsx +0 -37
  394. package/src/stories/components/TreeNode.tsx +0 -47
  395. package/src/stories/components/decorators/function-type.tsx +0 -63
  396. package/src/stories/components/decorators/index.ts +0 -2
  397. package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
  398. package/src/stories/components/error-block.tsx +0 -21
  399. package/src/stories/components/index.ts +0 -11
  400. package/src/stories/constants.ts +0 -3
  401. package/src/stories/hooks/useConnection.ts +0 -63
  402. package/src/stories/hooks/useQuery.ts +0 -57
  403. package/src/tokens/__tests__/token-addresses.test.ts +0 -551
  404. package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
  405. package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
  406. package/src/tokens/abi/BTCK_ABI.ts +0 -1092
  407. package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
  408. package/src/tokens/abi/LBTC_ABI.json +0 -1761
  409. package/src/tokens/abi/LBTC_ABI.ts +0 -1761
  410. package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
  411. package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
  412. package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
  413. package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
  414. package/src/tokens/denomination-utils.stories.tsx +0 -176
  415. package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
  416. package/src/tokens/getTokenByAddress.stories.tsx +0 -172
  417. package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
  418. package/src/tokens/getTokenInfo.stories.tsx +0 -133
  419. package/src/tokens/isUpgradedContract.stories.tsx +0 -124
  420. package/src/tokens/lbtc-addresses.ts +0 -18
  421. package/src/tokens/token-addresses.ts +0 -477
  422. package/src/tokens/tokens.ts +0 -249
  423. package/src/tokens/types.ts +0 -80
  424. package/src/utils/array.ts +0 -31
  425. package/src/utils/block.ts +0 -23
  426. package/src/utils/chain.ts +0 -152
  427. package/src/utils/consoleLogger.ts +0 -140
  428. package/src/utils/ensureNotSanctionedAddress.ts +0 -11
  429. package/src/utils/env.ts +0 -20
  430. package/src/utils/err.ts +0 -83
  431. package/src/utils/evmAccount.ts +0 -47
  432. package/src/utils/gas.ts +0 -36
  433. package/src/utils/hex.ts +0 -9
  434. package/src/utils/http.ts +0 -224
  435. package/src/utils/numbers.ts +0 -37
  436. package/src/utils/pagination.ts +0 -70
  437. package/src/utils/satoshi.ts +0 -41
  438. package/src/utils/time.ts +0 -12
  439. package/src/utils/transaction-executor.ts +0 -299
  440. package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
  441. package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
  442. package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
  443. package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
  444. package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
  445. package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
  446. package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
  447. package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
  448. package/src/vaults/abi/index.ts +0 -4
  449. package/src/vaults/index.ts +0 -46
  450. package/src/vaults/lib/config.ts +0 -184
  451. package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
  452. package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
  453. package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
  454. package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
  455. package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
  456. package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
  457. package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
  458. package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
  459. package/src/vaults/lib/ops/deposit.ts +0 -152
  460. package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
  461. package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
  462. package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
  463. package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
  464. package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
  465. package/src/vaults/lib/ops/withdraw.ts +0 -225
  466. package/src/version.ts +0 -56
  467. package/src/vite-env.d.ts +0 -1
@@ -1,366 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Action
3
- *
4
- * Handles BTC → BTC.b → Vault deposit in a single atomic operation.
5
- * Similar to StakeAndDeploy but produces BTC.b instead of LBTC.
6
- * Used for protocols like Silo on Avalanche that accept BTC.b.
7
- *
8
- * @module chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy
9
- */
10
-
11
- import type { z } from 'zod';
12
-
13
- import type { ChainId } from '../../../../common/chains';
14
- import { isValidChain } from '../../../../common/chains';
15
- import { Chain, parseChainIdentifier,StepStatus } from '../../../../core';
16
- import type { BtcCoreContext } from '../../../../shared/context';
17
- import { LombardError, ValidationErrorCode } from '../../../../shared/errors';
18
- import type { DepositAndDeployEventMap } from '../../../../shared/events';
19
- import {
20
- monitorDeposit,
21
- type MonitorProgress,
22
- } from '../../../../shared/monitoring';
23
- import { Token } from '../../../../tokens/token-addresses';
24
- import { ensureNotSanctionedAddress } from '../../../../utils/ensureNotSanctionedAddress';
25
- import { toSatoshi } from '../../../../utils/satoshi';
26
- import {
27
- assetIdToToken,
28
- BaseBtcAction,
29
- type StatusConfig,
30
- type StepDefinition,
31
- } from '../shared';
32
- import {
33
- depositAndDeployConfig,
34
- getVaultKey,
35
- isAssetOutSupported,
36
- isDestChainSupported,
37
- isProtocolSupported,
38
- isRouteAvailable,
39
- } from './config';
40
- import {
41
- BtcActionStatus,
42
- type BtcDepositAndDeploy as IBtcDepositAndDeploy,
43
- type BtcDepositAndDeployParams,
44
- type BtcDepositAndDeployPrepareParams,
45
- } from './types';
46
-
47
- // ═══════════════════════════════════════════════════════════════════════════
48
- // Types
49
- // ═══════════════════════════════════════════════════════════════════════════
50
-
51
- interface AuthState {
52
- fee?: string;
53
- signature?: string;
54
- typedData?: string;
55
- approvalTxHash?: string;
56
- authorized: boolean;
57
- }
58
-
59
- // ═══════════════════════════════════════════════════════════════════════════
60
- // BtcDepositAndDeploy Implementation
61
- // ═══════════════════════════════════════════════════════════════════════════
62
-
63
- /**
64
- * BTC DepositAndDeploy Action
65
- *
66
- * Combines deposit (BTC → BTC.b) and vault deployment in a single atomic operation.
67
- *
68
- * @example
69
- * ```typescript
70
- * const depositAndDeploy = new BtcDepositAndDeploy(ctx, {
71
- * assetOut: AssetId.BTCb,
72
- * destChain: Chain.AVALANCHE,
73
- * protocol: DeployProtocol.Silo,
74
- * });
75
- *
76
- * await depositAndDeploy.prepare({ amount: '0.1', recipient: '0x...' });
77
- * await depositAndDeploy.authorizeDeposit();
78
- * const address = await depositAndDeploy.generateDepositAddress();
79
- * ```
80
- */
81
- export class BtcDepositAndDeploy
82
- extends BaseBtcAction<
83
- DepositAndDeployEventMap,
84
- BtcActionStatus,
85
- BtcDepositAndDeployParams
86
- >
87
- implements IBtcDepositAndDeploy
88
- {
89
- private readonly chainId: ChainId;
90
- private readonly authState: AuthState = { authorized: false };
91
-
92
- constructor(ctx: BtcCoreContext, params: BtcDepositAndDeployParams) {
93
- super(ctx, params, BtcActionStatus.IDLE);
94
-
95
- // Validate assetOut - DepositAndDeploy should only produce BTC.b
96
- if (!isAssetOutSupported(params.assetOut)) {
97
- throw new LombardError(
98
- ValidationErrorCode.INVALID_ASSET,
99
- `Asset ${params.assetOut} is not supported for deposit and deploy. ` +
100
- `DepositAndDeploy produces BTC.b which is then deployed to a vault like Silo.`,
101
- );
102
- }
103
-
104
- if (!isDestChainSupported(params.destChain)) {
105
- throw new LombardError(
106
- ValidationErrorCode.INVALID_CHAIN,
107
- `Destination chain ${params.destChain} is not supported for deposit and deploy. ` +
108
- `Supported chains: Avalanche, Avalanche Fuji`,
109
- );
110
- }
111
-
112
- if (!isProtocolSupported(params.protocol)) {
113
- throw new LombardError(
114
- ValidationErrorCode.INVALID_PARAMETER,
115
- `Protocol ${params.protocol} is not supported for deposit and deploy. ` +
116
- `DepositAndDeploy with BTC.b only supports Silo protocol.`,
117
- );
118
- }
119
-
120
- const sourceChain = params.sourceChain ?? Chain.BITCOIN_MAINNET;
121
- if (!isRouteAvailable(sourceChain, ctx.env)) {
122
- throw LombardError.routeNotFound({
123
- assetOut: params.assetOut,
124
- sourceChain,
125
- destChain: params.destChain,
126
- env: ctx.env,
127
- });
128
- }
129
-
130
- const parsed = parseChainIdentifier(params.destChain);
131
- if (typeof parsed !== 'number' || !isValidChain(parsed)) {
132
- throw new LombardError(
133
- ValidationErrorCode.INVALID_CHAIN,
134
- `Unsupported EVM chain: ${params.destChain}`,
135
- );
136
- }
137
-
138
- this.chainId = parsed as ChainId;
139
- }
140
-
141
- // ─────────────────────────────────────────────────────────────────────────
142
- // Abstract Method Implementations
143
- // ─────────────────────────────────────────────────────────────────────────
144
-
145
- protected getAddressSchema(): z.ZodType<string> {
146
- return depositAndDeployConfig.addressSchema;
147
- }
148
-
149
- protected getStatusConfig(): StatusConfig<BtcActionStatus> {
150
- return {
151
- idle: BtcActionStatus.IDLE,
152
- ready: BtcActionStatus.READY,
153
- addressReady: BtcActionStatus.ADDRESS_READY,
154
- };
155
- }
156
-
157
- protected getInitialSteps(): StepDefinition {
158
- return {
159
- created: StepStatus.IDLE,
160
- verifying: StepStatus.IDLE,
161
- wrapping: StepStatus.IDLE,
162
- depositing: StepStatus.IDLE,
163
- };
164
- }
165
-
166
- protected isAuthorized(): boolean {
167
- return this.authState.authorized;
168
- }
169
-
170
- protected getChainId(): ChainId {
171
- return this.chainId;
172
- }
173
-
174
- protected getDepositAddressParams() {
175
- const recipient = this.ensureRecipient();
176
- return {
177
- address: recipient,
178
- chainId: this.chainId,
179
- signature: this.authState.signature!,
180
- token: this.getExpectedToken(),
181
- eip712Data: this.authState.typedData,
182
- partnerId: this.ctx.partner.getPartnerId(),
183
- referrerCode: this._referralCode,
184
- };
185
- }
186
-
187
- /**
188
- * Get expected token for this action (BTCb by default for DepositAndDeploy)
189
- */
190
- protected getExpectedToken(): string {
191
- return assetIdToToken(this.params.assetOut, Token.BTCb);
192
- }
193
-
194
- protected getAuthRequiredMessage(): string {
195
- return 'Deposit authorization required. Call authorizeDeposit() first.';
196
- }
197
-
198
- // ─────────────────────────────────────────────────────────────────────────
199
- // Public Getters
200
- // ─────────────────────────────────────────────────────────────────────────
201
-
202
- /** Get deposit and deploy fee (available after prepare()) */
203
- get fee(): string | undefined {
204
- return this.authState.fee;
205
- }
206
-
207
- // ─────────────────────────────────────────────────────────────────────────
208
- // Public Methods
209
- // ─────────────────────────────────────────────────────────────────────────
210
-
211
- async prepare(params: BtcDepositAndDeployPrepareParams): Promise<void> {
212
- this.assertStatus(BtcActionStatus.IDLE, 'prepare');
213
-
214
- return this.act(async () => {
215
- const validated = this.validatePrepareParams(params);
216
-
217
- this._amount = validated.amount;
218
- this._recipient = validated.recipient;
219
- this._referralCode = validated.referralCode;
220
-
221
- // Get fee for deposit and deploy (uses config's getVaultKey for validation)
222
- this.authState.fee = await depositAndDeployConfig.getDepositAndDeployFee(
223
- this.ctx,
224
- this.chainId,
225
- getVaultKey(this.params.protocol),
226
- );
227
-
228
- this.updateStatus(BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION);
229
- this.emitInitialProgress();
230
- }, BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION);
231
- }
232
-
233
- async authorizeDeposit(): Promise<void> {
234
- this.assertStatus(
235
- [BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION, BtcActionStatus.READY],
236
- 'authorizeDeposit',
237
- );
238
-
239
- if (this.status === BtcActionStatus.READY) return;
240
-
241
- const recipient = this.ensureRecipient();
242
- const amount = this.ensureAmount();
243
-
244
- return this.act(async () => {
245
- const amountSats = toSatoshi(amount);
246
-
247
- // For BTC → BTC.b deposit and deploy, use the output token (BTCb).
248
- // Unlike LBTC which has a variable ratio with BTC, BTC.b is 1:1 with BTC
249
- // so no ratio conversion is needed (amountStrategy: 'identity').
250
- // Using assetIdToToken ensures we use the correct token for the permit.
251
- const outputToken = assetIdToToken(this.params.assetOut, Token.BTCb);
252
-
253
- const result = await depositAndDeployConfig.authorizeDepositAndDeploy(
254
- this.ctx,
255
- {
256
- chainId: this.chainId,
257
- recipient,
258
- amount: amountSats.toString(),
259
- vaultKey: getVaultKey(this.params.protocol),
260
- token: outputToken,
261
- },
262
- );
263
-
264
- this.authState.signature = result.signature;
265
- this.authState.typedData = result.typedData;
266
- this.authState.authorized = true;
267
- }, BtcActionStatus.READY);
268
- }
269
-
270
- async generateDepositAddress(): Promise<string> {
271
- this.assertStatus(BtcActionStatus.READY, 'generateDepositAddress');
272
- this.ensureAuthorized();
273
-
274
- if (this._depositAddress) {
275
- return this._depositAddress;
276
- }
277
-
278
- return this.act(async () => {
279
- const apiParams = this.getDepositAddressParams();
280
- const depositAddress =
281
- await this.ctx.api.generateDepositAddress(apiParams);
282
-
283
- ensureNotSanctionedAddress(depositAddress);
284
- this._depositAddress = depositAddress;
285
-
286
- this.emitProgress({
287
- status: BtcActionStatus.ADDRESS_READY,
288
- steps: {
289
- created: StepStatus.COMPLETE,
290
- verifying: StepStatus.IDLE,
291
- wrapping: StepStatus.IDLE,
292
- depositing: StepStatus.IDLE,
293
- },
294
- metadata: { depositAddress },
295
- });
296
-
297
- return depositAddress;
298
- }, BtcActionStatus.ADDRESS_READY);
299
- }
300
-
301
- async execute(): Promise<{ depositAddress: string; txHash?: string }> {
302
- return this.act(async () => {
303
- this.assertStatus(BtcActionStatus.ADDRESS_READY, 'execute');
304
-
305
- if (!this._depositAddress) {
306
- await this.generateDepositAddress();
307
- }
308
-
309
- const depositAddress = this.ensureDepositAddress();
310
- const txHash = await this.trySendBitcoin(depositAddress);
311
-
312
- return txHash ? { depositAddress, txHash } : { depositAddress };
313
- });
314
- }
315
-
316
- // Custom monitorDeposit with different step names
317
- async monitorDeposit(): Promise<MonitorProgress | undefined> {
318
- const depositAddress = this._depositAddress;
319
- const recipient = this._recipient;
320
-
321
- if (!depositAddress || !recipient) {
322
- throw LombardError.missingParameter('depositAddress or recipient');
323
- }
324
-
325
- const progress = await monitorDeposit({
326
- network: this.bitcoinNetwork,
327
- btcService: this.ctx.btc,
328
- fetchDeposit: async () => {
329
- const deposits = await this.ctx.api.getDeposits(recipient);
330
- const ourDeposit = deposits.find(
331
- deposit => deposit.depositAddress === depositAddress,
332
- );
333
-
334
- if (!ourDeposit) {
335
- return undefined;
336
- }
337
-
338
- return {
339
- blockHeight: ourDeposit.blockHeight,
340
- isClaimed: ourDeposit.isClaimed,
341
- };
342
- },
343
- onProgress: p => {
344
- this.emitProgress({
345
- status: this.status,
346
- steps: {
347
- created: StepStatus.COMPLETE,
348
- verifying: p.hasEnoughConfirmations
349
- ? StepStatus.COMPLETE
350
- : StepStatus.PENDING,
351
- wrapping: p.isClaimed ? StepStatus.COMPLETE : StepStatus.PENDING,
352
- depositing: StepStatus.PENDING,
353
- },
354
- confirmations: p.confirmations,
355
- requiredConfirmations: p.requiredConfirmations,
356
- metadata: { isClaimed: p.isClaimed },
357
- });
358
- },
359
- onComplete: () => {
360
- this.emitCompleted();
361
- },
362
- });
363
-
364
- return progress;
365
- }
366
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * EVM Chain Configuration for BTC DepositAndDeploy
3
- *
4
- * BTC DepositAndDeploy: BTC → BTC.b → DeFi vault (Silo)
5
- *
6
- * Note: DepositAndDeploy is for protocols that accept BTC.b (wrapped BTC)
7
- * rather than LBTC. Currently, this is Silo on Avalanche.
8
- *
9
- * @module chains/btc/actions/depositAndDeploy/config/evm
10
- */
11
-
12
- import type { EvmService } from '@lombard.finance/sdk-common';
13
- import type { EIP1193Provider } from 'viem';
14
-
15
- import type { ChainId } from '../../../../../common/chains';
16
- import { AssetId, Chain, Env } from '../../../../../core';
17
- import { LombardError } from '../../../../../shared/errors';
18
- import { ensureCorrectChain } from '../../../../../shared/evm/switchChain';
19
- import { evmAddressSchema } from '../../../../../shared/validation';
20
- import { getSupportedProtocols } from '../../stakeAndDeploy/config';
21
- import type { DepositAndDeployChainConfig } from './types';
22
-
23
- // DepositAndDeploy requires BTC.b + Silo vault support
24
- // Currently only Avalanche is supported
25
- const DEPOSIT_AND_DEPLOY_CHAINS = {
26
- mainnet: [Chain.AVALANCHE],
27
- testnet: [Chain.AVALANCHE_FUJI],
28
- };
29
-
30
- /**
31
- * EVM deposit and deploy configuration
32
- *
33
- * DepositAndDeploy produces BTC.b then deploys to a vault.
34
- * Currently limited to Silo on Avalanche.
35
- */
36
- export const evmDepositAndDeployConfig: DepositAndDeployChainConfig = {
37
- chainType: 'evm',
38
-
39
- routes: [
40
- {
41
- sourceChains: [Chain.BITCOIN_MAINNET],
42
- envs: [Env.prod],
43
- },
44
- {
45
- sourceChains: [Chain.BITCOIN_SIGNET],
46
- envs: [Env.stage, Env.dev, Env.testnet, Env.ibc],
47
- },
48
- ],
49
-
50
- // DepositAndDeploy with BTC.b is available on Avalanche
51
- destChains: [
52
- ...DEPOSIT_AND_DEPLOY_CHAINS.mainnet,
53
- ...DEPOSIT_AND_DEPLOY_CHAINS.testnet,
54
- ],
55
-
56
- // DepositAndDeploy produces BTC.b (then deposits to vault)
57
- supportedAssetsOut: [AssetId.BTCb],
58
-
59
- supportedProtocols: getSupportedProtocols(AssetId.BTCb),
60
-
61
- addressSchema: evmAddressSchema,
62
-
63
- async getDepositAndDeployFee(ctx, chainId, vaultKey) {
64
- const evm = ctx.capabilities.require('evm') as EvmService;
65
- // Silo uses the same fee mechanism as stake and bake
66
- return evm.getStakeAndBakeFee(chainId as ChainId, vaultKey);
67
- },
68
-
69
- async authorizeDepositAndDeploy(
70
- ctx,
71
- { chainId, recipient, amount, vaultKey, token },
72
- ) {
73
- const evm = ctx.capabilities.require('evm') as EvmService;
74
- const provider = await ctx.getProvider('evm');
75
- if (!provider) {
76
- throw LombardError.providerMissing(String(chainId), 'evm');
77
- }
78
-
79
- // Ensure wallet is on the correct chain before signing
80
- await ensureCorrectChain(provider as EIP1193Provider, chainId as ChainId);
81
-
82
- // Silo uses the approve flow (on-chain approval), not permit
83
- const result = await evm.signStakeAndBake({
84
- value: amount,
85
- account: recipient,
86
- chainId: chainId as ChainId,
87
- provider: provider as EIP1193Provider,
88
- vaultKey,
89
- token,
90
- });
91
-
92
- // Store signature via API (even for approve flow, we need to track it)
93
- await ctx.api.storeStakeAndBakeSignature({
94
- signature: result.signature,
95
- typedData: result.typedData,
96
- });
97
-
98
- return {
99
- signature: result.signature,
100
- typedData: result.typedData,
101
- // approvalTxHash may not be present in the result for all flows
102
- approvalTxHash: (result as { approvalTxHash?: string }).approvalTxHash,
103
- };
104
- },
105
- };
@@ -1,111 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Configuration
3
- *
4
- * Exports configuration for BTC → BTC.b → Vault operations.
5
- * Uses DEFI_REGISTRY as the single source of truth for protocol validation.
6
- *
7
- * @module chains/btc/actions/depositAndDeploy/config
8
- */
9
-
10
- import type { AssetId, Chain, Env } from '../../../../../core';
11
- import { DEFI_REGISTRY,DefiProtocol } from '../../../../../defi';
12
- import { evmDepositAndDeployConfig } from './evm';
13
- import type { DepositAndDeployChainConfig } from './types';
14
-
15
- export type {
16
- DepositAndDeployAuthResult,
17
- DepositAndDeployChainConfig,
18
- DepositAndDeployRouteDefinition,
19
- } from './types';
20
-
21
- /**
22
- * The default config for DepositAndDeploy
23
- * Currently only EVM (Avalanche + Silo) is supported
24
- */
25
- export const depositAndDeployConfig: DepositAndDeployChainConfig =
26
- evmDepositAndDeployConfig;
27
-
28
- /**
29
- * Check if a destination chain is supported for deposit and deploy
30
- */
31
- export function isDestChainSupported(destChain: Chain): boolean {
32
- return depositAndDeployConfig.destChains.includes(destChain);
33
- }
34
-
35
- /**
36
- * Check if assetOut is supported for DepositAndDeploy
37
- * DepositAndDeploy should only produce BTC.b
38
- */
39
- export function isAssetOutSupported(assetOut: AssetId): boolean {
40
- return depositAndDeployConfig.supportedAssetsOut.includes(assetOut);
41
- }
42
-
43
- /**
44
- * Check if a protocol is supported for deposit and deploy
45
- * Uses DEFI_REGISTRY as the single source of truth
46
- */
47
- export function isProtocolSupported(protocol: string): boolean {
48
- // Check if protocol exists in DEFI_REGISTRY
49
- return protocol in DEFI_REGISTRY;
50
- }
51
-
52
- /**
53
- * Get the vault key for a protocol
54
- * Returns the protocol key if valid, throws if not supported
55
- *
56
- * @param protocol - Protocol identifier from DefiProtocol
57
- * @returns The vault key for API calls
58
- * @throws If protocol is not in DEFI_REGISTRY
59
- */
60
- export function getVaultKey(protocol: string): string {
61
- if (!isProtocolSupported(protocol)) {
62
- const supportedProtocols = Object.keys(DEFI_REGISTRY).join(', ');
63
- throw new Error(
64
- `Unsupported protocol: ${protocol}. ` +
65
- `Supported protocols: ${supportedProtocols}`,
66
- );
67
- }
68
- // Protocol keys in DEFI_REGISTRY match DefiProtocol values
69
- return protocol;
70
- }
71
-
72
- /**
73
- * Get list of supported protocols for DepositAndDeploy
74
- * This returns protocols that support BTC.b (for DepositAndDeploy)
75
- */
76
- export function getSupportedProtocols(assetId: AssetId): DefiProtocol[] {
77
- return Object.entries(DEFI_REGISTRY)
78
- .filter(([_, tokenMap]) => assetId in tokenMap)
79
- .map(([protocol]) => protocol as DefiProtocol);
80
- }
81
- /**
82
- * Check if a route is available for a given source chain and environment
83
- */
84
- export function isRouteAvailable(sourceChain: Chain, env: Env): boolean {
85
- return depositAndDeployConfig.routes.some(
86
- route =>
87
- route.sourceChains.includes(sourceChain) && route.envs.includes(env),
88
- );
89
- }
90
-
91
- /**
92
- * Check if a protocol supports a specific chain for deposit and deploy
93
- */
94
- export function isProtocolChainSupported(
95
- protocol: string,
96
- chainId: number,
97
- env: Env,
98
- ): boolean {
99
- const protocolRegistry = DEFI_REGISTRY[protocol as DefiProtocol];
100
- if (!protocolRegistry) return false;
101
-
102
- // Check BTCb token (used by DepositAndDeploy)
103
- const btcbRegistry =
104
- protocolRegistry['BTCb' as keyof typeof protocolRegistry];
105
- if (!btcbRegistry) return false;
106
-
107
- const envRegistry = btcbRegistry[env];
108
- if (!envRegistry) return false;
109
-
110
- return chainId in envRegistry;
111
- }
@@ -1,67 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Chain Configuration Types
3
- *
4
- * BTC DepositAndDeploy: BTC → BTC.b → DeFi vault (Silo)
5
- *
6
- * @module chains/btc/actions/depositAndDeploy/config/types
7
- */
8
-
9
- import type { z } from 'zod';
10
-
11
- import type { AssetId, Chain, DeployProtocol, Env } from '../../../../../core';
12
- import type { BtcCoreContext } from '../../../../../shared/context';
13
-
14
- /**
15
- * Route definition
16
- */
17
- export interface DepositAndDeployRouteDefinition {
18
- sourceChains: Chain[];
19
- envs: Env[];
20
- }
21
-
22
- /**
23
- * Authorization result
24
- */
25
- export interface DepositAndDeployAuthResult {
26
- signature: string;
27
- typedData?: string;
28
- approvalTxHash?: string;
29
- }
30
-
31
- /**
32
- * DepositAndDeploy chain configuration
33
- *
34
- * DepositAndDeploy produces BTC.b then deploys to a vault (e.g., Silo on Avalanche).
35
- */
36
- export interface DepositAndDeployChainConfig {
37
- chainType: 'evm';
38
- routes: DepositAndDeployRouteDefinition[];
39
- destChains: Chain[];
40
- /** Supported output assets - DepositAndDeploy produces BTC.b */
41
- supportedAssetsOut: AssetId[];
42
- supportedProtocols: DeployProtocol[];
43
- addressSchema: z.ZodString;
44
-
45
- /**
46
- * Get deposit and deploy fee for a protocol
47
- */
48
- getDepositAndDeployFee: (
49
- ctx: BtcCoreContext,
50
- chainId: unknown,
51
- vaultKey: string,
52
- ) => Promise<string>;
53
-
54
- /**
55
- * Authorize deposit and deploy (approve flow for BTC.b)
56
- */
57
- authorizeDepositAndDeploy: (
58
- ctx: BtcCoreContext,
59
- params: {
60
- chainId: unknown;
61
- recipient: string;
62
- amount: string;
63
- vaultKey: string;
64
- token: string;
65
- },
66
- ) => Promise<DepositAndDeployAuthResult>;
67
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * BTC DepositAndDeploy Factory Functions
3
- *
4
- * Factory functions for creating BTC DepositAndDeploy actions.
5
- *
6
- * @module chains/btc/actions/depositAndDeploy/factory
7
- */
8
-
9
- import type { BtcCoreContext } from '../../../../shared/context';
10
- import { BtcDepositAndDeploy } from './BtcDepositAndDeploy';
11
- import type { BtcDepositAndDeployParams } from './types';
12
-
13
- /**
14
- * Create a BTC DepositAndDeploy action
15
- *
16
- * Convenience factory function for creating BTC → BTC.b → Vault operations.
17
- *
18
- * @example
19
- * ```typescript
20
- * import { createBtcDepositAndDeploy, Chain, AssetId, DeployProtocol } from '@lombard.finance/sdk';
21
- *
22
- * const depositAndDeploy = createBtcDepositAndDeploy(ctx, {
23
- * assetOut: AssetId.BTCb,
24
- * destChain: Chain.AVALANCHE,
25
- * protocol: DeployProtocol.Silo,
26
- * });
27
- *
28
- * await depositAndDeploy.prepare({ amount: '0.1', recipient: '0x...' });
29
- * await depositAndDeploy.authorizeDeposit();
30
- * const address = await depositAndDeploy.generateDepositAddress();
31
- * ```
32
- */
33
- export function createBtcDepositAndDeploy(
34
- ctx: BtcCoreContext,
35
- params: BtcDepositAndDeployParams,
36
- ): BtcDepositAndDeploy {
37
- return new BtcDepositAndDeploy(ctx, params);
38
- }