order status updates working
This commit is contained in:
@@ -2,6 +2,7 @@ import {io} from "socket.io-client";
|
||||
import {useStore} from "@/store/store.js";
|
||||
import {flushOrders, onChainChanged} from "@/blockchain/wallet.js";
|
||||
import {ethers} from "ethers";
|
||||
import {applyFills} from "@/blockchain/common.js";
|
||||
|
||||
export const socket = io(import.meta.env.VITE_WS_URL || undefined, {transports: ["websocket"]})
|
||||
|
||||
@@ -59,16 +60,42 @@ socket.on('vaults', (chainId, owner, vaults)=>{
|
||||
}
|
||||
})
|
||||
|
||||
socket.on( 'o', (chainId, vault, orderIndex, status)=>{
|
||||
|
||||
function handleOrderStatus(chainId, vault, orderIndex, status) {
|
||||
const s = useStore()
|
||||
if( s.chainId !== chainId )
|
||||
return
|
||||
console.log('o', chainId, vault, orderIndex, status)
|
||||
const orders = s.orders
|
||||
if( !(vault in orders) )
|
||||
orders[vault] = {}
|
||||
orders[vault][orderIndex] = status
|
||||
s.orders = orders
|
||||
}
|
||||
|
||||
socket.on('os', (chainId, vault, orders) => {
|
||||
console.log('os', orders)
|
||||
for( const [orderIndex, status] of orders )
|
||||
handleOrderStatus(chainId, vault, orderIndex, status)
|
||||
})
|
||||
|
||||
socket.on( 'o', handleOrderStatus)
|
||||
|
||||
socket.on( 'of', (chainId, vault, orderIndex, fills)=>{
|
||||
const s = useStore()
|
||||
if( s.chainId !== chainId )
|
||||
return
|
||||
console.log('of', chainId, vault, orderIndex, fills)
|
||||
const orders = s.orders
|
||||
if( !(vault in orders) ) {
|
||||
console.log('warning: got fill on an order in an unknown vault')
|
||||
return
|
||||
}
|
||||
if( !(orderIndex in orders[vault]) ) {
|
||||
console.log(`warning: orderIndex ${orderIndex} missing from vault ${vault}`)
|
||||
return
|
||||
}
|
||||
const order = orders[vault][orderIndex]
|
||||
applyFills(order, fills)
|
||||
orders[vault][orderIndex] = order
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user