Skip to content

Commit

Permalink
moved feeder start to endblocker, remove account keeper from feeder
Browse files Browse the repository at this point in the history
  • Loading branch information
avendauz committed Aug 12, 2021
1 parent 73f0d9b commit 3504e09
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 16 deletions.
2 changes: 0 additions & 2 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,6 @@ func NewCRUDApp(
tmos.Exit(err.Error())
}

go oracle.StartFeeder(app.oracleKeeper, app.accountKeeper, cdc)

return app
}

Expand Down
10 changes: 8 additions & 2 deletions x/oracle/abci.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"github.com/bluzelle/curium/app/ante/gasmeter"
sdk "github.com/cosmos/cosmos-sdk/types"
abci "github.com/tendermint/tendermint/abci/types"
"sync"
)

// BeginBlocker check for infraction evidence or downtime of validators
Expand All @@ -13,6 +14,11 @@ func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) {
currCtx = &ctx
}

var once sync.Once

// EndBlocker called every block, process inflation, update validator set.
func EndBlocker(ctx sdk.Context) {
}
func EndBlocker(ctx sdk.Context, am AppModule) {
once.Do(func () {
go StartFeeder(am.keeper)
})
}
18 changes: 7 additions & 11 deletions x/oracle/feeder.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ import (
curium "github.com/bluzelle/curium/x/curium/keeper"
"github.com/bluzelle/curium/x/oracle/keeper"
"github.com/bluzelle/curium/x/oracle/types"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth"
"github.com/robfig/cron/v3"
"github.com/tendermint/tendermint/libs/log"
nestedJson "github.com/wenxiang/go-nestedjson"
Expand All @@ -22,11 +20,9 @@ import (

var logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout))

var accountKeeper auth.AccountKeeper

func RunFeeder(ctx sdk.Context, oracleKeeper Keeper, accKeeper auth.AccountKeeper, cdc *codec.Codec) {
func RunFeeder(ctx sdk.Context, oracleKeeper Keeper) {
logger.Info("Starting oracle feeder service")
accountKeeper = accKeeper

c := cron.New()
c.AddFunc("* * * * *", func() {
Expand All @@ -35,7 +31,7 @@ func RunFeeder(ctx sdk.Context, oracleKeeper Keeper, accKeeper auth.AccountKeepe
return
}
logger.Info("Oracle feeder run", "Valcons", keeper.GetValconsAddress())
GetValueAndSendProofAndVote(ctx, oracleKeeper, cdc)
GetValueAndSendProofAndVote(ctx, oracleKeeper)
})
c.Start()
}
Expand All @@ -45,12 +41,12 @@ type SourceAndValue struct {
value float64
}

func GetValueAndSendProofAndVote(ctx sdk.Context, oracleKeeper Keeper, cdc *codec.Codec) {
func GetValueAndSendProofAndVote(ctx sdk.Context, oracleKeeper Keeper) {
sources, _ := oracleKeeper.ListSources(*currCtx)
logger.Info("Oracle fetching from sources", "count", len(sources))
if len(sources) > 0 {
values := fetchValues(sources)
sendPreflightMsgs(ctx, values, cdc, oracleKeeper)
sendPreflightMsgs(ctx, values, oracleKeeper)
time.AfterFunc(time.Second*20, func() {
sendVoteMsgs(ctx, values, oracleKeeper)
})
Expand Down Expand Up @@ -134,7 +130,7 @@ func readValueFromJson(jsonIn []byte, prop string) (float64, error) {
return out, nil
}

func sendPreflightMsgs(ctx sdk.Context, values []SourceAndValue, cdc *codec.Codec, keeper Keeper) string {
func sendPreflightMsgs(ctx sdk.Context, values []SourceAndValue, keeper Keeper) string {
var msgs []sdk.Msg
for _, value := range values {
msg, _ := generateVoteProofMsg(value, keeper.KeyringReader)
Expand Down Expand Up @@ -211,14 +207,14 @@ func generateVoteProofMsg(source SourceAndValue, keyringReader *curium.KeyringRe

var currCtx *sdk.Context

func StartFeeder(oracleKeeper Keeper, accountKeeper auth.AccountKeeper, cdc *codec.Codec) {
func StartFeeder(oracleKeeper Keeper) {
defer func() {
if err := recover(); err != nil {
fmt.Println("panic occurred:", err)
}
}()
waitForCtx()
RunFeeder(*currCtx, oracleKeeper, accountKeeper, cdc)
RunFeeder(*currCtx, oracleKeeper)
}

func waitForCtx() {
Expand Down
3 changes: 2 additions & 1 deletion x/oracle/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command {
type AppModule struct {
AppModuleBasic
keeper keeper.Keeper

}

// NewAppModule creates a new AppModule object
Expand Down Expand Up @@ -135,7 +136,7 @@ func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
// EndBlock returns the end blocker for the oracle module. It returns no validator
// updates.
func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate {
EndBlocker(ctx)
EndBlocker(ctx, am)
return []abci.ValidatorUpdate{}
}

Expand Down

0 comments on commit 3504e09

Please sign in to comment.