Skip to content

Commit 483ac2f

Browse files
committed
Add PoolTicker component and use it alongside party id
1 parent 2425ed5 commit 483ac2f

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

mithril-explorer/src/app/registrations/page.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import LinkButton from "../../components/LinkButton";
1111
import Stake from "../../components/Stake";
1212
import RawJsonButton from "../../components/RawJsonButton";
1313
import VerifiedBadge from "../../components/VerifiedBadge";
14+
import PoolTicker from "../../components/PoolTicker";
1415

1516
Chart.register(
1617
ArcElement,
@@ -244,6 +245,7 @@ export default function Registrations() {
244245
<tr>
245246
<th>#</th>
246247
<th>Party id</th>
248+
<th>Pool Ticker</th>
247249
<th style={{textAlign: "end"}}>Stake</th>
248250
</tr>
249251
</thead>
@@ -252,6 +254,7 @@ export default function Registrations() {
252254
<tr key={signer.party_id}>
253255
<td>{index}</td>
254256
<td><VerifiedBadge tooltip="Verified Signer"/>{' '}{signer.party_id}</td>
257+
<td><PoolTicker aggregator={aggregator} partyId={signer.party_id}/></td>
255258
<td style={{textAlign: "end"}}><Stake lovelace={signer.stake}/></td>
256259
</tr>
257260
)}

mithril-explorer/src/components/CertificateModal/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import {Badge, Button, Col, Container, ListGroup, Modal, Row, Table} from "react
33
import {useSelector} from "react-redux";
44
import RawJsonButton from "../RawJsonButton";
55
import Stake from "../Stake";
6-
import VerifiedBadge from '../VerifiedBadge';
76
import ProtocolParameters from "../ProtocolParameters";
7+
import PoolTicker from "../PoolTicker";
8+
import VerifiedBadge from '../VerifiedBadge';
89
import {selectedAggregator} from "../../store/settingsSlice";
910

1011
export default function CertificateModal(props) {
1112
const [certificate, setCertificate] = useState({});
1213
const certificateEndpoint = useSelector((state) => `${selectedAggregator(state)}/certificate/${props.hash}`);
14+
const aggregator = useSelector(selectedAggregator);
1315

1416
useEffect(() => {
1517
if (!props.hash) {
@@ -82,6 +84,7 @@ export default function CertificateModal(props) {
8284
<tr>
8385
<th></th>
8486
<th>Party id</th>
87+
<th>Pool ticker</th>
8588
<th style={{textAlign: "end"}}>Stake</th>
8689
</tr>
8790
</thead>
@@ -94,6 +97,7 @@ export default function CertificateModal(props) {
9497
}
9598
</td>
9699
<td>{signer.party_id}</td>
100+
<td><PoolTicker aggregator={aggregator} partyId={signer.party_id} /></td>
97101
<td style={{textAlign: "end"}}><Stake lovelace={signer.stake}/></td>
98102
</tr>
99103
)}

mithril-explorer/src/components/PendingCertificate/index.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {useEffect, useState} from 'react';
22
import {Card, CardGroup, ListGroup} from "react-bootstrap";
33
import {useSelector} from "react-redux";
4+
import PoolTicker from "../PoolTicker";
45
import RawJsonButton from "../RawJsonButton";
56
import SignedEntityType from "../SignedEntityType";
67
import VerifiedBadge from '../VerifiedBadge';
@@ -9,6 +10,7 @@ import {selectedAggregator} from "../../store/settingsSlice";
910
export default function PendingCertificate(props) {
1011
const [pendingCertificate, setPendingCertificate] = useState({});
1112
const pendingCertificateEndpoint = useSelector((state) => `${selectedAggregator(state)}/certificate-pending`);
13+
const aggregator = useSelector(selectedAggregator);
1214
const autoUpdate = useSelector((state) => state.settings.autoUpdate);
1315
const updateInterval = useSelector((state) => state.settings.updateInterval);
1416

@@ -68,9 +70,10 @@ export default function PendingCertificate(props) {
6870
? <div>No Signers registered</div>
6971
: <>
7072
<ListGroup variant="flush">
71-
<ListGroup.Item><b>Party id</b></ListGroup.Item>
73+
<ListGroup.Item><b>Pools</b></ListGroup.Item>
7274
{pendingCertificate.signers.map(signer =>
7375
<ListGroup.Item key={signer.party_id}>
76+
<PoolTicker partyId={signer.party_id} aggregator={aggregator}/><br/>
7477
{signer.party_id}
7578
{signer.verification_key_signature &&
7679
<div className="float-end">
@@ -91,9 +94,10 @@ export default function PendingCertificate(props) {
9194
? <div>No Signers registered for next epoch</div>
9295
: <>
9396
<ListGroup variant="flush">
94-
<ListGroup.Item><b>Party id</b></ListGroup.Item>
97+
<ListGroup.Item><b>Pools</b></ListGroup.Item>
9598
{pendingCertificate.next_signers.map(signer =>
9699
<ListGroup.Item key={signer.party_id}>
100+
<PoolTicker partyId={signer.party_id} aggregator={aggregator}/><br/>
97101
{signer.party_id}
98102
{signer.verification_key_signature &&
99103
<div className="float-end">
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from "react";
2+
import {useSelector} from "react-redux";
3+
import {getPool} from "../store/poolsSlice";
4+
5+
export default function PoolTicker({aggregator, partyId, ...props}) {
6+
const poolTicker = useSelector((state) => getPool(state, aggregator, partyId).pool_ticker);
7+
8+
return <>{poolTicker}</>;
9+
}
10+

mithril-explorer/src/store/poolsSlice.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,12 @@ export const updatePoolsForAggregator = createAsyncThunk('pools/updateForAggrega
2727
});
2828
});
2929

30+
export const getPool = (state, aggregator, poolId) => {
31+
const data = state.pools[aggregator];
32+
return {
33+
network: data?.network,
34+
...data?.pools.find(pool => pool.party_id === poolId)
35+
};
36+
};
37+
3038
export default poolsSlice.reducer;

0 commit comments

Comments
 (0)