@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.
- package/CHANGELOG.md +91 -2
- package/README.md +22 -21
- package/dist/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.d.ts.map +1 -1
- package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.d.ts.map +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.js +5 -5
- package/dist/bridge.cjs +1 -1
- package/dist/bridge.js +1 -1
- package/dist/btc.cjs +1 -1
- package/dist/btc.js +2 -2
- package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts.map +1 -1
- package/dist/chains/btc/actions/deposit/config/evm.d.ts.map +1 -1
- package/dist/chains/btc/actions/deposit/config/solana.d.ts.map +1 -1
- package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts.map +1 -1
- package/dist/chains/btc/actions/depositAndDeploy/types.d.ts.map +1 -1
- package/dist/chains/btc/actions/stake/BtcStake.d.ts.map +1 -1
- package/dist/chains/btc/actions/stake/config/evm.d.ts.map +1 -1
- package/dist/chains/btc/actions/stake/config/solana.d.ts.map +1 -1
- package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts.map +1 -1
- package/dist/chains/btc/actions/stakeAndDeploy/types.d.ts.map +1 -1
- package/dist/chains/btc/client/getCurrentBlockHeight.d.ts.map +1 -1
- package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts +19 -4
- package/dist/chains/evm/actions/deploy/EvmDeploy.d.ts.map +1 -1
- package/dist/chains/evm/actions/deploy/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/deploy/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/deposit/config/evm.d.ts.map +1 -1
- package/dist/chains/evm/actions/deposit/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/redeem/EvmRedeem.d.ts.map +1 -1
- package/dist/chains/evm/actions/redeem/config/evm.d.ts.map +1 -1
- package/dist/chains/evm/actions/redeem/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/redeem/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/stake/config/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/stake/config/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/stake/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/stake/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/unstake/EvmUnstake.d.ts.map +1 -1
- package/dist/chains/evm/actions/unstake/index.d.ts.map +1 -1
- package/dist/chains/evm/actions/unstake/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/withdraw/EvmCancelWithdraw.d.ts.map +1 -1
- package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts +6 -0
- package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts.map +1 -1
- package/dist/chains/evm/actions/withdraw/config/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/withdraw/types.d.ts.map +1 -1
- package/dist/chains/solana/SolanaActions.d.ts.map +1 -1
- package/dist/chains/solana/actions/redeem/SolanaRedeem.d.ts.map +1 -1
- package/dist/chains/solana/actions/redeem/types.d.ts.map +1 -1
- package/dist/chains/solana/actions/stake/SolanaStake.d.ts.map +1 -1
- package/dist/chains/solana/actions/stake/types.d.ts.map +1 -1
- package/dist/chains/solana/actions/unstake/SolanaUnstake.d.ts.map +1 -1
- package/dist/chains/solana/actions/unstake/factory.d.ts.map +1 -1
- package/dist/chains/solana/actions/unstake/types.d.ts.map +1 -1
- package/dist/chains/solana/utils.d.ts.map +1 -1
- package/dist/chains/starknet/actions/unstake/config/index.d.ts.map +1 -1
- package/dist/chains/starknet/actions/unstake/factory.d.ts.map +1 -1
- package/dist/chains/starknet/actions/unstake/types.d.ts.map +1 -1
- package/dist/chains/sui/actions/unstake/config/index.d.ts.map +1 -1
- package/dist/chains/sui/actions/unstake/factory.d.ts.map +1 -1
- package/dist/chains/sui/actions/unstake/types.d.ts.map +1 -1
- package/dist/chunks/{BtcActions-BczTnzRn.js → BtcActions-CFGiDxtv.js} +20 -22
- package/dist/chunks/BtcActions-CFGiDxtv.js.map +1 -0
- package/dist/chunks/BtcActions-DJJmmyzi.cjs +2 -0
- package/dist/chunks/BtcActions-DJJmmyzi.cjs.map +1 -0
- package/dist/chunks/EvmActions-CUKBeiUw.js +1508 -0
- package/dist/chunks/EvmActions-CUKBeiUw.js.map +1 -0
- package/dist/chunks/EvmActions-CxipDb7X.cjs +7 -0
- package/dist/chunks/EvmActions-CxipDb7X.cjs.map +1 -0
- package/dist/chunks/{ReferralsClient-W-0-383w.js → ReferralsClient-BRa26dYS.js} +4 -4
- package/dist/chunks/ReferralsClient-BRa26dYS.js.map +1 -0
- package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs → ReferralsClient-o-3AUm7s.cjs} +2 -2
- package/dist/chunks/ReferralsClient-o-3AUm7s.cjs.map +1 -0
- package/dist/chunks/{approveLBTC-BMC4cZEk.cjs → approveLBTC-BBl3KcT2.cjs} +2 -2
- package/dist/chunks/{approveLBTC-BMC4cZEk.cjs.map → approveLBTC-BBl3KcT2.cjs.map} +1 -1
- package/dist/chunks/{approveLBTC-BkdT1N3V.js → approveLBTC-DnCt6ZZF.js} +3 -3
- package/dist/chunks/{approveLBTC-BkdT1N3V.js.map → approveLBTC-DnCt6ZZF.js.map} +1 -1
- package/dist/chunks/{blockchain-identifier-BLPnwbIN.js → blockchain-identifier-BkASqCgZ.js} +2 -2
- package/dist/chunks/blockchain-identifier-BkASqCgZ.js.map +1 -0
- package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs → blockchain-identifier-DWfC3Es2.cjs} +2 -2
- package/dist/chunks/blockchain-identifier-DWfC3Es2.cjs.map +1 -0
- package/dist/chunks/{bridge-DbB23m2a.js → bridge-DV4fOcHe.js} +4 -4
- package/dist/chunks/bridge-DV4fOcHe.js.map +1 -0
- package/dist/chunks/{bridge-7Eq_Jmi2.cjs → bridge-DZp5x4Yb.cjs} +2 -2
- package/dist/chunks/bridge-DZp5x4Yb.cjs.map +1 -0
- package/dist/chunks/{config-ow9X5H0c.cjs → config-BfX8lrdO.cjs} +2 -2
- package/dist/chunks/config-BfX8lrdO.cjs.map +1 -0
- package/dist/chunks/{config-C8BfN_9P.js → config-wnjPtnjd.js} +46 -53
- package/dist/chunks/config-wnjPtnjd.js.map +1 -0
- package/dist/chunks/{defi-registry-B8V6dRVB.cjs → defi-registry-CyMKVT3z.cjs} +2 -2
- package/dist/chunks/defi-registry-CyMKVT3z.cjs.map +1 -0
- package/dist/chunks/{defi-registry-CD8EUcNu.js → defi-registry-DULXbu3D.js} +9 -9
- package/dist/chunks/defi-registry-DULXbu3D.js.map +1 -0
- package/dist/chunks/{depositStatus-BJA7tNqc.cjs → depositStatus-B9P1YXEU.cjs} +2 -2
- package/dist/chunks/depositStatus-B9P1YXEU.cjs.map +1 -0
- package/dist/chunks/{depositStatus-HosfExLl.js → depositStatus-Cgd_GDUt.js} +5 -5
- package/dist/chunks/depositStatus-Cgd_GDUt.js.map +1 -0
- package/dist/chunks/events-B9b3YdgM.cjs +2 -0
- package/dist/chunks/events-B9b3YdgM.cjs.map +1 -0
- package/dist/chunks/{events-BlzP_SCT.js → events-DU2wYlt_.js} +189 -191
- package/dist/chunks/events-DU2wYlt_.js.map +1 -0
- package/dist/chunks/{get-exchange-ratio-Bl6pt546.js → get-exchange-ratio-BvPUfcIQ.js} +2 -2
- package/dist/chunks/{get-exchange-ratio-Bl6pt546.js.map → get-exchange-ratio-BvPUfcIQ.js.map} +1 -1
- package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs → get-exchange-ratio-DGztGO7i.cjs} +2 -2
- package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs.map → get-exchange-ratio-DGztGO7i.cjs.map} +1 -1
- package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs → get-positions-summary-CC7BDtlY.cjs} +2 -2
- package/dist/chunks/get-positions-summary-CC7BDtlY.cjs.map +1 -0
- package/dist/chunks/{get-positions-summary-CaX2BCHp.js → get-positions-summary-DxAgmaMl.js} +2 -2
- package/dist/chunks/get-positions-summary-DxAgmaMl.js.map +1 -0
- package/dist/chunks/get-vault-tvl-B6rSrGi_.js +203 -0
- package/dist/chunks/get-vault-tvl-B6rSrGi_.js.map +1 -0
- package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs +2 -0
- package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs.map +1 -0
- package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs +2 -0
- package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs.map +1 -0
- package/dist/chunks/get-vault-withdrawals-W5CgNbqE.js +154 -0
- package/dist/chunks/get-vault-withdrawals-W5CgNbqE.js.map +1 -0
- package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js → getUserStakeAndBakeSignature-BRhWFYyY.js} +4 -4
- package/dist/chunks/getUserStakeAndBakeSignature-BRhWFYyY.js.map +1 -0
- package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs → getUserStakeAndBakeSignature-VlC_GHmz.cjs} +2 -2
- package/dist/chunks/getUserStakeAndBakeSignature-VlC_GHmz.cjs.map +1 -0
- package/dist/chunks/hex-BiCL4CPh.js +11 -0
- package/dist/chunks/hex-BiCL4CPh.js.map +1 -0
- package/dist/chunks/hex-DeJtv8eu.cjs +2 -0
- package/dist/chunks/hex-DeJtv8eu.cjs.map +1 -0
- package/dist/chunks/{lbtc-addresses-BlyGFWnW.js → lbtc-addresses-ClXt-tuB.js} +2 -2
- package/dist/chunks/{lbtc-addresses-BlyGFWnW.js.map → lbtc-addresses-ClXt-tuB.js.map} +1 -1
- package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs → lbtc-addresses-D3jG1VUC.cjs} +2 -2
- package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs.map → lbtc-addresses-D3jG1VUC.cjs.map} +1 -1
- package/dist/chunks/parameters-CcpaKGU2.js +24 -0
- package/dist/chunks/parameters-CcpaKGU2.js.map +1 -0
- package/dist/chunks/parameters-YNWmaAho.cjs +2 -0
- package/dist/chunks/parameters-YNWmaAho.cjs.map +1 -0
- package/dist/chunks/{statusConstants-BJIXJNIC.cjs → statusConstants-B-7VEYgO.cjs} +2 -2
- package/dist/chunks/statusConstants-B-7VEYgO.cjs.map +1 -0
- package/dist/chunks/{statusConstants-BQna5LGH.js → statusConstants-C3JHNUTC.js} +15 -17
- package/dist/chunks/statusConstants-C3JHNUTC.js.map +1 -0
- package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js → storeNetworkFeeSignature-CY_Z-Wtn.js} +2 -2
- package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js.map → storeNetworkFeeSignature-CY_Z-Wtn.js.map} +1 -1
- package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs → storeNetworkFeeSignature-DJgBfZp7.cjs} +2 -2
- package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs.map → storeNetworkFeeSignature-DJgBfZp7.cjs.map} +1 -1
- package/dist/chunks/token-addresses-C7H9E4qz.cjs +2 -0
- package/dist/chunks/token-addresses-C7H9E4qz.cjs.map +1 -0
- package/dist/chunks/{token-addresses-Ddar0FyS.js → token-addresses-DVnRPyu4.js} +16 -14
- package/dist/chunks/token-addresses-DVnRPyu4.js.map +1 -0
- package/dist/chunks/{tokens-HhVpKe3K.js → tokens-Btl3GXbc.js} +3 -3
- package/dist/chunks/tokens-Btl3GXbc.js.map +1 -0
- package/dist/chunks/{tokens-CBsz6l_2.cjs → tokens-DEYY7W7O.cjs} +2 -2
- package/dist/chunks/tokens-DEYY7W7O.cjs.map +1 -0
- package/dist/chunks/unwrapBtceToLbtcv-C4OxoVVU.js +321 -0
- package/dist/chunks/unwrapBtceToLbtcv-C4OxoVVU.js.map +1 -0
- package/dist/chunks/unwrapBtceToLbtcv-Dg-yUGpg.cjs +2 -0
- package/dist/chunks/unwrapBtceToLbtcv-Dg-yUGpg.cjs.map +1 -0
- package/dist/chunks/withdrawEarn-CTtVruit.cjs +7 -0
- package/dist/chunks/withdrawEarn-CTtVruit.cjs.map +1 -0
- package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js → withdrawEarn-QFaMhs0t.js} +965 -612
- package/dist/chunks/withdrawEarn-QFaMhs0t.js.map +1 -0
- package/dist/client/ApiNamespace.d.ts +3 -6
- package/dist/client/ApiNamespace.d.ts.map +1 -1
- package/dist/common/blockchain-identifier.d.ts.map +1 -1
- package/dist/common/chains.d.ts +1 -1
- package/dist/common/chains.d.ts.map +1 -1
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/contract-functions/cancelEarnWithdrawal/cancelEarnWithdrawal.d.ts +19 -0
- package/dist/contract-functions/cancelEarnWithdrawal/cancelEarnWithdrawal.d.ts.map +1 -0
- package/dist/contract-functions/cancelEarnWithdrawal/index.d.ts +2 -0
- package/dist/contract-functions/cancelEarnWithdrawal/index.d.ts.map +1 -0
- package/dist/contract-functions/depositEarn/depositEarn.d.ts +36 -0
- package/dist/contract-functions/depositEarn/depositEarn.d.ts.map +1 -0
- package/dist/contract-functions/depositEarn/index.d.ts +2 -0
- package/dist/contract-functions/depositEarn/index.d.ts.map +1 -0
- package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
- package/dist/contract-functions/getEarnPosition/getEarnPosition.d.ts +17 -16
- package/dist/contract-functions/getEarnPosition/getEarnPosition.d.ts.map +1 -1
- package/dist/contract-functions/getShareValue/getShareValue.d.ts +5 -15
- package/dist/contract-functions/getShareValue/getShareValue.d.ts.map +1 -1
- package/dist/contract-functions/getSharesByAddress/getSharesByAddress.d.ts +5 -20
- package/dist/contract-functions/getSharesByAddress/getSharesByAddress.d.ts.map +1 -1
- package/dist/contract-functions/index.d.ts +4 -2
- package/dist/contract-functions/index.d.ts.map +1 -1
- package/dist/contract-functions/previewWithdrawEarn/index.d.ts +2 -0
- package/dist/contract-functions/previewWithdrawEarn/index.d.ts.map +1 -0
- package/dist/contract-functions/previewWithdrawEarn/previewWithdrawEarn.d.ts +38 -0
- package/dist/contract-functions/previewWithdrawEarn/previewWithdrawEarn.d.ts.map +1 -0
- package/dist/contract-functions/signStakeAndBake/validation.d.ts.map +1 -1
- package/dist/contract-functions/withdrawEarn/index.d.ts +2 -0
- package/dist/contract-functions/withdrawEarn/index.d.ts.map +1 -0
- package/dist/contract-functions/withdrawEarn/withdrawEarn.d.ts +46 -0
- package/dist/contract-functions/withdrawEarn/withdrawEarn.d.ts.map +1 -0
- package/dist/contract-functions/wrapToBtce/wrapToBtce.d.ts.map +1 -1
- package/dist/contracts.cjs +1 -1
- package/dist/contracts.js +32 -30
- package/dist/core/assets/catalog.d.ts.map +1 -1
- package/dist/core/assets/utils.d.ts.map +1 -1
- package/dist/core/chains/utils.d.ts.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +19 -19
- package/dist/defi/defi-registry.d.ts.map +1 -1
- package/dist/defi/index.d.ts +1 -1
- package/dist/defi/index.d.ts.map +1 -1
- package/dist/defi.cjs +1 -1
- package/dist/defi.js +4 -4
- package/dist/entries/api.d.ts +14 -14
- package/dist/entries/api.d.ts.map +1 -1
- package/dist/entries/contracts.d.ts +4 -2
- package/dist/entries/contracts.d.ts.map +1 -1
- package/dist/entries/defi.d.ts +1 -1
- package/dist/entries/defi.d.ts.map +1 -1
- package/dist/entries/evm.d.ts +7 -7
- package/dist/entries/evm.d.ts.map +1 -1
- package/dist/entries/utils.d.ts +9 -9
- package/dist/entries/utils.d.ts.map +1 -1
- package/dist/entries/vaults.d.ts +1 -1
- package/dist/entries/vaults.d.ts.map +1 -1
- package/dist/evm.cjs +1 -1
- package/dist/evm.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +67 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +171 -174
- package/dist/index.js.map +1 -1
- package/dist/metrics.cjs +1 -1
- package/dist/metrics.js +1 -1
- package/dist/services/EvmService.d.ts.map +1 -1
- package/dist/shared/actions/BaseAction.d.ts.map +1 -1
- package/dist/shared/deposits/depositStatus.d.ts.map +1 -1
- package/dist/shared/validation/index.d.ts.map +1 -1
- package/dist/tokens/tokens.d.ts.map +1 -1
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/consoleLogger.d.ts.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +16 -16
- package/dist/vaults/index.d.ts +8 -10
- package/dist/vaults/index.d.ts.map +1 -1
- package/dist/vaults/lib/config.d.ts +148 -150
- package/dist/vaults/lib/config.d.ts.map +1 -1
- package/dist/vaults/lib/metrics/get-vault-apy.d.ts +2 -4
- package/dist/vaults/lib/metrics/get-vault-apy.d.ts.map +1 -1
- package/dist/vaults/lib/metrics/get-vault-points.d.ts +2 -5
- package/dist/vaults/lib/metrics/get-vault-points.d.ts.map +1 -1
- package/dist/vaults/lib/metrics/get-vault-tvl.d.ts +5 -8
- package/dist/vaults/lib/metrics/get-vault-tvl.d.ts.map +1 -1
- package/dist/vaults/lib/ops/deposit.d.ts +5 -14
- package/dist/vaults/lib/ops/deposit.d.ts.map +1 -1
- package/dist/vaults/lib/ops/get-vault-deposits.d.ts +9 -13
- package/dist/vaults/lib/ops/get-vault-deposits.d.ts.map +1 -1
- package/dist/vaults/lib/ops/get-vault-minimum-deposit.d.ts +4 -7
- package/dist/vaults/lib/ops/get-vault-minimum-deposit.d.ts.map +1 -1
- package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts +14 -18
- package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts.map +1 -1
- package/dist/vaults/lib/ops/preview-vault-deposit.d.ts +4 -8
- package/dist/vaults/lib/ops/preview-vault-deposit.d.ts.map +1 -1
- package/dist/vaults/lib/ops/withdraw.d.ts +11 -27
- package/dist/vaults/lib/ops/withdraw.d.ts.map +1 -1
- package/dist/vaults.cjs +1 -1
- package/dist/vaults.cjs.map +1 -1
- package/dist/vaults.js +91 -103
- package/dist/vaults.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/BtcActions-BczTnzRn.js.map +0 -1
- package/dist/chunks/BtcActions-PyJhuiZN.cjs +0 -2
- package/dist/chunks/BtcActions-PyJhuiZN.cjs.map +0 -1
- package/dist/chunks/EvmActions-D3RAK9_Z.cjs +0 -2
- package/dist/chunks/EvmActions-D3RAK9_Z.cjs.map +0 -1
- package/dist/chunks/EvmActions-DSKThOAy.js +0 -1341
- package/dist/chunks/EvmActions-DSKThOAy.js.map +0 -1
- package/dist/chunks/ReferralsClient-D8dHEk_X.cjs.map +0 -1
- package/dist/chunks/ReferralsClient-W-0-383w.js.map +0 -1
- package/dist/chunks/blockchain-identifier-BLPnwbIN.js.map +0 -1
- package/dist/chunks/blockchain-identifier-Bp-LTIdG.cjs.map +0 -1
- package/dist/chunks/bridge-7Eq_Jmi2.cjs.map +0 -1
- package/dist/chunks/bridge-DbB23m2a.js.map +0 -1
- package/dist/chunks/config-C8BfN_9P.js.map +0 -1
- package/dist/chunks/config-ow9X5H0c.cjs.map +0 -1
- package/dist/chunks/defi-registry-B8V6dRVB.cjs.map +0 -1
- package/dist/chunks/defi-registry-CD8EUcNu.js.map +0 -1
- package/dist/chunks/depositStatus-BJA7tNqc.cjs.map +0 -1
- package/dist/chunks/depositStatus-HosfExLl.js.map +0 -1
- package/dist/chunks/events-BlzP_SCT.js.map +0 -1
- package/dist/chunks/events-DNehj45M.cjs +0 -2
- package/dist/chunks/events-DNehj45M.cjs.map +0 -1
- package/dist/chunks/get-positions-summary-CaX2BCHp.js.map +0 -1
- package/dist/chunks/get-positions-summary-DdZvBmCN.cjs.map +0 -1
- package/dist/chunks/get-vault-tvl-CihHEkqK.js +0 -226
- package/dist/chunks/get-vault-tvl-CihHEkqK.js.map +0 -1
- package/dist/chunks/get-vault-tvl-DZ-xzehy.cjs +0 -2
- package/dist/chunks/get-vault-tvl-DZ-xzehy.cjs.map +0 -1
- package/dist/chunks/get-vault-withdrawals-DLwFMQEB.cjs +0 -2
- package/dist/chunks/get-vault-withdrawals-DLwFMQEB.cjs.map +0 -1
- package/dist/chunks/get-vault-withdrawals-QJOdxB5Z.js +0 -161
- package/dist/chunks/get-vault-withdrawals-QJOdxB5Z.js.map +0 -1
- package/dist/chunks/getUserStakeAndBakeSignature-BmY5j0OM.cjs.map +0 -1
- package/dist/chunks/getUserStakeAndBakeSignature-CqlrwA0t.js.map +0 -1
- package/dist/chunks/parameters-C_16L5ft.js +0 -11
- package/dist/chunks/parameters-C_16L5ft.js.map +0 -1
- package/dist/chunks/parameters-DK9cYCAH.cjs +0 -2
- package/dist/chunks/parameters-DK9cYCAH.cjs.map +0 -1
- package/dist/chunks/statusConstants-BJIXJNIC.cjs.map +0 -1
- package/dist/chunks/statusConstants-BQna5LGH.js.map +0 -1
- package/dist/chunks/time-I-BeyUkG.cjs +0 -2
- package/dist/chunks/time-I-BeyUkG.cjs.map +0 -1
- package/dist/chunks/time-Sa5gggPG.js +0 -24
- package/dist/chunks/time-Sa5gggPG.js.map +0 -1
- package/dist/chunks/token-addresses-Ddar0FyS.js.map +0 -1
- package/dist/chunks/token-addresses-DvY-Mw7b.cjs +0 -2
- package/dist/chunks/token-addresses-DvY-Mw7b.cjs.map +0 -1
- package/dist/chunks/tokens-CBsz6l_2.cjs.map +0 -1
- package/dist/chunks/tokens-HhVpKe3K.js.map +0 -1
- package/dist/chunks/unstakeLBTC-Bg8OsAMV.js.map +0 -1
- package/dist/chunks/unstakeLBTC-BmHvDxBN.cjs +0 -2
- package/dist/chunks/unstakeLBTC-BmHvDxBN.cjs.map +0 -1
- package/dist/chunks/withdraw-Bkp5-2dG.cjs +0 -12
- package/dist/chunks/withdraw-Bkp5-2dG.cjs.map +0 -1
- package/dist/chunks/withdraw-kf8mYbYH.js +0 -209
- package/dist/chunks/withdraw-kf8mYbYH.js.map +0 -1
- package/dist/chunks/wrapToBtce-By2mh503.js +0 -298
- package/dist/chunks/wrapToBtce-By2mh503.js.map +0 -1
- package/dist/chunks/wrapToBtce-DDeIlv3d.cjs +0 -2
- package/dist/chunks/wrapToBtce-DDeIlv3d.cjs.map +0 -1
- package/dist/contract-functions/getShareValue/index.d.ts +0 -2
- package/dist/contract-functions/getShareValue/index.d.ts.map +0 -1
- package/dist/contract-functions/getSharesByAddress/index.d.ts +0 -2
- package/dist/contract-functions/getSharesByAddress/index.d.ts.map +0 -1
package/dist/vaults.js
CHANGED
|
@@ -1,165 +1,153 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
vaultKey: f,
|
|
12
|
-
token: e = S.LBTC,
|
|
13
|
-
chainId: r = n.ethereum,
|
|
1
|
+
import { getEarnApy as z, getEarnDeposits as O, getEarnDepositsAllChains as Z, getEarnPoints as q, getEarnTVL as G } from "./chunks/get-vault-tvl-B6rSrGi_.js";
|
|
2
|
+
import { getTokenInfo as v, makePublicClient as y, fromBaseDenomination as C, toBaseDenomination as L } from "./chunks/tokens-Btl3GXbc.js";
|
|
3
|
+
import { ChainId as n, Token as N } from "./chunks/token-addresses-DVnRPyu4.js";
|
|
4
|
+
import { isEarnChain as R, EARN_VAULT as k } from "./chunks/config-wnjPtnjd.js";
|
|
5
|
+
import { getEarnWithdrawals as J, getEarnWithdrawalsAllChains as K } from "./chunks/get-vault-withdrawals-W5CgNbqE.js";
|
|
6
|
+
import S from "bignumber.js";
|
|
7
|
+
import { toBigInt as x } from "./chunks/numbers-CclN2Ohk.js";
|
|
8
|
+
async function Q({
|
|
9
|
+
token: o = N.LBTC,
|
|
10
|
+
chainId: e = n.ethereum,
|
|
14
11
|
rpcUrl: i,
|
|
15
12
|
env: m
|
|
16
|
-
}) {
|
|
17
|
-
const
|
|
18
|
-
if (!
|
|
19
|
-
throw new Error(`Unknown vault key: ${f}`);
|
|
20
|
-
if (!B(r))
|
|
13
|
+
} = {}) {
|
|
14
|
+
const r = k;
|
|
15
|
+
if (!R(e))
|
|
21
16
|
throw new Error(
|
|
22
|
-
`Unsupported chain id: ${
|
|
17
|
+
`Unsupported chain id: ${e}. Supported chains: ${r.chains.join(", ")}`
|
|
23
18
|
);
|
|
24
|
-
const s =
|
|
25
|
-
if (!s || !s.includes(
|
|
19
|
+
const s = r.tokens[o];
|
|
20
|
+
if (!s || !s.includes(e))
|
|
26
21
|
throw new Error(
|
|
27
|
-
`Token ${
|
|
22
|
+
`Token ${o} is not supported on chain ${e} for the Bitcoin Earn vault`
|
|
28
23
|
);
|
|
29
|
-
let
|
|
30
|
-
if (
|
|
31
|
-
const t = await
|
|
24
|
+
let c, u;
|
|
25
|
+
if (e === n.ethereum) {
|
|
26
|
+
const t = await v(o, n.ethereum, m, i);
|
|
32
27
|
if (!t)
|
|
33
|
-
throw new Error(`Could not resolve token info for ${
|
|
34
|
-
|
|
28
|
+
throw new Error(`Could not resolve token info for ${o} on Ethereum`);
|
|
29
|
+
c = t.address, u = t.decimals;
|
|
35
30
|
} else {
|
|
36
|
-
const t = await
|
|
31
|
+
const t = await v(o, n.ethereum, m);
|
|
37
32
|
if (!t)
|
|
38
33
|
throw new Error(
|
|
39
|
-
`Cannot determine minimum deposit for ${
|
|
34
|
+
`Cannot determine minimum deposit for ${o}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`
|
|
40
35
|
);
|
|
41
|
-
|
|
36
|
+
c = t.address, u = t.decimals;
|
|
42
37
|
}
|
|
43
|
-
const
|
|
38
|
+
const d = y({
|
|
44
39
|
chainId: n.ethereum,
|
|
45
|
-
rpcUrl:
|
|
40
|
+
rpcUrl: e === n.ethereum ? i : void 0,
|
|
46
41
|
env: m
|
|
47
|
-
}),
|
|
42
|
+
}), l = r.vaultContract.address, h = r.accountantContract.address, f = r.lensContract.address, p = r.lensContract.abi, b = r.accountantContract.abi, [w, E] = await d.multicall({
|
|
48
43
|
contracts: [
|
|
49
44
|
{
|
|
50
45
|
address: h,
|
|
51
|
-
abi:
|
|
46
|
+
abi: b,
|
|
52
47
|
functionName: "getRateInQuote",
|
|
53
|
-
args: [
|
|
48
|
+
args: [c]
|
|
54
49
|
},
|
|
55
50
|
{
|
|
56
|
-
address:
|
|
57
|
-
abi:
|
|
51
|
+
address: f,
|
|
52
|
+
abi: p,
|
|
58
53
|
functionName: "previewDeposit",
|
|
59
|
-
args: [
|
|
54
|
+
args: [c, 1n, l, h]
|
|
60
55
|
}
|
|
61
56
|
]
|
|
62
57
|
});
|
|
63
|
-
if (
|
|
58
|
+
if (w.status !== "success")
|
|
64
59
|
throw new Error(
|
|
65
|
-
`Failed to get exchange rate for ${
|
|
60
|
+
`Failed to get exchange rate for ${o}: ${w.error}`
|
|
66
61
|
);
|
|
67
|
-
if (
|
|
62
|
+
if (E.status !== "success")
|
|
68
63
|
throw new Error(
|
|
69
|
-
`Failed to preview deposit for ${
|
|
64
|
+
`Failed to preview deposit for ${o}: ${E.error}`
|
|
70
65
|
);
|
|
71
|
-
if (
|
|
72
|
-
return
|
|
73
|
-
const A =
|
|
74
|
-
if (await
|
|
75
|
-
address:
|
|
76
|
-
abi:
|
|
66
|
+
if (E.result > 0n)
|
|
67
|
+
return C("1", u);
|
|
68
|
+
const A = w.result, a = BigInt(10) ** BigInt(r.decimals), $ = (A + a - 1n) / a;
|
|
69
|
+
if (await d.readContract({
|
|
70
|
+
address: f,
|
|
71
|
+
abi: p,
|
|
77
72
|
functionName: "previewDeposit",
|
|
78
|
-
args: [
|
|
73
|
+
args: [c, $, l, h]
|
|
79
74
|
}) > 0n)
|
|
80
|
-
return
|
|
81
|
-
const
|
|
82
|
-
{ length:
|
|
83
|
-
(t,
|
|
84
|
-
),
|
|
75
|
+
return C($.toString(), u);
|
|
76
|
+
const T = 10, D = Array.from(
|
|
77
|
+
{ length: T },
|
|
78
|
+
(t, g) => $ + BigInt(g + 1)
|
|
79
|
+
), B = await d.multicall({
|
|
85
80
|
contracts: D.map((t) => ({
|
|
86
|
-
address:
|
|
87
|
-
abi:
|
|
81
|
+
address: f,
|
|
82
|
+
abi: p,
|
|
88
83
|
functionName: "previewDeposit",
|
|
89
|
-
args: [
|
|
84
|
+
args: [c, t, l, h]
|
|
90
85
|
}))
|
|
91
86
|
});
|
|
92
|
-
for (let t = 0; t <
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
95
|
-
return
|
|
87
|
+
for (let t = 0; t < B.length; t++) {
|
|
88
|
+
const g = B[t];
|
|
89
|
+
if (g.status === "success" && g.result > 0n)
|
|
90
|
+
return C(D[t].toString(), u);
|
|
96
91
|
}
|
|
97
92
|
throw new Error(
|
|
98
|
-
`Could not determine minimum deposit amount for ${
|
|
93
|
+
`Could not determine minimum deposit amount for ${o} after ${T} attempts`
|
|
99
94
|
);
|
|
100
95
|
}
|
|
101
|
-
async function
|
|
102
|
-
amount:
|
|
103
|
-
|
|
104
|
-
token: r = S.LBTC,
|
|
96
|
+
async function V({
|
|
97
|
+
amount: o,
|
|
98
|
+
token: e = N.LBTC,
|
|
105
99
|
chainId: i = n.ethereum,
|
|
106
100
|
rpcUrl: m,
|
|
107
|
-
env:
|
|
101
|
+
env: r
|
|
108
102
|
}) {
|
|
109
|
-
const s =
|
|
110
|
-
if (!
|
|
111
|
-
throw new Error(`Unknown vault key: ${e}`);
|
|
112
|
-
if (!B(i))
|
|
103
|
+
const s = k;
|
|
104
|
+
if (!R(i))
|
|
113
105
|
throw new Error(
|
|
114
106
|
`Unsupported chain id: ${i}. Supported chains: ${s.chains.join(", ")}`
|
|
115
107
|
);
|
|
116
|
-
const
|
|
117
|
-
if (!
|
|
108
|
+
const c = s.tokens[e];
|
|
109
|
+
if (!c || !c.includes(i))
|
|
118
110
|
throw new Error(
|
|
119
|
-
`Token ${
|
|
111
|
+
`Token ${e} is not supported on chain ${i} for the Bitcoin Earn vault`
|
|
120
112
|
);
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
113
|
+
const u = S(o);
|
|
114
|
+
if (u.isNegative() || u.isZero())
|
|
123
115
|
throw new Error("Deposit amount must be greater than zero");
|
|
124
|
-
let
|
|
116
|
+
let d, l;
|
|
125
117
|
if (i === n.ethereum) {
|
|
126
|
-
const a = await
|
|
118
|
+
const a = await v(e, n.ethereum, r, m);
|
|
127
119
|
if (!a)
|
|
128
|
-
throw new Error(`Could not resolve token info for ${
|
|
129
|
-
|
|
120
|
+
throw new Error(`Could not resolve token info for ${e} on Ethereum`);
|
|
121
|
+
d = a.address, l = a.decimals;
|
|
130
122
|
} else {
|
|
131
|
-
const a = await
|
|
123
|
+
const a = await v(e, n.ethereum, r);
|
|
132
124
|
if (!a)
|
|
133
125
|
throw new Error(
|
|
134
|
-
`Cannot preview deposit for ${
|
|
126
|
+
`Cannot preview deposit for ${e}: token not available on Ethereum. The Lens contract is Ethereum-only.`
|
|
135
127
|
);
|
|
136
|
-
|
|
128
|
+
d = a.address, l = a.decimals;
|
|
137
129
|
}
|
|
138
|
-
const h =
|
|
130
|
+
const h = x(L(u, l)), f = y({
|
|
139
131
|
chainId: n.ethereum,
|
|
140
132
|
rpcUrl: i === n.ethereum ? m : void 0,
|
|
141
|
-
env:
|
|
142
|
-
}),
|
|
143
|
-
address:
|
|
144
|
-
abi:
|
|
133
|
+
env: r
|
|
134
|
+
}), p = s.vaultContract.address, b = s.accountantContract.address, w = s.lensContract.address, E = s.lensContract.abi, A = await f.readContract({
|
|
135
|
+
address: w,
|
|
136
|
+
abi: E,
|
|
145
137
|
functionName: "previewDeposit",
|
|
146
|
-
args: [
|
|
138
|
+
args: [d, h, p, b]
|
|
147
139
|
});
|
|
148
|
-
return
|
|
140
|
+
return C(A.toString(), s.decimals);
|
|
149
141
|
}
|
|
150
142
|
export {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
ot as getVaultWithdrawals,
|
|
161
|
-
nt as getVaultWithdrawalsAllChains,
|
|
162
|
-
Q as previewVaultDeposit,
|
|
163
|
-
H as queueWithdraw
|
|
143
|
+
z as getEarnApy,
|
|
144
|
+
O as getEarnDeposits,
|
|
145
|
+
Z as getEarnDepositsAllChains,
|
|
146
|
+
Q as getEarnMinimumDeposit,
|
|
147
|
+
q as getEarnPoints,
|
|
148
|
+
G as getEarnTVL,
|
|
149
|
+
J as getEarnWithdrawals,
|
|
150
|
+
K as getEarnWithdrawalsAllChains,
|
|
151
|
+
V as previewEarnDeposit
|
|
164
152
|
};
|
|
165
153
|
//# sourceMappingURL=vaults.js.map
|
package/dist/vaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaults.js","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.js","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":"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"}
|
package/package.json
CHANGED