fix(x/slashing): Emit slashing event with the correct reason in SlashWithInfractionReason (backport #16784) (#16793)
This commit is contained in:
parent
d681010fee
commit
398214f28d
|
@ -50,6 +50,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
|||
|
||||
* (x/auth) [#16554](https://github.com/cosmos/cosmos-sdk/pull/16554) `ModuleAccount.Validate` now reports a nil `.BaseAccount` instead of panicking.
|
||||
* [#16588](https://github.com/cosmos/cosmos-sdk/pull/16588) Propogate the Snapshotter's failure to the caller, (it will create a empty snapshot silently before).
|
||||
* (x/slashing) [#16784](https://github.com/cosmos/cosmos-sdk/pull/16784) Emit event with the correct reason in SlashWithInfractionReason.
|
||||
|
||||
## [v0.47.3](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.3) - 2023-06-08
|
||||
|
||||
|
|
|
@ -79,12 +79,21 @@ func (k Keeper) Slash(ctx sdk.Context, consAddr sdk.ConsAddress, fraction sdk.De
|
|||
// module to make the necessary validator changes. It specifies an intraction reason.
|
||||
func (k Keeper) SlashWithInfractionReason(ctx sdk.Context, consAddr sdk.ConsAddress, fraction sdk.Dec, power, distributionHeight int64, infraction stakingtypes.Infraction) {
|
||||
coinsBurned := k.sk.SlashWithInfractionReason(ctx, consAddr, distributionHeight, power, fraction, infraction)
|
||||
|
||||
reasonAttr := sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueUnspecified)
|
||||
switch infraction {
|
||||
case stakingtypes.Infraction_INFRACTION_DOUBLE_SIGN:
|
||||
reasonAttr = sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueDoubleSign)
|
||||
case stakingtypes.Infraction_INFRACTION_DOWNTIME:
|
||||
reasonAttr = sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueMissingSignature)
|
||||
}
|
||||
|
||||
ctx.EventManager().EmitEvent(
|
||||
sdk.NewEvent(
|
||||
types.EventTypeSlash,
|
||||
sdk.NewAttribute(types.AttributeKeyAddress, consAddr.String()),
|
||||
sdk.NewAttribute(types.AttributeKeyPower, fmt.Sprintf("%d", power)),
|
||||
sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueDoubleSign),
|
||||
reasonAttr,
|
||||
sdk.NewAttribute(types.AttributeKeyBurnedCoins, coinsBurned.String()),
|
||||
),
|
||||
)
|
||||
|
|
|
@ -13,6 +13,7 @@ const (
|
|||
AttributeKeyMissedBlocks = "missed_blocks"
|
||||
AttributeKeyBurnedCoins = "burned_coins"
|
||||
|
||||
AttributeValueUnspecified = "unspecified"
|
||||
AttributeValueDoubleSign = "double_sign"
|
||||
AttributeValueMissingSignature = "missing_signature"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue