Documentation ¶
Index ¶
- Constants
- Variables
- type BlockHeaderHint
- type CachingOracle
- type CodeHint
- type L2OutputHint
- type Oracle
- type OracleBackedL2Chain
- func (o *OracleBackedL2Chain) AssembleAndInsertBlockWithoutSetHead(processor *engineapi.BlockProcessor) (*types.Block, error)
- func (o *OracleBackedL2Chain) Config() *params.ChainConfig
- func (o *OracleBackedL2Chain) CurrentFinalBlock() *types.Header
- func (o *OracleBackedL2Chain) CurrentHeader() *types.Header
- func (o *OracleBackedL2Chain) CurrentSafeBlock() *types.Header
- func (o *OracleBackedL2Chain) Engine() consensus.Engine
- func (o *OracleBackedL2Chain) GetBlock(hash common.Hash, number uint64) *types.Block
- func (o *OracleBackedL2Chain) GetBlockByHash(hash common.Hash) *types.Block
- func (o *OracleBackedL2Chain) GetCanonicalHash(n uint64) common.Hash
- func (o *OracleBackedL2Chain) GetHeader(hash common.Hash, u uint64) *types.Header
- func (o *OracleBackedL2Chain) GetHeaderByHash(hash common.Hash) *types.Header
- func (o *OracleBackedL2Chain) GetHeaderByNumber(n uint64) *types.Header
- func (o *OracleBackedL2Chain) GetTd(hash common.Hash, number uint64) *big.Int
- func (o *OracleBackedL2Chain) GetVMConfig() *vm.Config
- func (o *OracleBackedL2Chain) HasBlockAndState(hash common.Hash, number uint64) bool
- func (o *OracleBackedL2Chain) InsertBlockWithoutSetHead(block *types.Block, makeWitness bool) (*stateless.Witness, error)
- func (o *OracleBackedL2Chain) SetCanonical(head *types.Block) (common.Hash, error)
- func (o *OracleBackedL2Chain) SetFinalized(header *types.Header)
- func (o *OracleBackedL2Chain) SetSafe(header *types.Header)
- func (o *OracleBackedL2Chain) StateAt(root common.Hash) (*state.StateDB, error)
- type OracleEngine
- func (o *OracleEngine) ForkchoiceUpdate(ctx context.Context, state *eth.ForkchoiceState, attr *eth.PayloadAttributes) (*eth.ForkchoiceUpdatedResult, error)
- func (o *OracleEngine) GetPayload(ctx context.Context, payloadInfo eth.PayloadInfo) (*eth.ExecutionPayloadEnvelope, error)
- func (o *OracleEngine) L2BlockRefByHash(ctx context.Context, l2Hash common.Hash) (eth.L2BlockRef, error)
- func (o *OracleEngine) L2BlockRefByLabel(ctx context.Context, label eth.BlockLabel) (eth.L2BlockRef, error)
- func (o *OracleEngine) L2BlockRefByNumber(ctx context.Context, n uint64) (eth.L2BlockRef, error)
- func (o *OracleEngine) L2OutputRoot(l2ClaimBlockNum uint64) (eth.Bytes32, error)
- func (o *OracleEngine) NewPayload(ctx context.Context, payload *eth.ExecutionPayload, ...) (*eth.PayloadStatusV1, error)
- func (o *OracleEngine) PayloadByHash(ctx context.Context, hash common.Hash) (*eth.ExecutionPayloadEnvelope, error)
- func (o *OracleEngine) PayloadByNumber(ctx context.Context, n uint64) (*eth.ExecutionPayloadEnvelope, error)
- func (o *OracleEngine) SystemConfigByL2Hash(ctx context.Context, hash common.Hash) (eth.SystemConfig, error)
- type OracleKeyValueStore
- func (o *OracleKeyValueStore) Close() error
- func (o *OracleKeyValueStore) Compact(start []byte, limit []byte) error
- func (o *OracleKeyValueStore) Delete(key []byte) error
- func (o *OracleKeyValueStore) Get(key []byte) ([]byte, error)
- func (o *OracleKeyValueStore) Has(key []byte) (bool, error)
- func (o *OracleKeyValueStore) NewBatch() ethdb.Batch
- func (o *OracleKeyValueStore) NewBatchWithSize(size int) ethdb.Batch
- func (o *OracleKeyValueStore) NewIterator(prefix []byte, start []byte) ethdb.Iterator
- func (o *OracleKeyValueStore) Put(key []byte, value []byte) error
- func (o *OracleKeyValueStore) Stat() (string, error)
- type PreimageOracle
- func (p *PreimageOracle) BlockByHash(blockHash common.Hash) *types.Block
- func (p *PreimageOracle) CodeByHash(codeHash common.Hash) []byte
- func (p *PreimageOracle) LoadTransactions(blockHash common.Hash, txHash common.Hash) []*types.Transaction
- func (p *PreimageOracle) NodeByHash(nodeHash common.Hash) []byte
- func (p *PreimageOracle) OutputByRoot(l2OutputRoot common.Hash) eth.Output
- type StateNodeHint
- type StateOracle
- type TransactionsHint
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 ¶
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 ¶ added in v1.1.4
func (o *CachingOracle) OutputByRoot(root common.Hash) eth.Output
type L2OutputHint ¶ added in v1.1.4
func (L2OutputHint) Hint ¶ added in v1.1.4
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) AssembleAndInsertBlockWithoutSetHead ¶ added in v1.9.5
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) GetBlockByHash ¶
func (o *OracleBackedL2Chain) GetBlockByHash(hash common.Hash) *types.Block
func (*OracleBackedL2Chain) GetCanonicalHash ¶
func (o *OracleBackedL2Chain) GetCanonicalHash(n uint64) common.Hash
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) GetVMConfig ¶
func (o *OracleBackedL2Chain) GetVMConfig() *vm.Config
func (*OracleBackedL2Chain) HasBlockAndState ¶
func (o *OracleBackedL2Chain) HasBlockAndState(hash common.Hash, number uint64) bool
func (*OracleBackedL2Chain) InsertBlockWithoutSetHead ¶
func (*OracleBackedL2Chain) SetCanonical ¶
func (*OracleBackedL2Chain) SetFinalized ¶
func (o *OracleBackedL2Chain) SetFinalized(header *types.Header)
func (*OracleBackedL2Chain) SetSafe ¶
func (o *OracleBackedL2Chain) SetSafe(header *types.Header)
type OracleEngine ¶
type OracleEngine struct {
// contains filtered or unexported fields
}
func NewOracleEngine ¶
func NewOracleEngine(rollupCfg *rollup.Config, logger log.Logger, backend engineapi.CachingEngineBackend) *OracleEngine
func (*OracleEngine) ForkchoiceUpdate ¶
func (o *OracleEngine) ForkchoiceUpdate(ctx context.Context, state *eth.ForkchoiceState, attr *eth.PayloadAttributes) (*eth.ForkchoiceUpdatedResult, error)
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 ¶ added in v1.4.2
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) 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) Stat ¶
func (o *OracleKeyValueStore) Stat() (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 ¶ added in v1.1.6
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 ¶ added in v1.1.4
func (p *PreimageOracle) OutputByRoot(l2OutputRoot common.Hash) eth.Output
type StateNodeHint ¶
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 ¶
func (TransactionsHint) Hint ¶
func (l TransactionsHint) Hint() string
Click to show internal directories.
Click to hide internal directories.