Skip to content

curvefi/curve-reward-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This RewardManager allows to use deposit_reward_token() only on a preset of gauges provided on contract creation.

The manager can decide on the time and on the size of the reward, but has no access to funds anytime.

If set, a RecoveryGauge can be used to send back funds to a RecoveryAddress

Flowchart

Deploy


graph TD
    subgraph Deployment
        A1[Deployer]
        A2[RewardManager]
        A3[RecoveryGauge]
        A1 -->|deploys| A2
        A1 -->|deploys| A3
    end

    subgraph RewardManager Deploy
        A2 -->|sets| B1[Managers: Manager0, Manager1, Manager3]
        A2 -->|sets| B2[RewardToken: ARB]
        A2 -->|sets| B3[Gauges: RecoveryGauge, Gauge0, Gauge1, Gauge2, Gauge3]
    end

    subgraph RecoveryGauge Deploy
        A3 -->|sets| C1[RecoveryAddress]
    end

Interaction

    subgraph Interaction RewardManager & RecoveryGauge
        D1[Manager]
        D2[RewardManager]
        D1 -->|"deposit_reward_token(gauge, amount)"| D2
        D2 -->|"forwards ARB from Manager" | E1[RecoveryGauge] 
        D2 -->|"forwards ARB from Manager" | R1[Gauge0/1/2]
        D1 -->|"deposit_reward_token_from_contract(gauge, amount)"| D2
        D2 -->| sends ARB from RewardManager| E1
        D2 -->| sends ARB from RewardManager| R1 
        R1 -->| ARB used as reward| Z1[staked lp]
      
        F1[Anyone]
        F1 -->|"recover()"| E1
        E1 -->|sends ARB to| G1[RecoveryAddress]
    end

Origin

Based on https://github.com/curvefi/curve-dao-contracts/blob/master/contracts/streamers/RewardStream.vy

Install

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install eth-ape'[recommended-plugins]'
ape plugins install arbitrum
ape test

With SingleCampaign

  1. Deploy many SingleCampaign contracts instances
  2. Collect all contract addresses from the deployments of the SingleCampaign contracts
  3. Add all contract addresses to the managers array of the RewardManager
  4. Deploy the RewardManager
  5. Set RewardManager contract address and reward receiver address (gauge) for each SingleCampaign
  6. set desired reward epochs for each SingleCampaign

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published