Allows a user to transfer M between both - yield earning and non-yield earning participants. Deductsamount from sender and Adds to recipient.
Ifsender and recipient are both yield earning or non-yield earning participants
balanceOfMToken,sender−=amountbalanceOfMToken,recipient+=amount
Ifsender is yield earning and recipient is non-yield earning
participantprincipalOfEarningSupplyMToken,sender=amount/indexnowbalanceOfMToken,sender−=principalOfEarningSupplyMToken,sendertotalPrincipalOfEarningSupply−=principalOfEarningSupplyMToken,senderbalanceOfMToken,recipient+=amount
totalNonEarningSupply+=amount
Ifsender is non-yield earning and recipient is yield earning participant
balanceOfMToken,sender−=amounttotalNonEarningSupply−=amountprincipalOfEarningSupplyMToken,recipient=amount/indexnowbalanceOfMToken,recipient+=principalOfEarningSupplyMToken,recipienttotalPrincipalOfEarningSupply+=principalOfEarningSupplyMToken,recipient