2019-07-10 04:01:15 +00:00
|
|
|
/*
|
|
|
|
* @project: TERA
|
|
|
|
* @version: Development (beta)
|
|
|
|
* @license: MIT (not for evil)
|
|
|
|
* @copyright: Yuriy Ivanov (Vtools) 2017-2019 [progr76@gmail.com]
|
|
|
|
* Web: https://terafoundation.org
|
|
|
|
* Twitter: https://twitter.com/terafoundation
|
|
|
|
* Telegram: https://t.me/terafoundation
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SavePrivateKey() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Select = document.getElementById("idTypeKey");
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value === "brain") {
|
2019-07-10 04:01:15 +00:00
|
|
|
ConvertToPrivateKey();
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
|
|
|
var Str = document.getElementById("idKeyNew").value;
|
|
|
|
Str = Str.trim();
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value === "private" && (Str.length !== 64 || !IsHexStr(Str))) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error: Length must 64 HEX chars. (Length=" + Str.length + ")");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
|
|
|
else
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value !== "private" && (Str.length !== 66 || Str.substr(0, 1) !== "0" || !IsHexStr(Str))) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error: Length must 66 HEX chars. (Length=" + Str.length + ")");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value === "private" && PrivKeyStr !== Str)
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Changed privat key");
|
|
|
|
else
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value === "public" && PubKeyStr !== Str)
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Changed public key");
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetWalletKey", Str, function(Data) {
|
|
|
|
if (Data && Data.result === 1) {
|
|
|
|
if (Select.value === "private")
|
2019-07-10 04:01:15 +00:00
|
|
|
SelectStyle("styleContrast1");
|
|
|
|
else
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.value === "public")
|
2019-07-10 04:01:15 +00:00
|
|
|
SelectStyle("styleContrast2");
|
|
|
|
SetVisibleEditKeys(0);
|
|
|
|
UpdatesData();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function CreateCheckPoint() {
|
|
|
|
if (!ServerBlockNumDB || ServerBlockNumDB < 16) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Not set ServerBlockNumDB");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
|
|
|
var BlockNum = ServerBlockNumDB - 10;
|
|
|
|
SetCheckPoint(BlockNum);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function UseAutoCheckPoint() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Set = $("idUseAutoCheckPoint").checked;
|
|
|
|
var Period = ParseNum($("idPeriodAutoCheckPoint").value);
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetAutoCheckPoint", { Set: Set, Period: Period }, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus(Data.text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function UseAutoCorrTime() {
|
|
|
|
GetData("SetAutoCorrTime", document.getElementById("idUseAutoCorrTime").checked, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus(Data.text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetCodeVersionJSON() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Data = JSON.parse(JSON.stringify(CONFIG_DATA.CODE_VERSION));
|
2019-07-10 07:59:04 +00:00
|
|
|
if (!Data.BlockNum) {
|
2019-07-10 04:01:15 +00:00
|
|
|
Data.LevelUpdate = 160;
|
|
|
|
}
|
|
|
|
Data.BlockNum = CONFIG_DATA.CurBlockNum;
|
|
|
|
Data.addrArr = GetHexFromArr(Data.addrArr);
|
|
|
|
Data.Hash = GetHexFromArr(Data.Hash);
|
|
|
|
Data.Sign = GetHexFromArr(Data.Sign);
|
|
|
|
Data.Hash = undefined;
|
|
|
|
Data.Sign = undefined;
|
|
|
|
Data.StartLoadVersionNum = undefined;
|
|
|
|
var Str = JSON.stringify(Data, "", 2);
|
|
|
|
document.getElementById("idDevService").value = Str;
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetCorrTimeJSON() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var AutoDelta = parseInt(document.getElementById("idDevValue").value);
|
2019-07-10 07:59:04 +00:00
|
|
|
var Data = { Num: CONFIG_DATA.CurBlockNum, bUse: 1, bAddTime: 1 };
|
|
|
|
if (AutoDelta < 0) {
|
|
|
|
AutoDelta = - AutoDelta;
|
2019-07-10 04:01:15 +00:00
|
|
|
Data.bAddTime = 0;
|
|
|
|
}
|
|
|
|
Data.DeltaTime = 40;
|
|
|
|
Data.StartBlockNum = ServerCurBlockNum + 10;
|
|
|
|
Data.EndBlockNum = Data.StartBlockNum + Math.floor(AutoDelta / Data.DeltaTime);
|
|
|
|
var Str = JSON.stringify(Data, "", 2);
|
|
|
|
document.getElementById("idDevService").value = Str;
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetNetConstJSON() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Str = JSON.stringify(Data, "", 2);
|
|
|
|
document.getElementById("idDevService").value = Str;
|
2019-07-10 07:59:04 +00:00
|
|
|
var Data = { MaxTrasactionLimit: CONFIG_DATA.MAX_TRANSACTION_LIMIT };
|
2019-07-10 04:01:15 +00:00
|
|
|
var Str = JSON.stringify(Data, "", 2);
|
|
|
|
document.getElementById("idDevService").value = Str;
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetNewCodeVersion() {
|
|
|
|
try {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Data = JSON.parse(document.getElementById("idDevService").value);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
catch (e) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error format setting data");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
|
|
|
Data.addrArr = GetArrFromHex(Data.addrArr);
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetNewCodeVersion", Data, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus(Data.text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function StartTimeCorrect() {
|
|
|
|
try {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Data = JSON.parse(document.getElementById("idDevService").value);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
catch (e) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error format setting data");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetCheckDeltaTime", Data, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus(Data.text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function StartNetConst() {
|
|
|
|
try {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Data = JSON.parse(document.getElementById("idDevService").value);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
catch (e) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error format setting data");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetCheckNetConstant", Data, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus(Data.text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function RestartNode() {
|
2019-07-10 04:01:15 +00:00
|
|
|
GetData("RestartNode", {});
|
|
|
|
DoRestartWallet();
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function UseAutoUpdate() {
|
|
|
|
var Data = { USE_AUTO_UPDATE: document.getElementById("idAutoUpdate").checked, DoMining: 1 };
|
|
|
|
GetData("SaveConstant", Data, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Save AutoUpdate: " + document.getElementById("idAutoUpdate").checked);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function UseMining() {
|
|
|
|
if (!MiningAccount) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Not set mining account");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
var Data = { USE_MINING: document.getElementById("idUseMining").checked, DoMining: 1 };
|
|
|
|
GetData("SaveConstant", Data, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Save Mining: " + document.getElementById("idUseMining").checked);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetPercentMining() {
|
|
|
|
var Data = { POW_MAX_PERCENT: document.getElementById("idPercentMining").value };
|
|
|
|
GetData("SaveConstant", Data, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Save Mining percent: " + document.getElementById("idPercentMining").value + " %");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function MiningSets() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var name = "edit_mining_set";
|
2019-07-10 07:59:04 +00:00
|
|
|
if (IsVisibleBlock(name)) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock(name, false);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock(name, true);
|
|
|
|
document.getElementById("idMiningAccount").value = MiningAccount;
|
|
|
|
document.getElementById("idMiningAccount").focus();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SaveMiningSet(Value) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock("edit_mining_set", false);
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Value) {
|
2019-07-10 04:01:15 +00:00
|
|
|
MiningAccount = Value;
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
MiningAccount = ParseNum(document.getElementById("idMiningAccount").value);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetMining", MiningAccount, function(Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function CancalMiningSet() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var name = "edit_mining_set";
|
|
|
|
SetVisibleBlock(name, false);
|
|
|
|
};
|
|
|
|
var WasHistoryMaxNum;
|
|
|
|
var WasLastNumSound = 0;
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function CheckNewMoney() {
|
|
|
|
return;
|
|
|
|
if (!$("idUseSoundHistory").checked)
|
|
|
|
return;
|
|
|
|
if (WasHistoryMaxNum === HistoryMaxNum || !ServerBlockNumDB)
|
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
WasHistoryMaxNum = HistoryMaxNum;
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("GetHistoryAct", { StartNum: HistoryMaxNum - 40, CountNum: 40 }, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var arr = Data.arr;
|
2019-07-10 07:59:04 +00:00
|
|
|
for (var i = 0; i < arr.length; i++) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Item = arr[i];
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Item.Direct === "+" && Item.BlockNum > ServerBlockNumDB - 60 && Item.BlockNum < ServerBlockNumDB - 20 && Item.BlockNum > WasLastNumSound) {
|
2019-07-10 04:01:15 +00:00
|
|
|
WasLastNumSound = Item.BlockNum;
|
|
|
|
$("sound_coin").play();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function DoRestartWallet() {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("<H1 align='center' style='color:blue'>Restarting program...</H1>");
|
2019-07-10 07:59:04 +00:00
|
|
|
if (!WasSetRestart) {
|
2019-07-10 04:01:15 +00:00
|
|
|
WasSetRestart = 1;
|
2019-07-10 07:59:04 +00:00
|
|
|
setTimeout(function() {
|
2019-07-10 04:01:15 +00:00
|
|
|
window.location.reload();
|
|
|
|
}, 10 * 1000);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetArrLog(arr) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Str = "";
|
|
|
|
var bFindAccount = 0;
|
2019-07-10 07:59:04 +00:00
|
|
|
for (var i = 0; i < arr.length; i++) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Item = arr[i];
|
|
|
|
var tr_text = GetTransactionText(MapSendTransaction[Item.key], Item.key.substr(0, 16));
|
|
|
|
var info = Item.text;
|
2019-07-10 07:59:04 +00:00
|
|
|
if (tr_text)
|
2019-07-10 04:01:15 +00:00
|
|
|
info += " (" + tr_text + ")";
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Item.final) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var TR = MapSendTransaction[Item.key];
|
2019-07-10 07:59:04 +00:00
|
|
|
if (TR) {
|
|
|
|
if (Item.text.indexOf("Add to blockchain") >= 0) {
|
|
|
|
if (TR.bFindAcc) {
|
2019-07-10 04:01:15 +00:00
|
|
|
bFindAccount = 1;
|
|
|
|
TR.bFindAcc = 0;
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
if (TR.Run) {
|
2019-07-10 04:01:15 +00:00
|
|
|
TR.Run(TR);
|
|
|
|
TR.Run = undefined;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var Account = MapCheckTransaction[Item.key];
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Account) {
|
2019-07-10 04:01:15 +00:00
|
|
|
delete MapCheckTransaction[Item.key];
|
|
|
|
Account.NextSendTime = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Str = Str + info + "\n";
|
|
|
|
}
|
|
|
|
SetStatusFromServer(Str);
|
|
|
|
CheckSending();
|
2019-07-10 07:59:04 +00:00
|
|
|
if (bFindAccount) {
|
2019-07-10 04:01:15 +00:00
|
|
|
FindMyAccounts();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetAutoMining() {
|
|
|
|
setTimeout(function() {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Select = $("idAccount");
|
2019-07-10 07:59:04 +00:00
|
|
|
if (Select.options.length) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SaveMiningSet(Select.options[Select.options.length - 1].value);
|
|
|
|
}
|
|
|
|
}, 100);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function ViewNetworkMode() {
|
|
|
|
if (IsVisibleBlock('idNetworkView')) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idNetworkView', false);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idNetworkView', true);
|
|
|
|
var Mode = CONFIG_DATA.CONSTANTS.NET_WORK_MODE;
|
2019-07-10 07:59:04 +00:00
|
|
|
if (!Mode) {
|
2019-07-10 04:01:15 +00:00
|
|
|
Mode = {};
|
|
|
|
Mode.UseDirectIP = true;
|
2019-07-10 07:59:04 +00:00
|
|
|
if (INTERNET_IP_FROM_STUN)
|
2019-07-10 04:01:15 +00:00
|
|
|
Mode.ip = INTERNET_IP_FROM_STUN;
|
|
|
|
else
|
|
|
|
Mode.ip = SERVER_IP;
|
|
|
|
Mode.port = SERVER_PORT;
|
|
|
|
}
|
|
|
|
document.getElementById("idUseDirectIP").checked = Mode.UseDirectIP;
|
|
|
|
document.getElementById("idIP").value = Mode.ip;
|
|
|
|
document.getElementById("idPort").value = Mode.port;
|
2019-07-10 07:59:04 +00:00
|
|
|
if (!Mode.NodeWhiteList)
|
2019-07-10 04:01:15 +00:00
|
|
|
Mode.NodeWhiteList = "";
|
|
|
|
document.getElementById("idNodeWhiteList").value = Mode.NodeWhiteList;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetNetworkParams(bRestart) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Mode = {};
|
|
|
|
Mode.UseDirectIP = document.getElementById("idUseDirectIP").checked;
|
|
|
|
Mode.ip = document.getElementById("idIP").value;
|
|
|
|
Mode.port = ParseNum(document.getElementById("idPort").value);
|
|
|
|
Mode.NodeWhiteList = document.getElementById("idNodeWhiteList").value;
|
|
|
|
Mode.DoRestartNode = bRestart;
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetNetMode", Mode, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Set net work params OK");
|
|
|
|
SetVisibleBlock('idNetworkView', false);
|
|
|
|
}
|
|
|
|
});
|
2019-07-10 07:59:04 +00:00
|
|
|
if (bRestart)
|
2019-07-10 04:01:15 +00:00
|
|
|
DoRestartWallet();
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function ViewConstant() {
|
|
|
|
if (IsVisibleBlock('idConstantView')) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idConstantView', false);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idConstantView', true);
|
|
|
|
document.getElementById("idConstant").value = JSON.stringify(CONFIG_DATA.CONSTANTS, "", 2);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SaveConstant(bRestart) {
|
|
|
|
try {
|
2019-07-10 04:01:15 +00:00
|
|
|
var Data = JSON.parse(document.getElementById("idConstant").value);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
catch (e) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetError("Error JSON format setting constant");
|
2019-07-10 07:59:04 +00:00
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
}
|
|
|
|
Data.DoRestartNode = bRestart;
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SaveConstant", Data, function(Data) {
|
|
|
|
if (Data && Data.result) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("Save Constant OK");
|
|
|
|
SetVisibleBlock('idConstantView', false);
|
|
|
|
}
|
|
|
|
});
|
2019-07-10 07:59:04 +00:00
|
|
|
if (bRestart)
|
2019-07-10 04:01:15 +00:00
|
|
|
DoRestartWallet();
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function ViewRemoteParams() {
|
|
|
|
if (IsVisibleBlock('idRemoteView')) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idRemoteView', false);
|
|
|
|
}
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idRemoteView', true);
|
2019-07-10 07:59:04 +00:00
|
|
|
if (CONFIG_DATA.HTTPPort)
|
2019-07-10 04:01:15 +00:00
|
|
|
document.getElementById("idHTTPPort").value = CONFIG_DATA.HTTPPort;
|
|
|
|
document.getElementById("idHTTPPassword").value = CONFIG_DATA.HTTPPassword;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function SetRemoteParams(bRestart) {
|
2019-07-10 04:01:15 +00:00
|
|
|
var PrevHTTPPassword = HTTPPassword;
|
|
|
|
var HTTPPort = ParseNum(document.getElementById("idHTTPPort").value);
|
|
|
|
var HTTPPassword = document.getElementById("idHTTPPassword").value;
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData("SetHTTPParams", { HTTPPort: HTTPPort, HTTPPassword: HTTPPassword, DoRestartNode: bRestart }, function(Data) {
|
|
|
|
if (!PrevHTTPPassword && HTTPPassword)
|
2019-07-10 04:01:15 +00:00
|
|
|
window.location.reload();
|
2019-07-10 07:59:04 +00:00
|
|
|
else {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock('idRemoteView', false);
|
|
|
|
SetStatus("Set HTTP params OK");
|
|
|
|
}
|
|
|
|
});
|
2019-07-10 07:59:04 +00:00
|
|
|
if (bRestart)
|
2019-07-10 04:01:15 +00:00
|
|
|
DoRestartWallet();
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function RewriteAllTransactions() {
|
2019-07-10 04:01:15 +00:00
|
|
|
DoBlockChainProcess("RewriteAllTransactions", "Rewrite all transactions", 0);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function RewriteTransactions() {
|
2019-07-10 04:01:15 +00:00
|
|
|
DoBlockChainProcess("RewriteTransactions", "Rewrite transactions on last %1 blocks", 1);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function TruncateBlockChain() {
|
2019-07-10 04:01:15 +00:00
|
|
|
DoBlockChainProcess("TruncateBlockChain", "Truncate last %1 blocks", 1);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function ClearDataBase() {
|
2019-07-10 04:01:15 +00:00
|
|
|
DoBlockChainProcess("ClearDataBase", "Clear DataBase", 0);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function CleanChain() {
|
2019-07-10 04:01:15 +00:00
|
|
|
DoBlockChainProcess("CleanChain", "Clean chain on last %1 blocks", 1);
|
|
|
|
};
|
|
|
|
|
2019-07-10 07:59:04 +00:00
|
|
|
function DoBlockChainProcess(FuncName, Text, LastBlock) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SaveValues();
|
|
|
|
var Params = {};
|
2019-07-10 07:59:04 +00:00
|
|
|
if (LastBlock) {
|
2019-07-10 04:01:15 +00:00
|
|
|
Params.BlockCount = ParseNum(document.getElementById("idBlockCount").value);
|
|
|
|
Text = Text.replace("%1", Params.BlockCount);
|
|
|
|
}
|
|
|
|
var result = confirm(Text + "?");
|
2019-07-10 07:59:04 +00:00
|
|
|
if (!result)
|
|
|
|
return;
|
2019-07-10 04:01:15 +00:00
|
|
|
SetVisibleBlock("idServerBlock", 1);
|
|
|
|
SetStatus("START: " + Text);
|
2019-07-10 07:59:04 +00:00
|
|
|
GetData(FuncName, Params, function(Data) {
|
|
|
|
if (Data) {
|
2019-07-10 04:01:15 +00:00
|
|
|
SetStatus("FINISH: " + Text, !Data.result);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|