aboutsummaryrefslogtreecommitdiffstats
path: root/packages/asset-buyer/src/utils/order_provider_response_processor.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/asset-buyer/src/utils/order_provider_response_processor.ts')
-rw-r--r--packages/asset-buyer/src/utils/order_provider_response_processor.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/asset-buyer/src/utils/order_provider_response_processor.ts b/packages/asset-buyer/src/utils/order_provider_response_processor.ts
index 79e15c3d8..2f3208a55 100644
--- a/packages/asset-buyer/src/utils/order_provider_response_processor.ts
+++ b/packages/asset-buyer/src/utils/order_provider_response_processor.ts
@@ -7,7 +7,9 @@ import * as _ from 'lodash';
import { constants } from '../constants';
import {
+ AssetBuyerError,
AssetBuyerOrdersAndFillableAmounts,
+ OrderProviderRequest,
OrderProviderResponse,
SignedOrderWithRemainingFillableMakerAssetAmount,
} from '../types';
@@ -20,6 +22,14 @@ interface OrdersAndRemainingFillableMakerAssetAmounts {
}
export const orderProviderResponseProcessor = {
+ throwIfInvalidResponse(response: OrderProviderResponse, request: OrderProviderRequest): void {
+ const { makerAssetData, takerAssetData } = request;
+ _.forEach(response.orders, order => {
+ if (order.makerAssetData !== makerAssetData || order.takerAssetData !== takerAssetData) {
+ throw new Error(AssetBuyerError.InvalidOrderProviderResponse);
+ }
+ });
+ },
/**
* Take the responses for the target orders to buy and fee orders and process them.
* Processing includes: