diff --git a/src/apps/explorer/components/SummaryCardsWidget/SummaryCards.tsx b/src/apps/explorer/components/SummaryCardsWidget/SummaryCards.tsx index 2fca35109..f79a52185 100644 --- a/src/apps/explorer/components/SummaryCardsWidget/SummaryCards.tsx +++ b/src/apps/explorer/components/SummaryCardsWidget/SummaryCards.tsx @@ -5,12 +5,13 @@ import { formatDistanceToNowStrict } from 'date-fns' import { Card, CardContent } from 'components/common/Card' import { CardRow } from 'components/common/CardRow' -import { TotalSummaryResponse } from '.' +import { TotalSummaryResponse } from './useGetSummaryData' import { abbreviateString } from 'utils' import { useMediaBreakpoint } from 'hooks/useMediaBreakPoint' import { calcDiff, getColorBySign } from 'components/common/Card/card.utils' import { CopyButton } from 'components/common/CopyButton' import { LinkWithPrefixNetwork } from 'components/common/LinkWithPrefixNetwork' +import { numberFormatter } from './utils' const BatchInfoHeight = '19.6rem' const DESKTOP_TEXT_SIZE = 1.8 // rem @@ -96,7 +97,7 @@ export function SummaryCards({ summaryData, children }: SummaryCardsProps): JSX. @@ -122,7 +123,7 @@ export function SummaryCards({ summaryData, children }: SummaryCardsProps): JSX. @@ -142,7 +143,7 @@ export function SummaryCards({ summaryData, children }: SummaryCardsProps): JSX. - * */ -function usePreviousLastValueData(value: string): string | undefined { - const ref = useRef() +function usePreviousLastValueData(value: T): T | undefined { + const ref = useRef() useEffect(() => { ref.current = value @@ -124,7 +124,7 @@ export function VolumeChart({ volumeData, height = DEFAULT_CHART_HEIGHT, width = undefined, - periodId = DEFAULT_PERIOD_ID, + period, children, }: React.PropsWithChildren): JSX.Element { const { data: items, currentVolume, changedVolume, isLoading } = volumeData || {} @@ -134,15 +134,17 @@ export function VolumeChart({ const diffPercentageVolume = currentVolume && changedVolume && calcDiff(currentVolume, changedVolume) const captionNameColor = getColorBySign(diffPercentageVolume || 0) const [crossHairData, setCrossHairData] = useState(null) - const previousPeriod = usePreviousLastValueData(periodId) + const network = useNetworkId() + const previousPeriod = usePreviousLastValueData(period) + const previousNetwork = usePreviousLastValueData(network) // reset the chart when the volume period is changed useEffect(() => { - if (periodId !== previousPeriod && chartCreated) { + if ((period !== previousPeriod || network !== previousNetwork) && chartCreated) { chartCreated.resize(0, 0) setChartCreated(null) } - }, [chartCreated, periodId, previousPeriod]) + }, [chartCreated, period, previousPeriod, network]) useEffect(() => { if (chartCreated || !chartContainerRef.current || !items || isLoading) return @@ -150,7 +152,7 @@ export function VolumeChart({ const chart = _buildChart(chartContainerRef.current, width, height, theme) const series = chart.addAreaSeries({ lineWidth: 1, - lineColor: theme[captionNameColor], + lineColor: captionNameColor === 'red1' ? COLOR_NEGATIVE_DIFFERENCE_LINE : COLOR_POSITIVE_DIFFERENCE_LINE, topColor: theme[captionNameColor], bottomColor: captionNameColor === 'red1' ? COLOR_NEGATIVE_DIFFERENCE : COLOR_POSITIVE_DIFFERENCE, }) @@ -180,6 +182,16 @@ export function VolumeChart({ chartCreated.timeScale().scrollToPosition(0, false) }, [chartCreated, height, width]) + const formattedDate = React.useMemo(() => { + if (!crossHairData) return '' + + if (period === VolumePeriod.DAILY) { + return format(fromUnixTime(crossHairData.time as UTCTimestamp), 'MMM d HH:mm, yyyy') + } + + return format(fromUnixTime(crossHairData.time as UTCTimestamp), 'MMM d, yyyy') + }, [crossHairData, period]) + if (isLoading && chartCreated === undefined) return ( @@ -198,12 +210,15 @@ export function VolumeChart({ ) : crossHairData ? ( <>

${_formatAmount(crossHairData.value.toString())}

-

{format(fromUnixTime(crossHairData.time as UTCTimestamp), 'MMM d, yyyy')}

+

{formattedDate}

) : ( <> -

${currentVolume && _formatAmount(currentVolume.toString())}

-

{diffPercentageVolume && _formatAmount(diffPercentageVolume.toString())}%

+

${currentVolume && numberFormatter(currentVolume)}

+

+ {(diffPercentageVolume ?? 0) > 0 ? '+' : ''} + {diffPercentageVolume && _formatAmount(diffPercentageVolume.toString())}% +

)} diff --git a/src/apps/explorer/components/SummaryCardsWidget/VolumeChartWidget.tsx b/src/apps/explorer/components/SummaryCardsWidget/VolumeChart/VolumeChartWidget.tsx similarity index 54% rename from src/apps/explorer/components/SummaryCardsWidget/VolumeChartWidget.tsx rename to src/apps/explorer/components/SummaryCardsWidget/VolumeChart/VolumeChartWidget.tsx index c6613faa3..3a0190c73 100644 --- a/src/apps/explorer/components/SummaryCardsWidget/VolumeChartWidget.tsx +++ b/src/apps/explorer/components/SummaryCardsWidget/VolumeChart/VolumeChartWidget.tsx @@ -1,9 +1,8 @@ -import { UTCTimestamp } from 'lightweight-charts' -import React, { useRef, useState, useEffect } from 'react' +import React, { useRef, useState } from 'react' import styled from 'styled-components' +import { useGetVolumeData } from './useGetVolumeData' -import { PeriodButton, VolumeChart, VolumeItem, VolumeDataResponse } from './VolumeChart' -import volumeDataJson from './volumeData.json' +import { PeriodButton, VolumeChart } from './VolumeChart' const WrapperVolumeChart = styled.div` height: 19.6rem; @@ -15,57 +14,6 @@ export enum VolumePeriod { YEARLY = '1Y', } -type RawVolumeItem = Pick & { - timestamp: string - volumeUsd: string -} - -// TODO move builds to a file where The graph API is called -export function buildVolumeData( - _data: RawVolumeItem[], - volumePeriod: VolumePeriod, -): { - data: VolumeItem[] - currentVolume: number - changedVolume: number -} { - const periods = { - [VolumePeriod.DAILY]: 7, - [VolumePeriod.WEEKLY]: 14, - [VolumePeriod.MONTHLY]: 30, - [VolumePeriod.YEARLY]: 365, - } - const slicedData = _data.slice(0, periods[volumePeriod]) - return { - data: slicedData.map((item) => ({ - id: item.id, - time: parseInt(item.timestamp) as UTCTimestamp, - value: parseFloat(item.volumeUsd), - })), - currentVolume: parseFloat(slicedData[slicedData.length - 1].volumeUsd), - changedVolume: parseFloat(slicedData[0].volumeUsd), - } -} - -function useGetVolumeData(volumeTimePeriod = VolumePeriod.DAILY): VolumeDataResponse | undefined { - const [volumeData, setVolumeDataJson] = useState() - const SECONDS = 2 // Emulating API Request delay - - useEffect(() => { - setVolumeDataJson((prevState) => { - return { ...prevState, isLoading: true } - }) - const timer = setTimeout( - () => setVolumeDataJson({ ...buildVolumeData(volumeDataJson, volumeTimePeriod), isLoading: false }), - SECONDS * 1000, - ) - - return (): void => clearTimeout(timer) - }, [volumeTimePeriod]) - - return volumeData -} - export function VolumeChartWidget(): JSX.Element { const [periodSelected, setVolumeTimePeriod] = useState(VolumePeriod.DAILY) const volumeData = useGetVolumeData(periodSelected) @@ -88,7 +36,7 @@ export function VolumeChartWidget(): JSX.Element { return ( - + () + const network = useNetworkId() ?? Network.MAINNET + + useEffect(() => { + setVolumeDataJson((prevState) => { + return { ...prevState, isLoading: true } + }) + + let rawData: Promise + if (volumeTimePeriod === VolumePeriod.DAILY) { + rawData = getLastHoursData(network) + } else { + rawData = getLastDaysData(volumeTimePeriod, network) + } + + rawData.then((data: RawVolumeItem[]) => { + const volumeData = buildVolumeData(data, volumeTimePeriod) + volumeData.data.sort((a, b) => (a.time < b.time ? -1 : 1)) + setVolumeDataJson({ ...volumeData, isLoading: false }) + }) + }, [network, volumeTimePeriod]) + + return volumeData +} + +async function getLastHoursData(network: Network): Promise { + const data = await COW_SDK[network]?.cowSubgraphApi.getLastHoursVolume(48) + + return (data?.hourlyTotals as RawVolumeItem[]) || [] +} + +async function getLastDaysData( + period: VolumePeriod.WEEKLY | VolumePeriod.MONTHLY | VolumePeriod.YEARLY, + network: Network, +): Promise { + const days = { + [VolumePeriod.WEEKLY]: 7 * 2, + [VolumePeriod.MONTHLY]: 30 * 2, + [VolumePeriod.YEARLY]: 365 * 2, + } + const data = await COW_SDK[network]?.cowSubgraphApi.getLastDaysVolume(days[period]) + + return (data?.dailyTotals as RawVolumeItem[]) || [] +} + +export function buildVolumeData( + _data: RawVolumeItem[], + volumePeriod: VolumePeriod, +): { + data: HistogramData[] + currentVolume: number + changedVolume: number +} { + const periods = { + [VolumePeriod.DAILY]: 24, + [VolumePeriod.WEEKLY]: 7, + [VolumePeriod.MONTHLY]: 30, + [VolumePeriod.YEARLY]: 365, + } + const currentPeriodData = _data.slice(0, periods[volumePeriod]) + const previousPeriodData = _data.slice(periods[volumePeriod], periods[volumePeriod] * 2) + + return { + data: currentPeriodData.map((item) => ({ + time: Number(item.timestamp) as UTCTimestamp, + value: Number(item.volumeUsd), + })), + currentVolume: getAccumulatedVolume(currentPeriodData), + changedVolume: getAccumulatedVolume(previousPeriodData), + } +} + +function getAccumulatedVolume(data: RawVolumeItem[]): number { + return data.reduce((acc, item) => acc + Number(item.volumeUsd), 0) +} diff --git a/src/apps/explorer/components/SummaryCardsWidget/VolumeChart/volumeData.json b/src/apps/explorer/components/SummaryCardsWidget/VolumeChart/volumeData.json new file mode 100644 index 000000000..de1627fd4 --- /dev/null +++ b/src/apps/explorer/components/SummaryCardsWidget/VolumeChart/volumeData.json @@ -0,0 +1,1038 @@ +[ + { + "timestamp": "1628035200", + "volumeUsd": "264.1026613192727987070962326607256" + }, + { + "timestamp": "1628121600", + "volumeUsd": "391.8431950787607360653877021422084" + }, + { + "timestamp": "1628208000", + "volumeUsd": "44170.30995735179539545489288420561" + }, + { + "timestamp": "1628467200", + "volumeUsd": "125788.1846455319910176069135978715" + }, + { + "timestamp": "1628553600", + "volumeUsd": "58497.31545514269077294075903020343" + }, + { + "timestamp": "1628640000", + "volumeUsd": "4255147.210300493943194969687734145" + }, + { + "timestamp": "1628726400", + "volumeUsd": "4258984.14131870247600113291134035" + }, + { + "timestamp": "1628812800", + "volumeUsd": "11196476.10218581990913965753554927" + }, + { + "timestamp": "1628899200", + "volumeUsd": "5693421.975646415410767985276909841" + }, + { + "timestamp": "1628985600", + "volumeUsd": "5140626.893463864321893574430551182" + }, + { + "timestamp": "1629072000", + "volumeUsd": "10790662.58246141103874361283087318" + }, + { + "timestamp": "1629158400", + "volumeUsd": "14973158.72702460102059311858504973" + }, + { + "timestamp": "1629244800", + "volumeUsd": "12444996.00189092968444895085361295" + }, + { + "timestamp": "1629331200", + "volumeUsd": "10267229.65418684570962619303458783" + }, + { + "timestamp": "1629417600", + "volumeUsd": "11059304.00873806354826772674119234" + }, + { + "timestamp": "1629504000", + "volumeUsd": "15984187.36775369451259182791343438" + }, + { + "timestamp": "1629590400", + "volumeUsd": "8418824.860426955852589802508758573" + }, + { + "timestamp": "1629676800", + "volumeUsd": "12362163.74621715254114340302711787" + }, + { + "timestamp": "1629763200", + "volumeUsd": "14869263.82922800725834043723217192" + }, + { + "timestamp": "1629849600", + "volumeUsd": "19225363.51741531936260233808814678" + }, + { + "timestamp": "1629936000", + "volumeUsd": "11548310.30970494236387575273446745" + }, + { + "timestamp": "1630022400", + "volumeUsd": "24804718.69159231275687873245676744" + }, + { + "timestamp": "1630108800", + "volumeUsd": "7366469.913955173479882181441823969" + }, + { + "timestamp": "1630195200", + "volumeUsd": "5397927.293501663788770146938151407" + }, + { + "timestamp": "1630281600", + "volumeUsd": "20457024.94944181257376740928124676" + }, + { + "timestamp": "1630368000", + "volumeUsd": "19080660.58563656978342555074289169" + }, + { + "timestamp": "1630454400", + "volumeUsd": "12200113.99123763805601055644321841" + }, + { + "timestamp": "1630540800", + "volumeUsd": "16683855.81657815119998530796049737" + }, + { + "timestamp": "1630627200", + "volumeUsd": "24917825.58088327925069707030235626" + }, + { + "timestamp": "1630713600", + "volumeUsd": "7975225.584173807841389303395983332" + }, + { + "timestamp": "1630800000", + "volumeUsd": "14486259.92458510963889278468595878" + }, + { + "timestamp": "1630886400", + "volumeUsd": "24594884.51570801428332297373214365" + }, + { + "timestamp": "1630972800", + "volumeUsd": "25246552.03382204791880123791117219" + }, + { + "timestamp": "1631059200", + "volumeUsd": "46192860.77398435316051283802341054" + }, + { + "timestamp": "1631145600", + "volumeUsd": "11867138.90620095037626912528402154" + }, + { + "timestamp": "1631232000", + "volumeUsd": "13394900.70122574669579215984317292" + }, + { + "timestamp": "1631318400", + "volumeUsd": "13325643.49946101107693137183922065" + }, + { + "timestamp": "1631404800", + "volumeUsd": "8092318.09030018513457368914301328" + }, + { + "timestamp": "1631491200", + "volumeUsd": "4272821.674509238342074493658420539" + }, + { + "timestamp": "1631577600", + "volumeUsd": "5232351.514286953167596976734366314" + }, + { + "timestamp": "1631664000", + "volumeUsd": "11712565.15649452156715097115336238" + }, + { + "timestamp": "1631750400", + "volumeUsd": "10774138.63617555497873156430752612" + }, + { + "timestamp": "1631836800", + "volumeUsd": "5626951.313436052084734048845308748" + }, + { + "timestamp": "1631923200", + "volumeUsd": "6126327.793343543142214542020838072" + }, + { + "timestamp": "1632009600", + "volumeUsd": "5451652.570042702097962723765914787" + }, + { + "timestamp": "1632096000", + "volumeUsd": "9149527.652681547399423333072625416" + }, + { + "timestamp": "1632182400", + "volumeUsd": "11643145.178136953611917983300173" + }, + { + "timestamp": "1632268800", + "volumeUsd": "10504764.24745993208959221456868349" + }, + { + "timestamp": "1632355200", + "volumeUsd": "7783437.11192692718860609273455425" + }, + { + "timestamp": "1632441600", + "volumeUsd": "20472795.34856898795554155200144709" + }, + { + "timestamp": "1632528000", + "volumeUsd": "13762414.32038116707182707199214008" + }, + { + "timestamp": "1632614400", + "volumeUsd": "10385592.4710458824435787162622291" + }, + { + "timestamp": "1632700800", + "volumeUsd": "12942859.49362902795894425129440937" + }, + { + "timestamp": "1632787200", + "volumeUsd": "10706836.98306670968113342784580609" + }, + { + "timestamp": "1632873600", + "volumeUsd": "7784845.338227751186249276151027166" + }, + { + "timestamp": "1632960000", + "volumeUsd": "12037839.49796775128344046288802729" + }, + { + "timestamp": "1633046400", + "volumeUsd": "21087457.53893934062659917740834039" + }, + { + "timestamp": "1633132800", + "volumeUsd": "13797811.06418763410649816096973915" + }, + { + "timestamp": "1633219200", + "volumeUsd": "9861120.798023570929076486650975623" + }, + { + "timestamp": "1633305600", + "volumeUsd": "8981335.255991756217327570322486631" + }, + { + "timestamp": "1633392000", + "volumeUsd": "20603886.19629376975067091764137395" + }, + { + "timestamp": "1633478400", + "volumeUsd": "14352834.96741923541199356084708884" + }, + { + "timestamp": "1633564800", + "volumeUsd": "17520602.37421067342777433543053378" + }, + { + "timestamp": "1633651200", + "volumeUsd": "28713770.17603758452629023783650294" + }, + { + "timestamp": "1633737600", + "volumeUsd": "23083949.82388908487477909296582092" + }, + { + "timestamp": "1633824000", + "volumeUsd": "12852240.80842868505608223447908262" + }, + { + "timestamp": "1633910400", + "volumeUsd": "10063062.89566770532413627381593465" + }, + { + "timestamp": "1633996800", + "volumeUsd": "14759949.88537321801330798603187873" + }, + { + "timestamp": "1634083200", + "volumeUsd": "17769262.3128364957585019671231781" + }, + { + "timestamp": "1634169600", + "volumeUsd": "19168450.73061883816356224918991349" + }, + { + "timestamp": "1634256000", + "volumeUsd": "27381434.38170593781850553678756342" + }, + { + "timestamp": "1634342400", + "volumeUsd": "14442050.27205044423123059355596529" + }, + { + "timestamp": "1634428800", + "volumeUsd": "10776479.5553298490687984894041589" + }, + { + "timestamp": "1634515200", + "volumeUsd": "16509399.24829141419991672135667933" + }, + { + "timestamp": "1634601600", + "volumeUsd": "14793517.92295971690385778851559891" + }, + { + "timestamp": "1634688000", + "volumeUsd": "27908537.16031337725048301411050969" + }, + { + "timestamp": "1634774400", + "volumeUsd": "16707582.79994729013729213522012854" + }, + { + "timestamp": "1634860800", + "volumeUsd": "22330561.2088958521003890098998716" + }, + { + "timestamp": "1634947200", + "volumeUsd": "19987034.49892424498783382516314636" + }, + { + "timestamp": "1635033600", + "volumeUsd": "19477476.30986371345458111005527351" + }, + { + "timestamp": "1635120000", + "volumeUsd": "20699158.99650677259654680596338942" + }, + { + "timestamp": "1635206400", + "volumeUsd": "22889037.63745448220481308938086943" + }, + { + "timestamp": "1635292800", + "volumeUsd": "30404456.80268227263938549041259517" + }, + { + "timestamp": "1635379200", + "volumeUsd": "37414445.66902014907521061422580225" + }, + { + "timestamp": "1635465600", + "volumeUsd": "25806145.31531267061570366483471348" + }, + { + "timestamp": "1635552000", + "volumeUsd": "20892366.95316734209744228120383706" + }, + { + "timestamp": "1635638400", + "volumeUsd": "17754895.24546019939269106655910004" + }, + { + "timestamp": "1635724800", + "volumeUsd": "25463580.83417997986575892054879431" + }, + { + "timestamp": "1635811200", + "volumeUsd": "39792740.21921187363021253658723832" + }, + { + "timestamp": "1635897600", + "volumeUsd": "18762702.20801989126872305939144429" + }, + { + "timestamp": "1635984000", + "volumeUsd": "26319237.00534547265780252158285414" + }, + { + "timestamp": "1636070400", + "volumeUsd": "28642779.62456876752432373367349928" + }, + { + "timestamp": "1636156800", + "volumeUsd": "30447779.2940141260938645278178646" + }, + { + "timestamp": "1636243200", + "volumeUsd": "44762376.93718278150190512607149217" + }, + { + "timestamp": "1636329600", + "volumeUsd": "28364870.49970478159139014380813976" + }, + { + "timestamp": "1636416000", + "volumeUsd": "37056399.01563942824364566533699228" + }, + { + "timestamp": "1636502400", + "volumeUsd": "40448015.85204839434838068520449373" + }, + { + "timestamp": "1636588800", + "volumeUsd": "26801100.93499803826365775903236835" + }, + { + "timestamp": "1636675200", + "volumeUsd": "31703469.15123682261228259883368223" + }, + { + "timestamp": "1636761600", + "volumeUsd": "19114627.70129159341810817410562271" + }, + { + "timestamp": "1636848000", + "volumeUsd": "25893289.12396663510865811146783625" + }, + { + "timestamp": "1636934400", + "volumeUsd": "39619809.54559121755260090604524125" + }, + { + "timestamp": "1637020800", + "volumeUsd": "54115328.0774937347757762670982237" + }, + { + "timestamp": "1637107200", + "volumeUsd": "48197517.73040429723015779819372989" + }, + { + "timestamp": "1637193600", + "volumeUsd": "51248484.98750321919099089064374519" + }, + { + "timestamp": "1637280000", + "volumeUsd": "58841901.74443260036615195426630644" + }, + { + "timestamp": "1637366400", + "volumeUsd": "30062812.23099501550633612987504227" + }, + { + "timestamp": "1637452800", + "volumeUsd": "33293946.54888887270881937169348697" + }, + { + "timestamp": "1637539200", + "volumeUsd": "45012602.79670730627180689459755173" + }, + { + "timestamp": "1637625600", + "volumeUsd": "45616199.3682386005991614169343726" + }, + { + "timestamp": "1637712000", + "volumeUsd": "33583785.25167063579055107320121124" + }, + { + "timestamp": "1637798400", + "volumeUsd": "34779867.25538147812406371354444682" + }, + { + "timestamp": "1637884800", + "volumeUsd": "28835192.13270267224496962542718451" + }, + { + "timestamp": "1637971200", + "volumeUsd": "37569053.47602718881837225376618396" + }, + { + "timestamp": "1638057600", + "volumeUsd": "46197205.30290299912544900176417155" + }, + { + "timestamp": "1638144000", + "volumeUsd": "27255899.26399445704952168130563164" + }, + { + "timestamp": "1638230400", + "volumeUsd": "37988110.69875846941088378566885003" + }, + { + "timestamp": "1638316800", + "volumeUsd": "49451881.65516702138157303270587189" + }, + { + "timestamp": "1638403200", + "volumeUsd": "31118822.17819527317191679693777999" + }, + { + "timestamp": "1638489600", + "volumeUsd": "25843541.79170221264130301052851351" + }, + { + "timestamp": "1638576000", + "volumeUsd": "39334800.84683723849524846547699799" + }, + { + "timestamp": "1638662400", + "volumeUsd": "44058850.45275253618679135892358139" + }, + { + "timestamp": "1638748800", + "volumeUsd": "83606209.20250598885774109479078572" + }, + { + "timestamp": "1638835200", + "volumeUsd": "53576978.72600041646454582700581839" + }, + { + "timestamp": "1638921600", + "volumeUsd": "39442640.30519908714781017618618009" + }, + { + "timestamp": "1639008000", + "volumeUsd": "41651479.36345742500876421384163785" + }, + { + "timestamp": "1639094400", + "volumeUsd": "40965669.19604669910720592539777297" + }, + { + "timestamp": "1639180800", + "volumeUsd": "24810422.02814002690694637291263147" + }, + { + "timestamp": "1639267200", + "volumeUsd": "27300622.39320161039898257319810014" + }, + { + "timestamp": "1639353600", + "volumeUsd": "44319938.34050013282621296921315004" + }, + { + "timestamp": "1639440000", + "volumeUsd": "38600880.09593891930711960844313587" + }, + { + "timestamp": "1639526400", + "volumeUsd": "36324803.20782812176893903546829983" + }, + { + "timestamp": "1639612800", + "volumeUsd": "42363418.19442147472302220435560786" + }, + { + "timestamp": "1639699200", + "volumeUsd": "38032969.96708148513321776528401042" + }, + { + "timestamp": "1639785600", + "volumeUsd": "23658053.38150622691873182888280777" + }, + { + "timestamp": "1639872000", + "volumeUsd": "19392753.61647699745664919890769991" + }, + { + "timestamp": "1639958400", + "volumeUsd": "22423307.7142323538854668712092989" + }, + { + "timestamp": "1640044800", + "volumeUsd": "32553853.05302486863636177204496314" + }, + { + "timestamp": "1640131200", + "volumeUsd": "49944395.52114673254032110054432146" + }, + { + "timestamp": "1640217600", + "volumeUsd": "40491636.83373978084766902628954764" + }, + { + "timestamp": "1640304000", + "volumeUsd": "29647252.35880455004694285930686879" + }, + { + "timestamp": "1640390400", + "volumeUsd": "12497482.04831848436438215546681854" + }, + { + "timestamp": "1640476800", + "volumeUsd": "30590915.98033407403724371766906621" + }, + { + "timestamp": "1640563200", + "volumeUsd": "24405099.0589354793073700407765761" + }, + { + "timestamp": "1640649600", + "volumeUsd": "41595582.0878370209417818566569781" + }, + { + "timestamp": "1640736000", + "volumeUsd": "50157165.43448199486693841969116019" + }, + { + "timestamp": "1640822400", + "volumeUsd": "45179535.94620346628041427379038528" + }, + { + "timestamp": "1640908800", + "volumeUsd": "37015524.38336468114982960841894517" + }, + { + "timestamp": "1640995200", + "volumeUsd": "35326319.43165557218636496341914805" + }, + { + "timestamp": "1641081600", + "volumeUsd": "68219503.59381285044757231107864065" + }, + { + "timestamp": "1641168000", + "volumeUsd": "50645075.22190659770033508135992765" + }, + { + "timestamp": "1641254400", + "volumeUsd": "44103464.32867272617867662251773268" + }, + { + "timestamp": "1641340800", + "volumeUsd": "73166993.47962013537570575500885864" + }, + { + "timestamp": "1641427200", + "volumeUsd": "46258787.89981230294205436869964626" + }, + { + "timestamp": "1641513600", + "volumeUsd": "63158329.90686723989027826277230432" + }, + { + "timestamp": "1641600000", + "volumeUsd": "48018093.32220448253996471116227066" + }, + { + "timestamp": "1641686400", + "volumeUsd": "27137000.30491917265533901328541435" + }, + { + "timestamp": "1641772800", + "volumeUsd": "51685532.27591721998653615535832837" + }, + { + "timestamp": "1641859200", + "volumeUsd": "65618002.81712488832791223120518742" + }, + { + "timestamp": "1641945600", + "volumeUsd": "48276926.79007992498378625142668182" + }, + { + "timestamp": "1642032000", + "volumeUsd": "45507926.01489708344440390895280399" + }, + { + "timestamp": "1642118400", + "volumeUsd": "38079025.39915341847293568420114384" + }, + { + "timestamp": "1642204800", + "volumeUsd": "43406988.88559609300515398940942154" + }, + { + "timestamp": "1642291200", + "volumeUsd": "35286677.15640864073715815627221795" + }, + { + "timestamp": "1642377600", + "volumeUsd": "48973246.22803599273051190523156683" + }, + { + "timestamp": "1642464000", + "volumeUsd": "72529169.12239719965330574053867997" + }, + { + "timestamp": "1642550400", + "volumeUsd": "94049364.67505636255695060348199093" + }, + { + "timestamp": "1642636800", + "volumeUsd": "150964140.0159995542206386853055798" + }, + { + "timestamp": "1642723200", + "volumeUsd": "64718375.06563393942536876250377032" + }, + { + "timestamp": "1642809600", + "volumeUsd": "60598904.23967112478314548373466778" + }, + { + "timestamp": "1642896000", + "volumeUsd": "21647925.68153851728390278933331301" + }, + { + "timestamp": "1642982400", + "volumeUsd": "70181571.93525828465038079593291143" + }, + { + "timestamp": "1643068800", + "volumeUsd": "41865026.98465605198783981778403162" + }, + { + "timestamp": "1643155200", + "volumeUsd": "110177516.5394706021251761408961626" + }, + { + "timestamp": "1643241600", + "volumeUsd": "195940264.1204244464108765947261667" + }, + { + "timestamp": "1643328000", + "volumeUsd": "81942640.39389850797187575433892008" + }, + { + "timestamp": "1643414400", + "volumeUsd": "26929943.80911496427624636376166678" + }, + { + "timestamp": "1643500800", + "volumeUsd": "30781062.90428792435393087632854575" + }, + { + "timestamp": "1643587200", + "volumeUsd": "28040117.89636973168709389474390664" + }, + { + "timestamp": "1643673600", + "volumeUsd": "30599539.37865873966579709037673852" + }, + { + "timestamp": "1643760000", + "volumeUsd": "29407071.93186235174457898717998016" + }, + { + "timestamp": "1643846400", + "volumeUsd": "34901614.75274823779299424818818087" + }, + { + "timestamp": "1643932800", + "volumeUsd": "53376924.61209042824611768507395511" + }, + { + "timestamp": "1644019200", + "volumeUsd": "34797506.19599603468795112742323523" + }, + { + "timestamp": "1644105600", + "volumeUsd": "27033938.30607637673554947539917284" + }, + { + "timestamp": "1644192000", + "volumeUsd": "51034609.02935224779216603042228065" + }, + { + "timestamp": "1644278400", + "volumeUsd": "53224016.05825635575565050980883241" + }, + { + "timestamp": "1644364800", + "volumeUsd": "52260259.52487749539902972939217818" + }, + { + "timestamp": "1644451200", + "volumeUsd": "26659923.41498140906219063488915568" + }, + { + "timestamp": "1644537600", + "volumeUsd": "38935543.51372562754404868937737057" + }, + { + "timestamp": "1644624000", + "volumeUsd": "17536464.44090807777884145553446127" + }, + { + "timestamp": "1644710400", + "volumeUsd": "14838854.43350538647219519954658298" + }, + { + "timestamp": "1644796800", + "volumeUsd": "32646145.01711170991326636490890986" + }, + { + "timestamp": "1644883200", + "volumeUsd": "30119440.28149967658289371943444439" + }, + { + "timestamp": "1644969600", + "volumeUsd": "31183832.12417496530091672120042147" + }, + { + "timestamp": "1645056000", + "volumeUsd": "26944217.54403434062636571581702271" + }, + { + "timestamp": "1645142400", + "volumeUsd": "38116271.70479872945198547710175613" + }, + { + "timestamp": "1645228800", + "volumeUsd": "18876215.06827223864894591913424153" + }, + { + "timestamp": "1645315200", + "volumeUsd": "15053751.84829327514944151850533619" + }, + { + "timestamp": "1645401600", + "volumeUsd": "23735672.28549919641545408883987299" + }, + { + "timestamp": "1645488000", + "volumeUsd": "31832199.90246084177376093619901003" + }, + { + "timestamp": "1645574400", + "volumeUsd": "64419780.96451142363954267877760924" + }, + { + "timestamp": "1645660800", + "volumeUsd": "114601148.2154432449616781831881034" + }, + { + "timestamp": "1645747200", + "volumeUsd": "64630135.20684018361728187002706693" + }, + { + "timestamp": "1645833600", + "volumeUsd": "15273200.38652621284254896028136552" + }, + { + "timestamp": "1645920000", + "volumeUsd": "8804242.783661024904075391854456206" + }, + { + "timestamp": "1646006400", + "volumeUsd": "16157038.32753270306791304339480703" + }, + { + "timestamp": "1646092800", + "volumeUsd": "33641988.71128429029066951476695514" + }, + { + "timestamp": "1646179200", + "volumeUsd": "57569883.45157212807404403424989867" + }, + { + "timestamp": "1646265600", + "volumeUsd": "21937556.05545034488453296397729302" + }, + { + "timestamp": "1646352000", + "volumeUsd": "34306668.61551657048320387576300382" + }, + { + "timestamp": "1646438400", + "volumeUsd": "12229477.15079947012737008426288174" + }, + { + "timestamp": "1646524800", + "volumeUsd": "98195109.27869231053148060360409076" + }, + { + "timestamp": "1646611200", + "volumeUsd": "18375708.59351173850916247867756894" + }, + { + "timestamp": "1646697600", + "volumeUsd": "21474501.2835739339995979658979438" + }, + { + "timestamp": "1646784000", + "volumeUsd": "17869058.6558768878780459540501682" + }, + { + "timestamp": "1646870400", + "volumeUsd": "28968000.37312322526511027941045684" + }, + { + "timestamp": "1646956800", + "volumeUsd": "33853828.7143008769797574501850657" + }, + { + "timestamp": "1647043200", + "volumeUsd": "11745531.02139183970985509154988926" + }, + { + "timestamp": "1647129600", + "volumeUsd": "16890339.93345195265578254972716163" + }, + { + "timestamp": "1647216000", + "volumeUsd": "17865191.44662998606143683081430548" + }, + { + "timestamp": "1647302400", + "volumeUsd": "10347003.14859543110200675791129926" + }, + { + "timestamp": "1647388800", + "volumeUsd": "89367638.00600793457928088645607762" + }, + { + "timestamp": "1647475200", + "volumeUsd": "36606235.62006347634317937073737124" + }, + { + "timestamp": "1647561600", + "volumeUsd": "31511871.88132788144119560551553305" + }, + { + "timestamp": "1647648000", + "volumeUsd": "12805498.08631725030604007309349388" + }, + { + "timestamp": "1647734400", + "volumeUsd": "25418293.19779343057236232602321456" + }, + { + "timestamp": "1647820800", + "volumeUsd": "20883071.07867775792668281537628989" + }, + { + "timestamp": "1647907200", + "volumeUsd": "35625934.58345891149136743275344071" + }, + { + "timestamp": "1647993600", + "volumeUsd": "26321637.34100863752210053230091686" + }, + { + "timestamp": "1648080000", + "volumeUsd": "64750214.17602452969861803702609448" + }, + { + "timestamp": "1648166400", + "volumeUsd": "51475828.79339545956586075534706781" + }, + { + "timestamp": "1648252800", + "volumeUsd": "30557349.26361994156963387816495361" + }, + { + "timestamp": "1648339200", + "volumeUsd": "43655502.47841859790912087649329961" + }, + { + "timestamp": "1648425600", + "volumeUsd": "44705027.89346948575004431979715037" + }, + { + "timestamp": "1648512000", + "volumeUsd": "66581413.80676561850844575145036535" + }, + { + "timestamp": "1648598400", + "volumeUsd": "55712838.10280890341400758307281871" + }, + { + "timestamp": "1648684800", + "volumeUsd": "36102236.51387116949302624967930365" + }, + { + "timestamp": "1648771200", + "volumeUsd": "34214646.45592549651531149213076468" + }, + { + "timestamp": "1648857600", + "volumeUsd": "170212123.4980893314724655072712903" + }, + { + "timestamp": "1648944000", + "volumeUsd": "30886280.49159517427842091637106471" + }, + { + "timestamp": "1649030400", + "volumeUsd": "49480255.99594279058407125885870201" + }, + { + "timestamp": "1649116800", + "volumeUsd": "41353076.87490494495216566644244421" + }, + { + "timestamp": "1649203200", + "volumeUsd": "46274867.0390419662753592513952274" + }, + { + "timestamp": "1649289600", + "volumeUsd": "32944723.81365156943915622998007958" + }, + { + "timestamp": "1649376000", + "volumeUsd": "74129682.90061875807233606392761846" + }, + { + "timestamp": "1649462400", + "volumeUsd": "40599112.89363608062916363608818088" + }, + { + "timestamp": "1649548800", + "volumeUsd": "50891463.24799927380268175245868999" + }, + { + "timestamp": "1649635200", + "volumeUsd": "45082439.9552344409763291302218145" + }, + { + "timestamp": "1649721600", + "volumeUsd": "35555469.63023294666673175802110489" + }, + { + "timestamp": "1649808000", + "volumeUsd": "33181214.68524154685901965014984841" + }, + { + "timestamp": "1649894400", + "volumeUsd": "37441361.79287750136962755199857032" + }, + { + "timestamp": "1649980800", + "volumeUsd": "24654587.37233535926805609116398048" + }, + { + "timestamp": "1650067200", + "volumeUsd": "19794298.17692130568600556037723974" + }, + { + "timestamp": "1650153600", + "volumeUsd": "23454316.96720895904776337317338599" + }, + { + "timestamp": "1650240000", + "volumeUsd": "25769799.75794518537644951565973867" + }, + { + "timestamp": "1650326400", + "volumeUsd": "36202872.65244890596499866030451484" + }, + { + "timestamp": "1650412800", + "volumeUsd": "39790856.90964172694244404076015552" + }, + { + "timestamp": "1650499200", + "volumeUsd": "1758427.763786993091039132508231991" + } +] \ No newline at end of file diff --git a/src/apps/explorer/components/SummaryCardsWidget/index.tsx b/src/apps/explorer/components/SummaryCardsWidget/index.tsx index 4aa7fb973..4c5290504 100644 --- a/src/apps/explorer/components/SummaryCardsWidget/index.tsx +++ b/src/apps/explorer/components/SummaryCardsWidget/index.tsx @@ -1,77 +1,24 @@ -import React, { useEffect, useState } from 'react' +import React from 'react' import styled from 'styled-components' import { SummaryCards } from './SummaryCards' -import summaryData from './summaryGraphResp.json' -import { VolumeChartWidget } from './VolumeChartWidget' - -const DELAY_SECONDS = 3 // Emulating API request - -export interface BatchInfo { - lastBatchDate: Date - batchId: string -} - -interface PastAndPresentValue { - now: number - before: number -} - -interface TotalSummary { - batchInfo?: BatchInfo - dailyTransactions?: PastAndPresentValue - totalTokens?: number - dailyFees?: PastAndPresentValue -} - -type RawTotalSummary = Omit & { - batchInfo: { lastBatchDate: number; batchId: string } -} - -// TODO move builds to a file where The graph API is called -function buildSummary(data: RawTotalSummary): TotalSummary { - return { - ...data, - batchInfo: { - ...data.batchInfo, - lastBatchDate: new Date(data.batchInfo.lastBatchDate * 1000), - }, - } -} - -export type TotalSummaryResponse = TotalSummary & { - isLoading: boolean -} - -function useGetTotalSummary(): TotalSummaryResponse | undefined { - const [summary, setSummary] = useState() - - useEffect(() => { - setSummary((prevState) => { - return { ...prevState, isLoading: true } - }) - const timer = setTimeout(() => setSummary({ ...buildSummary(summaryData), isLoading: false }), DELAY_SECONDS * 1000) - - return (): void => clearTimeout(timer) - }, []) - - return summary -} - -const Wrapper = styled.div` - display: flex; - flex: 1; - justify-content: center; -` +import { useGetSummaryData } from './useGetSummaryData' +import { VolumeChartWidget } from './VolumeChart/VolumeChartWidget' export function StatsSummaryCardsWidget(): JSX.Element { - const summary = useGetTotalSummary() + const summaryData = useGetSummaryData() return ( - + ) } + +const Wrapper = styled.div` + display: flex; + flex: 1; + justify-content: center; +` diff --git a/src/apps/explorer/components/SummaryCardsWidget/summaryData.json b/src/apps/explorer/components/SummaryCardsWidget/summaryData.json new file mode 100644 index 000000000..2f7bb7be6 --- /dev/null +++ b/src/apps/explorer/components/SummaryCardsWidget/summaryData.json @@ -0,0 +1,15 @@ +{ + "batchInfo": { + "lastBatchDate": 1649881035, + "batchId": "0x0003723b9eb1598e12d15c69206bf13c971be0310fa5744cf9601ed79f89e29c" + }, + "dailyTransactions": { + "now": 612, + "before": 912 + }, + "totalTokens": 193, + "dailyFees": { + "now": 55225.61205047748511254485049406426, + "before": 40361.20651840192742698089787142249 + } +} \ No newline at end of file diff --git a/src/apps/explorer/components/SummaryCardsWidget/summaryGraphResp.json b/src/apps/explorer/components/SummaryCardsWidget/summaryGraphResp.json deleted file mode 100644 index 82e9bf390..000000000 --- a/src/apps/explorer/components/SummaryCardsWidget/summaryGraphResp.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "batchInfo": { "lastBatchDate": 1649881035, "batchId": "0x0003723b9eb1598e12d15c69206bf13c971be0310fa5744cf9601ed79f89e29c" }, - "dailyTransactions": {"now": 612, "before": 912}, - "totalTokens": 193, - "dailyFees": {"now": 55225.61205047748511254485049406426, "before": 40361.20651840192742698089787142249} -} \ No newline at end of file diff --git a/src/apps/explorer/components/SummaryCardsWidget/useGetSummaryData.ts b/src/apps/explorer/components/SummaryCardsWidget/useGetSummaryData.ts new file mode 100644 index 000000000..1267b3091 --- /dev/null +++ b/src/apps/explorer/components/SummaryCardsWidget/useGetSummaryData.ts @@ -0,0 +1,109 @@ +import { gql } from '@apollo/client' +import { COW_SDK } from 'const' +import { useEffect, useState } from 'react' +import { useNetworkId } from 'state/network' +import { Network } from 'types' + +export interface BatchInfo { + lastBatchDate: Date + batchId: string +} + +interface PastAndPresentValue { + now: number + before: number +} + +interface TotalSummary { + batchInfo?: BatchInfo + dailyTransactions?: PastAndPresentValue + totalTokens?: number + dailyFees?: PastAndPresentValue +} + +type SummaryQuery = { + settlements: Array<{ firstTradeTimestamp: string; txHash: string }> + hourlyTotals: Array<{ orders: string; feesUsd: string }> + totals: Array<{ tokens: string }> +} + +function buildSummary(data: SummaryQuery): TotalSummary { + const batchInfo: BatchInfo = { + lastBatchDate: new Date(Number(data.settlements[0].firstTradeTimestamp) * 1000), + batchId: data.settlements[0].txHash, + } + + const now = getTransactionsAndFees(data.hourlyTotals.slice(0, 24)) + const before = getTransactionsAndFees(data.hourlyTotals.slice(24, 48)) + + const dailyTransactions: PastAndPresentValue = { + before: before.transactions, + now: now.transactions, + } + + const dailyFees: PastAndPresentValue = { + before: before.fees, + now: now.fees, + } + + const totalTokens = Number(data.totals[0].tokens) + + return { + batchInfo, + dailyTransactions, + dailyFees, + totalTokens, + } +} + +function getTransactionsAndFees(data: Array<{ orders: string; feesUsd: string }>): TransactionsAndFees { + return data.reduce( + (acc, curr) => { + acc.transactions += Number(curr.orders) + acc.fees += Number(curr.feesUsd) + return acc + }, + { fees: 0, transactions: 0 }, + ) +} + +type TransactionsAndFees = { + transactions: number + fees: number +} + +export type TotalSummaryResponse = TotalSummary & { + isLoading: boolean +} + +export function useGetSummaryData(): TotalSummaryResponse | undefined { + const [summary, setSummary] = useState() + const network = useNetworkId() ?? Network.MAINNET + + useEffect(() => { + setSummary((summary) => ({ ...summary, isLoading: true })) + // TODO: Once the sdk's runQuery method accepts DocumentNode update this + COW_SDK[network]?.cowSubgraphApi.runQuery(summaryQuery as any).then((data: SummaryQuery) => { + const summary = buildSummary(data) + setSummary({ ...summary, isLoading: false }) + }) + }, [network]) + + return summary +} + +const summaryQuery = gql` + query Summary { + hourlyTotals(orderBy: timestamp, orderDirection: desc, first: 48) { + orders + feesUsd + } + settlements(orderBy: firstTradeTimestamp, orderDirection: desc, first: 1) { + txHash + firstTradeTimestamp + } + totals { + tokens + } + } +` diff --git a/src/apps/explorer/components/SummaryCardsWidget/utils.ts b/src/apps/explorer/components/SummaryCardsWidget/utils.ts new file mode 100644 index 000000000..605d937c3 --- /dev/null +++ b/src/apps/explorer/components/SummaryCardsWidget/utils.ts @@ -0,0 +1 @@ +export const numberFormatter = Intl.NumberFormat(navigator.language, { notation: 'compact' }).format diff --git a/src/apps/explorer/components/SummaryCardsWidget/volumeData.json b/src/apps/explorer/components/SummaryCardsWidget/volumeData.json deleted file mode 100644 index 3dda534e4..000000000 --- a/src/apps/explorer/components/SummaryCardsWidget/volumeData.json +++ /dev/null @@ -1,1297 +0,0 @@ -[ - { - "id": "1628035200", - "timestamp": "1628035200", - "volumeUsd": "264.1026613192727987070962326607256" - }, - { - "id": "1628121600", - "timestamp": "1628121600", - "volumeUsd": "391.8431950787607360653877021422084" - }, - { - "id": "1628208000", - "timestamp": "1628208000", - "volumeUsd": "44170.30995735179539545489288420561" - }, - { - "id": "1628467200", - "timestamp": "1628467200", - "volumeUsd": "125788.1846455319910176069135978715" - }, - { - "id": "1628553600", - "timestamp": "1628553600", - "volumeUsd": "58497.31545514269077294075903020343" - }, - { - "id": "1628640000", - "timestamp": "1628640000", - "volumeUsd": "4255147.210300493943194969687734145" - }, - { - "id": "1628726400", - "timestamp": "1628726400", - "volumeUsd": "4258984.14131870247600113291134035" - }, - { - "id": "1628812800", - "timestamp": "1628812800", - "volumeUsd": "11196476.10218581990913965753554927" - }, - { - "id": "1628899200", - "timestamp": "1628899200", - "volumeUsd": "5693421.975646415410767985276909841" - }, - { - "id": "1628985600", - "timestamp": "1628985600", - "volumeUsd": "5140626.893463864321893574430551182" - }, - { - "id": "1629072000", - "timestamp": "1629072000", - "volumeUsd": "10790662.58246141103874361283087318" - }, - { - "id": "1629158400", - "timestamp": "1629158400", - "volumeUsd": "14973158.72702460102059311858504973" - }, - { - "id": "1629244800", - "timestamp": "1629244800", - "volumeUsd": "12444996.00189092968444895085361295" - }, - { - "id": "1629331200", - "timestamp": "1629331200", - "volumeUsd": "10267229.65418684570962619303458783" - }, - { - "id": "1629417600", - "timestamp": "1629417600", - "volumeUsd": "11059304.00873806354826772674119234" - }, - { - "id": "1629504000", - "timestamp": "1629504000", - "volumeUsd": "15984187.36775369451259182791343438" - }, - { - "id": "1629590400", - "timestamp": "1629590400", - "volumeUsd": "8418824.860426955852589802508758573" - }, - { - "id": "1629676800", - "timestamp": "1629676800", - "volumeUsd": "12362163.74621715254114340302711787" - }, - { - "id": "1629763200", - "timestamp": "1629763200", - "volumeUsd": "14869263.82922800725834043723217192" - }, - { - "id": "1629849600", - "timestamp": "1629849600", - "volumeUsd": "19225363.51741531936260233808814678" - }, - { - "id": "1629936000", - "timestamp": "1629936000", - "volumeUsd": "11548310.30970494236387575273446745" - }, - { - "id": "1630022400", - "timestamp": "1630022400", - "volumeUsd": "24804718.69159231275687873245676744" - }, - { - "id": "1630108800", - "timestamp": "1630108800", - "volumeUsd": "7366469.913955173479882181441823969" - }, - { - "id": "1630195200", - "timestamp": "1630195200", - "volumeUsd": "5397927.293501663788770146938151407" - }, - { - "id": "1630281600", - "timestamp": "1630281600", - "volumeUsd": "20457024.94944181257376740928124676" - }, - { - "id": "1630368000", - "timestamp": "1630368000", - "volumeUsd": "19080660.58563656978342555074289169" - }, - { - "id": "1630454400", - "timestamp": "1630454400", - "volumeUsd": "12200113.99123763805601055644321841" - }, - { - "id": "1630540800", - "timestamp": "1630540800", - "volumeUsd": "16683855.81657815119998530796049737" - }, - { - "id": "1630627200", - "timestamp": "1630627200", - "volumeUsd": "24917825.58088327925069707030235626" - }, - { - "id": "1630713600", - "timestamp": "1630713600", - "volumeUsd": "7975225.584173807841389303395983332" - }, - { - "id": "1630800000", - "timestamp": "1630800000", - "volumeUsd": "14486259.92458510963889278468595878" - }, - { - "id": "1630886400", - "timestamp": "1630886400", - "volumeUsd": "24594884.51570801428332297373214365" - }, - { - "id": "1630972800", - "timestamp": "1630972800", - "volumeUsd": "25246552.03382204791880123791117219" - }, - { - "id": "1631059200", - "timestamp": "1631059200", - "volumeUsd": "46192860.77398435316051283802341054" - }, - { - "id": "1631145600", - "timestamp": "1631145600", - "volumeUsd": "11867138.90620095037626912528402154" - }, - { - "id": "1631232000", - "timestamp": "1631232000", - "volumeUsd": "13394900.70122574669579215984317292" - }, - { - "id": "1631318400", - "timestamp": "1631318400", - "volumeUsd": "13325643.49946101107693137183922065" - }, - { - "id": "1631404800", - "timestamp": "1631404800", - "volumeUsd": "8092318.09030018513457368914301328" - }, - { - "id": "1631491200", - "timestamp": "1631491200", - "volumeUsd": "4272821.674509238342074493658420539" - }, - { - "id": "1631577600", - "timestamp": "1631577600", - "volumeUsd": "5232351.514286953167596976734366314" - }, - { - "id": "1631664000", - "timestamp": "1631664000", - "volumeUsd": "11712565.15649452156715097115336238" - }, - { - "id": "1631750400", - "timestamp": "1631750400", - "volumeUsd": "10774138.63617555497873156430752612" - }, - { - "id": "1631836800", - "timestamp": "1631836800", - "volumeUsd": "5626951.313436052084734048845308748" - }, - { - "id": "1631923200", - "timestamp": "1631923200", - "volumeUsd": "6126327.793343543142214542020838072" - }, - { - "id": "1632009600", - "timestamp": "1632009600", - "volumeUsd": "5451652.570042702097962723765914787" - }, - { - "id": "1632096000", - "timestamp": "1632096000", - "volumeUsd": "9149527.652681547399423333072625416" - }, - { - "id": "1632182400", - "timestamp": "1632182400", - "volumeUsd": "11643145.178136953611917983300173" - }, - { - "id": "1632268800", - "timestamp": "1632268800", - "volumeUsd": "10504764.24745993208959221456868349" - }, - { - "id": "1632355200", - "timestamp": "1632355200", - "volumeUsd": "7783437.11192692718860609273455425" - }, - { - "id": "1632441600", - "timestamp": "1632441600", - "volumeUsd": "20472795.34856898795554155200144709" - }, - { - "id": "1632528000", - "timestamp": "1632528000", - "volumeUsd": "13762414.32038116707182707199214008" - }, - { - "id": "1632614400", - "timestamp": "1632614400", - "volumeUsd": "10385592.4710458824435787162622291" - }, - { - "id": "1632700800", - "timestamp": "1632700800", - "volumeUsd": "12942859.49362902795894425129440937" - }, - { - "id": "1632787200", - "timestamp": "1632787200", - "volumeUsd": "10706836.98306670968113342784580609" - }, - { - "id": "1632873600", - "timestamp": "1632873600", - "volumeUsd": "7784845.338227751186249276151027166" - }, - { - "id": "1632960000", - "timestamp": "1632960000", - "volumeUsd": "12037839.49796775128344046288802729" - }, - { - "id": "1633046400", - "timestamp": "1633046400", - "volumeUsd": "21087457.53893934062659917740834039" - }, - { - "id": "1633132800", - "timestamp": "1633132800", - "volumeUsd": "13797811.06418763410649816096973915" - }, - { - "id": "1633219200", - "timestamp": "1633219200", - "volumeUsd": "9861120.798023570929076486650975623" - }, - { - "id": "1633305600", - "timestamp": "1633305600", - "volumeUsd": "8981335.255991756217327570322486631" - }, - { - "id": "1633392000", - "timestamp": "1633392000", - "volumeUsd": "20603886.19629376975067091764137395" - }, - { - "id": "1633478400", - "timestamp": "1633478400", - "volumeUsd": "14352834.96741923541199356084708884" - }, - { - "id": "1633564800", - "timestamp": "1633564800", - "volumeUsd": "17520602.37421067342777433543053378" - }, - { - "id": "1633651200", - "timestamp": "1633651200", - "volumeUsd": "28713770.17603758452629023783650294" - }, - { - "id": "1633737600", - "timestamp": "1633737600", - "volumeUsd": "23083949.82388908487477909296582092" - }, - { - "id": "1633824000", - "timestamp": "1633824000", - "volumeUsd": "12852240.80842868505608223447908262" - }, - { - "id": "1633910400", - "timestamp": "1633910400", - "volumeUsd": "10063062.89566770532413627381593465" - }, - { - "id": "1633996800", - "timestamp": "1633996800", - "volumeUsd": "14759949.88537321801330798603187873" - }, - { - "id": "1634083200", - "timestamp": "1634083200", - "volumeUsd": "17769262.3128364957585019671231781" - }, - { - "id": "1634169600", - "timestamp": "1634169600", - "volumeUsd": "19168450.73061883816356224918991349" - }, - { - "id": "1634256000", - "timestamp": "1634256000", - "volumeUsd": "27381434.38170593781850553678756342" - }, - { - "id": "1634342400", - "timestamp": "1634342400", - "volumeUsd": "14442050.27205044423123059355596529" - }, - { - "id": "1634428800", - "timestamp": "1634428800", - "volumeUsd": "10776479.5553298490687984894041589" - }, - { - "id": "1634515200", - "timestamp": "1634515200", - "volumeUsd": "16509399.24829141419991672135667933" - }, - { - "id": "1634601600", - "timestamp": "1634601600", - "volumeUsd": "14793517.92295971690385778851559891" - }, - { - "id": "1634688000", - "timestamp": "1634688000", - "volumeUsd": "27908537.16031337725048301411050969" - }, - { - "id": "1634774400", - "timestamp": "1634774400", - "volumeUsd": "16707582.79994729013729213522012854" - }, - { - "id": "1634860800", - "timestamp": "1634860800", - "volumeUsd": "22330561.2088958521003890098998716" - }, - { - "id": "1634947200", - "timestamp": "1634947200", - "volumeUsd": "19987034.49892424498783382516314636" - }, - { - "id": "1635033600", - "timestamp": "1635033600", - "volumeUsd": "19477476.30986371345458111005527351" - }, - { - "id": "1635120000", - "timestamp": "1635120000", - "volumeUsd": "20699158.99650677259654680596338942" - }, - { - "id": "1635206400", - "timestamp": "1635206400", - "volumeUsd": "22889037.63745448220481308938086943" - }, - { - "id": "1635292800", - "timestamp": "1635292800", - "volumeUsd": "30404456.80268227263938549041259517" - }, - { - "id": "1635379200", - "timestamp": "1635379200", - "volumeUsd": "37414445.66902014907521061422580225" - }, - { - "id": "1635465600", - "timestamp": "1635465600", - "volumeUsd": "25806145.31531267061570366483471348" - }, - { - "id": "1635552000", - "timestamp": "1635552000", - "volumeUsd": "20892366.95316734209744228120383706" - }, - { - "id": "1635638400", - "timestamp": "1635638400", - "volumeUsd": "17754895.24546019939269106655910004" - }, - { - "id": "1635724800", - "timestamp": "1635724800", - "volumeUsd": "25463580.83417997986575892054879431" - }, - { - "id": "1635811200", - "timestamp": "1635811200", - "volumeUsd": "39792740.21921187363021253658723832" - }, - { - "id": "1635897600", - "timestamp": "1635897600", - "volumeUsd": "18762702.20801989126872305939144429" - }, - { - "id": "1635984000", - "timestamp": "1635984000", - "volumeUsd": "26319237.00534547265780252158285414" - }, - { - "id": "1636070400", - "timestamp": "1636070400", - "volumeUsd": "28642779.62456876752432373367349928" - }, - { - "id": "1636156800", - "timestamp": "1636156800", - "volumeUsd": "30447779.2940141260938645278178646" - }, - { - "id": "1636243200", - "timestamp": "1636243200", - "volumeUsd": "44762376.93718278150190512607149217" - }, - { - "id": "1636329600", - "timestamp": "1636329600", - "volumeUsd": "28364870.49970478159139014380813976" - }, - { - "id": "1636416000", - "timestamp": "1636416000", - "volumeUsd": "37056399.01563942824364566533699228" - }, - { - "id": "1636502400", - "timestamp": "1636502400", - "volumeUsd": "40448015.85204839434838068520449373" - }, - { - "id": "1636588800", - "timestamp": "1636588800", - "volumeUsd": "26801100.93499803826365775903236835" - }, - { - "id": "1636675200", - "timestamp": "1636675200", - "volumeUsd": "31703469.15123682261228259883368223" - }, - { - "id": "1636761600", - "timestamp": "1636761600", - "volumeUsd": "19114627.70129159341810817410562271" - }, - { - "id": "1636848000", - "timestamp": "1636848000", - "volumeUsd": "25893289.12396663510865811146783625" - }, - { - "id": "1636934400", - "timestamp": "1636934400", - "volumeUsd": "39619809.54559121755260090604524125" - }, - { - "id": "1637020800", - "timestamp": "1637020800", - "volumeUsd": "54115328.0774937347757762670982237" - }, - { - "id": "1637107200", - "timestamp": "1637107200", - "volumeUsd": "48197517.73040429723015779819372989" - }, - { - "id": "1637193600", - "timestamp": "1637193600", - "volumeUsd": "51248484.98750321919099089064374519" - }, - { - "id": "1637280000", - "timestamp": "1637280000", - "volumeUsd": "58841901.74443260036615195426630644" - }, - { - "id": "1637366400", - "timestamp": "1637366400", - "volumeUsd": "30062812.23099501550633612987504227" - }, - { - "id": "1637452800", - "timestamp": "1637452800", - "volumeUsd": "33293946.54888887270881937169348697" - }, - { - "id": "1637539200", - "timestamp": "1637539200", - "volumeUsd": "45012602.79670730627180689459755173" - }, - { - "id": "1637625600", - "timestamp": "1637625600", - "volumeUsd": "45616199.3682386005991614169343726" - }, - { - "id": "1637712000", - "timestamp": "1637712000", - "volumeUsd": "33583785.25167063579055107320121124" - }, - { - "id": "1637798400", - "timestamp": "1637798400", - "volumeUsd": "34779867.25538147812406371354444682" - }, - { - "id": "1637884800", - "timestamp": "1637884800", - "volumeUsd": "28835192.13270267224496962542718451" - }, - { - "id": "1637971200", - "timestamp": "1637971200", - "volumeUsd": "37569053.47602718881837225376618396" - }, - { - "id": "1638057600", - "timestamp": "1638057600", - "volumeUsd": "46197205.30290299912544900176417155" - }, - { - "id": "1638144000", - "timestamp": "1638144000", - "volumeUsd": "27255899.26399445704952168130563164" - }, - { - "id": "1638230400", - "timestamp": "1638230400", - "volumeUsd": "37988110.69875846941088378566885003" - }, - { - "id": "1638316800", - "timestamp": "1638316800", - "volumeUsd": "49451881.65516702138157303270587189" - }, - { - "id": "1638403200", - "timestamp": "1638403200", - "volumeUsd": "31118822.17819527317191679693777999" - }, - { - "id": "1638489600", - "timestamp": "1638489600", - "volumeUsd": "25843541.79170221264130301052851351" - }, - { - "id": "1638576000", - "timestamp": "1638576000", - "volumeUsd": "39334800.84683723849524846547699799" - }, - { - "id": "1638662400", - "timestamp": "1638662400", - "volumeUsd": "44058850.45275253618679135892358139" - }, - { - "id": "1638748800", - "timestamp": "1638748800", - "volumeUsd": "83606209.20250598885774109479078572" - }, - { - "id": "1638835200", - "timestamp": "1638835200", - "volumeUsd": "53576978.72600041646454582700581839" - }, - { - "id": "1638921600", - "timestamp": "1638921600", - "volumeUsd": "39442640.30519908714781017618618009" - }, - { - "id": "1639008000", - "timestamp": "1639008000", - "volumeUsd": "41651479.36345742500876421384163785" - }, - { - "id": "1639094400", - "timestamp": "1639094400", - "volumeUsd": "40965669.19604669910720592539777297" - }, - { - "id": "1639180800", - "timestamp": "1639180800", - "volumeUsd": "24810422.02814002690694637291263147" - }, - { - "id": "1639267200", - "timestamp": "1639267200", - "volumeUsd": "27300622.39320161039898257319810014" - }, - { - "id": "1639353600", - "timestamp": "1639353600", - "volumeUsd": "44319938.34050013282621296921315004" - }, - { - "id": "1639440000", - "timestamp": "1639440000", - "volumeUsd": "38600880.09593891930711960844313587" - }, - { - "id": "1639526400", - "timestamp": "1639526400", - "volumeUsd": "36324803.20782812176893903546829983" - }, - { - "id": "1639612800", - "timestamp": "1639612800", - "volumeUsd": "42363418.19442147472302220435560786" - }, - { - "id": "1639699200", - "timestamp": "1639699200", - "volumeUsd": "38032969.96708148513321776528401042" - }, - { - "id": "1639785600", - "timestamp": "1639785600", - "volumeUsd": "23658053.38150622691873182888280777" - }, - { - "id": "1639872000", - "timestamp": "1639872000", - "volumeUsd": "19392753.61647699745664919890769991" - }, - { - "id": "1639958400", - "timestamp": "1639958400", - "volumeUsd": "22423307.7142323538854668712092989" - }, - { - "id": "1640044800", - "timestamp": "1640044800", - "volumeUsd": "32553853.05302486863636177204496314" - }, - { - "id": "1640131200", - "timestamp": "1640131200", - "volumeUsd": "49944395.52114673254032110054432146" - }, - { - "id": "1640217600", - "timestamp": "1640217600", - "volumeUsd": "40491636.83373978084766902628954764" - }, - { - "id": "1640304000", - "timestamp": "1640304000", - "volumeUsd": "29647252.35880455004694285930686879" - }, - { - "id": "1640390400", - "timestamp": "1640390400", - "volumeUsd": "12497482.04831848436438215546681854" - }, - { - "id": "1640476800", - "timestamp": "1640476800", - "volumeUsd": "30590915.98033407403724371766906621" - }, - { - "id": "1640563200", - "timestamp": "1640563200", - "volumeUsd": "24405099.0589354793073700407765761" - }, - { - "id": "1640649600", - "timestamp": "1640649600", - "volumeUsd": "41595582.0878370209417818566569781" - }, - { - "id": "1640736000", - "timestamp": "1640736000", - "volumeUsd": "50157165.43448199486693841969116019" - }, - { - "id": "1640822400", - "timestamp": "1640822400", - "volumeUsd": "45179535.94620346628041427379038528" - }, - { - "id": "1640908800", - "timestamp": "1640908800", - "volumeUsd": "37015524.38336468114982960841894517" - }, - { - "id": "1640995200", - "timestamp": "1640995200", - "volumeUsd": "35326319.43165557218636496341914805" - }, - { - "id": "1641081600", - "timestamp": "1641081600", - "volumeUsd": "68219503.59381285044757231107864065" - }, - { - "id": "1641168000", - "timestamp": "1641168000", - "volumeUsd": "50645075.22190659770033508135992765" - }, - { - "id": "1641254400", - "timestamp": "1641254400", - "volumeUsd": "44103464.32867272617867662251773268" - }, - { - "id": "1641340800", - "timestamp": "1641340800", - "volumeUsd": "73166993.47962013537570575500885864" - }, - { - "id": "1641427200", - "timestamp": "1641427200", - "volumeUsd": "46258787.89981230294205436869964626" - }, - { - "id": "1641513600", - "timestamp": "1641513600", - "volumeUsd": "63158329.90686723989027826277230432" - }, - { - "id": "1641600000", - "timestamp": "1641600000", - "volumeUsd": "48018093.32220448253996471116227066" - }, - { - "id": "1641686400", - "timestamp": "1641686400", - "volumeUsd": "27137000.30491917265533901328541435" - }, - { - "id": "1641772800", - "timestamp": "1641772800", - "volumeUsd": "51685532.27591721998653615535832837" - }, - { - "id": "1641859200", - "timestamp": "1641859200", - "volumeUsd": "65618002.81712488832791223120518742" - }, - { - "id": "1641945600", - "timestamp": "1641945600", - "volumeUsd": "48276926.79007992498378625142668182" - }, - { - "id": "1642032000", - "timestamp": "1642032000", - "volumeUsd": "45507926.01489708344440390895280399" - }, - { - "id": "1642118400", - "timestamp": "1642118400", - "volumeUsd": "38079025.39915341847293568420114384" - }, - { - "id": "1642204800", - "timestamp": "1642204800", - "volumeUsd": "43406988.88559609300515398940942154" - }, - { - "id": "1642291200", - "timestamp": "1642291200", - "volumeUsd": "35286677.15640864073715815627221795" - }, - { - "id": "1642377600", - "timestamp": "1642377600", - "volumeUsd": "48973246.22803599273051190523156683" - }, - { - "id": "1642464000", - "timestamp": "1642464000", - "volumeUsd": "72529169.12239719965330574053867997" - }, - { - "id": "1642550400", - "timestamp": "1642550400", - "volumeUsd": "94049364.67505636255695060348199093" - }, - { - "id": "1642636800", - "timestamp": "1642636800", - "volumeUsd": "150964140.0159995542206386853055798" - }, - { - "id": "1642723200", - "timestamp": "1642723200", - "volumeUsd": "64718375.06563393942536876250377032" - }, - { - "id": "1642809600", - "timestamp": "1642809600", - "volumeUsd": "60598904.23967112478314548373466778" - }, - { - "id": "1642896000", - "timestamp": "1642896000", - "volumeUsd": "21647925.68153851728390278933331301" - }, - { - "id": "1642982400", - "timestamp": "1642982400", - "volumeUsd": "70181571.93525828465038079593291143" - }, - { - "id": "1643068800", - "timestamp": "1643068800", - "volumeUsd": "41865026.98465605198783981778403162" - }, - { - "id": "1643155200", - "timestamp": "1643155200", - "volumeUsd": "110177516.5394706021251761408961626" - }, - { - "id": "1643241600", - "timestamp": "1643241600", - "volumeUsd": "195940264.1204244464108765947261667" - }, - { - "id": "1643328000", - "timestamp": "1643328000", - "volumeUsd": "81942640.39389850797187575433892008" - }, - { - "id": "1643414400", - "timestamp": "1643414400", - "volumeUsd": "26929943.80911496427624636376166678" - }, - { - "id": "1643500800", - "timestamp": "1643500800", - "volumeUsd": "30781062.90428792435393087632854575" - }, - { - "id": "1643587200", - "timestamp": "1643587200", - "volumeUsd": "28040117.89636973168709389474390664" - }, - { - "id": "1643673600", - "timestamp": "1643673600", - "volumeUsd": "30599539.37865873966579709037673852" - }, - { - "id": "1643760000", - "timestamp": "1643760000", - "volumeUsd": "29407071.93186235174457898717998016" - }, - { - "id": "1643846400", - "timestamp": "1643846400", - "volumeUsd": "34901614.75274823779299424818818087" - }, - { - "id": "1643932800", - "timestamp": "1643932800", - "volumeUsd": "53376924.61209042824611768507395511" - }, - { - "id": "1644019200", - "timestamp": "1644019200", - "volumeUsd": "34797506.19599603468795112742323523" - }, - { - "id": "1644105600", - "timestamp": "1644105600", - "volumeUsd": "27033938.30607637673554947539917284" - }, - { - "id": "1644192000", - "timestamp": "1644192000", - "volumeUsd": "51034609.02935224779216603042228065" - }, - { - "id": "1644278400", - "timestamp": "1644278400", - "volumeUsd": "53224016.05825635575565050980883241" - }, - { - "id": "1644364800", - "timestamp": "1644364800", - "volumeUsd": "52260259.52487749539902972939217818" - }, - { - "id": "1644451200", - "timestamp": "1644451200", - "volumeUsd": "26659923.41498140906219063488915568" - }, - { - "id": "1644537600", - "timestamp": "1644537600", - "volumeUsd": "38935543.51372562754404868937737057" - }, - { - "id": "1644624000", - "timestamp": "1644624000", - "volumeUsd": "17536464.44090807777884145553446127" - }, - { - "id": "1644710400", - "timestamp": "1644710400", - "volumeUsd": "14838854.43350538647219519954658298" - }, - { - "id": "1644796800", - "timestamp": "1644796800", - "volumeUsd": "32646145.01711170991326636490890986" - }, - { - "id": "1644883200", - "timestamp": "1644883200", - "volumeUsd": "30119440.28149967658289371943444439" - }, - { - "id": "1644969600", - "timestamp": "1644969600", - "volumeUsd": "31183832.12417496530091672120042147" - }, - { - "id": "1645056000", - "timestamp": "1645056000", - "volumeUsd": "26944217.54403434062636571581702271" - }, - { - "id": "1645142400", - "timestamp": "1645142400", - "volumeUsd": "38116271.70479872945198547710175613" - }, - { - "id": "1645228800", - "timestamp": "1645228800", - "volumeUsd": "18876215.06827223864894591913424153" - }, - { - "id": "1645315200", - "timestamp": "1645315200", - "volumeUsd": "15053751.84829327514944151850533619" - }, - { - "id": "1645401600", - "timestamp": "1645401600", - "volumeUsd": "23735672.28549919641545408883987299" - }, - { - "id": "1645488000", - "timestamp": "1645488000", - "volumeUsd": "31832199.90246084177376093619901003" - }, - { - "id": "1645574400", - "timestamp": "1645574400", - "volumeUsd": "64419780.96451142363954267877760924" - }, - { - "id": "1645660800", - "timestamp": "1645660800", - "volumeUsd": "114601148.2154432449616781831881034" - }, - { - "id": "1645747200", - "timestamp": "1645747200", - "volumeUsd": "64630135.20684018361728187002706693" - }, - { - "id": "1645833600", - "timestamp": "1645833600", - "volumeUsd": "15273200.38652621284254896028136552" - }, - { - "id": "1645920000", - "timestamp": "1645920000", - "volumeUsd": "8804242.783661024904075391854456206" - }, - { - "id": "1646006400", - "timestamp": "1646006400", - "volumeUsd": "16157038.32753270306791304339480703" - }, - { - "id": "1646092800", - "timestamp": "1646092800", - "volumeUsd": "33641988.71128429029066951476695514" - }, - { - "id": "1646179200", - "timestamp": "1646179200", - "volumeUsd": "57569883.45157212807404403424989867" - }, - { - "id": "1646265600", - "timestamp": "1646265600", - "volumeUsd": "21937556.05545034488453296397729302" - }, - { - "id": "1646352000", - "timestamp": "1646352000", - "volumeUsd": "34306668.61551657048320387576300382" - }, - { - "id": "1646438400", - "timestamp": "1646438400", - "volumeUsd": "12229477.15079947012737008426288174" - }, - { - "id": "1646524800", - "timestamp": "1646524800", - "volumeUsd": "98195109.27869231053148060360409076" - }, - { - "id": "1646611200", - "timestamp": "1646611200", - "volumeUsd": "18375708.59351173850916247867756894" - }, - { - "id": "1646697600", - "timestamp": "1646697600", - "volumeUsd": "21474501.2835739339995979658979438" - }, - { - "id": "1646784000", - "timestamp": "1646784000", - "volumeUsd": "17869058.6558768878780459540501682" - }, - { - "id": "1646870400", - "timestamp": "1646870400", - "volumeUsd": "28968000.37312322526511027941045684" - }, - { - "id": "1646956800", - "timestamp": "1646956800", - "volumeUsd": "33853828.7143008769797574501850657" - }, - { - "id": "1647043200", - "timestamp": "1647043200", - "volumeUsd": "11745531.02139183970985509154988926" - }, - { - "id": "1647129600", - "timestamp": "1647129600", - "volumeUsd": "16890339.93345195265578254972716163" - }, - { - "id": "1647216000", - "timestamp": "1647216000", - "volumeUsd": "17865191.44662998606143683081430548" - }, - { - "id": "1647302400", - "timestamp": "1647302400", - "volumeUsd": "10347003.14859543110200675791129926" - }, - { - "id": "1647388800", - "timestamp": "1647388800", - "volumeUsd": "89367638.00600793457928088645607762" - }, - { - "id": "1647475200", - "timestamp": "1647475200", - "volumeUsd": "36606235.62006347634317937073737124" - }, - { - "id": "1647561600", - "timestamp": "1647561600", - "volumeUsd": "31511871.88132788144119560551553305" - }, - { - "id": "1647648000", - "timestamp": "1647648000", - "volumeUsd": "12805498.08631725030604007309349388" - }, - { - "id": "1647734400", - "timestamp": "1647734400", - "volumeUsd": "25418293.19779343057236232602321456" - }, - { - "id": "1647820800", - "timestamp": "1647820800", - "volumeUsd": "20883071.07867775792668281537628989" - }, - { - "id": "1647907200", - "timestamp": "1647907200", - "volumeUsd": "35625934.58345891149136743275344071" - }, - { - "id": "1647993600", - "timestamp": "1647993600", - "volumeUsd": "26321637.34100863752210053230091686" - }, - { - "id": "1648080000", - "timestamp": "1648080000", - "volumeUsd": "64750214.17602452969861803702609448" - }, - { - "id": "1648166400", - "timestamp": "1648166400", - "volumeUsd": "51475828.79339545956586075534706781" - }, - { - "id": "1648252800", - "timestamp": "1648252800", - "volumeUsd": "30557349.26361994156963387816495361" - }, - { - "id": "1648339200", - "timestamp": "1648339200", - "volumeUsd": "43655502.47841859790912087649329961" - }, - { - "id": "1648425600", - "timestamp": "1648425600", - "volumeUsd": "44705027.89346948575004431979715037" - }, - { - "id": "1648512000", - "timestamp": "1648512000", - "volumeUsd": "66581413.80676561850844575145036535" - }, - { - "id": "1648598400", - "timestamp": "1648598400", - "volumeUsd": "55712838.10280890341400758307281871" - }, - { - "id": "1648684800", - "timestamp": "1648684800", - "volumeUsd": "36102236.51387116949302624967930365" - }, - { - "id": "1648771200", - "timestamp": "1648771200", - "volumeUsd": "34214646.45592549651531149213076468" - }, - { - "id": "1648857600", - "timestamp": "1648857600", - "volumeUsd": "170212123.4980893314724655072712903" - }, - { - "id": "1648944000", - "timestamp": "1648944000", - "volumeUsd": "30886280.49159517427842091637106471" - }, - { - "id": "1649030400", - "timestamp": "1649030400", - "volumeUsd": "49480255.99594279058407125885870201" - }, - { - "id": "1649116800", - "timestamp": "1649116800", - "volumeUsd": "41353076.87490494495216566644244421" - }, - { - "id": "1649203200", - "timestamp": "1649203200", - "volumeUsd": "46274867.0390419662753592513952274" - }, - { - "id": "1649289600", - "timestamp": "1649289600", - "volumeUsd": "32944723.81365156943915622998007958" - }, - { - "id": "1649376000", - "timestamp": "1649376000", - "volumeUsd": "74129682.90061875807233606392761846" - }, - { - "id": "1649462400", - "timestamp": "1649462400", - "volumeUsd": "40599112.89363608062916363608818088" - }, - { - "id": "1649548800", - "timestamp": "1649548800", - "volumeUsd": "50891463.24799927380268175245868999" - }, - { - "id": "1649635200", - "timestamp": "1649635200", - "volumeUsd": "45082439.9552344409763291302218145" - }, - { - "id": "1649721600", - "timestamp": "1649721600", - "volumeUsd": "35555469.63023294666673175802110489" - }, - { - "id": "1649808000", - "timestamp": "1649808000", - "volumeUsd": "33181214.68524154685901965014984841" - }, - { - "id": "1649894400", - "timestamp": "1649894400", - "volumeUsd": "37441361.79287750136962755199857032" - }, - { - "id": "1649980800", - "timestamp": "1649980800", - "volumeUsd": "24654587.37233535926805609116398048" - }, - { - "id": "1650067200", - "timestamp": "1650067200", - "volumeUsd": "19794298.17692130568600556037723974" - }, - { - "id": "1650153600", - "timestamp": "1650153600", - "volumeUsd": "23454316.96720895904776337317338599" - }, - { - "id": "1650240000", - "timestamp": "1650240000", - "volumeUsd": "25769799.75794518537644951565973867" - }, - { - "id": "1650326400", - "timestamp": "1650326400", - "volumeUsd": "36202872.65244890596499866030451484" - }, - { - "id": "1650412800", - "timestamp": "1650412800", - "volumeUsd": "39790856.90964172694244404076015552" - }, - { - "id": "1650499200", - "timestamp": "1650499200", - "volumeUsd": "1758427.763786993091039132508231991" - } - ]