mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 20:29:23 +00:00
Add validator sets RPC functions necessary for the coordinator
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
use sp_core::sr25519::Public;
|
||||
|
||||
use serai_abi::primitives::{crypto::SignedEmbeddedEllipticCurveKeys, network_id::*};
|
||||
use serai_abi::primitives::{
|
||||
crypto::{
|
||||
EmbeddedEllipticCurveKeys as EmbeddedEllipticCurveKeysStruct, SignedEmbeddedEllipticCurveKeys,
|
||||
},
|
||||
network_id::*,
|
||||
};
|
||||
|
||||
use frame_support::storage::StorageDoubleMap;
|
||||
|
||||
@@ -11,8 +16,8 @@ pub(crate) trait EmbeddedEllipticCurveKeysStorage {
|
||||
type EmbeddedEllipticCurveKeys: StorageDoubleMap<
|
||||
ExternalNetworkId,
|
||||
Public,
|
||||
serai_abi::primitives::crypto::EmbeddedEllipticCurveKeys,
|
||||
Query = Option<serai_abi::primitives::crypto::EmbeddedEllipticCurveKeys>,
|
||||
EmbeddedEllipticCurveKeysStruct,
|
||||
Query = Option<EmbeddedEllipticCurveKeysStruct>,
|
||||
>;
|
||||
}
|
||||
|
||||
@@ -23,6 +28,13 @@ pub(crate) trait EmbeddedEllipticCurveKeys {
|
||||
validator: Public,
|
||||
keys: SignedEmbeddedEllipticCurveKeys,
|
||||
) -> Result<(), ()>;
|
||||
|
||||
/// Get a validator's embedded elliptic curve keys, for an external network.
|
||||
fn embedded_elliptic_curve_keys(
|
||||
validator: Public,
|
||||
network: ExternalNetworkId,
|
||||
) -> Option<EmbeddedEllipticCurveKeysStruct>;
|
||||
|
||||
/// Check if a validator still needs to set embedded elliptic curve keys.
|
||||
fn still_needs_to_set_embedded_elliptic_curve_keys(network: NetworkId, validator: Public)
|
||||
-> bool;
|
||||
@@ -39,6 +51,14 @@ impl<S: EmbeddedEllipticCurveKeysStorage> EmbeddedEllipticCurveKeys for S {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Get a validator's embedded elliptic curve keys, for an external network.
|
||||
fn embedded_elliptic_curve_keys(
|
||||
validator: Public,
|
||||
network: ExternalNetworkId,
|
||||
) -> Option<EmbeddedEllipticCurveKeysStruct> {
|
||||
S::EmbeddedEllipticCurveKeys::get(network, validator)
|
||||
}
|
||||
|
||||
/// Check if a validator still needs to set embedded elliptic curve keys.
|
||||
fn still_needs_to_set_embedded_elliptic_curve_keys(
|
||||
network: NetworkId,
|
||||
|
||||
@@ -32,7 +32,10 @@ mod pallet {
|
||||
|
||||
use serai_abi::{
|
||||
primitives::{
|
||||
crypto::{SignedEmbeddedEllipticCurveKeys, ExternalKey, KeyPair, Signature},
|
||||
crypto::{
|
||||
EmbeddedEllipticCurveKeys as EmbeddedEllipticCurveKeysStruct,
|
||||
SignedEmbeddedEllipticCurveKeys, ExternalKey, KeyPair, Signature,
|
||||
},
|
||||
network_id::*,
|
||||
coin::*,
|
||||
balance::*,
|
||||
@@ -315,6 +318,19 @@ mod pallet {
|
||||
Abstractions::<T>::external_key(set)
|
||||
}
|
||||
|
||||
pub fn pending_slash_report(network: ExternalNetworkId) -> bool {
|
||||
Abstractions::<T>::waiting_for_slash_report(network).is_some()
|
||||
}
|
||||
|
||||
pub fn embedded_elliptic_curve_keys(
|
||||
validator: Public,
|
||||
network: ExternalNetworkId,
|
||||
) -> Option<EmbeddedEllipticCurveKeysStruct> {
|
||||
<Abstractions<T> as crate::EmbeddedEllipticCurveKeys>::embedded_elliptic_curve_keys(
|
||||
validator, network,
|
||||
)
|
||||
}
|
||||
|
||||
/* TODO
|
||||
pub fn distribute_block_rewards(
|
||||
network: NetworkId,
|
||||
|
||||
Reference in New Issue
Block a user