34
34
from hathor .indexes import IndexesManager , MemoryIndexesManager , RocksDBIndexesManager
35
35
from hathor .manager import HathorManager
36
36
from hathor .mining .cpu_mining_service import CpuMiningService
37
+ from hathor .p2p import P2PDependencies
37
38
from hathor .p2p .manager import ConnectionsManager
38
39
from hathor .p2p .peer import PrivatePeer
39
40
from hathor .pubsub import PubSubManager
@@ -64,12 +65,10 @@ class SyncSupportLevel(IntEnum):
64
65
@classmethod
65
66
def add_factories (
66
67
cls ,
67
- settings : HathorSettingsType ,
68
68
p2p_manager : ConnectionsManager ,
69
+ dependencies : P2PDependencies ,
69
70
sync_v1_support : 'SyncSupportLevel' ,
70
71
sync_v2_support : 'SyncSupportLevel' ,
71
- vertex_parser : VertexParser ,
72
- vertex_handler : VertexHandler ,
73
72
) -> None :
74
73
"""Adds the sync factory to the manager according to the support level."""
75
74
from hathor .p2p .sync_v1 .factory import SyncV11Factory
@@ -78,18 +77,12 @@ def add_factories(
78
77
79
78
# sync-v1 support:
80
79
if sync_v1_support > cls .UNAVAILABLE :
81
- p2p_manager .add_sync_factory (SyncVersion .V1_1 , SyncV11Factory (p2p_manager , vertex_parser = vertex_parser ))
80
+ p2p_manager .add_sync_factory (SyncVersion .V1_1 , SyncV11Factory (dependencies ))
82
81
if sync_v1_support is cls .ENABLED :
83
82
p2p_manager .enable_sync_version (SyncVersion .V1_1 )
84
83
# sync-v2 support:
85
84
if sync_v2_support > cls .UNAVAILABLE :
86
- sync_v2_factory = SyncV2Factory (
87
- settings ,
88
- p2p_manager ,
89
- vertex_parser = vertex_parser ,
90
- vertex_handler = vertex_handler ,
91
- )
92
- p2p_manager .add_sync_factory (SyncVersion .V2 , sync_v2_factory )
85
+ p2p_manager .add_sync_factory (SyncVersion .V2 , SyncV2Factory (dependencies ))
93
86
if sync_v2_support is cls .ENABLED :
94
87
p2p_manager .enable_sync_version (SyncVersion .V2 )
95
88
@@ -232,7 +225,6 @@ def build(self) -> BuildArtifacts:
232
225
vertex_handler = self ._get_or_create_vertex_handler ()
233
226
vertex_parser = self ._get_or_create_vertex_parser ()
234
227
poa_block_producer = self ._get_or_create_poa_block_producer ()
235
- capabilities = self ._get_or_create_capabilities ()
236
228
237
229
if self ._enable_address_index :
238
230
indexes .enable_address_index (pubsub )
@@ -264,7 +256,6 @@ def build(self) -> BuildArtifacts:
264
256
wallet = wallet ,
265
257
rng = self ._rng ,
266
258
checkpoints = self ._checkpoints ,
267
- capabilities = capabilities ,
268
259
environment_info = get_environment_info (self ._cmdline , str (peer .id )),
269
260
bit_signaling_service = bit_signaling_service ,
270
261
verification_service = verification_service ,
@@ -416,25 +407,31 @@ def _get_or_create_p2p_manager(self) -> ConnectionsManager:
416
407
return self ._p2p_manager
417
408
418
409
enable_ssl = True
419
- reactor = self ._get_reactor ()
420
410
my_peer = self ._get_peer ()
421
411
422
- self ._p2p_manager = ConnectionsManager (
412
+ dependencies = P2PDependencies (
413
+ reactor = self ._get_reactor (),
423
414
settings = self ._get_or_create_settings (),
424
- reactor = reactor ,
415
+ vertex_parser = self ._get_or_create_vertex_parser (),
416
+ tx_storage = self ._get_or_create_tx_storage (),
417
+ vertex_handler = self ._get_or_create_vertex_handler (),
418
+ verification_service = self ._get_or_create_verification_service (),
419
+ capabilities = self ._get_or_create_capabilities (),
420
+ whitelist_only = False ,
421
+ )
422
+
423
+ self ._p2p_manager = ConnectionsManager (
424
+ dependencies = dependencies ,
425
425
my_peer = my_peer ,
426
426
pubsub = self ._get_or_create_pubsub (),
427
427
ssl = enable_ssl ,
428
- whitelist_only = False ,
429
428
rng = self ._rng ,
430
429
)
431
430
SyncSupportLevel .add_factories (
432
- self ._get_or_create_settings (),
433
431
self ._p2p_manager ,
432
+ dependencies ,
434
433
self ._sync_v1_support ,
435
434
self ._sync_v2_support ,
436
- self ._get_or_create_vertex_parser (),
437
- self ._get_or_create_vertex_handler (),
438
435
)
439
436
return self ._p2p_manager
440
437
0 commit comments