aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js/src
diff options
context:
space:
mode:
authorAra Kevonian <=>2018-04-09 19:49:05 +0800
committerAra Kevonian <=>2018-04-09 19:49:05 +0800
commit8d76d74a1713dcec140c8d43f9ea7612b5cc38f1 (patch)
tree92dd11f286baa3fe9ac3d840fddf82fe059f7b93 /packages/0x.js/src
parent073bf738ddb271b6b4158798baf4cac3cb0608e9 (diff)
downloaddexon-0x-contracts-8d76d74a1713dcec140c8d43f9ea7612b5cc38f1.tar.gz
dexon-0x-contracts-8d76d74a1713dcec140c8d43f9ea7612b5cc38f1.tar.zst
dexon-0x-contracts-8d76d74a1713dcec140c8d43f9ea7612b5cc38f1.zip
Implement `zeroEx.exchange.getOrderStateAsync`
Diffstat (limited to 'packages/0x.js/src')
-rw-r--r--packages/0x.js/src/contract_wrappers/exchange_wrapper.ts53
1 files changed, 36 insertions, 17 deletions
diff --git a/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts b/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts
index 378ae8111..fb1877f4a 100644
--- a/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts
+++ b/packages/0x.js/src/contract_wrappers/exchange_wrapper.ts
@@ -13,35 +13,38 @@ 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 {
- BlockRange,
- EventCallback,
- ExchangeContractErrCodes,
- ExchangeContractErrs,
- IndexedFilterValues,
- MethodOpts,
- OrderAddresses,
- OrderCancellationRequest,
- OrderFillRequest,
- OrderTransactionOpts,
- OrderValues,
- ValidateOrderFillableOpts,
+BlockRange,
+EventCallback,
+ExchangeContractErrCodes,
+ExchangeContractErrs,
+IndexedFilterValues,
+MethodOpts,
+OrderAddresses,
+OrderCancellationRequest,
+OrderFillRequest,
+OrderState,
+OrderTransactionOpts,
+OrderValues,
+ValidateOrderFillableOpts,
} from '../types';
import { assert } from '../utils/assert';
import { decorators } from '../utils/decorators';
import { ExchangeTransferSimulator } from '../utils/exchange_transfer_simulator';
+import { OrderStateUtils } from '../utils/order_state_utils';
import { OrderValidationUtils } from '../utils/order_validation_utils';
import { utils } from '../utils/utils';
import { ContractWrapper } from './contract_wrapper';
import {
- ExchangeContract,
- ExchangeContractEventArgs,
- ExchangeEvents,
- LogErrorContractEventArgs,
+ExchangeContract,
+ExchangeContractEventArgs,
+ExchangeEvents,
+LogErrorContractEventArgs,
} from './generated/exchange';
import { TokenWrapper } from './token_wrapper';
-
const SHOULD_VALIDATE_BY_DEFAULT = true;
interface ExchangeContractErrCodesToMsgs {
@@ -874,6 +877,22 @@ export class ExchangeWrapper extends ContractWrapper {
}
}
/**
+ * Gets the latest OrderState of a signedOrder
+ * @param signedOrder The signedOrder
+ */
+ public async getOrderStateAsync(signedOrder: SignedOrder): Promise<OrderState> {
+ const balanceAndProxyAllowanceLazyStore = new BalanceAndProxyAllowanceLazyStore(
+ this._tokenWrapper,
+ BlockParamLiteral.Latest,
+ );
+ const orderFilledCancelledLazyStore = new OrderFilledCancelledLazyStore(this);
+ const orderStateUtils = new OrderStateUtils(
+ balanceAndProxyAllowanceLazyStore,
+ orderFilledCancelledLazyStore,
+ );
+ return orderStateUtils.getOrderStateAsync(signedOrder);
+ }
+ /**
* Returns the ZRX token address used by the exchange contract.
* @return Address of ZRX token
*/