0 txs
1 call
constructor
constructor(address _admin, address _stakeCore)
functions
admin
viewfunction admin() view returns (address)
getShareholderInfo
viewfunction getShareholderInfo(address _shareholder, uint256 shareID) view returns (tuple)
shareholders
viewfunction shareholders(uint256) view returns (address owner, uint256 shareID)
shareholdersInfo
viewfunction shareholdersInfo(bytes32) view returns (address owner, uint256 shareID, uint256 grantedReward, uint256 claimedReward, uint256 grantedPrincipal, uint256 claimedPrincipal)
shareIDs
viewfunction shareIDs(uint256) view returns (uint256)
sharesInfo
viewfunction sharesInfo(uint256) view returns (bool isSet, uint256 totalReward, uint256 claimedReward, uint256 grantedReward, uint256 principal, uint256 claimedPrincipal, uint256 grantedPrincipal)
stakeCore
viewfunction stakeCore() view returns (address)
token
viewfunction token() view returns (address)
addShareholder
nonpayablefunction addShareholder(address _owner, uint256 _shareID, uint256 _grantedReward, uint256 _grantedPrincipal)
claimPrincipal
nonpayablefunction claimPrincipal(uint256 _shareID)
claimRewards
nonpayablefunction claimRewards(uint256 _shareID)
ClaimStakePrincipal
nonpayablefunction ClaimStakePrincipal(uint256 _shareID)
ClaimStakeRewards
nonpayablefunction ClaimStakeRewards(uint256 _shareID)
ClaimStakeRewardsBatch
nonpayablefunction ClaimStakeRewardsBatch()
collect
nonpayablefunction collect() returns (uint256)
register
nonpayablefunction register()
registerStakeCore
nonpayablefunction registerStakeCore(address _stakeCore)
events
PrincipalClaimed
event PrincipalClaimed(address indexed shareholder, uint256 amount)
RewardsClaimed
event RewardsClaimed(address indexed shareholder, uint256 amount)
RewardsCollected
event RewardsCollected(uint256 amount)
RewardsDistributed
event RewardsDistributed(uint256 totalRewards)
ShareholderAdded
event ShareholderAdded(address indexed shareholder, uint256 grantedReward, uint256 grantedPrincipal)
StakePrincipalClaimed
event StakePrincipalClaimed(uint256 shareIDs, uint256 amount)
StakeRewardsClaimed
event StakeRewardsClaimed(uint256 shareIDs, uint256 amount)
StakeRewardsClaimedBatch
event StakeRewardsClaimedBatch(uint256[] amount)
errors
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001b8738038062001b8783398101604081905262000034916200017c565b6001600160a01b0382166200008f5760405162461bcd60e51b815260206004820152601b60248201527f41646d696e20616464726573732063616e2774206265207a65726f0000000000604482015260640160405180910390fd5b600280546001600160a01b0319166001600160a01b03848116919091179091558116156200015b57600080546001600160a01b0319166001600160a01b038316908117825560408051637e062a3560e11b81529051919263fc0c546a9260048084019360209390839003909101908290875af115801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001bb565b600180546001600160a01b0319166001600160a01b03929092169190911790555b5050620001e2565b6001600160a01b03811681146200017957600080fd5b50565b600080604083850312156200019057600080fd5b82516200019d8162000163565b6020840151909250620001b08162000163565b809150509250929050565b600060208284031215620001ce57600080fd5b8151620001db8162000163565b9392505050565b61199580620001f26000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806384aab02f116100a2578063eee8e77e11610071578063eee8e77e146102ed578063ef80388c14610371578063f851a44014610379578063f9af05791461038c578063fc0c546a1461039f57600080fd5b806384aab02f146102255780639d52329a14610250578063ab377daa146102b3578063e5225381146102e557600080fd5b80633c5e6781116100de5780633c5e678114610166578063565ee69f146101795780635716f7a01461018c57806381eb53aa1461019f57600080fd5b80630962ef79146101105780631aa3a008146101255780632d04490e1461012d578063398c257514610153575b600080fd5b61012361011e366004611592565b6103b2565b005b6101236104ec565b61014061013b366004611592565b610704565b6040519081526020015b60405180910390f35b610123610161366004611592565b610725565b610123610174366004611592565b61082e565b6101236101873660046115c3565b61092f565b61012361019a3660046115e0565b610ab5565b6101ee6101ad366004611592565b6004602081905260009182526040909120805460018201546002830154600384015494840154600585015460069095015460ff909416959294919390919087565b6040805197151588526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161014a565b600054610238906001600160a01b031681565b6040516001600160a01b03909116815260200161014a565b61026361025e36600461161b565b610e15565b60405161014a919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201519181019190915260c00190565b6102c66102c1366004611592565b610ecb565b604080516001600160a01b03909316835260208301919091520161014a565b610140610f03565b61033a6102fb366004611592565b6006602052600090815260409020805460018201546002830154600384015460048501546005909501546001600160a01b039094169492939192909186565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c00161014a565b61012361119f565b600254610238906001600160a01b031681565b61012361039a366004611592565b611302565b600154610238906001600160a01b031681565b6000600660006103c2338561142f565b8152602081019190915260400160002080549091506001600160a01b031633146104275760405162461bcd60e51b81526020600482015260116024820152702737ba10309039b430b932b437b63232b960791b60448201526064015b60405180910390fd5b600061043b8260020154836001015461146c565b90508160030154811161047d5760405162461bcd60e51b815260206004820152600a6024820152694e6f207265776172647360b01b604482015260640161041e565b600082600301548261048f919061165d565b600384018390556001549091506104b0906001600160a01b031633836114a0565b60405181815233907ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe906020015b60405180910390a250505050565b600080546040516387b5dfe960e01b81523060048201526001600160a01b03909116906387b5dfe9906024016000604051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055f91908101906116e0565b600354815191925090036105705750565b6003545b815181101561070057600082828151811061059157610591611786565b602090810291909101015160008054604051630bdced0560e11b81526004810184905292935090916001600160a01b03909116906317b9da0a9060240160e0604051808303816000875af11580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610611919061179c565b90506040518060e001604052806001151581526020018260a00151836080015161063b9190611816565b815260006020808301829052604080840183905294810151606080850191909152608080850184905260a094850184905287845260048084528785208751815460ff19169015151781559387015160018086019190915597870151600285015591860151600380850191909155908601519183019190915592840151600582015560c0909301516006909301929092558054808401825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b019190915501610574565b5050565b6003818154811061071457600080fd5b600091825260209091200154905081565b60008181526004602052604090205460ff166107535760405162461bcd60e51b815260040161041e90611829565b600080546040516305c2fbcf60e31b8152600481018490526001600160a01b0390911690632e17de78906024016020604051808303816000875af115801561079f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c3919061186b565b9050806004600084815260200190815260200160002060050160008282546107eb9190611816565b909155505060408051838152602081018390527faf52085d59c27e1b1e97b9886317567746c2b7cbaffb846139aae11e11c3ebbb91015b60405180910390a15050565b60008181526004602052604090205460ff1661085c5760405162461bcd60e51b815260040161041e90611829565b60008054604051630962ef7960e01b8152600481018490526001600160a01b0390911690630962ef79906024016020604051808303816000875af11580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc919061186b565b9050806004600084815260200190815260200160002060020160008282546108f49190611816565b909155505060408051838152602081018390527fd04eca0d077394b484ff65a374cef540be131afdae0e906ec6932469faa46f239101610822565b6002546001600160a01b031633146109595760405162461bcd60e51b815260040161041e90611884565b6000546001600160a01b0316156109b25760405162461bcd60e51b815260206004820152601e60248201527f5374616b65436f72652061646472657373206d757374206265207a65726f0000604482015260640161041e565b6001600160a01b038116610a125760405162461bcd60e51b815260206004820152602160248201527f5374616b65436f726520706172616d657465722063616e2774206265207a65726044820152606f60f81b606482015260840161041e565b600080546001600160a01b0319166001600160a01b038316908117825560408051637e062a3560e11b81529051919263fc0c546a9260048084019360209390839003909101908290875af1158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9291906118c5565b600180546001600160a01b0319166001600160a01b039290921691909117905550565b6002546001600160a01b03163314610adf5760405162461bcd60e51b815260040161041e90611884565b6000838152600460205260409020805460ff16610b0e5760405162461bcd60e51b815260040161041e90611829565b8060010154838260030154610b239190611816565b1115610b715760405162461bcd60e51b815260206004820181905260248201527f52656d61696e696e672072657761726420697320696e73756666696369656e74604482015260640161041e565b8060040154828260060154610b869190611816565b1115610be05760405162461bcd60e51b815260206004820152602360248201527f52656d61696e696e67207072696e636970616c20697320696e73756666696369604482015262195b9d60ea1b606482015260840161041e565b6000600681610bef888861142f565b81526020810191909152604001600020546001600160a01b031614610c565760405162461bcd60e51b815260206004820152601a60248201527f5368617265686f6c64657220616c726561647920657869737473000000000000604482015260640161041e565b6040805180820182526001600160a01b03878116808352602080840189815260058054600181018255600091825295517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600290970296870180546001600160a01b0319169190961617909455517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db190940193909355835160c081018552908152918201879052918101859052606081018290526080810184905260a0810182905290600690610d26888861142f565b815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505082816003016000828254610daa9190611816565b9250508190555081816006016000828254610dc59190611816565b909155505060408051848152602081018490526001600160a01b038716917f62dd7ff01ee68ee5856c509fa39066e514fa5048b755fcf26cbd0c229002e3b3910160405180910390a25050505050565b610e576040518060c0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60066000610e65858561142f565b81526020808201929092526040908101600020815160c08101835281546001600160a01b0316815260018201549381019390935260028101549183019190915260038101546060830152600481015460808301526005015460a082015290505b92915050565b60058181548110610edb57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6002546000906001600160a01b03163314610f305760405162461bcd60e51b815260040161041e90611884565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9d919061186b565b600354909150600090815b81811015611036576004600060038381548110610fc757610fc7611786565b90600052602060002001548152602001908152602001600020600501546004600060038481548110610ffb57610ffb611786565b90600052602060002001548152602001908152602001600020600201546110229190611816565b61102c9084611816565b9250600101610fa8565b5060055460005b818110156110df5760006110a56005838154811061105d5761105d611786565b6000918252602090912060029091020154600580546001600160a01b03909216918590811061108e5761108e611786565b90600052602060002090600202016001015461142f565b600081815260066020526040902060058101546003909101549192506110ca91611816565b6110d4908661165d565b94505060010161103d565b50828410156111235760405162461bcd60e51b815260206004820152601060248201526f2737ba1032b737bab3b4103a37b5b2b760811b604482015260640161041e565b600254611150906001600160a01b031661113d858761165d565b6001546001600160a01b031691906114a0565b7f9b8947353280f3b9aa1b67b97ecc2e031ef34d13dc6fa2bca31efc7ff0d2993861117b848661165d565b60405190815260200160405180910390a1611196838561165d565b94505050505090565b60035460008167ffffffffffffffff8111156111bd576111bd611670565b6040519080825280602002602001820160405280156111e6578160200160208202803683370190505b50905060005b828110156112d25760006003828154811061120957611209611786565b60009182526020822001549054604051630962ef7960e01b8152600481018390529192506001600160a01b031690630962ef79906024016020604051808303816000875af192505050801561127b575060408051601f3d908101601f191682019092526112789181019061186b565b60015b156112c957600082815260046020526040812060020180548392906112a1908490611816565b92505081905550808484815181106112bb576112bb611786565b602002602001018181525050505b506001016111ec565b507f3b8cc05360d87ca54910c3ddb0de444baef1d6bb8335933a47ecc9008f0c013a8160405161082291906118e2565b600060066000611312338561142f565b8152602081019190915260400160002080549091506001600160a01b031633146113725760405162461bcd60e51b81526020600482015260116024820152702737ba10309039b430b932b437b63232b960791b604482015260640161041e565b6000611386826004015483600101546114f7565b9050816005015481116113ca5760405162461bcd60e51b815260206004820152600c60248201526b139bc8141c9a5b98da5c185b60a21b604482015260640161041e565b60008260050154826113dc919061165d565b600584018390556001549091506113fd906001600160a01b031633836114a0565b60405181815233907f2e6100b89b43378c0aeb062f2df0cfaa63e4437abab6844b441f8e47cb31bec3906020016104de565b604080516001600160a01b038416602082015290810182905260009060600160405160208183030381529060405280519060200120905092915050565b6000818152600460205260408120600181015460029091015461148f9085611926565b611499919061193d565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526114f290849061151b565b505050565b600081815260046020819052604082209081015460059091015461148f9085611926565b600080602060008451602086016000885af18061153e576040513d6000823e3d81fd5b50506000513d91508115611556578060011415611563565b6001600160a01b0384163b155b1561158c57604051635274afe760e01b81526001600160a01b038516600482015260240161041e565b50505050565b6000602082840312156115a457600080fd5b5035919050565b6001600160a01b03811681146115c057600080fd5b50565b6000602082840312156115d557600080fd5b8135611499816115ab565b600080600080608085870312156115f657600080fd5b8435611601816115ab565b966020860135965060408601359560600135945092505050565b6000806040838503121561162e57600080fd5b8235611639816115ab565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ec557610ec5611647565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156116a9576116a9611670565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156116d8576116d8611670565b604052919050565b600060208083850312156116f357600080fd5b825167ffffffffffffffff8082111561170b57600080fd5b818501915085601f83011261171f57600080fd5b81518181111561173157611731611670565b8060051b91506117428483016116af565b818152918301840191848101908884111561175c57600080fd5b938501935b8385101561177a57845182529385019390850190611761565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060e082840312156117ae57600080fd5b6117b6611686565b82516117c1816115ab565b808252506020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151801515811461180a57600080fd5b60c08201529392505050565b80820180821115610ec557610ec5611647565b60208082526022908201527f746865207368617265494420686173206e6f7420726567697374657265642079604082015261195d60f21b606082015260800190565b60006020828403121561187d57600080fd5b5051919050565b60208082526021908201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b6000602082840312156118d757600080fd5b8151611499816115ab565b6020808252825182820181905260009190848201906040850190845b8181101561191a578351835292840192918401916001016118fe565b50909695505050505050565b8082028115828204841417610ec557610ec5611647565b60008261195a57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d23c84daf61ef4b0b0b36b2f7987ece55bf2ab2ee1c3d0628a5b8990f4c354f164736f6c63430008180033000000000000000000000000520251dd81ac0e79664c6aa21dbaf5c380a47847000000000000000000000000d500ec52c6130679fda98ba083287fcf625b61e3