32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
|
# Triggers
|
||
|
|
||
|
## Create validator distribution
|
||
|
|
||
|
- triggered-by: validator entering bonded validator group (`stake.bondValidator()`)
|
||
|
|
||
|
Whenever a new validator is added to the Tendermint validator set they are
|
||
|
entitled to begin earning rewards of atom provisions and fees. At this point
|
||
|
`ValidatorDistribution.Pool()` must be zero (as the validator has not yet
|
||
|
earned any rewards) meaning that the initial value for `validator.Adjustment`
|
||
|
must be set to the value of `validator.SimplePool()` for the height which the
|
||
|
validator is added on the validator set.
|
||
|
|
||
|
## Create or modify delegation distribution
|
||
|
|
||
|
- triggered-by: `stake.TxDelegate`, `stake.TxBeginRedelegate`, `stake.TxBeginUnbonding`
|
||
|
|
||
|
The pool of a new delegator bond will be 0 for the height at which the bond was
|
||
|
added. This is achieved by setting `DelegationDistribution.WithdrawalHeight` to
|
||
|
the height which the bond was added. Additionally the `AdjustmentPool` and
|
||
|
`AdjustmentProposerPool` must be set to the equivalent values of
|
||
|
`DelegationDistribution.SimplePool()` and
|
||
|
`DelegationDistribution.SimpleProposerPool()` for the height of delegation.
|
||
|
|
||
|
## Commission rate change
|
||
|
|
||
|
- triggered-by: `stake.TxEditValidator`
|
||
|
|
||
|
If a validator changes its commission rate, all commission on fees must be
|
||
|
simultaneously withdrawn using the transaction `TxWithdrawValidator`
|
||
|
|