diff --git a/tests/incentivization/test_poc_reputation.nim b/tests/incentivization/test_poc_reputation.nim index 5c0bdca0c..72333f101 100644 --- a/tests/incentivization/test_poc_reputation.nim +++ b/tests/incentivization/test_poc_reputation.nim @@ -6,7 +6,8 @@ import stew/byteutils, stint, strutils, - tests/testlib/testasync + tests/testlib/testasync, + libp2p/[peerid, crypto/crypto] import waku/[node/peer_manager, waku_core], @@ -15,16 +16,18 @@ import suite "Waku Incentivization PoC Reputation": var manager {.threadvar.}: ReputationManager + var peerId1 {.threadvar.}: PeerId setup: manager = ReputationManager.init() + peerId1 = PeerId.init(PrivateKey.random(ECDSA, (newRng())[]).tryGet()).tryGet() test "incentivization PoC: reputation: reputation table is empty after initialization": check manager.reputationOf.len == 0 test "incentivization PoC: reputation: set and get reputation": - manager.setReputation("peer1", some(true)) # Encodes GoodRep - check manager.getReputation("peer1") == some(true) + manager.setReputation(peerId1, some(true)) # Encodes GoodRep + check manager.getReputation(peerId1) == some(true) test "incentivization PoC: reputation: evaluate PushResponse valid": let validLightpushResponse = @@ -37,18 +40,14 @@ suite "Waku Incentivization PoC Reputation": check evaluateResponse(invalidLightpushResponse) == BadResponse test "incentivization PoC: reputation: updateReputationFromResponse valid": - let peerId = "peerWithValidResponse" let validResp = PushResponse(isSuccess: true, info: some("All good")) - manager.updateReputationFromResponse(peerId, validResp) - check manager.getReputation(peerId) == some(true) + manager.updateReputationFromResponse(peerId1, validResp) + check manager.getReputation(peerId1) == some(true) test "incentivization PoC: reputation: updateReputationFromResponse invalid": - let peerId = "peerWithInvalidResponse" let invalidResp = PushResponse(isSuccess: false, info: none(string)) - manager.updateReputationFromResponse(peerId, invalidResp) - check manager.getReputation(peerId) == some(false) + manager.updateReputationFromResponse(peerId1, invalidResp) + check manager.getReputation(peerId1) == some(false) test "incentivization PoC: reputation: default is None": - let unknownPeerId = "unknown_peer" - # The peer is not in the table yet - check manager.getReputation(unknownPeerId) == none(bool) + check manager.getReputation(peerId1) == none(bool) diff --git a/waku/incentivization/reputation_manager.nim b/waku/incentivization/reputation_manager.nim index 95de0a8cb..f911a5351 100644 --- a/waku/incentivization/reputation_manager.nim +++ b/waku/incentivization/reputation_manager.nim @@ -12,17 +12,17 @@ type # some(false) => BadRep # none(bool) => unknown / not set ReputationManager* = ref object - reputationOf*: Table[PeerID, Option[bool]] + reputationOf*: Table[PeerId, Option[bool]] proc init*(T: type ReputationManager): ReputationManager = - return ReputationManager(reputationOf: initTable[PeerID, Option[bool]]()) + return ReputationManager(reputationOf: initTable[PeerId, Option[bool]]()) proc setReputation*( - manager: var ReputationManager, peer: PeerID, repValue: Option[bool] + manager: var ReputationManager, peer: PeerId, repValue: Option[bool] ) = manager.reputationOf[peer] = repValue -proc getReputation*(manager: ReputationManager, peer: PeerID): Option[bool] = +proc getReputation*(manager: ReputationManager, peer: PeerId): Option[bool] = if peer in manager.reputationOf: result = manager.reputationOf[peer] else: @@ -37,7 +37,7 @@ proc evaluateResponse*(response: PushResponse): ResponseQuality = # Update reputation of the peer based on the quality of the response proc updateReputationFromResponse*( - manager: var ReputationManager, peer: PeerID, response: PushResponse + manager: var ReputationManager, peer: PeerId, response: PushResponse ) = let respQuality = evaluateResponse(response) case respQuality