@@ -813,7 +813,8 @@ mod tests {
813
813
use crate :: types:: { EnrAttestationBitfield , EnrSyncCommitteeBitfield } ;
814
814
use types:: {
815
815
blob_sidecar:: BlobIdentifier , BeaconBlock , BeaconBlockAltair , BeaconBlockBase ,
816
- BeaconBlockBellatrix , EmptyBlock , Epoch , FullPayload , Signature , Slot ,
816
+ BeaconBlockBellatrix , DataColumnIdentifier , EmptyBlock , Epoch , FullPayload , Signature ,
817
+ Slot ,
817
818
} ;
818
819
819
820
type Spec = types:: MainnetEthSpec ;
@@ -860,6 +861,10 @@ mod tests {
860
861
Arc :: new ( BlobSidecar :: empty ( ) )
861
862
}
862
863
864
+ fn empty_data_column_sidecar ( ) -> Arc < DataColumnSidecar < Spec > > {
865
+ Arc :: new ( DataColumnSidecar :: empty ( ) )
866
+ }
867
+
863
868
/// Bellatrix block with length < max_rpc_size.
864
869
fn bellatrix_block_small (
865
870
fork_context : & ForkContext ,
@@ -921,6 +926,27 @@ mod tests {
921
926
}
922
927
}
923
928
929
+ fn dcbrange_request ( ) -> DataColumnsByRangeRequest {
930
+ DataColumnsByRangeRequest {
931
+ start_slot : 0 ,
932
+ count : 10 ,
933
+ columns : vec ! [ 1 , 2 , 3 ] ,
934
+ }
935
+ }
936
+
937
+ fn dcbroot_request ( spec : & ChainSpec ) -> DataColumnsByRootRequest {
938
+ DataColumnsByRootRequest {
939
+ data_column_ids : RuntimeVariableList :: new (
940
+ vec ! [ DataColumnIdentifier {
941
+ block_root: Hash256 :: zero( ) ,
942
+ index: 0 ,
943
+ } ] ,
944
+ spec. max_request_data_column_sidecars as usize ,
945
+ )
946
+ . unwrap ( ) ,
947
+ }
948
+ }
949
+
924
950
fn bbroot_request_v1 ( spec : & ChainSpec ) -> BlocksByRootRequest {
925
951
BlocksByRootRequest :: new_v1 ( vec ! [ Hash256 :: zero( ) ] , spec)
926
952
}
@@ -1210,6 +1236,34 @@ mod tests {
1210
1236
) ,
1211
1237
Ok ( Some ( RPCResponse :: BlobsByRoot ( empty_blob_sidecar( ) ) ) ) ,
1212
1238
) ;
1239
+
1240
+ assert_eq ! (
1241
+ encode_then_decode_response(
1242
+ SupportedProtocol :: DataColumnsByRangeV1 ,
1243
+ RPCCodedResponse :: Success ( RPCResponse :: DataColumnsByRange (
1244
+ empty_data_column_sidecar( )
1245
+ ) ) ,
1246
+ ForkName :: Deneb ,
1247
+ & chain_spec
1248
+ ) ,
1249
+ Ok ( Some ( RPCResponse :: DataColumnsByRange (
1250
+ empty_data_column_sidecar( )
1251
+ ) ) ) ,
1252
+ ) ;
1253
+
1254
+ assert_eq ! (
1255
+ encode_then_decode_response(
1256
+ SupportedProtocol :: DataColumnsByRootV1 ,
1257
+ RPCCodedResponse :: Success ( RPCResponse :: DataColumnsByRoot (
1258
+ empty_data_column_sidecar( )
1259
+ ) ) ,
1260
+ ForkName :: Deneb ,
1261
+ & chain_spec
1262
+ ) ,
1263
+ Ok ( Some ( RPCResponse :: DataColumnsByRoot (
1264
+ empty_data_column_sidecar( )
1265
+ ) ) ) ,
1266
+ ) ;
1213
1267
}
1214
1268
1215
1269
// Test RPCResponse encoding/decoding for V1 messages
@@ -1563,6 +1617,8 @@ mod tests {
1563
1617
OutboundRequest :: MetaData ( MetadataRequest :: new_v1 ( ) ) ,
1564
1618
OutboundRequest :: BlobsByRange ( blbrange_request ( ) ) ,
1565
1619
OutboundRequest :: BlobsByRoot ( blbroot_request ( & chain_spec) ) ,
1620
+ OutboundRequest :: DataColumnsByRange ( dcbrange_request ( ) ) ,
1621
+ OutboundRequest :: DataColumnsByRoot ( dcbroot_request ( & chain_spec) ) ,
1566
1622
OutboundRequest :: MetaData ( MetadataRequest :: new_v2 ( ) ) ,
1567
1623
] ;
1568
1624
0 commit comments