4 txs
16 calls
constructor
constructor(address _token, address _provider, uint256 _lockPeriod, uint256 stakerShares, uint256 _apy, uint256 installmentCount)
functions
admin
viewfunction admin() view returns (address)
apy
viewfunction apy() view returns (uint256)
beneficiary
viewfunction beneficiary() view returns (address owner, uint256 totalRewards, uint256 claimedRewards)
calculateBeneficiaryRewards
viewfunction calculateBeneficiaryRewards(uint256 _collataralAmount) view returns (uint256)
calculateStakerRewards
viewfunction calculateStakerRewards(uint256 _collataralAmount) view returns (uint256)
getCollateralBySecurityDeposit
viewfunction getCollateralBySecurityDeposit(uint256 _amount) view returns (uint256)
getSecurityDepositByCollateral
viewfunction getSecurityDepositByCollateral(uint256 _amount) view returns (uint256)
getStakeInfo
viewfunction getStakeInfo(uint256 _index) view returns (tuple)
getStakeInfoByAddress
viewfunction getStakeInfoByAddress(address _staker) view returns (tuple[])
getStakeInfoByPage
viewfunction getStakeInfoByPage(uint256 start, uint256 end) view returns (tuple[])
getStakeRecords
viewfunction getStakeRecords(uint256 _index) view returns (tuple)
getUnlockedInstallmentRewards
viewfunction getUnlockedInstallmentRewards(uint256 _index) view returns (uint256)
getUserStakeIndexes
viewfunction getUserStakeIndexes(address owner) view returns (uint256[])
installmentNum
viewfunction installmentNum() view returns (uint256)
lockPeriod
viewfunction lockPeriod() view returns (uint256)
minStakeAmount
viewfunction minStakeAmount() view returns (uint256)
PRECISION
viewfunction PRECISION() view returns (uint256)
provider
viewfunction provider() view returns (address owner, address pendingOwner)
requiredCollateral
viewfunction requiredCollateral() view returns (uint256)
stakerRewardShare
viewfunction stakerRewardShare() view returns (uint256)
token
viewfunction token() view returns (address)
totalClaimedRewards
viewfunction totalClaimedRewards() view returns (uint256)
totalCollateral
viewfunction totalCollateral() view returns (uint256)
totalSecurityDeposit
viewfunction totalSecurityDeposit() view returns (uint256)
unstakedCollateral
viewfunction unstakedCollateral() view returns (uint256)
userStakeIndexes
viewfunction userStakeIndexes(address, uint256) view returns (uint256)
acceptProviderOwnership
nonpayablefunction acceptProviderOwnership()
claimBeneficiaryRewards
nonpayablefunction claimBeneficiaryRewards() returns (uint256)
claimRewards
nonpayablefunction claimRewards(uint256 _index) returns (uint256)
collect
nonpayablefunction collect() returns (uint256)
depositSecurity
nonpayablefunction depositSecurity(uint256 _amount)
initBeneficiary
nonpayablefunction initBeneficiary(address _bf)
stake
nonpayablefunction stake(address owner, uint256 _amount)
transferProviderOwnership
nonpayablefunction transferProviderOwnership(address _newProvider)
unstake
nonpayablefunction unstake(uint256 _index) returns (uint256)
withdrawSecurity
nonpayablefunction withdrawSecurity(uint256 _amount)
events
BeneficiaryInitialized
event BeneficiaryInitialized(address indexed beneficiary)
BeneficiaryRewardsClaimed
event BeneficiaryRewardsClaimed(address indexed beneficiary, uint256 amount)
CollectExtra
event CollectExtra(uint256 extraToken)
RewardsClaimed
event RewardsClaimed(address indexed staker, uint256 amount, uint256 index)
SecurityDeposited
event SecurityDeposited(uint256 amount, uint256 totalSecurity)
SecurityWithdrawn
event SecurityWithdrawn(uint256 amount, uint256 remainingSecurity)
Stake
event Stake(address indexed staker, uint256 amount, uint256 startTime, uint256 lockPeriod)
Unstake
event Unstake(address indexed staker, uint256 amount, uint256 index)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x61014060405234801562000011575f80fd5b50604051620021c0380380620021c0833981016040819052620000349162000188565b60015f556001600160a01b038616620000945760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420546f6b656e2061646472657373000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038516620000ec5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642070726f76696465722061646472657373000000000000000060448201526064016200008b565b6001600160a01b03868116608052600c80546001600160a01b03191691871691909117905560a084905260c0839052606462000131670de0b6b3a764000084620001e7565b6200013d919062000211565b60e05268056bc75e2d6310000061010052600880546001600160a01b031916331790556101205250620002319350505050565b6001600160a01b038116811462000185575f80fd5b50565b5f805f805f8060c087890312156200019e575f80fd5b8651620001ab8162000170565b6020880151909650620001be8162000170565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b80820281158282048414176200020b57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200022c57634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e0516101005161012051611e9f620003215f395f818161046f015281816118410152818161187701526118a001525f8181610504015261113b01525f818161035801528181610d60015261145e01525f81816102ae0152818161058d0152818161071b01526110af01525f818161037f01528181610d3f0152818161128e015281816113870152818161143d015281816117f5015261181d01525f8181610556015281816106ef015281816108b5015281816109c601528181610b7501528181610cbc01528181611224015281816115a1015281816116b501526117440152611e9f5ff3fe608060405234801561000f575f80fd5b5060043610610212575f3560e01c80638191fea71161011f578063cc4a3eed116100a9578063e77bc97f11610079578063e77bc97f146104d9578063e949c660146104ec578063f1887684146104ff578063f851a44014610526578063fc0c546a14610551575f80fd5b8063cc4a3eed146104ad578063d107f6b5146104c0578063d578ceab146104c8578063e5225381146104d1575f80fd5b8063adc9772e116100ef578063adc9772e14610444578063ae486ede14610457578063b078049e1461046a578063b2a94e8a14610491578063b53105a3146104a4575f80fd5b80638191fea7146103ef57806387b5dfe914610402578063a82091bc14610422578063aaf5eb6814610435575f80fd5b80632e4150d4116101a0578063472cb80f11610170578063472cb80f146103a15780634ac8eb5f146103aa5780634d3e8536146103b35780635b1f335f146103c65780635d519e89146103cf575f80fd5b80632e4150d41461030057806338af3eed146103135780633bcfc4b8146103535780633fd8b02f1461037a575f80fd5b806317b9da0a116101e657806317b9da0a146102895780631b709520146102a957806322aeddfd146102d057806327f34ca4146102e55780632e17de78146102ed575f80fd5b80620dfbcd14610216578063085d48831461023c5780630962ef79146102765780630981348214610289575b5f80fd5b610229610224366004611bbd565b610578565b6040519081526020015b60405180910390f35b600c54600d54610256916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610233565b610229610284366004611bbd565b6105c4565b61029c610297366004611bbd565b6107c4565b6040516102339190611c20565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b6102e36102de366004611bbd565b610851565b005b610229610926565b6102296102fb366004611bbd565b610a27565b6102e361030e366004611bbd565b610bf5565b600954600a54600b5461032e926001600160a01b0316919083565b604080516001600160a01b039094168452602084019290925290820152606001610233565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b61022960025481565b61022960015481565b6102296103c1366004611bbd565b610d2b565b61022960045481565b6103e26103dd366004611c49565b610da8565b6040516102339190611c69565b6102e36103fd366004611c49565b610f34565b610415610410366004611c49565b611031565b6040516102339190611cb6565b610229610430366004611bbd565b61109a565b610229670de0b6b3a764000081565b6102e3610452366004611ced565b6110ea565b6102e3610465366004611c49565b6113e6565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b61022961049f366004611bbd565b611432565b61022960055481565b6102296104bb366004611ced565b61149e565b6102e36114c9565b61022960035481565b61022961155a565b6102296104e7366004611bbd565b6117a5565b6103e26104fa366004611d15565b6118da565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b600854610539906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b6105397f000000000000000000000000000000000000000000000000000000000000000081565b5f8061058383610d2b565b90505f60646105b27f000000000000000000000000000000000000000000000000000000000000000084611d49565b6105bc9190611d60565b949350505050565b5f80600683815481106105d9576105d9611d7f565b5f918252602090912060079091020180549091506001600160a01b031633146106355760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b5f61063f846117a5565b9050808260040154106106825760405162461bcd60e51b815260206004820152600b60248201526a43616e277420636c61696d60a81b604482015260640161062c565b5f8260040154826106939190611d93565b905080836004015f8282546106a89190611da6565b9250508190555080836005015f8282546106c29190611d93565b925050819055508060035f8282546106da9190611da6565b90915550508254610718906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611a45565b5f7f0000000000000000000000000000000000000000000000000000000000000000610745816064611d93565b61074f9084611d49565b6107599190611d60565b90508060096001015f82825461076f9190611da6565b9091555050835460408051848152602081018990526001600160a01b03909216917fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325910160405180910390a250949350505050565b6107cc611b7c565b600682815481106107df576107df611d7f565b5f9182526020918290206040805160e081018252600790930290910180546001600160a01b031683526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a082015260069091015460ff16151560c082015292915050565b600c546001600160a01b0316331461087b5760405162461bcd60e51b815260040161062c90611db9565b610883611aa9565b8060045f8282546108949190611da6565b90915550506004546108a590611432565b6005556108dd6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611ad1565b6004546040805183815260208101929092527f4f13e640708492ab2314a33d2f72e092dcc555131593c52a1bebd8c0f099832d910160405180910390a161092360015f55565b50565b6009545f906001600160a01b031633146109745760405162461bcd60e51b815260206004820152600f60248201526e4e6f742042656e656669636961727960881b604482015260640161062c565b600b54600a545f9161098591611d93565b90508060096002015f82825461099b9190611da6565b925050819055508060035f8282546109b39190611da6565b909155506109ed90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611a45565b60405181815233907f04a52e5706eb4befca0e972d95f8544c864d5305e4e302c9df1771bf8e24d0d19060200160405180910390a2919050565b5f8060068381548110610a3c57610a3c611d7f565b5f918252602090912060079091020180549091506001600160a01b03163314610a935760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b604482015260640161062c565b80600301548160020154610aa79190611da6565b421015610aee5760405162461bcd60e51b8152602060048201526015602482015274131bd8dac81c195c9a5bd9081b9bdd08195b991959605a1b604482015260640161062c565b600681015460ff1615610b355760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b604482015260640161062c565b60068101805460ff19166001908117909155810154600280545f90610b5b908490611da6565b909155505080546001820154610b9f916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692911690611a45565b8054600182015460408051918252602082018690526001600160a01b03909216917ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb280910160405180910390a26001015492915050565b600c546001600160a01b03163314610c1f5760405162461bcd60e51b815260040161062c90611db9565b610c27611aa9565b5f600154600554610c389190611d93565b90505f610c4482610d2b565b905082811015610c8a5760405162461bcd60e51b81526020600482015260116024820152704e6f20656e6f7567682062616c616e636560781b604482015260640161062c565b8260045f828254610c9b9190611d93565b9091555050600454610cac90611432565b600555610ce36001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385611a45565b6004546040805185815260208101929092527fb372a95f0bc9758f53fc7d78b0247e056db4b1b7503310716f1417d7828474ce910160405180910390a1505061092360015f55565b5f670de0b6b3a76400006301da9c00610d847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611d49565b610d8e9190611d60565b610d989084611d49565b610da29190611d60565b92915050565b6001600160a01b0381165f908152600760209081526040808320805482518185028101850190935280835260609493830182828015610e0457602002820191905f5260205f20905b815481526020019060010190808311610df0575b505050505090505f815167ffffffffffffffff811115610e2657610e26611dfd565b604051908082528060200260200182016040528015610e5f57816020015b610e4c611b7c565b815260200190600190039081610e445790505b5090505f5b8251811015610f2c576006838281518110610e8157610e81611d7f565b602002602001015181548110610e9957610e99611d7f565b5f9182526020918290206040805160e081018252600790930290910180546001600160a01b031683526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a082015260069091015460ff16151560c08201528251839083908110610f1957610f19611d7f565b6020908102919091010152600101610e64565b509392505050565b6008546001600160a01b03163314610f5e5760405162461bcd60e51b815260040161062c90611e11565b6001600160a01b038116610fa65760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161062c565b6009546001600160a01b031615610fe85760405162461bcd60e51b8152602060048201526006602482015265125b9a5d195960d21b604482015260640161062c565b600980546001600160a01b0319166001600160a01b0383169081179091556040517ff7c0deaf13c001dd193caef8b04ef6318761597467ce639d75a8d83f364738a4905f90a250565b6001600160a01b0381165f9081526007602090815260409182902080548351818402810184019094528084526060939283018282801561108e57602002820191905f5260205f20905b81548152602001906001019080831161107a575b50505050509050919050565b5f806110a583610d2b565b90505f60646110d47f000000000000000000000000000000000000000000000000000000000000000084611d49565b6110de9190611d60565b90506105bc8183611d93565b5f81116111395760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161062c565b7f00000000000000000000000000000000000000000000000000000000000000008110156111c25760405162461bcd60e51b815260206004820152603060248201527f416d6f756e74206d7573742062652067726561746572207468616e206d696e6960448201526f1b5d5b481cdd185ad948185b5bdd5b9d60821b606482015260840161062c565b600554816001546111d39190611da6565b11156112175760405162461bcd60e51b81526020600482015260136024820152724e6f20656e6f75676820616c6c6f77616e636560681b604482015260640161062c565b61124c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611ad1565b8060015f82825461125d9190611da6565b9250508190555060066040518060e00160405280846001600160a01b031681526020018381526020014281526020017f000000000000000000000000000000000000000000000000000000000000000081526020015f81526020016112c184610578565b81525f60209182018190528354600180820186559482528282208451600792830290910180546001600160a01b0319166001600160a01b0392831617815585850151818801556040808701516002830155606087015160038301556080870151600483015560a0870151600583015560c0909601516006918201805460ff191691151591909117905590881683529252919091209054909161136291611d93565b81546001810183555f92835260209283902001556040805183815242928101929092527f0000000000000000000000000000000000000000000000000000000000000000908201526001600160a01b038316907ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c4469060600160405180910390a25050565b600c546001600160a01b031633146114105760405162461bcd60e51b815260040161062c90611db9565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6301da9c006114827f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611d49565b61148c9190611d60565b610d98670de0b6b3a764000084611d49565b6007602052815f5260405f2081815481106114b7575f80fd5b905f5260205f20015f91509150505481565b600d546001600160a01b031633146115335760405162461bcd60e51b815260206004820152602760248201527f4f6e6c792070656e64696e67206f776e65722063616e20616363657074206f7760448201526606e6572736869760cc1b606482015260840161062c565b600d8054600c80546001600160a01b03199081166001600160a01b03841617909155169055565b6008545f906001600160a01b031633146115865760405162461bcd60e51b815260040161062c90611e11565b6003546002546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116129190611e52565b61161c9190611da6565b6116269190611da6565b6004546001546116369190611da6565b106116755760405162461bcd60e51b815260206004820152600f60248201526e2737903637b1b5b2b2103a37b5b2b760891b604482015260640161062c565b5f60035460025460045460015461168c9190611da6565b6116969190611d93565b6116a09190611d93565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117269190611e52565b6117309190611d93565b600c5490915061176d906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611a45565b6040518181527f1a6dbff4e4dd8a07b05f8746f1f2192863e85c6cf3d810223af53ee4ac1a79dd9060200160405180910390a1905090565b5f80600683815481106117ba576117ba611d7f565b905f5260205f20906007020190505f816005015482600401546117dd9190611da6565b90505f8260020154426117f09190611d93565b90505f7f0000000000000000000000000000000000000000000000000000000000000000821015611875577f00000000000000000000000000000000000000000000000000000000000000006118667f000000000000000000000000000000000000000000000000000000000000000084611d49565b6118709190611d60565b611897565b7f00000000000000000000000000000000000000000000000000000000000000005b90505f816118c57f000000000000000000000000000000000000000000000000000000000000000086611d60565b6118cf9190611d49565b979650505050505050565b60065460609082111561192f5760405162461bcd60e51b815260206004820152601760248201527f456e6420696e646578206f7574206f6620626f756e6473000000000000000000604482015260640161062c565b5f61193a8484611d93565b67ffffffffffffffff81111561195257611952611dfd565b60405190808252806020026020018201604052801561198b57816020015b611978611b7c565b8152602001906001900390816119705790505b509050835b83811015610f2c57600681815481106119ab576119ab611d7f565b5f9182526020918290206040805160e081018252600790930290910180546001600160a01b031683526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a082015260069091015460ff16151560c082015282611a228784611d93565b81518110611a3257611a32611d7f565b6020908102919091010152600101611990565b6040516001600160a01b03838116602483015260448201839052611aa491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611b10565b505050565b60025f5403611acb57604051633ee5aeb560e01b815260040160405180910390fd5b60025f55565b6040516001600160a01b038481166024830152838116604483015260648201839052611b0a9186918216906323b872dd90608401611a72565b50505050565b5f8060205f8451602086015f885af180611b2f576040513d5f823e3d81fd5b50505f513d91508115611b46578060011415611b53565b6001600160a01b0384163b155b15611b0a57604051635274afe760e01b81526001600160a01b038516600482015260240161062c565b6040518060e001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f151581525090565b5f60208284031215611bcd575f80fd5b5035919050565b80516001600160a01b031682526020808201519083015260408082015190830152606080820151908301526080808201519083015260a0818101519083015260c0908101511515910152565b60e08101610da28284611bd4565b80356001600160a01b0381168114611c44575f80fd5b919050565b5f60208284031215611c59575f80fd5b611c6282611c2e565b9392505050565b602080825282518282018190525f9190848201906040850190845b81811015611caa57611c97838551611bd4565b9284019260e09290920191600101611c84565b50909695505050505050565b602080825282518282018190525f9190848201906040850190845b81811015611caa57835183529284019291840191600101611cd1565b5f8060408385031215611cfe575f80fd5b611d0783611c2e565b946020939093013593505050565b5f8060408385031215611d26575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610da257610da2611d35565b5f82611d7a57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b81810381811115610da257610da2611d35565b80820180821115610da257610da2611d35565b60208082526024908201527f4f6e6c792070726f76696465722063616e2063616c6c20746869732066756e636040820152633a34b7b760e11b606082015260800190565b634e487b7160e01b5f52604160045260245ffd5b60208082526021908201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b5f60208284031215611e62575f80fd5b505191905056fea2646970667358221220e3445d37460e75988b7ea2609d0122674264db7c4d343ed479792822cb57f7d464736f6c634300081800330000000000000000000000009e32b13ce7f2e80a01932b42553652e053d6ed8e00000000000000000000000020a47b0e35b1f6892594ac49312f6eabecb28bb70000000000000000000000000000000000000000000000000000000000ed4e000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000b4