Skip to content

Commit 95e9d4c

Browse files
authored
Improve ltv percent logic (#193)
* improve ltv percent logic * remove unused
1 parent 0d812e6 commit 95e9d4c

File tree

5 files changed

+8
-44
lines changed

5 files changed

+8
-44
lines changed

src/methods/osToken/helpers/getBurnAmount.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { validateArgs, getValidLtvPercent } from '../../../utils'
1+
import { constants, validateArgs } from '../../../utils'
22
import { wrapAbortPromise } from '../../../modules/gql-module'
33

44

@@ -23,9 +23,8 @@ const getBurnAmount = async (values: GetBurnAmountInput) => {
2323
return 0n
2424
}
2525

26-
const percent = await getValidLtvPercent({ vaultAddress, ltvPercent, contracts })
26+
const stakedWithPercent = (stakedAssets - newStakedAssets) * ltvPercent / constants.blockchain.amount1
2727

28-
const stakedWithPercent = (stakedAssets - newStakedAssets) * percent / 10_000n
2928
const assetsToBurn = mintedAssets - stakedWithPercent
3029

3130
if (assetsToBurn > 0) {

src/methods/osToken/requests/getMaxMint.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { constants, validateArgs, getValidLtvPercent } from '../../../utils'
1+
import { constants, validateArgs } from '../../../utils'
22
import { wrapAbortPromise } from '../../../modules/gql-module'
33

44

@@ -20,12 +20,9 @@ const getMaxMint = async (values: GetMaxMintInput) => {
2020
return 0n
2121
}
2222

23-
const [ avgRewardPerSecond, percent ] = await Promise.all([
24-
contracts.base.mintTokenController.avgRewardPerSecond(),
25-
getValidLtvPercent({ vaultAddress, ltvPercent, contracts }),
26-
])
23+
const avgRewardPerSecond = await contracts.base.mintTokenController.avgRewardPerSecond()
2724

28-
const maxMintedAssets = stakedAssets * percent / 10_000n
25+
const maxMintedAssets = stakedAssets * ltvPercent / constants.blockchain.amount1
2926
const maxMintedAssetsHourReward = (maxMintedAssets * avgRewardPerSecond * 3600n) / constants.blockchain.amount1
3027
const canMintAssets = maxMintedAssets - maxMintedAssetsHourReward - mintedAssets
3128

src/methods/vault/requests/getMaxWithdraw.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { parseEther } from 'ethers'
22

3-
import { constants, validateArgs, getValidLtvPercent } from '../../../utils'
3+
import { constants, validateArgs } from '../../../utils'
44
import { wrapAbortPromise } from '../../../modules/gql-module'
55

66

@@ -28,14 +28,11 @@ const getMaxWithdraw = async (values: GetMaxWithdrawInput) => {
2828
return 0n
2929
}
3030

31-
const [ avgRewardPerSecond, percent ] = await Promise.all([
32-
contracts.base.mintTokenController.avgRewardPerSecond(),
33-
getValidLtvPercent({ vaultAddress, ltvPercent, contracts }),
34-
])
31+
const avgRewardPerSecond = await contracts.base.mintTokenController.avgRewardPerSecond()
3532

3633
const secondsInHour = 60n * 60n
3734
const gap = avgRewardPerSecond * secondsInHour * mintedAssets / constants.blockchain.amount1
38-
const lockedAssets = (mintedAssets + gap) * 10_000n / percent
35+
const lockedAssets = (mintedAssets + gap) * constants.blockchain.amount1 / ltvPercent
3936
const maxWithdrawAssets = stakedAssets - lockedAssets
4037

4138
return maxWithdrawAssets > min ? maxWithdrawAssets : 0n

src/utils/getValidLtvPercent.ts

-28
This file was deleted.

src/utils/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,3 @@ export { default as createProvider } from './createProvider'
1010
export { default as getVaultVersion } from './getVaultVersion'
1111
export { default as getNetworkTypes } from './getNetworkTypes'
1212
export { default as getVaultFactory } from './getVaultFactory'
13-
export { default as getValidLtvPercent } from './getValidLtvPercent'

0 commit comments

Comments
 (0)