Skip to content

Commit

Permalink
Refactors eeaGetTransactionReceipt to PrivGetTransactionReceipt
Browse files Browse the repository at this point in the history
Signed-off-by: Joshua Richardson <[email protected]>
  • Loading branch information
josh-richardson committed Sep 16, 2019
1 parent 79bd915 commit ac11f99
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
import org.web3j.protocol.pantheon.Pantheon;
import org.web3j.tx.response.PollingPrivateTransactionReceiptProcessor;

public class EeaGetTransactionReceiptTransaction implements Transaction<PrivateTransactionReceipt> {
public class PrivGetTransactionReceiptTransaction implements Transaction<PrivateTransactionReceipt> {

private final String transactionHash;

public EeaGetTransactionReceiptTransaction(final String transactionHash) {
public PrivGetTransactionReceiptTransaction(final String transactionHash) {
this.transactionHash = transactionHash;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
package org.hyperledger.besu.tests.acceptance.dsl.privacy.transaction;

import org.hyperledger.besu.tests.acceptance.dsl.privacy.PrivacyNode;
import org.hyperledger.besu.tests.acceptance.dsl.privacy.condition.EeaGetTransactionReceiptTransaction;
import org.hyperledger.besu.tests.acceptance.dsl.privacy.condition.PrivGetTransactionReceiptTransaction;

import java.util.List;

public class PrivacyTransactions {

public EeaGetTransactionReceiptTransaction getPrivateTransactionReceipt(
public PrivGetTransactionReceiptTransaction getPrivateTransactionReceipt(
final String transactionHash) {
return new EeaGetTransactionReceiptTransaction(transactionHash);
return new PrivGetTransactionReceiptTransaction(transactionHash);
}

public CreatePrivacyGroupTransaction createPrivacyGroup(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.permissioning.PermRemoveNodesFromWhitelist;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonRpcParameter;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea.EeaGetTransactionCount;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea.EeaGetTransactionReceipt;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.priv.PrevGetTransactionReceipt;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea.EeaPrivateNonceProvider;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea.EeaSendRawTransaction;
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.priv.PrivCreatePrivacyGroup;
Expand Down Expand Up @@ -363,14 +363,14 @@ blockchainQueries, new TransactionTracer(blockReplay), parameter),
if (eea) {
addMethods(
enabledMethods,
new EeaGetTransactionReceipt(blockchainQueries, enclave, parameter, privacyParameters),
new EeaSendRawTransaction(privateTransactionHandler, transactionPool, parameter),
new EeaGetTransactionCount(
parameter, new EeaPrivateNonceProvider(enclave, privateTransactionHandler)));
}
if (priv) {
addMethods(
enabledMethods,
new PrevGetTransactionReceipt(blockchainQueries, enclave, parameter, privacyParameters),
new PrivCreatePrivacyGroup(
new Enclave(privacyParameters.getEnclaveUri()), privacyParameters, parameter),
new PrivDeletePrivacyGroup(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public enum RpcMethod {
PRIV_GET_PRIVATE_TRANSACTION("priv_getPrivateTransaction"),
PRIV_GET_TRANSACTION_COUNT("priv_getTransactionCount"),
PRIV_GET_PRIVACY_PRECOMPILE_ADDRESS("priv_getPrivacyPrecompileAddress"),
EEA_GET_TRANSACTION_RECEIPT("eea_getTransactionReceipt"),
PRIV_GET_TRANSACTION_RECEIPT("priv_getTransactionReceipt"),
PRIV_CREATE_PRIVACY_GROUP("priv_createPrivacyGroup"),
PRIV_DELETE_PRIVACY_GROUP("priv_deletePrivacyGroup"),
PRIV_FIND_PRIVACY_GROUP("priv_findPrivacyGroup"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* 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.
*/
package org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea;
package org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.priv;

import static org.apache.logging.log4j.LogManager.getLogger;

Expand Down Expand Up @@ -48,7 +48,7 @@

import org.apache.logging.log4j.Logger;

public class EeaGetTransactionReceipt implements JsonRpcMethod {
public class PrevGetTransactionReceipt implements JsonRpcMethod {

private static final Logger LOG = getLogger();

Expand All @@ -57,7 +57,7 @@ public class EeaGetTransactionReceipt implements JsonRpcMethod {
private final JsonRpcParameter parameters;
private final PrivacyParameters privacyParameters;

public EeaGetTransactionReceipt(
public PrevGetTransactionReceipt(
final BlockchainQueries blockchain,
final Enclave enclave,
final JsonRpcParameter parameters,
Expand All @@ -70,12 +70,12 @@ public EeaGetTransactionReceipt(

@Override
public String getName() {
return RpcMethod.EEA_GET_TRANSACTION_RECEIPT.getMethodName();
return RpcMethod.PRIV_GET_TRANSACTION_RECEIPT.getMethodName();
}

@Override
public JsonRpcResponse response(final JsonRpcRequest request) {
LOG.trace("Executing {}", RpcMethod.EEA_GET_TRANSACTION_RECEIPT.getMethodName());
LOG.trace("Executing {}", RpcMethod.PRIV_GET_TRANSACTION_RECEIPT.getMethodName());
final Hash transactionHash = parameters.required(request.getParams(), 0, Hash.class);
final Optional<TransactionLocation> maybeLocation =
blockchain.getBlockchain().getTransactionLocation(transactionHash);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,9 @@
* 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.
*/
package org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.eea;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowable;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
package org.hyperledger.besu.ethereum.api.jsonrpc.internal.privacy.methods.priv;

import com.google.common.collect.Lists;
import org.hyperledger.besu.crypto.SECP256K1;
import org.hyperledger.besu.enclave.Enclave;
import org.hyperledger.besu.enclave.EnclaveException;
Expand All @@ -45,19 +38,25 @@
import org.hyperledger.besu.ethereum.rlp.RLP;
import org.hyperledger.besu.util.bytes.Bytes32;
import org.hyperledger.besu.util.bytes.BytesValue;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.math.BigInteger;
import java.util.Base64;
import java.util.Collections;
import java.util.Optional;

import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowable;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class EeaGetTransactionReceiptTest {
public class PrivGetTransactionReceiptTest {

@Rule public final TemporaryFolder temp = new TemporaryFolder();

Expand Down Expand Up @@ -161,13 +160,13 @@ public void setUp() {

@Test
public void returnReceiptIfTransactionExists() {
final EeaGetTransactionReceipt eeaGetTransactionReceipt =
new EeaGetTransactionReceipt(blockchainQueries, enclave, parameters, privacyParameters);
final PrevGetTransactionReceipt prevGetTransactionReceipt =
new PrevGetTransactionReceipt(blockchainQueries, enclave, parameters, privacyParameters);
final Object[] params = new Object[] {transaction.hash()};
final JsonRpcRequest request = new JsonRpcRequest("1", "eea_getTransactionReceipt", params);
final JsonRpcRequest request = new JsonRpcRequest("1", "priv_getTransactionReceipt", params);

final JsonRpcSuccessResponse response =
(JsonRpcSuccessResponse) eeaGetTransactionReceipt.response(request);
(JsonRpcSuccessResponse) prevGetTransactionReceipt.response(request);
final PrivateTransactionReceiptResult result =
(PrivateTransactionReceiptResult) response.getResult();

Expand All @@ -179,14 +178,14 @@ public void enclavePayloadNotFoundResultsInSuccessButNullResponse() {
when(failingEnclave.receive(any(ReceiveRequest.class)))
.thenThrow(new EnclaveException("EnclavePayloadNotFound"));

final EeaGetTransactionReceipt eeaGetTransactionReceipt =
new EeaGetTransactionReceipt(
final PrevGetTransactionReceipt prevGetTransactionReceipt =
new PrevGetTransactionReceipt(
blockchainQueries, failingEnclave, parameters, privacyParameters);
final Object[] params = new Object[] {transaction.hash()};
final JsonRpcRequest request = new JsonRpcRequest("1", "eea_getTransactionReceipt", params);
final JsonRpcRequest request = new JsonRpcRequest("1", "priv_getTransactionReceipt", params);

final JsonRpcSuccessResponse response =
(JsonRpcSuccessResponse) eeaGetTransactionReceipt.response(request);
(JsonRpcSuccessResponse) prevGetTransactionReceipt.response(request);
final PrivateTransactionReceiptResult result =
(PrivateTransactionReceiptResult) response.getResult();

Expand All @@ -197,13 +196,13 @@ public void enclavePayloadNotFoundResultsInSuccessButNullResponse() {
public void markerTransactionNotAvailableResultsInNullResponse() {
when(blockchain.getTransactionLocation(nullable(Hash.class))).thenReturn(Optional.empty());

final EeaGetTransactionReceipt eeaGetTransactionReceipt =
new EeaGetTransactionReceipt(blockchainQueries, enclave, parameters, privacyParameters);
final PrevGetTransactionReceipt prevGetTransactionReceipt =
new PrevGetTransactionReceipt(blockchainQueries, enclave, parameters, privacyParameters);
final Object[] params = new Object[] {transaction.hash()};
final JsonRpcRequest request = new JsonRpcRequest("1", "eea_getTransactionReceipt", params);
final JsonRpcRequest request = new JsonRpcRequest("1", "priv_getTransactionReceipt", params);

final JsonRpcSuccessResponse response =
(JsonRpcSuccessResponse) eeaGetTransactionReceipt.response(request);
(JsonRpcSuccessResponse) prevGetTransactionReceipt.response(request);
final PrivateTransactionReceiptResult result =
(PrivateTransactionReceiptResult) response.getResult();

Expand All @@ -212,13 +211,13 @@ public void markerTransactionNotAvailableResultsInNullResponse() {

@Test
public void enclaveConnectionIssueThrowsRuntimeException() {
final EeaGetTransactionReceipt eeaGetTransactionReceipt =
new EeaGetTransactionReceipt(
final PrevGetTransactionReceipt prevGetTransactionReceipt =
new PrevGetTransactionReceipt(
blockchainQueries, failingEnclave, parameters, privacyParameters);
final Object[] params = new Object[] {transaction.hash()};
final JsonRpcRequest request = new JsonRpcRequest("1", "eea_getTransactionReceipt", params);
final JsonRpcRequest request = new JsonRpcRequest("1", "priv_getTransactionReceipt", params);

final Throwable t = catchThrowable(() -> eeaGetTransactionReceipt.response(request));
final Throwable t = catchThrowable(() -> prevGetTransactionReceipt.response(request));
assertThat(t).isInstanceOf(RuntimeException.class);
}
}

0 comments on commit ac11f99

Please sign in to comment.