Skip to content
This repository was archived by the owner on Aug 30, 2022. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,6 @@ lint/outputs/
lint/tmp/
# lint/reports/

gradle.properties
gradle.properties

.DS_STORE
13 changes: 10 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
apply plugin: 'com.android.application'
apply plugin: 'com.jfrog.artifactory'

android {
compileSdkVersion 28

compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}

defaultConfig {
applicationId "one.block.testeosiojavarpcprovider"
minSdkVersion 21
Expand Down Expand Up @@ -38,11 +45,11 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0-beta01'

implementation project(':eosiojavarpcprovider')
implementation 'one.block:eosiojava:0.1.2'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'

implementation project(':eosiojavarpcprovider')
implementation 'one.block:eosiojava:0.2.0-amqp9'
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
import one.block.eosiojava.models.rpcProvider.request.GetBlockRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRawAbiRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRequiredKeysRequest;
import one.block.eosiojava.models.rpcProvider.request.PushTransactionRequest;
import one.block.eosiojava.models.rpcProvider.request.SendTransactionRequest;
import one.block.eosiojava.models.rpcProvider.response.GetBlockResponse;
import one.block.eosiojava.models.rpcProvider.response.GetInfoResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRawAbiResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRequiredKeysResponse;
import one.block.eosiojava.models.rpcProvider.response.PushTransactionResponse;
import one.block.eosiojava.models.rpcProvider.response.SendTransactionResponse;
import one.block.eosiojava.models.rpcProvider.response.RPCResponseError;
import one.block.eosiojava.models.rpcProvider.response.RpcError;
import one.block.eosiojavarpcprovider.error.EosioJavaRpcProviderCallError;
Expand Down Expand Up @@ -184,10 +184,10 @@ public void getRequiredKeysTest() {
}

@Test
public void pushTransactionTest() {
public void sendTransactionTest() {

MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse().setResponseCode(200).setBody(PUSH_TRANSACTION_RESPONSE));
server.enqueue(new MockResponse().setResponseCode(200).setBody(SEND_TRANSACTION_RESPONSE));

try {
server.start();
Expand All @@ -198,16 +198,16 @@ public void pushTransactionTest() {

List<String> signatures = new ArrayList<>();
signatures.add("SIG_K1_JzFA9ffefWfrTBvpwMwZi81kR6tvHF4mfsRekVXrBjLWWikg9g1FrS9WupYuoGaRew5mJhr4d39tHUjHiNCkxamtEfxi68");
PushTransactionRequest request = new PushTransactionRequest(signatures,
SendTransactionRequest request = new SendTransactionRequest(signatures,
0,
"",
"C62A4F5C1CEF3D6D71BD000000000290AFC2D800EA3055000000405DA7ADBA0072CBDD956F52ACD910C3C958136D72F8560D1846BC7CF3157F5FBFB72D3001DE4597F4A1FDBECDA6D59C96A43009FC5E5D7B8F639B1269C77CEC718460DCC19CB30100A6823403EA3055000000572D3CCDCD0143864D5AF0FE294D44D19C612036CBE8C098414C4A12A5A7BB0BFE7DB155624800A6823403EA3055000000572D3CCDCD0100AEAA4AC15CFD4500000000A8ED32323B00AEAA4AC15CFD4500000060D234CD3DA06806000000000004454F53000000001A746865206772617373686F70706572206C69657320686561767900");
PushTransactionResponse response = rpcProvider.pushTransaction(request);
SendTransactionResponse response = rpcProvider.sendTransaction(request);
assertNotNull(response);
assertEquals("ae735820e26a7b771e1b522186294d7cbba035d0c31ca88237559d6c0a3bf00a",
response.getTransactionId());
} catch (Exception ex) {
fail("Should not get exception when calling pushTransaction(): " + ex.getLocalizedMessage()
fail("Should not get exception when calling sendTransaction(): " + ex.getLocalizedMessage()
+ "\n" + getStackTraceString(ex));
} finally {
try {
Expand All @@ -223,7 +223,7 @@ public void pushTransactionTest() {
public void pushTransactionErrorTest() {

MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse().setResponseCode(500).setBody(PUSH_TRANSACTION_ERROR_RESPONSE));
server.enqueue(new MockResponse().setResponseCode(500).setBody(SEND_TRANSACTION_ERROR_RESPONSE));

try {
server.start();
Expand All @@ -234,14 +234,14 @@ public void pushTransactionErrorTest() {

List<String> signatures = new ArrayList<>();
signatures.add("SIG_K1_JzFA9ffefWfrTBvpwMwZi81kR6tvHF4mfsRekVXrBjLWWikg9g1FrS9WupYuoGaRew5mJhr4d39tHUjHiNCkxamtEfxi68");
PushTransactionRequest request = new PushTransactionRequest(signatures,
SendTransactionRequest request = new SendTransactionRequest(signatures,
0,
"",
"C62A4F5C1CEF3D6D71BD000000000290AFC2D800EA3055000000405DA7ADBA0072CBDD956F52ACD910C3C958136D72F8560D1846BC7CF3157F5FBFB72D3001DE4597F4A1FDBECDA6D59C96A43009FC5E5D7B8F639B1269C77CEC718460DCC19CB30100A6823403EA3055000000572D3CCDCD0143864D5AF0FE294D44D19C612036CBE8C098414C4A12A5A7BB0BFE7DB155624800A6823403EA3055000000572D3CCDCD0100AEAA4AC15CFD4500000000A8ED32323B00AEAA4AC15CFD4500000060D234CD3DA06806000000000004454F53000000001A746865206772617373686F70706572206C69657320686561767900");
PushTransactionResponse response = rpcProvider.pushTransaction(request);
SendTransactionResponse response = rpcProvider.sendTransaction(request);
fail("Push transaction should not succeed.");
} catch (Exception ex) {
assertEquals("Error pushing transaction.", ex.getLocalizedMessage());
assertEquals("Error sending transaction.", ex.getLocalizedMessage());
assertNotNull(ex.getCause());
assertEquals("Bad status code: 500 (Server Error), returned from server. Additional error information: See further error information in RPCProviderError.", ex.getCause().getMessage());
RPCResponseError rpcResponseError = ((EosioJavaRpcProviderCallError)ex.getCause()).getRpcResponseError();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class RpcTestContants {
+ " ]\n"
+ "}";

public static final String PUSH_TRANSACTION_RESPONSE = "{\n"
public static final String SEND_TRANSACTION_RESPONSE = "{\n"
+ " \"transaction_id\": \"ae735820e26a7b771e1b522186294d7cbba035d0c31ca88237559d6c0a3bf00a\",\n"
+ " \"processed\": {\n"
+ " \"id\": \"ae735820e26a7b771e1b522186294d7cbba035d0c31ca88237559d6c0a3bf00a\",\n"
Expand Down Expand Up @@ -245,7 +245,7 @@ public class RpcTestContants {
+ " }\n"
+ "}";

public static final String PUSH_TRANSACTION_ERROR_RESPONSE = "{\n"
public static final String SEND_TRANSACTION_ERROR_RESPONSE = "{\n"
+ " \"code\": 500,\n"
+ " \"message\": \"Internal Service Error\",\n"
+ " \"error\": {\n"
Expand Down Expand Up @@ -347,8 +347,8 @@ public class RpcTestContants {
"]";

public static final String PUSH_TRANSACTIONS_RESPONSE = "[" +
PUSH_TRANSACTION_RESPONSE + "," +
PUSH_TRANSACTION_RESPONSE +
SEND_TRANSACTION_RESPONSE + "," +
SEND_TRANSACTION_RESPONSE +
"]";

public static final String GET_BLOCK_HEADER_STATE_REQUEST = "{\n" +
Expand Down
9 changes: 7 additions & 2 deletions eosiojavarpcprovider/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ apply plugin: 'maven-publish'
android {
compileSdkVersion 28

compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}

defaultConfig {
minSdkVersion 21
targetSdkVersion 28
Expand All @@ -29,7 +34,7 @@ android {

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api 'one.block:eosiojava:0.1.2'
implementation 'one.block:eosiojava:0.2.0-amqp9'

implementation 'org.jetbrains:annotations:17.0.0'
api 'com.squareup.retrofit2:retrofit:2.5.0'
Expand All @@ -46,7 +51,7 @@ dependencies {

def libraryGroupId = 'one.block'
def libraryArtifactId = 'eosiojavarpcprovider'
def libraryVersion = '0.1.1'
def libraryVersion = '0.2.0-amqp'

task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import one.block.eosiojava.models.rpcProvider.request.GetBlockRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRawAbiRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRequiredKeysRequest;
import one.block.eosiojava.models.rpcProvider.request.PushTransactionRequest;
import one.block.eosiojava.models.rpcProvider.request.SendTransactionRequest;
import one.block.eosiojava.models.rpcProvider.response.RPCResponseError;
import one.block.eosiojavarpcprovider.implementations.EosioJavaRpcProviderImpl;

Expand Down Expand Up @@ -44,9 +44,9 @@ public class EosioJavaRpcErrorConstants {
public static final String RPC_PROVIDER_ERROR_GETTING_REQUIRED_KEYS = "Error retrieving required keys.";

/**
* Error message gets thrown if {@link EosioJavaRpcProviderImpl#pushTransaction(PushTransactionRequest)} returns error.
* Error message gets thrown if {@link EosioJavaRpcProviderImpl#sendTransaction(SendTransactionRequest)} returns error.
*/
public static final String RPC_PROVIDER_ERROR_PUSHING_TRANSACTION = "Error pushing transaction.";
public static final String RPC_PROVIDER_ERROR_SENDING_TRANSACTION = "Error sending transaction.";

/**
* Error message gets thrown if {@link EosioJavaRpcProviderImpl#pushTransactions(RequestBody)} returns error.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,19 @@
import one.block.eosiojava.error.rpcProvider.GetInfoRpcError;
import one.block.eosiojava.error.rpcProvider.GetRawAbiRpcError;
import one.block.eosiojava.error.rpcProvider.GetRequiredKeysRpcError;
import one.block.eosiojava.error.rpcProvider.PushTransactionRpcError;
import one.block.eosiojava.error.rpcProvider.RpcProviderError;
import one.block.eosiojava.error.rpcProvider.SendTransactionRpcError;
import one.block.eosiojava.interfaces.IRPCProvider;
import one.block.eosiojava.models.rpcProvider.request.GetBlockRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRawAbiRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRequiredKeysRequest;
import one.block.eosiojava.models.rpcProvider.request.PushTransactionRequest;
import one.block.eosiojava.models.rpcProvider.request.SendTransactionRequest;
import one.block.eosiojava.models.rpcProvider.response.GetBlockResponse;
import one.block.eosiojava.models.rpcProvider.response.GetInfoResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRawAbiResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRequiredKeysResponse;
import one.block.eosiojava.models.rpcProvider.response.PushTransactionResponse;
import one.block.eosiojava.models.rpcProvider.response.RPCResponseError;
import one.block.eosiojavarpcprovider.BuildConfig;
import one.block.eosiojava.models.rpcProvider.response.SendTransactionResponse;
import one.block.eosiojavarpcprovider.error.EosioJavaRpcErrorConstants;
import one.block.eosiojavarpcprovider.error.EosioJavaRpcProviderCallError;
import one.block.eosiojavarpcprovider.error.EosioJavaRpcProviderInitializerError;
Expand Down Expand Up @@ -201,19 +200,18 @@ private <O> O processCall(Call<O> call) throws Exception {
}

/**
* Push a given transaction to the blockchain and process the response.
* @param pushTransactionRequest the transaction to push with signatures.
* @return PushTransactionResponse on successful return.
* @throws PushTransactionRpcError Thrown if any errors occur calling or processing the request.
* Send a given transaction to the blockchain and process the response.
* @param sendTransactionRequest the transaction to send with signatures.
* @return SendTransactionResponse on successful return.
* @throws SendTransactionRpcError Thrown if any errors occur calling or processing the request.
*/
@Override
public @NotNull PushTransactionResponse pushTransaction(
PushTransactionRequest pushTransactionRequest) throws PushTransactionRpcError {
public @NotNull SendTransactionResponse sendTransaction(
SendTransactionRequest sendTransactionRequest) throws SendTransactionRpcError {
try {
Call<PushTransactionResponse> syncCall = this.rpcProviderApi.pushTransaction(pushTransactionRequest);
Call<SendTransactionResponse> syncCall = this.rpcProviderApi.sendTransaction(sendTransactionRequest);
return processCall(syncCall);
} catch (Exception ex) {
throw new PushTransactionRpcError(EosioJavaRpcErrorConstants.RPC_PROVIDER_ERROR_PUSHING_TRANSACTION,
throw new SendTransactionRpcError(EosioJavaRpcErrorConstants.RPC_PROVIDER_ERROR_SENDING_TRANSACTION,
ex);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
import one.block.eosiojava.models.rpcProvider.request.GetBlockRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRawAbiRequest;
import one.block.eosiojava.models.rpcProvider.request.GetRequiredKeysRequest;
import one.block.eosiojava.models.rpcProvider.request.PushTransactionRequest;
import one.block.eosiojava.models.rpcProvider.request.SendTransactionRequest;
import one.block.eosiojava.models.rpcProvider.response.GetBlockResponse;
import one.block.eosiojava.models.rpcProvider.response.GetInfoResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRawAbiResponse;
import one.block.eosiojava.models.rpcProvider.response.GetRequiredKeysResponse;
import one.block.eosiojava.models.rpcProvider.response.PushTransactionResponse;
import one.block.eosiojava.models.rpcProvider.response.SendTransactionResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
Expand Down Expand Up @@ -65,14 +65,14 @@ public interface IEosioJavaRpcProviderApi {
Call<GetRequiredKeysResponse> getRequiredKeys(@Body GetRequiredKeysRequest getRequiredKeysRequest);

/**
* Retrofit POST call to "chain/push_transaction" to an EOSIO blockchain.
* This method gets called from {@link EosioJavaRpcProviderImpl#pushTransaction(PushTransactionRequest)} to Push transaction RPC call to broadcast a transaction to backend
* Retrofit POST call to "chain/send_transaction" to an EOSIO blockchain.
* This method gets called from {@link EosioJavaRpcProviderImpl#sendTransaction(SendTransactionRequest)} to Send transaction RPC call to broadcast a transaction to backend
*
* @param pushTransactionRequest the transaction to push with signatures.
* @return Executable {@link Call} to return {@link PushTransactionResponse} has the push transaction response
* @param sendTransactionRequest the transaction to push with signatures.
* @return Executable {@link Call} to return {@link SendTransactionResponse} has the send transaction response
*/
@POST("v1/chain/push_transaction")
Call<PushTransactionResponse> pushTransaction(@Body PushTransactionRequest pushTransactionRequest);
@POST("v1/chain/send_transaction")
Call<SendTransactionResponse> sendTransaction(@Body SendTransactionRequest sendTransactionRequest);
//endregion


Expand Down