Not sure if I'm a fan of the roles accessing the context. It feels like a bit of a boundary issue to me and it's unnecessary. Why is context.destination_account.transfer_in better than:
def transfer_to destination, amount
The other odd thing is both roles have the ContextAccssor mixin, but only one even uses it.