Documentation ¶
Index ¶
- Constants
- Variables
- func Contains(slice []string, item string) bool
- func GetSupportedCrypto() []string
- func GetSupportedCryptoEth() []string
- func GetSupportedCryptoMultichain() []string
- func SetRateLimitFunc(ratefunc func(rl RateLimit)) func(*Client)
- type API
- type Address
- type AddressEth
- type AddressInfo
- type AddressInfoEth
- type AddressesInfo
- type Block
- type BlockEth
- type Cache
- type Calls
- type CallsAddress
- type Client
- func (c *Client) GetAddress(crypto string, address string) (*DataAddress, error)
- func (c *Client) GetAddressAdv(crypto string, address string, options map[string]string) (resp *DataAddress, e error)
- func (c *Client) GetAddressEth(crypto string, address string) (*DataAddressEth, error)
- func (c *Client) GetAddressEthAdv(crypto string, address string, options map[string]string) (resp *DataAddressEth, e error)
- func (c *Client) GetAddresses(crypto string, addresses []string) (*DataAddresses, error)
- func (c *Client) GetAddressesAdv(crypto string, addresses []string, options map[string]string) (resp *DataAddresses, e error)
- func (c *Client) GetBlock(crypto string, blockID string) (*DataBlock, error)
- func (c *Client) GetBlockAdv(crypto string, blockID string, options map[string]string) (resp *DataBlock, e error)
- func (c *Client) GetBlockEth(crypto string, blockID string) (*DataBlockEth, error)
- func (c *Client) GetBlockEthAdv(crypto string, blockID string, options map[string]string) (resp *DataBlockEth, e error)
- func (c *Client) GetBlocks(crypto string, blockIDs []string) (*DataBlock, error)
- func (c *Client) GetBlocksAdv(crypto string, blockIDs []string, options map[string]string) (resp *DataBlock, e error)
- func (c *Client) GetBlocksEth(crypto string, blockIDs []string) (*DataBlockEth, error)
- func (c *Client) GetBlocksEthAdv(crypto string, blockIDs []string, options map[string]string) (resp *DataBlockEth, e error)
- func (c *Client) GetErc20(crypto string, token string) (*DataErc20, error)
- func (c *Client) GetErc20Adv(crypto string, token string, options map[string]string) (resp *DataErc20, e error)
- func (c *Client) GetErc20Holder(crypto string, token string, address string) (*DataErc20Holder, error)
- func (c *Client) GetErc20HolderAdv(crypto string, token string, address string, options map[string]string) (resp *DataErc20Holder, e error)
- func (c *Client) GetMutlichainAddressCheck(mutliAddress MutliAddress) (resp *DataMultichain, e error)
- func (c *Client) GetMutlichainAddressCheckAdv(mutliAddress MutliAddress, options map[string]string) (resp *DataMultichain, e error)
- func (c *Client) GetOmni(prorertyID int64) (*DataOmni, error)
- func (c *Client) GetOmniAdv(prorertyID int64, options map[string]string) (resp *DataOmni, e error)
- func (c *Client) GetTransaction(crypto string, txID string) (*DataTransaction, error)
- func (c *Client) GetTransactionAdv(crypto string, txID string, options map[string]string) (resp *DataTransaction, e error)
- func (c *Client) GetTransactionEth(crypto string, txID string) (*DataTransactionEth, error)
- func (c *Client) GetTransactionEthAdv(crypto string, txID string, options map[string]string) (resp *DataTransactionEth, e error)
- func (c *Client) GetTransactions(crypto string, txIDs []string) (*DataTransaction, error)
- func (c *Client) GetTransactionsAdv(crypto string, txIDs []string, options map[string]string) (resp *DataTransaction, e error)
- func (c *Client) GetTransactionsEth(crypto string, txIDs []string) (*DataTransactionEth, error)
- func (c *Client) GetTransactionsEthAdv(crypto string, txIDs []string, options map[string]string) (resp *DataTransactionEth, e error)
- func (c *Client) GetUncle(crypto string, hash string) (*DataUncle, error)
- func (c *Client) GetUncleAdv(crypto string, hash string, options map[string]string) (resp *DataUncle, e error)
- func (c *Client) GetUncles(crypto string, hashes []string) (*DataUncle, error)
- func (c *Client) GetUnclesAdv(crypto string, hashes []string, options map[string]string) (resp *DataUncle, e error)
- func (c *Client) GetUsage() (resp *DataPremium, e error)
- func (c *Client) GetXpub(crypto string, extendedKey string) (*DataXpub, error)
- func (c *Client) GetXpubAdv(crypto string, extendedKey string, options map[string]string) (resp *DataXpub, e error)
- func (c *Client) LoadResponse(path string, i interface{}, options map[string]string) error
- func (c *Client) RateLimitStrategyConcurrent(parallelism int)
- func (c *Client) RateLimitStrategySleep()
- func (c *Client) SetClient(client *http.Client)
- func (c *Client) ValidateCrypto(crypto string) error
- func (c *Client) ValidateCryptoBoth(crypto string) error
- func (c *Client) ValidateCryptoEth(crypto string) error
- func (c *Client) ValidateCryptoMultichain(crypto string) error
- func (c *Client) ValidateErc20Token(token string) error
- func (c *Client) ValidateErc20Tokens(tokens []string) error
- func (c *Client) ValidateHashEth(hash string) error
- func (c *Client) ValidateHashesEth(hashes []string) error
- type Context
- type ContextAddress
- type ContextOmni
- type ContextPremium
- type ContextUncle
- type DataAddress
- type DataAddressEth
- type DataAddresses
- type DataBlock
- type DataBlockEth
- type DataErc20
- type DataErc20Holder
- type DataInfo
- type DataInfoEth
- type DataMultichain
- type DataOmni
- type DataPremium
- type DataTransaction
- type DataTransactionEth
- type DataUncle
- type DataXpub
- type Erc20
- type Erc20HolderInfo
- type Error
- type HolderAddress
- type HolderContext
- type HolderTransaction
- type Inputs
- type MultichainAddress
- type MultichainInfo
- type MutliAddress
- type OmniInfo
- type Outputs
- type Premium
- type RateLimit
- type RateLimitFunc
- type Set
- type SetMultichain
- type Transaction
- type TransactionEth
- type TransactionInfo
- type TransactionInfoEth
- type TransactionsMultichain
- type Uncle
- type UncleInfo
- type Utxo
- type Xpub
- type XpubInfo
Constants ¶
const ( // Hash used to verify Ethereum hash. TODO: Replace with Deterministic Finite Automaton Hash = "^0x[0-9a-f]{64}$" // UserAgent request header that lets servers and network peers identify the application of the requesting user agent. UserAgent = "blockchair-api-golang-" + clientVersion )
Variables ¶
var ( ErrTHW = errors.New("blockchair: transaction hash is wrong") ErrERC = errors.New("blockchair: ERC-20 token is wrong") ErrSC = errors.New("blockchair: the Bitcoin-like cryptocurrency is not supported") ErrSCE = errors.New("blockchair: the Ethereum cryptocurrency is not supported") ErrSCG = errors.New("blockchair: the cryptocurrency is not supported") ErrCGD = errors.New("blockchair: cannot get data on url") ErrRPE = errors.New("blockchair: response parsing error") ErrIRS = errors.New("blockchair: incorrect response status") ErrRLR = errors.New("blockchair: error 402, rate limit reached for free tier") ErrMAX = errors.New("blockchair: the maximum number of addresses is 100") ErrETH = errors.New("blockchair: can only handle one Ethereum cryptocurrency address") )
Errors it is a set of errors returned when working with the package.
Functions ¶
func Contains ¶
Contains used with GetSupportedCrypto and/or GetSupportedCryptoEth to verify correct crypto.
func GetSupportedCrypto ¶
func GetSupportedCrypto() []string
GetSupportedCrypto List of supported Bitcoin-like crypto.
func GetSupportedCryptoEth ¶
func GetSupportedCryptoEth() []string
GetSupportedCryptoEth List of supported Ethereum crypto.
func GetSupportedCryptoMultichain ¶ added in v0.1.2
func GetSupportedCryptoMultichain() []string
GetSupportedCryptoMultichain List of supported crypto for multichain address check.
func SetRateLimitFunc ¶ added in v0.1.3
SetRateLimitFunc sets a Client instances' RateLimitFunc.
Types ¶
type API ¶ added in v0.1.0
type API struct { Version string `json:"version"` LastMajorUpdate string `json:"last_major_update"` NextMajorUpdate string `json:"next_major_update,omitempty"` Documentation string `json:"documentation"` Notice string `json:"notice"` }
API common API for all requests
type Address ¶
type Address struct { Path string `json:"path,omitempty"` Type string `json:"type"` ScriptHex string `json:"script_hex"` Balance float32 `json:"balance"` BalanceUsd float32 `json:"balance_usd"` Received float32 `json:"received"` ReceivedUsd float32 `json:"received_usd"` Spent float32 `json:"spent"` SpentUsd float32 `json:"spent_usd"` OutputCount int `json:"output_count"` UnspentOutputCount int `json:"unspent_output_count"` FirstSeenReceiving string `json:"first_seen_receiving,omitempty"` LastSeenReceiving string `json:"last_seen_receiving,omitempty"` FirstSeenSpending string `json:"first_seen_spending,omitempty"` LastSeenSpending string `json:"last_seen_spending,omitempty"` ScripthashType string `json:"scripthash_type,omitempty"` TransactionCount int `json:"transaction_count,omitempty"` }
Address the structure of one specific Bitcoin-like address.
type AddressEth ¶
type AddressEth struct { Type string `json:"type"` ContractCodeHex string `json:"contract_code_hex,omitempty"` ContractCreated string `json:"contract_created,omitempty"` ContractDestroyed string `json:"contract_destroyed,omitempty"` Balance string `json:"balance"` BalanceUsd float64 `json:"balance_usd"` //maybe 32? ReceivedApproximate string `json:"received_approximate"` ReceivedUsd float64 `json:"received_usd"` SpentApproximate string `json:"spent_approximate"` SpentUsd float64 `json:"spent_usd"` FeesApproximate string `json:"fees_approximate"` FeesUsd float64 `json:"fees_usd"` ReceivingCallCount int `json:"receiving_call_count"` SpendingCallCount int `json:"spending_call_count"` CallCount int `json:"call_count"` TransactionCount int `json:"transaction_count"` FirstSeenReceiving string `json:"first_seen_receiving"` LastSeenReceiving string `json:"last_seen_receiving"` FirstSeenSpending string `json:"first_seen_spending,omitempty"` LastSeenSpending string `json:"last_seen_spending,omitempty"` Nonce int `json:"nonce,omitempty"` }
AddressEth is the structure of one specific Ethereum address.
type AddressInfo ¶
type AddressInfo struct { Address Address `json:"address"` Transactions []string `json:"transactions"` Utxo []Utxo `json:"utxo"` }
AddressInfo structure of the set of address, transactions, and utxo.
type AddressInfoEth ¶
type AddressInfoEth struct { Address AddressEth `json:"address"` Calls []CallsAddress `json:"calls"` }
AddressInfoEth the structure of the set of address and calls for Ethereum.
type AddressesInfo ¶
type AddressesInfo struct { Set Set `json:"set"` Addresses map[string]Address `json:"addresses"` Transactions []string `json:"transactions"` Utxo []Utxo `json:"utxo"` }
AddressesInfo describes the outer structure of the addresses.
type Block ¶
type Block struct { ID int `json:"id"` Hash string `json:"hash"` Date string `json:"date"` Time string `json:"time"` MedianTime string `json:"median_time"` Size int `json:"size"` StrippedSize int `json:"stripped_size"` Weight int `json:"weight"` Version int `json:"version"` VersionHex string `json:"version_hex"` VersionBits string `json:"version_bits"` MerkleRoot string `json:"merkle_root"` Nonce int `json:"nonce"` Bits int `json:"bits"` Difficulty float32 `json:"difficulty"` Chainwork string `json:"chainwork"` CoinbaseDataHex string `json:"coinbase_data_hex"` TransactionCount int `json:"transaction_count"` WitnessCount int `json:"witness_count"` InputCount int `json:"input_count"` OutputCount int `json:"output_count"` InputTotal int `json:"input_total"` InputTotalUsd float32 `json:"input_total_usd"` OutputTotal int `json:"output_total"` OutputTotalUsd float32 `json:"output_total_usd"` FeeTotal int `json:"fee_total"` FeeTotalUsd float32 `json:"fee_total_usd"` FeePerKb float32 `json:"fee_per_kb"` FeePerKbUsd float32 `json:"fee_per_kb_usd"` FeePerKwu float32 `json:"fee_per_kwu"` FeePerKwuUsd float32 `json:"fee_per_kwu_usd"` CddTotal float32 `json:"cdd_total"` Generation int `json:"generation"` GenerationUsd float32 `json:"generation_usd"` Reward int `json:"reward"` RewardUsd float32 `json:"reward_usd"` GuessedMiner string `json:"guessed_miner"` }
Block the structure of one specific Bitcoin-like block.
type BlockEth ¶
type BlockEth struct { ID int `json:"id"` Hash string `json:"hash"` Date string `json:"date"` Time string `json:"time"` Size int `json:"size"` Miner string `json:"miner"` ExtraDataHex string `json:"extra_data_hex"` Difficulty float32 `json:"difficulty"` GasUsed int `json:"gas_used"` GasLimit int `json:"gas_limit"` BaseFeePerGas float32 `json:"base_fee_per_gas,omitempty"` LogsBloom string `json:"logs_bloom"` MixHash string `json:"mix_hash"` Nonce string `json:"nonce"` ReceiptsRoot string `json:"receipts_root"` Sha3Uncles string `json:"sha3_uncles"` StateRoot string `json:"state_root"` TotalDifficulty string `json:"total_difficulty"` TransactionsRoot string `json:"transactions_root"` UncleCount int `json:"uncle_count"` TransactionCount int `json:"transaction_count"` SyntheticTransactionCount int `json:"synthetic_transaction_count"` CallCount int `json:"call_count"` SyntheticCallCount int `json:"synthetic_call_count"` ValueTotal string `json:"value_total"` ValueTotalUsd float32 `json:"value_total_usd"` InternalValueTotal string `json:"internal_value_total"` InternalValueTotalUsd float32 `json:"internal_value_total_usd"` Generation string `json:"generation"` GenerationUsd float32 `json:"generation_usd"` UncleGeneration string `json:"uncle_generation"` UncleGenerationUsd float32 `json:"uncle_generation_usd"` FeeTotal string `json:"fee_total"` FeeTotalUsd float32 `json:"fee_total_usd"` BurnedTotal string `json:"burned_total,omitempty"` Reward string `json:"reward"` RewardUsd float32 `json:"reward_usd"` }
BlockEth the structure of one specific Ethereum block.
type Cache ¶
type Cache struct { Live bool `json:"live"` Duration int `json:"duration"` Since string `json:"since"` Until string `json:"until"` Time float32 `json:"time,omitempty"` }
Cache common cache for all requests
type Calls ¶
type Calls struct { BlockID int `json:"block_id"` TransactionID int64 `json:"transaction_id"` TransactionHash string `json:"transaction_hash"` Index string `json:"index"` Depth int `json:"depth"` Date string `json:"date"` Time string `json:"time"` Failed bool `json:"failed"` FailReason string `json:"fail_reason,omitempty"` Type string `json:"type"` Sender string `json:"sender"` Recipient string `json:"recipient"` ChildCallCount int `json:"child_call_count"` Value string `json:"value"` ValueUsd float64 `json:"value_usd"` Transferred bool `json:"transferred"` InputHex string `json:"input_hex"` OutputHex string `json:"output_hex,omitempty"` }
Calls is the structure of one specific calls block.
type CallsAddress ¶
type CallsAddress struct { BlockID int `json:"block_id"` TransactionHash string `json:"transaction_hash,omitempty"` Index string `json:"index"` Time string `json:"time"` Sender string `json:"sender,omitempty"` Recipient string `json:"recipient"` Value float64 `json:"value"` ValueUsd float64 `json:"value_usd"` Transferred bool `json:"transferred"` }
CallsAddress is the structures of calls.
type Client ¶
type Client struct { APIKey string // API access key. UserAgent string // Optional additional User-Agent fragment. RateLimitFunc func(RateLimit) // Func to call after response is returned in LoadResponse. // contains filtered or unexported fields }
Client specifies the mechanism by which individual API requests are made.
func (*Client) GetAddress ¶
func (c *Client) GetAddress(crypto string, address string) (*DataAddress, error)
GetAddress get the address by type of crypto and address hash.
func (*Client) GetAddressAdv ¶ added in v0.1.0
func (c *Client) GetAddressAdv(crypto string, address string, options map[string]string) (resp *DataAddress, e error)
GetAddressAdv get the address by type of crypto, address hash, and options.
func (*Client) GetAddressEth ¶
func (c *Client) GetAddressEth(crypto string, address string) (*DataAddressEth, error)
GetAddressEth get the address by type of crypto and address hash for Ethereum.
func (*Client) GetAddressEthAdv ¶ added in v0.1.0
func (c *Client) GetAddressEthAdv(crypto string, address string, options map[string]string) (resp *DataAddressEth, e error)
GetAddressEthAdv get the address by type of crypto, address hash, and options for Ethereum. TODO! Validate address
func (*Client) GetAddresses ¶
func (c *Client) GetAddresses(crypto string, addresses []string) (*DataAddresses, error)
GetAddresses get the addresses by type of crypto and addresses hash.
func (*Client) GetAddressesAdv ¶ added in v0.1.0
func (c *Client) GetAddressesAdv(crypto string, addresses []string, options map[string]string) (resp *DataAddresses, e error)
GetAddressesAdv get the addresses by type of crypto, addresses hash and options.
func (*Client) GetBlockAdv ¶ added in v0.1.0
func (c *Client) GetBlockAdv(crypto string, blockID string, options map[string]string) (resp *DataBlock, e error)
GetBlockAdv fetch a Bitcoin-like block with options.
func (*Client) GetBlockEth ¶
func (c *Client) GetBlockEth(crypto string, blockID string) (*DataBlockEth, error)
GetBlockEth fetch an Ethereum block.
func (*Client) GetBlockEthAdv ¶ added in v0.1.0
func (c *Client) GetBlockEthAdv(crypto string, blockID string, options map[string]string) (resp *DataBlockEth, e error)
GetBlockEthAdv fetch an Ethereum block with options.
func (*Client) GetBlocksAdv ¶ added in v0.1.0
func (c *Client) GetBlocksAdv(crypto string, blockIDs []string, options map[string]string) (resp *DataBlock, e error)
GetBlocksAdv fetches multiple Bitcoin-like blocks with options
func (*Client) GetBlocksEth ¶
func (c *Client) GetBlocksEth(crypto string, blockIDs []string) (*DataBlockEth, error)
GetBlocksEth fetches multiple Ethereum blocks.
func (*Client) GetBlocksEthAdv ¶ added in v0.1.0
func (c *Client) GetBlocksEthAdv(crypto string, blockIDs []string, options map[string]string) (resp *DataBlockEth, e error)
GetBlocksEthAdv fetches multiple Ethereum blocks with options.
func (*Client) GetErc20 ¶ added in v0.1.1
GetErc20 fetch some basic information on an ERC-20 token on Ethereum.
func (*Client) GetErc20Adv ¶ added in v0.1.1
func (c *Client) GetErc20Adv(crypto string, token string, options map[string]string) (resp *DataErc20, e error)
GetErc20Adv fetch some basic information on an ERC-20 token on Ethereum with options.
func (*Client) GetErc20Holder ¶ added in v0.1.1
func (c *Client) GetErc20Holder(crypto string, token string, address string) (*DataErc20Holder, error)
GetErc20Holder fetch some basic information on an ERC-20 token holder on Ethereum.
func (*Client) GetErc20HolderAdv ¶ added in v0.1.1
func (c *Client) GetErc20HolderAdv(crypto string, token string, address string, options map[string]string) (resp *DataErc20Holder, e error)
GetErc20HolderAdv fetch some basic information on an ERC-20 token holder on Ethereum with options.
func (*Client) GetMutlichainAddressCheck ¶ added in v0.1.2
func (c *Client) GetMutlichainAddressCheck(mutliAddress MutliAddress) (resp *DataMultichain, e error)
GetMutlichainAddressCheck check multiple addresses from different blockchain via just one request. This can be useful if you're monitoring your own wallet or portfolio.
func (*Client) GetMutlichainAddressCheckAdv ¶ added in v0.1.2
func (c *Client) GetMutlichainAddressCheckAdv(mutliAddress MutliAddress, options map[string]string) (resp *DataMultichain, e error)
GetMutlichainAddressCheckAdv check multiple addresses from different blockchain via just one request. This can be useful if you're monitoring your own wallet or portfolio with options.
func (*Client) GetOmni ¶ added in v0.1.1
GetOmni fetch some basic information on an Omni Layer (Bitcoin) property (token).
func (*Client) GetOmniAdv ¶ added in v0.1.1
GetOmniAdv fetch some basic information on an Omni Layer (Bitcoin) property (token) with options.
func (*Client) GetTransaction ¶
func (c *Client) GetTransaction(crypto string, txID string) (*DataTransaction, error)
GetTransaction fetches a Bitcoin-like transaction.
func (*Client) GetTransactionAdv ¶ added in v0.1.0
func (c *Client) GetTransactionAdv(crypto string, txID string, options map[string]string) (resp *DataTransaction, e error)
GetTransactionAdv fetches a Bitcoin-like transaction with options.
func (*Client) GetTransactionEth ¶
func (c *Client) GetTransactionEth(crypto string, txID string) (*DataTransactionEth, error)
GetTransactionEth fetches an Ethereum transaction.
func (*Client) GetTransactionEthAdv ¶ added in v0.1.0
func (c *Client) GetTransactionEthAdv(crypto string, txID string, options map[string]string) (resp *DataTransactionEth, e error)
GetTransactionEthAdv fetches an Ethereum transaction with options.
func (*Client) GetTransactions ¶
func (c *Client) GetTransactions(crypto string, txIDs []string) (*DataTransaction, error)
GetTransactions Fetches multiple Bitcoin-like transaction
func (*Client) GetTransactionsAdv ¶ added in v0.1.0
func (c *Client) GetTransactionsAdv(crypto string, txIDs []string, options map[string]string) (resp *DataTransaction, e error)
GetTransactionsAdv fetches multiple Bitcoin-like transaction with options
func (*Client) GetTransactionsEth ¶
func (c *Client) GetTransactionsEth(crypto string, txIDs []string) (*DataTransactionEth, error)
GetTransactionsEth fetches multiple Ethereum transactions.
func (*Client) GetTransactionsEthAdv ¶ added in v0.1.0
func (c *Client) GetTransactionsEthAdv(crypto string, txIDs []string, options map[string]string) (resp *DataTransactionEth, e error)
GetTransactionsEthAdv fetches multiple Ethereum transactions with options.
func (*Client) GetUncleAdv ¶ added in v0.1.0
func (c *Client) GetUncleAdv(crypto string, hash string, options map[string]string) (resp *DataUncle, e error)
GetUncleAdv fetch an uncle block created on Ethereum with options.
func (*Client) GetUnclesAdv ¶ added in v0.1.0
func (c *Client) GetUnclesAdv(crypto string, hashes []string, options map[string]string) (resp *DataUncle, e error)
GetUnclesAdv fetch multiple uncle blocks created on Ethereum with options.
func (*Client) GetUsage ¶ added in v0.1.0
func (c *Client) GetUsage() (resp *DataPremium, e error)
GetUsage get the API key usage. Needs c.APIKey to be set.
func (*Client) GetXpub ¶
GetXpub get the xpub/ypub/zpub by type of crypto and the extended key. xpub (supported for all blockchains), ypub (supported for Bitcoin, Litecoin, Groestlcoin, and Bitcoin Testnet only) and zpub (supported for Bitcoin, Litecoin, Groestlcoin, and Bitcoin Testnet only)
func (*Client) GetXpubAdv ¶ added in v0.1.0
func (c *Client) GetXpubAdv(crypto string, extendedKey string, options map[string]string) (resp *DataXpub, e error)
GetXpubAdv get the xpub/ypub/zpub by type of crypto, the extended key, and options. xpub (supported for all blockchains), ypub (supported for Bitcoin, Litecoin, Groestlcoin, and Bitcoin Testnet only) and zpub (supported for Bitcoin, Litecoin, Groestlcoin, and Bitcoin Testnet only)
func (*Client) LoadResponse ¶ added in v0.1.0
LoadResponse to send a client request, which is then converted to the passed type.
func (*Client) RateLimitStrategyConcurrent ¶ added in v0.1.3
RateLimitStrategyConcurrent sleeps for WaitTime * parallelism when remaining is less than or equal to parallelism.
func (*Client) RateLimitStrategySleep ¶ added in v0.1.3
func (c *Client) RateLimitStrategySleep()
RateLimitStrategySleep sets RateLimitFunc to sleep by WaitTimeRemaining
func (*Client) ValidateCrypto ¶ added in v0.1.0
ValidateCrypto validate Bitcoin-like crypto.
func (*Client) ValidateCryptoBoth ¶ added in v0.1.0
ValidateCryptoBoth validate both Bitcoin-like and Ethereum crypto.
func (*Client) ValidateCryptoEth ¶ added in v0.1.0
ValidateCryptoEth validate Ethereum crypto.
func (*Client) ValidateCryptoMultichain ¶ added in v0.1.2
ValidateCryptoMultichain validate crypto for multichain address check.
func (*Client) ValidateErc20Token ¶ added in v0.1.1
ValidateErc20Token validate ERC-20 token.
func (*Client) ValidateErc20Tokens ¶ added in v0.1.1
ValidateErc20Tokens validate ERC-20 tokens.
func (*Client) ValidateHashEth ¶ added in v0.1.0
ValidateHashEth validate Ethereum hash.
func (*Client) ValidateHashesEth ¶ added in v0.1.0
ValidateHashesEth validate Ethereum hashes.
type Context ¶
type Context struct { Code int `json:"code"` Source string `json:"source"` Limit int `json:"limit"` Offset int `json:"offset"` Results int `json:"results"` State int `json:"state"` MarketPriceUsd float64 `json:"market_price_usd"` Cache *Cache `json:"cache"` API *API `json:"api"` Server string `json:"server"` Time float32 `json:"time"` RenderTime float32 `json:"render_time"` FullTime float32 `json:"full_time"` RequestCost float32 `json:"request_cost"` }
Context common context for all requests
type ContextAddress ¶
type ContextAddress struct { Code int `json:"code"` Source string `json:"source"` Limit string `json:"limit"` Offset string `json:"offset"` Results int `json:"results"` Checked []string `json:"checked,omitempty"` State int `json:"state"` MarketPriceUsd float32 `json:"market_price_usd"` Cache *Cache `json:"cache"` API *API `json:"api"` Servers string `json:"servers"` Time float32 `json:"time"` RenderTime float32 `json:"render_time"` FullTime float32 `json:"full_time"` RequestCost float32 `json:"request_cost"` }
ContextAddress the structure of context for address(es). TODO! FIX "CHECKED" INTO A SLICE
type ContextOmni ¶ added in v0.1.1
type ContextOmni struct { Code int `json:"code"` Source string `json:"source"` Results int `json:"results"` State int `json:"state"` MarketPriceUsd int `json:"market_price_usd"` Cache *Cache `json:"cache"` API *API `json:"api"` Server string `json:"server"` Time float32 `json:"time"` RenderTime float32 `json:"render_time"` FullTime float32 `json:"full_time"` RequestCost float32 `json:"request_cost"` }
ContextOmni for omni.
type ContextPremium ¶ added in v0.1.0
type ContextPremium struct { Code int `json:"code"` Cache *Cache `json:"cache"` API *API `json:"api"` Time float32 `json:"time.omitempty"` RenderTime float64 `json:"render_time"` FullTime float64 `json:"full_time"` RequestCost int `json:"request_cost"` }
ContextPremium the structure of context for premium stats.
type ContextUncle ¶
type ContextUncle struct { Code int `json:"code"` Source string `json:"source"` Results int `json:"results"` State int `json:"state"` StateLayer2 int `json:"state_layer_2"` MarketPriceUsd float32 `json:"market_price_usd"` Cache *Cache `json:"cache"` API *API `json:"api"` Server string `json:"server"` Time float64 `json:"time"` RenderTime float64 `json:"render_time"` FullTime float64 `json:"full_time"` RequestCost float32 `json:"request_cost"` }
ContextUncle the structure of context for uncle(s).
type DataAddress ¶
type DataAddress struct { Data map[string]AddressInfo `json:"data"` Context ContextAddress `json:"context"` }
DataAddress includes full server response to address request.
type DataAddressEth ¶
type DataAddressEth struct { Data map[string]AddressInfoEth `json:"data"` Context ContextAddress `json:"context"` }
DataAddressEth includes full server response to address request for Ethereum.
type DataAddresses ¶
type DataAddresses struct { Data AddressesInfo `json:"data"` Context ContextAddress `json:"context"` }
DataAddresses includes full server response to addresses request.
type DataBlock ¶
type DataBlock struct { Data map[string]DataInfo `json:"data,omitempty"` Context Context `json:"context"` }
DataBlock includes full server response to block request.
type DataBlockEth ¶
type DataBlockEth struct { Data map[string]DataInfoEth `json:"data,omitempty"` Context Context `json:"context"` }
DataBlockEth includes full server response to block request for Ethereum.
type DataErc20 ¶ added in v0.1.1
type DataErc20 struct { Data Erc20 `json:"data"` Context ContextUncle `json:"context"` }
DataErc20 includes full server response to ERC-20 request.
type DataErc20Holder ¶ added in v0.1.1
type DataErc20Holder struct { Data map[string]Erc20HolderInfo `json:"data"` Context HolderContext `json:"context"` }
DataErc20Holder includes full server response to ERC-20 holder request.
type DataInfoEth ¶
type DataInfoEth struct { Block BlockEth `json:"block"` Uncles []string `json:"uncles,omitempty"` Transactions []string `json:"transactions,omitempty"` SyntheticTransactions []float32 `json:"synthetic_transactions"` }
DataInfoEth describes the outer structure of the block for Ethereum.
type DataMultichain ¶ added in v0.1.2
type DataMultichain struct { Data MultichainInfo `json:"data"` Context Context `json:"context"` }
DataMultichain includes full server response to multichain address check request.
type DataOmni ¶ added in v0.1.1
type DataOmni struct { Data OmniInfo `json:"data"` Context ContextOmni `json:"context"` }
DataOmni includes full server response to the Omni Layer property request.
type DataPremium ¶ added in v0.1.0
type DataPremium struct { Data Premium `json:"data,omitempty"` Context ContextPremium `json:"context"` }
DataPremium includes full server response to premium stats request.
type DataTransaction ¶
type DataTransaction struct { Data map[string]TransactionInfo `json:"data,omitempty"` Context *Context `json:"context"` }
DataTransaction includes full server response to transaction request.
type DataTransactionEth ¶
type DataTransactionEth struct { Data map[string]TransactionInfoEth `json:"data,omitempty"` Context *ContextUncle `json:"context"` }
DataTransactionEth includes full server response to transaction request for Ethereum.
type DataUncle ¶
type DataUncle struct { Data map[string]UncleInfo `json:"data"` Context ContextUncle `json:"context"` }
DataUncle includes full server response to uncle request.
type DataXpub ¶
type DataXpub struct { Data map[string]XpubInfo `json:"data"` Context ContextAddress `json:"context"` }
DataXpub includes full server response to xpub request.
type Erc20 ¶ added in v0.1.1
type Erc20 struct { Name string `json:"name"` Symbol string `json:"symbol"` Decimals int `json:"decimals"` Time string `json:"time"` CreatingBlockID int `json:"creating_block_id"` CreatingTransactionHash string `json:"creating_transaction_hash"` Transactions int `json:"transactions"` Transactions24H int `json:"transactions_24h"` Volume24HApproximate float32 `json:"volume_24h_approximate"` Volume24H string `json:"volume_24h"` Circulation string `json:"circulation"` CirculationApproximate float32 `json:"circulation_approximate"` MarketPriceUsd float32 `json:"market_price_usd,omitempty"` MarketPriceBtc float32 `json:"market_price_btc,omitempty"` MarketCapUsd float32 `json:"market_cap_usd,omitempty"` }
Erc20 is the structure of one specific ERC-20 token.
type Erc20HolderInfo ¶ added in v0.1.1
type Erc20HolderInfo struct { Address HolderAddress `json:"address"` Transaction []HolderTransaction `json:"transaction,omitempty"` }
Erc20HolderInfo describes the outer structure of a ERC-20 holder.
type Error ¶ added in v0.1.0
type Error struct { // Hash wrong hash. Hash *string // MainErr standard error msg. MainErr error // ExecErr error that occurred during the operation. ExecErr error // Response http response. Response *http.Response }
Error data structure describing the error.
type HolderAddress ¶ added in v0.1.1
type HolderAddress struct { Balance string `json:"balance,omitempty"` BalanceApproximate int `json:"balance_approximate,omitempty"` Received string `json:"received,omitempty"` ReceivedApproximate int `json:"received_approximate,omitempty"` Spent string `json:"spent,omitempty"` SpentApproximate int `json:"spent_approximate,omitempty"` ReceivingTransactionCount int `json:"receiving_transaction_count,omitempty"` SpendingTransactionCount int `json:"spending_transaction_count,omitempty"` TransactionCount int `json:"transaction_count,omitempty"` FirstSeenReceiving string `json:"first_seen_receiving,omitempty"` LastSeenReceiving string `json:"last_seen_receiving,omitempty"` FirstSeenSpending string `json:"first_seen_spending,omitempty"` LastSeenSpending string `json:"last_seen_spending,omitempty"` }
HolderAddress the structure of one specific Ethereum address.
type HolderContext ¶ added in v0.1.1
type HolderContext struct { Code int `json:"code"` Source string `json:"source"` Limit int `json:"limit"` Offset int `json:"offset"` Results int `json:"results"` State int `json:"state"` StateLayer2 int `json:"state_layer_2"` MarketPriceUsd float64 `json:"market_price_usd"` Cache *Cache `json:"cache"` API *API `json:"api"` Server string `json:"server"` Time float32 `json:"time"` RenderTime float32 `json:"render_time"` FullTime float32 `json:"full_time"` RequestCost float32 `json:"request_cost"` }
HolderContext is the structure of context for ERC-20 holder.
type HolderTransaction ¶ added in v0.1.1
type HolderTransaction struct { BlockID int `json:"block_id"` ID int `json:"id"` TransactionHash string `json:"transaction_hash"` Time string `json:"time"` TokenAddress string `json:"token_address"` TokenName string `json:"token_name"` TokenSymbol string `json:"token_symbol"` TokenDecimals int `json:"token_decimals"` Sender string `json:"sender"` Recipient string `json:"recipient"` Value string `json:"value"` ValueApproximate int `json:"value_approximate"` }
HolderTransaction the structure of one specific Ethereum transaction.
type Inputs ¶
type Inputs struct { BlockID int `json:"block_id"` TransactionID int `json:"transaction_id"` Index int `json:"index"` TransactionHash string `json:"transaction_hash"` Date string `json:"date"` Time string `json:"time"` Value int64 `json:"value"` ValueUsd float32 `json:"value_usd"` Recipient string `json:"recipient"` Type string `json:"type"` ScriptHex string `json:"script_hex"` IsFromCoinbase bool `json:"is_from_coinbase"` IsSpendable bool `json:"is_spendable,omitempty"` IsSpent bool `json:"is_spent"` SpendingBlockID int `json:"spending_block_id"` SpendingTransactionID int `json:"spending_transaction_id"` SpendingIndex int `json:"spending_index"` SpendingTransactionHash string `json:"spending_transaction_hash"` SpendingDate string `json:"spending_date"` SpendingTime string `json:"spending_time"` SpendingValueUsd float32 `json:"spending_value_usd"` SpendingSequence int64 `json:"spending_sequence"` SpendingSignatureHex string `json:"spending_signature_hex"` SpendingWitness string `json:"spending_witness"` Lifespan int `json:"lifespan"` Cdd float32 `json:"cdd"` }
Inputs is the structure of one specific input block.
type MultichainAddress ¶ added in v0.1.2
type MultichainAddress struct { Chain string `json:"chain"` Address string `json:"address"` Type string `json:"type"` ScriptHex string `json:"script_hex,omitempty"` ContractCodeHex string `json:"contract_code_hex,omitempty"` ContractCreated string `json:"contract_created,omitempty"` ContractDestroyed string `json:"contract_destroyed,omitempty"` Balance json.Number `json:"balance"` //int64 for Bitcoin-like and string for Ethereum TODO! BalanceUsd float32 `json:"balance_usd"` Received float32 `json:"received,omitempty"` ReceivedApproximate string `json:"received_approximate,omitempty"` ReceivedUsd float32 `json:"received_usd"` Spent float32 `json:"spent,omitempty"` SpentApproximate string `json:"spent_approximate,omitempty"` SpentUsd float32 `json:"spent_usd"` OutputCount int `json:"output_count,omitempty"` UnspentOutputCount int `json:"unspent_output_count,omitempty"` FeesApproximate string `json:"fees_approximate,omitempty"` FeesUsd float32 `json:"fees_usd,omitempty"` ReceivingCallCount int `json:"receiving_call_count,omitempty"` SpendingCallCount int `json:"spending_call_count,omitempty"` CallCount int `json:"call_count,omitempty"` TransactionCount int `json:"transaction_count,omitempty"` FirstSeenReceiving string `json:"first_seen_receiving"` LastSeenReceiving string `json:"last_seen_receiving"` FirstSeenSpending string `json:"first_seen_spending,omitempty"` LastSeenSpending string `json:"last_seen_spending,omitempty"` Nonce int `json:"nonce,omitempty"` }
MultichainAddress is the structures of multichain address for Bitcoin-like and Ethereum.
type MultichainInfo ¶ added in v0.1.2
type MultichainInfo struct { Set SetMultichain `json:"set"` Addresses map[string]MultichainAddress `json:"addresses"` Transactions []TransactionsMultichain `json:"transactions"` }
MultichainInfo describes the outer structure of the multichain address check.
type MutliAddress ¶ added in v0.1.2
type MutliAddress []struct {
// contains filtered or unexported fields
}
MutliAddress struct for usage with GetMutlichainAddressCheck(Adv), sends type of crypto and address.
type OmniInfo ¶ added in v0.1.1
type OmniInfo struct { ID int `json:"id"` Name string `json:"name"` Category string `json:"category"` Subcategory string `json:"subcategory"` Description string `json:"description"` URL string `json:"url"` IsDivisible bool `json:"is_divisible"` Issuer string `json:"issuer"` CreationTransactionHash string `json:"creation_transaction_hash,omitempty"` CreationTime string `json:"creation_time,omitempty"` CreationBlockID int `json:"creation_block_id"` IsIssuanceFixed bool `json:"is_issuance_fixed"` IsIssuanceManaged bool `json:"is_issuance_managed"` Circulation float32 `json:"circulation"` Ecosystem int `json:"ecosystem"` }
OmniInfo describes the outer structure of the Omni Layer property.
type Outputs ¶
type Outputs struct { BlockID int `json:"block_id"` TransactionID int `json:"transaction_id"` Index int `json:"index"` TransactionHash string `json:"transaction_hash"` Date string `json:"date"` Time string `json:"time"` Value int `json:"value"` ValueUsd float32 `json:"value_usd"` Recipient string `json:"recipient"` Type string `json:"type"` ScriptHex string `json:"script_hex"` IsFromCoinbase bool `json:"is_from_coinbase"` IsSpendable bool `json:"is_spendable,omitempty"` IsSpent bool `json:"is_spent"` SpendingBlockID int `json:"spending_block_id,omitempty"` SpendingTransactionID int `json:"spending_transaction_id,omitempty"` SpendingIndex int `json:"spending_index,omitempty"` SpendingTransactionHash string `json:"spending_transaction_hash,omitempty"` SpendingDate string `json:"spending_date,omitempty"` SpendingTime string `json:"spending_time,omitempty"` SpendingValueUsd float32 `json:"spending_value_usd,omitempty"` SpendingSequence int64 `json:"spending_sequence,omitempty"` SpendingSignatureHex string `json:"spending_signature_hex,omitempty"` SpendingWitness string `json:"spending_witness,omitempty"` Lifespan int `json:"lifespan,omitempty"` Cdd float32 `json:"cdd,omitempty"` }
Outputs is the structure of one specific output block.
type Premium ¶ added in v0.1.0
type Premium struct { ValidUntil string `json:"valid_until"` MaxRequestsPerDay uint32 `json:"max_requests_per_day,omitempty"` MaxRequestsInParallel uint32 `json:"max_requests_in_parallel,omitempty"` RequestsToday uint32 `json:"requests_today"` }
Premium describes the structure of the premium stats.
type RateLimit ¶ added in v0.1.3
RateLimit store values from calling Premium API.
func (RateLimit) PercentageLeft ¶ added in v0.1.3
PercentageLeft returns the ratio of Remaining to Limit as a percentage
func (RateLimit) WaitTime ¶ added in v0.1.3
WaitTime returns the time.Duration ratio of Period to Limit
func (RateLimit) WaitTimeRemaining ¶ added in v0.1.3
WaitTimeRemaining returns the time.Duration ratio of Period to Remaining
type RateLimitFunc ¶ added in v0.1.3
type RateLimitFunc func(RateLimit)
RateLimitFunc is rate limiting strategy for the Client instance.
type Set ¶
type Set struct { AddressCount int `json:"address_count"` Balance int64 `json:"balance"` BalanceUsd float32 `json:"balance_usd"` Received int64 `json:"received"` Spent int `json:"spent"` OutputCount int `json:"output_count"` UnspentOutputCount int `json:"unspent_output_count"` FirstSeenReceiving string `json:"first_seen_receiving"` LastSeenReceiving string `json:"last_seen_receiving"` FirstSeenSpending string `json:"first_seen_spending"` LastSeenSpending string `json:"last_seen_spending"` TransactionCount int `json:"transaction_count"` }
Set the structure of the set for Bitcoin-like address.
type SetMultichain ¶ added in v0.1.2
type SetMultichain struct { AddressCount int `json:"address_count"` BalanceUsd float32 `json:"balance_usd"` ReceivedUsd float32 `json:"received_usd"` FirstSeenReceiving string `json:"first_seen_receiving"` LastSeenReceiving string `json:"last_seen_receiving"` FirstSeenSpending string `json:"first_seen_spending"` LastSeenSpending string `json:"last_seen_spending"` TransactionCount int `json:"transaction_count"` }
SetMultichain the structure of the set for the multichain address check.
type Transaction ¶
type Transaction struct { BlockID int `json:"block_id"` ID int `json:"id"` Hash string `json:"hash"` Date string `json:"date"` Time string `json:"time"` Size int `json:"size"` Weight int `json:"weight"` Version int `json:"version"` LockTime int `json:"lock_time"` IsCoinbase bool `json:"is_coinbase"` HasWitness bool `json:"has_witness"` InputCount int `json:"input_count"` OutputCount int `json:"output_count"` InputTotal int `json:"input_total"` InputTotalUsd float32 `json:"input_total_usd"` OutputTotal int64 `json:"output_total"` OutputTotalUsd float32 `json:"output_total_usd"` Fee int `json:"fee"` FeeUsd float32 `json:"fee_usd"` FeePerKb float32 `json:"fee_per_kb"` FeePerKbUsd float32 `json:"fee_per_kb_usd"` FeePerKwu float32 `json:"fee_per_kwu"` FeePerKwuUsd float32 `json:"fee_per_kwu_usd"` CddTotal float32 `json:"cdd_total"` IsRbf bool `json:"is_rbf"` }
Transaction is the structure of one specific transaction.
type TransactionEth ¶
type TransactionEth struct { BlockID int `json:"block_id"` ID int64 `json:"id"` Index int `json:"index"` Hash string `json:"hash"` Date string `json:"date"` Time string `json:"time"` Failed bool `json:"failed"` Type string `json:"type"` Sender string `json:"sender"` Recipient string `json:"recipient"` CallCount int `json:"call_count"` Value string `json:"value"` ValueUsd float32 `json:"value_usd"` InternalValue string `json:"internal_value"` InternalValueUsd float32 `json:"internal_value_usd"` Fee string `json:"fee"` FeeUsd float32 `json:"fee_usd"` GasUsed int `json:"gas_used"` GasLimit int `json:"gas_limit"` GasPrice int64 `json:"gas_price"` InputHex string `json:"input_hex"` Nonce int `json:"nonce"` V string `json:"v"` R string `json:"r"` S string `json:"s"` Version int `json:"version,omitempty"` EffectiveGasPrice float32 `json:"effective_gas_price,omitempty"` MaxFeePerGas float32 `json:"max_fee_per_gas,omitempty"` MaxPriorityFeePerGas float32 `json:"max_priority_fee_per_gas,omitempty"` BaseFeePerGas float32 `json:"base_fee_per_gas,omitempty"` Burned string `json:"burned"` Type2718 int `json:"type_2718,omitempty"` }
TransactionEth is the structure of one specific transaction for Ethereum.
type TransactionInfo ¶
type TransactionInfo struct { Transaction Transaction `json:"transaction"` Inputs []Inputs `json:"inputs"` Outputs []Outputs `json:"outputs"` }
TransactionInfo describes the outer structure of the transaction.
type TransactionInfoEth ¶
type TransactionInfoEth struct { Transaction TransactionEth `json:"transaction"` Calls []Calls `json:"calls"` }
TransactionInfoEth describes the outer structure of the transaction for Ethereum.
type TransactionsMultichain ¶ added in v0.1.2
type TransactionsMultichain struct { Chain string `json:"chain"` Address string `json:"address"` BlockID int32 `json:"block_id"` Hash string `json:"hash"` Time string `json:"time"` BalanceChange float32 `json:"balance_change"` }
TransactionsMultichain is the structure of one specific transaction.
type Uncle ¶
type Uncle struct { ParentBlockID int `json:"parent_block_id"` Index int `json:"index"` ID int `json:"id"` Hash string `json:"hash"` Date string `json:"date"` Time string `json:"time"` Size int `json:"size"` Miner string `json:"miner"` ExtraDataHex string `json:"extra_data_hex"` Difficulty float32 `json:"difficulty"` GasUsed int `json:"gas_used"` GasLimit int `json:"gas_limit"` BaseFeePerGas float32 `json:"base_fee_per_gas,omitempty"` LogsBloom string `json:"logs_bloom"` MixHash string `json:"mix_hash"` Nonce string `json:"nonce"` ReceiptsRoot string `json:"receipts_root"` Sha3Uncles string `json:"sha3_uncles"` StateRoot string `json:"state_root"` TransactionsRoot string `json:"transactions_root"` Generation string `json:"generation"` GenerationUsd float32 `json:"generation_usd"` }
Uncle is the structure of one specific uncle block.
type UncleInfo ¶
type UncleInfo struct {
Uncle Uncle `json:"uncle"`
}
UncleInfo describes the outer structure of the uncle.
type Utxo ¶
type Utxo struct { BlockID int `json:"block_id"` TransactionHash string `json:"transaction_hash"` Index int `json:"index"` Value int `json:"value"` }
Utxo the structure of utxo.
type Xpub ¶
type Xpub struct { AddressCount int `json:"address_count"` Balance int `json:"balance"` BalanceUsd float64 `json:"balance_usd"` Received int `json:"received"` Spent int `json:"spent"` OutputCount int `json:"output_count"` UnspentOutputCount int `json:"unspent_output_count"` FirstSeenReceiving string `json:"first_seen_receiving,omitempty"` LastSeenReceiving string `json:"last_seen_receiving,omitempty"` FirstSeenSpending string `json:"first_seen_spending,omitempty"` LastSeenSpending string `json:"last_seen_spending,omitempty"` TransactionCount int `json:"transaction_count"` }
Xpub describes the inner structure of the x/z/v-pub.