From 824d3a2f3b423950e50a34d5dbe9635c2f79fe9f Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Thu, 28 Nov 2024 14:24:35 +0100 Subject: [PATCH] raise assertion in Validator.new reason: it's a programmer error when the identity doesn't match the committee, not a runtime error --- mysticeti/validator.nim | 6 +++--- tests/mysticeti/simulator.nim | 2 +- tests/mysticeti/validator/testValidator.nim | 2 +- tests/mysticeti/validator/testValidatorNetwork.nim | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mysticeti/validator.nim b/mysticeti/validator.nim index 320ee88..9fa334a 100644 --- a/mysticeti/validator.nim +++ b/mysticeti/validator.nim @@ -18,10 +18,10 @@ func new*[Dependencies]( _: type Validator[Dependencies], identity: Dependencies.Identity, committee: Committee[Dependencies.Identifier] -): ?!Validator[Dependencies] = +): Validator[Dependencies] = without membership =? committee.membership(identity.identifier): - return failure "identity is not a member of the committee" - success Validator[Dependencies]( + raiseAssert "identity is not a member of the committee" + Validator[Dependencies]( identity: identity, committee: committee, membership: membership, diff --git a/tests/mysticeti/simulator.nim b/tests/mysticeti/simulator.nim index 35c7f5e..d4594c4 100644 --- a/tests/mysticeti/simulator.nim +++ b/tests/mysticeti/simulator.nim @@ -16,7 +16,7 @@ proc init*(_: type NetworkSimulator, numberOfValidators = 4): NetworkSimulator = let identities = newSeqWith(numberOfValidators, Identity.init()) let stakes = identities.mapIt( (it.identifier, 1/numberOfValidators) ) let committee = Committee.new(stakes) - let validators = identities.mapIt(!Validator.new(it, committee)) + let validators = identities.mapIt(Validator.new(it, committee)) NetworkSimulator(identities: identities, validators: validators) func identities*(simulator: NetworkSimulator): seq[Identity] = diff --git a/tests/mysticeti/validator/testValidator.nim b/tests/mysticeti/validator/testValidator.nim index 540818f..f7c8f25 100644 --- a/tests/mysticeti/validator/testValidator.nim +++ b/tests/mysticeti/validator/testValidator.nim @@ -13,7 +13,7 @@ suite "Validator": setup: let identity = Identity.init() let committee = Committee.new({identity.identifier: 1/1}) - validator = !Validator.new(identity, committee) + validator = Validator.new(identity, committee) test "starts at round 0": check validator.round == 0 diff --git a/tests/mysticeti/validator/testValidatorNetwork.nim b/tests/mysticeti/validator/testValidatorNetwork.nim index b9fe5e5..aa77e5a 100644 --- a/tests/mysticeti/validator/testValidatorNetwork.nim +++ b/tests/mysticeti/validator/testValidatorNetwork.nim @@ -69,7 +69,7 @@ suite "Validator Network": test "refuses proposals that are not signed by a committee member": let otherIdentity = Identity.example let otherCommittee = Committee.new({otherIdentity.identifier: 1/1}) - let otherValidator = !Validator.new(otherIdentity, otherCommittee) + let otherValidator = Validator.new(otherIdentity, otherCommittee) let proposal = !otherValidator.propose(seq[Transaction].example) let checked = simulator.validators[0].check(proposal) check checked.verdict == BlockVerdict.invalid