Skip to content

Commit

Permalink
last block is last block searched not last block written
Browse files Browse the repository at this point in the history
  • Loading branch information
b1674927 committed Apr 10, 2024
1 parent c038767 commit 0fa09d0
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 22 deletions.
46 changes: 26 additions & 20 deletions internal/etherfi/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,33 +37,39 @@ func (app *App) DBGetLatestBlock() uint64 {
// DbGetStartBlock looks up the latest block for which
// we have stored receiver addresses
func (app *App) DbGetShTknTransferStartBlock() uint64 {
query := `SELECT coalesce(max(to_block),0) FROM sh_tkn_transfer WHERE chain_id=$1`
var block uint64
err := app.Db.QueryRow(query, app.Sdk.ChainConfig.ChainId).Scan(&block)
if err == sql.ErrNoRows {
return block
}
if err != nil {
slog.Error("Error for DbGetStartBlock" + err.Error())
return block
if app.LastBlockTo[1] == 0 {
query := `SELECT coalesce(max(to_block),0) FROM sh_tkn_transfer WHERE chain_id=$1`
var block uint64
err := app.Db.QueryRow(query, app.Sdk.ChainConfig.ChainId).Scan(&block)
if err == sql.ErrNoRows {
return block
}
if err != nil {
slog.Error("Error for DbGetStartBlock" + err.Error())
return block
}
app.LastBlockTo[1] = max(app.Genesis, block)
}
return max(app.Genesis, block+1)
return app.LastBlockTo[1]
}

// DbGetStartBlock looks up the latest block for which
// we have stored receiver addresses
func (app *App) DbGetDelegateStartBlock() uint64 {
query := `SELECT coalesce(max(to_block),0) FROM delegates WHERE chain_id=$1`
var block uint64
err := app.Db.QueryRow(query, app.Sdk.ChainConfig.ChainId).Scan(&block)
if err == sql.ErrNoRows {
return block
}
if err != nil {
slog.Error("Error for DbGetStartBlock" + err.Error())
return block
if app.LastBlockTo[0] == 0 {
query := `SELECT coalesce(max(to_block),0) FROM delegates WHERE chain_id=$1`
var block uint64
err := app.Db.QueryRow(query, app.Sdk.ChainConfig.ChainId).Scan(&block)
if err == sql.ErrNoRows {
return block
}
if err != nil {
slog.Error("Error for DbGetStartBlock" + err.Error())
return block
}
app.LastBlockTo[0] = max(app.Genesis, block)
}
return max(app.Genesis, block+1)
return app.LastBlockTo[0]
}

// DBInsertShTknTransfer inserts the results FSResultSet for flipsGetPoolShrTknHolders into the database
Expand Down
1 change: 1 addition & 0 deletions internal/etherfi/etherfi.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ type App struct {
Filterer *filterer.Filterer
Mutex sync.Mutex
Sdk *d8x_futures.SdkRO
LastBlockTo [2]uint64 // last block-to query. 0:delegates 1: transfers
}

func NewApp(v *viper.Viper) (*App, error) {
Expand Down
6 changes: 4 additions & 2 deletions internal/etherfi/runfilter.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func (app *App) RunFilter() {
slog.Info("Filter for events")
go func() {
defer wg.Done()
delegateBlock := app.DbGetDelegateStartBlock()
delegateBlock := app.DbGetDelegateStartBlock() + 1
delegates, upToBlockD, err := app.Filterer.FilterDelegateEvts(delegateBlock, 0)
if err != nil {
slog.Error(err.Error())
Expand All @@ -25,11 +25,12 @@ func (app *App) RunFilter() {
if err != nil {
slog.Error(err.Error())
}
app.LastBlockTo[0] = upToBlockD
}()

go func() {
defer wg.Done()
transferBlock := app.DbGetShTknTransferStartBlock()
transferBlock := app.DbGetShTknTransferStartBlock() + 1
transfers, upToBlockT, err := app.Filterer.FilterTransferEvts(transferBlock, 0)
if err != nil {
slog.Error(err.Error())
Expand All @@ -41,6 +42,7 @@ func (app *App) RunFilter() {
if err != nil {
slog.Error(err.Error())
}
app.LastBlockTo[1] = upToBlockT
}()
wg.Wait()
slog.Info("Event filterer completed")
Expand Down

0 comments on commit 0fa09d0

Please sign in to comment.