@@ -1848,24 +1848,39 @@ func TestInclusionList(t *testing.T) {
1848
1848
ethservice .TxPool ().Add ([]* types.Transaction {validTx1 }, true )
1849
1849
1850
1850
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
1854
1856
}{
1855
1857
{
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 ,
1859
1863
},
1860
1864
{
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 ,
1864
1870
},
1865
1871
{
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 ,
1869
1884
},
1870
1885
} {
1871
1886
t .Run (tt .name , func (t * testing.T ) {
@@ -1896,14 +1911,22 @@ func TestInclusionList(t *testing.T) {
1896
1911
if resp .PayloadStatus .Status != engine .VALID {
1897
1912
t .Fatalf ("error preparing payload, invalid status=%v" , resp .PayloadStatus .Status )
1898
1913
}
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
+ }
1899
1921
1900
1922
// Get the payload.
1901
1923
if payload , err = api .getPayload (* resp .PayloadID , true ); err != nil {
1902
1924
t .Fatalf ("error getting payload, err=%v" , err )
1903
1925
}
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 ))
1907
1930
}
1908
1931
1909
1932
// Verify if the block satisfies the inclusion list constraints.
0 commit comments