Since no one seems to think about how this could have prevented, here is a simple way, which I've applied to lots of things in life, not just cryptocurrency transfers: - If you're making a transfer somewhere with a large amount, do a small transfer first and verify it's working. Confirm at the receiving end before moving big sums. - If you're calling a contract, try it with a small amount first. Verify the parameters…
Sounds great. I'm sure there's checks in place to ensure the smart contract can't have different logic for small amounts and large amounts. Right?
But the best way is to use a trusted contract.
The other ways are pretty absurd burdens to put on a user.