mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-24 20:37:17 +00:00
d55757500f
* Initial spec rewrite * Finish adding merkle tree implementation * Last bits * Move reverse function * Add comments * Add deposit tree snapshot * Add deposit tree * Add comments + cleanup * Fixes * Add missing errors * Small fixes * Add unhandled error * Cleanup * Fix unsafe file.Close * Add missing comments * Small fixes * Address some of deepSource' compaints * Add depositCount check * Add finalizedDeposit check * Replace pointer magic with copy() * Add test for slice reversal * add back bytes method * Add package level description * Remove zerohash gen and add additional checks * Add additional comments * Small lint fixes * Forgot an error * Small fixes * Move Uint64ToBytesLittleEndian32 + test * Fix uint subtraction issue * Move mixInLength below error handling * Fix * Fix deposit root * integrate 4881 * edits * added in deposit tree fetcher * add file * Add remaining fetcher functions * Add new file for inserter functions * Fixes and additional funcs * Cleanup * Add * Graph * pushed up edits * fix up * Updates * Add EIP4881 toggle flag * Add interfaces * Fix tests * More changes * Fix * Remove generated graph * Fix spacing * Changes * Fixes * Changes * Test Fix * gaz * Fix a couple tests * Fix last tests * define protos * proto methods * pushed * regen * Add proto funcs * builds * pushin up * Fix and cleanup * Fix spectest * General cleanup * add 4881 to e2e * Remove debug statements + remove test skip * Implement first set of missing methods * Replace Zerohashes + cleanup * gazelle * fmt * Put back defensive check * Add error logs * InsertFinalizedDeposits: return an error * Remove logging * Radek' Review * Lint fixes * build * Remove cancel * Update beacon-chain/deterministic-genesis/service.go Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Update beacon-chain/cache/depositsnapshot/deposit_inserter.go Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Cleanup * Fix panic when DepositSnapshot is nil on init * Gofmt * Fix RootEquivalence test * Gofmt * Add missing comments * Nishant' review * Add Insert benchmarks * fix up copy method * Fix deep copy * Fix conflicts * Return error * Fix linter issues * add in migration logic * Cleanup + tests * fix * Fix incorrect index in test * Fix linter * Gofmt * fix it * fixes for off by 1 * gaz * fix cast * fix it * remove ErrZeroIndex * Fix merkle_tree_test * add fallback * add fix for insertion bug * add many fixes * fix empty snapshot * clean up * use feature * remove check * fix failing tests * skip it * fix test * fix test again * fix for the last time * Apply suggestions from code review Co-authored-by: Radosław Kapka <rkapka@wp.pl> * fix it * remove cancel * fix for voting * addressing more comments * fix err * potuz's review * one more test * fix bad test * make 4881 part of dev mode * add workaround for new trie * comment * preston's review * james's review * add comment * james review * preston's review * remove skipped test * gaz --------- Co-authored-by: rauljordan <raul@prysmaticlabs.com> Co-authored-by: nisdas <nishdas93@gmail.com> Co-authored-by: Radosław Kapka <rkapka@wp.pl> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
111 lines
3.0 KiB
Go
111 lines
3.0 KiB
Go
package execution
|
|
|
|
import (
|
|
"github.com/ethereum/go-ethereum/common"
|
|
"github.com/prysmaticlabs/prysm/v4/beacon-chain/cache"
|
|
statefeed "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/feed/state"
|
|
"github.com/prysmaticlabs/prysm/v4/beacon-chain/db"
|
|
"github.com/prysmaticlabs/prysm/v4/beacon-chain/state"
|
|
"github.com/prysmaticlabs/prysm/v4/beacon-chain/state/stategen"
|
|
"github.com/prysmaticlabs/prysm/v4/network"
|
|
"github.com/prysmaticlabs/prysm/v4/network/authorization"
|
|
)
|
|
|
|
type Option func(s *Service) error
|
|
|
|
// WithHttpEndpoint parse http endpoint for the powchain service to use.
|
|
func WithHttpEndpoint(endpointString string) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.currHttpEndpoint = network.HttpEndpoint(endpointString)
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithHttpEndpointAndJWTSecret for authenticating the execution node JSON-RPC endpoint.
|
|
func WithHttpEndpointAndJWTSecret(endpointString string, secret []byte) Option {
|
|
return func(s *Service) error {
|
|
if len(secret) == 0 {
|
|
return nil
|
|
}
|
|
// Overwrite authorization type for all endpoints to be of a bearer type.
|
|
hEndpoint := network.HttpEndpoint(endpointString)
|
|
hEndpoint.Auth.Method = authorization.Bearer
|
|
hEndpoint.Auth.Value = string(secret)
|
|
|
|
s.cfg.currHttpEndpoint = hEndpoint
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithHeaders adds headers to the execution node JSON-RPC requests.
|
|
func WithHeaders(headers []string) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.headers = headers
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithDepositContractAddress for the deposit contract.
|
|
func WithDepositContractAddress(addr common.Address) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.depositContractAddr = addr
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithDatabase for the beacon chain database.
|
|
func WithDatabase(database db.HeadAccessDatabase) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.beaconDB = database
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithDepositCache for caching deposits.
|
|
func WithDepositCache(cache cache.DepositCache) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.depositCache = cache
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithStateNotifier for subscribing to state changes.
|
|
func WithStateNotifier(notifier statefeed.Notifier) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.stateNotifier = notifier
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithStateGen to regenerate beacon states from checkpoints.
|
|
func WithStateGen(gen *stategen.State) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.stateGen = gen
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithEth1HeaderRequestLimit to set the upper limit of eth1 header requests.
|
|
func WithEth1HeaderRequestLimit(limit uint64) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.eth1HeaderReqLimit = limit
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithBeaconNodeStatsUpdater to set the beacon node stats updater.
|
|
func WithBeaconNodeStatsUpdater(updater BeaconNodeStatsUpdater) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.beaconNodeStatsUpdater = updater
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithFinalizedStateAtStartup to set the beacon node's finalized state at startup.
|
|
func WithFinalizedStateAtStartup(st state.BeaconState) Option {
|
|
return func(s *Service) error {
|
|
s.cfg.finalizedStateAtStartup = st
|
|
return nil
|
|
}
|
|
}
|