[m1]-> [m2] -> [m3] -> [m4] | -> [f1] -> [f2] -> [new]
- m - mainchain blocks
- f - fork blocks
- new - tip of the fork that is at greater height than the previous mainchain
In this case we must switch from the mainchain to the fork, due to the height of forkchain being greater than the mainchain.
My question is about transactions in blocks [m3], [m4]. In the case a transaction was in [m3] but not included in either the blocks [f1],[f2]. Since that transaction is not confirmed in the new mainchain (the forkchain) after the switch, would this tx be available for miners again to include for next block? Would this transactions be returned to the rawmempool?
And what if this transaction was added without isStandard check (in case adding in block), should we process isStandard check for this transaction?