0 txs
1 call
constructor
constructor(uint256 _editTime, address _votingEscrow, address _rewardToken)
functions
calculateReward
viewfunction calculateReward(address account, uint256 blockTimestampRewardSchedule) view returns (uint256)
editTime
viewfunction editTime() view returns (uint256)
fundManagers
viewfunction fundManagers(address) view returns (bool)
hasClaimed
viewfunction hasClaimed(uint256, address) view returns (bool)
owner
viewfunction owner() view returns (address)
rewardSchedule
viewfunction rewardSchedule(uint256) view returns (uint256)
rewardToken
viewfunction rewardToken() view returns (address)
votingEscrow
viewfunction votingEscrow() view returns (address)
addFundManager
nonpayablefunction addFundManager(address account)
claimRewards
nonpayablefunction claimRewards(uint256[] blockTimestampRewardSchedules)
createRewardSchedule
nonpayablefunction createRewardSchedule(uint256 totalRewards) returns (uint256)
deleteRewardSchedule
nonpayablefunction deleteRewardSchedule(uint256 blockTimestampRewardSchedule)
editRewardSchedule
nonpayablefunction editRewardSchedule(uint256 blockTimestampRewardSchedule, uint256 totalRewards)
removeFundManager
nonpayablefunction removeFundManager(address account)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
FundManagerAdded
event FundManagerAdded(address indexed account)
FundManagerRemoved
event FundManagerRemoved(address indexed account)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardClaimed
event RewardClaimed(address indexed account, uint256[] rewardSchedules, uint256[] rewardAmounts)
RewardScheduleCreated
event RewardScheduleCreated(uint256 createdTime, uint256 totalRewards)
RewardScheduleDeleted
event RewardScheduleDeleted(uint256 blockTimestampRewardSchedule)
RewardScheduleEdited
event RewardScheduleEdited(uint256 blockTimestampRewardSchedule, uint256 oldTotalRewards, uint256 newTotalRewards)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ALREADY_FUND_MANAGER
error ALREADY_FUND_MANAGER()
EDIT_TIME_EXPIRED
error EDIT_TIME_EXPIRED()
FailedInnerCall
error FailedInnerCall()
HAS_CLAIMED
error HAS_CLAIMED()
INVALID_REWARD_SCHEDULE
error INVALID_REWARD_SCHEDULE()
NOT_FUND_MANAGER
error NOT_FUND_MANAGER()
ONLY_FUND_MANAGER
error ONLY_FUND_MANAGER()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
REWARD_CLAIM_NOT_READY
error REWARD_CLAIM_NOT_READY()
REWARD_SCHEDULE_EXIST
error REWARD_SCHEDULE_EXIST()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
ZERO_ADDRESS
error ZERO_ADDRESS()
ZERO_TOTAL_REWARDS
error ZERO_TOTAL_REWARDS()
ZERO_VE_BALANCE
error ZERO_VE_BALANCE()
ZERO_VE_SUPPLY
error ZERO_VE_SUPPLY()
creation bytecode
0x60e060405234801562000010575f80fd5b50604051620014f6380380620014f68339810160408190526200003391620000f2565b33806200005957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000648162000087565b506001805560c0929092526001600160a01b0390811660a0521660805262000130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ed575f80fd5b919050565b5f805f6060848603121562000105575f80fd5b835192506200011760208501620000d6565b91506200012760408501620000d6565b90509250925092565b60805160a05160c051611347620001af5f395f818161022e01528181610615015281816108bf0152610a8301525f8181610152015281816103810152818161042d015281816104ee015261074101525f81816102ad01528181610679015281816106ad0152818161098e01528181610ae60152610be401526113475ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80638da5cb5b11610093578063d9b5494611610063578063d9b5494614610263578063f26ca3d714610276578063f2fde38b14610295578063f7c618c1146102a8575f80fd5b80638da5cb5b146102065780639bee10fd14610216578063ab2e9d5314610229578063b8b1c06214610250575f80fd5b80635d0bf74f116100ce5780635d0bf74f1461018c5780635eac6239146101be578063715018a6146101d1578063873f6f9e146101d9575f80fd5b8063179c4055146100ff5780631852e8d9146101145780631fce06f11461013a5780634f2bfe5b1461014d575b5f80fd5b61011261010d366004611002565b6102cf565b005b61012761012236600461101b565b61037e565b6040519081526020015b60405180910390f35b610112610148366004611043565b61058b565b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610131565b6101ae61019a366004611002565b60046020525f908152604090205460ff1681565b6040519015158152602001610131565b6101126101cc366004611077565b610724565b610112610a06565b6101ae6101e7366004611130565b600360209081525f928352604080842090915290825290205460ff1681565b5f546001600160a01b0316610174565b61011261022436600461115a565b610a19565b6101277f000000000000000000000000000000000000000000000000000000000000000081565b61012761025e36600461115a565b610b4a565b610112610271366004611002565b610c4d565b61012761028436600461115a565b60026020525f908152604090205481565b6101126102a3366004611002565b610d00565b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6102d7610d3f565b6001600160a01b0381166102fe5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b0381165f9081526004602052604090205460ff166103365760405163dcb9119d60e01b815260040160405180910390fd5b6001600160a01b0381165f81815260046020526040808220805460ff19169055517ff729fed89b71d881caa978a45e077735321698f14e5e201f5bb7e725b1c92ec49190a250565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef1c243a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ff9190611171565b6001600160801b03165f0361042757604051635d54416d60e11b815260040160405180910390fd5b620186a07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef1c243a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ab9190611171565b6104b890620186a16111ab565b6104c291906111ea565b6040516370a0823160e01b81526001600160a01b0385811660048301526001600160801b0392909216917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610533573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105579190611171565b5f84815260026020526040902054610578916001600160801b03169061120f565b6105829190611226565b90505b92915050565b610593610d6b565b335f9081526004602052604090205460ff166105c257604051630cb9378360e31b815260040160405180910390fd5b5f8281526002602052604081205490036105ef576040516366d2b52160e11b815260040160405180910390fd5b805f0361060f57604051632c44f4b560e21b815260040160405180910390fd5b4261063a7f000000000000000000000000000000000000000000000000000000000000000084611239565b10156106595760405163902feda560e01b815260040160405180910390fd5b5f8281526002602052604090208054908290556106a06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610d95565b6106d56001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085610df9565b60408051848152602081018390529081018390527f6dad3fa3a5cc4cfab3290e4c802fe861a26aaa131e255acf3b9d59ecb4dc92cb9060600160405180910390a15061072060018055565b5050565b61072c610d6b565b6040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561078e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b29190611171565b6001600160801b03165f036107da576040516317d2521360e11b815260040160405180910390fd5b5f815167ffffffffffffffff8111156107f5576107f5611063565b60405190808252806020026020018201604052801561081e578160200160208202803683370190505b5090505f805b8351811015610980575f8482815181106108405761084061124c565b6020908102919091018101515f818152600383526040808220338352909352919091205490915060ff16151560010361088c5760405163d43cb52160e01b815260040160405180910390fd5b5f8181526002602052604081205490036108b9576040516366d2b52160e11b815260040160405180910390fd5b426108e47f000000000000000000000000000000000000000000000000000000000000000083611239565b111561090357604051631da6ad6d60e21b815260040160405180910390fd5b5f6109273387858151811061091a5761091a61124c565b602002602001015161037e565b5f8381526003602090815260408083203384529091529020805460ff1916600117905590506109568185611239565b93508085848151811061096b5761096b61124c565b60209081029190910101525050600101610824565b506109b56001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610d95565b336001600160a01b03167f66400c3f400f99ba7b07107f36fef77bddcc2ada3a2bdfdfa97172ebb3832a3384846040516109f0929190611299565b60405180910390a25050610a0360018055565b50565b610a0e610d3f565b610a175f610e38565b565b610a21610d6b565b335f9081526004602052604090205460ff16610a5057604051630cb9378360e31b815260040160405180910390fd5b5f818152600260205260408120549003610a7d576040516366d2b52160e11b815260040160405180910390fd5b42610aa87f000000000000000000000000000000000000000000000000000000000000000083611239565b1015610ac75760405163902feda560e01b815260040160405180910390fd5b5f8181526002602052604081208054919055610b0d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610d95565b6040518281527fa780538cb3f87e9bee69e6d1d0e34e068e66cfd7db2f32cfb32f479c60e78d069060200160405180910390a150610a0360018055565b335f9081526004602052604081205460ff16610b7957604051630cb9378360e31b815260040160405180910390fd5b425f9081526002602052604090205415610ba65760405163fbc8119560e01b815260040160405180910390fd5b815f03610bc657604051632c44f4b560e21b815260040160405180910390fd5b425f908152600260205260409020829055610c0c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085610df9565b60408051428152602081018490527fe73ac69e1d677667a22117782bb39b95024d9d9140a8160ca1661aa7ea332dcd910160405180910390a150425b919050565b610c55610d3f565b6001600160a01b038116610c7c5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b0381165f9081526004602052604090205460ff1615610cb55760405163d3fde4a560e01b815260040160405180910390fd5b6001600160a01b0381165f81815260046020526040808220805460ff19166001179055517fd82efd52f4581e3dd7ab3afa01e929164ddbfbeded2cea6f9e2028537b9524b29190a250565b610d08610d3f565b6001600160a01b038116610d3657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610a0381610e38565b5f546001600160a01b03163314610a175760405163118cdaa760e01b8152336004820152602401610d2d565b600260015403610d8e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6040516001600160a01b03838116602483015260448201839052610df491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610e87565b505050565b6040516001600160a01b038481166024830152838116604483015260648201839052610e329186918216906323b872dd90608401610dc2565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610e9b6001600160a01b03841683610ee8565b905080515f14158015610ebf575080806020019051810190610ebd91906112c6565b155b15610df457604051635274afe760e01b81526001600160a01b0384166004820152602401610d2d565b606061058283835f845f80856001600160a01b03168486604051610f0c91906112e5565b5f6040518083038185875af1925050503d805f8114610f46576040519150601f19603f3d011682016040523d82523d5f602084013e610f4b565b606091505b5091509150610f5b868383610f67565b925050505b9392505050565b606082610f7c57610f7782610fc3565b610f60565b8151158015610f9357506001600160a01b0384163b155b15610fbc57604051639996b31560e01b81526001600160a01b0385166004820152602401610d2d565b5080610f60565b805115610fd35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610c48575f80fd5b5f60208284031215611012575f80fd5b61058282610fec565b5f806040838503121561102c575f80fd5b61103583610fec565b946020939093013593505050565b5f8060408385031215611054575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611088575f80fd5b823567ffffffffffffffff8082111561109f575f80fd5b818501915085601f8301126110b2575f80fd5b8135818111156110c4576110c4611063565b8060051b604051601f19603f830116810181811085821117156110e9576110e9611063565b604052918252848201925083810185019188831115611106575f80fd5b938501935b828510156111245784358452938501939285019261110b565b98975050505050505050565b5f8060408385031215611141575f80fd5b8235915061115160208401610fec565b90509250929050565b5f6020828403121561116a575f80fd5b5035919050565b5f60208284031215611181575f80fd5b81516001600160801b0381168114610f60575f80fd5b634e487b7160e01b5f52601160045260245ffd5b6001600160801b038181168382160280821691908281146111ce576111ce611197565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b5f6001600160801b0380841680611203576112036111d6565b92169190910492915050565b808202811582820484141761058557610585611197565b5f82611234576112346111d6565b500490565b8082018082111561058557610585611197565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b8381101561128e57815187529582019590820190600101611272565b509495945050505050565b604081525f6112ab6040830185611260565b82810360208401526112bd8185611260565b95945050505050565b5f602082840312156112d6575f80fd5b81518015158114610f60575f80fd5b5f82515f5b8181101561130457602081860181015185830152016112ea565b505f92019182525091905056fea2646970667358221220e851f4fa9e163299f9f30d8cf6c717e30033d3dffd42385e0567dc2fd6bfb7e664736f6c634300081400330000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000b0528abe78c9065e76770629aa148df49ef6f319000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8