-
Notifications
You must be signed in to change notification settings - Fork 191
/
msg_server_delete_trade_route.go
49 lines (41 loc) · 1.52 KB
/
msg_server_delete_trade_route.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
package keeper
import (
"context"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
"github.com/Stride-Labs/stride/v17/x/stakeibc/types"
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
)
// Gov tx to remove a trade route
//
// Example proposal:
//
// {
// "title": "Remove a new trade route for host chain X",
// "metadata": "Remove a new trade route for host chain X",
// "summary": "Remove a new trade route for host chain X",
// "messages":[
// {
// "@type": "/stride.stakeibc.MsgDeleteTradeRoute",
// "authority": "stride10d07y265gmmuvt4z0w9aw880jnsr700jefnezl",
// "reward_denom": "rewardToken",
// "host_denom": "hostToken
// }
// ],
// "deposit": "2000000000ustrd"
// }
//
// >>> strided tx gov submit-proposal {proposal_file.json} --from wallet
func (ms msgServer) DeleteTradeRoute(goCtx context.Context, msg *types.MsgDeleteTradeRoute) (*types.MsgDeleteTradeRouteResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
if ms.authority != msg.Authority {
return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, msg.Authority)
}
_, found := ms.Keeper.GetTradeRoute(ctx, msg.RewardDenom, msg.HostDenom)
if !found {
return nil, errorsmod.Wrapf(types.ErrTradeRouteNotFound,
"no trade route for rewardDenom %s and hostDenom %s", msg.RewardDenom, msg.HostDenom)
}
ms.Keeper.RemoveTradeRoute(ctx, msg.RewardDenom, msg.HostDenom)
return &types.MsgDeleteTradeRouteResponse{}, nil
}