blockchair

package module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2023 License: MIT Imports: 10 Imported by: 1

README

logo of the project
Blockchair API

Client for the blockchair.com API using GO.

BC-API version go version license code size GO report GoDoc GitHub Workflow Status Gitbook documentation

⚡️ Quick start

First of all, download and install GO. Version 1.17 or higher is required.

Verify that the installation was successful by running the following command that should return the version number for GO.

go version

To quickly start using the module run the following command for installation.

go install github.com/DiFronzo/blockchair@latest

That's all you need to know to start! 🎉

⚙️ Usage & Options

For full documentation see Gitbook, also a big thanks to Gitbook for supporting the project.

For an example of usage see here.

🐳 Docker-way to quick start

UNDER CONSTRUCTION.

⭐️ Project assistance

If you want to say thank you or/and support active development of blockchair:

⚠️ License

Blockchair is free and open-source software licensed under the MIT. This is not an official release from Blockchair. Use on your own risk.

Documentation

Index

Constants

View Source
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

View Source
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

func Contains(slice []string, item string) bool

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

func SetRateLimitFunc(ratefunc func(rl RateLimit)) func(*Client)

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 New

func New() *Client

New creates a new client instance the network internet.

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) GetBlock

func (c *Client) GetBlock(crypto string, blockID string) (*DataBlock, error)

GetBlock fetch a Bitcoin-like block.

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) GetBlocks

func (c *Client) GetBlocks(crypto string, blockIDs []string) (*DataBlock, error)

GetBlocks fetches multiple Bitcoin-like blocks.

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

func (c *Client) GetErc20(crypto string, token string) (*DataErc20, error)

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

func (c *Client) GetOmni(prorertyID int64) (*DataOmni, error)

GetOmni fetch some basic information on an Omni Layer (Bitcoin) property (token).

func (*Client) GetOmniAdv added in v0.1.1

func (c *Client) GetOmniAdv(prorertyID int64, options map[string]string) (resp *DataOmni, e error)

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) GetUncle

func (c *Client) GetUncle(crypto string, hash string) (*DataUncle, error)

GetUncle fetch an uncle block created on Ethereum.

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) GetUncles

func (c *Client) GetUncles(crypto string, hashes []string) (*DataUncle, error)

GetUncles fetch multiple uncle blocks created on Ethereum.

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

func (c *Client) GetXpub(crypto string, extendedKey string) (*DataXpub, error)

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

func (c *Client) LoadResponse(path string, i interface{}, options map[string]string) error

LoadResponse to send a client request, which is then converted to the passed type.

func (*Client) RateLimitStrategyConcurrent added in v0.1.3

func (c *Client) RateLimitStrategyConcurrent(parallelism int)

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) SetClient added in v0.1.0

func (c *Client) SetClient(client *http.Client)

SetClient http client setter.

func (*Client) ValidateCrypto added in v0.1.0

func (c *Client) ValidateCrypto(crypto string) error

ValidateCrypto validate Bitcoin-like crypto.

func (*Client) ValidateCryptoBoth added in v0.1.0

func (c *Client) ValidateCryptoBoth(crypto string) error

ValidateCryptoBoth validate both Bitcoin-like and Ethereum crypto.

func (*Client) ValidateCryptoEth added in v0.1.0

func (c *Client) ValidateCryptoEth(crypto string) error

ValidateCryptoEth validate Ethereum crypto.

func (*Client) ValidateCryptoMultichain added in v0.1.2

func (c *Client) ValidateCryptoMultichain(crypto string) error

ValidateCryptoMultichain validate crypto for multichain address check.

func (*Client) ValidateErc20Token added in v0.1.1

func (c *Client) ValidateErc20Token(token string) error

ValidateErc20Token validate ERC-20 token.

func (*Client) ValidateErc20Tokens added in v0.1.1

func (c *Client) ValidateErc20Tokens(tokens []string) error

ValidateErc20Tokens validate ERC-20 tokens.

func (*Client) ValidateHashEth added in v0.1.0

func (c *Client) ValidateHashEth(hash string) error

ValidateHashEth validate Ethereum hash.

func (*Client) ValidateHashesEth added in v0.1.0

func (c *Client) ValidateHashesEth(hashes []string) error

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 DataInfo

type DataInfo struct {
	Block        Block    `json:"block"`
	Transactions []string `json:"transactions"`
}

DataInfo describes the outer structure of the block.

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.

func NewError added in v0.1.0

func NewError(errorMain error, errorExec error, response *http.Response, hash *string) *Error

NewError creates a new Error instance.

func (Error) Error added in v0.1.0

func (e Error) Error() string

Error compatibility with error interface.

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

type RateLimit struct {
	Limit     int
	Remaining int
	Period    int
}

RateLimit store values from calling Premium API.

func (RateLimit) PercentageLeft added in v0.1.3

func (rl RateLimit) PercentageLeft() int

PercentageLeft returns the ratio of Remaining to Limit as a percentage

func (RateLimit) WaitTime added in v0.1.3

func (rl RateLimit) WaitTime() time.Duration

WaitTime returns the time.Duration ratio of Period to Limit

func (RateLimit) WaitTimeRemaining added in v0.1.3

func (rl RateLimit) WaitTimeRemaining() time.Duration

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.

type XpubInfo

type XpubInfo struct {
	Xpub         Xpub               `json:"xpub"`
	Addresses    map[string]Address `json:"addresses"`
	Transactions []string           `json:"transactions"`
	Utxo         []Utxo             `json:"utxo"`
}

XpubInfo describes the outer structure of the x/z/v-pub.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL