Separate accounting for shielded rewards
We should keep a counter of all shielded rewards paid (separately from the MASP balance)
cc @bengtlofgren @mariari @juped
We should also test that we can never withdraw more rewards than were originally paid.
@cwgoes I just want to clarify: is the goal to augment the namadac --balance command to indicate to the user how much of their balance is due to receiving MASP rewards? If so, this would take at most a day. Or do you have something else in mind?
No - the goal is to track in state (accessible with a distinct query command) the total NAM that have ever been allocated (minted through inflation) to shielded rewards and could potentially be withdrawn by using the convert circuit. It's possible that we even do this already - I'm not sure.
Ah, I see. This should be straightforward. This is the variable that holds the total reward to be distributed on an epoch boundary: https://github.com/anoma/namada/blob/5a5838a528ace84c03a1dfc818a50450f6d09459/crates/shielded_token/src/conversion.rs#L288 . We just need to accumulate it.
Probably this task can be done in a few hours. Steps:
- Make new storage key to hold the accumulation of
total_reward - Make a new client command to query and display this storage key
- Output would be a single number labelled roughly
Total NAM allocated to shielded rewards - Since the output is only one number, could we instead just add this output to the
namadac --conversionsquery (which also prints global MASP statistics)?
- Output would be a single number labelled roughly