sync: sync upstream code

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
MiaoWoo 2019-07-20 22:30:47 +08:00
parent a981ccbcae
commit 88bae3a4bd
12 changed files with 127 additions and 37 deletions

View File

@ -241,7 +241,7 @@ textarea {
/* background: var(--blue-grey); */
background: transparent;
border: none;
color: #fff;
color: #000;
padding: 5px;
width: 55px;
font-family: inherit;
@ -1858,7 +1858,7 @@ td.hash {
width: 60px;
border-radius: 3px;
background: transparent;
color: rgba(255, 255, 255, 0.6);
color: #000;
}
.white-select {
display: block;
@ -2773,7 +2773,7 @@ iframe
.btn--float
{
float: left;
width: 230px;
width: 200px;
margin: 10px;
}

View File

@ -64,6 +64,7 @@ window.IsLocalClient = function ()
{
return (window.location.protocol.substr(0, 4) !== "http");
};
var glSession;
var ServerHTTP;
var MainServer;
if(window.nw)
@ -1983,3 +1984,10 @@ function isMobile()
}
return false;
};
function DoNewSession()
{
var arr = new Uint8Array(6);
window.crypto.getRandomValues(arr);
glSession = GetHexFromArr(arr);
};

View File

@ -24,6 +24,7 @@ var CONNECT_STATUS = 0;
var NotModalClose = 0;
window.onload = function ()
{
DoNewSession();
InitAccountsCard();
DoLangScript();
InitWalletKeyName();
@ -38,7 +39,6 @@ window.onload = function ()
if(Data && Data.result)
{
Storage.setItem("NETWORK", Data.NETWORK);
console.log("Default network: " + Data.NETWORK);
OnLoad();
}
});
@ -98,8 +98,8 @@ function OnLoad()
LoadValues();
InitDappsCard();
StartWebWallet();
setInterval(UpdatesExplorerData, 1000);
setInterval(UpdatesAccountsData, 1000);
setInterval(UpdatesExplorerData, 2000);
setInterval(UpdatesAccountsData, 2000);
DoStableScroll();
window.onmousemove = function (event)
{
@ -117,11 +117,13 @@ function OnLoad()
function ChangeNetwork(bStart)
{
FirstAccountsData = 1;
CONNECT_STATUS = 0;
NETWORK = $("idCurNetwork").value;
Storage.setItem("NETWORK", NETWORK);
if(bStart)
StartWebWallet();
else
ConnectWebWallet();
};
@ -144,6 +146,7 @@ function OnFindServer()
CONNECT_STATUS = 2;
Storage.setItem("MainServer", JSON.stringify({ip:MainServer.ip, port:MainServer.port}));
FillCurrencyAsync("idAccountCur");
SetDataUpdateTime(10);
UpdateTabs();
};
@ -188,6 +191,16 @@ function OnSelectTab(name)
SetPrivKey($("idPrivKeyEdit").value.trim());
InitPrivKey();
}
if(name === "TabAccounts" || name === "TabSend")
{
UpdatesAccountsData(1);
}
else
if(name === "TabExplorer")
{
UpdatesExplorerData(1);
}
else
if(name === "TabDapps")
{
ViewDapps();
@ -292,8 +305,14 @@ function OnPrivKeyCancel()
};
var FirstAccountsData = 1;
var AccountsCount = - 1;
var DataUpdateTime = 0;
function UpdatesAccountsData()
function SetDataUpdateTime(PeriodSec)
{
DataUpdateTime = Date.now() + 1000 * PeriodSec;
};
function UpdatesAccountsData(bGetData)
{
if(IsVisibleClass(".accounts-info__add"))
return ;
@ -304,7 +323,16 @@ function UpdatesAccountsData()
{
return ;
}
GetData("/GetAccountListByKey", {Key:Str, AllData:FirstAccountsData}, function (Data,responseText)
if(!bGetData)
{
if(IsVisibleBlock("TabAccounts") || DataUpdateTime >= Date.now())
{
bGetData = 1;
}
}
if(!bGetData)
return ;
GetData("/GetAccountListByKey", {Key:Str, Session:glSession, AllData:FirstAccountsData}, function (Data,responseText)
{
if(!Data || !Data.result || !Data.arr)
return ;
@ -549,8 +577,20 @@ function RestoreAllAccounts()
DelAccount(0);
};
function UpdatesExplorerData()
function UpdatesExplorerData(bGetData)
{
var bDiagram = 0;
if(IsVisibleBlock("TabExplorer") && IsVisibleBlock("idStatBlock"))
bDiagram = 1;
if(!bGetData)
{
if(bDiagram || DataUpdateTime >= Date.now())
{
bGetData = 1;
}
}
if(!bGetData)
return ;
var WasSendTr = 0;
for(var key in MapSendTransaction)
{
@ -561,7 +601,7 @@ function UpdatesExplorerData()
break;
}
}
GetData("GetCurrentInfo", {Diagram:IsVisibleBlock("idStatBlock") ? 1 : 0, ArrLog:WasSendTr}, function (Data)
GetData("GetCurrentInfo", {Diagram:bDiagram, ArrLog:WasSendTr}, function (Data)
{
if(!Data || !Data.result)
return ;
@ -697,9 +737,11 @@ function downloadKey(fieldID)
anchor.click();
document.body.removeChild(anchor);
};
var glWasModal = 0;
function openModal(id)
{
glWasModal = 1;
var modal = document.querySelector("#" + id);
var overlay = document.querySelector("#overlay");
modal.style.display = "block";
@ -710,6 +752,7 @@ function closeModal()
{
if(NotModalClose)
return ;
glWasModal = 0;
var modals = document.querySelectorAll(".modal");
var overlay = document.querySelector("#overlay");
modals.forEach(function (item)
@ -802,14 +845,24 @@ function SendMobileBefore()
SetVisibleClass(".send-page__setting", 0);
SetVisibleClass(".send-page__confirm", 1);
SetStatus("");
UpdatesAccountsData(1);
UpdatesExplorerData(1);
};
function OKSend()
{
SendMoney();
SendMoney(function ()
{
if(glWasModal)
{
ClearSend();
SaveValues();
}
closeModal();
});
SetDataUpdateTime(20);
CancelSend();
openModal('idSending');
};
function CancelSend()
@ -920,6 +973,7 @@ function SetUsePassword(bUse)
function DoExitWallet()
{
ClearSend();
SaveValues();
NotModalClose = 1;
$("Password").value = "";
SetWalletPassword("");
@ -1210,7 +1264,7 @@ LangMap["RUS"] = {"TERA WALLET":"TERA КОШЕЛЕК", "Generate key":"Сген
"Buy/sell/mine TERA":"Купить/Продать", "+ CREATE NEW":"+ СОЗДАТЬ", "Confirm Transaction":"Подтверждение транзакции", "CREATE DAPPS":"СОЗДАТЬ",
"Set pass":"Установить пароль", "Unlock":"Разблокировать", "Entrance to sub-wallet":"Войти в под-кошелек", "Public name":"Публичное имя",
"Currency":"Валюта", "Pay to:":"Получатель:", "Amount:":"Сумма:", "Description:":"Описание:", "Welcome to TERA Wallet":"Добропожаловать в кошелек TERA",
"Edit your wallet":"Редактирование вашего кошелька", "Key settings":"Задание ключей", "KEY SETTINGS":"ЗАДАНИЕ КЛЮЧЕЙ", "Create an account":"Создание счета",
"Edit your wallet":"Редактирование вашего кошелька", "Key settings":"Задание ключей", "KEY SETTINGS":"КЛЮЧИ", "Create an account":"Создание счета",
"Sending coins":"Отправка монет", "Decentralized applications (dApps)":"Децентрализованные приложения (Даппс)", "Secure your wallet":"Безопасность вашего кошелька",
"Wallet is secured":"Установлен пароль", "Total":"Всего", "Item.Name":"Item.Name", "You have no accounts yet":"У вас нет ни одного счета",
"Wait 10-15 sec":"Ждите 10-15 сек", "Creating your account":"Идет создание вашего счета", "From:":"Отправитель:", "Set a password for protect entry":"Установите пароль для безопасности",

View File

@ -347,7 +347,7 @@ function SendMoney2()
SendMoney();
};
function SendMoney()
function SendMoney(F)
{
if(!CanSendTransaction)
{
@ -358,7 +358,9 @@ function SendMoney()
if($("idSendButton").disabled)
return ;
SetVisibleBlock("idBlockOnSend", 0);
CreateTransaction(SendMoneyTR, true, ClearAttach);
if(!F)
F = ClearAttach;
CreateTransaction(SendMoneyTR, true, F);
};
function GetJSONFromTransaction(TR)

View File

@ -26,9 +26,9 @@
var NumDappGet=0;
var NumDappInfo=0;
var arr = new Uint8Array(6);
window.crypto.getRandomValues(arr);
var glSession=GetHexFromArr(arr);
// var arr = new Uint8Array(6);
// window.crypto.getRandomValues(arr);
// var glSession=GetHexFromArr(arr);
//DAPP TRANSFER
@ -295,6 +295,8 @@
var SMART={},BASE_ACCOUNT={},OPEN_PATH="";
window.onload=function()
{
DoNewSession();
if(window.location.hash)
OPEN_PATH=window.location.hash.substr(1);
if(IsLocalClient())

View File

@ -490,6 +490,13 @@
{
CanSendTransaction=1;
}
if(Data.NET_WORK_MODE && Data.NET_WORK_MODE.NOT_RUN)
{
CanSendTransaction=0;
WalletStatus="OK";
SetMainStatus("<DIV align='center' style='color:#565571'><big><B>NODE NOT RUNING</B></big></DIV>",1);
}
MaxAccID=Data.MaxAccID;
MaxDappsID=Data.MaxDappsID;
@ -1105,10 +1112,10 @@
ArrInfo=
[
{Name:"Hashrate from the beginning of the chain", Delta:1000000000, DX:310},
{Name:"month", Delta:30.5*24*3600, DX:200},
{Name:"day", Delta:24*3600, DX:140},
{Name:"hour", Delta:3600, DX:90},
{Name:"minute", Delta:60, DX:60}
{Name:"month", Delta:30.5*24*3600, DX:200, Mult:10000},
{Name:"day", Delta:24*3600, DX:140, Mult:1000},
{Name:"hour", Delta:3600, DX:90, Mult:100},
{Name:"minute", Delta:60, DX:60, Mult:2},
];
for(var i=0;i<ArrInfo.length;i++)
@ -1137,7 +1144,7 @@
if(Item.BlockNum1<0)
Item.BlockNum1=0;
CurBlockNum=Item.BlockNum1;
CurBlockNum=Math.floor(Item.BlockNum1/Item.Mult)*Item.Mult;
var MustUpdate=0;
if(Item.PowerArr)
@ -1225,6 +1232,7 @@
if(!Month)
return;
var AvgTotal=0;
for(var i=0;i<ArrInfo.length;i++)
{
@ -1435,6 +1443,7 @@
</DIV>
<DIV style="float: left;display: none" id="idMiningParams">
<DIV style="float: left; color: blue;">CPU use:<input type="number" min=0 max=100 id="idPercentMining" onchange="SetPercentMining()"/>%</DIV>
<DIV style="float: left; margin: 2px 0 0 8px;" id="idStatusMining"></DIV>
</DIV>
</DIV>
<DIV id="idDevelopService" style="display: none">
@ -1474,7 +1483,6 @@
</DIV>
<canvas width='800' height='30' id='idBlockInfo'></canvas>
<BR><BR>
<DIV style="float: left; font-family: monospace" id="idStatusMining"></DIV>
<DIV style="float: left; font-family: monospace">
Block:<B id="idCurBlockNum"></B>
DB delta:<B id="idDeltaDB" style="min-width: 30px"></B>
@ -1676,7 +1684,7 @@
<option value="styleContrast2">Contrast 2</option>
<option value="styleContrast3">Contrast 3</option>
</select>
This Version Refactor By MiaoWoo Use TypeScript
</DIV>

View File

@ -632,9 +632,12 @@
</form>
</section>
<section class="modal dapp-modal" id="idSending" onclick="closeModal()" style="display: none;">
<h2 class="password-modal__title">Sending Tx</h2><BR>
<p class="password-modal__subtitle">Wait 5-8 sec, pls</p>
</section>
<section class="modal password-modal" id="idSmartEnter">
<section class="modal dapp-modal" id="idSmartEnter" style="display: none;">
<h2 class="password-modal__title"><span>Enter number of dapp</span></h2>
<p class="password-modal__subtitle">Enter the dapps number that will be added to your account. Attention make sure that you trust this dapp, otherwise you may lose all funds in this account.</p>

View File

@ -1270,10 +1270,10 @@ export default class CConnect extends CMessages {
if (!this.LastNotZeroNodesTime)
this.LastNotZeroNodesTime = CurTime
var DeltaTime = CurTime - this.LastNotZeroNodesTime;
if (DeltaTime > 10 * 1000) {
if (DeltaTime > 60 * 1000) {
global.ToLog("DETECT GRAY MODE")
if (!global.NET_WORK_MODE) {
global.NET_WORK_MODE = { ip: "", port: "" }
global.NET_WORK_MODE = { ip: "", port: 30000 }
}
global.NET_WORK_MODE.UseDirectIP = 0
global.SAVE_CONST()
@ -1282,7 +1282,7 @@ export default class CConnect extends CMessages {
SetDirectMode() {
var CountNodes = this.ActualNodes.size;
if (CountNodes && !global.NET_WORK_MODE) {
global.NET_WORK_MODE = { ip: "", port: "30000" }
global.NET_WORK_MODE = { ip: "", port: "30000", NOT_RUN: 0 }
global.NET_WORK_MODE.UseDirectIP = 1
global.SAVE_CONST()
}

View File

@ -852,6 +852,9 @@ export default class CTransport extends CConnect {
this.CanSend++
return;
}
if (global.NET_WORK_MODE && global.NET_WORK_MODE.NOT_RUN) {
return;
}
let SELF = this;
this.Server = net.createServer(function(sock: any) {
if (SELF.WasBanIP({ address: sock.remoteAddress })) {

1
src/global.d.ts vendored
View File

@ -74,6 +74,7 @@ declare global {
UseDirectIP?: boolean | number;
NodeWhiteList?: string;
DoRestartNode?: number;
NOT_RUN?: boolean | number;
}
STAT_MODE: number;
MAX_STAT_PERIOD: number;

View File

@ -36,6 +36,13 @@ global.glCurNumFindArr = 0;
global.ArrReconnect = [];
global.ArrConnect = [];
var FindList = [
{ "ip": "91.235.136.81", "port": 30000 },
{ "ip": "dappsgate.com", "port": 30000 },
{ "ip": "185.240.243.182", "port": 30000 },
{ "ip": "t1.teraexplorer.com", "port": 30000 },
{ "ip": "t2.teraexplorer.com", "port": 30000 },
{ "ip": "t4.teraexplorer.com", "port": 30000 },
{ "ip": "teraexplorer.org", "port": 30000 },
{ "ip": "60.12.241.181", "port": 30002 },
{ "ip": "60.12.241.181", "port": 30003 },
{ "ip": "60.12.241.181", "port": 30004 },
@ -323,7 +330,7 @@ function StartChildProcess(Item: TeraProcess) {
}
}
if (ITEM.Worker) {
ITEM.Worker.send({ cmd: "Alive" });
ITEM.Worker.send({ cmd: "Alive", DELTA_CURRENT_TIME: global.DELTA_CURRENT_TIME });
}
}, 500);
ITEM.RunRPC = function(Name, Params, F) {

View File

@ -526,7 +526,7 @@ HostingCaller.GetNodeList = function(Params) {
};
var AccountKeyMap = {};
var LastMaxNum = 0;
HostingCaller.GetAccountListByKey = function(Params, ppp, bRet) {
HostingCaller.GetAccountListByKey = function(Params, aaa, bbb, bRet) {
if (typeof Params !== "object" || !Params.Key)
return { result: 0, arr: [] };
var Accounts = global.DApps.Accounts;
@ -571,6 +571,8 @@ HostingCaller.GetAccountListByKey = function(Params, ppp, bRet) {
return Ret;
var Context = global.GetUserContext(Params);
var StrInfo = JSON.stringify(Ret);
if (Params.AllData === "0")
Params.AllData = 0;
if (!Params.AllData && Context.PrevAccountList === StrInfo) {
return { result: 0, cache: 1 };
}
@ -654,7 +656,7 @@ HostingCaller.DappInfo = function(Params) {
HostingCaller.DappWalletList = function(Params) {
if (typeof Params !== "object")
return { result: 0 };
var Ret = HostingCaller.GetAccountListByKey(Params, undefined, 1);
var Ret = HostingCaller.GetAccountListByKey(Params, undefined, undefined, 1);
var Smart = global.ParseNum(Params.Smart);
var arr = [];
for (var i = 0; i < Ret.arr.length; i++) {