Files
protocol/apps-node/api/test/utils/mock_order_watcher.ts
2023-02-28 10:08:04 -07:00

31 lines
1.1 KiB
TypeScript

import { LimitOrder, LimitOrderFields } from '@0x/protocol-utils';
import { Connection } from 'typeorm';
import { OrderWatcherSignedOrderEntity } from '../../src/entities';
import { SignedLimitOrder } from '../../src/types';
import { orderUtils } from '../../src/utils/order_utils';
import { OrderWatcherInterface } from '../../src/utils/order_watcher';
export class MockOrderWatcher implements OrderWatcherInterface {
private readonly _connection: Connection;
constructor(connection: Connection) {
this._connection = connection;
}
public async postOrdersAsync(orders: SignedLimitOrder[]): Promise<void> {
await this._connection.getRepository(OrderWatcherSignedOrderEntity).save(
orders.map((order) => {
const limitOrder = new LimitOrder(order as LimitOrderFields);
return orderUtils.serializeOrder({
order,
metaData: {
orderHash: limitOrder.getHash(),
remainingFillableTakerAmount: order.takerAmount,
},
});
}),
);
}
}