You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our current mechanism for incentivizing pairs of the same denom first directs incentives to CL gauges. Then, CL module retroactively pipes the eligible amounts to balancer based on its liquidity relative to CL.
On main, we already removed the retroactive mechanism from CL module. However, on-chain CL gauges continue to receive all rewards a denom pair is entitled to.
We should update all distribution records to detect CL gauges and associate Group gauges in their place.
Suggested Design
High-Level Upgrade Handler Logic
In v20 upgrade handler, retrieve all DistrRecords.
Retrieve all migration records from x/gamm module
Iterate over all DistrRecords. Read gauge and its type. If NoLock gauge, see if a CL pool with the same ID is present in the migration records. If so, create a Group with that migration record's CL and balancer pool.
Group Creation Changes
Our Groups sync weights during creation. Synching fails whenever there is no volume present in the x/poolmanager module. Since we are just adding the logic for tracking volume today, their volume trackers will be empty. As a result, no Group cannot be created.
We should expose a new method meant to be used internally (e.g. in upgrade handler)
Make a CreateGroupNoSync - can only be called by the incentives module account
Refactor CreateGroup to call CreateGroupNoSync and then sync
In the upgrade handler, we call CreateGroupNoSync
This will initialize groups with zero volume. The volume will be accumulated until the next epoch. At the first epoch, we will use the volume since the upgrade time for determining the incentives split.
Acceptance Criteria
implement CreateGroupNoSync helper in a separate PR & test it
implement upgrade handler logic in a separate PR and test it
The text was updated successfully, but these errors were encountered:
Background
Our current mechanism for incentivizing pairs of the same denom first directs incentives to CL gauges. Then, CL module retroactively pipes the eligible amounts to balancer based on its liquidity relative to CL.
On
main
, we already removed the retroactive mechanism from CL module. However, on-chain CL gauges continue to receive all rewards a denom pair is entitled to.We should update all distribution records to detect CL gauges and associate
Group
gauges in their place.Suggested Design
High-Level Upgrade Handler Logic
In v20 upgrade handler, retrieve all DistrRecords.
Retrieve all migration records from x/gamm module
Iterate over all
DistrRecord
s. Read gauge and its type. If NoLock gauge, see if a CL pool with the same ID is present in the migration records. If so, create aGroup
with that migration record's CL and balancer pool.Group Creation Changes
Our
Group
s sync weights during creation. Synching fails whenever there is no volume present in the x/poolmanager module. Since we are just adding the logic for tracking volume today, their volume trackers will be empty. As a result, noGroup
cannot be created.We should expose a new method meant to be used internally (e.g. in upgrade handler)
This will initialize groups with zero volume. The volume will be accumulated until the next epoch. At the first epoch, we will use the volume since the upgrade time for determining the incentives split.
Acceptance Criteria
CreateGroupNoSync
helper in a separate PR & test itThe text was updated successfully, but these errors were encountered: