@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,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
- }