To my understanding, a grin transaction happens in three steps:
- Sender → Receiver
- Receiver → Sender
- Sender → Chain
Also to my understanding, if Step 3 is lost and never gets to the chain, the transaction never happened, and so to cancel the transaction, “recover” the grin, and invalidate Steps 1 & 2, the Sender needs to re-send the same Step 1 message, but to a different receiver. Once that re-sent transaction is confirmed, if the old Step 3 data then reappears and tries to get confirmed, it will fail.
Is this correct? Am I using any terms incorrectly? Thanks!