github.com/cryptohub-digital/blockbook-fork@v0.0.0-20230713133354-673c927af7f1/static/templates/address.html (about) 1 {{define "specific"}}{{$addr := .Address}}{{$data := .}} 2 <div class="row g-0 ms-2 ms-lg-0"> 3 <div class="col-md-10 order-2 order-md-1"> 4 <h1>{{if $addr.ContractInfo}}Contract {{$addr.ContractInfo.Name}}{{if $addr.ContractInfo.Symbol}} ({{$addr.ContractInfo.Symbol}}){{end}}{{else}}Address {{addressAlias $addr.AddrStr $data}}{{end}}</h1> 5 <h5 class="col-12 d-flex h-data pb-2"><span class="ellipsis copyable">{{$addr.AddrStr}}</span></h5> 6 <h4 class="row"> 7 <div class="col-lg-6">{{formattedAmountSpan $addr.BalanceSat 0 $data.CoinShortcut $data "copyable"}}</div> 8 {{if $addr.SecondaryValue}}<div class="col-lg-6">{{summaryValuesSpan 0 $addr.SecondaryValue $data}}</div>{{end}} 9 </h4> 10 {{if gt $addr.TotalSecondaryValue $addr.SecondaryValue}} 11 <div class="row g-0 small text-muted">Including Tokens</div> 12 <h4 class="row"> 13 <div class="col-lg-6">{{summaryValuesSpan $addr.TotalBaseValue 0 $data}}</div> 14 <div class="col-lg-6">{{summaryValuesSpan 0 $addr.TotalSecondaryValue $data}}</div> 15 </h4> 16 {{end}} 17 </div> 18 <div class="col-md-2 order-1 order-md-2 d-flex justify-content-center justify-content-md-end mb-3 mb-md-0"> 19 <div id="qrcode"></div> 20 <script type="text/javascript" src="/static/js/qrcode.min.js"></script> 21 <script type="text/javascript"> 22 new QRCode(document.getElementById("qrcode"), { text: "{{$addr.AddrStr}}", width: 120, height: 120 }); 23 </script> 24 </div> 25 </div> 26 <table class="table data-table info-table"> 27 <tbody> 28 <tr> 29 <td style="white-space: nowrap;"><h5>Confirmed</h5></td> 30 <td></td> 31 </tr> 32 {{if or (eq .ChainType 1) (eq .ChainType 2)}} 33 <tr> 34 <td style="width: 25%;">Balance</td> 35 <td>{{amountSpan $addr.BalanceSat $data "copyable"}}</td> 36 </tr> 37 <tr> 38 <td>Transactions</td> 39 <td>{{formatInt $addr.Txs}}</td> 40 </tr> 41 <tr> 42 <td>Non-contract Transactions</td> 43 <td>{{formatInt $addr.NonTokenTxs}}</td> 44 </tr> 45 <tr> 46 <td>Internal Transactions</td> 47 <td>{{formatInt $addr.InternalTxs}}</td> 48 </tr> 49 <tr> 50 <td>Nonce</td> 51 <td>{{$addr.Nonce}}</td> 52 </tr> 53 {{if $addr.ContractInfo}} 54 {{if $addr.ContractInfo.Type}} 55 <tr> 56 <td style="width: 25%;">Contract type</td> 57 <td>{{$addr.ContractInfo.Type}}</td> 58 </tr> 59 {{end}} 60 {{if $addr.ContractInfo.CreatedInBlock}} 61 <tr> 62 <td style="width: 25%;">Created in Block</td> 63 <td><a href="/block/{{$addr.ContractInfo.CreatedInBlock}}">{{formatUint32 $addr.ContractInfo.CreatedInBlock}}</a></td> 64 </tr> 65 {{end}} 66 {{if $addr.ContractInfo.DestructedInBlock}} 67 <tr> 68 <td style="width: 25%;">Destructed in Block</td> 69 <td><a href="/block/{{$addr.ContractInfo.DestructedInBlock}}">{{formatUint32 $addr.ContractInfo.DestructedInBlock}}</a></td> 70 </tr> 71 {{end}} 72 {{end}} 73 {{else}} 74 <tr> 75 <td style="width: 25%;">Total Received</td> 76 <td>{{amountSpan $addr.TotalReceivedSat $data "copyable"}}</td> 77 </tr> 78 <tr> 79 <td>Total Sent</td> 80 <td>{{amountSpan $addr.TotalSentSat $data "copyable"}}</td> 81 </tr> 82 <tr> 83 <td>Final Balance</td> 84 <td>{{amountSpan $addr.BalanceSat $data "copyable"}}</td> 85 </tr> 86 <tr> 87 <td>No. Transactions</td> 88 <td>{{formatInt $addr.Txs}}</td> 89 </tr> 90 {{end}} 91 </tbody> 92 </table> 93 {{if $addr.UnconfirmedTxs}} 94 <table class="table data-table info-table"> 95 <tbody> 96 <tr> 97 <td style="white-space: nowrap;"><h5>Unconfirmed</h5></td> 98 <td></td> 99 </tr> 100 <tr> 101 <td style="width: 25%;">Unconfirmed Balance</td> 102 <td>{{amountSpan $addr.UnconfirmedBalanceSat $data "copyable"}}</td> 103 </tr> 104 <tr> 105 <td>No. Transactions</td> 106 <td>{{formatInt $addr.UnconfirmedTxs}}</td> 107 </tr> 108 </tbody> 109 </table> 110 {{end}} 111 {{if or (eq .ChainType 1) (eq .ChainType 2)}} 112 {{if tokenCount $addr.Tokens .FungibleTokenName}} 113 <div class="accordion mt-2 mb-2" id="erc20"> 114 <div class="accordion-item"> 115 <div class="accordion-header" id="erc20Heading"> 116 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#erc20Body" aria-expanded="false" aria-controls="erc20Body"> 117 <div class="row g-0 w-100"> 118 <h5 class="col-md-4 mb-md-0">{{.FungibleTokenName}} Tokens <span class="badge bg-secondary">{{tokenCount $addr.Tokens .FungibleTokenName}}</span></h5> 119 <h5 class="col-md-8 mb-md-0"><span tt="Total value of tokens">{{summaryValuesSpan $addr.TokensBaseValue $addr.TokensSecondaryValue $data}}</span></h5> 120 </div> 121 </button> 122 </div> 123 <div id="erc20Body" class="accordion-collapse collapse" aria-labelledby="erc20Heading" data-bs-parent="#erc20"> 124 <div class="accordion-body"> 125 <table class="table data-table mt-0 mb-0"> 126 <tbody> 127 <tr> 128 <th style="width: 25%;">Contract</th> 129 <th style="width: 30%;">Quantity</th> 130 <th style="width: 35%;">Value</th> 131 <th class="text-end" style="width: 10%;"><span class="d-none d-md-block">Transfers</span><span class="d-block d-md-none">#</span></th> 132 </tr> 133 {{range $t := $addr.Tokens}} 134 {{if eq $t.Type $.FungibleTokenName}} 135 <tr> 136 <td class="ellipsis"><a href="/address/{{$t.Contract}}">{{if $t.Name}}<span class="copyable" cc="{{$t.Contract}}" alias-type="Contract">{{$t.Name}}</span>{{else}}<span class="copyable">{{$t.Contract}}</span>{{end}}</a></td> 137 <td>{{formattedAmountSpan $t.BalanceSat $t.Decimals $t.Symbol $data "copyable"}}</td> 138 <td>{{summaryValuesSpan $t.BaseValue $t.SecondaryValue $data}}</span></td> 139 <td class="text-end">{{formatInt $t.Transfers}}</td> 140 </tr> 141 {{end}} 142 {{end}} 143 </tbody> 144 </table> 145 </div> 146 </div> 147 </div> 148 </div> 149 {{end}} 150 {{if tokenCount $addr.Tokens .NonFungibleTokenName}} 151 <div class="accordion mt-2 mb-2" id="erc721"> 152 <div class="accordion-item"> 153 <div class="accordion-header" id="erc721Heading"> 154 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#erc721Body" aria-expanded="false" aria-controls="erc721Body"> 155 <div class="row g-0 w-100"> 156 <h5 class="col-12 mb-md-0">{{.NonFungibleTokenName}} Tokens <span class="badge bg-secondary">{{tokenCount $addr.Tokens .NonFungibleTokenName}}</span></h5> 157 </div> 158 </button> 159 </div> 160 <div id="erc721Body" class="accordion-collapse collapse" aria-labelledby="erc721Heading" data-bs-parent="#erc721"> 161 <div class="accordion-body"> 162 <table class="table data-table mt-0 mb-0"> 163 <tbody> 164 <tr> 165 <th style="width: 25%;">Contract</th> 166 <th style="width: 65%;">Tokens</th> 167 <th class="text-end" style="width: 10%;"><span class="d-none d-md-block">Transfers</span><span class="d-block d-md-none">#</span></th> 168 </tr> 169 {{range $t := $addr.Tokens}} 170 {{if eq $t.Type $.NonFungibleTokenName}} 171 <tr> 172 <td class="ellipsis"><a href="/address/{{$t.Contract}}">{{if $t.Name}}<span class="copyable" cc="{{$t.Contract}}" alias-type="Contract">{{$t.Name}}</span>{{else}}<span class="copyable">{{$t.Contract}}</span>{{end}}</a></td> 173 <td> 174 {{if eq $.ChainType 2}} 175 {{range $i, $iv := $t.Ids}}{{if $i}}, {{end}}{{formatAmountWithDecimals $iv 0}}{{end}} 176 {{else}} 177 {{range $i, $iv := $t.Ids}}{{if $i}}, {{end}}<a href="/nft/{{$t.Contract}}/{{formatAmountWithDecimals $iv 0}}">{{formatAmountWithDecimals $iv 0}}</a>{{end}} 178 {{end}} 179 </td> 180 <td class="text-end">{{$t.Transfers}}</td> 181 </tr> 182 {{end}} 183 {{end}} 184 </tbody> 185 </table> 186 </div> 187 </div> 188 </div> 189 </div> 190 {{end}} 191 {{if tokenCount $addr.Tokens .MultiTokenName}} 192 <div class="accordion mt-2 mb-2" id="erc1155"> 193 <div class="accordion-item"> 194 <div class="accordion-header" id="erc1155Heading"> 195 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#erc1155Body" aria-expanded="false" aria-controls="erc1155Body"> 196 <div class="row g-0 w-100"> 197 <h5 class="col-12 mb-md-0">{{.MultiTokenName}} Tokens <span class="badge bg-secondary">{{tokenCount $addr.Tokens .MultiTokenName}}</span></h5> 198 </div> 199 </button> 200 </div> 201 <div id="erc1155Body" class="accordion-collapse collapse" aria-labelledby="erc1155Heading" data-bs-parent="#erc1155"> 202 <div class="accordion-body"> 203 <table class="table data-table mt-0 mb-0"> 204 <tbody> 205 <tr> 206 <th style="width: 25%;">Contract</th> 207 <th style="width: 65%;">Tokens</th> 208 <th class="text-end" style="width: 10%;"><span class="d-none d-md-block">Transfers</span><span class="d-block d-md-none">#</span></th> 209 </tr> 210 {{range $t := $addr.Tokens}} 211 {{if eq $t.Type $.MultiTokenName}} 212 <tr> 213 <td class="ellipsis"><a href="/address/{{$t.Contract}}">{{if $t.Name}}<span class="copyable" cc="{{$t.Contract}}" alias-type="Contract">{{$t.Name}}</span>{{else}}<span class="copyable">{{$t.Contract}}</span>{{end}}</a></td> 214 <td> 215 {{range $i, $iv := $t.MultiTokenValues}}{{if $i}}, {{end}}{{formattedAmountSpan $iv.Value 0 $t.Symbol $data ""}} of ID <a href="/nft/{{$t.Contract}}/{{$iv.Id}}">{{$iv.Id}}</a>{{end}} 216 </td> 217 <td class="text-end">{{formatInt $t.Transfers}}</td> 218 </tr> 219 {{end}} 220 {{end}} 221 </tbody> 222 </table> 223 </div> 224 </div> 225 </div> 226 </div> 227 {{end}} 228 {{end}} 229 {{if or $addr.Transactions $addr.Filter}} 230 <div class="row pt-3 pb-1"> 231 <h3 class="col-sm-6 col-lg-3 m-0 align-self-center">Transactions</h3> 232 <div class="col-sm-6 col-lg-3 my-2 my-lg-0 align-self-center"> 233 <select class="w-100" onchange="self.location='?filter='+options[selectedIndex].value"> 234 <option>All</option> 235 <option {{if eq $addr.Filter "inputs"}}selected{{end}} value="inputs">Address on input side</option> 236 <option {{if eq $addr.Filter "outputs"}}selected{{end}} value="outputs">Address on output side</option> 237 {{if $addr.Tokens}} 238 <option {{if eq $addr.Filter "0"}}selected{{end}} value="0">Non-contract</option> 239 <option {{if eq $addr.Filter "1"}}selected{{end}} value="1">Internal</option> 240 {{range $t := $addr.Tokens}} 241 {{if eq $t.Type $.FungibleTokenName}} 242 <option {{if eq $addr.Filter $t.ContractIndex}}selected{{end}} value="{{$t.ContractIndex}}">{{if $t.Name}}{{$t.Name}}{{else}}{{$t.Contract}}{{end}} ({{$.FungibleTokenName}})</option> 243 {{end}} 244 {{end}} 245 {{range $t := $addr.Tokens}} 246 {{if eq $t.Type $.NonFungibleTokenName}} 247 <option {{if eq $addr.Filter $t.ContractIndex}}selected{{end}} value="{{$t.ContractIndex}}">{{if $t.Name}}{{$t.Name}}{{else}}{{$t.Contract}}{{end}} ({{$.NonFungibleTokenName}})</option> 248 {{end}} 249 {{end}} 250 {{range $t := $addr.Tokens}} 251 {{if eq $t.Type $.MultiTokenName}} 252 <option {{if eq $addr.Filter $t.ContractIndex}}selected{{end}} value="{{$t.ContractIndex}}">{{if $t.Name}}{{$t.Name}}{{else}}{{$t.Contract}}{{end}} ({{$.MultiTokenName}})</option> 253 {{end}} 254 {{end}} 255 {{end}} 256 </select> 257 </div> 258 <div class="col-lg-6"> 259 {{template "paging" $data}} 260 </div> 261 </div> 262 <div> 263 {{range $tx := $addr.Transactions}}{{$data := setTxToTemplateData $data $tx}}{{template "txdetail" $data}}{{end}} 264 </div> 265 {{template "paging" $data }} 266 {{end}}{{end}}