utils APIs
- calculateSlippageAmount
- calculateGasMargin
- getRouterContract
- getBscScanLink
- isAddress
- shortenAddress
- getEtherscanLink
- basisPointsToPercent
- getTokenAddress
- copyToClipboard
- deepMergeByKey
- decrypt
- encrypt
- emailErrorMsg
- reqErrorMsg
- debouncePromise
- callbackify
- isValidURL
- hasUserApiEditAccess
- loadThirdPartyScript
- getCurrentWindow
- hashVote
- toEthSignedMessageHash
- MAINNET_ID
- usePrevious
- bnum
- normalizeBalance
- isWalletScheme
- WalletSchemeProposalState
- VotingMachineProposalState
- calculateStakes
- formatBalance
- denormalizeBalance
- PendingAction
- isVoteNo
- isVoteYes
- parseSignedVoteMessage
- toPercentage
- verifySignedVote
- NETWORK_ASSET_SYMBOL
- ZERO_ADDRESS
- enumKeys
- DEFAULT_CHAIN_ID
- useInterval
- getBlockchainLink
- getERC20Token
- getDxVoteContract
- toAddressStub
- getNetworkById
- formatNumberValue
- encodeDxdVestingCreate
- encodeErc20Approval
- encodeErc20Transfer
- encodeRepMint
- TXEvents
- BigNumber
- ZERO_HASH
- ANY_ADDRESS
- ERC20_APPROVE_SIGNATURE
- ERC20_TRANSFER_SIGNATURE
- QUEUED_PRIORITY_THRESHOLD
- NETWORKS
- toCamelCaseString
- ALCHEMY_NETWORK_URLS
- DEFAULT_RPC_URLS
- appendEthAPIKey
- NETWORK_APIS
- INFURA_NETWORK_NAMES
- POKT_NETWORK_URLS
- constants
- session
- displayFromWei
- getBigNumber
- getSupplyCap
- getAllowance
- approve
- fromWei
- getFullDisplayBalance
- getLibrary
- maxAmountSpend
- addMaticToMetamask
- returnTokenFromKey
- isSupportedNetwork
- formatTokenAmount
- formatCompact
- formatNumber
- isTokensOnList
- getAPYWithFee
- getRewardRate
- getStakedAmountStakingInfo
- getTVLStaking
- getEarnedUSDLPFarm
- getEarnedUSDDualFarm
- formatAPY
- getUSDString
- formatMulDivTokenAmount
- getExactTokenAmount
- escapeRegExp
- currencyId
- getOneYearFee
- returnStakingInfo
- getAllTokensOnUniswap
- getAllPairsOnUniswap
- getSecondsOneDay
- getValueTokenDecimals
- getPartialTokenAmount
- confirmPriceImpactWithoutFee
- halfAmountSpend
- getTokenInfo
- getEthPrice
- getIntervalTokenData
- getTokenAPRSyrup
- getEarnedUSDSyrup
- getFormattedPrice
- getPriceColor
- getTopTokens
- shortenTx
- getContract
- isZero
- getChartData
- getChartDates
- getChartStartTime
- getLimitedData
- getTopPairs
- getGlobalData
- getBulkPairData
- formatDateFromTimeStamp
- getPairChartData
- getYAXISValuesAnalytics
- getPairTransactions
- getTokenChartData
- getTokenPairs2
- useLairDQUICKAPY
- getPageItemsToLoad
- returnFullWidthMobile
- returnDualStakingInfo
- getDaysCurrentYear
- getTokenPairs
- getBlockFromTimestamp
- getFarmLPToken
- getSyrupLPToken
- initTokenAmountFromCallResult
- returnSyrupInfo
- getCallStateResult
- notEmpty
- DEFAULT_TO_CHAIN_ID
- CHAINS
- UnsupportedChainIdError
- switchChain
- showMigrationBanner
- isValidAddress
- ChainId
- COLORS
- QUERIES
- onboard
- disableSendForm
- max
- parseUnits
- formatUnits
- ParsingError
- TOKENS_LIST
- Token
- blockLiquidity
- migrationPoolV2Warning
- formatEtherRaw
- numberFormatter
- estimateGasForAddEthLiquidity
- DEFAULT_ADD_LIQUIDITY_ETH_GAS_ESTIMATE
- UPDATE_GAS_INTERVAL_MS
- toWeiSafe
- addEtherscan
- receiveAmount
- getEstimatedDepositTime
- DEFAULT_FROM_CHAIN_ID
- formatEther
- PROVIDERS
- getRelayFees
- getLpFee
- isSupportedChainId
- getAddress
- getDepositBox
- TransactionError
- MAX_APPROVAL_AMOUNT
- optimismErc20Pairs
- bobaErc20Pairs
- tagAddress
- validateContractAndChain
- multicallTwoAddress
- IChainSelection
- CHAINS_SELECTION
- onboardBaseConfig
- getConfirmationDepositTime
- shortenAddressLong
- timeAgo
- textareaAutoResize
- initOAuthWindow
- parseURL
- scrollToBottom
- isUrl
- get_url_extension
- wait
- b64_to_utf8
- utf8_to_b64
- callDelayer
- useKeyboardDidShow
- capitalizedCase
- getCoinSymbol
- getCountryName
- getTransactionStatusColor
- useAlert
- scaleSpacing
- getActiveCase
- changeBodyTheme
- getPercentage
- metaGenerator
- useFetch
- visualize
- worldLegends
- dateFormat
- getPerDayStats
- API_BASEURL
- API_INDONESIA
- indonesiaLegends
- getActiveCaseID
- isWsAddress
- constructApiDescriptionObject
- encodeURI
- NOOP
- isLoggedIn
- getBalance
- getAccount
- isTokenOnList
- formatAddressShort
- requiresTypeSlug
- getNextOffchainPollEndingTime
- slugify
- slugifyPreserveDashes
- setupSwagger
- isBlindMode
- getExplorerLink
- isCountdown
- showVvsPrice
- getCookies
- iconFromMIME
- makeRangeArray
- exitIfMaintenance
- sanitizeHtmlString
- parseDate
- retryWrapper
- batchPromises
- arrayPartitions
- sleep
- checkKeyboardTrigger
- clampValue
- debounce
- normalize
- strToInt
- getFromLocalStorage
- saveToLocalStorage
- generateTagColors
- formatNumberWithCommas
- memoize
- calculateTotalInvestment
- throttle
- urlParametersState
- mmddyyyy2ddmmyyy
- sortStringDates
- gtag
- compactNumberFormatter
- getNumberSign
- getLastArrayElement
- fillArrayUntil
- capitalizeFirstLetter
- buildUrl
- XmlWrapper
- XmlTemplate
- setCookie
Other Related APIs
- react#useState
- react#useEffect
- react#useMemo
- react-router-dom#useRouteMatch
- @material-ui/core#Typography
- @material-ui/core#Box
- @material-ui/core/styles#makeStyles
- @material-ui/core/styles#useTheme
- @material-ui/lab#Skeleton
- utils#formatCompact
- utils#formatNumber
- utils#getFormattedPrice
- utils#getPriceColor
- utils#getChartDates
- utils#getChartStartTime
- utils#getLimitedData
- utils#getYAXISValuesAnalytics
- components#AreaChart
- components#ChartType
utils#getTokenChartData TypeScript Examples
The following examples show how to use
utils#getTokenChartData.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AnalyticsTokenChart.tsx From interface-v2 with GNU General Public License v3.0 | 4 votes |
AnalyticsTokenChart: React.FC<{ token: any }> = ({ token }) => {
const classes = useStyles();
const { palette } = useTheme();
const match = useRouteMatch<{ id: string }>();
const tokenAddress = match.params.id;
const [tokenChartData, updateTokenChartData] = useState<any>(null);
const chartIndexes = [CHART_VOLUME, CHART_LIQUIDITY, CHART_PRICE];
const chartIndexTexts = ['Volume', 'Liquidity', 'Price'];
const [chartIndex, setChartIndex] = useState(CHART_VOLUME);
const [durationIndex, setDurationIndex] = useState(
GlobalConst.analyticChart.ONE_MONTH_CHART,
);
const chartData = useMemo(() => {
if (!tokenChartData) return;
return tokenChartData.map((item: any) => {
switch (chartIndex) {
case CHART_VOLUME:
return Number(item.dailyVolumeUSD);
case CHART_LIQUIDITY:
return Number(item.totalLiquidityUSD);
case CHART_PRICE:
return Number(item.priceUSD);
default:
return;
}
});
}, [tokenChartData, chartIndex]);
const currentData = useMemo(() => {
if (!token) return;
switch (chartIndex) {
case CHART_VOLUME:
return token.oneDayVolumeUSD;
case CHART_LIQUIDITY:
return token.totalLiquidityUSD;
case CHART_PRICE:
return token.priceUSD;
default:
return;
}
}, [token, chartIndex]);
const currentPercent = useMemo(() => {
if (!token) return;
switch (chartIndex) {
case CHART_VOLUME:
return token.volumeChangeUSD;
case CHART_LIQUIDITY:
return token.liquidityChangeUSD;
case CHART_PRICE:
return token.priceChangeUSD;
default:
return;
}
}, [token, chartIndex]);
useEffect(() => {
async function fetchTokenChartData() {
updateTokenChartData(null);
const chartData = await getTokenChartData(
tokenAddress,
durationIndex === GlobalConst.analyticChart.ALL_CHART
? 0
: getChartStartTime(durationIndex),
);
if (chartData) {
const newChartData = getLimitedData(
chartData,
GlobalConst.analyticChart.CHART_COUNT,
);
updateTokenChartData(newChartData);
}
}
fetchTokenChartData();
}, [updateTokenChartData, tokenAddress, durationIndex]);
const currentPercentColor = getPriceColor(Number(currentPercent), palette);
return (
<>
<Box display='flex' flexWrap='wrap' justifyContent='space-between'>
<Box mt={1.5}>
<Typography variant='caption'>
{chartIndexTexts[chartIndex]}
</Typography>
<Box mt={1}>
{currentData && currentPercent ? (
<>
<Box display='flex' alignItems='center'>
<Typography
variant='h4'
style={{ color: palette.text.primary }}
>
$
{currentData > 100000
? formatCompact(currentData)
: formatNumber(currentData)}
</Typography>
<Box
className={classes.priceChangeWrapper}
ml={1}
bgcolor={currentPercentColor.bgColor}
color={currentPercentColor.textColor}
>
<Typography variant='body2'>
{getFormattedPrice(Number(currentPercent))}%
</Typography>
</Box>
</Box>
<Box>
<Typography variant='caption'>
{dayjs().format('MMM DD, YYYY')}
</Typography>
</Box>
</>
) : (
<Skeleton variant='rect' width='120px' height='30px' />
)}
</Box>
</Box>
<Box display='flex' flexDirection='column' alignItems='flex-end'>
<Box mt={1.5}>
<ChartType
chartTypes={chartIndexes}
typeTexts={chartIndexTexts}
chartType={chartIndex}
setChartType={setChartIndex}
/>
</Box>
<Box mt={1.5}>
<ChartType
chartTypes={GlobalData.analytics.CHART_DURATIONS}
typeTexts={GlobalData.analytics.CHART_DURATION_TEXTS}
chartType={durationIndex}
setChartType={setDurationIndex}
/>
</Box>
</Box>
</Box>
<Box mt={2} width={1}>
{tokenChartData ? (
<AreaChart
data={chartData}
yAxisValues={getYAXISValuesAnalytics(chartData)}
dates={tokenChartData.map((value: any) =>
dayjs(value.date * 1000)
.add(1, 'day')
.unix(),
)}
width='100%'
height={240}
categories={getChartDates(tokenChartData, durationIndex)}
/>
) : (
<Skeleton variant='rect' width='100%' height={217} />
)}
</Box>
</>
);
}