0.895
This commit is contained in:
@@ -119,29 +119,30 @@ WebApi2.GetTransaction = function (Params)
|
||||
var Arr = GetArrFromHex(Params.TxID);
|
||||
var BlockNum = ReadUintFromArr(Arr, TR_TICKET_HASH_LENGTH);
|
||||
var Block = SERVER.ReadBlockDB(BlockNum);
|
||||
if(Block)
|
||||
if(Block && Block.arrContent)
|
||||
{
|
||||
Arr = Arr.slice(0, TR_TICKET_HASH_LENGTH);
|
||||
for(var i = 0; i < Block.arrContent.length; i++)
|
||||
{
|
||||
var Body = Block.arrContent[i];
|
||||
var Nonce = ReadUintFromArr(Body, Body.length - 6);
|
||||
var Arr2 = CreateTxID(Body, BlockNum, Nonce);
|
||||
Arr2 = Arr2.slice(0, TR_TICKET_HASH_LENGTH);
|
||||
var Arr2 = GetTxID(BlockNum, Body);
|
||||
if(CompareArr(Arr2, Arr) === 0)
|
||||
{
|
||||
var TR = DApps.Accounts.GetObjectTransaction(Body);
|
||||
if(TR)
|
||||
{
|
||||
ConvertBufferToStr(TR);
|
||||
TR.result = 1;
|
||||
TR.Meta = Params.Meta;
|
||||
if(Block.VersionBody === 1 && Block.arrContentResult)
|
||||
{
|
||||
TR.result = Block.arrContentResult[i];
|
||||
}
|
||||
return TR;
|
||||
}
|
||||
return GetTransactionFromBody(Params, Block, i, Body);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(typeof Params === "object" && Params.BlockNum && Params.TrNum !== undefined)
|
||||
{
|
||||
var Block = SERVER.ReadBlockDB(Params.BlockNum);
|
||||
if(Block && Block.arrContent)
|
||||
{
|
||||
var Body = Block.arrContent[Params.TrNum];
|
||||
if(Body)
|
||||
{
|
||||
return GetTransactionFromBody(Params, Block, Params.TrNum, Body);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -150,9 +151,39 @@ WebApi2.GetTransaction = function (Params)
|
||||
};
|
||||
WebApi2.GetHistoryTransactions = function (Params)
|
||||
{
|
||||
if(typeof Params === "object" && Params.AccountID)
|
||||
{
|
||||
if(!Params.Count)
|
||||
Params.Count = 100;
|
||||
var arr = DApps.Accounts.GetHistory(Params.AccountID, Params.Count, Params.NextPos);
|
||||
if(Params.GetTxID)
|
||||
{
|
||||
for(var i = 0; i < arr.length; i++)
|
||||
{
|
||||
var Item = arr[i];
|
||||
var Block = SERVER.ReadBlockDB(Item.BlockNum);
|
||||
if(!Block || (!Block.arrContent))
|
||||
continue;
|
||||
var Body = Block.arrContent[Item.TrNum];
|
||||
if(!Body)
|
||||
continue;
|
||||
Item.TxID = GetHexFromArr(GetTxID(Item.BlockNum, Body));
|
||||
}
|
||||
}
|
||||
var Result = {result:arr.length > 0 ? 1 : 0, History:arr, Tail:DApps.Accounts.DBStateHistory.Read(Params.AccountID), Meta:Params ? Params.Meta : undefined};
|
||||
return Result;
|
||||
}
|
||||
return {result:0, Meta:Params ? Params.Meta : undefined};
|
||||
};
|
||||
var DELTA_FOR_TIME_TX = 1;
|
||||
|
||||
function GetTxID(BlockNum,Body)
|
||||
{
|
||||
var Nonce = ReadUintFromArr(Body, Body.length - 6);
|
||||
var Arr2 = CreateTxID(Body, BlockNum, Nonce);
|
||||
return Arr2.slice(0, TR_TICKET_HASH_LENGTH + 6);
|
||||
};
|
||||
|
||||
function CreateTxID(body,BlockNum,Nonce)
|
||||
{
|
||||
body.writeUIntLE(BlockNum, body.length - 12, 6);
|
||||
@@ -259,3 +290,22 @@ function CreateNonceAndSend(startnonce,NumNext)
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
function GetTransactionFromBody(Params,Block,TrNum,Body)
|
||||
{
|
||||
var TR = DApps.Accounts.GetObjectTransaction(Body);
|
||||
if(TR)
|
||||
{
|
||||
ConvertBufferToStr(TR);
|
||||
TR.result = 1;
|
||||
TR.Meta = Params.Meta;
|
||||
if(Block.VersionBody === 1 && Block.arrContentResult)
|
||||
{
|
||||
TR.result = Block.arrContentResult[TrNum];
|
||||
}
|
||||
TR.BlockNum = Block.BlockNum;
|
||||
TR.TrNum = TrNum;
|
||||
return TR;
|
||||
}
|
||||
return {result:0, Meta:Params ? Params.Meta : undefined};
|
||||
};
|
||||
|
||||
@@ -896,7 +896,7 @@ function TestSignLib(MaxTime)
|
||||
{
|
||||
ToLog("*************** WARNING: VERY SLOW LIBRARY: secp256k1 ***************");
|
||||
ToLog("You can only process: " + Num + " transactions");
|
||||
ToLog("Install all dependent packages and run the installation command:\ncd Source/node_modules/secp256k1 \nnode-gyp build");
|
||||
ToLog("Install all dependent packages, see detail: https://www.npmjs.com/package/secp256k1");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ function CheckAlive()
|
||||
var Delta = Date.now() - LastAlive;
|
||||
if(Delta > CHECK_STOP_CHILD_PROCESS)
|
||||
{
|
||||
ToLog("HOSTING: ALIVE TIMEOUT Stop and exit: " + Delta + "/" + global.CHECK_STOP_CHILD_PROCESS);
|
||||
ToLog("HOSTING: ALIVE TIMEOUT Stop and exit: " + Delta + "/" + global.CHECK_STOP_CHILD_PROCESS, 0);
|
||||
process.exit(0);
|
||||
return ;
|
||||
}
|
||||
@@ -121,7 +121,7 @@ process.on('uncaughtException', function (err)
|
||||
ToError(err.stack);
|
||||
ToLog(err.stack);
|
||||
TO_ERROR_LOG("HOSTING", 777, err);
|
||||
ToLog("-----------------HOSTING EXIT------------------");
|
||||
ToLog("-----------------HOSTING EXIT------------------", 0);
|
||||
process.exit();
|
||||
});
|
||||
process.on('error', function (err)
|
||||
@@ -169,7 +169,7 @@ if(global.HTTPS_HOSTING_DOMAIN)
|
||||
}
|
||||
if(GetNewSert)
|
||||
{
|
||||
ToLog("Start get new SERT");
|
||||
ToLog("Start get new SERT", 0);
|
||||
var opts = {domains:[global.HTTPS_HOSTING_DOMAIN], email:'progr76@gmail.com', agreeTos:true, communityMember:true, };
|
||||
greenlock.register(opts).then(function (certs)
|
||||
{
|
||||
@@ -209,7 +209,7 @@ function MainHTTPFunction(request,response)
|
||||
else
|
||||
{
|
||||
var Str = "Error postDataChunk.length=" + postDataChunk.length;
|
||||
ToLog(Str);
|
||||
ToLog(Str, 0);
|
||||
Response.writeHead(405, {'Content-Type':'text/html'});
|
||||
Response.end(Str);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user