솔리디티 API
Solidity-docgen으로 생성된 문서
Aura토큰
기본적으로 VoterProxy(Booster)의 "오퍼레이터"가 운영하는 발행 기능이 있는 ERC20입니다.
발행 일정은 스테이킹을 통해 획득한 CRV의 양에 따라 결정되며, 공급 곡선(절벽 등)에 따라 분배됩니다. 이는ConvexToken의 포크입니다.
operator
address operatorvecrvProxy
address vecrvProxyEMISSIONS_MAX_SUPPLY
uint256 EMISSIONS_MAX_SUPPLYINIT_MINT_AMOUNT
uint256 INIT_MINT_AMOUNTtotalCliffs
uint256 totalCliffsreductionPerCliff
uint256 reductionPerCliffminter
address minterminterMinted
uint256 minterMintedInitialised
event Initialised()OperatorChanged
event OperatorChanged(address previousOperator, address newOperator)constructor
constructor(address _proxy, string _nameArg, string _symbolArg) public_proxy
address
CVX VoterProxy
_nameArg
string
Token name
_symbolArg
string
Token symbol
init
function init(address _to, address _minter) externalInitialise and mints initial supply of tokens.
_to
address
Target address to mint.
_minter
address
The minter address.
updateOperator
function updateOperator() publicThis can be called if the operator of the voterProxy somehow changes.
mint
function mint(address _to, uint256 _amount) externalMints AURA to a given user based on the BAL supply schedule.
minterMint
function minterMint(address _to, uint256 _amount) externalAllows minter to mint to a specific address
AuraBalRewardPool
Modifications from convex-platform/contracts/contracts/BaseRewardPool.sol: - Delayed start (tokens transferred then delay is enforced before notification) - One time duration of 14 days - Remove child reward contracts - Penalty on claim at 20%
rewardToken
contract IERC20 rewardTokenstakingToken
contract IERC20 stakingTokenduration
uint256 durationrewardManager
address rewardManagerauraLocker
contract IAuraLocker auraLockerpenaltyForwarder
address penaltyForwarderpendingPenalty
uint256 pendingPenaltystartTime
uint256 startTimeperiodFinish
uint256 periodFinishrewardRate
uint256 rewardRatelastUpdateTime
uint256 lastUpdateTimerewardPerTokenStored
uint256 rewardPerTokenStored_totalSupply
uint256 _totalSupplyuserRewardPerTokenPaid
mapping(address => uint256) userRewardPerTokenPaidrewards
mapping(address => uint256) rewards_balances
mapping(address => uint256) _balancesRewardAdded
event RewardAdded(uint256 reward)Staked
event Staked(address user, uint256 amount)Withdrawn
event Withdrawn(address user, uint256 amount)RewardPaid
event RewardPaid(address user, uint256 reward, bool locked)PenaltyForwarded
event PenaltyForwarded(uint256 amount)Rescued
event Rescued()constructor
constructor(address _stakingToken, address _rewardToken, address _rewardManager, address _auraLocker, address _penaltyForwarder, uint256 _startDelay) publicSimple constructor
_stakingToken
address
Pool LP token
_rewardToken
address
$AURA
_rewardManager
address
Depositor
_auraLocker
address
$AURA lock contract
_penaltyForwarder
address
Address to which penalties are sent
_startDelay
uint256
totalSupply
function totalSupply() public view returns (uint256)balanceOf
function balanceOf(address account) public view returns (uint256)updateReward
modifier updateReward(address account)lastTimeRewardApplicable
function lastTimeRewardApplicable() public view returns (uint256)rewardPerToken
function rewardPerToken() public view returns (uint256)earned
function earned(address account) public view returns (uint256)stake
function stake(uint256 _amount) public returns (bool)stakeAll
function stakeAll() external returns (bool)stakeFor
function stakeFor(address _for, uint256 _amount) public returns (bool)withdraw
function withdraw(uint256 amount, bool claim, bool lock) public returns (bool)getReward
function getReward(bool _lock) public returns (bool)Gives a staker their rewards
_lock
bool
Lock the rewards? If false, takes a 20% haircut
forwardPenalty
function forwardPenalty() publicForwards to the penalty forwarder for distro to Aura Lockers
rescueReward
function rescueReward() publicRescues the reward token provided it hasn't been initiated yet
setLocker
function setLocker(address _newLocker) externalUpdates the locker address
initialiseRewards
function initialiseRewards() external returns (bool)Called once to initialise the rewards based on balance of stakeToken
AuraClaimZap
Claim zap to bundle various reward claims
Claims from all pools, and stakes cvxCrv and CVX if wanted. v2: - change exchange to use curve pool - add getReward(address,token) type - add option to lock cvx - add option use all funds in wallet
crv
address crvcvx
address cvxcvxCrv
address cvxCrvcrvDepositWrapper
address crvDepositWrappercvxCrvRewards
address cvxCrvRewardslocker
address lockerowner
address ownerOptions
enum Options {
ClaimCvxCrv,
ClaimLockedCvx,
ClaimLockedCvxStake,
LockCrvDeposit,
UseAllWalletFunds,
LockCvx
}constructor
constructor(address _crv, address _cvx, address _cvxCrv, address _crvDepositWrapper, address _cvxCrvRewards, address _locker) public_crv
address
CRV token (0xD533a949740bb3306d119CC777fa900bA034cd52);
_cvx
address
CVX token (0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B);
_cvxCrv
address
cvxCRV token (0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7);
_crvDepositWrapper
address
crvDepositWrapper (0x8014595F2AB54cD7c604B00E9fb932176fDc86Ae);
_cvxCrvRewards
address
cvxCrvRewards (0x3Fe65692bfCD0e6CF84cB1E7d24108E434A7587e);
_locker
address
vlCVX (0xD18140b4B819b895A3dba5442F959fA44994AF50);
getName
function getName() external pure returns (string)setApprovals
function setApprovals() externalApprove spending of: crv -> crvDepositor cvxCrv -> cvxCrvRewards cvx -> Locker
_checkOption
function _checkOption(uint256 _mask, uint256 _flag) internal pure returns (bool)Use bitmask to check if option flag is set
claimRewards
function claimRewards(address[] rewardContracts, address[] extraRewardContracts, address[] tokenRewardContracts, address[] tokenRewardTokens, uint256 depositCrvMaxAmount, uint256 minAmountOut, uint256 depositCvxMaxAmount, uint256 options) externalClaim all the rewards
rewardContracts
address[]
Array of addresses for LP token rewards
extraRewardContracts
address[]
Array of addresses for extra rewards
tokenRewardContracts
address[]
Array of addresses for token rewards e.g vlCvxExtraRewardDistribution
tokenRewardTokens
address[]
Array of token reward addresses to use with tokenRewardContracts
depositCrvMaxAmount
uint256
The max amount of CRV to deposit if converting to crvCvx
minAmountOut
uint256
The min amount out for crv:cvxCrv swaps if swapping. Set this to zero if you want to use CrvDepositor instead of balancer swap
depositCvxMaxAmount
uint256
The max amount of CVX to deposit if locking CVX
options
uint256
Claim options
_claimExtras
function _claimExtras(uint256 depositCrvMaxAmount, uint256 minAmountOut, uint256 depositCvxMaxAmount, uint256 removeCrvBalance, uint256 removeCvxBalance, uint256 options) internalClaim additional rewards from: - cvxCrvRewards - cvxLocker
depositCrvMaxAmount
uint256
see claimRewards
minAmountOut
uint256
see claimRewards
depositCvxMaxAmount
uint256
see claimRewards
removeCrvBalance
uint256
crvBalance to ignore and not redeposit (starting Crv balance)
removeCvxBalance
uint256
cvxBalance to ignore and not redeposit (starting Cvx balance)
options
uint256
see claimRewards
AuraLocker
Effectively allows for rolling 16 week lockups of CVX, and provides balances available at each epoch (1 week). Also receives cvxCrv from CvxStakingProxy and redistributes to depositors.
Invdividual and delegatee vote power lookups both use independent accounting mechanisms.
RewardData
struct RewardData {
uint32 periodFinish;
uint32 lastUpdateTime;
uint96 rewardRate;
uint96 rewardPerTokenStored;
}UserData
struct UserData {
uint128 rewardPerTokenPaid;
uint128 rewards;
}EarnedData
struct EarnedData {
address token;
uint256 amount;
}Balances
struct Balances {
uint112 locked;
uint32 nextUnlockIndex;
}LockedBalance
struct LockedBalance {
uint112 amount;
uint32 unlockTime;
}Epoch
struct Epoch {
uint224 supply;
uint32 date;
}DelegateeCheckpoint
struct DelegateeCheckpoint {
uint224 votes;
uint32 epochStart;
}rewardTokens
address[] rewardTokensqueuedRewards
mapping(address => uint256) queuedRewardsnewRewardRatio
uint256 newRewardRatiorewardData
mapping(address => struct AuraLocker.RewardData) rewardDatarewardDistributors
mapping(address => mapping(address => bool)) rewardDistributorsuserData
mapping(address => mapping(address => struct AuraLocker.UserData)) userDatarewardsDuration
uint256 rewardsDurationlockDuration
uint256 lockDurationlockedSupply
uint256 lockedSupplyepochs
struct AuraLocker.Epoch[] epochsbalances
mapping(address => struct AuraLocker.Balances) balancesuserLocks
mapping(address => struct AuraLocker.LockedBalance[]) userLocks_delegates
mapping(address => address) _delegates_checkpointedVotes
mapping(address => struct AuraLocker.DelegateeCheckpoint[]) _checkpointedVotesdelegateeUnlocks
mapping(address => mapping(uint256 => uint256)) delegateeUnlocksblacklist
mapping(address => bool) blackliststakingToken
contract IERC20 stakingTokencvxCrv
address cvxCrvdenominator
uint256 denominatorcvxcrvStaking
address cvxcrvStakingkickRewardPerEpoch
uint256 kickRewardPerEpochkickRewardEpochDelay
uint256 kickRewardEpochDelayisShutdown
bool isShutdown_name
string _name_symbol
string _symbol_decimals
uint8 _decimalsDelegateChanged
event DelegateChanged(address delegator, address fromDelegate, address toDelegate)DelegateCheckpointed
event DelegateCheckpointed(address delegate)Recovered
event Recovered(address _token, uint256 _amount)RewardPaid
event RewardPaid(address _user, address _rewardsToken, uint256 _reward)Staked
event Staked(address _user, uint256 _paidAmount, uint256 _lockedAmount)Withdrawn
event Withdrawn(address _user, uint256 _amount, bool _relocked)KickReward
event KickReward(address _user, address _kicked, uint256 _reward)RewardAdded
event RewardAdded(address _token, uint256 _reward)BlacklistModified
event BlacklistModified(address account, bool blacklisted)KickIncentiveSet
event KickIncentiveSet(uint256 rate, uint256 delay)Shutdown
event Shutdown()constructor
constructor(string _nameArg, string _symbolArg, address _stakingToken, address _cvxCrv, address _cvxCrvStaking) public_nameArg
string
Token name, simples
_symbolArg
string
Token symbol
_stakingToken
address
CVX (0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B)
_cvxCrv
address
cvxCRV (0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7)
_cvxCrvStaking
address
cvxCRV rewards (0x3Fe65692bfCD0e6CF84cB1E7d24108E434A7587e)
updateReward
modifier updateReward(address _account)notBlacklisted
modifier notBlacklisted(address _sender, address _receiver)modifyBlacklist
function modifyBlacklist(address _account, bool _blacklisted) externaladdReward
function addReward(address _rewardsToken, address _distributor) externalapproveRewardDistributor
function approveRewardDistributor(address _rewardsToken, address _distributor, bool _approved) externalsetKickIncentive
function setKickIncentive(uint256 _rate, uint256 _delay) externalshutdown
function shutdown() externalrecoverERC20
function recoverERC20(address _tokenAddress, uint256 _tokenAmount) externalsetApprovals
function setApprovals() externallock
function lock(address _account, uint256 _amount) external_lock
function _lock(address _account, uint256 _amount) internalgetReward
function getReward(address _account) externalgetReward
function getReward(address _account, bool _stake) publicgetReward
function getReward(address _account, bool[] _skipIdx) externalcheckpointEpoch
function checkpointEpoch() external_checkpointEpoch
function _checkpointEpoch() internalprocessExpiredLocks
function processExpiredLocks(bool _relock) externalkickExpiredLocks
function kickExpiredLocks(address _account) externalemergencyWithdraw
function emergencyWithdraw() external_processExpiredLocks
function _processExpiredLocks(address _account, bool _relock, address _rewardAddress, uint256 _checkDelay) internaldelegate
function delegate(address newDelegatee) external virtualDelegate votes from the sender to newDelegatee.
_checkpointDelegate
function _checkpointDelegate(address _account, uint256 _upcomingAddition, uint256 _upcomingDeduction) internaldelegates
function delegates(address account) public view virtual returns (address)Get the address account is currently delegating to.
getVotes
function getVotes(address account) external view returns (uint256)Gets the current votes balance for account
checkpoints
function checkpoints(address account, uint32 pos) external view virtual returns (struct AuraLocker.DelegateeCheckpoint)Get the pos-th checkpoint for account.
numCheckpoints
function numCheckpoints(address account) external view virtual returns (uint32)Get number of checkpoints for account.
getPastVotes
function getPastVotes(address account, uint256 timestamp) public view returns (uint256 votes)Retrieve the number of votes for account at the end of blockNumber.
getPastTotalSupply
function getPastTotalSupply(uint256 timestamp) external view returns (uint256)Retrieve the totalSupply at the end of timestamp. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes!
_checkpointsLookup
function _checkpointsLookup(struct AuraLocker.DelegateeCheckpoint[] ckpts, uint256 epochStart) private view returns (struct AuraLocker.DelegateeCheckpoint)Lookup a value in a list of (sorted) checkpoints. Copied from oz/ERC20Votes.sol
balanceOf
function balanceOf(address _user) external view returns (uint256 amount)balanceAtEpochOf
function balanceAtEpochOf(uint256 _epoch, address _user) public view returns (uint256 amount)lockedBalances
function lockedBalances(address _user) external view returns (uint256 total, uint256 unlockable, uint256 locked, struct AuraLocker.LockedBalance[] lockData)totalSupply
function totalSupply() external view returns (uint256 supply)totalSupplyAtEpoch
function totalSupplyAtEpoch(uint256 _epoch) public view returns (uint256 supply)findEpochId
function findEpochId(uint256 _time) public view returns (uint256 epoch)epochCount
function epochCount() external view returns (uint256)decimals
function decimals() external view returns (uint8)name
function name() external view returns (string)symbol
function symbol() external view returns (string)claimableRewards
function claimableRewards(address _account) external view returns (struct AuraLocker.EarnedData[] userRewards)lastTimeRewardApplicable
function lastTimeRewardApplicable(address _rewardsToken) external view returns (uint256)rewardPerToken
function rewardPerToken(address _rewardsToken) external view returns (uint256)_earned
function _earned(address _user, address _rewardsToken, uint256 _balance) internal view returns (uint256)_lastTimeRewardApplicable
function _lastTimeRewardApplicable(uint256 _finishTime) internal view returns (uint256)_rewardPerToken
function _rewardPerToken(address _rewardsToken) internal view returns (uint256)queueNewRewards
function queueNewRewards(address _rewardsToken, uint256 _rewards) external_notifyReward
function _notifyReward(address _rewardsToken, uint256 _reward) internalAuraMerkleDrop
Forked from convex-platform/contracts/contracts/MerkleAirdrop.sol. Changes: - solc 0.8.11 & OpenZeppelin MerkleDrop - Delayed start w/ trigger - EndTime for withdrawal to treasuryDAO - Penalty on claim & AuraLocker lock (only if address(auraLocker) != 0) - Non custodial (cannot change root)
dao
address daomerkleRoot
bytes32 merkleRootaura
contract IERC20 auraauraLocker
contract IAuraLocker auraLockerpenaltyForwarder
address penaltyForwarderpendingPenalty
uint256 pendingPenaltydeployTime
uint256 deployTimestartTime
uint256 startTimeexpiryTime
uint256 expiryTimehasClaimed
mapping(address => bool) hasClaimedDaoSet
event DaoSet(address newDao)RootSet
event RootSet(bytes32 newRoot)StartedEarly
event StartedEarly()ExpiredWithdrawn
event ExpiredWithdrawn(uint256 amount)LockerSet
event LockerSet(address newLocker)Claimed
event Claimed(address addr, uint256 amt, bool locked)PenaltyForwarded
event PenaltyForwarded(uint256 amount)Rescued
event Rescued()constructor
constructor(address _dao, bytes32 _merkleRoot, address _aura, address _auraLocker, address _penaltyForwarder, uint256 _startDelay, uint256 _expiresAfter) public_dao
address
The Aura Dao
_merkleRoot
bytes32
Merkle root
_aura
address
Aura token
_auraLocker
address
Aura locker contract
_penaltyForwarder
address
PenaltyForwarded contract
_startDelay
uint256
Delay until claim is live
_expiresAfter
uint256
Timestamp claim expires
setDao
function setDao(address _newDao) externalsetRoot
function setRoot(bytes32 _merkleRoot) externalstartEarly
function startEarly() externalwithdrawExpired
function withdrawExpired() externalsetLocker
function setLocker(address _newLocker) externalrescueReward
function rescueReward() publicclaim
function claim(bytes32[] _proof, uint256 _amount, bool _lock) public returns (bool)forwardPenalty
function forwardPenalty() publicAuraMinter
Wraps the AuraToken minterMint function and protects from inflation until 3 years have passed.
Ownership initially owned by the DAO, but likely transferred to smart contract wrapper or additional value system at some stage as directed by token holders.
aura
contract AuraToken auraAura token
inflationProtectionTime
uint256 inflationProtectionTimeTimestamp upon which minting will be possible
constructor
constructor(address _aura, address _dao) publicmint
function mint(address _to, uint256 _amount) externalMint function allows the owner of the contract to inflate AURA post protection time
_to
address
Recipient address
_amount
uint256
Amount of tokens
AuraPenaltyForwarder
Receives a given token and forwards it on to a distribution contract.
distributor
contract IExtraRewardsDistributor distributortoken
contract IERC20 tokendistributionDelay
uint256 distributionDelaylastDistribution
uint256 lastDistributionForwarded
event Forwarded(uint256 amount)DistributorChanged
event DistributorChanged(address newDistributor)constructor
constructor(address _distributor, address _token, uint256 _delay, address _dao) publicDuring deployment approves the distributor to spend all tokens
_distributor
address
Contract that will distribute tokens
_token
address
Token to be distributed
_delay
uint256
Delay between each distribution trigger
_dao
address
Address of DAO
forward
function forward() publicForwards the complete balance of token in this contract to the distributor
setDistributor
function setDistributor(address _distributor) publicUpdates distributor address
AuraStakingProxy
Receives CRV from the Booster as overall reward, then distributes to vlCVX holders. Also acts as a depositor proxy to support deposit/withdrawals from the CVX staking contract.
From CVX: - receive tokens to stake - get current staked balance - withdraw staked tokens - send rewards back to owner(cvx locker) - register token types that can be distributed
crv
address crvcvx
address cvxcvxCrv
address cvxCrvkeeper
address keepercrvDepositorWrapper
address crvDepositorWrapperoutputBps
uint256 outputBpsdenominator
uint256 denominatorrewards
address rewardsowner
address ownerpendingOwner
address pendingOwnercallIncentive
uint256 callIncentiveRewardsDistributed
event RewardsDistributed(address token, uint256 amount)CallIncentiveChanged
event CallIncentiveChanged(uint256 incentive)constructor
constructor(address _rewards, address _crv, address _cvx, address _cvxCrv, address _crvDepositorWrapper, uint256 _outputBps) public_rewards
address
vlCVX
_crv
address
CRV token
_cvx
address
CVX token
_cvxCrv
address
cvxCRV token
_crvDepositorWrapper
address
Wrapper that converts CRV to CRVBPT and deposits
_outputBps
uint256
Configurable output bps where 100% == 10000
setCrvDepositorWrapper
function setCrvDepositorWrapper(address _crvDepositorWrapper, uint256 _outputBps) externalSet CrvDepositorWrapper
_crvDepositorWrapper
address
CrvDepositorWrapper address
_outputBps
uint256
Min output base points
setKeeper
function setKeeper(address _keeper) externalSet keeper
setPendingOwner
function setPendingOwner(address _po) externalSet pending owner
applyPendingOwner
function applyPendingOwner() externalApply pending owner
setCallIncentive
function setCallIncentive(uint256 _incentive) externalSet call incentive
_incentive
uint256
Incentive base points
setRewards
function setRewards(address _rewards) externalSet reward address
setApprovals
function setApprovals() externalApprove crvDepositorWrapper to transfer contract CRV and rewards to transfer cvxCrv
rescueToken
function rescueToken(address _token, address _to) externalTransfer stuck ERC20 tokens to _to
distribute
function distribute(uint256 _minOut) externaldistribute
function distribute() externalCollects cvxCRV rewards from cvxRewardPool, converts any CRV deposited directly from the booster, and then applies the rewards to the cvxLocker, rewarding the caller in the process.
_distribute
function _distribute(uint256 _minOut) internaldistributeOther
function distributeOther(contract IERC20 _token) externalAllow generic token distribution in case a new reward is ever added
AuraVestedEscrow
Vests tokens over a given timeframe to an array of recipients. Allows locking of these tokens directly to staking contract.
Adaptations: - One time initialisation - Consolidation of fundAdmin/admin - Lock in AuraLocker by default - Start and end time
rewardToken
contract IERC20 rewardTokenadmin
address adminfunder
address funderauraLocker
contract IAuraLocker auraLockerstartTime
uint256 startTimeendTime
uint256 endTimetotalTime
uint256 totalTimeinitialised
bool initialisedtotalLocked
mapping(address => uint256) totalLockedtotalClaimed
mapping(address => uint256) totalClaimedFunded
event Funded(address recipient, uint256 reward)Cancelled
event Cancelled(address recipient)Claim
event Claim(address user, uint256 amount, bool locked)constructor
constructor(address rewardToken_, address admin_, address auraLocker_, uint256 starttime_, uint256 endtime_) publicrewardToken_
address
Reward token (AURA)
admin_
address
Admin to cancel rewards
auraLocker_
address
Contract where rewardToken can be staked
starttime_
uint256
Timestamp when claim starts
endtime_
uint256
When vesting ends
setAdmin
function setAdmin(address _admin) externalChange contract admin
_admin
address
New admin address
setLocker
function setLocker(address _auraLocker) externalChange locker contract address
_auraLocker
address
Aura Locker address
fund
function fund(address[] _recipient, uint256[] _amount) externalFund recipients with rewardTokens
_recipient
address[]
Array of recipients to vest rewardTokens for
_amount
uint256[]
Arrary of amount of rewardTokens to vest
cancel
function cancel(address _recipient) externalCancel recipients vesting rewardTokens
_recipient
address
Recipient address
available
function available(address _recipient) public view returns (uint256)Available amount to claim
_recipient
address
Recipient to lookup
remaining
function remaining(address _recipient) public view returns (uint256)Total remaining vested amount
_recipient
address
Recipient to lookup
_totalVestedOf
function _totalVestedOf(address _recipient, uint256 _time) internal view returns (uint256 total)Get total amount vested for this timestamp
_recipient
address
Recipient to lookup
_time
uint256
Timestamp to check vesting amount for
claim
function claim(bool _lock) external_claim
function _claim(address _recipient, bool _lock) internalClaim reward token (Aura) and lock it.
_recipient
address
Address to receive rewards.
_lock
bool
Lock rewards immediately.
Deposits $BAL into a BAL/WETH BPT. Hooks into TWAP to determine minOut.
Abstract contract for depositing BAL -> balBPT -> auraBAL via crvDepositor
BALANCER_VAULT
contract IVault BALANCER_VAULTBAL
address BALWETH
address WETHBALANCER_POOL_TOKEN
address BALANCER_POOL_TOKENBAL_ETH_POOL_ID
bytes32 BAL_ETH_POOL_IDconstructor
constructor(contract IVault _balancerVault, address _bal, address _weth, bytes32 _balETHPoolId) internal_setApprovals
function _setApprovals() internal_getBptPrice
function _getBptPrice() internal view returns (uint256)_getMinOut
function _getMinOut(uint256 amount, uint256 minOutBps) internal view returns (uint256)_investBalToPool
function _investBalToPool(uint256 amount, uint256 minOut) internalBalLiquidityProvider
Provides initial liquidity to a Balancer pool on behalf of a given DAO
startToken
contract IERC20 startTokenpairToken
contract IERC20 pairTokenminPairAmount
uint256 minPairAmountprovider
address providerdao
address daobVault
contract IVault bVaultLiquidityProvided
event LiquidityProvided(uint256[] input, uint256 output)MinPairAmountChanged
event MinPairAmountChanged(uint256 oldMinPairAmount, uint256 newMinPairAmount)constructor
constructor(address _startToken, address _pairToken, uint256 _minPairAmount, address _dao, address _bVault) publicprovideLiquidity
function provideLiquidity(bytes32 _poolId, struct IVault.JoinPoolRequest _request) publicProvides liquidity on behalf of the dao, in a non-custodial manner. Has protections in place to ensure that no erroneous liquidity data gets added.
changeMinPairAmount
function changeMinPairAmount(uint256 _newAmount) externalAllows the DAO to change the minimum amount of the pair token that must be added as liquidity
rescueToken
function rescueToken(address _erc20, uint256 _amount) externalRescues a given token from the contract. Only provider or DAO can call this function.
ChefForwarder
pid
uint256 pidbriber
address briberchef
address chefconstructor
constructor(address _chef) publicsetBriber
function setBriber(address _briber) externalsetPid
function setPid(uint256 _pid) externaldeposit
function deposit(address siphonToken) externalclaim
function claim(address token) externalExtraRewardsDistributor
Allows anyone to distribute rewards to the AuraLocker at a given epoch.
auraLocker
contract IAuraLocker auraLockercanAddReward
mapping(address => bool) canAddRewardrewardData
mapping(address => mapping(uint256 => uint256)) rewardDatarewardEpochs
mapping(address => uint256[]) rewardEpochsuserClaims
mapping(address => mapping(address => uint256)) userClaimsWhitelistModified
event WhitelistModified(address user, bool canAdd)RewardAdded
event RewardAdded(address token, uint256 epoch, uint256 reward)RewardPaid
event RewardPaid(address user, address token, uint256 reward, uint256 index)RewardForfeited
event RewardForfeited(address user, address token, uint256 index)constructor
constructor(address _auraLocker) publicSimple constructor
_auraLocker
address
Aura Locker address
modifyWhitelist
function modifyWhitelist(address _depositor, bool _canAdd) externaladdReward
function addReward(address _token, uint256 _amount) externalAdd a reward to the current epoch. can be called multiple times for the same reward token
_token
address
Reward token address
_amount
uint256
Amount of reward tokenπ
addRewardToEpoch
function addRewardToEpoch(address _token, uint256 _amount, uint256 _epoch) externalAdd reward token to a specific epoch
_token
address
Reward token address
_amount
uint256
Amount of reward tokens to add
_epoch
uint256
Which epoch to add to (must be less than the previous epoch)
_addReward
function _addReward(address _token, uint256 _amount, uint256 _epoch) internalTransfer reward tokens from sender to contract for vlCVX holders
Add reward token for specific epoch
_token
address
Reward token address
_amount
uint256
Amount of reward tokens
_epoch
uint256
Epoch to add tokens to
getReward
function getReward(address _account, address _token) publicClaim rewards for a specific token since the first epoch.
_account
address
Address of vlCVX holder
_token
address
Reward token address
getReward
function getReward(address _token, uint256 _startIndex) publicClaim rewards for a specific token at a specific epoch
_token
address
Reward token address
_startIndex
uint256
Index of rewardEpochs[_token] to start checking for rewards from
_getReward
function _getReward(address _account, address _token, uint256 _startIndex) internalClaim rewards for a specific token at a specific epoch
_account
address
Address of vlCVX holder
_token
address
Reward token address
_startIndex
uint256
Index of rewardEpochs[_token] to start checking for rewards from
forfeitRewards
function forfeitRewards(address _token, uint256 _index) externalAllow a user to set their claimed index forward without claiming rewards Because claims cycle through all periods that a specific reward was given there becomes a situation where, for example, a new user could lock 2 years from now and try to claim a token that was given out every week prior. This would result in a 2mil gas checkpoint.(about 20k gas * 52 weeks * 2 years)
_token
address
Reward token to forfeit
_index
uint256
Epoch index to forfeit from
claimableRewards
function claimableRewards(address _account, address _token) external view returns (uint256)Get claimable rewards (rewardToken) for vlCVX holder
_account
address
Address of vlCVX holder
_token
address
Reward token address
claimableRewardsAtEpoch
function claimableRewardsAtEpoch(address _account, address _token, uint256 _epoch) external view returns (uint256)Get claimable rewards for a token at a specific epoch
_account
address
Address of vlCVX holder
_token
address
Reward token address
_epoch
uint256
The epoch to check for rewards
_allClaimableRewards
function _allClaimableRewards(address _account, address _token, uint256 _startIndex) internal view returns (uint256, uint256)Get all claimable rewards by looping through each epoch starting with the latest saved epoch the user last claimed from
_account
address
Address of vlCVX holder
_token
address
Reward token
_startIndex
uint256
Index of rewardEpochs[_token] to start checking for rewards from
_claimableRewards
function _claimableRewards(address _account, address _token, uint256 _epoch) internal view returns (uint256)Get claimable rewards for a token at a specific epoch
_account
address
Address of vlCVX holder
_token
address
Reward token address
_epoch
uint256
The epoch to check for rewards
rewardEpochsCount
function rewardEpochsCount(address _token) external view returns (uint256)Simply gets the current epoch count for a given reward token
_token
address
Reward token address
[0]
uint256
_epochs Number of epochs
RewardPool
deposit
function deposit(uint256 assets, address receiver) external returns (uint256 shares)RewardPoolDepositWrapper
Peripheral contract that allows users to deposit into a Balancer pool and then stake their BPT into Aura in 1 tx. Flow: - rawToken.transferFrom(user, address(this)) - vault.deposit(rawToken), receive poolToken - poolToken.approve(rewardPool) - rewardPool.deposit(poolToken), converts to auraBPT and then deposits
bVault
contract IVault bVaultconstructor
constructor(address _bVault) publicdepositSingle
function depositSingle(address _rewardPoolAddress, contract IERC20 _inputToken, uint256 _inputAmount, bytes32 _balancerPoolId, struct IVault.JoinPoolRequest _request) externalDeposits a single raw token into a BPT before depositing in reward pool. Requires sender to approve this contract before calling.
Last updated