Maverick Docs
  • Introducing Maverick
  • Getting Started
    • 🖥️The Maverick V2 UI
    • 👛Connect a Wallet
    • ⛓️Choose a Network
    • 🪙Approving Tokens
  • Guides
    • 🤝Traders
      • How to Make a Swap
    • 💰Liquidity Providers
      • Understanding Liquidity Provision
      • Understanding Modes
      • How to Add Liquidity
      • How to Deploy a New Pool
      • How to Check Position Balances
      • How to Manage Liquidity in a Pool
      • How to Migrate from V1 to V2
      • Understanding Permanent Loss
      • Liquidity Strategies
    • ⚡Incentives
      • Understanding Boosted Positions
      • Understanding Incentives
      • How to Join a Boosted Position
      • How to Create a Boosted Position
      • How to Manage a Boosted Position
      • How to Add Incentives
    • 🎡veFlywheel
      • veFlywheel Basics
      • Guide to veFlywheel Emissions
      • How to Vote to Direct Emissions
    • 👩‍🏫Advanced Tutorials
      • Single-Sided Incentives
  • Technical Reference
    • Contract Addresses
      • V1 Contract Addresses
      • V2 Contract Addresses
    • Maverick V1
      • V1 Whitepaper
      • V1 Contracts
        • Router
        • Pool
        • Factory
        • SlimRouter
    • Maverick V2
      • V2 Whitepaper
      • V2 Contracts
        • Maverick V2 Common Contracts
          • base
            • IMulticall
            • IPayableMulticall
            • Multicall
            • PayableMulticall
          • interfaces
            • IMaverickV2AddLiquidityCallback
            • IMaverickV2Factory
            • IMaverickV2FactoryAdmin
            • IMaverickV2FlashLoanCallback
            • IMaverickV2Pool
            • IMaverickV2PoolAdmin
            • IMaverickV2SwapCallback
          • libraries
            • ArrayOperations
            • Constants
            • Math
            • PoolLib
            • TickMath
            • TransferLib
        • Maverick V2 AMM Contracts
          • poollib
            • Bin
            • Delta
            • Deployer
            • DeployerPermissioned
            • SwapMath
            • Twa
          • MaverickV2Factory
          • MaverickV2Pool
          • MaverickV2PoolPermissioned
        • Maverick V2 Reward Contracts
          • interfaces
            • IMaverickV2IncentiveMatcher
            • IMaverickV2IncentiveMatcherFactory
            • IMaverickV2Reward
            • IMaverickV2RewardFactory
            • IMaverickV2RewardRouter
            • IMaverickV2RewardVault
            • IMaverickV2VotingEscrowBase
            • IMaverickV2VotingEscrow
            • IMaverickV2VotingEscrowFactory
            • IMaverickV2VotingEscrowLens
            • IMaverickV2VotingEscrowWSync
          • libraries
            • IncentiveMatcherDeployer
            • RewardDeployer
            • VotingEscrowDeployer
            • VotingEscrowWSyncDeployer
          • rewardbase
            • IRewardAccounting
            • RewardAccounting
          • votingescrowbase
            • HistoricalBalance
            • IHistoricalBalance
            • ILegacyVeMav
            • VotingEscrow
          • MaverickV2IncentiveMatcher
          • MaverickV2IncentiveMatcherFactory
          • MaverickV2Reward
          • MaverickV2RewardFactory
          • MaverickV2RewardRouter
          • MaverickV2RewardVault
          • MaverickV2VotingEscrow
          • MaverickV2VotingEscrowFactory
          • MaverickV2VotingEscrowLens
          • MaverickV2VotingEscrowWSync
        • Maverick V2 Supplemental Contracts
          • base
            • Checks
            • IChecks
            • IMigrateBins
            • MigrateBins
          • boostedpositionbase
            • BoostedPositionBase
            • IBoostedPositionBase
            • ImmutableArrayGetter
          • interfaces
            • IMaverickV2BoostedPosition
            • IMaverickV2BoostedPositionFactory
            • IMaverickV2LiquidityManager
            • IMaverickV2PoolLens
            • IMaverickV2Position
            • IMaverickV2Quoter
            • IMaverickV2Router
            • IPositionImage
          • libraries
            • BoostedPositionDeployerDynamic
            • BoostedPositionDeployerStatic
            • BytesLib
            • LiquidityUtilities
            • PackLib
            • Path
            • PoolInspection
          • liquiditybase
            • ArgPacker
            • IArgPacker
          • paymentbase
            • IERC20PermitAllowed
            • IPayment
            • ISelfPermit
            • IState
            • IWETH9
            • Payment
            • SelfPermit
            • State
          • positionbase
            • INft
            • Nft
          • routerbase
            • CallbackOperations
            • ExactOutputSlim
            • ICallbackOperations
            • IExactOutputSlim
            • IPushOperations
            • IRouterErrors
            • PushOperations
          • MaverickV2BoostedPositionDynamic
          • MaverickV2BoostedPositionFactory
          • MaverickV2BoostedPositionStatic
          • MaverickV2LiquidityManager
          • MaverickV2PoolLens
          • MaverickV2Position
          • MaverickV2Quoter
          • MaverickV2Router
          • PositionImage
      • V2 API Documentation
      • V2 Testnet Guide
        • Get Sepolia ETH & Test Tokens
        • How to Create a Boosted Position in V2
        • How to Add & Match Incentives
        • How to Create a veFlywheel
    • Development FAQ
    • Finding LP Balances
  • MAV token
    • MAV Token & Tokenomics
    • veMAV & MAV Staking
    • How to Stake MAV
    • Syncing V1 veMAV
    • Airdrop Information
      • Maverick Ecosystem Rewards Pre-Season Airdrop
      • Maverick Governance & S1 Airdrops
  • Further Information
    • Frequently Asked Questions
    • Glossary
    • Security
    • Maverick Wallets
    • Dune Analytics
    • Rebasing Tokens
    • Restricted Territories
    • Delphi Digital Report
Powered by GitBook
On this page
  • State Variables
  • Functions
  1. Technical Reference
  2. Maverick V2
  3. V2 Contracts
  4. Maverick V2 Reward Contracts

MaverickV2RewardFactory

PreviousMaverickV2RewardNextMaverickV2RewardRouter

Last updated 1 year ago

Inherits:

Reward contract factory that facilitates rewarding stakers in BoostedPositions.

State Variables

boostedPositionFactory

This function retrieves the address of the MaverickV2BoostedPositionFactory contract.

IMaverickV2BoostedPositionFactory public immutable boostedPositionFactory;

votingEscrowFactory

This function retrieves the address of the MaverickV2VotingEscrowFactory contract.

IMaverickV2VotingEscrowFactory public immutable votingEscrowFactory;

isFactoryContract

This function checks if a provided IMaverickV2Reward contract is a valid contract created by this factory.

mapping(IMaverickV2Reward => bool) public isFactoryContract;

_rewardsForStakeToken

mapping(IERC20 stakeToken => IMaverickV2Reward[]) private _rewardsForStakeToken;

_allRewards

IMaverickV2Reward[] private _allRewards;

_boostedPositionRewards

IMaverickV2Reward[] private _boostedPositionRewards;

_nonBoostedPositionRewards

IMaverickV2Reward[] private _nonBoostedPositionRewards;

Functions

constructor

constructor(
    IMaverickV2BoostedPositionFactory boostedPositionFactory_,
    IMaverickV2VotingEscrowFactory votingEscrowFactory_
);

createRewardsContract

This function creates a new MaverickV2Reward contract associated with a specific stake token contract and set of reward and voting escrow tokens.

function createRewardsContract(
    IERC20 stakeToken,
    IERC20[] memory rewardTokens,
    IMaverickV2VotingEscrow[] memory veTokens
) public returns (IMaverickV2Reward rewardsContract);

Parameters

Name
Type
Description

stakeToken

IERC20

Token to be staked in reward contract; e.g. a boosted position contract.

rewardTokens

IERC20[]

An array of IERC20 token addresses representing the available reward tokens.

veTokens

IMaverickV2VotingEscrow[]

An array of IMaverickV2VotingEscrow contract addresses representing the associated veTokens for boosting.

Returns

Name
Type
Description

rewardsContract

IMaverickV2Reward

The newly created IMaverickV2Reward contract.

rewardsForStakeToken

This function retrieves a list of all MaverickV2Reward contracts associated with a specific staking token contract within a specified range.

function rewardsForStakeToken(IERC20 stakeToken, uint256 startIndex, uint256 endIndex)
    external
    view
    returns (IMaverickV2Reward[] memory);

Parameters

Name
Type
Description

stakeToken

IERC20

Lookup token.

startIndex

uint256

The starting index of the list to retrieve.

endIndex

uint256

The ending index of the list to retrieve.

Returns

Name
Type
Description

<none>

IMaverickV2Reward[]

rewardsContract An array of IMaverickV2Reward contracts associated with the BoostedPosition within the specified range.

rewards

This function retrieves a list of all MaverickV2Reward contracts within a specified range.

function rewards(uint256 startIndex, uint256 endIndex) external view returns (IMaverickV2Reward[] memory);

Parameters

Name
Type
Description

startIndex

uint256

The starting index of the list to retrieve.

endIndex

uint256

The ending index of the list to retrieve.

Returns

Name
Type
Description

<none>

IMaverickV2Reward[]

rewardsContract An array of IMaverickV2Reward contracts within the specified range.

boostedPositionRewards

function boostedPositionRewards(uint256 startIndex, uint256 endIndex)
    external
    view
    returns (IMaverickV2Reward[] memory);

nonBoostedPositionRewards

function nonBoostedPositionRewards(uint256 startIndex, uint256 endIndex)
    external
    view
    returns (IMaverickV2Reward[] memory);

_checkRewards

function _checkRewards(IERC20 rewardToken, IMaverickV2VotingEscrow veToken) internal view;

_slice

function _slice(IMaverickV2Reward[] storage _rewards, uint256 startIndex, uint256 endIndex)
    internal
    view
    returns (IMaverickV2Reward[] memory returnElements);

IMaverickV2RewardFactory