This commit is contained in:
progr76@gmail.com
2019-02-12 21:41:41 +03:00
parent 9eefdc7aad
commit 4ae7e3b8bc
25 changed files with 465 additions and 88 deletions

View File

@@ -13,7 +13,7 @@ const fs = require('fs');
const DBRow = require("../core/db/db-row");
const MAX_SUM_TER = 1e9;
const MAX_SUM_CENT = 1e9;
const TYPE_TRANSACTION_CREATE = 100;
global.TYPE_TRANSACTION_CREATE = 100;
const TYPE_TRANSACTION_TRANSFER = 105;
const TYPE_TRANSACTION_TRANSFER2 = 110;
const TYPE_TRANSACTION_TRANSFER3 = 111;
@@ -419,7 +419,7 @@ class AccountApp extends require("./dapp")
}
return 1;
}
GetScriptTransaction(Body)
GetObjectTransaction(Body)
{
var Type = Body[0];
var format;
@@ -453,14 +453,21 @@ class AccountApp extends require("./dapp")
default:
return "";
}
var TR;
try
{
var TR = BufLib.GetObjectFromBuffer(Body, format, {});
TR = BufLib.GetObjectFromBuffer(Body, format, {})
}
catch(e)
{
return "";
}
return TR;
}
GetScriptTransaction(Body)
{
var TR = this.GetObjectTransaction(Body);
if(!TR)
return "";
if(TR.Body && TR.Body.length)
{
var App = DAppByType[TR.Body[0]];
@@ -528,7 +535,7 @@ class AccountApp extends require("./dapp")
{
power = GetPowPower(shaarr(Body))
}
if(CheckMinPower)
if(CheckMinPower && BlockNum < 19600000)
{
var MinPower;
if(BlockNum < 2500000)
@@ -537,7 +544,7 @@ class AccountApp extends require("./dapp")
if(BlockNum < 2800000)
MinPower = MIN_POWER_POW_ACC_CREATE + 2
else
MinPower = MIN_POWER_POW_ACC_CREATE + 3
MinPower = MIN_POWER_POW_ACC_CREATE_LAST
if(power < MinPower)
return "Error min power POW for create account (update client)";
}
@@ -1285,6 +1292,39 @@ class AccountApp extends require("./dapp")
RunSmartMethod(Block, ToData.Value.Smart, ToData, BlockNum, TrNum, Context, "OnGet")
}
}
GetSignTransferTx(TR, PrivKey)
{
var Arr;
if(TR.Version === 2 || TR.Version === 3)
{
var format;
if(TR.Version === 2)
format = FORMAT_MONEY_TRANSFER_BODY2
else
format = FORMAT_MONEY_TRANSFER_BODY3
Arr = []
for(var i = 0; i < TR.To.length; i++)
{
var Item = TR.To[i];
var DataTo = DApps.Accounts.ReadState(Item.ID);
if(!DataTo)
return [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, 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 j = 0; j < 33; j++)
Arr[Arr.length] = DataTo.PubKey[j]
}
var Body = BufLib.GetBufferFromObject(TR, format, MAX_TRANSACTION_SIZE, {});
for(var j = 0; j < Body.length; j++)
Arr[Arr.length] = Body[j]
}
else
{
Arr = BufLib.GetBufferFromObject(TR, FORMAT_MONEY_TRANSFER_BODY, MAX_TRANSACTION_SIZE, {})
}
var hash = shabuf(Arr);
var sigObj = secp256k1.sign(hash, Buffer.from(PrivKey));
return sigObj.signature;
}
};
module.exports = AccountApp;
var App = new AccountApp;