I couldn’t find clear information on this so I want to make sure I didn’t miss anything: If a block A is re-orged and orphaned by block B and a transaction was in A and not in B, how does the network make sure that this transaction still makes it into a descendant block of B later? To my knowledge, the transaction can not be taken from A because the signature was aggregated and can not be recovered but the transaction should also be removed from the mempool already when block A arrived.
How do nodes and clients deal with this? Is there some kind of secondary mempool to recover signatures or do clients have to rebroadcast a transaction in this scenario to ensure the transaction will still be included in a upcoming block?
Thanks!
FWIW, I already asked this question on reddit but I thought maybe this is a better venue.