Highlight own ethereum addresses in explorer like in xpub explorer

This commit is contained in:
Martin Boehm 2019-02-14 14:53:35 +01:00
parent 0546a2609d
commit 88d9e09ad4
4 changed files with 35 additions and 28 deletions

View File

@ -416,6 +416,7 @@ func (s *PublicServer) parseTemplates() []*template.Template {
"formatAmountWithDecimals": formatAmountWithDecimals,
"setTxToTemplateData": setTxToTemplateData,
"isOwnAddress": isOwnAddress,
"isOwnAddresses": isOwnAddresses,
}
var createTemplate func(filenames ...string) *template.Template
if s.debug {
@ -504,19 +505,25 @@ func setTxToTemplateData(td *TemplateData, tx *api.Tx) *TemplateData {
return td
}
// returns true if addresses are "own",
// returns true if address is "own",
// i.e. either the address of the address detail or belonging to the xpub
func isOwnAddress(td *TemplateData, addresses []string) bool {
if len(addresses) == 1 {
a := addresses[0]
if a == td.AddrStr {
func isOwnAddress(td *TemplateData, a string) bool {
if a == td.AddrStr {
return true
}
if td.Address != nil && td.Address.XPubAddresses != nil {
if _, found := td.Address.XPubAddresses[a]; found {
return true
}
if td.Address != nil && td.Address.XPubAddresses != nil {
if _, found := td.Address.XPubAddresses[a]; found {
return true
}
}
}
return false
}
// returns true if addresses are "own",
// i.e. either the address of the address detail or belonging to the xpub
func isOwnAddresses(td *TemplateData, addresses []string) bool {
if len(addresses) == 1 {
return isOwnAddress(td, addresses[0])
}
return false
}

View File

@ -14,7 +14,7 @@
<table class="table data-table">
<tbody>
{{- range $vin := $tx.Vin -}}
<tr{{if isOwnAddress $data $vin.Addresses}} class="tx-own"{{end}}>
<tr{{if isOwnAddresses $data $vin.Addresses}} class="tx-own"{{end}}>
<td>
{{- if $vin.Txid -}}
<a class="float-left text-muted" href="/tx/{{$vin.Txid}}" title="Outpoint {{$vin.Txid}},{{$vin.Vout}}">&nbsp;</a>
@ -49,7 +49,7 @@
<table class="table data-table">
<tbody>
{{- range $vout := $tx.Vout -}}
<tr{{if isOwnAddress $data $vout.Addresses}} class="tx-own"{{end}}>
<tr{{if isOwnAddresses $data $vout.Addresses}} class="tx-own"{{end}}>
<td>
{{- range $a := $vout.Addresses -}}
<span class="ellipsis tx-addr">

View File

@ -1,4 +1,4 @@
{{define "txdetail"}}{{$cs := .CoinShortcut}}{{$addr := .AddrStr}}{{$tx := .Tx}}
{{define "txdetail"}}{{$cs := .CoinShortcut}}{{$addr := .AddrStr}}{{$tx := .Tx}}{{$data := .}}
<div class="alert alert-data"{{if eq $tx.EthereumSpecific.Status 0}} style="background-color: #faf2ee;"{{end}}>
<div class="row line-bot">
<div class="col-xs-7 col-md-8 ellipsis">
@ -11,18 +11,18 @@
</div>
<div class="row line-mid">
<div class="col-md-4">
<div class="row">
<div class="row tx-in">
<table class="table data-table">
<tbody>
{{- range $vin := $tx.Vin -}}
<tr>
<tr{{if isOwnAddresses $data $vin.Addresses}} class="tx-own"{{end}}>
<td>
{{- range $a := $vin.Addresses -}}
<span class="ellipsis float-left">
<span class="ellipsis tx-addr">
{{if and (ne $a $addr) $vin.Searchable}}<a href="/address/{{$a}}">{{$a}}</a>{{else}}{{$a}}{{end}}
</span>
{{- else -}}
<span class="float-left">Unparsed address</span>
<span class="tx-addr">Unparsed address</span>
{{- end -}}
</td>
</tr>
@ -41,18 +41,18 @@
</svg>
</div>
<div class="col-md-4">
<div class="row">
<div class="row tx-out">
<table class="table data-table">
<tbody>
{{- range $vout := $tx.Vout -}}
<tr>
<tr{{if isOwnAddresses $data $vout.Addresses}} class="tx-own"{{end}}>
<td>
{{- range $a := $vout.Addresses -}}
<span class="ellipsis float-left">
<span class="ellipsis tx-addr">
{{- if and (ne $a $addr) $vout.Searchable}}<a href="/address/{{$a}}">{{$a}}</a>{{else}}{{$a}}{{- end -}}
</span>
{{- else -}}
<span class="float-left">Unparsed address</span>
<span class="tx-addr">Unparsed address</span>
{{- end -}}
</td>
</tr>
@ -76,12 +76,12 @@
{{- range $erc20 := $tx.TokenTransfers -}}
<div class="row" style="padding: 2px 15px;">
<div class="col-md-4">
<div class="row">
<div class="row tx-in">
<table class="table data-table">
<tbody>
<tr>
<tr{{if isOwnAddress $data $erc20.From}} class="tx-own"{{end}}>
<td>
<span class="ellipsis float-left">{{if ne $erc20.From $addr}}<a href="/address/{{$erc20.From}}">{{$erc20.From}}</a>{{else}}{{$erc20.From}}{{end}}</span>
<span class="ellipsis tx-addr">{{if ne $erc20.From $addr}}<a href="/address/{{$erc20.From}}">{{$erc20.From}}</a>{{else}}{{$erc20.From}}{{end}}</span>
</td>
</tr>
</tbody>
@ -94,12 +94,12 @@
</svg>
</div>
<div class="col-md-4">
<div class="row">
<div class="row tx-out">
<table class="table data-table">
<tbody>
<tr>
<tr{{if isOwnAddress $data $erc20.To}} class="tx-own"{{end}}>
<td>
<span class="ellipsis float-left">{{if ne $erc20.To $addr}}<a href="/address/{{$erc20.To}}">{{$erc20.To}}</a>{{else}}{{$erc20.To}}{{end}}</span>
<span class="ellipsis tx-addr">{{if ne $erc20.To $addr}}<a href="/address/{{$erc20.To}}">{{$erc20.To}}</a>{{else}}{{$erc20.To}}{{end}}</span>
</td>
</tr>
</tbody>

View File

@ -29,7 +29,7 @@
<td>Used XPUB Addresses</td>
<td class="data">{{$addr.TotalTokens}}</td>
</tr>
{{- if $addr.Tokens -}}
{{- if or $addr.Tokens $addr.TotalTokens -}}
<tr>
<td>{{if $data.NonZeroBalanceTokens}}XPUB Addresses with Balance{{else}}XPUB Addresses{{end}}</td>
<td style="padding: 0;">