Skip to content

Commit

Permalink
getfresh rpc call
Browse files Browse the repository at this point in the history
  • Loading branch information
fireduck64 committed Jul 20, 2018
1 parent 25e8ca4 commit b61bf22
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 3 deletions.
34 changes: 34 additions & 0 deletions client/src/JsonRequestHandler.java
@@ -0,0 +1,34 @@
package snowblossom.client;

import com.thetransactioncompany.jsonrpc2.JSONRPC2Error;
import com.thetransactioncompany.jsonrpc2.JSONRPC2Request;
import com.thetransactioncompany.jsonrpc2.JSONRPC2Response;
import com.thetransactioncompany.jsonrpc2.server.RequestHandler;
import com.thetransactioncompany.jsonrpc2.server.MessageContext;

import net.minidev.json.JSONObject;


public abstract class JsonRequestHandler implements RequestHandler
{
public abstract String[] handledRequests();

public JSONRPC2Response process(JSONRPC2Request req, MessageContext ctx)
{
try
{
JSONObject reply = processRequest(req, ctx);

return new JSONRPC2Response(reply, req.getID());
}
catch(Throwable t)
{
return new JSONRPC2Response(new JSONRPC2Error(500, t.toString()), req.getID());

}

}

protected abstract JSONObject processRequest(JSONRPC2Request req, MessageContext ctx) throws Exception;

}
2 changes: 0 additions & 2 deletions client/src/JsonRpcServer.java
Expand Up @@ -33,8 +33,6 @@ public class JsonRpcServer

private final Dispatcher dispatcher;



public JsonRpcServer(Config config)
throws Exception
{
Expand Down
63 changes: 63 additions & 0 deletions client/src/RpcServerHandler.java
@@ -0,0 +1,63 @@
package snowblossom.client;

import com.thetransactioncompany.jsonrpc2.JSONRPC2Request;
import com.thetransactioncompany.jsonrpc2.JSONRPC2Response;
import com.thetransactioncompany.jsonrpc2.server.RequestHandler;
import com.thetransactioncompany.jsonrpc2.server.MessageContext;

import net.minidev.json.JSONObject;

import snowblossom.proto.*;
import snowblossom.lib.*;

public class RpcServerHandler
{
private SnowBlossomClient client;

public RpcServerHandler(SnowBlossomClient client)
{
this.client = client;
}

public void registerHandlers(JsonRpcServer json_server)
{
json_server.register(new GetFreshHandler());

}

public class GetFreshHandler extends JsonRequestHandler
{
public String[] handledRequests()
{
return new String[]{"getfresh"};
}

@Override
protected JSONObject processRequest(JSONRPC2Request req, MessageContext ctx)
throws Exception
{
boolean mark_used = false;
boolean generate_now = false;
if (req.getNamedParams().containsKey("mark_used"))
{
mark_used = (boolean) req.getNamedParams().get("mark_used");
}
if (req.getNamedParams().containsKey("generate_now"))
{
generate_now = (boolean) req.getNamedParams().get("generate_now");
}
JSONObject reply = new JSONObject();
reply.put("mark_used", mark_used);
reply.put("generate_now", generate_now);

AddressSpecHash spec_hash = client.getPurse().getUnusedAddress(mark_used, generate_now);
String address = AddressUtil.getAddressString(client.getParams().getAddressPrefix(), spec_hash);
reply.put("address", address);

return reply;
}
}



}
5 changes: 4 additions & 1 deletion client/src/SnowBlossomClient.java
Expand Up @@ -133,7 +133,10 @@ else if (command.equals("monitor"))
}
else if (command.equals("rpcserver"))
{
new JsonRpcServer(config);
JsonRpcServer json_server = new JsonRpcServer(config);
RpcServerHandler server_handler = new RpcServerHandler(client);
server_handler.registerHandlers(json_server);

while(true)
{
Thread.sleep(1000);
Expand Down

0 comments on commit b61bf22

Please sign in to comment.