TCR: How to redistribute tokens after challenge is resolved

When an entry or an application in a TCR is challenged, and after the voting for that challenge has ended, the challenge needs to be resolved. Besides taking the proper actions over the entry in the registry, one important part of the resolution is the redistribution of the tokens:

  • If the challenge is not accepted (negative vote result), challenger staked tokens have to be moved to proposer of the entry and voters against, according to TCR definition parameters.
  • If the challenge is accepted (positive vote result), proposer staked tokens have to be moved to challenger of the entry and voters for, according to TCR definition parameters.

This process may seem simple but it can become very expensive. Therefore we should think the best way to do this. This thread is open to discuss about it.

Reference:

Please bring as much context and content to the forum as possible, one of the ideas behind using this is stopping to use Google Docs so much

Makes sense. Edited.

Possible solution #1:

Force voters to claim their rewards. Challenger and proposer tokens would be moved automatically (as this is just 2), but voters should make a transaction to claim and receive tokens after vote is ended and challenge is resolved.
Upside: resolveChallenge wouldn’t be expensive.
Downside: it’s moving the problem to users (voters). It’s not actually making it cheaper, just splitting the cost. The UX would be worse (although a good UI could help here showing pending claims to voters) and some rewards would remain unclaimed. I guess it may happen that in some cases the reward would not be worth the gas cost and the hassle of the claim.

Actually, it’s done this way here.