diff --git a/supernode/main.html b/supernode/main.html index 61226a4..ce7a276 100644 --- a/supernode/main.html +++ b/supernode/main.html @@ -7337,6 +7337,7 @@ /*RPC Class*/ var Rpc = ninja.rpc = function() { this.rpc_req_id; + this.valid_job = ["trade_buy", "trade_sell"]; } Rpc.prototype = { //get rpc_req_id() {return this.rpc_req_id;}, @@ -7345,22 +7346,45 @@ var request = new JSON_RPC.Request(method, params); var id = request.id; this.rpc_req_id = id; - request.toString(); - return request; + return request.toString(); + //return request; }, receive_rpc_response(request) { - var request = JSON_RPC.parse(request); - request.response = request.method(); // if successful - request.toString(); // return to client - return request; + var request = JSON.parse(request); + + //if (typeof request.params.rpc_job == "string" && this.valid_job.indexOf(request.rpc_job)!=-1) { + if (typeof request.params != 'undefined' && request.params.length>0) { + request.response = {}; + console.log(request.params[7]); + + switch (request.params[7]) { + case "trade_buy": + var Trade = new ninja.trade(); + request.response = Trade.trade_buy(...request.params); + break; + case "trade_sell": + var Trade = new ninja.trade(); + request.response = Trade.trade_sell(...request.params); + break; + + default: + alert("Unknown method called for execution."); + break; + } + } + + //request.response = request.method(); // if successful + return request.toString(); // return to client }, parse_server_rpc_response(request) { var request = JSON_RPC.parse(request); + var response; if (request.id == this.rpc_req_id) { // the request ID is maintained - var response = request.response; // if successful + response = request.response; // if successful } + console.log("res:", response); return response; } @@ -7369,7 +7393,8 @@ @@ -7671,15 +7700,23 @@ } function onMessage(evt) { - console.log(evt); - switch(evt) { - case "": - break; - default: - break; - } + var response = evt.data; + console.log(typeof response); + console.log(response); + + var res_pos = response.indexOf('{'); + if (res_pos>=0) { + var res = response.substr(res_pos); + try { + var res_obj = JSON.parse(res); + var orderRPC = new ninja.rpc(); + return orderRPC.receive_rpc_response(JSON.stringify(res_obj)); + } catch (error) { + console.error(error); + return; + } + } writeToScreen('RESPONSE: ' + evt.data + ''); - //websocket.close(); } function onError(evt) { @@ -7707,9 +7744,10 @@ var trade = document.createElement("button"); trade.innerText = "Trade"; trade.onclick = function() { - var zz = new ninja.rpc(); - var tt = zz.place_order("order_type", "product", "currency", "buy_price", "buyer_public_key", "buyer_key_signature", "order_validator_public_key"); - doSend(tt); + var trade = new ninja.trade; + var buytrade = trade.place_order("buy", "BTC", "INR", 10000.00, "buyer_public_key", "buyer_key_signature", "order_validator_public_key"); + doSend(buytrade); + //doSend(JSON.stringify(buytrade)); } document.getElementById("output").appendChild(trade);