25 lines
756 B
TypeScript
25 lines
756 B
TypeScript
import * as _ from 'lodash';
|
|
import {Token, InternalZeroExError} from '../../src/types';
|
|
|
|
const PROTOCOL_TOKEN_SYMBOL = 'ZRX';
|
|
|
|
export class TokenUtils {
|
|
private tokens: Token[];
|
|
constructor(tokens: Token[]) {
|
|
this.tokens = tokens;
|
|
}
|
|
public getProtocolTokenOrThrow(): Token {
|
|
const zrxToken = _.find(this.tokens, {symbol: PROTOCOL_TOKEN_SYMBOL});
|
|
if (_.isUndefined(zrxToken)) {
|
|
throw new Error(InternalZeroExError.ZrxNotInTokenRegistry);
|
|
}
|
|
return zrxToken;
|
|
}
|
|
public getNonProtocolTokens(): Token[] {
|
|
const nonProtocolTokens = _.filter(this.tokens, token => {
|
|
return token.symbol !== PROTOCOL_TOKEN_SYMBOL;
|
|
});
|
|
return nonProtocolTokens;
|
|
}
|
|
}
|