diff options
author | fragosti <francesco.agosti93@gmail.com> | 2018-09-21 22:24:45 +0800 |
---|---|---|
committer | fragosti <francesco.agosti93@gmail.com> | 2018-09-21 22:24:45 +0800 |
commit | 1bfaefb240d08eb0a8a5d6743d529604383f6e43 (patch) | |
tree | 0e8fa7a2bc46ba2fcd312f213a1686774f7eaffe /packages/asset-buyer/src/utils | |
parent | c48cf3ab3b74a9082eb30540115534c7432667ac (diff) | |
download | dexon-sol-tools-1bfaefb240d08eb0a8a5d6743d529604383f6e43.tar.gz dexon-sol-tools-1bfaefb240d08eb0a8a5d6743d529604383f6e43.tar.zst dexon-sol-tools-1bfaefb240d08eb0a8a5d6743d529604383f6e43.zip |
Add order provider response validation
Diffstat (limited to 'packages/asset-buyer/src/utils')
-rw-r--r-- | packages/asset-buyer/src/utils/order_provider_response_processor.ts | 10 |
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: |