github.com/lino-network/lino@v0.6.11/x/price/handler.go (about) 1 package price 2 3 import ( 4 "fmt" 5 "reflect" 6 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 9 // linotypes "github.com/lino-network/lino/types" 10 types "github.com/lino-network/lino/x/price/types" 11 ) 12 13 type FeedPriceMsg = types.FeedPriceMsg 14 15 // NewHandler - Handle all "price" type messages. 16 func NewHandler(pm PriceKeeper) sdk.Handler { 17 return func(ctx sdk.Context, msg sdk.Msg) sdk.Result { 18 switch msg := msg.(type) { 19 case FeedPriceMsg: 20 return handleFeedPriceMsg(ctx, msg, pm) 21 default: 22 errMsg := fmt.Sprintf("unknown price msg type: %v", reflect.TypeOf(msg).Name()) 23 return sdk.ErrUnknownRequest(errMsg).Result() 24 } 25 } 26 } 27 28 // handleFeedPriceMsg feed price message 29 func handleFeedPriceMsg(ctx sdk.Context, msg FeedPriceMsg, pm PriceKeeper) sdk.Result { 30 err := pm.FeedPrice(ctx, msg.Username, msg.Price) 31 if err != nil { 32 return err.Result() 33 } 34 return sdk.Result{} 35 }