[ { "inputs": [ { "internalType": "address", "name": "_forwarder", "type": "address" }, { "internalType": "address", "name": "_stakingToken", "type": "address" }, { "internalType": "address", "name": "_feesVotingReward", "type": "address" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "bool", "name": "_isPool", "type": "bool" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "NotAlive", "type": "error" }, { "inputs": [], "name": "NotAuthorized", "type": "error" }, { "inputs": [], "name": "NotTeam", "type": "error" }, { "inputs": [], "name": "NotVoter", "type": "error" }, { "inputs": [], "name": "RewardRateTooHigh", "type": "error" }, { "inputs": [], "name": "ZeroAmount", "type": "error" }, { "inputs": [], "name": "ZeroRewardRate", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimed0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claimed1", "type": "uint256" } ], "name": "ClaimFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "NotifyReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fees0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fees1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feesVotingReward", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isPool", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastTimeRewardApplicable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastUpdateTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "left", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "notifyRewardWithoutClaim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "periodFinish", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardPerTokenStored", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardRateByEpoch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakingToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ve", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101606040523480156200001257600080fd5b5060405162001ae538038062001ae5833981016040819052620000359162000102565b6001600160a01b03808716608052600160005585811660a05284811660e05283811660c05282166101008190528115156101405260408051630fc2838b60e11b81529051631f850716916004808201926020929091908290030181865afa158015620000a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000cb91906200018b565b6001600160a01b03166101205250620001b0945050505050565b80516001600160a01b0381168114620000fd57600080fd5b919050565b60008060008060008060c087890312156200011c57600080fd5b6200012787620000e5565b95506200013760208801620000e5565b94506200014760408801620000e5565b93506200015760608801620000e5565b92506200016760808801620000e5565b915060a087015180151581146200017d57600080fd5b809150509295509295509295565b6000602082840312156200019e57600080fd5b620001a982620000e5565b9392505050565b60805160a05160c05160e05161010051610120516101405161185c62000289600039600081816104390152610af301526000818161026301526108bb0152600081816102b20152818161063c0152818161073101526110d301526000818161021301528181610c8501528181610cd001528181610d560152610da1015260008181610469015281816107cc01528181610e9d01528181610f080152610f9d015260008181610365015281816105ae01528181610b2101528181610be301526111850152600081816102ed01526109f9015261185c6000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80637b0a47ee116100f9578063c8f33c9111610097578063df136d6511610071578063df136d651461042b578063e2e1c6db14610434578063ebe2b12b1461045b578063f7c618c11461046457600080fd5b8063c8f33c9114610407578063cd3daf9d14610410578063dcdc18dc1461041857600080fd5b806393f1c442116100d357806393f1c442146103b857806394af5b63146103c1578063b6b55f25146103e1578063c00007b0146103f457600080fd5b80637b0a47ee1461038757806380faa57d146103905780638b8763471461039857600080fd5b80633c6b16ab11610166578063572b6c0511610140578063572b6c05146102dd5780636e553f651461032d57806370a082311461034057806372f702f31461036057600080fd5b80633c6b16ab1461029a57806346c96aac146102ad5780634c02a21c146102d457600080fd5b806316e64048116101a257806316e640481461024d57806318160ddd146102555780631f8507161461025e5780632e1a7d4d1461028557600080fd5b80628cc262146101c85780630700037d146101ee5780630fe2f7111461020e575b600080fd5b6101db6101d636600461162d565b61048b565b6040519081526020015b60405180910390f35b6101db6101fc36600461162d565b60086020526000908152604090205481565b6102357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e5565b6101db610508565b6101db60055481565b6102357f000000000000000000000000000000000000000000000000000000000000000081565b61029861029336600461164a565b61053f565b005b6102986102a836600461164a565b610626565b6102357f000000000000000000000000000000000000000000000000000000000000000081565b6101db600b5481565b61031d6102eb36600461162d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b60405190151581526020016101e5565b61029861033b366004611663565b6106cc565b6101db61034e36600461162d565b60066020526000908152604090205481565b6102357f000000000000000000000000000000000000000000000000000000000000000081565b6101db60025481565b6101db6106da565b6101db6103a636600461162d565b60076020526000908152604090205481565b6101db600a5481565b6101db6103cf36600461164a565b60096020526000908152604090205481565b6102986103ef36600461164a565b6106ed565b61029861040236600461162d565b6106fe565b6101db60035481565b6101db610843565b61029861042636600461164a565b6108a5565b6101db60045481565b61031d7f000000000000000000000000000000000000000000000000000000000000000081565b6101db60015481565b6102357f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a7640000906104c1610843565b6104cb91906116a9565b6001600160a01b0385166000908152600660205260409020546104ee91906116bc565b6104f891906116d3565b61050291906116f5565b92915050565b600060015442106105195750600090565b60004260015461052991906116a9565b90506002548161053991906116bc565b91505090565b610547610997565b60006105516109f5565b905061055c81610a39565b816005600082825461056e91906116a9565b90915550506001600160a01b0381166000908152600660205260408120805484929061059b9084906116a9565b909155506105d590506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168284610a86565b806001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161061091815260200190565b60405180910390a2506106236001600055565b50565b61062e610997565b60006106386109f5565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161461068c5760405163c18384c160e01b815260040160405180910390fd5b816000036106ad57604051631f2a200560e01b815260040160405180910390fd5b6106b5610aee565b50506106c18183610e64565b506106236001600055565b6106d68282611095565b5050565b60006106e84260015461124b565b905090565b610623816106f96109f5565b611095565b610706610997565b60006107106109f5565b9050816001600160a01b0316816001600160a01b03161415801561076657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156107845760405163ea8e4eb560e01b815260040160405180910390fd5b61078d82610a39565b6001600160a01b0382166000908152600860205260409020548015610837576001600160a01b038084166000908152600860205260408120556107f3907f0000000000000000000000000000000000000000000000000000000000000000168483610a86565b826001600160a01b03167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc678260405161082e91815260200190565b60405180910390a25b50506106236001600055565b6000600554600003610856575060045490565b600554670de0b6b3a76400006002546003546108706106da565b61087a91906116a9565b61088491906116bc565b61088e91906116bc565b61089891906116d3565b6004546106e891906116f5565b6108ad610997565b60006108b76109f5565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166385f2aef26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093b9190611708565b6001600160a01b0316816001600160a01b03161461096c57604051633a7cfa5d60e21b815260040160405180910390fd5b8160000361098d57604051631f2a200560e01b815260040160405180910390fd5b6106c18183610e64565b6002600054036109ee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610a34575060131936013560601c90565b503390565b610a41610843565b600455610a4c6106da565b600355610a588161048b565b6001600160a01b03909116600090815260086020908152604080832093909355600454600790915291902055565b6040516001600160a01b038316602482015260448101829052610ae990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611263565b505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000610b1f5750600091829150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d294f0936040518163ffffffff1660e01b815260040160408051808303816000875af1158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba29190611725565b909250905081151580610bb55750600081115b15610e6057600082600a54610bca91906116f5565b9050600082600b54610bdc91906116f5565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004016040805180830381865afa158015610c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c629190611749565b9150915062093a80841115610d31576000600a55610caa6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000086611335565b60405163b66503cf60e01b81526001600160a01b038381166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169063b66503cf90604401600060405180830381600087803b158015610d1457600080fd5b505af1158015610d28573d6000803e3d6000fd5b50505050610d37565b600a8490555b62093a80831115610e02576000600b55610d7b6001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000085611335565b60405163b66503cf60e01b81526001600160a01b038281166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063b66503cf90604401600060405180830381600087803b158015610de557600080fd5b505af1158015610df9573d6000803e3d6000fd5b50505050610e08565b600b8390555b610e106109f5565b6001600160a01b03167fbc567d6cbad26368064baa0ab5a757be46aae4d70f707f9203d9d9b6c8ccbfa38787604051610e53929190918252602082015260400190565b60405180910390a2505050505b9091565b610e6c610843565b600455426000610e858262093a808082068203016116a9565b90506001548210610ed757610ec56001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685308661144a565b610ecf81846116d3565b600255610f4b565b600082600154610ee791906116a9565b9050600060025482610ef991906116bc565b9050610f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001687308861144a565b82610f3b82876116f5565b610f4591906116d3565b60025550505b60025462093a8083068303600090815260096020526040812082905503610f85576040516307ced7af60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110109190611778565b905061101c82826116d3565b600254111561103e57604051633c6be1b360e01b815260040160405180910390fd5b600383905561104d82846116f5565b6001556040518481526001600160a01b038616907f095667752957714306e1a6ad83495404412df6fdb932fca6dc849a7ee910d4c19060200160405180910390a25050505050565b61109d610997565b816000036110be57604051631f2a200560e01b815260040160405180910390fd5b604051631703e5f960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631703e5f990602401602060405180830381865afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111469190611791565b611163576040516310f3d9c960e01b815260040160405180910390fd5b600061116d6109f5565b905061117882610a39565b6111ad6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682308661144a565b82600560008282546111bf91906116f5565b90915550506001600160a01b038216600090815260066020526040812080548592906111ec9084906116f5565b92505081905550816001600160a01b0316816001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628560405161123891815260200190565b60405180910390a3506106d66001600055565b600081831061125a578161125c565b825b9392505050565b60006112b8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114889092919063ffffffff16565b805190915015610ae957808060200190518101906112d69190611791565b610ae95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109e5565b8015806113af5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ad9190611778565b155b61141a5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016109e5565b6040516001600160a01b038316602482015260448101829052610ae990849063095ea7b360e01b90606401610ab2565b6040516001600160a01b03808516602483015283166044820152606481018290526114829085906323b872dd60e01b90608401610ab2565b50505050565b6060611497848460008561149f565b949350505050565b6060824710156115005760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109e5565b600080866001600160a01b0316858760405161151c91906117d7565b60006040518083038185875af1925050503d8060008114611559576040519150601f19603f3d011682016040523d82523d6000602084013e61155e565b606091505b509150915061156f8783838761157a565b979650505050505050565b606083156115e95782516000036115e2576001600160a01b0385163b6115e25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109e5565b5081611497565b61149783838151156115fe5781518083602001fd5b8060405162461bcd60e51b81526004016109e591906117f3565b6001600160a01b038116811461062357600080fd5b60006020828403121561163f57600080fd5b813561125c81611618565b60006020828403121561165c57600080fd5b5035919050565b6000806040838503121561167657600080fd5b82359150602083013561168881611618565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561050257610502611693565b808202811582820484141761050257610502611693565b6000826116f057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561050257610502611693565b60006020828403121561171a57600080fd5b815161125c81611618565b6000806040838503121561173857600080fd5b505080516020909101519092909150565b6000806040838503121561175c57600080fd5b825161176781611618565b602084015190925061168881611618565b60006020828403121561178a57600080fd5b5051919050565b6000602082840312156117a357600080fd5b8151801515811461125c57600080fd5b60005b838110156117ce5781810151838201526020016117b6565b50506000910152565b600082516117e98184602087016117b3565b9190910192915050565b60208152600082518060208401526118128160408501602087016117b3565b601f01601f1916919091016040019291505056fea2646970667358221220d0eba75a7b7a1250760eed0990aa105bc530a6ef51feca0862d17db3fae88b1b64736f6c6343000813003300000000000000000000000015e62707fca7352fbe35f51a8d6b0f8066a05dcc000000000000000000000000418457ca08fa5ec77f811b105f2c585cd051ac100000000000000000000000005ac634153504df931d0eb8b32d4d44e824ce0192000000000000000000000000940181a94a35a4569e4529a3cdfb74e38fd9863100000000000000000000000016613524e02ad97edfef371bc883f2f5d6c480a50000000000000000000000000000000000000000000000000000000000000001