Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix accounts-v2 deposit and related bugs #7219

Merged
merged 20 commits into from
Sep 14, 2020

Conversation

dv8silencer
Copy link
Contributor

What type of PR is this?

Bug fix

What does this PR do? Why is it needed?

Issue #7164 outlines a bug with depositing using cli:
(from @danielschonfeld )

./prysm.sh validator accounts-v2 deposit --wallet-dir /home/myuser/.eth2validators/whale_prysm --eth1-keystore-utc-path /home/myuser/.ethereum/goerli/keystore --eth1-keystore-password-file /home/myuser/mypasswdfile --deposit-all-accounts --http-web3provider http://localhost:8546

Creating this output

[2020-09-02 11:40:04] FATAL accounts-v2: Could not send validator deposit(s): read /home/myuser/prysm: is a directory

In the path to resolving this bug, its cause and other bugs were discovered and are addressed by this PR:

  • validator/accounts/v2/accounts_deposit.go line 76: Based on the already written-comment in code ("If the user has selected to deposit all accounts, we skip this part.") and review of the logic, the wrong flag was being checked in the if; it should be DepositAllAccountsFlag
  • validator/accounts/v2/accounts_deposit.go line 133: This logic is meant to capture cases of hasPrivateKey || hasEth1Keystore but only deals with what should happen if Eth1PrivateKeyFileFlag has been provided (hasPrivateKey). So if a user submits a path to an Eth1Keystore, this part of the logic is hit and soon returns from the function, but that flag and its content is never regarded.
  • validator/accounts/v2/prompt.go line 64: The codepaths that lead to the function call inputWeakPassword() expect it return a path, not read the content into the return variable. While testing this, you can craft the command line arguments so that the program ends up trying to look for a file such as /path/to/a/path/(contentOfFile) because the function returns the content of the file, not the path. I changed it so it returns the path.

Which issues(s) does this PR fix?

Fixes #7164

@dv8silencer dv8silencer requested a review from a team as a code owner September 12, 2020 02:55
@codecov
Copy link

codecov bot commented Sep 14, 2020

Codecov Report

Merging #7219 into master will decrease coverage by 0.00%.
The diff coverage is 29.41%.

@@            Coverage Diff             @@
##           master    #7219      +/-   ##
==========================================
- Coverage   61.68%   61.68%   -0.01%     
==========================================
  Files         412      411       -1     
  Lines       32969    32785     -184     
==========================================
- Hits        20337    20223     -114     
+ Misses       9726     9682      -44     
+ Partials     2906     2880      -26     

@terencechain terencechain merged commit f31f495 into prysmaticlabs:master Sep 14, 2020
@dv8silencer dv8silencer deleted the dv8-i7164 branch September 14, 2020 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Error when trying to auto deposit using accounts-v2 deposit
2 participants