@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,257 +0,0 @@
1
- /**
2
- * Chain Parsing Tests
3
- *
4
- * Tests for parseChainIdentifier function to ensure proper handling of
5
- * CAIP-2 chain identifiers for all supported chain types.
6
- *
7
- * Related Issues:
8
- * - APP-1976: Solana genesis hash → network name mapping
9
- * - APP-1977: Sui chain ID validation (full CAIP-2 format)
10
- * - APP-1978: Starknet network name → hex chain ID mapping
11
- *
12
- * @module __tests__/unit/core/chain-parsing.test.ts
13
- */
14
-
15
- import { describe, expect, it } from 'vitest';
16
-
17
- import {
18
- ChainId,
19
- isSolanaChain,
20
- isStarknetChainId,
21
- isSuiChain,
22
- SOLANA_DEVNET_CHAIN,
23
- SOLANA_MAINNET_CHAIN,
24
- SOLANA_TESTNET_CHAIN,
25
- STARKNET_MAINNET_CHAIN,
26
- STARKNET_SEPOLIA_CHAIN,
27
- SUI_DEVNET_CHAIN,
28
- SUI_MAINNET_CHAIN,
29
- SUI_TESTNET_CHAIN,
30
- } from '../../../common/chains';
31
- import {
32
- Chain,
33
- parseChainIdentifier,
34
- } from '../../../core';
35
-
36
- describe('parseChainIdentifier', () => {
37
- // ═══════════════════════════════════════════════════════════════════════════
38
- // EVM Chain Parsing
39
- // ═══════════════════════════════════════════════════════════════════════════
40
-
41
- describe('EVM chains (eip155:*)', () => {
42
- it('should parse Ethereum mainnet', () => {
43
- const result = parseChainIdentifier(Chain.ETHEREUM);
44
- expect(result).toBe(ChainId.ethereum);
45
- });
46
-
47
- it('should parse Avalanche mainnet', () => {
48
- const result = parseChainIdentifier(Chain.AVALANCHE);
49
- expect(result).toBe(ChainId.avalanche);
50
- });
51
-
52
- it('should parse Base mainnet', () => {
53
- const result = parseChainIdentifier(Chain.BASE);
54
- expect(result).toBe(ChainId.base);
55
- });
56
-
57
- it('should parse Sepolia testnet', () => {
58
- const result = parseChainIdentifier(Chain.SEPOLIA);
59
- expect(result).toBe(ChainId.sepolia);
60
- });
61
-
62
- it('should throw for invalid EVM chain ID', () => {
63
- expect(() => {
64
- parseChainIdentifier('eip155:99999999' as Chain);
65
- }).toThrow('Invalid EVM chain');
66
- });
67
- });
68
-
69
- // ═══════════════════════════════════════════════════════════════════════════
70
- // Solana Chain Parsing (APP-1976)
71
- // ═══════════════════════════════════════════════════════════════════════════
72
-
73
- describe('Solana chains (solana:*) - APP-1976', () => {
74
- /**
75
- * APP-1976 FIX:
76
- *
77
- * The original bug was that CAIP-2 Solana chains use genesis hash references
78
- * (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for mainnet),
79
- * but the Solana SDK expects network names ('solana:mainnet-beta').
80
- *
81
- * The fix maps genesis hash references to their corresponding network names.
82
- */
83
-
84
- describe('Legacy format (network names)', () => {
85
- it('should parse mainnet-beta', () => {
86
- const result = parseChainIdentifier(SOLANA_MAINNET_CHAIN as unknown as Chain);
87
- expect(result).toBe(SOLANA_MAINNET_CHAIN);
88
- expect(isSolanaChain(result)).toBe(true);
89
- });
90
-
91
- it('should parse devnet', () => {
92
- const result = parseChainIdentifier(SOLANA_DEVNET_CHAIN as unknown as Chain);
93
- expect(result).toBe(SOLANA_DEVNET_CHAIN);
94
- expect(isSolanaChain(result)).toBe(true);
95
- });
96
-
97
- it('should parse testnet', () => {
98
- const result = parseChainIdentifier(SOLANA_TESTNET_CHAIN as unknown as Chain);
99
- expect(result).toBe(SOLANA_TESTNET_CHAIN);
100
- expect(isSolanaChain(result)).toBe(true);
101
- });
102
- });
103
-
104
- describe('CAIP-2 format (genesis hash references)', () => {
105
- it('should map mainnet genesis hash to mainnet-beta', () => {
106
- // CAIP-2 mainnet: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
107
- const result = parseChainIdentifier(
108
- 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' as Chain
109
- );
110
- expect(result).toBe(SOLANA_MAINNET_CHAIN);
111
- });
112
-
113
- it('should map devnet genesis hash to devnet', () => {
114
- // CAIP-2 devnet: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
115
- const result = parseChainIdentifier(
116
- 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1' as Chain
117
- );
118
- expect(result).toBe(SOLANA_DEVNET_CHAIN);
119
- });
120
-
121
- it('should map testnet genesis hash to testnet', () => {
122
- // CAIP-2 testnet: solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z
123
- const result = parseChainIdentifier(
124
- 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z' as Chain
125
- );
126
- expect(result).toBe(SOLANA_TESTNET_CHAIN);
127
- });
128
- });
129
-
130
- it('should throw for invalid Solana chain reference', () => {
131
- expect(() => {
132
- parseChainIdentifier('solana:invalid-reference' as Chain);
133
- }).toThrow('Invalid Solana chain');
134
- });
135
- });
136
-
137
- // ═══════════════════════════════════════════════════════════════════════════
138
- // Sui Chain Parsing (APP-1977)
139
- // ═══════════════════════════════════════════════════════════════════════════
140
-
141
- describe('Sui chains (sui:*) - APP-1977', () => {
142
- /**
143
- * APP-1977 FIX:
144
- *
145
- * The original bug was that isSuiChain was receiving just the network part
146
- * (e.g., 'testnet') instead of the full chain ID ('sui:testnet').
147
- *
148
- * The fix ensures the full CAIP-2 chain ID is passed to isSuiChain.
149
- */
150
-
151
- it('should parse sui:mainnet', () => {
152
- const result = parseChainIdentifier(SUI_MAINNET_CHAIN as unknown as Chain);
153
- expect(result).toBe(SUI_MAINNET_CHAIN);
154
- expect(isSuiChain(result)).toBe(true);
155
- });
156
-
157
- it('should parse sui:testnet', () => {
158
- const result = parseChainIdentifier(SUI_TESTNET_CHAIN as unknown as Chain);
159
- expect(result).toBe(SUI_TESTNET_CHAIN);
160
- expect(isSuiChain(result)).toBe(true);
161
- });
162
-
163
- it('should parse sui:devnet', () => {
164
- const result = parseChainIdentifier(SUI_DEVNET_CHAIN as unknown as Chain);
165
- expect(result).toBe(SUI_DEVNET_CHAIN);
166
- expect(isSuiChain(result)).toBe(true);
167
- });
168
-
169
- it('should throw for invalid Sui chain', () => {
170
- expect(() => {
171
- parseChainIdentifier('sui:invalid' as Chain);
172
- }).toThrow('Invalid Sui chain');
173
- });
174
-
175
- describe('isSuiChain validation', () => {
176
- it('should return true for valid Sui chains', () => {
177
- expect(isSuiChain(SUI_MAINNET_CHAIN)).toBe(true);
178
- expect(isSuiChain(SUI_TESTNET_CHAIN)).toBe(true);
179
- expect(isSuiChain(SUI_DEVNET_CHAIN)).toBe(true);
180
- });
181
-
182
- it('should return false for just network name (the original bug)', () => {
183
- // Before the fix, 'testnet' was passed instead of 'sui:testnet'
184
- expect(isSuiChain('testnet')).toBe(false);
185
- expect(isSuiChain('mainnet')).toBe(false);
186
- expect(isSuiChain('devnet')).toBe(false);
187
- });
188
- });
189
- });
190
-
191
- // ═══════════════════════════════════════════════════════════════════════════
192
- // Starknet Chain Parsing (APP-1978)
193
- // ═══════════════════════════════════════════════════════════════════════════
194
-
195
- describe('Starknet chains (starknet:*) - APP-1978', () => {
196
- /**
197
- * APP-1978 FIX:
198
- *
199
- * The original bug was that CAIP-2 uses human-readable network names
200
- * (SN_MAIN, SN_SEPOLIA), but Starknet SDK expects hex-encoded chain IDs.
201
- *
202
- * The fix maps network names to their corresponding hex chain IDs.
203
- */
204
-
205
- it('should parse mainnet (SN_MAIN) to hex chain ID', () => {
206
- const result = parseChainIdentifier('starknet:SN_MAIN' as Chain);
207
- expect(result).toBe(STARKNET_MAINNET_CHAIN);
208
- expect(result).toBe('0x534e5f4d41494e'); // hex of "SN_MAIN"
209
- expect(isStarknetChainId(result)).toBe(true);
210
- });
211
-
212
- it('should parse sepolia (SN_SEPOLIA) to hex chain ID', () => {
213
- const result = parseChainIdentifier('starknet:SN_SEPOLIA' as Chain);
214
- expect(result).toBe(STARKNET_SEPOLIA_CHAIN);
215
- expect(result).toBe('0x534e5f5345504f4c4941'); // hex of "SN_SEPOLIA"
216
- expect(isStarknetChainId(result)).toBe(true);
217
- });
218
-
219
- it('should throw for invalid Starknet network', () => {
220
- expect(() => {
221
- parseChainIdentifier('starknet:invalid' as Chain);
222
- }).toThrow('Invalid Starknet chain');
223
- });
224
-
225
- describe('isStarknetChainId validation', () => {
226
- it('should return true for valid hex chain IDs', () => {
227
- expect(isStarknetChainId(STARKNET_MAINNET_CHAIN)).toBe(true);
228
- expect(isStarknetChainId(STARKNET_SEPOLIA_CHAIN)).toBe(true);
229
- });
230
-
231
- it('should return false for network names (the original bug)', () => {
232
- // Network names need to be converted to hex chain IDs
233
- expect(isStarknetChainId('SN_MAIN')).toBe(false);
234
- expect(isStarknetChainId('SN_SEPOLIA')).toBe(false);
235
- });
236
- });
237
- });
238
-
239
- // ═══════════════════════════════════════════════════════════════════════════
240
- // Error Handling
241
- // ═══════════════════════════════════════════════════════════════════════════
242
-
243
- describe('Error handling', () => {
244
- it('should throw for unknown chain prefix', () => {
245
- expect(() => {
246
- parseChainIdentifier('unknown:12345' as Chain);
247
- }).toThrow('Invalid chain');
248
- });
249
-
250
- it('should throw for malformed chain identifier', () => {
251
- expect(() => {
252
- parseChainIdentifier('not-a-valid-chain' as Chain);
253
- }).toThrow('Invalid chain');
254
- });
255
- });
256
- });
257
-
@@ -1,100 +0,0 @@
1
- /**
2
- * Tests for getAvailableProtocols and getAvailableProtocolsWithMetadata
3
- *
4
- * These functions filter DeFi protocols based on environment and asset,
5
- * using the DEFI_REGISTRY as the source of truth.
6
- */
7
-
8
- import { Env } from '@lombard.finance/sdk-common';
9
- import { describe, expect, it } from 'vitest';
10
-
11
- import { AssetId } from '../../../core/assets';
12
- import {
13
- DefiProtocol,
14
- getAvailableProtocols,
15
- getAvailableProtocolsWithMetadata,
16
- } from '../../../defi/defi-registry';
17
-
18
- describe('getAvailableProtocols', () => {
19
- describe('LBTC protocols', () => {
20
- it('should return Veda for LBTC in prod', () => {
21
- const protocols = getAvailableProtocols(AssetId.LBTC, Env.prod);
22
-
23
- expect(protocols).toContain(DefiProtocol.Veda);
24
- // Silo is only on Avalanche which has no mainnet prod config in DEFI_REGISTRY
25
- expect(protocols).not.toContain(DefiProtocol.Silo);
26
- });
27
-
28
- it('should return Veda for LBTC in testnet', () => {
29
- const protocols = getAvailableProtocols(AssetId.LBTC, Env.testnet);
30
-
31
- expect(protocols).toContain(DefiProtocol.Veda);
32
- });
33
-
34
- it('should return Veda for LBTC in stage', () => {
35
- const protocols = getAvailableProtocols(AssetId.LBTC, Env.stage);
36
-
37
- expect(protocols).toContain(DefiProtocol.Veda);
38
- });
39
- });
40
-
41
- describe('BTCb protocols', () => {
42
- it('should NOT return Silo for BTCb in prod (Avalanche mainnet not enabled)', () => {
43
- const protocols = getAvailableProtocols(AssetId.BTCb, Env.prod);
44
-
45
- // Silo for BTCb is only configured for Env.testnet in DEFI_REGISTRY
46
- expect(protocols).not.toContain(DefiProtocol.Silo);
47
- });
48
-
49
- it('should return Silo for BTCb in testnet (Avalanche Fuji enabled)', () => {
50
- const protocols = getAvailableProtocols(AssetId.BTCb, Env.testnet);
51
-
52
- expect(protocols).toContain(DefiProtocol.Silo);
53
- });
54
-
55
- it('should NOT return Silo for BTCb in stage (not configured)', () => {
56
- const protocols = getAvailableProtocols(AssetId.BTCb, Env.stage);
57
-
58
- // DEFI_REGISTRY only has Silo BTCb config for testnet, not stage
59
- expect(protocols).not.toContain(DefiProtocol.Silo);
60
- });
61
- });
62
-
63
- describe('unsupported assets', () => {
64
- it('should return empty array for unsupported asset', () => {
65
- // Using a made-up asset ID that's not in the registry
66
- const protocols = getAvailableProtocols('unsupported' as AssetId, Env.prod);
67
-
68
- expect(protocols).toEqual([]);
69
- });
70
- });
71
- });
72
-
73
- describe('getAvailableProtocolsWithMetadata', () => {
74
- it('should return protocol metadata for LBTC in prod', () => {
75
- const protocols = getAvailableProtocolsWithMetadata(AssetId.LBTC, Env.prod);
76
-
77
- expect(protocols.length).toBeGreaterThan(0);
78
-
79
- const veda = protocols.find(p => p.value === DefiProtocol.Veda);
80
- expect(veda).toBeDefined();
81
- expect(veda?.label).toBe('Lombard DeFi Vault');
82
- expect(veda?.url).toBe('https://lombard.finance');
83
- });
84
-
85
- it('should return Silo metadata for BTCb in testnet', () => {
86
- const protocols = getAvailableProtocolsWithMetadata(AssetId.BTCb, Env.testnet);
87
-
88
- const silo = protocols.find(p => p.value === DefiProtocol.Silo);
89
- expect(silo).toBeDefined();
90
- expect(silo?.label).toBe('Silo Finance Vault');
91
- expect(silo?.url).toBe('https://silo.finance');
92
- });
93
-
94
- it('should return empty array when no protocols available', () => {
95
- // BTCb in prod has no protocols (Silo only on Avalanche, not in prod config)
96
- const protocols = getAvailableProtocolsWithMetadata(AssetId.BTCb, Env.prod);
97
-
98
- expect(protocols).toEqual([]);
99
- });
100
- });
@@ -1,25 +0,0 @@
1
- import { Env } from '@lombard.finance/sdk-common';
2
- import { describe, expect,it } from 'vitest';
3
-
4
- import { DEFI_REGISTRY, DefiProtocol } from '../../../defi/defi-registry';
5
- import { Token } from '../../../tokens/token-addresses';
6
-
7
- describe('DEFI_REGISTRY', () => {
8
- it('should have Veda protocol with LBTC support', () => {
9
- expect(DEFI_REGISTRY[DefiProtocol.Veda]).toBeDefined();
10
- expect(DEFI_REGISTRY[DefiProtocol.Veda][Token.LBTC]).toBeDefined();
11
- });
12
-
13
- it('should have Silo only on testnet for BTCb', () => {
14
- // Silo is defined for BTCb
15
- const siloBtcb = DEFI_REGISTRY[DefiProtocol.Silo][Token.BTCb];
16
- expect(siloBtcb).toBeDefined();
17
-
18
- // Check testnet support
19
- expect(siloBtcb?.[Env.testnet]).toBeDefined();
20
-
21
- // Check prod support (should be undefined based on current implementation)
22
- expect(siloBtcb?.[Env.prod]).toBeUndefined();
23
- });
24
- });
25
-
@@ -1,224 +0,0 @@
1
- /**
2
- * EVM Deploy Action Unit Tests
3
- *
4
- * Tests the LBTC → DeFi vault deployment flow on EVM chains.
5
- *
6
- * @module __tests__/unit/evm/EvmDeploy.test.ts
7
- */
8
-
9
- import { describe, expect, it, vi } from 'vitest';
10
-
11
- import { AssetId, Chain } from '../../../core';
12
- import { LombardError, ValidationErrorCode } from '../../../shared/errors';
13
-
14
- describe('EvmDeploy Interface', () => {
15
- describe('EvmDeployParams', () => {
16
- it('should require LBTC as input asset', () => {
17
- const params = {
18
- assetIn: AssetId.LBTC,
19
- sourceChain: Chain.ETHEREUM,
20
- protocol: 'veda',
21
- vault: 'LBTC',
22
- };
23
-
24
- expect(params.assetIn).toBe(AssetId.LBTC);
25
- });
26
-
27
- it('should require protocol selection', () => {
28
- const params = {
29
- assetIn: AssetId.LBTC,
30
- sourceChain: Chain.ETHEREUM,
31
- protocol: 'veda',
32
- vault: 'LBTC',
33
- };
34
-
35
- expect(params.protocol).toBe('veda');
36
- });
37
-
38
- it('should require vault selection', () => {
39
- const params = {
40
- assetIn: AssetId.LBTC,
41
- sourceChain: Chain.ETHEREUM,
42
- protocol: 'veda',
43
- vault: 'LBTC',
44
- };
45
-
46
- expect(params.vault).toBe('LBTC');
47
- });
48
-
49
- it('should support multiple protocols', () => {
50
- const protocols = ['corn-silo', 'euler-lbtc', 'aave', 'morpho', 'pendle'];
51
-
52
- protocols.forEach(protocol => {
53
- expect(typeof protocol).toBe('string');
54
- });
55
- });
56
-
57
- it('should support multiple chains', () => {
58
- const chains = [
59
- Chain.ETHEREUM,
60
- Chain.BASE,
61
- Chain.BSC,
62
- Chain.SEPOLIA,
63
- ];
64
-
65
- chains.forEach(chain => {
66
- expect(typeof chain).toBe('string');
67
- });
68
- });
69
- });
70
-
71
- describe('EvmDeployPrepareParams', () => {
72
- it('should accept valid prepare parameters', () => {
73
- const params = {
74
- amount: '0.1',
75
- };
76
-
77
- expect(params.amount).toBe('0.1');
78
- });
79
-
80
- it('should support optional recipient', () => {
81
- const params = {
82
- amount: '0.1',
83
- recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
84
- };
85
-
86
- expect(params.recipient).toBeDefined();
87
- });
88
- });
89
-
90
- describe('Status Transitions', () => {
91
- it('should define all required status values', () => {
92
- const statuses = [
93
- 'idle',
94
- 'needs-approval',
95
- 'ready',
96
- 'completed',
97
- ];
98
-
99
- statuses.forEach(status => {
100
- expect(typeof status).toBe('string');
101
- });
102
- });
103
- });
104
-
105
- describe('Method Signatures', () => {
106
- it('should define prepare method', () => {
107
- type PrepareMethod = (params: { amount: string }) => Promise<void>;
108
- const testType: PrepareMethod = async () => {};
109
- expect(testType).toBeDefined();
110
- });
111
-
112
- it('should define approve method', () => {
113
- type ApproveMethod = () => Promise<void>;
114
- const testType: ApproveMethod = async () => {};
115
- expect(testType).toBeDefined();
116
- });
117
-
118
- it('should define execute method', () => {
119
- type ExecuteMethod = () => Promise<{ txHash: string }>;
120
- const testType: ExecuteMethod = async () => ({ txHash: '0x123' });
121
- expect(testType).toBeDefined();
122
- });
123
- });
124
-
125
- describe('Protocol Integration', () => {
126
- it('should support DeFi protocols from registry', () => {
127
- const protocolTypes = ['lending', 'yield', 'liquidity'];
128
-
129
- protocolTypes.forEach(type => {
130
- expect(typeof type).toBe('string');
131
- });
132
- });
133
-
134
- it('should validate vault exists for protocol', () => {
135
- const protocol = 'corn-silo';
136
- const vault = 'LBTC';
137
-
138
- expect(protocol).toBeDefined();
139
- expect(vault).toBeDefined();
140
- });
141
- });
142
-
143
- describe('Token Approval', () => {
144
- it('should require LBTC approval before deployment', () => {
145
- const approvalRequired = true;
146
- expect(approvalRequired).toBe(true);
147
- });
148
-
149
- it('should approve to vault contract address', () => {
150
- const vaultAddress = '0x1234567890abcdef1234567890abcdef12345678';
151
- expect(vaultAddress).toMatch(/^0x/);
152
- });
153
- });
154
-
155
- describe('Error Handling', () => {
156
- it('should reject unsupported protocols', () => {
157
- const error = new LombardError(
158
- ValidationErrorCode.INVALID_PARAMETER,
159
- `Protocol invalid-protocol is not supported.`,
160
- );
161
-
162
- expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
163
- });
164
-
165
- it('should reject unsupported vaults', () => {
166
- const error = new LombardError(
167
- ValidationErrorCode.INVALID_PARAMETER,
168
- `Vault invalid-vault is not available for protocol corn-silo.`,
169
- );
170
-
171
- expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
172
- });
173
-
174
- it('should reject chains without protocol support', () => {
175
- const error = new LombardError(
176
- ValidationErrorCode.INVALID_CHAIN,
177
- `Protocol corn-silo is not available on avalanche.`,
178
- );
179
-
180
- expect(error.code).toBe(ValidationErrorCode.INVALID_CHAIN);
181
- });
182
-
183
- it('should handle insufficient LBTC balance', () => {
184
- const error = new LombardError(
185
- ValidationErrorCode.INVALID_PARAMETER,
186
- `Insufficient LBTC balance for deployment.`,
187
- );
188
-
189
- expect(error.message).toContain('Insufficient');
190
- });
191
- });
192
-
193
- describe('Event Emissions', () => {
194
- it('should emit progress events', () => {
195
- const handler = vi.fn((progress: { status: string; txHash?: string }) => {
196
- expect(progress.status).toBeDefined();
197
- });
198
-
199
- handler({ status: 'completed', txHash: '0x123' });
200
- expect(handler).toHaveBeenCalledOnce();
201
- });
202
- });
203
-
204
- describe('Public Properties', () => {
205
- it('should expose protocol property', () => {
206
- type HasProtocol = { readonly protocol: string };
207
- const obj: HasProtocol = { protocol: 'corn-silo' };
208
- expect(obj.protocol).toBe('corn-silo');
209
- });
210
-
211
- it('should expose vault property', () => {
212
- type HasVault = { readonly vault: string };
213
- const obj: HasVault = { vault: 'LBTC' };
214
- expect(obj.vault).toBe('LBTC');
215
- });
216
-
217
- it('should expose status property', () => {
218
- type HasStatus = { readonly status: string };
219
- const obj: HasStatus = { status: 'idle' };
220
- expect(obj.status).toBe('idle');
221
- });
222
- });
223
- });
224
-