269 txs
270 calls
constructor
constructor(address _stakingToken, uint256 _initialApy)
functions
apy
viewfunction apy() view returns (uint256)
getPendingRewards
viewfunction getPendingRewards(address _user) view returns (uint256)
getStakedBalance
viewfunction getStakedBalance(address _user) view returns (uint256)
getTotalEarned
viewfunction getTotalEarned(address _user) view returns (uint256)
getUserInfo
viewfunction getUserInfo(address _user) view returns (uint256 stakedAmount, uint256 pendingRewards, uint256 totalEarned, uint256 lastUpdateTime)
owner
viewfunction owner() view returns (address)
SECONDS_PER_YEAR
viewfunction SECONDS_PER_YEAR() view returns (uint256)
stakers
viewfunction stakers(address) view returns (uint256 stakedAmount, uint256 rewardsAccumulated, uint256 lastUpdateTime, uint256 totalRewardsClaimed)
stakingToken
viewfunction stakingToken() view returns (address)
totalRewardsPaid
viewfunction totalRewardsPaid() view returns (uint256)
totalStaked
viewfunction totalStaked() view returns (uint256)
claimRewards
nonpayablefunction claimRewards()
emergencyUnstake
nonpayablefunction emergencyUnstake()
renounceOwnership
nonpayablefunction renounceOwnership()
setAPY
nonpayablefunction setAPY(uint256 _newApy)
stake
nonpayablefunction stake(uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unstake
nonpayablefunction unstake(uint256 _amount)
withdrawExcessRewards
nonpayablefunction withdrawExcessRewards(uint256 _amount)
events
APYUpdated
event APYUpdated(uint256 newApy)
EmergencyUnstake
event EmergencyUnstake(address indexed user, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardsClaimed
event RewardsClaimed(address indexed user, uint256 amount)
Staked
event Staked(address indexed user, uint256 amount)
Unstaked
event Unstaked(address indexed user, uint256 amount)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60a060405234801562000010575f80fd5b5060405162001fca38038062001fca8339818101604052810190620000369190620002d5565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000aa575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a191906200032b565b60405180910390fd5b620000bb816200017760201b60201c565b50600180819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000134576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012b90620003a4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050806002819055505050620003c4565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000267826200023c565b9050919050565b62000279816200025b565b811462000284575f80fd5b50565b5f8151905062000297816200026e565b92915050565b5f819050919050565b620002b1816200029d565b8114620002bc575f80fd5b50565b5f81519050620002cf81620002a6565b92915050565b5f8060408385031215620002ee57620002ed62000238565b5b5f620002fd8582860162000287565b92505060206200031085828601620002bf565b9150509250929050565b62000325816200025b565b82525050565b5f602082019050620003405f8301846200031a565b92915050565b5f82825260208201905092915050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f6200038c60158362000346565b9150620003998262000356565b602082019050919050565b5f6020820190508181035f830152620003bd816200037e565b9050919050565b608051611bc3620004075f395f81816105120152818161064f0152818161074a0152818161090601528181610b4801528181610c2c0152610e960152611bc35ff3fe608060405234801561000f575f80fd5b506004361061011f575f3560e01c806374958e35116100ab578063937b4b341161006f578063937b4b34146102c1578063a694fc3a146102f1578063e6a69ab81461030d578063f2fde38b1461032b578063f6ed2017146103475761011f565b806374958e351461022a5780637589cf2f14610248578063817b1cd2146102525780638da5cb5b146102705780639168ae721461028e5761011f565b80633a02a42d116100f25780633a02a42d146101815780633bcfc4b8146101b15780636386c1c7146101cf578063715018a61461020257806372f702f31461020c5761011f565b806324f45e67146101235780632e17de781461013f57806336a79f001461015b578063372500ab14610177575b5f80fd5b61013d6004803603810190610138919061138a565b610377565b005b6101596004803603810190610154919061138a565b610406565b005b6101756004803603810190610170919061138a565b610644565b005b61017f61082e565b005b61019b6004803603810190610196919061140f565b610a38565b6040516101a89190611449565b60405180910390f35b6101b9610a80565b6040516101c69190611449565b60405180910390f35b6101e960048036038101906101e4919061140f565b610a86565b6040516101f99493929190611462565b60405180910390f35b61020a610b33565b005b610214610b46565b6040516102219190611500565b60405180910390f35b610232610b6a565b60405161023f9190611449565b60405180910390f35b610250610b70565b005b61025a610d5e565b6040516102679190611449565b60405180910390f35b610278610d64565b6040516102859190611528565b60405180910390f35b6102a860048036038101906102a3919061140f565b610d8b565b6040516102b89493929190611462565b60405180910390f35b6102db60048036038101906102d6919061140f565b610db7565b6040516102e89190611449565b60405180910390f35b61030b6004803603810190610306919061138a565b610dd0565b005b610315610fca565b6040516103229190611449565b60405180910390f35b6103456004803603810190610340919061140f565b610fd2565b005b610361600480360381019061035c919061140f565b611056565b60405161036e9190611449565b60405180910390f35b61037f61114e565b620186a08111156103c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bc9061159b565b60405180910390fd5b806002819055507f5d96611557274413c64267972d202ca41009c399954bcb4cbab17d2a5156fbb0816040516103fb9190611449565b60405180910390a150565b61040e6111d5565b5f8111610450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044790611603565b60405180910390fd5b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905081815f015410156104d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cd9061166b565b60405180910390fd5b6104df33611224565b81815f015f8282546104f191906116b6565b925050819055508160045f82825461050991906116b6565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161056b9291906116e9565b6020604051808303815f875af1158015610587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ab9190611745565b6105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e1906117ba565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75836040516106309190611449565b60405180910390a250610641611282565b50565b61064c61114e565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106a69190611528565b602060405180830381865afa1580156106c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e591906117ec565b90505f6005546004546106f89190611817565b905082816107069190611817565b821015610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90611894565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61078c610d64565b856040518363ffffffff1660e01b81526004016107aa9291906116e9565b6020604051808303815f875af11580156107c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ea9190611745565b610829576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610820906117ba565b60405180910390fd5b505050565b6108366111d5565b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905061087f33611224565b5f816001015490505f81116108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906118fc565b60405180910390fd5b5f826001018190555080826003015f8282546108e59190611817565b925050819055508060055f8282546108fd9190611817565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161095f9291906116e9565b6020604051808303815f875af115801561097b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099f9190611745565b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590611964565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe82604051610a249190611449565b60405180910390a25050610a36611282565b565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01549050919050565b60025481565b5f805f805f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090505f610b0687611056565b9050815f015181828460600151610b1d9190611817565b8460400151955095509550955050509193509193565b610b3b61114e565b610b445f61128b565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b610b786111d5565b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f015490505f8111610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf8906119cc565b60405180910390fd5b5f825f01819055505f82600101819055508060045f828254610c2391906116b6565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c859291906116e9565b6020604051808303815f875af1158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc59190611745565b610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb906117ba565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf0082604051610d4a9190611449565b60405180910390a25050610d5c611282565b565b60045481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6003602052805f5260405f205f91509050805f0154908060010154908060020154908060030154905084565b5f80610dc283610a86565b509250505080915050919050565b610dd86111d5565b5f8111610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190611a34565b60405180910390fd5b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050610e6333611224565b81815f015f828254610e759190611817565b925050819055508160045f828254610e8d9190611817565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401610ef193929190611a52565b6020604051808303815f875af1158015610f0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f319190611745565b610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f67906117ba565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610fb69190611449565b60405180910390a250610fc7611282565b50565b6301e1338081565b610fda61114e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361104a575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110419190611528565b60405180910390fd5b6110538161128b565b50565b5f8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090505f815f0151036110e0578060200151915050611149565b5f8160400151426110f191906116b6565b90505f612710600254845f01516111089190611a87565b6111129190611af5565b90505f6301e1338083836111269190611a87565b6111309190611af5565b90508084602001516111429190611817565b9450505050505b919050565b61115661134c565b73ffffffffffffffffffffffffffffffffffffffff16611174610d64565b73ffffffffffffffffffffffffffffffffffffffff16146111d35761119761134c565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111ca9190611528565b60405180910390fd5b565b60026001540361121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190611b6f565b60405180910390fd5b6002600181905550565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905061126d82611056565b81600101819055504281600201819055505050565b60018081905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f80fd5b5f819050919050565b61136981611357565b8114611373575f80fd5b50565b5f8135905061138481611360565b92915050565b5f6020828403121561139f5761139e611353565b5b5f6113ac84828501611376565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113de826113b5565b9050919050565b6113ee816113d4565b81146113f8575f80fd5b50565b5f81359050611409816113e5565b92915050565b5f6020828403121561142457611423611353565b5b5f611431848285016113fb565b91505092915050565b61144381611357565b82525050565b5f60208201905061145c5f83018461143a565b92915050565b5f6080820190506114755f83018761143a565b611482602083018661143a565b61148f604083018561143a565b61149c606083018461143a565b95945050505050565b5f819050919050565b5f6114c86114c36114be846113b5565b6114a5565b6113b5565b9050919050565b5f6114d9826114ae565b9050919050565b5f6114ea826114cf565b9050919050565b6114fa816114e0565b82525050565b5f6020820190506115135f8301846114f1565b92915050565b611522816113d4565b82525050565b5f60208201905061153b5f830184611519565b92915050565b5f82825260208201905092915050565b7f41505920746f6f206869676820286d61782031303030252900000000000000005f82015250565b5f611585601883611541565b915061159082611551565b602082019050919050565b5f6020820190508181035f8301526115b281611579565b9050919050565b7f43616e6e6f7420756e7374616b652030000000000000000000000000000000005f82015250565b5f6115ed601083611541565b91506115f8826115b9565b602082019050919050565b5f6020820190508181035f83015261161a816115e1565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f611655601483611541565b915061166082611621565b602082019050919050565b5f6020820190508181035f83015261168281611649565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116c082611357565b91506116cb83611357565b92508282039050818111156116e3576116e2611689565b5b92915050565b5f6040820190506116fc5f830185611519565b611709602083018461143a565b9392505050565b5f8115159050919050565b61172481611710565b811461172e575f80fd5b50565b5f8151905061173f8161171b565b92915050565b5f6020828403121561175a57611759611353565b5b5f61176784828501611731565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f6117a4600f83611541565b91506117af82611770565b602082019050919050565b5f6020820190508181035f8301526117d181611798565b9050919050565b5f815190506117e681611360565b92915050565b5f6020828403121561180157611800611353565b5b5f61180e848285016117d8565b91505092915050565b5f61182182611357565b915061182c83611357565b925082820190508082111561184457611843611689565b5b92915050565b7f496e73756666696369656e74206578636573732062616c616e636500000000005f82015250565b5f61187e601b83611541565b91506118898261184a565b602082019050919050565b5f6020820190508181035f8301526118ab81611872565b9050919050565b7f4e6f207265776172647320746f20636c61696d000000000000000000000000005f82015250565b5f6118e6601383611541565b91506118f1826118b2565b602082019050919050565b5f6020820190508181035f830152611913816118da565b9050919050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f61194e601683611541565b91506119598261191a565b602082019050919050565b5f6020820190508181035f83015261197b81611942565b9050919050565b7f4e6f7468696e6720746f20756e7374616b6500000000000000000000000000005f82015250565b5f6119b6601283611541565b91506119c182611982565b602082019050919050565b5f6020820190508181035f8301526119e3816119aa565b9050919050565b7f43616e6e6f74207374616b6520300000000000000000000000000000000000005f82015250565b5f611a1e600e83611541565b9150611a29826119ea565b602082019050919050565b5f6020820190508181035f830152611a4b81611a12565b9050919050565b5f606082019050611a655f830186611519565b611a726020830185611519565b611a7f604083018461143a565b949350505050565b5f611a9182611357565b9150611a9c83611357565b9250828202611aaa81611357565b91508282048414831517611ac157611ac0611689565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aff82611357565b9150611b0a83611357565b925082611b1a57611b19611ac8565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611b59601f83611541565b9150611b6482611b25565b602082019050919050565b5f6020820190508181035f830152611b8681611b4d565b905091905056fea264697066735822122001337cb6bf17660c7cb9204b7d23194071f743baa6373aa34ba38eb19278063764736f6c634300081800330000000000000000000000008e3f0b0b604bc69ea98a8039ff7884047bc3bd5500000000000000000000000000000000000000000000000000000000000003e8