Versions in this module Expand all Collapse all v0 v0.32.0 Mar 4, 2024 Changes in this version + const FilterBloom + const FilterRegex + const ProviderAll + const ProviderBroadcastClient + const ProviderMinercraft + const ProviderNone + var ErrInvalidRequirements = errors.New("requirements are invalid or missing") + var ErrInvalidTransactionHex = errors.New("invalid transaction hex") + var ErrInvalidTransactionID = errors.New("invalid transaction id") + var ErrMissingBroadcastMiners = errors.New("missing: broadcasting miners") + var ErrMissingQueryMiners = errors.New("missing: query miners") + var ErrTransactionIDMismatch = errors.New("result tx id did not match provided tx id") + var ErrTransactionNotFound = errors.New("transaction not found using all chain providers") + var MockDefaultFee = &utils.FeeUnit + type BlockInfo struct + Bits string + ChainWork string + CoinbaseTx CoinbaseTxInfo + Confirmations int64 + Difficulty float64 + Hash string + Height int64 + MedianTime int64 + MerkleRoot string + Miner string + NextBlockHash string + Nonce int64 + Pages Page + PreviousBlockHash string + Size int64 + Time int64 + TotalFees float64 + Tx []string + TxCount int64 + Version int64 + VersionHex string + type ChainService interface + Broadcast func(ctx context.Context, id, txHex string, format HexFormatFlag, ...) (string, error) + QueryTransaction func(ctx context.Context, id string, requiredIn RequiredIn, timeout time.Duration) (*TransactionInfo, error) + QueryTransactionFastest func(ctx context.Context, id string, requiredIn RequiredIn, timeout time.Duration) (*TransactionInfo, error) + SupportedBroadcastFormats func() HexFormatFlag + type Client struct + func (c *Client) ActiveProvider() string + func (c *Client) Broadcast(ctx context.Context, id, txHex string, format HexFormatFlag, ...) (string, error) + func (c *Client) BroadcastClient() broadcast.Client + func (c *Client) Close(ctx context.Context) + func (c *Client) Debug(on bool) + func (c *Client) DebugLog(text string) + func (c *Client) FeeUnit() *utils.FeeUnit + func (c *Client) HTTPClient() HTTPInterface + func (c *Client) IsDebug() bool + func (c *Client) IsNewRelicEnabled() bool + func (c *Client) Minercraft() minercraft.ClientInterface + func (c *Client) Network() Network + func (c *Client) QueryTimeout() time.Duration + func (c *Client) QueryTransaction(ctx context.Context, id string, requiredIn RequiredIn, timeout time.Duration) (transaction *TransactionInfo, err error) + func (c *Client) QueryTransactionFastest(ctx context.Context, id string, requiredIn RequiredIn, timeout time.Duration) (*TransactionInfo, error) + func (c *Client) SupportedBroadcastFormats() HexFormatFlag + func (c *Client) VerifyMerkleRoots(ctx context.Context, merkleRoots []MerkleRootConfirmationRequestItem) error + type ClientInterface interface + Close func(ctx context.Context) + Debug func(on bool) + DebugLog func(text string) + FeeUnit func() *utils.FeeUnit + HTTPClient func() HTTPInterface + IsDebug func() bool + IsNewRelicEnabled func() bool + Network func() Network + QueryTimeout func() time.Duration + func NewClient(ctx context.Context, opts ...ClientOps) (ClientInterface, error) + type ClientOps func(c *clientOptions) + func WithBroadcastClient(client broadcast.Client) ClientOps + func WithCallback(callbackURL, callbackAuthToken string) ClientOps + func WithConnectionToBlockHeaderService(url, authToken string) ClientOps + func WithDebugging() ClientOps + func WithExcludedProviders(providers []string) ClientOps + func WithFeeQuotes(enabled bool) ClientOps + func WithFeeUnit(feeUnit *utils.FeeUnit) ClientOps + func WithHTTPClient(client HTTPInterface) ClientOps + func WithLogger(customLogger *zerolog.Logger) ClientOps + func WithMAPI() ClientOps + func WithMetrics(metrics *metrics.Metrics) ClientOps + func WithMinercraft(client minercraft.ClientInterface) ClientOps + func WithMinercraftAPIs(apis []*minercraft.MinerAPIs) ClientOps + func WithNetwork(network Network) ClientOps + func WithNewRelic() ClientOps + func WithQueryTimeout(timeout time.Duration) ClientOps + func WithUserAgent(agent string) ClientOps + type CoinbaseTxInfo struct + BlockHash string + BlockTime int64 + Confirmations int64 + Hash string + Hex string + LockTime int64 + Size int64 + Time int64 + TxID string + Version int64 + Vin []VinInfo + Vout []VoutInfo + type HTTPInterface interface + Do func(req *http.Request) (*http.Response, error) + type HeaderService interface + VerifyMerkleRoots func(ctx context.Context, merkleRoots []MerkleRootConfirmationRequestItem) error + type HexFormatFlag byte + const Ef + const RawTx + func (flag HexFormatFlag) Contains(other HexFormatFlag) bool + type MerkleRootConfirmation struct + BlockHeight uint64 + Confirmation MerkleRootConfirmationState + Hash string + MerkleRoot string + type MerkleRootConfirmationRequestItem struct + BlockHeight uint64 + MerkleRoot string + type MerkleRootConfirmationState string + const Confirmed + const Invalid + const UnableToVerify + type MerkleRootsConfirmationsResponse struct + ConfirmationState MerkleRootConfirmationState + Confirmations []MerkleRootConfirmation + type MinerCraftBase struct + func (m *MinerCraftBase) APIType() minercraft.APIType + func (m *MinerCraftBase) AddMiner(miner minercraft.Miner, apis []minercraft.API) error + func (m *MinerCraftBase) BestQuote(context.Context, string, string) (*minercraft.FeeQuoteResponse, error) + func (m *MinerCraftBase) FastestQuote(context.Context, time.Duration) (*minercraft.FeeQuoteResponse, error) + func (m *MinerCraftBase) FeeQuote(context.Context, *minercraft.Miner) (*minercraft.FeeQuoteResponse, error) + func (m *MinerCraftBase) MinerAPIByMinerID(minerID string, apiType minercraft.APIType) (*minercraft.API, error) + func (m *MinerCraftBase) MinerAPIsByMinerID(minerID string) *minercraft.MinerAPIs + func (m *MinerCraftBase) MinerByID(minerID string) *minercraft.Miner + func (m *MinerCraftBase) MinerByName(name string) *minercraft.Miner + func (m *MinerCraftBase) MinerUpdateToken(name, token string, apiType minercraft.APIType) + func (m *MinerCraftBase) Miners() []*minercraft.Miner + func (m *MinerCraftBase) PolicyQuote(context.Context, *minercraft.Miner) (*minercraft.PolicyQuoteResponse, error) + func (m *MinerCraftBase) QueryTransaction(context.Context, *minercraft.Miner, string, ...) (*minercraft.QueryTransactionResponse, error) + func (m *MinerCraftBase) RemoveMiner(miner *minercraft.Miner) bool + func (m *MinerCraftBase) SubmitTransaction(context.Context, *minercraft.Miner, *minercraft.Transaction) (*minercraft.SubmitTransactionResponse, error) + func (m *MinerCraftBase) SubmitTransactions(context.Context, *minercraft.Miner, []minercraft.Transaction) (*minercraft.SubmitTransactionsResponse, error) + func (m *MinerCraftBase) UserAgent() string + type Network string + const MainNet + const StressTestNet + const TestNet + func (n Network) Alternate() string + func (n Network) String() string + type Page struct + Size int64 + URI []string + type ProviderServices interface + BroadcastClient func() broadcast.Client + Minercraft func() minercraft.ClientInterface + type RequiredIn string + const RequiredInMempool + const RequiredOnChain + type ScriptPubKeyInfo struct + Addresses []string + Asm string + Hex string + IsTruncated bool + OpReturn string + ReqSigs int64 + Type string + type ScriptSigInfo struct + Asm string + Hex string + type TransactionInfo struct + BUMP *bc.BUMP + BlockHash string + BlockHeight int64 + Confirmations int64 + ID string + MerkleProof *bc.MerkleProof + MinerID string + Provider string + TxStatus broadcast.TxStatus + func (t *TransactionInfo) Valid() bool + type TransactionType string + const Metanet + const PlanariaB + const PlanariaD + const PubKeyHash + const RareCandyFrogCartel + type TxInfo struct + BlockHash string + BlockHeight int64 + BlockTime int64 + Confirmations int64 + Error string + Hash string + Hex string + LockTime int64 + Size int64 + Time int64 + TxID string + Version int64 + Vin []VinInfo + Vout []VoutInfo + type VinInfo struct + Coinbase string + ScriptSig ScriptSigInfo + Sequence int64 + TxID string + Vout int64 + type VoutInfo struct + N int64 + ScriptPubKey ScriptPubKeyInfo + Value float64