Documentation ¶
Index ¶
- Variables
- type CriticalErrorHandler
- type EthTxManager
- type EthermanFullInterface
- type EthermanGetLatestBatchNumber
- type EventLogInterface
- type PoolInterface
- type StateBeginTransactionInterface
- type StateFullInterface
- type StateGetBatchByNumberInterface
- type SyncTrustedStateExecutor
- type SynchronizerCleanTrustedState
- type SynchronizerFlushIDManager
- type SynchronizerFullInterface
- type SynchronizerIsTrustedSequencer
- type ZKEVMClientGlobalExitRootGetter
- type ZKEVMClientInterface
- type ZKEVMClientTrustedBatchesGetter
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMissingSyncFromL1 is returned when we are behind expected L1 sync, so must be done from L1 ErrMissingSyncFromL1 = errors.New("must sync from L1") // ErrFatalDesyncFromL1 is returned when trusted node and permissionless node have different data ErrFatalDesyncFromL1 = errors.New("fatal situation: the TrustedNode have another data!. Halt or do something") )
Functions ¶
This section is empty.
Types ¶
type CriticalErrorHandler ¶
type CriticalErrorHandler interface { // CriticalError is called when a critical error occurs. The error is passed in as a parameter. // this function could be blocking or non-blocking, depending on the implementation. CriticalError(ctx context.Context, err error) }
CriticalErrorHandler is an interface for handling critical errors. Before that class this was called Halt()
type EthTxManager ¶
type EthermanFullInterface ¶
type EthermanFullInterface interface { HeaderByNumber(ctx context.Context, number *big.Int) (*ethTypes.Header, error) GetRollupInfoByBlockRange(ctx context.Context, fromBlock uint64, toBlock *uint64) ([]etherman.Block, map[common.Hash][]etherman.Order, error) EthBlockByNumber(ctx context.Context, blockNumber uint64) (*ethTypes.Block, error) GetLatestBatchNumber() (uint64, error) GetTrustedSequencerURL() (string, error) VerifyGenBlockNumber(ctx context.Context, genBlockNumber uint64) (bool, error) GetLatestVerifiedBatchNum() (uint64, error) }
EthermanFullInterface contains the methods required to interact with ethereum.
type EventLogInterface ¶
EventLogInterface write an event to the event log database
type PoolInterface ¶
type StateBeginTransactionInterface ¶
type StateBeginTransactionInterface interface {
BeginStateTransaction(ctx context.Context) (pgx.Tx, error)
}
StateInterface contains the methods required to interact with the state.
type StateFullInterface ¶
type StateFullInterface interface { GetLastBlock(ctx context.Context, dbTx pgx.Tx) (*state.Block, error) AddGlobalExitRoot(ctx context.Context, exitRoot *state.GlobalExitRoot, dbTx pgx.Tx) error AddForcedBatch(ctx context.Context, forcedBatch *state.ForcedBatch, dbTx pgx.Tx) error AddBlock(ctx context.Context, block *state.Block, dbTx pgx.Tx) error Reset(ctx context.Context, blockNumber uint64, dbTx pgx.Tx) error GetPreviousBlock(ctx context.Context, offset uint64, dbTx pgx.Tx) (*state.Block, error) GetLastBatchNumber(ctx context.Context, dbTx pgx.Tx) (uint64, error) GetBatchByNumber(ctx context.Context, batchNumber uint64, dbTx pgx.Tx) (*state.Batch, error) ResetTrustedState(ctx context.Context, batchNumber uint64, dbTx pgx.Tx) error AddVirtualBatch(ctx context.Context, virtualBatch *state.VirtualBatch, dbTx pgx.Tx) error GetNextForcedBatches(ctx context.Context, nextForcedBatches int, dbTx pgx.Tx) ([]state.ForcedBatch, error) AddVerifiedBatch(ctx context.Context, verifiedBatch *state.VerifiedBatch, dbTx pgx.Tx) error ProcessAndStoreClosedBatch(ctx context.Context, processingCtx state.ProcessingContext, encodedTxs []byte, dbTx pgx.Tx, caller metrics.CallerLabel) (common.Hash, uint64, string, error) ProcessAndStoreClosedBatchV2(ctx context.Context, processingCtx state.ProcessingContextV2, dbTx pgx.Tx, caller metrics.CallerLabel) (common.Hash, uint64, string, error) SetGenesis(ctx context.Context, block state.Block, genesis state.Genesis, m metrics.CallerLabel, dbTx pgx.Tx) (common.Hash, error) OpenBatch(ctx context.Context, processingContext state.ProcessingContext, dbTx pgx.Tx) error CloseBatch(ctx context.Context, receipt state.ProcessingReceipt, dbTx pgx.Tx) error ProcessBatch(ctx context.Context, request state.ProcessRequest, updateMerkleTree bool) (*state.ProcessBatchResponse, error) ProcessBatchV2(ctx context.Context, request state.ProcessRequest, updateMerkleTree bool) (*state.ProcessBatchResponse, error) StoreTransaction(ctx context.Context, batchNumber uint64, processedTx *state.ProcessTransactionResponse, coinbase common.Address, timestamp uint64, egpLog *state.EffectiveGasPriceLog, globalExitRoot, blockInfoRoot common.Hash, dbTx pgx.Tx) (*state.L2Header, error) GetStateRootByBatchNumber(ctx context.Context, batchNum uint64, dbTx pgx.Tx) (common.Hash, error) ExecuteBatch(ctx context.Context, batch state.Batch, updateMerkleTree bool, dbTx pgx.Tx) (*executor.ProcessBatchResponse, error) ExecuteBatchV2(ctx context.Context, batch state.Batch, L1InfoTreeRoot common.Hash, l1InfoTreeData map[uint32]state.L1DataV2, timestampLimit time.Time, updateMerkleTree bool, skipVerifyL1InfoRoot uint32, forcedBlockHashL1 *common.Hash, dbTx pgx.Tx) (*executor.ProcessBatchResponseV2, error) GetLastVerifiedBatch(ctx context.Context, dbTx pgx.Tx) (*state.VerifiedBatch, error) GetLastVirtualBatchNum(ctx context.Context, dbTx pgx.Tx) (uint64, error) AddSequence(ctx context.Context, sequence state.Sequence, dbTx pgx.Tx) error AddAccumulatedInputHash(ctx context.Context, batchNum uint64, accInputHash common.Hash, dbTx pgx.Tx) error AddTrustedReorg(ctx context.Context, trustedReorg *state.TrustedReorg, dbTx pgx.Tx) error GetReorgedTransactions(ctx context.Context, batchNumber uint64, dbTx pgx.Tx) ([]*ethTypes.Transaction, error) ResetForkID(ctx context.Context, batchNumber uint64, dbTx pgx.Tx) error GetForkIDs(ctx context.Context, dbTx pgx.Tx) ([]state.ForkIDInterval, error) AddForkIDInterval(ctx context.Context, newForkID state.ForkIDInterval, dbTx pgx.Tx) error SetLastBatchInfoSeenOnEthereum(ctx context.Context, lastBatchNumberSeen, lastBatchNumberVerified uint64, dbTx pgx.Tx) error SetInitSyncBatch(ctx context.Context, batchNumber uint64, dbTx pgx.Tx) error BeginStateTransaction(ctx context.Context) (pgx.Tx, error) UpdateBatchL2Data(ctx context.Context, batchNumber uint64, batchL2Data []byte, dbTx pgx.Tx) error GetForkIDByBatchNumber(batchNumber uint64) uint64 GetForkIDByBlockNumber(blockNumber uint64) uint64 GetStoredFlushID(ctx context.Context) (uint64, string, error) AddL1InfoTreeLeaf(ctx context.Context, L1InfoTreeLeaf *state.L1InfoTreeLeaf, dbTx pgx.Tx) (*state.L1InfoTreeExitRootStorageEntry, error) GetCurrentL1InfoRoot() common.Hash StoreL2Block(ctx context.Context, batchNumber uint64, l2Block *state.ProcessBlockResponse, txsEGPLog []*state.EffectiveGasPriceLog, dbTx pgx.Tx) error GetL1InfoRootLeafByL1InfoRoot(ctx context.Context, l1InfoRoot common.Hash, dbTx pgx.Tx) (state.L1InfoTreeExitRootStorageEntry, error) UpdateWIPBatch(ctx context.Context, receipt state.ProcessingReceipt, dbTx pgx.Tx) error GetL1InfoTreeDataFromBatchL2Data(ctx context.Context, batchL2Data []byte, dbTx pgx.Tx) (map[uint32]state.L1DataV2, common.Hash, common.Hash, error) GetExitRootByGlobalExitRoot(ctx context.Context, ger common.Hash, dbTx pgx.Tx) (*state.GlobalExitRoot, error) }
StateFullInterface gathers the methods required to interact with the state.
type SyncTrustedStateExecutor ¶
type SyncTrustedStateExecutor interface { // SyncTrustedState syncs the trusted state with the permissionless state // if returns error ErrMissingSyncFromL1 then must force a L1 sync SyncTrustedState(ctx context.Context, latestSyncedBatch uint64) error // CleanTrustedState clean cache of Batches and StateRoot CleanTrustedState() }
SyncTrustedStateExecutor is the interface that class that synchronize permissionless with a trusted node
type SynchronizerCleanTrustedState ¶
type SynchronizerCleanTrustedState interface {
CleanTrustedState()
}
type SynchronizerFlushIDManager ¶
type SynchronizerFlushIDManager interface { PendingFlushID(flushID uint64, proverID string) CheckFlushID(dbTx pgx.Tx) error }
SynchronizerFlushIDManager is a interface with the methods to manage the flushID
type SynchronizerFullInterface ¶
type SynchronizerFullInterface interface { SynchronizerFlushIDManager SynchronizerIsTrustedSequencer SynchronizerCleanTrustedState }
type SynchronizerIsTrustedSequencer ¶
type SynchronizerIsTrustedSequencer interface {
IsTrustedSequencer() bool
}
type ZKEVMClientGlobalExitRootGetter ¶
type ZKEVMClientGlobalExitRootGetter interface {
ExitRootsByGER(ctx context.Context, globalExitRoot common.Hash) (*types.ExitRoots, error)
}
ZkEVMClientInterface contains the methods required to interact with zkEVM-RPC for obtain GlobalExitRoot information
type ZKEVMClientInterface ¶
type ZKEVMClientInterface interface { ZKEVMClientTrustedBatchesGetter ZKEVMClientGlobalExitRootGetter }