namada icon indicating copy to clipboard operation
namada copied to clipboard

Separate accounting for shielded rewards

Open cwgoes opened this issue 2 years ago • 1 comments

We should keep a counter of all shielded rewards paid (separately from the MASP balance)

cc @bengtlofgren @mariari @juped

cwgoes avatar Jul 17 '23 15:07 cwgoes

We should also test that we can never withdraw more rewards than were originally paid.

cwgoes avatar Jul 17 '23 15:07 cwgoes

@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?

murisi avatar May 27 '24 09:05 murisi

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.

cwgoes avatar May 27 '24 09:05 cwgoes

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 --conversions query (which also prints global MASP statistics)?

murisi avatar May 27 '24 10:05 murisi