Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dataGasUsed and dataGasPrice to receipts for 4844 txs #15

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c59908a
SSZ - encoding (#4979)
gezero Jan 23, 2023
81224fb
verfifying kzg proof (#4994)
gezero Jan 24, 2023
bf2ca41
4844 engine api (#4991)
jflo Jan 24, 2023
2c80651
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
3679c96
Adding trace logs to mention ssz transaction encoding/deconding in lo…
gezero Jan 26, 2023
2807b0a
adding test for nonblob blob transaction (#5008)
gezero Jan 27, 2023
8e6de49
Blob tx network size and hash (#5015)
fab-10 Jan 27, 2023
1c959db
Consumed data gas receipt fix (#5018)
fab-10 Jan 27, 2023
8918139
Fix data gas calculation during block import (#5023)
fab-10 Jan 31, 2023
58fe2bc
Fix getBloblsBundleV1 response (#5049)
fab-10 Feb 3, 2023
1022a73
Fix GetBlobBundleV1 response (#5075)
fab-10 Feb 9, 2023
0ff54f4
4844: read blobs as raw bytes not as unit256 and fix blob versioned h…
fab-10 Feb 10, 2023
c4bb880
Temporary embed devnet 4 trusted setup until a configuration option i…
fab-10 Feb 14, 2023
047669c
update verification for tuweni ssz
jflo May 3, 2023
f27ec34
passing tests up till SSL stuff
jflo May 8, 2023
9c1f820
updated from main
jflo May 9, 2023
90c2c92
made hardforks optional
jflo May 10, 2023
7dabcd3
new tx type got lost
jflo May 11, 2023
304db38
fixes wrong encoding method on persisting to RocksDB
jflo May 15, 2023
ea12a94
extend correct parent gas calc
jflo May 17, 2023
807254a
spotless
jflo May 17, 2023
bcec730
plugin api version
jflo May 17, 2023
6ad7041
SSZ - encoding (#4979)
gezero Jan 23, 2023
083e8d3
verfifying kzg proof (#4994)
gezero Jan 24, 2023
d3a9462
4844 engine api (#4991)
jflo Jan 24, 2023
5c0f107
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
b468bd3
Adding trace logs to mention ssz transaction encoding/deconding in lo…
gezero Jan 26, 2023
8994719
adding test for nonblob blob transaction (#5008)
gezero Jan 27, 2023
4b4c36e
Blob tx network size and hash (#5015)
fab-10 Jan 27, 2023
45d5943
Consumed data gas receipt fix (#5018)
fab-10 Jan 27, 2023
f46fdaa
Fix data gas calculation during block import (#5023)
fab-10 Jan 31, 2023
2672d47
Fix getBloblsBundleV1 response (#5049)
fab-10 Feb 3, 2023
5fefbe7
Fix GetBlobBundleV1 response (#5075)
fab-10 Feb 9, 2023
71084fc
4844: read blobs as raw bytes not as unit256 and fix blob versioned h…
fab-10 Feb 10, 2023
30d7414
passing tests up till SSL stuff
jflo May 8, 2023
c73cf77
updated from main
jflo May 9, 2023
a048b3c
made hardforks optional
jflo May 10, 2023
2aa1719
new tx type got lost
jflo May 11, 2023
08374ab
fixes wrong encoding method on persisting to RocksDB
jflo May 15, 2023
1a12b57
spotless
jflo May 17, 2023
c125d28
toString updates
jflo May 18, 2023
e46dfc2
update sigs
jflo May 18, 2023
0013da0
adds test coverage for broken transaction root calc on block 62717 fr…
jflo May 18, 2023
e74d673
workaround for incorrect SSZ implementation for BytesList[]
jflo May 20, 2023
2729f5f
block validation test coverage for cancun, handle blob transactions w…
jflo May 22, 2023
6596a40
test fixup
jflo May 22, 2023
97cb38c
should run like the other txs
jflo May 23, 2023
b2ae62c
goldarn fuzzer
jflo May 23, 2023
27ddc8f
correct optional handling
jflo May 23, 2023
346bac6
pass versionedHashes to child frames
jflo May 23, 2023
13e6d57
add proofs to blobs bundle
gfukushima Apr 28, 2023
25c6e65
cherrypicked in blob decoupling
jflo May 24, 2023
0ecf530
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
521e4c2
passing tests up till SSL stuff
jflo May 8, 2023
73d90ee
plugin api version
jflo May 17, 2023
70a13a0
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
f8b096a
passing tests up till SSL stuff
jflo May 8, 2023
b8f84af
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
ff233dd
passing tests up till SSL stuff
jflo May 8, 2023
6389e84
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
7030bf2
passing tests up till SSL stuff
jflo May 8, 2023
cc7c7fa
replace encoder with RLP
jflo May 24, 2023
c6a354e
rolled back decoder/encoder to pre-ssz ish state
jflo May 24, 2023
aa71c26
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
6236ee3
passing tests up till SSL stuff
jflo May 8, 2023
d3c5a43
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
e033901
passing tests up till SSL stuff
jflo May 8, 2023
a2ada08
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
bb6750e
passing tests up till SSL stuff
jflo May 8, 2023
fa03c36
[Interop-4844] Data gas accounting (#4998)
fab-10 Jan 25, 2023
78c088f
passing tests up till SSL stuff
jflo May 8, 2023
a97607f
Initial modifications to remove SSZ
Gabriel-Trintinalia May 29, 2023
755d938
Add encoding-decoding tests
Gabriel-Trintinalia May 30, 2023
c4cf6f1
Fix missing field
Gabriel-Trintinalia May 30, 2023
ce322ee
spotless
jflo May 31, 2023
becbffd
merge corrections
jflo May 31, 2023
202b8b3
Add dataGasUsed and dataGasPrice to receipts for 4844 txs
Gabriel-Trintinalia Jun 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8,318 changes: 4,159 additions & 4,159 deletions config/src/main/resources/kzg-trusted-setups/mainnet.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ public BftProtocolSchedule create(
Optional.ofNullable(forkSpecs.higher(spec)).map(ForkSpec::getBlock);
protocolSchedule.getScheduledProtocolSpecs().stream()
.filter(protocolSpecMatchesConsensusBlockRange(spec.getBlock(), endBlock))
.forEach(s -> combinedProtocolSchedule.putBlockNumberMilestone(s.milestone(), s.spec()));
.forEach(
s ->
combinedProtocolSchedule.putBlockNumberMilestone(s.fork().milestone(), s.spec()));

// When moving to a new consensus mechanism we want to use the last milestone but created by
// our consensus mechanism's BesuControllerBuilder so any additional rules are applied
Expand All @@ -67,7 +69,7 @@ public BftProtocolSchedule create(
private Predicate<ScheduledProtocolSpec> protocolSpecMatchesConsensusBlockRange(
final long startBlock, final Optional<Long> endBlock) {
return scheduledProtocolSpec ->
scheduledProtocolSpec.milestone() >= startBlock
&& endBlock.map(b -> scheduledProtocolSpec.milestone() < b).orElse(true);
scheduledProtocolSpec.fork().milestone() >= startBlock
&& endBlock.map(b -> scheduledProtocolSpec.fork().milestone() < b).orElse(true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,12 @@ public ProtocolSpec getByBlockNumber(final long number) {
checkArgument(
!protocolSpecs.isEmpty(), "At least 1 milestone must be provided to the protocol schedule");
checkArgument(
protocolSpecs.last().milestone() == 0, "There must be a milestone starting from block 0");
protocolSpecs.last().fork().milestone() == 0,
"There must be a milestone starting from block 0");
// protocolSpecs is sorted in descending block order, so the first one we find that's lower than
// the requested level will be the most appropriate spec
for (final ScheduledProtocolSpec s : protocolSpecs) {
if (number >= s.milestone()) {
if (number >= s.fork().milestone()) {
return s.spec();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import org.apache.tuweni.bytes.Bytes;
import org.junit.Test;

public class IbftExtraDataEncoderTest {
public class IbftExtraDataRLPEncoderTest {

private static final Supplier<SignatureAlgorithm> SIGNATURE_ALGORITHM =
Suppliers.memoize(SignatureAlgorithmFactory::getInstance);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,13 @@ public void putTimestampMilestone(final long timestamp, final ProtocolSpec proto
"Should not use TransitionProtocolSchedule wrapper class to create milestones");
}

@Override
public ScheduledProtocolSpec.Hardfork hardforkFor(
final Predicate<ScheduledProtocolSpec> predicate) {
return this.transitionUtils.dispatchFunctionAccordingToMergeState(
schedule -> schedule.hardforkFor(predicate));
}

/**
* List milestones.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,6 @@ public TransactionResult transaction(
.byteValueExact()))
.payload(bytes(input))
.sender(address(fromAddress))
.v(bigInteger(v))
.build();

return new TransactionCompleteResult(
Expand Down Expand Up @@ -224,10 +223,6 @@ private String removeHexPrefix(final String prefixedHex) {
return prefixedHex.startsWith("0x") ? prefixedHex.substring(2) : prefixedHex;
}

private BigInteger bigInteger(final String hex) {
return hex == null ? null : new BigInteger(removeHexPrefix(hex), HEX_RADIX);
}

private Wei wei(final String hex) {
return Wei.fromHexString(hex);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@
import org.hyperledger.besu.datatypes.Address;
import org.hyperledger.besu.datatypes.Hash;
import org.hyperledger.besu.datatypes.Wei;
import org.hyperledger.besu.ethereum.api.graphql.GraphQLContextType;
import org.hyperledger.besu.ethereum.api.query.BlockchainQueries;
import org.hyperledger.besu.ethereum.api.query.TransactionReceiptWithMetadata;
import org.hyperledger.besu.ethereum.api.query.TransactionWithMetadata;
import org.hyperledger.besu.ethereum.core.BlockHeader;
import org.hyperledger.besu.ethereum.core.LogWithMetadata;
import org.hyperledger.besu.ethereum.core.Transaction;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;
import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput;

import java.util.ArrayList;
Expand All @@ -46,12 +48,15 @@ private Optional<TransactionReceiptWithMetadata> getReceipt(
final DataFetchingEnvironment environment) {
if (transactionReceiptWithMetadata == null) {
final BlockchainQueries query = getBlockchainQueries(environment);
final ProtocolSchedule protocolSchedule =
environment.getGraphQlContext().get(GraphQLContextType.PROTOCOL_SCHEDULE);

final Transaction transaction = transactionWithMetadata.getTransaction();
if (transaction == null) {
transactionReceiptWithMetadata = Optional.empty();
} else {
transactionReceiptWithMetadata =
query.transactionReceiptByTransactionHash(transaction.getHash());
query.transactionReceiptByTransactionHash(transaction.getHash(), protocolSchedule);
}
}
return transactionReceiptWithMetadata;
Expand Down Expand Up @@ -187,6 +192,9 @@ public Optional<AccountAdapter> getCreatedContract(final DataFetchingEnvironment

public List<LogAdapter> getLogs(final DataFetchingEnvironment environment) {
final BlockchainQueries query = getBlockchainQueries(environment);
final ProtocolSchedule protocolSchedule =
environment.getGraphQlContext().get(GraphQLContextType.PROTOCOL_SCHEDULE);

final Hash hash = transactionWithMetadata.getTransaction().getHash();

final Optional<BlockHeader> maybeBlockHeader =
Expand All @@ -201,7 +209,7 @@ public List<LogAdapter> getLogs(final DataFetchingEnvironment environment) {
}

final Optional<TransactionReceiptWithMetadata> maybeTransactionReceiptWithMetadata =
query.transactionReceiptByTransactionHash(hash);
query.transactionReceiptByTransactionHash(hash, protocolSchedule);
final List<LogAdapter> results = new ArrayList<>();
if (maybeTransactionReceiptWithMetadata.isPresent()) {
final List<LogWithMetadata> logs =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,19 @@ public enum RpcMethod {
DEBUG_GET_RAW_RECEIPTS("debug_getRawReceipts"),
ENGINE_GET_PAYLOAD_V1("engine_getPayloadV1"),
ENGINE_GET_PAYLOAD_V2("engine_getPayloadV2"),
ENGINE_GET_PAYLOAD_V3("engine_getPayloadV3"),
ENGINE_EXECUTE_PAYLOAD("engine_executePayloadV1"),
ENGINE_NEW_PAYLOAD_V1("engine_newPayloadV1"),
ENGINE_NEW_PAYLOAD_V2("engine_newPayloadV2"),
ENGINE_NEW_PAYLOAD_V3("engine_newPayloadV3"),
ENGINE_FORKCHOICE_UPDATED_V1("engine_forkchoiceUpdatedV1"),
ENGINE_FORKCHOICE_UPDATED_V2("engine_forkchoiceUpdatedV2"),
ENGINE_EXCHANGE_TRANSITION_CONFIGURATION("engine_exchangeTransitionConfigurationV1"),
ENGINE_GET_PAYLOAD_BODIES_BY_HASH_V1("engine_getPayloadBodiesByHashV1"),
ENGINE_GET_PAYLOAD_BODIES_BY_RANGE_V1("engine_getPayloadBodiesByRangeV1"),
ENGINE_EXCHANGE_CAPABILITIES("engine_exchangeCapabilities"),
ENGINE_PREPARE_PAYLOAD_DEBUG("engine_preparePayload_debug"),
ENGINE_GET_BLOBS_BUNDLE_V1("engine_getBlobsBundleV1"),
PRIV_CALL("priv_call"),
PRIV_GET_PRIVATE_TRANSACTION("priv_getPrivateTransaction"),
PRIV_GET_TRANSACTION_COUNT("priv_getTransactionCount"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ public static MinerDataResult createMinerDataResult(
.map(
t ->
blockchainQueries
.transactionReceiptByTransactionHash(t.getTransaction().getHash())
.transactionReceiptByTransactionHash(
t.getTransaction().getHash(), protocolSchedule)
.map(
receipt ->
receipt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,19 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.TransactionReceiptStatusResult;
import org.hyperledger.besu.ethereum.api.query.BlockchainQueries;
import org.hyperledger.besu.ethereum.api.query.TransactionReceiptWithMetadata;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;
import org.hyperledger.besu.ethereum.mainnet.TransactionReceiptType;

public class EthGetTransactionReceipt implements JsonRpcMethod {

private final BlockchainQueries blockchainQueries;

public EthGetTransactionReceipt(final BlockchainQueries blockchainQueries) {
private final ProtocolSchedule protocolSchedule;

public EthGetTransactionReceipt(
final BlockchainQueries blockchainQueries, final ProtocolSchedule protocolSchedule) {
this.blockchainQueries = blockchainQueries;
this.protocolSchedule = protocolSchedule;
}

@Override
Expand All @@ -44,7 +49,7 @@ public JsonRpcResponse response(final JsonRpcRequestContext requestContext) {
final Hash hash = requestContext.getRequiredParameter(0, Hash.class);
final TransactionReceiptResult result =
blockchainQueries
.transactionReceiptByTransactionHash(hash)
.transactionReceiptByTransactionHash(hash, protocolSchedule)
.map(this::getResult)
.orElse(null);
return new JsonRpcSuccessResponse(requestContext.getRequest().getId(), result);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResultFactory;
import org.hyperledger.besu.ethereum.core.BlockHeader;
import org.hyperledger.besu.ethereum.core.BlockWithReceipts;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;

import java.util.Optional;

Expand All @@ -39,15 +40,19 @@ public abstract class AbstractEngineGetPayload extends ExecutionEngineJsonRpcMet
protected final BlockResultFactory blockResultFactory;
private static final Logger LOG = LoggerFactory.getLogger(AbstractEngineGetPayload.class);

protected final Optional<ProtocolSchedule> schedule;

public AbstractEngineGetPayload(
final Vertx vertx,
final ProtocolContext protocolContext,
final MergeMiningCoordinator mergeMiningCoordinator,
final BlockResultFactory blockResultFactory,
final EngineCallListener engineCallListener) {
final EngineCallListener engineCallListener,
final ProtocolSchedule schedule) {
super(vertx, protocolContext, engineCallListener);
this.mergeMiningCoordinator = mergeMiningCoordinator;
this.blockResultFactory = blockResultFactory;
this.schedule = Optional.ofNullable(schedule);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import static org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcError.INVALID_PARAMS;

import org.hyperledger.besu.consensus.merge.blockcreation.MergeMiningCoordinator;
import org.hyperledger.besu.datatypes.DataGas;
import org.hyperledger.besu.datatypes.Hash;
import org.hyperledger.besu.datatypes.Wei;
import org.hyperledger.besu.ethereum.BlockProcessingResult;
Expand Down Expand Up @@ -160,7 +161,9 @@ public JsonRpcResponse syncResponse(final JsonRpcRequestContext requestContext)
blockParam.getPrevRandao(),
0,
maybeWithdrawals.map(BodyValidation::withdrawalsRoot).orElse(null),
null,
blockParam.getExcessDataGas() == null
? null
: DataGas.fromHexString(blockParam.getExcessDataGas()),
null,
headerFunctions);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/*
* Copyright Hyperledger Besu Contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*/

package org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.engine;

import org.hyperledger.besu.consensus.merge.blockcreation.MergeMiningCoordinator;
import org.hyperledger.besu.consensus.merge.blockcreation.PayloadIdentifier;
import org.hyperledger.besu.ethereum.ProtocolContext;
import org.hyperledger.besu.ethereum.api.jsonrpc.RpcMethod;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlobsBundleV1;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResultFactory;
import org.hyperledger.besu.ethereum.core.Block;
import org.hyperledger.besu.ethereum.core.BlockWithReceipts;
import org.hyperledger.besu.ethereum.core.Transaction;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;

import java.util.List;

import io.vertx.core.Vertx;

public class EngineGetBlobsBundleV1 extends AbstractEngineGetPayload {

public EngineGetBlobsBundleV1(
final Vertx vertx,
final ProtocolContext protocolContext,
final MergeMiningCoordinator mergeMiningCoordinator,
final BlockResultFactory blockResultFactory,
final EngineCallListener engineCallListener,
final ProtocolSchedule schedule) {
super(
vertx,
protocolContext,
mergeMiningCoordinator,
blockResultFactory,
engineCallListener,
schedule);
}

@Override
protected JsonRpcResponse createResponse(
final JsonRpcRequestContext request,
final PayloadIdentifier payloadId,
final BlockWithReceipts blockWithReceipts) {

return new JsonRpcSuccessResponse(
request.getRequest().getId(), createResponse(blockWithReceipts.getBlock()));
}

private BlobsBundleV1 createResponse(final Block block) {

final List<Transaction> transactions = block.getBody().getTransactions();

return new BlobsBundleV1(transactions);
}

@Override
public String getName() {
return RpcMethod.ENGINE_GET_BLOBS_BUNDLE_V1.getMethodName();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResultFactory;
import org.hyperledger.besu.ethereum.core.BlockWithReceipts;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;

import java.util.Optional;

Expand All @@ -35,8 +36,15 @@ public EngineGetPayloadV1(
final ProtocolContext protocolContext,
final MergeMiningCoordinator mergeMiningCoordinator,
final BlockResultFactory blockResultFactory,
final EngineCallListener engineCallListener) {
super(vertx, protocolContext, mergeMiningCoordinator, blockResultFactory, engineCallListener);
final EngineCallListener engineCallListener,
final ProtocolSchedule schedule) {
super(
vertx,
protocolContext,
mergeMiningCoordinator,
blockResultFactory,
engineCallListener,
schedule);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResultFactory;
import org.hyperledger.besu.ethereum.core.BlockWithReceipts;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;

import java.util.Optional;

Expand All @@ -36,8 +37,15 @@ public EngineGetPayloadV2(
final ProtocolContext protocolContext,
final MergeMiningCoordinator mergeMiningCoordinator,
final BlockResultFactory blockResultFactory,
final EngineCallListener engineCallListener) {
super(vertx, protocolContext, mergeMiningCoordinator, blockResultFactory, engineCallListener);
final EngineCallListener engineCallListener,
final ProtocolSchedule schedule) {
super(
vertx,
protocolContext,
mergeMiningCoordinator,
blockResultFactory,
engineCallListener,
schedule);
}

@Override
Expand Down
Loading