forked from circlecloud/tera
@@ -26,7 +26,7 @@ WebApi2.CreateAccount = function(Params, response) {
|
||||
Body = Body.slice(0, Body.len + 12);
|
||||
SendTransaction(Body, TR as any, Params.Wait, function(result, text) {
|
||||
var Result = {
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, global.TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
Meta: Params.Meta,
|
||||
};
|
||||
var Str = JSON.stringify(Result);
|
||||
@@ -42,10 +42,10 @@ WebApi2.Send = function(Params, response, A, bJsonRet) {
|
||||
return { result: 0 };
|
||||
var Coin;
|
||||
if (typeof Params.Amount === "number")
|
||||
Coin = COIN_FROM_FLOAT(Params.Amount);
|
||||
Coin = global.COIN_FROM_FLOAT(Params.Amount);
|
||||
else
|
||||
Coin = Params.Amount;
|
||||
var FromNum = ParseNum(Params.FromID);
|
||||
var FromNum = global.ParseNum(Params.FromID);
|
||||
if (!Coin)
|
||||
return { result: 0, Meta: Params.Meta, text: "Params.Amount required" };
|
||||
if (!FromNum)
|
||||
@@ -57,7 +57,7 @@ WebApi2.Send = function(Params, response, A, bJsonRet) {
|
||||
if (typeof Params.ToID === "string" && Params.ToID.length === 66)
|
||||
ToPubKeyArr = global.GetArrFromHex(Params.ToID);
|
||||
else
|
||||
ToID = ParseNum(Params.ToID);
|
||||
ToID = global.ParseNum(Params.ToID);
|
||||
var DataFrom = global.DApps.Accounts.ReadState(FromNum);
|
||||
if (!DataFrom)
|
||||
return { result: 0, Meta: Params.Meta, text: "Error read account: " + FromNum };
|
||||
@@ -68,14 +68,14 @@ WebApi2.Send = function(Params, response, A, bJsonRet) {
|
||||
}
|
||||
else {
|
||||
OperationID = MapSendID[FromNum].OperationID;
|
||||
if ((new Date() - MapSendID[FromNum].Date) > 8 * 1000) {
|
||||
if (((new Date() as any) - MapSendID[FromNum].Date) > 8 * 1000) {
|
||||
OperationID += 20;
|
||||
}
|
||||
}
|
||||
OperationID++;
|
||||
MapSendID[FromNum].OperationID = OperationID;
|
||||
MapSendID[FromNum].Date = Date.now();
|
||||
var TR = {
|
||||
var TR: any = {
|
||||
Type: 111, Version: 3, Reserve: 0, FromID: FromNum, OperationID: OperationID, To: [{
|
||||
PubKey: ToPubKeyArr, ID: ToID, SumCOIN: Coin.SumCOIN,
|
||||
SumCENT: Coin.SumCENT
|
||||
@@ -86,11 +86,11 @@ WebApi2.Send = function(Params, response, A, bJsonRet) {
|
||||
if (!Params.FromPrivKey)
|
||||
return { result: 0, Meta: Params.Meta, text: "Params.FromPrivKey required" };
|
||||
TR.Sign = global.DApps.Accounts.GetSignTransferTx(TR, global.GetArrFromHex(Params.FromPrivKey));
|
||||
var Body = global.BufLib.GetBufferFromObject(TR, FORMAT_MONEY_TRANSFER3, MAX_TRANSACTION_SIZE, {}, 1);
|
||||
var Body = global.BufLib.GetBufferFromObject(TR, global.FORMAT_MONEY_TRANSFER3, global.MAX_TRANSACTION_SIZE, {}, 1);
|
||||
Body = Body.slice(0, Body.len + 12);
|
||||
SendTransaction(Body, TR, Params.Wait, function(result, text) {
|
||||
var Result = {
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, global.TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
Meta: Params.Meta,
|
||||
};
|
||||
var Str = JSON.stringify(Result);
|
||||
@@ -100,7 +100,7 @@ WebApi2.Send = function(Params, response, A, bJsonRet) {
|
||||
};
|
||||
WebApi2.GetBalance = function(Params, response) {
|
||||
if (typeof Params === "object") {
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(ParseNum(Params.AccountID), 1);
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(global.ParseNum(Params.AccountID), 1);
|
||||
if (arr.length) {
|
||||
var Account = arr[0];
|
||||
var Value = Account.Value;
|
||||
@@ -116,7 +116,7 @@ WebApi2.GetBalance = function(Params, response) {
|
||||
WebApi2.GetTransaction = function(Params) {
|
||||
if (typeof Params === "object" && Params.TxID) {
|
||||
var Arr = global.GetArrFromHex(Params.TxID);
|
||||
var BlockNum = ReadUintFromArr(Arr, TR_TICKET_HASH_LENGTH);
|
||||
var BlockNum = global.ReadUintFromArr(Arr, global.TR_TICKET_HASH_LENGTH);
|
||||
var Block = global.SERVER.ReadBlockDB(BlockNum);
|
||||
if (Block && Block.arrContent) {
|
||||
for (var i = 0; i < Block.arrContent.length; i++) {
|
||||
@@ -209,11 +209,11 @@ WebApi2.SendRawTransaction = function(Params, response) {
|
||||
return { result: 0, Meta: Params.Meta, text: "Params.Tx.Sign required" };
|
||||
var TR = Params.Tx;
|
||||
TxHexToArr(TR);
|
||||
var Body = global.BufLib.GetBufferFromObject(TR, FORMAT_MONEY_TRANSFER3, MAX_TRANSACTION_SIZE, {}, 1);
|
||||
var Body = global.BufLib.GetBufferFromObject(TR, global.FORMAT_MONEY_TRANSFER3, global.MAX_TRANSACTION_SIZE, {}, 1);
|
||||
Body = Body.slice(0, Body.len + 12);
|
||||
SendTransaction(Body, TR, Params.Wait, function(result, text) {
|
||||
var Result = {
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
result: result, text: text, TxID: global.GetHexFromArr(TR._TxID.slice(0, global.TR_TICKET_HASH_LENGTH + 6)), BlockNum: TR._BlockNum,
|
||||
Meta: Params.Meta,
|
||||
};
|
||||
var Str = JSON.stringify(Result);
|
||||
@@ -252,9 +252,9 @@ function TxHexToArr(TR) {
|
||||
var DELTA_FOR_TIME_TX = 1;
|
||||
|
||||
function GetTxID(BlockNum, Body) {
|
||||
var Nonce = ReadUintFromArr(Body, Body.length - 6);
|
||||
var Nonce = global.ReadUintFromArr(Body, Body.length - 6);
|
||||
var Arr2 = CreateTxID(Body, BlockNum, Nonce);
|
||||
return Arr2.slice(0, TR_TICKET_HASH_LENGTH + 6);
|
||||
return Arr2.slice(0, global.TR_TICKET_HASH_LENGTH + 6);
|
||||
};
|
||||
|
||||
function CreateTxID(body, BlockNum, Nonce) {
|
||||
@@ -262,14 +262,14 @@ function CreateTxID(body, BlockNum, Nonce) {
|
||||
body.writeUIntLE(Nonce, body.length - 6, 6);
|
||||
var HASH = global.sha3(body);
|
||||
var FullHashTicket = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for (var i = 0; i < TR_TICKET_HASH_LENGTH; i++)
|
||||
for (var i = 0; i < global.TR_TICKET_HASH_LENGTH; i++)
|
||||
FullHashTicket[i] = HASH[i];
|
||||
WriteUintToArrOnPos(FullHashTicket, BlockNum, TR_TICKET_HASH_LENGTH);
|
||||
global.WriteUintToArrOnPos(FullHashTicket, BlockNum, global.TR_TICKET_HASH_LENGTH);
|
||||
return FullHashTicket;
|
||||
};
|
||||
|
||||
function GetBlockNumTr(arr) {
|
||||
var BlockNum = DELTA_FOR_TIME_TX + GetCurrentBlockNumByTime();
|
||||
var BlockNum = DELTA_FOR_TIME_TX + global.GetCurrentBlockNumByTime();
|
||||
if (arr[0] === global.TYPE_TRANSACTION_CREATE) {
|
||||
var BlockNum2 = Math.floor(BlockNum / 10) * 10;
|
||||
if (BlockNum2 < BlockNum)
|
||||
@@ -282,12 +282,12 @@ function GetBlockNumTr(arr) {
|
||||
function CreateHashBodyPOWInnerMinPower(TR, arr, MinPow, startnonce) {
|
||||
var BlockNum = GetBlockNumTr(arr);
|
||||
if (MinPow === undefined) {
|
||||
MinPow = MIN_POWER_POW_TR + Math.log2(arr.length / 128);
|
||||
MinPow = global.MIN_POWER_POW_TR + Math.log2(arr.length / 128);
|
||||
}
|
||||
var nonce = startnonce;
|
||||
while (1) {
|
||||
var TxID = CreateTxID(arr, BlockNum, nonce);
|
||||
var power = GetPowPower(sha3(TxID));
|
||||
var power = global.GetPowPower(global.sha3(TxID));
|
||||
if (power >= MinPow) {
|
||||
TR._TxID = TxID;
|
||||
TR._BlockNum = BlockNum;
|
||||
@@ -349,7 +349,7 @@ function SendTransaction(Body, TR, Wait, F) {
|
||||
function GetTransactionFromBody(Params, Block, TrNum, Body) {
|
||||
var TR = global.DApps.Accounts.GetObjectTransaction(Body);
|
||||
if (TR) {
|
||||
ConvertBufferToStr(TR);
|
||||
global.ConvertBufferToStr(TR);
|
||||
TR.result = 1;
|
||||
TR.Meta = Params.Meta;
|
||||
if (Block.VersionBody === 1 && Block.arrContentResult) {
|
||||
|
||||
@@ -14,16 +14,9 @@ const fs = require('fs');
|
||||
const os = require('os');
|
||||
import * as crypto from 'crypto';
|
||||
|
||||
let {
|
||||
GetNormalPathString,
|
||||
sha3,
|
||||
AddTrMap,
|
||||
ADD_HASH_RATE
|
||||
} = global
|
||||
|
||||
global.START_SERVER = 1;
|
||||
global.DATA_PATH = GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = GetNormalPathString(global.CODE_PATH);
|
||||
global.DATA_PATH = global.GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = global.GetNormalPathString(global.CODE_PATH);
|
||||
console.log("DATA DIR: " + global.DATA_PATH);
|
||||
console.log("PROGRAM DIR: " + global.CODE_PATH);
|
||||
require("../core/library");
|
||||
@@ -31,7 +24,7 @@ global.ToLog(os.platform() + " (" + os.arch() + ") " + os.release());
|
||||
var VerArr = process.versions.node.split('.');
|
||||
global.ToLog("nodejs: " + process.versions.node);
|
||||
if ((VerArr[0] as any as number) < 8) {
|
||||
global.global.ToError("Error version of NodeJS=" + VerArr[0] + " Pls, download new version from www.nodejs.org and update it. The minimum version must be 8");
|
||||
global.ToError("Error version of NodeJS=" + VerArr[0] + " Pls, download new version from www.nodejs.org and update it. The minimum version must be 8");
|
||||
process.exit();
|
||||
}
|
||||
var CServer = require("../core/server");
|
||||
@@ -62,7 +55,7 @@ process.on('uncaughtException' as any, function(err: TeraError) {
|
||||
if (global.PROCESS_NAME !== "MAIN") {
|
||||
process.send({ cmd: "log", message: err });
|
||||
}
|
||||
global.global.ToError(err.stack);
|
||||
global.ToError(err.stack);
|
||||
global.ToLog(err.stack);
|
||||
if (err.code === "ENOTFOUND" || err.code === "ECONNRESET" || err.code === "EPIPE") {
|
||||
}
|
||||
@@ -73,7 +66,7 @@ process.on('uncaughtException' as any, function(err: TeraError) {
|
||||
}
|
||||
});
|
||||
process.on('error' as any, function(err: TeraError) {
|
||||
global.global.ToError(err.stack);
|
||||
global.ToError(err.stack);
|
||||
global.ToLog(err.stack);
|
||||
});
|
||||
var ArrChildProcess = [];
|
||||
@@ -134,15 +127,15 @@ function OnMessageWeb(msg) {
|
||||
function AddTransactionFromWeb(Params) {
|
||||
var body = global.GetArrFromHex(Params.HexValue);
|
||||
if (global.TX_PROCESS && global.TX_PROCESS.Worker) {
|
||||
var StrHex = global.GetHexFromArr(sha3(body));
|
||||
var StrHex = global.GetHexFromArr(global.sha3(body));
|
||||
global.TX_PROCESS.Worker.send({ cmd: "FindTX", TX: StrHex, Web: 1, WebID: Params.WebID });
|
||||
}
|
||||
var Res = global.SERVER.AddTransaction({ body: body }, 1);
|
||||
var text = AddTrMap[Res];
|
||||
var text = global.AddTrMap[Res];
|
||||
var final = false;
|
||||
if (Res <= 0 && Res !== - 3)
|
||||
final = true;
|
||||
global.ToLogClient("Send: " + text, global.GetHexFromArr(sha3(body)), final);
|
||||
global.ToLogClient("Send: " + text, global.GetHexFromArr(global.sha3(body)), final);
|
||||
return text;
|
||||
};
|
||||
global.AddTransactionFromWeb = AddTransactionFromWeb;
|
||||
@@ -311,7 +304,7 @@ function StartChildProcess(Item) {
|
||||
ITEM.Worker.on('error', function(err) {
|
||||
});
|
||||
ITEM.Worker.on('close', function(code) {
|
||||
global.global.ToError("CLOSE " + ITEM.Name);
|
||||
global.ToError("CLOSE " + ITEM.Name);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -454,7 +447,7 @@ function RunStopPOWProcess(Mode) {
|
||||
return;
|
||||
if (GENERATE_BLOCK_ACCOUNT < 8)
|
||||
return;
|
||||
var PathMiner = GetCodePath("../miner.js");
|
||||
var PathMiner = global.GetCodePath("../miner.js");
|
||||
if (!fs.existsSync(PathMiner))
|
||||
PathMiner = "./process/pow-process.js";
|
||||
if (ArrMiningWrk.length >= GetCountMiningCPU())
|
||||
@@ -494,13 +487,13 @@ function RunStopPOWProcess(Mode) {
|
||||
}
|
||||
else
|
||||
if (msg.cmd === "HASHRATE") {
|
||||
ADD_HASH_RATE(msg.CountNonce);
|
||||
global.ADD_HASH_RATE(msg.CountNonce);
|
||||
}
|
||||
});
|
||||
Worker.on('error', function(err) {
|
||||
if (!ArrMiningWrk.length)
|
||||
return;
|
||||
global.global.ToError('ERROR IN PROCESS: ' + err);
|
||||
global.ToError('ERROR IN PROCESS: ' + err);
|
||||
});
|
||||
Worker.on('close', function(code) {
|
||||
global.ToLog("STOP PROCESS: " + Worker.Num + " pid:" + Worker.pid);
|
||||
@@ -533,9 +526,7 @@ function SetCalcPOW(Block, cmd) {
|
||||
};
|
||||
global.SetCalcPOW = SetCalcPOW;
|
||||
global.RunStopPOWProcess = RunStopPOWProcess;
|
||||
let {
|
||||
glCurNumFindArr
|
||||
} = global
|
||||
|
||||
function DoGetNodes() {
|
||||
if (!SERVER)
|
||||
return;
|
||||
@@ -543,11 +534,11 @@ function DoGetNodes() {
|
||||
return;
|
||||
if (!SERVER.NodesArrUnSort || !SERVER.NodesArrUnSort.length)
|
||||
return;
|
||||
var Num = glCurNumFindArr % global.SERVER.NodesArrUnSort.length;
|
||||
var Num = global.glCurNumFindArr % global.SERVER.NodesArrUnSort.length;
|
||||
var Node = global.SERVER.NodesArrUnSort[Num];
|
||||
if (Num === 0)
|
||||
glCurNumFindArr = 0;
|
||||
glCurNumFindArr++;
|
||||
global.glCurNumFindArr = 0;
|
||||
global.glCurNumFindArr++;
|
||||
if (Node.Delete)
|
||||
return;
|
||||
if (SERVER.NodeInBan(Node))
|
||||
@@ -565,7 +556,7 @@ function DoConnectToNodes(Arr, Mode) {
|
||||
if (!GrayConnect() && global.SERVER.CanSend < 2) {
|
||||
return;
|
||||
}
|
||||
if (GrayConnect() && global.SERVER.ActualNodes.size > GetGrayServerConnections())
|
||||
if (GrayConnect() && global.SERVER.ActualNodes.size > global.GetGrayServerConnections())
|
||||
return;
|
||||
if (Arr.length) {
|
||||
var MinProcessCount = global.SERVER.BusyLevel - 1;
|
||||
@@ -592,16 +583,14 @@ var idRunOnce;
|
||||
function RunServer() {
|
||||
let {
|
||||
GetNetworkName,
|
||||
DEF_VERSION,
|
||||
NET_WORK_MODE,
|
||||
SAVE_CONST,
|
||||
ToLog,
|
||||
START_IP,
|
||||
START_PORT_NUMBER
|
||||
} = global
|
||||
idRunOnce = setInterval(RunOnce, 1000);
|
||||
global.ToLog("NETWORK: " + GetNetworkName());
|
||||
global.ToLog("VERSION: " + DEF_VERSION);
|
||||
global.ToLog("VERSION: " + global.DEF_VERSION);
|
||||
if (global.NET_WORK_MODE) {
|
||||
global.START_IP = NET_WORK_MODE.ip;
|
||||
global.START_PORT_NUMBER = NET_WORK_MODE.port;
|
||||
@@ -666,7 +655,7 @@ function RunOnce() {
|
||||
var Period = (global.random(600) + global.RESTART_PERIOD_SEC);
|
||||
global.ToLog("SET RESTART NODE AFTER: " + Period + " sec");
|
||||
setInterval(function() {
|
||||
RestartNode();
|
||||
global.RestartNode();
|
||||
}, Period * 1000);
|
||||
}
|
||||
setTimeout(function() {
|
||||
@@ -713,7 +702,7 @@ function TestSignLib(MaxTime) {
|
||||
for (var Num = 0; Num < 1000; Num++) {
|
||||
var Result = global.secp256k1.verify(hash, Sign, PubKey);
|
||||
if (!Result) {
|
||||
global.global.ToError("Error test sign");
|
||||
global.ToError("Error test sign");
|
||||
process.exit(0);
|
||||
}
|
||||
var Time = process.hrtime(startTime);
|
||||
|
||||
@@ -37,7 +37,7 @@ function CalcPOWHash() {
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
global.global.ToError(e);
|
||||
global.ToError(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -52,7 +52,7 @@ PROCESS.on("message", function(e) {
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
global.global.ToError(e);
|
||||
global.ToError(e);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -80,12 +80,12 @@ function PumpHash() {
|
||||
if (global.BlockPump) {
|
||||
var e = Date.now();
|
||||
if (EndTime < StartTime) {
|
||||
if (100 * (e - StartTime) / CONSENSUS_PERIOD_TIME >= BlockPump.Percent)
|
||||
if (100 * (e - StartTime) / global.CONSENSUS_PERIOD_TIME >= global.BlockPump.Percent)
|
||||
return void (EndTime = e);
|
||||
CreatePOWVersionX(BlockPump, 1);
|
||||
global.CreatePOWVersionX(global.BlockPump, 1);
|
||||
}
|
||||
else {
|
||||
100 * (e - EndTime) / CONSENSUS_PERIOD_TIME > 100 - BlockPump.Percent && (StartTime = e);
|
||||
100 * (e - EndTime) / global.CONSENSUS_PERIOD_TIME > 100 - global.BlockPump.Percent && (StartTime = e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
|
||||
global.PROCESS_NAME = "STATIC";
|
||||
import * as crypto from 'crypto';
|
||||
const fs = require('fs');
|
||||
require("../core/constant");
|
||||
require('../core/block-loader-const');
|
||||
require('../core/rest_tables.js');
|
||||
require('../system/accounts.js');
|
||||
require('../system/smart.js');
|
||||
global.DATA_PATH = GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = GetNormalPathString(global.CODE_PATH);
|
||||
require("../core/library");
|
||||
import * as fs from 'fs'
|
||||
import "../core/constant"
|
||||
import '../core/block-loader-const'
|
||||
import '../core/rest_tables'
|
||||
import '../system/accounts'
|
||||
import '../system/smart'
|
||||
global.DATA_PATH = global.GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = global.GetNormalPathString(global.CODE_PATH);
|
||||
import "../core/library"
|
||||
global.READ_ONLY_DB = 1;
|
||||
var LastAlive = Date.now();
|
||||
setTimeout(function() {
|
||||
@@ -74,7 +74,7 @@ function CheckAlive() {
|
||||
if (global.NOALIVE)
|
||||
return;
|
||||
var Delta = Date.now() - LastAlive;
|
||||
if (Delta > CHECK_STOP_CHILD_PROCESS) {
|
||||
if (Delta > global.CHECK_STOP_CHILD_PROCESS) {
|
||||
global.ToLog("STATIC-DB: ALIVE TIMEOUT Stop and exit: " + Delta + "/" + global.CHECK_STOP_CHILD_PROCESS);
|
||||
process.exit(0);
|
||||
return;
|
||||
@@ -83,11 +83,11 @@ function CheckAlive() {
|
||||
process.on('uncaughtException', function(err) {
|
||||
global.ToError(err.stack);
|
||||
global.ToLog(err.stack);
|
||||
TO_ERROR_LOG("STATIC-DB", 777, err);
|
||||
global.TO_ERROR_LOG("STATIC-DB", 777, err);
|
||||
global.ToLog("-----------------STATIC-DB EXIT------------------");
|
||||
process.exit();
|
||||
});
|
||||
process.on('error', function(err) {
|
||||
process.on('error' as any, function(err: TeraError) {
|
||||
global.ToError("STATIC-DB:\n" + err.stack);
|
||||
global.ToLog(err.stack);
|
||||
});
|
||||
@@ -98,7 +98,7 @@ KeyPair.setPrivateKey(Buffer.from([77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7
|
||||
global.SERVER = new CServerDB(KeyPair, undefined, undefined, false, true);
|
||||
global.HTTP_PORT_NUMBER = 0;
|
||||
setInterval(function() {
|
||||
if (SERVER)
|
||||
if (global.SERVER)
|
||||
global.SERVER.Close();
|
||||
global.DApps.Accounts.Close();
|
||||
global.DApps.Smart.DBSmart.Close();
|
||||
@@ -116,8 +116,8 @@ function GETBLOCKHEADER100(msg) {
|
||||
var Count = Data.Count;
|
||||
if (!Count || Count < 0 || !EndNum100)
|
||||
return;
|
||||
if (Count > COUNT_BLOCKS_FOR_LOAD)
|
||||
Count = COUNT_BLOCKS_FOR_LOAD;
|
||||
if (Count > global.COUNT_BLOCKS_FOR_LOAD)
|
||||
Count = global.COUNT_BLOCKS_FOR_LOAD;
|
||||
var Arr = [];
|
||||
var Data100 = global.SERVER.DBHeader100.Read(EndNum100);
|
||||
if (Data100 && global.CompareArr(Data100.Hash100, LoadHash100) === 0) {
|
||||
@@ -131,7 +131,7 @@ function GETBLOCKHEADER100(msg) {
|
||||
Arr.push(Data100.Hash);
|
||||
}
|
||||
}
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Arr, "[hash]", MAX_PACKET_LENGTH, {});
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Arr, "[hash]", global.MAX_PACKET_LENGTH, {});
|
||||
global.ToLog("GETBLOCKHEADER100 Send Arr=" + Arr.length + " - " + BlockNum);
|
||||
process.send({ cmd: "Send", addrStr: msg.addrStr, Method: "RETBLOCKHEADER100", Context: msg.Context, Data: BufWrite });
|
||||
};
|
||||
@@ -144,11 +144,11 @@ function GETBLOCKHEADER(msg) {
|
||||
var Foward = Data.Foward;
|
||||
if (Foward) {
|
||||
var BlockDB = global.SERVER.ReadBlockHeaderDB(Data.BlockNum);
|
||||
if (BlockDB && BlockDB.SumHash && (global.CompareArr(BlockDB.SumHash, LoadHash) === 0 || IsZeroArr(LoadHash))) {
|
||||
if (BlockDB && BlockDB.SumHash && (global.CompareArr(BlockDB.SumHash, LoadHash) === 0 || global.IsZeroArr(LoadHash))) {
|
||||
StartNum = Data.BlockNum - global.BLOCK_PROCESSING_LENGTH2;
|
||||
if (StartNum < 0)
|
||||
StartNum = 0;
|
||||
BlockNum = StartNum + COUNT_BLOCKS_FOR_LOAD + global.BLOCK_PROCESSING_LENGTH2;
|
||||
BlockNum = StartNum + global.COUNT_BLOCKS_FOR_LOAD + global.BLOCK_PROCESSING_LENGTH2;
|
||||
if (BlockNum > global.SERVER.GetMaxNumBlockDB())
|
||||
BlockNum = global.SERVER.GetMaxNumBlockDB();
|
||||
}
|
||||
@@ -159,8 +159,8 @@ function GETBLOCKHEADER(msg) {
|
||||
var Count = Data.Count;
|
||||
if (!Count || Count < 0 || BlockNum < 0)
|
||||
return;
|
||||
if (Count > COUNT_BLOCKS_FOR_LOAD)
|
||||
Count = COUNT_BLOCKS_FOR_LOAD;
|
||||
if (Count > global.COUNT_BLOCKS_FOR_LOAD)
|
||||
Count = global.COUNT_BLOCKS_FOR_LOAD;
|
||||
Count += global.BLOCK_PROCESSING_LENGTH2;
|
||||
var BlockDB = global.SERVER.ReadBlockHeaderDB(BlockNum);
|
||||
if (BlockDB && (BlockDB.Prepared && (!IsSum) && BlockDB.Hash && global.CompareArr(BlockDB.Hash, LoadHash) === 0 || BlockDB.bSave && IsSum && BlockDB.SumHash && global.CompareArr(BlockDB.SumHash,
|
||||
@@ -184,8 +184,8 @@ function GETBLOCK(msg) {
|
||||
var BufWrite;
|
||||
var BlockDB = global.SERVER.ReadBlockDB(BlockNum);
|
||||
var StrSend;
|
||||
if (BlockDB && (global.CompareArr(BlockDB.TreeHash, TreeHash) === 0 || IsZeroArr(TreeHash))) {
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(BlockDB, FORMAT_BLOCK_TRANSFER, MAX_PACKET_LENGTH, WRK_BLOCK_TRANSFER);
|
||||
if (BlockDB && (global.CompareArr(BlockDB.TreeHash, TreeHash) === 0 || global.IsZeroArr(TreeHash))) {
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(BlockDB, global.FORMAT_BLOCK_TRANSFER, global.MAX_PACKET_LENGTH, global.WRK_BLOCK_TRANSFER);
|
||||
StrSend = "OK";
|
||||
}
|
||||
if (StrSend === "OK") {
|
||||
@@ -211,7 +211,7 @@ function GETREST(msg) {
|
||||
var Data = msg.Data;
|
||||
if (!Data.BlockNum)
|
||||
return;
|
||||
if (IsZeroArr(Data.AccHash)) {
|
||||
if (global.IsZeroArr(Data.AccHash)) {
|
||||
return;
|
||||
}
|
||||
var BlockNumRest = Data.BlockNum;
|
||||
@@ -234,8 +234,8 @@ function GETREST(msg) {
|
||||
var WorkFormatLength = global.DApps.Accounts.SIZE_ACCOUNT_ROW;
|
||||
var Max = global.DApps.Accounts.DBState.GetMaxNum();
|
||||
var LengthAccount = Data.Count;
|
||||
if (LengthAccount > MAX_ACCOUNTS_TRANSFER)
|
||||
LengthAccount = MAX_ACCOUNTS_TRANSFER;
|
||||
if (LengthAccount > global.MAX_ACCOUNTS_TRANSFER)
|
||||
LengthAccount = global.MAX_ACCOUNTS_TRANSFER;
|
||||
var StartAccount = Data.AccNum;
|
||||
var EndAccount = StartAccount + LengthAccount - 1;
|
||||
if (EndAccount > Max)
|
||||
@@ -249,7 +249,7 @@ function GETREST(msg) {
|
||||
else {
|
||||
ArrRest = GetArrRest(BlockNumRest, StartAccount, EndAccount);
|
||||
ProofHash = Tree.Root;
|
||||
var RetProof = GetMerkleProof(Tree.LevelsHash, StartAccount, EndAccount);
|
||||
var RetProof = global.GetMerkleProof(Tree.LevelsHash, StartAccount, EndAccount);
|
||||
ProofArrL = RetProof.ArrL;
|
||||
ProofArrR = RetProof.ArrR;
|
||||
BufLength = 1000 + ArrRest.length * WorkFormatLength;
|
||||
@@ -257,7 +257,7 @@ function GETREST(msg) {
|
||||
}
|
||||
}
|
||||
var Data2 = { Result: nResult, Arr: ArrRest, Version: 1, ProofHash: ProofHash, ProofArrL: ProofArrL, ProofArrR: ProofArrR };
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, FORMAT_REST_TRANSFER, BufLength, {});
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, global.FORMAT_REST_TRANSFER, BufLength, {});
|
||||
process.send({ cmd: "Send", addrStr: msg.addrStr, Method: "RETREST", Context: msg.Context, Data: BufWrite });
|
||||
};
|
||||
|
||||
@@ -279,12 +279,12 @@ function GETSMART(msg) {
|
||||
Arr.push(BufSmart);
|
||||
}
|
||||
var Data2 = { Result: Arr.length ? 1 : 0, Arr: Arr };
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, FORMAT_SMART_TRANSFER, BufLength, {});
|
||||
var BufWrite = global.BufLib.GetBufferFromObject(Data2, global.FORMAT_SMART_TRANSFER, BufLength, {});
|
||||
process.send({ cmd: "Send", addrStr: msg.addrStr, Method: "RETSMART", Context: msg.Context, Data: BufWrite });
|
||||
};
|
||||
var glMapForHash = {};
|
||||
|
||||
function GetArrRest(BlockNumRest, StartAccount, EndAccount, bHashOnly) {
|
||||
function GetArrRest(BlockNumRest, StartAccount, EndAccount, bHashOnly?) {
|
||||
var ArrRest = [];
|
||||
var WorkStruct = {};
|
||||
var WorkFormat = global.DApps.Accounts.FORMAT_ACCOUNT_ROW;
|
||||
@@ -352,7 +352,7 @@ function GetRestMerkleTree(BlockNumRest, RestIndexArr) {
|
||||
for (var Num = 0; Num < ArrHash.length; Num++) {
|
||||
MerkleCalc[Num] = 1;
|
||||
}
|
||||
UpdateMerklTree(MerkleTree, MerkleCalc, 0);
|
||||
global.UpdateMerklTree(MerkleTree, MerkleCalc, 0);
|
||||
glMapRest[BlockNumRest] = MerkleTree;
|
||||
var Time2 = process.hrtime(startTime);
|
||||
var deltaTime1 = (Time1[0] * 1000 + Time1[1] / 1e6) / 1000;
|
||||
|
||||
@@ -12,15 +12,15 @@ global.PROCESS_NAME = "TX";
|
||||
import * as crypto from 'crypto';
|
||||
const fs = require('fs');
|
||||
require("../core/constant");
|
||||
global.DATA_PATH = GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = GetNormalPathString(global.CODE_PATH);
|
||||
global.DATA_PATH = global.GetNormalPathString(global.DATA_PATH);
|
||||
global.CODE_PATH = global.GetNormalPathString(global.CODE_PATH);
|
||||
require("../core/library");
|
||||
global.READ_ONLY_DB = 0;
|
||||
var LastAlive = Date.now();
|
||||
setTimeout(function() {
|
||||
setInterval(CheckAlive, 1000);
|
||||
}, 20000);
|
||||
setInterval(PrepareStatEverySecond, 1000);
|
||||
setInterval(global.PrepareStatEverySecond, 1000);
|
||||
if (process.send) {
|
||||
setInterval(function() {
|
||||
process.send({ cmd: "Alive" });
|
||||
@@ -58,7 +58,7 @@ process.on('message', function(msg) {
|
||||
global.TreeFindTX.SaveValue("Smart:" + msg.Smart, 1);
|
||||
break;
|
||||
case "Eval":
|
||||
EvalCode(msg.Code);
|
||||
global.EvalCode(msg.Code);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -82,11 +82,11 @@ function CheckAlive() {
|
||||
process.on('uncaughtException', function(err) {
|
||||
global.ToError(err.stack);
|
||||
global.ToLog(err.stack);
|
||||
TO_ERROR_LOG("TX-PROCESS", 777, err);
|
||||
global.TO_ERROR_LOG("TX-PROCESS", 777, err);
|
||||
global.ToLog("-----------------TX-PROCESS EXIT------------------");
|
||||
process.exit();
|
||||
});
|
||||
process.on('error', function(err) {
|
||||
process.on('error' as any, function(err: TeraError) {
|
||||
global.ToError("TX-PROCESS:\n" + err.stack);
|
||||
global.ToLog(err.stack);
|
||||
});
|
||||
@@ -96,14 +96,14 @@ var KeyPair = crypto.createECDH('secp256k1');
|
||||
KeyPair.setPrivateKey(Buffer.from([77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
|
||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77]));
|
||||
global.SERVER = new CServerDB(KeyPair, undefined, undefined, false, true);
|
||||
global.TreeFindTX = new STreeBuffer(30 * 1000, CompareItemHashSimple, "string");
|
||||
global.TreeFindTX = new STreeBuffer(30 * 1000, global.CompareItemHashSimple, "string");
|
||||
setInterval(function() {
|
||||
if (SERVER) {
|
||||
if (global.SERVER) {
|
||||
global.SERVER.Close();
|
||||
}
|
||||
DoTXProcess();
|
||||
}, 10);
|
||||
var BlockTree = new STreeBuffer(30 * 1000, CompareItemHashSimple, "number");
|
||||
var BlockTree = new STreeBuffer(30 * 1000, global.CompareItemHashSimple, "number");
|
||||
global.bShowDetail = 0;
|
||||
var StopTxProcess = 0;
|
||||
var MinimalValidBlock = 0;
|
||||
@@ -116,12 +116,12 @@ function DoTXProcess() {
|
||||
InitTXProcess();
|
||||
var BlockMin = FindMinimal();
|
||||
if (!BlockMin) {
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("!BlockMin");
|
||||
return;
|
||||
}
|
||||
var StartTime = Date.now();
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("BlockMin: " + BlockMin.BlockNum + " LastBlockNum=" + LastBlockNum);
|
||||
var CountTX = 0;
|
||||
for (var Num = BlockMin.BlockNum; Num < BlockMin.BlockNum + 200; Num++) {
|
||||
@@ -131,7 +131,7 @@ function DoTXProcess() {
|
||||
break;
|
||||
var Block = global.SERVER.ReadBlockDB(Num);
|
||||
if (!Block) {
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("!Block");
|
||||
break;
|
||||
}
|
||||
@@ -140,7 +140,7 @@ function DoTXProcess() {
|
||||
}
|
||||
var Item = BlockTree.LoadValue(Block.BlockNum, 1);
|
||||
if (Item && global.CompareArr(Item.SumHash, Block.SumHash) === 0) {
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("WAS CALC: " + Num + " SumHash: " + global.GetHexFromArr(Block.SumHash).substr(0, 12));
|
||||
continue;
|
||||
}
|
||||
@@ -157,7 +157,7 @@ function DoTXProcess() {
|
||||
if (Num % 100000 === 0)
|
||||
global.ToLog("CALC: " + Num);
|
||||
CountTX++;
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog(" CALC: " + Num + " SumHash: " + global.GetHexFromArr(Block.SumHash).substr(0, 12));
|
||||
BlockTree.SaveValue(Block.BlockNum, { BlockNum: Block.BlockNum, SumHash: Block.SumHash });
|
||||
LastBlockNum = Block.BlockNum;
|
||||
@@ -167,14 +167,14 @@ function DoTXProcess() {
|
||||
function FindMinimal() {
|
||||
var MaxNumBlockDB = global.SERVER.GetMaxNumBlockDB();
|
||||
if (MaxNumBlockDB && MaxNumBlockDB < LastBlockNum) {
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("MaxNumBlockDB<LastBlockNum: " + MaxNumBlockDB + "<" + LastBlockNum);
|
||||
LastBlockNum = MaxNumBlockDB - 1;
|
||||
BlockTree.Clear();
|
||||
}
|
||||
if (LastBlockNum < MinimalValidBlock)
|
||||
LastBlockNum = MinimalValidBlock;
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("FindMinimal from LastBlockNum=" + LastBlockNum);
|
||||
for (var Num = LastBlockNum; Num--; Num >= 0) {
|
||||
if (Num < MinimalValidBlock)
|
||||
@@ -186,7 +186,7 @@ function FindMinimal() {
|
||||
if (!IsValidSumHash(Block)) {
|
||||
continue;
|
||||
}
|
||||
if (Block.BlockNum % PERIOD_ACCOUNT_HASH === 0) {
|
||||
if (Block.BlockNum % global.PERIOD_ACCOUNT_HASH === 0) {
|
||||
var Item = global.DApps.Accounts.GetAccountHashItem(Block.BlockNum);
|
||||
if (Item) {
|
||||
BlockTree.SaveValue(Block.BlockNum, Item);
|
||||
@@ -195,10 +195,10 @@ function FindMinimal() {
|
||||
var Item = BlockTree.LoadValue(Block.BlockNum, 1);
|
||||
if (Item && global.CompareArr(Item.SumHash, Block.SumHash) === 0)
|
||||
return Block;
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("" + Num + " " + Block.BlockNum + ". Item=" + JSON.stringify(Item) + " MinimalValidBlock=" + MinimalValidBlock);
|
||||
}
|
||||
if (bShowDetail)
|
||||
if (global.bShowDetail)
|
||||
global.ToLog("MinimalValidBlock:" + MinimalValidBlock);
|
||||
if (MinimalValidBlock === 0 && LastBlockNum > 0) {
|
||||
RewriteAllTransactions();
|
||||
@@ -212,12 +212,12 @@ function IsValidSumHash(Block) {
|
||||
return 1;
|
||||
if (Block.BlockNum < 16)
|
||||
return 1;
|
||||
if (IsZeroArr(Block.SumHash))
|
||||
if (global.IsZeroArr(Block.SumHash))
|
||||
return 0;
|
||||
var PrevBlock = global.SERVER.ReadBlockHeaderDB(Block.BlockNum - 1);
|
||||
if (!PrevBlock)
|
||||
return 0;
|
||||
var SumHash2 = shaarr2(PrevBlock.SumHash, Block.Hash);
|
||||
var SumHash2 = global.shaarr2(PrevBlock.SumHash, Block.Hash);
|
||||
if (global.CompareArr(SumHash2, Block.SumHash) === 0)
|
||||
return 1;
|
||||
return 0;
|
||||
@@ -240,7 +240,7 @@ function InitTXProcess() {
|
||||
StateTX = global.DApps.Accounts.DBStateTX.Read(0);
|
||||
LastBlockNum = StateTX.BlockNum;
|
||||
MinimalValidBlock = StateTX.BlockNumMin;
|
||||
LastBlockNum = PERIOD_ACCOUNT_HASH * Math.trunc(LastBlockNum / PERIOD_ACCOUNT_HASH);
|
||||
LastBlockNum = global.PERIOD_ACCOUNT_HASH * Math.trunc(LastBlockNum / global.PERIOD_ACCOUNT_HASH);
|
||||
if (LastBlockNum > 100) {
|
||||
LastBlockNum = 1 + LastBlockNum - 100;
|
||||
}
|
||||
@@ -254,8 +254,8 @@ global.ClearDataBase = ClearDataBase;
|
||||
|
||||
function ClearDataBase() {
|
||||
MinimalValidBlock = 0;
|
||||
for (var key in DApps) {
|
||||
DApps[key].ClearDataBase();
|
||||
for (var key in global.DApps) {
|
||||
global.DApps[key].ClearDataBase();
|
||||
}
|
||||
LastBlockNum = 0;
|
||||
BlockTree.Clear();
|
||||
@@ -268,8 +268,8 @@ function RewriteAllTransactions() {
|
||||
return;
|
||||
}
|
||||
global.ToLog("*************RewriteAllTransactions");
|
||||
for (var key in DApps) {
|
||||
DApps[key].ClearDataBase();
|
||||
for (var key in global.DApps) {
|
||||
global.DApps[key].ClearDataBase();
|
||||
}
|
||||
LastBlockNum = 0;
|
||||
BlockTree.Clear();
|
||||
@@ -291,8 +291,8 @@ function TXPrepareLoadRest(BlockNum) {
|
||||
StopTxProcess = 1;
|
||||
MinimalValidBlock = BlockNum;
|
||||
global.ToLog("*************TXPrepareLoadRest:" + BlockNum, 2);
|
||||
for (var key in DApps) {
|
||||
DApps[key].ClearDataBase();
|
||||
for (var key in global.DApps) {
|
||||
global.DApps[key].ClearDataBase();
|
||||
}
|
||||
LastBlockNum = BlockNum;
|
||||
BlockTree.Clear();
|
||||
@@ -345,7 +345,7 @@ global.EvalCode = function(Code) {
|
||||
var Result;
|
||||
try {
|
||||
var ret = eval(Code);
|
||||
Result = JSON.stringify(ret, "", 4);
|
||||
Result = JSON.stringify(ret, undefined, 4);
|
||||
}
|
||||
catch (e) {
|
||||
Result = "" + e;
|
||||
|
||||
@@ -80,7 +80,7 @@ process.on('message', function(msg) {
|
||||
break;
|
||||
case "DappEvent":
|
||||
{
|
||||
AddDappEventToGlobalMap(msg.Data);
|
||||
global.AddDappEventToGlobalMap(msg.Data);
|
||||
break;
|
||||
}
|
||||
case "ToLogClient":
|
||||
@@ -215,7 +215,7 @@ function MainHTTPFunction(request, response) {
|
||||
return;
|
||||
if (!request.socket || !request.socket.remoteAddress)
|
||||
return;
|
||||
SetSafeResponce(response);
|
||||
global.SetSafeResponce(response);
|
||||
var DataURL = url.parse(request.url);
|
||||
var Params = querystring.parse(DataURL.query);
|
||||
var Path = querystring.unescape(DataURL.pathname);
|
||||
@@ -350,7 +350,7 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
response.end(JSON.stringify({ result: 0, text: "You must set const USE_HARD_API_V2:1" }));
|
||||
return;
|
||||
}
|
||||
Caller = WebApi2;
|
||||
Caller = global.WebApi2;
|
||||
}
|
||||
Method = ArrPath[2];
|
||||
}
|
||||
@@ -390,16 +390,16 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
response.writeHead(301, { "Location": '/' });
|
||||
return response.end();
|
||||
case "file":
|
||||
SendBlockFile(response, ArrPath[1], ArrPath[2]);
|
||||
global.SendBlockFile(response, ArrPath[1], ArrPath[2]);
|
||||
break;
|
||||
case "DappTemplateFile":
|
||||
DappTemplateFile(response, ArrPath[1]);
|
||||
global.DappTemplateFile(response, ArrPath[1]);
|
||||
break;
|
||||
case "smart":
|
||||
DappSmartCodeFile(response, ArrPath[1]);
|
||||
global.DappSmartCodeFile(response, ArrPath[1]);
|
||||
break;
|
||||
case "client":
|
||||
DappClientCodeFile(response, ArrPath[1]);
|
||||
global.DappClientCodeFile(response, ArrPath[1]);
|
||||
default:
|
||||
{
|
||||
var Name = ArrPath[ArrPath.length - 1];
|
||||
@@ -466,7 +466,7 @@ function DoCommandNew(response, Type, Path, Params) {
|
||||
Name = PrefixPath + "/" + Name;
|
||||
break;
|
||||
}
|
||||
SendWebFile(response, Name, "", 1);
|
||||
global.SendWebFile(response, Name, "", 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -506,24 +506,24 @@ HostingCaller.GetAccountList = function(Params) {
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(ParseNum(Params.StartNum), ParseNum(Params.CountNum));
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(global.ParseNum(Params.StartNum), global.ParseNum(Params.CountNum));
|
||||
return { result: 1, arr: arr };
|
||||
};
|
||||
HostingCaller.GetAccount = function(id) {
|
||||
id = ParseNum(id);
|
||||
id = global.ParseNum(id);
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(id, 1);
|
||||
return { Item: arr[0], result: 1 };
|
||||
};
|
||||
HostingCaller.GetBlockList = function(Params, response) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
Params.StartNum = ParseNum(Params.StartNum);
|
||||
Params.CountNum = ParseNum(Params.CountNum);
|
||||
Params.StartNum = global.ParseNum(Params.StartNum);
|
||||
Params.CountNum = global.ParseNum(Params.CountNum);
|
||||
if (Params.CountNum > MaxCountViewRows)
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
return HTTPCaller.GetBlockList(Params, response);
|
||||
return global.HTTPCaller.GetBlockList(Params, response);
|
||||
};
|
||||
HostingCaller.GetTransactionList = function(Params, response) {
|
||||
Params.Param3 = Params.BlockNum;
|
||||
@@ -532,12 +532,12 @@ HostingCaller.GetTransactionList = function(Params, response) {
|
||||
HostingCaller.GetTransactionAll = function(Params, response) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
Params.Param3 = ParseNum(Params.Param3);
|
||||
Params.StartNum = ParseNum(Params.StartNum);
|
||||
Params.CountNum = ParseNum(Params.CountNum);
|
||||
Params.Param3 = global.ParseNum(Params.Param3);
|
||||
Params.StartNum = global.ParseNum(Params.StartNum);
|
||||
Params.CountNum = global.ParseNum(Params.CountNum);
|
||||
if (Params.CountNum > MaxCountViewRows)
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
return HTTPCaller.GetTransactionAll(Params, response);
|
||||
return global.HTTPCaller.GetTransactionAll(Params, response);
|
||||
};
|
||||
HostingCaller.GetDappList = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
@@ -546,7 +546,7 @@ HostingCaller.GetDappList = function(Params) {
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
var arr = global.DApps.Smart.GetRows(ParseNum(Params.StartNum), ParseNum(Params.CountNum), undefined, Params.Filter, 1);
|
||||
var arr = global.DApps.Smart.GetRows(global.ParseNum(Params.StartNum), global.ParseNum(Params.CountNum), undefined, Params.Filter, 1);
|
||||
return { result: 1, arr: arr };
|
||||
};
|
||||
HostingCaller.GetNodeList = function(Params) {
|
||||
@@ -640,7 +640,7 @@ HostingCaller.GetAccountListByKey = function(Params, ppp, bRet) {
|
||||
var Ret = { result: 1, arr: arr };
|
||||
if (bRet)
|
||||
return Ret;
|
||||
var Context = GetUserContext(Params);
|
||||
var Context = global.GetUserContext(Params);
|
||||
var StrInfo = JSON.stringify(Ret);
|
||||
if (!Params.AllData && Context.PrevAccountList === StrInfo) {
|
||||
return { result: 0, cache: 1 };
|
||||
@@ -692,20 +692,20 @@ HostingCaller.SendTransactionHex = function(Params, response) {
|
||||
HostingCaller.DappSmartHTMLFile = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
return HTTPCaller.DappSmartHTMLFile(Params);
|
||||
return global.HTTPCaller.DappSmartHTMLFile(Params);
|
||||
};
|
||||
HostingCaller.DappBlockFile = function(Params, responce) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
return HTTPCaller.DappBlockFile(Params, responce);
|
||||
return global.HTTPCaller.DappBlockFile(Params, responce);
|
||||
};
|
||||
HostingCaller.DappInfo = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
var SmartNum = ParseNum(Params.Smart);
|
||||
var SmartNum = global.ParseNum(Params.Smart);
|
||||
process.send({ cmd: "SetSmartEvent", Smart: SmartNum });
|
||||
var Context = GetUserContext(Params);
|
||||
var Ret = HTTPCaller.DappInfo(Params, undefined, 1);
|
||||
var Context = global.GetUserContext(Params);
|
||||
var Ret = global.HTTPCaller.DappInfo(Params, undefined, 1);
|
||||
Ret.PubKey = undefined;
|
||||
var StrInfo = JSON.stringify(Ret);
|
||||
if (!Params.AllData && Context.PrevDappInfo === StrInfo) {
|
||||
@@ -726,7 +726,7 @@ HostingCaller.DappWalletList = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
var Ret = HostingCaller.GetAccountListByKey(Params, undefined, 1);
|
||||
var Smart = ParseNum(Params.Smart);
|
||||
var Smart = global.ParseNum(Params.Smart);
|
||||
var arr = [];
|
||||
for (var i = 0; i < Ret.arr.length; i++) {
|
||||
if (Params.AllAccounts || Ret.arr[i].Value.Smart === Smart) {
|
||||
@@ -736,7 +736,7 @@ HostingCaller.DappWalletList = function(Params) {
|
||||
Ret.arr = arr;
|
||||
return Ret;
|
||||
};
|
||||
HTTPCaller.DappWalletList = HostingCaller.DappWalletList;
|
||||
global.HTTPCaller.DappWalletList = HostingCaller.DappWalletList;
|
||||
HostingCaller.DappAccountList = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
@@ -744,7 +744,7 @@ HostingCaller.DappAccountList = function(Params) {
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(ParseNum(Params.StartNum), ParseNum(Params.CountNum), undefined, 1);
|
||||
var arr = global.DApps.Accounts.GetRowsAccounts(global.ParseNum(Params.StartNum), global.ParseNum(Params.CountNum), undefined, 1);
|
||||
return { arr: arr, result: 1 };
|
||||
};
|
||||
HostingCaller.DappSmartList = function(Params) {
|
||||
@@ -754,42 +754,42 @@ HostingCaller.DappSmartList = function(Params) {
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
var arr = global.DApps.Smart.GetRows(ParseNum(Params.StartNum), ParseNum(Params.CountNum), undefined, undefined, Params.GetAllData,
|
||||
var arr = global.DApps.Smart.GetRows(global.ParseNum(Params.StartNum), global.ParseNum(Params.CountNum), undefined, undefined, Params.GetAllData,
|
||||
Params.TokenGenerate);
|
||||
return { arr: arr, result: 1 };
|
||||
};
|
||||
HostingCaller.DappBlockList = function(Params, response) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
Params.StartNum = ParseNum(Params.StartNum);
|
||||
Params.CountNum = ParseNum(Params.CountNum);
|
||||
Params.StartNum = global.ParseNum(Params.StartNum);
|
||||
Params.CountNum = global.ParseNum(Params.CountNum);
|
||||
if (Params.CountNum > MaxCountViewRows)
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
return HTTPCaller.DappBlockList(Params, response);
|
||||
return global.HTTPCaller.DappBlockList(Params, response);
|
||||
};
|
||||
HostingCaller.DappTransactionList = function(Params, response) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
Params.BlockNum = ParseNum(Params.BlockNum);
|
||||
Params.StartNum = ParseNum(Params.StartNum);
|
||||
Params.CountNum = ParseNum(Params.CountNum);
|
||||
Params.BlockNum = global.ParseNum(Params.BlockNum);
|
||||
Params.StartNum = global.ParseNum(Params.StartNum);
|
||||
Params.CountNum = global.ParseNum(Params.CountNum);
|
||||
if (Params.CountNum > MaxCountViewRows)
|
||||
Params.CountNum = MaxCountViewRows;
|
||||
if (!Params.CountNum)
|
||||
Params.CountNum = 1;
|
||||
return HTTPCaller.DappTransactionList(Params, response);
|
||||
return global.HTTPCaller.DappTransactionList(Params, response);
|
||||
};
|
||||
HostingCaller.DappStaticCall = function(Params, response) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
return HTTPCaller.DappStaticCall(Params, response);
|
||||
return global.HTTPCaller.DappStaticCall(Params, response);
|
||||
};
|
||||
HostingCaller.GetHistoryTransactions = function(Params) {
|
||||
if (typeof Params !== "object")
|
||||
return { result: 0 };
|
||||
return HTTPCaller.GetHistoryTransactions(Params);
|
||||
return global.HTTPCaller.GetHistoryTransactions(Params);
|
||||
};
|
||||
HostingCaller.GetSupply = function(Params) {
|
||||
var Data = global.DApps.Accounts.ReadState(0);
|
||||
@@ -843,7 +843,7 @@ setInterval(function() {
|
||||
var AvgPow = SumPow / Count;
|
||||
ADD_TO_STAT("MAX:HASH_RATE_B", AvgPow);
|
||||
}
|
||||
var Count = COUNT_BLOCK_PROOF + 16 - 1;
|
||||
var Count = global.COUNT_BLOCK_PROOF + 16 - 1;
|
||||
if (MaxNumBlockDB > Count) {
|
||||
var StartNum = MaxNumBlockDB - Count;
|
||||
NodeBlockChain = global.SERVER.BlockChainToBuf(StartNum, StartNum, MaxNumBlockDB);
|
||||
|
||||
Reference in New Issue
Block a user