From 38f7c4a0d2d9269b5fd185b303ede7a44ab78c99 Mon Sep 17 00:00:00 2001 From: Ara Kevonian Date: Fri, 13 Apr 2018 03:04:51 -0700 Subject: Implement Simple Fetchers --- .../src/abstract/balance_and_allowance_fetcher.ts | 6 +++++ .../src/abstract/order_filled_cancelled_fetcher.ts | 6 +++++ .../src/contract_wrappers/exchange_wrapper.ts | 8 +++---- .../src/fetchers/balance_and_allowance_fetcher.ts | 6 ----- .../src/fetchers/order_filled_cancelled_fetcher.ts | 6 ----- .../simple_balance_and_allowance_fetcher.ts | 26 ++++++++++++++++++++++ .../simple_order_filled_cancelled_fetcher.ts | 24 ++++++++++++++++++++ .../stores/balance_proxy_allowance_lazy_store.ts | 2 +- .../stores/order_filled_cancelled_lazy_store.ts | 2 +- packages/0x.js/src/utils/order_state_utils.ts | 4 ++-- 10 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 packages/0x.js/src/abstract/balance_and_allowance_fetcher.ts create mode 100644 packages/0x.js/src/abstract/order_filled_cancelled_fetcher.ts delete mode 100644 packages/0x.js/src/fetchers/balance_and_allowance_fetcher.ts delete mode 100644 packages/0x.js/src/fetchers/order_filled_cancelled_fetcher.ts create mode 100644 packages/0x.js/src/fetchers/simple_balance_and_allowance_fetcher.ts create mode 100644 packages/0x.js/src/fetchers/simple_order_filled_cancelled_fetcher.ts diff --git a/packages/0x.js/src/abstract/balance_and_allowance_fetcher.ts b/packages/0x.js/src/abstract/balance_and_allowance_fetcher.ts new file mode 100644 index 000000000..f7b1183f1 --- /dev/null +++ b/packages/0x.js/src/abstract/balance_and_allowance_fetcher.ts @@ -0,0 +1,6 @@ +import { BigNumber } from '@0xproject/utils'; + +export abstract class BalanceAndAllowanceFetcher { + public abstract async getBalanceAsync(tokenAddress: string, userAddress: string): Promise; + public abstract async getProxyAllowanceAsync(tokenAddress: string, userAddress: string): Promise; +} diff --git a/packages/0x.js/src/abstract/order_filled_cancelled_fetcher.ts b/packages/0x.js/src/abstract/order_filled_cancelled_fetcher.ts new file mode 100644 index 000000000..81ae04b9c --- /dev/null +++ b/packages/0x.js/src/abstract/order_filled_cancelled_fetcher.ts @@ -0,0 +1,6 @@ +import { BigNumber } from '@0xproject/utils'; + +export abstract class OrderFilledCancelledFetcher { + public abstract async getFilledTakerAmountAsync(orderHash: string): Promise; + public abstract async getCancelledTakerAmountAsync(orderHash: string): Promise; +} diff --git a/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts b/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts index b6949e465..65b5a2e53 100644 --- a/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts +++ b/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts @@ -13,8 +13,8 @@ import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; import { artifacts } from '../artifacts'; -import { BalanceAndProxyAllowanceLazyStore } from '../stores/balance_proxy_allowance_lazy_store'; -import { OrderFilledCancelledLazyStore } from '../stores/order_filled_cancelled_lazy_store'; +import { SimpleBalanceAndAllowanceFetcher } from '../fetchers/simple_balance_and_allowance_fetcher'; +import { SimpleOrderFilledCancelledFetcher } from '../fetchers/simple_order_filled_cancelled_fetcher'; import { BlockRange, EventCallback, @@ -881,11 +881,11 @@ export class ExchangeWrapper extends ContractWrapper { * @param signedOrder The signedOrder */ public async getOrderStateAsync(signedOrder: SignedOrder): Promise { - const balanceAndProxyAllowanceLazyStore = new BalanceAndProxyAllowanceLazyStore( + const balanceAndProxyAllowanceLazyStore = new SimpleBalanceAndAllowanceFetcher( this._tokenWrapper, BlockParamLiteral.Latest, ); - const orderFilledCancelledLazyStore = new OrderFilledCancelledLazyStore(this); + const orderFilledCancelledLazyStore = new SimpleOrderFilledCancelledFetcher(this); const orderStateUtils = new OrderStateUtils(balanceAndProxyAllowanceLazyStore, orderFilledCancelledLazyStore); return orderStateUtils.getOrderStateAsync(signedOrder); } diff --git a/packages/0x.js/src/fetchers/balance_and_allowance_fetcher.ts b/packages/0x.js/src/fetchers/balance_and_allowance_fetcher.ts deleted file mode 100644 index f7b1183f1..000000000 --- a/packages/0x.js/src/fetchers/balance_and_allowance_fetcher.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { BigNumber } from '@0xproject/utils'; - -export abstract class BalanceAndAllowanceFetcher { - public abstract async getBalanceAsync(tokenAddress: string, userAddress: string): Promise; - public abstract async getProxyAllowanceAsync(tokenAddress: string, userAddress: string): Promise; -} diff --git a/packages/0x.js/src/fetchers/order_filled_cancelled_fetcher.ts b/packages/0x.js/src/fetchers/order_filled_cancelled_fetcher.ts deleted file mode 100644 index 81ae04b9c..000000000 --- a/packages/0x.js/src/fetchers/order_filled_cancelled_fetcher.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { BigNumber } from '@0xproject/utils'; - -export abstract class OrderFilledCancelledFetcher { - public abstract async getFilledTakerAmountAsync(orderHash: string): Promise; - public abstract async getCancelledTakerAmountAsync(orderHash: string): Promise; -} diff --git a/packages/0x.js/src/fetchers/simple_balance_and_allowance_fetcher.ts b/packages/0x.js/src/fetchers/simple_balance_and_allowance_fetcher.ts new file mode 100644 index 000000000..2aa1cc2b7 --- /dev/null +++ b/packages/0x.js/src/fetchers/simple_balance_and_allowance_fetcher.ts @@ -0,0 +1,26 @@ +import { BlockParamLiteral } from '@0xproject/types'; +import { BigNumber } from '@0xproject/utils'; + +import {BalanceAndAllowanceFetcher} from '../abstract/balance_and_allowance_fetcher'; +import {TokenWrapper} from '../contract_wrappers/token_wrapper'; + +export class SimpleBalanceAndAllowanceFetcher implements BalanceAndAllowanceFetcher { + private _token: TokenWrapper; + private _defaultBlock: BlockParamLiteral; + constructor(token: TokenWrapper, defaultBlock: BlockParamLiteral) { + this._token = token; + this._defaultBlock = defaultBlock; + } + public async getBalanceAsync(tokenAddress: string, userAddress: string): Promise { + const methodOpts = { + defaultBlock: this._defaultBlock, + }; + return this._token.getBalanceAsync(tokenAddress, userAddress, methodOpts); + } + public async getProxyAllowanceAsync(tokenAddress: string, userAddress: string): Promise { + const methodOpts = { + defaultBlock: this._defaultBlock, + }; + return this._token.getProxyAllowanceAsync(tokenAddress, userAddress, methodOpts); + } +} diff --git a/packages/0x.js/src/fetchers/simple_order_filled_cancelled_fetcher.ts b/packages/0x.js/src/fetchers/simple_order_filled_cancelled_fetcher.ts new file mode 100644 index 000000000..e24f02726 --- /dev/null +++ b/packages/0x.js/src/fetchers/simple_order_filled_cancelled_fetcher.ts @@ -0,0 +1,24 @@ +import { BlockParamLiteral } from '@0xproject/types'; +import { BigNumber } from '@0xproject/utils'; + +import {OrderFilledCancelledFetcher} from '../abstract/order_filled_cancelled_fetcher'; +import {ExchangeWrapper} from '../contract_wrappers/exchange_wrapper'; + +export class SimpleOrderFilledCancelledFetcher implements OrderFilledCancelledFetcher { + private _exchange: ExchangeWrapper; + constructor(exchange: ExchangeWrapper) { + this._exchange = exchange; + } + public async getFilledTakerAmountAsync(orderHash: string): Promise { + const methodOpts = { + defaultBlock: BlockParamLiteral.Pending, + }; + return this._exchange.getFilledTakerAmountAsync(orderHash, methodOpts); + } + public async getCancelledTakerAmountAsync(orderHash: string): Promise { + const methodOpts = { + defaultBlock: BlockParamLiteral.Pending, + }; + return this._exchange.getCancelledTakerAmountAsync(orderHash, methodOpts); + } +} diff --git a/packages/0x.js/src/stores/balance_proxy_allowance_lazy_store.ts b/packages/0x.js/src/stores/balance_proxy_allowance_lazy_store.ts index 610385356..9ca622a69 100644 --- a/packages/0x.js/src/stores/balance_proxy_allowance_lazy_store.ts +++ b/packages/0x.js/src/stores/balance_proxy_allowance_lazy_store.ts @@ -3,7 +3,7 @@ import { BigNumber } from '@0xproject/utils'; import * as _ from 'lodash'; import { TokenWrapper } from '../contract_wrappers/token_wrapper'; -import { BalanceAndAllowanceFetcher } from '../fetchers/balance_and_allowance_fetcher'; +import { BalanceAndAllowanceFetcher } from '../abstract/balance_and_allowance_fetcher'; /** * Copy on read store for balances/proxyAllowances of tokens/accounts diff --git a/packages/0x.js/src/stores/order_filled_cancelled_lazy_store.ts b/packages/0x.js/src/stores/order_filled_cancelled_lazy_store.ts index 9ed4d3bf4..134508057 100644 --- a/packages/0x.js/src/stores/order_filled_cancelled_lazy_store.ts +++ b/packages/0x.js/src/stores/order_filled_cancelled_lazy_store.ts @@ -3,7 +3,7 @@ import { BigNumber } from '@0xproject/utils'; import * as _ from 'lodash'; import { ExchangeWrapper } from '../contract_wrappers/exchange_wrapper'; -import { OrderFilledCancelledFetcher } from '../fetchers/order_filled_cancelled_fetcher'; +import { OrderFilledCancelledFetcher } from '../abstract/order_filled_cancelled_fetcher'; /** * Copy on read store for filled/cancelled taker amounts diff --git a/packages/0x.js/src/utils/order_state_utils.ts b/packages/0x.js/src/utils/order_state_utils.ts index 6dbf7e572..d45b67dc2 100644 --- a/packages/0x.js/src/utils/order_state_utils.ts +++ b/packages/0x.js/src/utils/order_state_utils.ts @@ -4,8 +4,8 @@ import * as _ from 'lodash'; import { ZeroEx } from '../0x'; import { ExchangeWrapper } from '../contract_wrappers/exchange_wrapper'; -import { BalanceAndAllowanceFetcher } from '../fetchers/balance_and_allowance_fetcher'; -import { OrderFilledCancelledFetcher } from '../fetchers/order_filled_cancelled_fetcher'; +import { BalanceAndAllowanceFetcher } from '../abstract/balance_and_allowance_fetcher'; +import { OrderFilledCancelledFetcher } from '../abstract/order_filled_cancelled_fetcher'; import { RemainingFillableCalculator } from '../order_watcher/remaining_fillable_calculator'; import { ExchangeContractErrs, OrderRelevantState, OrderState, OrderStateInvalid, OrderStateValid } from '../types'; -- cgit v1.2.3