[ { "inputs": [ { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address", "name": "_plugin", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "Gauge__InvalidZeroInput", "type": "error" }, { "inputs": [], "name": "Gauge__NotAuthorizedPlugin", "type": "error" }, { "inputs": [], "name": "Gauge__NotAuthorizedUser", "type": "error" }, { "inputs": [], "name": "Gauge__NotAuthorizedVoter", "type": "error" }, { "inputs": [], "name": "Gauge__NotRewardToken", "type": "error" }, { "inputs": [], "name": "Gauge__RewardTokenAlreadyAdded", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Gauge__Deposited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "rewardToken", "type": "address" } ], "name": "Gauge__RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "rewardToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "Gauge__RewardNotified", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "rewardsToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "Gauge__RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Gauge__Withdrawn", "type": "event" }, { "inputs": [], "name": "DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "_deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "_withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardsToken", "type": "address" } ], "name": "addReward", "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": "account", "type": "address" }, { "internalType": "address", "name": "_rewardsToken", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardsToken", "type": "address" } ], "name": "getRewardForDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isRewardToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardsToken", "type": "address" } ], "name": "lastTimeRewardApplicable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "rewardToken", "type": "address" } ], "name": "left", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardsToken", "type": "address" }, { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "plugin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardData", "outputs": [ { "internalType": "uint256", "name": "periodFinish", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "internalType": "uint256", "name": "lastUpdateTime", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardsToken", "type": "address" } ], "name": "rewardPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardTokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "rewards", "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" }, { "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" } ]
60c060405234801561001057600080fd5b50604051620017f2380380620017f283398101604081905261003191610069565b60016000556001600160a01b039081166080521660a05261009c565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007c57600080fd5b6100858361004d565b91506100936020840161004d565b90509250929050565b60805160a0516116f8620000fa6000396000818161016a015281816106680152818161077c0152818161089601528181610d9e01528181610f100152610f6601526000818161035e0152818161045c0152610b9201526116f86000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806399bcc052116100ad578063bcd1101411610071578063bcd1101414610308578063c00007b01461031b578063e70b9e271461032e578063ef01df4f14610359578063f12297771461038057600080fd5b806399bcc052146102895780639c9b2e211461029c578063b5fd73f8146102af578063b66503cf146102e2578063b790a77b146102f557600080fd5b8063638634ee116100f4578063638634ee146101fa5780636da1339c1461020d5780637035ab981461022257806370a082311461024d5780637bb7bed11461027657600080fd5b806318160ddd146101315780631be0528914610148578063211dc32d1461015257806346c96aac1461016557806348e5d9f8146101a4575b600080fd5b6006545b6040519081526020015b60405180910390f35b61013562093a8081565b6101356101603660046114f8565b610393565b61018c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161013f565b6101da6101b236600461152b565b6001602081905260009182526040909120805491810154600282015460039092015490919084565b60408051948552602085019390935291830152606082015260800161013f565b61013561020836600461152b565b61042d565b61022061021b366004611546565b610451565b005b6101356102303660046114f8565b600460209081526000928352604080842090915290825290205481565b61013561025b36600461152b565b6001600160a01b031660009081526007602052604090205490565b61018c610284366004611570565b6106cb565b61013561029736600461152b565b6106f5565b6102206102aa36600461152b565b610771565b6102d26102bd36600461152b565b60026020526000908152604090205460ff1681565b604051901515815260200161013f565b6102206102f0366004611546565b610883565b610220610303366004611546565b610b87565b61013561031636600461152b565b610dcd565b61022061032936600461152b565b610df7565b61013561033c3660046114f8565b600560209081526000928352604080842090915290825290205481565b61018c7f000000000000000000000000000000000000000000000000000000000000000081565b61013561038e36600461152b565b6110b0565b6001600160a01b038083166000818152600560209081526040808320948616808452948252808320549383526004825280832094835293905291822054670de0b6b3a7640000906103e3856110b0565b6103ed919061159f565b6001600160a01b03861660009081526007602052604090205461041091906115b2565b61041a91906115c9565b61042491906115eb565b90505b92915050565b6001600160a01b038116600090815260016020526040812054610427904290611162565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461049a57604051635077e0cd60e11b815260040160405180910390fd5b80806000036104bc5760405163577dc84160e01b815260040160405180910390fd5b8260005b6003548110156105b5576000600382815481106104df576104df6115fe565b6000918252602090912001546001600160a01b031690506104ff816110b0565b6001600160a01b0382166000908152600160205260409020600301556105248161042d565b6001600160a01b038083166000908152600160205260409020600201919091558316156105a2576105558382610393565b6001600160a01b0380851660008181526005602090815260408083209487168084529482528083209590955560018152848220600301549282526004815284822093825292909252919020555b50806105ad81611614565b9150506104c0565b50826006546105c491906115eb565b6006556001600160a01b0384166000908152600760205260409020546105eb9084906115eb565b6001600160a01b038516600081815260076020526040908190209290925590517f17582f67c04a2feb9dfe1d1c0ed8478dac3963e02816f730bb6fb88be27e80b39061063a9086815260200190565b60405180910390a260405163145d426560e11b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906328ba84ca906044015b600060405180830381600087803b1580156106ad57600080fd5b505af11580156106c1573d6000803e3d6000fd5b5050505050505050565b600381815481106106db57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116600090815260016020526040812054421061071c57506000919050565b6001600160a01b03821660009081526001602052604081205461074090429061159f565b6001600160a01b0384166000908152600160208190526040909120015490915061076a90826115b2565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107ba576040516326f11a6360e21b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16156107f4576040516335a6e64760e11b815260040160405180910390fd5b6003805460018082019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b038416908117909155600081815260026020526040808220805460ff1916909417909355915190917f162da511b579ed5b6110bf8e5d4cd6c0b3c1b38f1d828e038d1003a9c3098c0c91a250565b61088b611178565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108d4576040516326f11a6360e21b815260040160405180910390fd5b6000805b6003548110156109cd576000600382815481106108f7576108f76115fe565b6000918252602090912001546001600160a01b03169050610917816110b0565b6001600160a01b03821660009081526001602052604090206003015561093c8161042d565b6001600160a01b038083166000908152600160205260409020600201919091558316156109ba5761096d8382610393565b6001600160a01b0380851660008181526005602090815260408083209487168084529482528083209590955560018152848220600301549282526004815284822093825292909252919020555b50806109c581611614565b9150506108d8565b506001600160a01b03831660009081526002602052604090205460ff16610a075760405163079c823d60e11b815260040160405180910390fd5b610a1c6001600160a01b0384163330856111d6565b6001600160a01b0383166000908152600160205260409020544210610a6a57610a4862093a80836115c9565b6001600160a01b03841660009081526001602081905260409091200155610af2565b6001600160a01b038316600090815260016020526040812054610a8e90429061159f565b6001600160a01b03851660009081526001602081905260408220015491925090610ab890836115b2565b905062093a80610ac882866115eb565b610ad291906115c9565b6001600160a01b0386166000908152600160208190526040909120015550505b6001600160a01b0383166000908152600160205260409020426002909101819055610b219062093a80906115eb565b6001600160a01b038416600081815260016020526040908190209290925590517fef22e4f053df6047c62d3815f55a5db592f49879b5d6740f163c3c9998ffdd6d90610b709085815260200190565b60405180910390a250610b836001600055565b5050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bd057604051635077e0cd60e11b815260040160405180910390fd5b8080600003610bf25760405163577dc84160e01b815260040160405180910390fd5b8260005b600354811015610ceb57600060038281548110610c1557610c156115fe565b6000918252602090912001546001600160a01b03169050610c35816110b0565b6001600160a01b038216600090815260016020526040902060030155610c5a8161042d565b6001600160a01b03808316600090815260016020526040902060020191909155831615610cd857610c8b8382610393565b6001600160a01b0380851660008181526005602090815260408083209487168084529482528083209590955560018152848220600301549282526004815284822093825292909252919020555b5080610ce381611614565b915050610bf6565b5082600654610cfa919061159f565b6006556001600160a01b038416600090815260076020526040902054610d2190849061159f565b6001600160a01b038516600081815260076020526040908190209290925590517fffc0abbe8eadab32fc71e33af4b8cf4346371a8aa1d97b804ba2968e575dbc1a90610d709086815260200190565b60405180910390a260405163b014da2160e01b81526001600160a01b038581166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063b014da2190604401610693565b6001600160a01b0381166000908152600160208190526040822001546104279062093a80906115b2565b8060005b600354811015610ef057600060038281548110610e1a57610e1a6115fe565b6000918252602090912001546001600160a01b03169050610e3a816110b0565b6001600160a01b038216600090815260016020526040902060030155610e5f8161042d565b6001600160a01b03808316600090815260016020526040902060020191909155831615610edd57610e908382610393565b6001600160a01b0380851660008181526005602090815260408083209487168084529482528083209590955560018152848220600301549282526004815284822093825292909252919020555b5080610ee881611614565b915050610dfb565b50336001600160a01b03831614801590610f335750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610f5157604051630d55f30b60e01b815260040160405180910390fd5b6040516363453ae160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906363453ae190602401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505060005b6003548110156110ab57600060038281548110610fec57610fec6115fe565b60009182526020808320909101546001600160a01b038781168452600583526040808520919092168085529252909120549091508015611096576001600160a01b0385811660008181526005602090815260408083209487168084529482528083209290925590518481527f773189df03a25c28916cd3a8c2609c1c3d8c0386d0fe0958aa3f62c888bac6aa910160405180910390a36110966001600160a01b0383168683611247565b505080806110a390611614565b915050610fcd565b505050565b60006006546000036110db57506001600160a01b031660009081526001602052604090206003015490565b6006546001600160a01b03831660009081526001602081905260409091209081015460029091015461110c8561042d565b611116919061159f565b61112091906115b2565b61113290670de0b6b3a76400006115b2565b61113c91906115c9565b6001600160a01b03831660009081526001602052604090206003015461042791906115eb565b60008183106111715781610424565b5090919050565b6002600054036111cf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055565b6040516001600160a01b03808516602483015283166044820152606481018290526112419085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611277565b50505050565b6040516001600160a01b0383166024820152604481018290526110ab90849063a9059cbb60e01b9060640161120a565b60006112cc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661134c9092919063ffffffff16565b90508051600014806112ed5750808060200190518101906112ed919061162d565b6110ab5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016111c6565b606061135b8484600085611363565b949350505050565b6060824710156113c45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016111c6565b600080866001600160a01b031685876040516113e09190611673565b60006040518083038185875af1925050503d806000811461141d576040519150601f19603f3d011682016040523d82523d6000602084013e611422565b606091505b50915091506114338783838761143e565b979650505050505050565b606083156114ad5782516000036114a6576001600160a01b0385163b6114a65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016111c6565b508161135b565b61135b83838151156114c25781518083602001fd5b8060405162461bcd60e51b81526004016111c6919061168f565b80356001600160a01b03811681146114f357600080fd5b919050565b6000806040838503121561150b57600080fd5b611514836114dc565b9150611522602084016114dc565b90509250929050565b60006020828403121561153d57600080fd5b610424826114dc565b6000806040838503121561155957600080fd5b611562836114dc565b946020939093013593505050565b60006020828403121561158257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561042757610427611589565b808202811582820484141761042757610427611589565b6000826115e657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561042757610427611589565b634e487b7160e01b600052603260045260246000fd5b60006001820161162657611626611589565b5060010190565b60006020828403121561163f57600080fd5b8151801515811461076a57600080fd5b60005b8381101561166a578181015183820152602001611652565b50506000910152565b6000825161168581846020870161164f565b9190910192915050565b60208152600082518060208401526116ae81604085016020870161164f565b601f01601f1916919091016040019291505056fea264697066735822122092ca15d3235f7b6ed1669b3bdb840497cdac9c16e1ceaca436f6d33d8148a6ce64736f6c63430008130033000000000000000000000000756fc5e6bdb26a85594346d7d0520e1c0e492452000000000000000000000000d0edd7d1610195c94b8866a0d63efbe4e6639e7e
0x000000000000000000000000756fc5e6bdb26a85594346d7d0520e1c0e492452000000000000000000000000d0edd7d1610195c94b8866a0d63efbe4e6639e7e
----Decoded View------------Arg [0] : _voter (address): 0x756fC5e6BdB26A85594346D7D0520E1c0e492452Arg [1] : _plugin (address): 0xd0Edd7D1610195c94B8866A0D63Efbe4e6639e7E
----Encoded View------------Arg [0] : 0x000000000000000000000000756fc5e6bdb26a85594346d7d0520e1c0e492452Arg [1] : 0x000000000000000000000000d0edd7d1610195c94b8866a0d63efbe4e6639e7e