cosmos-sdk/docs/_attic/WIP-lamborghini-distribution/triggers.md

1.3 KiB

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