@@ -104,7 +104,7 @@ func (c *Contract) LatestProjects() []*Project {
104104}
105105
106106func (c * Contract ) latestProjects () * blockProject {
107- batch := c .db .NewBatch ()
107+ batch := c .db .NewIndexedBatch ()
108108 defer batch .Close ()
109109
110110 headBytes , closer , err := batch .Get (c .dbHead ())
@@ -200,7 +200,7 @@ func (c *Contract) Prover(operator common.Address) *Prover {
200200}
201201
202202func (c * Contract ) latestProvers () * blockProver {
203- batch := c .db .NewBatch ()
203+ batch := c .db .NewIndexedBatch ()
204204 defer batch .Close ()
205205
206206 headBytes , closer , err := batch .Get (c .dbHead ())
@@ -266,7 +266,7 @@ func (c *Contract) dbHead() []byte {
266266}
267267
268268func (c * Contract ) updateDB (blockNumber uint64 , projectDiff * blockProjectDiff , proverDiff * blockProverDiff ) error {
269- batch := c .db .NewBatch ()
269+ batch := c .db .NewIndexedBatch ()
270270 defer batch .Close ()
271271
272272 preBlock := blockNumber - 1
@@ -278,7 +278,7 @@ func (c *Contract) updateDB(blockNumber uint64, projectDiff *blockProjectDiff, p
278278 if err != nil && err != pebble .ErrNotFound {
279279 return errors .Wrap (err , "failed to get pre block data" )
280280 }
281- var preBlockData * block
281+ preBlockData := & block {}
282282 if err == nil {
283283 dst := make ([]byte , len (preBlockBytes ))
284284 copy (dst , preBlockBytes )
@@ -348,12 +348,12 @@ func (c *Contract) processLogs(from, to uint64, logs []types.Log, notify bool) e
348348 }
349349 for blockNumber := from ; blockNumber <= to ; blockNumber ++ {
350350 projects , ok := projectMap [blockNumber ]
351- if ok && notify {
352- c .notifyProject (projects )
353- }
354351 if err := c .updateDB (blockNumber , projects , proverMap [blockNumber ]); err != nil {
355352 return err
356353 }
354+ if ok && notify {
355+ c .notifyProject (projects )
356+ }
357357 }
358358 return nil
359359}
@@ -462,7 +462,7 @@ func New(db *pebble.DB, size, beginningBlockNumber uint64, chainEndpoint string,
462462 projectContractAddr : projectContractAddr ,
463463 chainHeadNotifications : chainHeadNotifications ,
464464 projectNotifications : projectNotifications ,
465- listStepSize : 1000 ,
465+ listStepSize : 10000 ,
466466 watchInterval : 1 * time .Second ,
467467 client : client ,
468468 proverInstance : proverInstance ,
0 commit comments