From 80f8e42a228c0a82000b8184166118f914650ad0 Mon Sep 17 00:00:00 2001 From: jwLappy Date: Sun, 6 Dec 2015 19:02:06 -0800 Subject: [PATCH] Some more work on JSON stuff. --- .../jw/lightwallet/screens/MainScreen.java | 17 +++++++---- .../com/jw/lightwallet/utils/DaemonRPC.java | 29 +++++++++++++------ .../jw/lightwallet/utils/DaemonResponse.java | 20 +++++++++++++ 3 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 core/src/com/jw/lightwallet/utils/DaemonResponse.java diff --git a/core/src/com/jw/lightwallet/screens/MainScreen.java b/core/src/com/jw/lightwallet/screens/MainScreen.java index ddc7f3e..158e95f 100644 --- a/core/src/com/jw/lightwallet/screens/MainScreen.java +++ b/core/src/com/jw/lightwallet/screens/MainScreen.java @@ -13,18 +13,14 @@ public class MainScreen extends AbstractScreen { Table screenlayout; TextButton daemonbutton; TextButton walletbutton; + // Daemon layout Table daemonlayout; - - // Bitmonerod info variables - int blockheight; - int diff; - int hashrate; - float blockreward; public MainScreen(LightWallet game) { super(game); daemonrpc = new DaemonRPC(); + daemonrpc.getinfo(); } @@ -32,5 +28,14 @@ public class MainScreen extends AbstractScreen { super.show(); } + + public void render(float delta) { + super.render(delta); + + } + + public void dispose() { + + } } diff --git a/core/src/com/jw/lightwallet/utils/DaemonRPC.java b/core/src/com/jw/lightwallet/utils/DaemonRPC.java index 956f9fe..9bdc119 100644 --- a/core/src/com/jw/lightwallet/utils/DaemonRPC.java +++ b/core/src/com/jw/lightwallet/utils/DaemonRPC.java @@ -5,39 +5,50 @@ import com.badlogic.gdx.Net.HttpMethods; import com.badlogic.gdx.Net.HttpRequest; import com.badlogic.gdx.Net.HttpResponse; import com.badlogic.gdx.Net.HttpResponseListener; +import com.google.gson.Gson; +import com.google.gson.JsonObject; public class DaemonRPC { public String address; - String status; + String response; String getlastblock; + DaemonResponse daemonresponse; public DaemonRPC () { address = "http://node.moneroclub.com:8880/json_rpc"; getlastblock = "{\"jsonrpc\":\"2.0\",\"id\":\"test\",\"method\":\"getlastblockheader\",\"params\":[]}"; } - public void getinfo () { + public DaemonResponse getinfo () { HttpRequest httpGet = new HttpRequest(HttpMethods.POST); httpGet.setUrl(address); - httpGet.setContent(getlastblock); + httpGet.setContent(getlastblock); - Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() { + Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() { public void handleHttpResponse(HttpResponse httpResponse) { - status = httpResponse.getResultAsString(); - System.out.print(status); + response = httpResponse.getResultAsString(); + System.out.print(response); + JsonObject gsonresponse = new Gson().fromJson(response, JsonObject.class); + // Bitmonerod info variables + String status = gsonresponse.getAsJsonObject("response").getAsJsonObject("status").getAsString(); + int blockheight = gsonresponse.getAsJsonObject("response").getAsJsonObject("block_header").get("height").getAsInt(); + int diff = gsonresponse.getAsJsonObject("response").getAsJsonObject("block_header").get("difficulty").getAsInt(); + float blockreward = gsonresponse.getAsJsonObject("response").getAsJsonObject("block_header").get("reward").getAsFloat(); + int timestamp = gsonresponse.getAsJsonObject("response").getAsJsonObject("block_header").get("timestamp").getAsInt(); + daemonresponse = new DaemonResponse(status, blockheight, diff, timestamp, blockreward); } public void failed(Throwable t) { - status = "failed"; + response = "failed"; //do stuff here based on the failed attempt } @Override public void cancelled() { // TODO Auto-generated method stub - } }); + if (daemonresponse.status == "OK") {return daemonresponse;} + else {return null;} } - } diff --git a/core/src/com/jw/lightwallet/utils/DaemonResponse.java b/core/src/com/jw/lightwallet/utils/DaemonResponse.java new file mode 100644 index 0000000..91d1412 --- /dev/null +++ b/core/src/com/jw/lightwallet/utils/DaemonResponse.java @@ -0,0 +1,20 @@ +package com.jw.lightwallet.utils; + +public class DaemonResponse { + String status; + int blockheight; + int diff; + int hashrate; + int lastblocktime; + float blockreward; + + DaemonResponse (String status, int blockheight, int diff, int lastblocktime, float blockreward) { + this.status = status; + this.blockheight = blockheight; + this.diff = diff; + this.hashrate = diff/60; + this.lastblocktime = lastblocktime; + this.blockreward = blockreward; + } + +}