github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/farm/proposal_handler.go (about) 1 package farm 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 "github.com/fibonacci-chain/fbc/x/common" 6 "github.com/fibonacci-chain/fbc/x/farm/types" 7 govTypes "github.com/fibonacci-chain/fbc/x/gov/types" 8 ) 9 10 // NewManageWhiteListProposalHandler handles "gov" type message in "farm" 11 func NewManageWhiteListProposalHandler(k *Keeper) govTypes.Handler { 12 return func(ctx sdk.Context, proposal *govTypes.Proposal) (err sdk.Error) { 13 switch content := proposal.Content.(type) { 14 case types.ManageWhiteListProposal: 15 return handleManageWhiteListProposal(ctx, k, content) 16 default: 17 return common.ErrUnknownProposalType(DefaultCodespace, content.ProposalType()) 18 } 19 } 20 } 21 22 func handleManageWhiteListProposal(ctx sdk.Context, k *Keeper, p types.ManageWhiteListProposal) sdk.Error { 23 if sdkErr := k.CheckMsgManageWhiteListProposal(ctx, p); sdkErr != nil { 24 return sdkErr 25 } 26 27 if p.IsAdded { 28 // add pool name into whitelist 29 k.SetWhitelist(ctx, p.PoolName) 30 return nil 31 } 32 33 // remove pool name from whitelist 34 k.DeleteWhiteList(ctx, p.PoolName) 35 return nil 36 }