-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Summary
Responsibility between x/participationrewards and x/claimsmanager is currently woolly.
In order to bring clarity to responsibilities of each, x/claimsmanager should comprise all the logic of validating claims, and x/participationrewards should only concern itself with receiving claim submissions and distributing rewards.
Additionally, in order to support x/gbp, x/claimsmanager should support a ClaimableEvent. At present, only one of these exists - the epoch. A new epoch event should be created per epoch (x/pr should call x/cm to do so), and claims should be registered against this epoch; the x/pr distribution of rewards should then also based distribution on the claims pertaining to the latest relevant claimable event.
We need to determine how various types of protocoldata relate to a claimable event. It is likely that we determine whether each PD is of type 'static' or 'dynamic' (not sure if there are any that will be both; i.e. static part and dynamic part). Dynamic PD will update via hooks for each new event (e.g. state of pools), and Static will not (e.g. osmosisparams or membraneparams). For dynamic, we need to store a new struct (EventProtocolData) for each PD/event tuple.