Skip to content

Commit 03083a8

Browse files
authored
fix: duplicate case switch to avoid empty execution block (cosmos#492)
* duplicate switch * add changelog
1 parent 4d93f2d commit 03083a8

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### BUG FIXES
88

99
- [\#471](https://github.com/cosmos/evm/pull/471) Notify new block for mempool in time.
10+
- [\#492](https://github.com/cosmos/evm/pull/492) Duplicate case switch to avoid empty execution block
1011

1112
### IMPROVEMENTS
1213

precompiles/erc20/msgsrv.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,28 @@ func NewMsgServerImpl(keeper cmn.BankKeeper) *MsgServer {
2626
func (m MsgServer) Send(goCtx context.Context, msg *banktypes.MsgSend) error {
2727
switch keeper := m.BankKeeper.(type) {
2828
// have cases for both pointer and non-pointer to cover how different apps could be storing the keeper
29-
case *bankkeeper.BaseKeeper:
3029
case bankkeeper.BaseKeeper:
3130
msgSrv := bankkeeper.NewMsgServerImpl(keeper)
3231
if _, err := msgSrv.Send(goCtx, msg); err != nil {
3332
// This should return an error to avoid the contract from being executed and an event being emitted
3433
return ConvertErrToERC20Error(err)
3534
}
36-
case *precisebankkeeper.Keeper:
35+
case *bankkeeper.BaseKeeper:
36+
msgSrv := bankkeeper.NewMsgServerImpl(keeper)
37+
if _, err := msgSrv.Send(goCtx, msg); err != nil {
38+
// This should return an error to avoid the contract from being executed and an event being emitted
39+
return ConvertErrToERC20Error(err)
40+
}
3741
case precisebankkeeper.Keeper:
3842
if _, err := keeper.Send(goCtx, msg); err != nil {
3943
// This should return an error to avoid the contract from being executed and an event being emitted
4044
return ConvertErrToERC20Error(err)
4145
}
46+
case *precisebankkeeper.Keeper:
47+
if _, err := keeper.Send(goCtx, msg); err != nil {
48+
// This should return an error to avoid the contract from being executed and an event being emitted
49+
return ConvertErrToERC20Error(err)
50+
}
4251
default:
4352
return sdkerrors.ErrInvalidRequest.Wrapf("invalid keeper type: %T", m.BankKeeper)
4453
}

0 commit comments

Comments
 (0)