@lombard.finance/sdk 4.7.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/CHANGELOG.md +91 -2
  2. package/README.md +22 -21
  3. package/dist/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.d.ts.map +1 -1
  4. package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.d.ts.map +1 -1
  5. package/dist/api.cjs +1 -1
  6. package/dist/api.js +5 -5
  7. package/dist/bridge.cjs +1 -1
  8. package/dist/bridge.js +1 -1
  9. package/dist/btc.cjs +1 -1
  10. package/dist/btc.js +2 -2
  11. package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts.map +1 -1
  12. package/dist/chains/btc/actions/deposit/config/evm.d.ts.map +1 -1
  13. package/dist/chains/btc/actions/deposit/config/solana.d.ts.map +1 -1
  14. package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts.map +1 -1
  15. package/dist/chains/btc/actions/depositAndDeploy/types.d.ts.map +1 -1
  16. package/dist/chains/btc/actions/stake/BtcStake.d.ts.map +1 -1
  17. package/dist/chains/btc/actions/stake/config/evm.d.ts.map +1 -1
  18. package/dist/chains/btc/actions/stake/config/solana.d.ts.map +1 -1
  19. package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts.map +1 -1
  20. package/dist/chains/btc/actions/stakeAndDeploy/types.d.ts.map +1 -1
  21. package/dist/chains/btc/client/getCurrentBlockHeight.d.ts.map +1 -1
  22. package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts +19 -4
  23. package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts.map +1 -1
  24. package/dist/chains/evm/actions/deploy/index.d.ts.map +1 -1
  25. package/dist/chains/evm/actions/deploy/types.d.ts.map +1 -1
  26. package/dist/chains/evm/actions/deposit/config/evm.d.ts.map +1 -1
  27. package/dist/chains/evm/actions/deposit/index.d.ts.map +1 -1
  28. package/dist/chains/evm/actions/redeem/EvmRedeem.d.ts.map +1 -1
  29. package/dist/chains/evm/actions/redeem/config/evm.d.ts.map +1 -1
  30. package/dist/chains/evm/actions/redeem/index.d.ts.map +1 -1
  31. package/dist/chains/evm/actions/redeem/types.d.ts.map +1 -1
  32. package/dist/chains/evm/actions/stake/config/index.d.ts.map +1 -1
  33. package/dist/chains/evm/actions/stake/config/types.d.ts.map +1 -1
  34. package/dist/chains/evm/actions/stake/index.d.ts.map +1 -1
  35. package/dist/chains/evm/actions/stake/types.d.ts.map +1 -1
  36. package/dist/chains/evm/actions/unstake/EvmUnstake.d.ts.map +1 -1
  37. package/dist/chains/evm/actions/unstake/index.d.ts.map +1 -1
  38. package/dist/chains/evm/actions/unstake/types.d.ts.map +1 -1
  39. package/dist/chains/evm/actions/withdraw/EvmCancelWithdraw.d.ts.map +1 -1
  40. package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts +6 -0
  41. package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts.map +1 -1
  42. package/dist/chains/evm/actions/withdraw/config/types.d.ts.map +1 -1
  43. package/dist/chains/evm/actions/withdraw/types.d.ts.map +1 -1
  44. package/dist/chains/solana/SolanaActions.d.ts.map +1 -1
  45. package/dist/chains/solana/actions/redeem/SolanaRedeem.d.ts.map +1 -1
  46. package/dist/chains/solana/actions/redeem/types.d.ts.map +1 -1
  47. package/dist/chains/solana/actions/stake/SolanaStake.d.ts.map +1 -1
  48. package/dist/chains/solana/actions/stake/types.d.ts.map +1 -1
  49. package/dist/chains/solana/actions/unstake/SolanaUnstake.d.ts.map +1 -1
  50. package/dist/chains/solana/actions/unstake/factory.d.ts.map +1 -1
  51. package/dist/chains/solana/actions/unstake/types.d.ts.map +1 -1
  52. package/dist/chains/solana/utils.d.ts.map +1 -1
  53. package/dist/chains/starknet/actions/unstake/config/index.d.ts.map +1 -1
  54. package/dist/chains/starknet/actions/unstake/factory.d.ts.map +1 -1
  55. package/dist/chains/starknet/actions/unstake/types.d.ts.map +1 -1
  56. package/dist/chains/sui/actions/unstake/config/index.d.ts.map +1 -1
  57. package/dist/chains/sui/actions/unstake/factory.d.ts.map +1 -1
  58. package/dist/chains/sui/actions/unstake/types.d.ts.map +1 -1
  59. package/dist/chunks/{BtcActions-BczTnzRn.js → BtcActions-CFGiDxtv.js} +20 -22
  60. package/dist/chunks/BtcActions-CFGiDxtv.js.map +1 -0
  61. package/dist/chunks/BtcActions-DJJmmyzi.cjs +2 -0
  62. package/dist/chunks/BtcActions-DJJmmyzi.cjs.map +1 -0
  63. package/dist/chunks/EvmActions-CUKBeiUw.js +1508 -0
  64. package/dist/chunks/EvmActions-CUKBeiUw.js.map +1 -0
  65. package/dist/chunks/EvmActions-CxipDb7X.cjs +7 -0
  66. package/dist/chunks/EvmActions-CxipDb7X.cjs.map +1 -0
  67. package/dist/chunks/{ReferralsClient-W-0-383w.js → ReferralsClient-BRa26dYS.js} +4 -4
  68. package/dist/chunks/ReferralsClient-BRa26dYS.js.map +1 -0
  69. package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs → ReferralsClient-o-3AUm7s.cjs} +2 -2
  70. package/dist/chunks/ReferralsClient-o-3AUm7s.cjs.map +1 -0
  71. package/dist/chunks/{approveLBTC-BMC4cZEk.cjs → approveLBTC-BBl3KcT2.cjs} +2 -2
  72. package/dist/chunks/{approveLBTC-BMC4cZEk.cjs.map → approveLBTC-BBl3KcT2.cjs.map} +1 -1
  73. package/dist/chunks/{approveLBTC-BkdT1N3V.js → approveLBTC-DnCt6ZZF.js} +3 -3
  74. package/dist/chunks/{approveLBTC-BkdT1N3V.js.map → approveLBTC-DnCt6ZZF.js.map} +1 -1
  75. package/dist/chunks/{blockchain-identifier-BLPnwbIN.js → blockchain-identifier-BkASqCgZ.js} +2 -2
  76. package/dist/chunks/blockchain-identifier-BkASqCgZ.js.map +1 -0
  77. package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs → blockchain-identifier-DWfC3Es2.cjs} +2 -2
  78. package/dist/chunks/blockchain-identifier-DWfC3Es2.cjs.map +1 -0
  79. package/dist/chunks/{bridge-DbB23m2a.js → bridge-DV4fOcHe.js} +4 -4
  80. package/dist/chunks/bridge-DV4fOcHe.js.map +1 -0
  81. package/dist/chunks/{bridge-7Eq_Jmi2.cjs → bridge-DZp5x4Yb.cjs} +2 -2
  82. package/dist/chunks/bridge-DZp5x4Yb.cjs.map +1 -0
  83. package/dist/chunks/{config-ow9X5H0c.cjs → config-BfX8lrdO.cjs} +2 -2
  84. package/dist/chunks/config-BfX8lrdO.cjs.map +1 -0
  85. package/dist/chunks/{config-C8BfN_9P.js → config-wnjPtnjd.js} +46 -53
  86. package/dist/chunks/config-wnjPtnjd.js.map +1 -0
  87. package/dist/chunks/{defi-registry-B8V6dRVB.cjs → defi-registry-CyMKVT3z.cjs} +2 -2
  88. package/dist/chunks/defi-registry-CyMKVT3z.cjs.map +1 -0
  89. package/dist/chunks/{defi-registry-CD8EUcNu.js → defi-registry-DULXbu3D.js} +9 -9
  90. package/dist/chunks/defi-registry-DULXbu3D.js.map +1 -0
  91. package/dist/chunks/{depositStatus-BJA7tNqc.cjs → depositStatus-B9P1YXEU.cjs} +2 -2
  92. package/dist/chunks/depositStatus-B9P1YXEU.cjs.map +1 -0
  93. package/dist/chunks/{depositStatus-HosfExLl.js → depositStatus-Cgd_GDUt.js} +5 -5
  94. package/dist/chunks/depositStatus-Cgd_GDUt.js.map +1 -0
  95. package/dist/chunks/events-B9b3YdgM.cjs +2 -0
  96. package/dist/chunks/events-B9b3YdgM.cjs.map +1 -0
  97. package/dist/chunks/{events-BlzP_SCT.js → events-DU2wYlt_.js} +189 -191
  98. package/dist/chunks/events-DU2wYlt_.js.map +1 -0
  99. package/dist/chunks/{get-exchange-ratio-Bl6pt546.js → get-exchange-ratio-BvPUfcIQ.js} +2 -2
  100. package/dist/chunks/{get-exchange-ratio-Bl6pt546.js.map → get-exchange-ratio-BvPUfcIQ.js.map} +1 -1
  101. package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs → get-exchange-ratio-DGztGO7i.cjs} +2 -2
  102. package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs.map → get-exchange-ratio-DGztGO7i.cjs.map} +1 -1
  103. package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs → get-positions-summary-CC7BDtlY.cjs} +2 -2
  104. package/dist/chunks/get-positions-summary-CC7BDtlY.cjs.map +1 -0
  105. package/dist/chunks/{get-positions-summary-CaX2BCHp.js → get-positions-summary-DxAgmaMl.js} +2 -2
  106. package/dist/chunks/get-positions-summary-DxAgmaMl.js.map +1 -0
  107. package/dist/chunks/get-vault-tvl-B6rSrGi_.js +203 -0
  108. package/dist/chunks/get-vault-tvl-B6rSrGi_.js.map +1 -0
  109. package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs +2 -0
  110. package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs.map +1 -0
  111. package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs +2 -0
  112. package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs.map +1 -0
  113. package/dist/chunks/get-vault-withdrawals-W5CgNbqE.js +154 -0
  114. package/dist/chunks/get-vault-withdrawals-W5CgNbqE.js.map +1 -0
  115. package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js → getUserStakeAndBakeSignature-BRhWFYyY.js} +4 -4
  116. package/dist/chunks/getUserStakeAndBakeSignature-BRhWFYyY.js.map +1 -0
  117. package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs → getUserStakeAndBakeSignature-VlC_GHmz.cjs} +2 -2
  118. package/dist/chunks/getUserStakeAndBakeSignature-VlC_GHmz.cjs.map +1 -0
  119. package/dist/chunks/hex-BiCL4CPh.js +11 -0
  120. package/dist/chunks/hex-BiCL4CPh.js.map +1 -0
  121. package/dist/chunks/hex-DeJtv8eu.cjs +2 -0
  122. package/dist/chunks/hex-DeJtv8eu.cjs.map +1 -0
  123. package/dist/chunks/{lbtc-addresses-BlyGFWnW.js → lbtc-addresses-ClXt-tuB.js} +2 -2
  124. package/dist/chunks/{lbtc-addresses-BlyGFWnW.js.map → lbtc-addresses-ClXt-tuB.js.map} +1 -1
  125. package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs → lbtc-addresses-D3jG1VUC.cjs} +2 -2
  126. package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs.map → lbtc-addresses-D3jG1VUC.cjs.map} +1 -1
  127. package/dist/chunks/parameters-CcpaKGU2.js +24 -0
  128. package/dist/chunks/parameters-CcpaKGU2.js.map +1 -0
  129. package/dist/chunks/parameters-YNWmaAho.cjs +2 -0
  130. package/dist/chunks/parameters-YNWmaAho.cjs.map +1 -0
  131. package/dist/chunks/{statusConstants-BJIXJNIC.cjs → statusConstants-B-7VEYgO.cjs} +2 -2
  132. package/dist/chunks/statusConstants-B-7VEYgO.cjs.map +1 -0
  133. package/dist/chunks/{statusConstants-BQna5LGH.js → statusConstants-C3JHNUTC.js} +15 -17
  134. package/dist/chunks/statusConstants-C3JHNUTC.js.map +1 -0
  135. package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js → storeNetworkFeeSignature-CY_Z-Wtn.js} +2 -2
  136. package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js.map → storeNetworkFeeSignature-CY_Z-Wtn.js.map} +1 -1
  137. package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs → storeNetworkFeeSignature-DJgBfZp7.cjs} +2 -2
  138. package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs.map → storeNetworkFeeSignature-DJgBfZp7.cjs.map} +1 -1
  139. package/dist/chunks/token-addresses-C7H9E4qz.cjs +2 -0
  140. package/dist/chunks/token-addresses-C7H9E4qz.cjs.map +1 -0
  141. package/dist/chunks/{token-addresses-Ddar0FyS.js → token-addresses-DVnRPyu4.js} +16 -14
  142. package/dist/chunks/token-addresses-DVnRPyu4.js.map +1 -0
  143. package/dist/chunks/{tokens-HhVpKe3K.js → tokens-Btl3GXbc.js} +3 -3
  144. package/dist/chunks/tokens-Btl3GXbc.js.map +1 -0
  145. package/dist/chunks/{tokens-CBsz6l_2.cjs → tokens-DEYY7W7O.cjs} +2 -2
  146. package/dist/chunks/tokens-DEYY7W7O.cjs.map +1 -0
  147. package/dist/chunks/unwrapBtceToLbtcv-C4OxoVVU.js +321 -0
  148. package/dist/chunks/unwrapBtceToLbtcv-C4OxoVVU.js.map +1 -0
  149. package/dist/chunks/unwrapBtceToLbtcv-Dg-yUGpg.cjs +2 -0
  150. package/dist/chunks/unwrapBtceToLbtcv-Dg-yUGpg.cjs.map +1 -0
  151. package/dist/chunks/withdrawEarn-CTtVruit.cjs +7 -0
  152. package/dist/chunks/withdrawEarn-CTtVruit.cjs.map +1 -0
  153. package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js → withdrawEarn-QFaMhs0t.js} +965 -612
  154. package/dist/chunks/withdrawEarn-QFaMhs0t.js.map +1 -0
  155. package/dist/client/ApiNamespace.d.ts +3 -6
  156. package/dist/client/ApiNamespace.d.ts.map +1 -1
  157. package/dist/common/blockchain-identifier.d.ts.map +1 -1
  158. package/dist/common/chains.d.ts +1 -1
  159. package/dist/common/chains.d.ts.map +1 -1
  160. package/dist/common/feature-config.d.ts.map +1 -1
  161. package/dist/contract-functions/cancelEarnWithdrawal/cancelEarnWithdrawal.d.ts +19 -0
  162. package/dist/contract-functions/cancelEarnWithdrawal/cancelEarnWithdrawal.d.ts.map +1 -0
  163. package/dist/contract-functions/cancelEarnWithdrawal/index.d.ts +2 -0
  164. package/dist/contract-functions/cancelEarnWithdrawal/index.d.ts.map +1 -0
  165. package/dist/contract-functions/depositEarn/depositEarn.d.ts +36 -0
  166. package/dist/contract-functions/depositEarn/depositEarn.d.ts.map +1 -0
  167. package/dist/contract-functions/depositEarn/index.d.ts +2 -0
  168. package/dist/contract-functions/depositEarn/index.d.ts.map +1 -0
  169. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
  170. package/dist/contract-functions/getEarnPosition/getEarnPosition.d.ts +17 -16
  171. package/dist/contract-functions/getEarnPosition/getEarnPosition.d.ts.map +1 -1
  172. package/dist/contract-functions/getShareValue/getShareValue.d.ts +5 -15
  173. package/dist/contract-functions/getShareValue/getShareValue.d.ts.map +1 -1
  174. package/dist/contract-functions/getSharesByAddress/getSharesByAddress.d.ts +5 -20
  175. package/dist/contract-functions/getSharesByAddress/getSharesByAddress.d.ts.map +1 -1
  176. package/dist/contract-functions/index.d.ts +4 -2
  177. package/dist/contract-functions/index.d.ts.map +1 -1
  178. package/dist/contract-functions/previewWithdrawEarn/index.d.ts +2 -0
  179. package/dist/contract-functions/previewWithdrawEarn/index.d.ts.map +1 -0
  180. package/dist/contract-functions/previewWithdrawEarn/previewWithdrawEarn.d.ts +38 -0
  181. package/dist/contract-functions/previewWithdrawEarn/previewWithdrawEarn.d.ts.map +1 -0
  182. package/dist/contract-functions/signStakeAndBake/validation.d.ts.map +1 -1
  183. package/dist/contract-functions/withdrawEarn/index.d.ts +2 -0
  184. package/dist/contract-functions/withdrawEarn/index.d.ts.map +1 -0
  185. package/dist/contract-functions/withdrawEarn/withdrawEarn.d.ts +46 -0
  186. package/dist/contract-functions/withdrawEarn/withdrawEarn.d.ts.map +1 -0
  187. package/dist/contract-functions/wrapToBtce/wrapToBtce.d.ts.map +1 -1
  188. package/dist/contracts.cjs +1 -1
  189. package/dist/contracts.js +32 -30
  190. package/dist/core/assets/catalog.d.ts.map +1 -1
  191. package/dist/core/assets/utils.d.ts.map +1 -1
  192. package/dist/core/chains/utils.d.ts.map +1 -1
  193. package/dist/core.cjs +1 -1
  194. package/dist/core.js +19 -19
  195. package/dist/defi/defi-registry.d.ts.map +1 -1
  196. package/dist/defi/index.d.ts +1 -1
  197. package/dist/defi/index.d.ts.map +1 -1
  198. package/dist/defi.cjs +1 -1
  199. package/dist/defi.js +4 -4
  200. package/dist/entries/api.d.ts +14 -14
  201. package/dist/entries/api.d.ts.map +1 -1
  202. package/dist/entries/contracts.d.ts +4 -2
  203. package/dist/entries/contracts.d.ts.map +1 -1
  204. package/dist/entries/defi.d.ts +1 -1
  205. package/dist/entries/defi.d.ts.map +1 -1
  206. package/dist/entries/evm.d.ts +7 -7
  207. package/dist/entries/evm.d.ts.map +1 -1
  208. package/dist/entries/utils.d.ts +9 -9
  209. package/dist/entries/utils.d.ts.map +1 -1
  210. package/dist/entries/vaults.d.ts +1 -1
  211. package/dist/entries/vaults.d.ts.map +1 -1
  212. package/dist/evm.cjs +1 -1
  213. package/dist/evm.js +4 -4
  214. package/dist/index.cjs +1 -1
  215. package/dist/index.d.ts +67 -65
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +171 -174
  218. package/dist/index.js.map +1 -1
  219. package/dist/metrics.cjs +1 -1
  220. package/dist/metrics.js +1 -1
  221. package/dist/services/EvmService.d.ts.map +1 -1
  222. package/dist/shared/actions/BaseAction.d.ts.map +1 -1
  223. package/dist/shared/deposits/depositStatus.d.ts.map +1 -1
  224. package/dist/shared/validation/index.d.ts.map +1 -1
  225. package/dist/tokens/tokens.d.ts.map +1 -1
  226. package/dist/utils/chain.d.ts.map +1 -1
  227. package/dist/utils/consoleLogger.d.ts.map +1 -1
  228. package/dist/utils.cjs +1 -1
  229. package/dist/utils.js +16 -16
  230. package/dist/vaults/index.d.ts +8 -10
  231. package/dist/vaults/index.d.ts.map +1 -1
  232. package/dist/vaults/lib/config.d.ts +148 -150
  233. package/dist/vaults/lib/config.d.ts.map +1 -1
  234. package/dist/vaults/lib/metrics/get-vault-apy.d.ts +2 -4
  235. package/dist/vaults/lib/metrics/get-vault-apy.d.ts.map +1 -1
  236. package/dist/vaults/lib/metrics/get-vault-points.d.ts +2 -5
  237. package/dist/vaults/lib/metrics/get-vault-points.d.ts.map +1 -1
  238. package/dist/vaults/lib/metrics/get-vault-tvl.d.ts +5 -8
  239. package/dist/vaults/lib/metrics/get-vault-tvl.d.ts.map +1 -1
  240. package/dist/vaults/lib/ops/deposit.d.ts +5 -14
  241. package/dist/vaults/lib/ops/deposit.d.ts.map +1 -1
  242. package/dist/vaults/lib/ops/get-vault-deposits.d.ts +9 -13
  243. package/dist/vaults/lib/ops/get-vault-deposits.d.ts.map +1 -1
  244. package/dist/vaults/lib/ops/get-vault-minimum-deposit.d.ts +4 -7
  245. package/dist/vaults/lib/ops/get-vault-minimum-deposit.d.ts.map +1 -1
  246. package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts +14 -18
  247. package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts.map +1 -1
  248. package/dist/vaults/lib/ops/preview-vault-deposit.d.ts +4 -8
  249. package/dist/vaults/lib/ops/preview-vault-deposit.d.ts.map +1 -1
  250. package/dist/vaults/lib/ops/withdraw.d.ts +11 -27
  251. package/dist/vaults/lib/ops/withdraw.d.ts.map +1 -1
  252. package/dist/vaults.cjs +1 -1
  253. package/dist/vaults.cjs.map +1 -1
  254. package/dist/vaults.js +91 -103
  255. package/dist/vaults.js.map +1 -1
  256. package/package.json +1 -1
  257. package/dist/chunks/BtcActions-BczTnzRn.js.map +0 -1
  258. package/dist/chunks/BtcActions-PyJhuiZN.cjs +0 -2
  259. package/dist/chunks/BtcActions-PyJhuiZN.cjs.map +0 -1
  260. package/dist/chunks/EvmActions-D3RAK9_Z.cjs +0 -2
  261. package/dist/chunks/EvmActions-D3RAK9_Z.cjs.map +0 -1
  262. package/dist/chunks/EvmActions-DSKThOAy.js +0 -1341
  263. package/dist/chunks/EvmActions-DSKThOAy.js.map +0 -1
  264. package/dist/chunks/ReferralsClient-D8dHEk_X.cjs.map +0 -1
  265. package/dist/chunks/ReferralsClient-W-0-383w.js.map +0 -1
  266. package/dist/chunks/blockchain-identifier-BLPnwbIN.js.map +0 -1
  267. package/dist/chunks/blockchain-identifier-Bp-LTIdG.cjs.map +0 -1
  268. package/dist/chunks/bridge-7Eq_Jmi2.cjs.map +0 -1
  269. package/dist/chunks/bridge-DbB23m2a.js.map +0 -1
  270. package/dist/chunks/config-C8BfN_9P.js.map +0 -1
  271. package/dist/chunks/config-ow9X5H0c.cjs.map +0 -1
  272. package/dist/chunks/defi-registry-B8V6dRVB.cjs.map +0 -1
  273. package/dist/chunks/defi-registry-CD8EUcNu.js.map +0 -1
  274. package/dist/chunks/depositStatus-BJA7tNqc.cjs.map +0 -1
  275. package/dist/chunks/depositStatus-HosfExLl.js.map +0 -1
  276. package/dist/chunks/events-BlzP_SCT.js.map +0 -1
  277. package/dist/chunks/events-DNehj45M.cjs +0 -2
  278. package/dist/chunks/events-DNehj45M.cjs.map +0 -1
  279. package/dist/chunks/get-positions-summary-CaX2BCHp.js.map +0 -1
  280. package/dist/chunks/get-positions-summary-DdZvBmCN.cjs.map +0 -1
  281. package/dist/chunks/get-vault-tvl-CihHEkqK.js +0 -226
  282. package/dist/chunks/get-vault-tvl-CihHEkqK.js.map +0 -1
  283. package/dist/chunks/get-vault-tvl-DZ-xzehy.cjs +0 -2
  284. package/dist/chunks/get-vault-tvl-DZ-xzehy.cjs.map +0 -1
  285. package/dist/chunks/get-vault-withdrawals-DLwFMQEB.cjs +0 -2
  286. package/dist/chunks/get-vault-withdrawals-DLwFMQEB.cjs.map +0 -1
  287. package/dist/chunks/get-vault-withdrawals-QJOdxB5Z.js +0 -161
  288. package/dist/chunks/get-vault-withdrawals-QJOdxB5Z.js.map +0 -1
  289. package/dist/chunks/getUserStakeAndBakeSignature-BmY5j0OM.cjs.map +0 -1
  290. package/dist/chunks/getUserStakeAndBakeSignature-CqlrwA0t.js.map +0 -1
  291. package/dist/chunks/parameters-C_16L5ft.js +0 -11
  292. package/dist/chunks/parameters-C_16L5ft.js.map +0 -1
  293. package/dist/chunks/parameters-DK9cYCAH.cjs +0 -2
  294. package/dist/chunks/parameters-DK9cYCAH.cjs.map +0 -1
  295. package/dist/chunks/statusConstants-BJIXJNIC.cjs.map +0 -1
  296. package/dist/chunks/statusConstants-BQna5LGH.js.map +0 -1
  297. package/dist/chunks/time-I-BeyUkG.cjs +0 -2
  298. package/dist/chunks/time-I-BeyUkG.cjs.map +0 -1
  299. package/dist/chunks/time-Sa5gggPG.js +0 -24
  300. package/dist/chunks/time-Sa5gggPG.js.map +0 -1
  301. package/dist/chunks/token-addresses-Ddar0FyS.js.map +0 -1
  302. package/dist/chunks/token-addresses-DvY-Mw7b.cjs +0 -2
  303. package/dist/chunks/token-addresses-DvY-Mw7b.cjs.map +0 -1
  304. package/dist/chunks/tokens-CBsz6l_2.cjs.map +0 -1
  305. package/dist/chunks/tokens-HhVpKe3K.js.map +0 -1
  306. package/dist/chunks/unstakeLBTC-Bg8OsAMV.js.map +0 -1
  307. package/dist/chunks/unstakeLBTC-BmHvDxBN.cjs +0 -2
  308. package/dist/chunks/unstakeLBTC-BmHvDxBN.cjs.map +0 -1
  309. package/dist/chunks/withdraw-Bkp5-2dG.cjs +0 -12
  310. package/dist/chunks/withdraw-Bkp5-2dG.cjs.map +0 -1
  311. package/dist/chunks/withdraw-kf8mYbYH.js +0 -209
  312. package/dist/chunks/withdraw-kf8mYbYH.js.map +0 -1
  313. package/dist/chunks/wrapToBtce-By2mh503.js +0 -298
  314. package/dist/chunks/wrapToBtce-By2mh503.js.map +0 -1
  315. package/dist/chunks/wrapToBtce-DDeIlv3d.cjs +0 -2
  316. package/dist/chunks/wrapToBtce-DDeIlv3d.cjs.map +0 -1
  317. package/dist/contract-functions/getShareValue/index.d.ts +0 -2
  318. package/dist/contract-functions/getShareValue/index.d.ts.map +0 -1
  319. package/dist/contract-functions/getSharesByAddress/index.d.ts +0 -2
  320. package/dist/contract-functions/getSharesByAddress/index.d.ts.map +0 -1
@@ -3,20 +3,19 @@ import { Address, Hash } from 'viem';
3
3
  import { ChainId } from '../../../common/chains';
4
4
  import { IEnvParam } from '../../../common/parameters';
5
5
  import { TokenInfo } from '../../../tokens/tokens';
6
- import { Vault, VedaVaultChain } from '../config';
7
- export type GetVaultDepositsParameters = IEnvParam & {
6
+ import { EarnChain } from '../config';
7
+ export type GetEarnDepositsParameters = IEnvParam & {
8
8
  account: Address;
9
9
  chainId: ChainId;
10
- vaultKey?: Vault;
11
10
  rpcUrl?: string;
12
11
  };
13
- export type VaultDeposit = {
12
+ export type EarnDeposit = {
14
13
  /** The transaction hash */
15
14
  txHash: Hash;
16
15
  /** The transaction's block number */
17
16
  blockNumber: number;
18
17
  /** The chain id */
19
- chainId: VedaVaultChain;
18
+ chainId: EarnChain;
20
19
  /** The deposited amount */
21
20
  amount: BigNumber;
22
21
  /** The amount of shares received */
@@ -31,15 +30,13 @@ export type VaultDeposit = {
31
30
  * @param parameters - The parameters.
32
31
  * @param parameters.account - The account address.
33
32
  * @param parameters.chainId - The chain id.
34
- * @param parameters.vaultKey - The optional vault identifier.
35
33
  * @param parameters.rpcUrl - The optional RPC url.
36
34
  *
37
- * @returns {Promise<VaultDeposit[]>}
35
+ * @returns {Promise<EarnDeposit[]>}
38
36
  */
39
- export declare function getVaultDeposits({ account, chainId, vaultKey, rpcUrl, env, }: GetVaultDepositsParameters): Promise<VaultDeposit[]>;
40
- export type GetVaultDepositsAllChainsParameters = {
37
+ export declare function getEarnDeposits({ account, chainId, rpcUrl, env, }: GetEarnDepositsParameters): Promise<EarnDeposit[]>;
38
+ export type GetEarnDepositsAllChainsParameters = {
41
39
  account: Address;
42
- vaultKey?: Vault;
43
40
  rpcUrl?: string;
44
41
  };
45
42
  /**
@@ -48,10 +45,9 @@ export type GetVaultDepositsAllChainsParameters = {
48
45
  *
49
46
  * @param parameters - The parameters.
50
47
  * @param parameters.account - The account address.
51
- * @param parameters.vaultKey - The optional vault identifier (defaults to Veda).
52
48
  * @param parameters.rpcUrl - The optional RPC url.
53
49
  *
54
- * @returns {Promise<VaultDeposit[]>} All deposits across all supported chains, sorted by block number (newest first)
50
+ * @returns {Promise<EarnDeposit[]>} All deposits across all supported chains, sorted by block number (newest first)
55
51
  */
56
- export declare function getVaultDepositsAllChains({ account, vaultKey, rpcUrl, }: GetVaultDepositsAllChainsParameters): Promise<VaultDeposit[]>;
52
+ export declare function getEarnDepositsAllChains({ account, rpcUrl, }: GetEarnDepositsAllChainsParameters): Promise<EarnDeposit[]>;
57
53
  //# sourceMappingURL=get-vault-deposits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vault-deposits.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-deposits.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,KAAK,EAGL,cAAc,EACf,MAAM,WAAW,CAAC;AA4CnB,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,2BAA2B;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,SAAS,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,QAAqB,EACrB,MAAM,EACN,GAAG,GACJ,EAAE,0BAA0B,2BA6D5B;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAAC,EAC9C,OAAO,EACP,QAAqB,EACrB,MAAM,GACP,EAAE,mCAAmC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmB/D"}
1
+ {"version":3,"file":"get-vault-deposits.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-deposits.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAGV,MAAM,WAAW,CAAC;AA4CnB,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,2BAA2B;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,SAAS,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,yBAAyB,0BAyD3B;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,MAAM,GACP,EAAE,kCAAkC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAe7D"}
@@ -2,10 +2,7 @@ import { Env } from '@lombard.finance/sdk-common';
2
2
  import BigNumber from 'bignumber.js';
3
3
  import { ChainId } from '../../../common/chains';
4
4
  import { Token } from '../../../tokens/token-addresses';
5
- import { Vault } from '../config';
6
- export type GetVaultMinimumDepositParameters = {
7
- /** The vault identifier. */
8
- vaultKey: Vault;
5
+ export type GetEarnMinimumDepositParameters = {
9
6
  /** The deposit token. Defaults to LBTC. */
10
7
  token?: Token;
11
8
  /** The chain where the deposit will be made. Defaults to Ethereum. */
@@ -24,9 +21,9 @@ export type GetVaultMinimumDepositParameters = {
24
21
  *
25
22
  * @example
26
23
  * ```ts
27
- * const min = await getVaultMinimumDeposit({ vaultKey: Vault.Veda });
28
- * // BigNumber(0.00000002) 2 satoshis at current rates
24
+ * const min = await getEarnMinimumDeposit();
25
+ * // BigNumber(0.00000002), 2 satoshis at current rates
29
26
  * ```
30
27
  */
31
- export declare function getVaultMinimumDeposit({ vaultKey, token, chainId, rpcUrl, env, }: GetVaultMinimumDepositParameters): Promise<BigNumber>;
28
+ export declare function getEarnMinimumDeposit({ token, chainId, rpcUrl, env, }?: GetEarnMinimumDepositParameters): Promise<BigNumber>;
32
29
  //# sourceMappingURL=get-vault-minimum-deposit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vault-minimum-deposit.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-minimum-deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAGxD,OAAO,EAAoB,KAAK,EAAU,MAAM,WAAW,CAAC;AAE5D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,4BAA4B;IAC5B,QAAQ,EAAE,KAAK,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,QAAQ,EACR,KAAkB,EAClB,OAA0B,EAC1B,MAAM,EACN,GAAG,GACJ,EAAE,gCAAgC,GAAG,OAAO,CAAC,SAAS,CAAC,CA0IvD"}
1
+ {"version":3,"file":"get-vault-minimum-deposit.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-minimum-deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAKxD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,KAAkB,EAClB,OAA0B,EAC1B,MAAM,EACN,GAAG,GACJ,GAAE,+BAAoC,GAAG,OAAO,CAAC,SAAS,CAAC,CAsI3D"}
@@ -3,14 +3,13 @@ import { Address, Hash } from 'viem';
3
3
  import { ChainId } from '../../../common/chains';
4
4
  import { IEnvParam } from '../../../common/parameters';
5
5
  import { TokenInfo } from '../../../tokens/tokens';
6
- import { Vault, VedaVaultChain } from '../config';
7
- export type GetVaultWithdrawalsParameters = IEnvParam & {
6
+ import { EarnChain } from '../config';
7
+ export type GetEarnWithdrawalsParameters = IEnvParam & {
8
8
  account: Address;
9
9
  chainId: ChainId;
10
- vaultKey?: Vault;
11
10
  rpcUrl?: string;
12
11
  };
13
- export type VaultWithdrawal = {
12
+ export type EarnWithdrawal = {
14
13
  token?: Omit<TokenInfo, 'abi'>;
15
14
  /** The amount of shares withdrawn */
16
15
  shareAmount: BigNumber;
@@ -33,30 +32,28 @@ export type VaultWithdrawal = {
33
32
  /** The fulfilment block number */
34
33
  fulfilledBlockNumber?: number;
35
34
  /** The chain id */
36
- chainId?: VedaVaultChain;
35
+ chainId?: EarnChain;
37
36
  /** The user wallet address that made the withdrawal */
38
37
  toAddress?: Address;
39
38
  };
40
- export type VaultWithdrawals = {
41
- cancelled: VaultWithdrawal[];
42
- expired: VaultWithdrawal[];
43
- fulfilled: VaultWithdrawal[];
44
- open: VaultWithdrawal[];
39
+ export type EarnWithdrawals = {
40
+ cancelled: EarnWithdrawal[];
41
+ expired: EarnWithdrawal[];
42
+ fulfilled: EarnWithdrawal[];
43
+ open: EarnWithdrawal[];
45
44
  };
46
45
  /**
47
46
  * Retrieves the withdrawals made by specified address.
48
47
  * @param parameters - The parameters.
49
48
  * @param parameters.account - The account address.
50
49
  * @param parameters.chainId - The chain id.
51
- * @param parameters.vaultKey - The optional vault identifier.
52
50
  * @param parameters.rpcUrl - The optional RPC url.
53
51
  *
54
- * @returns {Promise<VaultWithdrawals>}
52
+ * @returns {Promise<EarnWithdrawals>}
55
53
  */
56
- export declare function getVaultWithdrawals({ account, chainId, vaultKey, rpcUrl, env, }: GetVaultWithdrawalsParameters): Promise<VaultWithdrawals>;
57
- export type GetVaultWithdrawalsAllChainsParameters = {
54
+ export declare function getEarnWithdrawals({ account, chainId, rpcUrl, env, }: GetEarnWithdrawalsParameters): Promise<EarnWithdrawals>;
55
+ export type GetEarnWithdrawalsAllChainsParameters = {
58
56
  account: Address;
59
- vaultKey?: Vault;
60
57
  rpcUrl?: string;
61
58
  };
62
59
  /**
@@ -65,10 +62,9 @@ export type GetVaultWithdrawalsAllChainsParameters = {
65
62
  *
66
63
  * @param parameters - The parameters.
67
64
  * @param parameters.account - The account address.
68
- * @param parameters.vaultKey - The optional vault identifier (defaults to Veda).
69
65
  * @param parameters.rpcUrl - The optional RPC url.
70
66
  *
71
- * @returns {Promise<VaultWithdrawals>} All withdrawals across all supported chains, categorized and sorted
67
+ * @returns {Promise<EarnWithdrawals>} All withdrawals across all supported chains, categorized and sorted
72
68
  */
73
- export declare function getVaultWithdrawalsAllChains({ account, vaultKey, rpcUrl, }: GetVaultWithdrawalsAllChainsParameters): Promise<VaultWithdrawals>;
69
+ export declare function getEarnWithdrawalsAllChains({ account, rpcUrl, }: GetEarnWithdrawalsAllChainsParameters): Promise<EarnWithdrawals>;
74
70
  //# sourceMappingURL=get-vault-withdrawals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vault-withdrawals.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-withdrawals.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,KAAK,EAGL,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,6BAA6B,GAAG,SAAS,GAAG;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,SAAS,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,EAAE,IAAI,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AA8DF;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,OAAO,EACP,QAAqB,EACrB,MAAM,EACN,GAAG,GACJ,EAAE,6BAA6B,6BA4I/B;AAED,MAAM,MAAM,sCAAsC,GAAG;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,OAAO,EACP,QAAqB,EACrB,MAAM,GACP,EAAE,sCAAsC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6CpE"}
1
+ {"version":3,"file":"get-vault-withdrawals.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-withdrawals.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAEV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,SAAS,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,EAAE,IAAI,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,CAAC;AA8DF;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,4BAA4B,4BAwI9B;AAED,MAAM,MAAM,qCAAqC,GAAG;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,GACP,EAAE,qCAAqC,GAAG,OAAO,CAAC,eAAe,CAAC,CAyClE"}
@@ -2,12 +2,9 @@ import { Env } from '@lombard.finance/sdk-common';
2
2
  import BigNumber from 'bignumber.js';
3
3
  import { ChainId } from '../../../common/chains';
4
4
  import { Token } from '../../../tokens/token-addresses';
5
- import { Vault } from '../config';
6
- export type PreviewVaultDepositParameters = {
5
+ export type PreviewEarnDepositParameters = {
7
6
  /** The deposit amount in human-readable format (e.g., "0.001"). */
8
7
  amount: BigNumber.Value;
9
- /** The vault identifier. */
10
- vaultKey: Vault;
11
8
  /** The deposit token. Defaults to LBTC. */
12
9
  token?: Token;
13
10
  /** The chain where the deposit will be made. Defaults to Ethereum. */
@@ -26,13 +23,12 @@ export type PreviewVaultDepositParameters = {
26
23
  *
27
24
  * @example
28
25
  * ```ts
29
- * const shares = await previewVaultDeposit({
26
+ * const shares = await previewEarnDeposit({
30
27
  * amount: '0.001',
31
- * vaultKey: Vault.Veda,
32
28
  * token: Token.LBTC,
33
29
  * });
34
- * // BigNumber(0.00098039) expected shares for 0.001 LBTC
30
+ * // BigNumber(0.00098039), expected shares for 0.001 LBTC
35
31
  * ```
36
32
  */
37
- export declare function previewVaultDeposit({ amount: amountRaw, vaultKey, token, chainId, rpcUrl, env, }: PreviewVaultDepositParameters): Promise<BigNumber>;
33
+ export declare function previewEarnDeposit({ amount: amountRaw, token, chainId, rpcUrl, env, }: PreviewEarnDepositParameters): Promise<BigNumber>;
38
34
  //# sourceMappingURL=preview-vault-deposit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-vault-deposit.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/preview-vault-deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOxD,OAAO,EAAoB,KAAK,EAAU,MAAM,WAAW,CAAC;AAE5D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mEAAmE;IACnE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,EAAE,KAAK,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,MAAM,EAAE,SAAS,EACjB,QAAQ,EACR,KAAkB,EAClB,OAA0B,EAC1B,MAAM,EACN,GAAG,GACJ,EAAE,6BAA6B,GAAG,OAAO,CAAC,SAAS,CAAC,CAsEpD"}
1
+ {"version":3,"file":"preview-vault-deposit.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/preview-vault-deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AASxD,MAAM,MAAM,4BAA4B,GAAG;IACzC,mEAAmE;IACnE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,MAAM,EAAE,SAAS,EACjB,KAAkB,EAClB,OAA0B,EAC1B,MAAM,EACN,GAAG,GACJ,EAAE,4BAA4B,GAAG,OAAO,CAAC,SAAS,CAAC,CAkEnD"}
@@ -1,7 +1,7 @@
1
1
  import BigNumber from 'bignumber.js';
2
+ import { Hash } from 'viem';
2
3
  import { CommonWriteParameters } from '../../../common/parameters';
3
4
  import { Token } from '../../../tokens/token-addresses';
4
- import { Vault } from '../config';
5
5
  export type QueueWithdrawParameters = {
6
6
  /** The amount to be withdrawn from the DeFi vault. */
7
7
  amount: BigNumber.Value;
@@ -13,37 +13,21 @@ export type QueueWithdrawParameters = {
13
13
  approve?: boolean;
14
14
  /** The optional deposit asset. */
15
15
  token?: Token;
16
- /** The vault identifier. */
17
- vaultKey?: Vault;
18
16
  } & CommonWriteParameters;
19
17
  /**
20
- * Queues withdrawal from the DeFi vault.
21
- * @param {QueueWithdrawParameters} parameters - The parameters.
22
- * @param {BigNumber.Value} parameters.amount - The deposit amount.
23
- * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.
24
- * @param {Token} parameters.token - The optional deposit asset.
25
- * @param {Vault} parameters.vaultKey - The vault identifier.
26
- * @param {Address} parameters.account - The EVM account address.
27
- * @param {ChainId} parameters.chainId - The chain id.
28
- * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.
29
- * @param {string} parameters.rpcUrl - The optional rpc url.
18
+ * @internal Internal helper used by `EvmWithdraw` and other action classes.
19
+ * The public `queueWithdraw` function was removed in 5.0.0; consumers use
20
+ * `withdrawEarn` instead.
30
21
  *
31
22
  * @returns {Promise<Hash>}
32
23
  */
33
- export declare function queueWithdraw({ amount: amountRaw, approve, token, vaultKey, account, chainId, provider, rpcUrl, env, }: QueueWithdrawParameters): Promise<`0x${string}`>;
34
- export type CancelWithdrawParameters = Pick<QueueWithdrawParameters, 'token' | 'vaultKey'> & CommonWriteParameters;
24
+ export declare function queueWithdrawInternal({ amount: amountRaw, approve, token, account, chainId, provider, rpcUrl, env, }: QueueWithdrawParameters): Promise<`0x${string}`>;
25
+ export type CancelWithdrawParameters = Pick<QueueWithdrawParameters, 'token'> & CommonWriteParameters;
35
26
  /**
36
- * Cancels queued withdrawal.
37
- * @param {CancelWithdrawParameters} parameters - The parameters.
38
- * @param {Token} parameters.token - The optional deposit asset.
39
- * @param {Vault} parameters.vaultKey - The vault identifier.
40
- * @param {Address} parameters.account - The EVM account address.
41
- * @param {ChainId} parameters.chainId - The chain id.
42
- * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.
43
- * @param {string} parameters.rpcUrl - The optional rpc url.
44
- *
45
- * @returns {Promise<Hash>}
46
- * @returns
27
+ * @internal
28
+ * Shared implementation for cancelWithdraw / cancelEarnWithdrawal so the new
29
+ * Earn-native function does not trigger the deprecation warning when calling
30
+ * through.
47
31
  */
48
- export declare function cancelWithdraw({ token, vaultKey, account, chainId, provider, rpcUrl, env, }: CancelWithdrawParameters): Promise<`0x${string}`>;
32
+ export declare function cancelWithdrawInternal({ token, account, chainId, provider, rpcUrl, env, }: CancelWithdrawParameters): Promise<Hash>;
49
33
  //# sourceMappingURL=withdraw.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAKrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AASxD,OAAO,EAAoB,KAAK,EAAU,MAAM,WAAW,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG;IACpC,sDAAsD;IACtD,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GAAG,qBAAqB,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,EAClC,MAAM,EAAE,SAAS,EACjB,OAAc,EACd,KAAkB,EAClB,QAAqB,EACrB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,GACJ,EAAE,uBAAuB,0BAuGzB;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,uBAAuB,EACvB,OAAO,GAAG,UAAU,CACrB,GACC,qBAAqB,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,EACnC,KAAkB,EAClB,QAAqB,EACrB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,GACJ,EAAE,wBAAwB,0BAoC1B"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAWxD,MAAM,MAAM,uBAAuB,GAAG;IACpC,sDAAsD;IACtD,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GAAG,qBAAqB,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,MAAM,EAAE,SAAS,EACjB,OAAc,EACd,KAAkB,EAClB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,GACJ,EAAE,uBAAuB,0BAmGzB;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,GAC3E,qBAAqB,CAAC;AAExB;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,KAAkB,EAClB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,GACJ,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC1C"}
package/dist/vaults.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("./chunks/config-ow9X5H0c.cjs"),E=require("./chunks/withdraw-Bkp5-2dG.cjs"),A=require("./chunks/get-vault-tvl-DZ-xzehy.cjs"),a=require("./chunks/tokens-CBsz6l_2.cjs"),e=require("./chunks/token-addresses-DvY-Mw7b.cjs"),q=require("./chunks/get-vault-withdrawals-DLwFMQEB.cjs"),S=require("bignumber.js"),y=require("./chunks/numbers-3LtmxfD8.cjs");async function W({vaultKey:f,token:n=e.Token.LBTC,chainId:r=e.ChainId.ethereum,rpcUrl:u,env:m}){const o=b.VAULTS[f];if(!o)throw new Error(`Unknown vault key: ${f}`);if(!b.isVedaVaultChain(r))throw new Error(`Unsupported chain id: ${r}. Supported chains: ${o.chains.join(", ")}`);const s=o.tokens[n];if(!s||!s.includes(r))throw new Error(`Token ${n} is not supported on chain ${r} for vault ${f}`);let c,l;if(r===e.ChainId.ethereum){const t=await a.getTokenInfo(n,e.ChainId.ethereum,m,u);if(!t)throw new Error(`Could not resolve token info for ${n} on Ethereum`);c=t.address,l=t.decimals}else{const t=await a.getTokenInfo(n,e.ChainId.ethereum,m);if(!t)throw new Error(`Cannot determine minimum deposit for ${n}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);c=t.address,l=t.decimals}const d=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:r===e.ChainId.ethereum?u:void 0,env:m}),h=o.vaultContract.address,w=o.accountantContract.address,p=o.lensContract.address,g=o.lensContract.abi,T=o.accountantContract.abi,[C,V]=await d.multicall({contracts:[{address:w,abi:T,functionName:"getRateInQuote",args:[c]},{address:p,abi:g,functionName:"previewDeposit",args:[c,1n,h,w]}]});if(C.status!=="success")throw new Error(`Failed to get exchange rate for ${n}: ${C.error}`);if(V.status!=="success")throw new Error(`Failed to preview deposit for ${n}: ${V.error}`);if(V.result>0n)return a.fromBaseDenomination("1",l);const $=C.result,i=BigInt(10)**BigInt(o.decimals),D=($+i-1n)/i;if(await d.readContract({address:p,abi:g,functionName:"previewDeposit",args:[c,D,h,w]})>0n)return a.fromBaseDenomination(D.toString(),l);const I=10,k=Array.from({length:I},(t,v)=>D+BigInt(v+1)),B=await d.multicall({contracts:k.map(t=>({address:p,abi:g,functionName:"previewDeposit",args:[c,t,h,w]}))});for(let t=0;t<B.length;t++){const v=B[t];if(v.status==="success"&&v.result>0n)return a.fromBaseDenomination(k[t].toString(),l)}throw new Error(`Could not determine minimum deposit amount for ${n} after ${I} attempts`)}async function L({amount:f,vaultKey:n,token:r=e.Token.LBTC,chainId:u=e.ChainId.ethereum,rpcUrl:m,env:o}){const s=b.VAULTS[n];if(!s)throw new Error(`Unknown vault key: ${n}`);if(!b.isVedaVaultChain(u))throw new Error(`Unsupported chain id: ${u}. Supported chains: ${s.chains.join(", ")}`);const c=s.tokens[r];if(!c||!c.includes(u))throw new Error(`Token ${r} is not supported on chain ${u} for vault ${n}`);const l=S(f);if(l.isNegative()||l.isZero())throw new Error("Deposit amount must be greater than zero");let d,h;if(u===e.ChainId.ethereum){const i=await a.getTokenInfo(r,e.ChainId.ethereum,o,m);if(!i)throw new Error(`Could not resolve token info for ${r} on Ethereum`);d=i.address,h=i.decimals}else{const i=await a.getTokenInfo(r,e.ChainId.ethereum,o);if(!i)throw new Error(`Cannot preview deposit for ${r}: token not available on Ethereum. The Lens contract is Ethereum-only.`);d=i.address,h=i.decimals}const w=y.toBigInt(a.toBaseDenomination(l,h)),p=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:u===e.ChainId.ethereum?m:void 0,env:o}),g=s.vaultContract.address,T=s.accountantContract.address,C=s.lensContract.address,V=s.lensContract.abi,$=await p.readContract({address:C,abi:V,functionName:"previewDeposit",args:[d,w,g,T]});return a.fromBaseDenomination($.toString(),s.decimals)}exports.Vault=b.Vault;exports.cancelWithdraw=E.cancelWithdraw;exports.deposit=E.deposit;exports.queueWithdraw=E.queueWithdraw;exports.getVaultApy=A.getVaultApy;exports.getVaultDeposits=A.getVaultDeposits;exports.getVaultDepositsAllChains=A.getVaultDepositsAllChains;exports.getVaultPoints=A.getVaultPoints;exports.getVaultTVL=A.getVaultTVL;exports.getVaultWithdrawals=q.getVaultWithdrawals;exports.getVaultWithdrawalsAllChains=q.getVaultWithdrawalsAllChains;exports.getVaultMinimumDeposit=W;exports.previewVaultDeposit=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./chunks/get-vault-tvl-dvEPPxvT.cjs"),s=require("./chunks/tokens-DEYY7W7O.cjs"),t=require("./chunks/token-addresses-C7H9E4qz.cjs"),v=require("./chunks/config-BfX8lrdO.cjs"),k=require("./chunks/get-vault-withdrawals-Cgx7VsM1.cjs"),y=require("bignumber.js"),N=require("./chunks/numbers-3LtmxfD8.cjs");async function L({token:o=t.Token.LBTC,chainId:n=t.ChainId.ethereum,rpcUrl:c,env:m}={}){const r=v.EARN_VAULT;if(!v.isEarnChain(n))throw new Error(`Unsupported chain id: ${n}. Supported chains: ${r.chains.join(", ")}`);const a=r.tokens[o];if(!a||!a.includes(n))throw new Error(`Token ${o} is not supported on chain ${n} for the Bitcoin Earn vault`);let u,d;if(n===t.ChainId.ethereum){const e=await s.getTokenInfo(o,t.ChainId.ethereum,m,c);if(!e)throw new Error(`Could not resolve token info for ${o} on Ethereum`);u=e.address,d=e.decimals}else{const e=await s.getTokenInfo(o,t.ChainId.ethereum,m);if(!e)throw new Error(`Cannot determine minimum deposit for ${o}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);u=e.address,d=e.decimals}const l=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:n===t.ChainId.ethereum?c:void 0,env:m}),h=r.vaultContract.address,f=r.accountantContract.address,p=r.lensContract.address,w=r.lensContract.abi,b=r.accountantContract.abi,[g,C]=await l.multicall({contracts:[{address:f,abi:b,functionName:"getRateInQuote",args:[u]},{address:p,abi:w,functionName:"previewDeposit",args:[u,1n,h,f]}]});if(g.status!=="success")throw new Error(`Failed to get exchange rate for ${o}: ${g.error}`);if(C.status!=="success")throw new Error(`Failed to preview deposit for ${o}: ${C.error}`);if(C.result>0n)return s.fromBaseDenomination("1",d);const T=g.result,i=BigInt(10)**BigInt(r.decimals),D=(T+i-1n)/i;if(await l.readContract({address:p,abi:w,functionName:"previewDeposit",args:[u,D,h,f]})>0n)return s.fromBaseDenomination(D.toString(),d);const I=10,$=Array.from({length:I},(e,A)=>D+BigInt(A+1)),B=await l.multicall({contracts:$.map(e=>({address:p,abi:w,functionName:"previewDeposit",args:[u,e,h,f]}))});for(let e=0;e<B.length;e++){const A=B[e];if(A.status==="success"&&A.result>0n)return s.fromBaseDenomination($[e].toString(),d)}throw new Error(`Could not determine minimum deposit amount for ${o} after ${I} attempts`)}async function R({amount:o,token:n=t.Token.LBTC,chainId:c=t.ChainId.ethereum,rpcUrl:m,env:r}){const a=v.EARN_VAULT;if(!v.isEarnChain(c))throw new Error(`Unsupported chain id: ${c}. Supported chains: ${a.chains.join(", ")}`);const u=a.tokens[n];if(!u||!u.includes(c))throw new Error(`Token ${n} is not supported on chain ${c} for the Bitcoin Earn vault`);const d=y(o);if(d.isNegative()||d.isZero())throw new Error("Deposit amount must be greater than zero");let l,h;if(c===t.ChainId.ethereum){const i=await s.getTokenInfo(n,t.ChainId.ethereum,r,m);if(!i)throw new Error(`Could not resolve token info for ${n} on Ethereum`);l=i.address,h=i.decimals}else{const i=await s.getTokenInfo(n,t.ChainId.ethereum,r);if(!i)throw new Error(`Cannot preview deposit for ${n}: token not available on Ethereum. The Lens contract is Ethereum-only.`);l=i.address,h=i.decimals}const f=N.toBigInt(s.toBaseDenomination(d,h)),p=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:c===t.ChainId.ethereum?m:void 0,env:r}),w=a.vaultContract.address,b=a.accountantContract.address,g=a.lensContract.address,C=a.lensContract.abi,T=await p.readContract({address:g,abi:C,functionName:"previewDeposit",args:[l,f,w,b]});return s.fromBaseDenomination(T.toString(),a.decimals)}exports.getEarnApy=E.getEarnApy;exports.getEarnDeposits=E.getEarnDeposits;exports.getEarnDepositsAllChains=E.getEarnDepositsAllChains;exports.getEarnPoints=E.getEarnPoints;exports.getEarnTVL=E.getEarnTVL;exports.getEarnWithdrawals=k.getEarnWithdrawals;exports.getEarnWithdrawalsAllChains=k.getEarnWithdrawalsAllChains;exports.getEarnMinimumDeposit=L;exports.previewEarnDeposit=R;
2
2
  //# sourceMappingURL=vaults.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"vaults.cjs","sources":["../src/vaults/lib/ops/get-vault-minimum-deposit.ts","../src/vaults/lib/ops/preview-vault-deposit.ts"],"sourcesContent":["import { Env } from '@lombard.finance/sdk-common';\nimport BigNumber from 'bignumber.js';\nimport { Abi, Address } from 'viem';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { ChainId } from '../../../common/chains';\nimport { Token } from '../../../tokens/token-addresses';\nimport { getTokenInfo } from '../../../tokens/tokens';\nimport { fromBaseDenomination } from '../../../tokens/tokens';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type GetVaultMinimumDepositParameters = {\n /** The vault identifier. */\n vaultKey: Vault;\n /** The deposit token. Defaults to LBTC. */\n token?: Token;\n /** The chain where the deposit will be made. Defaults to Ethereum. */\n chainId?: ChainId;\n /** Optional RPC URL for Ethereum (used for Lens/Accountant queries). */\n rpcUrl?: string;\n /** Optional environment. */\n env?: Env;\n};\n\n/**\n * Returns the minimum deposit amount (in human-readable format) for a given\n * token that will produce at least 1 vault share.\n *\n * The minimum is derived from the on-chain exchange rate. It is not a fixed\n * constant and changes as the vault accrues yield.\n *\n * @example\n * ```ts\n * const min = await getVaultMinimumDeposit({ vaultKey: Vault.Veda });\n * // BigNumber(0.00000002) — 2 satoshis at current rates\n * ```\n */\nexport async function getVaultMinimumDeposit({\n vaultKey,\n token = Token.LBTC,\n chainId = ChainId.ethereum,\n rpcUrl,\n env,\n}: GetVaultMinimumDepositParameters): Promise<BigNumber> {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const supportedChains = vault.tokens[\n token as keyof typeof vault.tokens\n ] as readonly ChainId[] | undefined;\n if (!supportedChains || !supportedChains.includes(chainId)) {\n throw new Error(\n `Token ${token} is not supported on chain ${chainId} for vault ${vaultKey}`,\n );\n }\n\n // Lens and Accountant are Ethereum-only contracts.\n // Resolve the token's Ethereum address for the query.\n let ethTokenAddress: Address;\n let tokenDecimals: number;\n\n if (chainId === ChainId.ethereum) {\n const tokenInfo = await getTokenInfo(token, ChainId.ethereum, env, rpcUrl);\n if (!tokenInfo) {\n throw new Error(`Could not resolve token info for ${token} on Ethereum`);\n }\n ethTokenAddress = tokenInfo.address;\n tokenDecimals = tokenInfo.decimals;\n } else {\n // For cross-chain deposits, we still need the Ethereum token address\n // because the Lens/Accountant are on Ethereum.\n const ethTokenInfo = await getTokenInfo(token, ChainId.ethereum, env);\n if (!ethTokenInfo) {\n throw new Error(\n `Cannot determine minimum deposit for ${token}: token not available on Ethereum. ` +\n `The Lens and Accountant contracts are Ethereum-only.`,\n );\n }\n ethTokenAddress = ethTokenInfo.address;\n tokenDecimals = ethTokenInfo.decimals;\n }\n\n const ethPublicClient = makePublicClient({\n chainId: ChainId.ethereum,\n rpcUrl: chainId === ChainId.ethereum ? rpcUrl : undefined,\n env,\n });\n\n const vaultAddress = vault.vaultContract.address as Address;\n const accountantAddress = vault.accountantContract.address as Address;\n const lensAddress = vault.lensContract.address as Address;\n const lensAbi = vault.lensContract.abi as Abi;\n const accountantAbi = vault.accountantContract.abi as Abi;\n\n // Batch: get the exchange rate and check if 1 base unit yields any shares.\n const [rateResult, previewOneResult] = await ethPublicClient.multicall({\n contracts: [\n {\n address: accountantAddress,\n abi: accountantAbi,\n functionName: 'getRateInQuote',\n args: [ethTokenAddress],\n },\n {\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, 1n, vaultAddress, accountantAddress],\n },\n ],\n });\n\n if (rateResult.status !== 'success') {\n throw new Error(\n `Failed to get exchange rate for ${token}: ${rateResult.error}`,\n );\n }\n\n if (previewOneResult.status !== 'success') {\n throw new Error(\n `Failed to preview deposit for ${token}: ${previewOneResult.error}`,\n );\n }\n\n // If 1 base unit already yields shares, that's the minimum.\n if ((previewOneResult.result as bigint) > 0n) {\n return fromBaseDenomination('1', tokenDecimals);\n }\n\n // Calculate: minimum base units = ceil(rateInQuote / 10^vaultDecimals)\n const rateInQuote = rateResult.result as bigint;\n const oneShare = BigInt(10) ** BigInt(vault.decimals);\n const estimatedMin = (rateInQuote + oneShare - 1n) / oneShare;\n\n // Verify the estimate with previewDeposit.\n const verifyResult = await ethPublicClient.readContract({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, estimatedMin, vaultAddress, accountantAddress],\n });\n\n if ((verifyResult as bigint) > 0n) {\n return fromBaseDenomination(estimatedMin.toString(), tokenDecimals);\n }\n\n // Edge case: estimate was off (e.g., share premium). Batch all candidates\n // in a single multicall to avoid sequential RPC round trips.\n const maxAttempts = 10;\n const candidates = Array.from(\n { length: maxAttempts },\n (_, i) => estimatedMin + BigInt(i + 1),\n );\n\n const batchResults = await ethPublicClient.multicall({\n contracts: candidates.map((candidate) => ({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit' as const,\n args: [ethTokenAddress, candidate, vaultAddress, accountantAddress],\n })),\n });\n\n for (let i = 0; i < batchResults.length; i++) {\n const result = batchResults[i];\n if (result.status === 'success' && (result.result as bigint) > 0n) {\n return fromBaseDenomination(candidates[i].toString(), tokenDecimals);\n }\n }\n\n throw new Error(\n `Could not determine minimum deposit amount for ${token} after ${maxAttempts} attempts`,\n );\n}\n","import { Env } from '@lombard.finance/sdk-common';\nimport BigNumber from 'bignumber.js';\nimport { Abi, Address } from 'viem';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { ChainId } from '../../../common/chains';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport toBigInt from '../../../utils/numbers';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type PreviewVaultDepositParameters = {\n /** The deposit amount in human-readable format (e.g., \"0.001\"). */\n amount: BigNumber.Value;\n /** The vault identifier. */\n vaultKey: Vault;\n /** The deposit token. Defaults to LBTC. */\n token?: Token;\n /** The chain where the deposit will be made. Defaults to Ethereum. */\n chainId?: ChainId;\n /** Optional RPC URL for Ethereum (used for Lens queries). */\n rpcUrl?: string;\n /** Optional environment. */\n env?: Env;\n};\n\n/**\n * Returns the expected number of vault shares (in human-readable format)\n * for a given deposit amount.\n *\n * Uses the on-chain Lens contract to simulate the deposit, accounting for\n * the current exchange rate and any share premiums.\n *\n * @example\n * ```ts\n * const shares = await previewVaultDeposit({\n * amount: '0.001',\n * vaultKey: Vault.Veda,\n * token: Token.LBTC,\n * });\n * // BigNumber(0.00098039) — expected shares for 0.001 LBTC\n * ```\n */\nexport async function previewVaultDeposit({\n amount: amountRaw,\n vaultKey,\n token = Token.LBTC,\n chainId = ChainId.ethereum,\n rpcUrl,\n env,\n}: PreviewVaultDepositParameters): Promise<BigNumber> {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const supportedChains = vault.tokens[\n token as keyof typeof vault.tokens\n ] as readonly ChainId[] | undefined;\n if (!supportedChains || !supportedChains.includes(chainId)) {\n throw new Error(\n `Token ${token} is not supported on chain ${chainId} for vault ${vaultKey}`,\n );\n }\n\n const amount = BigNumber(amountRaw);\n if (amount.isNegative() || amount.isZero()) {\n throw new Error('Deposit amount must be greater than zero');\n }\n\n // Lens is Ethereum-only. Resolve the token's Ethereum address.\n let ethTokenAddress: Address;\n let tokenDecimals: number;\n\n if (chainId === ChainId.ethereum) {\n const tokenInfo = await getTokenInfo(token, ChainId.ethereum, env, rpcUrl);\n if (!tokenInfo) {\n throw new Error(`Could not resolve token info for ${token} on Ethereum`);\n }\n ethTokenAddress = tokenInfo.address;\n tokenDecimals = tokenInfo.decimals;\n } else {\n const ethTokenInfo = await getTokenInfo(token, ChainId.ethereum, env);\n if (!ethTokenInfo) {\n throw new Error(\n `Cannot preview deposit for ${token}: token not available on Ethereum. ` +\n `The Lens contract is Ethereum-only.`,\n );\n }\n ethTokenAddress = ethTokenInfo.address;\n tokenDecimals = ethTokenInfo.decimals;\n }\n\n const amountBase = toBigInt(toBaseDenomination(amount, tokenDecimals));\n\n const ethPublicClient = makePublicClient({\n chainId: ChainId.ethereum,\n rpcUrl: chainId === ChainId.ethereum ? rpcUrl : undefined,\n env,\n });\n\n const vaultAddress = vault.vaultContract.address as Address;\n const accountantAddress = vault.accountantContract.address as Address;\n const lensAddress = vault.lensContract.address as Address;\n const lensAbi = vault.lensContract.abi as Abi;\n\n const shares = await ethPublicClient.readContract({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, amountBase, vaultAddress, accountantAddress],\n });\n\n return fromBaseDenomination((shares as bigint).toString(), vault.decimals);\n}\n"],"names":["getVaultMinimumDeposit","vaultKey","token","Token","chainId","ChainId","rpcUrl","env","vault","VAULTS","isVedaVaultChain","supportedChains","ethTokenAddress","tokenDecimals","tokenInfo","getTokenInfo","ethTokenInfo","ethPublicClient","makePublicClient","vaultAddress","accountantAddress","lensAddress","lensAbi","accountantAbi","rateResult","previewOneResult","fromBaseDenomination","rateInQuote","oneShare","estimatedMin","maxAttempts","candidates","_","i","batchResults","candidate","result","previewVaultDeposit","amountRaw","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","shares"],"mappings":"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"}
1
+ {"version":3,"file":"vaults.cjs","sources":["../src/vaults/lib/ops/get-vault-minimum-deposit.ts","../src/vaults/lib/ops/preview-vault-deposit.ts"],"sourcesContent":["import { Env } from '@lombard.finance/sdk-common';\nimport BigNumber from 'bignumber.js';\nimport { Abi, Address } from 'viem';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { ChainId } from '../../../common/chains';\nimport { Token } from '../../../tokens/token-addresses';\nimport { getTokenInfo } from '../../../tokens/tokens';\nimport { fromBaseDenomination } from '../../../tokens/tokens';\nimport { EARN_VAULT, isEarnChain } from '../config';\n\nexport type GetEarnMinimumDepositParameters = {\n /** The deposit token. Defaults to LBTC. */\n token?: Token;\n /** The chain where the deposit will be made. Defaults to Ethereum. */\n chainId?: ChainId;\n /** Optional RPC URL for Ethereum (used for Lens/Accountant queries). */\n rpcUrl?: string;\n /** Optional environment. */\n env?: Env;\n};\n\n/**\n * Returns the minimum deposit amount (in human-readable format) for a given\n * token that will produce at least 1 vault share.\n *\n * The minimum is derived from the on-chain exchange rate. It is not a fixed\n * constant and changes as the vault accrues yield.\n *\n * @example\n * ```ts\n * const min = await getEarnMinimumDeposit();\n * // BigNumber(0.00000002), 2 satoshis at current rates\n * ```\n */\nexport async function getEarnMinimumDeposit({\n token = Token.LBTC,\n chainId = ChainId.ethereum,\n rpcUrl,\n env,\n}: GetEarnMinimumDepositParameters = {}): Promise<BigNumber> {\n const vault = EARN_VAULT;\n if (!isEarnChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const supportedChains = vault.tokens[token as keyof typeof vault.tokens] as\n | readonly ChainId[]\n | undefined;\n if (!supportedChains || !supportedChains.includes(chainId)) {\n throw new Error(\n `Token ${token} is not supported on chain ${chainId} for the Bitcoin Earn vault`,\n );\n }\n\n // Lens and Accountant are Ethereum-only contracts.\n // Resolve the token's Ethereum address for the query.\n let ethTokenAddress: Address;\n let tokenDecimals: number;\n\n if (chainId === ChainId.ethereum) {\n const tokenInfo = await getTokenInfo(token, ChainId.ethereum, env, rpcUrl);\n if (!tokenInfo) {\n throw new Error(`Could not resolve token info for ${token} on Ethereum`);\n }\n ethTokenAddress = tokenInfo.address;\n tokenDecimals = tokenInfo.decimals;\n } else {\n // For cross-chain deposits, we still need the Ethereum token address\n // because the Lens/Accountant are on Ethereum.\n const ethTokenInfo = await getTokenInfo(token, ChainId.ethereum, env);\n if (!ethTokenInfo) {\n throw new Error(\n `Cannot determine minimum deposit for ${token}: token not available on Ethereum. ` +\n `The Lens and Accountant contracts are Ethereum-only.`,\n );\n }\n ethTokenAddress = ethTokenInfo.address;\n tokenDecimals = ethTokenInfo.decimals;\n }\n\n const ethPublicClient = makePublicClient({\n chainId: ChainId.ethereum,\n rpcUrl: chainId === ChainId.ethereum ? rpcUrl : undefined,\n env,\n });\n\n const vaultAddress = vault.vaultContract.address as Address;\n const accountantAddress = vault.accountantContract.address as Address;\n const lensAddress = vault.lensContract.address as Address;\n const lensAbi = vault.lensContract.abi as Abi;\n const accountantAbi = vault.accountantContract.abi as Abi;\n\n // Batch: get the exchange rate and check if 1 base unit yields any shares.\n const [rateResult, previewOneResult] = await ethPublicClient.multicall({\n contracts: [\n {\n address: accountantAddress,\n abi: accountantAbi,\n functionName: 'getRateInQuote',\n args: [ethTokenAddress],\n },\n {\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, 1n, vaultAddress, accountantAddress],\n },\n ],\n });\n\n if (rateResult.status !== 'success') {\n throw new Error(\n `Failed to get exchange rate for ${token}: ${rateResult.error}`,\n );\n }\n\n if (previewOneResult.status !== 'success') {\n throw new Error(\n `Failed to preview deposit for ${token}: ${previewOneResult.error}`,\n );\n }\n\n // If 1 base unit already yields shares, that's the minimum.\n if ((previewOneResult.result as bigint) > 0n) {\n return fromBaseDenomination('1', tokenDecimals);\n }\n\n // Calculate: minimum base units = ceil(rateInQuote / 10^vaultDecimals)\n const rateInQuote = rateResult.result as bigint;\n const oneShare = BigInt(10) ** BigInt(vault.decimals);\n const estimatedMin = (rateInQuote + oneShare - 1n) / oneShare;\n\n // Verify the estimate with previewDeposit.\n const verifyResult = await ethPublicClient.readContract({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, estimatedMin, vaultAddress, accountantAddress],\n });\n\n if ((verifyResult as bigint) > 0n) {\n return fromBaseDenomination(estimatedMin.toString(), tokenDecimals);\n }\n\n // Edge case: estimate was off (e.g., share premium). Batch all candidates\n // in a single multicall to avoid sequential RPC round trips.\n const maxAttempts = 10;\n const candidates = Array.from(\n { length: maxAttempts },\n (_, i) => estimatedMin + BigInt(i + 1),\n );\n\n const batchResults = await ethPublicClient.multicall({\n contracts: candidates.map((candidate) => ({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit' as const,\n args: [ethTokenAddress, candidate, vaultAddress, accountantAddress],\n })),\n });\n\n for (let i = 0; i < batchResults.length; i++) {\n const result = batchResults[i];\n if (result.status === 'success' && (result.result as bigint) > 0n) {\n return fromBaseDenomination(candidates[i].toString(), tokenDecimals);\n }\n }\n\n throw new Error(\n `Could not determine minimum deposit amount for ${token} after ${maxAttempts} attempts`,\n );\n}\n","import { Env } from '@lombard.finance/sdk-common';\nimport BigNumber from 'bignumber.js';\nimport { Abi, Address } from 'viem';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { ChainId } from '../../../common/chains';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport toBigInt from '../../../utils/numbers';\nimport { EARN_VAULT, isEarnChain } from '../config';\n\nexport type PreviewEarnDepositParameters = {\n /** The deposit amount in human-readable format (e.g., \"0.001\"). */\n amount: BigNumber.Value;\n /** The deposit token. Defaults to LBTC. */\n token?: Token;\n /** The chain where the deposit will be made. Defaults to Ethereum. */\n chainId?: ChainId;\n /** Optional RPC URL for Ethereum (used for Lens queries). */\n rpcUrl?: string;\n /** Optional environment. */\n env?: Env;\n};\n\n/**\n * Returns the expected number of vault shares (in human-readable format)\n * for a given deposit amount.\n *\n * Uses the on-chain Lens contract to simulate the deposit, accounting for\n * the current exchange rate and any share premiums.\n *\n * @example\n * ```ts\n * const shares = await previewEarnDeposit({\n * amount: '0.001',\n * token: Token.LBTC,\n * });\n * // BigNumber(0.00098039), expected shares for 0.001 LBTC\n * ```\n */\nexport async function previewEarnDeposit({\n amount: amountRaw,\n token = Token.LBTC,\n chainId = ChainId.ethereum,\n rpcUrl,\n env,\n}: PreviewEarnDepositParameters): Promise<BigNumber> {\n const vault = EARN_VAULT;\n if (!isEarnChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const supportedChains = vault.tokens[token as keyof typeof vault.tokens] as\n | readonly ChainId[]\n | undefined;\n if (!supportedChains || !supportedChains.includes(chainId)) {\n throw new Error(\n `Token ${token} is not supported on chain ${chainId} for the Bitcoin Earn vault`,\n );\n }\n\n const amount = BigNumber(amountRaw);\n if (amount.isNegative() || amount.isZero()) {\n throw new Error('Deposit amount must be greater than zero');\n }\n\n // Lens is Ethereum-only. Resolve the token's Ethereum address.\n let ethTokenAddress: Address;\n let tokenDecimals: number;\n\n if (chainId === ChainId.ethereum) {\n const tokenInfo = await getTokenInfo(token, ChainId.ethereum, env, rpcUrl);\n if (!tokenInfo) {\n throw new Error(`Could not resolve token info for ${token} on Ethereum`);\n }\n ethTokenAddress = tokenInfo.address;\n tokenDecimals = tokenInfo.decimals;\n } else {\n const ethTokenInfo = await getTokenInfo(token, ChainId.ethereum, env);\n if (!ethTokenInfo) {\n throw new Error(\n `Cannot preview deposit for ${token}: token not available on Ethereum. ` +\n `The Lens contract is Ethereum-only.`,\n );\n }\n ethTokenAddress = ethTokenInfo.address;\n tokenDecimals = ethTokenInfo.decimals;\n }\n\n const amountBase = toBigInt(toBaseDenomination(amount, tokenDecimals));\n\n const ethPublicClient = makePublicClient({\n chainId: ChainId.ethereum,\n rpcUrl: chainId === ChainId.ethereum ? rpcUrl : undefined,\n env,\n });\n\n const vaultAddress = vault.vaultContract.address as Address;\n const accountantAddress = vault.accountantContract.address as Address;\n const lensAddress = vault.lensContract.address as Address;\n const lensAbi = vault.lensContract.abi as Abi;\n\n const shares = await ethPublicClient.readContract({\n address: lensAddress,\n abi: lensAbi,\n functionName: 'previewDeposit',\n args: [ethTokenAddress, amountBase, vaultAddress, accountantAddress],\n });\n\n return fromBaseDenomination((shares as bigint).toString(), vault.decimals);\n}\n"],"names":["getEarnMinimumDeposit","token","Token","chainId","ChainId","rpcUrl","env","vault","EARN_VAULT","isEarnChain","supportedChains","ethTokenAddress","tokenDecimals","tokenInfo","getTokenInfo","ethTokenInfo","ethPublicClient","makePublicClient","vaultAddress","accountantAddress","lensAddress","lensAbi","accountantAbi","rateResult","previewOneResult","fromBaseDenomination","rateInQuote","oneShare","estimatedMin","maxAttempts","candidates","_","i","batchResults","candidate","result","previewEarnDeposit","amountRaw","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","shares"],"mappings":"4YAmCA,eAAsBA,EAAsB,CAC1C,MAAAC,EAAQC,EAAAA,MAAM,KACd,QAAAC,EAAUC,EAAAA,QAAQ,SAClB,OAAAC,EACA,IAAAC,CACF,EAAqC,GAAwB,CAC3D,MAAMC,EAAQC,EAAAA,WACd,GAAI,CAACC,EAAAA,YAAYN,CAAO,EACtB,MAAM,IAAI,MACR,yBAAyBA,CAAO,uBAAuBI,EAAM,OAAO,KAAK,IAAI,CAAC,EAAA,EAIlF,MAAMG,EAAkBH,EAAM,OAAON,CAAkC,EAGvE,GAAI,CAACS,GAAmB,CAACA,EAAgB,SAASP,CAAO,EACvD,MAAM,IAAI,MACR,SAASF,CAAK,8BAA8BE,CAAO,6BAAA,EAMvD,IAAIQ,EACAC,EAEJ,GAAIT,IAAYC,EAAAA,QAAQ,SAAU,CAChC,MAAMS,EAAY,MAAMC,eAAab,EAAOG,EAAAA,QAAQ,SAAUE,EAAKD,CAAM,EACzE,GAAI,CAACQ,EACH,MAAM,IAAI,MAAM,oCAAoCZ,CAAK,cAAc,EAEzEU,EAAkBE,EAAU,QAC5BD,EAAgBC,EAAU,QAC5B,KAAO,CAGL,MAAME,EAAe,MAAMD,EAAAA,aAAab,EAAOG,EAAAA,QAAQ,SAAUE,CAAG,EACpE,GAAI,CAACS,EACH,MAAM,IAAI,MACR,wCAAwCd,CAAK,yFAAA,EAIjDU,EAAkBI,EAAa,QAC/BH,EAAgBG,EAAa,QAC/B,CAEA,MAAMC,EAAkBC,EAAAA,iBAAiB,CACvC,QAASb,EAAAA,QAAQ,SACjB,OAAQD,IAAYC,EAAAA,QAAQ,SAAWC,EAAS,OAChD,IAAAC,CAAA,CACD,EAEKY,EAAeX,EAAM,cAAc,QACnCY,EAAoBZ,EAAM,mBAAmB,QAC7Ca,EAAcb,EAAM,aAAa,QACjCc,EAAUd,EAAM,aAAa,IAC7Be,EAAgBf,EAAM,mBAAmB,IAGzC,CAACgB,EAAYC,CAAgB,EAAI,MAAMR,EAAgB,UAAU,CACrE,UAAW,CACT,CACE,QAASG,EACT,IAAKG,EACL,aAAc,iBACd,KAAM,CAACX,CAAe,CAAA,EAExB,CACE,QAASS,EACT,IAAKC,EACL,aAAc,iBACd,KAAM,CAACV,EAAiB,GAAIO,EAAcC,CAAiB,CAAA,CAC7D,CACF,CACD,EAED,GAAII,EAAW,SAAW,UACxB,MAAM,IAAI,MACR,mCAAmCtB,CAAK,KAAKsB,EAAW,KAAK,EAAA,EAIjE,GAAIC,EAAiB,SAAW,UAC9B,MAAM,IAAI,MACR,iCAAiCvB,CAAK,KAAKuB,EAAiB,KAAK,EAAA,EAKrE,GAAKA,EAAiB,OAAoB,GACxC,OAAOC,EAAAA,qBAAqB,IAAKb,CAAa,EAIhD,MAAMc,EAAcH,EAAW,OACzBI,EAAW,OAAO,EAAE,GAAK,OAAOpB,EAAM,QAAQ,EAC9CqB,GAAgBF,EAAcC,EAAW,IAAMA,EAUrD,GAPqB,MAAMX,EAAgB,aAAa,CACtD,QAASI,EACT,IAAKC,EACL,aAAc,iBACd,KAAM,CAACV,EAAiBiB,EAAcV,EAAcC,CAAiB,CAAA,CACtE,EAE8B,GAC7B,OAAOM,uBAAqBG,EAAa,SAAA,EAAYhB,CAAa,EAKpE,MAAMiB,EAAc,GACdC,EAAa,MAAM,KACvB,CAAE,OAAQD,CAAA,EACV,CAACE,EAAGC,IAAMJ,EAAe,OAAOI,EAAI,CAAC,CAAA,EAGjCC,EAAe,MAAMjB,EAAgB,UAAU,CACnD,UAAWc,EAAW,IAAKI,IAAe,CACxC,QAASd,EACT,IAAKC,EACL,aAAc,iBACd,KAAM,CAACV,EAAiBuB,EAAWhB,EAAcC,CAAiB,CAAA,EAClE,CAAA,CACH,EAED,QAASa,EAAI,EAAGA,EAAIC,EAAa,OAAQD,IAAK,CAC5C,MAAMG,EAASF,EAAaD,CAAC,EAC7B,GAAIG,EAAO,SAAW,WAAcA,EAAO,OAAoB,GAC7D,OAAOV,EAAAA,qBAAqBK,EAAWE,CAAC,EAAE,SAAA,EAAYpB,CAAa,CAEvE,CAEA,MAAM,IAAI,MACR,kDAAkDX,CAAK,UAAU4B,CAAW,WAAA,CAEhF,CClIA,eAAsBO,EAAmB,CACvC,OAAQC,EACR,MAAApC,EAAQC,EAAAA,MAAM,KACd,QAAAC,EAAUC,EAAAA,QAAQ,SAClB,OAAAC,EACA,IAAAC,CACF,EAAqD,CACnD,MAAMC,EAAQC,EAAAA,WACd,GAAI,CAACC,EAAAA,YAAYN,CAAO,EACtB,MAAM,IAAI,MACR,yBAAyBA,CAAO,uBAAuBI,EAAM,OAAO,KAAK,IAAI,CAAC,EAAA,EAIlF,MAAMG,EAAkBH,EAAM,OAAON,CAAkC,EAGvE,GAAI,CAACS,GAAmB,CAACA,EAAgB,SAASP,CAAO,EACvD,MAAM,IAAI,MACR,SAASF,CAAK,8BAA8BE,CAAO,6BAAA,EAIvD,MAAMmC,EAASC,EAAUF,CAAS,EAClC,GAAIC,EAAO,WAAA,GAAgBA,EAAO,SAChC,MAAM,IAAI,MAAM,0CAA0C,EAI5D,IAAI3B,EACAC,EAEJ,GAAIT,IAAYC,EAAAA,QAAQ,SAAU,CAChC,MAAMS,EAAY,MAAMC,eAAab,EAAOG,EAAAA,QAAQ,SAAUE,EAAKD,CAAM,EACzE,GAAI,CAACQ,EACH,MAAM,IAAI,MAAM,oCAAoCZ,CAAK,cAAc,EAEzEU,EAAkBE,EAAU,QAC5BD,EAAgBC,EAAU,QAC5B,KAAO,CACL,MAAME,EAAe,MAAMD,EAAAA,aAAab,EAAOG,EAAAA,QAAQ,SAAUE,CAAG,EACpE,GAAI,CAACS,EACH,MAAM,IAAI,MACR,8BAA8Bd,CAAK,wEAAA,EAIvCU,EAAkBI,EAAa,QAC/BH,EAAgBG,EAAa,QAC/B,CAEA,MAAMyB,EAAaC,EAAAA,SAASC,EAAAA,mBAAmBJ,EAAQ1B,CAAa,CAAC,EAE/DI,EAAkBC,EAAAA,iBAAiB,CACvC,QAASb,EAAAA,QAAQ,SACjB,OAAQD,IAAYC,EAAAA,QAAQ,SAAWC,EAAS,OAChD,IAAAC,CAAA,CACD,EAEKY,EAAeX,EAAM,cAAc,QACnCY,EAAoBZ,EAAM,mBAAmB,QAC7Ca,EAAcb,EAAM,aAAa,QACjCc,EAAUd,EAAM,aAAa,IAE7BoC,EAAS,MAAM3B,EAAgB,aAAa,CAChD,QAASI,EACT,IAAKC,EACL,aAAc,iBACd,KAAM,CAACV,EAAiB6B,EAAYtB,EAAcC,CAAiB,CAAA,CACpE,EAED,OAAOM,EAAAA,qBAAsBkB,EAAkB,SAAA,EAAYpC,EAAM,QAAQ,CAC3E"}