* initial commit
* fixing some types and renaming file
* initial map function commit and moving to a v1 folder
* adding in remaining mapper functions and comments for types and initial commit on unit tests
* adding readme
* fixing unit tests and errors caught
* fixed a few missed properties and names
* updating error handling to be more descriptive
* Update validator/keymanager/remote-web3signer/client_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/v1/custom_mappers.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/v1/custom_mappers.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* fixing comments
* fixing comments
* adding more error checks
* Update validator/keymanager/remote-web3signer/client.go
* fmt and bazel build
* fixing unit tests
* lint needed
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Rename BeaconStateMerge to BeaconStateBellatrix
* Rename version.Merge to version.Bellatrix
* Rename ComputeFieldRootsWithHasherMerge to ComputeFieldRootsWithHasherBellatrix
* Rename test names to Bellatrix
* Rename comments and strings to Bellatrix
* Fix formatting in a few files
* Revert wrong renaming in test name
* Revert renaming to Bellatrix in mainnet_config.go
* Revert renaming of db key without migration
* Regenerate from proto changes
* Rename new use of already renamed symbols
* gofmt and goimports after regenerating protofiles
* revert weird imports
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
* initial commit for work on web3signer-keymanager
* WIP key manager client
* adding in more valid unit tests
* refactoring some of my code to work better with current implementations
* adding comments, some error situations and fixing unit tests
* updating go.mod
* gaz
* addressing sandbox errors on test
* fixing more sand box debug items
* missed yet another error case on my test
* reverting go.mod
* addressing comments
* missed removal of unit test
* removing some deepsource issues
* adjusting based on review comments
* addressing comments
* adding the missed types
* changing public keys to only pull once
* fixing commented code format
* gaz
* Update validator/keymanager/remote-web3signer/keymanager.go
updating comments
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/keymanager.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/client.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* fixing conflicts
* addressing comments
* fixing deepsource issues
* more deep source issue fix
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* initial commit for web3signer code work in progress
* adding more functions for web3signer
* more improvements to unit tests and web3signer functions
* fixing unit test
* removing path construction
* fixing failing unit test
* adding more happy path unit tests
* fixing unit tests
* temp removing keymanagerfiles being wip
* removing some comments
* Update validator/keymanager/remote-web3signer/client.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/keymanager/remote-web3signer/client.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* making errors lowercase
* addressing review comments
* missed resolving a conflict
* addressing deepsource issues
* bazel test and gazelle
* no lint
* deadcode
* addressing comments
* fixing comments
* small fix for readability
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Value assigned to a variable is never read before being overwritten
* The result of append is not used anywhere
* Suspicious assignment of range-loop vars detected
* Unused method receiver detected
* Revert "Auxiliary commit to revert individual files from 54edcb445484a2e5d79612e19af8e949b8861253"
This reverts commit bbd1e1beabf7b0c5cfc4f514dcc820062ad6c063.
* Method modifies receiver
* Fix test
* Duplicate imports detected
* Incorrectly formatted error string
* Types of function parameters can be combined
* One more "Unused method receiver detected"
* Unused parameter detected in function
* begin
* rem deleted code
* delete keystores all tests
* surface errors to user
* add in changes
* del
* tests
* slice
* begin import process
* add import keystores logic
* unit tests for import
* tests for all import keystores keymanager issues
* change proto
* pbs
* renaming works
* use proper request
* pb
* comment
* gaz
* fix up cli cmd
* test
* add gw
* precond
* tests
* radek comments
* begin
* implement delete and filter export history
* rem deleted code
* delete keystores all tests
* gaz
* test
* double import fix
* test
* surface errors to user
* add in changes
* edit proto
* edit
* del
* tests
* gaz
* slice
* duplicate key found in request
* remove shared network and ip util
* forkutil
* gaz
* build
* gaz
* nogo
* genrule
* gaz
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Add a tool to split a series of mnemonic keys into distinct wallets
* split func
* keysplit tool
* gaz/viz
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update rules_go and fix proto conflicts
* gaz
* Update generated code
* more emptypb fixes
* gaz
Co-authored-by: Victor Farazdagi <simple.square@gmail.com>
* refactor / move waiting for activation updates
* Commentary
* Update test to follow the full code path
* gofmt and goimports
* manual imports fixes
* Apply suggestions from code review
typo fixes
* Remove redundant handleAccountsChanged and chan. Thanks @nisdas
* var sub = to sub :=
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Make 1 occurence of 'foo', 'bar' and 'fizz!'
* Make 1 occurence of 'merkleizing list that is too large, over limit' string
* Limit password occurrences
* Make only 1 occurence of 'strongPass'
* Limit testMnemonic occurrences
* Limit expected epoch error messages
* Rename errors and use constant
* Update bazel dependencies
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update to go 1.16
* Also update go.mod
* rm go.sum then run go mod tidy
* go mod tidy with go 1.16
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* initial implementation
* remove listening for changes from wallet creation
* goimports
* test fix
* more goimports
* listen for changes when initializing wallet through gRPC
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Change LowestSignedProposal to Also Return a Boolean for Slashing Protection (#8020)
* amend to use bools
* ineff assign
* comment
* Update `LowestSignedTargetEpoch` to include exists (#8004)
* Replace highest with lowerest
* Update validator/db/kv/attestation_history_v2.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/db/kv/attestation_history_v2.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Invert equality for saveLowestSourceTargetToDB
* Add eip checks to ensure epochs cant be lower than db ones
* Should be less than equal to
* Check if epoch exists in DB getters
* Revert run time checks
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Export Attesting History for Slashing Interchange Standard (#8027)
* added in att history checks
* logic for export
* export return nil
* test for export atts
* round trip passes first try!
* rem println
* fix up tests
* pass test
* Validate Proposers Are Not Slashable With Regard to Data Within Slasher Interchange JSON (#8031)
* filter slashable blocks and atts in same json stub
* add filter blocks func
* add test for filtering out the bad public keys
* Export Slashing Protection History Via CLI (#8040)
* include cli entrypoint for history exports
* builds properly
* test to confirm we export the data as expected
* abstract helpers properly
* full test suite
* gaz
* better errors
* marshal ident
* Add the additional eip-3076 attestation checks (#7966)
* Replace highest with lowerest
* Update validator/db/kv/attestation_history_v2.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/db/kv/attestation_history_v2.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Invert equality for saveLowestSourceTargetToDB
* Add eip checks to ensure epochs cant be lower than db ones
* Should be less than equal to
* Check if epoch exists in DB getters
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Add EIP-3076 Invariants for Proposer Slashing Protection (#8067)
* add invariant for proposer protection
* write different test cases
* pass tests
* Add EIP-3076 Interchange JSON CLI command to validator (#7880)
* Import JSON CLI
* CLI impotr
* f
* Begin adding new commands in slashing protection
* Move testing helpers to separate packae
* Add command for importing slashing protection JSONs
* fix import cycle
* fix test
* Undo cleaning changes
* Improvements
* Add better prompts
* Fix prompt
* Fix
* Fix
* Fix
* Fix conflict
* Fix
* Fixes
* Fixes
* Fix exported func
* test func
* Fixes
* fix test
* simplify import and standardize with export
* add round trip test
* true integration test works
* fix up comments
* logrus
* better error
* fix build
* build fix
* Update validator/slashing-protection/cli_export.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Update validator/slashing-protection/cli_import.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* fmt
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Filter Slashable Attester Public Keys in Slashing Interchange Import (#8051)
* filter slashable attesters from the same JSON
* builds
* fix up initially broken test
* circular dep
* import fix
* giz
* added in attesting history package
* add test for filter slashable attester keys
* pass tests
* Save Slashable Keys to Disk in the Validator Client (#8082)
* begin db funcs
* add in test and bucket
* gaz
* rem changes to import
* ineff assign
* add godoc
* Properly Handle Duplicate Public Key Entries in Slashing Interchange Imports (#8089)
* Prevent Blacklisted Public Keys from Slashing Protection Imports from Having Duties at Runtime (#8084)
* tests on update duties
* ensure the slashable public keys are filtered out from update duties via test
* begin test
* attempt test
* rename for better context
* pass tests
* deep source
* ensure tests pass
* Check for Signing Root Mismatch When Submitting Proposals and Importing Proposals in Slashing Interchange (#8085)
* flexible signing root
* add test
* add tests
* fix test
* Preston's comments
* res tests
* ensure we consider the case for minimum proposals
* pass test
* tests passing
* rem unused code
* Set Empty Epochs in Between Attestations as FAR_FUTURE_EPOCH in Attesting History (#8113)
* set target data
* all tests passing
* ineff assign
* signing root
* Add Slashing Interchange, EIP-3076, Spec Tests to Prysm (#7858)
* Add interchange test framework
* add checks for attestations
* Import genesis root if necessary
* flexible signing root
* add test
* Sync
* fix up test build
* only 3 failing tests now
* two failing
* attempting to debug problems in conformity tests
* include latest changes
* protect test in validator/client passing
* pass tests
* imports
* spec tests passing with bazel
* gh archive link to spectests using tar.gz suffix
* rev
* rev more comment changes
* fix sha
* godoc
* add back save
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Implement Migration for Unattested Epochs in Attesting History Database (#8121)
* migrate attesting history backbone done
* begin migration logic
* implement migration logic
* migration test
* add test
* migration logic
* bazel
* migration to its own file
* Handle empty blocks and attestations in interchange json and sort interchange json by public key (#8132)
* Handle empty blocks and attestations in interchange json
* add test
* sort json
* easier empty arrays
* pass test
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* builds
* more tests finally build
* Align Slashing Interchange With Optimized Slashing Protection (#8268)
* attestation history should account for multiple targets per source
* attempt at some fixes
* attempt some test fixes
* experimenting with sorting
* only one more failing test
* tests now pass
* slash protect tests passing
* only few tests now failing
* only spec tests failing now
* spec tests passing
* all tests passing
* helper function for verifying double votes
* use helper
* gaz
* deep source
* tests fixed
* expect specific number of times for domain data calls
* final comments
* Batch Save Imported EIP-3076 Attestations (#8304)
* optimize save
* test added
* add test for sad path
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* revert bad find replace
* add comment to db func
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: Shay Zluf <thezluf@gmail.com>
* configurable keystores debounce interval
* use a time duration flag instead
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>