Fix giving and receiving amounts

Fixes #1127, and a few other bugs (including the 4th item of #2630).
Code smell to be using `FAKE_*` in a non-testing context. What's going on here?