Liquidity gauge depositors can receive not only BAL, but also extra tokens (called ‘reward tokens’). On Ethereum L1, this is relatively straightforward, and there’s already a subDAO managing this. On child chains however (i.e. non-Ethereum L1 chains, such as Polygon or Arbitrum), this task is a bit more nuanced, as the gauge system allows for irrecoverable user error.
ChildChainGaugeTokenAdder is a module that makes adding reward tokens to child chain gauges much safer, and should be the only means by which this is done.
ChildChainGaugeTokenAdder contract (deployment addresses found here) must be granted permission to call
IRewardsOnlyGauge.set_rewards via the AuthorizerAdaptor. Then, the LM multisig
0xc38c5f97B34E175FFd35407fc91a937300E33860 must be granted permission to call
This will be done in multiple networks: the named arguments below should be replaced with the actual constants specified later.
grantRolesToMany on the Authorizer, with:
The LM multisig could misuse its permission and add incorrect or faulty tokens to the gauges. Since these have a limit of 8 tokens and they cannot be removed, such a situation would require a gauge migration.
Alternatively, the LM multisig could designate a distributor that sets overly long distribution durations (e.g. 5000 years), which would effectively make the distributions unusable.
No funds are at risk. The only funds potentially affected are those being distributed, which could be re-distributed over an over by a malicious distributor, dilluting the effective distributon rate.