Add validator sets RPC functions necessary for the coordinator

This commit is contained in:
Luke Parker
2025-11-16 17:27:58 -05:00
parent 0ea16f9e01
commit fa0ed4b180
6 changed files with 219 additions and 8 deletions

View File

@@ -10,6 +10,7 @@ use sp_version::RuntimeVersion;
use serai_abi::{
primitives::{
crypto::EmbeddedEllipticCurveKeys,
network_id::{ExternalNetworkId, NetworkId},
balance::{Amount, ExternalBalance},
validator_sets::{Session, ExternalValidatorSet, ValidatorSet},
@@ -582,6 +583,23 @@ sp_api::impl_runtime_apis! {
})
})
}
fn current_validators(network: NetworkId) -> Option<Vec<SeraiAddress>> {
let session = ValidatorSets::current_session(network)?;
Some(
ValidatorSets::selected_validators(ValidatorSet { network, session })
.map(|(key, _key_shares)| SeraiAddress::from(key))
.collect()
)
}
fn pending_slash_report(network: ExternalNetworkId) -> bool {
ValidatorSets::pending_slash_report(network)
}
fn embedded_elliptic_curve_keys(
validator: SeraiAddress,
network: ExternalNetworkId,
) -> Option<EmbeddedEllipticCurveKeys> {
ValidatorSets::embedded_elliptic_curve_keys(validator.into(), network)
}
}
}