* Fix base fee endianess and add more test entropys
* Update json_marshal_unmarshal_test.go
* Update setters_test.go
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Refactor to unify state getters block tests
* Add reference tests to Altair and Bellatrix versions ofthe state
* Fix function naming convetion
* Add state-native/v2/references_test.go and state-native/v3/references_test.go
* Gazelle run
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* ran gofmt @ v1.17, these are the resulting changes
* fix some flaky tests that are tripping up this PR
* gofmt
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* Add static analysis for unsafe uint casting
* Fix violations of uintcast
* go mod tidy
* Add exclusion to nogo for darwin build
* Add test for math.Int
* Move some things to const so they are assured not to exceed int64
* Self review
* lint
* fix tests
* fix test
* Add init check for non 64 bit OS
* Move new deps from WORKSPACE to deps.bzl
* fix bazel build for go analysis runs
* Update BUILD.bazel
Remove TODO
* add math.AddInt method
* Add new test casts
* Add case where builtin functions and declared functions are covered
* Fix new findings
* cleanup
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* new stategen.StateReplayer/ReplayerBuilder to give more fine-grained
control of replaying state+block history
* all rpc/api methods updated to use the new interface, return post-state
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* add flag
* working version
* rename flag
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Refactor for DRY state getters_validator_test and getters_test
* Add BUILD.bazel to beacon-chain/state/testing
* Handle type assertion error in beacon-chain/state tests
* Fix with gazelle
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* return interface from testing/util
* remove usages of v1
* return interface from InitializeFromProto
* return interface from InitializeFromProto
* fix test
* fix interface visibility
* more fixes
* use InitializeFromProtoUnsafe in testing/util
* return early error from mock
* v2
* fix tests
* remove unnecessary assertion
* use struct in nil state test
* Revert "Auxiliary commit to revert individual files from 6bb528c2c5df2446ad18450009f63f44318d41a9"
This reverts commit 7d70238a301209f6dbfc8ff1d81b16e33b0bd67d.
* use struct in sync committee test
* v3
* use InitializeFromProtoUnsafe in mock
* use version information
* Revert "Auxiliary commit to revert individual files from 6bb528c2c5df2446ad18450009f63f44318d41a9"
This reverts commit 5d5e6f2884d21caec7530c16ad2a0d0d27c44aa1.
* revert changes to ClearPreGenesisData
* fix build error
* remove error from PreGenesisState
* bzl
* state related cleanup
* remove unused imports
* radek's review
* fix for native state
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* starting
* Reimplement store
* begin on proposer boost
* implement fork choice proposer boost algorithm
* boosting
* gaz
* add mutexes and previous root
* comment on compute proposer boost
* safe
* rem todo
* reset and add tests
* unit test for proposer boost score
* boost works
* Can process block
* Basic test case passing
* ex ante
* test
* propoer test
* More progresses
* More fixes
* rm unused pieces
* Refactor, add phase 0
* locks
* vanilla ex-ante attack
* test similar to spec test
* works works works
* boost test working for num votes > proposer boost weight
* commentary fixes
* rem unused
* comments
* Proposer boost use store time
* Reset proposer root
* debugging
* passing
* Rm unused visibility imports
* Move update head to better place
* Fix deepsrc complains
* Fix more complains
* Raul's feedback
* Use correct byte lengths
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Delete deploy contract tool. Move mock to its own package as testonly with some helper functions
* gofmt contracts/deposit/mock/mock.go
* move stategen mock.go to its on testonly pkg
* move password_reader_mock.go to mock testonly package
* move mock keymanager to its own testonly package
* move attestations mock
* move voluntaryexits mock
* Move slashings mock to mock pkg
* move the slasher mock
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Rename BeaconBlockBodyMerge to BeaconBlockBodyBellatrix
* Rename SignedBeaconBlockMerge to SignedBeaconBlockBellatrix
* Rename CopyBeaconBlockMerge to CopyBeaconBlockMerge
* Rename NewBeaconBlockMerge to NewBeaconBlockBellatrix
* Rename BeaconBlockMerge to BeaconBlockBellatrix
* Rename some comments and strings in pkg proto: Merge -> Bellatrix
* Rename PbMergeBlock to PbBellatrixBlock
* Many renames of merge -> bellatrix in proto package
* Rename some Merge -> Bellatrix in beacon chain package
* More names
* Fix formating in config/params/config.go
* Rename Merge -> Bellatrix in proto/prysm/storage
* Several renames and corrections Merge -> Bellatrix
Co-authored-by: Potuz <potuz@potuz.net>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@potuz.net>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
To increase DRY and enable DRY in tests and other users of the Beacon Chain state package,
an error that was duplicated unnecessarily in each version of the state is moved to the root
Beacon Chain state package.
* Add merge spectests
* fix build
* gazelle
* operation
* all tests should pass
* go fmt
* fix test
* fix dependency
* rm unused constants
* rename to bellatrix
* Gaz
* Rm unused files
* Use Bellatrix for test names
* Add more spec tests
* Gaz and fix test
* sync with dev
* Preston's feedback
* Go fmt
* sync with dev
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.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>
* allow checkpoint or genesis origin; refactoring
some quick readability improvements and simplifying the logic enforcing
the startup ordering of the attestation processing routine
* address PR feedback
* gofmt
* Update beacon-chain/blockchain/receive_attestation.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Apply suggestions from code review
use log.WithError for aggregation friendliness
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: kasey <kasey@users.noreply.github.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.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
* save stuff
* fix in v1
* clean up more
* fix bugs
* add comments and clean up
* add flag + test
* add tests
* fmt
* radek's review
* gaz
* kasey's review
* gaz and new conditional
* improve naming
* add maxprocs
* add prereqs
* add tos and version pkg
* add in all runtime packages
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Move interfaces from github.com/prysmaticlabs/prysm/beacon-chain/state/interface to github.com/prysmaticlabs/prysm/beacon-chain/state
* remove/rename state2
* Introduce changes from Altair hf1 branch
* go pkg viz changes
* Fix test
* goimports for some reason
* Use a more safe method of wrapping validators with regards to nil validators. Add basic tests for this wrapped validator
* Use a more safe method of wrapping validators with regards to nil validators. Add basic tests for this wrapped validator
* Panic fixes
* Fix tests
* remove nil validator test as it is no longer possible
* goimports for some reason
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Remove gogoproto compiler
* Remove more gogoproto
* Improvements
* Fix gengo
* More scripts
* Gazelle, fix deps
* Fix version and errors
* Fix gocast for arrays
* Fix ethapis
* Fixes
* Fix compile errors
* fix go.mod
* //proto/... builds
* Update for protov2
* temp fix compilation to move on
* Change everything to emptypb.empty
* Add grpc to proto/slashings
* Fix almost all build failures
* Oher build problems
* FIX THIS FUCKING THING
* gaz literally every .bazel
* Final touches
* Final final touches
* Fix proto
* Begin moving proto.Marshal to native
* Fix site_data
* Fixes
* Fix duplicate gateway
* Fix gateway target
* Fix ethapis
* Fixes from review
* Update
* Fix
* Fix status test
* Fix fuzz
* Add isprotoslice to fun
* Change DeepEqual to DeepSSZEqual for proto arrays
* Fix build
* Fix gaz
* Update go
* Fixes
* Fixes
* Add case for nil validators after copy
* Fix cast
* Fix test
* Fix imports
* Go mod
* Only use extension where needed
* Fixes
* Split gateway from gengo
* gaz
* go mod
* Add back hydrated state
* fix hydrate
* Fix proto.clone
* Fies
* Revert "Split gateway from gengo"
This reverts commit 7298bb2054d446e427d9af97e13b8fabe8695085.
* Revert "gaz"
This reverts commit ca952565701a88727e22302d6c8d60ac48d97255.
* Merge all gateway into one target
* go mod
* Gaz
* Add generate v1_gateway files
* run pb again
* goimports
* gaz
* Fix comments
* Fix protos
* Fix PR
* Fix protos
* Update grpc-gateway and ethapis
* Update ethapis and gen-go-cast
* Go tidy
* Reorder
* Fix ethapis
* fix spec tests
* Fix script
* Remove unused import
* Fix fuzz
* Fix gomod
* Update version
* Error if the cloned result is nil
* Handle optional slots
* ADd more empty checks to clone
* Undo fuzz changes
* Fix build.bazel
* Gaz
* Redo fuzz changes
* Undo some eth1data changes
* Update go.mod
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Undo clone beacon state
* Remove gogo proto more and unused v1_gateway
* Add manual fix for nil vals
* Fix gaz
* tidy
* Tidy again
* Add detailed error
* Revert "Add detailed error"
This reverts commit 59bc053dcd59569a54c95b07739d5a379665ec5d.
* Undo varint changes
* Fix nil validators in deposit test
* Commit
* Undo
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* fix up indices
* add comment
* fix up again
* add test
Co-authored-by: Victor Farazdagi <simple.square@gmail.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Return status.Errorf instead of plain errors from gRPC functions
* return plain errors from helper functions
* change errors to lowercase in node
* correct test expectations
* extracted StateFetcher
* StateFetcher tests
* extract beacon state creation option and fix state tests
* add comment to StateFetcher
* register the server
* implement grpc function
* test ToProto
* gRPC function test with mock state fetcher
* reduce visibility of packages
* add missing error assertion
* removed unused code
* overwrite config name
* gzl
* Fix service fields
* rename StateFetcher to Provider
* Update beacon-chain/state/stateV0/state_trie.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* adjust code to new v0 interfaces
* interface/struct naming changes
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update rules_go and fix proto conflicts
* gaz
* Update generated code
* First pass inclusion of using baked states
* more emptypb fixes
* remove testnet genesis files, only embed mainnet
* Refactoring for SaveGenesisData, fix tests that use mainnet config but do not support mainnet genesis values
* a bit more refactoring, load genesis from a file. Needs tests still
* Add method to ensure an embedded genesis file also has the appropriate genesis block
* gofmt
* more clear error
* Check genesis fork version to ensure testnet config matches genesis file
* viz
* test for SaveGenesisData
* More genesis db method tests
* Merge
* Minor tweaks, lint, fmt, etc
* Add more test to genesis db methods
* Revert beacon-chain/state/stateV0/BUILD.bazel
* Update beacon-chain/db/iface/errors.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* PR feedback
* Update beacon-chain/db/kv/genesis.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* fmt.Errorf works better for nil errors
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Define Readonly and writeonly
* Comment
* First take at clean up
* Completed interfaces
* Fix build and test
* Reordering interfaces
* Add build.bazel
* Add build.bazel
* Fix visibility
* Use DeepSSZEqual to satisfy go tests
* New line
* New line
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Use ValidtorIndex across Prysm. Build ok
* First take at fixing tests
* Clean up e2e, fuzz... etc
* Fix new lines
* Update beacon-chain/cache/proposer_indices_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update beacon-chain/core/helpers/rewards_penalties.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update beacon-chain/core/helpers/shuffle.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/graffiti/parse_graffiti_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Raul's feedback
* Fix downcast int -> uint64
* Victor's feedback
* Replace validator id with validator index
* Replace validator id with validator index
* Typo
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Use ValidtorIndex across Prysm. Build ok
* First take at fixing tests
* Clean up e2e, fuzz... etc
* Fix new lines
* Update beacon-chain/cache/proposer_indices_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update beacon-chain/core/helpers/rewards_penalties.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update beacon-chain/core/helpers/shuffle.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/graffiti/parse_graffiti_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Raul's feedback
* Fix downcast int -> uint64
* Victor's feedback
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Use types.CommitteeIndex
* Go fmt
* Update validator pkg
* Fix e2e
* Happy fuzz tests
* Sync with upstream ethereumapi
* Go mod tidy
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* update ethereumapis dependency
* span
* initial implementation
* introduce stategen Service interface and MockService
* Include AddStateForSlot function in the mock service
* return states from mock
* add GenesisState to POWChain mock
* populate roots in helper state
* initialize Slot when creating helper state
* tests
* code refactor - extract helper functions
* gzl
* use SetSlot in tests
* handle SetSlot error
* use new testutil's NewBeaconState
* gzl
* go mod tidy
* rename Service to StateManager
* move regex check to helper
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Configurable testutil's BeaconState
* fix shared and fuzz tests
* return state copy
* use mainnet config values for default state
* handle error in block fuzz
* goimports
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* update shadowed var name
* update var names
* remove unnecessary delta
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>