Documentation ¶
Overview ¶
Package catalyst implements the temporary eth1/eth2 RPC integration.
Index ¶
- Variables
- func ExecutableDataToBlock(params ExecutableDataV1) (*types.Block, error)
- func Register(stack *node.Node, backend *eth.Gamefin) error
- func RegisterLight(stack *node.Node, backend *les.LightGamefin) error
- type ConsensusAPI
- func (api *ConsensusAPI) ExecutePayloadV1(params ExecutableDataV1) (ExecutePayloadResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedV1(heads ForkchoiceStateV1, payloadAttributes *PayloadAttributesV1) (ForkChoiceResponse, error)
- func (api *ConsensusAPI) GetPayloadV1(payloadID PayloadID) (*ExecutableDataV1, error)
- type ConsensusValidatedParams
- type ExecutableDataV1
- type ExecutePayloadResponse
- type ForkChoiceResponse
- type ForkchoiceStateV1
- type GenericResponse
- type GenericStringResponse
- type NewBlockResponse
- type PayloadAttributesV1
- type PayloadID
Constants ¶
This section is empty.
Variables ¶
var ( VALID = GenericStringResponse{"VALID"} SUCCESS = GenericStringResponse{"SUCCESS"} INVALID = ForkChoiceResponse{Status: "INVALID", PayloadID: nil} SYNCING = ForkChoiceResponse{Status: "SYNCING", PayloadID: nil} GenericServerError = rpc.CustomError{Code: -32000, ValidationError: "Server error"} UnknownPayload = rpc.CustomError{Code: -32001, ValidationError: "Unknown payload"} InvalidTB = rpc.CustomError{Code: -32002, ValidationError: "Invalid terminal block"} )
Functions ¶
func ExecutableDataToBlock ¶
func ExecutableDataToBlock(params ExecutableDataV1) (*types.Block, error)
func RegisterLight ¶
func RegisterLight(stack *node.Node, backend *les.LightGamefin) error
RegisterLight adds catalyst APIs to the light client.
Types ¶
type ConsensusAPI ¶
type ConsensusAPI struct {
// contains filtered or unexported fields
}
func NewConsensusAPI ¶
func NewConsensusAPI(eth *eth.Gamefin, les *les.LightGamefin) *ConsensusAPI
func (*ConsensusAPI) ExecutePayloadV1 ¶
func (api *ConsensusAPI) ExecutePayloadV1(params ExecutableDataV1) (ExecutePayloadResponse, 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 ForkchoiceStateV1, payloadAttributes *PayloadAttributesV1) (ForkChoiceResponse, error)
func (*ConsensusAPI) GetPayloadV1 ¶
func (api *ConsensusAPI) GetPayloadV1(payloadID PayloadID) (*ExecutableDataV1, error)
type ExecutableDataV1 ¶
type ExecutableDataV1 struct { ParentHash common.Hash `json:"parentHash" gencodec:"required"` FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"` StateRoot common.Hash `json:"stateRoot" gencodec:"required"` ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"` LogsBloom []byte `json:"logsBloom" gencodec:"required"` Random common.Hash `json:"random" gencodec:"required"` Number uint64 `json:"blockNumber" gencodec:"required"` GasLimit uint64 `json:"gasLimit" gencodec:"required"` GasUsed uint64 `json:"gasUsed" gencodec:"required"` Timestamp uint64 `json:"timestamp" gencodec:"required"` ExtraData []byte `json:"extraData" gencodec:"required"` BaseFeePerGas *big.Int `json:"baseFeePerGas" gencodec:"required"` BlockHash common.Hash `json:"blockHash" gencodec:"required"` Transactions [][]byte `json:"transactions" gencodec:"required"` }
ExecutableDataV1 structure described at https://github.com/gamefin/execution-apis/src/engine/specification.md
func BlockToExecutableData ¶
func BlockToExecutableData(block *types.Block) *ExecutableDataV1
BlockToExecutableData constructs the executableDataV1 structure by filling the fields from the given block. It assumes the given block is post-merge block.
func (ExecutableDataV1) MarshalJSON ¶
func (e ExecutableDataV1) MarshalJSON() ([]byte, error)
MarshalJSON marshals as JSON.
func (*ExecutableDataV1) UnmarshalJSON ¶
func (e *ExecutableDataV1) UnmarshalJSON(input []byte) error
UnmarshalJSON unmarshals from JSON.
type ExecutePayloadResponse ¶
type ForkChoiceResponse ¶
type ForkchoiceStateV1 ¶
type GenericResponse ¶
type GenericResponse struct {
Success bool `json:"success"`
}
type GenericStringResponse ¶
type GenericStringResponse struct {
Status string `json:"status"`
}
type NewBlockResponse ¶
type NewBlockResponse struct {
Valid bool `json:"valid"`
}
type PayloadAttributesV1 ¶
type PayloadAttributesV1 struct { Timestamp uint64 `json:"timestamp" gencodec:"required"` Random common.Hash `json:"random" gencodec:"required"` SuggestedFeeRecipient common.Address `json:"suggestedFeeRecipient" gencodec:"required"` }
PayloadAttributesV1 structure described at https://github.com/gamefin/execution-apis/pull/74
func (PayloadAttributesV1) MarshalJSON ¶
func (p PayloadAttributesV1) MarshalJSON() ([]byte, error)
MarshalJSON marshals as JSON.
func (*PayloadAttributesV1) UnmarshalJSON ¶
func (p *PayloadAttributesV1) UnmarshalJSON(input []byte) error
UnmarshalJSON unmarshals from JSON.
type PayloadID ¶
type PayloadID [8]byte
PayloadID is an identifier of the payload build process