From 542255332d6dde6dda27e4b0663aa67b0a44c972 Mon Sep 17 00:00:00 2001 From: David Sun Date: Mon, 15 Jul 2019 15:29:13 -0700 Subject: [PATCH] changed market-operation type to enum from literal --- packages/asset-swapper/src/constants.ts | 2 ++ .../standard_relayer_api_order_provider.ts | 5 ++-- .../exchange_swap_quote_consumer.ts | 11 +++++---- .../forwarder_swap_quote_consumer.ts | 11 +++++---- packages/asset-swapper/src/swap_quoter.ts | 6 ++--- packages/asset-swapper/src/types.ts | 10 ++++---- packages/asset-swapper/src/utils/assert.ts | 4 ++-- .../src/utils/swap_quote_calculator.ts | 24 +++++++++---------- .../asset-swapper/test/utils/swap_quote.ts | 6 ++--- packages/order-utils/src/market_utils.ts | 10 ++++---- packages/types/src/index.ts | 5 +++- 11 files changed, 50 insertions(+), 44 deletions(-) diff --git a/packages/asset-swapper/src/constants.ts b/packages/asset-swapper/src/constants.ts index 10dd79b9d4..5bd62deebc 100644 --- a/packages/asset-swapper/src/constants.ts +++ b/packages/asset-swapper/src/constants.ts @@ -12,6 +12,7 @@ import { const NULL_ADDRESS = '0x0000000000000000000000000000000000000000'; const MAINNET_NETWORK_ID = 1; const ONE_SECOND_MS = 1000; +const DEFAULT_PER_PAGE = 1000; const DEFAULT_SWAP_QUOTER_OPTS: SwapQuoterOpts = { networkId: MAINNET_NETWORK_ID, @@ -48,4 +49,5 @@ export const constants = { DEFAULT_FORWARDER_SWAP_QUOTE_EXECUTE_OPTS, DEFAULT_SWAP_QUOTE_REQUEST_OPTS, EMPTY_ORDERS_AND_FILLABLE_AMOUNTS, + DEFAULT_PER_PAGE, }; diff --git a/packages/asset-swapper/src/order_providers/standard_relayer_api_order_provider.ts b/packages/asset-swapper/src/order_providers/standard_relayer_api_order_provider.ts index dc3ef08124..ccefc70dce 100644 --- a/packages/asset-swapper/src/order_providers/standard_relayer_api_order_provider.ts +++ b/packages/asset-swapper/src/order_providers/standard_relayer_api_order_provider.ts @@ -4,6 +4,7 @@ import { APIOrder, AssetPairsResponse, OrderbookResponse } from '@0x/types'; import { BigNumber } from '@0x/utils'; import * as _ from 'lodash'; +import { constants } from '../constants'; import { OrderProvider, OrderProviderRequest, @@ -117,9 +118,7 @@ export class StandardRelayerAPIOrderProvider implements OrderProvider { * @return An array of asset data strings that can be used to purchased makerAssetData. */ public async getAvailableTakerAssetDatasAsync(makerAssetData: string): Promise { - // Return a maximum of 1000 asset datas - const maxPerPage = 1000; - const requestOpts = { networkId: this.networkId, perPage: maxPerPage }; + const requestOpts = { networkId: this.networkId, perPage: constants.DEFAULT_PER_PAGE }; const assetPairsRequest = { assetDataA: makerAssetData }; const fullRequest = { ...requestOpts, diff --git a/packages/asset-swapper/src/quote_consumers/exchange_swap_quote_consumer.ts b/packages/asset-swapper/src/quote_consumers/exchange_swap_quote_consumer.ts index 19ec6aacb8..140d6ee856 100644 --- a/packages/asset-swapper/src/quote_consumers/exchange_swap_quote_consumer.ts +++ b/packages/asset-swapper/src/quote_consumers/exchange_swap_quote_consumer.ts @@ -1,4 +1,5 @@ import { ContractWrappers, ContractWrappersError, ForwarderWrapperError } from '@0x/contract-wrappers'; +import { MarketOperation } from '@0x/types'; import { AbiEncoder, providerUtils } from '@0x/utils'; import { SupportedProvider, ZeroExProvider } from '@0x/web3-wrapper'; import { MethodAbi } from 'ethereum-types'; @@ -50,7 +51,7 @@ export class ExchangeSwapQuoteConsumer implements SwapQuoteConsumerBase( orders, takerAssetFillAmount, - 'marketSell', + MarketOperation.Sell, opts, ) as OrdersAndRemainingTakerFillAmount; }, @@ -45,7 +45,7 @@ export const marketUtils = { return findOrdersThatCoverAssetFillAmount( orders, makerAssetFillAmount, - 'marketBuy', + MarketOperation.Buy, opts, ) as OrdersAndRemainingMakerFillAmount; }, @@ -133,14 +133,14 @@ function findOrdersThatCoverAssetFillAmount( operation: MarketOperation, opts?: FindOrdersThatCoverTakerAssetFillAmountOpts | FindOrdersThatCoverMakerAssetFillAmountOpts, ): OrdersAndRemainingTakerFillAmount | OrdersAndRemainingMakerFillAmount { - const variablePrefix = operation === 'marketBuy' ? 'Maker' : 'Taker'; + const variablePrefix = operation === MarketOperation.Buy ? 'Maker' : 'Taker'; assert.doesConformToSchema('orders', orders, schemas.ordersSchema); assert.isValidBaseUnitAmount('assetFillAmount', assetFillAmount); // try to get remainingFillableTakerAssetAmounts from opts, if it's not there, use takerAssetAmount values from orders const remainingFillableAssetAmounts = _.get( opts, `remainingFillable${variablePrefix}AssetAmounts`, - _.map(orders, order => (operation === 'marketBuy' ? order.makerAssetAmount : order.takerAssetAmount)), + _.map(orders, order => (operation === MarketOperation.Buy ? order.makerAssetAmount : order.takerAssetAmount)), ) as BigNumber[]; _.forEach(remainingFillableAssetAmounts, (amount, index) => assert.isValidBaseUnitAmount(`remainingFillable${variablePrefix}AssetAmount[${index}]`, amount), @@ -194,7 +194,7 @@ function findOrdersThatCoverAssetFillAmount( ...ordersAndRemainingFillAmount } = result; - if (operation === 'marketBuy') { + if (operation === MarketOperation.Buy) { return { ...ordersAndRemainingFillAmount, ordersRemainingFillableMakerAssetAmounts: resultOrdersRemainingFillableAssetAmounts, diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 50bc0fc338..5cf7522aeb 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -41,7 +41,10 @@ export interface SignedOrder extends Order { signature: string; } -export type MarketOperation = 'marketBuy' | 'marketSell'; +export enum MarketOperation { + Sell = 'Sell', + Buy = 'Buy', +} /** * ZeroExTransaction for use with 0x Exchange executeTransaction