nimbus-eth2/beacon_chain/rpc
Etan Kissling 4fcfed2f1f
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 16:25:12 +02:00
..
rest_api.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
rest_beacon_api.nim implement getBlindedBlock REST API (#5829) 2024-01-31 03:18:55 +00:00
rest_builder_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_config_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_constants.nim add EIP-7044 support to keymanager API (#5959) 2024-02-26 16:25:12 +02:00
rest_debug_api.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
rest_event_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_key_management_api.nim add EIP-7044 support to keymanager API (#5959) 2024-02-26 16:25:12 +02:00
rest_light_client_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_nimbus_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_node_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
rest_utils.nim split out eth1chain into its own module (#5768) 2024-01-17 15:26:16 +01:00
rest_validator_api.nim Adopt asyncraises guarantees to most of the REST API handlers. (#5803) 2024-01-20 17:06:28 +01:00
state_ttl_cache.nim Prune `BlockRef` on finalization (#3513) 2022-03-17 17:42:56 +00:00