Fix bug that occurs when token metadata decimals is undefined. (#1426)
* Fix bug that occurs when token metadata decimals is undefined. * move toBigNumberOrNull to utils
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
import { BigNumber } from '@0x/utils';
|
||||
import * as R from 'ramda';
|
||||
|
||||
import { MetamaskTrustedTokenMeta, ZeroExTrustedTokenMeta } from '../../data_sources/trusted_tokens';
|
||||
import { TokenMetadata } from '../../entities';
|
||||
import {} from '../../utils';
|
||||
import { toBigNumberOrNull } from '../../utils';
|
||||
|
||||
/**
|
||||
* Parses Metamask's trusted tokens list.
|
||||
@@ -26,7 +25,7 @@ function parseMetamaskTrustedToken(resp: MetamaskTrustedTokenMeta, address: stri
|
||||
const trustedToken = new TokenMetadata();
|
||||
|
||||
trustedToken.address = address;
|
||||
trustedToken.decimals = new BigNumber(resp.decimals);
|
||||
trustedToken.decimals = toBigNumberOrNull(resp.decimals);
|
||||
trustedToken.symbol = resp.symbol;
|
||||
trustedToken.name = resp.name;
|
||||
trustedToken.authority = 'metamask';
|
||||
@@ -38,7 +37,7 @@ function parseZeroExTrustedToken(resp: ZeroExTrustedTokenMeta): TokenMetadata {
|
||||
const trustedToken = new TokenMetadata();
|
||||
|
||||
trustedToken.address = resp.address;
|
||||
trustedToken.decimals = resp.decimals ? new BigNumber(resp.decimals) : null;
|
||||
trustedToken.decimals = toBigNumberOrNull(resp.decimals);
|
||||
trustedToken.symbol = resp.symbol;
|
||||
trustedToken.name = resp.name;
|
||||
trustedToken.authority = '0x';
|
||||
|
||||
@@ -14,6 +14,21 @@ export function bigNumbertoStringOrNull(n: BigNumber): string | null {
|
||||
return n.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* If value is null or undefined, returns null. Otherwise converts value to a
|
||||
* BigNumber.
|
||||
* @param value A string or number to be converted to a BigNumber
|
||||
*/
|
||||
export function toBigNumberOrNull(value: string | number | null): BigNumber | null {
|
||||
switch (value) {
|
||||
case null:
|
||||
case undefined:
|
||||
return null;
|
||||
default:
|
||||
return new BigNumber(value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error by intelligently checking for `message` and `stack` properties.
|
||||
* Intended for use with top-level immediately invoked asynchronous functions.
|
||||
|
||||
Reference in New Issue
Block a user