adjust slippage page
This commit is contained in:
parent
0a49ac56f8
commit
d1fbf855a8
|
@ -65,6 +65,8 @@ const DashboardSuggestedValues = ({
|
|||
? getPythPresets(LISTING_PRESETS)
|
||||
: getSwitchBoardPresets(LISTING_PRESETS)
|
||||
|
||||
const [proposedTier, setProposedTier] =
|
||||
useState<LISTING_PRESETS_KEY>('liab_1')
|
||||
const [suggestedTier, setSuggestedTier] =
|
||||
useState<LISTING_PRESETS_KEY>('liab_1')
|
||||
const [proposing, setProposing] = useState(false)
|
||||
|
@ -103,6 +105,7 @@ const DashboardSuggestedValues = ({
|
|||
bank.oracleProvider === OracleProvider.Pyth,
|
||||
)
|
||||
|
||||
setProposedTier(suggestedTier)
|
||||
setSuggestedTier(suggestedTier)
|
||||
}, [bank.name, bank.oracleProvider, priceImpactsFiltered])
|
||||
|
||||
|
@ -314,7 +317,7 @@ const DashboardSuggestedValues = ({
|
|||
|
||||
const suggestedValues = getPresetWithAdjustedDepositLimit(
|
||||
getPresetWithAdjustedNetBorrows(
|
||||
PRESETS[suggestedTier as LISTING_PRESETS_KEY] as LISTING_PRESET,
|
||||
PRESETS[proposedTier as LISTING_PRESETS_KEY] as LISTING_PRESET,
|
||||
bank.nativeDeposits().mul(bank.price).toNumber(),
|
||||
),
|
||||
bank.uiPrice,
|
||||
|
@ -358,14 +361,15 @@ const DashboardSuggestedValues = ({
|
|||
{bank.name} - Suggested tier: {PRESETS[suggestedTier].preset_name}
|
||||
</span>
|
||||
<Select
|
||||
value={PRESETS[suggestedTier].preset_name}
|
||||
onChange={(tier: LISTING_PRESETS_KEY) => setSuggestedTier(tier)}
|
||||
value={PRESETS[proposedTier].preset_name}
|
||||
onChange={(tier: LISTING_PRESETS_KEY) => setProposedTier(tier)}
|
||||
className="w-full"
|
||||
>
|
||||
{Object.keys(PRESETS).map((name) => (
|
||||
<Select.Option key={name} value={name}>
|
||||
<div className="flex w-full items-center justify-between">
|
||||
{PRESETS[name as LISTING_PRESETS_KEY].preset_name}
|
||||
{PRESETS[name as LISTING_PRESETS_KEY].preset_name}{' '}
|
||||
{name === suggestedTier ? '- suggested' : ''}
|
||||
</div>
|
||||
</Select.Option>
|
||||
))}
|
||||
|
@ -657,7 +661,7 @@ const DashboardSuggestedValues = ({
|
|||
proposeNewSuggestedValues(
|
||||
bank,
|
||||
invalidKeys,
|
||||
suggestedTier as LISTING_PRESETS_KEY,
|
||||
proposedTier as LISTING_PRESETS_KEY,
|
||||
)
|
||||
}
|
||||
disabled={!wallet.connected || proposing}
|
||||
|
|
|
@ -6,9 +6,13 @@ import { Table, Td, Th, TrBody, TrHead } from '@components/shared/TableElements'
|
|||
import { PublicKey } from '@solana/web3.js'
|
||||
import { formatNumericValue } from 'utils/numbers'
|
||||
import { toUiDecimals } from '@blockworks-foundation/mango-v4'
|
||||
import { useState } from 'react'
|
||||
import { useMemo, useState } from 'react'
|
||||
import Select from '@components/forms/Select'
|
||||
import Input from '@components/forms/Input'
|
||||
import {
|
||||
LISTING_PRESETS,
|
||||
getMidPriceImpacts,
|
||||
} from '@blockworks-foundation/mango-v4-settings/lib/helpers/listingTools'
|
||||
|
||||
export async function getStaticProps({ locale }: { locale: string }) {
|
||||
return {
|
||||
|
@ -61,6 +65,7 @@ const RiskDashboard: NextPage = () => {
|
|||
'Side',
|
||||
...group.pis.map((x) => formatValue(x.target_amount)),
|
||||
'Init/Main Weight',
|
||||
'Suggested tier',
|
||||
]),
|
||||
]
|
||||
: []
|
||||
|
@ -75,6 +80,7 @@ const RiskDashboard: NextPage = () => {
|
|||
avg_price_impact: number
|
||||
p90: number
|
||||
p95: number
|
||||
target_amount: number
|
||||
}
|
||||
| string
|
||||
}
|
||||
|
@ -92,6 +98,7 @@ const RiskDashboard: NextPage = () => {
|
|||
avg_price_impact: val.avg_price_impact_percent,
|
||||
p90: val.p90,
|
||||
p95: val.p95,
|
||||
target_amount: val.target_amount,
|
||||
}
|
||||
} else {
|
||||
const newItem = {
|
||||
|
@ -101,6 +108,7 @@ const RiskDashboard: NextPage = () => {
|
|||
avg_price_impact: val.avg_price_impact_percent,
|
||||
p90: val.p90,
|
||||
p95: val.p95,
|
||||
target_amount: val.target_amount,
|
||||
},
|
||||
}
|
||||
acc.push(newItem)
|
||||
|
@ -108,6 +116,30 @@ const RiskDashboard: NextPage = () => {
|
|||
|
||||
return acc
|
||||
}, [] as TransformedPis[])
|
||||
const symbolToPresetName = useMemo(
|
||||
() => (group ? getMidPriceImpacts(group.pis) : []),
|
||||
[group],
|
||||
)
|
||||
.filter((x) => x.avg_price_impact_percent < 1)
|
||||
.reduce(
|
||||
(acc, val, index, pisFiltred) => {
|
||||
if (!acc[val.symbol]) {
|
||||
acc[val.symbol] =
|
||||
Object.values(LISTING_PRESETS).find(
|
||||
(x) =>
|
||||
x.preset_target_amount ===
|
||||
pisFiltred
|
||||
.filter((pis) => pis.symbol === val.symbol)
|
||||
.sort(
|
||||
(a, b) =>
|
||||
b.avg_price_impact_percent - a.avg_price_impact_percent,
|
||||
)[0].target_amount,
|
||||
)?.preset_name || 'C'
|
||||
}
|
||||
return acc
|
||||
},
|
||||
{} as { [symbol: string]: string },
|
||||
)
|
||||
|
||||
return (
|
||||
<div className="grid grid-cols-12">
|
||||
|
@ -268,6 +300,13 @@ const RiskDashboard: NextPage = () => {
|
|||
formatValue(bank.maintLiabWeight.toNumber())
|
||||
}`}
|
||||
</Td>
|
||||
<Td xBorder>
|
||||
{idx % 2 === 0
|
||||
? symbolToPresetName[row.symbol]
|
||||
? symbolToPresetName[row.symbol]
|
||||
: 'C'
|
||||
: ''}
|
||||
</Td>
|
||||
</TrBody>
|
||||
)
|
||||
})}
|
||||
|
|
Loading…
Reference in New Issue