-
Notifications
You must be signed in to change notification settings - Fork 119
/
msg_server.go
59 lines (50 loc) · 2.01 KB
/
msg_server.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
50
51
52
53
54
55
56
57
58
59
package keeper
import (
"context"
admintypes "github.com/Sifchain/sifnode/x/admin/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/Sifchain/sifnode/x/tokenregistry/types"
)
type msgServer struct {
keeper types.Keeper
}
func (m msgServer) Register(ctx context.Context, req *types.MsgRegister) (*types.MsgRegisterResponse, error) {
addr, err := sdk.AccAddressFromBech32(req.From)
if err != nil {
return nil, err
}
if !m.keeper.GetAdminKeeper().IsAdminAccount(sdk.UnwrapSDKContext(ctx), admintypes.AdminType_TOKENREGISTRY, addr) {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "unauthorised signer")
}
m.keeper.SetToken(sdk.UnwrapSDKContext(ctx), req.Entry)
return &types.MsgRegisterResponse{}, nil
}
func (m msgServer) SetRegistry(ctx context.Context, req *types.MsgSetRegistry) (*types.MsgSetRegistryResponse, error) {
addr, err := sdk.AccAddressFromBech32(req.From)
if err != nil {
return nil, err
}
if !m.keeper.GetAdminKeeper().IsAdminAccount(sdk.UnwrapSDKContext(ctx), admintypes.AdminType_TOKENREGISTRY, addr) {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "unauthorised signer")
}
m.keeper.SetRegistry(sdk.UnwrapSDKContext(ctx), *req.Registry)
return &types.MsgSetRegistryResponse{}, nil
}
func (m msgServer) Deregister(ctx context.Context, req *types.MsgDeregister) (*types.MsgDeregisterResponse, error) {
addr, err := sdk.AccAddressFromBech32(req.From)
if err != nil {
return nil, err
}
if !m.keeper.GetAdminKeeper().IsAdminAccount(sdk.UnwrapSDKContext(ctx), admintypes.AdminType_TOKENREGISTRY, addr) {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "unauthorised signer")
}
m.keeper.RemoveToken(sdk.UnwrapSDKContext(ctx), req.Denom)
return &types.MsgDeregisterResponse{}, nil
}
// NewMsgServerImpl returns an implementation of MsgServer interface
// for the provided Keeper.
func NewMsgServerImpl(keeper types.Keeper) types.MsgServer {
return &msgServer{keeper: keeper}
}
var _ types.MsgServer = msgServer{}