Skip to content

Commit 0b39e76

Browse files
Merge pull request #66 from QuantumFusion-network/feature/display-finality
Display secure finality data
2 parents 5007d78 + e64cd74 commit 0b39e76

File tree

5 files changed

+44
-2
lines changed

5 files changed

+44
-2
lines changed

packages/apps/public/locales/en/app-explorer.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"extrinsic count": "extrinsic count",
3838
"extrinsics": "extrinsics",
3939
"extrinsics (last {{n}} blocks)": "extrinsics (last {{n}} blocks)",
40+
"fast finality": "fast finality",
4041
"finalized": "finalized",
4142
"forks": "forks",
4243
"hash": "hash",
@@ -66,6 +67,7 @@
6667
"refresh in": "refresh in",
6768
"requests": "requests",
6869
"requests made": "requests made",
70+
"secure finality": "secure finality",
6971
"sent": "sent",
7072
"session": "session",
7173
"state": "state",

packages/apps/public/locales/en/translation.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,6 +1432,7 @@
14321432
"extrinsic hash": "",
14331433
"extrinsics": "",
14341434
"extrinsics (last {{n}} blocks)": "",
1435+
"fast finality": "",
14351436
"file cid": "",
14361437
"file content error": "",
14371438
"file error": "",
@@ -1742,6 +1743,7 @@
17421743
"seats": "",
17431744
"secret": "",
17441745
"secret derivation path": "",
1746+
"secure finality": "",
17451747
"seed (hex or string)": "",
17461748
"select curator": "",
17471749
"selected constant query": "",

packages/page-explorer/src/Summary.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import React from 'react';
55

66
import { CardSummary, SummaryBox } from '@polkadot/react-components';
77
import { useApi } from '@polkadot/react-hooks';
8-
import { BestFinalized, BestNumber, BlockToTime, TimeNow, TotalInactive, TotalIssuance } from '@polkadot/react-query';
8+
import { BestFinalized, BestNumber, BlockToTime, SecureFinalized, TimeNow, TotalInactive, TotalIssuance } from '@polkadot/react-query';
99
import { BN_ONE, formatNumber } from '@polkadot/util';
1010

1111
import SummarySession from './SummarySession.js';
@@ -64,8 +64,13 @@ function Summary ({ eventCount }: Props): React.ReactElement {
6464
>
6565
{formatNumber(eventCount)}
6666
</CardSummary>
67+
{api.query.spinAnchoring && (
68+
<CardSummary label={t('secure finality')}>
69+
<SecureFinalized />
70+
</CardSummary>
71+
)}
6772
{api.query.grandpa && (
68-
<CardSummary label={t('finalized')}>
73+
<CardSummary label={t('fast finality')}>
6974
<BestFinalized />
7075
</CardSummary>
7176
)}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2017-2025 @polkadot/react-query authors & contributors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
// Modified for QF Network
5+
6+
import type { u32 } from '@polkadot/types';
7+
8+
import React from 'react';
9+
10+
import { useApi, useCall } from '@polkadot/react-hooks';
11+
import { formatNumber } from '@polkadot/util';
12+
13+
interface Props {
14+
children?: React.ReactNode;
15+
className?: string;
16+
label?: React.ReactNode;
17+
}
18+
19+
function SecureFinalized ({ children, className = '', label }: Props): React.ReactElement<Props> {
20+
const { api } = useApi();
21+
const secureUpTo = useCall<u32>(api.query.spinAnchoring?.secureUpTo);
22+
23+
return (
24+
<div className={`${className} ${secureUpTo ? '' : '--tmp'}`}>
25+
{label || ''}{
26+
<span className='--digits'>{formatNumber(secureUpTo || 0)}</span>
27+
}{children}
28+
</div>
29+
);
30+
}
31+
32+
export default React.memo(SecureFinalized);

packages/react-query/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export { default as NodeName } from './NodeName.js';
1616
export { default as NodeVersion } from './NodeVersion.js';
1717
export { default as Nonce } from './Nonce.js';
1818
export { default as PoolSize } from './PoolSize.js';
19+
export { default as SecureFinalized } from './SecureFinalized.js';
1920
export { default as SessionToTime } from './SessionToTime.js';
2021
export { default as TimeNow } from './TimeNow.js';
2122
export { default as TotalInactive } from './TotalInactive.js';

0 commit comments

Comments
 (0)