Make lcli testnet genesis use EL withdrawal creds #1

Merged
roysc merged 1 commits from testnet-genesis-eth1-withdrawal-creds into stable 2024-08-05 13:36:01 +00:00
Showing only changes of commit 4bdfdc3b9c - Show all commits

View File

@ -258,16 +258,19 @@ fn initialize_state_with_validators<T: EthSpec>(
state.fill_randao_mixes_with(eth1_block_hash);
for keypair in keypairs.iter() {
let withdrawal_credentials = |pubkey: &PublicKey| {
let mut credentials = hash(&pubkey.as_ssz_bytes());
credentials[0] = spec.bls_withdrawal_prefix_byte;
let eth1_withdrawal_credentials = |pubkey: &PublicKey| -> Hash256 {
let fake_execution_address = &hash(&pubkey.as_ssz_bytes())[0..20];
let mut credentials = [0u8; 32];
credentials[0] = spec.eth1_address_withdrawal_prefix_byte;
credentials[12..].copy_from_slice(fake_execution_address);
Hash256::from_slice(&credentials)
};
let amount = spec.max_effective_balance;
// Create a new validator.
let validator = Validator {
pubkey: keypair.0.pk.clone().into(),
withdrawal_credentials: withdrawal_credentials(&keypair.1.pk),
withdrawal_credentials: eth1_withdrawal_credentials(&keypair.1.pk),
activation_eligibility_epoch: spec.far_future_epoch,
activation_epoch: spec.far_future_epoch,
exit_epoch: spec.far_future_epoch,