l2

package
v0.0.0-...-011bec4 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2024 License: MIT, MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HintL2BlockHeader  = "l2-block-header"
	HintL2Transactions = "l2-transactions"
	HintL2Code         = "l2-code"
	HintL2StateNode    = "l2-state-node"
	HintL2Output       = "l2-output"
)

Variables

View Source
var (
	ErrInvalidKeyLength = errors.New("pre-images must be identified by 32-byte hash keys")
)
View Source
var ErrNotFound = errors.New("not found")

Functions

This section is empty.

Types

type BlockHeaderHint

type BlockHeaderHint common.Hash

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) *types.Block

func (*CachingOracle) CodeByHash

func (o *CachingOracle) CodeByHash(codeHash common.Hash) []byte

func (*CachingOracle) NodeByHash

func (o *CachingOracle) NodeByHash(nodeHash common.Hash) []byte

func (*CachingOracle) OutputByRoot

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

type CodeHint

type CodeHint common.Hash

func (CodeHint) Hint

func (l CodeHint) Hint() string

type L2OutputHint

type L2OutputHint common.Hash

func (L2OutputHint) Hint

func (l L2OutputHint) Hint() string

type Oracle

type Oracle interface {
	StateOracle

	// BlockByHash retrieves the block with the given hash.
	BlockByHash(blockHash common.Hash) *types.Block

	OutputByRoot(root common.Hash) eth.Output
}

Oracle defines the high-level API used to retrieve L2 data. The returned data is always the preimage of the requested hash.

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) (*OracleBackedL2Chain, 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) 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) InsertBlockWithoutSetHead

func (o *OracleBackedL2Chain) InsertBlockWithoutSetHead(block *types.Block) 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.EngineBackend) *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) L2OutputRoot

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

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(oracle StateOracle) *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) 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) NewSnapshot

func (o *OracleKeyValueStore) NewSnapshot() (ethdb.Snapshot, error)

func (*OracleKeyValueStore) Put

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

func (*OracleKeyValueStore) Stat

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

type PreimageOracle

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

PreimageOracle implements Oracle using by interfacing with the pure preimage.Oracle to fetch pre-images to decode into the requested data.

func NewPreimageOracle

func NewPreimageOracle(raw preimage.Oracle, hint preimage.Hinter) *PreimageOracle

func (*PreimageOracle) BlockByHash

func (p *PreimageOracle) BlockByHash(blockHash common.Hash) *types.Block

func (*PreimageOracle) CodeByHash

func (p *PreimageOracle) CodeByHash(codeHash common.Hash) []byte

func (*PreimageOracle) LoadTransactions

func (p *PreimageOracle) LoadTransactions(blockHash common.Hash, txHash common.Hash) []*types.Transaction

func (*PreimageOracle) NodeByHash

func (p *PreimageOracle) NodeByHash(nodeHash common.Hash) []byte

func (*PreimageOracle) OutputByRoot

func (p *PreimageOracle) OutputByRoot(l2OutputRoot common.Hash) eth.Output

type StateNodeHint

type StateNodeHint common.Hash

func (StateNodeHint) Hint

func (l StateNodeHint) Hint() string

type StateOracle

type StateOracle interface {
	// NodeByHash retrieves the merkle-patricia trie node pre-image for a given hash.
	// Trie nodes may be from the world state trie or any account storage trie.
	// Contract code is not stored as part of the trie and must be retrieved via CodeByHash
	NodeByHash(nodeHash common.Hash) []byte

	// CodeByHash retrieves the contract code pre-image for a given hash.
	// codeHash should be retrieved from the world state account for a contract.
	CodeByHash(codeHash common.Hash) []byte
}

StateOracle defines the high-level API used to retrieve L2 state data pre-images The returned data is always the preimage of the requested hash.

type TransactionsHint

type TransactionsHint common.Hash

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