@@ -773,7 +773,10 @@ pub(super) async fn run<TPlat: PlatformRef>(
773773 if matches ! ( version, network_service:: StatementProtocolVersion :: V2 ) {
774774 me. v2_statement_peers . insert ( peer_id. clone ( ) ) ;
775775 if !me. statement_subscriptions . is_empty ( ) {
776- let spc = me. statement_protocol_config . as_ref ( ) . expect ( "V2 peers require statement protocol; qed" ) ;
776+ let spc = me
777+ . statement_protocol_config
778+ . as_ref ( )
779+ . expect ( "V2 peers require statement protocol; qed" ) ;
777780 let combined_filter = build_combined_affinity_filter (
778781 & me. statement_subscriptions ,
779782 spc. bloom_seed ( ) ,
@@ -2920,11 +2923,14 @@ pub(super) async fn run<TPlat: PlatformRef>(
29202923 . insert ( subscription_id. clone ( ) , filter) ;
29212924
29222925 if !me. v2_statement_peers . is_empty ( ) {
2923- let fpr = me. statement_protocol_config . as_ref ( ) . expect ( "V2 peers require statement protocol; qed" ) . false_positive_rate ( ) ;
2926+ let spc = me
2927+ . statement_protocol_config
2928+ . as_ref ( )
2929+ . expect ( "V2 peers require statement protocol; qed" ) ;
29242930 let combined_filter = build_combined_affinity_filter (
29252931 & me. statement_subscriptions ,
2926- me . bloom_seed ,
2927- fpr ,
2932+ spc . bloom_seed ( ) ,
2933+ spc . false_positive_rate ( ) ,
29282934 ) ;
29292935 for peer_id in me. v2_statement_peers . clone ( ) {
29302936 let _ = me
@@ -2949,11 +2955,14 @@ pub(super) async fn run<TPlat: PlatformRef>(
29492955 let existed = me. statement_subscriptions . remove ( & subscription) . is_some ( ) ;
29502956
29512957 if existed && !me. v2_statement_peers . is_empty ( ) {
2952- let fpr = me. statement_protocol_config . as_ref ( ) . expect ( "V2 peers require statement protocol; qed" ) . false_positive_rate ( ) ;
2958+ let spc = me
2959+ . statement_protocol_config
2960+ . as_ref ( )
2961+ . expect ( "V2 peers require statement protocol; qed" ) ;
29532962 let combined_filter = build_combined_affinity_filter (
29542963 & me. statement_subscriptions ,
2955- me . bloom_seed ,
2956- fpr ,
2964+ spc . bloom_seed ( ) ,
2965+ spc . false_positive_rate ( ) ,
29572966 ) ;
29582967 for peer_id in me. v2_statement_peers . clone ( ) {
29592968 let _ = me
@@ -6107,10 +6116,6 @@ fn build_combined_affinity_filter(
61076116) -> network_service:: AffinityFilter {
61086117 use smoldot:: json_rpc:: methods:: TopicFilter ;
61096118
6110- if subscriptions. is_empty ( ) {
6111- return network_service:: AffinityFilter :: new ( seed, false_positive_rate, 1 ) ;
6112- }
6113-
61146119 let mut all_topics: Vec < & [ u8 ; 32 ] > = Vec :: new ( ) ;
61156120
61166121 for filter in subscriptions. values ( ) {
@@ -6124,10 +6129,5 @@ fn build_combined_affinity_filter(
61246129 }
61256130 }
61266131
6127- let count = all_topics. len ( ) . max ( 1 ) ;
6128- let mut affinity = network_service:: AffinityFilter :: new ( seed, false_positive_rate, count) ;
6129- for topic in all_topics {
6130- affinity. insert ( topic) ;
6131- }
6132- affinity
6132+ network_service:: AffinityFilter :: from_topics ( all_topics. into_iter ( ) , seed, false_positive_rate)
61336133}
0 commit comments