simplify Transaction dependency

This commit is contained in:
Mark Spanbroek 2024-11-21 14:30:40 +01:00
parent 030bbf3367
commit 7ee84f7b5c
13 changed files with 16 additions and 29 deletions

View File

@ -59,7 +59,3 @@ export signing.`$`
import ./mysticeti/dependencies/hashing
export hashing.`$`
import ./mysticeti/dependencies/transacting
export transacting.Transaction

View File

@ -8,7 +8,7 @@ type
author: CommitteeMember
round: uint64
parents: seq[BlockId[Dependencies]]
transactions: seq[Transaction[Dependencies]]
transactions: seq[Dependencies.Transaction]
func calculateId(blck: var Block) =
type Dependencies = Block.Dependencies
@ -21,7 +21,7 @@ func new*[Dependencies](
author: CommitteeMember,
round: uint64,
parents: seq[BlockId[Dependencies]],
transactions: seq[Transaction[Dependencies]]
transactions: seq[Dependencies.Transaction]
): auto =
var blck = Block[Dependencies](
author: author,

View File

@ -1,14 +1,12 @@
import ./dependencies/hashing
import ./dependencies/signing
import ./dependencies/transacting
export hashing
export signing
export transacting
type Dependencies*[
Hashing,
Signing,
Transacting,
Transaction,
Serialization
] = object

View File

@ -1,3 +0,0 @@
type
Transaction*[Dependencies] = Dependencies.Transacting.Transaction
Transacting*[Transaction] = object

View File

@ -75,7 +75,7 @@ func addBlock(validator: Validator, signedBlock: SignedBlock) =
validator.updateSkipped(signedBlock.blck)
validator.updateCertified(signedBlock.blck)
proc propose*(validator: Validator, transactions: seq[Transaction]): auto =
proc propose*[Transaction](validator: Validator, transactions: seq[Transaction]): auto =
type Block = blocks.Block[Validator.Dependencies]
type SignedBlock = blocks.SignedBlock[Validator.Dependencies]
let round = validator.rounds.latest

View File

@ -7,9 +7,6 @@ import mysticeti/dependencies
proc example*(T: type SomeInteger): T =
rand(T)
proc example*(T: type Transaction): T =
T.init(T.Dependencies.Transacting.Transaction.example)
proc example*(T: type Identity): T =
T.init()
@ -33,8 +30,9 @@ proc example*(
author = CommitteeMember.example,
round = uint64.example
): T =
type Transaction = T.Dependencies.Transaction
let parents = seq[BlockId[T.Dependencies]].example
let transactions = seq[Transaction[T.Dependencies]].example
let transactions = seq[Transaction].example
T.new(author, round, parents, transactions)
proc example*(

View File

@ -1,17 +1,17 @@
import mysticeti/dependencies
import ./mocks/signing
import ./mocks/hashing
import ./mocks/transacting
import ./mocks/transaction
import ./mocks/serialization
export signing
export hashing
export transacting
export transaction
export serialization
type MockDependencies* = Dependencies[
MockHashing,
MockSigning,
MockTransacting,
MockTransaction,
MockSerialization
]

View File

@ -1,6 +1,6 @@
import std/json
import mysticeti
import ./transacting
import ./transaction
type MockSerialization* = object
@ -14,7 +14,7 @@ proc `%`*(id: BlockId): JsonNode =
"hash": $id.hash
}
proc `%`*(transaction: MockTransacting.Transaction): JsonNode =
proc `%`*(transaction: MockTransaction): JsonNode =
%*{
"nonce": transaction.nonce
}

View File

@ -1,10 +1,8 @@
import std/random
import mysticeti/dependencies/transacting
type
MockTransaction = object
MockTransaction* = object
nonce: int
MockTransacting* = Transacting[MockTransaction]
proc nonce*(transaction: MockTransaction): int =
transaction.nonce

View File

@ -5,7 +5,7 @@ import mysticeti/blocks
type Validator = mysticeti.Validator[MockDependencies]
type Committee = mysticeti.Committee[MockDependencies]
type Identity = mysticeti.Identity[MockDependencies]
type Transaction = mysticeti.Transaction[MockDependencies]
type Transaction = MockDependencies.Transaction
type SignedBlock = blocks.SignedBlock[MockDependencies]
type NetworkSimulator* = object

View File

@ -8,7 +8,7 @@ suite "Blocks":
type Block = mysticeti.Block[MockDependencies]
type BlockId = mysticeti.BlockId[MockDependencies]
type Identity = mysticeti.Identity[MockDependencies]
type Transaction = mysticeti.Transaction[MockDependencies]
type Transaction = MockDependencies.Transaction
type Hash = hashing.Hash[MockDependencies]
type Serialization = MockDependencies.Serialization

View File

@ -4,7 +4,7 @@ import mysticeti
type Validator = mysticeti.Validator[MockDependencies]
type Identity = mysticeti.Identity[MockDependencies]
type Committee = mysticeti.Committee[MockDependencies]
type Transaction = mysticeti.Transaction[MockDependencies]
type Transaction = MockDependencies.Transaction
suite "Validator":

View File

@ -10,7 +10,7 @@ suite "Validator Network":
type Validator = mysticeti.Validator[MockDependencies]
type Committee = mysticeti.Committee[MockDependencies]
type Identity = mysticeti.Identity[MockDependencies]
type Transaction = mysticeti.Transaction[MockDependencies]
type Transaction = MockDependencies.Transaction
type Block = blocks.Block[MockDependencies]
type BlockId = blocks.BlockId[MockDependencies]
type Hash = hashing.Hash[MockDependencies]