@@ -2,8 +2,7 @@ package io.iohk.ethereum.testmode
2
2
3
3
import akka .util .ByteString
4
4
import io .iohk .ethereum .consensus ._
5
- import io .iohk .ethereum .consensus .ethash .blocks .EthashBlockGeneratorImpl
6
- import io .iohk .ethereum .consensus .ethash .validators .{EthashValidators , OmmersValidator }
5
+ import io .iohk .ethereum .consensus .blocks .{BlockTimestampProvider , NoOmmersBlockGenerator , TestBlockGenerator }
7
6
import io .iohk .ethereum .consensus .validators ._
8
7
import io .iohk .ethereum .consensus .validators .std .{StdBlockValidator , StdSignedTransactionValidator }
9
8
import io .iohk .ethereum .domain .{Block , BlockHeader , BlockchainImpl , Receipt }
@@ -17,17 +16,17 @@ class TestmodeConsensus(
17
16
override val vm : VMImpl ,
18
17
blockchain : BlockchainImpl ,
19
18
blockchainConfig : BlockchainConfig ,
20
- consensusConfig : ConsensusConfig )
19
+ consensusConfig : ConsensusConfig ,
20
+ var blockTimestamp : Long = 0 ) // var, because it can be modified by test_ RPC endpoints
21
21
extends Consensus {
22
22
23
23
override type Config = AnyRef
24
24
override def protocol : Protocol = Protocol .Ethash
25
25
override def config : FullConsensusConfig [AnyRef ] = FullConsensusConfig [AnyRef ](consensusConfig, " " )
26
26
27
- class TestValidators extends EthashValidators {
27
+ class TestValidators extends Validators {
28
28
override def blockHeaderValidator : BlockHeaderValidator = (_, _) => Right (BlockHeaderValid )
29
29
override def signedTransactionValidator : SignedTransactionValidator = new StdSignedTransactionValidator (blockchainConfig)
30
- override def ommersValidator : OmmersValidator = (_, _, _, _, _) => Right (OmmersValidator .OmmersValid )
31
30
override def validateBlockBeforeExecution (block : Block , getBlockHeaderByHash : GetBlockHeaderByHash , getNBlocksBack : GetNBlocksBack )
32
31
: Either [BlockExecutionError .ValidationBeforeExecError , BlockExecutionSuccess ] = Right (BlockExecutionSuccess )
33
32
override def validateBlockAfterExecution (block : Block , stateRootHash : ByteString ,receipts : Seq [Receipt ], gasUsed : BigInt )
@@ -40,20 +39,21 @@ class TestmodeConsensus(
40
39
}
41
40
}
42
41
43
- override def validators : EthashValidators = new TestValidators
42
+ override def validators : Validators = new TestValidators
44
43
45
44
override val blockPreparator : BlockPreparator = new BlockPreparator (
46
45
vm = vm,
47
46
signedTxValidator = validators.signedTransactionValidator,
48
47
blockchain = blockchain,
49
48
blockchainConfig = blockchainConfig)
50
49
51
- override val blockGenerator = new EthashBlockGeneratorImpl (
52
- validators = validators,
53
- blockchain = blockchain,
54
- blockchainConfig = blockchainConfig,
55
- consensusConfig = config.generic,
56
- blockPreparator = blockPreparator)
50
+ override val blockGenerator =
51
+ new NoOmmersBlockGenerator (blockchain, blockchainConfig, consensusConfig, blockPreparator,
52
+ new BlockTimestampProvider {
53
+ override def getEpochSecond : Long = blockTimestamp
54
+ }) {
55
+ override def withBlockTimestampProvider (blockTimestampProvider : BlockTimestampProvider ): TestBlockGenerator = this
56
+ }
57
57
58
58
override def startProtocol (node : Node ): Unit = {}
59
59
override def stopProtocol (): Unit = {}
0 commit comments