9 txs
159.7k calls
constructor
constructor()
functions
accRewardPerShare
viewfunction accRewardPerShare() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
cooldownDuration
viewfunction cooldownDuration() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
emissionRatePerSecond
viewfunction emissionRatePerSecond() view returns (uint256)
getVenicePercentage
viewfunction getVenicePercentage() view returns (uint256)
lastRewardTimestamp
viewfunction lastRewardTimestamp() view returns (uint256)
name
viewfunction name() view returns (string)
oracle
viewfunction oracle() view returns (address)
owner
viewfunction owner() view returns (address)
pendingRewards
viewfunction pendingRewards(address _user) view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
stakes
viewfunction stakes(address) view returns (uint256 rewardDebt, uint256 cooldownEnd, uint256 cooldownAmount)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
venice
viewfunction venice() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
claim
nonpayablefunction claim()
finalizeUnstake
nonpayablefunction finalizeUnstake()
initialize
nonpayablefunction initialize(address _venice, address _oracle, address _treasury)
initiateUnstake
nonpayablefunction initiateUnstake(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setCooldownDuration
nonpayablefunction setCooldownDuration(uint256 _cooldownDuration)
setEmissionRate
nonpayablefunction setEmissionRate(uint256 _emissionRate)
setTreasury
nonpayablefunction setTreasury(address _treasury)
stake
nonpayablefunction stake(address recipient, uint256 amount)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Claimed
event Claimed(address indexed user, uint256 amount)
CooldownDurationUpdated
event CooldownDurationUpdated(uint256 newDuration)
EmissionRateUpdated
event EmissionRateUpdated(uint256 newRate)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Staked
event Staked(address indexed user, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TreasuryUpdated
event TreasuryUpdated(address newTreasury)
UnstakeFinalized
event UnstakeFinalized(address indexed user, uint256 amount)
UnstakeInitiated
event UnstakeInitiated(address indexed user, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161208290816100f08239608051818181610eb80152610f890152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c806306fdde0314611529578063095ea7b3146114955780630ea943411461138e57806316934fc41461133d57806318160ddd1461131257806323b872dd146112485780632c74d1df1461122d578063313ce5671461121157806331d7a262146111e557806335269315146111c75780634e71d92d146111625780634f1ef28614610f0d57806352d1902d14610ea557806361d027b314610e7c57806370a0823114610e36578063715018a614610dcc5780637dc0d1d014610da35780638da5cb5b14610d6d5780638f1f8d0c14610d46578063939d623714610d2857806395d89b4114610c33578063966be07514610be5578063a1bdb15e14610b8f578063a80152d614610b71578063a9059cbb14610b4d578063ad3cb1cc14610b08578063adc9772e1461099b578063ae5ac92114610801578063c0c53b8b1461028d578063dd62ed3e14610243578063f0f44260146101d5578063f2fde38b146101a85763f8077fae1461018857600080fd5b346101a557806003193601126101a5576020600754604051908152f35b80fd5b50346101a55760203660031901126101a5576101d26101c5611633565b6101cd611c2c565b611a55565b80f35b50346101a55760203660031901126101a5577f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d16020610212611633565b61021a611c2c565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b50346101a55760403660031901126101a55761025d611633565b61026e61026861164e565b91611664565b9060018060a01b03166000526020526020604060002054604051908152f35b50346101a55760603660031901126101a5576102a7611633565b6102af61164e565b6044356001600160a01b038116908190036107fd5760008051602061202d833981519152549160ff8360401c16159267ffffffffffffffff8116801590816107f5575b60011490816107eb575b1590816107e2575b506107d35767ffffffffffffffff19811660011760008051602061202d83398151915255836107a6575b50604093845161033e868261169d565b601381527229ba30b5b2b2102b32b734b1b2902a37b5b2b760691b602082015285519061036b878361169d565b600482526339ab2b2b60e11b6020830152610384611edd565b61038c611edd565b80519067ffffffffffffffff82116107925781906103b8600080516020611f6d833981519152546116f1565b601f8111610717575b50602090601f8311600114610698578a9261068d575b50508160011b916000199060031b1c191617600080516020611f6d833981519152555b80519067ffffffffffffffff8211610679578190610426600080516020611fad833981519152546116f1565b601f81116105fe575b50602090601f831160011461057f578992610574575b50508160011b916000199060031b1c191617600080516020611fad833981519152555b610470611edd565b610478611edd565b61048133611a55565b610489611edd565b60018060a01b03166001600160601b0360a01b86541617855560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556706292e6de3503dd360035562093a80600455426007553015610560576104ff670de0b6b3a764000030611e2d565b610507575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff00000000000000001960008051602061202d833981519152541660008051602061202d833981519152555160018152a180f35b63ec442f0560e01b83526004839052602483fd5b015190503880610445565b600080516020611fad8339815191528a52818a209250601f1984168a5b8181106105e657509084600195949392106105cd575b505050811b01600080516020611fad83398151915255610468565b015160001960f88460031b161c191690553880806105b2565b9293602060018192878601518155019501930161059c565b600080516020611fad8339815191528a529091507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c8101916020851061066f575b90601f859493920160051c01905b818110610661575061042f565b8a8155849350600101610654565b9091508190610646565b634e487b7160e01b88526041600452602488fd5b0151905038806103d7565b600080516020611f6d8339815191528b52818b209250601f1984168b5b8181106106ff57509084600195949392106106e6575b505050811b01600080516020611f6d833981519152556103fa565b015160001960f88460031b161c191690553880806106cb565b929360206001819287860151815501950193016106b5565b600080516020611f6d8339815191528b529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510610788575b90601f859493920160051c01905b81811061077a57506103c1565b8b815584935060010161076d565b909150819061075f565b634e487b7160e01b89526041600452602489fd5b68ffffffffffffffffff1916680100000000000000011760008051602061202d833981519152553861032e565b63f92ee8a960e01b8652600486fd5b90501538610304565b303b1591506102fc565b8591506102f2565b8380fd5b50346101a55760203660031901126101a5576004356040916108498351610828858261169d565b600c81526b554e5354414b455f5a45524f60a01b602082015283151561172b565b61085233611b5c565b33156109875750600091338352600080516020611f8d8339815191526020528083205482811061096c578290338552600080516020611f8d833981519152602052038184205581600080516020611fed8339815191525403600080516020611fed833981519152558281518381527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a333835260056020528083206108fd600454426117f0565b6001820155826002820155338452600080516020611f8d8339815191526020526a0c097ce7bc90715b34b9f160241b61093c838620546006549061179a565b049055519081527fc606a9f55fc42cd3159fcfc8ddcd749dd21c4574cca0b68a5a65d5f984b6c42c60203392a280f35b63391434e360e21b8452336004526024526044829052606483fd5b634b637e8f60e11b81526004819052602490fd5b50346101a55760403660031901126101a5576109b5611633565b60243560406109e881516109c9838261169d565b600a8152695354414b455f5a45524f60b01b602082015283151561172b565b6109f183611b5c565b6001600160a01b038316928315610af45782610a0c91611e2d565b835481516323b872dd60e01b815233600482015230602482015260448101849052906020908290606490829089906001600160a01b03165af18015610aea57917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9391602093610abf575b50848652600080516020611f8d83398151915283526a0c097ce7bc90715b34b9f160241b610aab828820546006549061179a565b04858752600584528187205551908152a280f35b610ade90843d8611610ae3575b610ad6818361169d565b810190611782565b610a77565b503d610acc565b82513d87823e3d90fd5b63ec442f0560e01b85526004859052602485fd5b50346101a557806003193601126101a55750610b49604051610b2b60408261169d565b60058152640352e302e360dc1b6020820152604051918291826115ea565b0390f35b50346101a55760403660031901126101a557610b67611633565b6024359033611acb565b50346101a557806003193601126101a5576020600354604051908152f35b50346101a55760203660031901126101a5577fffcc630bf88a67ba7c8b27440787c31777ae923aee1e9bbd0127feea56da2cd06020600435610bcf611c2c565b610bd7611c62565b80600355604051908152a180f35b50346101a55760203660031901126101a5577f3b919acbae27b7c60197957a5423655702d842fcc85c19c7631dc1c777f478f56020600435610c25611c2c565b80600455604051908152a180f35b50346101a557806003193601126101a5576040519080600080516020611fad8339815191525490610c63826116f1565b8085529160018116908115610d015750600114610c97575b610b4984610c8b8186038261169d565b604051918291826115ea565b600080516020611fad83398151915281527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610ce757509091508101602001610c8b82610c7b565b919260018160209254838588010152019101909291610cce565b60ff191660208087019190915292151560051b85019092019250610c8b9150839050610c7b565b50346101a557806003193601126101a5576020600654604051908152f35b50346101a557806003193601126101a557546040516001600160a01b039091168152602090f35b50346101a557806003193601126101a557600080516020611fcd833981519152546040516001600160a01b039091168152602090f35b50346101a557806003193601126101a5576001546040516001600160a01b039091168152602090f35b50346101a557806003193601126101a557610de5611c2c565b600080516020611fcd83398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101a55760203660031901126101a5576020906040906001600160a01b03610e5e611633565b168152600080516020611f8d83398151915283522054604051908152f35b50346101a557806003193601126101a5576002546040516001600160a01b039091168152602090f35b50346101a557806003193601126101a5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610efe57602060405160008051602061200d8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101a557610f22611633565b6024359067ffffffffffffffff821161115e573660238301121561115e5781600401359083610f50836116d5565b93610f5e604051958661169d565b8385526020850193366024828401011161115e57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561113b575b5061112c57610fc1611c2c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816110f4575b5061100457634c9c8ce360e01b86526004859052602486fd5b938460008051602061200d8339815191528796036110e25750823b156110d05760008051602061200d83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156110b5576110a99382915190845af43d156110ad573d9161108d836116d5565b9261109b604051948561169d565b83523d85602085013e611f0b565b5080f35b606091611f0b565b50505050346110c15780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611124575b816111106020938361169d565b8101031261112057519038610feb565b8680fd5b3d9150611103565b63703e46dd60e11b8452600484fd5b60008051602061200d833981519152546001600160a01b03161415905038610fb4565b8280fd5b50346101a557806003193601126101a55761117c33611b5c565b336000908152600080516020611f8d833981519152602052604090206a0c097ce7bc90715b34b9f160241b906111b690546006549061179a565b043382526005602052604082205580f35b50346101a557806003193601126101a5576020600454604051908152f35b50346101a55760203660031901126101a5576020611209611204611633565b611934565b604051908152f35b50346101a557806003193601126101a557602060405160128152f35b50346101a557806003193601126101a55760206112096117fd565b50346101a55760603660031901126101a557611262611633565b61126a61164e565b906044359261127882611664565b3382526020526040812054906000198210611295575b5050611acb565b8482106112f8576001600160a01b038316156112e45733156112d057604085916112be85611664565b3382526020522091039055388061128e565b634a1406b160e11b81526004819052602490fd5b63e602df0560e01b81526004819052602490fd5b84606492637dc7a0d960e11b835233600452602452604452fd5b50346101a557806003193601126101a5576020600080516020611fed83398151915254604051908152f35b50346101a55760203660031901126101a5576060906040906001600160a01b03611365611633565b168152600560205220805490600260018201549101549060405192835260208301526040820152f35b50346101a557806003193601126101a5573381526005602052604081206002810190828254928160016040946113e986516113c9888261169d565b600b81526a2727afa1a7a7a62227aba760a91b602082015288151561172b565b0161140081544210156113fa611753565b9061172b565b55558254815163a9059cbb60e01b815233600482015260248101849052906020908290604490829088906001600160a01b03165af1801561148b5761146e575b50519081527fc819022d26707b1e41f61d9adc9481024e27272d949e34a1dfec4d7abf168a3360203392a280f35b6114869060203d602011610ae357610ad6818361169d565b611440565b82513d86823e3d90fd5b50346101a55760403660031901126101a5576114af611633565b602435903315611515576001600160a01b03169182156112d057604082916114d633611664565b85825260205220556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b63e602df0560e01b83526004839052602483fd5b50346101a557806003193601126101a5576040519080600080516020611f6d8339815191525490611559826116f1565b8085529160018116908115610d01575060011461158057610b4984610c8b8186038261169d565b600080516020611f6d83398151915281527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106115d057509091508101602001610c8b82610c7b565b9192600181602092548385880101520191019092916115b7565b91909160208152825180602083015260005b81811061161d575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016115fc565b600435906001600160a01b038216820361164957565b600080fd5b602435906001600160a01b038216820361164957565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b90601f8019910116810190811067ffffffffffffffff8211176116bf57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116116bf57601f01601f191660200190565b90600182811c92168015611721575b602083101461170b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611700565b156117335750565b60405162461bcd60e51b815290819061174f90600483016115ea565b0390fd5b6040519061176260408361169d565b601182527021a7a7a62227aba72fa727aa2fa7ab22a960791b6020830152565b90816020910312611649575180151581036116495790565b818102929181159184041417156117ad57565b634e487b7160e01b600052601160045260246000fd5b81156117cd570490565b634e487b7160e01b600052601260045260246000fd5b919082039182116117ad57565b919082018092116117ad57565b6001546040516336190e4560e11b815290602090829060049082906001600160a01b03165afa908115611928576000916118f6575b5060006706f05b59d3b2000082116118885750806710a741a46278000002906710a741a4627800008204036117ad57670de0b6b3a764000090046702c68af0bb14000001806702c68af0bb140000116117ad5790565b90806710a741a46278000002906710a741a4627800008204036118e257670de0b6b3a7640000900467136dcc951d8c0000039067136dcc951d8c000082116118ce575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b82526011600452602482fd5b906020823d602011611920575b816119106020938361169d565b810103126101a557505138611832565b3d9150611903565b6040513d6000823e3d90fd5b600654906007548042116119ad575b506a0c097ce7bc90715b34b9f160241b6119896119aa936119838460018060a01b0316600052600080516020611f8d833981519152602052604060002090565b5461179a565b6001600160a01b0390921660009081526005602052604090205491046117e3565b90565b6119c66119bd6119e792426117e3565b6003549061179a565b670de0b6b3a76400006119e06119da6117fd565b8361179a565b04906117e3565b6a0c097ce7bc90715b34b9f160241b8102908082046a0c097ce7bc90715b34b9f160241b14901517156117ad57611989611a4d6119aa94611a476a0c097ce7bc90715b34b9f160241b94600080516020611fed83398151915254906117c3565b906117f0565b935050611943565b6001600160a01b03168015611ab557600080516020611fcd83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b9091506001600160a01b031615611b46576001600160a01b031615611b305761174f6040805190611afc818361169d565b60118252704e4f545f5452414e534645525241424c4560781b60208301525162461bcd60e51b8152918291600483016115ea565b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fd5b60018060a01b03811690816000526005602052611b84600260406000200154156113fa611753565b611b8c611c62565b611b9581611934565b80611b9f57505050565b6000805460405163a9059cbb60e01b81526001600160a01b03948516600482015260248101849052936020928592604492849291165af1908115611928577fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a92602092611c11575b50604051908152a2565b611c2790833d8511610ae357610ad6818361169d565b611c07565b600080516020611fcd833981519152546001600160a01b03163303611c4d57565b63118cdaa760e01b6000523360045260246000fd5b60075460009080421115611e2957611c7d611c8a91426117e3565b426007556003549061179a565b908115611e2957611cb6670de0b6b3a7640000611cae611ca86117fd565b8561179a565b0480936117e3565b9180611dba575b50600080516020611fed833981519152549180158015611cde575b50505050565b6a0c097ce7bc90715b34b9f160241b82029182046a0c097ce7bc90715b34b9f160241b1417156118e25782611d12916117c3565b9182611d1f575b80611cd8565b611d386a0c097ce7bc90715b34b9f160241b918461179a565b82546001600160a01b0316919004813b1561115e576040516340c10f1960e01b815230600482015260248101919091529082908290604490829084905af18015611daf57611d9a575b5050611d8f906006546117f0565b600655388080611d19565b611da582809261169d565b6101a55780611d81565b6040513d84823e3d90fd5b81546002546001600160a01b039182169116813b156107fd576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019290925282908290604490829084905af18015611daf578290611e19575b50611cbd565b611e229161169d565b3881611e13565b5050565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092611e6c85600080516020611fed833981519152546117f0565b600080516020611fed833981519152556001600160a01b03169384158414611eba5780600080516020611fed8339815191525403600080516020611fed833981519152555b604051908152a3565b848452600080516020611f8d833981519152825260408420818154019055611eb1565b60ff60008051602061202d8339815191525460401c1615611efa57565b631afcd79f60e31b60005260046000fd5b90611f315750805115611f2057805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611f63575b611f42575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611f3a56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bd4c2e594fc21745754ca84f27555a3b49724ec3f581cb52ef2761456fe948c964736f6c634300081a0033