fix market price

This commit is contained in:
saml33 2022-11-17 20:17:58 +11:00
parent 332dacbad3
commit 8bd4d2e976
2 changed files with 20 additions and 10 deletions

View File

@ -207,11 +207,15 @@ const Balance = ({ bank }: { bank: Bank }) => {
const set = mangoStore.getState().set
const tradeForm = mangoStore.getState().tradeForm
let price = new Decimal(tradeForm.price).toNumber()
let price: number
if (tradeForm.tradeType === 'Market') {
const orderbook = mangoStore.getState().selectedMarket.orderbook
price = calculateMarketPrice(orderbook, balance, tradeForm.side, type)
}
const side =
(balance > 0 && type === 'quote') || (balance < 0 && type === 'base')
? 'buy'
: 'sell'
price = calculateMarketPrice(orderbook, balance, side, type)
} else price = new Decimal(tradeForm.price).toNumber()
if (balance > 0) {
if (type === 'quote') {

View File

@ -192,13 +192,19 @@ const AdvancedTradeForm = () => {
const group = mangoStore.getState().group
if (!group || !selectedMarket) return
if (selectedMarket instanceof Serum3Market) {
const baseBank = group?.getFirstBankByTokenIndex(
selectedMarket.baseTokenIndex
)
if (baseBank.uiPrice) {
const price = baseBank.uiPrice.toString()
if (tradeForm.tradeType === 'Limit') {
const baseBank = group?.getFirstBankByTokenIndex(
selectedMarket.baseTokenIndex
)
if (baseBank.uiPrice) {
const price = baseBank.uiPrice.toString()
set((s) => {
s.tradeForm.price = price
})
}
} else {
set((s) => {
s.tradeForm.price = price
s.tradeForm.price = ''
})
}
} else {
@ -206,7 +212,7 @@ const AdvancedTradeForm = () => {
s.tradeForm.price = selectedMarket._uiPrice.toString()
})
}
}, [set, selectedMarket])
}, [set, selectedMarket, tradeForm])
const handlePlaceOrder = useCallback(async () => {
const client = mangoStore.getState().client