Emission Manager

circle-info

This contract is a Reward Configurator. It manages reward emission parameters (rates, distribution timelines, strategies) for different assets in the protocol.

Constructor

  • constructor(address owner) Initializes the contract, setting the deployer (or provided address) as the contract owner.


Functions

  • configureAssets(config[]) Configures emission parameters for multiple assets and rewards. Each config entry includes emission rate, total supply, distribution end time, asset, reward token, transfer strategy, and reward price feed ID.

  • getEmissionAdmin(address reward) → address Returns the current emission admin for a given reward token.

  • getRewardsController() → address Returns the address of the RewardsController contract managing reward logic.

  • owner() → address Returns the current owner of the contract.

  • renounceOwnership() Allows the owner to renounce control, leaving the contract without an owner.

  • setClaimer(address user, address claimer) Assigns a claimer for a specific user. The claimer can claim rewards on behalf of that user.

  • setDistributionEnd(address asset, address reward, uint32 newDistributionEnd) Updates the distribution end timestamp for a specific asset-reward pair.

  • setEmissionAdmin(address reward, address admin) Changes the emission admin for a reward token.

  • setEmissionPerSecond(address asset, address[] rewards, uint88[] newEmissionsPerSecond) Updates reward emission rates per second for a given asset across multiple reward tokens.

  • setPyth(address pyth) Sets the Pyth oracle contract address used for price feeds.

  • setRewardPriceId(address reward, bytes32 rewardPriceId) Updates the price feed ID for a specific reward token.

  • setRewardsController(address controller) Sets a new RewardsController contract address.

  • setTransferStrategy(address reward, address transferStrategy) Defines the transfer strategy for how rewards are distributed for a reward token.

  • transferOwnership(address newOwner) Transfers ownership of the contract to a new address.


Events

  • EmissionAdminUpdated(reward, oldAdmin, newAdmin) Emitted when the admin of reward emissions (who can configure distribution) is changed.

  • OwnershipTransferred(previousOwner, newOwner) Emitted when ownership of the contract changes.

Last updated

Was this helpful?