StakeManager
Contents
Globals
Var | Type |
---|---|
validatorId | uint256 |
validators | mapping(address => struct Validator) |
unstakeId | uint256 |
unstakeQueue | mapping(uint256 => struct Unstake) |
totalLockedAmount | uint256 |
activeValidators | struct ActiveValidator[] |
proposer | address |
Modifiers
onlyRouterOrFeePool
No description
Declaration:
Functions
constructor
No description
Declaration:
Modifiers:
Modifier |
---|
Only |
indexedValidatorsLength
Get the indexed validators length.
Declaration:
Modifiers: No modifiers
indexedValidatorsExists
Determine whether the index validator exists by id.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| uint256 | The validator id |
indexedValidatorsByIndex
Get indexed validator address by index.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| uint256 | The validator index |
indexedValidatorsById
Get indexed validator address by id.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| uint256 | The validator id |
getVotingPowerByIndex
Get the voting power by validator index, if index is out of range or validator doesn't exist, return 0.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| uint256 | The validator index |
getVotingPowerById
Get the voting power by validator id, if doesn't exist, return 0.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| uint256 | The validator id |
getVotingPowerByAddress
Get the voting power by validator address, if the validator doesn't exist, return 0.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
getTotalLockedAmountAndValidatorCount
Get the total locked amount and the validator count, but no including the excludes
.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| address[] | Excluded addresses |
activeValidatorsLength
Get the active validators list length.
Declaration:
Modifiers: No modifiers
estimateSharesToAmount
Estimate how much GXC should be stake, if user wants to get the number of shares, Or estimate how much GXC can be obtained, if user unstake the amount of GXC.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| uint256 | Number of shares |
estimateAmountToShares
Estimate how much shares should be unstake, if user wants to get the amount of GXC. Or estimate how much shares can be obtained, if user stake the amount of GXC. If the validator doesn't exist, return 0.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| uint256 | Number of GXC |
estimateUnstakeAmount
Estimate how much GXC can be claim, if unstake the number of shares(when unstake timeout). If the validator doesn't exist, return 0.
Declaration:
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| uint256 | Number of shares |
receive
No description
Declaration:
Modifiers: No modifiers
stake
Stake for validator and mint share token to to
address. It will emit Stake
event.
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| address | Receiver address |
startUnstake
Start unstake shares for validator. Stake manager will burn the shares immediately, but return GXC to to
address after config.unstakeDelay
. It will emit StartUnstake
event.
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| address payable | Receiver address |
| uint256 | Number of shares to be burned |
Returns:
Type | Description |
---|---|
| id(if amount is zero, return MAX_UINT256) |
### startClaim | |
Start claim validator reward. | |
Stake manager will claim GXC from validator reward manager immediately, but return GXC to | |
It will emit |
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| address payable | Receiver address |
| uint256 | Number of GXC |
Returns:
Type | Description |
---|---|
| id |
### setCommissionRate | |
Set validator commission rate. |
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| uint256 | New commission rate |
unstake
Unstake by id, return unstake amount.
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| uint256 | Unstake id |
removeIndexedValidator
Remove the validator from indexedValidators
if the voting power is less than minIndexVotingPower
This can be called by anyone.
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
addIndexedValidator
Add the validator to indexedValidators
if the voting power is greater than minIndexVotingPower
This can be called by anyone.
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
reward
Reward validator, only can be called by system caller
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
onlyRouterOrFeePool |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
slash
Slash validator, only can be called by system caller
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
onlyRouter |
Args:
Arg | Type | Description |
---|---|---|
| address | Validator address |
| uint8 | Slash reason |
onAfterBlock
After block callback, it will be called by system caller after each block is processed
Declaration:
Modifiers:
Modifier |
---|
nonReentrant |
onlyRouter |
Args:
Arg | Type | Description |
---|---|---|
| address | Proposer address |
| address[] | Active validators list |
| int256[] | Priority list of active validators |
Events
Reward
Emitted when a validator gets a reward NOTE: this event is never shown in the block, because the reward
function is only called by the system caller
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address | |
| uint256 | Reward amount | |
### Slash | |||
Emitted when a validator is slashed | |||
NOTE: this event is never shown in the block, |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address | |
| uint256 | Slashed amount | |
### Stake | |||
Emitted when the user stakes |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address | |
| uint256 | Stake value | |
| address | Receiver address | |
| uint256 | Number of shares minted | |
### StartUnstake | |||
Emitted when the user starts unstake |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| uint256 | Unique unstake id | |
| address | Validator address | |
| uint256 | Stake value | |
| address | Receiver address | |
| uint256 | Number of unstake shares to be burned | |
| uint256 | Release timestamp | |
### DoUnstake | |||
Emitted when stake manager |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| uint256 | Unique unstake id | |
| address | Validator address | |
| address | Receiver address | |
| uint256 | GXC Released | |
### SetCommissionRate | |||
Emitted when validator set commission rate |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address | |
| uint256 | New commission rate | |
| uint256 | Update timestamp | |
### IndexedValidator | |||
Emitted when a new validator is indexed |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address | |
| uint256 | Validator voting power | |
### UnindexedValidator | |||
Emitted when a new validator is unindexed |
Params:
Param | Type | Indexed | Description |
---|---|---|---|
| address | Validator address |
Last updated