aboutsummaryrefslogtreecommitdiffstats
path: root/packages/connect/src/utils/type_converters.ts
blob: 210d452b9c1fc57da7ac4dc31ebff358e195a804 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { BigNumber } from '@0xproject/utils';
import * as _ from 'lodash';

export const typeConverters = {
    convertOrderbookStringFieldsToBigNumber(orderbook: any): any {
        const bids = _.get(orderbook, 'bids', []);
        const asks = _.get(orderbook, 'asks', []);
        return {
            bids: bids.map((order: any) => typeConverters.convertOrderStringFieldsToBigNumber(order)),
            asks: asks.map((order: any) => typeConverters.convertOrderStringFieldsToBigNumber(order)),
        };
    },
    convertOrderStringFieldsToBigNumber(order: any): any {
        return typeConverters.convertStringsFieldsToBigNumbers(order, [
            'makerTokenAmount',
            'takerTokenAmount',
            'makerFee',
            'takerFee',
            'expirationUnixTimestampSec',
            'salt',
        ]);
    },
    convertStringsFieldsToBigNumbers(obj: any, fields: string[]): any {
        const result = _.assign({}, obj);
        _.each(fields, field => {
            _.update(result, field, (value: string) => new BigNumber(value));
        });
        return result;
    },
};