Documentation
¶
Index ¶
- Constants
- type AccountInfo
- type Address
- type Base
- func (b *Base) AddAddress(address, description string, coinType currency.Code, balance float64) error
- func (b *Base) AddExchangeAddress(exchangeName string, coinType currency.Code, balance float64)
- func (b *Base) AddressExists(address string) bool
- func (b *Base) ExchangeAddressExists(exchangeName string, coinType currency.Code) bool
- func (b *Base) ExchangeExists(exchangeName string) bool
- func (b *Base) GetAddressBalance(address, description string, coinType currency.Code) (float64, bool)
- func (b *Base) GetCryptoIDAddress(address string, coinType currency.Code) (float64, error)
- func (b *Base) GetEthereumBalance(address string) (EthplorerResponse, error)
- func (b *Base) GetExchangePortfolio() map[currency.Code]float64
- func (b *Base) GetPersonalPortfolio() map[currency.Code]float64
- func (b *Base) GetPortfolioByExchange(exchangeName string) map[currency.Code]float64
- func (b *Base) GetPortfolioGroupedCoin() map[currency.Code][]string
- func (b *Base) GetPortfolioSummary() Summary
- func (b *Base) GetRippleBalance(address string) (float64, error)
- func (b *Base) IsColdStorage(address string) bool
- func (b *Base) IsExchangeSupported(exchange, address string) (ret bool)
- func (b *Base) IsWhiteListed(address string) bool
- func (b *Base) RemoveAddress(address, description string, coinType currency.Code) error
- func (b *Base) RemoveExchangeAddress(exchangeName string, coinType currency.Code)
- func (b *Base) Seed(port Base)
- func (b *Base) StartPortfolioWatcher()
- func (b *Base) UpdateAddressBalance(address string, amount float64)
- func (b *Base) UpdateExchangeAddressBalance(exchangeName string, coinType currency.Code, balance float64)
- func (b *Base) UpdatePortfolio(addresses []string, coinType currency.Code) error
- type Coin
- type EtherchainBalanceResponse
- type EthplorerResponse
- type ExchangeAccountCurrencyInfo
- type ExchangeAccountInfo
- type OfflineCoinSummary
- type OnlineCoinSummary
- type Summary
- type XRPScanAccount
Constants ¶
const ( // ExchangeAddress is a label for an exchange address ExchangeAddress = "Exchange" // PersonalAddress is a label for a personal/offline address PersonalAddress = "Personal" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccountInfo ¶
type AccountInfo struct {
Name string `json:"name"`
Description string `json:"desc"`
Account string `json:"account"`
Domain string `json:"domain"`
Twitter string `json:"twitter"`
Verified bool `json:"verified"`
}
AccountInfo is a XRPScan subtype for account associations
type Address ¶
type Address struct {
Address string
AddressTag string
CoinType currency.Code
Balance float64
Description string
WhiteListed bool
ColdStorage bool
SupportedExchanges string
}
Address sub type holding address information for portfolio
type Base ¶
Base holds the portfolio base addresses
func (*Base) AddAddress ¶
func (b *Base) AddAddress(address, description string, coinType currency.Code, balance float64) error
AddAddress adds an address to the portfolio base
func (*Base) AddExchangeAddress ¶
AddExchangeAddress adds an exchange address to the portfolio base
func (*Base) AddressExists ¶
AddressExists checks to see if there is an address associated with the portfolio base
func (*Base) ExchangeAddressExists ¶
ExchangeAddressExists checks to see if there is an exchange address associated with the portfolio base
func (*Base) ExchangeExists ¶
ExchangeExists checks to see if an exchange exists in the portfolio base
func (*Base) GetAddressBalance ¶
func (b *Base) GetAddressBalance(address, description string, coinType currency.Code) (float64, bool)
GetAddressBalance accesses the portfolio base and returns the balance by passed in address, coin type and description
func (*Base) GetCryptoIDAddress ¶
GetCryptoIDAddress queries CryptoID for an address balance for a specified cryptocurrency
func (*Base) GetEthereumBalance ¶
func (b *Base) GetEthereumBalance(address string) (EthplorerResponse, error)
GetEthereumBalance single or multiple address information as EtherchainBalanceResponse
func (*Base) GetExchangePortfolio ¶
GetExchangePortfolio returns current portfolio base information
func (*Base) GetPersonalPortfolio ¶
GetPersonalPortfolio returns current portfolio base information
func (*Base) GetPortfolioByExchange ¶
GetPortfolioByExchange returns currency portfolio amount by exchange
func (*Base) GetPortfolioGroupedCoin ¶
GetPortfolioGroupedCoin returns portfolio base information grouped by coin
func (*Base) GetPortfolioSummary ¶
GetPortfolioSummary returns the complete portfolio summary, showing coin totals, offline and online summaries with their relative percentages.
func (*Base) GetRippleBalance ¶
GetRippleBalance returns the value for a ripple address
func (*Base) IsColdStorage ¶
IsColdStorage checks if address is a cold storage wallet
func (*Base) IsExchangeSupported ¶
IsExchangeSupported checks if exchange is supported by portfolio address
func (*Base) IsWhiteListed ¶
IsWhiteListed checks if address is whitelisted for withdraw transfers
func (*Base) RemoveAddress ¶
RemoveAddress removes an address when checked against the correct address and coinType
func (*Base) RemoveExchangeAddress ¶
RemoveExchangeAddress removes an exchange address from the portfolio.
func (*Base) StartPortfolioWatcher ¶
func (b *Base) StartPortfolioWatcher()
StartPortfolioWatcher observes the portfolio object
func (*Base) UpdateAddressBalance ¶
UpdateAddressBalance updates the portfolio base balance
type Coin ¶
type Coin struct {
Coin currency.Code `json:"coin"`
Balance float64 `json:"balance"`
Address string `json:"address,omitempty"`
Percentage float64 `json:"percentage,omitempty"`
}
Coin stores a coin type, balance, address and percentage relative to the total amount.
type EtherchainBalanceResponse ¶
type EtherchainBalanceResponse struct {
Status int `json:"status"`
Data []struct {
Address string `json:"address"`
Balance float64 `json:"balance"`
Nonce interface{} `json:"nonce"`
Code string `json:"code"`
Name interface{} `json:"name"`
Storage interface{} `json:"storage"`
FirstSeen interface{} `json:"firstSeen"`
} `json:"data"`
}
EtherchainBalanceResponse holds JSON incoming and outgoing data for Etherchain
type EthplorerResponse ¶
type EthplorerResponse struct {
Address string `json:"address"`
ETH struct {
Balance float64 `json:"balance"`
TotalIn float64 `json:"totalIn"`
TotalOut float64 `json:"totalOut"`
} `json:"ETH"`
CountTxs int `json:"countTxs"`
ContractInfo struct {
CreatorAddress string `json:"creatorAddress"`
TransactionHash string `json:"transactionHash"`
Timestamp int `json:"timestamp"`
} `json:"contractInfo"`
TokenInfo struct {
Address string `json:"address"`
Name string `json:"name"`
Decimals int `json:"decimals"`
Symbol string `json:"symbol"`
TotalSupply string `json:"totalSupply"`
Owner string `json:"owner"`
LastUpdated int `json:"lastUpdated"`
TotalIn int64 `json:"totalIn"`
TotalOut int64 `json:"totalOut"`
IssuancesCount int `json:"issuancesCount"`
HoldersCount int `json:"holdersCount"`
Image string `json:"image"`
Description string `json:"description"`
Price struct {
Rate int `json:"rate"`
Diff int `json:"diff"`
Timestamp int64 `json:"ts"`
Currency string `json:"currency"`
} `json:"price"`
} `json:"tokenInfo"`
Error struct {
Code int `json:"code"`
Message string `json:"message"`
} `json:"error"`
}
EthplorerResponse holds JSON address data for Ethplorer
type ExchangeAccountCurrencyInfo ¶
ExchangeAccountCurrencyInfo : Sub type to store currency name and value
type ExchangeAccountInfo ¶
type ExchangeAccountInfo struct {
ExchangeName string
Currencies []ExchangeAccountCurrencyInfo
}
ExchangeAccountInfo : Generic type to hold each exchange's holdings in all enabled currencies
type OfflineCoinSummary ¶
type OfflineCoinSummary struct {
Address string `json:"address"`
Balance float64 `json:"balance"`
Percentage float64 `json:"percentage,omitempty"`
}
OfflineCoinSummary stores a coin types address, balance and percentage relative to the total amount.
type OnlineCoinSummary ¶
type OnlineCoinSummary struct {
Balance float64 `json:"balance"`
Percentage float64 `json:"percentage,omitempty"`
}
OnlineCoinSummary stores a coin types balance and percentage relative to the total amount.
type Summary ¶
type Summary struct {
Totals []Coin `json:"coin_totals"`
Offline []Coin `json:"coins_offline"`
OfflineSummary map[currency.Code][]OfflineCoinSummary `json:"offline_summary"`
Online []Coin `json:"coins_online"`
OnlineSummary map[string]map[currency.Code]OnlineCoinSummary `json:"online_summary"`
}
Summary Stores the entire portfolio summary
type XRPScanAccount ¶
type XRPScanAccount struct {
Sequence int `json:"sequence"`
XRPBalance float64 `json:"xrpBalance,string"`
OwnerCount int `json:"ownerCount"`
PreviousAffectingTransactionID string `json:"previousAffectingTransactionID"`
PreviousAffectingTransactionLedgerVersion int `json:"previousAffectingTransactionLedgerVersion"`
Settings struct {
RequireDestinationTag bool `json:"requireDestinationTag"`
EmailHash string `json:"emailHash"`
Domain string `json:"domain"`
} `json:"settings"`
Account string `json:"account"`
Parent string `json:"parent"`
InitialBalance float64 `json:"initial_balance"`
Inception time.Time `json:"inception"`
LedgerIndex int `json:"ledger_index"`
TxHash string `json:"tx_hash"`
AccountName AccountInfo `json:"accountName"`
ParentName AccountInfo `json:"parentName"`
Advisory interface{} `json:"advisory"`
}
XRPScanAccount defines the return type for account data