Documentation
¶
Index ¶
- Constants
- Variables
- func NewValidatorPoller(log aggkitcommon.Logger, storage db.AggSenderStorage, ...) *validatorPoller
- type AggSender
- type AggsenderValidator
- type BlockNotifierPolling
- type ConfigBlockNotifierPolling
- type ConfigEpochNotifierPerBlock
- type EpochNotifierPerBlock
- type ExtraInfoEventEpoch
- type GenericSubscriberImpl
- type RateLimiter
Constants ¶
const (
AutomaticBlockInterval = time.Second * 0
)
Variables ¶
var ( ErrNilCertificate = errors.New("aggsender-validator nil certificate") ErrMetadataNotCompatible = errors.New("aggsender-validator metadata not compatible with the current version") )
Functions ¶
func NewValidatorPoller ¶ added in v0.7.0
func NewValidatorPoller( log aggkitcommon.Logger, storage db.AggSenderStorage, proposerSigner signertypes.Signer, multisigQuerier types.MultisigQuerier, validatorClientCfg *grpc.ClientConfig, ) *validatorPoller
NewValidatorPoller creates a new ValidatorCommittee instance
Types ¶
type AggSender ¶
type AggSender struct {
// contains filtered or unexported fields
}
AggSender is a component that will send certificates to the aggLayer
func New ¶
func New( ctx context.Context, logger *log.Logger, cfg config.Config, aggLayerClient agglayer.AgglayerClientInterface, l1InfoTreeSyncer types.L1InfoTreeSyncer, l2Syncer types.L2BridgeSyncer, epochNotifier types.EpochNotifier, l1Client aggkittypes.BaseEthereumClienter, l2Client aggkittypes.BaseEthereumClienter, rollupDataQuerier types.RollupDataQuerier, committeeQuerier types.MultisigQuerier, ) (*AggSender, error)
New returns a new AggSender instance
func (*AggSender) ForceTriggerCertitificate ¶ added in v0.7.2
func (a *AggSender) ForceTriggerCertitificate()
func (*AggSender) GetRPCServices ¶
GetRPCServices returns the list of services that the RPC provider exposes
func (*AggSender) Info ¶
func (a *AggSender) Info() types.AggsenderInfo
type AggsenderValidator ¶ added in v0.7.0
type AggsenderValidator struct {
// contains filtered or unexported fields
}
func NewAggsenderValidator ¶ added in v0.7.0
func NewAggsenderValidator(ctx context.Context, logger aggkitcommon.Logger, cfg validator.Config, flow types.AggsenderVerifierFlow, l1InfoTreeDataQuerier validator.L1InfoTreeRootByLeafQuerier, aggLayerClient agglayer.AggLayerClientCertificateIDQuerier, certQuerier types.CertificateQuerier, aggchainFEPQuerier types.AggchainFEPRollupQuerier, lerQuerier types.LERQuerier, signer signertypes.Signer) (*AggsenderValidator, error)
func (*AggsenderValidator) Start ¶ added in v0.7.0
func (a *AggsenderValidator) Start(ctx context.Context)
func (*AggsenderValidator) ValidateCertificate ¶ added in v0.7.0
func (a *AggsenderValidator) ValidateCertificate(ctx context.Context, params types.VerifyIncomingRequest) error
ValidateCertificate validates the incoming certificate against the previous one.
type BlockNotifierPolling ¶
type BlockNotifierPolling struct {
types.GenericSubscriber[types.EventNewBlock]
// contains filtered or unexported fields
}
func NewBlockNotifierPolling ¶
func NewBlockNotifierPolling(ethClient aggkittypes.BaseEthereumClienter, config ConfigBlockNotifierPolling, logger aggkitcommon.Logger, subscriber types.GenericSubscriber[types.EventNewBlock]) (*BlockNotifierPolling, error)
NewBlockNotifierPolling creates a new BlockNotifierPolling. if param `subscriber` is nil a new GenericSubscriberImpl[types.EventNewBlock] will be created. To use this class you need to subscribe and each time that a new block appear the subscriber will be notified through the channel. (check unit tests TestExploratoryBlockNotifierPolling for more information)
func (*BlockNotifierPolling) GetCurrentBlockNumber ¶ added in v0.0.2
func (b *BlockNotifierPolling) GetCurrentBlockNumber() uint64
func (*BlockNotifierPolling) Start ¶
func (b *BlockNotifierPolling) Start(ctx context.Context)
Start starts the BlockNotifierPolling blocking the current goroutine
func (*BlockNotifierPolling) String ¶
func (b *BlockNotifierPolling) String() string
type ConfigBlockNotifierPolling ¶
type ConfigBlockNotifierPolling struct {
// BlockFinalityType is the finality of the block to be notified
BlockFinalityType aggkittypes.BlockNumberFinality
// CheckNewBlockInterval is the interval at which the AggSender will check for new blocks
// if is 0 it will be calculated automatically
CheckNewBlockInterval time.Duration
}
type ConfigEpochNotifierPerBlock ¶
type ConfigEpochNotifierPerBlock struct {
StartingEpochBlock uint64
NumBlockPerEpoch uint
// EpochNotificationPercentage
// 0 -> begin new Epoch
// 50 -> middle of epoch
// 100 -> end of epoch (same as 0)
EpochNotificationPercentage uint
}
func NewConfigEpochNotifierPerBlock ¶
func NewConfigEpochNotifierPerBlock(ctx context.Context, agglayerClient agglayer.AggLayerClientGetEpochConfiguration, epochNotificationPercentage uint) (*ConfigEpochNotifierPerBlock, error)
func (*ConfigEpochNotifierPerBlock) String ¶
func (c *ConfigEpochNotifierPerBlock) String() string
func (*ConfigEpochNotifierPerBlock) Validate ¶
func (c *ConfigEpochNotifierPerBlock) Validate() error
type EpochNotifierPerBlock ¶
type EpochNotifierPerBlock struct {
Config ConfigEpochNotifierPerBlock
types.GenericSubscriber[types.EpochEvent]
// contains filtered or unexported fields
}
func NewEpochNotifierPerBlock ¶
func NewEpochNotifierPerBlock(blockNotifier types.BlockNotifier, logger aggkitcommon.Logger, config ConfigEpochNotifierPerBlock, subscriber types.GenericSubscriber[types.EpochEvent]) (*EpochNotifierPerBlock, error)
func (*EpochNotifierPerBlock) ForcePublishEpochEvent ¶ added in v0.7.2
func (e *EpochNotifierPerBlock) ForcePublishEpochEvent()
func (*EpochNotifierPerBlock) GetEpochStatus ¶ added in v0.0.2
func (e *EpochNotifierPerBlock) GetEpochStatus() types.EpochStatus
GetCurrentStatus returns the current status of the epoch
func (*EpochNotifierPerBlock) Start ¶
func (e *EpochNotifierPerBlock) Start(ctx context.Context)
Start starts the notifier synchronously
func (*EpochNotifierPerBlock) StartAsync ¶
func (e *EpochNotifierPerBlock) StartAsync(ctx context.Context)
StartAsync starts the notifier in a goroutine
func (*EpochNotifierPerBlock) String ¶
func (e *EpochNotifierPerBlock) String() string
type ExtraInfoEventEpoch ¶
type ExtraInfoEventEpoch struct {
PendingBlocks int
}
func (*ExtraInfoEventEpoch) String ¶
func (e *ExtraInfoEventEpoch) String() string
type GenericSubscriberImpl ¶
type GenericSubscriberImpl[T any] struct { // contains filtered or unexported fields }
func NewGenericSubscriberImpl ¶
func NewGenericSubscriberImpl[T any]() *GenericSubscriberImpl[T]
func (*GenericSubscriberImpl[T]) Publish ¶
func (g *GenericSubscriberImpl[T]) Publish(data T)
func (*GenericSubscriberImpl[T]) Subscribe ¶
func (g *GenericSubscriberImpl[T]) Subscribe(subscriberName string) <-chan T