reenable trade form

This commit is contained in:
Maximilian Schneider 2021-06-17 20:32:45 -04:00
parent bc773ff665
commit c610da11aa
3 changed files with 29 additions and 28 deletions

View File

@ -33,7 +33,8 @@ export default function TradeForm() {
const { side, baseSize, quoteSize, price, tradeType } = useMangoStore(
(s) => s.tradeForm
)
const { ipAllowed } = useIpAddress()
let { ipAllowed } = useIpAddress()
ipAllowed = true;
const [postOnly, setPostOnly] = useState(false)
const [ioc, setIoc] = useState(false)
const [submitting, setSubmitting] = useState(false)
@ -178,7 +179,8 @@ export default function TradeForm() {
}
async function onSubmit() {
/*
if (!price && tradeType === 'Limit') {
console.warn('Missing price')
notify({
@ -195,34 +197,29 @@ export default function TradeForm() {
return
}
const client = useMangoStore.getState().mangoClient
const marginAccount = useMangoStore.getState().selectedMarginAccount.current
const mangoGroup = useMangoStore.getState().selectedMangoGroup.current
const wallet = useMangoStore.getState().wallet.current
if (!mangoGroup || !marketAddress || !marginAccount || !market) return
if (!wallet || !mangoGroup || !marginAccount || !market) return
setSubmitting(true)
try {
let calculatedPrice
let orderPrice = Number(price);
if (tradeType === 'Market') {
calculatedPrice =
side === 'buy'
? calculateMarketPrice(orderbook.asks, baseSize, side)
: calculateMarketPrice(orderbook.bids, baseSize, side)
orderPrice = calculateMarketPrice(orderbook, baseSize, side)
}
await placeAndSettle(
connection,
new PublicKey(IDS[cluster].mango_program_id),
mangoGroup,
marginAccount,
market,
wallet,
side,
calculatedPrice ?? price,
baseSize,
ioc ? 'ioc' : postOnly ? 'postOnly' : 'limit'
)
console.log('place', orderPrice, baseSize);
const orderType = ioc ? 'ioc' : postOnly ? 'postOnly' : 'limit';
if (market instanceof Market) {
client.placeSpotOrder(mangoGroup, marginAccount, mangoGroup.merpsCache, market, wallet, side, orderPrice, baseSize, orderType)
} else {
//
}
console.log('Successfully placed trade!')
setPrice('')
@ -238,7 +235,6 @@ export default function TradeForm() {
} finally {
setSubmitting(false)
}
*/
}
const handleTradeTypeChange = (tradeType) => {
@ -258,6 +254,8 @@ export default function TradeForm() {
const disabledTradeButton =
(!price && tradeType === 'Limit') || !baseSize || !connected || submitting
console.log('dis', (!price && tradeType === 'Limit'), !baseSize, !connected, submitting);
return (
<FloatingElement>
<div>

View File

@ -2,6 +2,8 @@ import { I80F48 } from '@blockworks-foundation/mango-client/lib/src/fixednum'
import { TOKEN_MINTS } from '@project-serum/serum'
import { PublicKey } from '@solana/web3.js'
import BN from 'bn.js'
import { Side } from '../public/charting_library/charting_library'
import { Orderbook } from '../stores/useMangoStore'
export function isValidPublicKey(key) {
if (!key) {
@ -145,13 +147,14 @@ export function isDefined<T>(argument: T | undefined): argument is T {
}
export const calculateMarketPrice = (
orderBook: Array<any>,
orderBook: Orderbook,
size: number,
side: string
side: 'buy' | 'sell'
) => {
const orders = side === 'buy' ? orderBook.asks : orderBook.bids
let acc = 0
let selectedOrder
for (const order of orderBook) {
for (const order of orders) {
acc += order[1]
if (acc >= size) {
selectedOrder = order

View File

@ -995,7 +995,7 @@
"@blockworks-foundation/mango-client@git+ssh://git@github.com/blockworks-foundation/merps-ts#ts/ui-exports":
version "0.0.0"
resolved "git+ssh://git@github.com/blockworks-foundation/merps-ts#b6a156a3caf60a4f829ec14d41153d538c1dd278"
resolved "git+ssh://git@github.com/blockworks-foundation/merps-ts#95cba2176b561018f403600abe4f9da151bc39c7"
dependencies:
"@project-serum/serum" "^0.13.38"
"@project-serum/sol-wallet-adapter" "^0.2.0"
@ -1494,9 +1494,9 @@
eventemitter3 "^4.0.4"
"@project-serum/sol-wallet-adapter@^0.2.0":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.1.tgz#237ff1da13b7cc9936d8d24540c97dee6adc24f7"
integrity sha512-KCnC9O/7LbqsmYyyMK/FYr0Js9mVuedlPLjWWL8xYrW7/Hv2yIFs/7LLhbyNcG+2wACdXC2IV0+Trzqm2yr5/w==
version "0.2.4"
resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.4.tgz#205adc303aea38d6c2043cb644fd70ba2fa758e0"
integrity sha512-NlFD5FumLddrHsRB1Dco7adiproUvXFC8kRxNg8ptEMD7k9p5gr8iKf6t06eARZAWQ7r90Bq1gEJc9GHlZ0c4Q==
dependencies:
bs58 "^4.0.1"
eventemitter3 "^4.0.4"