Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MakePoint ¶
func MakePoint(fees *FeeResponse, tb TrackedBalance, bal BlockchainInfoBalance) *client.Point
MakePoint takes all necessary data and returns an InfluxDB point
Types ¶
type BalanceMonitor ¶
type BalanceMonitor struct { TrackedBalances TrackedBalances BalanceAddr string FeesAddr string PollingInterval time.Duration InfluxClient client.Client Port string }
BalanceMonitor holds methods to query balances and write them to InfluxDB
func NewBalanceMonitor ¶
func NewBalanceMonitor(config *Config) *BalanceMonitor
NewBalanceMonitor returns a new BalanceMonitor
func (*BalanceMonitor) GetAddressBalances ¶
func (bm *BalanceMonitor) GetAddressBalances() (*BlockchainInfoResponse, error)
GetAddressBalances returns the API response from the addresses query
func (*BalanceMonitor) GetFees ¶
func (bm *BalanceMonitor) GetFees() (*FeeResponse, error)
GetFees fetches the fee response data
func (*BalanceMonitor) MakePoints ¶
func (bm *BalanceMonitor) MakePoints() (client.BatchPoints, error)
MakePoints returns the points from all the monitored addresses
func (*BalanceMonitor) Monitor ¶
func (bm *BalanceMonitor) Monitor()
Monitor is the loop that continuously checks the address balance
type BlockchainInfoBalance ¶
type BlockchainInfoBalance struct { FinalBalance int `json:"final_balance"` NTx int `json:"n_tx"` TotalReceived int `json:"total_received"` }
BlockchainInfoBalance is details from a query to blockchain.info/balance
type BlockchainInfoResponse ¶
type BlockchainInfoResponse map[string]BlockchainInfoBalance
BlockchainInfoResponse is the response from an address query
type Config ¶
type Config struct { InfluxConfig InfluxConfig `json:"influxConfig"` TrackedBalances TrackedBalances `json:"trackedBalances"` BalanceAddress string `json:"balanceAddress"` FeesAddress string `json:"feesAddress"` PollingInterval string `json:"pollingInterval"` Port int `json:"port"` }
Config represents the configuration file used in this application
type FeeResponse ¶
type FeeResponse struct { FastestFee int `json:"fastestFee"` HalfHourFee int `json:"halfHourFee"` HourFee int `json:"hourFee"` }
FeeResponse models the response from the fees API
type InfluxConfig ¶
type InfluxConfig struct { Address string `json:"address"` Username string `json:"username"` Password string `json:"password"` }
InfluxConfig represents an InfluxDB connection
type TrackedBalance ¶
type TrackedBalance struct { Address string `json:"address"` Service string `json:"service"` Balance int `json:"balance"` NumTransactions int `json:"numTransactions"` }
TrackedBalance contains details necessary to track a balance
type TrackedBalances ¶
type TrackedBalances []TrackedBalance
TrackedBalances models multiple TrackedBalance
func (TrackedBalances) Address ¶
func (tbs TrackedBalances) Address(addr string) TrackedBalance
Address returns an individual tracked balance
func (TrackedBalances) Addresses ¶
func (tbs TrackedBalances) Addresses() string
Addresses returns the list of addresses formatted for quering