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 }