mirror of
https://github.com/logos-storage/nim-mysticeti.git
synced 2026-01-02 13:43:09 +00:00
simplify Transaction dependency
This commit is contained in:
parent
030bbf3367
commit
7ee84f7b5c
@ -59,7 +59,3 @@ export signing.`$`
|
||||
import ./mysticeti/dependencies/hashing
|
||||
|
||||
export hashing.`$`
|
||||
|
||||
import ./mysticeti/dependencies/transacting
|
||||
|
||||
export transacting.Transaction
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
type
|
||||
Transaction*[Dependencies] = Dependencies.Transacting.Transaction
|
||||
Transacting*[Transaction] = object
|
||||
@ -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
|
||||
|
||||
@ -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*(
|
||||
|
||||
@ -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
|
||||
]
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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":
|
||||
|
||||
|
||||
@ -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]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user