For the sidechain fork mitigation, we need a mechanism to roll-back sidechain state, sidechain blocks and transactions.
Roll-back should be done to a specific sidechain block hash from the past.
Roll-back affects multiple systems and states:
- Sidechain state - apply snapshot for the given sidechain block hash
- Transactions in the TOP pool that have 'InBlock' status and were included in blocks succeeding our roll-back target block, need to be reset to 'Ready' (when we re-import the sidechain blocks, they will move again to 'InBlock' or even 'Finalized)