1
0
Fork 0

update code

master
MiaoWoo 3 years ago
commit 750a54c15f
  1. 23
      LICENSE
  2. 232
      README.md
  3. 162
      Source/HTML/123
  4. 440
      Source/HTML/CSS/blockviewer.css
  5. 201
      Source/HTML/CSS/buttons.css
  6. 90
      Source/HTML/CSS/codes.css
  7. 440
      Source/HTML/CSS/history.css
  8. 2755
      Source/HTML/CSS/mobile-wallet.css
  9. 180
      Source/HTML/CSS/style.css
  10. 535
      Source/HTML/CSS/wallet.css
  11. 32
      Source/HTML/JS/client-electron.js
  12. 1944
      Source/HTML/JS/client.js
  13. 112
      Source/HTML/JS/coinlib.js
  14. 372
      Source/HTML/JS/crypto-client.js
  15. 521
      Source/HTML/JS/dapp-inner.js
  16. 455
      Source/HTML/JS/diagram.js
  17. 109
      Source/HTML/JS/highlight-html.js
  18. 174
      Source/HTML/JS/highlight-js.js
  19. 836
      Source/HTML/JS/highlight.js
  20. 1686
      Source/HTML/JS/lexer.js
  21. 1604
      Source/HTML/JS/marked.js
  22. 1165
      Source/HTML/JS/mobile-wallet.js
  23. 190
      Source/HTML/JS/sec256k1.js
  24. 803
      Source/HTML/JS/sha3.js
  25. 250
      Source/HTML/JS/sign-lib-min.js
  26. 480
      Source/HTML/JS/terahashlib.js
  27. 10
      Source/HTML/JS/tx-lib.js
  28. 722
      Source/HTML/JS/wallet-lib.js
  29. 542
      Source/HTML/JS/wallet-node.js
  30. 275
      Source/HTML/JS/wallet-web.js
  31. 4
      Source/HTML/PIC/B.svg
  32. 3
      Source/HTML/PIC/T.svg
  33. 13
      Source/HTML/PIC/TeraLogo.svg
  34. 6
      Source/HTML/PIC/Tera_logo.svg
  35. 6
      Source/HTML/PIC/Tera_logo2.svg
  36. 4
      Source/HTML/PIC/add-icon.svg
  37. BIN
      Source/HTML/PIC/address_book.png
  38. 4
      Source/HTML/PIC/blank.svg
  39. BIN
      Source/HTML/PIC/chains.png
  40. 3
      Source/HTML/PIC/check.svg
  41. BIN
      Source/HTML/PIC/console.png
  42. BIN
      Source/HTML/PIC/console0.png
  43. BIN
      Source/HTML/PIC/counters.png
  44. BIN
      Source/HTML/PIC/dapp.png
  45. 3
      Source/HTML/PIC/down-arrow.svg
  46. BIN
      Source/HTML/PIC/down.png
  47. 3
      Source/HTML/PIC/glass.svg
  48. 3
      Source/HTML/PIC/info.svg
  49. BIN
      Source/HTML/PIC/invoice.png
  50. BIN
      Source/HTML/PIC/invoice2.png
  51. BIN
      Source/HTML/PIC/key.png
  52. BIN
      Source/HTML/PIC/lock_closed.png
  53. BIN
      Source/HTML/PIC/lock_open.png
  54. BIN
      Source/HTML/PIC/monitor.png
  55. BIN
      Source/HTML/PIC/network.png
  56. 4
      Source/HTML/PIC/reload.svg
  57. 3
      Source/HTML/PIC/right-arrow.svg
  58. BIN
      Source/HTML/PIC/smart.png
  59. BIN
      Source/HTML/PIC/table.png
  60. 3
      Source/HTML/PIC/tera-sign.svg
  61. BIN
      Source/HTML/PIC/tera.ico
  62. BIN
      Source/HTML/PIC/up.png
  63. BIN
      Source/HTML/PIC/viewer.png
  64. BIN
      Source/HTML/PIC/wallet.png
  65. BIN
      Source/HTML/PIC/wallet16.png
  66. BIN
      Source/HTML/SOUND/click.mp3
  67. BIN
      Source/HTML/SOUND/coin.mp3
  68. BIN
      Source/HTML/SOUND/soundbt.mp3
  69. 174
      Source/HTML/blockviewer.html
  70. 1457
      Source/HTML/chains.html
  71. 523
      Source/HTML/console.html
  72. 1048
      Source/HTML/dapp-edit.html
  73. 594
      Source/HTML/dapp-frame.html
  74. 308
      Source/HTML/history.html
  75. 716
      Source/HTML/mobile-wallet.html
  76. 832
      Source/HTML/monitor.html
  77. 530
      Source/HTML/network.html
  78. 339
      Source/HTML/password.html
  79. 382
      Source/HTML/stat.html
  80. BIN
      Source/HTML/tera.ico
  81. 2062
      Source/HTML/wallet.html
  82. 669
      Source/HTML/web-wallet.html
  83. 440
      Source/core/base.js
  84. 1644
      Source/core/block-exchange.js
  85. 16
      Source/core/block-loader-const.js
  86. 1503
      Source/core/block-loader.js
  87. 364
      Source/core/buffer.js
  88. 245
      Source/core/code.js
  89. 1595
      Source/core/connect.js
  90. 330
      Source/core/constant.js
  91. 1106
      Source/core/crypto-library.js
  92. 1193
      Source/core/db/block-db.js
  93. 256
      Source/core/db/db-row.js
  94. 120
      Source/core/db/db.js
  95. 87
      Source/core/geo.js
  96. 1987
      Source/core/html-server.js
  97. 483
      Source/core/library.js
  98. 38
      Source/core/log-strict.js
  99. 267
      Source/core/log.js
  100. 614
      Source/core/node.js
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,23 @@
MIT License
Copyright (c) 2017-2018 The Tera Core developers (progr76@gmail.com)
Not for evil.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -0,0 +1,232 @@
# TERA PLATFORM
* What is the project and what he does we recommend you to read this review article: [Decentralized applications on TERA platform](https://medium.com/@evkara777/decentralized-applications-on-tera-platform-2aa56b597ae9)
* The following describes how to install it on your computer
## Light-wallet (web-version)
https://terafoundation.org/web-wallet.html
* Note: the light wallet has a decentralized core - i.e. it works with all available nodes in the network
## Installing light wallet from setup on Windows:
* https://gitlab.com/terafoundation/tera/raw/master/Bin/Light/tera_light_setup.exe
* [Light client (zip)](https://gitlab.com/terafoundation/tera/raw/master/Bin/Light/Tera-light.zip)
## Installing full node from setup on Windows:
https://gitlab.com/terafoundation/tera/raw/master/Bin/Full/tera_full_setup.exe
## Installing full node from source code by steps:
Attention:
* After the installation shown below, enter the address your server in the browser. Example: 12.34.56.78:8080
* For mining You must have a static (public) IP address and an open port.
* We recommend not storing private keys on remote servers.
* We recommend putting an additional password on the private key ("Set password" button) - in this case the private key will be stored in file in encrypted form.
* If you do not set http-password, you can access only from the local address: 127.0.0.1:8080
* For remote access to the node only from the specified computer set the HTTP_IP_CONNECT constant (for example: "HTTP_IP_CONNECT": "122.22.33.11")
* When installing, pay attention to the **secp256k1** cryptographic library. There should be no errors when compiling it (with command: npm install)
## Installing on Windows:
1. Download and install Nodejs https://nodejs.org
2. Download and install git https://git-scm.com/download/win
3. Then run the commands (in program: cmd or PowerShell):
```
cd ..\..\..\
git clone https://gitlab.com/terafoundation/tera.git wallet
npm install --global --production windows-build-tools
npm install -g node-gyp
cd wallet/Source
npm install
node set httpport:8080 password:<secret word (no spaces)>
run-node.bat
```
If you want to run the wallet as a background process, then instead of the last command (run-node.bat), do the following:
```
npm install pm2 -g
pm2 start run-node.js
```
### Opening ports:
```
netsh advfirewall firewall add rule name="Open 30000 port" protocol=TCP localport=30000 action=allow dir=IN
```
### Updates
```
cd wallet
git reset --hard
git clean -f
git pull
```
## Installation on Linux
### CentOS 7:
```
yum install -y git
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum install -y nodejs
yum install gcc gcc-c++
npm install pm2 -g
git clone https://gitlab.com/terafoundation/tera.git wallet
cd wallet/Source
npm install
node set httpport:8080 password:<secret word (no spaces)>
pm2 start run-node.js
```
### open ports (all):
```
systemctl stop firewalld
systemctl disable firewalld
```
### Updates
```
cd wallet
sudo git reset --hard
sudo git clean -f
sudo git pull
```
### UBUNTU 18.4:
```
apt-get install -y git
apt-get install -y nodejs
apt-get install -y npm
npm install pm2 -g
clone https://gitlab.com/terafoundation/tera.git wallet
apt install build-essential
apt group install "Development Tools"
cd wallet/Source
npm install
node set httpport:8080 password:<secret word (no spaces)>
pm2 start run-node.js
```
### open ports:
```
sudo ufw allow 30000/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 80/tcp
```
### Updates
```
cd wallet
git reset --hard
git pull
```
## MAIN NETWORK
Default values:
```
port:30000
httpport:8080
```
## TEST NETWORK
Default values:
```
port:40000
httpport:8080
```
Launch:
```
cp -a Source SourceTest
cd SourceTest
node set-test httpport:8080 password:SecretWord
pm2 start run-test.js
```
## Specification
* Name: TERA
* Consensus: PoW
* Algorithm:  Terahash (sha3 + Optimize RAM hashing)
* Total suplay: 1 Bln
* Reward for block (befor 43 mln blocks): 1-20 coins, depends on network power (one billionth of the remainder of undistributed amount of coins and multiplied by the hundredth part of the square of the logarithm of the network power). With a block of 22.5 million, the power for the reward is limited to a constant of 43.
* Block size 130 KB
* Premine: 5%
* Development fund: 1% of the mining amount
* Block generation time: 1 second
* Block confirmation time: 8 seconds
* Speed: from 1000 transactions per second
* Commission: free of charge
* Cryptography: sha3, secp256k1
* Protection against DDoS: PoW (hash calculation)
* Platform: Node.JS
# FAQs
## Mining is possible only on a public IP
* Check the presence of a direct ip-address (order from the provider)
* Check if the port is routed from the router to your computer
* Check the firewall (port must open on the computer)
## Refs:
* Web: http://terafoundation.org
* Btt: https://bitcointalk.org/index.php?topic=4573801.0
* Twitter: https://twitter.com/terafoundation
* Telegram: https://web.telegram.org/#/im?p=@terafoundation
* Discord: https://discord.gg/CvwrbeG
* [White Paper](https://docs.google.com/document/d/1EaqFg1ncIxsrNE2M9xJOSzQu8z3ANwMuNyTX0z_A1ow/edit?usp=sharing)
* [DApp Paper](https://docs.google.com/document/d/1PXVBbMKdpsAKPkO9UNB5B-LMwIDjylWoHvAAzzrXjvU/edit?usp=sharing)
* [DEX-guide](https://docs.google.com/document/d/1qvVRfLq3qcYYF6dcsAAAqoGyBFF4njXUYZXZfTPWd2w/edit?usp=sharing)
* [BTC for DEX](https://docs.google.com/document/d/19vRY6tkbTP8tubZxM01llwnMyz4P6IzY0zvnargrU6k/edit?usp=sharing)
* [API](https://gitlab.com/terafoundation/tera/blob/master/Doc/Eng/API.md)
* [API-2 for Exchanges](https://gitlab.com/terafoundation/tera/blob/master/Doc/Eng/API2.md)
* [CONSTANTS](https://gitlab.com/terafoundation/tera/blob/master/Doc/Eng/CONSTANTS.MD)
## Articles:
* [Decentralized applications on TERA platform](https://medium.com/@evkara777/decentralized-applications-on-tera-platform-2aa56b597ae9)
* [How does TERA platform work](https://medium.com/@Blockchainize1/how-does-tera-platform-work-cbfbeefdfc12)
* [More articles...](https://terafoundation.org/blog/)
## Chinese
* [Mining guide (chinese PDF)](https://gitlab.com/terafoundation/tera/raw/master/Doc/Chinese/Mining.pdf?inline=false)
* [Tera White Paper (chinese PDF)](https://gitlab.com/terafoundation/tera/raw/master/Doc/Chinese/WP_chinese.pdf?inline=false)
* [Decentralized applications on TERA platform - Chinese](https://medium.com/@Blockchainize1/tera%E5%B9%B3%E5%8F%B0%E4%B8%8A%E7%9A%84%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%BA%94%E7%94%A8-590f7663ecaf)
## RUS
[Эта же страница на русском](https://gitlab.com/terafoundation/tera/tree/master/Doc/Rus)

@ -0,0 +1,162 @@
‘à ¢­¥­¨¥ ä ©«®¢ mobile-wallet.html ¨ _MOBILE-WALLET.HTML
***** mobile-wallet.html
<a onclick="SelectTab('TabWelcome')" class="header__logo-link" id="MTabWelcome">
<!--<img src="./PIC/Tera_logo2.svg" alt="Tera logo" height="25" width="104">-->
<svg width="104" height="25" viewBox="0 0 105 25" fill="none" xmlns="http://www.w3.org/2000/svg">
***** _MOBILE-WALLET.HTML
<a onclick="SelectTab('TabWelcome')" class="header__logo-link" id="MTabWelcome">
<svg width="104" height="25" viewBox="0 0 105 25" fill="none" xmlns="http://www.w3.org/2000/svg">
*****
***** mobile-wallet.html
<div class="welcome__img">
<svg class="mobile" id="tera-logo" height="126" width="130" fill="#445368" xmlns="http://www.w3.org/2000/svg" viewB
ox="0 0 992.13 992.13">
***** _MOBILE-WALLET.HTML
<div class="welcome__img">
<svg class="mobile" id="tera-logo" height="104" width="107" fill="#445368" xmlns="http://www.w3.org/2000/svg" viewB
ox="0 0 992.13 992.13">
*****
***** mobile-wallet.html
<textarea name="private-key" id="idPrivKeyEdit" placeholder="Insert your private key or generate a new key below...
" class="key-field__textarea" oninput="OnEditPrivKey()">
</textarea>
***** _MOBILE-WALLET.HTML
<textarea name="private-key"
id="idPrivKeyEdit"
placeholder="Insert your private key or generate a new key below..."
class="key-field__textarea"
oninput="OnEditPrivKey()">
</textarea>
*****
***** mobile-wallet.html
<select size="1" id="idAccountCur" class="bigs key-field__input key-field__input--select">
<option value="0">TERA</option>
***** _MOBILE-WALLET.HTML
<select size="1" id="idAccountCur" class="bigs key-field__input">
<option value="0">TERA</option>
*****
***** mobile-wallet.html
<p class="key-field__title">From:</p>
<button onclick="SetAllSum()" title="Paste total amount" class="key-field__btn btn-no-bg no-mr" style="padding:
0; margin-left: 10px;">
<svg width="18" height="18" viewBox="0 0 18 18" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 1H3C1.89543 1 1 1.89543 1 3V15C1 16.1046 1.89543 1
7 3 17H15C16.1046 17 17 16.1046 17 15V3C17 1.89543 16.1046 1 15 1ZM3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C
16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM6.64645 10.6464C6.84171 10.4512 7.15829 10.4512 7.35355 10.6464L9.5
12.7929V6C9.5 5.17157 8.82843 4.5 8 4.5H6C5.72386 4.5 5.5 4.27614 5.5 4C5.5 3.72386 5.72386 3.5 6 3.5H8C9.38071 3.5 10.5 4.6192
9 10.5 6V12.7929L12.6464 10.6464C12.8417 10.4512 13.1583 10.4512 13.3536 10.6464C13.5488 10.8417 13.5488 11.1583 13.3536 11.353
6L10.3536 14.3536L10 14.7071L9.64645 14.3536L6.64645 11.3536C6.45118 11.1583 6.45118 10.8417 6.64645 10.6464Z"/>
</svg>
</button>
<select size="1" id="idAccount" class="key-field__select" oninput="OnEditTransactionFields(); CheckSending();">
***** _MOBILE-WALLET.HTML
<p class="key-field__title">From:</p>
<select size="1" id="idAccount" class="key-field__select" oninput="OnEditTransactionFields(); CheckSending();">
*****
***** mobile-wallet.html
<label for="idTo" class="key-field__title">Pay to:</label>
<span id="idNameTo2" style="margin: 5px 10px 0 15px"></span>
<!--<button class="key-field__btn btn-no-bg">Paste</button>-->
***** _MOBILE-WALLET.HTML
<label for="idTo" class="key-field__title">Pay to:</label>
<span id="idNameTo2" style="margin: 0 10px 0 0"></span>
<!--<button class="key-field__btn btn-no-bg">Paste</button>-->
*****
***** mobile-wallet.html
<!--<b>2 000 000 000,00000000</b>-->
<input type="number"
***** _MOBILE-WALLET.HTML
<!--<b>2 000 000 000,00000000</b>-->
<button onclick="SetAllSum()" title="Paste total amount" class="key-field__btn btn-no-bg no-mr" style="padding:
0; margin-left: 10px;">
<svg width="18" height="18" viewBox="0 0 18 18" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 1H3C1.89543 1 1 1.89543 1 3V15C1 16.1046 1.89543 1
7 3 17H15C16.1046 17 17 16.1046 17 15V3C17 1.89543 16.1046 1 15 1ZM3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C
16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM6.64645 10.6464C6.84171 10.4512 7.15829 10.4512 7.35355 10.6464L9.5
12.7929V6C9.5 5.17157 8.82843 4.5 8 4.5H6C5.72386 4.5 5.5 4.27614 5.5 4C5.5 3.72386 5.72386 3.5 6 3.5H8C9.38071 3.5 10.5 4.6192
9 10.5 6V12.7929L12.6464 10.6464C12.8417 10.4512 13.1583 10.4512 13.3536 10.6464C13.5488 10.8417 13.5488 11.1583 13.3536 11.353
6L10.3536 14.3536L10 14.7071L9.64645 14.3536L6.64645 11.3536C6.45118 11.1583 6.45118 10.8417 6.64645 10.6464Z"/>
</svg>
</button>
<input type="number"
*****
***** mobile-wallet.html
<label for="idDescription" class="key-field__title">Description:</label>
<textarea name="description" id="idDescription" rows="2" placeholder="Optional..." class="key-field__textarea"
oninput="CheckLengthAccDesription('idDescription',200); OnEditTransactionFields()">
</textarea>
***** _MOBILE-WALLET.HTML
<label for="idDescription" class="key-field__title">Description:</label>
<textarea name="description"
id="idDescription"
rows="2"
placeholder="Optional..."
class="key-field__textarea"
oninput="CheckLengthAccDesription('idDescription',200);OnEditTransactionFields()">
</textarea>
*****
***** mobile-wallet.html
<div class="dapps-page__pagination page-pagination">
<button onclick="ViewBegin(DefDapps)" class="btn dapps-page__page-btns">| &lt;</button>
<button onclick="ViewPrev(DefDapps)" class="btn dapps-page__page-btns">&lt;</button>
***** _MOBILE-WALLET.HTML
<div class="dapps-page__pagination page-pagination">
<button onclick="ViewBegin(DefDapps)" class="btn dapps-page__page-btns">|&lt;</button>
<button onclick="ViewPrev(DefDapps)" class="btn dapps-page__page-btns">&lt;</button>
*****
***** mobile-wallet.html
<button onclick="ViewNext(DefDapps,CONFIG_DATA.MaxDappsID)" class="btn dapps-page__page-btns">&gt;</button>
<button onclick="ViewEnd(DefDapps,CONFIG_DATA.MaxDappsID)" class="btn dapps-page__page-btns">&gt; |</button>
</div>
***** _MOBILE-WALLET.HTML
<button onclick="ViewNext(DefDapps,CONFIG_DATA.MaxDappsID)" class="btn dapps-page__page-btns">&gt;</button>
<button onclick="ViewEnd(DefDapps,CONFIG_DATA.MaxDappsID)" class="btn dapps-page__page-btns">&gt;|</button>
</div>
*****
***** mobile-wallet.html
<div class="explorer-page__table-wrap">
<table id="dapps_list" class="grid dapps__table">
<tr>
***** _MOBILE-WALLET.HTML
<div class="explorer-page__table-wrap">
<table id="dapps_list" class="grid">
<tr>
*****
***** mobile-wallet.html
<div class="prod-card__heading">
<a href="#" class="prod-card__link" onclick="OpenDapp(Item.Num)">Item.Name</a>
<!--<span class="lighter-grey-text">Without token generate</span>-->
***** _MOBILE-WALLET.HTML
<div class="prod-card__heading">
Item.Name
<!--<span class="lighter-grey-text">Without token generate</span>-->
*****
***** mobile-wallet.html
<div class="prod-card__second-line-img">
<a href="#" class="prod-card__link" onclick="OpenDapp(Item.Num)"><img src="Item.IconPath" alt="dApp
logo" width="32"></a>
</div>
***** _MOBILE-WALLET.HTML
<div class="prod-card__second-line-img">
<img src="Item.IconPath" alt="dApp logo" width="32">
</div>
*****

@ -0,0 +1,440 @@
@import url('https://fonts.googleapis.com/css?family=Roboto:400,500,700&subset=cyrillic');
:root {
--blue-grey: #445368;
--light-blue: #718CAF;
}
body {
margin: 0 auto;
box-sizing: border-box;
font-family: "Roboto", "Arial", sans-serif;
color: #445368;
background: #f2f2f2;
}
main {
max-width: 1200px;
margin: 0 auto;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
*::placeholder {
color: rgba(0, 0, 0, 0.5);
font-family: "Roboto";
font-size: 16px;
}
a {
text-decoration: none;
color: #445368;
}
a:hover,
a:focus {
color: #718CAF;
}
.hidden {
display: none;
}
.btn {
color: #fff;
background: #445368;
display: block;
padding: 15px 25px;
border: none;
box-shadow: 0px 5px 10px rgba(68, 83, 104, 0.3);
border-radius: 4px;
text-decoration: none;
text-transform: uppercase;
font-family: inherit;
font-weight: 500;
font-size: 18px;
line-height: 21px;
cursor: pointer;
text-align: center;
}
.btn:hover,
.btn:focus {
background: #718CAF;
color: #fff;
}
.btn[disabled],
.btn.disabled {
opacity: .3;
cursor: not-allowed;
}
.reconnect {
background-image: url("./../PIC/reload.svg");
background-repeat: no-repeat;
background-size: 18px 18px;
background-position: center center;
padding: 5px;
width: 27px;
margin-left: 5px;
}
.reconnect span {
display: none;
}
.grey-btn {
border: none;
background: #F2F2F2;
border-radius: 3px;
font-family: inherit;
font-size: 14px;
line-height: 16px;
color: #000;
height: 27px;
white-space: nowrap;
}
.header {
background: linear-gradient(270deg, #3D4C61 0%, #445368 100%);
color: #fff;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
}
.header__wrapper {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
height: 100%;
}
.header__logo {
margin-right: 2px;
padding: 0 15px;
}
.header__logo-link:hover {
opacity: .5;
cursor: pointer;
}
.header__right {
display: flex;
align-items: center;
position: relative;
}
.header__right select {
/* background: var(--blue-grey); */
background: transparent;
border: none;
color: #fff;
padding: 5px;
width: 55px;
font-family: inherit;
font-size: 12px;
line-height: 14px;
}
.white-select {
display: none;
}
.header__nav {
width: 100%;
}
.page-pagination {
display: flex;
justify-content: center;
padding-bottom: 15px;
padding-right: 15px;
}
.page-pagination__num {
width: 33%;
margin: 0 5px;
}
.page-pagination .btn {
padding: 0;
white-space: nowrap;
width: 45px;
height: 40px;
margin: 0 5px;
}
.page-pagination .btn:first-of-type {
margin-left: 0;
}
.page-pagination .btn:last-of-type {
margin-right: 0;
}
.back-link {
cursor: pointer;
position: relative;
width: 30px;
}
.back-link span {
display: none;
}
.back-link::before {
content: '';
display: block;
color: var(--blue-grey);
background: url("./../PIC/right-arrow.svg") no-repeat;
background-size: 18px 18px;
transform: translateY(-50%) rotate(180deg);
height: 18px;
width: 18px;
position: absolute;
left: 15px;
top: 50%;
}
.back-link:hover::before,
.back-link:focus::before {
opacity: .5;
}
.back-link--history {
position: absolute;
top: 15px;
font-size: 16px;
line-height: 19px;
font-weight: 400;
text-decoration: none;
}
.back-link--history::before {
left: 0;
}
.back-link--history span {
display: block;
padding-left: 23px;
}
.header__logo--history {
padding: 10px 15px;
}
.history-page {
position: relative;
padding-bottom: 110px;
}
.history__text-block {
padding: 65px 15px 10px;
}
.history-page__id {
margin-bottom: 7px;
font-size: 20px;
line-height: 23px;
font-weight: 700;
color: #445368;
}
.history-page__id-count {
max-width: 140px;
margin-left: 2px;
font-size: 20px;
line-height: 23px;
font-weight: 700;
text-align-last: left;
color: #445368;
border: none;
background: #f2f2f2;
}
.history-page__description {
margin: 0;
margin-bottom: 17px;
font-size: 12px;
line-height: 14px;
color: rgba(0, 0, 0, 0.5);
}
.history-page__balance {
display: flex;
align-items: center;
font-size: 14px;
line-height: 16px;
font-weight: 700;
}
.history-page__tera-icon {
margin-left: 5px;
}
.history-page__table {
padding: 15px 0 15px 15px;
background-color: #ffffff;
}
.history-page__table .grid {
width: 100%;
border-collapse: collapse;
}
.history-page__table-wrap {
overflow-x: auto;
}
.history-page__table th {
background: var(--blue-grey);
color: #fff;
border-right: 1px solid rgba(0, 0, 0, 0.1);
height: 30px;
padding: 0 20px 0 10px;
font-size: 16px;
line-height: 19px;
font-weight: 400;
white-space: nowrap;
text-align-last: left;
}
.history-page__table th:first-child {
border-top-left-radius: 5px;
}
.history-page__table th:last-child {
border-top-right-radius: 5px;
}
.history-page__table .grid tr td {
padding: 8px 10px 6px;
font-size: 14px;
line-height: 16px;
white-space: nowrap;
color: #000000;
background-color: #ffffff;
border: 1px solid #C4C4C4;
}
.history-page__table .grid tr td:first-of-type {
text-align: center;
}
.history-page__table .grid tr td.code
{
white-space: normal;
width: 340px;
min-width:200px;
font-family: "courier new", "times new roman", monospace;
font-size: small;
word-break: break-all;
}
.history-page__table .grid tr td.hash
{
white-space: normal;
width: 160px;
font-family: "courier new", "times new roman", monospace;
font-size: small;
word-break: break-all;
}
@media (min-width: 576px) {
.history__text-block {
padding: 65px 33px 10px;
}
.history-page__table {
padding: 15px 33px;
}
.back-link::before {
left: 0;
}
}
@media (min-width: 768px) {
.header {
height: 60px;
}
.fixed-status .grey-btn {
height: 40px;
padding: 10px;
}
.reconnect {
width: 40px;
margin-left: 15px;
background-position: 11px 11px;
}
.main-logo {
width: 125px;
height: 30px;
}
.back-link {
display: block;
padding-left: 34px;
}
.back-link span {
display: inline;
text-decoration: underline;
}
.back-link::before {
left: 0;
}
.back-link--history span {
padding-left: 0;
}
}
@media (min-width: 960px) {
.header__logo {
padding-left: 20px;
}
.reconnect.grey-btn {
width: 130px;
margin-left: 15px;
padding-top: 12px;
padding-left: 39px;
background-position: 11px 11px;
}
.reconnect span {
display: inline;
}
.history-page {
padding-right: 40px;
padding-left: 40px;
}
.history__text-block {
padding: 65px 0 10px;
}
.history-page__table {
padding: 15px 0 10px;
}
}
@media (min-width: 1200px) {
.header__wrapper {
max-width: 1150px;
margin: 0 auto;
}
.history__text-block {
padding-top: 60px;
padding-bottom: 0;
}
.history-page__id {
font-size: 28px;
line-height: 33px;
text-align: center;
}
.history-page__id-count {
font-size: 28px;
line-height: 33px;
text-align: center;
}
.history-page__description {
margin-bottom: 30px;
font-size: 16px;
line-height: 19px;
text-align: center;
}
.history-page__balance {
justify-content: center;
margin-bottom: 30px;
font-size: 16px;
line-height: 19px;
}
.history-page__table {
padding: 30px 15px;
border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.1);
background-color: #ffffff;
}
.page-pagination {
padding-bottom: 20px;
}
}

@ -0,0 +1,201 @@
/*Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons Buttons*/
/*TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader TabHeader*/
#TabHeader th
{
/*border: 1px solid black;*/
width:205px;
color: white;
background-color: #22547f;
margin: 0;
padding: 0;
height: 34px;
}
.bttab
{
background-color: black;
vertical-align: middle;
cursor: pointer;
color: white;
width: 100%;
margin: 0;
padding-top: 7px;
height: 100%;
}
/*User action*/
.btdoit
{
width: 130px;
height: 32px;
line-height: 20px;
margin: 10px;
cursor: pointer;
font-family: monospace;
}
.btdoitm
{
width: 40px;
height: 32px;
line-height: 20px;
margin: 10px;
cursor: pointer;
font-family: monospace;
}
/*All buttons*/
.bt
{
border: 1px solid black;
background: transparent;
font-weight: 400;
cursor: pointer;
}
.bt:hover,button:hover
{
filter: brightness(120%);
cursor: pointer;
}
.bt:active
{
cursor: progress;
}
.btlong
{
width: 160px;
}
.btopen
{
width: 136px;
}
.btsmall
{
width: 10px;
}
#idSendList
{
width: 800px;
border: 0 solid black;
font-weight: 700;
}
#PaiListInfo
{
width: 800px;
height:20px;
text-align: center;
}
.btinvoice
{
width: 133px;
min-width: 133px;
max-width: 133px;
height:40px;
white-space: pre-line;
background-image: url('/HTML/PIC/invoice.png');
background-repeat: no-repeat;
background-size: 16px;
}
.btinvoice_use
{
width: 110px;
min-width: 110px;
max-width: 110px;
height:62px;
}
#idCounters
{
background-image: url('/HTML/PIC/counters.png');
background-repeat: no-repeat;
background-size: 16px;
}
#idChains
{
background-image: url('/HTML/PIC/chains.png');
background-repeat: no-repeat;
background-size: 16px;
}
#idMonitor
{
background-image: url('/HTML/PIC/monitor.png');
background-repeat: no-repeat;
background-size: 16px;
}
#idConsole
{
background-image: url('/HTML/PIC/console.png');
background-repeat: no-repeat;
background-size:16px;
}
#idOpenSmart
{
background-image: url('/HTML/PIC/smart.png');
background-repeat: no-repeat;
background-size:16px;
}
#idNetwork
{
background-image: url('/HTML/PIC/network.png');
background-repeat: no-repeat;
background-size:16px;
}
#idDown
{
background-image: url('/HTML/PIC/down.png');
background-repeat: no-repeat;
background-size: 16px;
background-position: right;
}
#idUp
{
background-image: url('/HTML/PIC/up.png');
background-repeat: no-repeat;
background-size: 16px;
background-position: right;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(82, 168, 236, 1);
}
.btexlporer
{
width: 136px;
}
input[type="checkbox"]
{
vertical-align: middle;
}

@ -0,0 +1,90 @@
/*
Google Code style (c) Aahan Krish <geekpanth3r@gmail.com>
Some correct by vtools
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #eff5eb;
color: black;
}
.hljs-comment,
.hljs-quote {
color: #800;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-section,
.hljs-title,
.hljs-name {
color: #008;
}
.hljs-variable,
.hljs-template-variable {
color: #660;
}
.hljs-string,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-regexp {
color: #080;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-meta,
.hljs-number,
.hljs-link {
color: #066;
}
.hljs-title,
.hljs-doctag,
.hljs-type,
.hljs-attr,
.hljs-built_in,
.hljs-builtin-name,
.hljs-params {
color: #606;
}
.hljs-attribute,
.hljs-subst {
color: #000;
}
.hljs-formula {
background-color: #eee;
font-style: italic;
}
.hljs-selector-id,
.hljs-selector-class {
color: #9B703F
}
.hljs-addition {
background-color: #baeeba;
}
.hljs-deletion {
background-color: #ffc8bd;
}
.hljs-doctag,
.hljs-strong {
font-weight: bold;
}
.hljs-emphasis {
font-style: italic;
}

@ -0,0 +1,440 @@
@import url('https://fonts.googleapis.com/css?family=Roboto:400,500,700&subset=cyrillic');
:root {
--blue-grey: #445368;
--light-blue: #718CAF;
}
body {
margin: 0 auto;
box-sizing: border-box;
font-family: "Roboto", "Arial", sans-serif;
color: #445368;
background: #f2f2f2;
}
main {
max-width: 1200px;
margin: 0 auto;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
*::placeholder {
color: rgba(0, 0, 0, 0.5);
font-family: "Roboto";
font-size: 16px;
}
a {
text-decoration: none;
color: #445368;
}
a:hover,
a:focus {
color: #718CAF;
}
.hidden {
display: none;
}
.btn {
color: #fff;
background: #445368;
display: block;
padding: 15px 25px;
border: none;
box-shadow: 0px 5px 10px rgba(68, 83, 104, 0.3);
border-radius: 4px;
text-decoration: none;
text-transform: uppercase;
font-family: inherit;
font-weight: 500;
font-size: 18px;
line-height: 21px;
cursor: pointer;
text-align: center;
}
.btn:hover,
.btn:focus {
background: #718CAF;
color: #fff;
}
.btn[disabled],
.btn.disabled {
opacity: .3;
cursor: not-allowed;
}
.reconnect {
background-image: url("./../PIC/reload.svg");
background-repeat: no-repeat;
background-size: 18px 18px;
background-position: center center;
padding: 5px;
width: 27px;
margin-left: 5px;
}
.reconnect span {
display: none;
}
.grey-btn {
border: none;
background: #F2F2F2;
border-radius: 3px;
font-family: inherit;
font-size: 14px;
line-height: 16px;
color: #000;
height: 27px;
white-space: nowrap;
}
.header {
background: linear-gradient(270deg, #3D4C61 0%, #445368 100%);
color: #fff;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
}
.header__wrapper {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
height: 100%;
}
.header__logo {
margin-right: 2px;
padding: 0 15px;
}
.header__logo-link:hover {
opacity: .5;
cursor: pointer;
}
.header__right {
display: flex;
align-items: center;
position: relative;
}
.header__right select {
/* background: var(--blue-grey); */
background: transparent;
border: none;
color: #fff;
padding: 5px;
width: 55px;
font-family: inherit;
font-size: 12px;
line-height: 14px;
}
.white-select {
display: none;
}
.header__nav {
width: 100%;
}
.header__wallet-set {
margin-left: 5px;
}
.header__wallet-link {
color: rgba(255, 255, 255, 0.6);
display: block;
padding: 13px 15px 9px 15px;
}
.header__wallet-link:hover,
.header__wallet-link:focus {
background: #55657C;
}
.header__wallet-link span {
display: none;
}
.header__wallet-link:active,
.header__wallet-link.active {
box-shadow: inset 0px 4px 0px rgba(255, 255, 255, 0.25);
}
.dapps-page__pagination,
.page-pagination {
display: flex;
justify-content: center;
padding-bottom: 15px;
padding-right: 15px;
}
.page-pagination__num {
width: 33%;
margin: 0 5px;
}
.page-pagination .btn {
padding: 0;
white-space: nowrap;
width: 45px;
height: 40px;
margin: 0 5px;
}
.page-pagination .btn:first-of-type {
margin-left: 0;
}
.page-pagination .btn:last-of-type {
margin-right: 0;
}
.back-link {
position: relative;
width: 30px;
cursor: pointer;
}
.back-link span {
display: none;
}
.back-link::before {
content: '';
display: block;
color: var(--blue-grey);
background: url("./../PIC/right-arrow.svg") no-repeat;
background-size: 18px 18px;
transform: translateY(-50%) rotate(180deg);
height: 18px;
width: 18px;
position: absolute;
left: 15px;
top: 50%;
}
.back-link:hover::before,
.back-link:focus::before {
opacity: .5;
}
.header__logo--history {
padding: 10px 15px;
}
.back-link--history {
position: absolute;
top: 15px;
font-size: 16px;
line-height: 19px;
line-height: 19px;
font-weight: 400;
text-decoration: none;
}
.back-link--history::before {
left: 0;
}
.back-link--history span {
display: block;
padding-left: 23px;
}
.history-page {
padding-bottom: 110px;
}
.history__text-block {
position: relative;
padding: 10px 15px 10px;
}
.history-page__id {
margin-bottom: 7px;
font-size: 20px;
line-height: 23px;
font-weight: 700;
color: #445368;
}
.history-page__id-count {
max-width: 140px;
margin-left: 2px;
font-size: 20px;
line-height: 23px;
font-weight: 700;
text-align-last: left;
color: #445368;
border: none;
background: #f2f2f2;
}
.history-page__description {
margin: 0;
margin-bottom: 17px;
font-size: 12px;
line-height: 14px;
color: rgba(0, 0, 0, 0.5);
}
.history-page__balance {
display: flex;
align-items: center;
font-size: 14px;
line-height: 16px;
font-weight: 700;
}
.history-page__tera-icon {
margin-left: 5px;
}
.history-page__table {
padding: 15px 0 15px 15px;
}
.history-page__table .grid {
width: 100%;
border-collapse: collapse;
}
.history-page__table-wrap {
overflow-x: auto;
}
.history-page__table th {
background: var(--blue-grey);
color: #fff;
border-right: 1px solid rgba(0, 0, 0, 0.1);
height: 30px;
padding: 0 20px 0 10px;
font-size: 16px;
line-height: 19px;
font-weight: 400;
white-space: nowrap;
text-align-last: left;
}
.history-page__table th:first-child {
border-top-left-radius: 5px;
}
.history-page__table th:last-child {
border-top-right-radius: 5px;
}
.history-page__table .grid tr td {
padding: 2px 10px 0px;
font-size: 14px;
line-height: 16px;
color: #000000;
background-color: #ffffff;
border: 1px solid #C4C4C4;
}
.history-page__table .grid tr th.direct {
max-width:30px;
}
.history-page__table .grid tr td.date
{
white-space: nowrap;
}
.history-page__table .grid tr td:first-of-type {
text-align: center;
}
.history-page__table .grid tr td:first-of-type b {
font-size: 16px!important;
font-weight: 700!important;
}
.history-page__table .grid tr td.desc {
max-width: 170px;
word-break: break-all;
}
@media (min-width: 576px) {
.history__text-block {
padding: 10px 33px 10px;
}
.history-page__table {
padding: 15px 33px;
}
.back-link::before {