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  }