Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
frontend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
frontend
Commits
818538bb
Unverified
Commit
818538bb
authored
Jul 18, 2025
by
tom goriunov
Committed by
GitHub
Jul 18, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Validators list: incorrect position of the sticky table header (#2867)
Fixes #2866
parent
8e9f10b4
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
29 additions
and
28 deletions
+29
-28
deploy-review-l2.yml
.github/workflows/deploy-review-l2.yml
+1
-1
deploy-review.yml
.github/workflows/deploy-review.yml
+1
-1
tasks.json
.vscode/tasks.json
+1
-1
.env.zilliqa
configs/envs/.env.zilliqa
+15
-10
validators.ts
stubs/validators.ts
+1
-1
index.ts
tools/preset-sync/index.ts
+1
-1
ValidatorsZilliqa.tsx
ui/pages/ValidatorsZilliqa.tsx
+3
-7
ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png
..._/ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png
+0
-0
ValidatorsTable.tsx
ui/validators/zilliqa/ValidatorsTable.tsx
+5
-5
ValidatorsTableItem.tsx
ui/validators/zilliqa/ValidatorsTableItem.tsx
+1
-1
No files found.
.github/workflows/deploy-review-l2.yml
View file @
818538bb
...
@@ -32,7 +32,7 @@ on:
...
@@ -32,7 +32,7 @@ on:
-
shibarium
-
shibarium
-
stability
-
stability
-
zkevm
-
zkevm
-
zilliqa
_prototestnet
-
zilliqa
-
zksync
-
zksync
-
zora
-
zora
...
...
.github/workflows/deploy-review.yml
View file @
818538bb
...
@@ -37,7 +37,7 @@ on:
...
@@ -37,7 +37,7 @@ on:
-
tac
-
tac
-
tac_turin
-
tac_turin
-
zkevm
-
zkevm
-
zilliqa
_prototestnet
-
zilliqa
-
zksync
-
zksync
-
zora
-
zora
...
...
.vscode/tasks.json
View file @
818538bb
...
@@ -387,7 +387,7 @@
...
@@ -387,7 +387,7 @@
"tac"
,
"tac"
,
"tac_turin"
,
"tac_turin"
,
"zkevm"
,
"zkevm"
,
"zilliqa
_prototestnet
"
,
"zilliqa"
,
"zksync"
,
"zksync"
,
"zora"
,
"zora"
,
],
],
...
...
configs/envs/.env.zilliqa
_prototestnet
→
configs/envs/.env.zilliqa
View file @
818538bb
# Set of ENVs for Zilliqa
EVM proto-test
net network explorer
# Set of ENVs for Zilliqa
2 main
net network explorer
# https://zilliqa
-prototestnet
.blockscout.com
# https://zilliqa.blockscout.com
# This is an auto-generated file. To update all values, run "yarn dev:preset:sync --name=zilliqa
_prototestnet
"
# This is an auto-generated file. To update all values, run "yarn dev:preset:sync --name=zilliqa"
# Local ENVs
# Local ENVs
NEXT_PUBLIC_APP_PROTOCOL=http
NEXT_PUBLIC_APP_PROTOCOL=http
...
@@ -10,31 +10,36 @@ NEXT_PUBLIC_APP_ENV=development
...
@@ -10,31 +10,36 @@ NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
# Instance ENVs
# Instance ENVs
NEXT_PUBLIC_ADDRESS_3RD_PARTY_WIDGETS=['talentprotocol', 'efp', 'webacy', 'deepdao', 'humanpassport', 'bankless', 'blockscoutbadges']
NEXT_PUBLIC_ADDRESS_3RD_PARTY_WIDGETS_CONFIG_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/widgets/config.json
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=zilliqa
-prototestnet
.blockscout.com
NEXT_PUBLIC_API_HOST=zilliqa.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
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_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_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/zilliqa.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x
3d1ded3a7924cd3256a4b1a447c9bfb194f54b9a8ceb441edb8bb01563b516db
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x
5fac3ef1d2f63aad2845214f7b0723406a910d8cd55bdee9e485a9c9391abeee
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
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)']}}}
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)']}}}
NEXT_PUBLIC_IS_TESTNET=true
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=ZIL
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=ZIL
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ZIL
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ZIL
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/zilliqa.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/zilliqa.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/zilliqa-dark.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/zilliqa-dark.svg
NEXT_PUBLIC_NETWORK_ID=3
3103
NEXT_PUBLIC_NETWORK_ID=3
2769
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/zilliqa.svg
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/zilliqa.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/zilliqa-dark.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/zilliqa-dark.svg
NEXT_PUBLIC_NETWORK_NAME=Zilliqa
EVM proto-test
net
NEXT_PUBLIC_NETWORK_NAME=Zilliqa
2 main
net
NEXT_PUBLIC_NETWORK_RPC_URL=https://api.z
q2-prototestnet.z
illiqa.com
NEXT_PUBLIC_NETWORK_RPC_URL=https://api.zilliqa.com
NEXT_PUBLIC_NETWORK_SHORT_NAME=Zilliqa
EVM proto-test
net
NEXT_PUBLIC_NETWORK_SHORT_NAME=Zilliqa
2 main
net
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true
NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/zilliqa.png
NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/zilliqa.png
NEXT_PUBLIC_PUZZLE_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/capyPuzzleBadge
NEXT_PUBLIC_STATS_API_BASE_PATH=/stats-service
NEXT_PUBLIC_STATS_API_HOST=https://zilliqa.blockscout.com
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=zilliqa
NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=zilliqa
NEXT_PUBLIC_VIEWS_ADDRESS_BECH_32_PREFIX=zil
NEXT_PUBLIC_VIEWS_ADDRESS_BECH_32_PREFIX=zil
...
...
stubs/validators.ts
View file @
818538bb
...
@@ -38,7 +38,7 @@ export const VALIDATORS_BLACKFORT_COUNTERS: ValidatorsBlackfortCountersResponse
...
@@ -38,7 +38,7 @@ export const VALIDATORS_BLACKFORT_COUNTERS: ValidatorsBlackfortCountersResponse
export
const
VALIDATORS_ZILLIQA_ITEM
:
ValidatorsZilliqaItem
=
{
export
const
VALIDATORS_ZILLIQA_ITEM
:
ValidatorsZilliqaItem
=
{
index
:
420
,
index
:
420
,
bls_public_key
:
'
0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100
'
,
bls_public_key
:
'
0x95125dca41be848801f9bd75254f1faf1ae3194b1da53e9a5684ed7f67b729542482bc521924603b9703c33bf831a100
'
,
balance
:
'
1
000000000000000000
'
,
balance
:
'
80000000
000000000000000000
'
,
};
};
export
const
VALIDATOR_ZILLIQA
:
ValidatorZilliqa
=
{
export
const
VALIDATOR_ZILLIQA
:
ValidatorZilliqa
=
{
...
...
tools/preset-sync/index.ts
View file @
818538bb
...
@@ -30,7 +30,7 @@ const PRESETS = {
...
@@ -30,7 +30,7 @@ const PRESETS = {
tac_turin
:
'
https://tac-turin.blockscout.com
'
,
tac_turin
:
'
https://tac-turin.blockscout.com
'
,
zkevm
:
'
https://zkevm.blockscout.com
'
,
zkevm
:
'
https://zkevm.blockscout.com
'
,
zksync
:
'
https://zksync.blockscout.com
'
,
zksync
:
'
https://zksync.blockscout.com
'
,
zilliqa
_prototestnet
:
'
https://zilliqa-prototestnet
.blockscout.com
'
,
zilliqa
:
'
https://zilliqa
.blockscout.com
'
,
zora
:
'
https://explorer.zora.energy
'
,
zora
:
'
https://explorer.zora.energy
'
,
// main === staging
// main === staging
main
:
'
https://eth-sepolia.k8s-dev.blockscout.com
'
,
main
:
'
https://eth-sepolia.k8s-dev.blockscout.com
'
,
...
...
ui/pages/ValidatorsZilliqa.tsx
View file @
818538bb
...
@@ -2,10 +2,9 @@ import { Box } from '@chakra-ui/react';
...
@@ -2,10 +2,9 @@ import { Box } from '@chakra-ui/react';
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
config
from
'
configs/app
'
;
import
config
from
'
configs/app
'
;
import
useIsMobile
from
'
lib/hooks/useIsMobile
'
;
import
{
generateListStub
}
from
'
stubs/utils
'
;
import
{
generateListStub
}
from
'
stubs/utils
'
;
import
{
VALIDATORS_ZILLIQA_ITEM
}
from
'
stubs/validators
'
;
import
{
VALIDATORS_ZILLIQA_ITEM
}
from
'
stubs/validators
'
;
import
ActionBar
from
'
ui/shared/ActionBar
'
;
import
ActionBar
,
{
ACTION_BAR_HEIGHT_DESKTOP
}
from
'
ui/shared/ActionBar
'
;
import
DataListDisplay
from
'
ui/shared/DataListDisplay
'
;
import
DataListDisplay
from
'
ui/shared/DataListDisplay
'
;
import
PageTitle
from
'
ui/shared/Page/PageTitle
'
;
import
PageTitle
from
'
ui/shared/Page/PageTitle
'
;
import
Pagination
from
'
ui/shared/pagination/Pagination
'
;
import
Pagination
from
'
ui/shared/pagination/Pagination
'
;
...
@@ -14,9 +13,6 @@ import ValidatorsList from 'ui/validators/zilliqa/ValidatorsList';
...
@@ -14,9 +13,6 @@ import ValidatorsList from 'ui/validators/zilliqa/ValidatorsList';
import
ValidatorsTable
from
'
ui/validators/zilliqa/ValidatorsTable
'
;
import
ValidatorsTable
from
'
ui/validators/zilliqa/ValidatorsTable
'
;
const
ValidatorsZilliqa
=
()
=>
{
const
ValidatorsZilliqa
=
()
=>
{
const
isMobile
=
useIsMobile
();
const
{
isError
,
isPlaceholderData
,
data
,
pagination
}
=
useQueryWithPages
({
const
{
isError
,
isPlaceholderData
,
data
,
pagination
}
=
useQueryWithPages
({
resourceName
:
'
general:validators_zilliqa
'
,
resourceName
:
'
general:validators_zilliqa
'
,
options
:
{
options
:
{
...
@@ -29,7 +25,7 @@ const ValidatorsZilliqa = () => {
...
@@ -29,7 +25,7 @@ const ValidatorsZilliqa = () => {
},
},
});
});
const
actionBar
=
(
!
isMobile
||
pagination
.
isVisible
)
?
(
const
actionBar
=
pagination
.
isVisible
?
(
<
ActionBar
mt=
{
-
6
}
>
<
ActionBar
mt=
{
-
6
}
>
<
Pagination
ml=
"auto"
{
...
pagination
}
/>
<
Pagination
ml=
"auto"
{
...
pagination
}
/>
</
ActionBar
>
</
ActionBar
>
...
@@ -41,7 +37,7 @@ const ValidatorsZilliqa = () => {
...
@@ -41,7 +37,7 @@ const ValidatorsZilliqa = () => {
<
ValidatorsList
data=
{
data
.
items
}
isLoading=
{
isPlaceholderData
}
/>
<
ValidatorsList
data=
{
data
.
items
}
isLoading=
{
isPlaceholderData
}
/>
</
Box
>
</
Box
>
<
Box
hideBelow=
"lg"
>
<
Box
hideBelow=
"lg"
>
<
ValidatorsTable
data=
{
data
.
items
}
isLoading=
{
isPlaceholderData
}
/>
<
ValidatorsTable
data=
{
data
.
items
}
isLoading=
{
isPlaceholderData
}
top=
{
pagination
.
isVisible
?
ACTION_BAR_HEIGHT_DESKTOP
:
0
}
/>
</
Box
>
</
Box
>
</>
</>
)
:
null
;
)
:
null
;
...
...
ui/pages/__screenshots__/ValidatorsZilliqa.pw.tsx_default_base-view-mobile-1.png
View replaced file @
8e9f10b4
View file @
818538bb
17.6 KB
|
W:
|
H:
17.5 KB
|
W:
|
H:
2-up
Swipe
Onion skin
ui/validators/zilliqa/ValidatorsTable.tsx
View file @
818538bb
...
@@ -4,23 +4,23 @@ import type { ValidatorsZilliqaItem } from 'types/api/validators';
...
@@ -4,23 +4,23 @@ import type { ValidatorsZilliqaItem } from 'types/api/validators';
import
config
from
'
configs/app
'
;
import
config
from
'
configs/app
'
;
import
{
TableBody
,
TableColumnHeader
,
TableHeaderSticky
,
TableRoot
,
TableRow
}
from
'
toolkit/chakra/table
'
;
import
{
TableBody
,
TableColumnHeader
,
TableHeaderSticky
,
TableRoot
,
TableRow
}
from
'
toolkit/chakra/table
'
;
import
{
ACTION_BAR_HEIGHT_DESKTOP
}
from
'
ui/shared/ActionBar
'
;
import
ValidatorsTableItem
from
'
./ValidatorsTableItem
'
;
import
ValidatorsTableItem
from
'
./ValidatorsTableItem
'
;
interface
Props
{
interface
Props
{
data
:
Array
<
ValidatorsZilliqaItem
>
;
data
:
Array
<
ValidatorsZilliqaItem
>
;
isLoading
?:
boolean
;
isLoading
?:
boolean
;
top
?:
number
;
}
}
const
ValidatorsTable
=
({
data
,
isLoading
}:
Props
)
=>
{
const
ValidatorsTable
=
({
data
,
isLoading
,
top
}:
Props
)
=>
{
return
(
return
(
<
TableRoot
>
<
TableRoot
>
<
TableHeaderSticky
top=
{
ACTION_BAR_HEIGHT_DESKTOP
}
>
<
TableHeaderSticky
top=
{
top
}
>
<
TableRow
>
<
TableRow
>
<
TableColumnHeader
width=
"50%"
>
BLS public key
</
TableColumnHeader
>
<
TableColumnHeader
width=
"50%"
>
BLS public key
</
TableColumnHeader
>
<
TableColumnHeader
width=
"
2
5%"
>
Index
</
TableColumnHeader
>
<
TableColumnHeader
width=
"
1
5%"
>
Index
</
TableColumnHeader
>
<
TableColumnHeader
width=
"
2
5%"
isNumeric
>
<
TableColumnHeader
width=
"
3
5%"
isNumeric
>
Staked
{
config
.
chain
.
currency
.
symbol
}
Staked
{
config
.
chain
.
currency
.
symbol
}
</
TableColumnHeader
>
</
TableColumnHeader
>
</
TableRow
>
</
TableRow
>
...
...
ui/validators/zilliqa/ValidatorsTableItem.tsx
View file @
818538bb
...
@@ -25,7 +25,7 @@ const ValidatorsTableItem = ({ data, isLoading }: Props) => {
...
@@ -25,7 +25,7 @@ const ValidatorsTableItem = ({ data, isLoading }: Props) => {
</
Skeleton
>
</
Skeleton
>
</
TableCell
>
</
TableCell
>
<
TableCell
verticalAlign=
"middle"
isNumeric
>
<
TableCell
verticalAlign=
"middle"
isNumeric
>
<
Skeleton
loading=
{
isLoading
}
display=
"inline-block"
>
<
Skeleton
loading=
{
isLoading
}
display=
"inline-block"
wordBreak=
"break-all"
>
{
BigNumber
(
data
.
balance
).
div
(
BigNumber
(
10
**
config
.
chain
.
currency
.
decimals
)).
toFormat
()
}
{
BigNumber
(
data
.
balance
).
div
(
BigNumber
(
10
**
config
.
chain
.
currency
.
decimals
)).
toFormat
()
}
</
Skeleton
>
</
Skeleton
>
</
TableCell
>
</
TableCell
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment