264 txs
397 calls
constructor
constructor(address _token, address _owner, uint64 _slashPenaltyPercent, uint256 _minDeposit, (uint64 stakeDuration, uint64 unstakeDuration, uint256 joinableUntil, (uint64 percent, uint256 activeFrom)[] apyRates) _stakeOptionInfo)
functions
currentStakeInfoOf
viewfunction currentStakeInfoOf(address staker) view returns (tuple)
dependentStaking
viewfunction dependentStaking() view returns (address)
getStakeInfo
viewfunction getStakeInfo() view returns (tuple)
getStakingOverview
viewfunction getStakingOverview() view returns (tuple)
minDeposit
viewfunction minDeposit() view returns (uint256)
owner
viewfunction owner() view returns (address)
rewardsPool
viewfunction rewardsPool() view returns (uint256)
slashPenaltyPercent
viewfunction slashPenaltyPercent() view returns (uint64)
terminatedAt
viewfunction terminatedAt() view returns (uint256)
token
viewfunction token() view returns (address)
addApyRate
nonpayablefunction addApyRate(tuple _rate)
claim
nonpayablefunction claim()
deposit
nonpayablefunction deposit(uint256 amount)
instantWithdrawStake
nonpayablefunction instantWithdrawStake()
renounceOwnership
nonpayablefunction renounceOwnership()
setDependentStakingContract
nonpayablefunction setDependentStakingContract(address _dependentStaking)
setMinDeposit
nonpayablefunction setMinDeposit(uint256 _minDeposit)
setOptionJoinableUntil
nonpayablefunction setOptionJoinableUntil(uint64 _joinableUntil)
stake
nonpayablefunction stake(uint256 amount)
startUnstakePeriod
nonpayablefunction startUnstakePeriod()
terminate
nonpayablefunction terminate()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawStake
nonpayablefunction withdrawStake()
events
ClaimRewards
event ClaimRewards(address indexed staker, uint256 amount)
InstantWithdrawStake
event InstantWithdrawStake(address indexed staker, uint256 slashedAmount, uint256 withdrawnAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Stake
event Stake(address indexed staker, uint256 amount)
UnstakePeriodStarted
event UnstakePeriodStarted(address indexed staker)
WithdrawStake
event WithdrawStake(address indexed staker, uint256 amount)
errors
AnotherStakingOptionAlreadyStarted
error AnotherStakingOptionAlreadyStarted()
ApyRatesMustBeSorted
error ApyRatesMustBeSorted()
CanNotInstantWithdrawInThisStage
error CanNotInstantWithdrawInThisStage(uint8 currentStage)
CanNotSetSelfAsADependency
error CanNotSetSelfAsADependency()
CanNotUnstakeInThisStage
error CanNotUnstakeInThisStage(uint8 currentStage)
CanNotWithdrawInThisStage
error CanNotWithdrawInThisStage(uint8 currentStage)
InvalidAddress
error InvalidAddress()
MissingApyRates
error MissingApyRates()
NewApyRatesCanBeOnlyAfterLastOne
error NewApyRatesCanBeOnlyAfterLastOne()
NoRatesActiveAtDeployTime
error NoRatesActiveAtDeployTime()
NothingToClaim
error NothingToClaim()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PendingPreviousStakeFinish
error PendingPreviousStakeFinish()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SlashValueTooHeigh
error SlashValueTooHeigh()
StakeOptionIsNotJoinable
error StakeOptionIsNotJoinable()
StakingAlreadyTerminated
error StakingAlreadyTerminated()
StakingNotStarted
error StakingNotStarted()
StakingTerminated
error StakingTerminated()
TimestampCanNotBeInThePast
error TimestampCanNotBeInThePast()
TooLowAmount
error TooLowAmount()
TooLowRewardsPoolBalance
error TooLowRewardsPoolBalance()
creation bytecode
0x60a0604052346104a357611c2380380380610019816104a8565b92833981019060a0818303126104a357610032816104cd565b9161003f602083016104cd565b9261004c604084016104e1565b9360608401519360808101519060018060401b0382116104a35701906080828503126104a357604051608081016001600160401b0381118282101761048d57604052610097836104e1565b81526100a5602084016104e1565b60208201908152604084810151908301908152606085015190949193916001600160401b0382116104a3570186601f820112156104a3578051906001600160401b03821161048d576100fc60208360051b016104a8565b976020808a858152019360061b830101918183116104a357602001925b8284106104425750505050606082019586526001600160a01b0316801561042c57600080546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600160a01b0384161561041b57600095633b9aca006001600160401b0389161161040c5785518051156103f857602080910151015142106103e95760015b86518051821015610224576101d2826020926104f5565b5101518751600019830190838211610210576020916101f0916104f5565b5101511015610201576001016101bb565b63707cce5760e11b8852600488fd5b634e487b7160e01b8b52601160045260248bfd5b505060809490945260028054600160a01b600160e01b0360a08a901b16600160a01b600160e01b031990911617905560039390935591516005805493516fffffffffffffffff000000000000000060409190911b166001600160401b039092166001600160801b031990941693909317179091555160065551805182916801000000000000000082116103d5576007548260075580831061036d575b50600783527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688906020015b82841061033b5760405161170390816105208239608051818181610147015281816102aa015281816103f10152818161054b0152818161063e0152818161072301528181610e1601526114ce0152f35b60026020828160019451858060401b03815116868060401b0319885416178755015184860155019201930192906102eb565b6001600160ff1b03811681036103c1576001600160ff1b03831683036103c15760078452602084209060011b8101908360011b015b8181106103af57506102c0565b808560029255856001820155016103a2565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b83526041600452602483fd5b63f8246f8560e01b8752600487fd5b634e487b7160e01b88526032600452602488fd5b63355fd49f60e01b8752600487fd5b63e6c4247b60e01b60005260046000fd5b631e4fbdf760e01b600052600060045260246000fd5b6040848303126104a3576040805191908201906001600160401b0382118383101761048d576040926020928452610478876104e1565b81528287015183820152815201930192610119565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761048d57604052565b51906001600160a01b03821682036104a357565b51906001600160401b03821682036104a357565b80518210156105095760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081630359fea914610eab575080630c08bf8814610e4c5780632e1a7d4d14610dce5780632ef01c3c14610da75780633593abf514610d2957806341b3d18514610d0b5780634bc7766114610cc35780634e71d92d14610c9f5780635aa6db5e14610b78578063715018a614610b1257806374a4030f14610ad557806376bd99c714610a3a5780638da5cb5b14610a135780638fcc9cfb146109ec578063950566991461096b5780639e3bc2081461094d578063a694fc3a1461069a578063b6b55f2514610608578063b98bcfa5146105dd578063bed9d861146104b4578063dd19a1aa14610324578063efc990d614610222578063f2fde38b146101705763fc0c546a1461012757600080fd5b3461016b57600036600319011261016b5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b3461016b57602036600319011261016b576004356001600160a01b03811680910361016b5761019d6111c2565b80156101f3576001600160a01b036000548273ffffffffffffffffffffffffffffffffffffffff19821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b3461016b57600036600319011261016b576000608060405161024381610f55565b61024b6110ac565b8152826020820152826040820152826060820152015261030567ffffffffffffffff60025460a01c16600354906004546040519261028884610f55565b6102906110d3565b845267ffffffffffffffff60208501936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685526040860190815260608601928352608086019384526001600160a01b03604051978897602089525160a060208a015260c0890190610f93565b9551166040870152511660608501525160808401525160a08301520390f35b3461016b57600036600319011261016b5761033e3361125b565b60208101908151600581101561049e576000925190600582101561048a57156104595750604081015161044a575b50338152600860205260408120546103a3633b9aca0061039b67ffffffffffffffff60025460a01c16846111af565b048092611017565b6103af826001546111a2565b6001556103e2336001600160a01b0316600052600860205260006040812081600182015581600282015581600382015555565b61041681336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611204565b60405191825260208201527fe7df73bed725d415723604443dadee1888f9c822263b0533b14c8a00c5b3f86660403392a280f35b61045390611464565b8161036c565b826104886024927f7473dbc9000000000000000000000000000000000000000000000000000000008352610ec6565bfd5b602484634e487b7160e01b81526021600452fd5b634e487b7160e01b600052602160045260246000fd5b3461016b57600036600319011261016b576104ce3361125b565b60208101908151600581101561049e576000925190600582101561048a576004036105ae5750604081015161059f575b503381526008602052604081205461053c336001600160a01b0316600052600860205260006040812081600182015581600282015581600382015555565b61057081336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611204565b6040519081527f141ef67c4a6d3ec2adfb2f66d33c2b11de5b4f34344757554d430570b18a92ec60203392a280f35b6105a890611464565b816104fe565b826104886024927fb148aea6000000000000000000000000000000000000000000000000000000008352610ec6565b3461016b57600036600319011261016b57602067ffffffffffffffff60025460a01c16604051908152f35b3461016b57602036600319011261016b576004356106246111c2565b8015610670578061066361066b9230336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611602565b6001546111a2565b600155005b7f94ea06b60000000000000000000000000000000000000000000000000000000060005260046000fd5b3461016b57602036600319011261016b57600435600454610923576006544210156108f957600354811061067057336000526008602052604060002060028101546108cf576001600160a01b0360025416806107a3575b50600181018054610776575b6107088383546111a2565b82554290556003429101556107488130336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611602565b6040519081527febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a60203392a2005b60406107813361125b565b015133600052600960205261079c60406000209182546111a2565b90556106fd565b60c0602491604051928380927f3593abf50000000000000000000000000000000000000000000000000000000082523360048301525afa9081156108c35760009161082b575b5060200151600581101561049e5761080157826106f1565b7fdb68577c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8060c03d60c0116108bc575b6108418183610f71565b8101039160c083126108b95760806040519361085c85610f1d565b126108b95760405161086d81610f39565b82518152602083015160208201526040830151604082015260608301516060820152835260808201519060058210156108b95750829160a09160208095015201516040820152906107e9565b80fd5b503d610837565b6040513d6000823e3d90fd5b7f9ffc59e10000000000000000000000000000000000000000000000000000000060005260046000fd5b7fef60c3320000000000000000000000000000000000000000000000000000000060005260046000fd5b7f6799f62b0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461016b57600036600319011261016b576020600454604051908152f35b3461016b57602036600319011261016b576004356001600160a01b03811680910361016b576109986111c2565b3081146109c25773ffffffffffffffffffffffffffffffffffffffff196002541617600255600080f35b7fc76f377d0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461016b57602036600319011261016b57600435610a086111c2565b801561067057600355005b3461016b57600036600319011261016b5760206001600160a01b0360005416604051908152f35b3461016b57600036600319011261016b573360005260086020526040600020610a6281611582565b600581101561049e5760028103610aa25750600242910155337f6255e8ad893797a193005418c636dd3fec06d8b83b1f346a9f10acedc07815f9600080a2005b610acf907f0c8e4bfe00000000000000000000000000000000000000000000000000000000600052610ec6565b60246000fd5b3461016b57600036600319011261016b57610aee6110ac565b50610b0e610afa6110d3565b604051918291602083526020830190610f93565b0390f35b3461016b57600036600319011261016b57610b2b6111c2565b60006001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461016b57604036600319011261016b576000604051610b9781610eeb565b610b9f610ed4565b8152602081016024358152610bb26111c2565b80514211610c90576007546000198101818111610c7c57610bd4600191611077565b50015482511115610c545768010000000000000000811015610c4057806001610c009201600755611077565b929092610c2d579067ffffffffffffffff600192511667ffffffffffffffff198454161783555191015580f35b602484634e487b7160e01b815280600452fd5b602484634e487b7160e01b81526041600452fd5b6004847f13122809000000000000000000000000000000000000000000000000000000008152fd5b602485634e487b7160e01b81526011600452fd5b6004836388e819dd60e01b8152fd5b3461016b57600036600319011261016b57610cc1610cbc3361125b565b611464565b005b3461016b57602036600319011261016b5767ffffffffffffffff610ce5610ed4565b610ced6111c2565b16428110610cfa57600655005b6388e819dd60e01b60005260046000fd5b3461016b57600036600319011261016b576020600354604051908152f35b3461016b57602036600319011261016b576004356001600160a01b038116810361016b57610d5f90610d5961103a565b5061125b565b60405160608251805183526020810151602084015260408101516040840152015160608201526020820151600581101561049e5760c0926040916080840152015160a0820152f35b3461016b57600036600319011261016b5760206001600160a01b0360025416604051908152f35b3461016b57602036600319011261016b57600435610dea6111c2565b80156106705760015490818111610e3b57610e0881610cc193611017565b600155336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611204565b6316f6a22360e01b60005260046000fd5b3461016b57600036600319011261016b57610e656111c2565b600454610e8157426004554260065411610e7b57005b42600655005b7f9ca63a540000000000000000000000000000000000000000000000000000000060005260046000fd5b3461016b57600036600319011261016b576020906001548152f35b600581101561049e57600452565b6004359067ffffffffffffffff8216820361016b57565b6040810190811067ffffffffffffffff821117610f0757604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff821117610f0757604052565b6080810190811067ffffffffffffffff821117610f0757604052565b60a0810190811067ffffffffffffffff821117610f0757604052565b90601f8019910116810190811067ffffffffffffffff821117610f0757604052565b602060a06060608085019367ffffffffffffffff815116865267ffffffffffffffff848201511684870152604081015160408701520151936080606082015284518094520192019060005b818110610feb5750505090565b8251805167ffffffffffffffff1685526020908101518186015260409094019390920191600101610fde565b9190820391821161102457565b634e487b7160e01b600052601160045260246000fd5b6040519061104782610f1d565b6000604083815161105781610f39565b838152836020820152838382015283606082015281528260208201520152565b60075481101561109657600760005260206000209060011b0190600090565b634e487b7160e01b600052603260045260246000fd5b604051906110b982610f39565b606080836000815260006020820152600060408201520152565b604051906110e082610f39565b8167ffffffffffffffff600554818116835260401c16602082015260065460408201526007549067ffffffffffffffff8211610f07576040519161112a60208260051b0184610f71565b808352600760009081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688602085015b83831061116b575050505060600152565b6002602060019260405161117e81610eeb565b67ffffffffffffffff8654168152848601548382015281520192019201919061115a565b9190820180921161102457565b8181029291811591840414171561102457565b6001600160a01b036000541633036111d657565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b611259926001600160a01b03604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611254606483610f71565b61165c565b565b6001600160a01b039061126c61103a565b5016806000526008602052604060002060038101549060018101549261129e67ffffffffffffffff60055416856111a2565b4281101561145d575b600454908115611456578082101561145657505b60075491821561142c576000906000926000198501948086118754965b82871061134e57505050506112fc92506000526009602052604060002054906111a2565b92600261130884611582565b936040519661131688610f1d565b6040519461132386610f39565b855260208501520154604083015260608201528352600581101561049e576020830152604082015290565b909192939461135c87611077565b5060018101548b811115611425575b60008561141157508389101561140a5760018901808a116110245760016113928c92611077565b5001545b8881101561140257925b828411156113f5576113e7936113da600196946113d4667009d32da300009567ffffffffffffffff6113e0965416906111af565b92611017565b906111af565b04906111a2565b965b019594939291906112d8565b50505050956001906113e9565b5087926113a0565b8987611396565b80634e487b7160e01b602492526011600452fd5b508a61136b565b7fadd73c930000000000000000000000000000000000000000000000000000000060005260046000fd5b90506112bb565b50426112a7565b6040810151908115611558573360005260086020526020604060002091015190600582101561049e57600091156115305760015483811061152157836114a991611017565b600155600342910155338152600960205260408120556114f381336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611204565b6040519081527f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc6760203392a2565b6004836316f6a22360e01b8152fd5b6004827fa0899fdd000000000000000000000000000000000000000000000000000000008152fd5b7f969bf7280000000000000000000000000000000000000000000000000000000060005260046000fd5b600181015480156115fb576004541590816115dc575b506115d6576002015480156115d0576115b19042611017565b67ffffffffffffffff60055460401c16116115cb57600490565b600390565b50600290565b50600190565b6115e7915042611017565b67ffffffffffffffff600554161138611598565b5050600090565b9091926001600160a01b036112599481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252611254608483610f71565b906000602091828151910182855af1156108c3576000513d6116c457506001600160a01b0381163b155b61168d5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6001141561168656fea2646970667358221220d008b2e712e5445c442b1c85a8d1226abef96b1fcee8339cd2171b5650752cb164736f6c634300081c0033000000000000000000000000bbcdc8eb044bf661eabfa07b93909a76ebdb110000000000000000000000000092088882c62ae7af73993b7b1cdcd6986ae844780000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000083d6000000000000000000000000000000000000000000000000000000000000127500000000000000000000000000000000000000000000000000000000006884c3400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000b2d05e000000000000000000000000000000000000000000000000000000000068820420000000000000000000000000000000000000000000000000000000000ee6b280000000000000000000000000000000000000000000000000000000006891f240