reenable trade form
This commit is contained in:
parent
bc773ff665
commit
c610da11aa
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue