github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/rpc/eth/v1/beacon/server.go (about)

     1  // Package beaconv1 defines a gRPC beacon service implementation,
     2  // following the official API standards https://ethereum.github.io/eth2.0-APIs/#/.
     3  // This package includes the beacon and config endpoints.
     4  package beacon
     5  
     6  import (
     7  	"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
     8  	blockfeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/block"
     9  	"github.com/prysmaticlabs/prysm/beacon-chain/db"
    10  	"github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations"
    11  	"github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings"
    12  	"github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits"
    13  	"github.com/prysmaticlabs/prysm/beacon-chain/p2p"
    14  	"github.com/prysmaticlabs/prysm/beacon-chain/rpc/statefetcher"
    15  	"github.com/prysmaticlabs/prysm/beacon-chain/state/stategen"
    16  )
    17  
    18  // Server defines a server implementation of the gRPC Beacon Chain service,
    19  // providing RPC endpoints to access data relevant to the Ethereum Beacon Chain.
    20  type Server struct {
    21  	BeaconDB           db.ReadOnlyDatabase
    22  	ChainInfoFetcher   blockchain.ChainInfoFetcher
    23  	GenesisTimeFetcher blockchain.TimeFetcher
    24  	BlockReceiver      blockchain.BlockReceiver
    25  	BlockNotifier      blockfeed.Notifier
    26  	Broadcaster        p2p.Broadcaster
    27  	AttestationsPool   attestations.Pool
    28  	SlashingsPool      slashings.PoolManager
    29  	VoluntaryExitsPool voluntaryexits.PoolManager
    30  	StateGenService    stategen.StateManager
    31  	StateFetcher       statefetcher.Fetcher
    32  }