require.Equal(t,verifier.L2Safe(),sequencer.L2Safe(),"verifier and sequencer see same safe L2 block, while only verifier dealt with the orphan and replay")
require.Equal(t,verifier.L2Safe(),sequencer.L2Safe(),"verifier and sequencer see same safe L2 block, while only verifier dealt with the orphan and replay")
require.Equal(t,sd.RollupCfg.Genesis.L1,verifier.L2Safe().L1Origin,"expected to be back at genesis origin after losing A0 and A1")
require.Equal(t,sd.RollupCfg.Genesis.L1,verifier.L2Safe().L1Origin,"expected to be back at genesis origin after losing A0 and A1")
ifsd.RollupCfg.SpanBatchTime==nil{
ifsd.RollupCfg.DeltaTime==nil{
// before span batch hard fork
// before delta hard fork
require.NotZero(t,verifier.L2Safe().Number,"still preserving old L2 blocks that did not reference reorged L1 chain (assuming more than one L2 block per L1 block)")
require.NotZero(t,verifier.L2Safe().Number,"still preserving old L2 blocks that did not reference reorged L1 chain (assuming more than one L2 block per L1 block)")
require.Equal(t,verifier.L2Safe(),verifier.L2Unsafe(),"head is at safe block after L1 reorg")
require.Equal(t,verifier.L2Safe(),verifier.L2Unsafe(),"head is at safe block after L1 reorg")
}else{
}else{
// after span batch hard fork
// after delta hard fork
require.Zero(t,verifier.L2Safe().Number,"safe head is at genesis block because span batch referenced reorged L1 chain is not accepted")
require.Zero(t,verifier.L2Safe().Number,"safe head is at genesis block because span batch referenced reorged L1 chain is not accepted")
require.Equal(t,verifier.L2Unsafe().ID(),sequencer.L2Unsafe().ParentID(),"head is at the highest unsafe block that references canonical L1 chain(genesis block)")
require.Equal(t,verifier.L2Unsafe().ID(),sequencer.L2Unsafe().ParentID(),"head is at the highest unsafe block that references canonical L1 chain(genesis block)")
batcher.l2BufferedBlock=eth.L2BlockRef{}// must reset batcher to resubmit blocks included in the last batch
batcher.l2BufferedBlock=eth.L2BlockRef{}// must reset batcher to resubmit blocks included in the last batch