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 }