From 8b1cf69d50719a4f048436c5263077c35e47acc6 Mon Sep 17 00:00:00 2001 From: Jihoon Song Date: Sat, 30 Nov 2024 17:55:51 +0900 Subject: [PATCH] miner: add a public method to notify the inclusion list to payload --- miner/payload_building.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/miner/payload_building.go b/miner/payload_building.go index 25a3223f28..cd43b1f51a 100644 --- a/miner/payload_building.go +++ b/miner/payload_building.go @@ -80,6 +80,7 @@ type Payload struct { requests [][]byte fullFees *big.Int stop chan struct{} + inclusionList chan types.InclusionList lock sync.Mutex cond *sync.Cond } @@ -92,6 +93,7 @@ func newPayload(empty *types.Block, emptyRequests [][]byte, witness *stateless.W emptyRequests: emptyRequests, emptyWitness: witness, stop: make(chan struct{}), + inclusionList: make(chan types.InclusionList), } log.Info("Starting work on payload", "id", payload.id) payload.cond = sync.NewCond(&payload.lock) @@ -206,6 +208,13 @@ func (payload *Payload) ResolveFull() *engine.ExecutionPayloadEnvelope { return envelope } +func (payload *Payload) UpdateInclusionList(inclusionList types.InclusionList) { + payload.lock.Lock() + defer payload.lock.Unlock() + + payload.inclusionList <- inclusionList +} + // buildPayload builds the payload according to the provided parameters. func (miner *Miner) buildPayload(args *BuildPayloadArgs, witness bool) (*Payload, error) { // Build the initial version with no transaction included. It should be fast @@ -264,6 +273,8 @@ func (miner *Miner) buildPayload(args *BuildPayloadArgs, witness bool) (*Payload log.Info("Error while generating work", "id", payload.id, "err", r.err) } timer.Reset(miner.config.Recommit) + case fullParams.inclusionList = <-payload.inclusionList: + timer.Reset(0) case <-payload.stop: log.Info("Stopping work on payload", "id", payload.id, "reason", "delivery") return