Introducing node hop feature to some blockchain API handler classes (GetRequiredFees, GetTradeHistory, ListAssets, LookupAccounts, LookupAssetSymbols and TransactionBroadcastSequence)
This commit is contained in:
parent
7313279f95
commit
5a58cf5579
7 changed files with 177 additions and 22 deletions
|
@ -31,12 +31,19 @@ public class GetRequiredFees extends WebSocketAdapter {
|
||||||
private List<BaseOperation> operations;
|
private List<BaseOperation> operations;
|
||||||
private Asset asset;
|
private Asset asset;
|
||||||
|
|
||||||
public GetRequiredFees(List<BaseOperation> operations, Asset asset, WitnessResponseListener listener){
|
private boolean mOneTime;
|
||||||
|
|
||||||
|
public GetRequiredFees(List<BaseOperation> operations, Asset asset, boolean oneTime, WitnessResponseListener listener){
|
||||||
this.operations = operations;
|
this.operations = operations;
|
||||||
this.asset = asset;
|
this.asset = asset;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GetRequiredFees(List<BaseOperation> operations, Asset asset, WitnessResponseListener listener){
|
||||||
|
this(operations, asset, true, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
||||||
ArrayList<Serializable> accountParams = new ArrayList<>();
|
ArrayList<Serializable> accountParams = new ArrayList<>();
|
||||||
|
@ -66,12 +73,16 @@ public class GetRequiredFees extends WebSocketAdapter {
|
||||||
@Override
|
@Override
|
||||||
public void onError(WebSocket websocket, WebSocketException cause) throws Exception {
|
public void onError(WebSocket websocket, WebSocketException cause) throws Exception {
|
||||||
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCallbackError(WebSocket websocket, Throwable cause) throws Exception {
|
public void handleCallbackError(WebSocket websocket, Throwable cause) throws Exception {
|
||||||
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -29,16 +29,23 @@ public class GetTradeHistory extends BaseGrapheneHandler {
|
||||||
private int limit;
|
private int limit;
|
||||||
private WitnessResponseListener mListener;
|
private WitnessResponseListener mListener;
|
||||||
|
|
||||||
public GetTradeHistory(String a, String b, String toTime, String fromTime,int limit, WitnessResponseListener mListener) {
|
private boolean mOneTime;
|
||||||
|
|
||||||
|
public GetTradeHistory(String a, String b, String toTime, String fromTime,int limit, boolean oneTime, WitnessResponseListener mListener) {
|
||||||
super(mListener);
|
super(mListener);
|
||||||
this.a = a;
|
this.a = a;
|
||||||
this.b = b;
|
this.b = b;
|
||||||
this.toTime = toTime;
|
this.toTime = toTime;
|
||||||
this.fromTime = fromTime;
|
this.fromTime = fromTime;
|
||||||
this.limit = limit;
|
this.limit = limit;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
this.mListener = mListener;
|
this.mListener = mListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GetTradeHistory(String a, String b, String toTime, String fromTime,int limit, WitnessResponseListener mListener) {
|
||||||
|
this(a, b, toTime, fromTime, limit, true, mListener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
||||||
ArrayList<Serializable> accountParams = new ArrayList<>();
|
ArrayList<Serializable> accountParams = new ArrayList<>();
|
||||||
|
@ -72,8 +79,10 @@ public class GetTradeHistory extends BaseGrapheneHandler {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
||||||
|
|
|
@ -45,16 +45,29 @@ public class ListAssets extends BaseGrapheneHandler {
|
||||||
private int limit;
|
private int limit;
|
||||||
private int requestCounter = 0;
|
private int requestCounter = 0;
|
||||||
|
|
||||||
|
private boolean mOneTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
* @param lowerBoundSymbol: Lower bound of symbol names to retrieve
|
* @param lowerBoundSymbol: Lower bound of symbol names to retrieve
|
||||||
* @param limit: Maximum number of assets to fetch, if the constant LIST_ALL
|
* @param limit: Maximum number of assets to fetch, if the constant LIST_ALL
|
||||||
* is passed, all existing assets will be retrieved.
|
* is passed, all existing assets will be retrieved.
|
||||||
*/
|
*/
|
||||||
public ListAssets(String lowerBoundSymbol, int limit, WitnessResponseListener listener){
|
public ListAssets(String lowerBoundSymbol, int limit, boolean oneTime, WitnessResponseListener listener){
|
||||||
super(listener);
|
super(listener);
|
||||||
this.lowerBound = lowerBoundSymbol;
|
this.lowerBound = lowerBoundSymbol;
|
||||||
this.limit = limit;
|
this.limit = limit;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor with oneTime = true for compatibility issue.
|
||||||
|
* @param lowerBoundSymbol: Lower bound of symbol names to retrieve
|
||||||
|
* @param limit: Maximum number of assets to fetch, if the constant LIST_ALL
|
||||||
|
* is passed, all existing assets will be retrieved.
|
||||||
|
*/
|
||||||
|
public ListAssets(String lowerBoundSymbol, int limit, WitnessResponseListener listener){
|
||||||
|
this(lowerBoundSymbol, limit, true, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -81,7 +94,9 @@ public class ListAssets extends BaseGrapheneHandler {
|
||||||
// If the requested number of assets was below
|
// If the requested number of assets was below
|
||||||
// the limit, we just call the listener.
|
// the limit, we just call the listener.
|
||||||
mListener.onSuccess(witnessResponse);
|
mListener.onSuccess(witnessResponse);
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
// Updating counter to keep track of how many batches we already retrieved.
|
// Updating counter to keep track of how many batches we already retrieved.
|
||||||
requestCounter++;
|
requestCounter++;
|
||||||
|
@ -96,12 +111,16 @@ public class ListAssets extends BaseGrapheneHandler {
|
||||||
// we got less than the requested amount.
|
// we got less than the requested amount.
|
||||||
witnessResponse.result = this.assets;
|
witnessResponse.result = this.assets;
|
||||||
mListener.onSuccess(witnessResponse);
|
mListener.onSuccess(witnessResponse);
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
|
}
|
||||||
}else if(this.assets.size() == this.limit){
|
}else if(this.assets.size() == this.limit){
|
||||||
// We already have the required amount of assets
|
// We already have the required amount of assets
|
||||||
witnessResponse.result = this.assets;
|
witnessResponse.result = this.assets;
|
||||||
mListener.onSuccess(witnessResponse);
|
mListener.onSuccess(witnessResponse);
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
// We still need to fetch some more assets
|
// We still need to fetch some more assets
|
||||||
this.lowerBound = this.assets.get(this.assets.size() - 1).getSymbol();
|
this.lowerBound = this.assets.get(this.assets.size() - 1).getSymbol();
|
||||||
|
|
|
@ -27,20 +27,32 @@ public class LookupAccounts extends BaseGrapheneHandler {
|
||||||
private int maxAccounts = DEFAULT_MAX;
|
private int maxAccounts = DEFAULT_MAX;
|
||||||
private final WitnessResponseListener mListener;
|
private final WitnessResponseListener mListener;
|
||||||
|
|
||||||
public LookupAccounts(String accountName, WitnessResponseListener listener){
|
private boolean mOneTime;
|
||||||
|
|
||||||
|
public LookupAccounts(String accountName, boolean oneTime, WitnessResponseListener listener){
|
||||||
super(listener);
|
super(listener);
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
this.maxAccounts = DEFAULT_MAX;
|
this.maxAccounts = DEFAULT_MAX;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LookupAccounts(String accountName, int maxAccounts, WitnessResponseListener listener){
|
public LookupAccounts(String accountName, int maxAccounts, boolean oneTime, WitnessResponseListener listener){
|
||||||
super(listener);
|
super(listener);
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
this.maxAccounts = maxAccounts;
|
this.maxAccounts = maxAccounts;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LookupAccounts(String accountName, WitnessResponseListener listener){
|
||||||
|
this(accountName, true, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LookupAccounts(String accountName, int maxAccounts, WitnessResponseListener listener){
|
||||||
|
this(accountName, maxAccounts, true, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
||||||
ArrayList<Serializable> accountParams = new ArrayList<>();
|
ArrayList<Serializable> accountParams = new ArrayList<>();
|
||||||
|
@ -65,8 +77,10 @@ public class LookupAccounts extends BaseGrapheneHandler {
|
||||||
this.mListener.onSuccess(witnessResponse);
|
this.mListener.onSuccess(witnessResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
||||||
|
|
|
@ -24,12 +24,19 @@ public class LookupAssetSymbols extends BaseGrapheneHandler {
|
||||||
private WitnessResponseListener mListener;
|
private WitnessResponseListener mListener;
|
||||||
private List<Asset> assets;
|
private List<Asset> assets;
|
||||||
|
|
||||||
public LookupAssetSymbols(List<Asset> assets, WitnessResponseListener listener){
|
private boolean mOneTime;
|
||||||
|
|
||||||
|
public LookupAssetSymbols(List<Asset> assets, boolean oneTime, WitnessResponseListener listener){
|
||||||
super(listener);
|
super(listener);
|
||||||
this.assets = assets;
|
this.assets = assets;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LookupAssetSymbols(List<Asset> assets, WitnessResponseListener listener){
|
||||||
|
this(assets, true, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
|
||||||
ArrayList<Serializable> params = new ArrayList<>();
|
ArrayList<Serializable> params = new ArrayList<>();
|
||||||
|
|
|
@ -43,18 +43,33 @@ public class TransactionBroadcastSequence extends BaseGrapheneHandler {
|
||||||
private int currentId = 1;
|
private int currentId = 1;
|
||||||
private int broadcastApiId = -1;
|
private int broadcastApiId = -1;
|
||||||
|
|
||||||
|
private boolean mOneTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of this class. The ids required
|
* Constructor of this class. The ids required
|
||||||
* @param transaction: The transaction to be broadcasted.
|
* @param transaction: The transaction to be broadcasted.
|
||||||
|
* @param oneTime Boolean value indicating if websocket must be closed or not after request
|
||||||
|
* @param listener: A class implementing the WitnessResponseListener interface. This should
|
||||||
|
* be implemented by the party interested in being notified about the success/failure
|
||||||
|
* of the transaction broadcast operation.
|
||||||
|
*/
|
||||||
|
public TransactionBroadcastSequence(Transaction transaction, Asset feeAsset, boolean oneTime, WitnessResponseListener listener){
|
||||||
|
super(listener);
|
||||||
|
this.transaction = transaction;
|
||||||
|
this.feeAsset = feeAsset;
|
||||||
|
this.mOneTime = oneTime;
|
||||||
|
this.mListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor of this class with oneTime=true
|
||||||
|
* @param transaction: The transaction to be broadcasted.
|
||||||
* @param listener: A class implementing the WitnessResponseListener interface. This should
|
* @param listener: A class implementing the WitnessResponseListener interface. This should
|
||||||
* be implemented by the party interested in being notified about the success/failure
|
* be implemented by the party interested in being notified about the success/failure
|
||||||
* of the transaction broadcast operation.
|
* of the transaction broadcast operation.
|
||||||
*/
|
*/
|
||||||
public TransactionBroadcastSequence(Transaction transaction, Asset feeAsset, WitnessResponseListener listener){
|
public TransactionBroadcastSequence(Transaction transaction, Asset feeAsset, WitnessResponseListener listener){
|
||||||
super(listener);
|
this(transaction, feeAsset, true, listener);
|
||||||
this.transaction = transaction;
|
|
||||||
this.feeAsset = feeAsset;
|
|
||||||
this.mListener = listener;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -77,7 +92,9 @@ public class TransactionBroadcastSequence extends BaseGrapheneHandler {
|
||||||
BaseResponse baseResponse = gson.fromJson(response, BaseResponse.class);
|
BaseResponse baseResponse = gson.fromJson(response, BaseResponse.class);
|
||||||
if(baseResponse.error != null){
|
if(baseResponse.error != null){
|
||||||
mListener.onError(baseResponse.error);
|
mListener.onError(baseResponse.error);
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
currentId++;
|
currentId++;
|
||||||
ArrayList<Serializable> emptyParams = new ArrayList<>();
|
ArrayList<Serializable> emptyParams = new ArrayList<>();
|
||||||
|
@ -140,10 +157,12 @@ public class TransactionBroadcastSequence extends BaseGrapheneHandler {
|
||||||
Type WitnessResponseType = new TypeToken<WitnessResponse<String>>(){}.getType();
|
Type WitnessResponseType = new TypeToken<WitnessResponse<String>>(){}.getType();
|
||||||
WitnessResponse<String> witnessResponse = gson.fromJson(response, WitnessResponseType);
|
WitnessResponse<String> witnessResponse = gson.fromJson(response, WitnessResponseType);
|
||||||
mListener.onSuccess(witnessResponse);
|
mListener.onSuccess(witnessResponse);
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
public void onFrameSent(WebSocket websocket, WebSocketFrame frame) throws Exception {
|
||||||
|
@ -156,8 +175,10 @@ public class TransactionBroadcastSequence extends BaseGrapheneHandler {
|
||||||
public void onError(WebSocket websocket, WebSocketException cause) throws Exception {
|
public void onError(WebSocket websocket, WebSocketException cause) throws Exception {
|
||||||
System.out.println("onError. cause: "+cause.getMessage());
|
System.out.println("onError. cause: "+cause.getMessage());
|
||||||
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCallbackError(WebSocket websocket, Throwable cause) throws Exception {
|
public void handleCallbackError(WebSocket websocket, Throwable cause) throws Exception {
|
||||||
|
@ -166,6 +187,8 @@ public class TransactionBroadcastSequence extends BaseGrapheneHandler {
|
||||||
System.out.println(element.getFileName()+"#"+element.getClassName()+":"+element.getLineNumber());
|
System.out.println(element.getFileName()+"#"+element.getClassName()+":"+element.getLineNumber());
|
||||||
}
|
}
|
||||||
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
mListener.onError(new BaseResponse.Error(cause.getMessage()));
|
||||||
|
if(mOneTime){
|
||||||
websocket.disconnect();
|
websocket.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package de.bitsharesmunich.graphenej.api.android;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
@ -12,11 +13,14 @@ import de.bitsharesmunich.graphenej.api.GetAccountBalances;
|
||||||
import de.bitsharesmunich.graphenej.api.GetAccountByName;
|
import de.bitsharesmunich.graphenej.api.GetAccountByName;
|
||||||
import de.bitsharesmunich.graphenej.api.GetAllAssetHolders;
|
import de.bitsharesmunich.graphenej.api.GetAllAssetHolders;
|
||||||
import de.bitsharesmunich.graphenej.api.GetBlockHeader;
|
import de.bitsharesmunich.graphenej.api.GetBlockHeader;
|
||||||
|
import de.bitsharesmunich.graphenej.api.GetKeyReferences;
|
||||||
import de.bitsharesmunich.graphenej.errors.RepeatedRequestIdException;
|
import de.bitsharesmunich.graphenej.errors.RepeatedRequestIdException;
|
||||||
|
import de.bitsharesmunich.graphenej.errors.MalformedAddressException;
|
||||||
import de.bitsharesmunich.graphenej.interfaces.WitnessResponseListener;
|
import de.bitsharesmunich.graphenej.interfaces.WitnessResponseListener;
|
||||||
import de.bitsharesmunich.graphenej.models.BaseResponse;
|
import de.bitsharesmunich.graphenej.models.BaseResponse;
|
||||||
import de.bitsharesmunich.graphenej.models.WitnessResponse;
|
import de.bitsharesmunich.graphenej.models.WitnessResponse;
|
||||||
import de.bitsharesmunich.graphenej.UserAccount;
|
import de.bitsharesmunich.graphenej.UserAccount;
|
||||||
|
import de.bitsharesmunich.graphenej.Address;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by nelson on 6/26/17.
|
* Created by nelson on 6/26/17.
|
||||||
|
@ -223,6 +227,74 @@ public class NodeConnectionTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetKeyReferencesRequest(){
|
||||||
|
nodeConnection = NodeConnection.getInstance();
|
||||||
|
nodeConnection.addNodeUrl(BLOCK_PAY_DE);
|
||||||
|
nodeConnection.connect("", "", false, mErrorListener);
|
||||||
|
|
||||||
|
Address address1 = null;
|
||||||
|
Address address2 = null;
|
||||||
|
Address address3 = null;
|
||||||
|
try {
|
||||||
|
address1 = new Address("BTS8RiFgs8HkcVPVobHLKEv6yL3iXcC9SWjbPVS15dDAXLG9GYhnY");
|
||||||
|
address2 = new Address("BTS8RiFgs8HkcVPVobHLKEv6yL3iXcC9SWjbPVS15dDAXLG9GYhnY");
|
||||||
|
address3 = new Address("BTS8RiFgs8HkcVPVobHLKEv6yL3iXcC9SWjbPVS15dDAXLG9GYp00");
|
||||||
|
} catch (MalformedAddressException e) {
|
||||||
|
System.out.println("MalformedAddressException. Msg: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<Address> addresses = new ArrayList<>();
|
||||||
|
addresses.add(address1);
|
||||||
|
addresses.add(address2);
|
||||||
|
addresses.add(address3);
|
||||||
|
|
||||||
|
// Test with the one address constructor
|
||||||
|
System.out.println("Adding GetKeyReferences one address request (One address)");
|
||||||
|
try{
|
||||||
|
nodeConnection.addRequestHandler(new GetKeyReferences(address1, false, new WitnessResponseListener(){
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
System.out.println("GetKeyReferences.onSuccess");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
System.out.println("GetKeyReferences.onError. Msg: "+ error.message);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}catch(RepeatedRequestIdException e){
|
||||||
|
System.out.println("RepeatedRequestIdException. Msg: "+e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test with the list of addresses constructor
|
||||||
|
System.out.println("Adding GetKeyReferences address request (List of Addresses)");
|
||||||
|
try{
|
||||||
|
nodeConnection.addRequestHandler(new GetKeyReferences(addresses, false, new WitnessResponseListener(){
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
System.out.println("GetKeyReferences.onSuccess");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
System.out.println("GetKeyReferences.onError. Msg: "+ error.message);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}catch(RepeatedRequestIdException e){
|
||||||
|
System.out.println("RepeatedRequestIdException. Msg: "+e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
// Holding this thread while we get update notifications
|
||||||
|
synchronized (this){
|
||||||
|
wait();
|
||||||
|
}
|
||||||
|
}catch(InterruptedException e){
|
||||||
|
System.out.println("InterruptedException. Msg: "+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private WitnessResponseListener mErrorListener = new WitnessResponseListener() {
|
private WitnessResponseListener mErrorListener = new WitnessResponseListener() {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue