diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java index 46bd8dc7..c0587a74 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java @@ -44,7 +44,8 @@ public class Config { stream_properties.put("rest.socket.address", "localhost"); stream_properties.put("rest.socket.port", "61100"); stream_properties.put("rest.socket.key", "rest-key-reserved"); - stream_properties.put("output.socket.address", "defi-de.idea.rpi.edu"); + //stream_properties.put("output.socket.address", "defi-de.idea.rpi.edu"); + stream_properties.put("output.socket.address", "localhost"); stream_properties.put("output.socket.port", "61200"); stream_properties.put("local.stream.type", "mongo_db"); stream_properties.put("mongodb.properties.uri", "mongodb://localhost:27017"); diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java index b53b038b..21ce7d5e 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java @@ -4,12 +4,12 @@ import java.lang.reflect.Method; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Calendar; import java.util.HashMap; import org.core.logger.Logger; import org.framework.router.ResponseFactory; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.properties.Config; @@ -21,6 +21,8 @@ public class AmberDataRequestHandler { private volatile static OkHttpClient client; private final static HashMap requests; + private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getProperty("app", "general.data.dateformat")); + static { client = new OkHttpClient(); @@ -32,6 +34,7 @@ public class AmberDataRequestHandler { // add all methods to the handler requests.put("lending-latest", classobj.getMethod("requestLendingLatest", AmberDataRequestPacket.class)); requests.put("aave-protocol-dated", classobj.getMethod("requestAaveProtocolDated", AmberDataRequestPacket.class)); + requests.put("aave-asset-dated", classobj.getMethod("requestAaveAssetDated", AmberDataRequestPacket.class)); } catch (Exception e) { e.printStackTrace(); ResponseFactory.responseNotHandled("Irregular method call for AmberDataRequestHandler."); @@ -79,7 +82,6 @@ public static Object[] requestLendingLatest(AmberDataRequestPacket packet) { } } - private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getProperty("app", "general.data.dateformat")); public static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet) { LocalDate next = LocalDate.parse(packet.getData("date"), formatter); next = next.plusDays(1); @@ -115,140 +117,7 @@ public static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet) { JSONArray arr = json.getJSONObject("payload").getJSONArray("data"); for(int i = 0; i < arr.length(); i++) { - JSONObject obj = arr.getJSONObject(i); - String action = obj.getString("action"); - switch(action) { - - case "UseReserveAsCollateral": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "reserveAsCollateralEnabled", obj.getBoolean("reserveAsCollateralEnabled"), - "user", obj.getString("user"))); - break; - - case "Deposit": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "user", obj.getString("user"), - "onBehalfOf", obj.getString("onBehalfOf"))); - break; - - case "Withdraw": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "amount", obj.get("amount").toString(), - "user", obj.getString("user"), - "to", obj.getString("to"))); - break; - - case "LiquidationCall": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "collateralAssetId", obj.getString("collateralAssetId"), - "collateralAssetSymbol", obj.getString("collateralAssetSymbol"), - "principalAssetId", obj.getString("principalAssetId"), - "principalAssetSymbol", obj.getString("principalAssetSymbol"), - "principalAmount", obj.get("principalAmount").toString(), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "liquidator", obj.getString("liquidator"))); - break; - - case "Repay": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "amount", obj.get("amount").toString(), - "user", obj.getString("user"), - "repayer", obj.getString("repayer"))); - break; - - case "Borrow": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "amount", obj.get("amount").toString(), - "borrowRate", obj.get("borrowRate").toString(), - "debt", obj.get("debt"), - "user", obj.getString("user"), - "onBehalfOf", obj.getString("onBehalfOf"))); - break; - - case "FlashLoan": - packet.getConnection().processRequest( - packet.getData("request"), - packet.getData("date"), - format("action", obj.getString("action"), - "timestamp", obj.get("timestamp").toString(), - "blockNumber", obj.getLong("blockNumber"), - "transactionHash", obj.getString("transactionHash"), - "logIndex", obj.getInt("logIndex"), - "assetId", obj.getString("assetId"), - "assetSymbol", obj.getString("assetSymbol"), - "marketId", obj.getString("marketId"), - "market", obj.getString("market"), - "amount", obj.get("amount").toString(), - "borrowRate", obj.get("totalFee").toString(), - "target", obj.get("target"), - "initiator", obj.getString("initiator"))); - - default: - Logger.warn("Unrecognized transaction type in : " + action); - } + processAaveJsonRequest(packet, arr.getJSONObject(i)); } return new Object[] {true, ""}; @@ -259,6 +128,200 @@ public static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet) { } } + public static Object[] requestAaveAssetDated(AmberDataRequestPacket packet) { + if(packet.getData("asset") == null) + return new Object[] {false, "Missing parameter ."}; + + LocalDate next = LocalDate.parse(packet.getData("date"), formatter); + next = next.plusDays(1); + String tmr = next.format(formatter); + + String url = String.format("https://web3api.io/api/v2/defi/lending/aavev2/assets/%s?startDate=%s&endDate=%s", + packet.getData("asset"), + packet.getData("date") + "T01:00:00", + tmr + "T01:00:00"); + + OkHttpClient client = new OkHttpClient(); + + Request request = new Request.Builder() + .url(url) + .get() + .addHeader("accept", "application/json") + .addHeader("x-api-key", "UAK7ed69235426c360be22bfc2bde1809b6") + .build(); + + okhttp3.Response response; + try { + response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + + if(json.toString().equals("") || !json.has("description")) + return new Object[] {false, "JSON Object returned empty or invalid contents."}; + + if(!response.isSuccessful() || json.getInt("status") != 200 + || !json.getString("description").equals("Successful request")) + return new Object[]{false, json.getString("description")}; + + if(!json.has("payload") || !json.getJSONObject("payload").has("data")) + return new Object[] {false, "Malformed Aave packet"}; + + JSONArray arr = json.getJSONObject("payload").getJSONArray("data"); + for(int i = 0; i < arr.length(); i++) + processAaveJsonRequest(packet, arr.getJSONObject(i), packet.getData("asset")); + + return new Object[] {true, ""}; + } catch (IOException e) { + e.printStackTrace(); + ResponseFactory.responseNotHandled("Unhandled exception cost."); + return new Object[] {false, null}; + } + } + + private static void processAaveJsonRequest(AmberDataRequestPacket packet, JSONObject obj) throws JSONException { + processAaveJsonRequest(packet, obj, null); + } + + private static void processAaveJsonRequest(AmberDataRequestPacket packet, JSONObject obj, String request_specifier) throws JSONException { + if(request_specifier != null) + request_specifier = "-" + request_specifier; + else + request_specifier = ""; + + String action = obj.getString("action"); + switch(action) { + + case "UseReserveAsCollateral": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "reserveAsCollateralEnabled", obj.getBoolean("reserveAsCollateralEnabled"), + "user", obj.getString("user"))); + break; + + case "Deposit": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "user", obj.getString("user"), + "onBehalfOf", obj.getString("onBehalfOf"))); + break; + + case "Withdraw": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "amount", obj.get("amount").toString(), + "user", obj.getString("user"), + "to", obj.getString("to"))); + break; + + case "LiquidationCall": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "collateralAssetId", obj.getString("collateralAssetId"), + "collateralAssetSymbol", obj.getString("collateralAssetSymbol"), + "principalAssetId", obj.getString("principalAssetId"), + "principalAssetSymbol", obj.getString("principalAssetSymbol"), + "principalAmount", obj.get("principalAmount").toString(), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "liquidator", obj.getString("liquidator"))); + break; + + case "Repay": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "amount", obj.get("amount").toString(), + "user", obj.getString("user"), + "repayer", obj.getString("repayer"))); + break; + + case "Borrow": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "amount", obj.get("amount").toString(), + "borrowRate", obj.get("borrowRate").toString(), + "debt", obj.get("debt"), + "user", obj.getString("user"), + "onBehalfOf", obj.getString("onBehalfOf"))); + break; + + case "FlashLoan": + packet.getConnection().processRequest( + packet.getData("request") + request_specifier, + packet.getData("date"), + format("action", obj.getString("action"), + "timestamp", obj.get("timestamp").toString(), + "blockNumber", obj.getLong("blockNumber"), + "transactionHash", obj.getString("transactionHash"), + "logIndex", obj.getInt("logIndex"), + "assetId", obj.getString("assetId"), + "assetSymbol", obj.getString("assetSymbol"), + "marketId", obj.getString("marketId"), + "market", obj.getString("market"), + "amount", obj.get("amount").toString(), + "borrowRate", obj.get("totalFee").toString(), + "target", obj.get("target"), + "initiator", obj.getString("initiator"))); + + default: + Logger.warn("Unrecognized transaction type in : " + action); + } + } + private static String format(Object... data) { StringBuilder out = new StringBuilder(); for(int i = 0; i < data.length; i++) { diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/AmberDataConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/AmberDataConnection.java index 99bd8cdb..96f7327d 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/AmberDataConnection.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/AmberDataConnection.java @@ -23,6 +23,9 @@ public class AmberDataConnection extends ExternalStreamConnection { static { requestTypes = new HashSet<>(); requestTypes.add("aave-protocol-dated"); + requestTypes.add("aave-asset-dated"); + //requestTypes.add("aave-wallet-dated"); + //requestTypes.add("aave-governance-dated"); } private boolean authorized = false; diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java index ba6ca306..127cf0d8 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java @@ -165,7 +165,7 @@ public Response processRQST(Packet packet) { if(!manager.containsRequestType(key, request)) return ResponseFactory.response428(key, request); - + Object[] response = manager.request(key, packet.getData()); if(response == null) diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/mongodb/MongoDatabaseRequestHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/mongodb/MongoDatabaseRequestHandler.java index d82cdf70..09d2286c 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/mongodb/MongoDatabaseRequestHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/mongodb/MongoDatabaseRequestHandler.java @@ -2,12 +2,14 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; import org.bson.Document; +import org.core.logger.Logger; import org.properties.Config; import com.mongodb.client.MongoCollection; @@ -151,6 +153,7 @@ else if(translations.get(query[0]).containsKey("collection")) } public final static boolean containsCollection(MongoDatabase db, String[] query) { + Logger.log(Arrays.toString(query)); if(!query[0].equals("contains_collection")) return false; diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java index 5d651632..5e799a43 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java @@ -69,9 +69,9 @@ public Response processRQST(Packet packet) { String request; String delim = Config.getProperty("app", "general.collection.delim"); if(packet.containsKey("date")) { - request = packet.getData("uuid") + delim + packet.getData("request") + delim + packet.getData("date"); + request = packet.getData("uuid") + delim + packet.getData("query") + delim + packet.getData("date"); } else { - request = packet.getData("uuid") + delim + packet.getData("request"); + request = packet.getData("uuid") + delim + packet.getData("query"); } //String[] query = packet.getData("query").split(Config.getProperty("app", "general.data.delim")); diff --git a/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java b/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java index 7bb68a6b..3cfee27f 100644 --- a/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java +++ b/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java @@ -36,8 +36,8 @@ public class Config { app_properties.put("general.transfer.delim", "&&&"); app_properties.put("general.data.dateformat", "yyyy-MM-dd"); app_properties.put("spring.server.port", "8080"); - //app_properties.put("spring.server.address", "localhost"); - app_properties.put("spring.server.address", "defi-de.idea.rpi.edu"); + app_properties.put("spring.server.address", "localhost"); + //app_properties.put("spring.server.address", "defi-de.idea.rpi.edu"); app_properties.put("rest.socket.address", "localhost"); app_properties.put("rest.socket.port", "61100"); app_properties.put("rest.socket.key", "rest-key-reserved"); diff --git a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java index ec545745..f03aabcc 100644 --- a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java +++ b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java @@ -73,32 +73,65 @@ public String getIsActive(@RequestParam String key) { return request("SRC", "IATV", "key", key); } - @GetMapping(path="/defi/v1/rest/execute") - @Deprecated - public String getExecute(@RequestParam String key) { - return request("SRC", "EXEC", "key", key); - } - - @GetMapping(path="/defi/v1/rest/kill") - @Deprecated - public String getKill(@RequestParam String key) { - return request("SRC", "KILL", "key", key); - } +// @GetMapping(path="/defi/v1/rest/execute") +// @Deprecated +// public String getExecute(@RequestParam String key) { +// return request("SRC", "EXEC", "key", key); +// } +// +// @GetMapping(path="/defi/v1/rest/kill") +// @Deprecated +// public String getKill(@RequestParam String key) { +// return request("SRC", "KILL", "key", key); +// } - @GetMapping(path="/defi/v1/rest/subscribe") - @Deprecated - public String getSubscription(@RequestParam String key, @RequestParam String subscription) { - return request("SRC", "SUBS", "key", key, "subscription", subscription); - } +// @GetMapping(path="/defi/v1/rest/subscribe") +// @Deprecated +// public String getSubscription(@RequestParam String key, @RequestParam String subscription) { +// return request("SRC", "SUBS", "key", key, "subscription", subscription); +// } - @GetMapping(path="/defi/v1/rest/request") - public String getRequest(@RequestParam String destination, @RequestParam String key, @RequestParam String request, @RequestParam String query) { - return request("SRC", "RQST", "destination", destination, "key", key, "request", request, "query", query); - } +// @GetMapping(path="/defi/v1/rest/request") +// public String getRequest(@RequestParam String destination, @RequestParam String key, @RequestParam String request, @RequestParam String query) { +// return request("SRC", "RQST", "destination", destination, "key", key, "request", request, "query", query); +// } @GetMapping(path="/defi/v1/rest/request_dated") public String getRequest(@RequestParam String destination, @RequestParam String key, @RequestParam String request, @RequestParam String query, @RequestParam String start_date, @RequestParam String end_date) { - return request("SRC", "RQST", "destination", destination, "key", key, "start_date", start_date, "end_date", end_date, "request", request, "query", query); + String[] split = request.split(","); + if(split.length % 2 != 0 || split.length < 2) + return new JSONObject() + .put("response", "500") + .put("message", String.format("Request must contain an even number of parameters listed delimited by <,>. Must contain the pair >.")) + .toString(); + + String[] requests = new String[10 + split.length]; + requests[0] = "destination"; + requests[1] = destination; + requests[2] = "key"; + requests[3] = key; + requests[4] = "start_date"; + requests[5] = start_date; + requests[6] = "end_date"; + requests[7] = end_date; + requests[8] = "query"; + requests[9] = query; + boolean contains_request = false; + for(int i = 0; i < split.length; i+=2) { + if(split[i].equals("request")) + contains_request = true; + requests[i + 10] = split[i]; + requests[i + 11] = split[i + 1]; + } + + if(!contains_request) { + return new JSONObject() + .put("response", "500") + .put("message", String.format("Request is missing the required parameter .")) + .toString(); + } + + return request("SRC", "RQST", requests); } private final String request(String tag, String sub_tag, String... data) { diff --git a/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/LocalTest.java b/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/LocalTest.java index 323cafcf..bfc84d0f 100644 --- a/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/LocalTest.java +++ b/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/LocalTest.java @@ -15,8 +15,10 @@ public class LocalTest { + private static final String host = "localhost"; + public static void main(String[] args) throws UnknownHostException, IOException { - final Socket socket = SocketFactory.getDefault().createSocket("localhost", 61200); + final Socket socket = SocketFactory.getDefault().createSocket(host, 61200); final DataInputStream in = new DataInputStream(socket.getInputStream()); String destination = readLine(in); @@ -35,28 +37,29 @@ public void run() { }; thread.start(); - String init = request("http://localhost:8080/defi/v1/rest/initialize?" + String init = request(String.format("http://%s:8080/defi/v1/rest/initialize?" + "source=amber_data&" - + "auth_data=key,UAK7ed69235426c360be22bfc2bde1809b6"); - System.out.println(init); + + "auth_data=key,UAK7ed69235426c360be22bfc2bde1809b6", + host)); + //System.out.println(init); JSONObject json_init = new JSONObject(init); String key = json_init.getString("data"); long s = System.nanoTime(); - String rqst = request(String.format("http://localhost:8080/defi/v1/rest/request_dated?" + String rqst = request(String.format("http://%s:8080/defi/v1/rest/request_dated?" + "destination=%s&" + "key=%s&" - + "request=aave-protocol-dated&" - + "query=get_all,aave_protocol-dated&" + + "request=request,aave-asset-dated,asset,WETH&" + + "query=aave-asset-dated-WETH&" + "start_date=%s&" + "end_date=%s", + host, destination, key, - "2021-09-01", + "2022-08-01", "2022-09-01")); long e = System.nanoTime(); System.out.println(rqst); - System.out.println(e - s); } public static String request(String str) throws IOException { diff --git a/DeFi-Data-Engine/Testing Environment/src/test/misc/Testing1.java b/DeFi-Data-Engine/Testing Environment/src/test/misc/Testing1.java new file mode 100644 index 00000000..f6a4303c --- /dev/null +++ b/DeFi-Data-Engine/Testing Environment/src/test/misc/Testing1.java @@ -0,0 +1,42 @@ +package test.misc; + +import java.util.Arrays; + +public class Testing1 { + + /* lis() returns the length of the longest + increasing subsequence in arr[] of size n */ + static int lis(int arr[], int n) + { + int lis[] = new int[n]; + int i, j, max = 0; + + /* Initialize LIS values for all indexes */ + for (i = 0; i < n; i++) + lis[i] = 1; + + /* Compute optimized LIS values in + bottom up manner */ + for (i = 1; i < n; i++) + for (j = 0; j < i; j++) + if (arr[i] > arr[j] && lis[i] < lis[j] + 1) { + lis[i] = lis[j] + 1; + System.out.println(Arrays.toString(lis)); + } + + /* Pick maximum of all LIS values */ + for (i = 0; i < n; i++) + if (max < lis[i]) + max = lis[i]; + + return max; + } + + public static void main(String args[]) + { + int arr[] = { 10, 22, 9, 33, 21, 50, 41, 60 }; + int n = arr.length; + System.out.println("Length of lis is " + lis(arr, n) + + "\n"); + } +}