Remove historical state access from Serai

Resolves https://github.com/serai-dex/serai/issues/694.
This commit is contained in:
Luke Parker
2025-11-18 20:50:32 -05:00
parent 6100c3ca90
commit 6b19780c7b
22 changed files with 531 additions and 622 deletions

View File

@@ -27,7 +27,7 @@ pub(crate) trait EmbeddedEllipticCurveKeys {
fn set_embedded_elliptic_curve_keys(
validator: Public,
keys: SignedEmbeddedEllipticCurveKeys,
) -> Result<(), ()>;
) -> Result<EmbeddedEllipticCurveKeysStruct, ()>;
/// Get a validator's embedded elliptic curve keys, for an external network.
fn embedded_elliptic_curve_keys(
@@ -45,10 +45,10 @@ impl<S: EmbeddedEllipticCurveKeysStorage> EmbeddedEllipticCurveKeys for S {
fn set_embedded_elliptic_curve_keys(
validator: Public,
keys: SignedEmbeddedEllipticCurveKeys,
) -> Result<(), ()> {
) -> Result<EmbeddedEllipticCurveKeysStruct, ()> {
let keys = keys.verify(validator.into()).ok_or(())?;
S::EmbeddedEllipticCurveKeys::set(keys.network(), validator, Some(keys));
Ok(())
S::EmbeddedEllipticCurveKeys::insert(keys.network(), validator, keys);
Ok(keys)
}
/// Get a validator's embedded elliptic curve keys, for an external network.

View File

@@ -193,11 +193,8 @@ mod pallet {
for (participant, keys) in &self.participants {
for (network, keys) in ExternalNetworkId::all().zip(keys.iter().cloned()) {
assert_eq!(network, keys.network());
<Abstractions<T> as crate::EmbeddedEllipticCurveKeys>::set_embedded_elliptic_curve_keys(
*participant,
keys,
)
.expect("genesis embedded elliptic curve keys weren't valid");
Pallet::<T>::set_embedded_elliptic_curve_keys_internal(*participant, keys)
.expect("genesis embedded elliptic curve keys weren't valid");
}
}
for network in NetworkId::all() {
@@ -331,6 +328,23 @@ mod pallet {
)
}
fn set_embedded_elliptic_curve_keys_internal(
validator: Public,
keys: SignedEmbeddedEllipticCurveKeys,
) -> DispatchResult {
let network = keys.network();
let keys =
<Abstractions<T> as crate::EmbeddedEllipticCurveKeys>::set_embedded_elliptic_curve_keys(
validator, keys,
)
.map_err(|()| Error::<T>::InvalidEmbeddedEllipticCurveKeys)?;
Core::<T>::emit_event(Event::SetEmbeddedEllipticCurveKeys {
validator: validator.into(),
keys,
});
Ok(())
}
/* TODO
pub fn distribute_block_rewards(
network: NetworkId,
@@ -492,16 +506,7 @@ mod pallet {
keys: SignedEmbeddedEllipticCurveKeys,
) -> DispatchResult {
let validator = ensure_signed(origin)?;
let network = keys.network();
<Abstractions<T> as crate::EmbeddedEllipticCurveKeys>::set_embedded_elliptic_curve_keys(
validator, keys,
)
.map_err(|()| Error::<T>::InvalidEmbeddedEllipticCurveKeys)?;
Core::<T>::emit_event(Event::SetEmbeddedEllipticCurveKeys {
validator: validator.into(),
network,
});
Ok(())
Self::set_embedded_elliptic_curve_keys_internal(validator, keys)
}
#[pallet::call_index(3)]