Commit c9fc6d87 authored by Brian Bland's avatar Brian Bland

Extract inner loop into new publishStateToL1 method

parent c4a679cb
...@@ -294,12 +294,21 @@ func (l *BatchSubmitter) loop() { ...@@ -294,12 +294,21 @@ func (l *BatchSubmitter) loop() {
select { select {
case <-ticker.C: case <-ticker.C:
l.loadBlocksIntoState(l.ctx) l.loadBlocksIntoState(l.ctx)
l.publishStateToL1(ctx)
case <-l.done:
return
}
}
}
// publishStateToL1 loops through the block data loaded into `state` and
// submits the associated data to the L1 in the form of channel frames.
func (l *BatchSubmitter) publishStateToL1(ctx context.Context) {
for { for {
l1tip, err := l.l1Tip(ctx) l1tip, err := l.l1Tip(ctx)
if err != nil { if err != nil {
l.log.Error("Failed to query L1 tip", "error", err) l.log.Error("Failed to query L1 tip", "error", err)
break return
} }
l.recordL1Tip(l1tip) l.recordL1Tip(l1tip)
...@@ -307,14 +316,13 @@ func (l *BatchSubmitter) loop() { ...@@ -307,14 +316,13 @@ func (l *BatchSubmitter) loop() {
txdata, err := l.state.TxData(l1tip.ID()) txdata, err := l.state.TxData(l1tip.ID())
if err == io.EOF { if err == io.EOF {
l.log.Trace("no transaction data available") l.log.Trace("no transaction data available")
break // local for loop break
} else if err != nil { } else if err != nil {
l.log.Error("unable to get tx data", "err", err) l.log.Error("unable to get tx data", "err", err)
break break
} }
// Record TX Status // Record TX Status
if receipt, err := l.sendTransaction(l.ctx, txdata.Bytes()); err != nil { if receipt, err := l.sendTransaction(ctx, txdata.Bytes()); err != nil {
l.recordFailedTx(txdata.ID(), err) l.recordFailedTx(txdata.ID(), err)
} else { } else {
l.recordConfirmedTx(txdata.ID(), receipt) l.recordConfirmedTx(txdata.ID(), receipt)
...@@ -328,11 +336,6 @@ func (l *BatchSubmitter) loop() { ...@@ -328,11 +336,6 @@ func (l *BatchSubmitter) loop() {
default: default:
} }
} }
case <-l.done:
return
}
}
} }
const networkTimeout = 2 * time.Second // How long a single network request can take. TODO: put in a config somewhere const networkTimeout = 2 * time.Second // How long a single network request can take. TODO: put in a config somewhere
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment