Skip to content

Commit 9ae31ef

Browse files
Merge pull request #1384 from autonomys/main
Sync main w/ production
2 parents 45ca3f1 + d5c5ebe commit 9ae31ef

File tree

19 files changed

+1031
-1544
lines changed

19 files changed

+1031
-1544
lines changed

explorer/package.json

+8-5
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
"bugs": {
1515
"url": "https://github.com/autonomys/astral/issues"
1616
},
17+
"engines": {
18+
"node": ">=20.8.0"
19+
},
1720
"scripts": {
1821
"dev": "next dev",
1922
"build": "next build",
@@ -31,10 +34,10 @@
3134
"dependencies": {
3235
"@apollo/client": "^3.13.2",
3336
"@apollo/experimental-nextjs-app-support": "^0.11.9",
34-
"@autonomys/auto-consensus": "^1.3.4",
35-
"@autonomys/auto-drive": "^1.3.4",
36-
"@autonomys/auto-utils": "^1.3.4",
37-
"@autonomys/auto-xdm": "^1.3.4",
37+
"@autonomys/auto-consensus": "^1.4.0",
38+
"@autonomys/auto-drive": "^1.4.0",
39+
"@autonomys/auto-utils": "^1.4.0",
40+
"@autonomys/auto-xdm": "^1.4.0",
3841
"@floating-ui/react": "^0.27.5",
3942
"@headlessui/react": "^1.7.19",
4043
"@headlessui/tailwindcss": "^0.2.2",
@@ -97,7 +100,7 @@
97100
"devDependencies": {
98101
"@discordjs/rest": "^2.2.0",
99102
"@graphql-codegen/cli": "^5.0.5",
100-
"@graphql-codegen/client-preset": "^4.6.4",
103+
"@graphql-codegen/client-preset": "^4.7.0",
101104
"@graphql-codegen/typescript-react-apollo": "^4.3.2",
102105
"@next/eslint-plugin-next": "^14.1.3",
103106
"@svgr/webpack": "^8.1.0",

explorer/src/components/Consensus/Account/AccountTransfersList.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/* eslint-disable camelcase */
2+
import { utcToLocalRelativeTime } from '@/utils/time'
23
import { useApolloClient } from '@apollo/client'
34
import { SortingState } from '@tanstack/react-table'
45
import { AccountIconWithLink } from 'components/common/AccountIcon'
@@ -28,7 +29,6 @@ import { hasValue, isLoading, useQueryStates } from 'states/query'
2829
import type { Cell } from 'types/table'
2930
import { downloadFullData } from 'utils/downloadFullData'
3031
import { bigNumberToNumber } from 'utils/number'
31-
import { formatExtrinsicId } from 'utils/string'
3232
import { countTablePages } from 'utils/table'
3333

3434
type Props = {
@@ -157,7 +157,7 @@ export const AccountTransfersList: FC<Props> = ({ accountId }) => {
157157
)}
158158
className='hover:text-primaryAccent'
159159
>
160-
<div>{formatExtrinsicId(row.original.extrinsic_id)}</div>
160+
<div>{row.original.extrinsic_id}</div>
161161
</Link>
162162
</div>
163163
),
@@ -242,7 +242,7 @@ export const AccountTransfersList: FC<Props> = ({ accountId }) => {
242242
enableSorting: true,
243243
cell: ({ row }: Cell<Row>) => (
244244
<div key={`${row.original.id}-created_at-${row.index}`}>
245-
{row.original.timestamp(row.original.timestamp)}
245+
{utcToLocalRelativeTime(row.original.timestamp)}
246246
</div>
247247
),
248248
},

explorer/src/components/Staking/OperatorsList.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,15 @@ export const OperatorsList: FC<OperatorsListProps> = ({ domainId }) => {
280280
excludeActions.push(OperatorActionType.Deregister, OperatorActionType.UnlockNominator)
281281
if (row.original.status === OperatorStatus.PENDING_NEXT_EPOCH)
282282
excludeActions.push(OperatorActionType.Nominating)
283-
if (row.original.status === OperatorStatus.ACTIVE)
283+
if (
284+
row.original.status === OperatorStatus.ACTIVE &&
285+
!row.original.rawStatus.includes('deregistered')
286+
)
284287
excludeActions.push(OperatorActionType.UnlockNominator)
285-
if (row.original.status === OperatorStatus.DEREGISTERED)
288+
if (
289+
row.original.status === OperatorStatus.DEREGISTERED ||
290+
row.original.rawStatus.includes('deregistered')
291+
)
286292
excludeActions.push(OperatorActionType.Nominating, OperatorActionType.Deregister)
287293
if (row.original.status === OperatorStatus.SLASHED) return <></>
288294
const rowData = {

explorer/src/components/common/AccountIcon.tsx

+18-7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { shortString } from '@autonomys/auto-utils'
22
import Identicon from '@polkadot/react-identicon'
33
import { IconTheme } from '@polkadot/react-identicon/types'
44
import { INTERNAL_ROUTES } from 'constants/routes'
5+
import { isAddress } from 'ethers'
56
import useMediaQuery from 'hooks/useMediaQuery'
67
import Link from 'next/link'
78
import { FC } from 'react'
@@ -49,15 +50,25 @@ export const AccountIconWithLink = ({
4950
forceShortString?: boolean
5051
}) => {
5152
const isDesktop = useMediaQuery('(min-width: 1440px)')
53+
const isEthereumAddress = isAddress(address)
5254
return (
5355
<div className='flex items-center gap-2'>
54-
<AccountIcon address={address} size={26} theme='beachball' {...props} />
55-
<Link
56-
href={link ?? INTERNAL_ROUTES.accounts.id.page(network, section, address)}
57-
className='hover:text-primaryAccent'
58-
>
59-
<div>{!isDesktop || forceShortString ? shortString(address) : address}</div>
60-
</Link>
56+
{!isEthereumAddress ? (
57+
<>
58+
<AccountIcon address={address} size={26} theme='beachball' {...props} />
59+
<Link
60+
href={link ?? INTERNAL_ROUTES.accounts.id.page(network, section, address)}
61+
className='hover:text-primaryAccent'
62+
>
63+
<div>{!isDesktop || forceShortString ? shortString(address) : address}</div>
64+
</Link>
65+
</>
66+
) : (
67+
<>
68+
<AccountIcon address={address} size={26} theme='ethereum' {...props} />
69+
<div>{address}</div>
70+
</>
71+
)}
6172
</div>
6273
)
6374
}

explorer/src/components/common/OutOfSyncBanner.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useQuery } from '@apollo/client'
2-
import { blockNumber } from '@autonomys/auto-consensus'
2+
// import { blockNumber } from '@autonomys/auto-consensus' // To re-implement as soon as the fix is released
33
import { activate, NetworkId } from '@autonomys/auto-utils'
44
import { EXTERNAL_ROUTES } from 'constants/routes'
55
import { LastBlockDocument, LastBlockQuery } from 'gql/graphql'
@@ -60,7 +60,9 @@ export const useOutOfSyncBanner = () => {
6060
const getChainLastBlock = useCallback(async () => {
6161
try {
6262
const api = await activate({ networkId: network })
63-
setLastBlockNumber(network, await blockNumber(api))
63+
const block = await api.rpc.chain.getBlock()
64+
const lastBlock = parseInt(block.block.header.number.toString())
65+
setLastBlockNumber(network, lastBlock)
6466
await api.disconnect()
6567
} catch (error) {
6668
console.error('Error getting chain last block', error)

explorer/src/components/layout/HeaderChainDropdown.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const HeaderChainDropdown: FC = () => {
3131
return (
3232
<Listbox value={indexerSet} onChange={handleChainChange}>
3333
<div className='relative'>
34-
<Listbox.Button className='relative w-full cursor-default rounded-full bg-white py-2 pl-3 pr-10 text-left font-["Montserrat"] shadow-md focus:outline-none focus-visible:border-indigo-500 focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75 focus-visible:ring-offset-2 focus-visible:ring-offset-orange-300 dark:bg-blueAccent dark:text-white sm:text-sm'>
34+
<Listbox.Button className='relative cursor-default rounded-full bg-white py-2 pl-3 pr-10 text-left font-["Montserrat"] shadow-md focus:outline-none focus-visible:border-indigo-500 focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75 focus-visible:ring-offset-2 focus-visible:ring-offset-orange-300 dark:bg-blueAccent dark:text-white sm:w-full sm:text-sm md:w-48 lg:w-48'>
3535
<div className='flex items-center justify-center'>
3636
<AutonomysSymbol />
3737
<span className='ml-2 hidden w-5 truncate text-sm sm:block md:w-full '>

explorer/src/utils/string.ts

-7
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,3 @@ export const allCapsToNormal = (text: string) =>
1010

1111
export const limitText = (text: string, limit = 20) =>
1212
text.length > limit ? text.slice(0, limit) + '...' : text
13-
14-
export const formatExtrinsicId = (extrinsicId: string): string => {
15-
const parts = extrinsicId.split('-')
16-
const part1 = parts[0].replace(/^0+/, '')
17-
const part2 = parts[2].replace(/^0+/, '')
18-
return part1 + '-' + part2
19-
}

0 commit comments

Comments
 (0)