github.com/MetalBlockchain/subnet-evm@v0.4.9/contract-examples/contracts/ExampleRewardManager.sol (about)

     1  //SPDX-License-Identifier: MIT
     2  pragma solidity ^0.8.0;
     3  
     4  import "./IRewardManager.sol";
     5  import "@openzeppelin/contracts/access/Ownable.sol";
     6  
     7  // ExampleRewardManager is a sample wrapper contract for RewardManager precompile.
     8  contract ExampleRewardManager is Ownable {
     9    address constant REWARD_MANAGER_ADDRESS = 0x0200000000000000000000000000000000000004;
    10    IRewardManager rewardManager = IRewardManager(REWARD_MANAGER_ADDRESS);
    11  
    12    constructor() Ownable() {}
    13  
    14    function currentRewardAddress() public view returns (address) {
    15      return rewardManager.currentRewardAddress();
    16    }
    17  
    18    function setRewardAddress(address addr) public onlyOwner {
    19      rewardManager.setRewardAddress(addr);
    20    }
    21  
    22    function allowFeeRecipients() public onlyOwner {
    23      rewardManager.allowFeeRecipients();
    24    }
    25  
    26    function disableRewards() public onlyOwner {
    27      rewardManager.disableRewards();
    28    }
    29  
    30    function areFeeRecipientsAllowed() public view returns (bool) {
    31      return rewardManager.areFeeRecipientsAllowed();
    32    }
    33  }