bdcontract-web-ide/js/queryTrans.js

210 lines
5.3 KiB
JavaScript
Executable File

$("#startButton").button({
icon : "ui-icon-circle-triangle-e",
showLabel : false
});
$("#queryTransBtn").button({
icon : "ui-icon-circle-triangle-e",
showLabel : false
});
$("#sendTransBtn").button({
icon : "ui-icon-circle-triangle-e",
showLabel : false
});
$("#queryRecentBtn").button({
icon : "ui-icon-circle-triangle-e",
showLabel : false
});
global = {};
global.outputStreamEditor = CodeMirror.fromTextArea($("#outputStreamArea")[0],
{
matchBrackets : true,
autoCloseBrackets : true,
lineNumbers : true,
mode : "application/ld+json",
lineWrapping : true
});
var getRequestParameters = function() {
var arr = (location.search || "").replace(/^\?/, '').split("&");
var params = {};
for (var i = 0; i < arr.length; i++) {
var data = arr[i].split("=");
if (data.length == 2) {
params[data[0]] = data[1];
}
}
return params;
};
var sendMockData = function() {
var c = $("#transCount")[0].value;
if (c.length == 0) {
alert("请输入交易量,>0");
return;
}
global.outputStreamEditor.setValue("");
var startDot = setInterval(function() {
var v = global.outputStreamEditor.getValue();
v += ".";
global.outputStreamEditor.setValue(v);
}, 1000);
$.ajax({
url : "./SCManager",
data : {
"action" : "sendMockTransaction",
"count" : c
},
dataType : "jsonp"
}).done(function(result) {
console.log(result);
global.r = result;
clearInterval(startDot);
formatDisplay(result);
})
};
var startDoting = function() {
global.outputStreamEditor.setValue("");
return setInterval(function() {
var v = global.outputStreamEditor.getValue();
v += ".";
global.outputStreamEditor.setValue(v);
}, 1000);
};
var formatDisplay = function(result) {
global.outputStreamEditor.setValue(JSON.stringify(result));
var totalLines = global.outputStreamEditor.lineCount();
global.outputStreamEditor.autoFormatRange({
line : 0,
ch : 0
}, {
line : totalLines
});
};
var queryTransaction = function() {
var hash = $("#transHash")[0].value;
if (hash.length == 0)
hash = "2d4a7ba461c284434ec88be3e095b450c4145c1d";
global.outputStreamEditor.setValue("");
var dot = startDoting();
$.ajax({
url : "./SCManager",
data : {
"action" : "queryTransByHash",
"hash" : hash
},
dataType : "jsonp"
}).done(function(result) {
console.log(result);
clearInterval(dot);
global.r = result;
formatDisplay(result);
})
};
var init = function() {
var params = getRequestParameters();
if (params["queryHash"] != undefined) {
$("#transHash")[0].value = params["queryHash"];
queryTransaction();
}
var val = localStorage.getItem("ReqTestTool", JSON.stringify(val));
if (val == undefined || val.length < 2)
return;
val = JSON.parse(val);
$("#cidInput")[0].value = val.contractID;
$("#actionInput")[0].value = val.action;
$("#argInput")[0].value = val.arg;
$(".CodeMirror-wrap").css("border-radius", "10px");
$(".CodeMirror-wrap").css("background", "#f0e4e4");
$(".CodeMirror-wrap").css("border-radius", "10px");
$(".CodeMirror-wrap").css("border-radius", "10px");
$(".ui-button").css("border-radius", "10px");
};
var getReqObj = function() {
var val = {};
val.contractID = $("#cidInput")[0].value;
val.action = $("#actionInput")[0].value;
val.arg = $("#argInput")[0].value;
return val;
}
var sendTrans = function() {
var val = getReqObj();
localStorage.setItem("ReqTestTool", JSON.stringify(val));
global.requestID = new Date().getTime();
global.outputStreamEditor.setValue("");
var startDot = startDoting();
setGeneratedUrl();
$.ajax({
url : "./SCManager",
data : {
"action" : "executeContract",
"contractID" : val.contractID,
"operation" : val.action,
"arg" : val.arg,
"requestID" : global.requestID
},
dataType : "jsonp"
}).done(function(result) {
console.log(result);
clearInterval(startDot);
formatDisplay(result);
})
setTimeout(getRequestHash, 500);
};
var setGeneratedUrl = function() {
var val = getReqObj();
var plainUrl = document.location.href;
plainUrl = plainUrl.replace("queryTrans.html", "SCManager");
plainUrl += "?action=executeContract&";
plainUrl += "&contractID=" + val.contractID;
plainUrl += "&operation=" + val.action;
plainUrl += "&arg=" + encodeURIComponent(val.arg);
$("#generatedPlainUrlInput")[0].value = plainUrl;
var url = document.location.href;
url = url.replace("queryTrans.html", "SCManager");
var privKey = localStorage.getItem("PrivKey");
var pubKey = loadRSAKey(privKey);
var eReq = encryptReq(val, pubKey);
url += "?action=executeContractEncrypted&contractRequest=";
url += encodeURIComponent(JSON.stringify(eReq));
$("#generatedUrlInput")[0].value = url;
};
var getRequestHash = function() {
$.ajax({
url : "./SCManager",
data : {
"action" : "queryHashByReqID",
"requestID" : global.requestID,
},
dataType : "jsonp"
}).done(function(result) {
global.r = result;
if (global.r.data != undefined && result.data.length > 10)
$("#transHash")[0].value = result.data;
else
setTimeout(getRequestHash, 200);
})
};
var queryRecent = function() {
var blockCount = $("#queryRecentInput")[0].value;
if (blockCount.length == 0) {
blockCount = "5";
}
var startDot = startDoting();
$.ajax({
url : "./SCManager",
data : {
"action" : "queryRecent",
"blockCount" : blockCount,
},
dataType : "jsonp"
}).done(function(result) {
global.r = result;
console.log(result);
clearInterval(startDot);
formatDisplay(result);
})
};
init();