Skip to content

Commit 397a1bf

Browse files
authored
Merge pull request #35 from mars-protocol/v1.5.2
v1.5.2
2 parents 61d3db0 + fbafbbd commit 397a1bf

File tree

10 files changed

+28
-26
lines changed

10 files changed

+28
-26
lines changed

src/components/common/Containers/CommonContainer.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ export const CommonContainer = ({ children }: CommonContainerProps) => {
6666
const setLcdClient = useStore((s) => s.setLcdClient)
6767
const setChainInfo = useStore((s) => s.setChainInfo)
6868
const setUserBalancesState = useStore((s) => s.setUserBalancesState)
69-
const setUserWalletAddress = useStore((s) => s.setUserWalletAddress)
70-
const pythVaa = useStore((s) => s.pythVaa)
7169

7270
// ------------------
7371
// SETTERS
@@ -95,8 +93,11 @@ export const CommonContainer = ({ children }: CommonContainerProps) => {
9593

9694
useEffect(() => {
9795
if (!connectedWallet || connectedWallet.network.chainId !== chainId) return
98-
setUserWalletAddress(connectedWallet.account.address)
99-
}, [setUserWalletAddress, connectedWallet, chainId])
96+
useStore.setState({
97+
userWalletAddress: connectedWallet.account.address,
98+
isLedger: connectedWallet.account.isLedger,
99+
})
100+
}, [connectedWallet, chainId])
100101

101102
useEffect(() => {
102103
if (!rpc || !chainId) return

src/components/common/Header/ConnectedButton.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export const ConnectedButton = () => {
7373
useEffect(() => {
7474
if (userWalletAddress === connectedWallet?.account.address) return
7575
useStore.setState({
76+
isLedger: !!connectedWallet?.account.isLedger,
7677
userWalletAddress: connectedWallet?.account.address,
7778
marketAssetLiquidity: [],
7879
marketInfo: [],

src/components/common/TxModal/Action.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,13 +224,7 @@ export const Action = ({
224224
const calculateMaxBorrowableAmount = useMemo((): number => {
225225
const assetLiquidity = Number(findByDenom(marketAssetLiquidity, denom)?.amount || 0)
226226

227-
return maxBorrowableAmount(
228-
assetLiquidity,
229-
availableBalanceBaseCurrency,
230-
new BigNumber(currentAssetPrice)
231-
.shiftedBy(baseCurrency.decimals - (currentAsset?.decimals || 0))
232-
.toNumber(),
233-
)
227+
return maxBorrowableAmount(assetLiquidity, availableBalanceBaseCurrency, currentAssetPrice)
234228
}, [
235229
denom,
236230
availableBalanceBaseCurrency,

src/components/fields/AvailableVaultsTable/AvailableVaultsTableMobile.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,23 @@ export const AvailableVaultsTableMobile = () => {
2323
>
2424
<div className={styles.container}>
2525
{availableVaults.map((vault, i) => {
26+
const maxLeverage = ltvToLeverage(vault.ltv.contract)
2627
const primaryBorrowAsset = redBankAssets.find(
2728
(asset) => asset.denom === vault.denoms.primary,
2829
)
2930
const secondaryBorrowAsset = redBankAssets.find(
3031
(asset) => asset.denom === vault.denoms.secondary,
3132
)
32-
const borrowRate = Math.min(
33-
Number(primaryBorrowAsset?.borrowRate || 1000),
34-
Number(secondaryBorrowAsset?.borrowRate || 1000),
35-
)
36-
const maxBorrowRate = borrowRate * (ltvToLeverage(vault.ltv.contract) - 1)
37-
const minAPY = new BigNumber(vault.apy.total || 0).toNumber()
3833

39-
const leverage = ltvToLeverage(vault.ltv.contract)
40-
const maxAPY =
41-
new BigNumber(minAPY).times(leverage).decimalPlaces(2).toNumber() - maxBorrowRate
34+
const borrowRates = [0]
35+
if (primaryBorrowAsset?.borrowEnabled) borrowRates.push(primaryBorrowAsset.borrowRate)
36+
if (secondaryBorrowAsset?.borrowEnabled) borrowRates.push(secondaryBorrowAsset.borrowRate)
37+
38+
const borrowRate = Math.min(...borrowRates)
39+
40+
const maxBorrowRate = borrowRate * (ltvToLeverage(vault.ltv.contract) - 1)
41+
const minAPY = vault.apy.total ?? 0
42+
const maxAPY = new BigNumber(minAPY).times(maxLeverage).toNumber() - maxBorrowRate
4243

4344
return (
4445
<Link
@@ -81,7 +82,7 @@ export const AvailableVaultsTableMobile = () => {
8182
</div>
8283
<div className='s'>
8384
<span className='faded'>{t('fields.leverage')} </span>
84-
<AnimatedNumber amount={leverage} suffix='x' />
85+
<AnimatedNumber amount={maxLeverage} suffix='x' />
8586
</div>
8687
<div className='s'>
8788
<span className='faded'>{t('fields.vaultCap')} </span>

src/functions/redbank/produceUpdatedAssetData.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ export const produceUpdatedAssetData = (
1616
const asset = redBankAssets.find((redBankAsset) => redBankAsset.denom === denom)
1717
if (!asset) return assetData
1818

19-
const additionalDecimals = asset.decimals - baseCurrencyDecimals
20-
const amountAdjustedForDecimals = demagnify(updateAmount, additionalDecimals)
19+
const amountAdjustedForDecimals = updateAmount
2120
// We are only interested in display currency balance. The asset will update post tx.
2221
assetData.push({
2322
...asset,

src/hooks/queries/useEstimateFarmFee.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ export const useEstimateFarmFee = (props: Props) => {
2121
const networkConfig = useStore((s) => s.networkConfig)
2222
const pythVaa = useStore((s) => s.pythVaa)
2323
const pythContractAddress = useStore((s) => s.networkConfig.contracts?.pyth)
24+
const isLedger = useStore((s) => s.isLedger)
2425
const pythVaaMessage = getPythVaaMessage(
2526
pythVaa,
2627
networkConfig.assets.base.denom,
28+
isLedger,
2729
pythContractAddress,
2830
userWalletAddress,
2931
)

src/hooks/queries/useEstimateFee.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ export const useEstimateFee = (props: Props) => {
2424
const networkConfig = useStore((s) => s.networkConfig)
2525
const baseCurrencyDenom = networkConfig.assets.base.denom
2626
const pythContractAddress = networkConfig.contracts?.pyth
27+
const isLedger = useStore((s) => s.isLedger)
2728
const pythVaaMessage = getPythVaaMessage(
2829
pythVaa,
2930
baseCurrencyDenom,
31+
isLedger,
3032
pythContractAddress,
3133
userWalletAddress,
3234
)

src/libs/pyth.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import { MsgExecuteContract } from '@marsprotocol/wallet-connector'
33
export const getPythVaaMessage = (
44
pythVaa: VaaInformation,
55
baseCurrencyDenom: string,
6+
isLedger: boolean,
67
pythContractAddress?: string,
78
sender?: string,
89
): MsgExecuteContract | undefined => {
9-
if (!sender || pythVaa.data.length === 0 || !pythContractAddress) return
10+
if (!sender || pythVaa.data.length === 0 || !pythContractAddress || isLedger) return
1011

1112
return new MsgExecuteContract({
1213
sender,

src/store/interfaces/common.interface.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export interface CommonSlice {
3737
}
3838
latestBlockHeight: number
3939
lcdClient?: LcdClient
40+
isLedger: boolean
4041
marketDeposits: Coin[]
4142
networkConfig: NetworkConfig
4243
otherAssets: OtherAsset[]
@@ -81,7 +82,6 @@ export interface CommonSlice {
8182
setNetworkError: (isError: boolean) => void
8283
setQueryError: (name: string, isError: boolean) => void
8384
setServerError: (isError: boolean) => void
84-
setUserWalletAddress: (address: string) => void
8585
// ------------------
8686
// QUERY RELATED
8787
// ------------------

src/store/slices/common.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const commonSlice = (
4040
query: false,
4141
server: false,
4242
},
43+
isLedger: false,
4344
latestBlockHeight: 0,
4445
networkConfig: getNetworkConfig(SUPPORTED_CHAINS[0].chainId),
4546
marketDeposits: [],
@@ -116,6 +117,7 @@ const commonSlice = (
116117
const pythVaaMessage = getPythVaaMessage(
117118
get().pythVaa,
118119
baseCurrencyDenom,
120+
get().isLedger,
119121
pythContractAddress,
120122
get().userWalletAddress,
121123
)
@@ -252,7 +254,6 @@ const commonSlice = (
252254
tutorialSteps[type] = step ? step : tutorialSteps[type] + 1
253255
set({ tutorialSteps })
254256
},
255-
setUserWalletAddress: (address: string) => set({ userWalletAddress: address }),
256257
// -------------------
257258
// QUERY RELATED
258259
// -------------------

0 commit comments

Comments
 (0)