Commit f14596e4 authored by tom's avatar tom

creation and last balance update

parent a02b8064
import { Box, Flex, Text, Icon, Button, Grid, Select } from '@chakra-ui/react'; import { Box, Flex, Text, Icon, Button, Grid, Select, Link } from '@chakra-ui/react';
import type { UseQueryResult } from '@tanstack/react-query'; import type { UseQueryResult } from '@tanstack/react-query';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import BigNumber from 'bignumber.js'; import BigNumber from 'bignumber.js';
...@@ -9,13 +9,16 @@ import type { Address as TAddress, AddressCounters, AddressTokenBalance } from ' ...@@ -9,13 +9,16 @@ import type { Address as TAddress, AddressCounters, AddressTokenBalance } from '
import { QueryKeys } from 'types/client/queries'; import { QueryKeys } from 'types/client/queries';
import appConfig from 'configs/app/config'; import appConfig from 'configs/app/config';
import blockIcon from 'icons/block.svg';
import metamaskIcon from 'icons/metamask.svg'; import metamaskIcon from 'icons/metamask.svg';
import qrCodeIcon from 'icons/qr_code.svg'; import qrCodeIcon from 'icons/qr_code.svg';
import starOutlineIcon from 'icons/star_outline.svg'; import starOutlineIcon from 'icons/star_outline.svg';
import walletIcon from 'icons/wallet.svg'; import walletIcon from 'icons/wallet.svg';
import useFetch from 'lib/hooks/useFetch'; import useFetch from 'lib/hooks/useFetch';
import useIsMobile from 'lib/hooks/useIsMobile'; import useIsMobile from 'lib/hooks/useIsMobile';
import link from 'lib/link/link';
import AddressIcon from 'ui/shared/address/AddressIcon'; import AddressIcon from 'ui/shared/address/AddressIcon';
import AddressLink from 'ui/shared/address/AddressLink';
import CopyToClipboard from 'ui/shared/CopyToClipboard'; import CopyToClipboard from 'ui/shared/CopyToClipboard';
import DetailsInfoItem from 'ui/shared/DetailsInfoItem'; import DetailsInfoItem from 'ui/shared/DetailsInfoItem';
import ExternalLink from 'ui/shared/ExternalLink'; import ExternalLink from 'ui/shared/ExternalLink';
...@@ -91,6 +94,16 @@ const AddressDetails = ({ addressQuery }: Props) => { ...@@ -91,6 +94,16 @@ const AddressDetails = ({ addressQuery }: Props) => {
templateColumns={{ base: 'minmax(0, 1fr)', lg: 'auto minmax(0, 1fr)' }} overflow="hidden" templateColumns={{ base: 'minmax(0, 1fr)', lg: 'auto minmax(0, 1fr)' }} overflow="hidden"
> >
<AddressNameInfo data={ addressQuery.data }/> <AddressNameInfo data={ addressQuery.data }/>
{ addressQuery.data.is_contract && addressQuery.data.creation_tx_hash && addressQuery.data.creator_address_hash && (
<DetailsInfoItem
title="Creator"
hint="Transaction and address of creation."
>
<AddressLink hash={ addressQuery.data.creator_address_hash } truncation="constant"/>
<Text whiteSpace="pre"> at </Text>
<AddressLink hash={ addressQuery.data.creation_tx_hash } truncation="constant"/>
</DetailsInfoItem>
) }
<AddressBalance data={ addressQuery.data }/> <AddressBalance data={ addressQuery.data }/>
<DetailsInfoItem <DetailsInfoItem
title="Tokens" title="Tokens"
...@@ -144,6 +157,23 @@ const AddressDetails = ({ addressQuery }: Props) => { ...@@ -144,6 +157,23 @@ const AddressDetails = ({ addressQuery }: Props) => {
{ Number(countersQuery.data.validation_count).toLocaleString() } { Number(countersQuery.data.validation_count).toLocaleString() }
</DetailsInfoItem> </DetailsInfoItem>
) } ) }
{ addressQuery.data.block_number_balance_updated_at && (
<DetailsInfoItem
title="Last balance update"
hint="Block number in which the address was updated."
alignSelf="center"
py={{ base: 0, lg: 1 }}
>
<Link
href={ link('block', { id: String(addressQuery.data.block_number_balance_updated_at) }) }
display="flex"
alignItems="center"
>
<Icon as={ blockIcon } boxSize={ 6 } mr={ 2 }/>
{ addressQuery.data.block_number_balance_updated_at }
</Link>
</DetailsInfoItem>
) }
</Grid> </Grid>
</Box> </Box>
); );
......
...@@ -34,6 +34,7 @@ const AddressBalance = ({ data }: Props) => { ...@@ -34,6 +34,7 @@ const AddressBalance = ({ data }: Props) => {
...prevData, ...prevData,
coin_balance: balance, coin_balance: balance,
exchange_rate: exchangeRate, exchange_rate: exchangeRate,
block_number_balance_updated_at: blockNumber,
}; };
}); });
}, [ data.hash, lastBlockNumber, queryClient ]); }, [ data.hash, lastBlockNumber, queryClient ]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment