github.com/Finschia/finschia-sdk@v0.48.1/x/slashing/keeper/msg_server.go (about)

     1  package keeper
     2  
     3  import (
     4  	"context"
     5  
     6  	sdk "github.com/Finschia/finschia-sdk/types"
     7  	"github.com/Finschia/finschia-sdk/x/slashing/types"
     8  )
     9  
    10  type msgServer struct {
    11  	Keeper
    12  }
    13  
    14  // NewMsgServerImpl returns an implementation of the slashing MsgServer interface
    15  // for the provided Keeper.
    16  func NewMsgServerImpl(keeper Keeper) types.MsgServer {
    17  	return &msgServer{Keeper: keeper}
    18  }
    19  
    20  var _ types.MsgServer = msgServer{}
    21  
    22  // Unjail implements MsgServer.Unjail method.
    23  // Validators must submit a transaction to unjail itself after
    24  // having been jailed (and thus unbonded) for downtime
    25  func (k msgServer) Unjail(goCtx context.Context, msg *types.MsgUnjail) (*types.MsgUnjailResponse, error) {
    26  	ctx := sdk.UnwrapSDKContext(goCtx)
    27  
    28  	valAddr, valErr := sdk.ValAddressFromBech32(msg.ValidatorAddr)
    29  	if valErr != nil {
    30  		return nil, valErr
    31  	}
    32  	err := k.Keeper.Unjail(ctx, valAddr)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  
    37  	return &types.MsgUnjailResponse{}, nil
    38  }