nimbus-eth2/beacon_chain/spec
Etan Kissling 4e9bc7f570
add EIP-7044 support to keymanager API (#5959)
* add EIP-7044 support to keymanager API

When trying to sign `VoluntaryExit` via keymanager API, the logic is not
yet aware of EIP-7044 (part of Deneb). This patch adds missing EIP-7044
support to the keymanager API as well.

As part of this, the VC needs to become aware about:

- `CAPELLA_FORK_VERSION`: To correctly form the EIP-7044 signing domain.
  The fork schedule does not indicate which of the results, if any,
  corresponds to Capella.
- `CAPELLA_FORK_EPOCH`: To detect whether Capella was scheduled.
  If a BN does not have it in its config while other BNs have it,
  this leads to a log if Capella has not activated yet, or marks the BN
  as incompatible if Capella already activated.
- `DENEB_FORK_EPOCH`: To check whether EIP-7044 logic should be used.

Related PRs:

- #5120 added support for processing EIP-7044 `VoluntaryExit` messages
  as part of the state transition functions (tested by EF spec tests).
- #5953 synced the support from #5120 to gossip validation.
- #5954 added support to the `nimbus_beacon_node deposits exit` command.
- #5956 contains an alternative generic version of `VCForkConfig`.

* address reviewer feedback: letter case, module location, double lookup

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>

* Update beacon_chain/rpc/rest_constants.nim

* move `VCRuntimeConfig` back to `rest_types`

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>

* fix `getForkVersion` helper

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>
2024-02-26 09:48:07 +01:00
..
datatypes Revert "initial Electra support skeleton" (#5955) 2024-02-25 19:42:44 +00:00
eth2_apis add EIP-7044 support to keymanager API (#5959) 2024-02-26 09:48:07 +01:00
mev add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
presets automated consensus spec URL updating to v1.4.0-beta.7 (#5942) 2024-02-21 19:44:48 +00:00
beacon_time.nim some consensus spec v1.4.0-beta.7 spec URL updates (#5945) 2024-02-22 02:42:57 +00:00
beaconstate.nim rm unused ForkedTrustedBeaconBlock; add some Electra overloads to consensus_object_pools; Electra BeaconBlock gossip support (#5965) 2024-02-26 06:49:12 +00:00
block_id.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
crypto.nim remove MIRACL Core support (#5941) 2024-02-22 16:13:31 +00:00
deposit_snapshots.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
digest.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
engine_authentication.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
english_word_list.txt Bump testutils 2020-06-01 16:58:28 +03:00
eth2_merkleization.nim Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
eth2_ssz_serialization.nim Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
forks.nim rm unused ForkedTrustedBeaconBlock; add some Electra overloads to consensus_object_pools; Electra BeaconBlock gossip support (#5965) 2024-02-26 06:49:12 +00:00
forks_light_client.nim Revert "initial Electra support skeleton" (#5955) 2024-02-25 19:42:44 +00:00
helpers.nim add Electra overloads for spec functions; add Electra block processing (#5963) 2024-02-26 02:38:21 +00:00
keystore.nim automated consensus spec URL updating to v1.4.0-beta.7 (#5942) 2024-02-21 19:44:48 +00:00
light_client_sync.nim add missing `std/` prefix to more imports (#5696) 2024-01-06 07:18:28 +01:00
network.nim automated consensus spec URL updating to v1.4.0-beta.7 (#5942) 2024-02-21 19:44:48 +00:00
presets.nim add some push raises, ElectraBeaconStateNoImmutableValidators, and ELECTRA_FORK_VERSION/EPOCH (#5949) 2024-02-24 05:08:22 +00:00
signatures.nim add EIP-7044 support to keymanager API (#5959) 2024-02-26 09:48:07 +01:00
signatures_batch.nim fix EIP-7044 implementation when using batch verification (#5953) 2024-02-25 15:25:26 +01:00
ssz_codec.nim Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
state_transition.nim add Electra overloads for spec functions; add Electra block processing (#5963) 2024-02-26 02:38:21 +00:00
state_transition_block.nim add Electra overloads for spec functions; add Electra block processing (#5963) 2024-02-26 02:38:21 +00:00
state_transition_epoch.nim add Electra overloads for spec functions; add Electra block processing (#5963) 2024-02-26 02:38:21 +00:00
validator.nim some consensus spec v1.4.0-beta.7 spec URL updates (#5945) 2024-02-22 02:42:57 +00:00
weak_subjectivity.nim automated consensus spec URL updating to v1.4.0-beta.7 (#5942) 2024-02-21 19:44:48 +00:00