Documentation ¶
Index ¶
- Variables
- type DepositContractConfig
- type FnTracer
- type GethOption
- type OpGeth
- func (d *OpGeth) AddL2Block(ctx context.Context, txs ...*types.Transaction) (*eth.ExecutionPayload, error)
- func (d *OpGeth) Close()
- func (d *OpGeth) CreatePayloadAttributes(txs ...*types.Transaction) (*eth.PayloadAttributes, error)
- func (d *OpGeth) StartBlockBuilding(ctx context.Context, attrs *eth.PayloadAttributes) (*eth.ForkchoiceUpdatedResult, error)
- type System
- type SystemConfig
- type SystemConfigOption
- type SystemConfigOptions
Constants ¶
This section is empty.
Variables ¶
var ( // ErrForkChoiceUpdatedNotValid is returned when a forkChoiceUpdated returns a status other than Valid ErrForkChoiceUpdatedNotValid = errors.New("forkChoiceUpdated status was not valid") // ErrNewPayloadNotValid is returned when a newPayload call returns a status other than Valid, indicating the new block is invalid ErrNewPayloadNotValid = errors.New("newPayload status was not valid") )
Functions ¶
This section is empty.
Types ¶
type DepositContractConfig ¶
type FnTracer ¶
type FnTracer struct { OnNewL1HeadFn func(ctx context.Context, sig eth.L1BlockRef) OnUnsafeL2PayloadFn func(ctx context.Context, from peer.ID, payload *eth.ExecutionPayload) OnPublishL2PayloadFn func(ctx context.Context, payload *eth.ExecutionPayload) }
func (*FnTracer) OnNewL1Head ¶
func (n *FnTracer) OnNewL1Head(ctx context.Context, sig eth.L1BlockRef)
func (*FnTracer) OnPublishL2Payload ¶
func (n *FnTracer) OnPublishL2Payload(ctx context.Context, payload *eth.ExecutionPayload)
func (*FnTracer) OnUnsafeL2Payload ¶
type OpGeth ¶
type OpGeth struct { L2Client *ethclient.Client SystemConfig eth.SystemConfig L1ChainConfig *params.ChainConfig L2ChainConfig *params.ChainConfig L1Head eth.BlockInfo L2Head *eth.ExecutionPayload // contains filtered or unexported fields }
OpGeth is an actor that functions as a l2 op-geth node It provides useful functions for advancing and querying the chain
func (*OpGeth) AddL2Block ¶
func (d *OpGeth) AddL2Block(ctx context.Context, txs ...*types.Transaction) (*eth.ExecutionPayload, error)
AddL2Block Appends a new L2 block to the current chain including the specified transactions The L1Info transaction is automatically prepended to the created block
func (*OpGeth) CreatePayloadAttributes ¶
func (d *OpGeth) CreatePayloadAttributes(txs ...*types.Transaction) (*eth.PayloadAttributes, error)
CreatePayloadAttributes creates a valid PayloadAttributes containing a L1Info deposit transaction followed by the supplied transactions.
func (*OpGeth) StartBlockBuilding ¶
func (d *OpGeth) StartBlockBuilding(ctx context.Context, attrs *eth.PayloadAttributes) (*eth.ForkchoiceUpdatedResult, error)
StartBlockBuilding begins block building for the specified PayloadAttributes by sending a engine_forkChoiceUpdated call. The current L2Head is used as the parent of the new block. ErrForkChoiceUpdatedNotValid is returned if the forkChoiceUpdate call returns a status other than valid.
type System ¶
type System struct { RollupConfig *rollup.Config L2GenesisCfg *core.Genesis // Connections to running nodes Nodes map[string]*node.Node Backends map[string]*geth_eth.Ethereum Clients map[string]*ethclient.Client RollupNodes map[string]*rollupNode.OpNode L2OutputSubmitter *l2os.L2OutputSubmitter BatchSubmitter *bss.BatchSubmitter Mocknet mocknet.Mocknet // contains filtered or unexported fields }
type SystemConfig ¶
type SystemConfig struct { Secrets *e2eutils.Secrets L1InfoPredeployAddress common.Address DeployConfig *genesis.DeployConfig JWTFilePath string JWTSecret [32]byte Premine map[common.Address]*big.Int Nodes map[string]*rollupNode.Config // Per node config. Don't use populate rollup.Config Loggers map[string]log.Logger GethOptions map[string][]GethOption ProposerLogger log.Logger BatcherLogger log.Logger // map of outbound connections to other nodes. Node names prefixed with "~" are unconnected but linked. // A nil map disables P2P completely. // Any node name not in the topology will not have p2p enabled. P2PTopology map[string][]string // Enables req-resp sync in the P2P nodes P2PReqRespSync bool // If the proposer can make proposals for L2 blocks derived from L1 blocks which are not finalized on L1 yet. NonFinalizedProposals bool // Explicitly disable batcher, for tests that rely on unsafe L2 payloads DisableBatcher bool }
func DefaultSystemConfig ¶
func DefaultSystemConfig(t *testing.T) SystemConfig
func (SystemConfig) L1ChainIDBig ¶
func (cfg SystemConfig) L1ChainIDBig() *big.Int
func (SystemConfig) L2ChainIDBig ¶
func (cfg SystemConfig) L2ChainIDBig() *big.Int
func (SystemConfig) Start ¶
func (cfg SystemConfig) Start(_opts ...SystemConfigOption) (*System, error)
type SystemConfigOption ¶
type SystemConfigOption struct {
// contains filtered or unexported fields
}
type SystemConfigOptions ¶
type SystemConfigOptions struct {
// contains filtered or unexported fields
}
func NewSystemConfigOptions ¶
func NewSystemConfigOptions(_opts []SystemConfigOption) (SystemConfigOptions, error)
func (*SystemConfigOptions) Get ¶
func (s *SystemConfigOptions) Get(key, role string) (systemConfigHook, bool)