Skip to content

Commit baf8f2c

Browse files
committed
move blocked address check to SendTransfer
1 parent 58bd0f7 commit baf8f2c

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

modules/apps/transfer/keeper/msg_server.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55

66
sdk "github.com/cosmos/cosmos-sdk/types"
7-
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
87

98
"github.com/cosmos/ibc-go/v5/modules/apps/transfer/types"
109
)
@@ -20,10 +19,6 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.
2019
return nil, err
2120
}
2221

23-
if k.bankKeeper.BlockedAddr(sender) {
24-
return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to send funds", sender)
25-
}
26-
2722
if err := k.SendTransfer(
2823
ctx, msg.SourcePort, msg.SourceChannel, msg.Token, sender, msg.Receiver, msg.TimeoutHeight, msg.TimeoutTimestamp,
2924
); err != nil {

modules/apps/transfer/keeper/relay.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ func (k Keeper) SendTransfer(
6464
return types.ErrSendDisabled
6565
}
6666

67+
if k.bankKeeper.BlockedAddr(sender) {
68+
return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to send funds", sender)
69+
}
70+
6771
sourceChannelEnd, found := k.channelKeeper.GetChannel(ctx, sourcePort, sourceChannel)
6872
if !found {
6973
return sdkerrors.Wrapf(channeltypes.ErrChannelNotFound, "port ID (%s) channel ID (%s)", sourcePort, sourceChannel)

modules/apps/transfer/keeper/relay_test.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
2020
var (
2121
amount sdk.Coin
2222
path *ibctesting.Path
23+
sender sdk.AccAddress
2324
err error
2425
)
2526

@@ -68,7 +69,14 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
6869
amount = sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100))
6970
}, true, false,
7071
},
71-
72+
{
73+
"transfer failed - sender account is blocked",
74+
func() {
75+
suite.coordinator.CreateTransferChannels(path)
76+
amount = sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100))
77+
sender = suite.chainA.GetSimApp().AccountKeeper.GetModuleAddress(types.ModuleName)
78+
}, true, false,
79+
},
7280
// createOutgoingPacket tests
7381
// - source chain
7482
{
@@ -106,6 +114,7 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
106114
suite.SetupTest() // reset
107115
path = NewTransferPath(suite.chainA, suite.chainB)
108116
suite.coordinator.SetupConnections(path)
117+
sender = suite.chainA.SenderAccount.GetAddress()
109118

110119
tc.malleate()
111120

@@ -133,7 +142,7 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
133142

134143
err = suite.chainA.GetSimApp().TransferKeeper.SendTransfer(
135144
suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, amount,
136-
suite.chainA.SenderAccount.GetAddress(), suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(0, 110), 0,
145+
sender, suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(0, 110), 0,
137146
)
138147

139148
if tc.expPass {

0 commit comments

Comments
 (0)