github.com/deroproject/derosuite@v2.1.6-1.0.20200307070847-0f2e589c7a2b+incompatible/cmd/explorer/templates.go (about) 1 // Copyright 2017-2018 DERO Project. All rights reserved. 2 // Use of this source code in any form is governed by RESEARCH license. 3 // license can be found in the LICENSE file. 4 // GPG: 0F39 E425 8C65 3947 702A 8234 08B2 0360 A03A 9DE8 5 // 6 // 7 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 8 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 9 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 10 // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 12 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 13 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 15 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 16 17 package main 18 19 // this files defines all the templates 20 21 var header_template string = ` 22 {{define "header"}} 23 <!DOCTYPE html> 24 <html lang="en"> 25 <head> 26 <meta charset="UTF-8"> 27 <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 28 <title>{{ .title }}</title> 29 <!--<link rel="stylesheet" type="text/css" href="/css/style.css">--> 30 <style type="text/css"> 31 body { 32 margin: 0; 33 padding: 0; 34 color: green; 35 background-color: white; 36 } 37 38 h1, h2, h3, h4, h5, h6 { 39 text-align: center; 40 } 41 42 .center { 43 margin: auto; 44 width: 96%; 45 /*border: 1px solid #73AD21; 46 padding: 10px;*/ 47 } 48 49 tr, li, #pages, .info { 50 font-family: "Lucida Console", Monaco, monospace; 51 font-size : 12px; 52 height: 22px; 53 } 54 55 #pages 56 { 57 margin-top: 15px; 58 } 59 60 td { 61 text-align: center; 62 } 63 64 a:link { 65 text-decoration: none; 66 color: blue; 67 } 68 69 a:visited { 70 text-decoration: none; 71 color: blue; 72 } 73 74 a:hover { 75 text-decoration: underline; 76 color: blue; 77 } 78 79 a:active { 80 text-decoration: none; 81 color: blue; 82 } 83 84 form { 85 display: inline-block; 86 text-align: center; 87 } 88 89 .style-1 input[type="text"] { 90 padding: 2px; 91 border: solid 1px #dcdcdc; 92 transition: box-shadow 0.3s, border 0.3s; 93 } 94 .style-1 input[type="text"]:focus, 95 .style-1 input[type="text"].focus { 96 border: solid 1px #707070; 97 box-shadow: 0 0 5px 1px #969696; 98 } 99 100 101 .tabs { 102 position: relative; 103 min-height: 220px; /* This part sucks */ 104 clear: both; 105 margin: 25px 0; 106 } 107 108 .tab { 109 float: left; 110 } 111 112 .tab label { 113 background: white; 114 padding: 10px; 115 border: 1px solid #ccc; 116 margin-left: -1px; 117 position: relative; 118 left: 1px; 119 } 120 121 .tab [type=radio] { 122 display: none; 123 } 124 125 .content { 126 position: absolute; 127 top: 28px; 128 left: 0; 129 background: white; 130 right: 0; 131 bottom: 0; 132 padding: 20px; 133 border: 1px solid #ccc; 134 } 135 136 [type=radio]:checked ~ label { 137 background: #505050 ; 138 border-bottom: 1px solid green; 139 z-index: 2; 140 } 141 142 [type=radio]:checked ~ label ~ .content { 143 z-index: 1; 144 } 145 146 input#toggle-1[type=checkbox] { 147 position: absolute; 148 /*top: -9999px;*/ 149 left: -9999px; 150 151 } 152 label#show-decoded-inputs { 153 /*-webkit-appearance: push-button;*/ 154 /*-moz-appearance: button;*/ 155 display: inline-block; 156 /*margin: 60px 0 10px 0;*/ 157 cursor: pointer; 158 background-color: white;; 159 color: green; 160 width: 100%; 161 text-align: center; 162 } 163 164 div#decoded-inputs{ 165 display: none; 166 } 167 168 /* Toggled State */ 169 input#toggle-1[type=checkbox]:checked ~ div#decoded-inputs { 170 display: block; 171 } 172 </style> 173 174 </head> 175 <body> 176 <div> 177 178 <div class="center"> 179 <h1 class="center"> 180 <img alt="logo" style="vertical-align:middle" height="64" width="64" src="data:image/png;base64,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" /> 181 182 183 <a href="/">{{ .title }} {{if .testnet}} TestNet {{end}}</a></h1> 184 <!-- <h4 style="font-size: 15px; margin: 0px">(no javascript - no cookies - no web analytics trackers - no images - open sourced)</h4> --> 185 </div> 186 187 188 <div class="center"> 189 <form action="/search" method="get" style="width:100%; margin-top:15px" class="style-1"> 190 <input type="text" name="value" size="120" 191 placeholder="block height, block hash, transaction hash"> 192 <input type="submit" value="Search"> 193 </form> 194 </div> 195 196 </div> 197 198 {{if .Network_Difficulty}} 199 <div class="center"> 200 <h3 style="font-size: 12px; margin-top: 20px"> 201 Server time: {{ .servertime }} | <a href="/txpool">Transaction pool</a> 202 </h3> 203 204 205 <h3 style="font-size: 12px; margin-top: 5px; margin-bottom: 3"> 206 Network difficulty: {{ .Network_Difficulty }} 207 | Hash rate: {{ .hash_rate }} KH/s 208 | Average Block Time(50) {{.averageblocktime50}} sec 209 | Total supply : {{ .total_supply }} 210 | Mempool size : {{ .txpool_size }} 211 | Fee per kb: {{.fee_per_kb}} 212 | Median block size limit: {{.median_block_size}} kB 213 214 </h3> 215 216 </div> 217 {{end}} 218 {{end}} 219 ` 220 221 var block_template string = `{{define "block"}} 222 {{ template "header" . }} 223 <div> 224 225 <H4>Block Topo height (unique): {{.block.TopoHeight}} Block height: ({{.block.Height}})</H4> 226 <H4>Block hash: {{.block.Hash}}</H4> 227 228 {{range $i, $a := .block.Tips}} 229 <H5>Previous blocks: <a href="/block/{{$a}}">{{$a}}</a></H5> 230 {{end}} 231 232 <!-- 233 <H5>Next block: <a href="/block/a8ade20d5cad5e23105cfc25687beb2498844a984b1450330c67705b6c720596">a8ade20d5cad5e23105cfc25687beb2498844a984b1450330c67705b6c720596</a></H5> 234 --> 235 <table class="center"> 236 <tr> 237 <td>Timestamp [UCT] (epoch):</td><td>{{.block.Block_time}} ({{.block.Epoch}})</td> 238 <td>Age [h:m:s]:</td><td>{{.block.Age}}</td> 239 <td>Δ [h:m:s]:</td><td></td> 240 </tr> 241 <tr> 242 <td>Major.minor version:</td><td>{{.block.Major_Version}}.{{.block.Minor_Version}}</td> 243 <td>Block reward:</td><td>{{.block.Reward}}</td> 244 <td>Block size [kB]:</td><td>{{.block.Size}}</td> 245 </tr> 246 <tr> 247 <td>nonce:</td><td>{{.block.Nonce}}</td> 248 <td>Total fees:</td><td>{{.block.Fees}}</td> 249 <td>No of txs:</td><td>{{.block.Tx_Count}}</td> 250 </tr> 251 </table> 252 253 <h3>Miner reward transaction</h3> 254 <table class="center"> 255 <tr> 256 <td>hash</td> 257 <td>outputs</td> 258 <td>size [kB]</td> 259 <td>version</td> 260 </tr> 261 <tr> 262 <td><a href="/tx/{{.block.Mtx.Hash}}">{{.block.Mtx.Hash}}</a> 263 <td>{{.block.Mtx.Amount}}</td> 264 <td>{{.block.Mtx.Size}}</td> 265 <td>{{.block.Mtx.Version}}</td> 266 </tr> 267 268 </table> 269 270 <h3>Transactions ({{.block.Tx_Count}})</h3> 271 <table class="center" style="width:80%"> 272 <tr> 273 <td>hash</td> 274 <td>outputs</td> 275 <td>fee</td> 276 <td>ring size</td> 277 <td>in/out</td> 278 279 <td>version</td> 280 <td>size [kB]</td> 281 </tr> 282 {{range .block.Txs}} 283 <tr> 284 285 {{if .Skipped }}<td><a href="/tx/{{.Hash}}"><font color="indianred">{{.Hash}}</font> </a></td> 286 {{else}} 287 <td><a href="/tx/{{.Hash}}">{{.Hash}}</a></td> 288 {{end}} 289 290 <td>?</td> 291 <td>{{.Fee}}</td> 292 <td>{{.Ring_size}}</td> 293 <td>{{.In}}/{{.Out}}</td> 294 <td>{{.Version}}</td> 295 <td>{{.Size}}</td> 296 </tr> 297 {{end}} 298 </table> 299 300 </div> 301 302 {{ template "footer" . }} 303 {{end}} 304 ` 305 306 var tx_template string = `{{define "tx"}} 307 {{ template "header" . }} 308 <div> 309 <H4 style="margin:5px">Tx hash: {{.info.Hash}}</H4> 310 <H5 style="margin:5px">Tx prefix hash: {{.info.PrefixHash}}</H5> 311 312 <H5>Block: <a href="/block/{{.info.ValidBlock}}">{{.info.ValidBlock}}</a> (VALID) </H5> 313 314 {{range $i, $e := .info.InvalidBlock}} 315 <H5>Block: <a href="/block/{{$e}}">{{$e}}</a></H5> 316 {{end}} 317 318 319 <H5 style="margin:5px">Tx public key: {{.info.TXpublickey}}</H5> 320 321 {{if .info.PayID32}} 322 <H5 style="margin:5px">PaymentID: {{.info.PayID32}}</H5> 323 {{end}} 324 {{if .info.PayID8}} 325 <H5 style="margin:5px">Encrypted PaymentID: {{.info.PayID8}}</H5> 326 {{end}} 327 328 <table class="center" style="width: 80%; margin-top:10px"> 329 <tr> 330 <td>Timestamp: {{.info.Timestamp}} </td> 331 <td>Timestamp [UTC]: {{.info.Block_time}}</td> 332 <td>Age [y:d:h:m:s]: {{.info.Age}} </td> 333 </tr> 334 <tr> 335 <td>Block: <a href="/block/{{.info.Height}}">{{.info.Height}}</a></td> 336 <td>Fee: {{.info.Fee}}</td> 337 <td>Tx size: {{.info.Size}} kB</td> 338 </tr> 339 <tr> 340 <td>Tx version: {{.info.Version}}</td> 341 <td>No of confirmations: {{.info.Depth}}</td> 342 <td>Signature type: {{.info.Type}}</td> 343 </tr> 344 <tr> 345 <td colspan="3">Extra: {{.info.Extra}}</td> 346 </tr> 347 </table> 348 <h3>{{.info.Out}} output(s) for total of {{.info.Amount}} dero</h3> 349 <div class="center"> 350 <table class="center"> 351 <tr> 352 <td>stealth address</td> 353 <td>amount</td> 354 <td>amount idx</td> 355 </tr> 356 357 {{range $i, $e := .info.OutAddress}} 358 <tr> 359 <td>{{ $e }}</td> 360 <td>{{$.info.Amount}}</td> 361 <td>{{index $.info.OutOffset $i}}</td> 362 </tr> 363 {{end}} 364 </table> 365 </div> 366 367 <!-- TODO currently we donot enable user to prove or decode something --> 368 <br/> 369 <br/> 370 <div class="center" style="border: 1px"> 371 <table class="center" border="1"> 372 <tr> 373 <td> <h3>Prove to someone that you have sent them DERO in this transaction</h3> 374 </td> 375 </tr> 376 <tr> 377 <td> 378 Tx private key can be obtained using <i>get_tx_key</i> 379 command in <i>dero-wallet-cli</i> 380 <br> 381 Note: address and tx private key are sent to the server, as the calculations are done on the server side 382 383 </td> 384 </tr> 385 <tr> 386 <td> 387 388 389 390 <form method="post" style="width:100%;margin-top:2px" class="style-1"> 391 <input name="txprvkey" size="120" placeholder="Tx private key" type="text"><br> 392 <input name="raw_tx_data" value="" type="hidden"> 393 <!--above raw_tx_data field only used when checking raw tx data through tx pusher--> 394 <input name="deroaddress" size="120" placeholder="Recipient's dero address" style="margin-top:5px" type="text"><br> 395 396 <input value="Prove sending" style="margin-top:5px" type="submit"> 397 398 </form> 399 </td> 400 </tr> 401 402 {{if .info.Proof_amount }} 403 <tr> 404 <td><h2><font color="blue">{{.info.Proof_address}} Received {{.info.Proof_amount}} DERO 405 406 {{if .info.Proof_PayID8}} 407 <br/> Decrypted Payment ID {{ .info.Proof_PayID8}} 408 {{end}} 409 </font> </h2> 410 </td> 411 </tr> 412 {{end}} 413 414 {{if .info.Proof_error }} 415 <tr> 416 <td> <font color="red">{{.info.Proof_error}}</font> 417 </td> 418 </tr> 419 {{end}} 420 421 422 </table> 423 424 </div> 425 426 {{if eq .info.CoinBase false}} 427 428 <h3>{{.info.In}} input(s) for total of ? dero</h3> 429 <div class="center"> 430 <table class="center"> 431 <tr> 432 <td> 433 434 435 436 {{range $i,$e := $.info.Ring }} 437 <tr> 438 </tr> 439 <tr> 440 <td style="text-align: center;"> 441 {{$i}} key image {{ index $.info.Keyimages $i }} 442 </td> 443 <td>amount: ?</td> 444 </tr> 445 <tr> 446 <td> 447 <table class="center"> 448 <tr> 449 <td style="text-align: center;"> 450 Ring Member 451 </td> 452 <td style="text-align: center;"> 453 Global Index 454 </td> 455 <td style="text-align: center;"> 456 Height 457 </td> 458 <td style="text-align: center;"> 459 TopoHeight 460 </td> 461 </tr> 462 463 {{range $j := . }} 464 <tr> 465 <td style="text-align: center;"> 466 {{ .InKey.Destination }}<br/>{{ .InKey.Mask }}<br/> 467 </td> 468 <td style="text-align: center;">{{ .Index_Global }}</td> 469 <td style="text-align: center;">{{ .Height }}</td> 470 <td style="text-align: center;">{{ .TopoHeight }}</td> 471 </tr> 472 {{end}} 473 474 475 </table> 476 </tr> 477 478 479 480 {{end}} 481 482 483 </table> 484 </div> 485 {{end}} 486 </div> 487 {{ template "footer" . }} 488 489 {{end}}` 490 491 var txpool_template string = `{{define "txpool"}} 492 <h2 style="margin-bottom: 0px"> 493 Transaction pool 494 </h2> 495 <h4 style="font-size: 12px; margin-top: 0px">(no of txs: {{ .txpool_size }}, size: 0.00 kB, updated every 5 seconds)</h4> 496 <div class="center"> 497 498 <table class="center" style="width:80%"> 499 <tr> 500 <td>age [h:m:s]</td> 501 <td>transaction hash</td> 502 <td>fee</td> 503 <td>outputs</td> 504 <td>in(nonrct)/out</td> 505 <td>ring size</td> 506 <td>tx size [kB]</td> 507 </tr> 508 509 510 {{range .mempool}} 511 <tr> 512 <td></td> 513 <td><a href="/tx/{{.Hash}}">{{.Hash}}</a></td> 514 <td>{{.Fee}}</td> 515 <td>N/A</td> 516 <td>{{.In}}/{{.Out}}</td> 517 <td>{{.Ring_size}}</td> 518 <td>{{.Size}}</td> 519 520 </tr> 521 522 {{end}} 523 </table> 524 525 526 527 </div> 528 {{end}}` 529 530 // full page txpool_template 531 var txpool_page_template string = `{{define "txpool_page"}} 532 {{ template "header" . }} 533 {{ template "txpool" . }} 534 {{ template "footer" . }} 535 {{end}}` 536 537 // not found page txpool_template 538 var notfound_page_template string = `{{define "notfound_page"}} 539 {{ template "header" . }} 540 541 <h2 style="margin-bottom: 0px"><font color="red">No details found in database</font></h2> 542 {{ template "footer" . }} 543 {{end}}` 544 545 var main_template string = ` 546 {{define "main"}} 547 {{ template "header" . }} 548 {{ template "txpool" . }} 549 550 <h2 style="margin-bottom: 0px">Transactions in the last 11 blocks</h2> 551 552 <h4 style="font-size: 14px; margin-top: 0px">(Median size of these blocks: 0.09 kB)</h4> 553 554 <div class="center"> 555 556 <table class="center"> 557 <tr> 558 <td>height</td> 559 <td>topo height</td> 560 <td>age [h:m:s]<!--(Δm)--></td> 561 <td>size [kB]<!--(Δm)--></td> 562 <td>tx hash</td> 563 <td>fees</td> 564 <td>outputs</td> 565 <td>in(nonrct)/out</td> 566 <td>ring size</td> 567 <td>tx size [kB]</td> 568 </tr> 569 570 571 {{range .block_array}} 572 <tr> 573 <td> {{if .SyncBlock }} <strong>{{.Height}}</strong> {{else}} <font color="purple">{{.Height}}</font> 574 {{end}} </td> 575 <td><a href="/block/{{.TopoHeight}}">{{.TopoHeight}}</a></td> 576 577 <td>{{.Age}}</td> 578 <td>{{.Size}}</td> 579 <td><a href="/tx/{{.Mtx.Hash}}">{{.Mtx.Hash}} </a></td> 580 <td>N/A</td> 581 <td>{{.Mtx.Amount}}</td> 582 <td>{{.Mtx.In}}/{{.Mtx.Out}}</td> 583 <td>0</td> 584 <td>{{.Mtx.Size}}</td> 585 586 </tr> 587 588 {{range .Txs}} 589 <tr> 590 <td></td> 591 <td></td> 592 <td></td> 593 <td></td> 594 595 {{if .Skipped }}<td><a href="/tx/{{.Hash}}"><font color="indianred">{{.Hash}}</font> </a></td> 596 {{else}} 597 <td><a href="/tx/{{.Hash}}">{{.Hash}}</a></td> 598 {{end}} 599 600 601 602 <td>{{.Fee}}</td> 603 <td>N/A</td> 604 <td>{{.In}}/{{.Out}}</td> 605 <td>{{.Ring_size}}</td> 606 <td>{{.Size}}</td> 607 608 </tr> 609 {{end}} 610 611 {{end}} 612 </table> 613 {{ template "paging" . }} 614 615 </div> 616 {{ template "footer" . }} 617 {{end}}` 618 619 var paging_template string = `{{ define "paging"}} 620 621 <div id="pages" class="center" style="text-align: center;"> 622 <a href="/page/{{.previous_page}}">previous page</a> | 623 <a href="/">first page</a> | 624 current page: {{.current_page}}/<a href="/page/{{.total_page}}">{{.total_page}}</a> 625 | <a href="/page/{{.next_page}}">next page</a> 626 </div> 627 628 {{end}}` 629 630 var footer_template string = ` {{define "footer"}} 631 <div class="center"> 632 <h6 style="margin-top:10px"> 633 <a href="https://github.com/deroproject/">DERO explorer source code</a> 634 | explorer version (api): under development (1.0) 635 | dero version: golang pre-alpha 636 | Copyright 2017-2018 Dero Project 637 </h6> 638 </div> 639 </body> 640 </html> 641 {{end}} 642 `