// L1CrossDomainMessengerFailedRelayedMessageIterator is returned from FilterFailedRelayedMessage and is used to iterate over the raw logs and unpacked data for FailedRelayedMessage events raised by the L1CrossDomainMessenger contract.
// L1CrossDomainMessengerFailedRelayedMessageIterator is returned from FilterFailedRelayedMessage and is used to iterate over the raw logs and unpacked data for FailedRelayedMessage events raised by the L1CrossDomainMessenger contract.
// L1CrossDomainMessengerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the L1CrossDomainMessenger contract.
Rawtypes.Log// Blockchain specific contextual infos
}
// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// L1CrossDomainMessengerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the L1CrossDomainMessenger contract.
typeL1CrossDomainMessengerPausedIteratorstruct{
Event*L1CrossDomainMessengerPaused// Event containing the contract specifics and raw log
contract*bind.BoundContract// Generic contract to use for unpacking event data
eventstring// Event name to use for unpacking event data
logschantypes.Log// Log channel receiving the found contract events
subethereum.Subscription// Subscription for errors, completion and termination
donebool// Whether the subscription completed delivering logs
failerror// Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
// L1CrossDomainMessengerRelayedMessageIterator is returned from FilterRelayedMessage and is used to iterate over the raw logs and unpacked data for RelayedMessage events raised by the L1CrossDomainMessenger contract.
// L1CrossDomainMessengerRelayedMessageIterator is returned from FilterRelayedMessage and is used to iterate over the raw logs and unpacked data for RelayedMessage events raised by the L1CrossDomainMessenger contract.
// L1CrossDomainMessengerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the L1CrossDomainMessenger contract.
typeL1CrossDomainMessengerUnpausedIteratorstruct{
Event*L1CrossDomainMessengerUnpaused// Event containing the contract specifics and raw log
contract*bind.BoundContract// Generic contract to use for unpacking event data
eventstring// Event name to use for unpacking event data
logschantypes.Log// Log channel receiving the found contract events
subethereum.Subscription// Subscription for errors, completion and termination
donebool// Whether the subscription completed delivering logs
failerror// Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
// L2CrossDomainMessengerFailedRelayedMessageIterator is returned from FilterFailedRelayedMessage and is used to iterate over the raw logs and unpacked data for FailedRelayedMessage events raised by the L2CrossDomainMessenger contract.
// L2CrossDomainMessengerFailedRelayedMessageIterator is returned from FilterFailedRelayedMessage and is used to iterate over the raw logs and unpacked data for FailedRelayedMessage events raised by the L2CrossDomainMessenger contract.
// L2CrossDomainMessengerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the L2CrossDomainMessenger contract.
Rawtypes.Log// Blockchain specific contextual infos
}
// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// L2CrossDomainMessengerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the L2CrossDomainMessenger contract.
typeL2CrossDomainMessengerPausedIteratorstruct{
Event*L2CrossDomainMessengerPaused// Event containing the contract specifics and raw log
contract*bind.BoundContract// Generic contract to use for unpacking event data
eventstring// Event name to use for unpacking event data
logschantypes.Log// Log channel receiving the found contract events
subethereum.Subscription// Subscription for errors, completion and termination
donebool// Whether the subscription completed delivering logs
failerror// Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
// L2CrossDomainMessengerRelayedMessageIterator is returned from FilterRelayedMessage and is used to iterate over the raw logs and unpacked data for RelayedMessage events raised by the L2CrossDomainMessenger contract.
// L2CrossDomainMessengerRelayedMessageIterator is returned from FilterRelayedMessage and is used to iterate over the raw logs and unpacked data for RelayedMessage events raised by the L2CrossDomainMessenger contract.
// L2CrossDomainMessengerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the L2CrossDomainMessenger contract.
typeL2CrossDomainMessengerUnpausedIteratorstruct{
Event*L2CrossDomainMessengerUnpaused// Event containing the contract specifics and raw log
contract*bind.BoundContract// Generic contract to use for unpacking event data
eventstring// Event name to use for unpacking event data
logschantypes.Log// Log channel receiving the found contract events
subethereum.Subscription// Subscription for errors, completion and termination
donebool// Whether the subscription completed delivering logs
failerror// Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
// After hitting a reset error, it reset derivation, and drops the old L1 chain
sequencer.ActL2PipelineFull(t)
require.Zero(t,sequencer.SyncStatus().UnsafeL2.L1Origin.Number,"back to genesis block with good L1 origin, drop old unsafe L2 chain with bad L1 origins")
// Can build new L2 blocks with good L1 origin
sequencer.ActBuildToL1HeadUnsafe(t)
require.Equal(t,newStatus.HeadL1.Hash,sequencer.SyncStatus().UnsafeL2.L1Origin.Hash,"build L2 chain with new correct L1 origins")
SequencerInconsistentL1Origin:NewEventMetrics(factory,ns,"sequencer_inconsistent_l1_origin","events when the sequencer selects an inconsistent L1 origin"),
returnfmt.Errorf("cannot build new L2 block with L1 origin %s (parent L1 %s) on current L2 head %s with L1 origin %s",l1Origin,l1Origin.ParentHash,l2Head,l2Head.L1Origin)
returnderive.NewResetError(fmt.Errorf("cannot build new L2 block with L1 origin %s (parent L1 %s) on current L2 head %s with L1 origin %s",l1Origin,l1Origin.ParentHash,l2Head,l2Head.L1Origin))
}
}
d.log.Info("creating new block","parent",l2Head,"l1Origin",l1Origin)
d.log.Info("creating new block","parent",l2Head,"l1Origin",l1Origin)