Skip to content

Commit f325c29

Browse files
committed
Add signing config to aggregator '/' route when Cardano Transactions are enabled
1 parent 29edbb7 commit f325c29

File tree

1 file changed

+37
-15
lines changed

1 file changed

+37
-15
lines changed

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

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,32 @@ mod handlers {
5353
"root::error"
5454
);
5555

56-
let signed_entity_types =
57-
signed_entity_config.list_allowed_signed_entity_types_discriminants();
58-
59-
let cardano_transactions_prover_capabilities = signed_entity_types
56+
let mut capabilities = AggregatorCapabilities {
57+
signed_entity_types: signed_entity_config
58+
.list_allowed_signed_entity_types_discriminants(),
59+
cardano_transactions_prover: None,
60+
cardano_transactions_signing_config: None,
61+
};
62+
63+
if capabilities
64+
.signed_entity_types
6065
.contains(&SignedEntityTypeDiscriminants::CardanoTransactions)
61-
.then_some(CardanoTransactionsProverCapabilities {
62-
max_hashes_allowed_by_request: configuration
63-
.cardano_transactions_prover_max_hashes_allowed_by_request,
64-
});
66+
{
67+
capabilities.cardano_transactions_prover =
68+
Some(CardanoTransactionsProverCapabilities {
69+
max_hashes_allowed_by_request: configuration
70+
.cardano_transactions_prover_max_hashes_allowed_by_request,
71+
});
72+
73+
capabilities.cardano_transactions_signing_config =
74+
Some(configuration.cardano_transactions_signing_config.clone());
75+
}
6576

6677
Ok(json(
6778
&AggregatorFeaturesMessage {
6879
open_api_version: open_api_version.to_string(),
6980
documentation_url: env!("CARGO_PKG_HOMEPAGE").to_string(),
70-
capabilities: AggregatorCapabilities {
71-
signed_entity_types,
72-
cardano_transactions_prover: cardano_transactions_prover_capabilities,
73-
cardano_transactions_signing_config: None,
74-
},
81+
capabilities,
7582
},
7683
StatusCode::OK,
7784
))
@@ -82,7 +89,9 @@ mod handlers {
8289
mod tests {
8390
use crate::http_server::SERVER_BASE_PATH;
8491
use crate::{initialize_dependencies, DependencyContainer};
85-
use mithril_common::entities::SignedEntityTypeDiscriminants;
92+
use mithril_common::entities::{
93+
BlockNumber, CardanoTransactionsSigningConfig, SignedEntityTypeDiscriminants,
94+
};
8695
use mithril_common::messages::{
8796
AggregatorCapabilities, AggregatorFeaturesMessage, CardanoTransactionsProverCapabilities,
8897
};
@@ -170,7 +179,7 @@ mod tests {
170179
}
171180

172181
#[tokio::test]
173-
async fn test_root_route_ok_with_cardano_transactions_prover_capabilities() {
182+
async fn test_root_route_ok_with_cardano_transactions_enabled() {
174183
let method = Method::GET.as_str();
175184
let path = "/";
176185
let mut dependency_manager = initialize_dependencies().await;
@@ -181,6 +190,13 @@ mod tests {
181190
dependency_manager
182191
.config
183192
.cardano_transactions_prover_max_hashes_allowed_by_request = 99;
193+
let signing_config = CardanoTransactionsSigningConfig {
194+
security_parameter: BlockNumber(70),
195+
step: BlockNumber(15),
196+
};
197+
dependency_manager
198+
.config
199+
.cardano_transactions_signing_config = signing_config.clone();
184200

185201
let response = request()
186202
.method(method)
@@ -199,6 +215,12 @@ mod tests {
199215
max_hashes_allowed_by_request: 99
200216
})
201217
);
218+
assert_eq!(
219+
response_body
220+
.capabilities
221+
.cardano_transactions_signing_config,
222+
Some(signing_config)
223+
);
202224

203225
APISpec::verify_conformity(
204226
APISpec::get_all_spec_files(),

0 commit comments

Comments
 (0)