[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_uniTokenAddress", "type": "address" } ], "name": "UniTokenAddressChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousGuardian", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newGuardian", "type": "address" } ], "name": "WatchTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [], "name": "activateLpRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "duration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeTokenMinter", "outputs": [ { "internalType": "contract IFeeTokenMinter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "guardian", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "lpRewardsActivated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "periodFinish", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "releaseGuard", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "", "type": "address" } ], "name": "rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_uniTokenAddress", "type": "address" }, { "internalType": "uint256", "name": "_duration", "type": "uint256" }, { "internalType": "address", "name": "_feeTokenMinter", "type": "address" } ], "name": "setParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newGuardian", "type": "address" } ], "name": "transferWatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAndClaim", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600755600060085534801561001a57600080fd5b5061002433610032565b61002d33610084565b6100d6565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0f4b7c1c615f05db5d396c69cf5146c8f2949c2b53ef79a3260b33fbed11682d90600090a35050565b611360806100e56000396000f3fe608060405234801561001057600080fd5b50600436106101485760003560e01c80628cc2621461014d5780630700037d146101735780630fb5a6b41461019357806314efbbf41461019c57806318160ddd146101b15780632e1a7d4d146101b95780632f60d071146101cc57806334a93f25146101d4578063452a9320146101e757806370a08231146101fc578063715018a61461020f5780637b0a47ee1461021757806380faa57d1461022057806385ce4fee146102285780638b8763471461023b5780638da5cb5b1461025b5780639391c1e914610263578063a694fc3a1461026b578063b88a802f1461027e578063c8f33c9114610286578063cd3daf9d1461028f578063d0d22e2014610297578063d4437724146102bb578063df136d65146102c3578063e70fe333146102cc578063ebe2b12b146102df578063f2fde38b146102e8575b600080fd5b61016061015b3660046110de565b6102fb565b6040519081526020015b60405180910390f35b6101606101813660046110de565b600c6020526000908152604090205481565b61016060055481565b6101af6101aa3660046110f9565b610368565b005b600154610160565b6101af6101c7366004611135565b6104b3565b6101af610593565b6101af6101e23660046110de565b6105a7565b6101ef610625565b60405161016a919061114e565b61016061020a3660046110de565b610634565b6101af61064f565b61016060085481565b610160610661565b6000546101ef906001600160a01b031681565b6101606102493660046110de565b600b6020526000908152604090205481565b6101ef610674565b6101af610683565b6101af610279366004611135565b61070e565b6101af6107ec565b61016060095481565b610160610946565b6006546102ab90600160a01b900460ff1681565b604051901515815260200161016a565b6101af6109ad565b610160600a5481565b6006546101ef906001600160a01b031681565b61016060075481565b6101af6102f63660046110de565b6109ea565b6001600160a01b0381166000908152600c6020908152604080832054600b909252822054670de0b6b3a764000090610331610946565b61033b9190611178565b61034485610634565b61034e919061118b565b61035891906111a2565b61036291906111c4565b92915050565b610370610a60565b6001600160a01b0383166103d75760405162461bcd60e51b8152602060048201526024808201527f5f756e69546f6b656e4164647265737320697320746865206e756c6c206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0381166104395760405162461bcd60e51b815260206004820152602360248201527f5f666565546f6b656e4d696e74657220697320746865206e756c6c206164647260448201526265737360e81b60648201526084016103ce565b600080546001600160a01b038086166001600160a01b031992831617909255600584905560068054928416929091169190911790556040517f15cb6984f76cb781da2b25c2024a3eaf5011914976381f844e09724cc9e21e949061049e90859061114e565b60405180910390a16104ae61064f565b505050565b600654600160a01b900460ff166104dc5760405162461bcd60e51b81526004016103ce906111d7565b600081116105205760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064016103ce565b6000546001600160a01b03166105485760405162461bcd60e51b81526004016103ce9061121d565b61055133610abf565b61055a81610b14565b60405181815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a250565b61059b610b6b565b6105a56000610bd8565b565b6105af610b6b565b6001600160a01b0381166106195760405162461bcd60e51b815260206004820152602b60248201527f477561726461626c653a206e657720677561726469616e20697320746865207a60448201526a65726f206164647265737360a81b60648201526084016103ce565b61062281610bd8565b50565b6004546001600160a01b031690565b6001600160a01b031660009081526002602052604090205490565b610657610a60565b6105a56000610c2a565b600061066f42600754610c7c565b905090565b6003546001600160a01b031690565b61068b610b6b565b6106a26a295be96e64066972000000600554610c94565b600654600160a01b900460ff16156106f95760405162461bcd60e51b815260206004820152601a60248201527943616e206f6e6c7920626520616374697661746564206f6e636560301b60448201526064016103ce565b6006805460ff60a01b1916600160a01b179055565b600654600160a01b900460ff166107375760405162461bcd60e51b81526004016103ce906111d7565b600081116107785760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016103ce565b6000546001600160a01b03166107a05760405162461bcd60e51b81526004016103ce9061121d565b6107a8610d1e565b6107b133610abf565b6107ba81610d59565b60405181815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610588565b600654600160a01b900460ff166108155760405162461bcd60e51b81526004016103ce906111d7565b6000546001600160a01b031661083d5760405162461bcd60e51b81526004016103ce9061121d565b610845610d1e565b61084e33610abf565b6000610859336102fb565b90506000811161089e5760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b60448201526064016103ce565b336000818152600c602052604080822091909155600654905163b5ddb9c760e01b81526001600160a01b039091169163b5ddb9c7916108e291908590600401611266565b600060405180830381600087803b1580156108fc57600080fd5b505af1158015610910573d6000803e3d6000fd5b50506040518381523392507fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e04869150602001610588565b600061095160015490565b60000361095f5750600a5490565b600154600854600954610970610661565b61097a9190611178565b610984919061118b565b61099690670de0b6b3a764000061118b565b6109a091906111a2565b600a5461066f91906111c4565b600654600160a01b900460ff166109d65760405162461bcd60e51b81526004016103ce906111d7565b6109e26101c733610634565b6105a56107ec565b6109f2610a60565b6001600160a01b038116610a575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ce565b61062281610c2a565b33610a69610674565b6001600160a01b0316146105a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ce565b610ac7610db1565b6001600160a01b038116610add57610add61127f565b610ae6816102fb565b6001600160a01b039091166000908152600c6020908152604080832093909355600a54600b90915291902055565b80600154610b229190611178565b60015533600090815260026020526040902054610b40908290611178565b336000818152600260205260408120929092559054610622916001600160a01b039091169083610dc9565b33610b74610625565b6001600160a01b0316146105a55760405162461bcd60e51b815260206004820152602560248201527f477561726461626c653a2063616c6c6572206973206e6f742074686520677561604482015264393234b0b760d91b60648201526084016103ce565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0f4b7c1c615f05db5d396c69cf5146c8f2949c2b53ef79a3260b33fbed11682d90600090a35050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000818310610c8b5781610c8d565b825b9392505050565b816a295be96e6406697200000014610cae57610cae61127f565b60075415610cbe57610cbe61127f565b610cc6610db1565b610cd081836111a2565b600855426009819055610ce49082906111c4565b6007556040518281527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a15050565b6001546000036105a557600060075411610d3a57610d3a61127f565b600954610d479042611178565b600754610d5491906111c4565b600755565b80600154610d6791906111c4565b60015533600090815260026020526040902054610d859082906111c4565b336000818152600260205260408120929092559054610622916001600160a01b03909116903084610e1f565b610db9610946565b600a55610dc4610661565b600955565b6104ae8363a9059cbb60e01b8484604051602401610de8929190611266565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e5d565b6040516001600160a01b0380851660248301528316604482015260648101829052610e579085906323b872dd60e01b90608401610de8565b50505050565b6000610eb2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610f329092919063ffffffff16565b9050805160001480610ed3575080806020019051810190610ed39190611295565b6104ae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103ce565b6060610f418484600085610f49565b949350505050565b606082471015610faa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103ce565b600080866001600160a01b03168587604051610fc691906112db565b60006040518083038185875af1925050503d8060008114611003576040519150601f19603f3d011682016040523d82523d6000602084013e611008565b606091505b509150915061101987838387611024565b979650505050505050565b6060831561109357825160000361108c576001600160a01b0385163b61108c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ce565b5081610f41565b610f4183838151156110a85781518083602001fd5b8060405162461bcd60e51b81526004016103ce91906112f7565b80356001600160a01b03811681146110d957600080fd5b919050565b6000602082840312156110f057600080fd5b610c8d826110c2565b60008060006060848603121561110e57600080fd5b611117846110c2565b92506020840135915061112c604085016110c2565b90509250925092565b60006020828403121561114757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036257610362611162565b808202811582820484141761036257610362611162565b6000826111bf57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561036257610362611162565b60208082526026908201527f4c5020526577617264732068617665206e6f7420796574206265656e206163746040820152651a5d985d195960d21b606082015260800190565b60208082526029908201527f4c697175696469747920506f6f6c20546f6b656e20686173206e6f74206265656040820152681b881cd95d081e595d60ba1b606082015260800190565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156112a757600080fd5b81518015158114610c8d57600080fd5b60005b838110156112d25781810151838201526020016112ba565b50506000910152565b600082516112ed8184602087016112b7565b9190910192915050565b60208152600082518060208401526113168160408501602087016112b7565b601f01601f1916919091016040019291505056fea26469706673582212203625256acce5bba7c7f88409dd074db3b46e661c378f57a18257405e47eb51f464736f6c63430008150033