43 lines
1.7 KiB
TypeScript
43 lines
1.7 KiB
TypeScript
import {assert} from '@0xproject/assert';
|
|
import {schemas} from '@0xproject/json-schemas';
|
|
import * as _ from 'lodash';
|
|
|
|
import {
|
|
FeesResponse,
|
|
OrderbookResponse,
|
|
SignedOrder,
|
|
TokenPairsItem,
|
|
} from '../types';
|
|
|
|
import {typeConverters} from './type_converters';
|
|
|
|
export const relayerResponseJsonParsers = {
|
|
parseTokenPairsJson(json: any): TokenPairsItem[] {
|
|
assert.doesConformToSchema('tokenPairs', json, schemas.relayerApiTokenPairsResponseSchema);
|
|
return json.map((tokenPair: any) => {
|
|
return typeConverters.convertStringsFieldsToBigNumbers(tokenPair, [
|
|
'tokenA.minAmount',
|
|
'tokenA.maxAmount',
|
|
'tokenB.minAmount',
|
|
'tokenB.maxAmount',
|
|
]);
|
|
});
|
|
},
|
|
parseOrdersJson(json: any): SignedOrder[] {
|
|
assert.doesConformToSchema('orders', json, schemas.signedOrdersSchema);
|
|
return json.map((order: object) => typeConverters.convertOrderStringFieldsToBigNumber(order));
|
|
},
|
|
parseOrderJson(json: any): SignedOrder {
|
|
assert.doesConformToSchema('order', json, schemas.signedOrderSchema);
|
|
return typeConverters.convertOrderStringFieldsToBigNumber(json);
|
|
},
|
|
parseOrderbookResponseJson(json: any): OrderbookResponse {
|
|
assert.doesConformToSchema('orderBook', json, schemas.relayerApiOrderBookResponseSchema);
|
|
return typeConverters.convertOrderbookStringFieldsToBigNumber(json);
|
|
},
|
|
parseFeesResponseJson(json: any): FeesResponse {
|
|
assert.doesConformToSchema('fees', json, schemas.relayerApiFeesResponseSchema);
|
|
return typeConverters.convertStringsFieldsToBigNumbers(json, ['makerFee', 'takerFee']);
|
|
},
|
|
};
|