@@ -69,26 +69,28 @@ func (args *BuildPayloadArgs) Id() engine.PayloadID {
69
69
// the revenue. Therefore, the empty-block here is always available and full-block
70
70
// will be set/updated afterwards.
71
71
type Payload struct {
72
- id engine.PayloadID
73
- empty * types.Block
74
- emptyWitness * stateless.Witness
75
- full * types.Block
76
- fullWitness * stateless.Witness
77
- sidecars []* types.BlobTxSidecar
78
- requests [][]byte
79
- fullFees * big.Int
80
- stop chan struct {}
81
- lock sync.Mutex
82
- cond * sync.Cond
72
+ id engine.PayloadID
73
+ empty * types.Block
74
+ emptyWitness * stateless.Witness
75
+ full * types.Block
76
+ fullWitness * stateless.Witness
77
+ sidecars []* types.BlobTxSidecar
78
+ emptyRequests [][]byte
79
+ requests [][]byte
80
+ fullFees * big.Int
81
+ stop chan struct {}
82
+ lock sync.Mutex
83
+ cond * sync.Cond
83
84
}
84
85
85
86
// newPayload initializes the payload object.
86
- func newPayload (empty * types.Block , witness * stateless.Witness , id engine.PayloadID ) * Payload {
87
+ func newPayload (empty * types.Block , emptyRequests [][] byte , witness * stateless.Witness , id engine.PayloadID ) * Payload {
87
88
payload := & Payload {
88
- id : id ,
89
- empty : empty ,
90
- emptyWitness : witness ,
91
- stop : make (chan struct {}),
89
+ id : id ,
90
+ empty : empty ,
91
+ emptyRequests : emptyRequests ,
92
+ emptyWitness : witness ,
93
+ stop : make (chan struct {}),
92
94
}
93
95
log .Info ("Starting work on payload" , "id" , payload .id )
94
96
payload .cond = sync .NewCond (& payload .lock )
@@ -143,16 +145,14 @@ func (payload *Payload) Resolve() *engine.ExecutionPayloadEnvelope {
143
145
close (payload .stop )
144
146
}
145
147
if payload .full != nil {
146
- envelope := engine .BlockToExecutableData (payload .full , payload .fullFees , payload .sidecars )
147
- envelope .Requests = payload .requests
148
+ envelope := engine .BlockToExecutableData (payload .full , payload .fullFees , payload .sidecars , payload .emptyRequests )
148
149
if payload .fullWitness != nil {
149
150
envelope .Witness = new (hexutil.Bytes )
150
151
* envelope .Witness , _ = rlp .EncodeToBytes (payload .fullWitness ) // cannot fail
151
152
}
152
153
return envelope
153
154
}
154
- envelope := engine .BlockToExecutableData (payload .empty , big .NewInt (0 ), nil )
155
- envelope .Requests = payload .requests
155
+ envelope := engine .BlockToExecutableData (payload .empty , big .NewInt (0 ), nil , payload .emptyRequests )
156
156
if payload .emptyWitness != nil {
157
157
envelope .Witness = new (hexutil.Bytes )
158
158
* envelope .Witness , _ = rlp .EncodeToBytes (payload .emptyWitness ) // cannot fail
@@ -166,8 +166,7 @@ func (payload *Payload) ResolveEmpty() *engine.ExecutionPayloadEnvelope {
166
166
payload .lock .Lock ()
167
167
defer payload .lock .Unlock ()
168
168
169
- envelope := engine .BlockToExecutableData (payload .empty , big .NewInt (0 ), nil )
170
- envelope .Requests = payload .requests
169
+ envelope := engine .BlockToExecutableData (payload .empty , big .NewInt (0 ), nil , payload .emptyRequests )
171
170
if payload .emptyWitness != nil {
172
171
envelope .Witness = new (hexutil.Bytes )
173
172
* envelope .Witness , _ = rlp .EncodeToBytes (payload .emptyWitness ) // cannot fail
@@ -198,8 +197,7 @@ func (payload *Payload) ResolveFull() *engine.ExecutionPayloadEnvelope {
198
197
default :
199
198
close (payload .stop )
200
199
}
201
- envelope := engine .BlockToExecutableData (payload .full , payload .fullFees , payload .sidecars )
202
- envelope .Requests = payload .requests
200
+ envelope := engine .BlockToExecutableData (payload .full , payload .fullFees , payload .sidecars , payload .requests )
203
201
if payload .fullWitness != nil {
204
202
envelope .Witness = new (hexutil.Bytes )
205
203
* envelope .Witness , _ = rlp .EncodeToBytes (payload .fullWitness ) // cannot fail
@@ -227,7 +225,7 @@ func (miner *Miner) buildPayload(args *BuildPayloadArgs, witness bool) (*Payload
227
225
return nil , empty .err
228
226
}
229
227
// Construct a payload object for return.
230
- payload := newPayload (empty .block , empty .witness , args .Id ())
228
+ payload := newPayload (empty .block , empty .requests , empty . witness , args .Id ())
231
229
232
230
// Spin up a routine for updating the payload in background. This strategy
233
231
// can maximum the revenue for including transactions with highest fee.
0 commit comments