Display top tokens from backend
This commit is contained in:
		@@ -12,37 +12,6 @@ export interface RelayerGridTileProps {
 | 
			
		||||
    networkId: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: Get top tokens from remote
 | 
			
		||||
const topTokens = [
 | 
			
		||||
    {
 | 
			
		||||
        address: '0x1dad4783cf3fe3085c1426157ab175a6119a04ba',
 | 
			
		||||
        decimals: 18,
 | 
			
		||||
        iconUrl: '/images/token_icons/makerdao.png',
 | 
			
		||||
        isRegistered: true,
 | 
			
		||||
        isTracked: true,
 | 
			
		||||
        name: 'Maker DAO',
 | 
			
		||||
        symbol: 'MKR',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        address: '0x323b5d4c32345ced77393b3530b1eed0f346429d',
 | 
			
		||||
        decimals: 18,
 | 
			
		||||
        iconUrl: '/images/token_icons/melon.png',
 | 
			
		||||
        isRegistered: true,
 | 
			
		||||
        isTracked: true,
 | 
			
		||||
        name: 'Melon Token',
 | 
			
		||||
        symbol: 'MLN',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        address: '0xb18845c260f680d5b9d84649638813e342e4f8c9',
 | 
			
		||||
        decimals: 18,
 | 
			
		||||
        iconUrl: '/images/token_icons/augur.png',
 | 
			
		||||
        isRegistered: true,
 | 
			
		||||
        isTracked: true,
 | 
			
		||||
        name: 'Augur Reputation Token',
 | 
			
		||||
        symbol: 'REP',
 | 
			
		||||
    },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const styles: Styles = {
 | 
			
		||||
    root: {
 | 
			
		||||
        backgroundColor: colors.white,
 | 
			
		||||
@@ -108,7 +77,7 @@ export const RelayerGridTile: React.StatelessComponent<RelayerGridTileProps> = (
 | 
			
		||||
                        <div className="py1" style={styles.subLabel}>
 | 
			
		||||
                            Daily Trade Volume
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <TopTokens tokens={topTokens} networkId={props.networkId} />
 | 
			
		||||
                        <TopTokens tokens={props.relayerInfo.topTokens} networkId={props.networkId} />
 | 
			
		||||
                        <div className="py1" style={styles.subLabel}>
 | 
			
		||||
                            Top tokens
 | 
			
		||||
                        </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,10 +3,10 @@ import * as _ from 'lodash';
 | 
			
		||||
import * as React from 'react';
 | 
			
		||||
 | 
			
		||||
import { TokenIcon } from 'ts/components/ui/token_icon';
 | 
			
		||||
import { Token } from 'ts/types';
 | 
			
		||||
import { WebsiteBackendTokenInfo } from 'ts/types';
 | 
			
		||||
 | 
			
		||||
export interface TopTokensProps {
 | 
			
		||||
    tokens: Token[];
 | 
			
		||||
    tokens: WebsiteBackendTokenInfo[];
 | 
			
		||||
    networkId: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -23,17 +23,17 @@ const styles: Styles = {
 | 
			
		||||
export const TopTokens: React.StatelessComponent<TopTokensProps> = (props: TopTokensProps) => {
 | 
			
		||||
    return (
 | 
			
		||||
        <div className="flex">
 | 
			
		||||
            {_.map(props.tokens, (token: Token, index: number) => {
 | 
			
		||||
            {_.map(props.tokens, (tokenInfo: WebsiteBackendTokenInfo, index: number) => {
 | 
			
		||||
                const firstItemStyle = { ...styles.tokenLabel, ...styles.followingTokenLabel };
 | 
			
		||||
                const style = index !== 0 ? firstItemStyle : styles.tokenLabel;
 | 
			
		||||
                return (
 | 
			
		||||
                    <a
 | 
			
		||||
                        key={token.address}
 | 
			
		||||
                        href={tokenLinkFromToken(token, props.networkId)}
 | 
			
		||||
                        key={tokenInfo.address}
 | 
			
		||||
                        href={tokenLinkFromToken(tokenInfo, props.networkId)}
 | 
			
		||||
                        target="_blank"
 | 
			
		||||
                        style={style}
 | 
			
		||||
                    >
 | 
			
		||||
                        {token.symbol}
 | 
			
		||||
                        {tokenInfo.symbol}
 | 
			
		||||
                    </a>
 | 
			
		||||
                );
 | 
			
		||||
            })}
 | 
			
		||||
@@ -41,6 +41,6 @@ export const TopTokens: React.StatelessComponent<TopTokensProps> = (props: TopTo
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function tokenLinkFromToken(token: Token, networkId: number) {
 | 
			
		||||
    return sharedUtils.getEtherScanLinkIfExists(token.address, networkId, EtherscanLinkSuffixes.Address);
 | 
			
		||||
function tokenLinkFromToken(tokenInfo: WebsiteBackendTokenInfo, networkId: number) {
 | 
			
		||||
    return sharedUtils.getEtherScanLinkIfExists(tokenInfo.address, networkId, EtherscanLinkSuffixes.Address);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -503,19 +503,26 @@ export interface TokenState {
 | 
			
		||||
    price?: BigNumber;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: Add topTokens property once available from backend
 | 
			
		||||
export interface WebsiteBackendRelayerInfo {
 | 
			
		||||
    name: string;
 | 
			
		||||
    dailyTxnVolume: string;
 | 
			
		||||
    url: string;
 | 
			
		||||
    appUrl?: string;
 | 
			
		||||
    headerImgUrl: string;
 | 
			
		||||
    topTokens: WebsiteBackendTokenInfo[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WebsiteBackendPriceInfo {
 | 
			
		||||
    [symbol: string]: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WebsiteBackendTokenInfo {
 | 
			
		||||
    address: string;
 | 
			
		||||
    decimals: number;
 | 
			
		||||
    name: string;
 | 
			
		||||
    symbol: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WebsiteBackendGasInfo {
 | 
			
		||||
    average: number;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user