My basic understanding is that a transaction will continue to exist in the MemPool until it can be completed, (or eventually gets evicted due to the size of the MemPool).
To me, this leads to a strange situation:
- A Wallet tries to spend more BTC than it current has
- Miners reject that transaction (or more properly, fail to confirm it). But the transaction remains in the mempool.
- At some much later point, the Wallet gets more value.
- The previously rejected transaction can suddenly be confirmed.
This is roughly equivalent to bouncing a check with your bank, and then having the check clear days, weeks, or months later when you eventually get the money!
Is this actually how BTC works? Or is there point where a transaction can be officially and completely rejected, just as at it can be confirmed?