Documentation ¶
Overview ¶
Copyright (c) 2020 Blockwatch Data Inc. Author: alex@blockwatch.cc
Copyright (c) 2020 Blockwatch Data Inc. Author: alex@blockwatch.cc
Index ¶
- Variables
- func BasicAuth(username, password string) string
- type AddressActivityStats
- type AddressAgeStats
- type AddressBalanceStats
- type Block
- type Chain
- type Client
- func (c *Client) Get(ctx context.Context, urlpath string, headers http.Header, result interface{}) error
- func (c *Client) GetDataset(ctx context.Context, dbcode, setcode string) (*Dataset, error)
- func (c *Client) GetSeries(ctx context.Context, dbcode, setcode string, params SeriesParams) (*Series, error)
- func (c *Client) GetTable(ctx context.Context, dbcode, setcode string, params TableParams) (*Table, error)
- func (c *Client) ListDatabases(ctx context.Context, params DatabaseListParams) (*DatabaseList, error)
- func (c *Client) ListDatasets(ctx context.Context, dbcode string, params DatasetListParams) ([]Dataset, error)
- type CollapseMode
- type ConnConfig
- type Database
- type DatabaseList
- type DatabaseListParams
- type Datafield
- type Dataframe
- type Dataset
- type DatasetListParams
- type Error
- type Errors
- type FieldType
- type Filter
- type FilterMode
- type Flow
- type HTTPError
- type Ohlcv
- type OrderMode
- type RateLimitError
- type Row
- type Series
- type SeriesParams
- type SupplyStats
- type Table
- type TableParams
- type Trade
- type Tx
- type TxStats
- type UtxoStats
Constants ¶
This section is empty.
Variables ¶
var ( // Defines the User Agent string sent to HTTP servers. May be overwritten // by clients. UserAgent = "Blockwatch-Data-SDK/" + sdkVersion // ERootCAFailed is the error returned when a failure to add a provided // root CA to the list of known CAs occurs. ERootCAFailed = errors.New("failed to add Root CAs to certificate pool") )
var (
TagName = "json"
)
Functions ¶
func BasicAuth ¶
See 2 (end of page 4) http://www.ietf.org/rfc/rfc2617.txt "To receive authorization, the client sends the userid and password, separated by a single colon (":") character, within a base64 encoded string in the credentials." It is not meant to be urlencoded.
Types ¶
type AddressActivityStats ¶
type AddressActivityStats struct { Timestamp time.Time `json:"time"` BlockCount int64 `json:"n_blocks"` AverageBlockTime float64 `json:"avg_solvetime"` BlockchainGrowth int64 `json:"size_growth"` SumRewards float64 `json:"sum_rewards"` SumBurned float64 `json:"sum_burned"` SumCoinDaysDestroyed float64 `json:"sum_cdd"` TransactionVolume float64 `json:"sum_vol"` TransactionFees float64 `json:"sum_fee"` TransactionCount int64 `json:"n_tx"` UtxoCreated int64 `json:"n_vout"` SpendableUtxoCreated int64 `json:"n_svout"` UnspendableTxoCreated int64 `json:"n_uvout"` UtxoConsumed int64 `json:"n_vin"` AddressesSeen int64 `json:"n_addr_active"` AddressesCreated int64 `json:"n_addr_new"` AddressesFunded int64 `json:"n_addr_funded"` AddressesEmpty int64 `json:"n_addr_empty"` AddressReusePercent float64 `json:"pct_addr_reuse"` Top1ByVolume float64 `json:"vol_top1"` Top10ByVolume float64 `json:"vol_top10"` Top100ByVolume float64 `json:"vol_top100"` Top1kByVolume float64 `json:"vol_top1k"` Top10kByVolume float64 `json:"vol_top10k"` Top100kByVolume float64 `json:"vol_top100k"` Top1ByTx int64 `json:"tx_top1"` Top10ByTx int64 `json:"tx_top10"` Top100ByTx int64 `json:"tx_top100"` Top1kByTx int64 `json:"tx_top1k"` Top10kByTx int64 `json:"tx_top10k"` Top100kByTx int64 `json:"tx_top100k"` }
AddressActivityStats is a Go struct type that can hold blockchain statistics data as stored in blockchain *-EOD:ACTIVITY time series.
type AddressAgeStats ¶
type AddressAgeStats struct { Timestamp time.Time `json:"time"` Y1DormantAddr int64 `json:"y1_addr"` Y1DormantFunds float64 `json:"y1_funds"` Y2DormantAddr int64 `json:"y2_addr"` Y2DormantFunds float64 `json:"y2_funds"` Y3DormantAddr int64 `json:"y3_addr"` Y3DormantFunds float64 `json:"y3_funds"` Y4DormantAddr int64 `json:"y4_addr"` Y4DormantFunds float64 `json:"y4_funds"` Y5DormantAddr int64 `json:"y5_addr"` Y5DormantFunds float64 `json:"y5_funds"` Y6DormantAddr int64 `json:"y6_addr"` Y6DormantFunds float64 `json:"y6_funds"` Y7DormantAddr int64 `json:"y7_addr"` Y7DormantFunds float64 `json:"y7_funds"` Y8DormantAddr int64 `json:"y8_addr"` Y8DormantFunds float64 `json:"y8_funds"` Y9DormantAddr int64 `json:"y9_addr"` Y9DormantFunds float64 `json:"y9_funds"` Y10DormantAddr int64 `json:"y10_addr"` Y10DormantFunds float64 `json:"y10_funds"` Y11DormantAddr int64 `json:"y11_addr"` Y11DormantFunds float64 `json:"y11_funds"` Y12DormantAddr int64 `json:"y12_addr"` Y12DormantFunds float64 `json:"y12_funds"` Y13DormantAddr int64 `json:"y13_addr"` Y13DormantFunds float64 `json:"y13_funds"` Y14DormantAddr int64 `json:"y14_addr"` Y14DormantFunds float64 `json:"y14_funds"` Y15DormantAddr int64 `json:"y15_addr"` Y15DormantFunds float64 `json:"y15_funds"` Y16DormantAddr int64 `json:"y16_addr"` Y16DormantFunds float64 `json:"y16_funds"` Y17DormantAddr int64 `json:"y17_addr"` Y17DormantFunds float64 `json:"y17_funds"` Y18DormantAddr int64 `json:"y18_addr"` Y18DormantFunds float64 `json:"y18_funds"` Y19DormantAddr int64 `json:"y19_addr"` Y19DormantFunds float64 `json:"y19_funds"` Y20DormantAddr int64 `json:"y20_addr"` Y20DormantFunds float64 `json:"y20_funds"` }
AddressAgeStats is a Go struct type that can hold blockchain statistics data as stored in blockchain *-EOD:AGE time series.
type AddressBalanceStats ¶
type AddressBalanceStats struct { Timestamp time.Time `json:"time"` Top1Richest float64 `json:"rich_top1"` Top10Richest float64 `json:"rich_top10"` Top100Richest float64 `json:"rich_top100"` Top1kRichest float64 `json:"rich_top1k"` Top10kRichest float64 `json:"rich_top10k"` Top100kRichest float64 `json:"rich_top100k"` SumFundsAtAddressesAbove1atom float64 `json:"funds_e0"` SumFundsAtAddressesAbove10atoms float64 `json:"funds_e1"` SumFundsAtAddressesAbove100atoms float64 `json:"funds_e2"` SumFundsAtAddressesAbove1katoms float64 `json:"funds_e3"` SumFundsAtAddressesAbove10katoms float64 `json:"funds_e4"` SumFundsAtAddressesAbove100katoms float64 `json:"funds_e5"` SumFundsAtAddressesAbove1Matoms float64 `json:"funds_e6"` SumFundsAtAddressesAbove10Matoms float64 `json:"funds_e7"` SumFundsAtAddressesAbove1coin float64 `json:"funds_e8"` SumFundsAtAddressesAbove10coins float64 `json:"funds_e9"` SumFundsAtAddressesAbove100coins float64 `json:"funds_e10"` SumFundsAtAddressesAbove1kcoins float64 `json:"funds_e11"` SumFundsAtAddressesAbove10kcoins float64 `json:"funds_e12"` SumFundsAtAddressesAbove100kcoins float64 `json:"funds_e13"` SumFundsAtAddressesAbove1Mcoins float64 `json:"funds_e14"` SumFundsAtAddressesAbove10Mcoins float64 `json:"funds_e15"` SumFundsAtAddressesAbove100Mcoins float64 `json:"funds_e16"` AddresssCountAbove1atom int64 `json:"addrs_e0"` AddresssCountAbove10atoms int64 `json:"addrs_e1"` AddresssCountAbove100atoms int64 `json:"addrs_e2"` AddresssCountAbove1katoms int64 `json:"addrs_e3"` AddresssCountAbove10katoms int64 `json:"addrs_e4"` AddresssCountAbove100katoms int64 `json:"addrs_e5"` AddresssCountAbove1Matoms int64 `json:"addrs_e6"` AddresssCountAbove10Matoms int64 `json:"addrs_e7"` AddresssCountAbove1coin int64 `json:"addrs_e8"` AddresssCountAbove10coins int64 `json:"addrs_e9"` AddresssCountAbove100coins int64 `json:"addrs_e10"` AddresssCountAbove1kcoins int64 `json:"addrs_e11"` AddresssCountAbove10kcoins int64 `json:"addrs_e12"` AddresssCountAbove100kcoins int64 `json:"addrs_e13"` AddresssCountAbove1Mcoins int64 `json:"addrs_e14"` AddresssCountAbove10Mcoins int64 `json:"addrs_e15"` AddresssCountAbove100Mcoins int64 `json:"addrs_e16"` }
AddressBalanceStats is a Go struct type that can hold blockchain statistics data as stored in blockchain *-EOD:BALANCE time series.
type Block ¶
type Block struct { RowID uint64 `json:"row_id"` ParentID uint64 `json:"parent_id"` Orphan bool `json:"is_orphan"` Hash string `json:"hash"` Timestamp time.Time `json:"time"` MedianTime time.Time `json:"mediantime"` Height uint64 `json:"height"` Version int64 `json:"version"` Size uint64 `json:"size"` Weight uint64 `json:"weight"` Bits uint64 `json:"bits"` ChainWork float64 `json:"chainwork"` Difficulty float64 `json:"difficulty"` Coinbase []byte `json:"coinbase"` AddressesSeen uint64 `json:"n_addr"` AddressesCreated uint64 `json:"n_new_addr"` AddressesEmptied uint64 `json:"n_empty_addr"` AddressesFunded uint64 `json:"n_funded_addr"` TransactionCount uint64 `json:"n_tx"` UtxoConsumed uint64 `json:"n_vin"` UtxoCreated uint64 `json:"n_vout"` SpendableUtxoCreated uint64 `json:"n_vout_spendable"` TransactionVolume float64 `json:"volume"` MiningReward float64 `json:"reward"` TransactionFees float64 `json:"fee"` BurnedCoins float64 `json:"burned"` DaysDestroyed float64 `json:"days_destroyed"` Solvetime uint64 `json:"solvetime"` }
Block is a Go struct type that can hold raw data about a blockchain block as stored in blockchain *:BLOCK tables.
type Chain ¶
type Chain struct { Height uint64 `json:"height"` Timestamp time.Time `json:"time"` Difficulty float64 `json:"difficulty"` AvgHashrate3h float64 `json:"hashrate_3h"` AvgHashrate12h float64 `json:"hashrate_12h"` TotalWork float64 `json:"total_work"` TotalSize uint64 `json:"total_size"` TotalTransactions uint64 `json:"total_tx"` TotalUtxos uint64 `json:"total_utxo"` TotalAddresses uint64 `json:"total_addr"` FundedAddresses uint64 `json:"funded_addr"` TotalSupply float64 `json:"total_supply"` MintedSupply float64 `json:"minted_supply"` MinedSupply float64 `json:"mined_supply"` CurrentSupply float64 `json:"current_supply"` LockedSupply float64 `json:"locked_supply"` BurnedSupply float64 `json:"burned_supply"` }
Chain is a Go struct type that can hold running blockchain totals as stored in blockchain *:CHAIN tables.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(apikey string, config *ConnConfig) (*Client, error)
NewClient creates a new API client based on the provided connection configuration.
func (*Client) GetDataset ¶
func (*Client) ListDatabases ¶
func (c *Client) ListDatabases(ctx context.Context, params DatabaseListParams) (*DatabaseList, error)
func (*Client) ListDatasets ¶
type CollapseMode ¶
type CollapseMode string
const ( CollapseInvalid CollapseMode = "" CollapseNone CollapseMode = "none" CollapseOneMinute CollapseMode = "1m" CollapseFiveMinutes CollapseMode = "5m" CollapseFifteenMinutes CollapseMode = "15m" CollapseThirtyMinutes CollapseMode = "30m" CollapseOneHour CollapseMode = "1h" CollapseThreeHours CollapseMode = "3h" CollapseSixHours CollapseMode = "6h" CollapseTwelveHours CollapseMode = "12h" CollapseDaily CollapseMode = "1d" CollapseWeekly CollapseMode = "1w" CollapseMonthly CollapseMode = "1M" CollapseQuarterly CollapseMode = "3M" CollapseAnnual CollapseMode = "1y" )
func NewCollapseMode ¶
func NewCollapseMode(d time.Duration) CollapseMode
func ParseCollapseMode ¶
func ParseCollapseMode(s string) (CollapseMode, error)
func ParseCollapseModeIgnoreError ¶
func ParseCollapseModeIgnoreError(s string) CollapseMode
func (CollapseMode) Duration ¶
func (m CollapseMode) Duration() time.Duration
func (CollapseMode) IsValid ¶
func (m CollapseMode) IsValid() bool
func (CollapseMode) MarshalText ¶
func (m CollapseMode) MarshalText() ([]byte, error)
Text/JSON conversion
func (CollapseMode) String ¶
func (m CollapseMode) String() string
func (*CollapseMode) UnmarshalText ¶
func (m *CollapseMode) UnmarshalText(data []byte) error
type ConnConfig ¶
type ConnConfig struct { // HTTP tuning parameters DialTimeout time.Duration `json:"dial_timeout"` KeepAlive time.Duration `json:"keepalive"` IdleConnTimeout time.Duration `json:"idle_timeout"` ResponseHeaderTimeout time.Duration `json:"response_timeout"` ExpectContinueTimeout time.Duration `json:"continue_timeout"` MaxIdleConns int `json:"idle_conns"` // Proxy specifies to connect through a SOCKS 5 proxy server. It may // be an empty string if a proxy is not required. Proxy string `json:"proxy"` // ProxyUser is an optional username to use for the proxy server if it // requires authentication. It has no effect if the Proxy parameter // is not set. ProxyUser string `json:"proxy_user"` // ProxyPass is an optional password to use for the proxy server if it // requires authentication. It has no effect if the Proxy parameter // is not set. ProxyPass string `json:"proxy_pass"` // TLS configuration options ServerName string `json:"server_name"` AllowInsecureCerts bool `json:"disable_tls"` TLSMinVersion int `json:"tls_min_version"` TLSMaxVersion int `json:"tls_max_version"` RootCaCerts []string `json:"tls_ca"` RootCaCertsFile string `json:"tls_ca_file"` ClientCert []string `json:"tls_cert"` ClientCertFile string `json:"tls_cert_file"` ClientKey []string `json:"tls_key"` ClientKeyFile string `json:"tls_key_file"` }
ConnConfig describes the connection configuration parameters for the client.
type Database ¶
type Database struct { Id string `json:"database_id"` AuthorId string `json:"author_id"` Code string `json:"code"` Name string `json:"name"` DatasetType string `json:"type"` State string `json:"state"` Description string `json:"description"` Documentation string `json:"documentation"` ImageId string `json:"imageId"` IsPremium bool `json:"is_premium"` HasSample bool `json:"has_sample"` DeliveryFrequency string `json:"delivery_frequency"` DataFrequency string `json:"data_frequency"` ReportingLag string `json:"reporting_lag"` History string `json:"history"` Coverage string `json:"coverage"` Labels string `json:"labels"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Subscribed bool `json:"subscribed"` }
type DatabaseList ¶
type DatabaseListParams ¶
func (DatabaseListParams) Query ¶
func (p DatabaseListParams) Query() url.Values
func (DatabaseListParams) Url ¶
func (p DatabaseListParams) Url() string
type Dataframe ¶
type Dataframe struct { Columns []Datafield `json:"columns"` Data []json.RawMessage `json:"data"` // contains filtered or unexported fields }
type Dataset ¶
type Dataset struct { Database string `json:"database_code"` Dataset string `json:"dataset_code"` Type string `json:"type"` Name string `json:"name"` Description string `json:"description"` Columns []Datafield `json:"columns"` FilterFields []string `json:"filters"` PrimaryFields []string `json:"primary_key"` }
type DatasetListParams ¶
func (DatasetListParams) Query ¶
func (p DatasetListParams) Query() url.Values
func (DatasetListParams) Url ¶
func (p DatasetListParams) Url(dbcode string) string
type Error ¶
type FieldType ¶
type FieldType string
const ( FieldTypeUndefined FieldType = "" FieldTypeString FieldType = "string" FieldTypeBytes FieldType = "bytes" FieldTypeDate FieldType = "date" FieldTypeDatetime FieldType = "datetime" FieldTypeBoolean FieldType = "boolean" FieldTypeFloat64 FieldType = "float64" FieldTypeInt64 FieldType = "int64" FieldTypeUint64 FieldType = "uint64" )
func ParseFieldType ¶
func (FieldType) MarshalText ¶
func (*FieldType) UnmarshalText ¶
type Filter ¶
type Filter struct { Field string Mode FilterMode Value string }
func ParseFilter ¶
col_name.{ne|gt|gte|lt|lte|in|nin|re|rg}=value
func (Filter) AppendQuery ¶
type FilterMode ¶
type FilterMode int
const ( FilterModeEqual FilterMode = iota FilterModeNotEqual FilterModeGt FilterModeGte FilterModeLt FilterModeLte FilterModeIn FilterModeNotIn FilterModeRange FilterModeRegexp FilterModeInvalid )
func ParseFilterMode ¶
func ParseFilterMode(s string) FilterMode
func (FilterMode) String ¶
func (m FilterMode) String() string
type Flow ¶
type Flow struct { RowID uint64 `json:"row_id"` FundingTime time.Time `json:"fund_time"` FundingHeight uint64 `json:"fund_height"` FundingPosition uint64 `json:"fund_txpos"` FundingOutput uint64 `json:"fund_vout"` FundingTxID string `json:"fund_txid"` Volume float64 `json:"volume"` CoinGenerationMin uint64 `json:"coin_gen_min"` CoinGenerationMax uint64 `json:"coin_gen_max"` AddressCount uint64 `json:"n_addr"` SignatureCount uint64 `json:"n_req_sig"` AddressType string `json:"addr_type"` Address string `json:"addr"` Data []byte `json:"data"` IsBurned bool `json:"is_burned"` IsSpendable bool `json:"is_spendable"` IsSpent bool `json:"is_spent"` SpendingTime time.Time `json:"spend_time"` SpendingHeight uint64 `json:"spend_height"` SpendingPosition uint64 `json:"spend_txpos"` SpendingInput uint64 `json:"spend_vin"` SpendingTxID string `json:"spend_txid"` }
Flow is a Go struct type that can hold blockchain flow data as stored in blockchain *:FLOW tables.
type HTTPError ¶
type HTTPError interface { error Status() string // e.g. "200 OK" StatusCode() int // e.g. 200 Body() []byte Unmarshal(val interface{}) error }
HTTPError retains HTTP status
type Ohlcv ¶
type Ohlcv struct { Timestamp time.Time `json:"time"` Open float64 `json:"open"` Close float64 `json:"close"` High float64 `json:"high"` Low float64 `json:"low"` Vwap float64 `json:"vwap"` Std float64 `json:"stddev"` Mean float64 `json:"mean"` TradeCount int64 `json:"n_trades"` BuyCount int64 `json:"n_buy"` SellCount int64 `json:"n_sell"` BaseVolume float64 `json:"vol_base"` QuoteVolume float64 `json:"vol_quote"` BaseVolumeBuy float64 `json:"vol_buy_base"` QuoteVolumeBuy float64 `json:"vol_buy_quote"` BaseVolumeSell float64 `json:"vol_sell_base"` QuoteVolumeSell float64 `json:"vol_sell_quote"` }
Ohlvc is a Go struct type that can hold data stored in market *:OHLCV time-series
type OrderMode ¶
type OrderMode string
func ParseOrderMode ¶
func (OrderMode) MarshalText ¶
func (*OrderMode) UnmarshalText ¶
type RateLimitError ¶
type RateLimitError interface { HTTPError Wait(context.Context) error Done() <-chan struct{} Deadline() time.Duration }
RateLimitError helps manage rate limit errors
func IsRateLimited ¶
func IsRateLimited(err error) (RateLimitError, bool)
type Series ¶
type Series struct { Dataframe Collapse CollapseMode `json:"collapse"` Order OrderMode `json:"order"` StartDate time.Time `json:"start_date"` EndDate time.Time `json:"end_date"` Limit int `json:"limit"` Count int `json:"count"` Error *Error `json:"error"` }
func (*Series) UnmarshalJSON ¶
convert timestamps on unmarshal
type SeriesParams ¶
type SeriesParams struct { Columns []string Collapse CollapseMode Order OrderMode StartDate time.Time EndDate time.Time Limit int Format string Filter []*Filter }
func (SeriesParams) Query ¶
func (p SeriesParams) Query() url.Values
func (SeriesParams) Url ¶
func (p SeriesParams) Url(db, set string) string
type SupplyStats ¶
type SupplyStats struct { Timestamp time.Time `json:"time"` TotalSupply float64 `json:"total"` CurrentSupply float64 `json:"current"` CirculatingSupply float64 `json:"circulating"` MinedSupply float64 `json:"mined"` LockedSupply float64 `json:"locked"` BurnedSupply float64 `json:"burned"` UntouchedSupply float64 `json:"untouched"` HodlSupply3M float64 `json:"hodl_3m"` TransactingSupply3M float64 `json:"tx_3m"` DaysDestroyed3M float64 `json:"cdd_3m"` InflationLast24h float64 `json:"inflation"` AnnualizedInflationRate float64 `json:"inflation_rate"` }
SupplyStats is a Go struct type that can hold blockchain statistics data as stored in blockchain *-EOD:SUPPY time series.
type TableParams ¶
func (TableParams) Query ¶
func (p TableParams) Query() url.Values
func (TableParams) Url ¶
func (p TableParams) Url(db, set string) string
type Trade ¶
type Trade struct { ID int64 `json:"id"` Timestamp time.Time `json:"time"` Price float64 `json:"price"` Amount float64 `json:"amount"` IsSell bool `json:"sell"` }
Trade is a Go struct type that can hold raw tick data stored in market *:Trade tables.
type Tx ¶
type Tx struct { RowID uint64 `json:"row_id"` Timestamp time.Time `json:"time"` Height uint64 `json:"height"` Position uint64 `json:"tx_n"` TransactionID string `json:"tx_id"` Locktime int64 `json:"locktime"` Size int64 `json:"size"` VirtualSize int64 `json:"vsize"` Version int64 `json:"version"` SpentInputs int64 `json:"n_in"` CreatedOutputs int64 `json:"n_out"` Type string `json:"type"` HasData bool `json:"has_data"` Volume float64 `json:"volume"` Fee float64 `json:"fee"` DaysDestroyed float64 `json:"days_destroyed"` }
Tx is a Go struct type that can hold raw data about a blockchain transaction as stored in blockchain *:TX tables.
type TxStats ¶
type TxStats struct { Timestamp time.Time `json:"time"` Type string `json:"type"` Count int64 `json:"n_tx"` MinFee float64 `json:"min_fee"` MaxFee float64 `json:"max_fee"` MeanFee float64 `json:"mean_fee"` MedianFee float64 `json:"median_fee"` SumFees float64 `json:"sum_fee"` MinFeeRate float64 `json:"min_fee_rate"` MaxFeeRate float64 `json:"max_fee_rate"` MeanFeeRate float64 `json:"mean_fee_rate"` MedianFeeRate float64 `json:"median_fee_rate"` SumFeeRates float64 `json:"sum_fee_rate"` MinSize int64 `json:"min_size"` MaxSize int64 `json:"max_size"` MeanSize float64 `json:"mean_size"` MedianSize float64 `json:"median_size"` SumSizes int64 `json:"sum_size"` MinInputs int64 `json:"min_n_vin"` MaxInputs int64 `json:"max_n_vin"` MeanInputs float64 `json:"mean_n_vin"` MedianInputs float64 `json:"median_n_vin"` SumInputs int64 `json:"sum_n_vin"` MinOutputs int64 `json:"min_n_vout"` MaxOutputs int64 `json:"max_n_vout"` MeanOutputs float64 `json:"mean_n_vout"` MedianOutputs float64 `json:"median_n_vout"` SumOutputs int64 `json:"sum_n_vout"` MinVolume float64 `json:"min_vol"` MaxVolume float64 `json:"max_vol"` MeanVolume float64 `json:"mean_vol"` MedianVolume float64 `json:"median_vol"` SumVolume float64 `json:"sum_vol"` MinDaysDestroyed float64 `json:"min_cdd"` MaxDaysDestroyed float64 `json:"max_cdd"` MeanDaysDestroyed float64 `json:"mean_cdd"` MedianDaysDestroyed float64 `json:"median_cdd"` SumDaysDestroyed float64 `json:"sum_cdd"` MinAvgDaysDestroyed float64 `json:"min_add"` MaxAvgDaysDestroyed float64 `json:"max_add"` MeanAvgDaysDestroyed float64 `json:"mean_add"` MedianAvgDaysDestroyed float64 `json:"median_add"` SumAvgDaysDestroyed float64 `json:"sum_add"` }
TxStats is a Go struct type that can hold blockchain statistics data as stored in blockchain *-EOD:TX time series.