Skip to content

Commit 887671a

Browse files
committed
Add cardano network to /signers/tickers response
1 parent be456f8 commit 887671a

File tree

4 files changed

+62
-13
lines changed

4 files changed

+62
-13
lines changed

mithril-aggregator/src/entities/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ pub use open_message::OpenMessage;
99
pub use signer_registration_message::{
1010
SignerRegistrationsListItemMessage, SignerRegistrationsMessage,
1111
};
12-
pub use signer_ticker_message::SignerTickerMessage;
12+
pub use signer_ticker_message::{SignerTickerListItemMessage, SignersTickersMessage};

mithril-aggregator/src/entities/signer_ticker_message.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
33

44
/// Message structure of a known signer
55
#[derive(Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
6-
pub struct SignerTickerMessage {
6+
pub struct SignerTickerListItemMessage {
77
/// The signer party id
88
pub party_id: PartyId,
99

@@ -14,3 +14,13 @@ pub struct SignerTickerMessage {
1414
/// True if the signer have registered at least once
1515
pub has_registered: bool,
1616
}
17+
18+
/// Message structure of signers known by the aggregator
19+
#[derive(Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
20+
pub struct SignersTickersMessage {
21+
/// Cardano network of the aggregator
22+
pub network: String,
23+
24+
/// Known signers
25+
pub signers: Vec<SignerTickerListItemMessage>,
26+
}

mithril-aggregator/src/http_server/routes/signer_routes.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ fn signers_tickers(
3939
) -> impl Filter<Extract = (impl warp::Reply,), Error = warp::Rejection> + Clone {
4040
warp::path!("signers" / "tickers")
4141
.and(warp::get())
42+
.and(middlewares::with_config(dependency_manager.clone()))
4243
.and(middlewares::with_signer_getter(dependency_manager))
4344
.and_then(handlers::signers_tickers)
4445
}
@@ -55,9 +56,13 @@ fn registered_signers(
5556

5657
mod handlers {
5758
use crate::database::provider::SignerGetter;
58-
use crate::entities::{SignerRegistrationsMessage, SignerTickerMessage};
59+
use crate::entities::{
60+
SignerRegistrationsMessage, SignerTickerListItemMessage, SignersTickersMessage,
61+
};
5962
use crate::event_store::{EventMessage, TransmitterService};
60-
use crate::{http_server::routes::reply, SignerRegisterer, SignerRegistrationError};
63+
use crate::{
64+
http_server::routes::reply, Configuration, SignerRegisterer, SignerRegistrationError,
65+
};
6166
use crate::{FromRegisterSignerAdapter, VerificationKeyStorer};
6267
use mithril_common::entities::Epoch;
6368
use mithril_common::messages::{RegisterSignerMessage, TryFromMessageAdapter};
@@ -202,21 +207,26 @@ mod handlers {
202207
}
203208

204209
pub async fn signers_tickers(
210+
configuration: Configuration,
205211
signer_getter: Arc<dyn SignerGetter>,
206212
) -> Result<impl warp::Reply, Infallible> {
207213
debug!("⇄ HTTP SERVER: signers/tickers");
214+
let network = configuration.network;
208215

209216
match signer_getter.get_all().await {
210217
Ok(signers) => {
211-
let message: Vec<_> = signers
218+
let signers: Vec<_> = signers
212219
.into_iter()
213-
.map(|s| SignerTickerMessage {
220+
.map(|s| SignerTickerListItemMessage {
214221
party_id: s.signer_id,
215222
pool_ticker: s.pool_ticker,
216223
has_registered: s.last_registered_at.is_some(),
217224
})
218225
.collect();
219-
Ok(reply::json(&message, StatusCode::OK))
226+
Ok(reply::json(
227+
&SignersTickersMessage { network, signers },
228+
StatusCode::OK,
229+
))
220230
}
221231
Err(err) => {
222232
warn!("registered_signers::error"; "error" => ?err);

openapi.yaml

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,7 @@ paths:
308308
content:
309309
application/json:
310310
schema:
311-
type: array
312-
items:
313-
$ref: "#/components/schemas/SignerTickerMessage"
311+
$ref: "#/components/schemas/SignersTickersMessage"
314312
"412":
315313
description: API version mismatch
316314
default:
@@ -661,8 +659,8 @@ components:
661659
$ref: "#/components/schemas/Epoch"
662660
registrations:
663661
type: array
664-
items:
665-
$ref: "#/components/schemas/SignerRegistrationsListItemMessage"
662+
items:
663+
$ref: "#/components/schemas/SignerRegistrationsListItemMessage"
666664
example:
667665
{
668666
"registered_at": 420,
@@ -686,7 +684,38 @@ components:
686684
description: The unique identifier of the signer
687685
type: string
688686

689-
SignerTickerMessage:
687+
SignersTickersMessage:
688+
description: represents the list of signers known by the aggregator
689+
type: object
690+
required:
691+
- network
692+
- signers
693+
properties:
694+
network:
695+
description: Cardano network of the aggregator
696+
type: string
697+
format: bytes
698+
signers:
699+
description: Known signers
700+
items:
701+
$ref: "#/components/schemas/SignerTickerListItemMessage"
702+
example:
703+
{
704+
"network": "mainnet",
705+
"signers": [
706+
{
707+
"party_id": "pool1234567890",
708+
"pool_ticker": "[Pool_Name]",
709+
"has_registered": true
710+
},
711+
{
712+
"party_id": "pool0987654321",
713+
"has_registered": false
714+
}
715+
]
716+
}
717+
718+
SignerTickerListItemMessage:
690719
description: represents a known signer with its pool ticker
691720
type: object
692721
additionalProperties: true

0 commit comments

Comments
 (0)