github.com/cosmos/cosmos-sdk@v0.50.10/x/auth/keeper/msg_server.go (about) 1 package keeper 2 3 import ( 4 "context" 5 "fmt" 6 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 "github.com/cosmos/cosmos-sdk/x/auth/types" 9 ) 10 11 var _ types.MsgServer = msgServer{} 12 13 type msgServer struct { 14 ak AccountKeeper 15 } 16 17 // NewMsgServerImpl returns an implementation of the x/auth MsgServer interface. 18 func NewMsgServerImpl(ak AccountKeeper) types.MsgServer { 19 return &msgServer{ 20 ak: ak, 21 } 22 } 23 24 func (ms msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) { 25 if ms.ak.authority != msg.Authority { 26 return nil, fmt.Errorf( 27 "expected gov account as only signer for proposal message; invalid authority; expected %s, got %s", 28 ms.ak.authority, msg.Authority) 29 } 30 31 if err := msg.Params.Validate(); err != nil { 32 return nil, err 33 } 34 35 ctx := sdk.UnwrapSDKContext(goCtx) 36 if err := ms.ak.Params.Set(ctx, msg.Params); err != nil { 37 return nil, err 38 } 39 40 return &types.MsgUpdateParamsResponse{}, nil 41 }