update HTML file...
This commit is contained in:
@@ -19,56 +19,65 @@ var MaxBlockNum = 0;
|
||||
var DelList = {};
|
||||
var WasAccountsDataStr;
|
||||
|
||||
function SetAccountsData(Data, AccountsDataStr) {
|
||||
if (!Data || !Data.result)
|
||||
return;
|
||||
if ($("idBtRun"))
|
||||
function SetAccountsData(Data,AccountsDataStr)
|
||||
{
|
||||
if(!Data || !Data.result)
|
||||
return ;
|
||||
if($("idBtRun"))
|
||||
$("idBtRun").style.display = (Data.arr.length ? '' : 'none');
|
||||
if (AccountsDataStr === WasAccountsDataStr)
|
||||
return;
|
||||
if(AccountsDataStr === WasAccountsDataStr)
|
||||
return ;
|
||||
WasAccountsDataStr = AccountsDataStr;
|
||||
var arr = Data.arr;
|
||||
var Select = $("idAccount");
|
||||
if (arr.length !== Select.options.length) {
|
||||
if(arr.length !== Select.options.length)
|
||||
{
|
||||
var options = Select.options;
|
||||
options.length = arr.length;
|
||||
}
|
||||
MaxBlockNum = GetCurrentBlockNumByTime();
|
||||
SetGridData(arr, "grid_accounts", "idMyTotalSum");
|
||||
for (var i = 0; arr && i < arr.length; i++) {
|
||||
for(var i = 0; arr && i < arr.length; i++)
|
||||
{
|
||||
var Item = arr[i];
|
||||
Item.MyAccount = true;
|
||||
var Num = ParseNum(Item.Num);
|
||||
if (!MapAccounts[Num])
|
||||
if(!MapAccounts[Num])
|
||||
MapAccounts[Num] = {};
|
||||
CopyObjKeys(MapAccounts[Num], Item);
|
||||
var option = Select.options[i];
|
||||
var StrText = GetAccountText(Item, Num, 1);
|
||||
if (option.text !== StrText)
|
||||
if(option.text !== StrText)
|
||||
CheckNameAccTo();
|
||||
option.value = Num;
|
||||
option.text = StrText;
|
||||
}
|
||||
var CurentValue = LoadMapAfter["idAccount"];
|
||||
if (CurentValue) {
|
||||
if(CurentValue)
|
||||
{
|
||||
Select.value = CurentValue;
|
||||
delete LoadMapAfter["idAccount"];
|
||||
}
|
||||
SetCurCurencyName();
|
||||
};
|
||||
|
||||
function CurTransactionToForm(bForce) {
|
||||
function CurTransactionToForm(bForce)
|
||||
{
|
||||
var Item = $("idTransaction");
|
||||
if (Item && (Item.className === "" || bForce))
|
||||
if(Item && (Item.className === "" || bForce))
|
||||
Item.value = GetJSONFromTransaction(CurrentTR);
|
||||
};
|
||||
|
||||
function CheckNameAccTo() {
|
||||
function CheckNameAccTo()
|
||||
{
|
||||
MaxBlockNum = GetCurrentBlockNumByTime();
|
||||
var ToID = ParseNum($("idTo").value);
|
||||
if (!MapAccounts[ToID] || (MapAccounts[ToID].MustUpdate && MapAccounts[ToID].MustUpdate >= MaxBlockNum)) {
|
||||
GetData("GetAccountList", { StartNum: ToID }, function(Data) {
|
||||
if (Data && Data.result === 1 && Data.arr.length) {
|
||||
if(!MapAccounts[ToID] || (MapAccounts[ToID].MustUpdate && MapAccounts[ToID].MustUpdate >= MaxBlockNum))
|
||||
{
|
||||
GetData("GetAccountList", {StartNum:ToID}, function (Data)
|
||||
{
|
||||
if(Data && Data.result === 1 && Data.arr.length)
|
||||
{
|
||||
var Item = Data.arr[0];
|
||||
Item.UpdateData = Date.now();
|
||||
MapAccounts[Item.Num] = Item;
|
||||
@@ -79,173 +88,215 @@ function CheckNameAccTo() {
|
||||
SetNameAccTo();
|
||||
};
|
||||
|
||||
function SetNameAccTo() {
|
||||
function SetNameAccTo()
|
||||
{
|
||||
var Str = "";
|
||||
var ToID = ParseNum($("idTo").value);
|
||||
var ToID = $("idTo").value.trim();
|
||||
var Item = MapAccounts[ToID];
|
||||
var element = $("idNameTo");
|
||||
var StrTo = GetAccountText(Item, ToID, 1);
|
||||
if (!element) {
|
||||
var element = $("idNameTo");
|
||||
if(!element)
|
||||
{
|
||||
element = $("idNameTo2");
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
StrTo = "To: " + StrTo;
|
||||
}
|
||||
if (element.innerText !== StrTo) {
|
||||
if(!ToID || ToID === "0")
|
||||
{
|
||||
element.innerText = "";
|
||||
return ;
|
||||
}
|
||||
if(element && element.innerText !== StrTo)
|
||||
{
|
||||
element.innerText = StrTo;
|
||||
if (Item && Item.MyAccount)
|
||||
if(Item && Item.MyAccount)
|
||||
element.className = "smallbold";
|
||||
else
|
||||
element.className = "";
|
||||
}
|
||||
};
|
||||
|
||||
function GetAccountText(Item, Num, bGetSum) {
|
||||
if (Item) {
|
||||
function GetAccountText(Item,Num,bGetSum)
|
||||
{
|
||||
if(Item)
|
||||
{
|
||||
var text = Item.Name;
|
||||
if (!text || text.length === 0)
|
||||
if(!text || text.length === 0)
|
||||
text = Num;
|
||||
else
|
||||
text = "" + Num + ". " + text;
|
||||
if (bGetSum) {
|
||||
if(bGetSum)
|
||||
{
|
||||
var StrSum = SUM_TO_STRING(Item.Value, Item.Currency);
|
||||
text += " (" + StrSum + ")";
|
||||
}
|
||||
return text;
|
||||
}
|
||||
else {
|
||||
return Num;
|
||||
else
|
||||
{
|
||||
if(IsPublicAddr(Num))
|
||||
return Num;
|
||||
else
|
||||
return "<Error addres>";
|
||||
}
|
||||
};
|
||||
|
||||
function OnEditIdTo() {
|
||||
function OnEditIdTo()
|
||||
{
|
||||
CheckNameAccTo();
|
||||
OnEditTransactionFields();
|
||||
};
|
||||
|
||||
function OnEditTransactionFields() {
|
||||
if (IsVisibleBlock("edit_transaction"))
|
||||
function OnEditTransactionFields()
|
||||
{
|
||||
if(IsVisibleBlock("edit_transaction"))
|
||||
CreateTransaction();
|
||||
SetCurCurencyName();
|
||||
SaveValues();
|
||||
};
|
||||
|
||||
function SetCurCurencyName() {
|
||||
function SetCurCurencyName()
|
||||
{
|
||||
var idCoin = $("idCoinName");
|
||||
if (!idCoin)
|
||||
return;
|
||||
if(!idCoin)
|
||||
return ;
|
||||
var Num = ParseNum($("idAccount").value);
|
||||
var Item = MapAccounts[Num];
|
||||
if (Item) {
|
||||
if(Item)
|
||||
{
|
||||
idCoin.innerText = CurrencyName(Item.Currency);
|
||||
}
|
||||
};
|
||||
|
||||
function CreateTransaction(F, CheckErr, Run) {
|
||||
function IsPublicAddr(StrTo)
|
||||
{
|
||||
if(StrTo.length === 66 && (StrTo.substr(0, 2) === "02" || StrTo.substr(0, 2) === "03") && IsHexStr(StrTo))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
};
|
||||
|
||||
function CreateTransaction(F,CheckErr,Run)
|
||||
{
|
||||
CheckNameAccTo();
|
||||
CheckSending();
|
||||
var FromID = ParseNum($("idAccount").value);
|
||||
if (CheckErr && FromID === 0) {
|
||||
if(CheckErr && FromID === 0)
|
||||
{
|
||||
SetError("Select valid 'From account'");
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
var StrTo = $("idTo").value.trim();
|
||||
var bFindAcc = 0;
|
||||
var ToPubKey = "";
|
||||
var ToID = ParseNum(StrTo);
|
||||
if (StrTo !== "" + ToID) {
|
||||
if (StrTo.length === 66 && (StrTo.substr(0, 2) === "02" || StrTo.substr(0, 2) === "03") && IsHexStr(StrTo)) {
|
||||
if(StrTo !== "" + ToID)
|
||||
{
|
||||
if(IsPublicAddr(StrTo))
|
||||
{
|
||||
ToID = 0;
|
||||
ToPubKey = StrTo;
|
||||
if (ToPubKey === PubKeyStr)
|
||||
if(ToPubKey === window.PubKeyStr)
|
||||
bFindAcc = 1;
|
||||
}
|
||||
else {
|
||||
if (CheckErr)
|
||||
else
|
||||
{
|
||||
if(CheckErr)
|
||||
SetError("Valid 'Pay to' - required!");
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
}
|
||||
if (CheckErr && ToID <= 0 && ToPubKey === "" && !AttachItem) {
|
||||
if(CheckErr && ToID <= 0 && ToPubKey === "" && !AttachItem)
|
||||
{
|
||||
SetError("Valid 'Pay to' - required!");
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
var Description = $("idDescription").value.substr(0, 200);
|
||||
var StrSum = $("idSumSend").value;
|
||||
var indDot = StrSum.indexOf(".");
|
||||
if (indDot >= 0) {
|
||||
if(indDot >= 0)
|
||||
{
|
||||
var StrTER = StrSum.substr(0, indDot);
|
||||
var StrCENT = StrSum.substr(indDot + 1);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
var StrTER = StrSum;
|
||||
var StrCENT = "0";
|
||||
}
|
||||
StrCENT = StrCENT + "000000000";
|
||||
var Coin = { SumCOIN: ParseNum(StrTER), SumCENT: ParseNum(StrCENT.substr(0, 9)) };
|
||||
var Coin = {SumCOIN:ParseNum(StrTER), SumCENT:ParseNum(StrCENT.substr(0, 9))};
|
||||
var OperationID = 0;
|
||||
var Item = MapAccounts[FromID];
|
||||
if (Item) {
|
||||
if(Item)
|
||||
{
|
||||
OperationID = Item.Value.OperationID;
|
||||
}
|
||||
var AttachBody = [];
|
||||
if (AttachItem) {
|
||||
if(AttachItem)
|
||||
{
|
||||
AttachBody = AttachItem.Data.Body;
|
||||
if (!AttachBody)
|
||||
if(!AttachBody)
|
||||
AttachBody = [];
|
||||
}
|
||||
var ToPubKeyArr = [];
|
||||
if (ToPubKey)
|
||||
if(ToPubKey)
|
||||
ToPubKeyArr = GetArrFromHex(ToPubKey);
|
||||
var TR = {
|
||||
Type: 111, Version: 3, Reserve: 0, FromID: FromID, OperationID: OperationID, To: [{
|
||||
PubKey: ToPubKeyArr, ID: ToID, SumCOIN: Coin.SumCOIN,
|
||||
SumCENT: Coin.SumCENT
|
||||
}], Description: Description, Body: AttachBody, Sign: CurrentTR.Sign,
|
||||
};
|
||||
Object.defineProperties(TR, { bFindAcc: { configurable: true, writable: true, enumerable: false, value: bFindAcc } });
|
||||
Object.defineProperties(TR, { Run: { configurable: true, writable: true, enumerable: false, value: Run } });
|
||||
if (JSON.stringify(TR) === JSON.stringify(CurrentTR)) {
|
||||
if (F)
|
||||
var TR = {Type:111, Version:3, Reserve:0, FromID:FromID, OperationID:OperationID, To:[{PubKey:ToPubKeyArr, ID:ToID, SumCOIN:Coin.SumCOIN,
|
||||
SumCENT:Coin.SumCENT}], Description:Description, Body:AttachBody, Sign:CurrentTR.Sign, };
|
||||
Object.defineProperties(TR, {bFindAcc:{configurable:true, writable:true, enumerable:false, value:bFindAcc}});
|
||||
Object.defineProperties(TR, {Run:{configurable:true, writable:true, enumerable:false, value:Run}});
|
||||
if(JSON.stringify(TR) === JSON.stringify(CurrentTR))
|
||||
{
|
||||
if(F)
|
||||
F(CurrentTR);
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
CurrentTR = TR;
|
||||
GetSignTransaction(TR, "", function(TR) {
|
||||
GetSignTransaction(TR, "", function (TR)
|
||||
{
|
||||
CurTransactionToForm(true);
|
||||
if (F)
|
||||
if(F)
|
||||
F(TR);
|
||||
});
|
||||
};
|
||||
|
||||
function SignJSON(F) {
|
||||
if ($("idSignJSON").disabled)
|
||||
return;
|
||||
function SignJSON(F)
|
||||
{
|
||||
if($("idSignJSON").disabled)
|
||||
return ;
|
||||
var TR = GetTransactionFromJSON();
|
||||
if (!TR)
|
||||
return;
|
||||
if(!TR)
|
||||
return ;
|
||||
CurrentTR = TR;
|
||||
GetSignTransaction(TR, "", function(TR) {
|
||||
GetSignTransaction(TR, "", function (TR)
|
||||
{
|
||||
CurTransactionToForm(true);
|
||||
if (F)
|
||||
if(F)
|
||||
F();
|
||||
});
|
||||
};
|
||||
|
||||
function CheckSending(bToStatus) {
|
||||
function CheckSending(bToStatus)
|
||||
{
|
||||
MaxBlockNum = GetCurrentBlockNumByTime();
|
||||
var CanSend = IsPrivateMode();
|
||||
var StrButton = "Send";
|
||||
var StrButtonSign = "Sign JSON";
|
||||
if (!CanSend) {
|
||||
if(!CanSend)
|
||||
{
|
||||
StrButton = " ";
|
||||
StrButtonSign = " ";
|
||||
}
|
||||
if (CanSend) {
|
||||
if(CanSend)
|
||||
{
|
||||
var FromID = ParseNum($("idAccount").value);
|
||||
var Item = MapAccounts[FromID];
|
||||
if (Item && Item.NextSendTime && Item.NextSendTime > MaxBlockNum) {
|
||||
if (bToStatus)
|
||||
if(Item && Item.NextSendTime && Item.NextSendTime > MaxBlockNum)
|
||||
{
|
||||
if(bToStatus)
|
||||
SetStatus("Transaction was sending. Wait... (" + Item.LastTransactionText + ")");
|
||||
CanSend = false;
|
||||
StrButton = "Wait...";
|
||||
@@ -258,26 +309,31 @@ function CheckSending(bToStatus) {
|
||||
return CanSend;
|
||||
};
|
||||
|
||||
function AddWhiteList() {
|
||||
function AddWhiteList()
|
||||
{
|
||||
var ToID = ParseNum($("idTo").value);
|
||||
if (ToID && $("idWhiteOnSend").checked)
|
||||
if(ToID && $("idWhiteOnSend").checked)
|
||||
Storage.setItem("White:" + ToID, 1);
|
||||
};
|
||||
|
||||
function SendMoneyBefore() {
|
||||
if ($("idSendButton").disabled)
|
||||
return;
|
||||
function SendMoneyBefore()
|
||||
{
|
||||
if($("idSendButton").disabled)
|
||||
return ;
|
||||
var ToID = ParseNum($("idTo").value);
|
||||
var Item = MapAccounts[ToID];
|
||||
if (Storage.getItem("White:" + ToID) || !$("idSumSend").value || Item && Item.MyAccount) {
|
||||
if(Storage.getItem("White:" + ToID) || !$("idSumSend").value || Item && Item.MyAccount)
|
||||
{
|
||||
SendMoney();
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
var CoinAmount = COIN_FROM_FLOAT($("idSumSend").value);
|
||||
var StrTo = " to " + GetAccountText(Item, ToID);
|
||||
$("idWhiteOnSend").checked = 0;
|
||||
$("idOnSendText").innerHTML = "<B style='color:#ff4534'>" + STRING_FROM_COIN(CoinAmount) + "</B> " + $("idCoinName").innerText + StrTo;
|
||||
if ($("idSumSend").value >= 100000) {
|
||||
if($("idSumSend").value >= 100000)
|
||||
{
|
||||
$("idOnSendText").innerHTML += "<BR><DIV style='color: yellow;'>WARNING: You are about to send a very large amount!</DIV>";
|
||||
}
|
||||
SetVisibleBlock("idBlockOnSend", 1);
|
||||
@@ -285,26 +341,31 @@ function SendMoneyBefore() {
|
||||
}
|
||||
};
|
||||
|
||||
function SendMoney2() {
|
||||
function SendMoney2()
|
||||
{
|
||||
AddWhiteList();
|
||||
SendMoney();
|
||||
};
|
||||
|
||||
function SendMoney() {
|
||||
if (!CanSendTransaction) {
|
||||
function SendMoney()
|
||||
{
|
||||
if(!CanSendTransaction)
|
||||
{
|
||||
SetError("Can't Send transaction");
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
CheckSending(true);
|
||||
if ($("idSendButton").disabled)
|
||||
return;
|
||||
if($("idSendButton").disabled)
|
||||
return ;
|
||||
SetVisibleBlock("idBlockOnSend", 0);
|
||||
CreateTransaction(SendMoneyTR, true, ClearAttach);
|
||||
};
|
||||
|
||||
function GetJSONFromTransaction(TR) {
|
||||
function GetJSONFromTransaction(TR)
|
||||
{
|
||||
var TR2 = JSON.parse(JSON.stringify(TR));
|
||||
for (var i = 0; i < TR2.To.length; i++) {
|
||||
for(var i = 0; i < TR2.To.length; i++)
|
||||
{
|
||||
var Item = TR2.To[i];
|
||||
Item.PubKey = GetHexFromArr(Item.PubKey);
|
||||
}
|
||||
@@ -314,19 +375,24 @@ function GetJSONFromTransaction(TR) {
|
||||
return Str;
|
||||
};
|
||||
|
||||
function GetTransactionFromJSON() {
|
||||
function GetTransactionFromJSON()
|
||||
{
|
||||
var Str = $("idTransaction").value;
|
||||
try {
|
||||
try
|
||||
{
|
||||
var TR = JSON.parse(Str);
|
||||
}
|
||||
catch (e) {
|
||||
catch(e)
|
||||
{
|
||||
SetError(e);
|
||||
return undefined;
|
||||
}
|
||||
for (var i = 0; i < TR.To.length; i++) {
|
||||
for(var i = 0; i < TR.To.length; i++)
|
||||
{
|
||||
var Item = TR.To[i];
|
||||
Item.PubKey = GetArrFromHex(Item.PubKey);
|
||||
if (Item.SumTER && Item.SumCOIN === undefined) {
|
||||
if(Item.SumTER && Item.SumCOIN === undefined)
|
||||
{
|
||||
Item.SumCOIN = Item.SumTER;
|
||||
delete Item.SumTER;
|
||||
}
|
||||
@@ -336,58 +402,68 @@ function GetTransactionFromJSON() {
|
||||
return TR;
|
||||
};
|
||||
|
||||
function SendMoneyJSON() {
|
||||
if (!CanSendTransaction) {
|
||||
function SendMoneyJSON()
|
||||
{
|
||||
if(!CanSendTransaction)
|
||||
{
|
||||
SetError("Can't Send transaction");
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
var TR = GetTransactionFromJSON();
|
||||
if (!TR)
|
||||
return;
|
||||
if(!TR)
|
||||
return ;
|
||||
SendMoneyTR(TR);
|
||||
};
|
||||
|
||||
function SignAndSendFromJSON() {
|
||||
function SignAndSendFromJSON()
|
||||
{
|
||||
SignJSON(SendMoneyJSON);
|
||||
};
|
||||
|
||||
function GetTransactionText(TR, key) {
|
||||
function GetTransactionText(TR,key)
|
||||
{
|
||||
var Str;
|
||||
if (TR) {
|
||||
if (TR.Type === TYPE_TRANSACTION_CREATE) {
|
||||
if(TR)
|
||||
{
|
||||
if(TR.Type === TYPE_TRANSACTION_CREATE)
|
||||
{
|
||||
Str = "New account " + TR.Name.substr(0, 20);
|
||||
}
|
||||
else
|
||||
if (TR.Type === 111) {
|
||||
if(TR.Type === 111)
|
||||
{
|
||||
var MapItem = {};
|
||||
var ValueTotal = { SumCOIN: 0, SumCENT: 0 };
|
||||
var ValueTotal = {SumCOIN:0, SumCENT:0};
|
||||
Str = "" + TR.FromID + "/" + TR.OperationID + " to ";
|
||||
for (var i = 0; i < TR.To.length; i++) {
|
||||
for(var i = 0; i < TR.To.length; i++)
|
||||
{
|
||||
var Item = TR.To[i];
|
||||
if (Item.ID === TR.FromID || MapItem[Item.ID])
|
||||
if(Item.ID === TR.FromID || MapItem[Item.ID])
|
||||
continue;
|
||||
MapItem[Item.ID] = 1;
|
||||
ADD(ValueTotal, Item);
|
||||
if (i === 0)
|
||||
if(i === 0)
|
||||
Str += "[";
|
||||
if (Str.length < 16) {
|
||||
if (i > 0)
|
||||
if(Str.length < 16)
|
||||
{
|
||||
if(i > 0)
|
||||
Str += ",";
|
||||
if (Item.ID || (Item.PubKey && Item.PubKey.length !== 66))
|
||||
if(Item.ID || (Item.PubKey && Item.PubKey.length !== 66))
|
||||
Str += Item.ID;
|
||||
else
|
||||
Str += GetHexFromArr(Item.PubKey).substr(0, 8);
|
||||
}
|
||||
else
|
||||
if (Str.substr(Str.length - 1) !== ".")
|
||||
if(Str.substr(Str.length - 1) !== ".")
|
||||
Str += "...";
|
||||
}
|
||||
Str += "] " + SUM_TO_STRING(ValueTotal);
|
||||
Str += " " + (TR.Description.substr(0, 20)).replace(/\n/g, "");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (key)
|
||||
else
|
||||
{
|
||||
if(key)
|
||||
Str = key;
|
||||
else
|
||||
Str = "";
|
||||
@@ -395,15 +471,18 @@ function GetTransactionText(TR, key) {
|
||||
return Str;
|
||||
};
|
||||
|
||||
function SendMoneyTR(TR) {
|
||||
function SendMoneyTR(TR)
|
||||
{
|
||||
var Body = GetArrFromTR(TR);
|
||||
WriteArr(Body, TR.Sign, 64);
|
||||
Body.length += 12;
|
||||
SendTransaction(Body, TR, undefined, function(Err, TR, Body) {
|
||||
if (Err)
|
||||
return;
|
||||
SendTransaction(Body, TR, undefined, function (Err,TR,Body)
|
||||
{
|
||||
if(Err)
|
||||
return ;
|
||||
var Item = MapAccounts[TR.FromID];
|
||||
if (Item) {
|
||||
if(Item)
|
||||
{
|
||||
var key = GetHexFromArr(sha3(Body));
|
||||
var BlockNum = GetCurrentBlockNumByTime();
|
||||
Item.LastTransactionText = GetTransactionText(TR);
|
||||
@@ -414,31 +493,37 @@ function SendMoneyTR(TR) {
|
||||
});
|
||||
};
|
||||
|
||||
function ClearTransaction() {
|
||||
function ClearTransaction()
|
||||
{
|
||||
PayList = [];
|
||||
ClearAttach();
|
||||
CheckSendList(1);
|
||||
var arr = ["idAccount", "idTo", "idSumSend", "idDescription"];
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
for(var i = 0; i < arr.length; i++)
|
||||
{
|
||||
$(arr[i]).value = "";
|
||||
}
|
||||
SaveValues();
|
||||
CreateTransaction();
|
||||
};
|
||||
|
||||
function StartEditTransactionJSON() {
|
||||
function StartEditTransactionJSON()
|
||||
{
|
||||
var Item = $("idTransaction");
|
||||
Item.className = "smallbold";
|
||||
};
|
||||
|
||||
function EditJSONTransaction() {
|
||||
function EditJSONTransaction()
|
||||
{
|
||||
var name = "edit_transaction";
|
||||
var Item = $("idTransaction");
|
||||
if (IsVisibleBlock(name)) {
|
||||
if(IsVisibleBlock(name))
|
||||
{
|
||||
SetVisibleBlock(name, false);
|
||||
Item.className = "";
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
CreateTransaction();
|
||||
SetVisibleBlock(name, true);
|
||||
Item.className = "";
|
||||
@@ -446,14 +531,16 @@ function EditJSONTransaction() {
|
||||
};
|
||||
var glNumPayCount = 0;
|
||||
|
||||
function GetInvoiceHTML(item, onclick, classstr) {
|
||||
if (!item.num) {
|
||||
function GetInvoiceHTML(item,onclick,classstr)
|
||||
{
|
||||
if(!item.num)
|
||||
{
|
||||
glNumPayCount++;
|
||||
item.num = glNumPayCount;
|
||||
}
|
||||
var idname = "idSendInvoice" + item.num;
|
||||
var value = "";
|
||||
if (item.Data.Amount)
|
||||
if(item.Data.Amount)
|
||||
value += "<B>" + item.Data.Amount + "</B> Tera";
|
||||
else
|
||||
value += "<B style='color:green'>No pay</B>";
|
||||
@@ -461,46 +548,55 @@ function GetInvoiceHTML(item, onclick, classstr) {
|
||||
return "<button id='" + idname + "' onclick='" + onclick + "' class='" + classstr + "'>" + value + "</button>";
|
||||
};
|
||||
|
||||
function AddSendList(item) {
|
||||
PayList.push({ Data: item });
|
||||
function AddSendList(item)
|
||||
{
|
||||
PayList.push({Data:item});
|
||||
};
|
||||
|
||||
function CheckSendList(bRedraw) {
|
||||
function CheckSendList(bRedraw)
|
||||
{
|
||||
TitleWarning = PayList.length;
|
||||
if (AttachItem)
|
||||
if(AttachItem)
|
||||
TitleWarning++;
|
||||
var Str = Storage.getItem("InvoiceList");
|
||||
if (!Str && !bRedraw)
|
||||
return;
|
||||
if (!bRedraw) {
|
||||
if(!Str && !bRedraw)
|
||||
return ;
|
||||
if(!bRedraw)
|
||||
{
|
||||
SelectTab("TabSend");
|
||||
}
|
||||
if (Str) {
|
||||
if(Str)
|
||||
{
|
||||
var arr = JSON.parse(Str);
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
for(var i = 0; i < arr.length; i++)
|
||||
{
|
||||
AddSendList(arr[i]);
|
||||
}
|
||||
Storage.setItem("InvoiceList", "");
|
||||
}
|
||||
var idList = $("idSendList");
|
||||
if (PayList.length) {
|
||||
if(PayList.length)
|
||||
{
|
||||
idList.innerHTML = "<DIV id='PaiListInfo'>Select the item you want to sign (pay) and send to blockchain:</DIV>";
|
||||
for (var i = 0; i < PayList.length; i++) {
|
||||
for(var i = 0; i < PayList.length; i++)
|
||||
{
|
||||
var item = PayList[i];
|
||||
idList.innerHTML += GetInvoiceHTML(item, "UseInvoice(" + i + ")", "btinvoice");
|
||||
}
|
||||
if (AttachItem === undefined)
|
||||
if(AttachItem === undefined)
|
||||
UseInvoice(0);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
idList.innerHTML = "";
|
||||
}
|
||||
};
|
||||
setInterval(CheckSendList, 200);
|
||||
|
||||
function UseInvoice(Num) {
|
||||
function UseInvoice(Num)
|
||||
{
|
||||
var item = PayList[Num];
|
||||
if (item.Data.From)
|
||||
if(item.Data.From)
|
||||
$("idAccount").value = item.Data.From;
|
||||
$("idTo").value = item.Data.To;
|
||||
$("idSumSend").value = item.Data.Amount;
|
||||
@@ -511,16 +607,19 @@ function UseInvoice(Num) {
|
||||
CheckSendList(1);
|
||||
};
|
||||
|
||||
function ClearAttach() {
|
||||
function ClearAttach()
|
||||
{
|
||||
AttachItem = undefined;
|
||||
if ($("idAttach"))
|
||||
if($("idAttach"))
|
||||
$("idAttach").innerHTML = "";
|
||||
};
|
||||
|
||||
function OpenAttach() {
|
||||
if (AttachItem) {
|
||||
function OpenAttach()
|
||||
{
|
||||
if(AttachItem)
|
||||
{
|
||||
var Data2 = JSON.parse(JSON.stringify(AttachItem.Data));
|
||||
if (Data2.Body)
|
||||
if(Data2.Body)
|
||||
Data2.Body = GetHexFromArr(Data2.Body);
|
||||
delete Data2.TransferSecret;
|
||||
alert("DATA:\n" + JSON.stringify(Data2, "", 4));
|
||||
@@ -528,65 +627,79 @@ function OpenAttach() {
|
||||
};
|
||||
var CURRENCY, PUBKEY, NAME, SMART;
|
||||
|
||||
function SendTrCreateAccWait(Currency, PubKey, Name, Smart) {
|
||||
function SendTrCreateAccWait(Currency,PubKey,Name,Smart)
|
||||
{
|
||||
CURRENCY = Currency;
|
||||
PUBKEY = PubKey;
|
||||
NAME = Name;
|
||||
SMART = Smart;
|
||||
setTimeout(function() {
|
||||
setTimeout(function ()
|
||||
{
|
||||
SendTrCreateAcc(CURRENCY, PUBKEY, NAME, 0, SMART, 0, 0);
|
||||
}, 50);
|
||||
};
|
||||
|
||||
function SendTrCreateAcc(Currency, PubKey, Description, Adviser, Smart, bFindAcc, bAddToPay) {
|
||||
function SendTrCreateAcc(Currency,PubKey,Description,Adviser,Smart,bFindAcc,bAddToPay)
|
||||
{
|
||||
var TR = GetTrCreateAcc(Currency, PubKey, Description, Adviser, Smart);
|
||||
var Body = GetBodyCreateAcc(TR);
|
||||
TR.bFindAcc = 1;
|
||||
if (bAddToPay) {
|
||||
var Item = {
|
||||
name: Description, To: 0, Amount: CONFIG_DATA.PRICE_DAO.NewAccount, Description: "Create acc: " + Description, Body: Body,
|
||||
if(bAddToPay)
|
||||
{
|
||||
var Item = {name:Description, To:0, Amount:CONFIG_DATA.PRICE_DAO.NewAccount, Description:"Create acc: " + Description, Body:Body,
|
||||
};
|
||||
AddToInvoiceList(Item);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
SendTransaction(Body, TR);
|
||||
}
|
||||
$("idAccountName").value = "";
|
||||
CancelCreateAccount();
|
||||
};
|
||||
|
||||
function ChangeSmart(NumAccount, WasSmart) {
|
||||
if (!IsPrivateMode()) {
|
||||
function ChangeSmart(NumAccount,WasSmart)
|
||||
{
|
||||
if(!IsPrivateMode())
|
||||
{
|
||||
SetError("Pls, open wallet");
|
||||
return 0;
|
||||
}
|
||||
var Result = prompt("Enter smart number:", WasSmart);
|
||||
if (Result !== null && Result != WasSmart) {
|
||||
if(Result !== null && Result != WasSmart)
|
||||
{
|
||||
var Smart = parseInt(Result);
|
||||
if (Smart) {
|
||||
GetData("GetDappList", { StartNum: Smart, CountNum: 1 }, function(Data) {
|
||||
if (Data && Data.result && Data.arr.length === 1) {
|
||||
if(Smart)
|
||||
{
|
||||
GetData("GetDappList", {StartNum:Smart, CountNum:1}, function (Data)
|
||||
{
|
||||
if(Data && Data.result && Data.arr.length === 1)
|
||||
{
|
||||
SetSmartToAccount(NumAccount, Smart);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
SetError("Error smart number");
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
SetSmartToAccount(NumAccount, Smart);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function SetSmartToAccount(NumAccount, Smart) {
|
||||
function SetSmartToAccount(NumAccount,Smart)
|
||||
{
|
||||
var OperationID = 0;
|
||||
var Item = MapAccounts[NumAccount];
|
||||
if (Item) {
|
||||
if(Item)
|
||||
{
|
||||
OperationID = Item.Value.OperationID;
|
||||
}
|
||||
OperationID++;
|
||||
var TR = { Type: 140, Account: NumAccount, Smart: Smart, FromNum: NumAccount, Reserve: [], OperationID: OperationID, Sign: "", };
|
||||
var TR = {Type:140, Account:NumAccount, Smart:Smart, FromNum:NumAccount, Reserve:[], OperationID:OperationID, Sign:"", };
|
||||
var Body = [];
|
||||
WriteByte(Body, TR.Type);
|
||||
WriteUint(Body, TR.Account);
|
||||
@@ -597,11 +710,12 @@ function SetSmartToAccount(NumAccount, Smart) {
|
||||
SendTrArrayWithSign(Body, TR.Account, TR);
|
||||
};
|
||||
|
||||
function CheckLengthAccDesription(name, Length) {
|
||||
function CheckLengthAccDesription(name,Length)
|
||||
{
|
||||
var Str = $(name).value.substr(0, Length + 1);
|
||||
var arr = toUTF8Array(Str);
|
||||
var Len = Length - arr.length;
|
||||
if (Len < 0)
|
||||
if(Len < 0)
|
||||
SetError("Bad length");
|
||||
else
|
||||
SetStatus("Lost: " + Len + " bytes");
|
||||
|
||||
Reference in New Issue
Block a user