Documentation ¶
Overview ¶
Package catalyst implements the temporary eth1/eth2 RPC integration.
Index ¶
- func Register(stack *node.Node, backend *les.LightConfero) error
- type ConsensusAPI
- func (api *ConsensusAPI) ExecutePayloadV1(params beacon.ExecutableDataV1) (beacon.PayloadStatusV1, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedV1(heads beacon.ForkchoiceStateV1, payloadAttributes *beacon.PayloadAttributesV1) (beacon.ForkChoiceResponse, error)
- func (api *ConsensusAPI) GetPayloadV1(payloadID beacon.PayloadID) (*beacon.ExecutableDataV1, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConsensusAPI ¶
type ConsensusAPI struct {
// contains filtered or unexported fields
}
func NewConsensusAPI ¶
func NewConsensusAPI(les *les.LightConfero) *ConsensusAPI
NewConsensusAPI creates a new consensus api for the given backend. The underlying blockchain needs to have a valid terminal total difficulty set.
func (*ConsensusAPI) ExecutePayloadV1 ¶
func (api *ConsensusAPI) ExecutePayloadV1(params beacon.ExecutableDataV1) (beacon.PayloadStatusV1, error)
ExecutePayloadV1 creates an Eth1 block, inserts it in the chain, and returns the status of the chain.
func (*ConsensusAPI) ForkchoiceUpdatedV1 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedV1(heads beacon.ForkchoiceStateV1, payloadAttributes *beacon.PayloadAttributesV1) (beacon.ForkChoiceResponse, error)
ForkchoiceUpdatedV1 has several responsibilities: If the method is called with an empty head block:
we return success, which can be used to check if the catalyst mode is enabled
If the total difficulty was not reached:
we return INVALID
If the finalizedBlockHash is set:
we check if we have the finalizedBlockHash in our db, if not we start a sync
We try to set our blockchain to the headBlock If there are payloadAttributes:
we return an error since block creation is not supported in les mode
func (*ConsensusAPI) GetPayloadV1 ¶
func (api *ConsensusAPI) GetPayloadV1(payloadID beacon.PayloadID) (*beacon.ExecutableDataV1, error)
GetPayloadV1 returns a cached payload by id. It's not supported in les mode.
Click to show internal directories.
Click to hide internal directories.