See Why have both txn.sender() and txn.asset_sender() in PyTEAL? - #2 by jannotti
In short:
- the receiver for an Algo payment transaction is
Receiver - the receiver for an ASA transfer is
AssetReceiver - the sender is always
Sender, except for ASA clawback/revoke transactions (Algorand Standard Assets (ASAs) - Algorand Developer Portal)