NethermindEth / NethermindEth/sedge

`sedge cli` with full-node setup creates older version of withdrawal credentials, when it should create the newest version

Open
#369 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
195
Forks
68
Avg merge
19h 53m
Merged PRs (30d)
1

Description

Describe the bug
After completing the steps given in the interactive sedge cli full-node setup, the deposit_data.json file contains withdrawal credentials that start with 0x00, which are the old pre-Merge style of keys. I expect them to create the 0x01-prefixed withdrawal credentials, which use the newest format.

To Reproduce
Steps to reproduce the behavior:

  1. Run sedge cli, select the full-node option, then select the Nethermind option for your execution client, and lighthouse for your consensus + validator clients, 3 for the number of validators, and then for the rest of the options select whichever you want except you must pass in a valid address when it asks for your withdrawal address. This will generate a sedge-data/keystore/deposit_data.json which contains N withdrawal_credentialss keys in the JSON, where N is the number of validators you chose during the sedge cli setup process.
  2. Go to https://launchpad.ethereum.org/en/overview and hit Continue until you get to the next screen, where you should select Nethermind and Lighthouse for the execution and consensus clients, respectively. Then, select 3 for Number of validators and paste in the withdrawal address you used in step 1 when it asks for your withdrawal address. Select Continue at the end of this page and it will bring you to the page where you upload your deposit_data.json.
  3. When it asks to upload your deposit_data.json, upload it. You should now see a red error message where the Launchpad app tells you you have not set a withdrawal address, even though you did during the sedge cli setup.
    3a. You can also verify the withdrawal address is not set by looking at the deposit_data.json file and see for each of the withdrawal_credentials keys the corresponding values are prefixed with a 0x00, which according to this means it is the old-style of staking keys.

Expected behavior
I expected the latest version of sedge cli to create a deposit_data.json with the latest version of the staking keys.

Screenshots

sedge_cli_error
bad_withdrawal_credentials

Desktop (please complete the following information):

  • OS: Linux
  • Browser Brave
  • Version 1.64.113

Additional context
I ran this with sedge v1.3.2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the full-node flow through sedge cli with Nethermind and Lighthouse, then inspect the generated sedge-data/keystore/deposit_data.json. Compare its withdrawal_credentials values with the Ethereum Launchpad expectations for a supplied withdrawal address. Done means the generated credentials use the 0x01 prefix and are accepted by the Launchpad.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.