From 7d37dfaa29dbf485020fcccee06af19c393bfffc Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 9 Sep 2024 16:02:39 +0200 Subject: [PATCH 1/7] page layout --- lib/api/resources.ts | 10 ++- nextjs/getServerSideProps.ts | 10 +++ nextjs/nextjs-routes.d.ts | 1 + pages/{accounts.tsx => accounts/index.tsx} | 0 pages/accounts/label/[slug].tsx | 19 +++++ types/api/addresses.ts | 10 +++ .../AddressesLabelSearchListItem.tsx | 48 +++++++++++ .../AddressesLabelSearchTable.tsx | 40 +++++++++ .../AddressesLabelSearchTableItem.tsx | 48 +++++++++++ ui/pages/AccountsLabelSearch.tsx | 82 +++++++++++++++++++ ui/shared/EntityTags/utils.ts | 15 ++-- 11 files changed, 273 insertions(+), 10 deletions(-) rename pages/{accounts.tsx => accounts/index.tsx} (100%) create mode 100644 pages/accounts/label/[slug].tsx create mode 100644 ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx create mode 100644 ui/addressesLabelSearch/AddressesLabelSearchTable.tsx create mode 100644 ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx create mode 100644 ui/pages/AccountsLabelSearch.tsx diff --git a/lib/api/resources.ts b/lib/api/resources.ts index a1f493274a..ac5d924f12 100644 --- a/lib/api/resources.ts +++ b/lib/api/resources.ts @@ -38,7 +38,7 @@ import type { AddressMudRecordsSorting, AddressMudRecord, } from 'types/api/address'; -import type { AddressesResponse } from 'types/api/addresses'; +import type { AddressesResponse, AddressesMetadataSearchResult, AddressesMetadataSearchFilters } from 'types/api/addresses'; import type { AddressMetadataInfo, PublicTagTypesResponse } from 'types/api/addressMetadata'; import type { ArbitrumL2MessagesResponse, @@ -421,6 +421,10 @@ export const RESOURCES = { path: '/api/v2/addresses/', filterFields: [ ], }, + addresses_metadata_search: { + path: '/api/v2/proxy/metadata/addresses', + filterFields: [ 'slug' as const, 'tag_type' as const ], + }, // ADDRESS address: { @@ -979,7 +983,7 @@ export type ResourceErrorAccount = ResourceError<{ errors: T }> export type PaginatedResources = 'blocks' | 'block_txs' | 'block_election_rewards' | 'txs_validated' | 'txs_pending' | 'txs_with_blobs' | 'txs_watchlist' | 'txs_execution_node' | 'tx_internal_txs' | 'tx_logs' | 'tx_token_transfers' | 'tx_state_changes' | 'tx_blobs' | -'addresses' | +'addresses' | 'addresses_metadata_search' | 'address_txs' | 'address_internal_txs' | 'address_token_transfers' | 'address_blocks_validated' | 'address_coin_balance' | 'search' | 'address_logs' | 'address_tokens' | 'address_nfts' | 'address_collections' | @@ -1053,6 +1057,7 @@ Q extends 'tx_state_changes' ? TxStateChanges : Q extends 'tx_blobs' ? TxBlobs : Q extends 'tx_interpretation' ? TxInterpretationResponse : Q extends 'addresses' ? AddressesResponse : +Q extends 'addresses_metadata_search' ? AddressesMetadataSearchResult : Q extends 'address' ? Address : Q extends 'address_counters' ? AddressCounters : Q extends 'address_tabs_counters' ? AddressTabsCounters : @@ -1178,6 +1183,7 @@ Q extends 'txs_with_blobs' ? TTxsWithBlobsFilters : Q extends 'tx_token_transfers' ? TokenTransferFilters : Q extends 'token_transfers' ? TokenTransferFilters : Q extends 'address_txs' | 'address_internal_txs' ? AddressTxsFilters : +Q extends 'addresses_metadata_search' ? AddressesMetadataSearchFilters : Q extends 'address_token_transfers' ? AddressTokenTransferFilters : Q extends 'address_tokens' ? AddressTokensFilter : Q extends 'address_nfts' ? AddressNFTTokensFilter : diff --git a/nextjs/getServerSideProps.ts b/nextjs/getServerSideProps.ts index 730d962593..0268994544 100644 --- a/nextjs/getServerSideProps.ts +++ b/nextjs/getServerSideProps.ts @@ -204,6 +204,16 @@ export const accounts: GetServerSideProps = async(context) => { return base(context); }; +export const accountsLabelSearch: GetServerSideProps = async(context) => { + if (!config.features.addressMetadata.isEnabled) { + return { + notFound: true, + }; + } + + return base(context); +}; + export const userOps: GetServerSideProps = async(context) => { if (!config.features.userOps.isEnabled) { return { diff --git a/nextjs/nextjs-routes.d.ts b/nextjs/nextjs-routes.d.ts index a94fb52dbe..2d947f73ec 100644 --- a/nextjs/nextjs-routes.d.ts +++ b/nextjs/nextjs-routes.d.ts @@ -13,6 +13,7 @@ declare module "nextjs-routes" { | StaticRoute<"/account/verified-addresses"> | StaticRoute<"/account/watchlist"> | StaticRoute<"/accounts"> + | DynamicRoute<"/accounts/label/[slug]", { "slug": string }> | DynamicRoute<"/address/[hash]/contract-verification", { "hash": string }> | DynamicRoute<"/address/[hash]", { "hash": string }> | StaticRoute<"/api/config"> diff --git a/pages/accounts.tsx b/pages/accounts/index.tsx similarity index 100% rename from pages/accounts.tsx rename to pages/accounts/index.tsx diff --git a/pages/accounts/label/[slug].tsx b/pages/accounts/label/[slug].tsx new file mode 100644 index 0000000000..e90b38bfe3 --- /dev/null +++ b/pages/accounts/label/[slug].tsx @@ -0,0 +1,19 @@ +import type { NextPage } from 'next'; +import dynamic from 'next/dynamic'; +import React from 'react'; + +import PageNextJs from 'nextjs/PageNextJs'; + +const AccountsLabelSearch = dynamic(() => import('ui/pages/AccountsLabelSearch'), { ssr: false }); + +const Page: NextPage = () => { + return ( + + + + ); +}; + +export default Page; + +export { accountsLabelSearch as getServerSideProps } from 'nextjs/getServerSideProps'; diff --git a/types/api/addresses.ts b/types/api/addresses.ts index 9c76000760..e0fdb666fd 100644 --- a/types/api/addresses.ts +++ b/types/api/addresses.ts @@ -11,3 +11,13 @@ export type AddressesResponse = { } | null; total_supply: string; } + +export interface AddressesMetadataSearchResult { + items: Array; + next_page_params: null; +} + +export interface AddressesMetadataSearchFilters { + slug: string; + tag_type: string; +} diff --git a/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx b/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx new file mode 100644 index 0000000000..68e60ee2ec --- /dev/null +++ b/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx @@ -0,0 +1,48 @@ +import { HStack, Skeleton } from '@chakra-ui/react'; +import BigNumber from 'bignumber.js'; +import React from 'react'; + +import type { AddressesItem } from 'types/api/addresses'; + +import config from 'configs/app'; +import { currencyUnits } from 'lib/units'; +import AddressEntity from 'ui/shared/entities/address/AddressEntity'; +import ListItemMobile from 'ui/shared/ListItemMobile/ListItemMobile'; + +type Props = { + item: AddressesItem; + isLoading?: boolean; +} + +const AddressesLabelSearchListItem = ({ + item, + isLoading, +}: Props) => { + + const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + + return ( + + + + { `Balance ${ currencyUnits.ether }` } + + { addressBalance.dp(8).toFormat() } + + + + Txn count + + { Number(item.tx_count).toLocaleString() } + + + + ); +}; + +export default React.memo(AddressesLabelSearchListItem); diff --git a/ui/addressesLabelSearch/AddressesLabelSearchTable.tsx b/ui/addressesLabelSearch/AddressesLabelSearchTable.tsx new file mode 100644 index 0000000000..8a91ecc05d --- /dev/null +++ b/ui/addressesLabelSearch/AddressesLabelSearchTable.tsx @@ -0,0 +1,40 @@ +import { Table, Tbody, Tr, Th } from '@chakra-ui/react'; +import React from 'react'; + +import type { AddressesItem } from 'types/api/addresses'; + +import { currencyUnits } from 'lib/units'; +import { default as Thead } from 'ui/shared/TheadSticky'; + +import AddressesLabelSearchTableItem from './AddressesLabelSearchTableItem'; + +interface Props { + items: Array; + top: number; + isLoading?: boolean; +} + +const AddressesLabelSearchTable = ({ items, top, isLoading }: Props) => { + return ( + + + + + + + + + + { items.map((item, index) => ( + + )) } + +
Address{ `Balance ${ currencyUnits.ether }` }Txn count
+ ); +}; + +export default AddressesLabelSearchTable; diff --git a/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx b/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx new file mode 100644 index 0000000000..ae421bc20a --- /dev/null +++ b/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx @@ -0,0 +1,48 @@ +import { Tr, Td, Text, Skeleton } from '@chakra-ui/react'; +import BigNumber from 'bignumber.js'; +import React from 'react'; + +import type { AddressesItem } from 'types/api/addresses'; + +import config from 'configs/app'; +import AddressEntity from 'ui/shared/entities/address/AddressEntity'; + +type Props = { + item: AddressesItem; + isLoading?: boolean; +} + +const AddressesLabelSearchTableItem = ({ + item, + isLoading, +}: Props) => { + + const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + const addressBalanceChunks = addressBalance.dp(8).toFormat().split('.'); + + return ( + + + + + + + { addressBalanceChunks[0] + (addressBalanceChunks[1] ? '.' : '') } + { addressBalanceChunks[1] } + + + + + { Number(item.tx_count).toLocaleString() } + + + + ); +}; + +export default React.memo(AddressesLabelSearchTableItem); diff --git a/ui/pages/AccountsLabelSearch.tsx b/ui/pages/AccountsLabelSearch.tsx new file mode 100644 index 0000000000..0b3f92748b --- /dev/null +++ b/ui/pages/AccountsLabelSearch.tsx @@ -0,0 +1,82 @@ +import { Hide, Show } from '@chakra-ui/react'; +import { useRouter } from 'next/router'; +import React from 'react'; + +import getQueryParamString from 'lib/router/getQueryParamString'; +import { TOP_ADDRESS } from 'stubs/address'; +import { generateListStub } from 'stubs/utils'; +import AddressesLabelSearchListItem from 'ui/addressesLabelSearch/AddressesLabelSearchListItem'; +import AddressesLabelSearchTable from 'ui/addressesLabelSearch/AddressesLabelSearchTable'; +import ActionBar, { ACTION_BAR_HEIGHT_DESKTOP } from 'ui/shared/ActionBar'; +import DataListDisplay from 'ui/shared/DataListDisplay'; +import PageTitle from 'ui/shared/Page/PageTitle'; +import Pagination from 'ui/shared/pagination/Pagination'; +import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages'; + +const AccountsLabelSearch = () => { + + const router = useRouter(); + const slug = getQueryParamString(router.query.slug); + const tagType = getQueryParamString(router.query.tagType); + + const { isError, isPlaceholderData, data, pagination } = useQueryWithPages({ + resourceName: 'addresses_metadata_search', + filters: { + slug, + tag_type: tagType, + }, + options: { + placeholderData: generateListStub<'addresses_metadata_search'>( + TOP_ADDRESS, + 5, + { + next_page_params: null, + }, + ), + }, + }); + + const actionBar = pagination.isVisible && ( + + + + ); + + const content = data?.items ? ( + <> + + + + + { data.items.map((item, index) => { + return ( + + ); + }) } + + + ) : null; + + return ( + <> + + + + ); +}; + +export default AccountsLabelSearch; diff --git a/ui/shared/EntityTags/utils.ts b/ui/shared/EntityTags/utils.ts index 5a8ce88b4b..1dd0316f36 100644 --- a/ui/shared/EntityTags/utils.ts +++ b/ui/shared/EntityTags/utils.ts @@ -1,6 +1,6 @@ import type { EntityTag } from './types'; -// import { route } from 'nextjs-routes'; +import { route } from 'nextjs-routes'; export function getTagLinkParams(data: EntityTag): { type: 'external' | 'internal'; href: string } | undefined { if (data.meta?.warpcastHandle) { @@ -17,11 +17,10 @@ export function getTagLinkParams(data: EntityTag): { type: 'external' | 'interna }; } - // Uncomment this block when "Tag search" page is ready - issue #1869 -// if (data.tagType === 'generic' || data.tagType === 'protocol') { -// return { -// type: 'internal', -// href: route({ pathname: '/' }), -// }; -// } + if (data.tagType === 'generic' || data.tagType === 'protocol') { + return { + type: 'internal', + href: route({ pathname: '/accounts/label/[slug]', query: { slug: data.slug, tagType: data.tagType } }), + }; + } } From 5c62c930a7d50d625a4392681eb9899b7c518c1b Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 9 Sep 2024 18:12:19 +0200 Subject: [PATCH 2/7] text with results number --- ui/pages/AccountsLabelSearch.tsx | 47 ++++++++++++++++++++------ ui/shared/EntityTags/EntityTag.tsx | 7 ++-- ui/shared/EntityTags/EntityTagLink.tsx | 5 +-- ui/shared/EntityTags/utils.ts | 2 +- 4 files changed, 45 insertions(+), 16 deletions(-) diff --git a/ui/pages/AccountsLabelSearch.tsx b/ui/pages/AccountsLabelSearch.tsx index 0b3f92748b..fbd99a3e80 100644 --- a/ui/pages/AccountsLabelSearch.tsx +++ b/ui/pages/AccountsLabelSearch.tsx @@ -1,23 +1,27 @@ -import { Hide, Show } from '@chakra-ui/react'; +import { chakra, Flex, Hide, Show, Skeleton } from '@chakra-ui/react'; import { useRouter } from 'next/router'; import React from 'react'; +import type { EntityTag as TEntityTag, EntityTagType } from 'ui/shared/EntityTags/types'; + import getQueryParamString from 'lib/router/getQueryParamString'; import { TOP_ADDRESS } from 'stubs/address'; import { generateListStub } from 'stubs/utils'; import AddressesLabelSearchListItem from 'ui/addressesLabelSearch/AddressesLabelSearchListItem'; import AddressesLabelSearchTable from 'ui/addressesLabelSearch/AddressesLabelSearchTable'; -import ActionBar, { ACTION_BAR_HEIGHT_DESKTOP } from 'ui/shared/ActionBar'; +import { ACTION_BAR_HEIGHT_DESKTOP } from 'ui/shared/ActionBar'; import DataListDisplay from 'ui/shared/DataListDisplay'; +import EntityTag from 'ui/shared/EntityTags/EntityTag'; import PageTitle from 'ui/shared/Page/PageTitle'; -import Pagination from 'ui/shared/pagination/Pagination'; import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages'; +import StickyPaginationWithText from 'ui/shared/StickyPaginationWithText'; const AccountsLabelSearch = () => { const router = useRouter(); const slug = getQueryParamString(router.query.slug); const tagType = getQueryParamString(router.query.tagType); + const tagName = getQueryParamString(router.query.tagName); const { isError, isPlaceholderData, data, pagination } = useQueryWithPages({ resourceName: 'addresses_metadata_search', @@ -36,12 +40,6 @@ const AccountsLabelSearch = () => { }, }); - const actionBar = pagination.isVisible && ( - - - - ); - const content = data?.items ? ( <> @@ -65,13 +63,42 @@ const AccountsLabelSearch = () => { ) : null; + const text = (() => { + if (isError) { + return null; + } + + const num = data?.items.length || 0; + + const tagData: TEntityTag = { + tagType: tagType as EntityTagType, + slug, + name: tagName || slug, + ordinal: 0, + }; + + return ( + + + Found { num } matching result{ num > 1 ? 's' : '' } for + + + + ); + })(); + + const actionBar = ; + return ( <> diff --git a/ui/shared/EntityTags/EntityTag.tsx b/ui/shared/EntityTags/EntityTag.tsx index db61ec33f4..477acc087d 100644 --- a/ui/shared/EntityTags/EntityTag.tsx +++ b/ui/shared/EntityTags/EntityTag.tsx @@ -15,15 +15,16 @@ interface Props { data: TEntityTag; isLoading?: boolean; maxW?: ResponsiveValue; + noLink?: boolean; } -const EntityTag = ({ data, isLoading, maxW }: Props) => { +const EntityTag = ({ data, isLoading, maxW, noLink }: Props) => { if (isLoading) { return ; } - const hasLink = Boolean(getTagLinkParams(data)); + const hasLink = !noLink && Boolean(getTagLinkParams(data)); const iconColor = data.meta?.textColor ?? 'gray.400'; const name = (() => { @@ -63,7 +64,7 @@ const EntityTag = ({ data, isLoading, maxW }: Props) => { colorScheme={ hasLink ? 'gray-blue' : 'gray' } _hover={ hasLink ? { opacity: 0.76 } : undefined } > - + { icon } diff --git a/ui/shared/EntityTags/EntityTagLink.tsx b/ui/shared/EntityTags/EntityTagLink.tsx index a496eccd14..e061825286 100644 --- a/ui/shared/EntityTags/EntityTagLink.tsx +++ b/ui/shared/EntityTags/EntityTagLink.tsx @@ -11,11 +11,12 @@ import { getTagLinkParams } from './utils'; interface Props { data: EntityTag; children: React.ReactNode; + noLink?: boolean; } -const EntityTagLink = ({ data, children }: Props) => { +const EntityTagLink = ({ data, children, noLink }: Props) => { - const linkParams = getTagLinkParams(data); + const linkParams = !noLink ? getTagLinkParams(data) : undefined; const handleLinkClick = React.useCallback(() => { if (!linkParams?.href) { diff --git a/ui/shared/EntityTags/utils.ts b/ui/shared/EntityTags/utils.ts index 1dd0316f36..4454d87872 100644 --- a/ui/shared/EntityTags/utils.ts +++ b/ui/shared/EntityTags/utils.ts @@ -20,7 +20,7 @@ export function getTagLinkParams(data: EntityTag): { type: 'external' | 'interna if (data.tagType === 'generic' || data.tagType === 'protocol') { return { type: 'internal', - href: route({ pathname: '/accounts/label/[slug]', query: { slug: data.slug, tagType: data.tagType } }), + href: route({ pathname: '/accounts/label/[slug]', query: { slug: data.slug, tagType: data.tagType, tagName: data.name } }), }; } } From 22868e3e3d81eb4363cebafba7c7ff46624f0199 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 9 Sep 2024 18:19:07 +0200 Subject: [PATCH 3/7] fix ts --- lib/metadata/getPageOgType.ts | 1 + lib/metadata/templates/description.ts | 1 + lib/metadata/templates/title.ts | 1 + lib/mixpanel/getPageType.ts | 1 + nextjs/getServerSideProps.ts | 2 +- 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/metadata/getPageOgType.ts b/lib/metadata/getPageOgType.ts index 80f2c9d1f9..1f8498fe69 100644 --- a/lib/metadata/getPageOgType.ts +++ b/lib/metadata/getPageOgType.ts @@ -12,6 +12,7 @@ const OG_TYPE_DICT: Record = { '/block/countdown': 'Regular page', '/block/countdown/[height]': 'Regular page', '/accounts': 'Root page', + '/accounts/label/[slug]': 'Root page', '/address/[hash]': 'Regular page', '/verified-contracts': 'Root page', '/contract-verification': 'Root page', diff --git a/lib/metadata/templates/description.ts b/lib/metadata/templates/description.ts index 77e483bcba..e4d0ccd715 100644 --- a/lib/metadata/templates/description.ts +++ b/lib/metadata/templates/description.ts @@ -16,6 +16,7 @@ const TEMPLATE_MAP: Record = { '/block/countdown': DEFAULT_TEMPLATE, '/block/countdown/[height]': DEFAULT_TEMPLATE, '/accounts': DEFAULT_TEMPLATE, + '/accounts/label/[slug]': DEFAULT_TEMPLATE, '/address/[hash]': 'View the account balance, transactions, and other data for %hash% on the %network_title%', '/verified-contracts': DEFAULT_TEMPLATE, '/contract-verification': DEFAULT_TEMPLATE, diff --git a/lib/metadata/templates/title.ts b/lib/metadata/templates/title.ts index ce937291c2..e0c9d9e44c 100644 --- a/lib/metadata/templates/title.ts +++ b/lib/metadata/templates/title.ts @@ -12,6 +12,7 @@ const TEMPLATE_MAP: Record = { '/block/countdown': '%network_name% block countdown index', '/block/countdown/[height]': '%network_name% block %height% countdown', '/accounts': '%network_name% top accounts', + '/accounts/label/[slug]': '%network_name% addresses search by label', '/address/[hash]': '%network_name% address details for %hash%', '/verified-contracts': 'Verified %network_name% contracts lookup - %network_name% explorer', '/contract-verification': '%network_name% verify contract', diff --git a/lib/mixpanel/getPageType.ts b/lib/mixpanel/getPageType.ts index c79bf5410d..3fc7896f81 100644 --- a/lib/mixpanel/getPageType.ts +++ b/lib/mixpanel/getPageType.ts @@ -10,6 +10,7 @@ export const PAGE_TYPE_DICT: Record = { '/block/countdown': 'Block countdown search', '/block/countdown/[height]': 'Block countdown', '/accounts': 'Top accounts', + '/accounts/label/[slug]': 'Addresses search by label', '/address/[hash]': 'Address details', '/verified-contracts': 'Verified contracts', '/contract-verification': 'Contract verification', diff --git a/nextjs/getServerSideProps.ts b/nextjs/getServerSideProps.ts index 0268994544..c9933fb679 100644 --- a/nextjs/getServerSideProps.ts +++ b/nextjs/getServerSideProps.ts @@ -205,7 +205,7 @@ export const accounts: GetServerSideProps = async(context) => { }; export const accountsLabelSearch: GetServerSideProps = async(context) => { - if (!config.features.addressMetadata.isEnabled) { + if (!config.features.addressMetadata.isEnabled || !context.query.tagType) { return { notFound: true, }; From da36f62be2f328df718a3974558215ef70d34e86 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 9 Sep 2024 18:24:58 +0200 Subject: [PATCH 4/7] tests --- ui/pages/AccountsLabelSearch.pw.tsx | 61 ++++++++++++++++++ ...arch.pw.tsx_default_base-view-mobile-1.png | Bin 0 -> 48710 bytes ...earch.pw.tsx_mobile_base-view-mobile-1.png | Bin 0 -> 48652 bytes 3 files changed, 61 insertions(+) create mode 100644 ui/pages/AccountsLabelSearch.pw.tsx create mode 100644 ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_default_base-view-mobile-1.png create mode 100644 ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_mobile_base-view-mobile-1.png diff --git a/ui/pages/AccountsLabelSearch.pw.tsx b/ui/pages/AccountsLabelSearch.pw.tsx new file mode 100644 index 0000000000..315affcc36 --- /dev/null +++ b/ui/pages/AccountsLabelSearch.pw.tsx @@ -0,0 +1,61 @@ +import React from 'react'; + +import type { AddressesMetadataSearchResult } from 'types/api/addresses'; + +import * as addressMocks from 'mocks/address/address'; +import { test, expect } from 'playwright/lib'; + +import AccountsLabelSearch from './AccountsLabelSearch'; + +const addresses: AddressesMetadataSearchResult = { + items: [ + { + ...addressMocks.withName, + tx_count: '1', + coin_balance: '12345678901234567890000', + }, + { + ...addressMocks.token, + tx_count: '109123890123', + coin_balance: '22222345678901234567890000', + ens_domain_name: null, + }, + { + ...addressMocks.withoutName, + tx_count: '11', + coin_balance: '1000000000000000000', + }, + { + ...addressMocks.eoa, + tx_count: '420', + coin_balance: '123456', + }, + ], + next_page_params: null, +}; + +const hooksConfig = { + router: { + query: { + slug: 'euler-finance-exploit', + tagType: 'generic', + tagName: 'Euler finance exploit', + }, + }, +}; + +test('base view +@mobile', async({ render, mockTextAd, mockApiResponse }) => { + await mockTextAd(); + await mockApiResponse( + 'addresses_metadata_search', + addresses, + { + queryParams: { + slug: 'euler-finance-exploit', + tag_type: 'generic', + }, + }, + ); + const component = await render(, { hooksConfig }); + await expect(component).toHaveScreenshot(); +}); diff --git a/ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_default_base-view-mobile-1.png b/ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_default_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..77244dac742ee5cc61816b84df38b36ff27d7ca4 GIT binary patch literal 48710 zcmeFZbySsY_bt2;2?1%PL0Y;&y1S&iL0Vd+y9GqL1*99KyOnN`?(S~BYd_EXe&;vN z80W9^@7cp4ZrS&~_kG>hT5GO3=h~s~6(nCG;UhsHkeAX@V#*N6^Ku9T<_jV`_#d$> zNCo%-vQJ0W_pDNW0Z@#+}rj4T|N=!-$oyk+gxI3qbB<4q=mXwrBWq$>`S(jP9?s-?PGMdypP zU*C4z#igf5W=lqq@sT}4Bj$r{hBug@hDJs()YR1Mc8i4R#D&4O7QEDI!dHBP+-2GJ zC#&6ja~$$fAt5dFCr`gwK6N0^c;%qgCPUVhbz3Og!!BqN-}PZ$?1p9{XkCup?th1F zzH=BvQN#>BS27!Cd;8y9h~veUDs>GF9c^tw*Ef4ZX&y|+_cu;oak(*t*Lv6NHF49s zx`fE0g=pheH~JGoA|rbW)rv-{b+}TazN)7D9T|D=d^8F>S8LbX?0)qvIXUe7+_|f} zd*ys*Jdw|pRU!({zpG2Egl=^@jhBU)8QuNrP#oMYWfhe(LZ|H!Qs;xImjs+2yCMj< zj(NE8lnb!!mRh>OLf9WK3x6f#Kw9(jJ6`QZjwo&Pe)2lsT_BkIyx-OtjCOK)pz|{~ zcNN@j#FsC{pI~6iO?pvF`c-CFUvE4#c&)*^T^vR%i-)6QU_kGI6b0tboE%a{M%3O& zqRu*pHD=d7>?ZfCQmH;EF|h`d(^#70i!=YS43eHGlCsJAursfRi)pm@R=+65V)%vFsseh723WIv1d>t2-Q_Et zqlGTk>~^Ei{9B%ggV9JBPu-@2sIDGOrq6<{vTf`d(psoy76s(f9mh8X0@A(x7{e9X zoz7v{)6c2l%lM=Ey`KoY-(5`$<_kD8>F53=zr5l7mFV?cIq8EzDb3JJZb!wnCT|Pw ze)8w#j_RepEq&cD;OOF+BxhDSI}~H6u3d3*jWikvKKxVQ215&El(BeBiV1jd!Y6s`<*#oa$uJxF~p^}6XCt!g#> z8f?oOG=WmFz64z2$EUmz*}aSHv-?EKYm2MXFA!MV_bGK7lAqmp8{YpYQR(MN0c;G(>|MNFyB}O)t07FGYJne(O0MDNSG?o%^RB))Iu^^*^=E=y z9&hW99(r4%8s;VbE(#FU)S|7K)Ns`kBF+*<)Hjx9re|}+qaAll*jcv^bV2yz)7u}z zSzL!$#&EKYcZ|`CbX+&t$ixc48wR^yRc6_EFEodPi_5Z_EDTi8B#SoOEY|vRbDC3L zqMRdRvCzO#$n#EUsSR>6oW3$&@AU4|{X5gjVy-aj=~D6PLN%pqiI*!)n5%{OK+~MO5QJ8v6os6eJZEnU z_07%AO{P+3Pd|!y;k{nD=))K#FKIjZ?l~GxiD@!ufIb=R{|b+r_TMQYn#5Uu=8Ix+%y# z%TfLafzFH);-q9`&n|W+=~QnPdmA#moW|nz5E)`YMHz|}i@!?7fN?}e$sO6Qf zjk@xmPgG-P|5TDzrKc30w4y>6POkF5^A5_%q4e|j7j)qalT(V_k}bm0a{_rLfQZ{K z5czf6!h+t+;l@TF_~b@iAs91t4&?Btgx8~Ix#3s(IA=fGE_3f@7Jr>(p8ndJHz91f z$JUYH^eM8XF={l3V9htxBUGu;4@ybP8RJ%`{95rC9QA~ECyKFXbW>|VY7;Ay1C5rN zqZ!}z^>q=-rVH<*;`{l9G}N(-Y(Co16CTzj%w_y*aF~;m?oCoQLY2wib�ymbIf2iU>42`X5 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 MD`?19%33}DHwZDTC;$Ke literal 0 HcmV?d00001 diff --git a/ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_mobile_base-view-mobile-1.png b/ui/pages/__screenshots__/AccountsLabelSearch.pw.tsx_mobile_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6763055ed275c4d536c78eef68204f100021a34e GIT binary patch literal 48652 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 literal 0 HcmV?d00001 From b60bf3017c3440480e7bc1cfd37f38612714d65a Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 9 Sep 2024 18:56:50 +0200 Subject: [PATCH 5/7] add quotes to network id env value --- deploy/values/review/values.yaml.gotmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/values/review/values.yaml.gotmpl b/deploy/values/review/values.yaml.gotmpl index a61fe756af..5b2623182f 100644 --- a/deploy/values/review/values.yaml.gotmpl +++ b/deploy/values/review/values.yaml.gotmpl @@ -4,7 +4,7 @@ imagePullSecrets: - name: regcred config: network: - id: 11155111 + id: "11155111" name: Blockscout shortname: Blockscout currency: From 30e2b1c8ae0b1c6bdb0bda597788ec5446fd8e5f Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 10 Sep 2024 15:27:48 +0200 Subject: [PATCH 6/7] fix null balance and result num --- types/api/addresses.ts | 2 +- ui/addresses/AddressesListItem.tsx | 2 +- ui/addresses/AddressesTableItem.tsx | 2 +- ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx | 2 +- ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx | 2 +- ui/pages/AccountsLabelSearch.pw.tsx | 2 +- ui/pages/AccountsLabelSearch.tsx | 8 ++++++-- 7 files changed, 12 insertions(+), 8 deletions(-) diff --git a/types/api/addresses.ts b/types/api/addresses.ts index e0fdb666fd..3533b67655 100644 --- a/types/api/addresses.ts +++ b/types/api/addresses.ts @@ -1,6 +1,6 @@ import type { AddressParam } from './addressParams'; -export type AddressesItem = AddressParam &{ tx_count: string; coin_balance: string } +export type AddressesItem = AddressParam & { tx_count: string; coin_balance: string | null } export type AddressesResponse = { items: Array; diff --git a/ui/addresses/AddressesListItem.tsx b/ui/addresses/AddressesListItem.tsx index d147ff7970..462db87c80 100644 --- a/ui/addresses/AddressesListItem.tsx +++ b/ui/addresses/AddressesListItem.tsx @@ -25,7 +25,7 @@ const AddressesListItem = ({ isLoading, }: Props) => { - const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + const addressBalance = BigNumber(item.coin_balance || 0).div(BigNumber(10 ** config.chain.currency.decimals)); return ( diff --git a/ui/addresses/AddressesTableItem.tsx b/ui/addresses/AddressesTableItem.tsx index f5696f184f..06d849c211 100644 --- a/ui/addresses/AddressesTableItem.tsx +++ b/ui/addresses/AddressesTableItem.tsx @@ -24,7 +24,7 @@ const AddressesTableItem = ({ isLoading, }: Props) => { - const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + const addressBalance = BigNumber(item.coin_balance || 0).div(BigNumber(10 ** config.chain.currency.decimals)); const addressBalanceChunks = addressBalance.dp(8).toFormat().split('.'); return ( diff --git a/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx b/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx index 68e60ee2ec..f2145f93c7 100644 --- a/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx +++ b/ui/addressesLabelSearch/AddressesLabelSearchListItem.tsx @@ -19,7 +19,7 @@ const AddressesLabelSearchListItem = ({ isLoading, }: Props) => { - const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + const addressBalance = BigNumber(item.coin_balance || 0).div(BigNumber(10 ** config.chain.currency.decimals)); return ( diff --git a/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx b/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx index ae421bc20a..b768a56783 100644 --- a/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx +++ b/ui/addressesLabelSearch/AddressesLabelSearchTableItem.tsx @@ -17,7 +17,7 @@ const AddressesLabelSearchTableItem = ({ isLoading, }: Props) => { - const addressBalance = BigNumber(item.coin_balance).div(BigNumber(10 ** config.chain.currency.decimals)); + const addressBalance = BigNumber(item.coin_balance || 0).div(BigNumber(10 ** config.chain.currency.decimals)); const addressBalanceChunks = addressBalance.dp(8).toFormat().split('.'); return ( diff --git a/ui/pages/AccountsLabelSearch.pw.tsx b/ui/pages/AccountsLabelSearch.pw.tsx index 315affcc36..86f637ca86 100644 --- a/ui/pages/AccountsLabelSearch.pw.tsx +++ b/ui/pages/AccountsLabelSearch.pw.tsx @@ -28,7 +28,7 @@ const addresses: AddressesMetadataSearchResult = { { ...addressMocks.eoa, tx_count: '420', - coin_balance: '123456', + coin_balance: null, }, ], next_page_params: null, diff --git a/ui/pages/AccountsLabelSearch.tsx b/ui/pages/AccountsLabelSearch.tsx index fbd99a3e80..4a99be6b2f 100644 --- a/ui/pages/AccountsLabelSearch.tsx +++ b/ui/pages/AccountsLabelSearch.tsx @@ -32,7 +32,7 @@ const AccountsLabelSearch = () => { options: { placeholderData: generateListStub<'addresses_metadata_search'>( TOP_ADDRESS, - 5, + 50, { next_page_params: null, }, @@ -83,7 +83,11 @@ const AccountsLabelSearch = () => { isLoaded={ !isPlaceholderData } display="inline-block" > - Found { num } matching result{ num > 1 ? 's' : '' } for + Found{ ' ' } + + { num }{ data?.next_page_params || pagination.page > 1 ? '+' : '' } + { ' ' } + matching result{ num > 1 ? 's' : '' } for From 772dca862cb6780c3a85a0f2ee6d666955f5d855 Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 10 Sep 2024 15:57:02 +0200 Subject: [PATCH 7/7] fix mobile layout --- ui/pages/AccountsLabelSearch.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/pages/AccountsLabelSearch.tsx b/ui/pages/AccountsLabelSearch.tsx index 4a99be6b2f..8ed107858e 100644 --- a/ui/pages/AccountsLabelSearch.tsx +++ b/ui/pages/AccountsLabelSearch.tsx @@ -78,7 +78,7 @@ const AccountsLabelSearch = () => { }; return ( - +