0 txs
13 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(uint256, address) view returns (uint256)
checkpoints
viewfunction checkpoints(uint256, address, uint256) view returns (uint256 timestamp, uint256 balanceOf)
DURATION
viewfunction DURATION() view returns (uint256)
earned
viewfunction earned(address token, uint256 tokenId) view returns (uint256)
getAllLpRewardTokens
viewfunction getAllLpRewardTokens() view returns (address[])
getCheckpoint
viewfunction getCheckpoint(uint256 tokenId, address lpToken, uint256 index) view returns (tuple)
getPriorBalanceIndex
viewfunction getPriorBalanceIndex(uint256 tokenId, address lpToken, uint256 timestamp) view returns (uint256)
getPriorSupplyIndex
viewfunction getPriorSupplyIndex(uint256 timestamp, address lpToken) view returns (uint256)
historicalPrices
viewfunction historicalPrices(address, uint256) view returns (uint256)
isReward
viewfunction isReward(address) view returns (bool)
lastEarn
viewfunction lastEarn(address, uint256) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(uint256, address) view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
rewards
viewfunction rewards(uint256) view returns (address)
rewardsListLength
viewfunction rewardsListLength() view returns (uint256)
supplyCheckpoints
viewfunction supplyCheckpoints(uint256, address) view returns (uint256 timestamp, uint256 supply)
supplyNumCheckpoints
viewfunction supplyNumCheckpoints(address) view returns (uint256)
tokenRewardsPerEpoch
viewfunction tokenRewardsPerEpoch(address, uint256) view returns (uint256)
totalSupply
viewfunction totalSupply(address) view returns (uint256)
ve
viewfunction ve() view returns (address)
voter
viewfunction voter() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
deposit
nonpayablefunction deposit(address lpToken, uint256 amount, uint256 tokenId)
getReward
nonpayablefunction getReward(uint256 tokenId, address[] tokens)
initialize
nonpayablefunction initialize(address _voter, address _ve)
notifyRewardAmount
nonpayablefunction notifyRewardAmount(address token, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setHistoricalPrices
nonpayablefunction setHistoricalPrices(uint256 epochTimestamp, address lpToken, uint256 price)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(address lpToken, uint256 amount, uint256 tokenId)
events
Deposit
event Deposit(address indexed user, uint256 indexed tokenId, uint256 amount)
HistoricalPriceSet
event HistoricalPriceSet(uint256 indexed epochTimestamp, address indexed lpToken, uint256 price)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
RewardNotification
event RewardNotification(address indexed user, address indexed rewardToken, uint256 indexed epoch, uint256 amount)
RewardsClaimed
event RewardsClaimed(address indexed user, address indexed rewardToken, uint256 amount)
Withdraw
event Withdraw(address indexed user, uint256 indexed tokenId, uint256 amount)
errors
AmountCannotBeZero
error AmountCannotBeZero()
HistoricalPriceNotSet
error HistoricalPriceNotSet(address lpToken, uint256 epochStart)
InvalidEscrowToken
error InvalidEscrowToken()
InvalidGauge
error InvalidGauge()
InvalidReward
error InvalidReward()
InvalidVotingEscrow
error InvalidVotingEscrow()
SingleTokenExpected
error SingleTokenExpected()
TokenNotWhitelisted
error TokenNotWhitelisted()
Unauthorized
error Unauthorized()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6123ee80620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638760e6221161010f578063e30c3978116100a2578063f25e55a511610071578063f25e55a5146104fa578063f2fde38b14610525578063f301af4214610538578063f5f8d3651461054b57600080fd5b8063e30c3978146104ae578063e4dc2aa4146104bf578063e6886396146104df578063eac74562146104e757600080fd5b8063b5c5f672116100de578063b5c5f6721461044a578063b66503cf1461045d578063d2980eb014610470578063d82ada501461048357600080fd5b80638760e622146103a85780638da5cb5b146103d657806392777b29146103e75780639a8c3e911461041257600080fd5b806346c96aac1161018757806357b353251161015657806357b353251461033c5780636e13fffe14610383578063715018a61461039857806379ba5097146103a057600080fd5b806346c96aac146102c3578063485cc955146102d65780634d5ce038146102e9578063524bafc81461031c57600080fd5b80631be05289116101c35780631be05289146102505780631f8507161461025a5780633656eec2146102855780633e491d47146102b057600080fd5b80630efe6a8b146101ea5780631056dfe8146101ff57806315b42e5e14610212575b600080fd5b6101fd6101f8366004611eda565b61055e565b005b6101fd61020d366004611f0f565b61067a565b61023d610220366004611f47565b60d560209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61023d62093a8081565b60ca5461026d906001600160a01b031681565b6040516001600160a01b039091168152602001610247565b61023d610293366004611f73565b60ce60209081526000928352604080842090915290825290205481565b61023d6102be366004611f47565b6106e3565b60c95461026d906001600160a01b031681565b6101fd6102e4366004611fa3565b610a7d565b61030c6102f7366004611fd1565b60cc6020526000908152604090205460ff1681565b6040519015158152602001610247565b61023d61032a366004611fd1565b60d46020526000908152604090205481565b61036e61034a366004611f73565b60d36020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610247565b61038b610bc8565b6040516102479190611fee565b6101fd610c3f565b6101fd610c53565b6103bb6103b6366004611f0f565b610ccd565b60408051825181526020928301519281019290925201610247565b6065546001600160a01b031661026d565b61023d6103f5366004611f47565b60cf60209081526000928352604080842090915290825290205481565b61036e610420366004611f0f565b60d16020908152600093845260408085208252928452828420905282529020805460019091015482565b6101fd610458366004611eda565b610d22565b6101fd61046b366004611f47565b610e27565b61023d61047e366004611f73565b610f5b565b61023d610491366004611f73565b60d260209081526000928352604080842090915290825290205481565b6097546001600160a01b031661026d565b61023d6104cd366004611fd1565b60cd6020526000908152604090205481565b60cb5461023d565b61023d6104f5366004611f0f565b6110db565b61023d610508366004611f47565b60d060209081526000928352604080842090915290825290205481565b6101fd610533366004611fd1565b61126b565b61026d61054636600461203b565b6112dc565b6101fd6105593660046120bf565b611306565b60c9546001600160a01b031633146105915760405162461bcd60e51b81526004016105889061216a565b60405180910390fd5b6001600160a01b038316600090815260cd60205260408120805433928592916105bb9084906121b7565b9091555050600082815260ce602090815260408083206001600160a01b0388168452909152812080548592906105f29084906121b7565b9091555050600082815260ce602090815260408083206001600160a01b03881684529091529020546106279083908690611471565b610630846115da565b81816001600160a01b03167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158560405161066c91815260200190565b60405180910390a350505050565b610682611738565b6001600160a01b038216600081815260d56020908152604080832062093a8088068803808552908352928190208590555184815291929186917ff62974ed7e8fa605d2bf41382cae245ff3153382d14e491a73ecdcede5da58e6910161066c565b600061073b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000808252610748610bc8565b805190915060005b81811015610a6f57600083828151811061076c5761076c6121ca565b602090810291909101810151600089815260d2835260408082206001600160a01b03841683529093529182205490925090036107a85750610a67565b6001600160a01b038816600090815260d0602090815260408083208a845290915290205462093a8081069003608086018190526107e890889083906110db565b60a08601908152600088815260d1602090815260408083206001600160a01b0386168452825280832093518352928152908290208251808401909352805480845260019091015491830191909152608087015161084c9162093a8081069003611792565b6080870181905262093a8090610867904283810690036121e0565b61087191906121f3565b60c0870181905215610a645760005b8660c00151811015610a62576108b08984600162093a808b608001516108a691906121b7565b6104f591906121e0565b60a0880190815260008a815260d1602090815260408083206001600160a01b03881684528252808320935183529281529082902082518084019093528054835260010154908201819052608089015191935061090d9185906117a8565b60608801526000604088018190525b858110156109de576000878281518110610938576109386121ca565b6020026020010151905060006109af60d36000610973600162093a808f6080015161096391906121b7565b61096d91906121e0565b86610f5b565b81526020019081526020016000206000846001600160a01b03166001600160a01b03168152602001908152602001600020600101546001611792565b90506109c081838c608001516117a8565b8a6040018181516109d191906121b7565b905250505060010161091c565b50604087015115610a42576040808801516001600160a01b038c16600090815260cf602090815283822060808c01518352905291909120546060890151610a259190612215565b610a2f91906121f3565b87518890610a3e9083906121b7565b9052505b62093a8087608001818151610a5791906121b7565b905250600101610880565b505b50505b600101610750565b505090519150505b92915050565b600054610100900460ff1615808015610a9d5750600054600160ff909116105b80610ab75750303b158015610ab7575060005460ff166001145b610b1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610588565b6000805460ff191660011790558015610b3d576000805461ff0019166101001790555b610b45611851565b610b4d611880565b60c980546001600160a01b038086166001600160a01b03199283161790925560ca8054928516929091169190911790558015610bc3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60c95460408051633709ffff60e11b815290516060926001600160a01b031691636e13fffe9160048083019260009291908290030181865afa158015610c12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c3a919081019061222c565b905090565b610c47611738565b610c5160006118af565b565b60975433906001600160a01b03168114610cc15760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610588565b610cca816118af565b50565b6040805180820182526000808252602091820181905285815260d182528281206001600160a01b03861682528252828120848252825282902082518084019093528054835260010154908201525b9392505050565b60c9546001600160a01b03163314610d4c5760405162461bcd60e51b81526004016105889061216a565b6001600160a01b038316600090815260cd6020526040812080543392859291610d769084906121e0565b9091555050600082815260ce602090815260408083206001600160a01b038816845290915281208054859290610dad9084906121e0565b9091555050600082815260ce602090815260408083206001600160a01b0388168452909152902054610de29083908690611471565b610deb846115da565b81816001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688560405161066c91815260200190565b610e2f6118c8565b6001600160a01b038216600090815260cc6020526040902054339060ff16610f425760c95460405163559bfa4360e11b81526001600160a01b0385811660048301529091169063ab37f48690602401602060405180830381865afa158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebf91906122bb565b610edc576040516307c241ad60e51b815260040160405180910390fd5b6001600160a01b038316600081815260cc60205260408120805460ff1916600190811790915560cb805491820181559091527fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb0180546001600160a01b03191690911790555b610f4d818484611921565b50610f5760018055565b5050565b6001600160a01b038116600090815260d46020526040812054808203610f85576000915050610a77565b8360d36000610f956001856121e0565b8152602080820192909252604090810160009081206001600160a01b038816825290925290205411610fd457610fcc6001826121e0565b915050610a77565b6001600160a01b03831660009081527f938258ec6d8d468a3507d140e1c026dc2afa285c097847a088da7b50946fb91b602052604090205484101561101d576000915050610a77565b60008061102b6001846121e0565b90505b818111156110d2576000600261104484846121e0565b61104e91906121f3565b61105890836121e0565b600081815260d3602090815260408083206001600160a01b038b1684528252918290208251808401909352805480845260019091015491830191909152919250908890036110ac57509350610a7792505050565b80518811156110bd578193506110cb565b6110c86001836121e0565b92505b505061102e565b50949350505050565b600083815260d2602090815260408083206001600160a01b038616845290915281205480820361110f576000915050610d1b565b600085815260d1602090815260408083206001600160a01b03881684529091528120849161113e6001856121e0565b81526020019081526020016000206000015411611168576111606001826121e0565b915050610d1b565b600085815260d1602090815260408083206001600160a01b038816845282528083208380529091529020548310156111a4576000915050610d1b565b6000806111b26001846121e0565b90505b8181111561126157600060026111cb84846121e0565b6111d591906121f3565b6111df90836121e0565b600089815260d1602090815260408083206001600160a01b038c168452825280832084845282529182902082518084019093528054808452600190910154918301919091529192509087900361123b57509350610d1b92505050565b805187111561124c5781935061125a565b6112576001836121e0565b92505b50506111b5565b5095945050505050565b611273611738565b609780546001600160a01b0383166001600160a01b031990911681179091556112a46065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60cb81815481106112ec57600080fd5b6000918252602090912001546001600160a01b0316905081565b61130e6118c8565b60c9546001600160a01b031633146113385760405162461bcd60e51b81526004016105889061216a565b60ca546040516331a9108f60e11b815260048101849052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a991906122dd565b6001600160a01b0316141580156113ce575060c9546001600160a01b03828116911614155b156113eb576040516282b42960e81b815260040160405180910390fd5b60ca546040516331a9108f60e11b8152600481018590526000916001600160a01b031690636352211e90602401602060405180830381865afa158015611435573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145991906122dd565b9050611466818585611a01565b5050610f5760018055565b600083815260d2602090815260408083206001600160a01b03861684529091529020544281158015906114f7575062093a8081068103600086815260d1602090815260408083206001600160a01b038916845290915281206114f5916114d86001876121e0565b81526020019081526020016000206000015462093a808106900390565b145b1561155e576040805180820182528281526020808201869052600088815260d182528381206001600160a01b0389168252909152918220909161153b6001866121e0565b8152602080820192909252604001600020825181559101516001909101556115d3565b6040805180820182528281526020808201868152600089815260d183528481206001600160a01b038a16825283528481208782529092529290209051815590516001918201556115af9083906121b7565b600086815260d2602090815260408083206001600160a01b03891684529091529020555b5050505050565b6001600160a01b038116600090815260d4602052604090205442811580159061164c575062093a808106810361164a60d360006116186001876121e0565b8152602080820192909252604090810160009081206001600160a01b038916825290925290205462093a808106900390565b145b156116c3576040805180820182528281526001600160a01b038516600090815260cd602090815292812054928201929092529060d39061168d6001866121e0565b8152602080820192909252604090810160009081206001600160a01b038816825283522082518155910151600190910155505050565b6040805180820182528281526001600160a01b038516600081815260cd60209081528482205481850190815287835260d382528583209383529290529290922090518155905160019182015561171a9083906121b7565b6001600160a01b038416600090815260d46020526040902055505050565b6065546001600160a01b03163314610c515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610588565b60008183116117a15781610d1b565b5090919050565b6001600160a01b038216600090815260d56020908152604080832062093a80850685038085529252822054820361180457604051631e1bcf4b60e21b81526001600160a01b038516600482015260248101829052604401610588565b6001600160a01b038416600090815260d56020908152604080832084845290915281205490670de0b6b3a764000061183c8389612215565b61184691906121f3565b979650505050505050565b600054610100900460ff166118785760405162461bcd60e51b8152600401610588906122fa565b610c51611b29565b600054610100900460ff166118a75760405162461bcd60e51b8152600401610588906122fa565b610c51611b50565b609780546001600160a01b0319169055610cca81611b80565b60026001540361191a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610588565b6002600155565b806000036119425760405163d11b25af60e01b815260040160405180910390fd5b6119576001600160a01b038316843084611bd2565b60006119684262093a808106900390565b6001600160a01b038416600090815260cf602090815260408083208484529091528120805492935084929091906119a09084906121b7565b9250508190555080836001600160a01b0316856001600160a01b03167fd6ed593743eef6a29ec2399492c6063a60ca178ec420caf8ac3eceff9cb9a559856040516119ed91815260200190565b60405180910390a450505050565b60018055565b805160005b818110156115d3576000611a33848381518110611a2557611a256121ca565b6020026020010151866106e3565b90504260d06000868581518110611a4c57611a4c6121ca565b6020908102919091018101516001600160a01b0316825281810192909252604090810160009081208982529092529020558015611aba57611aba8682868581518110611a9a57611a9a6121ca565b60200260200101516001600160a01b0316611c439092919063ffffffff16565b838281518110611acc57611acc6121ca565b60200260200101516001600160a01b0316866001600160a01b03167f9310ccfcb8de723f578a9e4282ea9f521f05ae40dc08f3068dfad528a65ee3c783604051611b1891815260200190565b60405180910390a350600101611a06565b600054610100900460ff166119fb5760405162461bcd60e51b8152600401610588906122fa565b600054610100900460ff16611b775760405162461bcd60e51b8152600401610588906122fa565b610c51336118af565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c3d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c73565b50505050565b6040516001600160a01b038316602482015260448101829052610bc390849063a9059cbb60e01b90606401611c06565b6000611cc8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d459092919063ffffffff16565b805190915015610bc35780806020019051810190611ce691906122bb565b610bc35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610588565b6060611d548484600085611d5c565b949350505050565b606082471015611dbd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610588565b600080866001600160a01b03168587604051611dd99190612369565b60006040518083038185875af1925050503d8060008114611e16576040519150601f19603f3d011682016040523d82523d6000602084013e611e1b565b606091505b50915091506118468783838760608315611e96578251600003611e8f576001600160a01b0385163b611e8f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610588565b5081611d54565b611d548383815115611eab5781518083602001fd5b8060405162461bcd60e51b81526004016105889190612385565b6001600160a01b0381168114610cca57600080fd5b600080600060608486031215611eef57600080fd5b8335611efa81611ec5565b95602085013595506040909401359392505050565b600080600060608486031215611f2457600080fd5b833592506020840135611f3681611ec5565b929592945050506040919091013590565b60008060408385031215611f5a57600080fd5b8235611f6581611ec5565b946020939093013593505050565b60008060408385031215611f8657600080fd5b823591506020830135611f9881611ec5565b809150509250929050565b60008060408385031215611fb657600080fd5b8235611fc181611ec5565b91506020830135611f9881611ec5565b600060208284031215611fe357600080fd5b8135610d1b81611ec5565b6020808252825182820181905260009190848201906040850190845b8181101561202f5783516001600160a01b03168352928401929184019160010161200a565b50909695505050505050565b60006020828403121561204d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561209357612093612054565b604052919050565b600067ffffffffffffffff8211156120b5576120b5612054565b5060051b60200190565b600080604083850312156120d257600080fd5b8235915060208084013567ffffffffffffffff8111156120f157600080fd5b8401601f8101861361210257600080fd5b80356121156121108261209b565b61206a565b81815260059190911b8201830190838101908883111561213457600080fd5b928401925b8284101561215b57833561214c81611ec5565b82529284019290840190612139565b80955050505050509250929050565b60208082526017908201527f43616c6c6572206973206e6f742074686520766f746572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776121a1565b634e487b7160e01b600052603260045260246000fd5b81810381811115610a7757610a776121a1565b60008261221057634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610a7757610a776121a1565b6000602080838503121561223f57600080fd5b825167ffffffffffffffff81111561225657600080fd5b8301601f8101851361226757600080fd5b80516122756121108261209b565b81815260059190911b8201830190838101908783111561229457600080fd5b928401925b828410156118465783516122ac81611ec5565b82529284019290840190612299565b6000602082840312156122cd57600080fd5b81518015158114610d1b57600080fd5b6000602082840312156122ef57600080fd5b8151610d1b81611ec5565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015612360578181015183820152602001612348565b50506000910152565b6000825161237b818460208701612345565b9190910192915050565b60208152600082518060208401526123a4816040850160208701612345565b601f01601f1916919091016040019291505056fea2646970667358221220f78685991f7fea8227b7b8bcdaba997d53e2d6a658b7b51a2efb0c4edf2e76bc64736f6c63430008160033