Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
NewClient instantiates a new client that will receive monerod's zmq events.
`topics` is a list of fully-formed zmq topic to subscribe to
`endpoint` is the full address where monerod has been configured to publish the messages to, including the network schama. for instance, considering that monerod has been started with
monerod --zmq-pub tcp://127.0.0.1:18085
`endpoint` should be 'tcp://127.0.0.1:18085'.
func (*Client) Listen ¶
func (c *Client) Listen(ctx context.Context, fullChainMain func(chainMain *FullChainMain), fullTxPoolAdd func(txs []FullTxPoolAdd), fullMinerData func(main *FullMinerData), minimalChainMain func(chainMain *MinimalChainMain), minimalTxPoolAdd func(txs mempool.Mempool)) error
Listen listens for a list of topics pre-configured for this client (via NewClient).
type FullChainMain ¶
type FullChainMain struct { MajorVersion int `json:"major_version"` MinorVersion int `json:"minor_version"` Timestamp int64 `json:"timestamp"` PrevID types.Hash `json:"prev_id"` Nonce uint64 `json:"nonce"` MinerTx struct { Version int `json:"version"` UnlockTime int64 `json:"unlock_time"` Inputs []struct { Gen struct { Height uint64 `json:"height"` } `json:"gen"` } `json:"inputs"` Outputs []TxOutput `json:"outputs"` Extra string `json:"extra"` Signatures []interface{} `json:"signatures"` Ringct struct { Type int `json:"type"` Encrypted []interface{} `json:"encrypted"` Commitments []interface{} `json:"commitments"` Fee uint64 `json:"fee"` } `json:"ringct"` } `json:"miner_tx"` TxHashes []types.Hash `json:"tx_hashes"` }
type FullMinerData ¶
type FullMinerData struct { MajorVersion uint8 `json:"major_version"` Height uint64 `json:"height"` PrevId types.Hash `json:"prev_id"` SeedHash types.Hash `json:"seed_hash"` Difficulty types.Difficulty `json:"difficulty"` MedianWeight uint64 `json:"median_weight"` AlreadyGeneratedCoins uint64 `json:"already_generated_coins"` MedianTimestamp uint64 `json:"median_timestamp"` TxBacklog []*mempool.Entry `json:"tx_backlog"` }
type FullTxPoolAdd ¶
type FullTxPoolAdd struct { Version int `json:"version"` UnlockTime int64 `json:"unlock_time"` Inputs []struct { ToKey struct { Amount uint64 `json:"amount"` KeyOffsets []uint64 `json:"key_offsets"` KeyImage types.Hash `json:"key_image"` } `json:"to_key"` } `json:"inputs"` Outputs []TxOutput `json:"outputs"` Extra string `json:"extra"` Signatures []interface{} `json:"signatures"` Ringct struct { Type int `json:"type"` Encrypted []struct { Mask string `json:"mask"` Amount string `json:"amount"` } `json:"encrypted"` Commitments []string `json:"commitments"` Fee int `json:"fee"` Prunable struct { RangeProofs []any `json:"range_proofs"` Bulletproofs []struct { V []string `json:"V"` AUpper string `json:"A"` S string `json:"S"` T1 string `json:"T1"` T2 string `json:"T2"` Taux string `json:"taux"` Mu string `json:"mu"` L []string `json:"L"` R []string `json:"R"` ALower string `json:"a"` B string `json:"b"` T string `json:"t"` } `json:"bulletproofs"` Mlsags []interface{} `json:"mlsags"` PseudoOuts []string `json:"pseudo_outs"` } `json:"prunable"` } `json:"ringct"` }
type MinimalChainMain ¶
type Stream ¶
type Stream struct { FullChainMainC func(*FullChainMain) FullTxPoolAddC func([]FullTxPoolAdd) FullMinerDataC func(*FullMinerData) MinimalChainMainC func(*MinimalChainMain) MinimalTxPoolAddC func(mempool.Mempool) }
Stream provides channels where instances of the desired topic object are sent to.
type Topic ¶
type Topic string
const ( TopicUnknown Topic = "unknown" TopicMinimalTxPoolAdd Topic = "json-minimal-txpool_add" TopicFullTxPoolAdd Topic = "json-full-txpool_add" TopicMinimalChainMain Topic = "json-minimal-chain_main" TopicFullChainMain Topic = "json-full-chain_main" TopicFullMinerData Topic = "json-full-miner_data" )
type TxOutput ¶
type TxOutput struct { Amount uint64 `json:"amount"` ToKey *struct { Key crypto.PublicKeyBytes `json:"key"` } `json:"to_key,omitempty"` ToTaggedKey *struct { Key crypto.PublicKeyBytes `json:"key"` ViewTag string `json:"view_tag"` } `json:"to_tagged_key,omitempty"` }
Click to show internal directories.
Click to hide internal directories.