My understanding of how to send tokens from MetaMask is you specify:
A) how much you want to send, and
B) estimated gas fees (which is variable moment-to-moment and will be taken from your remaining balance, rather than from A)
As a result, the recipient address will receive the exact amount entered in A, but the exact amount that will be taken from your wallet (A + B) is unknown prior to sending. This works well if sending to a 3rd party since the 3rd party will receive exactly what you intend to send to them (what they expect to receive) regardless of cost of B.
However, if transferring tokens between two of my own wallets (lets call it a transfer from wallet 1 to wallet 2), I would would prefer to exactly specify the total amount (A + B) that I want to leave wallet 1. This would result in a variable amount being received in wallet 2 (because A will vary depending on how much is used for B when the transfer is executed). But that’s ok in this scenario because wallet 2 is my own wallet.
Is this possible, i.e. it possible to instead specify an exact amount that you want to leave your wallet (exact amount for A + B)?
In this case it seems to me that it’s impossible to remove 100% of funds from a wallet you want to stop using. Due to the need to specify exactly how much the recipient wallet will receive and estimate the gas price when setting up the transfer, it’s inevitable a small amount of crypto will remain in the wallet you want to stop using (as the estimated gas will probably not be exactly equal to the actual gas). Is this correct?
I think so.
you can now enable a feature called Enhanced Gas UI in settings of MetaMask. Currently only available on Extension , this new feature aligns the user experience more closely with the gas market.