[ { "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": "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": [], "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": "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" } ]
6101406040523480156200001257600080fd5b50604051620018a8380380620018a8833981016040819052620000359162000089565b6001600160a01b03958616608052600160005593851660a05291841660e052831660c0529091166101005215156101205262000112565b80516001600160a01b03811681146200008457600080fd5b919050565b60008060008060008060c08789031215620000a357600080fd5b620000ae876200006c565b9550620000be602088016200006c565b9450620000ce604088016200006c565b9350620000de606088016200006c565b9250620000ee608088016200006c565b915060a087015180151581146200010457600080fd5b809150509295509295509295565b60805160a05160c05160e05161010051610120516116cf620001d9600039600081816103c90152610bb4015260008181610255015281816105cc015281816108e40152610fa10152600081816101dd01528181610d4601528181610d9101528181610e170152610e620152600081816103f901528181610680015281816106eb01528181610780015261097f0152600081816103080152818161053e01528181610be201528181610ca401526110530152600081816102900152610aba01526116cf6000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80637b0a47ee116100de578063c00007b011610097578063df136d6511610071578063df136d65146103bb578063e2e1c6db146103c4578063ebe2b12b146103eb578063f7c618c1146103f457600080fd5b8063c00007b014610397578063c8f33c91146103aa578063cd3daf9d146103b357600080fd5b80637b0a47ee1461032a57806380faa57d146103335780638b8763471461033b57806393f1c4421461035b57806394af5b6314610364578063b6b55f251461038457600080fd5b80633c6b16ab1161014b578063572b6c0511610125578063572b6c05146102805780636e553f65146102d057806370a08231146102e357806372f702f31461030357600080fd5b80633c6b16ab1461023d57806346c96aac146102505780634c02a21c1461027757600080fd5b80628cc262146101925780630700037d146101b85780630fe2f711146101d857806316e640481461021757806318160ddd1461021f5780632e1a7d4d14610228575b600080fd5b6101a56101a03660046114bd565b61041b565b6040519081526020015b60405180910390f35b6101a56101c63660046114bd565b60086020526000908152604090205481565b6101ff7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101af565b6101a5610498565b6101a560055481565b61023b6102363660046114da565b6104cf565b005b61023b61024b3660046114da565b6105b6565b6101ff7f000000000000000000000000000000000000000000000000000000000000000081565b6101a5600b5481565b6102c061028e3660046114bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b60405190151581526020016101af565b61023b6102de3660046114f3565b61087f565b6101a56102f13660046114bd565b60066020526000908152604090205481565b6101ff7f000000000000000000000000000000000000000000000000000000000000000081565b6101a560025481565b6101a561088d565b6101a56103493660046114bd565b60076020526000908152604090205481565b6101a5600a5481565b6101a56103723660046114da565b60096020526000908152604090205481565b61023b6103923660046114da565b6108a0565b61023b6103a53660046114bd565b6108b1565b6101a560035481565b6101a56109f6565b6101a560045481565b6102c07f000000000000000000000000000000000000000000000000000000000000000081565b6101a560015481565b6101ff7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a7640000906104516109f6565b61045b9190611539565b6001600160a01b03851660009081526006602052604090205461047e919061154c565b6104889190611563565b6104929190611585565b92915050565b600060015442106104a95750600090565b6000426001546104b99190611539565b9050600254816104c9919061154c565b91505090565b6104d7610a58565b60006104e1610ab6565b90506104ec81610afa565b81600560008282546104fe9190611539565b90915550506001600160a01b0381166000908152600660205260408120805484929061052b908490611539565b9091555061056590506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168284610b47565b806001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364836040516105a091815260200190565b60405180910390a2506105b36001600055565b50565b6105be610a58565b60006105c8610ab6565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161461061c5760405163c18384c160e01b815260040160405180910390fd5b8160000361063d57604051631f2a200560e01b815260040160405180910390fd5b610645610baf565b505061064f6109f6565b6004554260006106688262093a80808206820301611539565b905060015482106106ba576106a86001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016843087610f25565b6106b28185611563565b60025561072e565b6000826001546106ca9190611539565b90506000600254826106dc919061154c565b90506107136001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016863089610f25565b8261071e8288611585565b6107289190611563565b60025550505b60025462093a8083068303600090815260096020526040812082905503610768576040516307ced7af60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f39190611598565b90506107ff8282611563565b600254111561082157604051633c6be1b360e01b815260040160405180910390fd5b60038390556108308284611585565b6001556040518581526001600160a01b038516907f095667752957714306e1a6ad83495404412df6fdb932fca6dc849a7ee910d4c19060200160405180910390a2505050506105b36001600055565b6108898282610f63565b5050565b600061089b42600154611119565b905090565b6105b3816108ac610ab6565b610f63565b6108b9610a58565b60006108c3610ab6565b9050816001600160a01b0316816001600160a01b03161415801561091957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156109375760405163ea8e4eb560e01b815260040160405180910390fd5b61094082610afa565b6001600160a01b03821660009081526008602052604090205480156109ea576001600160a01b038084166000908152600860205260408120556109a6907f0000000000000000000000000000000000000000000000000000000000000000168483610b47565b826001600160a01b03167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc67826040516109e191815260200190565b60405180910390a25b50506105b36001600055565b6000600554600003610a09575060045490565b600554670de0b6b3a7640000600254600354610a2361088d565b610a2d9190611539565b610a37919061154c565b610a41919061154c565b610a4b9190611563565b60045461089b9190611585565b600260005403610aaf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610af5575060131936013560601c90565b503390565b610b026109f6565b600455610b0d61088d565b600355610b198161041b565b6001600160a01b03909116600090815260086020908152604080832093909355600454600790915291902055565b6040516001600160a01b038316602482015260448101829052610baa90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611131565b505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000610be05750600091829150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d294f0936040518163ffffffff1660e01b815260040160408051808303816000875af1158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6391906115b1565b909250905081151580610c765750600081115b15610f2157600082600a54610c8b9190611585565b9050600082600b54610c9d9190611585565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004016040805180830381865afa158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2391906115d5565b9150915062093a80841115610df2576000600a55610d6b6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000086611203565b60405163b66503cf60e01b81526001600160a01b038381166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169063b66503cf90604401600060405180830381600087803b158015610dd557600080fd5b505af1158015610de9573d6000803e3d6000fd5b50505050610df8565b600a8490555b62093a80831115610ec3576000600b55610e3c6001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000085611203565b60405163b66503cf60e01b81526001600160a01b038281166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063b66503cf90604401600060405180830381600087803b158015610ea657600080fd5b505af1158015610eba573d6000803e3d6000fd5b50505050610ec9565b600b8390555b610ed1610ab6565b6001600160a01b03167fbc567d6cbad26368064baa0ab5a757be46aae4d70f707f9203d9d9b6c8ccbfa38787604051610f14929190918252602082015260400190565b60405180910390a2505050505b9091565b6040516001600160a01b0380851660248301528316604482015260648101829052610f5d9085906323b872dd60e01b90608401610b73565b50505050565b610f6b610a58565b81600003610f8c57604051631f2a200560e01b815260040160405180910390fd5b604051631703e5f960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631703e5f990602401602060405180830381865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190611604565b611031576040516310f3d9c960e01b815260040160405180910390fd5b600061103b610ab6565b905061104682610afa565b61107b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016823086610f25565b826005600082825461108d9190611585565b90915550506001600160a01b038216600090815260066020526040812080548592906110ba908490611585565b92505081905550816001600160a01b0316816001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628560405161110691815260200190565b60405180910390a3506108896001600055565b6000818310611128578161112a565b825b9392505050565b6000611186826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113189092919063ffffffff16565b805190915015610baa57808060200190518101906111a49190611604565b610baa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aa6565b80158061127d5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611257573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127b9190611598565b155b6112e85760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610aa6565b6040516001600160a01b038316602482015260448101829052610baa90849063095ea7b360e01b90606401610b73565b6060611327848460008561132f565b949350505050565b6060824710156113905760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aa6565b600080866001600160a01b031685876040516113ac919061164a565b60006040518083038185875af1925050503d80600081146113e9576040519150601f19603f3d011682016040523d82523d6000602084013e6113ee565b606091505b50915091506113ff8783838761140a565b979650505050505050565b60608315611479578251600003611472576001600160a01b0385163b6114725760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa6565b5081611327565b611327838381511561148e5781518083602001fd5b8060405162461bcd60e51b8152600401610aa69190611666565b6001600160a01b03811681146105b357600080fd5b6000602082840312156114cf57600080fd5b813561112a816114a8565b6000602082840312156114ec57600080fd5b5035919050565b6000806040838503121561150657600080fd5b823591506020830135611518816114a8565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561049257610492611523565b808202811582820484141761049257610492611523565b60008261158057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561049257610492611523565b6000602082840312156115aa57600080fd5b5051919050565b600080604083850312156115c457600080fd5b505080516020909101519092909150565b600080604083850312156115e857600080fd5b82516115f3816114a8565b6020840151909250611518816114a8565b60006020828403121561161657600080fd5b8151801515811461112a57600080fd5b60005b83811015611641578181015183820152602001611629565b50506000910152565b6000825161165c818460208701611626565b9190910192915050565b6020815260008251806020840152611685816040850160208701611626565b601f01601f1916919091016040019291505056fea2646970667358221220ccdadce05883e2c4a8acb5a581ed78ca7d81964dbfde89c8dd43af05c46d5d1764736f6c6343000813003300000000000000000000000006824df38d1d77eadeb6bafcb03904e27429ab7400000000000000000000000060c94fdf6c72fad78c16a52c0c3fdc3c6504305d0000000000000000000000004e9ee5da02e10932ef3f9f5002aaf7dc569541e70000000000000000000000009560e827af36c94d2ac33a39bce1fe78631088db00000000000000000000000041c914ee0c7e1a5edcd0295623e6dc557b5abf3c0000000000000000000000000000000000000000000000000000000000000001