Determine whether the index validator exists by id.
Declaration:
Modifiers: No modifiers
Args:
Arg
Type
Description
id
uint256
The validator id
indexedValidatorsByIndex
Get indexed validator address by index.
Declaration:
Modifiers: No modifiers
Args:
Arg
Type
Description
index
uint256
The validator index
indexedValidatorsById
Get indexed validator address by id.
Declaration:
Modifiers: No modifiers
Args:
Arg
Type
Description
id
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
index
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
id
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
validator
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
excludes
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
validator
address
Validator address
shares
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
validator
address
Validator address
amount
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
validator
address
Validator address
shares
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
validator
address
Validator address
to
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
validator
address
Validator address
to
address payable
Receiver address
shares
uint256
Number of shares to be burned
Returns:
Type
Description
Unstake
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 to address after config.unstakeDelay.
It will emit StartUnstake event.
Declaration:
Modifiers:
Modifier
nonReentrant
Args:
Arg
Type
Description
to
address payable
Receiver address
amount
uint256
Number of GXC
Returns:
Type
Description
Unstake
id
### setCommissionRate
Set validator commission rate.
Declaration:
Modifiers:
Modifier
nonReentrant
Args:
Arg
Type
Description
rate
uint256
New commission rate
unstake
Unstake by id, return unstake amount.
Declaration:
Modifiers:
Modifier
nonReentrant
Args:
Arg
Type
Description
id
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
validator
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
validator
address
Validator address
reward
Reward validator, only can be called by system caller
Declaration:
Modifiers:
Modifier
nonReentrant
onlyRouterOrFeePool
Args:
Arg
Type
Description
validator
address
Validator address
slash
Slash validator, only can be called by system caller
Declaration:
Modifiers:
Modifier
nonReentrant
onlyRouter
Args:
Arg
Type
Description
validator
address
Validator address
reason
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
_proposer
address
Proposer address
acValidators
address[]
Active validators list
priorities
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