[ { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_governance", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [], "name": "DISTRIBUTION", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SNOWBALL", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SNOWCONE", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOKEN", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TREASURY", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptGovernance", "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": [ { "internalType": "address", "name": "_distribution", "type": "address" } ], "name": "changeDistribution", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "depositFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "derivedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "derivedBalances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "derivedSupply", "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": "exit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getRewardForDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "governance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "kick", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "pendingGovernance", "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": "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": "_governance", "type": "address" } ], "name": "setGovernance", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040526000600455600060055534801561001a57600080fd5b5060405161191a38038061191a8339818101604052604081101561003d57600080fd5b50805160209091015160016000818155606084901b6001600160601b03191660805260038054336001600160a01b0319918216179091558254166001600160a01b039384161790915591169061186b906100af903980610b4b5280610e9752806111ac52806113d4525061186b6000f3fe608060405234801561001057600080fd5b50600436106102105760003560e01c80637c91e4eb11610125578063cd3daf9d116100ad578063df136d651161007c578063df136d65146104a6578063e9fad8ee146104ae578063ebe2b12b146104b6578063ecb7347f146104be578063f39c38a0146104c657610210565b8063cd3daf9d14610468578063d35e254414610470578063d7da4bb014610496578063de5f62681461049e57610210565b80638b876347116100f45780638b876347146103d157806396c55175146103f7578063ab033ea91461041d578063b6b55f2514610443578063c8f33c911461046057610210565b80637c91e4eb146103b157806380faa57d146103b957806382bfefc8146103c1578063853828b6146103c957610210565b806336efd16f116101a857806362b009d91161017757806362b009d91461032f57806363fb415b146103555780636efc0e6f1461037b57806370a08231146103835780637b0a47ee146103a957610210565b806336efd16f146102d65780633c6b16ab146103025780633d18b9121461031f5780635aa6e6751461032757610210565b80631c1f78eb116101e45780631c1f78eb14610283578063238efcbc1461028b5780632d2c5565146102955780632e1a7d4d146102b957610210565b80628cc262146102155780630700037d1461024d57806318160ddd146102735780631be052891461027b575b600080fd5b61023b6004803603602081101561022b57600080fd5b50356001600160a01b03166104ce565b60408051918252519081900360200190f35b61023b6004803603602081101561026357600080fd5b50356001600160a01b0316610564565b61023b610576565b61023b61057d565b61023b610584565b6102936105a2565b005b61029d610625565b604080516001600160a01b039092168252519081900360200190f35b610293600480360360208110156102cf57600080fd5b503561063d565b610293600480360360408110156102ec57600080fd5b50803590602001356001600160a01b0316610649565b6102936004803603602081101561031857600080fd5b5035610657565b6102936108f5565b61029d610a51565b6102936004803603602081101561034557600080fd5b50356001600160a01b0316610a60565b61023b6004803603602081101561036b57600080fd5b50356001600160a01b0316610ae1565b61029d610af3565b61023b6004803603602081101561039957600080fd5b50356001600160a01b0316610b0b565b61023b610b26565b61029d610b2c565b61023b610b3b565b61029d610b49565b610293610b6d565b61023b600480360360208110156103e757600080fd5b50356001600160a01b0316610b88565b6102936004803603602081101561040d57600080fd5b50356001600160a01b0316610b9a565b6102936004803603602081101561043357600080fd5b50356001600160a01b0316610c0a565b6102936004803603602081101561045957600080fd5b5035610c8b565b61023b610c95565b61023b610c9b565b61023b6004803603602081101561048657600080fd5b50356001600160a01b0316610cf5565b61023b610e6d565b610293610e73565b61023b610f10565b610293610f16565b61023b610f37565b61029d610f3d565b61029d610f55565b6001600160a01b038116600090815260096020908152604080832054600890925282205461055e919061055290670de0b6b3a7640000906105469061052190610515610c9b565b9063ffffffff610f6416565b6001600160a01b0388166000908152600d60205260409020549063ffffffff610f9616565b9063ffffffff610fee16565b9063ffffffff61101916565b92915050565b60096020526000908152604090205481565b600a545b90565b62093a8081565b60055460009061059d9062093a8063ffffffff610f9616565b905090565b6002546001600160a01b03163314610601576040805162461bcd60e51b815260206004820152601d60248201527f616363657074476f7665726e616e63653a202170656e64696e67476f76000000604482015290519081900360640190fd5b600254600180546001600160a01b0319166001600160a01b03909216919091179055565b73294ab3200ef36200db84c4128b7f1b4eec71e38a81565b6106468161105c565b50565b6106538282611238565b5050565b6003546001600160a01b031633146106a05760405162461bcd60e51b815260040180806020018281038252602a8152602001806117e2602a913960400191505060405180910390fd5b60006106aa610c9b565b6007556106b5610b3b565b6006556001600160a01b038116156106fc576106d0816104ce565b6001600160a01b0382166000908152600960209081526040808320939093556007546008909152919020555b60035461072f9073c38f41a296a4493ff429f1238e030924a1542e50906001600160a01b0316308563ffffffff61142416565b60045442106107535761074b8262093a8063ffffffff610fee16565b6005556107a1565b600454600090610769904263ffffffff610f6416565b9050600061078260055483610f9690919063ffffffff16565b905061079b62093a80610546868463ffffffff61101916565b60055550505b604080516370a0823160e01b8152306004820152905160009173c38f41a296a4493ff429f1238e030924a1542e50916370a0823191602480820192602092909190829003018186803b1580156107f657600080fd5b505afa15801561080a573d6000803e3d6000fd5b505050506040513d602081101561082057600080fd5b505190506108378162093a8063ffffffff610fee16565b600554111561088d576040805162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f20686967680000000000000000604482015290519081900360640190fd5b4260068190556108a69062093a8063ffffffff61101916565b6004556040805184815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1506001600160a01b038116156106535761065381610b9a565b6002600054141561094d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000553361095b610c9b565b600755610966610b3b565b6006556001600160a01b038116156109ad57610981816104ce565b6001600160a01b0382166000908152600960209081526040808320939093556007546008909152919020555b336000908152600960205260409020548015610a3057336000818152600960205260408120556109f99073c38f41a296a4493ff429f1238e030924a1542e50908363ffffffff61148416565b60408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b506001600160a01b03811615610a4957610a4981610b9a565b506001600055565b6001546001600160a01b031681565b6001546001600160a01b03163314610abf576040805162461bcd60e51b815260206004820152601f60248201527f756e617574686f72697a65642073656e6465722028676f7665726e616e636500604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600d6020526000908152604090205481565b7383952e7ab4aca74ca96217d6f8f7591bead6d64e81565b6001600160a01b03166000908152600c602052604090205490565b60055481565b6003546001600160a01b031681565b600061059d426004546114db565b7f000000000000000000000000000000000000000000000000000000000000000081565b336000908152600c6020526040902054610b869061105c565b565b60086020526000908152604090205481565b6001600160a01b0381166000908152600d6020526040902054600b54610bc6908263ffffffff610f6416565b600b55610bd282610cf5565b6001600160a01b0383166000908152600d60205260409020819055600b54909150610c03908263ffffffff61101916565b600b555050565b6001546001600160a01b03163314610c69576040805162461bcd60e51b815260206004820152601f60248201527f756e617574686f72697a65642073656e6465722028676f7665726e616e636500604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6106468133611238565b60065481565b6000600a5460001415610cb1575060075461057a565b61059d610ce6600b54610546670de0b6b3a7640000610cda600554610cda600654610515610b3b565b9063ffffffff610f9616565b6007549063ffffffff61101916565b6001600160a01b0381166000908152600c602052604081205481610d25606461054684602863ffffffff610f9616565b90506000610e496064610546603c610cda7383952e7ab4aca74ca96217d6f8f7591bead6d64e6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8357600080fd5b505afa158015610d97573d6000803e3d6000fd5b505050506040513d6020811015610dad57600080fd5b5051604080516370a0823160e01b81526001600160a01b038d1660048201529051610546917383952e7ab4aca74ca96217d6f8f7591bead6d64e916370a0823191602480820192602092909190829003018186803b158015610e0e57600080fd5b505afa158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600a549063ffffffff610f9616565b9050610e64610e5e838363ffffffff61101916565b846114db565b95945050505050565b600b5481565b604080516370a0823160e01b81523360048201529051610b86916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d6020811015610f0857600080fd5b505133611238565b60075481565b336000908152600c6020526040902054610f2f9061105c565b610b866108f5565b60045481565b73c38f41a296a4493ff429f1238e030924a1542e5081565b6002546001600160a01b031681565b6000610f8f8383604051806040016040528060068152602001657375623a202d60d01b8152506114f1565b9392505050565b600082610fa55750600061055e565b82820282848281610fb257fe5b0414610f8f576040805162461bcd60e51b815260206004820152600660248201526536bab61d101560d11b604482015290519081900360640190fd5b6000610f8f8383604051806040016040528060068152602001656469763a202f60d01b815250611588565b600082820183811015610f8f576040805162461bcd60e51b81526020600482015260066024820152656164643a202b60d01b604482015290519081900360640190fd5b600260005414156110b4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055336110c2610c9b565b6007556110cd610b3b565b6006556001600160a01b03811615611114576110e8816104ce565b6001600160a01b0382166000908152600960209081526040808320939093556007546008909152919020555b6000821161115d576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b600a54611170908363ffffffff610f6416565b600a55336000908152600c6020526040902054611193908363ffffffff610f6416565b336000818152600c60205260409020919091556111e1907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908463ffffffff61148416565b60408051838152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a26001600160a01b0381161561122f5761122f81610b9a565b50506001600055565b60026000541415611290576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000558061129e610c9b565b6007556112a9610b3b565b6006556001600160a01b038116156112f0576112c4816104ce565b6001600160a01b0382166000908152600960209081526040808320939093556007546008909152919020555b60008311611336576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600a54611349908463ffffffff61101916565b600a556001600160a01b0382166000908152600c6020526040902054611375908463ffffffff61101916565b6001600160a01b0383166000818152600c6020908152604091829020939093558051868152905191927f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d92918290030190a26114026001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683308663ffffffff61142416565b6001600160a01b0381161561141a5761141a81610b9a565b5050600160005550565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261147e9085906115ed565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526114d69084906115ed565b505050565b60008183106114ea5781610f8f565b5090919050565b600081848411156115805760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561154557818101518382015260200161152d565b50505050905090810190601f1680156115725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836115d75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561154557818101518382015260200161152d565b5060008385816115e357fe5b0495945050505050565b6115ff826001600160a01b03166117a5565b611650576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061168e5780518252601f19909201916020918201910161166f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116f0576040519150601f19603f3d011682016040523d82523d6000602084013e6116f5565b606091505b50915091508161174c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511561147e5780806020019051602081101561176857600080fd5b505161147e5760405162461bcd60e51b815260040180806020018281038252602a81526020018061180c602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906117d95750808214155b94935050505056fe43616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220183450e1fa31e421e43a1c89279cdf73fd640126be89f649b8ec55143e61dfc964736f6c6343000607003300000000000000000000000018b608c54440b3a952a8ba6948a2a971a1ac97a2000000000000000000000000c9a51fb9057380494262fd291aed74317332c0a2