0 txs
57.6k calls
constructor
constructor()
functions
accRewardPerShare
viewfunction accRewardPerShare() view returns (uint128)
feeder
viewfunction feeder() view returns (address)
feedMaxDuration
viewfunction feedMaxDuration() view returns (uint256)
feedMinDuration
viewfunction feedMinDuration() view returns (uint256)
lastRewardTime
viewfunction lastRewardTime() view returns (uint64)
MAXIMUM_PERIOD
viewfunction MAXIMUM_PERIOD() view returns (uint256)
MINIMUM_PERIOD
viewfunction MINIMUM_PERIOD() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingReward
viewfunction pendingReward(address user) view returns (uint256)
rewardRate
viewfunction rewardRate() view returns (uint256)
rewardRateExpiredAt
viewfunction rewardRateExpiredAt() view returns (uint256)
rewardToken
viewfunction rewardToken() view returns (address)
staking
viewfunction staking() view returns (address)
userRewardDebts
viewfunction userRewardDebts(address) view returns (int256)
feed
nonpayablefunction feed(uint256 feedAmount, uint256 duration)
feedWithExpiredAt
nonpayablefunction feedWithExpiredAt(uint256 feedAmount, uint256 expiredAt)
initialize
nonpayablefunction initialize(string name_, address rewardToken_, address staking_)
initializeV2
nonpayablefunction initializeV2()
onDeposit
nonpayablefunction onDeposit(address user, uint256 shareAmount)
onHarvest
nonpayablefunction onHarvest(address user, address receiver)
onWithdraw
nonpayablefunction onWithdraw(address user, uint256 shareAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeder
nonpayablefunction setFeeder(address feeder_)
setFeedPeriodConfig
nonpayablefunction setFeedPeriodConfig(uint256 _feedMinDuration, uint256 _feedMaxDuration)
syncDeposits
nonpayablefunction syncDeposits(address[] users, uint256[] amounts)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint8 version)
LogFeed
event LogFeed(uint256 feedAmount, uint256 rewardRate, uint256 rewardRateExpiredAt)
LogHarvest
event LogHarvest(address indexed user, uint256 pendingRewardAmount)
LogOnDeposit
event LogOnDeposit(address indexed user, uint256 shareAmount)
LogOnWithdraw
event LogOnWithdraw(address indexed user, uint256 shareAmount)
LogSetFeeder
event LogSetFeeder(address oldFeeder, address newFeeder)
LogSetFeedPeriods
event LogSetFeedPeriods(uint256 oldFeedMinDuration, uint256 oldFeedMaxDuration, uint256 feedMinDuration, uint256 feedMaxDuration)
LogUpdateRewardCalculationParams
event LogUpdateRewardCalculationParams(uint64 lastRewardTime, uint256 accRewardPerShare)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
FeedableRewarderError_BadDuration
error FeedableRewarderError_BadDuration()
FeedableRewarderError_FeedAmountDecayed
error FeedableRewarderError_FeedAmountDecayed()
FeedableRewarderError_NotFeeder
error FeedableRewarderError_NotFeeder()
FeedableRewarderError_NotStakingContract
error FeedableRewarderError_NotStakingContract()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611e2f806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c806304d745bb1461014e57806306fdde03146101635780630bc8700f146101815780632bf9518c146101985780632dcce84e146101ab578063371bcdc9146101be578063421465bf146101c7578063463fd1af146101d25780634cf088d9146101e557806351cd41e81461020557806357e606721461020f5780635cd8a76b146102225780636d6aa5bb1461022a5780637100a35e1461023d578063715018a6146102505780637b0a47ee146102585780638686b39a146102615780638da5cb5b146102815780639231cf7414610289578063939d6237146102b4578063a167d1d8146102e6578063a788a716146102ef578063cb75a6c214610302578063ccad973d14610315578063f2fde38b14610328578063f40f0f521461033b578063f7c618c11461034e575b600080fd5b61016161015c366004611728565b610361565b005b61016b6103d2565b6040516101789190611767565b60405180910390f35b61018a606d5481565b604051908152602001610178565b6101616101a636600461179a565b610460565b6101616101b9366004611898565b6104a1565b61018a606e5481565b61018a6301e1338081565b6101616101e0366004611957565b610575565b6067546101f8906001600160a01b031681565b6040516101789190611a0c565b61018a6206978081565b61016161021d366004611a20565b6107a5565b610161610806565b610161610238366004611a20565b610893565b61016161024b366004611a20565b6108c8565b610161610906565b61018a606b5481565b61018a61026f366004611728565b60696020526000908152604090205481565b6101f861091a565b606a5461029c906001600160401b031681565b6040516001600160401b039091168152602001610178565b606a546102ce90600160401b90046001600160801b031681565b6040516001600160801b039091168152602001610178565b61018a606c5481565b6068546101f8906001600160a01b031681565b610161610310366004611a42565b610929565b61016161032336600461179a565b610a6a565b610161610336366004611728565b610b47565b61018a610349366004611728565b610bc0565b6066546101f8906001600160a01b031681565b610369610c70565b6068546040517f847201f77e4b191964101633cd4efe51173db615855c06c2235217c84d47f612916103a8916001600160a01b03909116908490611a75565b60405180910390a1606880546001600160a01b0319166001600160a01b0392909216919091179055565b606580546103df90611a8f565b80601f016020809104026020016040519081016040528092919081815260200182805461040b90611a8f565b80156104585780601f1061042d57610100808354040283529160200191610458565b820191906000526020600020905b81548152906001019060200180831161043b57829003601f168201915b505050505081565b6067546001600160a01b0316331461048b57604051630f251e1160e31b815260040160405180910390fd5b610493610ccf565b61049d8282610d04565b5050565b6104a9610c70565b6104b1610ccf565b80518251146105165760405162461bcd60e51b815260206004820152602660248201527f4665656461626c6552657761726465723a20696e76616c696420696e707574206044820152650d8cadccee8d60d31b60648201526084015b60405180910390fd5b60005b82518110156105705761055e83828151811061053757610537611ac9565b602002602001015183838151811061055157610551611ac9565b6020026020010151610d04565b8061056881611af5565b915050610519565b505050565b600054610100900460ff16158080156105955750600054600160ff909116105b806105b657506105a430610da2565b1580156105b6575060005460ff166001145b6105d25760405162461bcd60e51b815260040161050d90611b0e565b6000805460ff1916600117905580156105f5576000805461ff0019166101001790555b6105fd610db1565b826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611b5c565b50604051638e478cab60e01b81526001600160a01b03831690638e478cab9061068c903090600401611a0c565b602060405180830381865afa1580156106a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cd9190611b75565b5060656106da8582611be5565b50606680546001600160a01b038086166001600160a01b031992831617909255606780549285169290911691909117905561071442610de0565b606a80546001600160401b0319166001600160401b039290921691909117905561073c61091a565b606880546001600160a01b0319166001600160a01b039290921691909117905562069780606d556301e13380606e55801561079f576000805461ff001916905560405160018152600080516020611dda8339815191529060200160405180910390a15b50505050565b6107ad610c70565b606d54606e546040805192835260208301919091528101839052606081018290527f4fd81cef85a973e00a22a13c89f6c7b212fd788a05265fdc4ccc3eea83ebabc49060800160405180910390a1606d91909155606e55565b600054600290610100900460ff16158015610828575060005460ff8083169116105b6108445760405162461bcd60e51b815260040161050d90611b0e565b60008054611c20606d556301e13380606e5561ffff191660ff83169081176101001761ff001916909155604051908152600080516020611dda833981519152906020015b60405180910390a150565b6068546001600160a01b031633146108be57604051633f157b5160e21b815260040160405180910390fd5b61049d8282610e4c565b6068546001600160a01b031633146108f357604051633f157b5160e21b815260040160405180910390fd5b61049d826109014284611ca4565b610e4c565b61090e610c70565b6109186000611060565b565b6033546001600160a01b031690565b6067546001600160a01b0316331461095457604051630f251e1160e31b815260040160405180910390fd5b61095c610ccf565b606a546000906109a39068056bc75e2d6310000090600160401b90046001600160801b031661098a866110b2565b6109949190611cb7565b61099e9190611cce565b61112c565b6001600160a01b038416600090815260696020526040812054919250908213156109f6576001600160a01b0384166000908152606960205260409020546109f3906109ee9084611cf0565b611196565b90505b6001600160a01b03841660009081526069602052604090208290558015610a2157610a2183826111e8565b836001600160a01b03167f4c8b77aa73a5c6c2ffb739719fae2d510d4917a2599984e4ad8c6c9015dbd83982604051610a5c91815260200190565b60405180910390a250505050565b6067546001600160a01b03163314610a9557604051630f251e1160e31b815260040160405180910390fd5b610a9d610ccf565b606a54610ac99068056bc75e2d631000009061099490600160401b90046001600160801b031684611cb7565b6001600160a01b038316600090815260696020526040902054610aec9190611cf0565b6001600160a01b038316600081815260696020526040908190209290925590517f5d314f3cead9f9647b4aa0db253636b02195f220cc93c9cf22e61b81ab9c481f90610b3b9084815260200190565b60405180910390a25050565b610b4f610c70565b6001600160a01b038116610bb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050d565b610bbd81611060565b50565b600080610bd3610bce6111ff565b611276565b606a54610bf09190600160401b90046001600160801b0316611d17565b6001600160801b031690506000610c1468056bc75e2d631000008361098a876110b2565b6001600160a01b038516600090815260696020526040902054909150811215610c41575060009392505050565b6001600160a01b038416600090815260696020526040902054610c68906109ee9083611cf0565b949350505050565b33610c7961091a565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161050d565b6000610cd96111ff565b606a549091506001600160401b031642118015610cf65750600081115b15610bbd57610bbd816112cf565b606a54610d309068056bc75e2d631000009061099490600160401b90046001600160801b031684611cb7565b6001600160a01b038316600090815260696020526040902054610d539190611d37565b6001600160a01b038316600081815260696020526040908190209290925590517f425bc1a1e4262ce5639cdca62f697c23aa8b0a23b9a35f3c1402c906312a3de390610b3b9084815260200190565b6001600160a01b03163b151590565b600054610100900460ff16610dd85760405162461bcd60e51b815260040161050d90611d5f565b61091861138d565b60006001600160401b03821115610e485760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b606482015260840161050d565b5090565b606d54811080610e5d5750606e5481115b15610e7b576040516372fc2c7760e01b815260040160405180910390fd5b6000610e856111ff565b9050610e90816112cf565b6066546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ec1903090600401611a0c565b602060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190611b5c565b606654909150610f1d906001600160a01b03163330876113bd565b6066546040516370a0823160e01b8152859183916001600160a01b03909116906370a0823190610f51903090600401611a0c565b602060405180830381865afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f929190611b5c565b610f9c9190611ca4565b14610fba57604051636ac1cf0960e01b815260040160405180910390fd5b50600042606c5411610fcd576000610fe8565b606b5442606c54610fde9190611ca4565b610fe89190611cb7565b90506000610ff68583611daa565b90506110028482611cce565b606b5561100f8442611daa565b606c819055606b546040805188815260208101929092528101919091527f6c2f886aa151a2ab4e8ec656f1cbcbdb6b9b0e2544fba3a793dae8059d9c8b4f9060600160405180910390a15050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606754604051637f74465b60e11b81526000916001600160a01b03169063fee88cb6906110e59030908690600401611a75565b602060405180830381865afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190611b5c565b92915050565b60006001600160ff1b03821115610e485760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161050d565b600080821215610e485760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161050d565b60665461049d906001600160a01b03168383611428565b60675460405163e39067e160e01b81526000916001600160a01b03169063e39067e190611230903090600401611a0c565b602060405180830381865afa15801561124d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112719190611b5c565b905090565b600060018211156112c7576000606b5461128e611458565b6112989190611cb7565b90506112c0836112b168056bc75e2d6310000084611cb7565b6112bb9190611cce565b6114b0565b9392505050565b506000919050565b6112d881611276565b606a80546008906112fa908490600160401b90046001600160801b0316611d17565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061132742610de0565b606a80546001600160401b0319166001600160401b03929092169182179081905560408051928352600160401b9091046001600160801b031660208301527f2d9dd36ea04f1cccb27365d5c3d69d0cfc1a3ab72097365823708e2df501b9809101610888565b600054610100900460ff166113b45760405162461bcd60e51b815260040161050d90611d5f565b61091833611060565b6040516001600160a01b038085166024830152831660448201526064810182905261079f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611519565b6040516001600160a01b03831660248201526044810182905261057090849063a9059cbb60e01b906064016113f1565b6000606c5442101561147a57606a54611271906001600160401b031642611ca4565b606a54606c546001600160401b0390911610156114aa57606a54606c54611271916001600160401b031690611ca4565b50600090565b60006001600160801b03821115610e485760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161050d565b600061156e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115eb9092919063ffffffff16565b805190915015610570578080602001905181019061158c9190611b75565b6105705760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161050d565b6060610c68848460008585600080866001600160a01b031685876040516116129190611dbd565b60006040518083038185875af1925050503d806000811461164f576040519150601f19603f3d011682016040523d82523d6000602084013e611654565b606091505b509150915061166587838387611670565b979650505050505050565b606083156116dd5782516000036116d65761168a85610da2565b6116d65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161050d565b5081610c68565b610c6883838151156116f25781518083602001fd5b8060405162461bcd60e51b815260040161050d9190611767565b80356001600160a01b038116811461172357600080fd5b919050565b60006020828403121561173a57600080fd5b6112c08261170c565b60005b8381101561175e578181015183820152602001611746565b50506000910152565b6020815260008251806020840152611786816040850160208701611743565b601f01601f19169190910160400192915050565b600080604083850312156117ad57600080fd5b6117b68361170c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611802576118026117c4565b604052919050565b60006001600160401b03821115611823576118236117c4565b5060051b60200190565b600082601f83011261183e57600080fd5b8135602061185361184e8361180a565b6117da565b82815260059290921b8401810191818101908684111561187257600080fd5b8286015b8481101561188d5780358352918301918301611876565b509695505050505050565b600080604083850312156118ab57600080fd5b82356001600160401b03808211156118c257600080fd5b818501915085601f8301126118d657600080fd5b813560206118e661184e8361180a565b82815260059290921b8401810191818101908984111561190557600080fd5b948201945b8386101561192a5761191b8661170c565b8252948201949082019061190a565b9650508601359250508082111561194057600080fd5b5061194d8582860161182d565b9150509250929050565b60008060006060848603121561196c57600080fd5b83356001600160401b038082111561198357600080fd5b818601915086601f83011261199757600080fd5b81356020828211156119ab576119ab6117c4565b6119bd601f8301601f191682016117da565b925081835288818386010111156119d357600080fd5b818185018285013760008183850101528296506119f181890161170c565b955050505050611a036040850161170c565b90509250925092565b6001600160a01b0391909116815260200190565b60008060408385031215611a3357600080fd5b50508035926020909101359150565b60008060408385031215611a5557600080fd5b611a5e8361170c565b9150611a6c6020840161170c565b90509250929050565b6001600160a01b0392831681529116602082015260400190565b600181811c90821680611aa357607f821691505b602082108103611ac357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b0757611b07611adf565b5060010190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215611b6e57600080fd5b5051919050565b600060208284031215611b8757600080fd5b815180151581146112c057600080fd5b601f82111561057057600081815260208120601f850160051c81016020861015611bbe5750805b601f850160051c820191505b81811015611bdd57828155600101611bca565b505050505050565b81516001600160401b03811115611bfe57611bfe6117c4565b611c1281611c0c8454611a8f565b84611b97565b602080601f831160018114611c475760008415611c2f5750858301515b600019600386901b1c1916600185901b178555611bdd565b600085815260208120601f198616915b82811015611c7657888601518255948401946001909101908401611c57565b5085821015611c945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561112657611126611adf565b808202811582820484141761112657611126611adf565b600082611ceb57634e487b7160e01b600052601260045260246000fd5b500490565b8181036000831280158383131683831282161715611d1057611d10611adf565b5092915050565b6001600160801b03818116838216019080821115611d1057611d10611adf565b8082018281126000831280158216821582161715611d5757611d57611adf565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8082018082111561112657611126611adf565b60008251611dcf818460208701611743565b919091019291505056fe7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498a264697066735822122037239549ad46f6e3ed83c43a0dac34cd16e8c845823d50bf9af493e667c7d40264736f6c63430008120033