0.886
This commit is contained in:
@@ -19,15 +19,17 @@ WebApi2.GenerateKeys = function (Params)
|
||||
};
|
||||
WebApi2.CreateAccount = function (Params,response)
|
||||
{
|
||||
if(typeof Params === "object" && Params.Name && Params.PubKey)
|
||||
if(typeof Params === "object" && Params.Name && Params.PrivKey)
|
||||
{
|
||||
var TR = {Type:TYPE_TRANSACTION_CREATE, Currency:Params.Currency, PubKey:GetArrFromHex(Params.PubKey), Name:Params.Name, Smart:Params.Smart,
|
||||
};
|
||||
var KeyPair = crypto.createECDH('secp256k1');
|
||||
KeyPair.setPrivateKey(Buffer.from(GetArrFromHex(Params.PrivKey)));
|
||||
var PubKey = KeyPair.getPublicKey('', 'compressed');
|
||||
var TR = {Type:TYPE_TRANSACTION_CREATE, Currency:Params.Currency, PubKey:PubKey, Name:Params.Name, Smart:Params.Smart, };
|
||||
var Body = BufLib.GetBufferFromObject(TR, FORMAT_CREATE, 1000, {}, 1);
|
||||
Body = Body.slice(0, Body.len + 12);
|
||||
SendTransaction(Body, TR, undefined, function (result,TR,Body)
|
||||
SendTransaction(Body, TR, Params.Wait, function (result,text)
|
||||
{
|
||||
var Result = {result:result < 1 ? 0 : 1, text:TR._text, TxID:GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum:TR._BlockNum,
|
||||
var Result = {result:result, text:text, TxID:GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum:TR._BlockNum,
|
||||
Meta:Params.Meta, };
|
||||
var Str = JSON.stringify(Result);
|
||||
response.end(Str);
|
||||
@@ -86,9 +88,9 @@ WebApi2.Send = function (Params,response)
|
||||
TR.Sign = DApps.Accounts.GetSignTransferTx(TR, GetArrFromHex(Params.FromPrivKey));
|
||||
var Body = BufLib.GetBufferFromObject(TR, FORMAT_MONEY_TRANSFER3, MAX_TRANSACTION_SIZE, {}, 1);
|
||||
Body = Body.slice(0, Body.len + 12);
|
||||
SendTransaction(Body, TR, undefined, function (result,TR,Body)
|
||||
SendTransaction(Body, TR, Params.Wait, function (result,text)
|
||||
{
|
||||
var Result = {result:result < 1 ? 0 : 1, text:TR._text, TxID:GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum:TR._BlockNum,
|
||||
var Result = {result:result, text:text, TxID:GetHexFromArr(TR._TxID.slice(0, TR_TICKET_HASH_LENGTH + 6)), BlockNum:TR._BlockNum,
|
||||
Meta:Params.Meta, };
|
||||
var Str = JSON.stringify(Result);
|
||||
response.end(Str);
|
||||
@@ -103,7 +105,8 @@ WebApi2.GetBalance = function (Params,response)
|
||||
if(arr.length)
|
||||
{
|
||||
var Value = arr[0].Value;
|
||||
var Result = {result:1, SumCOIN:Value.SumCOIN, SumCENT:Value.SumCENT, Meta:Params.Meta, };
|
||||
var Result = {result:1, SumCOIN:Value.SumCOIN, SumCENT:Value.SumCENT, PubKey:GetHexFromArr(arr[0].PubKey), Meta:Params.Meta,
|
||||
};
|
||||
return Result;
|
||||
}
|
||||
}
|
||||
@@ -133,6 +136,10 @@ WebApi2.GetTransaction = function (Params)
|
||||
ConvertBufferToStr(TR);
|
||||
TR.result = 1;
|
||||
TR.Meta = Params.Meta;
|
||||
if(Block.VersionBody === 1 && Block.arrContentResult)
|
||||
{
|
||||
TR.result = Block.arrContentResult[i];
|
||||
}
|
||||
return TR;
|
||||
}
|
||||
}
|
||||
@@ -198,7 +205,7 @@ function CreateHashBodyPOWInnerMinPower(TR,arr,MinPow,startnonce)
|
||||
}
|
||||
};
|
||||
|
||||
function SendTransaction(Body,TR,SumPow,F)
|
||||
function SendTransaction(Body,TR,Wait,F)
|
||||
{
|
||||
if(Body.length > 16000)
|
||||
{
|
||||
@@ -207,6 +214,8 @@ function SendTransaction(Body,TR,SumPow,F)
|
||||
F(1, TR, Body);
|
||||
return ;
|
||||
}
|
||||
global.GlobalRunID++;
|
||||
let WebID = global.GlobalRunID;
|
||||
CreateNonceAndSend(0, 0);
|
||||
|
||||
function CreateNonceAndSend(startnonce,NumNext)
|
||||
@@ -218,8 +227,8 @@ function CreateNonceAndSend(startnonce,NumNext)
|
||||
F(0, TR, Body);
|
||||
return ;
|
||||
}
|
||||
var nonce = CreateHashBodyPOWInnerMinPower(TR, Body, SumPow, startnonce);
|
||||
process.RunRPC("AddTransactionFromWeb", GetHexFromArr(Body), function (Err,text)
|
||||
var nonce = CreateHashBodyPOWInnerMinPower(TR, Body, undefined, startnonce);
|
||||
process.RunRPC("AddTransactionFromWeb", {WebID:WebID, HexValue:GetHexFromArr(Body)}, function (Err,text)
|
||||
{
|
||||
TR._result = Err ? 0 : 1;
|
||||
TR._text = text;
|
||||
@@ -239,7 +248,14 @@ function CreateNonceAndSend(startnonce,NumNext)
|
||||
return ;
|
||||
}
|
||||
}
|
||||
F(TR._result, TR, Body);
|
||||
if(Wait && TR._result)
|
||||
{
|
||||
global.GlobalRunMap[WebID] = F;
|
||||
}
|
||||
else
|
||||
{
|
||||
F(TR._result < 1 ? 0 : 1, text);
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
@@ -126,13 +126,13 @@ function OnMessageWeb(msg)
|
||||
}
|
||||
};
|
||||
|
||||
function AddTransactionFromWeb(HexValue)
|
||||
function AddTransactionFromWeb(Params)
|
||||
{
|
||||
var body = GetArrFromHex(HexValue);
|
||||
var body = GetArrFromHex(Params.HexValue);
|
||||
if(global.TX_PROCESS && global.TX_PROCESS.Worker)
|
||||
{
|
||||
var StrHex = GetHexFromArr(sha3(body));
|
||||
global.TX_PROCESS.Worker.send({cmd:"FindTX", TX:StrHex});
|
||||
global.TX_PROCESS.Worker.send({cmd:"FindTX", TX:StrHex, Web:1, WebID:Params.WebID});
|
||||
}
|
||||
var Res = SERVER.AddTransaction({body:body}, 1);
|
||||
var text = AddTrMap[Res];
|
||||
@@ -270,10 +270,27 @@ function StartChildProcess(Item)
|
||||
}
|
||||
ToLogClient(msg.Str, msg.StrKey, msg.bFinal);
|
||||
break;
|
||||
case "RetFindTX":
|
||||
if(WebProcess && WebProcess.Worker)
|
||||
{
|
||||
WebProcess.Worker.send(msg);
|
||||
if(msg.Web)
|
||||
break;
|
||||
}
|
||||
ToLogClient(msg.ResultStr, msg.TX, msg.bFinal);
|
||||
break;
|
||||
case "online":
|
||||
if(ITEM.Worker)
|
||||
ToLog("RUNING " + ITEM.Name + " : " + msg.message + " pid: " + ITEM.Worker.pid);
|
||||
break;
|
||||
case "WriteBodyResult":
|
||||
var Block = SERVER.ReadBlockDB(msg.BlockNum);
|
||||
if(Block)
|
||||
{
|
||||
Block.arrContentResult = msg.arrContentResult;
|
||||
SERVER.WriteBodyResultDB(Block);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if(ITEM.OnMessage)
|
||||
{
|
||||
|
||||
@@ -57,7 +57,7 @@ process.on('message', function (msg)
|
||||
process.send({cmd:"retcall", id:msg.id, Err:Err, Params:Ret});
|
||||
break;
|
||||
case "FindTX":
|
||||
global.TreeFindTX.SaveValue(msg.TX, msg.TX);
|
||||
global.TreeFindTX.SaveValue(msg.TX, msg);
|
||||
break;
|
||||
case "SetSmartEvent":
|
||||
global.TreeFindTX.SaveValue("Smart:" + msg.Smart, 1);
|
||||
|
||||
@@ -86,6 +86,21 @@ process.on('message', function (msg)
|
||||
ToLogClient0(msg.Str, msg.StrKey, msg.bFinal);
|
||||
break;
|
||||
}
|
||||
case "RetFindTX":
|
||||
{
|
||||
if(msg.WebID)
|
||||
{
|
||||
var F = global.GlobalRunMap[msg.WebID];
|
||||
if(F)
|
||||
{
|
||||
delete global.GlobalRunMap[msg.WebID];
|
||||
F(msg.Result, msg.ResultStr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
ArrLogClient.push({text:msg.ResultStr, key:msg.TX, final:msg.bFinal, });
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -600,7 +615,7 @@ HostingCaller.SendTransactionHex = function (Params,response)
|
||||
{
|
||||
if(typeof Params !== "object" || !Params.Hex)
|
||||
return {result:0, text:"object requre"};
|
||||
process.RunRPC("AddTransactionFromWeb", Params.Hex, function (Err,text)
|
||||
process.RunRPC("AddTransactionFromWeb", {HexValue:Params.Hex}, function (Err,text)
|
||||
{
|
||||
var Result = {result:!Err, text:text};
|
||||
var Str = JSON.stringify(Result);
|
||||
@@ -714,8 +729,8 @@ HostingCaller.DappStaticCall = function (Params)
|
||||
return {result:0};
|
||||
return HTTPCaller.DappStaticCall(Params);
|
||||
};
|
||||
var GlobalRunID = 0;
|
||||
var GlobalRunMap = {};
|
||||
global.GlobalRunID = 0;
|
||||
global.GlobalRunMap = {};
|
||||
process.RunRPC = function (Name,Params,F)
|
||||
{
|
||||
if(F)
|
||||
|
||||
Reference in New Issue
Block a user