/
events.go
96 lines (87 loc) · 4.1 KB
/
events.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package keeper
import (
"strconv"
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/Stride-Labs/stride/v19/x/staketia/types"
)
// Emits a successful liquid stake event, and displays metadata such as the stToken amount
func EmitSuccessfulLiquidStakeEvent(ctx sdk.Context, staker string, hostZone types.HostZone, nativeAmount, stAmount sdkmath.Int) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeLiquidStakeRequest,
sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
sdk.NewAttribute(types.AttributeKeyLiquidStaker, staker),
sdk.NewAttribute(types.AttributeKeyHostZone, hostZone.ChainId),
sdk.NewAttribute(types.AttributeKeyNativeBaseDenom, hostZone.NativeTokenDenom),
sdk.NewAttribute(types.AttributeKeyNativeIBCDenom, hostZone.NativeTokenIbcDenom),
sdk.NewAttribute(types.AttributeKeyNativeAmount, nativeAmount.String()),
sdk.NewAttribute(types.AttributeKeyStTokenAmount, stAmount.String()),
),
)
}
// Emits a successful redeem stake event, and displays metadata such as the native amount
func EmitSuccessfulRedeemStakeEvent(ctx sdk.Context, staker string, hostZone types.HostZone, nativeAmount, stAmount sdkmath.Int) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeRedeemStakeRequest,
sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
sdk.NewAttribute(types.AttributeKeyRedeemer, staker),
sdk.NewAttribute(types.AttributeKeyHostZone, hostZone.ChainId),
sdk.NewAttribute(types.AttributeKeyNativeBaseDenom, hostZone.NativeTokenDenom),
sdk.NewAttribute(types.AttributeKeyNativeIBCDenom, hostZone.NativeTokenIbcDenom),
sdk.NewAttribute(types.AttributeKeyNativeAmount, nativeAmount.String()),
sdk.NewAttribute(types.AttributeKeyStTokenAmount, stAmount.String()),
),
)
}
// Emits an event indicated the delegation record is correctly marked as done
func EmitSuccessfulConfirmDelegationEvent(ctx sdk.Context, recordId uint64, delegationAmount sdkmath.Int, txHash string, sender string) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeConfirmDelegationResponse,
sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
sdk.NewAttribute(types.AttributeRecordId, strconv.FormatUint(recordId, 10)),
sdk.NewAttribute(types.AttributeDelegationNativeAmount, delegationAmount.String()),
sdk.NewAttribute(types.AttributeTxHash, txHash),
sdk.NewAttribute(types.AttributeSender, sender),
),
)
}
// Emits an event indicated the undelegation record is correctly marked as unbonding_in_progress
func EmitSuccessfulConfirmUndelegationEvent(ctx sdk.Context, recordId uint64, nativeAmount sdkmath.Int, txHash string, sender string) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeConfirmUndelegation,
sdk.NewAttribute(sdk.AttributeKeySender, sender),
sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
sdk.NewAttribute(types.AttributeRecordId, strconv.FormatUint(recordId, 10)),
sdk.NewAttribute(types.AttributeUndelegationNativeAmount, nativeAmount.String()),
sdk.NewAttribute(types.AttributeTxHash, txHash),
sdk.NewAttribute(types.AttributeSender, sender),
),
)
}
// Emits an event indicated the unbonding record is correctly marked as claimable
func EmitSuccessfulConfirmUnbondedTokenSweepEvent(ctx sdk.Context, recordId uint64, nativeAmount sdkmath.Int, txHash string, sender string) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeConfirmUnbondedTokenSweep,
sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
sdk.NewAttribute(types.AttributeRecordId, strconv.FormatUint(recordId, 10)),
sdk.NewAttribute(types.AttributeUndelegationNativeAmount, nativeAmount.String()),
sdk.NewAttribute(types.AttributeTxHash, txHash),
sdk.NewAttribute(types.AttributeSender, sender),
),
)
}
// Emits an event indicating a zone was halted
func EmitHaltZoneEvent(ctx sdk.Context, hostZone types.HostZone) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeHostZoneHalt,
sdk.NewAttribute(types.AttributeKeyHostZone, hostZone.ChainId),
sdk.NewAttribute(types.AttributeKeyRedemptionRate, hostZone.RedemptionRate.String()),
),
)
}