Tue Jul 23 10:47:18 CST 2019 Source Update...
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
@import url('https://fonts.googleapis.com/css?family=Roboto:400,500,700&subset=cyrillic');
 | 
					/*@import url('https://fonts.googleapis.com/css?family=Roboto:400,500,700&subset=cyrillic');*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:root {
 | 
					:root {
 | 
				
			||||||
	--blue-grey: #445368;
 | 
						--blue-grey: #445368;
 | 
				
			||||||
@@ -243,7 +243,7 @@ textarea {
 | 
				
			|||||||
	border: none;
 | 
						border: none;
 | 
				
			||||||
	color: #000;
 | 
						color: #000;
 | 
				
			||||||
	padding: 5px;
 | 
						padding: 5px;
 | 
				
			||||||
	width: 55px;
 | 
						width: 75px;
 | 
				
			||||||
	font-family: inherit;
 | 
						font-family: inherit;
 | 
				
			||||||
	font-size: 12px;
 | 
						font-size: 12px;
 | 
				
			||||||
	line-height: 14px;
 | 
						line-height: 14px;
 | 
				
			||||||
@@ -1818,7 +1818,7 @@ td.hash {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	.header__right select {
 | 
						.header__right select {
 | 
				
			||||||
		text-decoration: underline;
 | 
							text-decoration: underline;
 | 
				
			||||||
		width: 60px;
 | 
							width: 75px;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	.header__wallet-link {
 | 
						.header__wallet-link {
 | 
				
			||||||
		display: flex;
 | 
							display: flex;
 | 
				
			||||||
@@ -1859,7 +1859,7 @@ td.hash {
 | 
				
			|||||||
		font-size: 14px;
 | 
							font-size: 14px;
 | 
				
			||||||
		line-height: 16px;
 | 
							line-height: 16px;
 | 
				
			||||||
		right: 165px;
 | 
							right: 165px;
 | 
				
			||||||
		width: 60px;
 | 
							width: 75px;
 | 
				
			||||||
		border-radius: 3px;
 | 
							border-radius: 3px;
 | 
				
			||||||
		background: transparent;
 | 
							background: transparent;
 | 
				
			||||||
		color: #000;
 | 
							color: #000;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -179,7 +179,7 @@ else
 | 
				
			|||||||
function IsIPAddres(Str)
 | 
					function IsIPAddres(Str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    var arr = Str.split(".");
 | 
					    var arr = Str.split(".");
 | 
				
			||||||
    if(arr.length !== 3)
 | 
					    if(arr.length !== 4)
 | 
				
			||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
    for(var i = 0; i < arr.length; i++)
 | 
					    for(var i = 0; i < arr.length; i++)
 | 
				
			||||||
        if(arr[i] !== "" + ParseNum(arr[i]))
 | 
					        if(arr[i] !== "" + ParseNum(arr[i]))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@
 | 
				
			|||||||
 * Telegram:  https://t.me/terafoundation
 | 
					 * Telegram:  https://t.me/terafoundation
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var WEB_WALLET_VERSION = "0.04";
 | 
				
			||||||
var SaveIdArr = ["idAccount", "idTo", "idSumSend", "idDescription", "idCurTabName", "idViewBlockNum", "idViewAccountNum", "idViewDappNum",
 | 
					var SaveIdArr = ["idAccount", "idTo", "idSumSend", "idDescription", "idCurTabName", "idViewBlockNum", "idViewAccountNum", "idViewDappNum",
 | 
				
			||||||
"idLang"];
 | 
					"idLang"];
 | 
				
			||||||
var CONFIG_DATA = {PRICE_DAO:{NewAccount:10}, MaxNumBlockDB:0, MaxAccID:0, MaxDappsID:0};
 | 
					var CONFIG_DATA = {PRICE_DAO:{NewAccount:10}, MaxNumBlockDB:0, MaxAccID:0, MaxDappsID:0};
 | 
				
			||||||
@@ -455,7 +456,7 @@ function SetAccountsCard(Data,AccountsDataStr)
 | 
				
			|||||||
        option.text = StrText;
 | 
					        option.text = StrText;
 | 
				
			||||||
        var Str = StrAccCardTemplate;
 | 
					        var Str = StrAccCardTemplate;
 | 
				
			||||||
        Str = Str.replace("AccCardTemplate", "idCard" + Item.Num);
 | 
					        Str = Str.replace("AccCardTemplate", "idCard" + Item.Num);
 | 
				
			||||||
        Str = Str.replace(/{Item.Num}/g, Item.Num);
 | 
					        Str = Str.replace(/\$Item.Num/g, Item.Num);
 | 
				
			||||||
        var Str1, Str2;
 | 
					        var Str1, Str2;
 | 
				
			||||||
        if(Item.Value.SumCOIN || Item.Value.SumCENT)
 | 
					        if(Item.Value.SumCOIN || Item.Value.SumCENT)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -468,25 +469,25 @@ function SetAccountsCard(Data,AccountsDataStr)
 | 
				
			|||||||
            Str2 = "";
 | 
					            Str2 = "";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        var StrCurrencyName = CurrencyName(Item.Currency);
 | 
					        var StrCurrencyName = CurrencyName(Item.Currency);
 | 
				
			||||||
        Str = Str.replace("{Value.SumCOIN}", Str1);
 | 
					        Str = Str.replace("$Value.SumCOIN", Str1);
 | 
				
			||||||
        Str = Str.replace("{Value.SumCENT}", Str2);
 | 
					        Str = Str.replace("$Value.SumCENT", Str2);
 | 
				
			||||||
        Str = Str.replace("{Value.CurrencyName}", StrCurrencyName);
 | 
					        Str = Str.replace("$Value.CurrencyName", StrCurrencyName);
 | 
				
			||||||
        var CurrencyObj = Item.CurrencyObj;
 | 
					        var CurrencyObj = Item.CurrencyObj;
 | 
				
			||||||
        if(!CurrencyObj)
 | 
					        if(!CurrencyObj)
 | 
				
			||||||
            CurrencyObj = {IconBlockNum:0, Num:0};
 | 
					            CurrencyObj = {IconBlockNum:0, Num:0};
 | 
				
			||||||
        Str = Str.replace("{Value.CurrencyIconPath}", RetIconPath(CurrencyObj, 1));
 | 
					        Str = Str.replace("$value.currencyiconpath", "src='" + RetIconPath(CurrencyObj, 1) + "'");
 | 
				
			||||||
        var CurrencyPath = RetIconPath(CurrencyObj);
 | 
					        var CurrencyPath = RetIconPath(CurrencyObj);
 | 
				
			||||||
        if(CurrencyPath.substr(0, 6) !== "/file/")
 | 
					        if(CurrencyPath.substr(0, 6) !== "/file/")
 | 
				
			||||||
            Str = Str.replace("prod-card__currency--with-dot", "");
 | 
					            Str = Str.replace("prod-card__currency--with-dot", "");
 | 
				
			||||||
        Str = Str.replace("{Item.Name}", escapeHtml(Item.Name));
 | 
					        Str = Str.replace("$Item.Name", escapeHtml(Item.Name));
 | 
				
			||||||
        var SmartObj = Item.SmartObj;
 | 
					        var SmartObj = Item.SmartObj;
 | 
				
			||||||
        if(!SmartObj)
 | 
					        if(!SmartObj)
 | 
				
			||||||
            SmartObj = {Name:"", Num:0, HTMLLength:0};
 | 
					            SmartObj = {Name:"", Num:0, HTMLLength:0};
 | 
				
			||||||
        SmartObj.IconPath = RetIconPath(SmartObj, 0);
 | 
					        SmartObj.IconPath = RetIconPath(SmartObj, 0);
 | 
				
			||||||
        Str = Str.replace("{SmartObj.IconPath}", SmartObj.IconPath);
 | 
					        Str = Str.replace("$smartobj.iconpath", "src='" + SmartObj.IconPath + "'");
 | 
				
			||||||
        Str = Str.replace("{SmartObj.Name}", escapeHtml(SmartObj.Name));
 | 
					        Str = Str.replace("$SmartObj.Name", escapeHtml(SmartObj.Name));
 | 
				
			||||||
        Str = Str.replace(/{SmartObj.Num}/g, SmartObj.Num);
 | 
					        Str = Str.replace(/\$SmartObj.Num/g, SmartObj.Num);
 | 
				
			||||||
        Str = Str.replace(/{SmartObj.HTMLLength}/g, SmartObj.HTMLLength);
 | 
					        Str = Str.replace(/\$SmartObj.HTMLLength/g, SmartObj.HTMLLength);
 | 
				
			||||||
        if(SmartObj.Num)
 | 
					        if(SmartObj.Num)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Str = Str.replace("prod-card__link--connect", "myhidden");
 | 
					            Str = Str.replace("prod-card__link--connect", "myhidden");
 | 
				
			||||||
@@ -639,8 +640,8 @@ function SetExplorerData(Data)
 | 
				
			|||||||
    FirstCallDiagram = 0;
 | 
					    FirstCallDiagram = 0;
 | 
				
			||||||
    var StrVersion = " 0." + Data.VersionNum;
 | 
					    var StrVersion = " 0." + Data.VersionNum;
 | 
				
			||||||
    $("idBHeight").innerText = Data.MaxNumBlockDB;
 | 
					    $("idBHeight").innerText = Data.MaxNumBlockDB;
 | 
				
			||||||
    $("idBCurrent").innerText = Data.CurBlockNum;
 | 
					 | 
				
			||||||
    $("idBVersion").innerText = StrVersion;
 | 
					    $("idBVersion").innerText = StrVersion;
 | 
				
			||||||
 | 
					    $("idWVersion").innerText = WEB_WALLET_VERSION;
 | 
				
			||||||
    SetArrLog(Data.ArrLog);
 | 
					    SetArrLog(Data.ArrLog);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1030,14 +1031,14 @@ function ViewDapps()
 | 
				
			|||||||
function FillDappCard(Str,Item)
 | 
					function FillDappCard(Str,Item)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    CardMapList[Item.Num] = Item;
 | 
					    CardMapList[Item.Num] = Item;
 | 
				
			||||||
    Str = Str.replace(/{Item.Num}/g, Item.Num);
 | 
					    Str = Str.replace(/\$Item.Num/g, Item.Num);
 | 
				
			||||||
    Str = Str.replace("{Item.Name}", escapeHtml(Item.Name));
 | 
					    Str = Str.replace("$Item.Name", escapeHtml(Item.Name));
 | 
				
			||||||
    Str = Str.replace("{Item.Description}", escapeHtml(Item.Description));
 | 
					    Str = Str.replace("$Item.Description", escapeHtml(Item.Description));
 | 
				
			||||||
    Str = Str.replace("{Item.Owner}", Item.Owner);
 | 
					    Str = Str.replace("$Item.Owner", Item.Owner);
 | 
				
			||||||
    if(!Item.TokenGenerate)
 | 
					    if(!Item.TokenGenerate)
 | 
				
			||||||
        Str = Str.replace("dapp-modal__ok-token", "myhidden");
 | 
					        Str = Str.replace("dapp-modal__ok-token", "myhidden");
 | 
				
			||||||
    Str = Str.replace(/{Item.HTMLLength}/g, Item.HTMLLength);
 | 
					    Str = Str.replace(/\$Item.HTMLLength/g, Item.HTMLLength);
 | 
				
			||||||
    Str = Str.replace("{Item.IconPath}", RetIconPath(Item, 0));
 | 
					    Str = Str.replace("$item.iconpath", "src='" + RetIconPath(Item, 0) + "'");
 | 
				
			||||||
    return Str;
 | 
					    return Str;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1054,8 +1055,8 @@ function OpenDappCard(Num)
 | 
				
			|||||||
    if(!Item)
 | 
					    if(!Item)
 | 
				
			||||||
        return ;
 | 
					        return ;
 | 
				
			||||||
    var Str = FillDappCard(StrDappCardTemplate, Item);
 | 
					    var Str = FillDappCard(StrDappCardTemplate, Item);
 | 
				
			||||||
    Str = Str.replace("{Item.Account}", RetBaseAccount(Item));
 | 
					    Str = Str.replace("$Item.Account", RetBaseAccount(Item));
 | 
				
			||||||
    Str = Str.replace("{Item.BlockNum}", RetOpenBlock(Item.BlockNum, 2));
 | 
					    Str = Str.replace("$Item.BlockNum", RetOpenBlock(Item.BlockNum, 2));
 | 
				
			||||||
    Str = FillDappCategory(Str, Item, 1);
 | 
					    Str = FillDappCategory(Str, Item, 1);
 | 
				
			||||||
    Str = FillDappCategory(Str, Item, 2);
 | 
					    Str = FillDappCategory(Str, Item, 2);
 | 
				
			||||||
    Str = FillDappCategory(Str, Item, 3);
 | 
					    Str = FillDappCategory(Str, Item, 3);
 | 
				
			||||||
@@ -1077,7 +1078,7 @@ function FillDappCategory(Str,Item,Num)
 | 
				
			|||||||
    var Value = Item["Category" + Num];
 | 
					    var Value = Item["Category" + Num];
 | 
				
			||||||
    if(Value && MapCategory[Value])
 | 
					    if(Value && MapCategory[Value])
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Str = Str.replace("{Item.Category" + Num + "}", MapCategory[Value]);
 | 
					        Str = Str.replace("$Item.Category" + Num, MapCategory[Value]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -1199,7 +1200,7 @@ function InitLangItems()
 | 
				
			|||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            if(!Text)
 | 
					            if(!Text)
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            if(Text.substr(0, 1) === "{")
 | 
					            if(Text.substr(0, 1) === "$")
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            if(Text.toUpperCase() == Text.toLowerCase())
 | 
					            if(Text.toUpperCase() == Text.toLowerCase())
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
@@ -1266,31 +1267,32 @@ LangMap["RUS"] = {"TERA WALLET":"TERA КОШЕЛЕК", "Generate key":"Сген
 | 
				
			|||||||
    "Save key":"Сохран.", "+ CREATE A NEW ACCOUNT":"+ СОЗДАТЬ НОВЫЙ СЧЕТ", "Create account":"Создать счет", "Send":"Отправить",
 | 
					    "Save key":"Сохран.", "+ CREATE A NEW ACCOUNT":"+ СОЗДАТЬ НОВЫЙ СЧЕТ", "Create account":"Создать счет", "Send":"Отправить",
 | 
				
			||||||
    "CONFIRM":"Подтверждение", "Accounts":"Счета", "Account(s)":"Счет(а,ов)", "Blocks and Tx":"Блоки и Транзакции", "Counters":"Показатели",
 | 
					    "CONFIRM":"Подтверждение", "Accounts":"Счета", "Account(s)":"Счет(а,ов)", "Blocks and Tx":"Блоки и Транзакции", "Counters":"Показатели",
 | 
				
			||||||
    "Open DApp":"Открыть Дапп", "Back":"Назад", "Delete":"Удалить", "Save to book":"Сохранить в книгу", "Choose":"Выбрать", "RECONNECT":"КОННЕКТ",
 | 
					    "Open DApp":"Открыть Дапп", "Back":"Назад", "Delete":"Удалить", "Save to book":"Сохранить в книгу", "Choose":"Выбрать", "RECONNECT":"КОННЕКТ",
 | 
				
			||||||
    "DApps":"ДАппс", "ID":"ИД", "Amount":"Величина", "Cur":"Вал", "Name":"Имя", "PubKey":"Пуб.ключ", "Operation":"Операция", "Smart":"Смарт",
 | 
					    "DApps":"DApps", "ID":"ИД", "Amount":"Величина", "Cur":"Вал", "Name":"Имя", "PubKey":"Пуб.ключ", "Operation":"Операция", "Smart":"Смарт",
 | 
				
			||||||
    "Block Num":"Ном блока", "Num":"Ном", "Date":"Дата", "Data Hash":"Хеш данных", "PowHash":"Хеш сложности", "Block Hash":"Хеш блока",
 | 
					    "Block Num":"Ном блока", "Num":"Ном", "Date":"Дата", "Data Hash":"Хеш данных", "PowHash":"Хеш сложности", "Block Hash":"Хеш блока",
 | 
				
			||||||
    "Bytes":"Байт", "Pow":"Сложн", "Miner":"Майнер", "(secret)":"(секрет)", "Show":"Показать", "TERA":"TERA", "Blockchain height:":"Высота блокчейна:",
 | 
					    "Bytes":"Байт", "Pow":"Сложн", "Miner":"Майнер", "(secret)":"(секрет)", "Show":"Показать", "TERA":"TERA", "Blockchain height:":"Высота блокчейна:",
 | 
				
			||||||
    "Current create:":"Текущий блок:", "Protocol ver:":"Версия протокола:", "ID: {Item.Num}":"ИД: {Item.Num}", "Token generate":"Генерация токенов",
 | 
					    "Current create:":"Текущий блок:", "Protocol ver:":"Версия протокола:", "ID: $Item.Num":"ИД: $Item.Num", "Token generate":"Генерация токенов",
 | 
				
			||||||
    "ACCOUNTS":"СЧЕТА", "SEND":"ПОСЛАТЬ", "DAPPS":"ДАППС", "EXPLORER":"ПРОСМ", "ATTENTION: Before using the wallet, save the private key.":"ВНИМАНИЕ: Перед использованием кошелька сохраните приватный ключ",
 | 
					    "ACCOUNTS":"СЧЕТА", "SEND":"ОТПРАВИТЬ", "DAPPS":"ДАППС", "EXPLORER":"ПРОСМ", "ATTENTION: Before using the wallet, save the private key.":"ВНИМАНИЕ: Перед использованием кошелька сохраните приватный ключ",
 | 
				
			||||||
    "Web-site":"Веб-сайт", "Bitcointalk":"Bitcointalk", "Twitter":"Твиттер", "Telegram":"Телеграм", "Discord":"Дискорд", "QQchat":"QQchat",
 | 
					    "Web-site":"Веб-сайт", "Bitcointalk":"Bitcointalk", "Twitter":"Твиттер", "Telegram":"Телеграм", "Discord":"Дискорд", "QQchat":"QQchat",
 | 
				
			||||||
    "Buy/sell/mine TERA":"Купить/Продать", "+ CREATE NEW":"+ СОЗДАТЬ", "Confirm Transaction":"Подтверждение транзакции", "CREATE DAPPS":"СОЗДАТЬ",
 | 
					    "Buy/sell/mine TERA":"Купить/Продать", "+ CREATE NEW":"+ СОЗДАТЬ", "Confirm Transaction":"Подтверждение транзакции", "CREATE DAPPS":"СОЗДАТЬ",
 | 
				
			||||||
    "Set pass":"Установить пароль", "Unlock":"Разблокировать", "Entrance to sub-wallet":"Войти в под-кошелек", "Public name":"Публичное имя",
 | 
					    "Set pass":"Установить пароль", "Unlock":"Разблокировать", "Entrance to sub-wallet":"Войти в под-кошелек", "Public name":"Публичное имя",
 | 
				
			||||||
    "Currency":"Валюта", "Pay to:":"Получатель:", "Amount:":"Сумма:", "Description:":"Описание:", "Welcome to TERA Wallet":"Добро пожаловать в кошелек TERA",
 | 
					    "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":"Безопасность вашего кошелька",
 | 
					    "Sending coins":"Отправка монет", "Decentralized applications (dApps)":"Децентрализованные приложения (DApps)", "Secure your wallet":"Безопасность вашего кошелька",
 | 
				
			||||||
    "Wallet is secured":"Установлен пароль", "Total":"Всего", "Item.Name":"Item.Name", "You have no accounts yet":"У вас нет ни одного счета",
 | 
					    "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":"Установите пароль для безопасности",
 | 
					    "Wait 10-15 sec":"Ждите 10-15 сек", "Creating your account":"Идет создание вашего счета", "From:":"Отправитель:", "Set a password for protect entry":"Установите пароль для безопасности",
 | 
				
			||||||
    "Enter password to unlock wallet":"Введите пароль для разблокировки кошелька", "From ID:":"Отправитель:", "Pay to ID:":"Получатель:",
 | 
					    "Enter password to unlock wallet":"Введите пароль для разблокировки кошелька", "From ID:":"Отправитель:", "Pay to ID:":"Получатель:",
 | 
				
			||||||
    "Account":"Счет", "Owner":"Владелец", "Block num":"Ном блока", "Private key (secret)":"Приватный ключ (секретно)", "Load key":"Загруз.",
 | 
					    "Account":"Счет", "Owner":"Владелец", "Block num":"Ном блока", "Private key (secret)":"Приватный ключ (секретно)", "Load key":"Загруз.",
 | 
				
			||||||
    "Create your first account and start using TERA":"Создайте свой первый счет и начните использовать TERA", "0 Accounts":"0 Счетов",
 | 
					    "Create your first account and start using TERA":"Создайте свой первый счет и начните использовать TERA", "0 Accounts":"0 Счетов",
 | 
				
			||||||
    "OWNER: {Item.Owner}":"Владелец: {Item.Owner}", "More info":"Информация", "Public key":"Публичный ключ", "Enter number of dapp":"Введите номер Даппа",
 | 
					    "OWNER: {Item.Owner}":"Владелец: {Item.Owner}", "More info":"Информация", "Public key":"Публичный ключ", "Enter number of dapp":"Введите номер Даппа",
 | 
				
			||||||
    "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.":"Введите номер Даппа, который будет добавлен в ваш аккаунт. Внимание убедитесь, что Вы доверяете ему, в противном случае вы можете потерять все средства на этом счете."};
 | 
					    "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.":"Введите номер Даппа, который будет добавлен в ваш аккаунт. Внимание убедитесь, что Вы доверяете ему, в противном случае вы можете потерять все средства на этом счете.",
 | 
				
			||||||
 | 
					    "Sending Tx":"Отправка транзакции", };
 | 
				
			||||||
LangMap["简体中文"] = {"TERA WALLET":"TERA 钱包", "Generate key":"生成私钥", "OK":"OK", "Cancel":"取消", "Edit":"编辑", "Save key":"保存私钥",
 | 
					LangMap["简体中文"] = {"TERA WALLET":"TERA 钱包", "Generate key":"生成私钥", "OK":"OK", "Cancel":"取消", "Edit":"编辑", "Save key":"保存私钥",
 | 
				
			||||||
    "+ CREATE A NEW ACCOUNT":"+ 新建账号", "Create account":"创建账号", "Send":"发送", "SEND":"转账", "CONFIRM":"确认", "Accounts":"账号", "Account(s)":"账号",
 | 
					    "+ CREATE A NEW ACCOUNT":"+ 新建账号", "Create account":"创建账号", "Send":"发送", "SEND":"转账", "CONFIRM":"确认", "Accounts":"账号", "Account(s)":"账号",
 | 
				
			||||||
    "Blocks and Tx":"区块和交易", "Counters":"状态统计", "Open DApp":"打开DApp", "Back":"返回", "Delete":"删除", "Save to book":"保存到地址本", "Choose":"选择",
 | 
					    "Blocks and Tx":"区块和交易", "Counters":"状态统计", "Open DApp":"打开DApp", "Back":"返回", "Delete":"删除", "Save to book":"保存到地址本", "Choose":"选择",
 | 
				
			||||||
    "RECONNECT":"重连", "DApps":"DApps", "ID":"ID", "Amount":"余额", "Cur":"币种", "Name":"名称", "PubKey":"公钥", "Operation":"操作次数", "Smart":"DApp",
 | 
					    "RECONNECT":"重连", "DApps":"DApps", "ID":"ID", "Amount":"余额", "Cur":"币种", "Name":"名称", "PubKey":"公钥", "Operation":"操作次数", "Smart":"DApp",
 | 
				
			||||||
    "Block Num":"区块编号", "Num":"编号", "Date":"日期", "Data Hash":"数据哈希", "PowHash":"Pow哈希", "Block Hash":"区块哈希", "Bytes":"字节", "Pow":"Pow",
 | 
					    "Block Num":"区块编号", "Num":"编号", "Date":"日期", "Data Hash":"数据哈希", "PowHash":"Pow哈希", "Block Hash":"区块哈希", "Bytes":"字节", "Pow":"Pow",
 | 
				
			||||||
    "Miner":"矿工", "(secret)":"(机密)", "Show":"显示", "TERA":"TERA", "Blockchain height:":"区块高度:", "Current create:":"最近区块:", "Protocol ver:":"协议版本:",
 | 
					    "Miner":"矿工", "(secret)":"(机密)", "Show":"显示", "TERA":"TERA", "Blockchain height:":"区块高度:", "Current create:":"最近区块:", "Protocol ver:":"协议版本:",
 | 
				
			||||||
    "ID: {Item.Num}":"ID: {Item.Num}", "Token generate":"生成代币", "ACCOUNTS":"账号", "DAPPS":"DAPPS", "EXPLORER":"浏览器", "ATTENTION: Before using the wallet, save the private key.":"注意: 使用钱包前,务必保存好私钥。",
 | 
					    "Token generate":"生成代币", "ACCOUNTS":"账号", "DAPPS":"DAPPS", "EXPLORER":"浏览器", "ATTENTION: Before using the wallet, save the private key.":"注意: 使用钱包前,务必保存好私钥。",
 | 
				
			||||||
    "Web-site":"官网", "Bitcointalk":"创世贴", "Twitter":"推特", "Telegram":"电报", "Discord":"Discord", "QQchat":"QQ群", "Buy/sell/mine TERA":"TERA 交易/挖矿",
 | 
					    "Web-site":"官网", "Bitcointalk":"创世贴", "Twitter":"推特", "Telegram":"电报", "Discord":"Discord", "QQchat":"QQ群", "Buy/sell/mine TERA":"TERA 交易/挖矿",
 | 
				
			||||||
    "+ CREATE NEW":"+ 新建", "Confirm Transaction":"确认交易", "CREATE DAPPS":"创建DAPPS", "Set pass":"设置密码", "Unlock":"解锁", "Entrance to sub-wallet":"进入子钱包",
 | 
					    "+ CREATE NEW":"+ 新建", "Confirm Transaction":"确认交易", "CREATE DAPPS":"创建DAPPS", "Set pass":"设置密码", "Unlock":"解锁", "Entrance to sub-wallet":"进入子钱包",
 | 
				
			||||||
    "Public name":"名称", "Currency":"币种", "Pay to:":"收款:", "Amount:":"金额:", "Description:":"描述:", "Welcome to TERA Wallet":"欢迎使用TERA钱包",
 | 
					    "Public name":"名称", "Currency":"币种", "Pay to:":"收款:", "Amount:":"金额:", "Description:":"描述:", "Welcome to TERA Wallet":"欢迎使用TERA钱包",
 | 
				
			||||||
@@ -1307,9 +1309,8 @@ LangMap["한글"] = {"TERA WALLET":"TERA 지갑", "Generate key":"개인 키 생
 | 
				
			|||||||
    "Choose":"선택", "RECONNECT":"다시 연결", "DApps":"DApps", "ID":"ID", "Amount":"잔금", "Cur":"화폐", "Name":"이름", "PubKey":"공공키", "Operation":"조작 횟수",
 | 
					    "Choose":"선택", "RECONNECT":"다시 연결", "DApps":"DApps", "ID":"ID", "Amount":"잔금", "Cur":"화폐", "Name":"이름", "PubKey":"공공키", "Operation":"조작 횟수",
 | 
				
			||||||
    "Smart":"DApp", "Block Num":"블록 번호", "Num":"번호", "Date":"날짜", "Data Hash":"데이터 하희", "PowHash":"Pow하희", "Block Hash":"블록 하희",
 | 
					    "Smart":"DApp", "Block Num":"블록 번호", "Num":"번호", "Date":"날짜", "Data Hash":"데이터 하희", "PowHash":"Pow하희", "Block Hash":"블록 하희",
 | 
				
			||||||
    "Bytes":"바이트", "Pow":"Pow", "Miner":"바이트", "(secret)":"(비밀)", "Show":"쇼", "TERA":"TERA", "Blockchain height:":"블록높이:", "Current create:":"최근 블록:",
 | 
					    "Bytes":"바이트", "Pow":"Pow", "Miner":"바이트", "(secret)":"(비밀)", "Show":"쇼", "TERA":"TERA", "Blockchain height:":"블록높이:", "Current create:":"최근 블록:",
 | 
				
			||||||
    "Protocol ver:":"프로토콜 버전:", "ID: {Item.Num}":"ID: {Item.Num}", "Token generate":"생성대폐", "ACCOUNTS":"계정", "SEND":"발송", "DAPPS":"DAPPS",
 | 
					    "Protocol ver:":"프로토콜 버전:", "Token generate":"생성대폐", "ACCOUNTS":"계정", "SEND":"발송", "DAPPS":"DAPPS", "EXPLORER":"브라우저", "ATTENTION: Before using the wallet, save the private key.":"주의: 지갑을 사용하기 전에 반드시 개인 키를 저장해야 한다.",
 | 
				
			||||||
    "EXPLORER":"브라우저", "ATTENTION: Before using the wallet, save the private key.":"주의: 지갑을 사용하기 전에 반드시 개인 키를 저장해야 한다.", "Web-site":"사이트",
 | 
					    "Web-site":"사이트", "Bitcointalk":"비트 화폐포럼", "Twitter":"트위터", "Telegram":"전보", "Discord":"Discord", "QQchat":"QQ ", "Buy/sell/mine TERA":"TERA거래 /채광",
 | 
				
			||||||
    "Bitcointalk":"비트 화폐포럼", "Twitter":"트위터", "Telegram":"전보", "Discord":"Discord", "QQchat":"QQ ", "Buy/sell/mine TERA":"TERA거래 /채광",
 | 
					 | 
				
			||||||
    "+ CREATE NEW":"+신건", "Confirm Transaction":"거래 확인", "CREATE DAPPS":" DAPPS만들기", "Set pass":"비밀번호 설정", "Unlock":"잠금 풀기", "Entrance to sub-wallet":"부속 지갑 들어가기",
 | 
					    "+ CREATE NEW":"+신건", "Confirm Transaction":"거래 확인", "CREATE DAPPS":" DAPPS만들기", "Set pass":"비밀번호 설정", "Unlock":"잠금 풀기", "Entrance to sub-wallet":"부속 지갑 들어가기",
 | 
				
			||||||
    "Public name":"이름", "Currency":"화폐", "Pay to:":"지불:", "Amount:":"수량:", "Description:":"묘사:", "Welcome to TERA Wallet":"TERA 지갑을 환영합니다",
 | 
					    "Public name":"이름", "Currency":"화폐", "Pay to:":"지불:", "Amount:":"수량:", "Description:":"묘사:", "Welcome to TERA Wallet":"TERA 지갑을 환영합니다",
 | 
				
			||||||
    "Edit your wallet":"지갑 편집", "Key settings":"개인 키 설정", "KEY SETTINGS":"개인 키 설정", "Create an account":"계정 만들기", "Sending coins":"동전 보내기",
 | 
					    "Edit your wallet":"지갑 편집", "Key settings":"개인 키 설정", "KEY SETTINGS":"개인 키 설정", "Create an account":"계정 만들기", "Sending coins":"동전 보내기",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,9 +12,8 @@ var MIN_VERSION = 1114;
 | 
				
			|||||||
var COUNT_BLOCK_PROOF = 300;
 | 
					var COUNT_BLOCK_PROOF = 300;
 | 
				
			||||||
var MIN_SUM_POWER = 0;
 | 
					var MIN_SUM_POWER = 0;
 | 
				
			||||||
var MainServer = undefined;
 | 
					var MainServer = undefined;
 | 
				
			||||||
var MaxConnectedCount = 10;
 | 
					var MaxConnectedCount = 50;
 | 
				
			||||||
var TIME_LENGTH_CONNECT_ALL = 2 * 1000;
 | 
					var TIME_LENGTH_CONNECT_ALL = 2 * 1000;
 | 
				
			||||||
var MAX_TIME_FOR_CONNECT = 1000;
 | 
					 | 
				
			||||||
var StartTimeConnecting = 0;
 | 
					var StartTimeConnecting = 0;
 | 
				
			||||||
var ConnectedCount = 0;
 | 
					var ConnectedCount = 0;
 | 
				
			||||||
var NETWORK = "TERA-MAIN";
 | 
					var NETWORK = "TERA-MAIN";
 | 
				
			||||||
@@ -27,8 +26,7 @@ var ServerMainMap = {"127.0.0.1":{"ip":"127.0.0.1", "port":80, "Name":"LOCAL"},
 | 
				
			|||||||
        "port":80, "Name":"SUPPORT2", "System":1}, "t1.teraexplorer.com":{"ip":"t1.teraexplorer.com", "port":80, "Name":"t1.teraexplorer.com",
 | 
					        "port":80, "Name":"SUPPORT2", "System":1}, "t1.teraexplorer.com":{"ip":"t1.teraexplorer.com", "port":80, "Name":"t1.teraexplorer.com",
 | 
				
			||||||
        "System":1}, };
 | 
					        "System":1}, };
 | 
				
			||||||
var ServerTestMap = {"127.0.0.1":{"ip":"127.0.0.1", "port":80, "Name":"LOCAL"}, "dappsgate.com":{"ip":"dappsgate.com", "port":88,
 | 
					var ServerTestMap = {"127.0.0.1":{"ip":"127.0.0.1", "port":80, "Name":"LOCAL"}, "dappsgate.com":{"ip":"dappsgate.com", "port":88,
 | 
				
			||||||
        "Name":"SUPPORT1", "System":1}, "terablockchain.org":{"ip":"terablockchain.org", "port":88, "Name":"SUPPORT2", "System":1},
 | 
					        "Name":"SUPPORT1", "System":1}, };
 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
function StartWebWallet()
 | 
					function StartWebWallet()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -65,16 +63,21 @@ function OnInitWebWallet()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function SaveServerMap()
 | 
					function SaveServerMap()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    var arr = [];
 | 
					    var Arr = GetArrFromServerMap();
 | 
				
			||||||
    for(var key in ServerMap)
 | 
					    Arr.sort(function (a,b)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        var Item = ServerMap[key];
 | 
					        if(a.SumPower === b.SumPower)
 | 
				
			||||||
        if(Item.SumPower >= MIN_SUM_POWER)
 | 
					            return a.DeltaTime - b.DeltaTime;
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            return b.SumPower - a.SumPower;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    var Arr2 = [];
 | 
				
			||||||
 | 
					    for(var i = 0; i < Math.min(Arr.length, MaxConnectedCount); i++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
            arr.push({ip:Item.ip, port:Item.port});
 | 
					        var Item = Arr[i];
 | 
				
			||||||
 | 
					        Arr2.push({ip:Item.ip, port:Item.port, Stat:Item.Stat, t:Item.DeltaTime});
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    }
 | 
					    Storage.setItem(NETWORK + "NodesArrayList", JSON.stringify(Arr2));
 | 
				
			||||||
    Storage.setItem(NETWORK + "NodesArrayList", JSON.stringify(arr));
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function SetStatus(Str)
 | 
					function SetStatus(Str)
 | 
				
			||||||
@@ -167,6 +170,26 @@ function DoNodeList(Item)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function GetArrFromServerMap()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    var Arr = [];
 | 
				
			||||||
 | 
					    for(var key in ServerMap)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        var Item = ServerMap[key];
 | 
				
			||||||
 | 
					        if(Item.port)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(!Item.SumPower)
 | 
				
			||||||
 | 
					                Item.SumPower = 0;
 | 
				
			||||||
 | 
					            if(!Item.DeltaTime)
 | 
				
			||||||
 | 
					                Item.DeltaTime = 10000;
 | 
				
			||||||
 | 
					            if(!Item.Stat)
 | 
				
			||||||
 | 
					                Item.Stat = 0;
 | 
				
			||||||
 | 
					            Arr.push(Item);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return Arr;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
var idTimeFindLider = 0;
 | 
					var idTimeFindLider = 0;
 | 
				
			||||||
var CountDoWalletInfoAll = 0;
 | 
					var CountDoWalletInfoAll = 0;
 | 
				
			||||||
var CountDoWalletInfoGet = 0;
 | 
					var CountDoWalletInfoGet = 0;
 | 
				
			||||||
@@ -175,15 +198,7 @@ function LoopWalletInfo()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    CountDoWalletInfoAll = 0;
 | 
					    CountDoWalletInfoAll = 0;
 | 
				
			||||||
    CountDoWalletInfoGet = 0;
 | 
					    CountDoWalletInfoGet = 0;
 | 
				
			||||||
    var Arr = [];
 | 
					    var Arr = GetArrFromServerMap();
 | 
				
			||||||
    for(var key in ServerMap)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        var Item = ServerMap[key];
 | 
					 | 
				
			||||||
        if(Item.port && Item.DeltaTime < MAX_TIME_FOR_CONNECT)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Arr.push(Item);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    Arr.sort(function (a,b)
 | 
					    Arr.sort(function (a,b)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        a.DeltaTime - b.DeltaTime;
 | 
					        a.DeltaTime - b.DeltaTime;
 | 
				
			||||||
@@ -215,10 +230,10 @@ function DoWalletInfo(Item)
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            Item.Name = Data.NODES_NAME;
 | 
					            Item.Name = Data.NODES_NAME;
 | 
				
			||||||
            Item.GetWalletInfo = 1;
 | 
					            Item.GetWalletInfo = 1;
 | 
				
			||||||
            Item.DeltaTime = Date.now() - Item.StartTime;
 | 
					            Item.DeltaTime2 = Date.now() - Item.StartTime;
 | 
				
			||||||
            Item.BlockChain = Data.BlockChain;
 | 
					            Item.BlockChain = Data.BlockChain;
 | 
				
			||||||
            Item.MaxNumBlockDB = Data.MaxNumBlockDB;
 | 
					            Item.MaxNumBlockDB = Data.MaxNumBlockDB;
 | 
				
			||||||
            SetStatus("Get: " + Item.ip + ":" + Item.port + " t:" + Item.DeltaTime);
 | 
					            SetStatus("Get: " + Item.ip + ":" + Item.port + " t:" + Item.DeltaTime2);
 | 
				
			||||||
            CountDoWalletInfoGet++;
 | 
					            CountDoWalletInfoGet++;
 | 
				
			||||||
            if(idTimeFindLider && CountDoWalletInfoAll && CountDoWalletInfoGet >= 2 && CountDoWalletInfoGet / CountDoWalletInfoAll > 0.7)
 | 
					            if(idTimeFindLider && CountDoWalletInfoAll && CountDoWalletInfoGet >= 2 && CountDoWalletInfoGet / CountDoWalletInfoAll > 0.7)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -265,14 +280,15 @@ function FindLider()
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    Arr.sort(function (a,b)
 | 
					    Arr.sort(function (a,b)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return a.DeltaTime - b.DeltaTime;
 | 
					        return a.DeltaTime2 - b.DeltaTime2;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    for(var i = 0; i < Arr.length; i++)
 | 
					    for(var i = 0; i < Arr.length; i++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        var Item = Arr[i];
 | 
					        var Item = Arr[i];
 | 
				
			||||||
        if(Item.SumPower === MaxKey)
 | 
					        if(Item.SumPower === MaxKey)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            SetStatus("Find " + Item.ip + ":" + Item.port + " pow=" + Item.SumPower + "  t:" + Item.DeltaTime + " ms");
 | 
					            Item.Stat++;
 | 
				
			||||||
 | 
					            SetStatus("Find " + Item.ip + ":" + Item.port + " pow=" + Item.SumPower + "  t:" + Item.DeltaTime2 + " ms");
 | 
				
			||||||
            MainServer = Item;
 | 
					            MainServer = Item;
 | 
				
			||||||
            SaveServerMap();
 | 
					            SaveServerMap();
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1632,7 +1632,7 @@
 | 
				
			|||||||
        <DIV id="idNetworkView" style="display: none">
 | 
					        <DIV id="idNetworkView" style="display: none">
 | 
				
			||||||
            <H3>Network connections:</H3>
 | 
					            <H3>Network connections:</H3>
 | 
				
			||||||
            <INPUT type="checkbox" id="idUseDirectIP">Run server and use direct IP:<BR>
 | 
					            <INPUT type="checkbox" id="idUseDirectIP">Run server and use direct IP:<BR>
 | 
				
			||||||
            IP:<INPUT  maxlength="16" id="idIP"> Port:<INPUT maxlength="9" id="idPort"><BR>
 | 
					            IP:<INPUT  maxlength="20" id="idIP"> Port:<INPUT maxlength="9" id="idPort"><BR>
 | 
				
			||||||
            <!--<INPUT type="checkbox" id="idUseIncomeGrayIP">Allow connection users without a direct ip:<BR>-->
 | 
					            <!--<INPUT type="checkbox" id="idUseIncomeGrayIP">Allow connection users without a direct ip:<BR>-->
 | 
				
			||||||
            <!--White list nodes (HEX-format):<BR>-->
 | 
					            <!--White list nodes (HEX-format):<BR>-->
 | 
				
			||||||
            <TEXTAREA id="idNodeWhiteList" rows="4" cols="100" style="display: none"> </TEXTAREA>
 | 
					            <TEXTAREA id="idNodeWhiteList" rows="4" cols="100" style="display: none"> </TEXTAREA>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,6 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <h1 class="welcome__title title">Welcome to TERA Wallet</h1>
 | 
					        <h1 class="welcome__title title">Welcome to TERA Wallet</h1>
 | 
				
			||||||
        <p><a onclick="SelectTab('TabKeySet')" class="pointer">ATTENTION: Before using the wallet, save the private key.</a></p>
 | 
					        <p><a onclick="SelectTab('TabKeySet')" class="pointer">ATTENTION: Before using the wallet, save the private key.</a></p>
 | 
				
			||||||
        <!--<a class="welcome__link btn" onclick="SelectTab('TabAccounts')">Open wallet</a>-->
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ul id="idStableScroll" align='center' class="social-list">
 | 
					        <ul id="idStableScroll" align='center' class="social-list">
 | 
				
			||||||
            <li class="social-list__item"><a href="https://terafoundation.org/">Web-site</a></li>
 | 
					            <li class="social-list__item"><a href="https://terafoundation.org/">Web-site</a></li>
 | 
				
			||||||
@@ -85,7 +84,6 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="wallet-settings__field key-field">
 | 
					        <div class="wallet-settings__field key-field">
 | 
				
			||||||
            <p class="key-field__title">Private key (secret)</p>
 | 
					            <p class="key-field__title">Private key (secret)</p>
 | 
				
			||||||
            <!--<button class="key-field__btn btn-no-bg" onclick="pasteKey(event, 'idPrivKeyEdit')">Paste</button>-->
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <textarea name="private-key" id="idPrivKeyEdit" placeholder="Insert your private key or generate a new key below..." class="key-field__textarea" oninput="OnEditPrivKey()">
 | 
					            <textarea name="private-key" id="idPrivKeyEdit" placeholder="Insert your private key or generate a new key below..." class="key-field__textarea" oninput="OnEditPrivKey()">
 | 
				
			||||||
            </textarea>
 | 
					            </textarea>
 | 
				
			||||||
@@ -100,14 +98,12 @@
 | 
				
			|||||||
            <button class="btn wallet-settings__btn-270" id="okEditBtn" style="margin-bottom: 15px;" onclick="OnPrivKeyOK()">OK</button>
 | 
					            <button class="btn wallet-settings__btn-270" id="okEditBtn" style="margin-bottom: 15px;" onclick="OnPrivKeyOK()">OK</button>
 | 
				
			||||||
            <button class="btn btn--white wallet-settings__btn-270" id="cancelEditBtn" style="margin-bottom: 15px;" onclick="OnPrivKeyCancel()">Cancel</button>
 | 
					            <button class="btn btn--white wallet-settings__btn-270" id="cancelEditBtn" style="margin-bottom: 15px;" onclick="OnPrivKeyCancel()">Cancel</button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <!--<button class="btn wallet-settings__go-btn" onclick="SelectTab('TabAccounts')">Go to accounts</button>-->
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    </section>
 | 
					    </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <section id="TabKeySet" class="wallet-settings wallet-settings--info" style="display: none;">
 | 
					    <section id="TabKeySet" class="wallet-settings wallet-settings--info" style="display: none;">
 | 
				
			||||||
        <div class="wallet-settings__title-wrap">
 | 
					        <div class="wallet-settings__title-wrap">
 | 
				
			||||||
            <!--<a class="back-link" onclick="SelectTab('TabWelcome')"><span>Back</span></a>-->
 | 
					 | 
				
			||||||
            <h2 class="wallet-settings__title title">Key settings</h2>
 | 
					            <h2 class="wallet-settings__title title">Key settings</h2>
 | 
				
			||||||
            <a class="modal-lock pointer" id="idPasswordEdit" onclick="openModal('password-modal-set');"><svg width="14" height="18" viewBox="0 0 14 18" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
					            <a class="modal-lock pointer" id="idPasswordEdit" onclick="openModal('password-modal-set');"><svg width="14" height="18" viewBox="0 0 14 18" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
				
			||||||
                <path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 5V10H10.5H12H13C13.5523 10 14 10.4477 14 11V17C14 17.5523 13.5523 18 13 18H1C0.447716 18 0 17.5523 0 17V11C0 10.4477 0.447715 10 1 10H2V5C2 2.23858 4.23858 0 7 0C9.76142 0 12 2.23858 12 5V7H10.5V5C10.5 3.067 8.933 1.5 7 1.5C5.067 1.5 3.5 3.067 3.5 5Z" fill="var(--fill--password)" fill-opacity="0.2"/>
 | 
					                <path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 5V10H10.5H12H13C13.5523 10 14 10.4477 14 11V17C14 17.5523 13.5523 18 13 18H1C0.447716 18 0 17.5523 0 17V11C0 10.4477 0.447715 10 1 10H2V5C2 2.23858 4.23858 0 7 0C9.76142 0 12 2.23858 12 5V7H10.5V5C10.5 3.067 8.933 1.5 7 1.5C5.067 1.5 3.5 3.067 3.5 5Z" fill="var(--fill--password)" fill-opacity="0.2"/>
 | 
				
			||||||
@@ -210,29 +206,29 @@
 | 
				
			|||||||
                <li class="prod-list__item prod-card prod-card--line prod-card--switch find--switch" id="AccCardTemplate">
 | 
					                <li class="prod-list__item prod-card prod-card--line prod-card--switch find--switch" id="AccCardTemplate">
 | 
				
			||||||
                    <div class="prod-card__first-line">
 | 
					                    <div class="prod-card__first-line">
 | 
				
			||||||
                        <span class="hidden id-sign">ID: </span>
 | 
					                        <span class="hidden id-sign">ID: </span>
 | 
				
			||||||
                        <a target='_blank' class="prod-card__id prod-card__id--mobile">{Item.Num}</a>
 | 
					                        <a target='_blank' class="prod-card__id prod-card__id--mobile">$Item.Num</a>
 | 
				
			||||||
                        <a onclick="OpenHistoryPage({Item.Num})" class="prod-card__id prod-card__id--mobile-active pointer">{Item.Num}</a>
 | 
					                        <a onclick="OpenHistoryPage($Item.Num)" class="prod-card__id prod-card__id--mobile-active pointer">$Item.Num</a>
 | 
				
			||||||
                        <a onclick="OpenHistoryPage({Item.Num})" target='_blank' class="prod-card__id prod-card__id--desktop pointer">{Item.Num}</a>
 | 
					                        <a onclick="OpenHistoryPage($Item.Num)" target='_blank' class="prod-card__id prod-card__id--desktop pointer">$Item.Num</a>
 | 
				
			||||||
                        <div class="prod-card__heading">
 | 
					                        <div class="prod-card__heading">
 | 
				
			||||||
                            <span class="prod-card__coins-count">{Value.SumCOIN}<sup>{Value.SumCENT}</sup><br>
 | 
					                            <span class="prod-card__coins-count">$Value.SumCOIN<sup>$Value.SumCENT</sup><br>
 | 
				
			||||||
                                <span class="light-grey-text small-text mob-hidden">{Value.CurrencyName}</span>
 | 
					                                <span class="light-grey-text small-text mob-hidden">$Value.CurrencyName</span>
 | 
				
			||||||
                            </span>
 | 
					                            </span>
 | 
				
			||||||
                            <span class="prod-card__currency prod-card__currency--with-dot">
 | 
					                            <span class="prod-card__currency prod-card__currency--with-dot">
 | 
				
			||||||
                                <img src="{Value.CurrencyIconPath}" width="18" height="18" alt="">
 | 
					                                <img $value.currencyiconpath width="18" height="18" alt="">
 | 
				
			||||||
                            </span>
 | 
					                            </span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <span class="prod-card__descr light-grey-text">{Item.Name}</span>
 | 
					                        <span class="prod-card__descr light-grey-text">$Item.Name</span>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <div class="prod-card__footer">
 | 
					                    <div class="prod-card__footer">
 | 
				
			||||||
                        <div class="prod-card__footer-wrap" >
 | 
					                        <div class="prod-card__footer-wrap" >
 | 
				
			||||||
                            <a onclick="OpenDapps({SmartObj.Num},{Item.Num},{SmartObj.HTMLLength})" class="prod-card__link prod-card__link--dapp">
 | 
					                            <a onclick="OpenDapps($SmartObj.Num,$Item.Num,$SmartObj.HTMLLength)" class="prod-card__link prod-card__link--dapp">
 | 
				
			||||||
                                <img src="{SmartObj.IconPath}" alt="." width="32" height="32">
 | 
					                                <img $smartobj.iconpath alt="." width="32" height="32">
 | 
				
			||||||
                                <span  class="prod-card__dapp-name mob-hidden">{SmartObj.Name}</span>
 | 
					                                <span  class="prod-card__dapp-name mob-hidden">$SmartObj.Name</span>
 | 
				
			||||||
                            </a>
 | 
					                            </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            <a class="prod-card__link prod-card__link--connect" onclick="ConnectSmart({Item.Num})">
 | 
					                            <a class="prod-card__link prod-card__link--connect" onclick="ConnectSmart($Item.Num)">
 | 
				
			||||||
                                <svg class="prod-card__dapp-icon" width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
					                                <svg class="prod-card__dapp-icon" width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
				
			||||||
                                    <circle cx="15" cy="15" r="14.5" fill="white" fill-opacity="0.01" stroke="#F2F2F2"/>
 | 
					                                    <circle cx="15" cy="15" r="14.5" fill="white" fill-opacity="0.01" stroke="#F2F2F2"/>
 | 
				
			||||||
                                    <path d="M15.5 10H14.5V14.5H10V15.5H14.5V20H15.5V15.5H20V14.5H15.5V10Z" fill="#445368"/>
 | 
					                                    <path d="M15.5 10H14.5V14.5H10V15.5H14.5V20H15.5V15.5H20V14.5H15.5V10Z" fill="#445368"/>
 | 
				
			||||||
@@ -240,19 +236,19 @@
 | 
				
			|||||||
                                <span class="prod-card__dapp-text mob-hidden">Connect DApp...</span>
 | 
					                                <span class="prod-card__dapp-text mob-hidden">Connect DApp...</span>
 | 
				
			||||||
                            </a>
 | 
					                            </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            <button type="button" class="prod-card__drop-btn btn-no-bg mob-hidden" onclick="showMenu({Item.Num})" onblur="closeMenu({Item.Num})">
 | 
					                            <button type="button" class="prod-card__drop-btn btn-no-bg mob-hidden" onclick="showMenu($Item.Num)" onblur="closeMenu($Item.Num)">
 | 
				
			||||||
                                <svg width="4" height="16" viewBox="0 0 4 16" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
					                                <svg width="4" height="16" viewBox="0 0 4 16" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
				
			||||||
                                    <path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C3.5 2.82843 2.82843 3.5 2 3.5C1.17157 3.5 0.5 2.82843 0.5 2C0.5 1.17157 1.17157 0.5 2 0.5C2.82843 0.5 3.5 1.17157 3.5 2ZM3.5 8C3.5 8.82843 2.82843 9.5 2 9.5C1.17157 9.5 0.5 8.82843 0.5 8C0.5 7.17157 1.17157 6.5 2 6.5C2.82843 6.5 3.5 7.17157 3.5 8ZM2 15.5C2.82843 15.5 3.5 14.8284 3.5 14C3.5 13.1716 2.82843 12.5 2 12.5C1.17157 12.5 0.5 13.1716 0.5 14C0.5 14.8284 1.17157 15.5 2 15.5Z" fill="#445368"/>
 | 
					                                    <path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C3.5 2.82843 2.82843 3.5 2 3.5C1.17157 3.5 0.5 2.82843 0.5 2C0.5 1.17157 1.17157 0.5 2 0.5C2.82843 0.5 3.5 1.17157 3.5 2ZM3.5 8C3.5 8.82843 2.82843 9.5 2 9.5C1.17157 9.5 0.5 8.82843 0.5 8C0.5 7.17157 1.17157 6.5 2 6.5C2.82843 6.5 3.5 7.17157 3.5 8ZM2 15.5C2.82843 15.5 3.5 14.8284 3.5 14C3.5 13.1716 2.82843 12.5 2 12.5C1.17157 12.5 0.5 13.1716 0.5 14C0.5 14.8284 1.17157 15.5 2 15.5Z" fill="#445368"/>
 | 
				
			||||||
                                </svg>
 | 
					                                </svg>
 | 
				
			||||||
                            </button>
 | 
					                            </button>
 | 
				
			||||||
                            <div class="prod-card__dropdown" style="display: none;" id="idBt{Item.Num}">
 | 
					                            <div class="prod-card__dropdown" style="display: none;" id="idBt$Item.Num">
 | 
				
			||||||
                                <a class="editdapp" onclick="SetSmart({Item.Num},{SmartObj.Num})">Change dApp</a>
 | 
					                                <a class="editdapp" onclick="SetSmart($Item.Num,$SmartObj.Num)">Change dApp</a>
 | 
				
			||||||
                                <a class="editdapp" onclick="DelSmart({Item.Num},-1)">Disconnect dApp</a>
 | 
					                                <a class="editdapp" onclick="DelSmart($Item.Num,-1)">Disconnect dApp</a>
 | 
				
			||||||
                                <a onclick="DelAccount({Item.Num})">Hide account</a>
 | 
					                                <a onclick="DelAccount($Item.Num)">Hide account</a>
 | 
				
			||||||
                                <a onclick="RestoreAllAccounts()">Show All accounts</a>
 | 
					                                <a onclick="RestoreAllAccounts()">Show All accounts</a>
 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <a class="prod-card__footer-empty" style="display: none;" onclick="ConnectSmart({Item.Num},{SmartObj.Num})"><span class="mob-hidden">Connect dapp...</span></a>
 | 
					                        <a class="prod-card__footer-empty" style="display: none;" onclick="ConnectSmart($Item.Num,$SmartObj.Num)"><span class="mob-hidden">Connect dapp...</span></a>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </li>
 | 
					                </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -407,26 +403,19 @@
 | 
				
			|||||||
            <ul id="DappRowCardTemplate" class="grid prod-list">
 | 
					            <ul id="DappRowCardTemplate" class="grid prod-list">
 | 
				
			||||||
                <li class="prod-card dapps-page__card">
 | 
					                <li class="prod-card dapps-page__card">
 | 
				
			||||||
                    <div class="prod-card__first-line">
 | 
					                    <div class="prod-card__first-line">
 | 
				
			||||||
                        <span class="prod-card__id light-grey-text">ID: {Item.Num}</span>
 | 
					                        <span class="prod-card__id light-grey-text">ID: $Item.Num</span>
 | 
				
			||||||
                        <span class="prod-card__id light-grey-text">OWNER: {Item.Owner}</span>
 | 
					                        <span class="prod-card__id light-grey-text">OWNER: $Item.Owner</span>
 | 
				
			||||||
                        <a onclick="OpenDappCard({Item.Num})" class="prod-card__link prod-card__link--info">More info</a>
 | 
					                        <a onclick="OpenDappCard($Item.Num)" class="prod-card__link prod-card__link--info">More info</a>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div class="prod-card__second-line">
 | 
					                    <div class="prod-card__second-line">
 | 
				
			||||||
                        <div class="prod-card__second-line-left">
 | 
					                        <div class="prod-card__second-line-left">
 | 
				
			||||||
                            <div class="prod-card__heading">
 | 
					                            <div class="prod-card__heading">
 | 
				
			||||||
                                <a class="prod-card__link" onclick="OpenOnlyDapp({Item.Num},{Item.HTMLLength})">{Item.Name}</a>
 | 
					                                <a class="prod-card__link" onclick="OpenOnlyDapp($Item.Num,$Item.HTMLLength)">$Item.Name</a>
 | 
				
			||||||
                                <!--<span class="lighter-grey-text">Without token generate</span>-->
 | 
					 | 
				
			||||||
                                <!--<span class="dapp-modal__ok-token">Token generate</span>-->
 | 
					 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
                            <p>{Item.Description}</p>
 | 
					                            <p>$Item.Description</p>
 | 
				
			||||||
                            <!-- <ol>-->
 | 
					 | 
				
			||||||
                                <!--<li>Gaming & VR</li>-->
 | 
					 | 
				
			||||||
                                <!--<li>Gaming & VR</li>-->
 | 
					 | 
				
			||||||
                                <!--<li>Gaming & VR</li>-->
 | 
					 | 
				
			||||||
                            <!--</ol> -->
 | 
					 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="prod-card__second-line-img">
 | 
					                        <div class="prod-card__second-line-img">
 | 
				
			||||||
                            <a class="prod-card__link" onclick="OpenOnlyDapp({Item.Num},{Item.HTMLLength})"><img src="{Item.IconPath}" width="32"></a>
 | 
					                            <a class="prod-card__link" onclick="OpenOnlyDapp($Item.Num,$Item.HTMLLength)"><img $item.iconpath width="32"></a>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </li>
 | 
					                </li>
 | 
				
			||||||
@@ -436,9 +425,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <section id="TabExplorer" class="explorer-page" style="display: none;">
 | 
					    <section id="TabExplorer" class="explorer-page" style="display: none;">
 | 
				
			||||||
        <div id="idCurrentBlockNum" class="currentBlockNum">
 | 
					        <div id="idCurrentBlockNum" class="currentBlockNum">
 | 
				
			||||||
                <p><span>Blockchain height:</span> <b id="idBHeight">26003136</b></p>
 | 
					            <p><span>Blockchain height:</span> <b id="idBHeight">00000000</b></p>
 | 
				
			||||||
                <p><span>Current create:</span> <b id="idBCurrent">26003140</b></p>
 | 
					            <!--<p><span>Current create:</span> <b id="idBCurrent">00000000</b></p>-->
 | 
				
			||||||
                <p><span>Protocol ver:</span> <b id="idBVersion">0.1057</b></p>
 | 
					            <p><span>Protocol ver:</span> <b id="idBVersion">00000</b></p>
 | 
				
			||||||
 | 
					            <p><span>Wallet ver:</span> <b id="idWVersion">000</b></p>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <button onclick="ViewCurrent(DefAccounts,1,this);" class="btview explorer-page__explore btn btn--white btn--full-width">Accounts</button>
 | 
					        <button onclick="ViewCurrent(DefAccounts,1,this);" class="btview explorer-page__explore btn btn--white btn--full-width">Accounts</button>
 | 
				
			||||||
@@ -518,12 +508,12 @@
 | 
				
			|||||||
<section class="dapp-modal modal" id="DappCardTemplate" style="display: none;">
 | 
					<section class="dapp-modal modal" id="DappCardTemplate" style="display: none;">
 | 
				
			||||||
    <div class="modal__header">
 | 
					    <div class="modal__header">
 | 
				
			||||||
        <div class="modal__title-wrap">
 | 
					        <div class="modal__title-wrap">
 | 
				
			||||||
            <span class="light-grey-text">ID: {Item.Num}</span>
 | 
					            <span class="light-grey-text">ID: $Item.Num</span>
 | 
				
			||||||
            <h3>{Item.Name}</h3>
 | 
					            <h3>$Item.Name</h3>
 | 
				
			||||||
            <ol class="modal__ol">
 | 
					            <ol class="modal__ol">
 | 
				
			||||||
                <li class="modal__category dappcategory1">{Item.Category1}</li>
 | 
					                <li class="modal__category dappcategory1">$Item.Category1</li>
 | 
				
			||||||
                <li class="modal__category dappcategory2">{Item.Category2}</li>
 | 
					                <li class="modal__category dappcategory2">$Item.Category2</li>
 | 
				
			||||||
                <li class="modal__category dappcategory3">{Item.Category3}</li>
 | 
					                <li class="modal__category dappcategory3">$Item.Category3</li>
 | 
				
			||||||
            </ol>
 | 
					            </ol>
 | 
				
			||||||
            <p class="dapp-modal__token-status dapp-modal__token-status--ok">
 | 
					            <p class="dapp-modal__token-status dapp-modal__token-status--ok">
 | 
				
			||||||
                <!--<span class="light-grey-text">Without token generate</span>-->
 | 
					                <!--<span class="light-grey-text">Without token generate</span>-->
 | 
				
			||||||
@@ -531,27 +521,27 @@
 | 
				
			|||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="modal__img-wrap">
 | 
					        <div class="modal__img-wrap">
 | 
				
			||||||
            <img src="{Item.IconPath}" alt="dApp logo" width="32">
 | 
					            <img $item.iconpath alt="dApp logo" width="32">
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <p>{Item.Description}</p>
 | 
					    <p>$Item.Description</p>
 | 
				
			||||||
    <dl class="modal__def-list def-list">
 | 
					    <dl class="modal__def-list def-list">
 | 
				
			||||||
        <div class="def-list__item">
 | 
					        <div class="def-list__item">
 | 
				
			||||||
            <dt>Account</dt>
 | 
					            <dt>Account</dt>
 | 
				
			||||||
            <dd>{Item.Account}</dd>
 | 
					            <dd>$Item.Account</dd>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="def-list__item">
 | 
					        <div class="def-list__item">
 | 
				
			||||||
            <dt>Owner</dt>
 | 
					            <dt>Owner</dt>
 | 
				
			||||||
            <dd>{Item.Owner}</dd>
 | 
					            <dd>$Item.Owner</dd>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="def-list__item">
 | 
					        <div class="def-list__item">
 | 
				
			||||||
            <dt>Block num</dt>
 | 
					            <dt>Block num</dt>
 | 
				
			||||||
            <dd>{Item.BlockNum}</dd>
 | 
					            <dd>$Item.BlockNum</dd>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </dl>
 | 
					    </dl>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="modal__btns-wrap">
 | 
					    <div class="modal__btns-wrap">
 | 
				
			||||||
        <button class="btn" onclick="OpenOnlyDapp({Item.Num},{Item.HTMLLength})">Open DApp</button>
 | 
					        <button class="btn" onclick="OpenOnlyDapp($Item.Num,$Item.HTMLLength)">Open DApp</button>
 | 
				
			||||||
        <button class="btn btn--white" onclick="closeModal()">Back</button>
 | 
					        <button class="btn btn--white" onclick="closeModal()">Back</button>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -611,38 +611,6 @@ module.exports = class CConnect extends require("./transfer-msg")
 | 
				
			|||||||
        Info.Node.IsAddrList = Data.IsAddrList
 | 
					        Info.Node.IsAddrList = Data.IsAddrList
 | 
				
			||||||
        AddNodeInfo(Info.Node, "RETGETNODES length=" + arr.length)
 | 
					        AddNodeInfo(Info.Node, "RETGETNODES length=" + arr.length)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    static
 | 
					 | 
				
			||||||
    RETGETNODES2_F()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return "{arr:[\
 | 
					 | 
				
			||||||
                        {\
 | 
					 | 
				
			||||||
                            addrStr:str64,\
 | 
					 | 
				
			||||||
                            ip:str30,\
 | 
					 | 
				
			||||||
                            port:uint16,\
 | 
					 | 
				
			||||||
                            portweb:uint16,\
 | 
					 | 
				
			||||||
                            LastTime:uint,\
 | 
					 | 
				
			||||||
                            DeltaTime:uint,\
 | 
					 | 
				
			||||||
                            StatData:arr70\
 | 
					 | 
				
			||||||
                        }\
 | 
					 | 
				
			||||||
                    ],\
 | 
					 | 
				
			||||||
                    IsAddrList:byte}";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    RETGETNODES2(Info, CurTime)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        var Data = this.DataFromF(Info);
 | 
					 | 
				
			||||||
        var arr = Data.arr;
 | 
					 | 
				
			||||||
        if(arr && arr.length > 0)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            for(var i = 0; i < arr.length; i++)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                var Item = this.AddToArrNodes(arr[i], true);
 | 
					 | 
				
			||||||
                if(Item)
 | 
					 | 
				
			||||||
                    Item.LastTimeGetNode = CurTime - 0
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        Info.Node.IsAddrList = Data.IsAddrList
 | 
					 | 
				
			||||||
        AddNodeInfo(Info.Node, "RETGETNODES2 length=" + arr.length)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    GetNewNode(ip, port, addrStr)
 | 
					    GetNewNode(ip, port, addrStr)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        var bTemp;
 | 
					        var bTemp;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
 * Telegram:  https://t.me/terafoundation
 | 
					 * Telegram:  https://t.me/terafoundation
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
global.UPDATE_CODE_VERSION_NUM = 1165;
 | 
					global.UPDATE_CODE_VERSION_NUM = 1167;
 | 
				
			||||||
global.MIN_CODE_VERSION_NUM = 1114;
 | 
					global.MIN_CODE_VERSION_NUM = 1114;
 | 
				
			||||||
global.MINING_VERSION_NUM = 0;
 | 
					global.MINING_VERSION_NUM = 0;
 | 
				
			||||||
global.InitParamsArg = InitParamsArg;
 | 
					global.InitParamsArg = InitParamsArg;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,7 +117,6 @@ module.exports = class CTransport extends require("./connect")
 | 
				
			|||||||
            Map["GETBLOCK"] = {Period:PERIOD_GET_BLOCK, Hard:2, Process:global.STATIC_PROCESS}
 | 
					            Map["GETBLOCK"] = {Period:PERIOD_GET_BLOCK, Hard:2, Process:global.STATIC_PROCESS}
 | 
				
			||||||
            Map["GETNODES"] = {Period:1000, Hard:1, LowVersion:1, IsAddrList:1}
 | 
					            Map["GETNODES"] = {Period:1000, Hard:1, LowVersion:1, IsAddrList:1}
 | 
				
			||||||
            Map["RETGETNODES"] = {Period:0, IsAddrList:1}
 | 
					            Map["RETGETNODES"] = {Period:0, IsAddrList:1}
 | 
				
			||||||
            Map["RETGETNODES2"] = {Period:0, IsAddrList:1}
 | 
					 | 
				
			||||||
            Map["GETCODE"] = {Period:10000, Hard:1, LowVersion:1, Process:global.STATIC_PROCESS}
 | 
					            Map["GETCODE"] = {Period:10000, Hard:1, LowVersion:1, Process:global.STATIC_PROCESS}
 | 
				
			||||||
            Map["RETBLOCKHEADER"] = {Period:0}
 | 
					            Map["RETBLOCKHEADER"] = {Period:0}
 | 
				
			||||||
            Map["RETBLOCKHEADER100"] = {Period:0}
 | 
					            Map["RETBLOCKHEADER100"] = {Period:0}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -284,6 +284,12 @@ WalletFileMap["glass.svg"] = 1;
 | 
				
			|||||||
WalletFileMap["dapp-edit.html"] = 1;
 | 
					WalletFileMap["dapp-edit.html"] = 1;
 | 
				
			||||||
WalletFileMap["TeraLogo.svg"] = 1;
 | 
					WalletFileMap["TeraLogo.svg"] = 1;
 | 
				
			||||||
WalletFileMap["mobile-wallet.html"] = "web-wallet.html";
 | 
					WalletFileMap["mobile-wallet.html"] = "web-wallet.html";
 | 
				
			||||||
 | 
					var MapRedirect = {};
 | 
				
			||||||
 | 
					MapRedirect["map.html"] = "teraexplorer.org";
 | 
				
			||||||
 | 
					MapRedirect["explorer.html"] = "teraexplorer.org";
 | 
				
			||||||
 | 
					MapRedirect["history.html"] = "teraexplorer.org";
 | 
				
			||||||
 | 
					MapRedirect["GetSupply"] = "teraexplorer.org";
 | 
				
			||||||
 | 
					MapRedirect["DappTemplateFile"] = "terawallet.org";
 | 
				
			||||||
global.WebApi2 = {};
 | 
					global.WebApi2 = {};
 | 
				
			||||||
global.HostingCaller = {};
 | 
					global.HostingCaller = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -355,23 +361,12 @@ function DoCommandNew(response,Type,Path,Params)
 | 
				
			|||||||
        Method = "DappTemplateFile";
 | 
					        Method = "DappTemplateFile";
 | 
				
			||||||
    if(HTTPS_HOSTING_DOMAIN === "terafoundation.org")
 | 
					    if(HTTPS_HOSTING_DOMAIN === "terafoundation.org")
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if(Method === "map.html")
 | 
					        var DomenName = MapRedirect[Method];
 | 
				
			||||||
        {
 | 
					        if(DomenName)
 | 
				
			||||||
            response.writeHead(301, {"Location":'http://teraexplorer.org/map.html'});
 | 
					 | 
				
			||||||
            return response.end();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            if(Method === "explorer.html")
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                response.writeHead(301, {"Location":'http://teraexplorer.org'});
 | 
					 | 
				
			||||||
                return response.end();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                if(Method === "DappTemplateFile")
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if(Path.substr(0, 1) !== "/")
 | 
					            if(Path.substr(0, 1) !== "/")
 | 
				
			||||||
                Path = "/" + Path;
 | 
					                Path = "/" + Path;
 | 
				
			||||||
                    response.writeHead(301, {"Location":'http://terawallet.org' + Path});
 | 
					            response.writeHead(301, {"Location":'http://' + DomenName + Path});
 | 
				
			||||||
            return response.end();
 | 
					            return response.end();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -846,6 +841,8 @@ HostingCaller.GetHistoryTransactions = function (Params)
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
HostingCaller.GetSupply = function (Params)
 | 
					HostingCaller.GetSupply = function (Params)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    if(HTTPS_HOSTING_DOMAIN === "terafoundation.org")
 | 
				
			||||||
 | 
					        return "" + (1000000000 - 420000000);
 | 
				
			||||||
    var Data = DApps.Accounts.ReadState(0);
 | 
					    var Data = DApps.Accounts.ReadState(0);
 | 
				
			||||||
    if(!Data)
 | 
					    if(!Data)
 | 
				
			||||||
        return "";
 | 
					        return "";
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user