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)