2021-06-15 11:56:39 +00:00
|
|
|
var expandOrCollapse = function () {
|
|
|
|
if ($("#outputNav").hasClass("col-2")) {
|
|
|
|
$("#outputNav").removeClass("col-2").addClass("col-6");
|
|
|
|
$("#mainBox").removeClass("col-8").addClass("col-4");
|
|
|
|
$("#expand").html("Collapse");
|
|
|
|
} else {
|
|
|
|
$("#outputNav").removeClass("col-6").addClass("col-2");
|
|
|
|
$("#mainBox").removeClass("col-4").addClass("col-8");
|
|
|
|
$("#expand").html("Expand");
|
|
|
|
}
|
|
|
|
};
|
|
|
|
var listContracts = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "listContractProcess";
|
2021-06-30 02:39:00 +00:00
|
|
|
request.filters = 2;
|
2021-06-15 11:56:39 +00:00
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|
|
|
|
var startContract = function () {
|
|
|
|
var key = pubkeyDialogVue.sm2KeyList[pubkeyDialogVue.selectedSM2Key];
|
|
|
|
var sm2Key = JSON.parse(key.sm2Key);
|
|
|
|
var projectId = $("#selectedProject")[0].value;
|
|
|
|
var project = global.projects[projectId];
|
|
|
|
startResult.innerText = "Starting:" + project;
|
|
|
|
|
|
|
|
var request = {};
|
|
|
|
request.action = "startContract";
|
|
|
|
request.isPrivate = $("#privateprojecttab").hasClass("active");
|
|
|
|
|
|
|
|
request.owner = sm2Key.publicKey;
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
// request.contractid = $("#tabdiv")[0].value;
|
|
|
|
// request.script = global.scriptEditor.getValue();
|
|
|
|
request.path = "/" + project + "/mainfest.json";
|
|
|
|
localStorage.setItem("persisStatus", JSON.stringify(request));
|
|
|
|
{
|
|
|
|
request.signature = sm2.doSignature("Fixed|" + request.path + "|"
|
|
|
|
+ sm2Key.publicKey, sm2Key.privateKey);
|
|
|
|
request.script = "empty";
|
|
|
|
}
|
|
|
|
// console.log("path=" + request.path);
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
|
|
|
|
};
|
|
|
|
var stopContract = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "killContractProcess";
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
request.name = mainVue.contracts[selectedContract.value].name;
|
|
|
|
request.id = mainVue.contracts[selectedContract.value].id;
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|
|
|
|
var queryContractInstanceDOI = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "queryContractInstanceDOI";
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
request.name = mainVue.contracts[selectedContract.value].name;
|
|
|
|
request.id = mainVue.contracts[selectedContract.value].id;
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|
|
|
|
var queryContractInstanceInfoByDOI = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "queryContractInstanceInfoByDOI";
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
request.doi = contractInstanceDOIInput.value;
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|
|
|
|
var importContractInstanceCodeByDOI = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "importContractInstanceCodeByDOI";
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
request.doi = contractInstanceDOIInput.value;
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|
2021-06-30 02:39:00 +00:00
|
|
|
var openInClient = function () {
|
2021-06-15 13:43:19 +00:00
|
|
|
var path = document.location.pathname;
|
|
|
|
path = path.replace("/SCIDE", "");
|
|
|
|
path = path.replace("/OnlineIDE.html", "");
|
2021-06-15 11:56:39 +00:00
|
|
|
var url = path + "/client/bdwareclient.html?self=true&contract="
|
|
|
|
+ mainVue.contracts[selectedContract.value].id;
|
|
|
|
window.open(url);
|
|
|
|
};
|
|
|
|
|
|
|
|
var stopAllContract = function () {
|
|
|
|
var request = {};
|
|
|
|
request.action = "killAllContract";
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
var selectContractToExecute = function () {
|
|
|
|
var value = selectedContractAtExecute.value;
|
2021-06-15 13:43:19 +00:00
|
|
|
if (value && value !== "Select Instance") {
|
2021-06-15 11:56:39 +00:00
|
|
|
var exportedFunction = mainVue.contracts[value].exportedFunctions;
|
|
|
|
mainVue.contractFunctions = exportedFunction;
|
|
|
|
|
|
|
|
var pingObj = {};
|
|
|
|
pingObj.action = "connectTo";
|
|
|
|
pingObj.name = mainVue.contracts[value].name;
|
|
|
|
pingObj.id = mainVue.contracts[value].id;
|
|
|
|
global.wssocket.send(JSON.stringify(pingObj));
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
var executeContract = function () {
|
|
|
|
if (selectedFunction.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select a function.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (selectedContractAtExecute.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select an instance.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var key = pubkeyDialogVue.sm2KeyList[pubkeyDialogVue.selectedSM2Key];
|
|
|
|
var sm2Key = JSON.parse(key.sm2Key);
|
|
|
|
|
|
|
|
var request = {};
|
|
|
|
|
|
|
|
|
|
|
|
request.action = "executeContract";
|
|
|
|
request.requestID = new Date().getTime() + "_"
|
|
|
|
+ Math.floor(Math.random() * 10000);
|
|
|
|
var contract = mainVue.contracts[selectedContractAtExecute.value];
|
|
|
|
|
|
|
|
request.contractID = contract.id;
|
|
|
|
var arg = {};
|
|
|
|
arg.action = contract.exportedFunctions[selectedFunction.value].functionName;
|
|
|
|
arg.arg = executeContractArgInput.value;
|
|
|
|
//console.log("[global.withEvaluatesAnalysis]"+global.withEvaluatesAnalysis);
|
|
|
|
//if (global.withEvaluatesAnalysis != undefined) {
|
2021-06-15 13:43:19 +00:00
|
|
|
//console.log("test");
|
2021-06-15 11:56:39 +00:00
|
|
|
if ($('#gasLimit').val() == undefined || $('#gasLimit').val() == "") {
|
|
|
|
arg.gasLimit = '1000';
|
|
|
|
} else {
|
2021-06-15 13:43:19 +00:00
|
|
|
arg.gasLimit = $('#gasLimit').val();
|
2021-06-15 11:56:39 +00:00
|
|
|
}
|
2021-06-15 13:43:19 +00:00
|
|
|
console.log("[arg.gasLimit]" + arg.gasLimit);
|
|
|
|
//request.withEvaluatesAnalysis = global.withEvaluatesAnalysis;
|
2021-06-15 11:56:39 +00:00
|
|
|
//}
|
|
|
|
request.pubkey = sm2Key.publicKey;
|
|
|
|
request.signature = sm2.doSignature(request.contractID + "|" + arg.action
|
|
|
|
+ "|" + arg.arg + "|" + sm2Key.publicKey, sm2Key.privateKey);
|
|
|
|
request.arg = JSON.stringify(arg);
|
|
|
|
|
|
|
|
localStorage.setItem("persisArg", JSON.stringify(request));
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
var executeContractWithDynamicResult = function () {
|
|
|
|
if (selectedFunction.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select a function.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (selectedContractAtExecute.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select an instance.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
console.log("executeContractWithDynamicResult");
|
|
|
|
var request = {};
|
|
|
|
request.action = "executeContract";
|
|
|
|
request.requestID = new Date().getTime() + "";
|
|
|
|
|
|
|
|
var contract = mainVue.contracts[selectedContractAtExecute.value];
|
|
|
|
request.contractName = contract.id;
|
|
|
|
|
|
|
|
var arg = {};
|
|
|
|
arg.action = contract.exportedFunctions[selectedFunction.value].functionName;
|
|
|
|
arg.arg = executeContractArgInput.value;
|
|
|
|
|
|
|
|
request.withDyanmicAnalysis = true;
|
|
|
|
request.arg = "{\"action\":\"" + arg.action + "\",\"arg\":\"" + arg.arg
|
|
|
|
+ "\"}";
|
|
|
|
request.pubkey = global.sm2Key.publicKey;
|
|
|
|
request.signature = sm2.doSignature(request.contractID + "|" + arg.action
|
|
|
|
+ "|" + arg.arg + "|" + global.sm2Key.publicKey,
|
|
|
|
global.sm2Key.privateKey);
|
|
|
|
localStorage.setItem("persisArg", JSON.stringify(request));
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
var testEvaluates = function () {
|
|
|
|
if (selectedFunction.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select a function.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (selectedContractAtExecute.value == undefined) {
|
|
|
|
myToast("Invoke Failed", "Please select an instance.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
console.log("Evaluates");
|
|
|
|
var contract = mainVue.contracts[selectedContractAtExecute.value];
|
|
|
|
|
|
|
|
var request = {};
|
|
|
|
request.action = "evaluates";
|
|
|
|
request.contractName = contract.id;
|
|
|
|
request.functionName = contract.exportedFunctions[selectedFunction.value].functionName;
|
|
|
|
request.args = executeContractArgInput.value;
|
|
|
|
|
|
|
|
global.wssocket.send(JSON.stringify(request));
|
|
|
|
};
|
|
|
|
|