mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-14 18:32:42 +00:00
Fix SigVerifiedOp SSZ implementation (#6035)
* Fix SigVerifiedOp SSZ implementation
This commit is contained in:
@@ -3,6 +3,7 @@ use crate::indexed_attestation::{
|
||||
};
|
||||
use crate::{test_utils::TestRandom, EthSpec};
|
||||
use derivative::Derivative;
|
||||
use rand::{Rng, RngCore};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ssz_derive::{Decode, Encode};
|
||||
use superstruct::superstruct;
|
||||
@@ -160,6 +161,16 @@ impl<E: EthSpec> AttesterSlashing<E> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<E: EthSpec> TestRandom for AttesterSlashing<E> {
|
||||
fn random_for_test(rng: &mut impl RngCore) -> Self {
|
||||
if rng.gen_bool(0.5) {
|
||||
AttesterSlashing::Base(AttesterSlashingBase::random_for_test(rng))
|
||||
} else {
|
||||
AttesterSlashing::Electra(AttesterSlashingElectra::random_for_test(rng))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
@@ -2,6 +2,7 @@ use crate::*;
|
||||
use rand::RngCore;
|
||||
use rand::SeedableRng;
|
||||
use rand_xorshift::XorShiftRng;
|
||||
use smallvec::{smallvec, SmallVec};
|
||||
use std::marker::PhantomData;
|
||||
use std::sync::Arc;
|
||||
|
||||
@@ -118,6 +119,21 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<U, const N: usize> TestRandom for SmallVec<[U; N]>
|
||||
where
|
||||
U: TestRandom,
|
||||
{
|
||||
fn random_for_test(rng: &mut impl RngCore) -> Self {
|
||||
let mut output = smallvec![];
|
||||
|
||||
for _ in 0..(usize::random_for_test(rng) % 4) {
|
||||
output.push(<U>::random_for_test(rng));
|
||||
}
|
||||
|
||||
output
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! impl_test_random_for_u8_array {
|
||||
($len: expr) => {
|
||||
impl TestRandom for [u8; $len] {
|
||||
|
||||
Reference in New Issue
Block a user