Move perPage and 18 precision lower to re-use
This commit is contained in:
@@ -3,6 +3,11 @@ import { AssetPairsItem, SignedOrder } from '@0x/types';
|
||||
import { OrderStore } from '../order_store';
|
||||
import { AcceptedRejectedOrders, AddedRemovedOrders } from '../types';
|
||||
|
||||
// AssetPairItem requires precision but some OrderProviders may not
|
||||
// enforce any precision. This is not the token decimal but the
|
||||
// maximum precision for an orderbook.
|
||||
export const DEFAULT_TOKEN_PRECISION = 18;
|
||||
|
||||
export abstract class BaseOrderProvider {
|
||||
public readonly _orderStore: OrderStore;
|
||||
|
||||
|
@@ -6,6 +6,7 @@ import { AcceptedRejectedOrders, RejectedOrder } from '../types';
|
||||
import { utils } from '../utils';
|
||||
|
||||
import { BaseOrderProvider } from './base_order_provider';
|
||||
export const PER_PAGE_DEFAULT = 100;
|
||||
|
||||
export abstract class BaseSRAOrderProvider extends BaseOrderProvider {
|
||||
protected readonly _httpClient: HttpClient;
|
||||
@@ -15,7 +16,7 @@ export abstract class BaseSRAOrderProvider extends BaseOrderProvider {
|
||||
/**
|
||||
* This is an internal class for Websocket and Polling Order Providers
|
||||
*/
|
||||
constructor(orderStore: OrderStore, httpEndpoint: string, perPage: number, networkId?: number) {
|
||||
constructor(orderStore: OrderStore, httpEndpoint: string, perPage: number = PER_PAGE_DEFAULT, networkId?: number) {
|
||||
super(orderStore);
|
||||
this._httpClient = new HttpClient(httpEndpoint);
|
||||
this._perPage = perPage;
|
||||
|
@@ -5,7 +5,7 @@ import { OrderStore } from '../order_store';
|
||||
import { AcceptedRejectedOrders } from '../types';
|
||||
import { utils } from '../utils';
|
||||
|
||||
import { BaseOrderProvider } from './base_order_provider';
|
||||
import { BaseOrderProvider, DEFAULT_TOKEN_PRECISION } from './base_order_provider';
|
||||
|
||||
export class CustomOrderProvider extends BaseOrderProvider {
|
||||
constructor(orders: SignedOrder[], orderStore: OrderStore) {
|
||||
@@ -22,7 +22,7 @@ export class CustomOrderProvider extends BaseOrderProvider {
|
||||
const assetPairsItems: AssetPairsItem[] = [];
|
||||
const minAmount = new BigNumber(0);
|
||||
const maxAmount = new BigNumber(2).pow(256).minus(1);
|
||||
const precision = 18;
|
||||
const precision = DEFAULT_TOKEN_PRECISION;
|
||||
for (const assetPairKey of this._orderStore.keys()) {
|
||||
const [assetA, assetB] = OrderStore.assetPairKeyToAssets(assetPairKey);
|
||||
const assetDataA: Asset = { assetData: assetA, minAmount, maxAmount, precision };
|
||||
|
@@ -14,7 +14,7 @@ import { OrderStore } from '../order_store';
|
||||
import { AcceptedRejectedOrders, AddedRemovedOrders, MeshOrderProviderOpts } from '../types';
|
||||
import { utils } from '../utils';
|
||||
|
||||
import { BaseOrderProvider } from './base_order_provider';
|
||||
import { BaseOrderProvider, DEFAULT_TOKEN_PRECISION } from './base_order_provider';
|
||||
|
||||
export class MeshOrderProvider extends BaseOrderProvider {
|
||||
private readonly _wsClient: WSClient;
|
||||
@@ -62,7 +62,7 @@ export class MeshOrderProvider extends BaseOrderProvider {
|
||||
const assetPairsItems: AssetPairsItem[] = [];
|
||||
const minAmount = new BigNumber(0);
|
||||
const maxAmount = new BigNumber(2).pow(256).minus(1);
|
||||
const precision = 18;
|
||||
const precision = DEFAULT_TOKEN_PRECISION;
|
||||
for (const assetPairKey of this._orderStore.keys()) {
|
||||
const [assetA, assetB] = OrderStore.assetPairKeyToAssets(assetPairKey);
|
||||
const assetDataA: Asset = { assetData: assetA, minAmount, maxAmount, precision };
|
||||
|
@@ -7,8 +7,6 @@ import { SRAPollingOrderProviderOpts } from '../types';
|
||||
|
||||
import { BaseSRAOrderProvider } from './base_sra_order_provider';
|
||||
|
||||
const PER_PAGE_DEFAULT = 100;
|
||||
|
||||
export class SRAPollingOrderProvider extends BaseSRAOrderProvider {
|
||||
private readonly _assetPairKeyToPollingIntervalId: Map<string, number> = new Map();
|
||||
private readonly _pollingIntervalMs: number;
|
||||
@@ -20,7 +18,7 @@ export class SRAPollingOrderProvider extends BaseSRAOrderProvider {
|
||||
* @param orderStore The `OrderStore` where orders are added and removed from
|
||||
*/
|
||||
constructor(opts: SRAPollingOrderProviderOpts, orderStore: OrderStore) {
|
||||
super(orderStore, opts.httpEndpoint, opts.perPage || PER_PAGE_DEFAULT, opts.networkId);
|
||||
super(orderStore, opts.httpEndpoint, opts.perPage, opts.networkId);
|
||||
assert.isNumber('pollingIntervalMs', opts.pollingIntervalMs);
|
||||
this._pollingIntervalMs = opts.pollingIntervalMs;
|
||||
}
|
||||
|
@@ -13,9 +13,7 @@ import { OrderStore } from '../order_store';
|
||||
import { AddedRemovedOrders, SRAWebsocketOrderProviderOpts } from '../types';
|
||||
import { utils } from '../utils';
|
||||
|
||||
import { BaseSRAOrderProvider } from './base_sra_order_provider';
|
||||
|
||||
const PER_PAGE_DEFAULT = 100;
|
||||
import { BaseSRAOrderProvider, PER_PAGE_DEFAULT } from './base_sra_order_provider';
|
||||
|
||||
export class SRAWebsocketOrderProvider extends BaseSRAOrderProvider {
|
||||
private readonly _websocketEndpoint: string;
|
||||
@@ -147,7 +145,6 @@ export class SRAWebsocketOrderProvider extends BaseSRAOrderProvider {
|
||||
ordersChannelHandler,
|
||||
);
|
||||
} catch (e) {
|
||||
// TODO(dave4506) Provide a more informative error
|
||||
throw new Error(`Creating websocket connection to ${this._websocketEndpoint}`);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user