@@ -1848,24 +1848,39 @@ func TestInclusionList(t *testing.T) {
18481848 ethservice .TxPool ().Add ([]* types.Transaction {validTx1 }, true )
18491849
18501850 for i , tt := range []* struct {
1851- name string
1852- inclusionList types.InclusionList
1853- expectedStatus string
1851+ name string
1852+ inclusionList types.InclusionList
1853+ updateInclusionList bool
1854+ expectedTransactions int
1855+ expectedStatus string
18541856 }{
18551857 {
1856- name : "Block contains all transactions in the inclusion list" ,
1857- inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 }),
1858- expectedStatus : engine .VALID ,
1858+ name : "Payload misses one transaction in the inclusion list, which could have been included" ,
1859+ inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 , validTx2 }),
1860+ updateInclusionList : false ,
1861+ expectedTransactions : 1 ,
1862+ expectedStatus : engine .INVALID_INCLUSION_LIST ,
18591863 },
18601864 {
1861- name : "Block misses one transaction in the inclusion list, which could have been included" ,
1862- inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 , validTx2 }),
1863- expectedStatus : engine .INVALID_INCLUSION_LIST ,
1865+ name : "All transactions in the inclusion list are already included in the payload before update" ,
1866+ inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 }),
1867+ updateInclusionList : true ,
1868+ expectedTransactions : 1 ,
1869+ expectedStatus : engine .VALID ,
18641870 },
18651871 {
1866- name : "Block misses only invalid transactions in the inclusion list" ,
1867- inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 , invalidTx }),
1868- expectedStatus : engine .VALID ,
1872+ name : "All transactions in the inclusion list that are not included in the payload before update" ,
1873+ inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx2 }),
1874+ updateInclusionList : true ,
1875+ expectedTransactions : 2 , // `validTx1` from the pool and `validTx2` from the inclusion list
1876+ expectedStatus : engine .VALID ,
1877+ },
1878+ {
1879+ name : "Payload includes all valid transactions in the inclusion list" ,
1880+ inclusionList : types .TransactionsToInclusionList ([]* types.Transaction {validTx1 , validTx2 , invalidTx }),
1881+ updateInclusionList : true ,
1882+ expectedTransactions : 2 ,
1883+ expectedStatus : engine .VALID ,
18691884 },
18701885 } {
18711886 t .Run (tt .name , func (t * testing.T ) {
@@ -1896,14 +1911,22 @@ func TestInclusionList(t *testing.T) {
18961911 if resp .PayloadStatus .Status != engine .VALID {
18971912 t .Fatalf ("error preparing payload, invalid status=%v" , resp .PayloadStatus .Status )
18981913 }
1914+ time .Sleep (250 * time .Millisecond )
1915+
1916+ if tt .updateInclusionList {
1917+ // Update the payload with the inclusion list.
1918+ api .UpdatePayloadWithInclusionListV1 (* resp .PayloadID , tt .inclusionList )
1919+ time .Sleep (250 * time .Millisecond )
1920+ }
18991921
19001922 // Get the payload.
19011923 if payload , err = api .getPayload (* resp .PayloadID , true ); err != nil {
19021924 t .Fatalf ("error getting payload, err=%v" , err )
19031925 }
1904- // The payload is expected to have 1 transaction, which is `validTx1`.
1905- if len (payload .ExecutionPayload .Transactions ) != 1 {
1906- t .Fatalf ("expected 1 transaction but got %d" , len (payload .ExecutionPayload .Transactions ))
1926+
1927+ // Verify if the block contains all valid transactions in the inclusion list.
1928+ if len (payload .ExecutionPayload .Transactions ) != tt .expectedTransactions {
1929+ t .Fatalf ("expected %d transactions but got %d" , tt .expectedTransactions , len (payload .ExecutionPayload .Transactions ))
19071930 }
19081931
19091932 // Verify if the block satisfies the inclusion list constraints.
0 commit comments