mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-10 12:11:59 +00:00
* Remove use of ethers_core::RlpStream
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Remove old code
* Simplify keccak call
* Remove unused package
* Merge branch 'unstable' of https://github.com/ethDreamer/lighthouse into remove_use_of_ethers_core
* Merge branch 'unstable' into remove_use_of_ethers_core
* Run clippy
* Merge branch 'remove_use_of_ethers_core' of https://github.com/dospore/lighthouse into remove_use_of_ethers_core
* Check all cargo fmt
* migrate to alloy primitives init
* fix deps
* integrate alloy-primitives
* resolve dep issues
* more changes based on dep changes
* add TODOs
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Revert lock
* Add BeaconBlocksByRange v3
* continue migration
* Revert "Add BeaconBlocksByRange v3"
This reverts commit e3ce7fc5ea.
* impl hash256 extended trait
* revert some uneeded diffs
* merge conflict resolved
* fix subnet id rshift calc
* rename to FixedBytesExtended
* debugging
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix failed test
* fixing more tests
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* introduce a shim to convert between the two u256 types
* move alloy to wrokspace
* align alloy versions
* update
* update web3signer test certs
* refactor
* resolve failing tests
* linting
* fix graffiti string test
* fmt
* fix ef test
* resolve merge conflicts
* remove udep and revert cert
* cargo patch
* cyclic dep
* fix build error
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve conflicts, update deps
* merge unstable
* fmt
* fix deps
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve merge conflicts
* resolve conflicts, make necessary changes
* Remove patch
* fmt
* remove file
* merge conflicts
* sneaking in a smol change
* bump versions
* Merge remote-tracking branch 'origin/unstable' into migrate-to-alloy-primitives
* Updates for peerDAS
* Update ethereum_hashing to prevent dupe
* updated alloy-consensus, removed TODOs
* cargo update
* endianess fix
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fmt
* fix merge
* fix test
* fixed_bytes crate
* minor fixes
* convert u256 to i64
* panic free mixin to_low_u64_le
* from_str_radix
* computbe_subnet api and ensuring we use big-endian
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix test
* Simplify subnet_id test
* Simplify some more tests
* Add tests to fixed_bytes crate
* Merge branch 'unstable' into migrate-to-alloy-primitives
125 lines
2.9 KiB
Rust
125 lines
2.9 KiB
Rust
#![cfg(test)]
|
|
|
|
use super::*;
|
|
use crate::test_utils::*;
|
|
use types::{BeaconBlockHeader, FixedBytesExtended, Slot};
|
|
|
|
pub fn block(slot: u64) -> BeaconBlockHeader {
|
|
BeaconBlockHeader {
|
|
slot: Slot::new(slot),
|
|
proposer_index: 0,
|
|
parent_root: Hash256::random(),
|
|
state_root: Hash256::random(),
|
|
body_root: Hash256::random(),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn valid_empty_history() {
|
|
StreamTest {
|
|
cases: vec![Test::single(block(1))],
|
|
..StreamTest::default()
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn valid_blocks() {
|
|
StreamTest {
|
|
cases: vec![
|
|
Test::single(block(1)),
|
|
Test::single(block(2)),
|
|
Test::single(block(3)),
|
|
Test::single(block(4)),
|
|
],
|
|
..StreamTest::default()
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn valid_same_block() {
|
|
let block = block(100);
|
|
StreamTest {
|
|
cases: vec![
|
|
Test::single(block.clone()),
|
|
Test::single(block).expect_same_data(),
|
|
],
|
|
..StreamTest::default()
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn valid_same_slot_different_validator() {
|
|
StreamTest {
|
|
registered_validators: vec![pubkey(0), pubkey(1)],
|
|
cases: vec![
|
|
Test::with_pubkey(pubkey(0), block(100)),
|
|
Test::with_pubkey(pubkey(1), block(100)),
|
|
],
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn valid_same_block_different_validator() {
|
|
let block = block(100);
|
|
StreamTest {
|
|
registered_validators: vec![pubkey(0), pubkey(1)],
|
|
cases: vec![
|
|
Test::with_pubkey(pubkey(0), block.clone()),
|
|
Test::with_pubkey(pubkey(1), block),
|
|
],
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn invalid_double_block_proposal() {
|
|
let first_block = block(1);
|
|
StreamTest {
|
|
cases: vec![
|
|
Test::single(first_block.clone()),
|
|
Test::single(block(1)).expect_invalid_block(InvalidBlock::DoubleBlockProposal(
|
|
SignedBlock::from_header(&first_block, DEFAULT_DOMAIN),
|
|
)),
|
|
],
|
|
..StreamTest::default()
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn invalid_double_block_proposal_diff_domain() {
|
|
let first_block = block(1);
|
|
let domain1 = Hash256::from_low_u64_be(1);
|
|
let domain2 = Hash256::from_low_u64_be(2);
|
|
StreamTest {
|
|
cases: vec![
|
|
Test::single(first_block.clone()).with_domain(domain1),
|
|
Test::single(first_block.clone())
|
|
.with_domain(domain2)
|
|
.expect_invalid_block(InvalidBlock::DoubleBlockProposal(SignedBlock::from_header(
|
|
&first_block,
|
|
domain1,
|
|
))),
|
|
],
|
|
..StreamTest::default()
|
|
}
|
|
.run()
|
|
}
|
|
|
|
#[test]
|
|
fn invalid_unregistered_validator() {
|
|
StreamTest {
|
|
registered_validators: vec![],
|
|
cases: vec![
|
|
Test::single(block(0)).expect_result(Err(NotSafe::UnregisteredValidator(pubkey(
|
|
DEFAULT_VALIDATOR_INDEX,
|
|
)))),
|
|
],
|
|
}
|
|
.run()
|
|
}
|