From a3153a53ca12d6054a5f9c3ffebcab284e27b442 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Thu, 10 Oct 2024 17:27:19 +1300 Subject: [PATCH] Add deserialize fn --- pysetup/spec_builders/electra.py | 2 +- specs/electra/validator.md | 10 ++++------ tests/core/pyspec/eth2spec/utils/ssz/ssz_impl.py | 2 ++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pysetup/spec_builders/electra.py b/pysetup/spec_builders/electra.py index 48082249b..d08dd4024 100644 --- a/pysetup/spec_builders/electra.py +++ b/pysetup/spec_builders/electra.py @@ -10,7 +10,7 @@ class ElectraSpecBuilder(BaseSpecBuilder): def imports(cls, preset_name: str): return f''' from eth2spec.deneb import {preset_name} as deneb -from eth2spec.utils.ssz.ssz_impl import serialize +from eth2spec.utils.ssz.ssz_impl import serialize, deserialize ''' @classmethod diff --git a/specs/electra/validator.md b/specs/electra/validator.md index 02de8727e..1c715668c 100644 --- a/specs/electra/validator.md +++ b/specs/electra/validator.md @@ -189,13 +189,11 @@ in [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685). The index of each elemen ```python def get_execution_requests(execution_requests: list[bytes]) -> ExecutionRequests: - requests = ExecutionRequests() + deposits = deserialize(DepositRequest, execution_requests[0]) + withdrawals = deserialize(WithdrawalRequest, execution_requests[1]) + consolidations = deserialize(ConsolidationRequest, execution_requests[2]) - requests.deposits = deserialize(execution_requests[0], DepositRequest) - requests.withdrawals = deserialize(execution_requests[1], WithdrawalRequest) - requests.consolidations = deserialize(execution_requests[2], ConsolidationRequest) - - return requests + return ExecutionRequests(deposits, withdrawals, consolidations) ``` ## Attesting diff --git a/tests/core/pyspec/eth2spec/utils/ssz/ssz_impl.py b/tests/core/pyspec/eth2spec/utils/ssz/ssz_impl.py index 65808038e..52164f593 100644 --- a/tests/core/pyspec/eth2spec/utils/ssz/ssz_impl.py +++ b/tests/core/pyspec/eth2spec/utils/ssz/ssz_impl.py @@ -8,6 +8,8 @@ from remerkleable.byte_arrays import Bytes32 def serialize(obj: View) -> bytes: return obj.encode_bytes() +def deserialize(cls: View, data: bytes) -> object: + return cls.decode_bytes(data) def hash_tree_root(obj: View) -> Bytes32: return Bytes32(obj.get_backing().merkle_root())