MaverickV2RewardRouter
Inherits: IMaverickV2RewardRouter, MaverickV2LiquidityManager
Liquidity and Reward contract to facilitate multi-step interactions with adding and staking liquidity in Maverick V2. This contracts inherits all of the functionality of MaverickV2LiquidityManager
that allows the creation of pools and BPs and adds mechanisms to interact with the various reward and ve functionality that are present in v2-rewards. All of the functions are specified as payable
to enable multicall transactions that involve functions that require ETH and those that do not.
State Variables
rewardFactory
This function retrieves the address of the MaverickV2RewardFactory contract associated with this contract.
Functions
constructor
stake
This function stakes any new staking token balance that are in the reward.vault()
for a specified recipient tokenId. Passing input tokenId=0
will cause the stake to mint to either the first tokenId for the caller, or a new NFT tokenId if the sender does not yet have one.
Parameters
Returns
notifyRewardAmount
This function transfers a specified amount of reward tokens from the caller to a reward contract and notifies it to distribute them over a defined duration.
Parameters
Returns
transferAndStake
This function transfers a specified amount of staking tokens from the caller, stakes them on the recipient's behalf, and associates them with a specified reward contract.
Parameters
Returns
transferAndNotifyRewardAmount
This function transfers a specified amount of reward tokens from the caller and adds them to the reward contract as incentives.
Parameters
Returns
createBoostedPositionAndAddLiquidityAndStake
This function creates a new BoostedPosition contract, adds liquidity to a pool using the provided parameters, stakes the received LP tokens, and associates them with a specified reward contract.
Parameters
Returns
createBoostedPositionAndAddLiquidityAndStakeToSender
This function is similar to createBoostedPositionAndAddLiquidityAndStake
but stakes the minted LP tokens for the caller (msg.sender) instead of a specified recipient.
Parameters
Returns
addLiquidityAndMintBoostedPositionAndStake
This function adds liquidity to a pool using a pre-created BoostedPosition contract, stakes the received LP tokens, and associates them with a specified reward contract.
Parameters
Returns
addLiquidityAndMintBoostedPositionAndStakeToSender
This function is similar to addLiquidityAndMintBoostedPositionAndStake
but uses the caller (msg.sender) as the recipient for the minted reward stake.
Parameters
Returns
mintTokenInRewardToSender
mintTokenInReward
sync
This function syncs the balance of a staker's votes on the legacy ve mav contract with the new V2 ve mav contract.
Parameters
Last updated