0 txs
0 calls
constructor
No constructor.
functions
CAMPAIGN_MANAGER_ROLE
viewfunction CAMPAIGN_MANAGER_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
distributionEnabled
viewfunction distributionEnabled() view returns (bool)
DISTRIBUTOR_ROLE
viewfunction DISTRIBUTOR_ROLE() view returns (bytes32)
getCampaign
viewfunction getCampaign() view returns (uint256 startTime, uint256 endTime, uint256 amount, uint256 remainingAmount, bool isActive)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isCampaignManager
viewfunction isCampaignManager(address user) view returns (bool)
isDistributor
viewfunction isDistributor(address user) view returns (bool)
lastDistribution
viewfunction lastDistribution() view returns (uint256)
mfd
viewfunction mfd() view returns (address)
rewardToken
viewfunction rewardToken() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
distributeRewards
nonpayablefunction distributeRewards()
grantCampaignManagerRole
nonpayablefunction grantCampaignManagerRole(address account)
grantDistributorRole
nonpayablefunction grantDistributorRole(address account)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _mfd, address _rewardToken, address __owner)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCampaign
nonpayablefunction setCampaign(uint256 startTime, uint256 endTime, uint256 amount)
withdrawTokens
nonpayablefunction withdrawTokens(address _token, address _recipient)
events
CampaignSet
event CampaignSet(address indexed sender, uint256 startTime, uint256 endTime, uint256 amount, uint256 actualAmount)
Initialized
event Initialized(address indexed mfd, address indexed rewardToken)
Initialized
event Initialized(uint8 version)
RewardsDistributed
event RewardsDistributed(address indexed sender, address indexed mfd, uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
WithdrawTokens
event WithdrawTokens(address indexed sender, address indexed token, address indexed recipient, uint256 tokenBalance)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5060016000556118bd806100256000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806391d14854116100b8578063b0c634ee1161007c578063b0c634ee146102a3578063c0c53b8b146102d4578063c3041577146102e7578063d547741f146102fa578063f0bd87cc1461030d578063f7c618c11461032257600080fd5b806391d1485414610257578063a217fddf1461026a578063a522ad2514610272578063a717639c14610285578063a762f58a1461028e57600080fd5b806351e593e11161010a57806351e593e1146101fb5780636f4a2cd01461020e5780637ed2c2e31461021657806386608326146102295780638bba2a0a146102315780638f0c86fa1461024457600080fd5b806301ffc9a714610147578063236b8e3a1461016f578063248a9ca3146101a15780632f2ff15d146101d357806336568abe146101e8575b600080fd5b61015a6101553660046114e6565b610335565b60405190151581526020015b60405180910390f35b61017761036c565b6040805195865260208601949094529284019190915260608301521515608082015260a001610166565b6101c56101af366004611510565b6000908152600160208190526040909120015490565b604051908152602001610166565b6101e66101e1366004611545565b610401565b005b6101e66101f6366004611545565b61042c565b6101e6610209366004611571565b6104af565b6101e661068d565b61015a61022436600461159d565b610859565b61015a610873565b6101e661023f36600461159d565b61090d565b61015a61025236600461159d565b610930565b61015a610265366004611545565b610946565b6101c5600081565b6101e66102803660046115b8565b610971565b6101c560075481565b6101c560008051602061184883398151915281565b6002546102bc906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610166565b6101e66102e23660046115e2565b610ab2565b6101e66102f536600461159d565b610c85565b6101e6610308366004611545565b610ca5565b6101c560008051602061186883398151915281565b6003546102bc906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b148061036657506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080600080600061037c610ccb565b6003546040516370a0823160e01b81523060048201529192506001600160a01b0316906370a0823190602401602060405180830381865afa1580156103c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e99190611625565b91506004549450600554935060065492509091929394565b6000828152600160208190526040909120015461041d81610ce7565b6104278383610cf1565b505050565b6001600160a01b03811633146104a15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104ab8282610d5c565b5050565b6104b7610dc3565b6104bf610e1d565b8282116104f45760405162461bcd60e51b815260206004820152600360248201526249434d60e81b6044820152606401610498565b80156105b857600354604051636eb1769f60e11b815233600482015230602482015282916001600160a01b03169063dd62ed3e90604401602060405180830381865afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c9190611625565b10156105a05760405162461bcd60e51b815260206004820152600360248201526212505360ea1b6044820152606401610498565b6003546105b8906001600160a01b0316333084610e67565b6004838155600583905560078490556003546040516370a0823160e01b815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106339190611625565b60068190556040805185815260208101859052908101839052606081019190915233907f77197285e577d075d783b1179abd26dcdccc5925974e20dd0e7f2faf782d251a9060800160405180910390a26104276001600055565b610695610dc3565b61069d610ed2565b6106a5610f1c565b6106ad610ccb565b6106df5760405162461bcd60e51b81526020600482015260036024820152624e414360e81b6044820152606401610498565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074c9190611625565b9050600081116107845760405162461bcd60e51b81526020600482015260036024820152625a414d60e81b6044820152606401610498565b600061079b60075442610fdb90919063ffffffff16565b905060006107b6600754600554610fdb90919063ffffffff16565b905082818310156107d8576107d5826107cf8587610fee565b90610ffa565b90505b6002546003546107fc916001600160a01b0391821691620100009091041683611006565b42600755600254604051828152620100009091046001600160a01b03169033907f92d8e67e11e35152e7b525077fc4cf66393423d128ce3b803453b22533c576419060200160405180910390a3505050506108576001600055565b565b600061036660008051602061184883398151915283610946565b6003546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e49190611625565b90506108ee610ccb565b80156108fb575060075442115b80156109075750600081115b91505090565b610915611036565b61092d60008051602061186883398151915282610401565b50565b6000610366600080516020611868833981519152835b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6003546001600160a01b03838116911614156109945761098f610e1d565b61099c565b61099c611036565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a099190611625565b905060008111610a415760405162461bcd60e51b815260206004820152600360248201526216909360ea1b6044820152606401610498565b610a556001600160a01b0383168483611006565b826001600160a01b0316846001600160a01b0316336001600160a01b03167fc9e8848e763791df46dee01dfdd8f0eb58cd33dd15e0773146866af844e8f09b84604051610aa491815260200190565b60405180910390a450505050565b600254610100900460ff1615808015610ad25750600254600160ff909116105b80610aec5750303b158015610aec575060025460ff166001145b610b4f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610498565b6002805460ff191660011790558015610b72576002805461ff0019166101001790555b6001600160a01b03841615801590610b9257506001600160a01b03831615155b610bc45760405162461bcd60e51b815260206004820152600360248201526216905160ea1b6044820152606401610498565b610bcf600083611073565b600280546001600160a01b0380871662010000810262010000600160b01b031990931692909217909255600380549286166001600160a01b0319909316831790556040517f3cd5ec01b1ae7cfec6ca1863e2cd6aa25d6d1702825803ff2b7cc95010fffdc290600090a38015610c7f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610c8d611036565b61092d60008051602061184883398151915282610401565b60008281526001602081905260409091200154610cc181610ce7565b6104278383610d5c565b60006004544210158015610ce25750600554600754105b905090565b61092d813361107d565b610cfb8282610946565b6104ab5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b610d668282610946565b156104ab5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60026000541415610e165760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610498565b6002600055565b610e3560008051602061184883398151915233610946565b6108575760405162461bcd60e51b8152602060048201526003602482015262524e4d60e81b6044820152606401610498565b6040516001600160a01b0380851660248301528316604482015260648101829052610c7f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526110d6565b610eea60008051602061186883398151915233610946565b6108575760405162461bcd60e51b815260206004820152600360248201526214939160ea1b6044820152606401610498565b60025460035460405163091cbb3f60e31b81526001600160a01b039182166004820152600092620100009004909116906348e5d9f890602401606060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f96919061163e565b509150508015801590610fa95750428114155b61092d5760405162461bcd60e51b815260206004820152600360248201526212531560ea1b6044820152606401610498565b6000610fe78284611682565b9392505050565b6000610fe78284611699565b6000610fe782846116b8565b6040516001600160a01b03831660248201526044810182905261042790849063a9059cbb60e01b90606401610e9b565b611041600033610946565b6108575760405162461bcd60e51b8152602060048201526003602482015262524e4160e81b6044820152606401610498565b6104ab8282610cf1565b6110878282610946565b6104ab57611094816111ab565b61109f8360206111bd565b6040516020016110b0929190611706565b60408051601f198184030181529082905262461bcd60e51b82526104989160040161177b565b600061112b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113599092919063ffffffff16565b905080516000148061114c57508080602001905181019061114c91906117ae565b6104275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610498565b60606103666001600160a01b03831660145b606060006111cc836002611699565b6111d79060026117d0565b67ffffffffffffffff8111156111ef576111ef6117e8565b6040519080825280601f01601f191660200182016040528015611219576020820181803683370190505b509050600360fc1b81600081518110611234576112346117fe565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611263576112636117fe565b60200101906001600160f81b031916908160001a9053506000611287846002611699565b6112929060016117d0565b90505b600181111561130a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112c6576112c66117fe565b1a60f81b8282815181106112dc576112dc6117fe565b60200101906001600160f81b031916908160001a90535060049490941c9361130381611814565b9050611295565b508315610fe75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610498565b60606113688484600085611370565b949350505050565b6060824710156113d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610498565b600080866001600160a01b031685876040516113ed919061182b565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b50915091506114408783838761144b565b979650505050505050565b606083156114b75782516114b0576001600160a01b0385163b6114b05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610498565b5081611368565b61136883838151156114cc5781518083602001fd5b8060405162461bcd60e51b8152600401610498919061177b565b6000602082840312156114f857600080fd5b81356001600160e01b031981168114610fe757600080fd5b60006020828403121561152257600080fd5b5035919050565b80356001600160a01b038116811461154057600080fd5b919050565b6000806040838503121561155857600080fd5b8235915061156860208401611529565b90509250929050565b60008060006060848603121561158657600080fd5b505081359360208301359350604090920135919050565b6000602082840312156115af57600080fd5b610fe782611529565b600080604083850312156115cb57600080fd5b6115d483611529565b915061156860208401611529565b6000806000606084860312156115f757600080fd5b61160084611529565b925061160e60208501611529565b915061161c60408501611529565b90509250925092565b60006020828403121561163757600080fd5b5051919050565b60008060006060848603121561165357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b6000828210156116945761169461166c565b500390565b60008160001904831182151516156116b3576116b361166c565b500290565b6000826116d557634e487b7160e01b600052601260045260246000fd5b500490565b60005b838110156116f55781810151838201526020016116dd565b83811115610c7f5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161173e8160178501602088016116da565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161176f8160288401602088016116da565b01602801949350505050565b602081526000825180602084015261179a8160408501602087016116da565b601f01601f19169190910160400192915050565b6000602082840312156117c057600080fd5b81518015158114610fe757600080fd5b600082198211156117e3576117e361166c565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816118235761182361166c565b506000190190565b6000825161183d8184602087016116da565b919091019291505056fe5022544358ee0bece556b72ae8983c7f24341bd5b9483ce8a19bff5efbb2de92fbd454f36a7e1a388bd6fc3ab10d434aa4578f811acbbcf33afb1c697486313ca2646970667358221220e37d23717f271574b3cd5dc48b1470eeff0bea1344bdd5a2defb78060b29520464736f6c634300080c0033