[ { "inputs": [ { "internalType": "contract ISystemRegistry", "name": "_systemRegistry", "type": "address" }, { "internalType": "address", "name": "_stakeTracker", "type": "address" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "uint256", "name": "_newRewardRatio", "type": "uint256" }, { "internalType": "uint256", "name": "_durationInBlock", "type": "uint256" }, { "internalType": "bool", "name": "_allowExtraReward", "type": "bool" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessDenied", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "AssetNotAllowed", "type": "error" }, { "inputs": [], "name": "ExtraRewardsNotAllowed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "InvalidAddress", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "paramName", "type": "string" } ], "name": "InvalidParam", "type": "error" }, { "inputs": [], "name": "ItemExists", "type": "error" }, { "inputs": [], "name": "ItemNotFound", "type": "error" }, { "inputs": [], "name": "MaxExtraRewardsReached", "type": "error" }, { "inputs": [], "name": "RecoverDurationPending", "type": "error" }, { "inputs": [], "name": "StakingDurationTooShort", "type": "error" }, { "inputs": [], "name": "UndefinedAddress", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "paramName", "type": "string" } ], "name": "ZeroAddress", "type": "error" }, { "inputs": [], "name": "ZeroAmount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "wallet", "type": "address" } ], "name": "AddedToWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "reward", "type": "address" } ], "name": "ExtraRewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "startingQueuedRewards", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "startingNewRewards", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "queuedRewards", "type": "uint256" } ], "name": "QueuedRewardsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Recovered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "wallet", "type": "address" } ], "name": "RemovedFromWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastUpdateBlock", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "periodInBlockFinish", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "historicalRewards", "type": "uint256" } ], "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "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": "uint256", "name": "newDuration", "type": "uint256" } ], "name": "TokeLockDurationUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastUpdateBlock", "type": "uint256" } ], "name": "UserRewardUpdated", "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": "MAX_EXTRA_REWARDS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINIMUM_RECOVER_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "accessController", "outputs": [ { "internalType": "contract IAccessController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "reward", "type": "address" } ], "name": "addExtraReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "addToWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "allowExtraRewards", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "", "type": "address" } ], "name": "canTokenBeRecovered", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "currentRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "durationInBlock", "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": "extraRewards", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extraRewardsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getExtraRewarder", "outputs": [ { "internalType": "contract IExtraRewarder", "name": "rewarder", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "bool", "name": "claimExtras", "type": "bool" } ], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "historicalRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastBlockRewardApplicable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastUpdateBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "newRewardRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "periodInBlockFinish", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newRewards", "type": "uint256" } ], "name": "queueNewRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "queuedRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "recover", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "removeFromWhitelist", "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": [], "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": [ { "internalType": "uint256", "name": "_tokeLockDuration", "type": "uint256" } ], "name": "setTokeLockDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeTracker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokeLockDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "claim", "type": "bool" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101806040523480156200001257600080fd5b5060405162002fba38038062002fba8339810160408190526200003591620003cf565b858484847f81a81f0d48ba50c2c672a817d0c6ff7010ef836a6c6a22ddf3743101563b01d8858585858585846001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200009f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c5919062000447565b6001600160a01b038116620000ed57604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660805260408051808201909152600c81526b2fb932bbb0b9322a37b5b2b760a11b60208083019190915262000136918691620013f562000327821b17901c565b62000175826040518060400160405280601081526020016f5f6475726174696f6e496e426c6f636b60801b8152506200035760201b6200141e1760201c565b620001b3836040518060400160405280600f81526020016e5f6e6577526577617264526174696f60881b8152506200035760201b6200141e1760201c565b620001ed816040518060400160405280600b81526020016a5f726577617264526f6c6560a81b8152506200037d60201b620014411760201c565b6001600160a01b0385811660e08190526040516316bfae7f60e31b815291861660048301529063b5fd73f890602401602060405180830381865afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026091906200046e565b620002a257604051634389d5ab60e01b815260206004820152600c60248201526b2fb932bbb0b9322a37b5b2b760a11b60448201526064015b60405180910390fd5b6001600160a01b039093166101005260c09190915260a05261012052506001600b55151561014052505060408051808201909152600d81526c2fb9ba30b5b2aa3930b1b5b2b960991b6020828101919091526200030f9450899350909150620013f562000327821b17901c565b505050506001600160a01b03166101605250620004dc565b6001600160a01b03821662000353578060405163eac0d38960e01b81526004016200029991906200048c565b5050565b81600003620003535780604051634389d5ab60e01b81526004016200029991906200048c565b81620003535780604051634389d5ab60e01b81526004016200029991906200048c565b6001600160a01b0381168114620003b657600080fd5b50565b80518015158114620003ca57600080fd5b919050565b60008060008060008060c08789031215620003e957600080fd5b8651620003f681620003a0565b60208801519096506200040981620003a0565b60408801519095506200041c81620003a0565b60608801516080890151919550935091506200043b60a08801620003b9565b90509295509295509295565b6000602082840312156200045a57600080fd5b81516200046781620003a0565b9392505050565b6000602082840312156200048157600080fd5b6200046782620003b9565b600060208083528351808285015260005b81811015620004bb578581018301518582016040015282016200049d565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c05160e051610100516101205161014051610160516129d7620005e3600039600081816102440152818161110f01526113ac0152600081816104950152610b8b01526000818161062701528181610aca01528181610faa015261122601526000818161057901528181610a8e01528181610df001528181611de20152611e830152600081816106f10152818161079801528181611cc10152611d430152600081816103bf01526109fb015260008181610319015281816109940152818161176a01526117c20152600081816104bc0152818161065601528181610af901528181610cb801528181610fd901528181611255015261164e01526129d76000f3fe608060405234801561001057600080fd5b506004361061023a5760003560e01c80638b8763471161013b578063cd8e33d4116100b8578063e43252d71161007c578063e43252d714610530578063e665b41414610543578063ead5d35914610556578063ee495fb614610569578063f7c618c11461057457600080fd5b8063cd8e33d4146104f9578063ce60089d14610502578063d55a23f41461050a578063df136d6514610512578063e21c81d31461051b57600080fd5b8063adc9772e116100ff578063adc9772e1461047d578063b263487f14610490578063bc43cbaf146104b7578063c5285794146104de578063cd3daf9d146104f157600080fd5b80638b8763471461042f578063901a7d531461044f5780639a8c1c7014610458578063a218141b1461046c578063abe0429c1461047557600080fd5b80633d18b912116101c95780636c8bcee81161018d5780636c8bcee8146103ba5780636f73a38f146103e157806370a08231146103ea5780637b0a47ee146104135780638ab1d6811461041c57600080fd5b80633d18b91214610370578063590a41f5146103785780635e43c47b1461038b57806363d38c3b1461039e578063648bf774146103a757600080fd5b806314d092491161021057806314d09249146102f757806318160ddd1461030c5780631fc9305914610314578063262d3d6d1461033b5780633af32abf1461034457600080fd5b80615b671461023f5780628cc2621461028357806306c933d8146102a45780630700037d146102d7575b600080fd5b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6102966102913660046126bf565b61059b565b60405190815260200161027a565b6102c76102b23660046126bf565b600a6020526000908152604090205460ff1681565b604051901515815260200161027a565b6102966102e53660046126bf565b60086020526000908152604090205481565b61030a6103053660046126dc565b610618565b005b600e54610296565b6102967f000000000000000000000000000000000000000000000000000000000000000081565b61029660065481565b6102c76103523660046126bf565b6001600160a01b03166000908152600a602052604090205460ff1690565b61030a6108d6565b61030a6103863660046126dc565b6108ff565b61030a6103993660046126bf565b610abb565b61029660045481565b61030a6103b53660046126f5565b610c7a565b6102967f000000000000000000000000000000000000000000000000000000000000000081565b61029660095481565b6102966103f83660046126bf565b6001600160a01b03166000908152600f602052604090205490565b61029660015481565b61030a61042a3660046126bf565b610f9b565b61029661043d3660046126bf565b60076020526000908152604090205481565b61029660055481565b6102c76104663660046126bf565b50600190565b61029660025481565b6102966110ec565b61030a61048b36600461272e565b611104565b6102c77f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61030a6104ec366004612768565b61115b565b61029661118f565b61029660005481565b610296600f81565b6102966111ff565b61029660035481565b61052361120b565b60405161027a91906127b3565b61030a61053e3660046126bf565b611217565b6102666105513660046126dc565b611394565b61030a610564366004612800565b6113a1565b6102966301e1338081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a7640000906105d161118f565b6105db919061284d565b6001600160a01b0385166000908152600f60205260409020546105fe9190612860565b6106089190612877565b6106129190612899565b92915050565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156106a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c991906128ac565b6106e657604051634ca8886760e01b815260040160405180910390fd5b8115610899576107967f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561074d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077191906128c9565b60405180604001604052806007815260200166616363546f6b6560c81b8152506113f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081891906128c9565b6001600160a01b0316635fec5c646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087991906128e6565b8210156108995760405163bcec4c5360e01b815260040160405180910390fd5b60098290556040518281527f62ff17080925adbeb90d914efe5f615d059f19c2e728740b500d1e84ba65989a906020015b60405180910390a15050565b6108de611461565b6108e7336114ba565b6108f333336001611574565b6108fd6001600b55565b565b336000908152600a602052604090205460ff1615801561094657506109447f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c1633611625565b155b1561096457604051634ca8886760e01b815260040160405180910390fd5b600454816109728282612899565b9250600054431061099057610986836116c2565b6000600455610a3e565b60007f00000000000000000000000000000000000000000000000000000000000000006000546109c0919061284d565b6109ca904361284d565b90506000816001546109dc9190612860565b90506000856109ed836103e8612860565b6109f79190612877565b90507f0000000000000000000000000000000000000000000000000000000000000000811015610a3457610a2a866116c2565b6000600455610a3a565b60048690555b5050505b600454604080518481526020810184905280820192909252517fe4a19739e7048ef5e90c7a157e8fb37a6e90cb8de298625227540d2443b9769c9181900360600190a1610ab66001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308461184a565b505050565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c91906128ac565b610b8957604051634ca8886760e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000610bc757604051639fe610b960e01b815260040160405180910390fd5b600f610bd3600c6118b5565b10610bf157604051635024a38f60e01b815260040160405180910390fd5b610c1982604051806040016040528060068152602001651c995dd85c9960d21b8152506113f5565b610c24600c836118bf565b610c4157604051633e04f87160e01b815260040160405180910390fd5b6040516001600160a01b03831681527fd432e6f46dbf91c120fdfa95a1f4bf5c43f04d957fbc3a32e693be0d29bf17b0906020016108ca565b604051632474521560e21b81527f712b73613835f525c3c675d2245c737ba70afbd0b97264479c97d623f214159460048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2b91906128ac565b610d4857604051634ca8886760e01b815260040160405180910390fd5b610d6f83604051806040016040528060058152602001643a37b5b2b760d91b8152506113f5565b610d9a82604051806040016040528060098152602001681c9958da5c1a595b9d60ba1b8152506113f5565b306001600160a01b03831603610dd357604051634726455360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6301e13380600254610de59190612899565b43108015610e2457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b15610e4257604051633d38b78360e01b815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610ec957478015610ec357604080516001600160a01b038087168252851660208201529081018290527ffff3b3844276f57024e0b42afec1a37f75db36511e43819a4f2a63ab7862b6489060600160405180910390a1610ec383826118d4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3491906128e6565b90508015610ec357604080516001600160a01b038087168252851660208201529081018290527ffff3b3844276f57024e0b42afec1a37f75db36511e43819a4f2a63ab7862b6489060600160405180910390a1610ec36001600160a01b03851684836119ed565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015611028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104c91906128ac565b61106957604051634ca8886760e01b815260040160405180910390fd5b6001600160a01b0382166000908152600a602052604090205460ff166110a25760405163d3ed043d60e01b815260040160405180910390fd5b6001600160a01b0382166000818152600a6020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a25050565b6000805443106110fd575060005490565b435b905090565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461114d57604051634ca8886760e01b815260040160405180910390fd5b6111578282611a1d565b5050565b336001600160a01b0384161461118457604051634ca8886760e01b815260040160405180910390fd5b610ab6838383611b13565b60008061119b600e5490565b9050806000036111ad57505060035490565b806001546002546111bc6110ec565b6111c6919061284d565b6111d09190612860565b6111e290670de0b6b3a7640000612860565b6111ec9190612877565b6003546111f99190612899565b91505090565b60006110ff600c6118b5565b60606110ff600c611b39565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156112a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c891906128ac565b6112e557604051634ca8886760e01b815260040160405180910390fd5b61130d82604051806040016040528060068152602001651dd85b1b195d60d21b8152506113f5565b6001600160a01b0382166000908152600a602052604090205460ff161561134757604051633e04f87160e01b815260040160405180910390fd5b6001600160a01b0382166000818152600a6020526040808220805460ff19166001179055517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a25050565b6000610612600c83611b46565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ea57604051634ca8886760e01b815260040160405180910390fd5b610ab6838383611b52565b6001600160a01b038216611157578060405163eac0d38960e01b8152600401610dca9190612923565b816000036111575780604051634389d5ab60e01b8152600401610dca9190612923565b816111575780604051634389d5ab60e01b8152600401610dca9190612923565b6002600b54036114b35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610dca565b6002600b55565b60006114c461118f565b6003556114cf6110ec565b6002556003541561151f576001600160a01b0382161561151f576114f28261059b565b6001600160a01b038316600090815260086020908152604080832084905560035460079092529091205590505b6003546002546040805184815260208101939093528201526001600160a01b038316907f469d38647ec007a9c93421468c92550d50fccc01ae12e149b1216aa9b0136fc7906060015b60405180910390a25050565b61157e8383611c5b565b600061158a600c6118b5565b90508115610ec35760005b8181101561161e576115a8600c82611b46565b604051636b09169560e01b81526001600160a01b03878116600483015286811660248301529190911690636b09169590604401600060405180830381600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050508061161790612956565b9050611595565b5050505050565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906391d1485490604401602060405180830381865afa158015611697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bb91906128ac565b9392505050565b80600660008282546116d49190612899565b9091555050600e5460000361171e57600054600254101561171957600154600254600054611702919061284d565b61170c9190612860565b6117169082612899565b90505b61175b565b60005443101561175b57600043600054611738919061284d565b905060006001548261174a9190612860565b90506117568184612899565b925050505b61176560006114ba565b61178f7f000000000000000000000000000000000000000000000000000000000000000082612877565b60018190556117b157604051631f2a200560e01b815260040160405180910390fd5b60058190554360028190556117e7907f000000000000000000000000000000000000000000000000000000000000000090612899565b6000819055600154600254600654604080518681526020810194909452830191909152606082019290925260808101919091527f8ce8cbe5f803930b0c6afe4640018bbfb02cbb5b0bfbe051b25a155201e80dac9060a00160405180910390a150565b6040516001600160a01b0380851660248301528316604482015260648101829052610ec39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611ff6565b6000610612825490565b60006116bb836001600160a01b0384166120c8565b804710156119245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610dca565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611971576040519150601f19603f3d011682016040523d82523d6000602084013e611976565b606091505b5050905080610ab65760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610dca565b6040516001600160a01b038316602482015260448101829052610ab690849063a9059cbb60e01b9060640161187e565b611a26826114ba565b611a308282612117565b6000611a3c600c6118b5565b905060005b81811015611ac957611a54600c82611b46565b6040516356e4bb9760e11b81526001600160a01b03868116600483015260248201869052919091169063adc9772e90604401600060405180830381600087803b158015611aa057600080fd5b505af1158015611ab4573d6000803e3d6000fd5b5050505080611ac290612956565b9050611a41565b5081600e6000828254611adc9190612899565b90915550506001600160a01b0383166000908152600f602052604081208054849290611b09908490612899565b9091555050505050565b611b1b611461565b611b24836114ba565b611b2f838383611574565b610ab66001600b55565b606060006116bb836121a3565b60006116bb83836121ff565b611b5b836114ba565b611b658383612229565b6000611b71600c6118b5565b905060005b81811015611bfe57611b89600c82611b46565b60405163f3fef3a360e01b81526001600160a01b03878116600483015260248201879052919091169063f3fef3a390604401600060405180830381600087803b158015611bd557600080fd5b505af1158015611be9573d6000803e3d6000fd5b5050505080611bf790612956565b9050611b76565b508115611c1157611c1184856001611574565b82600e6000828254611c23919061284d565b90915550506001600160a01b0384166000908152600f602052604081208054859290611c5090849061284d565b909155505050505050565b611c8482604051806040016040528060078152602001661858d8dbdd5b9d60ca1b8152506113f5565b611caf81604051806040016040528060098152602001681c9958da5c1a595b9d60ba1b8152506113f5565b6000611cba8361059b565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4191906128c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f543bb0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc391906128c9565b9150915082600003611dd6575050505050565b806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580611e175750600954155b15611eaf576001600160a01b038086166000818152600860205260408082209190915551918616917f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e90611e6e9087815260200190565b60405180910390a3611eaa6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685856119ed565b61161e565b604051633f6e925b60e01b8152600481018490526001600160a01b03831690633f6e925b90602401602060405180830381865afa158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1891906128ac565b1561161e576001600160a01b038086166000818152600860205260408082209190915551918616917f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e90611f6f9087815260200190565b60405180910390a3611f828183856122b5565b600954604051637628a37d60e01b81526004810185905260248101919091526001600160a01b038581166044830152831690637628a37d90606401600060405180830381600087803b158015611fd757600080fd5b505af1158015611feb573d6000803e3d6000fd5b505050505050505050565b600061204b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123599092919063ffffffff16565b805190915015610ab6578080602001905181019061206991906128ac565b610ab65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610dca565b600081815260018301602052604081205461210f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610612565b506000610612565b61214082604051806040016040528060078152602001661858d8dbdd5b9d60ca1b8152506113f5565b6121688160405180604001604052806006815260200165185b5bdd5b9d60d21b81525061141e565b816001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d8260405161156891815260200190565b6060816000018054806020026020016040519081016040528092919081815260200182805480156121f357602002820191906000526020600020905b8154815260200190600101908083116121df575b50505050509050919050565b60008260000182815481106122165761221661296f565b9060005260206000200154905092915050565b61225282604051806040016040528060078152602001661858d8dbdd5b9d60ca1b8152506113f5565b61227a8160405180604001604052806006815260200165185b5bdd5b9d60d21b81525061141e565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405161156891815260200190565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015612305573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232991906128e6565b90508015612345576123456001600160a01b0385168483612370565b610ec36001600160a01b038516848461247c565b6060612368848460008561252e565b949350505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156123c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e491906128e6565b9050818110156124485760405162461bcd60e51b815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e63652062604482015268656c6f77207a65726f60b81b6064820152608401610dca565b6040516001600160a01b0384166024820152828203604482018190529061161e90869063095ea7b360e01b9060640161187e565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156124cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f191906128e6565b6124fb9190612899565b6040516001600160a01b038516602482015260448101829052909150610ec390859063095ea7b360e01b9060640161187e565b60608247101561258f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610dca565b600080866001600160a01b031685876040516125ab9190612985565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe87838387612609565b979650505050505050565b60608315612678578251600003612671576001600160a01b0385163b6126715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dca565b5081612368565b612368838381511561268d5781518083602001fd5b8060405162461bcd60e51b8152600401610dca9190612923565b6001600160a01b03811681146126bc57600080fd5b50565b6000602082840312156126d157600080fd5b81356116bb816126a7565b6000602082840312156126ee57600080fd5b5035919050565b6000806040838503121561270857600080fd5b8235612713816126a7565b91506020830135612723816126a7565b809150509250929050565b6000806040838503121561274157600080fd5b823561274c816126a7565b946020939093013593505050565b80151581146126bc57600080fd5b60008060006060848603121561277d57600080fd5b8335612788816126a7565b92506020840135612798816126a7565b915060408401356127a88161275a565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b818110156127f45783516001600160a01b0316835292840192918401916001016127cf565b50909695505050505050565b60008060006060848603121561281557600080fd5b8335612820816126a7565b92506020840135915060408401356127a88161275a565b634e487b7160e01b600052601160045260246000fd5b8181038181111561061257610612612837565b808202811582820484141761061257610612612837565b60008261289457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561061257610612612837565b6000602082840312156128be57600080fd5b81516116bb8161275a565b6000602082840312156128db57600080fd5b81516116bb816126a7565b6000602082840312156128f857600080fd5b5051919050565b60005b8381101561291a578181015183820152602001612902565b50506000910152565b60208152600082518060208401526129428160408501602087016128ff565b601f01601f19169190910160400192915050565b60006001820161296857612968612837565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600082516129978184602087016128ff565b919091019291505056fea26469706673582212208e34513960032318aa7d929211dc1cc1868fe229325643814621fc1fba9a894164736f6c634300081100330000000000000000000000002218f90a98b0c070676f249ef44834686daa42850000000000000000000000001ea622fa030e4a78f4cc2f305dd3c08da3f08573000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000
0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa42850000000000000000000000001ea622fa030e4a78f4cc2f305dd3c08da3f08573000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000
----Decoded View------------Arg [0] : _systemRegistry (address): 0x2218F90A98b0C070676f249EF44834686dAa4285Arg [1] : _stakeTracker (address): 0x1Ea622fa030e4a78F4CC2f305dd3c08DA3F08573Arg [2] : _rewardToken (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2Arg [3] : _newRewardRatio (uint256): 10000Arg [4] : _durationInBlock (uint256): 10Arg [5] : _allowExtraReward (bool):
----Encoded View------------Arg [0] : 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285Arg [1] : 0x0000000000000000000000001ea622fa030e4a78f4cc2f305dd3c08da3f08573Arg [2] : 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2Arg [3] : 0x0000000000000000000000000000000000000000000000000000000000002710Arg [4] : 0x000000000000000000000000000000000000000000000000000000000000000aArg [5] : 0x0000000000000000000000000000000000000000000000000000000000000000