Skip to content

Commit 3d4d9e1

Browse files
feat(evmstaking): emit success log with actual processed amount (#27)
* feat(evmstaking): change to use cmp pub key * fix(ci): fix golang lint * feat(evmstaking): emit success log with actual processed amount * feat(evmstaking): emit success log with actual processed amount --------- Co-authored-by: 0xHansLee <[email protected]>
1 parent f2c37e3 commit 3d4d9e1

File tree

11 files changed

+206
-65
lines changed

11 files changed

+206
-65
lines changed

client/x/evmengine/keeper/ubi.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,24 @@ func (k *Keeper) ProcessUBIPercentageSet(ctx context.Context, ev *bindings.UBIPo
5656
if r := recover(); r != nil {
5757
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
5858
}
59+
60+
var e sdk.Event
5961
if err == nil {
6062
writeCache()
61-
return
63+
e = sdk.NewEvent(
64+
types.EventTypeUpdateUbiSuccess,
65+
)
66+
} else {
67+
e = sdk.NewEvent(
68+
types.EventTypeUpdateUbiFailure,
69+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
70+
)
6271
}
72+
6373
sdkCtx.EventManager().EmitEvents(sdk.Events{
64-
sdk.NewEvent(
65-
types.EventTypeUpdateUbiFailure,
74+
e.AppendAttributes(
6675
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
6776
sdk.NewAttribute(types.AttributeKeyUbiPercentage, strconv.FormatUint(uint64(ev.Percentage), 10)),
68-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
6977
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
7078
),
7179
})

client/x/evmengine/keeper/upgrades.go

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,26 @@ func (k *Keeper) ProcessSoftwareUpgrade(ctx context.Context, ev *bindings.Upgrad
6565
if r := recover(); r != nil {
6666
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
6767
}
68+
69+
var e sdk.Event
6870
if err == nil {
6971
writeCache()
70-
return
72+
e = sdk.NewEvent(
73+
types.EventTypeUpgradeSuccess,
74+
)
75+
} else {
76+
e = sdk.NewEvent(
77+
types.EventTypeUpgradeFailure,
78+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
79+
)
7180
}
81+
7282
sdkCtx.EventManager().EmitEvents(sdk.Events{
73-
sdk.NewEvent(
74-
types.EventTypeUpgradeFailure,
83+
e.AppendAttributes(
7584
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
7685
sdk.NewAttribute(types.AttributeKeyUpgradeName, ev.Name),
7786
sdk.NewAttribute(types.AttributeKeyUpgradeHeight, strconv.FormatInt(ev.Height, 10)),
7887
sdk.NewAttribute(types.AttributeKeyUpgradeInfo, ev.Info),
79-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
8088
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
8189
),
8290
})
@@ -103,15 +111,23 @@ func (k *Keeper) ProcessCancelUpgrade(ctx context.Context, ev *bindings.UpgradeE
103111
if r := recover(); r != nil {
104112
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
105113
}
114+
115+
var e sdk.Event
106116
if err == nil {
107117
writeCache()
108-
return
118+
e = sdk.NewEvent(
119+
types.EventTypeCancelUpgradeSuccess,
120+
)
121+
} else {
122+
e = sdk.NewEvent(
123+
types.EventTypeCancelUpgradeFailure,
124+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
125+
)
109126
}
127+
110128
sdkCtx.EventManager().EmitEvents(sdk.Events{
111-
sdk.NewEvent(
112-
types.EventTypeCancelUpgradeFailure,
129+
e.AppendAttributes(
113130
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
114-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
115131
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
116132
),
117133
})

client/x/evmengine/types/events.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ const (
66
EventTypeUpdateUbiFailure = "update_ubi_failure"
77
EventTypeCancelUpgradeFailure = "cancel_upgrade_failure"
88

9-
AttributeKeyStatusCode = "status_code"
9+
EventTypeUpgradeSuccess = "upgrade_success"
10+
EventTypeUpdateUbiSuccess = "update_ubi_success"
11+
EventTypeCancelUpgradeSuccess = "cancel_upgrade_success"
12+
13+
AttributeKeyErrorCode = "error_code"
1014
AttributeKeyBlockHeight = "block_height"
1115
AttributeKeyTxHash = "tx_hash"
1216
AttributeKeyUpgradeName = "upgrade_name"

client/x/evmstaking/keeper/delegator_address.go

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,25 @@ func (k Keeper) ProcessSetWithdrawalAddress(ctx context.Context, ev *bindings.IP
2323
if r := recover(); r != nil {
2424
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
2525
}
26+
27+
var e sdk.Event
2628
if err == nil {
2729
writeCache()
28-
return
30+
e = sdk.NewEvent(
31+
types.EventTypeSetWithdrawalAddressSuccess,
32+
)
33+
} else {
34+
e = sdk.NewEvent(
35+
types.EventTypeSetWithdrawalAddressFailure,
36+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
37+
)
2938
}
39+
3040
sdkCtx.EventManager().EmitEvents(sdk.Events{
31-
sdk.NewEvent(
32-
types.EventTypeSetWithdrawalAddressFailure,
41+
e.AppendAttributes(
3342
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
3443
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
3544
sdk.NewAttribute(types.AttributeKeyRewardAddress, hex.EncodeToString(ev.ExecutionAddress[:])),
36-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
3745
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
3846
),
3947
})
@@ -57,17 +65,25 @@ func (k Keeper) ProcessSetRewardAddress(ctx context.Context, ev *bindings.IPToke
5765
if r := recover(); r != nil {
5866
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
5967
}
68+
69+
var e sdk.Event
6070
if err == nil {
6171
writeCache()
62-
return
72+
e = sdk.NewEvent(
73+
types.EventTypeSetRewardAddressSuccess,
74+
)
75+
} else {
76+
e = sdk.NewEvent(
77+
types.EventTypeSetRewardAddressFailure,
78+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
79+
)
6380
}
81+
6482
sdkCtx.EventManager().EmitEvents(sdk.Events{
65-
sdk.NewEvent(
66-
types.EventTypeSetRewardAddressFailure,
83+
e.AppendAttributes(
6784
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
6885
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
6986
sdk.NewAttribute(types.AttributeKeyWithdrawalAddress, hex.EncodeToString(ev.ExecutionAddress[:])),
70-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
7187
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
7288
),
7389
})
@@ -91,17 +107,25 @@ func (k Keeper) ProcessSetOperator(ctx context.Context, ev *bindings.IPTokenStak
91107
if r := recover(); r != nil {
92108
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
93109
}
110+
111+
var e sdk.Event
94112
if err == nil {
95113
writeCache()
96-
return
114+
e = sdk.NewEvent(
115+
types.EventTypeSetOperatorSuccess,
116+
)
117+
} else {
118+
e = sdk.NewEvent(
119+
types.EventTypeSetOperatorFailure,
120+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
121+
)
97122
}
123+
98124
sdkCtx.EventManager().EmitEvents(sdk.Events{
99-
sdk.NewEvent(
100-
types.EventTypeSetOperatorFailure,
125+
e.AppendAttributes(
101126
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
102127
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
103128
sdk.NewAttribute(types.AttributeKeyOperatorAddress, ev.Operator.String()),
104-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
105129
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
106130
),
107131
})
@@ -124,16 +148,24 @@ func (k Keeper) ProcessUnsetOperator(ctx context.Context, ev *bindings.IPTokenSt
124148
if r := recover(); r != nil {
125149
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
126150
}
151+
152+
var e sdk.Event
127153
if err == nil {
128154
writeCache()
129-
return
155+
e = sdk.NewEvent(
156+
types.EventTypeUnsetOperatorSuccess,
157+
)
158+
} else {
159+
e = sdk.NewEvent(
160+
types.EventTypeUnsetOperatorFailure,
161+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
162+
)
130163
}
164+
131165
sdkCtx.EventManager().EmitEvents(sdk.Events{
132-
sdk.NewEvent(
133-
types.EventTypeUnsetOperatorFailure,
166+
e.AppendAttributes(
134167
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
135168
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
136-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
137169
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
138170
),
139171
})

client/x/evmstaking/keeper/deposit.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,29 @@ func (k Keeper) ProcessDeposit(ctx context.Context, ev *bindings.IPTokenStakingD
2727
if r := recover(); r != nil {
2828
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
2929
}
30+
31+
var e sdk.Event
3032
if err == nil {
3133
writeCache()
32-
return
34+
e = sdk.NewEvent(
35+
types.EventTypeDelegateSuccess,
36+
)
37+
} else {
38+
e = sdk.NewEvent(
39+
types.EventTypeDelegateFailure,
40+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
41+
)
3342
}
43+
3444
sdkCtx.EventManager().EmitEvents(sdk.Events{
35-
sdk.NewEvent(
36-
types.EventTypeDelegateFailure,
45+
e.AppendAttributes(
46+
sdk.NewAttribute(types.AttributeKeyAmount, ev.StakeAmount.String()),
3747
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
3848
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
3949
sdk.NewAttribute(types.AttributeKeyValidatorCmpPubKey, hex.EncodeToString(ev.ValidatorCmpPubkey)),
4050
sdk.NewAttribute(types.AttributeKeyDelegateID, ev.DelegationId.String()),
4151
sdk.NewAttribute(types.AttributeKeyPeriodType, strconv.FormatInt(ev.StakingPeriod.Int64(), 10)),
42-
sdk.NewAttribute(types.AttributeKeyAmount, ev.StakeAmount.String()),
4352
sdk.NewAttribute(types.AttributeKeySenderAddress, ev.OperatorAddress.Hex()),
44-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
4553
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
4654
),
4755
})
@@ -79,7 +87,7 @@ func (k Keeper) ProcessDeposit(ctx context.Context, ev *bindings.IPTokenStakingD
7987
"del_evm_addr", ev.Delegator.String(),
8088
"val_evm_addr", valEvmAddr.String(),
8189
"operator_evm_addr", ev.OperatorAddress.String(),
82-
"amount_coin", amountCoin.String(),
90+
"amount", amountCoin.Amount.String(),
8391
)
8492

8593
lockedTokenType, err := k.stakingKeeper.GetLockedTokenType(cachedCtx)

client/x/evmstaking/keeper/redelegation.go

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,36 @@ func (k Keeper) ProcessRedelegate(ctx context.Context, ev *bindings.IPTokenStaki
2525
sdkCtx := sdk.UnwrapSDKContext(ctx)
2626
cachedCtx, writeCache := sdkCtx.CacheContext()
2727

28+
var actualAmount string
29+
2830
defer func() {
2931
if r := recover(); r != nil {
3032
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
3133
}
34+
35+
var e sdk.Event
3236
if err == nil {
3337
writeCache()
34-
return
38+
e = sdk.NewEvent(
39+
types.EventTypeRedelegateSuccess,
40+
sdk.NewAttribute(types.AttributeKeyAmount, actualAmount),
41+
)
42+
} else {
43+
e = sdk.NewEvent(
44+
types.EventTypeRedelegateFailure,
45+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
46+
sdk.NewAttribute(types.AttributeKeyAmount, ev.Amount.String()),
47+
)
3548
}
49+
3650
sdkCtx.EventManager().EmitEvents(sdk.Events{
37-
sdk.NewEvent(
38-
types.EventTypeRedelegateFailure,
51+
e.AppendAttributes(
3952
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
4053
sdk.NewAttribute(types.AttributeKeyDelegatorAddress, ev.Delegator.String()),
4154
sdk.NewAttribute(types.AttributeKeySrcValidatorCmpPubKey, hex.EncodeToString(ev.ValidatorSrcCmpPubkey)),
4255
sdk.NewAttribute(types.AttributeKeyDstValidatorCmpPubKey, hex.EncodeToString(ev.ValidatorDstCmpPubkey)),
4356
sdk.NewAttribute(types.AttributeKeyDelegateID, ev.DelegationId.String()),
44-
sdk.NewAttribute(types.AttributeKeyAmount, ev.Amount.String()),
4557
sdk.NewAttribute(types.AttributeKeySenderAddress, ev.OperatorAddress.Hex()),
46-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
4758
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
4859
),
4960
})
@@ -103,22 +114,22 @@ func (k Keeper) ProcessRedelegate(ctx context.Context, ev *bindings.IPTokenStaki
103114

104115
amountCoin, _ := IPTokenToBondCoin(ev.Amount)
105116

106-
log.Debug(cachedCtx, "EVM staking relegation detected",
117+
log.Debug(cachedCtx, "Processing EVM staking relegation",
107118
"del_story", depositorAddr.String(),
108119
"val_src_story", validatorSrcAddr.String(),
109120
"val_dst_story", validatorDstAddr.String(),
110121
"del_evm_addr", ev.Delegator.String(),
111122
"val_src_evm_addr", valSrcEvmAddr.String(),
112123
"val_dst_evm_addr", valDstEvmAddr.String(),
113-
"amount_coin", amountCoin.String(),
124+
"amount", amountCoin.Amount.String(),
114125
)
115126

116127
msg := stypes.NewMsgBeginRedelegate(
117128
depositorAddr.String(), validatorSrcAddr.String(), validatorDstAddr.String(),
118129
ev.DelegationId.String(), amountCoin,
119130
)
120131

121-
_, err = skeeper.NewMsgServerImpl(k.stakingKeeper.(*skeeper.Keeper)).BeginRedelegate(cachedCtx, msg)
132+
resp, err := skeeper.NewMsgServerImpl(k.stakingKeeper.(*skeeper.Keeper)).BeginRedelegate(cachedCtx, msg)
122133
switch {
123134
case errors.Is(err, stypes.ErrSelfRedelegation):
124135
return errors.WrapErrWithCode(errors.SelfRedelegation, err)
@@ -132,9 +143,21 @@ func (k Keeper) ProcessRedelegate(ctx context.Context, ev *bindings.IPTokenStaki
132143
return errors.WrapErrWithCode(errors.PeriodDelegationNotFound, err)
133144
case err != nil:
134145
return errors.Wrap(err, "failed to begin redelegation")
135-
default:
136-
return nil
137146
}
147+
148+
actualAmount = resp.Amount.Amount.String()
149+
150+
log.Debug(cachedCtx, "EVM staking relegation processed",
151+
"del_story", depositorAddr.String(),
152+
"val_src_story", validatorSrcAddr.String(),
153+
"val_dst_story", validatorDstAddr.String(),
154+
"del_evm_addr", ev.Delegator.String(),
155+
"val_src_evm_addr", valSrcEvmAddr.String(),
156+
"val_dst_evm_addr", valDstEvmAddr.String(),
157+
"actual_amount", actualAmount,
158+
)
159+
160+
return nil
138161
}
139162

140163
func (k Keeper) ParseRedelegateLog(ethLog ethtypes.Log) (*bindings.IPTokenStakingRedelegate, error) {

client/x/evmstaking/keeper/unjail.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,25 @@ func (k Keeper) ProcessUnjail(ctx context.Context, ev *bindings.IPTokenStakingUn
2828
if r := recover(); r != nil {
2929
err = errors.WrapErrWithCode(errors.UnexpectedCondition, fmt.Errorf("panic caused by %v", r))
3030
}
31+
32+
var e sdk.Event
3133
if err == nil {
3234
writeCache()
33-
return
35+
e = sdk.NewEvent(
36+
types.EventTypeUnjailSuccess,
37+
)
38+
} else {
39+
e = sdk.NewEvent(
40+
types.EventTypeUnjailFailure,
41+
sdk.NewAttribute(types.AttributeKeyErrorCode, errors.UnwrapErrCode(err).String()),
42+
)
3443
}
44+
3545
sdkCtx.EventManager().EmitEvents(sdk.Events{
36-
sdk.NewEvent(
37-
types.EventTypeUnjailFailure,
46+
e.AppendAttributes(
3847
sdk.NewAttribute(types.AttributeKeyBlockHeight, strconv.FormatInt(sdkCtx.BlockHeight(), 10)),
3948
sdk.NewAttribute(types.AttributeKeyValidatorCmpPubKey, hex.EncodeToString(ev.ValidatorCmpPubkey)),
4049
sdk.NewAttribute(types.AttributeKeySenderAddress, ev.Unjailer.Hex()),
41-
sdk.NewAttribute(types.AttributeKeyStatusCode, errors.UnwrapErrCode(err).String()),
4250
sdk.NewAttribute(types.AttributeKeyTxHash, hex.EncodeToString(ev.Raw.TxHash.Bytes())),
4351
),
4452
})

0 commit comments

Comments
 (0)