Skip to content

Commit

Permalink
merge main
Browse files Browse the repository at this point in the history
  • Loading branch information
saml33 committed Dec 30, 2023
2 parents 2c98957 + d1fbf85 commit fcba283
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 24 deletions.
52 changes: 34 additions & 18 deletions components/modals/DashboardSuggestedValuesModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
Group,
OracleProvider,
PriceImpact,
toUiDecimals,
} from '@blockworks-foundation/mango-v4'
import { AccountMeta, Transaction } from '@solana/web3.js'
import { BN } from '@project-serum/anchor'
Expand Down Expand Up @@ -64,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)
Expand Down Expand Up @@ -102,6 +105,7 @@ const DashboardSuggestedValues = ({
bank.oracleProvider === OracleProvider.Pyth,
)

setProposedTier(suggestedTier)
setSuggestedTier(suggestedTier)
}, [bank.name, bank.oracleProvider, priceImpactsFiltered])

Expand All @@ -113,7 +117,14 @@ const DashboardSuggestedValues = ({
) => {
const proposalTx = []
const mintInfo = group!.mintInfosMapByTokenIndex.get(bank.tokenIndex)!
const preset = PRESETS[tokenTier]
const preset = getPresetWithAdjustedDepositLimit(
getPresetWithAdjustedNetBorrows(
PRESETS[tokenTier],
bank.nativeDeposits().mul(bank.price).toNumber(),
),
bank.uiPrice,
bank.mintDecimals,
)

const fieldsToChange = invalidFieldsKeys.reduce(
(obj, key) => ({ ...obj, [key]: preset[key as keyof typeof preset] }),
Expand Down Expand Up @@ -143,7 +154,7 @@ const DashboardSuggestedValues = ({
const isThereNeedOfSendingRateConfigs = Object.values(rateConfigs).filter(
(x) => x !== null,
).length

console.log(fieldsToChange)
const ix = await client!.program.methods
.tokenEdit(
null,
Expand Down Expand Up @@ -306,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,
Expand Down Expand Up @@ -347,22 +358,21 @@ const DashboardSuggestedValues = ({
>
<h3 className="mb-6">
<span>
{bank.name} - Suggested tier: {suggestedTier}
{bank.name} - Suggested tier: {PRESETS[suggestedTier].preset_name}
</span>
<Select
value={suggestedTier}
onChange={(tier) => setSuggestedTier(tier)}
value={PRESETS[proposedTier].preset_name}
onChange={(tier: LISTING_PRESETS_KEY) => setProposedTier(tier)}
className="w-full"
>
{Object.keys(PRESETS)
.filter((x) => x !== 'UNTRUSTED')
.map((name) => (
<Select.Option key={name} value={name}>
<div className="flex w-full items-center justify-between">
{name}
</div>
</Select.Option>
))}
{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}{' '}
{name === suggestedTier ? '- suggested' : ''}
</div>
</Select.Option>
))}
</Select>
</h3>
<div className="flex max-h-[600px] w-full flex-col overflow-auto">
Expand Down Expand Up @@ -595,10 +605,16 @@ const DashboardSuggestedValues = ({
/>
<KeyValuePair
label="Deposit Limit"
value={`${formattedBankValues.depositLimit}`}
value={`${toUiDecimals(
new BN(formattedBankValues.depositLimit.toString()),
bank.mintDecimals,
)}`}
proposedValue={
suggestedFields.depositLimit !== undefined &&
`${suggestedFields.depositLimit}`
`${toUiDecimals(
new BN(suggestedFields.depositLimit.toString()),
bank.mintDecimals,
)}`
}
/>
<KeyValuePair
Expand Down Expand Up @@ -645,7 +661,7 @@ const DashboardSuggestedValues = ({
proposeNewSuggestedValues(
bank,
invalidKeys,
suggestedTier as LISTING_PRESETS_KEY,
proposedTier as LISTING_PRESETS_KEY,
)
}
disabled={!wallet.connected || proposing}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"dependencies": {
"@blockworks-foundation/mango-feeds": "0.1.7",
"@blockworks-foundation/mango-mints-redemption": "^0.0.10",
"@blockworks-foundation/mango-v4": "0.21.7",
"@blockworks-foundation/mango-v4": "0.21.8",
"@blockworks-foundation/mango-v4-settings": "0.4.3",
"@blockworks-foundation/mangolana": "0.0.1-beta.15",
"@headlessui/react": "1.6.6",
Expand Down
41 changes: 40 additions & 1 deletion pages/dashboard/slippage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -61,6 +65,7 @@ const RiskDashboard: NextPage = () => {
'Side',
...group.pis.map((x) => formatValue(x.target_amount)),
'Init/Main Weight',
'Suggested tier',
]),
]
: []
Expand All @@ -75,6 +80,7 @@ const RiskDashboard: NextPage = () => {
avg_price_impact: number
p90: number
p95: number
target_amount: number
}
| string
}
Expand All @@ -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 = {
Expand All @@ -101,13 +108,38 @@ 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)
}

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">
Expand Down Expand Up @@ -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>
)
})}
Expand Down
14 changes: 14 additions & 0 deletions public/icons/corn.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions utils/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ export const CUSTOM_TOKEN_ICONS: { [key: string]: boolean } = {
bonk: true,
btc: true,
chai: true,
corn: true,
crown: true,
dai: true,
dual: true,
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@
bn.js "^5.2.1"
eslint-config-prettier "^9.0.0"

"@blockworks-foundation/mango-v4@0.21.7":
version "0.21.7"
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.21.7.tgz#698292fe2f1f3646d0cc6a7ea0d2c7204ecd9b03"
integrity sha512-rjufKVva3mgyVYtr2Fg4Mo9RPqGNnTVht2o3o2HMsaTMamYkXEZtu36NkCX0SFKY/PV5+ZPeY0CmtxnBZ5Y8cA==
"@blockworks-foundation/mango-v4@0.21.8":
version "0.21.8"
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.21.8.tgz#d3179560375b80b5f9b61af91595968d617b978d"
integrity sha512-Tgg0zTFDEprkxwXJAdGcDfXfS8dK6V5gBXD79o2h9/7+Nj6eh3y6J7iKaSmjPFQ9FViesB2muc1Q2lVBUnwIMg==
dependencies:
"@blockworks-foundation/mango-v4-settings" "^0.2.16"
"@coral-xyz/anchor" "^0.28.1-beta.2"
Expand Down

0 comments on commit fcba283

Please sign in to comment.