add optional reputation manager to Lightpush client initialization

This commit is contained in:
Sergei Tikhomirov 2025-02-27 16:42:23 +01:00
parent 64498403d3
commit ef67d542ab
2 changed files with 11 additions and 6 deletions

View File

@ -27,5 +27,7 @@ proc newTestWakuLightpushNode*(
proc newTestWakuLightpushClient*(switch: Switch): WakuLightPushClient =
let peerManager = PeerManager.new(switch)
let reputationManager = ReputationManager.new()
WakuLightPushClient.new(peerManager, reputationManager, rng)
var reputationManager = none(ReputationManager)
when defined(reputation):
reputationManager = some(ReputationManager.new())
WakuLightPushClient.new(peerManager, rng, reputationManager)

View File

@ -26,12 +26,15 @@ type WakuLightPushClient* = ref object
proc new*(
T: type WakuLightPushClient,
peerManager: PeerManager,
reputationManager: ReputationManager,
rng: ref rand.HmacDrbgContext,
reputationManager: Option[ReputationManager] = none(ReputationManager),
): T =
WakuLightPushClient(
peerManager: peerManager, reputationManager: reputationManager, rng: rng
)
if reputationManager.isSome:
WakuLightPushClient(
peerManager: peerManager, rng: rng, reputationManager: reputationManager.get()
)
else:
WakuLightPushClient(peerManager: peerManager, rng: rng)
proc addPublishObserver*(wl: WakuLightPushClient, obs: PublishObserver) =
wl.publishObservers.add(obs)