From a135c4da5b7ab20e3ffef8efe9cabb70d1120ccc Mon Sep 17 00:00:00 2001 From: tom goriunov Date: Tue, 11 Feb 2025 09:59:02 +0100 Subject: [PATCH] Zilliqa: Validator views (#2557) * list of validators * validator details page * clean up * review fixes --- configs/envs/.env.zilliqa_prototestnet | 8 +- docs/ENVS.md | 2 +- lib/api/resources.ts | 15 ++- lib/hooks/useNavItems.tsx | 2 +- lib/metadata/getPageOgType.ts | 1 + lib/metadata/templates/description.ts | 1 + lib/metadata/templates/title.ts | 1 + lib/mixpanel/getPageType.ts | 1 + mocks/validators/zilliqa.ts | 60 +++++++++ nextjs/getServerSideProps.ts | 11 ++ nextjs/nextjs-routes.d.ts | 1 + pages/validators/[id].tsx | 30 +++++ .../{validators.tsx => validators/index.tsx} | 4 + stubs/validators.ts | 20 +++ types/api/validators.ts | 28 ++++ types/client/validators.ts | 1 + ui/pages/ValidatorZilliqa.tsx | 72 +++++++++++ ui/pages/ValidatorsBlackfort.tsx | 8 +- ui/pages/ValidatorsStability.tsx | 10 +- ui/pages/ValidatorsZilliqa.pw.tsx | 20 +++ ui/pages/ValidatorsZilliqa.tsx | 63 +++++++++ ...liqa.pw.tsx_default_base-view-mobile-1.png | Bin 0 -> 18073 bytes ...lliqa.pw.tsx_mobile_base-view-mobile-1.png | Bin 0 -> 27386 bytes .../entities/validator/ValidatorEntity.tsx | 85 +++++++++++++ .../blackfort}/ValidatorsCounters.tsx | 0 .../blackfort}/ValidatorsList.tsx | 0 .../blackfort}/ValidatorsListItem.tsx | 0 .../blackfort}/ValidatorsTable.tsx | 0 .../blackfort}/ValidatorsTableItem.tsx | 0 .../blackfort}/utils.ts | 0 .../stability}/ValidatorsCounters.tsx | 0 .../stability}/ValidatorsFilter.tsx | 0 .../stability}/ValidatorsList.tsx | 0 .../stability}/ValidatorsListItem.tsx | 0 .../stability}/ValidatorsTable.tsx | 0 .../stability}/ValidatorsTableItem.tsx | 0 .../stability}/utils.ts | 0 ui/validators/zilliqa/ValidatorDetails.pw.tsx | 16 +++ ui/validators/zilliqa/ValidatorDetails.tsx | 120 ++++++++++++++++++ ui/validators/zilliqa/ValidatorsList.tsx | 22 ++++ ui/validators/zilliqa/ValidatorsListItem.tsx | 46 +++++++ ui/validators/zilliqa/ValidatorsTable.tsx | 41 ++++++ ui/validators/zilliqa/ValidatorsTableItem.tsx | 36 ++++++ ...ails.pw.tsx_default_base-view-mobile-1.png | Bin 0 -> 39402 bytes ...tails.pw.tsx_mobile_base-view-mobile-1.png | Bin 0 -> 49691 bytes 45 files changed, 709 insertions(+), 16 deletions(-) create mode 100644 mocks/validators/zilliqa.ts create mode 100644 pages/validators/[id].tsx rename pages/{validators.tsx => validators/index.tsx} (86%) create mode 100644 ui/pages/ValidatorZilliqa.tsx create mode 100644 ui/pages/ValidatorsZilliqa.pw.tsx create mode 100644 ui/pages/ValidatorsZilliqa.tsx create mode 100644 ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png create mode 100644 ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_mobile_base-view-mobile-1.png create mode 100644 ui/shared/entities/validator/ValidatorEntity.tsx rename ui/{validatorsBlackfort => validators/blackfort}/ValidatorsCounters.tsx (100%) rename ui/{validatorsBlackfort => validators/blackfort}/ValidatorsList.tsx (100%) rename ui/{validatorsBlackfort => validators/blackfort}/ValidatorsListItem.tsx (100%) rename ui/{validatorsBlackfort => validators/blackfort}/ValidatorsTable.tsx (100%) rename ui/{validatorsBlackfort => validators/blackfort}/ValidatorsTableItem.tsx (100%) rename ui/{validatorsBlackfort => validators/blackfort}/utils.ts (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsCounters.tsx (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsFilter.tsx (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsList.tsx (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsListItem.tsx (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsTable.tsx (100%) rename ui/{validatorsStability => validators/stability}/ValidatorsTableItem.tsx (100%) rename ui/{validatorsStability => validators/stability}/utils.ts (100%) create mode 100644 ui/validators/zilliqa/ValidatorDetails.pw.tsx create mode 100644 ui/validators/zilliqa/ValidatorDetails.tsx create mode 100644 ui/validators/zilliqa/ValidatorsList.tsx create mode 100644 ui/validators/zilliqa/ValidatorsListItem.tsx create mode 100644 ui/validators/zilliqa/ValidatorsTable.tsx create mode 100644 ui/validators/zilliqa/ValidatorsTableItem.tsx create mode 100644 ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_default_base-view-mobile-1.png create mode 100644 ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_mobile_base-view-mobile-1.png diff --git a/configs/envs/.env.zilliqa_prototestnet b/configs/envs/.env.zilliqa_prototestnet index 00730e8999..a08f447bbb 100644 --- a/configs/envs/.env.zilliqa_prototestnet +++ b/configs/envs/.env.zilliqa_prototestnet @@ -9,14 +9,12 @@ NEXT_PUBLIC_APP_PORT=3000 NEXT_PUBLIC_APP_ENV=development NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws -NEXT_PUBLIC_VIEWS_CONTRACT_LANGUAGE_FILTERS=['solidity','vyper','yul','scilla'] - - # Instance ENVs NEXT_PUBLIC_API_BASE_PATH=/ NEXT_PUBLIC_API_HOST=zilliqa-prototestnet.blockscout.com NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}] +NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x3d1ded3a7924cd3256a4b1a447c9bfb194f54b9a8ceb441edb8bb01563b516db NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs'] NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['linear-gradient(90deg, rgba(0, 208, 198, 1) 0.06%, rgba(43, 146, 151, 1) 99.97%)','linear-gradient(90deg, rgba(0, 208, 198, 1) 0.06%, rgba(43, 146, 151, 1) 50.02%, rgba(0, 0, 0, 1) 99.97%)'],'text_color':['rgba(255, 255, 255, 1)','rgba(255, 255, 255, 1)'],'button':{'_default':{'background':['rgba(38, 6, 124, 1)']},'_hover':{'background':['rgba(17, 4, 87, 1)']}}} @@ -38,4 +36,6 @@ NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-c NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout NEXT_PUBLIC_VIEWS_ADDRESS_BECH_32_PREFIX=zil NEXT_PUBLIC_VIEWS_ADDRESS_FORMAT=["base16", "bech32"] -NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com \ No newline at end of file +NEXT_PUBLIC_VIEWS_CONTRACT_LANGUAGE_FILTERS=['solidity','vyper','yul','scilla'] +NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com +NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=zilliqa \ No newline at end of file diff --git a/docs/ENVS.md b/docs/ENVS.md index 9ab396a846..ce82f00b84 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -750,7 +750,7 @@ The feature enables the Validators page which provides detailed information abou | Variable | Type| Description | Compulsoriness | Default value | Example value | Version | | --- | --- | --- | --- | --- | --- | --- | -| NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE | `'stability' \| 'blackfort'` | Chain type | Required | - | `'stability'` | v1.25.0+ | +| NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE | `'stability' \| 'blackfort' \| 'zilliqa'` | Chain type | Required | - | `'stability'` | v1.25.0+ |   diff --git a/lib/api/resources.ts b/lib/api/resources.ts index 8bf3376752..8f94961fc5 100644 --- a/lib/api/resources.ts +++ b/lib/api/resources.ts @@ -150,6 +150,8 @@ import type { ValidatorsBlackfortCountersResponse, ValidatorsBlackfortResponse, ValidatorsBlackfortSorting, + ValidatorsZilliqaResponse, + ValidatorZilliqa, } from 'types/api/validators'; import type { VerifiedContractsSorting } from 'types/api/verifiedContracts'; import type { WithdrawalsResponse, WithdrawalsCounters } from 'types/api/withdrawals'; @@ -1097,6 +1099,15 @@ export const RESOURCES = { validators_blackfort_counters: { path: '/api/v2/validators/blackfort/counters', }, + validators_zilliqa: { + path: '/api/v2/validators/zilliqa', + filterFields: [], + }, + validator_zilliqa: { + path: '/api/v2/validators/zilliqa/:bls_public_key', + pathParams: [ 'bls_public_key' as const ], + filterFields: [], + }, // BLOBS blob: { @@ -1247,7 +1258,7 @@ export type PaginatedResources = 'blocks' | 'block_txs' | 'block_election_reward 'zksync_l2_txn_batches' | 'zksync_l2_txn_batch_txs' | 'withdrawals' | 'address_withdrawals' | 'block_withdrawals' | 'watchlist' | 'private_tags_address' | 'private_tags_tx' | -'domains_lookup' | 'addresses_lookup' | 'user_ops' | 'validators_stability' | 'validators_blackfort' | 'noves_address_history' | +'domains_lookup' | 'addresses_lookup' | 'user_ops' | 'validators_stability' | 'validators_blackfort' | 'validators_zilliqa' | 'noves_address_history' | 'token_transfers_all' | 'scroll_l2_txn_batches' | 'scroll_l2_txn_batch_txs' | 'scroll_l2_txn_batch_blocks' | 'scroll_l2_deposits' | 'scroll_l2_withdrawals' | 'advanced_filter' | 'pools'; @@ -1375,6 +1386,8 @@ Q extends 'validators_stability' ? ValidatorsStabilityResponse : Q extends 'validators_stability_counters' ? ValidatorsStabilityCountersResponse : Q extends 'validators_blackfort' ? ValidatorsBlackfortResponse : Q extends 'validators_blackfort_counters' ? ValidatorsBlackfortCountersResponse : +Q extends 'validators_zilliqa' ? ValidatorsZilliqaResponse : +Q extends 'validator_zilliqa' ? ValidatorZilliqa : Q extends 'shibarium_withdrawals' ? ShibariumWithdrawalsResponse : Q extends 'shibarium_deposits' ? ShibariumDepositsResponse : Q extends 'shibarium_withdrawals_count' ? number : diff --git a/lib/hooks/useNavItems.tsx b/lib/hooks/useNavItems.tsx index bb7c48300f..78f4e99f67 100644 --- a/lib/hooks/useNavItems.tsx +++ b/lib/hooks/useNavItems.tsx @@ -68,7 +68,7 @@ export default function useNavItems(): ReturnType { text: 'Top validators', nextRoute: { pathname: '/validators' as const }, icon: 'validator', - isActive: pathname === '/validators', + isActive: pathname === '/validators' || pathname === '/validators/[id]', } : null; const rollupDeposits = { text: `Deposits (L1${ rightLineArrow }L2)`, diff --git a/lib/metadata/getPageOgType.ts b/lib/metadata/getPageOgType.ts index e26c186eab..a8fff18cad 100644 --- a/lib/metadata/getPageOgType.ts +++ b/lib/metadata/getPageOgType.ts @@ -51,6 +51,7 @@ const OG_TYPE_DICT: Record = { '/name-domains': 'Root page', '/name-domains/[name]': 'Regular page', '/validators': 'Root page', + '/validators/[id]': 'Regular page', '/gas-tracker': 'Root page', '/mud-worlds': 'Root page', '/token-transfers': 'Root page', diff --git a/lib/metadata/templates/description.ts b/lib/metadata/templates/description.ts index 536778d87e..85cfd66267 100644 --- a/lib/metadata/templates/description.ts +++ b/lib/metadata/templates/description.ts @@ -54,6 +54,7 @@ const TEMPLATE_MAP: Record = { '/name-domains': DEFAULT_TEMPLATE, '/name-domains/[name]': DEFAULT_TEMPLATE, '/validators': DEFAULT_TEMPLATE, + '/validators/[id]': DEFAULT_TEMPLATE, '/gas-tracker': 'Explore real-time %network_title% gas fees with Blockscout\'s advanced gas fee tracker. Get accurate %network_gwei% estimates and track transaction costs live.', '/mud-worlds': DEFAULT_TEMPLATE, '/token-transfers': DEFAULT_TEMPLATE, diff --git a/lib/metadata/templates/title.ts b/lib/metadata/templates/title.ts index 33a81ff3ce..8574ee6f62 100644 --- a/lib/metadata/templates/title.ts +++ b/lib/metadata/templates/title.ts @@ -51,6 +51,7 @@ const TEMPLATE_MAP: Record = { '/name-domains': '%network_name% name domains - %network_name% explorer', '/name-domains/[name]': '%network_name% %name% domain details', '/validators': '%network_name% validators list', + '/validators/[id]': '%network_name% validator %id% details', '/gas-tracker': 'Track %network_name% gas fees in %network_gwei%', '/mud-worlds': '%network_name% MUD worlds list', '/token-transfers': '%network_name% token transfers', diff --git a/lib/mixpanel/getPageType.ts b/lib/mixpanel/getPageType.ts index db3fc08073..baa05240df 100644 --- a/lib/mixpanel/getPageType.ts +++ b/lib/mixpanel/getPageType.ts @@ -49,6 +49,7 @@ export const PAGE_TYPE_DICT: Record = { '/name-domains': 'Domains search and resolve', '/name-domains/[name]': 'Domain details', '/validators': 'Validators list', + '/validators/[id]': 'Validator details', '/gas-tracker': 'Gas tracker', '/mud-worlds': 'MUD worlds', '/token-transfers': 'Token transfers', diff --git a/mocks/validators/zilliqa.ts b/mocks/validators/zilliqa.ts new file mode 100644 index 0000000000..4f7a434a9a --- /dev/null +++ b/mocks/validators/zilliqa.ts @@ -0,0 +1,60 @@ +import type { ValidatorZilliqa, ValidatorsZilliqaItem, ValidatorsZilliqaResponse } from 'types/api/validators'; + +export const validator1: ValidatorsZilliqaItem = { + index: 420, + bls_public_key: '0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100', + balance: '1000000000000000000', +}; + +export const validatorsResponse: ValidatorsZilliqaResponse = { + items: [ validator1 ], + next_page_params: null, +}; + +export const validatorDetails: ValidatorZilliqa = { + added_at_block_number: 7527600, + balance: '20000000000000000000000000', + bls_public_key: '0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100', + control_address: { + ens_domain_name: null, + hash: '0xB4492C468Fe97CB73Ea70a9A712cdd5B5aB621c3', + implementations: [], + is_contract: false, + is_verified: null, + metadata: null, + name: null, + private_tags: [], + proxy_type: null, + public_tags: [], + watchlist_names: [], + }, + index: 1, + peer_id: '0x002408011220a8ce8c9a146f3dc411cd72ba845b76722824c55824ac74b3362f070a332d85f2', + reward_address: { + ens_domain_name: null, + hash: '0x0000000000000000000000000000000000000000', + implementations: [], + is_contract: false, + is_verified: null, + metadata: null, + name: null, + private_tags: [], + proxy_type: null, + public_tags: [], + watchlist_names: [], + }, + signing_address: { + ens_domain_name: null, + hash: '0x0000000000000000000000000000000000000026', + implementations: [], + is_contract: false, + is_verified: null, + metadata: null, + name: null, + private_tags: [], + proxy_type: null, + public_tags: [], + watchlist_names: [], + }, + stake_updated_at_block_number: 7527642, +}; diff --git a/nextjs/getServerSideProps.ts b/nextjs/getServerSideProps.ts index 394fcc5ebe..a59232cb43 100644 --- a/nextjs/getServerSideProps.ts +++ b/nextjs/getServerSideProps.ts @@ -244,6 +244,17 @@ export const validators: GetServerSideProps = async(context) => { return base(context); }; +export const validatorDetails: GetServerSideProps = async(context) => { + const feature = config.features.validators; + if (!feature.isEnabled || feature.chainType !== 'zilliqa') { + return { + notFound: true, + }; + } + + return base(context); +}; + export const gasTracker: GetServerSideProps = async(context) => { if (!config.features.gasTracker.isEnabled) { return { diff --git a/nextjs/nextjs-routes.d.ts b/nextjs/nextjs-routes.d.ts index 3104e83f18..4c5b1ba57f 100644 --- a/nextjs/nextjs-routes.d.ts +++ b/nextjs/nextjs-routes.d.ts @@ -67,6 +67,7 @@ declare module "nextjs-routes" { | DynamicRoute<"/tx/[hash]", { "hash": string }> | StaticRoute<"/txs"> | DynamicRoute<"/txs/kettle/[hash]", { "hash": string }> + | DynamicRoute<"/validators/[id]", { "id": string }> | StaticRoute<"/validators"> | StaticRoute<"/verified-contracts"> | StaticRoute<"/visualize/sol2uml"> diff --git a/pages/validators/[id].tsx b/pages/validators/[id].tsx new file mode 100644 index 0000000000..f3c25c3c0d --- /dev/null +++ b/pages/validators/[id].tsx @@ -0,0 +1,30 @@ +import type { NextPage } from 'next'; +import dynamic from 'next/dynamic'; +import React from 'react'; + +import type { Props } from 'nextjs/getServerSideProps'; +import PageNextJs from 'nextjs/PageNextJs'; + +import config from 'configs/app'; + +const validatorsFeature = config.features.validators; + +const ValidatorDetails = dynamic(() => { + if (validatorsFeature.isEnabled && validatorsFeature.chainType === 'zilliqa') { + return import('ui/pages/ValidatorZilliqa'); + } + + throw new Error('Validators feature is not enabled.'); +}, { ssr: false }); + +const Page: NextPage = (props) => { + return ( + + + + ); +}; + +export default Page; + +export { validatorDetails as getServerSideProps } from 'nextjs/getServerSideProps'; diff --git a/pages/validators.tsx b/pages/validators/index.tsx similarity index 86% rename from pages/validators.tsx rename to pages/validators/index.tsx index a234316a58..957cc4371a 100644 --- a/pages/validators.tsx +++ b/pages/validators/index.tsx @@ -17,6 +17,10 @@ const Validators = dynamic(() => { return import('ui/pages/ValidatorsBlackfort'); } + if (validatorsFeature.isEnabled && validatorsFeature.chainType === 'zilliqa') { + return import('ui/pages/ValidatorsZilliqa'); + } + throw new Error('Validators feature is not enabled.'); }, { ssr: false }); diff --git a/stubs/validators.ts b/stubs/validators.ts index 885818e115..0c19db3f96 100644 --- a/stubs/validators.ts +++ b/stubs/validators.ts @@ -3,6 +3,8 @@ import type { ValidatorsStabilityCountersResponse, ValidatorBlackfort, ValidatorsBlackfortCountersResponse, + ValidatorsZilliqaItem, + ValidatorZilliqa, } from 'types/api/validators'; import { ADDRESS_PARAMS } from './addressParams'; @@ -32,3 +34,21 @@ export const VALIDATORS_BLACKFORT_COUNTERS: ValidatorsBlackfortCountersResponse new_validators_counter_24h: '11', validators_counter: '140', }; + +export const VALIDATORS_ZILLIQA_ITEM: ValidatorsZilliqaItem = { + index: 420, + bls_public_key: '0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100', + balance: '1000000000000000000', +}; + +export const VALIDATOR_ZILLIQA: ValidatorZilliqa = { + index: 420, + bls_public_key: '0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100', + balance: '1000000000000000000', + added_at_block_number: 1234567890, + control_address: ADDRESS_PARAMS, + peer_id: '1234567890', + reward_address: ADDRESS_PARAMS, + signing_address: ADDRESS_PARAMS, + stake_updated_at_block_number: 1234567890, +}; diff --git a/types/api/validators.ts b/types/api/validators.ts index 4f54715175..fcc211732f 100644 --- a/types/api/validators.ts +++ b/types/api/validators.ts @@ -1,5 +1,7 @@ import type { AddressParam } from './addressParams'; +// Stability + export interface ValidatorStability { address: AddressParam; blocks_validated_count: number; @@ -37,6 +39,8 @@ export type ValidatorsStabilitySortingField = ValidatorsStabilitySorting['sort'] export type ValidatorsStabilitySortingValue = `${ ValidatorsStabilitySortingField }-${ ValidatorsStabilitySorting['order'] }`; +// Blackfort + export interface ValidatorBlackfort { address: AddressParam; name: string; @@ -65,3 +69,27 @@ export interface ValidatorsBlackfortSorting { export type ValidatorsBlackfortSortingField = ValidatorsBlackfortSorting['sort']; export type ValidatorsBlackfortSortingValue = `${ ValidatorsBlackfortSortingField }-${ ValidatorsBlackfortSorting['order'] }`; + +// Zilliqa +export interface ValidatorsZilliqaItem { + index: number; + bls_public_key: string; + balance: string; +} + +export interface ValidatorsZilliqaResponse { + items: Array; + next_page_params: null; +} + +export interface ValidatorZilliqa { + added_at_block_number: number; + balance: string; + bls_public_key: string; + control_address: AddressParam; + index: number; + peer_id: string; + reward_address: AddressParam; + signing_address: AddressParam; + stake_updated_at_block_number: number; +} diff --git a/types/client/validators.ts b/types/client/validators.ts index 3b806c4366..f3a10a1dfa 100644 --- a/types/client/validators.ts +++ b/types/client/validators.ts @@ -3,6 +3,7 @@ import type { ArrayElement } from 'types/utils'; export const VALIDATORS_CHAIN_TYPE = [ 'stability', 'blackfort', + 'zilliqa', ] as const; export type ValidatorsChainType = ArrayElement; diff --git a/ui/pages/ValidatorZilliqa.tsx b/ui/pages/ValidatorZilliqa.tsx new file mode 100644 index 0000000000..dbdd6d5a05 --- /dev/null +++ b/ui/pages/ValidatorZilliqa.tsx @@ -0,0 +1,72 @@ +import { Flex } from '@chakra-ui/react'; +import { useRouter } from 'next/router'; +import React from 'react'; + +import useApiQuery from 'lib/api/useApiQuery'; +import { useAppContext } from 'lib/contexts/app'; +import throwOnResourceLoadError from 'lib/errors/throwOnResourceLoadError'; +import getQueryParamString from 'lib/router/getQueryParamString'; +import { VALIDATOR_ZILLIQA } from 'stubs/validators'; +import TextAd from 'ui/shared/ad/TextAd'; +import ValidatorEntity from 'ui/shared/entities/validator/ValidatorEntity'; +import PageTitle from 'ui/shared/Page/PageTitle'; +import ValidatorDetails from 'ui/validators/zilliqa/ValidatorDetails'; + +const ValidatorZilliqa = () => { + const appProps = useAppContext(); + const router = useRouter(); + const blsPublicKey = getQueryParamString(router.query.id); + + const query = useApiQuery('validator_zilliqa', { + pathParams: { bls_public_key: blsPublicKey }, + queryOptions: { + placeholderData: VALIDATOR_ZILLIQA, + }, + }); + + throwOnResourceLoadError(query); + + const isLoading = query.isPlaceholderData; + + const backLink = React.useMemo(() => { + const hasGoBackLink = appProps.referrer && appProps.referrer.endsWith('/validators'); + + if (!hasGoBackLink) { + return; + } + + return { + label: 'Back to validators list', + url: appProps.referrer, + }; + }, [ appProps.referrer ]); + + const titleSecondRow = ( + + + + ); + + return ( + <> + + + { query.data && } + + ); +}; + +export default ValidatorZilliqa; diff --git a/ui/pages/ValidatorsBlackfort.tsx b/ui/pages/ValidatorsBlackfort.tsx index 32b45aa872..3626612784 100644 --- a/ui/pages/ValidatorsBlackfort.tsx +++ b/ui/pages/ValidatorsBlackfort.tsx @@ -19,10 +19,10 @@ import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages'; import getSortParamsFromValue from 'ui/shared/sort/getSortParamsFromValue'; import getSortValueFromQuery from 'ui/shared/sort/getSortValueFromQuery'; import Sort from 'ui/shared/sort/Sort'; -import { VALIDATORS_BLACKFORT_SORT_OPTIONS } from 'ui/validatorsBlackfort/utils'; -import ValidatorsCounters from 'ui/validatorsBlackfort/ValidatorsCounters'; -import ValidatorsList from 'ui/validatorsBlackfort/ValidatorsList'; -import ValidatorsTable from 'ui/validatorsBlackfort/ValidatorsTable'; +import { VALIDATORS_BLACKFORT_SORT_OPTIONS } from 'ui/validators/blackfort/utils'; +import ValidatorsCounters from 'ui/validators/blackfort/ValidatorsCounters'; +import ValidatorsList from 'ui/validators/blackfort/ValidatorsList'; +import ValidatorsTable from 'ui/validators/blackfort/ValidatorsTable'; const ValidatorsBlackfort = () => { const router = useRouter(); diff --git a/ui/pages/ValidatorsStability.tsx b/ui/pages/ValidatorsStability.tsx index 8b518b4356..46e0659f48 100644 --- a/ui/pages/ValidatorsStability.tsx +++ b/ui/pages/ValidatorsStability.tsx @@ -25,11 +25,11 @@ import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages'; import getSortParamsFromValue from 'ui/shared/sort/getSortParamsFromValue'; import getSortValueFromQuery from 'ui/shared/sort/getSortValueFromQuery'; import Sort from 'ui/shared/sort/Sort'; -import { VALIDATORS_STABILITY_SORT_OPTIONS } from 'ui/validatorsStability/utils'; -import ValidatorsCounters from 'ui/validatorsStability/ValidatorsCounters'; -import ValidatorsFilter from 'ui/validatorsStability/ValidatorsFilter'; -import ValidatorsList from 'ui/validatorsStability/ValidatorsList'; -import ValidatorsTable from 'ui/validatorsStability/ValidatorsTable'; +import { VALIDATORS_STABILITY_SORT_OPTIONS } from 'ui/validators/stability/utils'; +import ValidatorsCounters from 'ui/validators/stability/ValidatorsCounters'; +import ValidatorsFilter from 'ui/validators/stability/ValidatorsFilter'; +import ValidatorsList from 'ui/validators/stability/ValidatorsList'; +import ValidatorsTable from 'ui/validators/stability/ValidatorsTable'; const ValidatorsStability = () => { const router = useRouter(); diff --git a/ui/pages/ValidatorsZilliqa.pw.tsx b/ui/pages/ValidatorsZilliqa.pw.tsx new file mode 100644 index 0000000000..35170e68cc --- /dev/null +++ b/ui/pages/ValidatorsZilliqa.pw.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import * as validatorsMock from 'mocks/validators/zilliqa'; +import { test, expect } from 'playwright/lib'; + +import Validators from './ValidatorsZilliqa'; + +const chainType = 'zilliqa'; + +test('base view +@mobile', async({ render, mockApiResponse, mockEnvs, mockTextAd }) => { + await mockEnvs([ + [ 'NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE', chainType ], + ]); + await mockApiResponse('validators_zilliqa', validatorsMock.validatorsResponse); + await mockTextAd(); + + const component = await render(); + + await expect(component).toHaveScreenshot(); +}); diff --git a/ui/pages/ValidatorsZilliqa.tsx b/ui/pages/ValidatorsZilliqa.tsx new file mode 100644 index 0000000000..bae440faa4 --- /dev/null +++ b/ui/pages/ValidatorsZilliqa.tsx @@ -0,0 +1,63 @@ +import { Box, Hide, Show } from '@chakra-ui/react'; +import React from 'react'; + +import config from 'configs/app'; +import useIsMobile from 'lib/hooks/useIsMobile'; +import { generateListStub } from 'stubs/utils'; +import { VALIDATORS_ZILLIQA_ITEM } from 'stubs/validators'; +import ActionBar 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'; +import ValidatorsList from 'ui/validators/zilliqa/ValidatorsList'; +import ValidatorsTable from 'ui/validators/zilliqa/ValidatorsTable'; + +const ValidatorsZilliqa = () => { + + const isMobile = useIsMobile(); + + const { isError, isPlaceholderData, data, pagination } = useQueryWithPages({ + resourceName: 'validators_zilliqa', + options: { + enabled: config.features.validators.isEnabled, + placeholderData: generateListStub<'validators_zilliqa'>( + VALIDATORS_ZILLIQA_ITEM, + 50, + { next_page_params: null }, + ), + }, + }); + + const actionBar = (!isMobile || pagination.isVisible) ? ( + + + + ) : null; + + const content = data?.items ? ( + <> + + + + + + + + ) : null; + + return ( + + + + + ); +}; + +export default ValidatorsZilliqa; diff --git a/ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png b/ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8d02a87c6d32fadba237260db4182d7e7b42c54b GIT binary patch literal 18073 zcmeFZRa9GB)IZ9hEp4Gd1GKmW_u>w132wz5ic4?{5Tq^c#T|;f1@{(rcXxLPPWb2a zeB<7iZ`{{=AMP5AFthgBYwbPf+;jb=>;!*Nki3^3uiCXcawWi^SEHW{l2>OMGWskoyZC z^BvnQOQ~hUJNzcuJ>RUhcQth)hviwep;KjL)s5q2AuUbo%jynx;@^uq<=>&^T;Vq#cAK;2`S;q8 zZDhl%iSs`arS2u_=l@7-|8H;qQoqG0DW3nOPQSc*_0L~QDE8!N7=_n&+xdH51b$M5 zkyg&Ct2x@=W2-N_4w_D9UyFU}{--85C@5G?xSDeQthUf%M@37U2>_sypMSdR?j556 zm-5wK zX;ax<;%V>KJMc?sp=l}TrjoI16XXj585TD2a*^~Ee>iQ&Nmo$ulKhu-H^X}$m~>gI z=7O3JA(C$H{94CsqY6gD$az~AJcDzJp5N|K3B(7@4p@cX{xMC>Ovscgg@kS5i5Jrr zLPjI-J{o)9TEHwrr-4iher@V-qw zP1|@~_s=i&15&oG{*0zpAO;GGz0RDqi7j0Cn)0IE&bkdDuh?hcGkGo_8Qy3!DQ`jr z8#~HS!$d(@<+-2%;&igAoL5^h0V?l|!Y${rjWjaK8O8}n*tTTj`7`P!RFy6xv`Z%l z_XpntB`D$ssN!A^MB^y~i#^O8^QOI@GObpif>~*KtG@<3taU2AV1!-ib=QIi;UpC- z@lq7gGE}jz8RIy{x5&cyi^sEU4vt6*u}TCsC|yoOAN<5_Ej#i*aqmrvcUjrUr)B;b z#9B%{RvrWdSQ)yB8WaEYCjCuE*k6v0UUn^lIrdlxw zSl;UFuzcTwqH5yYnq|b)s7J4)aqk0=5*KC>(BU zvj9F{hmdpUo6Nj%W0$s4u=8f7QR&c|=jJ~kml>Q4Gv;KK5ra~=-{zreHu)zV zb?v#FGyok@C5Qm(=d4{n&8WvXHG^#qUNX)AHvf9m*Uo|4`ka1(5q5dZFjRQJqYP{Z9LH{E1AYwZ zxhJGCbGe^&~-TOZU5WTL%=qN9BHDZK!(<1bdxSWNGEnC&&AB1YOx*c|k! z;9PkpYuA>oe0U(kgGKxN8hgqn>v!!H@k;Bh=b7w?ezV(N-VxN9DU;G%Wqo_%G0;5y zBQ;Lw^EW#(S7Nx==C&HkXvB|4&U&z3x5YTMl90^a z4kn72UO9_C1&!u-Isr*F2ja$xp_xvT2>#5q z++9F1DASG4Q60o%FKPHx&VYQtFqy&QR&-fU{b@E)(vZ2X+U|I@GnknFz@o>YpL7ev zT>nI_q;pWUAfASP3;0h5&!pZo-a9bs0+g-vZapCbUplgkWO>SJRPcCm^EC(<^^wBS zdDY6vu{y$!u+Xt9`JGII=0~%b*7dYzlKaE*l22Y7Cu6&lN+Q(&l&@iOraNFwU_j5$ zI8(Obn(dc%Bh912!aOUr3T8z0O$&L~)t}nQPKc*$2JrBg@$~5zdtV7V?Viu32L2$)Pzos3FVMT4 z?|O!@;lo>g;`@V+NBFe!xv2*#`!jMmHnqad7yKU6h_A1gx+^kyJGHn?i6mF(6qDWx z-dNc2dF9lzJ;$NvIb2D@o1T$s2WH1fgPCCIBfC$7d|^&HF==X5+p|&2zryL%gzH3G zL|w5kLRE{@3AmD=oKtA=K_z$1ROYHL)0V3HVv5rh7AmYqg}-xad)ZxAaamrcFH0#? zyp^4x>Y9c_2L?f%`!z&jMKK?6QNFGxaS;j2cG71oTRa-8C#mI6C#yZ9`s~!TXUyMa zipEK$Rwf-v+FYvz+15(UJg`F|YiEFBM(K)IV69_dWm^E_qY<7#|#-=pHhrb)2 z>=H>)gzMFsb^Lx)uh1i1o3=CIl54Tdz#}z7B2N^{UAe!FA`j)kj0V`zlpgJTBf2H(3qAiM!$#*DP?A zHupWZxZGgWZ8mhDJ!$DzW8Z8lJ2Qxc71L{V*QJJL0v|kk?N%$lG@2wWDnT(#t(Hbf zv}*QYh#qXL2I^l-tox*FAkLVpL-Myqa2!znk+h23@9&nW3(1EiL?Mb`(ml@echK>) z)LyB$J*avw>0VXi4^%p;Ov0}Cl{_|L5iz-yucL+u4A1-DfpJt_9mi%luu(o}=fOCT z@Cu)_SecP3(J)&A41*jC7f$nPYE74Dkk6$!x&Qv<+7X=A6j4~?QT35Ajo~YNew}K; z_5Iw-;sS0DPVneuxCCi1{v6_R=L)X)TD0lT=3HiDf_O0b$#CSImkZZ@-q7}e__Bz; zzO-lx;2o*+LnLPo#7lOQdmE5F9a3T=c=2XDBmZb6p;g&Xt?i-t;2+h$-HP*~&E~$* z`GPRZ`%}SR^+9BFUY>O_ol>~2ZQc)X7T>@;O&6_&>uo}ivO!%})2C#HMT6;|U+ zRMOy%SQM9~kh@bB&}rs7hqCP~WOuc-`jyisiSE+{c|DuSlA*paS&h7tdmE4FNnKBh z38mreA~q|xo!@{p&5qrqr3+*Z~{j2XID zc(3nHUjT3SpCs}1Vg|3Qs;&GJ91=GGgt39OfL8QOMN*+8d@l+bN(y*~0fjgLa#&WQ zR#3^W=dp!M0gAPIv)`=5l>gibwS;yZ6YkW~3KpZ4c8@Ly7wDcjY2ZV1m^A1yI40i% zvjSij+{7Jd*kfA^KF8Lbaa_PKhKiMs1tSAO6bg#OZm(&r=cb(_371e%RxtBmFrxS% zrA|gSR34tNv3;}%BJN_R5V-Y<{Tua!7AK8QEByf+rGI3ozZ`iROL9d?JKbnHJewjM zq<#k~lan=?QWr1MF^;z0oSN%O6};ZdgB-V**TV6c%)KtJj}=Aluhw!WKAWNad`!CJ zSr9(A^R}z-yc7jaMPnJj8azlSi$}EZGdK@z^iL=|zSy4&(Hsgkjv*vWF6CU8u9~yn z$(W0AzIj16k`gzPCR24HWm28mX7fny#3j12fv{jo*JOP6x|bqeCRePS<2*;2*p(VY zf26_N(e5@6+ZkX@NeF)71!<8hV&56!_buyYme;IOW}wNcs8~|Y4JOntD&y%_$;&PO zi31RqK$l|>Id}A+nmgwe)p*<Pr-Y97wZ;i8WVbQ2v)b_r`%| z65-PpNMAKrjVZd_4bO$}REJ^`pclhRj#a&GP~o;%wt06nayrhFc*7k`sC zG_!w8N~)j|Haz_jI>5i6D4_n~pc*a8XyBWep{BLpFU@@3iPH?*Dh2RYJTO`+VQ}2* zD4#*b19BT~1=PaN(jfJiKcio*J``XwN6pDlS47%5I$Dg9NDY3$UV%!~MeQI_MDpQ5?w2Y9{l$-T zq%MsUir4C?hTw9~9q_hIK*@kIcO8Y8hS^|+=3Py9^>lT~5UGwAHex2@>6+u9t4Z>YoYk-R$|~PRX)=Bd z>UN-72FLu|E#)f z=4Fa*MPSERoVr+i|M<~_M~80ruw6GQ!3Fl~^GLK5H7Sf?9dH(asi|BdbaPKl$8aX$ za?&7}v@@7;p_)B`eca3MF2I((`ih-%t3M}yA|A7?uEYNmMCG!TOw9`b=pgs}xQ$UT zY`v`@DUfU}Sc=yZe~F2<-%|Fr*74dQZc4_)ZKtb*D1i5FoBB(qOk^R`8|o=b%yXJC z-5pLdvT zN;@&O@9Q-eoi<{M@Pp|qCdRwceqQ$q+F644t;+eFuO?UPPHfGB-8N+rAcWYn&-WX2 zlUNzLUq^@v(|V~Uw79}#pi(Fm(DfZT=vV! zV2-eh?qbtg@Xt)}k{Hr-Zd(a}kCO74-Y+?wxFkByTa6d6aO~3U>`e%E< z9SVuCZA3-+#?Edz>B0=4TCp$6*?iWsa!}|9gzZmia{~MsHs1h}Ci!2WF-2)5#N;16 zSx#+PFEqPPY*PtHWa`!$f$v6g-vBDFY{h+P!6(auz&fAd<`%*6+L3zuF)JUEOhv_? z;f>D{)3M?a`R#OD_(OWa2vDtUR&j>bXY-35k-{)OWl9>~Vdf)AGvB$}IH6BDpZl#s zxgTFXk7?AD97AuYQshMaCy99fPQ<$2nqbY)0MmsQhavh7Eim!&t~KgICx%L?9FYs; z;G?p*->=NWYLC$~7;XMXNk`L8DZ0*7cc(w9N~)@cE6JKgx(yOEz>Z$90}=88uk<(y zd@LOSzClwwP%;F{of$EZo@fokY|xXLTIq z+reeh@#2PbE{jo%9^#_^9P_=wq?U=m{Tl6=j4CVcmYB<*Qb^ocuk&2F%a>{5>R~PX zVFr?aRjaI?0nz5{e*O>2qA8;aaS2Gsvc%|j+~-1N$|Il8Eg$2ODa?^^;GSugNT1!x zBdg+qr(J@=pE?JZ9xmH=Qz<-l3R*sLBRIiEYUpH9$Ij}Nd2(rK*$#GGfeE~~^w~`{ zPhVHO13h~47Y@MWZ47L!=R=$$OG0VaL)-GGFt;TMMe zf*C`dxEhJlww=5G3GY(UMJ@cckBrDBhy2;$8h_RB>ysDrP6xVPxPp@ar}1i%j`;L` z2JP{Ky%07^gq*y}Yv-i4#n>d3oN0^67jw`VJ7_+ubyvKpSB*$sbHnfb(5HG{s)LS@ zC`roob|t!3<~Oy$C<7j=>b#rZETAcIZ< zlwn_&s3^nAIJon-b!((m%AngdBa9aFx`>}9R0dwo^Wl-zO-0?D1xgjiQE%@+DIP`0 zafMm?^WU?{?c6Rxi&%mClc^q}>-dlV-K_N&g97G6BCH4PN{1)9kPt`sUA<`axe_f)~FD?`S z=v5=WvLkTw=XTu4^deS`Qtq}Mok=3J%wcqS`r}L!8MMh5r~6wfj1K2LUo2X%H_s_dBRzD2Ye?thw zA^P6l_XGI{@AGn5H{q;OvIf9{KEa<3B}StRa+}kSBMc>`Jshq!3s7Y`?MkI7QDUsf zwTtJd%k{Quc%b|z#Fs`HYrc%MxJq6oMR0ui;^V#8GxJMgm1W(ZWs5C>(m5l2H&eAo zg!~EOulMeG1k&CvZb_sOsCgkh_nzdWyVS59NUQGGe+S!vsqJ!{bQfyzW`P@7si+n_S$GGT#SrwWuG7_c4?HD8^B+rA|zU*BN8gu0e zSWoFpJCD(h(Jnb+EaZ$V1{z)PE|ba|w4E*InmZM*aG%ACocWxq(EL#lRp`vf@13K^ z;P#3-)4t_=Vc_aFGT_e0Wis3IIW{EW{pfu@;%u9*?BHyNLBZ|~CbxG~lwNwWQ%(Cx znMUnOU92K#IjkJ=s~menQlBTqW;SFS8&WnrsePn4E*qCFYIc%0@^&TqL;yyHjL;Kkx= z#o_MG<6#KL`=++bAh&bBovR#7Qd2N}zZ)W`d+hZP{kXx()33y0k~>Xq!oHTOi`S}6 zk=VC;1$|oAviDz=(mjVxBG>yaQC8Un2GLJ4VD+j zMs1i6_01RCb)`?~L^-;LJ4X{fhZp$vZ+4JLwVUt60)=m)TIfFT$QGLgYd#9{N9>tM z70KAcCq;l~FifTpo}F1=`YXrfS~cx0*mE^MUFxqxm>xC`4pGw|TANQTQ1 zOaTCu^AH6MDGdqiq$!ot)qwm^Uh=U@kjWIjdC3G*3{E^~AQzQ`c)vRN#|2SKA+OhW zqmKBOORc`~`BGm(xc1S2z^c0~8+9+MXc^XbrzK_`rtrPg)}(JQq7+^tQ>+ia-2ro` z`PB%s9a8ylktgsj2am^6wcG`e*kJVHQsAViFGGXSFDHC~bWc`*OrG#>2`ZS7J zp3z0b6sx8_BhF>I$|0^bEjo&nrwi4Oftc)uTZgIUns8Y?x>1Skg$VBjq$OE(%+_+3 zl>{(Qb-i$*1p?I*>cC#Dri1hmdi%~)5BX()e0t2%YM;j8a+Ng~ zF5?*JioN&+xtry2;I+TC^!F{!B*s?mY1FL>t(5r8zOtn4k+z_ zDPB?d?hT$~!YC-;UOGA={U`uKJSN#rZ?9TW)Lm+4|7CWQ1}G#ovdk0|GWqyY^2wed zVL_nU$KR-Afk;uEN+mDWLa|ES=uFbTNw$0!VEEqKf=-OrwmDsmyj5YmnUIQQ>pFF+uSN8?9h~ zEb=g;+Bip7&;k)u{Y5`%c_^Oy2_BerhAUAMe<@9<(5i>rNW&^5w7=h3!1oUlD$~6k zjP2h-&y~pyA-Tv_Kjfb&3=N&s_L5KQGcqMi|H!36miL8*T8Qt;?;n)ba(ko6X(Z47 zs|6sZKtcIE%a^A5Ultw3`$iX&@CEXAkW3}#d+zs_LLo!{2bsD2w=eMX$5(%;)y%hV zkttzhbEE(NhauVU{}MwyUm_-!mX^lG#wPx4##M8+24#Qcg7UT9&D|a8tKHw++}z&Y z-rQWat>E8il}<-QL@XqT{WmDl8G%3uk&Phc2h6JAmzUKwHOSA! zVH#3bSH}yO3k+U9X8xZerK8B@$jSF@+U!nUcV7NCoh>P}?H9z{eCKHR^?yB!R-~k) z%g9Tt6D0nx$G+GF0->V#pXv^fu&}V(2c$wG+c!Gcob~@z?Sc2d6ouS2UbAl)a8}6> zkv@G0`$F(8A(enL#(|kJu4E|#N5q=t>f*dTdfY18pQiQ8`*#Th|m3)=Ka~y@v2JOPvkBPW6obe!H-_dTxbXeb}>Uq~4EoIaoO5o@JMm;PlNuDqzW> zpqwtTBVL(4Q2G{&b^l5nP>4=!jWS4#(iy^%6-Uy@a~~4bQrdW%1Uxs6dlvcV8wlUx z0NA7JH~C%zD&zOZqaSeJ(|Xz9jlg#fWMGQ1n$+wL!5jf$Q@Obfa}w+NrdjNtGk@L; zmM&2I<$|Y%1Bf0oS4)egJ=TlidU=}Us!P|^^L0i~Crv&G0N_@CA3u2xO}L|2=4KW0*d;D^X2fPgbdHpt!bqvA5HD(FEHw+o;`tPKyTVR8RiUdH;(Y=A+Ye zrf&1*?^3M;t2SOV?-} zl~N3}eSSFjnTMUlrc#)}ca4Sz(ci&R5Qhc?ir;VBPEaKxW??oUAd5*P;WgjoZ`GlE7H;2LKh(`p7&fJ; zuQ^8_7P9t6-c*VGb1jD`li*W!|9rrjul{{yc&`6cdwpyTIL6f4)b@&jPRt~&1R4K| zCFt0QiNWnCtUc`vK9@Ki@k#bs2U%u+pyj9G*Y8%}PVaqM+;W`_ZJ@IfZJla7wA`-`QayYb4Wt}P{BKZjs;Ph;t|d}bvZLunRKMt-s} z3Y6ca>l~k>I?LsQ0XS5$i;1<<>_!teGq?@8;qCRCHDHzXo9<}bhPdfZg$=|U_GBCZ zhFS;TL?PGKr`qauGsJq>lsfK4(A*7fgZCNHe9e-!Kly_#iT(X)a;In-w){I^{d@Zx z+kBXTG-nKFNbN~(OueZ4F!<)IE0WRB#59AU&JuZt%X=+GStb_P=2E0MJBUlNo6Br7UIT_< zL|~LPWN=gt z1LIzB2&5*R)PLx6n50O?%^=WE(ot5P)70tfkH&QvL_w+d*A=H1Y6SsJ2-Y!7qnG*3 zs2#u)Sp=Cult982&15ZYa83b#L~izLLgq4T!j6imh9+0|Bb~IIV$(`^9~iCNbjOx= z(}Fhcwc>Ijy>XDHtc|(Lu__Zf7yf-$pv~*cdrPs(XD`f_BoCXE4X}wJ#VKw1YP}P{G9VQeQcm5KY zcmJ5xfwR`yyYJoT**ZF|sekUUIN$Zq>f+B1p214hj$ac*tocj!(YL{p<0|69<=nFF zRbro^{Km$eQ9>5$*^*yV;Q?#!RMl;{sX{~0Bhe!>_a7GfzlTcVbA+K9@JaIANgD^0 zsqGU;AVr!(+6fCFUQuaD?W+xyX_5E%RTR2BCJ$S?pV1=3x*@+U zJYErl+0a6>-L8SNpMyX+Nns3ZY@RvhT=#i&|9AF9da-{QWABT~WJJAo?Fjdf|28JaXv{oR6B%SmkoiH#!N$?j_H`_CL zPn}QTgfW0|0rpoqJ7bSu{4Qog=&fob6!(6cm?i8>d_50MK$BQ}1Fxx#jG>{Wv^T4) zr?jdJ`V8hzAuUIlRQ4vWYa6Y3V~*|R*l-5qin$GO@7FOpHfCtCn;T;A$!N0otqfK1 z)<2=3DE?uV(i(Wboe;mN!P#EWxmiDsOVbjnOU6wki_XLn-Ps8x1Zo*IGgFDSQKLns zA&r=LJrGY{)yUDsR@%~#lBtxn_Jz|)3BOyFZPY*Ym z=)Y@TL~Y&BeY!Y+`;&WGKfuP!sMy$&`NgV*5C-P5C&|AKk?ed6aDiMeK1}a#9dU1Z ziHc^RbU*Q!BCEq!p(99iAMU=jev#pMvx4vC*^Do~#0iP0uDnedKbMW4uD#*w>bRCv zv=I4&TS+_7P_(VSQh4!RX6M2VVoRHmaxYk9bXLvbM_$qPaDcwdu$I7zZH$e;Cod&3BACE!W}yn|p&hF}0b+hHD_Xhqu!nOqlah*dJg1!h zVHtk$x2)(`xN4jn(`h5MM*iaaaY5dmj4U=TwWg!b&GgG3zR(0@6wl)p%KOsGb6VJE ziR`_R!P#M#9yt#$?!^r!_DTE#E@#_)`mx*847?PNJ~_{WLP(yllbpZspJcE)V!MhF zhm^lsbBot#TXIwt;b3Gd#-z0RBQa8?>#<3QddGOBpl027AdowciA4{O&&B(uq?&r} zfx*_y7rF#c-Yx;tsdea2lzPHLi}gUAiWqe-Im?QdA5jTU`$i)XwGYArKerH37@`Qs z>y9Oq?iuUU_vIIlF2$Oxo12yx5KeX>PED=KP9?HAAb!`EztgWjXYt8TLebyxJ z?^h;`8lbh*yAhf99mWqWfiA=f)EmToMG2zEUr1VGFWh{v4xZwZ-09m6RWPVt8^F9* zoSt}_eYEuU)`XMHMayiqWV6VnpWwAOZd-hncg<&2Au6dKCN6xKk; z33oM?`-J;&Pu~4_5-eY|ac*s3Foo)?{Ls4$T?KB}os(B7!bUt2nh?L(hW+_2EcH0T zGS{(7=<%GF&#C8GubL>D910s(LCn!(LQORIzbO8=T|V>AaNW8-yn&u1fz~mSZ+{p*?3l}Y^?qP1MAH}^ zpaECY1GO$Aj*i}CsOBbnIMxj;-VzCf)&7*+%=%Y|J*W3}RONdUc`}`!@Qcea2^Wm& z$2P_B-0M`|@-aV3f99V^}q)qtId#n#IRqg-}0KbDnh9v_?F zNR`>_KP59G1pCA$Rc6+RE-ImJAHy8o(!z&s#|tck>WpP|y0FtD(b(k+jFB9fA1vJl zr1huX9dPDw=AD0LBrmtYl5DWe0mTJG3>=4iS~JGuw5kZUUxgj4p-7i?oOh)FT*)n7 zzxK!0uWUu=3J>XUaaJ^zm7J*dIzNUZ#rpAb93#}HJD)b3_H1Z7B(luFox+h-QaL8~ zew=@4PCc1ycVSUrb+X@bxTj$6&_9KA^WMH_A9C@~>v*&$tY!*#*$FqSqMg>lqw@Q51rdw`&Z`Y&_W8MmjQ13uCS6DZ5JMO#Josa>@%hcSuz#*mO^x9aO@Z@Ixsyw*fE?teu3UTCi({K+RyL;(Q3 zn@fxhjUko%=WdwCc+IyqP^e@eBW?Qv6xb7?%~XXQ|6JtCVi#(T)~a{rdhB9&9-O^5 zCX^+)j(QN==3ShFIIE!q$)A{}m14Rdwut7knFQhND771xo2M<2)Ol<_H$%R7@ta|z zp$>e4kpI+30luZpZej{&r)V~`qRsjxh#I_Wrqh(!`aQ_1e5C?LiWK%d>35Kc)m;D+ zg|#i8h9c-;>UH#2;JWNITjL!fke5v@DVgjQy!?*(tfo9!yy^l18is?t9)I7Kc&yNX zRm;&d%K%D0-GVyVGzlR%P zh?We*jpP2SW~bK~LG+qrT)xTWuCBE>4m9GRApzj5&rd=U_&&K9YA@`}uj6E#RX_^c-5!|hwZE!MK6 z#vFm6-f(WJ3+bWB%Y|j3n?Ip5!9hjnB0+rkj)$iH=Yq4#%0dq?`Do^QJhv_vW<+XU~*2!tu^eLY2uOTRWA3O;Rfae?cjTV*1su=^d zJB^Nd$597FkcO(Vg9u}D{t$~!Ju)!`=DeyIXfNchaSQSSH%hbCuIX26IBNd=+wcpF zW3qgAS8a^N6_4ZGvbq)HDi;@*i)TKUxLvvi1{vQ^5}vB^va6b!dU!I=zCP+C*>QKb zTn;2wounDQY!-z)`lM^Jr0iHUd5UE8_PV|WXfZCAAO6f0Y8_q99T@Zya-TlX+7YcS zNe>o5zD1O14V&r-^%W1>I z9HmpP;cSD@hV&p*)SW9VC7rlg3VJg@c_ z;^6oLLSlHeAugyuRIao!5Lm=p3pfiZkv{@$s+8Yujui!fkGwOlr659tWJ7e(QW+FL zB2S%R=QCVvczEMMt1@Cs4d^3%x&+ddc1gx2f9yF!%lh`M>2XkU#hU1+(L$5tk?-sL z;gl(_Bae==8LrZi0@nerf+~iMDGa+BH)O8fy!vDaHgdpORr;Nc-lzLS?`-6*h;@Z# zpd)+XiJd-1!D(41NGo6ahi~34wg;9>$`OJcWIR@1E+$`8xDrMh8^($ z*Q}8&ba~}%yFi>5X!~r!de$Wtd#~dcYgjE2xW}HDON=H8W#@<0@9W#(i?WjaLHK}? zm5~vkPk<1!CI6VRCgNi=xh@w$zQ{zVb+e;I(^}CbDKNzEns0x z%lnLzY{W+Z@^N-<;uCVi^wKyXG$0QM5@-?(3d(z6mL`(X+ZnOU5WZLAeDQFoG-nNr z9`x{x=XK#WCwW-le7Zf$e(9`1GSdz{4Cbl99UHp9w>$5e`209qEburXS=?rCoS$68 zh};8cZ_jyIu-BaETw1P{(10tJdwXZ*uAMtZPgp0>u zH84?7kicU+bNG!*|N6uN{-dqzvlNxMS$%q>`8T#8& zoyi2ry7_VXWK4}SfdvEJ&@R&^M^5?S_`bP#5}IGUE#=_Wd71CuRetavBS;JH7H`q{ z3U%}OtWpoae2(FQb6OF=_2sR~t(=ysxFGFt!u(e2G%^y>O|K1)$I!WXrxq2e@Er^h zj$!gjL-Os1>Bu|Ywc7ggz`+Z=j9Tq(I3*Z3BPU zmDc*N!_j0kDU1Xhnh5*z!JgRAm4^WJ2=AiRyNf2ZB&flA5G#+XzVN?+Wi{MGd?+s#1~< zg!{!Yrt5S)uZ$GGetSG*wgBIWiE`Gwkoh6@5X2l{u3sc%V8@q>y^}6qStyf|tm5OF z7^uOb&33k?U=_1x#tD%A9IrqJL{Eb3EdD4j4hkw*cDq0W`1{e{fu!#7JO}t0eoQ;7QNvY7nK5>iCRos1k<=wzYv+Ls|n4EJ#RYy#+ zAMLsk`4AR?ukAHj4p1xWOUm`9FLuIsgFfT;sXf-Qg)hcSOj)~*5P?~oHY_wY6f*mE z8(H88-lx8s0Yz7DrQC&R70CW(4<1*+lRe7tzS9oVYKf!tp^1)sSzBgm7q??L_R1Vw zSG==fz<40I99wL1>^OU|U>^Ti(!~4mx1<&v(@xhy=k9kbpf$i4k+#QK)ZP79nvuBT z*EjVu0i2Gn&GaZJ zo*Ln-6xLSkPivc6P6u^N-nG;oh$WCo{n+T(m^cXO-rli=%@-x7tkjCWy=QycY3&7! z<6xMn=s7jr%3v^bfj~2t+gL!K%3pQ`;V~-V!?jGb8MoL=*Eel1&x3=s4Ma!9H;IX? z+O#TDXxa$ZEj^)Ozwx_5_8#EFw6b*@u0;8QYPs@5g>BPa%+kS+OYN=SzELp*u93>? zhD|YH@0Yu>UjW6&`d0~w9`9LNLPd(biv5EGMlzHW09xAf!38x%9A~|UR61yi*t=+w zWoAPnwW^b%4W=Kzz5?i#i>}DvQRqW_>?_EX+-~-@W(;l~wr@jObi{lmdjCpuso)?g z{0rPRVbDI0P5-GR)HA;vN^kMIiK;qRi8tkS>6SOik<}uDeNArdv@G0)v{mI83v)AO z<&?oIs9{4+PIU($|hb!4ABlF>x|3H^tP3`#(g6z@K}#bM}bEj8}(Wk zhu(@hE_2s;H=XY=Lb;?s?kDM@cllM4PtI30i&@Bc!Y9ac1P9za7@L)hpC6$oYX%q_ z;tdIx2TfY@d1R*b3VNjXdgGbGrvhE{@VJE4L8TdLqA=(I4JRp`O+)bmV9_?rF5u4Frhv0K%nsJ z+2kI`q-2H*7vSY^R?O7GHm}eAE^@iNS811+yGc4W`UaIo9^efDUUKVef&-92$oky}r40Usxls z@JBYPl8eeG;p+QMj4R6?L*7I)mbC^O*O0-X-$|IqNXH~Xb;fqB%wy(X_y__`mNM|@ z(j>QjX?6Z;%eOF2kUTUCPQo>BBCtx*7GnZk%Lv?;Smv{!||v=Ht$~-TJaOM*9f`1x@hZ-v!7z zhEg1hv&gEoxu1TQzisgV|j8 zv9U7*X-v|T%WrqL=VlNd!!u3U#eu!NuI}~5IphW~kL4*?C~qXW=TmcHPqOXuZq{$; zc3FIV?`Nl@Dt`D(V^G0Pzhnlrw~3ENh0A?bE{U|u@Lf{Dv0KLsn^}DGI}oq7KvL_l zT!ZICDx1MW^IT;?Ya0F6Lgmi4FGBNgCWf{dm&y?&Ab8%zvlF_cx|?;M%O{Pey0#~s zKQp!>9~#%?UDjU;g(9~WrPb6q*)EXLZJrjKO}{PuE?SEr4}4c%?sChj<-{una-6%< zf+x+eB)yzU=2sEePhr#!LIoWh8K>1({b^yn9tZ5t4_&ou!AV}=Y&NzA72MvPF~(c$ z?+14JroZnUL+PHjrZz4&#nL^pdSK|)tE1^Fk-yf3UR9;!W3~A3j7DnDsRPl`=c<2; zr#Wh5Kn?z(i#wQPPT(G{snTsDD}%U(9Q><8mD|)7kLQ9TX%G9JWdexoLb=c_ZNb~n zoRs%>V@N%+nQZ`N*w^^%OmXQzMT?;AR zpAK-v!fEoCZ;bBFVmZ1C2H>oOt@lu?!Pk_?K`6=OW%&aB90KfA9^Z_Imei9v|KCV|L1$!5%2sn-qL97#4@VW;QaS(c!I*Q zv&Ha|HmU04!md3>a^QLo=uijw@@D?lqhhNyR#H>&MY;s!7A?O#8ck=qV z5HNdD!G1Lpn)jkEWyHs<_PM-|koawgG1lup`{APQTi#w;zm1b-={u&xJ1Lv*m`4Cq0W=X`&=x)2qGXkBeB$5p~jZ_Bv|FbPiHNEHm zIyn*ONAV|Tw{6OKaOH*T_a`~=0&hP_7UhM=n?GNBSMs{)xt*J3N{?^cEaQ4)>*?gP zoUHmGbLz6bO%m9@tjgP#)kVMS#7(39-xJ?G{?YWCbCK%4#zhNWywr>D-?p)^{`K(> zvkUrj*#5iQC@G2GZ4tg%eS$w$V)>uz_x2wRJjlbU-w}K-`~8dL)#s*}373ZafBJN- z{+^8gwDwL1Ue52ePNZrfAy#rOB`^SM=*?B)X3H5^#-YU9m+aUW;?OuH@fa;_b-oJGdw zo9m>dYxeAw@932HVF5ZYMPlOZ+N!uX;6TWqU!Px_?=#yjbkXGCl?B#6dj3nyPXVrS zGSIpg7x(C8`JepS#bM#rB{O@K-cM7K0*-Y{=x#r3IlH&x->*Q|`_dQx8-0KHd$GE9 zJkZ#~ca&!&&z?QIJr}y%X9w>;``nAH?`Hq5k^#Bi M)78&qol`;+0BY9T&j0`b literal 0 HcmV?d00001 diff --git a/ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_mobile_base-view-mobile-1.png b/ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_mobile_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d2b4534e7a86688d0f3fd11dbbaccb54a92aa2 GIT binary patch literal 27386 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 literal 0 HcmV?d00001 diff --git a/ui/shared/entities/validator/ValidatorEntity.tsx b/ui/shared/entities/validator/ValidatorEntity.tsx new file mode 100644 index 0000000000..abd563a92f --- /dev/null +++ b/ui/shared/entities/validator/ValidatorEntity.tsx @@ -0,0 +1,85 @@ +import type { As } from '@chakra-ui/react'; +import { chakra } from '@chakra-ui/react'; +import React from 'react'; + +import { route } from 'nextjs-routes'; + +import * as EntityBase from 'ui/shared/entities/base/components'; + +import { distributeEntityProps } from '../base/utils'; + +type LinkProps = EntityBase.LinkBaseProps & Pick; + +const Link = chakra((props: LinkProps) => { + const defaultHref = route({ pathname: '/validators/[id]', query: { id: props.id } }); + + return ( + + { props.children } + + ); +}); + +const Icon = (props: EntityBase.IconBaseProps) => { + return ( + + ); +}; + +type ContentProps = Omit & Pick; + +const Content = chakra((props: ContentProps) => { + return ( + + ); +}); + +type CopyProps = Omit & Pick; + +const Copy = (props: CopyProps) => { + return ( + + ); +}; + +const Container = EntityBase.Container; + +export interface EntityProps extends EntityBase.EntityBaseProps { + id: string; +} + +const UserOpEntity = (props: EntityProps) => { + const partsProps = distributeEntityProps(props); + + return ( + + + + + + + + ); +}; + +export default React.memo(chakra(UserOpEntity)); + +export { + Container, + Link, + Icon, + Content, + Copy, +}; diff --git a/ui/validatorsBlackfort/ValidatorsCounters.tsx b/ui/validators/blackfort/ValidatorsCounters.tsx similarity index 100% rename from ui/validatorsBlackfort/ValidatorsCounters.tsx rename to ui/validators/blackfort/ValidatorsCounters.tsx diff --git a/ui/validatorsBlackfort/ValidatorsList.tsx b/ui/validators/blackfort/ValidatorsList.tsx similarity index 100% rename from ui/validatorsBlackfort/ValidatorsList.tsx rename to ui/validators/blackfort/ValidatorsList.tsx diff --git a/ui/validatorsBlackfort/ValidatorsListItem.tsx b/ui/validators/blackfort/ValidatorsListItem.tsx similarity index 100% rename from ui/validatorsBlackfort/ValidatorsListItem.tsx rename to ui/validators/blackfort/ValidatorsListItem.tsx diff --git a/ui/validatorsBlackfort/ValidatorsTable.tsx b/ui/validators/blackfort/ValidatorsTable.tsx similarity index 100% rename from ui/validatorsBlackfort/ValidatorsTable.tsx rename to ui/validators/blackfort/ValidatorsTable.tsx diff --git a/ui/validatorsBlackfort/ValidatorsTableItem.tsx b/ui/validators/blackfort/ValidatorsTableItem.tsx similarity index 100% rename from ui/validatorsBlackfort/ValidatorsTableItem.tsx rename to ui/validators/blackfort/ValidatorsTableItem.tsx diff --git a/ui/validatorsBlackfort/utils.ts b/ui/validators/blackfort/utils.ts similarity index 100% rename from ui/validatorsBlackfort/utils.ts rename to ui/validators/blackfort/utils.ts diff --git a/ui/validatorsStability/ValidatorsCounters.tsx b/ui/validators/stability/ValidatorsCounters.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsCounters.tsx rename to ui/validators/stability/ValidatorsCounters.tsx diff --git a/ui/validatorsStability/ValidatorsFilter.tsx b/ui/validators/stability/ValidatorsFilter.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsFilter.tsx rename to ui/validators/stability/ValidatorsFilter.tsx diff --git a/ui/validatorsStability/ValidatorsList.tsx b/ui/validators/stability/ValidatorsList.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsList.tsx rename to ui/validators/stability/ValidatorsList.tsx diff --git a/ui/validatorsStability/ValidatorsListItem.tsx b/ui/validators/stability/ValidatorsListItem.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsListItem.tsx rename to ui/validators/stability/ValidatorsListItem.tsx diff --git a/ui/validatorsStability/ValidatorsTable.tsx b/ui/validators/stability/ValidatorsTable.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsTable.tsx rename to ui/validators/stability/ValidatorsTable.tsx diff --git a/ui/validatorsStability/ValidatorsTableItem.tsx b/ui/validators/stability/ValidatorsTableItem.tsx similarity index 100% rename from ui/validatorsStability/ValidatorsTableItem.tsx rename to ui/validators/stability/ValidatorsTableItem.tsx diff --git a/ui/validatorsStability/utils.ts b/ui/validators/stability/utils.ts similarity index 100% rename from ui/validatorsStability/utils.ts rename to ui/validators/stability/utils.ts diff --git a/ui/validators/zilliqa/ValidatorDetails.pw.tsx b/ui/validators/zilliqa/ValidatorDetails.pw.tsx new file mode 100644 index 0000000000..5e3c8c68d5 --- /dev/null +++ b/ui/validators/zilliqa/ValidatorDetails.pw.tsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import * as validatorsMock from 'mocks/validators/zilliqa'; +import { test, expect } from 'playwright/lib'; +import * as pwConfig from 'playwright/utils/config'; + +import ValidatorDetails from './ValidatorDetails'; + +test('base view +@mobile', async({ render, page }) => { + const component = await render(); + + await expect(component).toHaveScreenshot({ + mask: [ page.locator(pwConfig.adsBannerSelector) ], + maskColor: pwConfig.maskColor, + }); +}); diff --git a/ui/validators/zilliqa/ValidatorDetails.tsx b/ui/validators/zilliqa/ValidatorDetails.tsx new file mode 100644 index 0000000000..bf65c19e48 --- /dev/null +++ b/ui/validators/zilliqa/ValidatorDetails.tsx @@ -0,0 +1,120 @@ +import { Flex, Grid } from '@chakra-ui/react'; +import BigNumber from 'bignumber.js'; +import React from 'react'; + +import type { ValidatorZilliqa } from 'types/api/validators'; + +import config from 'configs/app'; +import Skeleton from 'ui/shared/chakra/Skeleton'; +import CopyToClipboard from 'ui/shared/CopyToClipboard'; +import * as DetailsInfoItem from 'ui/shared/DetailsInfoItem'; +import DetailsSponsoredItem from 'ui/shared/DetailsSponsoredItem'; +import AddressEntity from 'ui/shared/entities/address/AddressEntity'; +import BlockEntity from 'ui/shared/entities/block/BlockEntity'; +import HashStringShortenDynamic from 'ui/shared/HashStringShortenDynamic'; +import NativeTokenIcon from 'ui/shared/NativeTokenIcon'; + +interface Props { + data: ValidatorZilliqa; + isLoading: boolean; +} + +const ValidatorDetails = ({ data, isLoading }: Props) => { + return ( + + + Index + + + + { data.index } + + + + + Staked + + + + + { BigNumber(data.balance).div(BigNumber(10 ** config.chain.currency.decimals)).toFormat() } { config.chain.currency.symbol } + + + + + Peer ID + + + + + + + + + + + + Control address + + + + + + + Reward address + + + + + + + Signing address + + + + + + + Added at block + + + + + + + Stake updated + + + + + + + + ); +}; + +export default React.memo(ValidatorDetails); diff --git a/ui/validators/zilliqa/ValidatorsList.tsx b/ui/validators/zilliqa/ValidatorsList.tsx new file mode 100644 index 0000000000..bb0c571e1b --- /dev/null +++ b/ui/validators/zilliqa/ValidatorsList.tsx @@ -0,0 +1,22 @@ +import { Box } from '@chakra-ui/react'; +import React from 'react'; + +import type { ValidatorsZilliqaItem } from 'types/api/validators'; + +import ValidatorsListItem from './ValidatorsListItem'; + +const ValidatorsList = ({ data, isLoading }: { data: Array; isLoading: boolean }) => { + return ( + + { data.map((item, index) => ( + + )) } + + ); +}; + +export default React.memo(ValidatorsList); diff --git a/ui/validators/zilliqa/ValidatorsListItem.tsx b/ui/validators/zilliqa/ValidatorsListItem.tsx new file mode 100644 index 0000000000..1e7faa8b24 --- /dev/null +++ b/ui/validators/zilliqa/ValidatorsListItem.tsx @@ -0,0 +1,46 @@ +import BigNumber from 'bignumber.js'; +import React from 'react'; + +import type { ValidatorsZilliqaItem } from 'types/api/validators'; + +import config from 'configs/app'; +import Skeleton from 'ui/shared/chakra/Skeleton'; +import ValidatorEntity from 'ui/shared/entities/validator/ValidatorEntity'; +import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; + +interface Props { + data: ValidatorsZilliqaItem; + isLoading?: boolean; +} + +const ValidatorsListItem = ({ data, isLoading }: Props) => { + + return ( + + + BLS public key + + + + + Index + + + { data.index } + + + + Balance + + + { BigNumber(data.balance).div(BigNumber(10 ** config.chain.currency.decimals)).toFormat() } { config.chain.currency.symbol } + + + + ); +}; + +export default React.memo(ValidatorsListItem); diff --git a/ui/validators/zilliqa/ValidatorsTable.tsx b/ui/validators/zilliqa/ValidatorsTable.tsx new file mode 100644 index 0000000000..450818ab15 --- /dev/null +++ b/ui/validators/zilliqa/ValidatorsTable.tsx @@ -0,0 +1,41 @@ +import { Table, Tbody, Tr, Th } from '@chakra-ui/react'; +import React from 'react'; + +import type { ValidatorsZilliqaItem } from 'types/api/validators'; + +import config from 'configs/app'; +import { ACTION_BAR_HEIGHT_DESKTOP } from 'ui/shared/ActionBar'; +import { default as Thead } from 'ui/shared/TheadSticky'; + +import ValidatorsTableItem from './ValidatorsTableItem'; + +interface Props { + data: Array; + isLoading?: boolean; +} + +const ValidatorsTable = ({ data, isLoading }: Props) => { + return ( + + + + + + + + + + { data.map((item, index) => ( + + )) } + +
BLS public keyIndex + Staked { config.chain.currency.symbol } +
+ ); +}; + +export default React.memo(ValidatorsTable); diff --git a/ui/validators/zilliqa/ValidatorsTableItem.tsx b/ui/validators/zilliqa/ValidatorsTableItem.tsx new file mode 100644 index 0000000000..f6ca189c5a --- /dev/null +++ b/ui/validators/zilliqa/ValidatorsTableItem.tsx @@ -0,0 +1,36 @@ +import { Tr, Td } from '@chakra-ui/react'; +import BigNumber from 'bignumber.js'; +import React from 'react'; + +import type { ValidatorsZilliqaItem } from 'types/api/validators'; + +import config from 'configs/app'; +import Skeleton from 'ui/shared/chakra/Skeleton'; +import ValidatorEntity from 'ui/shared/entities/validator/ValidatorEntity'; + +interface Props { + data: ValidatorsZilliqaItem; + isLoading?: boolean; +} + +const ValidatorsTableItem = ({ data, isLoading }: Props) => { + return ( + + + + + + + { data.index } + + + + + { BigNumber(data.balance).div(BigNumber(10 ** config.chain.currency.decimals)).toFormat() } + + + + ); +}; + +export default React.memo(ValidatorsTableItem); diff --git a/ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_default_base-view-mobile-1.png b/ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_default_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d36d6ed4340be2d31ae462cddba4d24f8c1dd88 GIT binary patch literal 39402 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 literal 0 HcmV?d00001 diff --git a/ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_mobile_base-view-mobile-1.png b/ui/validators/zilliqa/__screenshots__/ValidatorDetails.pw.tsx_mobile_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..484caf95920ef6585d4905dc9a237b83505a8e03 GIT binary patch literal 49691 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 A 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 WzuMn>OzjZxqpbKsq3DUx`~Lx>PHk8K literal 0 HcmV?d00001