diff --git a/mysticeti/dependencies.nim b/mysticeti/dependencies.nim index 7999ea9..7fcc204 100644 --- a/mysticeti/dependencies.nim +++ b/mysticeti/dependencies.nim @@ -1,6 +1,5 @@ type Dependencies*[ Block, - Hash, Identifier, Signature ] = object diff --git a/mysticeti/validator.nim b/mysticeti/validator.nim index 99bf75b..3267986 100644 --- a/mysticeti/validator.nim +++ b/mysticeti/validator.nim @@ -84,7 +84,9 @@ func addBlock(validator: Validator, signedBlock: SignedBlock) = func parentBlocks*(validator: Validator): auto = mixin id - var parents: seq[BlockId[Validator.Dependencies.Hash]] + type Block = Validator.Dependencies.Block + type BlockId = typeof(Block.default.id) + var parents: seq[BlockId] if previous =? validator.rounds.latest.previous: for slot in previous.slots: if slot.proposals.len == 1: @@ -93,8 +95,9 @@ func parentBlocks*(validator: Validator): auto = func check*(validator: Validator, signed: SignedBlock): auto = mixin id - type BlockCheck = checks.BlockCheck[SignedBlock.Dependencies] - type BlockId = blocks.BlockId[SignedBlock.Dependencies.Hash] + type BlockCheck = checks.BlockCheck[Validator.Dependencies] + type Block = Validator.Dependencies.Block + type BlockId = typeof(Block.default.id) without member =? validator.committee.membership(signed.signer): return BlockCheck.invalid("block is not signed by a committee member") if member != signed.blck.author: diff --git a/mysticeti/validator/checks.nim b/mysticeti/validator/checks.nim index 8c5e05f..8a42377 100644 --- a/mysticeti/validator/checks.nim +++ b/mysticeti/validator/checks.nim @@ -11,7 +11,7 @@ type of invalid: reason: string of incomplete: - missing: seq[BlockId[Dependencies.Hash]] + missing: seq[typeof(Dependencies.Block.default.id)] of correct: blck: CorrectBlock[Dependencies] CorrectBlock*[Dependencies] = distinct SignedBlock[Dependencies] diff --git a/mysticeti/validator/slots.nim b/mysticeti/validator/slots.nim index 58ca9b3..4eda08c 100644 --- a/mysticeti/validator/slots.nim +++ b/mysticeti/validator/slots.nim @@ -11,7 +11,7 @@ type slot: ProposerSlot[Dependencies] signedBlock: SignedBlock[Dependencies] certifiedBy: Voting - certificates: seq[BlockId[Dependencies.Hash]] + certificates: seq[typeof(Dependencies.Block.default.id)] SlotStatus* {.pure.} = enum undecided skip diff --git a/tests/mysticeti/mocks.nim b/tests/mysticeti/mocks.nim index dca1ae2..f6c5cf5 100644 --- a/tests/mysticeti/mocks.nim +++ b/tests/mysticeti/mocks.nim @@ -11,7 +11,6 @@ export blck type MockDependencies* = Dependencies[ MockBlock, - MockHash, MockIdentifier, MockSignature ] diff --git a/tests/mysticeti/validator/testSlots.nim b/tests/mysticeti/validator/testSlots.nim index fa49aa5..b667b04 100644 --- a/tests/mysticeti/validator/testSlots.nim +++ b/tests/mysticeti/validator/testSlots.nim @@ -4,7 +4,7 @@ import mysticeti/validator/slots suite "Proposer Slots": - type BlockId = mysticeti.BlockId[MockDependencies.Hash] + type BlockId = mysticeti.BlockId[MockHash] type SignedBlock = mysticeti.SignedBlock[MockDependencies] type Proposal = slots.Proposal[MockDependencies] type ProposerSlot = slots.ProposerSlot[MockDependencies] diff --git a/tests/mysticeti/validator/testValidatorNetwork.nim b/tests/mysticeti/validator/testValidatorNetwork.nim index fcf08cf..18bddc8 100644 --- a/tests/mysticeti/validator/testValidatorNetwork.nim +++ b/tests/mysticeti/validator/testValidatorNetwork.nim @@ -9,8 +9,8 @@ suite "Validator Network": type Transaction = MockTransaction type Block = MockBlock type SignedBlock = blocks.SignedBlock[MockDependencies] - type BlockId = blocks.BlockId[MockDependencies.Hash] - type Hash = MockDependencies.Hash + type BlockId = blocks.BlockId[MockHash] + type Hash = MockHash var simulator: NetworkSimulator