Skip to content

Commit 17e979a

Browse files
committed
fix: check recipient for lp role
1 parent 865b1ce commit 17e979a

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

x/halo/keeper/msg_server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func (k msgServer) TradeToFiat(goCtx context.Context, msg *types.MsgTradeToFiat)
231231
if err != nil {
232232
return nil, errors.Wrapf(err, "unable to decode recipient address %s", msg.Recipient)
233233
}
234-
if !k.HasRole(ctx, signer, entitlements.ROLE_LIQUIDITY_PROVIDER) {
234+
if !k.HasRole(ctx, recipient, entitlements.ROLE_LIQUIDITY_PROVIDER) {
235235
return nil, types.ErrInvalidLiquidityProvider
236236
}
237237
if !msg.Amount.IsPositive() {

x/halo/keeper/msg_server_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -913,8 +913,8 @@ func TestTradeToFiat(t *testing.T) {
913913
goCtx := sdk.WrapSDKContext(ctx)
914914
server := keeper.NewMsgServer(k)
915915

916-
// ARRANGE: Generate an admin account.
917-
admin := utils.TestAccount()
916+
// ARRANGE: Generate an admin and recipient account.
917+
admin, recipient := utils.TestAccount(), utils.TestAccount()
918918

919919
// ACT: Attempt to trade to fiat with an invalid signer address.
920920
_, err := server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
@@ -936,27 +936,27 @@ func TestTradeToFiat(t *testing.T) {
936936
// ACT: Attempt to trade to fiat with an invalid recipient address.
937937
_, err = server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
938938
Signer: admin.Address,
939-
Recipient: admin.Invalid,
939+
Recipient: recipient.Invalid,
940940
})
941941
// ASSERT: The action should've failed due to invalid recipient address.
942942
require.ErrorContains(t, err, "unable to decode recipient address")
943943

944944
// ACT: Attempt to trade to fiat with invalid recipient permissions.
945945
_, err = server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
946946
Signer: admin.Address,
947-
Recipient: admin.Address,
947+
Recipient: recipient.Address,
948948
})
949949
// ASSERT: The action should've failed due to invalid recipient permissions.
950950
require.ErrorContains(t, err, types.ErrInvalidLiquidityProvider.Error())
951951

952952
// ARRANGE: Set liquidity provider in state.
953-
k.SetUserRole(ctx, admin.Bytes, entitlements.ROLE_LIQUIDITY_PROVIDER, true)
953+
k.SetUserRole(ctx, recipient.Bytes, entitlements.ROLE_LIQUIDITY_PROVIDER, true)
954954

955955
// ACT: Attempt to trade to fiat with insufficient funds.
956956
_, err = server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
957957
Signer: admin.Address,
958958
Amount: ONE,
959-
Recipient: admin.Address,
959+
Recipient: recipient.Address,
960960
})
961961
// ASSERT: The action should've failed due to insufficient funds.
962962
require.ErrorContains(t, err, "insufficient funds")
@@ -968,7 +968,7 @@ func TestTradeToFiat(t *testing.T) {
968968
_, err = server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
969969
Signer: admin.Address,
970970
Amount: sdk.NewInt(-1_000_000),
971-
Recipient: admin.Address,
971+
Recipient: recipient.Address,
972972
})
973973
// ASSERT: The action should've failed due to invalid amount.
974974
require.ErrorContains(t, err, "invalid amount")
@@ -977,11 +977,11 @@ func TestTradeToFiat(t *testing.T) {
977977
_, err = server.TradeToFiat(goCtx, &types.MsgTradeToFiat{
978978
Signer: admin.Address,
979979
Amount: ONE,
980-
Recipient: admin.Address,
980+
Recipient: recipient.Address,
981981
})
982982
// ASSERT: The action should've succeeded.
983983
require.NoError(t, err)
984-
require.Equal(t, ONE, bank.Balances[admin.Address].AmountOf(k.Underlying))
984+
require.Equal(t, ONE, bank.Balances[recipient.Address].AmountOf(k.Underlying))
985985
require.True(t, bank.Balances[types.ModuleName].IsZero())
986986
}
987987

0 commit comments

Comments
 (0)