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

View File

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

View File

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