38 lines
1000 B
Go
38 lines
1000 B
Go
|
package bitcoin
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"net/url"
|
||
|
)
|
||
|
|
||
|
type Address struct {
|
||
|
Address string `json:"address"`
|
||
|
ChainStats struct {
|
||
|
FundedTxoCount int `json:"funded_txo_count"`
|
||
|
FundedTxoSum int `json:"funded_txo_sum"`
|
||
|
SpentTxoCount int `json:"spent_txo_count"`
|
||
|
SpentTxoSum int `json:"spent_txo_sum"`
|
||
|
TxCount int `json:"tx_count"`
|
||
|
} `json:"chain_stats"`
|
||
|
MempoolStats struct {
|
||
|
FundedTxoCount int `json:"funded_txo_count"`
|
||
|
FundedTxoSum int `json:"funded_txo_sum"`
|
||
|
SpentTxoCount int `json:"spent_txo_count"`
|
||
|
SpentTxoSum int `json:"spent_txo_sum"`
|
||
|
TxCount int `json:"tx_count"`
|
||
|
} `json:"mempool_stats"`
|
||
|
}
|
||
|
|
||
|
// GetAddress returns an Address struct populated with data from blockstream.info
|
||
|
// for a given BTC address
|
||
|
func (c *Client) GetAddress(address string) (*Address, error) {
|
||
|
addressResponse := &Address{}
|
||
|
|
||
|
err := c.get(fmt.Sprintf("address/%s", address), addressResponse, url.Values{})
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return addressResponse, nil
|
||
|
}
|