For the complete documentation index, see llms.txt. This page is also available as Markdown.

Booster

The main deposit contract for LP tokens

The booster.sol is our main deposit contract for LP tokens.

//main Convex contract(booster.sol) basic interface
interface IConvex{
    //deposit into convex, receive a tokenized deposit.  parameter to stake immediately
    function deposit(uint256 _pid, uint256 _amount, bool _stake) external returns(bool);
    //burn a tokenized deposit to receive curve lp tokens back
    function withdraw(uint256 _pid, uint256 _amount) external returns(bool);
}

Pool Info

To gather pool information access the poolInfo array

//number of pools
var poolLength = await booster.poolLength()
//get information for pool "n"
var poolInfo = await booster.poolInfo(n)

Pool information is returned in the following struct.

struct PoolInfo {
        address lptoken;
        address token;
        address gauge;
        address crvRewards;
        address stash;
        bool shutdown;
}

lptoken: the underlying token(ex. the curve lp token) token: the convex deposit token(a 1:1 token representing an lp deposit). The supply of this token can be used to calculate the TVL of the pool gauge: the curve "gauge" or staking contract used by the pool crvRewards: the main reward contract for the pool stash: a helper contract used to hold extra rewards (like snx) on behalf of the pool until distribution is called shutdown: a shutdown flag of the pool

Deposits

There are two deposit commands, deposit() and depositAll(). Depositing into the booster will return a "deposit token" as a receipt. This token can be staked in the rewards contract to earn CRV and other rewards.

Withdrawals

There are two withdraw commands, withdraw() and withdrawAll(). By burning a convex deposit token you can receive the underlying LP token.

Last updated