From d6f8645ae521a85f22f964f1a8bbe861717fe68a Mon Sep 17 00:00:00 2001 From: Jason Frame Date: Mon, 29 Jul 2024 08:58:03 +1000 Subject: [PATCH 1/4] Snap server GetTrieNodes to return empty bytes when trienode doesn't exist (#7305) Signed-off-by: Jason Frame --- .../ethereum/eth/manager/snap/SnapServer.java | 32 +++++++++---------- .../eth/manager/snap/SnapServerTest.java | 23 +++++++++++-- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java index d6bfe900d..cb92941e5 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java @@ -518,15 +518,13 @@ class SnapServer implements BesuEvents.InitialSyncCompletionListener { if (optStorage.isEmpty() && location.isEmpty()) { optStorage = Optional.of(MerkleTrie.EMPTY_TRIE_NODE); } - if (optStorage.isPresent()) { - if (!trieNodes.isEmpty() - && (sumListBytes(trieNodes) + optStorage.get().size() > maxResponseBytes - || stopWatch.getTime() > StatefulPredicate.MAX_MILLIS_PER_REQUEST)) { - break; - } - trieNodes.add(optStorage.get()); + var trieNode = optStorage.orElse(Bytes.EMPTY); + if (!trieNodes.isEmpty() + && (sumListBytes(trieNodes) + trieNode.size() > maxResponseBytes + || stopWatch.getTime() > StatefulPredicate.MAX_MILLIS_PER_REQUEST)) { + break; } - + trieNodes.add(trieNode); } else { // There must be at least one element in the path otherwise it is invalid if (triePath.isEmpty()) { @@ -537,7 +535,11 @@ class SnapServer implements BesuEvents.InitialSyncCompletionListener { // otherwise the first element should be account hash, and subsequent paths // are compact encoded account storage paths - final Bytes accountPrefix = Bytes32.leftPad(triePath.getFirst()); + final Bytes32 accountPrefix = Bytes32.leftPad(triePath.getFirst()); + var optAccount = storage.getAccount(Hash.wrap(accountPrefix)); + if (optAccount.isEmpty()) { + continue; + } List storagePaths = triePath.subList(1, triePath.size()); for (var path : storagePaths) { @@ -547,14 +549,12 @@ class SnapServer implements BesuEvents.InitialSyncCompletionListener { if (optStorage.isEmpty() && location.isEmpty()) { optStorage = Optional.of(MerkleTrie.EMPTY_TRIE_NODE); } - if (optStorage.isPresent()) { - if (!trieNodes.isEmpty() - && sumListBytes(trieNodes) + optStorage.get().size() - > maxResponseBytes) { - break; - } - trieNodes.add(optStorage.get()); + var trieNode = optStorage.orElse(Bytes.EMPTY); + if (!trieNodes.isEmpty() + && sumListBytes(trieNodes) + trieNode.size() > maxResponseBytes) { + break; } + trieNodes.add(trieNode); } } } diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java index 2103af412..e252fe033 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java @@ -531,7 +531,25 @@ public class SnapServerTest { assertThat(trieNodeRequest).isNotNull(); List trieNodes = trieNodeRequest.nodes(false); assertThat(trieNodes).isNotNull(); - assertThat(trieNodes.size()).isEqualTo(4); + assertThat(trieNodes.size()).isEqualTo(6); + assertThat(trieNodes.get(2)).isEqualTo(Bytes.EMPTY); + assertThat(trieNodes.get(5)).isEqualTo(Bytes.EMPTY); + } + + @Test + public void assertStorageTriePathRequest_accountNotPresent() { + insertTestAccounts(acct4); + var pathToSlot11 = CompactEncoding.encode(Bytes.fromHexStringLenient("0x0101")); + var trieNodeRequest = + requestTrieNodes( + storageTrie.getRootHash(), + List.of( + List.of(acct3.addressHash, pathToSlot11) // account not present + )); + assertThat(trieNodeRequest).isNotNull(); + List trieNodes = trieNodeRequest.nodes(false); + assertThat(trieNodes).isNotNull(); + assertThat(trieNodes.size()).isEqualTo(0); } @Test @@ -582,8 +600,7 @@ public class SnapServerTest { assertThat(trieNodeRequest).isNotNull(); List trieNodes = trieNodeRequest.nodes(false); assertThat(trieNodes).isNotNull(); - // TODO: adjust this assertion after sorting out the request fudge factor - assertThat(trieNodes.size()).isEqualTo(trieNodeLimit * 90 / 100); + assertThat(trieNodes.size()).isEqualTo(3); } @Test From f8edb7332cb6881735867534064fb50349dc7588 Mon Sep 17 00:00:00 2001 From: Simon Dudley Date: Mon, 29 Jul 2024 09:36:17 +1000 Subject: [PATCH 2/4] Rotate changelog for 24.7.1 (#7385) Signed-off-by: Simon Dudley --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d3f9eb40..04e0f76e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,25 @@ - --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead - `besu storage x-trie-log` subcommand is deprecated, use `besu storage trie-log` instead +### Breaking Changes + +### Additions and Improvements + +### Bug fixes + +## 24.7.1 + ### Breaking Changes - Remove deprecated sync modes (X_SNAP and X_CHECKPOINT). Use SNAP and CHECKPOINT instead [#7309](https://github.com/hyperledger/besu/pull/7309) - Remove PKI-backed QBFT (deprecated in 24.5.1) Other forms of QBFT remain unchanged. [#7293](https://github.com/hyperledger/besu/pull/7293) - Do not maintain connections to PoA bootnodes [#7358](https://github.com/hyperledger/besu/pull/7358). See [#7314](https://github.com/hyperledger/besu/pull/7314) for recommended alternative behaviour. +### Upcoming Breaking Changes +- Receipt compaction will be enabled by default in a future version of Besu. After this change it will not be possible to downgrade to the previous Besu version. +- --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead +- --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead +- `besu storage x-trie-log` subcommand is deprecated, use `besu storage trie-log` instead + ### Additions and Improvements - `--Xsnapsync-bft-enabled` option enables experimental support for snap sync with IBFT/QBFT permissioned Bonsai-DB chains [#7140](https://github.com/hyperledger/besu/pull/7140) - Add support to load external profiles using `--profile` [#7265](https://github.com/hyperledger/besu/issues/7265) From 94b497e261ca87c1811bf4d9f13bf81bdb1787f3 Mon Sep 17 00:00:00 2001 From: Matilda-Clerke Date: Mon, 29 Jul 2024 16:19:11 +1000 Subject: [PATCH 3/4] 7288: include WithdrawalRequestPredeployAddress in genesis configuration (#7356) * 7288: include WithdrawalRequestPredeployAddress in genesis configuration Signed-off-by: Matilda Clerke * 7288: Update changelog Signed-off-by: Matilda Clerke * 7288: Fix typo in new variable Signed-off-by: Matilda Clerke * 7288: Rename withdrawalRequestPredeployAddress to withdrawalRequestContractAddress Signed-off-by: Matilda Clerke * 7288: Update changelog to match recent changes Signed-off-by: Matilda Clerke * 5098: Move changelog item to next release Signed-off-by: Matilda Clerke --------- Signed-off-by: Matilda Clerke Signed-off-by: Matilda-Clerke --- CHANGELOG.md | 1 + .../besu/config/GenesisConfigOptions.java | 7 +++++ .../besu/config/JsonGenesisConfigOptions.java | 11 ++++++++ .../besu/config/StubGenesisConfigOptions.java | 5 ++++ .../besu/config/GenesisConfigOptionsTest.java | 26 +++++++++++++++++++ .../mainnet/MainnetProtocolSpecs.java | 8 +++++- .../requests/MainnetRequestsValidator.java | 6 +++-- .../requests/WithdrawalRequestProcessor.java | 10 +++++-- 8 files changed, 69 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04e0f76e4..072a84c2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead - --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead - `besu storage x-trie-log` subcommand is deprecated, use `besu storage trie-log` instead +- Allow configuration of Withdrawal Request Contract Address via genesis configuration [#7356](https://github.com/hyperledger/besu/pull/7356) ### Breaking Changes diff --git a/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java index 849b12118..d6323ee9b 100644 --- a/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java +++ b/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java @@ -525,6 +525,13 @@ public interface GenesisConfigOptions { */ boolean isFixedBaseFee(); + /** + * The withdrawal request predeploy address + * + * @return the withdrawal request predeploy address + */ + Optional
getWithdrawalRequestContractAddress(); + /** * The deposit contract address that should be in the logger field in Receipt of Deposit * transaction diff --git a/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java index b418a6785..67114b29b 100644 --- a/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java +++ b/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java @@ -49,6 +49,8 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions { private static final String CHECKPOINT_CONFIG_KEY = "checkpoint"; private static final String ZERO_BASE_FEE_KEY = "zerobasefee"; private static final String FIXED_BASE_FEE_KEY = "fixedbasefee"; + private static final String WITHDRAWAL_REQUEST_CONTRACT_ADDRESS_KEY = + "withdrawalrequestcontractaddress"; private static final String DEPOSIT_CONTRACT_ADDRESS_KEY = "depositcontractaddress"; private final ObjectNode configRoot; @@ -438,6 +440,13 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions { return getOptionalBoolean(FIXED_BASE_FEE_KEY).orElse(false); } + @Override + public Optional
getWithdrawalRequestContractAddress() { + Optional inputAddress = + JsonUtil.getString(configRoot, WITHDRAWAL_REQUEST_CONTRACT_ADDRESS_KEY); + return inputAddress.map(Address::fromHexString); + } + @Override public Optional
getDepositContractAddress() { Optional inputAddress = JsonUtil.getString(configRoot, DEPOSIT_CONTRACT_ADDRESS_KEY); @@ -492,6 +501,8 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions { getEvmStackSize().ifPresent(l -> builder.put("evmstacksize", l)); getEcip1017EraRounds().ifPresent(l -> builder.put("ecip1017EraRounds", l)); + getWithdrawalRequestContractAddress() + .ifPresent(l -> builder.put("withdrawalRequestContractAddress", l)); getDepositContractAddress().ifPresent(l -> builder.put("depositContractAddress", l)); if (isClique()) { diff --git a/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java index 24f333102..efe56a086 100644 --- a/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java +++ b/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java @@ -457,6 +457,11 @@ public class StubGenesisConfigOptions implements GenesisConfigOptions, Cloneable return Collections.emptyList(); } + @Override + public Optional
getWithdrawalRequestContractAddress() { + return Optional.empty(); + } + @Override public Optional
getDepositContractAddress() { return Optional.empty(); diff --git a/config/src/test/java/org/hyperledger/besu/config/GenesisConfigOptionsTest.java b/config/src/test/java/org/hyperledger/besu/config/GenesisConfigOptionsTest.java index ed313ad6c..219ea4fcf 100644 --- a/config/src/test/java/org/hyperledger/besu/config/GenesisConfigOptionsTest.java +++ b/config/src/test/java/org/hyperledger/besu/config/GenesisConfigOptionsTest.java @@ -332,6 +332,32 @@ class GenesisConfigOptionsTest { assertThat(config.asMap()).containsOnlyKeys("fixedBaseFee").containsValue(true); } + @Test + void shouldGetWithdrawalRequestContractAddress() { + final GenesisConfigOptions config = + fromConfigOptions( + singletonMap( + "withdrawalRequestContractAddress", "0x00000000219ab540356cbb839cbe05303d7705fa")); + assertThat(config.getWithdrawalRequestContractAddress()) + .hasValue(Address.fromHexString("0x00000000219ab540356cbb839cbe05303d7705fa")); + } + + @Test + void shouldNotHaveWithdrawalRequestContractAddressWhenEmpty() { + final GenesisConfigOptions config = fromConfigOptions(emptyMap()); + assertThat(config.getWithdrawalRequestContractAddress()).isEmpty(); + } + + @Test + void asMapIncludesWithdrawalRequestContractAddress() { + final GenesisConfigOptions config = + fromConfigOptions(Map.of("withdrawalRequestContractAddress", "0x0")); + + assertThat(config.asMap()) + .containsOnlyKeys("withdrawalRequestContractAddress") + .containsValue(Address.ZERO); + } + @Test void shouldGetDepositContractAddress() { final GenesisConfigOptions config = diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSpecs.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSpecs.java index 36d8257ff..a96ca58fd 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSpecs.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSpecs.java @@ -17,6 +17,7 @@ package org.hyperledger.besu.ethereum.mainnet; import static org.hyperledger.besu.ethereum.mainnet.requests.DepositRequestProcessor.DEFAULT_DEPOSIT_CONTRACT_ADDRESS; import static org.hyperledger.besu.ethereum.mainnet.requests.MainnetRequestsValidator.pragueRequestsProcessors; import static org.hyperledger.besu.ethereum.mainnet.requests.MainnetRequestsValidator.pragueRequestsValidator; +import static org.hyperledger.besu.ethereum.mainnet.requests.WithdrawalRequestProcessor.DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS; import org.hyperledger.besu.config.GenesisConfigOptions; import org.hyperledger.besu.config.PowAlgorithm; @@ -766,6 +767,10 @@ public abstract class MainnetProtocolSpecs { final boolean isParallelTxProcessingEnabled, final MetricsSystem metricsSystem) { + final Address withdrawalRequestContractAddress = + genesisConfigOptions + .getWithdrawalRequestContractAddress() + .orElse(DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS); final Address depositContractAddress = genesisConfigOptions.getDepositContractAddress().orElse(DEFAULT_DEPOSIT_CONTRACT_ADDRESS); @@ -791,7 +796,8 @@ public abstract class MainnetProtocolSpecs { // EIP-7002 Withdrawals / EIP-6610 Deposits / EIP-7685 Requests .requestsValidator(pragueRequestsValidator(depositContractAddress)) // EIP-7002 Withdrawals / EIP-6610 Deposits / EIP-7685 Requests - .requestProcessorCoordinator(pragueRequestsProcessors(depositContractAddress)) + .requestProcessorCoordinator( + pragueRequestsProcessors(withdrawalRequestContractAddress, depositContractAddress)) // change to accept EIP-7702 transactions .transactionValidatorFactoryBuilder( diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/MainnetRequestsValidator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/MainnetRequestsValidator.java index d855544ed..6e61a0343 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/MainnetRequestsValidator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/MainnetRequestsValidator.java @@ -28,9 +28,11 @@ public class MainnetRequestsValidator { } public static RequestProcessorCoordinator pragueRequestsProcessors( - final Address depositContractAddress) { + final Address withdrawalRequestContractAddress, final Address depositContractAddress) { return new RequestProcessorCoordinator.Builder() - .addProcessor(RequestType.WITHDRAWAL, new WithdrawalRequestProcessor()) + .addProcessor( + RequestType.WITHDRAWAL, + new WithdrawalRequestProcessor(withdrawalRequestContractAddress)) .addProcessor(RequestType.CONSOLIDATION, new ConsolidationRequestProcessor()) .addProcessor(RequestType.DEPOSIT, new DepositRequestProcessor(depositContractAddress)) .build(); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/WithdrawalRequestProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/WithdrawalRequestProcessor.java index b230a6d61..d4021c9a1 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/WithdrawalRequestProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/requests/WithdrawalRequestProcessor.java @@ -26,7 +26,7 @@ import org.apache.tuweni.units.bigints.UInt64; public class WithdrawalRequestProcessor extends AbstractSystemCallRequestProcessor { - public static final Address WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS = + public static final Address DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS = Address.fromHexString("0x00A3ca265EBcb825B45F985A16CEFB49958cE017"); private static final int ADDRESS_BYTES = 20; @@ -35,6 +35,12 @@ public class WithdrawalRequestProcessor private static final int WITHDRAWAL_REQUEST_BYTES_SIZE = ADDRESS_BYTES + PUBLIC_KEY_BYTES + AMOUNT_BYTES; + private final Address withdrawalRequestContractAddress; + + public WithdrawalRequestProcessor(final Address withdrawalRequestContractAddress) { + this.withdrawalRequestContractAddress = withdrawalRequestContractAddress; + } + /** * Gets the call address for withdrawal requests. * @@ -42,7 +48,7 @@ public class WithdrawalRequestProcessor */ @Override protected Address getCallAddress() { - return WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS; + return withdrawalRequestContractAddress; } /** From ab77523814cbd0527ba41140da6aafe62f35ca90 Mon Sep 17 00:00:00 2001 From: Fabio Di Fabio Date: Mon, 29 Jul 2024 13:42:05 +0200 Subject: [PATCH 4/4] Move `JsonRpcResponseType` to `RpcResponseType` in the plugin API module (#7392) Signed-off-by: Fabio Di Fabio --- .../clique/jsonrpc/methods/DiscardTest.java | 10 +++++----- .../clique/jsonrpc/methods/ProposeTest.java | 18 +++++++++--------- .../DebugTraceTransactionIntegrationTest.java | 4 ++-- .../api/handlers/JsonRpcArrayExecutor.java | 4 ++-- .../api/handlers/JsonRpcObjectExecutor.java | 4 ++-- .../execution/TracedJsonRpcProcessor.java | 4 ++-- .../response/JsonRpcErrorResponse.java | 5 +++-- .../internal/response/JsonRpcNoResponse.java | 6 ++++-- .../internal/response/JsonRpcResponse.java | 4 +++- .../response/JsonRpcSuccessResponse.java | 6 ++++-- .../response/JsonRpcUnauthorizedResponse.java | 6 ++++-- .../api/jsonrpc/ipc/JsonRpcIpcService.java | 4 ++-- .../websocket/WebSocketMessageHandler.java | 4 ++-- .../methods/EthGetBlockByNumberTest.java | 8 ++++---- .../AbstractEngineForkchoiceUpdatedTest.java | 6 +++--- .../engine/AbstractEngineNewPayloadTest.java | 6 +++--- .../engine/EngineExchangeCapabilitiesTest.java | 4 ++-- ...ineExchangeTransitionConfigurationTest.java | 4 ++-- .../EngineGetPayloadBodiesByHashV1Test.java | 6 +++--- .../EngineGetPayloadBodiesByRangeV1Test.java | 6 +++--- .../MultiTenancyRpcMethodDecoratorTest.java | 8 ++++---- .../priv/PrivDebugGetStateRootTest.java | 6 +++--- .../MutableJsonRpcSuccessResponse.java | 6 ++++-- .../PrivacyApiGroupJsonRpcMethodsTest.java | 4 ++-- .../methods/TestImportRawBlockTest.java | 14 +++++++------- plugin-api/build.gradle | 2 +- .../plugin/services/rpc/RpcResponseType.java | 12 ++++++++---- 27 files changed, 93 insertions(+), 78 deletions(-) rename ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponseType.java => plugin-api/src/main/java/org/hyperledger/besu/plugin/services/rpc/RpcResponseType.java (67%) diff --git a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/DiscardTest.java b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/DiscardTest.java index f5810520f..038f97e1e 100644 --- a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/DiscardTest.java +++ b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/DiscardTest.java @@ -28,9 +28,9 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcParameters; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.chain.Blockchain; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -61,7 +61,7 @@ public class DiscardTest { final JsonRpcResponse response = discard.response(requestWithParams(a0)); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); @@ -77,7 +77,7 @@ public class DiscardTest { final JsonRpcResponse response = discard.response(requestWithParams(a0)); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -92,7 +92,7 @@ public class DiscardTest { final JsonRpcResponse response = discard.response(requestWithParams(a0)); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -111,7 +111,7 @@ public class DiscardTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.ADD); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } diff --git a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/ProposeTest.java b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/ProposeTest.java index efbc78542..7e7d7bf77 100644 --- a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/ProposeTest.java +++ b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/jsonrpc/methods/ProposeTest.java @@ -27,10 +27,10 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.chain.Blockchain; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -59,7 +59,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.ADD); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -72,7 +72,7 @@ public class ProposeTest { final JsonRpcResponse response = propose.response(requestWithParams(a0, true)); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); final JsonRpcErrorResponse errorResponse = (JsonRpcErrorResponse) response; assertThat(errorResponse.getErrorType()).isEqualTo(RpcErrorType.INVALID_REQUEST); } @@ -86,7 +86,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.DROP); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -99,7 +99,7 @@ public class ProposeTest { final JsonRpcResponse response = propose.response(requestWithParams(a0, false)); assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)).isNull(); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); final JsonRpcErrorResponse errorResponse = (JsonRpcErrorResponse) response; assertThat(errorResponse.getErrorType()).isEqualTo(RpcErrorType.INVALID_REQUEST); } @@ -114,7 +114,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.ADD); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -129,7 +129,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.DROP); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -144,7 +144,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a1)) .isEqualTo(VoteType.ADD); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } @@ -159,7 +159,7 @@ public class ProposeTest { assertThat(validatorProvider.getVoteProviderAtHead().get().getProposals().get(a0)) .isEqualTo(VoteType.DROP); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo(true); } diff --git a/ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugTraceTransactionIntegrationTest.java b/ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugTraceTransactionIntegrationTest.java index d285ef381..5b4889871 100644 --- a/ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugTraceTransactionIntegrationTest.java +++ b/ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugTraceTransactionIntegrationTest.java @@ -23,9 +23,9 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.DebugTraceTransactionResult; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import org.hyperledger.besu.testutil.BlockTestUtil; import java.util.Map; @@ -69,7 +69,7 @@ public class DebugTraceTransactionIntegrationTest { new JsonRpcRequestContext(new JsonRpcRequest("2.0", DEBUG_TRACE_TRANSACTION, params)); final JsonRpcResponse response = method.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); DebugTraceTransactionResult debugTraceTransactionResult = (DebugTraceTransactionResult) ((JsonRpcSuccessResponse) response).getResult(); assertThat(debugTraceTransactionResult.getGas()).isEqualTo(23705L); diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcArrayExecutor.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcArrayExecutor.java index 5a839d8ad..72d6c5b61 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcArrayExecutor.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcArrayExecutor.java @@ -22,8 +22,8 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.context.ContextKey; import org.hyperledger.besu.ethereum.api.jsonrpc.execution.JsonRpcExecutor; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.io.IOException; @@ -74,7 +74,7 @@ public class JsonRpcArrayExecutor extends AbstractJsonRpcExecutor { generator.writeStartArray(); for (int i = 0; i < rpcRequestBatch.size(); i++) { JsonRpcResponse response = processMaybeRequest(rpcRequestBatch.getValue(i)); - if (response.getType() != JsonRpcResponseType.NONE) { + if (response.getType() != RpcResponseType.NONE) { generator.writeObject(response); } } diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcObjectExecutor.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcObjectExecutor.java index d2a2cb374..70c78e9ab 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcObjectExecutor.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/JsonRpcObjectExecutor.java @@ -22,8 +22,8 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.context.ContextKey; import org.hyperledger.besu.ethereum.api.jsonrpc.execution.JsonRpcExecutor; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.io.IOException; @@ -70,7 +70,7 @@ public class JsonRpcObjectExecutor extends AbstractJsonRpcExecutor { final RoutingContext ctx) throws IOException { response.setStatusCode(status(jsonRpcResponse).code()); - if (jsonRpcResponse.getType() == JsonRpcResponseType.NONE) { + if (jsonRpcResponse.getType() == RpcResponseType.NONE) { response.end(); } else { try (final JsonResponseStreamer streamer = diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/execution/TracedJsonRpcProcessor.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/execution/TracedJsonRpcProcessor.java index c40c8f8c1..369e425b6 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/execution/TracedJsonRpcProcessor.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/execution/TracedJsonRpcProcessor.java @@ -19,11 +19,11 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestId; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.metrics.BesuMetricCategory; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.plugin.services.metrics.Counter; import org.hyperledger.besu.plugin.services.metrics.LabelledMetric; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.StatusCode; @@ -52,7 +52,7 @@ public class TracedJsonRpcProcessor implements JsonRpcProcessor { final Span metricSpan, final JsonRpcRequestContext request) { JsonRpcResponse jsonRpcResponse = rpcProcessor.process(id, method, metricSpan, request); - if (JsonRpcResponseType.ERROR == jsonRpcResponse.getType()) { + if (RpcResponseType.ERROR == jsonRpcResponse.getType()) { JsonRpcErrorResponse errorResponse = (JsonRpcErrorResponse) jsonRpcResponse; this.rpcErrorsCounter.labels(method.getName(), errorResponse.getErrorType().name()).inc(); switch (errorResponse.getErrorType()) { diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcErrorResponse.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcErrorResponse.java index 3dffff495..4cfd7a1df 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcErrorResponse.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcErrorResponse.java @@ -15,6 +15,7 @@ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; import org.hyperledger.besu.ethereum.mainnet.ValidationResult; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Arrays; import java.util.Collections; @@ -72,8 +73,8 @@ public class JsonRpcErrorResponse implements JsonRpcResponse { @Override @JsonIgnore - public JsonRpcResponseType getType() { - return JsonRpcResponseType.ERROR; + public RpcResponseType getType() { + return RpcResponseType.ERROR; } @Override diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcNoResponse.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcNoResponse.java index b7391a867..92a63174a 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcNoResponse.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcNoResponse.java @@ -14,10 +14,12 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; + public class JsonRpcNoResponse implements JsonRpcResponse { @Override - public JsonRpcResponseType getType() { - return JsonRpcResponseType.NONE; + public RpcResponseType getType() { + return RpcResponseType.NONE; } } diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponse.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponse.java index 3b308ff9d..6817d2cfb 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponse.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponse.java @@ -14,6 +14,8 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; + import com.fasterxml.jackson.annotation.JsonGetter; public interface JsonRpcResponse { @@ -23,5 +25,5 @@ public interface JsonRpcResponse { return "2.0"; } - JsonRpcResponseType getType(); + RpcResponseType getType(); } diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcSuccessResponse.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcSuccessResponse.java index 82b1b8835..e26e2cf97 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcSuccessResponse.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcSuccessResponse.java @@ -14,6 +14,8 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; + import java.util.Objects; import com.fasterxml.jackson.annotation.JsonGetter; @@ -50,8 +52,8 @@ public class JsonRpcSuccessResponse implements JsonRpcResponse { @Override @JsonIgnore - public JsonRpcResponseType getType() { - return JsonRpcResponseType.SUCCESS; + public RpcResponseType getType() { + return RpcResponseType.SUCCESS; } @Override diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcUnauthorizedResponse.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcUnauthorizedResponse.java index f59b49a30..cdf766167 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcUnauthorizedResponse.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcUnauthorizedResponse.java @@ -14,6 +14,8 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; + import java.util.Arrays; import java.util.Objects; @@ -50,8 +52,8 @@ public class JsonRpcUnauthorizedResponse implements JsonRpcResponse { @Override @JsonIgnore - public JsonRpcResponseType getType() { - return JsonRpcResponseType.UNAUTHORIZED; + public RpcResponseType getType() { + return RpcResponseType.UNAUTHORIZED; } @Override diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/ipc/JsonRpcIpcService.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/ipc/JsonRpcIpcService.java index 41214d902..b980c750d 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/ipc/JsonRpcIpcService.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/ipc/JsonRpcIpcService.java @@ -20,8 +20,8 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.execution.JsonRpcExecutor; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.io.IOException; import java.nio.file.Files; @@ -155,7 +155,7 @@ public class JsonRpcIpcService { .filter( jsonRpcResponse -> jsonRpcResponse.getType() - != JsonRpcResponseType.NONE) + != RpcResponseType.NONE) .toArray(JsonRpcResponse[]::new); socket.write( diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/WebSocketMessageHandler.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/WebSocketMessageHandler.java index d88f6cba8..da7baa508 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/WebSocketMessageHandler.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/WebSocketMessageHandler.java @@ -20,10 +20,10 @@ import org.hyperledger.besu.ethereum.api.handlers.IsAliveHandler; import org.hyperledger.besu.ethereum.api.jsonrpc.execution.JsonRpcExecutor; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.api.jsonrpc.websocket.methods.WebSocketRpcRequest; import org.hyperledger.besu.ethereum.eth.manager.EthScheduler; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.io.IOException; import java.util.ArrayList; @@ -151,7 +151,7 @@ public class WebSocketMessageHandler { jsonRpcBatchResponse.stream() .filter( jsonRpcResponse -> - jsonRpcResponse.getType() != JsonRpcResponseType.NONE) + jsonRpcResponse.getType() != RpcResponseType.NONE) .toArray(JsonRpcResponse[]::new); replyToClient(websocket, completed); }) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetBlockByNumberTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetBlockByNumberTest.java index 1c1cbaf6f..b12cdbe22 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetBlockByNumberTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetBlockByNumberTest.java @@ -26,7 +26,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcParameters; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResult; @@ -41,6 +40,7 @@ import org.hyperledger.besu.ethereum.core.Synchronizer; import org.hyperledger.besu.ethereum.core.TransactionReceipt; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.List; @@ -146,7 +146,7 @@ public class EthGetBlockByNumberTest { @Test public void errorWhenAskingFinalizedButFinalizedIsNotPresent() { JsonRpcResponse resp = method.response(requestWithParams("finalized", "false")); - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); JsonRpcErrorResponse errorResp = (JsonRpcErrorResponse) resp; assertThat(errorResp.getErrorType()).isEqualTo(RpcErrorType.UNKNOWN_BLOCK); } @@ -154,7 +154,7 @@ public class EthGetBlockByNumberTest { @Test public void errorWhenAskingSafeButSafeIsNotPresent() { JsonRpcResponse resp = method.response(requestWithParams("safe", "false")); - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); JsonRpcErrorResponse errorResp = (JsonRpcErrorResponse) resp; assertThat(errorResp.getErrorType()).isEqualTo(RpcErrorType.UNKNOWN_BLOCK); } @@ -181,7 +181,7 @@ public class EthGetBlockByNumberTest { private void assertSuccess(final String tag, final long height) { JsonRpcResponse resp = method.response(requestWithParams(tag, "false")); - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); JsonRpcSuccessResponse successResp = (JsonRpcSuccessResponse) resp; BlockResult blockResult = (BlockResult) successResp.getResult(); assertThat(blockResult.getHash()) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java index 4cb4c81cc..6936f2833 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java @@ -44,7 +44,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.EnginePaylo import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.WithdrawalParameter; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.EngineUpdateForkchoiceResult; @@ -55,6 +54,7 @@ import org.hyperledger.besu.ethereum.core.Withdrawal; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec; import org.hyperledger.besu.ethereum.mainnet.WithdrawalsValidator; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.List; import java.util.Optional; @@ -752,7 +752,7 @@ public abstract class AbstractEngineForkchoiceUpdatedTest { abstract String getMethodName(); private EngineUpdateForkchoiceResult fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) @@ -766,7 +766,7 @@ public abstract class AbstractEngineForkchoiceUpdatedTest { private void assertInvalidForkchoiceState( final JsonRpcResponse resp, final RpcErrorType jsonRpcError) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); var errorResp = (JsonRpcErrorResponse) resp; assertThat(errorResp.getErrorType()).isEqualTo(jsonRpcError); diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java index 10da8a448..9b3e94330 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java @@ -47,7 +47,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.WithdrawalR import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcError; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.EnginePayloadStatusResult; import org.hyperledger.besu.ethereum.chain.MutableBlockchain; @@ -66,6 +65,7 @@ import org.hyperledger.besu.ethereum.mainnet.WithdrawalsValidator; import org.hyperledger.besu.ethereum.mainnet.requests.RequestsValidatorCoordinator; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; import org.hyperledger.besu.plugin.services.exception.StorageException; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.ArrayList; import java.util.Collections; @@ -459,7 +459,7 @@ public abstract class AbstractEngineNewPayloadTest extends AbstractScheduledApiT } protected EnginePayloadStatusResult fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) @@ -468,7 +468,7 @@ public abstract class AbstractEngineNewPayloadTest extends AbstractScheduledApiT } protected JsonRpcError fromErrorResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); return Optional.of(resp) .map(JsonRpcErrorResponse.class::cast) .map(JsonRpcErrorResponse::getError) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeCapabilitiesTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeCapabilitiesTest.java index e3a3268aa..4ccd9318a 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeCapabilitiesTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeCapabilitiesTest.java @@ -23,8 +23,8 @@ import org.hyperledger.besu.ethereum.ProtocolContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; 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.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Collections; import java.util.List; @@ -85,7 +85,7 @@ public class EngineExchangeCapabilitiesTest { @SuppressWarnings("unchecked") private List fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeTransitionConfigurationTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeTransitionConfigurationTest.java index d3104670d..f1575f81a 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeTransitionConfigurationTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineExchangeTransitionConfigurationTest.java @@ -30,7 +30,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.EngineExchangeTransitionConfigurationParameter; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.UnsignedLongParameter; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.EngineExchangeTransitionConfigurationResult; import org.hyperledger.besu.ethereum.core.BlockHeader; @@ -39,6 +38,7 @@ import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; import org.hyperledger.besu.ethereum.core.Difficulty; import org.hyperledger.besu.ethereum.core.ParsedExtraData; import org.hyperledger.besu.evm.log.LogsBloomFilter; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.math.BigInteger; import java.util.Map; @@ -223,7 +223,7 @@ public class EngineExchangeTransitionConfigurationTest { } private EngineExchangeTransitionConfigurationResult fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByHashV1Test.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByHashV1Test.java index 42f2a5df0..8a99fa943 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByHashV1Test.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByHashV1Test.java @@ -31,7 +31,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.BlockResultFactory; @@ -40,6 +39,7 @@ import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.core.BlockBody; import org.hyperledger.besu.ethereum.core.TransactionTestFixture; import org.hyperledger.besu.ethereum.core.Withdrawal; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Collections; import java.util.List; @@ -255,7 +255,7 @@ public class EngineGetPayloadBodiesByHashV1Test { } private EngineGetPayloadBodiesResultV1 fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) @@ -264,7 +264,7 @@ public class EngineGetPayloadBodiesByHashV1Test { } private RpcErrorType fromErrorResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); return Optional.of(resp) .map(JsonRpcErrorResponse.class::cast) .map(JsonRpcErrorResponse::getErrorType) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByRangeV1Test.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByRangeV1Test.java index 60fb2ed1f..6bc89ba67 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByRangeV1Test.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineGetPayloadBodiesByRangeV1Test.java @@ -33,7 +33,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcError; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; 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.api.jsonrpc.internal.results.EngineGetPayloadBodiesResultV1; @@ -41,6 +40,7 @@ import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.core.BlockBody; import org.hyperledger.besu.ethereum.core.TransactionTestFixture; import org.hyperledger.besu.ethereum.core.Withdrawal; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Collections; import java.util.List; @@ -344,7 +344,7 @@ public class EngineGetPayloadBodiesByRangeV1Test { } private EngineGetPayloadBodiesResultV1 fromSuccessResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(resp.getType()).isEqualTo(RpcResponseType.SUCCESS); return Optional.of(resp) .map(JsonRpcSuccessResponse.class::cast) .map(JsonRpcSuccessResponse::getResult) @@ -353,7 +353,7 @@ public class EngineGetPayloadBodiesByRangeV1Test { } private JsonRpcError fromErrorResp(final JsonRpcResponse resp) { - assertThat(resp.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(resp.getType()).isEqualTo(RpcResponseType.ERROR); return Optional.of(resp) .map(JsonRpcErrorResponse.class::cast) .map(JsonRpcErrorResponse::getError) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/MultiTenancyRpcMethodDecoratorTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/MultiTenancyRpcMethodDecoratorTest.java index 880354039..d7979dccc 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/MultiTenancyRpcMethodDecoratorTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/MultiTenancyRpcMethodDecoratorTest.java @@ -22,10 +22,10 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcUnauthorizedResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import io.vertx.core.json.JsonObject; import io.vertx.ext.auth.User; @@ -58,7 +58,7 @@ public class MultiTenancyRpcMethodDecoratorTest { assertThat(tokenRpcDecorator.getName()).isEqualTo("delegate"); final JsonRpcResponse response = tokenRpcDecorator.response(rpcRequestContext); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final JsonRpcSuccessResponse successResponse = (JsonRpcSuccessResponse) response; assertThat(successResponse.getResult()).isEqualTo("b"); } @@ -73,7 +73,7 @@ public class MultiTenancyRpcMethodDecoratorTest { assertThat(tokenRpcDecorator.getName()).isEqualTo("delegate"); final JsonRpcResponse response = tokenRpcDecorator.response(rpcRequestContext); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.UNAUTHORIZED); + assertThat(response.getType()).isEqualTo(RpcResponseType.UNAUTHORIZED); final JsonRpcUnauthorizedResponse errorResponse = (JsonRpcUnauthorizedResponse) response; assertThat(errorResponse.getErrorType()).isEqualTo(RpcErrorType.UNAUTHORIZED); } @@ -89,7 +89,7 @@ public class MultiTenancyRpcMethodDecoratorTest { assertThat(tokenRpcDecorator.getName()).isEqualTo("delegate"); final JsonRpcResponse response = tokenRpcDecorator.response(rpcRequestContext); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); final JsonRpcErrorResponse errorResponse = (JsonRpcErrorResponse) response; assertThat(errorResponse.getErrorType()).isEqualTo(RpcErrorType.INVALID_REQUEST); } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDebugGetStateRootTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDebugGetStateRootTest.java index 7c2b61626..a7a4f6f59 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDebugGetStateRootTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDebugGetStateRootTest.java @@ -33,11 +33,11 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.BlockParame import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.PrivacyIdProvider; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.privacy.PrivacyController; import org.hyperledger.besu.ethereum.privacy.RestrictedDefaultPrivacyController; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Collections; import java.util.Optional; @@ -91,7 +91,7 @@ public class PrivDebugGetStateRootTest { when(privacyController.findPrivacyGroupByGroupId(anyString(), anyString())) .thenReturn(Optional.empty()); final JsonRpcResponse response = method.response(request("not_base64", "latest")); - assertThat(response.getType()).isEqualByComparingTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualByComparingTo(RpcResponseType.ERROR); assertThat(((JsonRpcErrorResponse) response).getError().getMessage()) .contains(FIND_PRIVACY_GROUP_ERROR.getMessage()); } @@ -102,7 +102,7 @@ public class PrivDebugGetStateRootTest { .thenReturn(Optional.empty()); final String invalidGroupId = Base64.toBase64String("invalid_group_id".getBytes(UTF_8)); final JsonRpcResponse response = method.response(request(invalidGroupId, "latest")); - assertThat(response.getType()).isEqualByComparingTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualByComparingTo(RpcResponseType.ERROR); assertThat(((JsonRpcErrorResponse) response).getError().getMessage()) .contains(FIND_PRIVACY_GROUP_ERROR.getMessage()); } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/MutableJsonRpcSuccessResponse.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/MutableJsonRpcSuccessResponse.java index 7e61830ce..a9b9376dc 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/MutableJsonRpcSuccessResponse.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/MutableJsonRpcSuccessResponse.java @@ -14,6 +14,8 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; + import java.util.Objects; import com.fasterxml.jackson.annotation.JsonGetter; @@ -74,8 +76,8 @@ public class MutableJsonRpcSuccessResponse { } @JsonIgnore - public JsonRpcResponseType getType() { - return JsonRpcResponseType.SUCCESS; + public RpcResponseType getType() { + return RpcResponseType.SUCCESS; } @Override diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/PrivacyApiGroupJsonRpcMethodsTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/PrivacyApiGroupJsonRpcMethodsTest.java index ab7b90735..52a875a4c 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/PrivacyApiGroupJsonRpcMethodsTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/PrivacyApiGroupJsonRpcMethodsTest.java @@ -27,7 +27,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.MultiT import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.PrivacyIdProvider; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.core.PrivacyParameters; import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool; @@ -35,6 +34,7 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.privacy.MultiTenancyPrivacyController; import org.hyperledger.besu.ethereum.privacy.PrivacyController; import org.hyperledger.besu.plugin.services.privacy.PrivateMarkerTransactionFactory; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.util.Map; import java.util.Optional; @@ -140,7 +140,7 @@ public class PrivacyApiGroupJsonRpcMethodsTest { final JsonRpcRequestContext request = new JsonRpcRequestContext(new JsonRpcRequest("2.0", "priv_method", null)); final JsonRpcResponse response = privMethod.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); JsonRpcErrorResponse errorResponse = (JsonRpcErrorResponse) response; assertThat(errorResponse.getErrorType()).isEqualTo(PRIVACY_NOT_ENABLED); diff --git a/ethereum/retesteth/src/test/java/org/hyperledger/besu/ethereum/retesteth/methods/TestImportRawBlockTest.java b/ethereum/retesteth/src/test/java/org/hyperledger/besu/ethereum/retesteth/methods/TestImportRawBlockTest.java index 764962353..b156f2294 100644 --- a/ethereum/retesteth/src/test/java/org/hyperledger/besu/ethereum/retesteth/methods/TestImportRawBlockTest.java +++ b/ethereum/retesteth/src/test/java/org/hyperledger/besu/ethereum/retesteth/methods/TestImportRawBlockTest.java @@ -19,10 +19,10 @@ import static org.assertj.core.api.Assertions.assertThat; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponseType; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.retesteth.RetestethContext; +import org.hyperledger.besu.plugin.services.rpc.RpcResponseType; import java.io.IOException; @@ -69,7 +69,7 @@ public class TestImportRawBlockTest { "2.0", TestImportRawBlock.METHOD_NAME, new Object[] {rawBlockRLPString})); final var response = test_importRawBlock.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); assertThat(((JsonRpcErrorResponse) response).getErrorType()) .isEqualTo(RpcErrorType.BLOCK_IMPORT_ERROR); } @@ -84,7 +84,7 @@ public class TestImportRawBlockTest { "2.0", TestImportRawBlock.METHOD_NAME, new Object[] {rawBlockRLPString})); final var response = test_importRawBlock.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.ERROR); + assertThat(response.getType()).isEqualTo(RpcResponseType.ERROR); assertThat(((JsonRpcErrorResponse) response).getErrorType()) .isEqualTo(RpcErrorType.BLOCK_RLP_IMPORT_ERROR); } @@ -100,7 +100,7 @@ public class TestImportRawBlockTest { "2.0", TestImportRawBlock.METHOD_NAME, new Object[] {rawBlockRLPString})); final var response = test_importRawBlock.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); } @Test @@ -118,11 +118,11 @@ public class TestImportRawBlockTest { new JsonRpcRequest("2.0", TestRewindToBlock.METHOD_NAME, new Object[] {0L})); final var response = test_importRawBlock.response(request); - assertThat(response.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(response.getType()).isEqualTo(RpcResponseType.SUCCESS); final var rewindResponse = test_rewindToBlock.response(requestRewind); - assertThat(rewindResponse.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(rewindResponse.getType()).isEqualTo(RpcResponseType.SUCCESS); final var reimportResponse = test_importRawBlock.response(request); - assertThat(reimportResponse.getType()).isEqualTo(JsonRpcResponseType.SUCCESS); + assertThat(reimportResponse.getType()).isEqualTo(RpcResponseType.SUCCESS); assertThat(context.getBlockchain().getChainHead().getHeight()).isEqualTo(1L); } diff --git a/plugin-api/build.gradle b/plugin-api/build.gradle index 81e66a06a..0d593b110 100644 --- a/plugin-api/build.gradle +++ b/plugin-api/build.gradle @@ -70,7 +70,7 @@ Calculated : ${currentHash} tasks.register('checkAPIChanges', FileStateChecker) { description = "Checks that the API for the Plugin-API project does not change without deliberate thought" files = sourceSets.main.allJava.files - knownHash = '6L5dNJ975Ka/X7g4lTdpkBvPQrJgJu+vAf/m1dFCneU=' + knownHash = 'oPsVhFhdIkzHqD+jjwRX7dbgeNeKbpCmPjiBWDdMV7o=' } check.dependsOn('checkAPIChanges') diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponseType.java b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/rpc/RpcResponseType.java similarity index 67% rename from ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponseType.java rename to plugin-api/src/main/java/org/hyperledger/besu/plugin/services/rpc/RpcResponseType.java index 9d5be9c43..b02b45c85 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/response/JsonRpcResponseType.java +++ b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/rpc/RpcResponseType.java @@ -1,5 +1,5 @@ /* - * Copyright ConsenSys AG. + * Copyright contributors to Hyperledger Besu. * * 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 @@ -12,12 +12,16 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.api.jsonrpc.internal.response; +package org.hyperledger.besu.plugin.services.rpc; -/** Various types of responses that the JSON-RPC component may produce. */ -public enum JsonRpcResponseType { +/** Various types of responses that the RPC component may produce. */ +public enum RpcResponseType { + /** No response */ NONE, + /** Successful response */ SUCCESS, + /** Error response */ ERROR, + /** Not authorized response */ UNAUTHORIZED }