42 lines
958 B
Go
42 lines
958 B
Go
package keeper
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/x/auth/types"
|
|
)
|
|
|
|
var _ types.MsgServer = msgServer{}
|
|
|
|
type msgServer struct {
|
|
ak AccountKeeper
|
|
}
|
|
|
|
// NewMsgServerImpl returns an implementation of the x/auth MsgServer interface.
|
|
func NewMsgServerImpl(ak AccountKeeper) types.MsgServer {
|
|
return &msgServer{
|
|
ak: ak,
|
|
}
|
|
}
|
|
|
|
func (ms msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) {
|
|
if ms.ak.authority != msg.Authority {
|
|
return nil, fmt.Errorf(
|
|
"expected gov account as only signer for proposal message; invalid authority; expected %s, got %s",
|
|
ms.ak.authority, msg.Authority)
|
|
}
|
|
|
|
if err := msg.Params.Validate(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
if err := ms.ak.Params.Set(ctx, msg.Params); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &types.MsgUpdateParamsResponse{}, nil
|
|
}
|