l2

package
v0.0.0-...-ee4fe4c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2026 License: MIT, MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HintL2BlockHeader    = "l2-block-header"
	HintL2Transactions   = "l2-transactions"
	HintL2Receipts       = "l2-receipts"
	HintL2Code           = "l2-code"
	HintL2StateNode      = "l2-state-node"
	HintL2Output         = "l2-output"
	HintL2BlockData      = "l2-block-data"
	HintAgreedPrestate   = "agreed-pre-state"
	HintL2AccountProof   = "l2-account-proof"
	HintL2PayloadWitness = "l2-payload-witness"
)

Variables

View Source
var (
	ErrInvalidHeader         = errors.New("invalid header")
	ErrUnsupportedAPIVersion = errors.New("unsupported api version")
	ErrUnknownLabel          = errors.New("unknown label")
)
View Source
var (
	ErrUnsupportedL2Output = errors.New("unsupported l2 output version")
	ErrUnexpectedBlockHash = errors.New("unexpected block hash")
)
View Source
var ErrInvalidKeyLength = errors.New("pre-images must be identified by 32-byte hash keys")

Functions

This section is empty.

Types

type AccountProofHint

type AccountProofHint struct {
	BlockHash common.Hash
	Address   common.Address
	ChainID   eth.ChainID
}

func (AccountProofHint) Hint

func (l AccountProofHint) Hint() string

type AgreedPrestateHint

type AgreedPrestateHint common.Hash

func (AgreedPrestateHint) Hint

func (l AgreedPrestateHint) Hint() string

type BlockByHashFn

type BlockByHashFn func(hash common.Hash) *types.Block

type BlockHeaderHint

type BlockHeaderHint HashAndChainID

func (BlockHeaderHint) Hint

func (l BlockHeaderHint) Hint() string

type CachingOracle

type CachingOracle struct {
	// contains filtered or unexported fields
}

func NewCachingOracle

func NewCachingOracle(oracle Oracle) *CachingOracle

func (*CachingOracle) BlockByHash

func (o *CachingOracle) BlockByHash(blockHash common.Hash, chainID eth.ChainID) *types.Block

func (*CachingOracle) BlockDataByHash

func (o *CachingOracle) BlockDataByHash(agreedBlockHash, blockHash common.Hash, chainID eth.ChainID) *types.Block

func (*CachingOracle) CodeByHash

func (o *CachingOracle) CodeByHash(codeHash common.Hash, chainID eth.ChainID) []byte

func (*CachingOracle) Hinter

func (o *CachingOracle) Hinter() l2Types.OracleHinter

func (*CachingOracle) NodeByHash

func (o *CachingOracle) NodeByHash(nodeHash common.Hash, chainID eth.ChainID) []byte

func (*CachingOracle) OutputByRoot

func (o *CachingOracle) OutputByRoot(root common.Hash, chainID eth.ChainID) eth.Output

func (*CachingOracle) ReceiptsByBlockHash

func (o *CachingOracle) ReceiptsByBlockHash(blockHash common.Hash, chainID eth.ChainID) (*types.Block, types.Receipts)

func (*CachingOracle) TransitionStateByRoot

func (o *CachingOracle) TransitionStateByRoot(root common.Hash) *interopTypes.TransitionState

type CanonicalBlockHeaderOracle

type CanonicalBlockHeaderOracle struct {
	// contains filtered or unexported fields
}

func NewCanonicalBlockHeaderOracle

func NewCanonicalBlockHeaderOracle(head *types.Header, blockByHashFn BlockByHashFn) *CanonicalBlockHeaderOracle

func (*CanonicalBlockHeaderOracle) CurrentHeader

func (o *CanonicalBlockHeaderOracle) CurrentHeader() *types.Header

func (*CanonicalBlockHeaderOracle) GetHeaderByNumber

func (o *CanonicalBlockHeaderOracle) GetHeaderByNumber(n uint64) *types.Header

GetHeaderByNumber walks back from the current head to the requested block number

func (*CanonicalBlockHeaderOracle) SetCanonical

func (o *CanonicalBlockHeaderOracle) SetCanonical(head *types.Header) common.Hash

type CodeHint

type CodeHint HashAndChainID

func (CodeHint) Hint

func (l CodeHint) Hint() string

type FastCanonicalBlockHeaderOracle

type FastCanonicalBlockHeaderOracle struct {
	// contains filtered or unexported fields
}

func NewFastCanonicalBlockHeaderOracle

func NewFastCanonicalBlockHeaderOracle(
	head *types.Header,
	blockByHashFn BlockByHashFn,
	chainCfg *params.ChainConfig,
	stateOracle StateOracle,
	kvdb KeyValueStore,
	fallback *CanonicalBlockHeaderOracle,
) *FastCanonicalBlockHeaderOracle

func (*FastCanonicalBlockHeaderOracle) CurrentHeader

func (o *FastCanonicalBlockHeaderOracle) CurrentHeader() *types.Header

func (*FastCanonicalBlockHeaderOracle) GetHeaderByNumber

func (o *FastCanonicalBlockHeaderOracle) GetHeaderByNumber(n uint64) *types.Header

func (*FastCanonicalBlockHeaderOracle) SetCanonical

func (o *FastCanonicalBlockHeaderOracle) SetCanonical(head *types.Header) common.Hash

type HashAndChainID

type HashAndChainID struct {
	Hash    common.Hash
	ChainID eth.ChainID
}

func (HashAndChainID) Marshal

func (h HashAndChainID) Marshal() []byte

type KeyValueStore

type KeyValueStore interface {
	ethdb.KeyValueReader
	ethdb.Batcher
	// Put inserts the given value into the key-value data store.
	Put(key []byte, value []byte) error
}

KeyValueStore is a subset of the ethdb.KeyValueStore interfaces that's required for block processing.

type L2BlockDataHint

type L2BlockDataHint struct {
	AgreedBlockHash common.Hash
	BlockHash       common.Hash
	ChainID         eth.ChainID
}

func (L2BlockDataHint) Hint

func (l L2BlockDataHint) Hint() string

type L2OutputHint

type L2OutputHint HashAndChainID

func (L2OutputHint) Hint

func (l L2OutputHint) Hint() string

type LegacyBlockHeaderHint

type LegacyBlockHeaderHint common.Hash

func (LegacyBlockHeaderHint) Hint

func (l LegacyBlockHeaderHint) Hint() string

type LegacyCodeHint

type LegacyCodeHint common.Hash

func (LegacyCodeHint) Hint

func (l LegacyCodeHint) Hint() string

type LegacyL2OutputHint

type LegacyL2OutputHint common.Hash

func (LegacyL2OutputHint) Hint

func (l LegacyL2OutputHint) Hint() string

type LegacyStateNodeHint

type LegacyStateNodeHint common.Hash

func (LegacyStateNodeHint) Hint

func (l LegacyStateNodeHint) Hint() string

type LegacyTransactionsHint

type LegacyTransactionsHint common.Hash

func (LegacyTransactionsHint) Hint

func (l LegacyTransactionsHint) Hint() string

type OracleBackedL2Chain

type OracleBackedL2Chain struct {
	// contains filtered or unexported fields
}

func NewOracleBackedL2Chain

func NewOracleBackedL2Chain(
	logger log.Logger,
	oracle Oracle,
	precompileOracle engineapi.PrecompileOracle,
	chainCfg *params.ChainConfig,
	l2OutputRoot common.Hash,
	db KeyValueStore,
) (*OracleBackedL2Chain, error)

func NewOracleBackedL2ChainFromHead

func NewOracleBackedL2ChainFromHead(
	logger log.Logger,
	oracle Oracle,
	precompileOracle engineapi.PrecompileOracle,
	chainCfg *params.ChainConfig,
	head *types.Block,
	db KeyValueStore,
) *OracleBackedL2Chain

func (*OracleBackedL2Chain) AssembleAndInsertBlockWithoutSetHead

func (o *OracleBackedL2Chain) AssembleAndInsertBlockWithoutSetHead(processor *engineapi.BlockProcessor) (*types.Block, error)

func (*OracleBackedL2Chain) Config

func (o *OracleBackedL2Chain) Config() *params.ChainConfig

func (*OracleBackedL2Chain) CurrentFinalBlock

func (o *OracleBackedL2Chain) CurrentFinalBlock() *types.Header

func (*OracleBackedL2Chain) CurrentHeader

func (o *OracleBackedL2Chain) CurrentHeader() *types.Header

func (*OracleBackedL2Chain) CurrentSafeBlock

func (o *OracleBackedL2Chain) CurrentSafeBlock() *types.Header

func (*OracleBackedL2Chain) Engine

func (o *OracleBackedL2Chain) Engine() consensus.Engine

func (*OracleBackedL2Chain) GetBlock

func (o *OracleBackedL2Chain) GetBlock(hash common.Hash, number uint64) *types.Block

func (*OracleBackedL2Chain) GetBlockByHash

func (o *OracleBackedL2Chain) GetBlockByHash(hash common.Hash) *types.Block

func (*OracleBackedL2Chain) GetCanonicalHash

func (o *OracleBackedL2Chain) GetCanonicalHash(n uint64) common.Hash

func (*OracleBackedL2Chain) GetHeader

func (o *OracleBackedL2Chain) GetHeader(hash common.Hash, u uint64) *types.Header

func (*OracleBackedL2Chain) GetHeaderByHash

func (o *OracleBackedL2Chain) GetHeaderByHash(hash common.Hash) *types.Header

func (*OracleBackedL2Chain) GetHeaderByNumber

func (o *OracleBackedL2Chain) GetHeaderByNumber(n uint64) *types.Header

func (*OracleBackedL2Chain) GetReceiptsByBlockHash

func (o *OracleBackedL2Chain) GetReceiptsByBlockHash(hash common.Hash) types.Receipts

func (*OracleBackedL2Chain) GetTd

func (o *OracleBackedL2Chain) GetTd(hash common.Hash, number uint64) *big.Int

func (*OracleBackedL2Chain) GetVMConfig

func (o *OracleBackedL2Chain) GetVMConfig() *vm.Config

func (*OracleBackedL2Chain) HasBlockAndState

func (o *OracleBackedL2Chain) HasBlockAndState(hash common.Hash, number uint64) bool

func (*OracleBackedL2Chain) Hinter

func (*OracleBackedL2Chain) InsertBlockWithoutSetHead

func (o *OracleBackedL2Chain) InsertBlockWithoutSetHead(block *types.Block, makeWitness bool) (*stateless.Witness, error)

func (*OracleBackedL2Chain) SetCanonical

func (o *OracleBackedL2Chain) SetCanonical(head *types.Block) (common.Hash, error)

func (*OracleBackedL2Chain) SetFinalized

func (o *OracleBackedL2Chain) SetFinalized(header *types.Header)

func (*OracleBackedL2Chain) SetSafe

func (o *OracleBackedL2Chain) SetSafe(header *types.Header)

func (*OracleBackedL2Chain) StateAt

func (o *OracleBackedL2Chain) StateAt(root common.Hash) (*state.StateDB, error)

type OracleEngine

type OracleEngine struct {
	// contains filtered or unexported fields
}

func NewOracleEngine

func NewOracleEngine(rollupCfg *rollup.Config, logger log.Logger, backend engineapi.CachingEngineBackend, hinter l2Types.OracleHinter) *OracleEngine

func (*OracleEngine) ForkchoiceUpdate

func (*OracleEngine) GetPayload

func (o *OracleEngine) GetPayload(ctx context.Context, payloadInfo eth.PayloadInfo) (*eth.ExecutionPayloadEnvelope, error)

func (*OracleEngine) L2BlockRefByHash

func (o *OracleEngine) L2BlockRefByHash(ctx context.Context, l2Hash common.Hash) (eth.L2BlockRef, error)

func (*OracleEngine) L2BlockRefByLabel

func (o *OracleEngine) L2BlockRefByLabel(ctx context.Context, label eth.BlockLabel) (eth.L2BlockRef, error)

func (*OracleEngine) L2BlockRefByNumber

func (o *OracleEngine) L2BlockRefByNumber(ctx context.Context, n uint64) (eth.L2BlockRef, error)

func (*OracleEngine) L2OutputAtBlockHash

func (o *OracleEngine) L2OutputAtBlockHash(blockHash common.Hash) (*eth.OutputV0, error)

L2OutputAtBlockHash returns the core output at the specified block hash

func (*OracleEngine) L2OutputRoot

func (o *OracleEngine) L2OutputRoot(l2ClaimBlockNum uint64) (common.Hash, eth.Bytes32, error)

L2OutputRoot returns the block hash and output root at the specified block number

func (*OracleEngine) NewPayload

func (o *OracleEngine) NewPayload(ctx context.Context, payload *eth.ExecutionPayload, parentBeaconBlockRoot *common.Hash) (*eth.PayloadStatusV1, error)

func (*OracleEngine) PayloadByHash

func (o *OracleEngine) PayloadByHash(ctx context.Context, hash common.Hash) (*eth.ExecutionPayloadEnvelope, error)

func (*OracleEngine) PayloadByNumber

func (o *OracleEngine) PayloadByNumber(ctx context.Context, n uint64) (*eth.ExecutionPayloadEnvelope, error)

func (*OracleEngine) SystemConfigByL2Hash

func (o *OracleEngine) SystemConfigByL2Hash(ctx context.Context, hash common.Hash) (eth.SystemConfig, error)

type OracleKeyValueStore

type OracleKeyValueStore struct {
	// contains filtered or unexported fields
}

func NewOracleBackedDB

func NewOracleBackedDB(kv KeyValueStore, oracle StateOracle, chainID eth.ChainID) *OracleKeyValueStore

func (*OracleKeyValueStore) Close

func (o *OracleKeyValueStore) Close() error

func (*OracleKeyValueStore) Compact

func (o *OracleKeyValueStore) Compact(start []byte, limit []byte) error

func (*OracleKeyValueStore) Delete

func (o *OracleKeyValueStore) Delete(key []byte) error

func (*OracleKeyValueStore) DeleteRange

func (o *OracleKeyValueStore) DeleteRange(start, end []byte) error

func (*OracleKeyValueStore) Get

func (o *OracleKeyValueStore) Get(key []byte) ([]byte, error)

func (*OracleKeyValueStore) Has

func (o *OracleKeyValueStore) Has(key []byte) (bool, error)

func (*OracleKeyValueStore) NewBatch

func (o *OracleKeyValueStore) NewBatch() ethdb.Batch

func (*OracleKeyValueStore) NewBatchWithSize

func (o *OracleKeyValueStore) NewBatchWithSize(size int) ethdb.Batch

func (*OracleKeyValueStore) NewIterator

func (o *OracleKeyValueStore) NewIterator(prefix []byte, start []byte) ethdb.Iterator

func (*OracleKeyValueStore) Put

func (o *OracleKeyValueStore) Put(key []byte, value []byte) error

func (*OracleKeyValueStore) Stat

func (o *OracleKeyValueStore) Stat() (string, error)

type PayloadWitnessHint

type PayloadWitnessHint struct {
	ParentBlockHash   common.Hash            `json:"parentBlockHash"`
	PayloadAttributes *eth.PayloadAttributes `json:"payloadAttributes"`
	ChainID           *eth.ChainID           `json:"chainID,omitempty"`
}

func (PayloadWitnessHint) Hint

func (l PayloadWitnessHint) Hint() string

type ReceiptsHint

type ReceiptsHint HashAndChainID

func (ReceiptsHint) Hint

func (l ReceiptsHint) Hint() string

type StateNodeHint

type StateNodeHint HashAndChainID

func (StateNodeHint) Hint

func (l StateNodeHint) Hint() string

type TransactionsHint

type TransactionsHint HashAndChainID

func (TransactionsHint) Hint

func (l TransactionsHint) Hint() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL