github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/msg_convert.go (about)

     1  package distribution
     2  
     3  import (
     4  	"encoding/json"
     5  	"errors"
     6  
     7  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/baseapp"
     8  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     9  	tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types"
    10  	"github.com/fibonacci-chain/fbc/x/common"
    11  	"github.com/fibonacci-chain/fbc/x/distribution/types"
    12  )
    13  
    14  var (
    15  	ErrCheckSignerFail = errors.New("check signer fail")
    16  )
    17  
    18  func init() {
    19  	RegisterConvert()
    20  }
    21  
    22  func RegisterConvert() {
    23  	enableHeight := tmtypes.GetVenus3Height()
    24  	baseapp.RegisterCmHandle("fbexchain/distribution/MsgWithdrawDelegatorAllRewards", baseapp.NewCMHandle(ConvertWithdrawDelegatorAllRewardsMsg, enableHeight))
    25  }
    26  
    27  func ConvertWithdrawDelegatorAllRewardsMsg(data []byte, signers []sdk.AccAddress) (sdk.Msg, error) {
    28  	newMsg := types.MsgWithdrawDelegatorAllRewards{}
    29  	err := json.Unmarshal(data, &newMsg)
    30  	if err != nil {
    31  		return nil, err
    32  	}
    33  	err = newMsg.ValidateBasic()
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  	if ok := common.CheckSignerAddress(signers, newMsg.GetSigners()); !ok {
    38  		return nil, ErrCheckSignerFail
    39  	}
    40  	return newMsg, nil
    41  }