diff --git a/eth2/state_processing/src/per_block_processing/verify_deposit.rs b/eth2/state_processing/src/per_block_processing/verify_deposit.rs index 22a62a321f..9b1c4822ee 100644 --- a/eth2/state_processing/src/per_block_processing/verify_deposit.rs +++ b/eth2/state_processing/src/per_block_processing/verify_deposit.rs @@ -88,9 +88,9 @@ pub fn get_existing_validator_index( /// Verify that a deposit is included in the state's eth1 deposit root. /// -/// Spec v0.5.1 +/// Spec v0.6.0 fn verify_deposit_merkle_proof(state: &BeaconState, deposit: &Deposit, spec: &ChainSpec) -> bool { - let leaf = hash(&get_serialized_deposit_data(deposit)); + let leaf = deposit.data.tree_hash_root(); verify_merkle_proof( Hash256::from_slice(&leaf), &deposit.proof, @@ -99,27 +99,3 @@ fn verify_deposit_merkle_proof(state: &BeaconState, deposit: &Deposit, spec: &Ch state.latest_eth1_data.deposit_root, ) } - -/// Helper struct for easily getting the serialized data generated by the deposit contract. -/// -/// Spec v0.5.1 -#[derive(Encode)] -struct SerializedDepositData { - amount: u64, - timestamp: u64, - input: DepositInput, -} - -/// Return the serialized data generated by the deposit contract that is used to generate the -/// merkle proof. -/// -/// Spec v0.5.1 -fn get_serialized_deposit_data(deposit: &Deposit) -> Vec { - let serialized_deposit_data = SerializedDepositData { - amount: deposit.deposit_data.amount, - timestamp: deposit.deposit_data.timestamp, - input: deposit.deposit_data.deposit_input.clone(), - }; - - ssz_encode(&serialized_deposit_data) -}