github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/core/02-client/proposal_handler.go (about)

     1  package client
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors"
     6  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/02-client/keeper"
     7  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/02-client/types"
     8  	govtypes "github.com/fibonacci-chain/fbc/x/gov/types"
     9  )
    10  
    11  // NewClientUpdateProposalHandler defines the client update proposal handler
    12  func NewClientUpdateProposalHandler(k keeper.Keeper) govtypes.Handler {
    13  	return func(ctx sdk.Context, content *govtypes.Proposal) sdk.Error {
    14  		cont := content.Content
    15  		switch c := cont.(type) {
    16  		case *types.ClientUpdateProposal:
    17  			return k.ClientUpdateProposal(ctx, c)
    18  		default:
    19  			return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized ibc proposal content type: %T", c)
    20  		}
    21  	}
    22  }