@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,82 +0,0 @@
1
- import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
-
4
- import { makeTokenSelector } from '../../stories/arg-types';
5
- import { Button } from '../../stories/components/Button';
6
- import { CodeBlock } from '../../stories/components/CodeBlock';
7
- import { ConnectButton } from '../../stories/components/ConnectButton';
8
- import {
9
- functionType,
10
- wagmiDecorator,
11
- } from '../../stories/components/decorators';
12
- import {
13
- canPerformAction,
14
- useConnection,
15
- } from '../../stories/hooks/useConnection';
16
- import useQuery from '../../stories/hooks/useQuery';
17
- import { Token } from '../../tokens/token-addresses';
18
- import { mintToken } from './claimLBTC';
19
-
20
- const meta = {
21
- title: 'write/claimLBTC',
22
- component: StoryView,
23
- tags: ['autodocs'],
24
- decorators: [wagmiDecorator, functionType('write')],
25
- argTypes: {
26
- ...makeTokenSelector([Token.LBTC, Token.BTCK, Token.BTCb]),
27
- },
28
- } satisfies Meta<typeof StoryView>;
29
-
30
- export default meta;
31
-
32
- type Story = StoryObj<typeof meta>;
33
-
34
- export const WithParams: Story = {
35
- args: {
36
- proofSignature: '',
37
- data: '',
38
- env: DEFAULT_ENV,
39
- token: Token.LBTC,
40
- },
41
- };
42
-
43
- type ClaimLBTCProps = Omit<
44
- Parameters<typeof mintToken>[0],
45
- 'account' | 'chainId' | 'provider'
46
- >;
47
-
48
- export function StoryView(props: ClaimLBTCProps) {
49
- const connection = useConnection();
50
-
51
- const request = async () => {
52
- if (!canPerformAction(connection)) {
53
- return;
54
- }
55
-
56
- return mintToken({
57
- ...props,
58
- account: connection.account.address,
59
- chainId: connection.account.chainId,
60
- provider: connection.provider,
61
- });
62
- };
63
-
64
- const { data, error, isLoading, refetch } = useQuery(request, [], false);
65
-
66
- return (
67
- <>
68
- <div className="mb-4">
69
- <ConnectButton />
70
- </div>
71
-
72
- <Button
73
- onClick={refetch}
74
- disabled={isLoading || !connection.account.address}
75
- isLoading={isLoading}
76
- actionName={mintToken.name}
77
- />
78
-
79
- <CodeBlock text={error || data} />
80
- </>
81
- );
82
- }
@@ -1,159 +0,0 @@
1
- import { Hash, parseGwei } from 'viem';
2
-
3
- import { makePublicClient } from '../../clients/public-client';
4
- import { makeWalletClient } from '../../clients/wallet-client';
5
- import { CHAIN_ID_TO_VIEM_CHAIN_MAP, isKatanaChain } from '../../common/chains';
6
- import { CommonWriteParameters } from '../../common/parameters';
7
- import { AddressKind, Token } from '../../tokens/token-addresses';
8
- import { getTokenContractInfo } from '../../tokens/tokens';
9
- import { estimateGasFees } from '../../utils/gas';
10
- import { ensureHex } from '../../utils/hex';
11
- import {
12
- BasculeDepositStatus,
13
- getBasculeDepositStatus,
14
- } from '../getBasculeDepositStatus';
15
-
16
- export interface IClaimLBTCParams extends CommonWriteParameters {
17
- /**
18
- * The raw payload from deposit notarization, see `Deposit.rawPayload`.
19
- */
20
- data: string;
21
- /**
22
- * The proof signature from deposit notarization, see `Deposit.proof`.
23
- */
24
- proofSignature: string;
25
- }
26
-
27
- /**
28
- * Mints a specified token (LBTC or NativeLBTC) from a notarized deposit.
29
- *
30
- * This is the primary function for claiming tokens from a deposit notarization.
31
- *
32
- * It performs the following steps:
33
- * 1. Validates that the token is supported.
34
- * 2. Checks chain restrictions.
35
- * 3. Fetches the token contract information.
36
- * 4. Checks the deposit status via Bascule.
37
- * 5. Prepares the transaction call data and estimates gas fees if on Katana.
38
- * 6. Simulates the contract call and executes the transaction via the provided wallet.
39
- *
40
- * @param {Object} params - The parameters.
41
- * @param {string} params.data - Raw payload from the deposit notarization (`Deposit.rawPayload`).
42
- * @param {string} params.proofSignature - Signature from the deposit notarization (`Deposit.proof`).
43
- * @param {Address} params.account - The EVM account address that will receive the tokens.
44
- * @param {ChainId} params.chainId - The chain ID of the target blockchain network.
45
- * @param {EIP1193Provider} params.provider - The connected wallet provider.
46
- * @param {string} [params.rpcUrl] - Optional RPC URL for the blockchain network.
47
- * @param {Env} [params.env] - Optional environment identifier (e.g., `prod`, `staging`).
48
- * @param {Token} [params.token=Token.LBTC] - The token to mint. Defaults to LBTC.
49
- *
50
- * @returns {Promise<Hash>} Resolves with the transaction hash of the mint operation.
51
- *
52
- * @throws Will throw an error if:
53
- * - The token is unsupported.
54
- * - BTCK minting is attempted on a non-Katana chain.
55
- * - The deposit is unreported, withdrawn, or blocked by bridge security.
56
- */
57
- export async function mintToken({
58
- data,
59
- proofSignature,
60
- account,
61
- chainId,
62
- provider,
63
- rpcUrl,
64
- env,
65
- token = Token.LBTC,
66
- }: IClaimLBTCParams & { token?: Token }) {
67
- if (![Token.LBTC, Token.BTCK, Token.BTCb].includes(token)) {
68
- throw new Error('Unsupported token');
69
- }
70
-
71
- if (token === Token.BTCK && !isKatanaChain(chainId)) {
72
- throw new Error('Operation not permitted');
73
- }
74
-
75
- const tokenContract = await getTokenContractInfo(
76
- token,
77
- chainId,
78
- env,
79
- AddressKind.Adapter,
80
- );
81
- const basculeStatus = await getBasculeDepositStatus({
82
- chainId,
83
- rawPayload: data,
84
- env,
85
- token,
86
- });
87
-
88
- if (basculeStatus !== BasculeDepositStatus.REPORTED) {
89
- switch (basculeStatus) {
90
- case BasculeDepositStatus.UNREPORTED:
91
- throw new Error(
92
- 'The deposit cannot be claimed because it is unreported or potentially still pending, please try again later.',
93
- );
94
- case BasculeDepositStatus.WITHDRAWN:
95
- throw new Error(
96
- 'The deposit cannot be claimed because it is withdrawn already.',
97
- );
98
- default: // unknown bascule deposit status
99
- throw new Error(
100
- 'The deposit cannot be claimed because it is blocked by bridge security.',
101
- );
102
- }
103
- }
104
-
105
- const publicClient = makePublicClient({ chainId, rpcUrl, env });
106
- const walletClient = makeWalletClient({ chainId, provider });
107
-
108
- const callData = {
109
- address: tokenContract.address,
110
- account,
111
- chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],
112
- abi: tokenContract.abi,
113
- functionName:
114
- token === Token.BTCK || token === Token.BTCb ? 'mintV1' : 'mint',
115
- args: [ensureHex(data), ensureHex(proofSignature)],
116
- } as const;
117
-
118
- const gasEstimationData = isKatanaChain(chainId)
119
- ? await estimateGasFees(publicClient, callData, parseGwei('1'))
120
- : {};
121
-
122
- const { request } = await publicClient.simulateContract({
123
- ...callData,
124
- ...gasEstimationData,
125
- });
126
-
127
- const txHash = await walletClient.writeContract(request);
128
-
129
- return txHash;
130
- }
131
-
132
- /**
133
- * Convenience wrapper for minting LBTC from a deposit notarization.
134
- *
135
- * Internally calls `mintToken` with the `Token.LBTC` argument.
136
- *
137
- * @param {IClaimLBTCParams} params - The parameters for claiming LBTC.
138
- * @returns {Promise<Hash>} Resolves with the transaction hash of the LBTC mint operation.
139
- */
140
- export async function claimLBTC({
141
- data,
142
- proofSignature,
143
- account,
144
- chainId,
145
- provider,
146
- rpcUrl,
147
- env,
148
- }: IClaimLBTCParams): Promise<Hash> {
149
- return mintToken({
150
- data,
151
- proofSignature,
152
- account,
153
- chainId,
154
- provider,
155
- rpcUrl,
156
- env,
157
- token: Token.LBTC,
158
- });
159
- }
@@ -1 +0,0 @@
1
- export * from './claimLBTC';
@@ -1,95 +0,0 @@
1
- import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
2
- import { Hash, parseGwei, zeroAddress } from 'viem';
3
-
4
- import { makePublicClient } from '../../clients/public-client';
5
- import { makeWalletClient } from '../../clients/wallet-client';
6
- import { CHAIN_ID_TO_VIEM_CHAIN_MAP, isKatanaChain } from '../../common/chains';
7
- import { CommonWriteParameters } from '../../common/parameters';
8
- import ASSET_ROUTER_ABI from '../../tokens/abi/ASSET_ROUTER_ABI';
9
- import { AddressKind, Token } from '../../tokens/token-addresses';
10
- import { getTokenContractInfo } from '../../tokens/tokens';
11
- import { estimateGasFees } from '../../utils/gas';
12
- import { ensureHex } from '../../utils/hex';
13
-
14
- /**
15
- * Parameters for claiming BTC.b from unstake redemptions
16
- */
17
- export interface IClaimUnstakeRedeemParams extends CommonWriteParameters {
18
- /** Raw payload from the unstake redemption (`Unstake.rawPayload`) */
19
- data: string;
20
-
21
- /** Signature/proof from the unstake redemption (`Unstake.proof`) */
22
- proofSignature: string;
23
- }
24
-
25
- /**
26
- * Claims BTC.b tokens from an unstake redemption (LBTC → BTC.b)
27
- *
28
- * This function is specifically for claiming native chain redemptions after the 7-day unstaking period.
29
- * Unlike deposits which use `adapter.mintV1`, unstake redemptions use `assetRouter.mint`.
30
- *
31
- * Business Rules:
32
- * - Only works for native chain redemptions (LBTC → BTC.b)
33
- * - Requires notarization status = SESSION_APPROVED
34
- * - Requires session state = COMPLETED
35
- * - Must be called after 7 days from unstake
36
- *
37
- * @param params - Parameters for claiming
38
- * @returns Transaction hash of the claim operation
39
- *
40
- * @throws Error if claiming fails or if action selector doesn't match
41
- */
42
- export async function claimUnstakeRedeem({
43
- data,
44
- proofSignature,
45
- account,
46
- chainId,
47
- provider,
48
- rpcUrl,
49
- env = DEFAULT_ENV,
50
- }: IClaimUnstakeRedeemParams): Promise<Hash> {
51
- const publicClient = makePublicClient({ chainId, rpcUrl, env });
52
- const walletClient = makeWalletClient({ chainId, provider });
53
-
54
- // Get AssetRouter address from BTCb token adapter
55
- const btcbTokenContract = await getTokenContractInfo(
56
- Token.BTCb,
57
- chainId,
58
- env,
59
- AddressKind.Adapter,
60
- );
61
-
62
- // Read AssetRouter address from token adapter
63
- const assetRouterAddress = await publicClient.readContract({
64
- address: btcbTokenContract.address,
65
- abi: btcbTokenContract.abi,
66
- functionName: 'getAssetRouter',
67
- });
68
-
69
- if (!assetRouterAddress || assetRouterAddress === zeroAddress) {
70
- throw new Error('AssetRouter address not found in token adapter');
71
- }
72
-
73
- // Call AssetRouter.mint function
74
- const callData = {
75
- address: assetRouterAddress,
76
- account,
77
- chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],
78
- abi: ASSET_ROUTER_ABI,
79
- functionName: 'mint',
80
- args: [ensureHex(data), ensureHex(proofSignature)],
81
- } as const;
82
-
83
- const gasEstimationData = isKatanaChain(chainId)
84
- ? await estimateGasFees(publicClient, callData, parseGwei('1'))
85
- : {};
86
-
87
- const { request } = await publicClient.simulateContract({
88
- ...callData,
89
- ...gasEstimationData,
90
- });
91
-
92
- const txHash = await walletClient.writeContract(request);
93
-
94
- return txHash;
95
- }
@@ -1 +0,0 @@
1
- export * from './claimUnstakeRedeem';
@@ -1,83 +0,0 @@
1
- import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
-
4
- import { makeTokenSelector } from '../../stories/arg-types';
5
- import { Button } from '../../stories/components/Button';
6
- import { CodeBlock } from '../../stories/components/CodeBlock';
7
- import { ConnectButton } from '../../stories/components/ConnectButton';
8
- import {
9
- functionType,
10
- wagmiDecorator,
11
- } from '../../stories/components/decorators';
12
- import {
13
- canPerformAction,
14
- useConnection,
15
- } from '../../stories/hooks/useConnection';
16
- import useQuery from '../../stories/hooks/useQuery';
17
- import { Token } from '../../tokens/token-addresses';
18
- import { depositToken } from './depositToken';
19
-
20
- const meta = {
21
- title: 'write/depositToken',
22
- component: StoryView,
23
- tags: ['autodocs'],
24
- decorators: [wagmiDecorator, functionType('write')],
25
- argTypes: {
26
- ...makeTokenSelector([Token.BTCK, Token.BTCb], 'tokenIn'),
27
- ...makeTokenSelector([Token.LBTC], 'tokenOut'),
28
- },
29
- } satisfies Meta<typeof StoryView>;
30
-
31
- export default meta;
32
-
33
- type Story = StoryObj<typeof meta>;
34
-
35
- export const WithParams: Story = {
36
- args: {
37
- env: DEFAULT_ENV,
38
- amount: 0,
39
- tokenIn: Token.BTCb,
40
- tokenOut: Token.LBTC,
41
- },
42
- };
43
-
44
- type StoryProps = Omit<
45
- Parameters<typeof depositToken>[0],
46
- 'account' | 'chainId' | 'provider'
47
- >;
48
-
49
- export function StoryView(props: StoryProps) {
50
- const connection = useConnection();
51
-
52
- const request = async () => {
53
- if (!canPerformAction(connection)) {
54
- return;
55
- }
56
-
57
- return depositToken({
58
- ...props,
59
- account: connection.account.address,
60
- chainId: connection.account.chainId,
61
- provider: connection.provider,
62
- });
63
- };
64
-
65
- const { data, error, isLoading, refetch } = useQuery(request, [], false);
66
-
67
- return (
68
- <>
69
- <div className="mb-4">
70
- <ConnectButton />
71
- </div>
72
-
73
- <Button
74
- onClick={refetch}
75
- disabled={isLoading || !connection.account.address}
76
- isLoading={isLoading}
77
- actionName={depositToken.name}
78
- />
79
-
80
- <CodeBlock text={error || data} />
81
- </>
82
- );
83
- }
@@ -1,214 +0,0 @@
1
- /**
2
- * Asset Router deposit functionality for token swaps
3
- */
4
- import BigNumber from 'bignumber.js';
5
- import { Address } from 'viem';
6
-
7
- import { makePublicClient } from '../../clients/public-client';
8
- import { makeWalletClient } from '../../clients/wallet-client';
9
- import { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../common/chains';
10
- import { CommonWriteParameters, IEnvParam } from '../../common/parameters';
11
- import ASSET_ROUTER_ABI from '../../tokens/abi/ASSET_ROUTER_ABI';
12
- import { AddressKind, Token } from '../../tokens/token-addresses';
13
- import {
14
- fromBaseDenomination,
15
- getTokenContractInfo,
16
- retrieveTokenProperties,
17
- toBaseDenomination,
18
- } from '../../tokens/tokens';
19
- import { UnsupportedTokenFlow } from '../../utils/err';
20
- import toBigInt from '../../utils/numbers';
21
-
22
- const AVAILABLE_FLOWS: Array<{
23
- tokenIn: Token;
24
- tokenOut: Token;
25
- }> = [
26
- {
27
- tokenIn: Token.BTCb,
28
- tokenOut: Token.LBTC,
29
- },
30
- ];
31
-
32
- /* -------------------------------------------------------------------------- */
33
- /* Types */
34
- /* -------------------------------------------------------------------------- */
35
-
36
- /**
37
- * Parameters for depositing tokens into a supported token contract.
38
- *
39
- * Extends {@link CommonWriteParameters} and {@link IEnvParam}.
40
- */
41
- type DepositTokenParameters = {
42
- /**
43
- * The amount of tokens to deposit in human-readable format
44
- * (e.g., `1.23` for 1.23 XBTC).
45
- */
46
- amount: BigNumber.Value;
47
- /**
48
- * The input token that will be deposited.
49
- * Defaults to {@link Token.BTCb}.
50
- */
51
- tokenIn: Token;
52
- /**
53
- * The output token to be minted after deposit.
54
- * Defaults to {@link Token.LBTC}.
55
- */
56
- tokenOut: Token;
57
- } & CommonWriteParameters &
58
- IEnvParam;
59
-
60
- /* -------------------------------------------------------------------------- */
61
- /* Public API */
62
- /* -------------------------------------------------------------------------- */
63
-
64
- /**
65
- * Gets the AssetRouter address for a given token.
66
- *
67
- * This is useful for approving tokens before calling the deposit function.
68
- *
69
- * @param tokenIn - The input token (e.g., Token.BTCb)
70
- * @param chainId - The chain ID
71
- * @param env - The environment
72
- * @param rpcUrl - Optional RPC URL
73
- * @returns The AssetRouter address
74
- */
75
- export async function getAssetRouterAddress({
76
- tokenIn,
77
- chainId,
78
- env,
79
- rpcUrl,
80
- }: {
81
- tokenIn: Token;
82
- chainId: CommonWriteParameters['chainId'];
83
- env?: IEnvParam['env'];
84
- rpcUrl?: string;
85
- }): Promise<Address> {
86
- const publicClient = makePublicClient({ chainId, rpcUrl, env });
87
-
88
- const adapterContractInfo = await getTokenContractInfo(
89
- tokenIn,
90
- chainId,
91
- env,
92
- AddressKind.Adapter,
93
- );
94
-
95
- const assetRouterAddress = (await publicClient.readContract({
96
- address: adapterContractInfo.address,
97
- abi: adapterContractInfo.abi,
98
- functionName: 'getAssetRouter',
99
- })) as Address;
100
-
101
- return assetRouterAddress;
102
- }
103
-
104
- /**
105
- * Deposits tokens using the Asset Router contract to mint the corresponding output token.
106
- *
107
- * This function validates the deposit flow (input → output token), retrieves token and adapter contract
108
- * information, obtains the AssetRouter address, and submits a `deposit` transaction to the AssetRouter contract.
109
- *
110
- * **Note:** This function does NOT handle token approval. You must approve tokens for the AssetRouter
111
- * before calling this function. Use {@link getAssetRouterAddress} to get the spender address for approval.
112
- *
113
- * ---
114
- * **Supported flows:**
115
- * - BTC.b → LBTC
116
- *
117
- * ---
118
- * **Errors thrown:**
119
- * - `UnsupportedTokenDepositFlow` if the (tokenIn, tokenOut) pair is not supported
120
- * - `Error` if token contract properties cannot be retrieved
121
- * - `Error` if the deposit amount exceeds the account balance
122
- * - `Error` if insufficient allowance (tokens not approved)
123
- */
124
- export async function depositToken({
125
- account: accountAddress,
126
- amount: amountRaw,
127
- chainId,
128
- env,
129
- provider,
130
- rpcUrl,
131
- tokenIn = Token.BTCb,
132
- tokenOut = Token.LBTC,
133
- }: DepositTokenParameters) {
134
- const flow = AVAILABLE_FLOWS.find(
135
- af => af.tokenIn === tokenIn && af.tokenOut === tokenOut,
136
- );
137
- if (!flow) {
138
- throw new UnsupportedTokenFlow(tokenIn, tokenOut, chainId, env);
139
- }
140
-
141
- const publicClient = makePublicClient({ chainId, rpcUrl, env });
142
- const walletClient = makeWalletClient({ provider, chainId });
143
-
144
- // Get adapter contract for tokenIn (BTC.b)
145
- const adapterContractInfo = await getTokenContractInfo(
146
- tokenIn,
147
- chainId,
148
- env,
149
- AddressKind.Adapter,
150
- );
151
-
152
- // Get token contract for tokenIn to check balance and approve
153
- const tokenInContractInfo = await getTokenContractInfo(
154
- tokenIn,
155
- chainId,
156
- env,
157
- AddressKind.Token,
158
- );
159
-
160
- // Get token contract for tokenOut to pass to AssetRouter
161
- const tokenOutContractInfo = await getTokenContractInfo(
162
- tokenOut,
163
- chainId,
164
- env,
165
- AddressKind.Token,
166
- );
167
-
168
- const IN = await retrieveTokenProperties(publicClient, tokenInContractInfo);
169
- if (!IN) {
170
- throw new Error(
171
- `Could not retrieve the properties of ${tokenIn} on ${chainId}`,
172
- );
173
- }
174
-
175
- // Get AssetRouter address from adapter contract
176
- const assetRouterAddress = (await publicClient.readContract({
177
- address: adapterContractInfo.address,
178
- abi: adapterContractInfo.abi,
179
- functionName: 'getAssetRouter',
180
- })) as Address;
181
-
182
- const amount = BigNumber(amountRaw);
183
- const amountBigInt = toBigInt(toBaseDenomination(amount, IN.decimals));
184
-
185
- // Check token balance
186
- const tokenInBalanceRaw = await publicClient.readContract({
187
- address: IN.address,
188
- abi: IN.abi,
189
- functionName: 'balanceOf',
190
- args: [accountAddress],
191
- });
192
- const tokenInBalance = fromBaseDenomination(tokenInBalanceRaw, IN.decimals);
193
-
194
- if (amount.isGreaterThan(tokenInBalance)) {
195
- throw new Error(
196
- `Unable to deposit ${amount.toString()} ${IN.symbol} because the amount exceeds the account's balance of ${tokenInBalance.toString()} ${IN.symbol}`,
197
- );
198
- }
199
-
200
- // const isAvalanche =
201
- // chainId === ChainId.avalanche || chainId === ChainId.avalancheFuji;
202
-
203
- // Call deposit on AssetRouter
204
- const hash = await walletClient.writeContract({
205
- address: assetRouterAddress,
206
- abi: ASSET_ROUTER_ABI,
207
- chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],
208
- functionName: 'deposit',
209
- args: [accountAddress, tokenOutContractInfo.address, amountBigInt],
210
- account: accountAddress,
211
- });
212
-
213
- return hash;
214
- }
@@ -1 +0,0 @@
1
- export * from './depositToken';