diff --git a/src/blockchain/common.js b/src/blockchain/common.js index 6ff620f..1f76f18 100644 --- a/src/blockchain/common.js +++ b/src/blockchain/common.js @@ -1,16 +1,3 @@ -export function applyFills( orderStatus, filled ) { - console.log('apply fills', orderStatus, filled) - orderStatus[4] = filled[0][0] - orderStatus[5] = filled[0][1] - for( const i in filled[1] ) { - const {filledIn, filledOut} = filled[1][i] - orderStatus[6][i] = filledIn - orderStatus[7][i] = filledOut - } - console.log('applied fills', orderStatus) -} - - export function encodeIEE754(value) { const buffer = new ArrayBuffer(4); const view = new DataView(buffer); diff --git a/src/socket.js b/src/socket.js index 0b4d844..dc7ee26 100644 --- a/src/socket.js +++ b/src/socket.js @@ -2,7 +2,6 @@ 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"; import {parseOrderStatus} from "@/blockchain/orderlib.js"; export const socket = io(import.meta.env.VITE_WS_URL || undefined, {transports: ["websocket"]}) @@ -80,11 +79,11 @@ socket.on('os', (chainId, vault, orders) => { socket.on( 'o', handleOrderStatus) -socket.on( 'of', (chainId, vault, orderIndex, fills)=>{ +socket.on( 'of', (chainId, vault, orderIndex, filled)=>{ const s = useStore() if( s.chainId.value !== chainId ) return - console.log('of', chainId, vault, orderIndex, fills) + console.log('of', chainId, vault, orderIndex, filled) if( !(vault in s.orders) ) { console.log('warning: got fill on an order in an unknown vault') return @@ -93,7 +92,16 @@ socket.on( 'of', (chainId, vault, orderIndex, fills)=>{ console.log(`warning: orderIndex ${orderIndex} missing from vault ${vault}`) return } - const order = s.orders[vault][orderIndex] - applyFills(order, fills) - s.orders[vault][orderIndex] = order + + const status = s.orders[vault][orderIndex] + console.log('apply fills', status, filled) + status.filledIn = BigInt(filled[0][0]) + status.filledOut = BigInt(filled[0][1]) + for( const i in filled[1] ) { + const [filledIn, filledOut] = filled[1][i] + status.trancheFilledIn[i] = BigInt(filledIn) + status.trancheFilledOut[i] = BigInt(filledOut) + } + s.orders[vault][orderIndex] = status + console.log('applied fills', status) })