diff --git a/specs/capella/beacon-chain.md b/specs/capella/beacon-chain.md index 40592a9bd..5a5fd42e8 100644 --- a/specs/capella/beacon-chain.md +++ b/specs/capella/beacon-chain.md @@ -111,6 +111,7 @@ We define the following Python custom types for type hinting and readability: ```python class Withdrawal(Container): index: WithdrawalIndex + validator_index: ValidatorIndex address: ExecutionAddress amount: Gwei ``` @@ -275,6 +276,7 @@ def withdraw_balance(state: BeaconState, validator_index: ValidatorIndex, amount # Create a corresponding withdrawal receipt withdrawal = Withdrawal( index=state.next_withdrawal_index, + validator_index=validator_index, address=ExecutionAddress(state.validators[validator_index].withdrawal_credentials[12:]), amount=amount, ) diff --git a/tests/core/pyspec/eth2spec/test/capella/block_processing/test_process_withdrawals.py b/tests/core/pyspec/eth2spec/test/capella/block_processing/test_process_withdrawals.py index 26ace24b3..29b1bb7c9 100644 --- a/tests/core/pyspec/eth2spec/test/capella/block_processing/test_process_withdrawals.py +++ b/tests/core/pyspec/eth2spec/test/capella/block_processing/test_process_withdrawals.py @@ -13,6 +13,7 @@ def prepare_withdrawal_queue(spec, state, num_withdrawals): for i in range(num_withdrawals): withdrawal = spec.Withdrawal( index=i + 5, + validator_index=i + 1000, address=b'\x42' * 20, amount=200000 + i, ) @@ -110,6 +111,7 @@ def test_fail_empty_queue_non_empty_withdrawals(spec, state): execution_payload = build_empty_execution_payload(spec, state) withdrawal = spec.Withdrawal( index=0, + validator_index=0, address=b'\x30' * 20, amount=420, )