Documentation ¶
Index ¶
- Constants
- func LessByAccessCount(bi, bj *CachedBlock) bool
- func LessByAccessCountThenHeight(bi, bj *CachedBlock) bool
- func LessByAccessTime(bi, bj *CachedBlock) bool
- func LessByHeight(bi, bj *CachedBlock) bool
- func MakeLessByAccessTimeThenCount(millisecondsBinned int64) func(bi, bj *CachedBlock) bool
- func WatchPriorityQueue(bpq *BlockPriorityQueue)
- type APICache
- func (apic *APICache) Capacity() uint32
- func (apic *APICache) Disable()
- func (apic *APICache) Enable()
- func (apic *APICache) GetBlockSummary(height int64) *BlockDataBasic
- func (apic *APICache) GetCachedBlockByHash(hash chainhash.Hash) *CachedBlock
- func (apic *APICache) GetCachedBlockByHashStr(hashStr string) *CachedBlock
- func (apic *APICache) GetCachedBlockByHeight(height int64) *CachedBlock
- func (apic *APICache) Hits() uint64
- func (apic *APICache) Misses() uint64
- func (apic *APICache) RemoveCachedBlock(cachedBlock *CachedBlock)
- func (apic *APICache) SetLessFn(lessFn func(bi, bj *CachedBlock) bool)
- func (apic *APICache) StoreBlockSummary(blockSummary *BlockDataBasic) error
- func (apic *APICache) Utilization() float64
- func (apic *APICache) UtilizationBlocks() int64
- type Address
- type AddressTxRaw
- type AddressTxShort
- type BlockDataBasic
- type BlockDataWithTxType
- type BlockExplorerBasic
- type BlockExplorerExtraInfo
- type BlockID
- type BlockPriorityQueue
- func (pq *BlockPriorityQueue) Insert(summary *BlockDataBasic) (bool, *chainhash.Hash)
- func (pq BlockPriorityQueue) Len() int
- func (pq BlockPriorityQueue) Less(i, j int) bool
- func (pq *BlockPriorityQueue) Pop() interface{}
- func (pq *BlockPriorityQueue) Push(blockSummary interface{})
- func (pq *BlockPriorityQueue) Reheap()
- func (pq *BlockPriorityQueue) RemoveBlock(b *CachedBlock)
- func (pq *BlockPriorityQueue) RemoveIndex(idx int)
- func (pq *BlockPriorityQueue) RescanMinMax()
- func (pq *BlockPriorityQueue) RescanMinMaxForAdd(height uint32)
- func (pq *BlockPriorityQueue) RescanMinMaxForRemove(height uint32)
- func (pq *BlockPriorityQueue) RescanMinMaxForUpdate(heightAdd, heightRemove uint32)
- func (pq *BlockPriorityQueue) ResetHeap(bh []*CachedBlock)
- func (pq *BlockPriorityQueue) SetLessFn(lessFn func(bi, bj *CachedBlock) bool)
- func (pq BlockPriorityQueue) Swap(i, j int)
- func (pq *BlockPriorityQueue) UpdateBlock(b *CachedBlock, summary *BlockDataBasic)
- type BlockSummarySaver
- type BlockTransactions
- type BlockValidation
- type CachedBlock
- type ExplorerTxData
- type MempoolTicketDetails
- type MempoolTicketFeeInfo
- type MempoolTicketFees
- type OutPoint
- type PrevOut
- type ScriptPubKey
- type ScriptSig
- type StakeDiff
- type StakeInfoExtended
- type StakeInfoExtendedEstimates
- type Status
- type TicketDetails
- type TicketPoolInfo
- type TicketPoolValsAndSizes
- type TicketsDetails
- type Tx
- type TxIn
- type TxOut
- type TxRawWithTxType
- type TxRawWithVoteInfo
- type TxShort
- type VinPrevOut
- type VoteInfo
- type Vout
- type VoutHexScript
- type VoutMined
Constants ¶
const ( SecondsPerMinute int64 = 60 SecondsPerHour int64 = 60 * 60 SecondsPerDay int64 = 24 * SecondsPerHour SecondsPerWeek int64 = 7 * SecondsPerDay )
constants from time
Variables ¶
This section is empty.
Functions ¶
func LessByAccessCount ¶ added in v0.8.0
func LessByAccessCount(bi, bj *CachedBlock) bool
LessByAccessCount defines higher priority CachedBlock as having been accessed more often.
func LessByAccessCountThenHeight ¶ added in v0.8.0
func LessByAccessCountThenHeight(bi, bj *CachedBlock) bool
LessByAccessCountThenHeight compares access count with LessByAccessCount if the blocks have different accessTime values, otherwise it compares height with LessByHeight.
func LessByAccessTime ¶ added in v0.8.0
func LessByAccessTime(bi, bj *CachedBlock) bool
LessByAccessTime defines higher priority CachedBlock as having a more recent access time. More recent accesses have a larger accessTime value (Unix time).
func LessByHeight ¶ added in v0.8.0
func LessByHeight(bi, bj *CachedBlock) bool
LessByHeight defines a higher priority CachedBlock as having a higher height. That is, more recent blocks have higher priority than older blocks.
func MakeLessByAccessTimeThenCount ¶ added in v0.8.0
func MakeLessByAccessTimeThenCount(millisecondsBinned int64) func(bi, bj *CachedBlock) bool
MakeLessByAccessTimeThenCount will create a CachedBlock comparison function given the specified time resolution in milliseconds. Two access times less than the given time apart are considered the same time, and access count is used to break the tie.
func WatchPriorityQueue ¶ added in v0.8.0
func WatchPriorityQueue(bpq *BlockPriorityQueue)
WatchPriorityQueue is a hack since the priority of a CachedBlock is modified (if access or access time is in the LessFn) without triggering a reheap.
Types ¶
type APICache ¶ added in v0.8.0
type APICache struct { sync.RWMutex MainchainBlocks []chainhash.Hash // needs to be handled in reorg // contains filtered or unexported fields }
APICache maintains a fixed-capacity cache of CachedBlocks. Use NewAPICache to create the cache with the desired capacity.
func NewAPICache ¶ added in v0.8.0
NewAPICache creates an APICache with the specified capacity.
NOTE: The consumer of APICache should fill out MainChainBlocks before using it. For example, given a struct DB at height dbHeight with an APICache:
DB.APICache = NewAPICache(10000) DB.APICache.MainchainBlocks = make([]chainhash.Hash, 0, dbHeight+NExtra) for i := int64(0); i <= dbHeight; i++ { hash := DB.SomeFunctionToGetBlockHash(i) DB.APICache.MainchainBlocks = append(DB.APICache.MainchainBlocks, *hash) }
func (*APICache) Disable ¶ added in v0.8.0
func (apic *APICache) Disable()
Disable sets the isEnabled flag of the APICache. The does little presently.
func (*APICache) Enable ¶ added in v0.8.0
func (apic *APICache) Enable()
Enable sets the isEnabled flag of the APICache. The does little presently.
func (*APICache) GetBlockSummary ¶ added in v0.8.0
func (apic *APICache) GetBlockSummary(height int64) *BlockDataBasic
GetBlockSummary attempts to retrieve the block summary for the input height. The return is nil if no block with that height is cached.
func (*APICache) GetCachedBlockByHash ¶ added in v0.8.0
func (apic *APICache) GetCachedBlockByHash(hash chainhash.Hash) *CachedBlock
GetCachedBlockByHash attempts to fetch a CachedBlock with the given hash. The return is nil if no block with that hash is cached.
func (*APICache) GetCachedBlockByHashStr ¶ added in v0.8.0
func (apic *APICache) GetCachedBlockByHashStr(hashStr string) *CachedBlock
GetCachedBlockByHashStr attempts to fetch a CachedBlock with the given hash. The return is nil if no block with that hash is cached.
func (*APICache) GetCachedBlockByHeight ¶ added in v0.8.0
func (apic *APICache) GetCachedBlockByHeight(height int64) *CachedBlock
GetCachedBlockByHeight attempts to fetch a CachedBlock with the given height. The return is nil if no block with that height is cached.
func (*APICache) RemoveCachedBlock ¶ added in v0.8.0
func (apic *APICache) RemoveCachedBlock(cachedBlock *CachedBlock)
RemoveCachedBlock removes the input CachedBlock the cache. If the block is not in cache, this is essentially a silent no-op.
func (*APICache) SetLessFn ¶ added in v0.8.0
func (apic *APICache) SetLessFn(lessFn func(bi, bj *CachedBlock) bool)
SetLessFn sets the comparator used by the priority queue. For information on the input function, see the docs for (pq *BlockPriorityQueue).SetLessFn.
func (*APICache) StoreBlockSummary ¶ added in v0.8.0
func (apic *APICache) StoreBlockSummary(blockSummary *BlockDataBasic) error
StoreBlockSummary caches the input BlockDataBasic, if the priority queue indicates that the block should be added.
func (*APICache) Utilization ¶ added in v0.8.0
Utilization returns the percent utilization of the cache
func (*APICache) UtilizationBlocks ¶ added in v0.8.0
UtilizationBlocks returns the number of blocks stored in the cache
type Address ¶ added in v0.7.0
type Address struct { Address string `json:"address"` Transactions []*AddressTxShort `json:"address_transactions"` }
Address models the address string with the transactions as AddressTxShort
type AddressTxRaw ¶ added in v0.7.0
type AddressTxRaw struct { Size int32 `json:"size"` TxID string `json:"txid"` Version int32 `json:"version"` Locktime uint32 `json:"locktime"` Vin []dcrjson.VinPrevOut `json:"vin"` Vout []Vout `json:"vout"` Confirmations int64 `json:"confirmations"` BlockHash string `json:"blockhash"` Time int64 `json:"time,omitempty"` Blocktime int64 `json:"blocktime,omitempty"` }
AddressTxRaw is modeled from SearchRawTransactionsResult but with size in place of hex
type AddressTxShort ¶ added in v0.7.0
type AddressTxShort struct { TxID string `json:"txid"` Size int32 `json:"size"` Time int64 `json:"time"` Value float64 `json:"value"` Confirmations int64 `json:"confirmations"` }
AddressTxShort is a subset of AddressTxRaw with just the basic tx details pertaining the particular address
type BlockDataBasic ¶
type BlockDataBasic struct { Height uint32 `json:"height"` Size uint32 `json:"size"` Hash string `json:"hash"` Difficulty float64 `json:"diff"` StakeDiff float64 `json:"sdiff"` Time int64 `json:"time"` //TicketPoolInfo PoolInfo TicketPoolInfo `json:"ticket_pool"` }
BlockDataBasic models primary information about block at height Height
type BlockDataWithTxType ¶ added in v0.8.0
type BlockDataWithTxType struct { *dcrjson.GetBlockVerboseResult Votes []TxRawWithVoteInfo Tickets []dcrjson.TxRawResult Revs []dcrjson.TxRawResult }
BlockDataWithTxType adds an array of TxRawWithTxType to dcrjson.GetBlockVerboseResult to include the stake transaction type
type BlockExplorerBasic ¶ added in v0.8.0
type BlockExplorerBasic struct { Height uint32 `json:"height"` Size uint32 `json:"size"` Voters uint16 `json:"votes"` FreshStake uint8 `json:"tickets"` Revocations uint8 `json:"revocations"` StakeDiff float64 `json:"sdiff"` Time int64 `json:"time"` BlockExplorerExtraInfo }
BlockExplorerBasic models primary information about block at height Height for the block explorer.
type BlockExplorerExtraInfo ¶ added in v0.8.0
type BlockExplorerExtraInfo struct { TxLen int `json:"tx"` FormattedTime string `json:"formatted_time"` CoinSupply int64 `json:"coin_supply"` NextBlockSubsidy *dcrjson.GetBlockSubsidyResult `json:"next_block_subsidy"` }
BlockExplorerExtraInfo contains supplemental block metadata used by the explorer.
type BlockID ¶ added in v0.7.0
type BlockID struct { BlockHash string `json:"blockhash"` BlockHeight int64 `json:"blockheight"` BlockIndex uint32 `json:"blockindex"` Time int64 `json:"time"` BlockTime int64 `json:"blocktime"` }
BlockID models very basic info about a block
type BlockPriorityQueue ¶ added in v0.8.0
BlockPriorityQueue implements heap.Interface and holds CachedBlocks
func NewBlockPriorityQueue ¶ added in v0.8.0
func NewBlockPriorityQueue(capacity uint32) *BlockPriorityQueue
NewBlockPriorityQueue is the constructor for BlockPriorityQueue that initializes an empty heap with the given capacity, and sets the default LessFn as a comparison by access time with 1 day resolution (blocks accessed within the 24 hours are considered to have the same access time), followed by access count. Use BlockPriorityQueue.SetLessFn to redefine the comparator.
func (*BlockPriorityQueue) Insert ¶ added in v0.8.0
func (pq *BlockPriorityQueue) Insert(summary *BlockDataBasic) (bool, *chainhash.Hash)
Insert will add an element, while respecting the queue's capacity if at capacity
- compare with top and replace or return
- if replaced top, heapdown (Fix(pq,0))
else (not at capacity)
- heap.Push, which is pq.Push (append at bottom) then heapup
func (BlockPriorityQueue) Len ¶ added in v0.8.0
func (pq BlockPriorityQueue) Len() int
Len is require for heap.Interface
func (BlockPriorityQueue) Less ¶ added in v0.8.0
func (pq BlockPriorityQueue) Less(i, j int) bool
Less performs the comparison priority(i) < priority(j). Use BlockPriorityQueue.SetLessFn to define the desired behavior for the CachedBlocks heap[i] and heap[j].
func (*BlockPriorityQueue) Pop ¶ added in v0.8.0
func (pq *BlockPriorityQueue) Pop() interface{}
Pop will return an interface{} that may be cast to *CachedBlock. Use heap.Pop, not this.
func (*BlockPriorityQueue) Push ¶ added in v0.8.0
func (pq *BlockPriorityQueue) Push(blockSummary interface{})
Push a *BlockDataBasic. Use heap.Push, not this directly.
func (*BlockPriorityQueue) Reheap ¶ added in v0.8.0
func (pq *BlockPriorityQueue) Reheap()
Reheap is a shortcut for heap.Init(pq)
func (*BlockPriorityQueue) RemoveBlock ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RemoveBlock(b *CachedBlock)
RemoveBlock removes the specified CachedBlock from the queue. Remember to remove it from the actual block cache!
func (*BlockPriorityQueue) RemoveIndex ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RemoveIndex(idx int)
RemoveIndex removes the CachedBlock at the specified position in the heap. This function is NOT thread-safe.
func (*BlockPriorityQueue) RescanMinMax ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RescanMinMax()
RescanMinMax rescans the enitire heap to get the current min/max heights. This function is NOT thread-safe.
func (*BlockPriorityQueue) RescanMinMaxForAdd ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RescanMinMaxForAdd(height uint32)
RescanMinMaxForAdd conditionally updates the heap min/max height given the height of the block to add (push). No scan, just update min/max. This function is NOT thread-safe.
func (*BlockPriorityQueue) RescanMinMaxForRemove ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RescanMinMaxForRemove(height uint32)
RescanMinMaxForRemove conditionally rescans the heap min/max height given the height of the block to remove (pop). Make sure to remove the block BEFORE running this, as any rescan of the heap will see the block. This function is NOT thread-safe.
func (*BlockPriorityQueue) RescanMinMaxForUpdate ¶ added in v0.8.0
func (pq *BlockPriorityQueue) RescanMinMaxForUpdate(heightAdd, heightRemove uint32)
RescanMinMaxForUpdate conditionally rescans the heap min/max height given old and new heights of the CachedBlock being updated. This function is NOT thread-safe.
func (*BlockPriorityQueue) ResetHeap ¶ added in v0.8.0
func (pq *BlockPriorityQueue) ResetHeap(bh []*CachedBlock)
ResetHeap creates a fresh queue given the input []*CachedBlock. For every CachedBlock in the queue, ResetHeap resets the access count and time, and heap index. The min/max heights are reset, the heap is heapifies. NOTE: the input slice is modifed, but not reordered. A fresh slice is created for PQ internal use.
func (*BlockPriorityQueue) SetLessFn ¶ added in v0.8.0
func (pq *BlockPriorityQueue) SetLessFn(lessFn func(bi, bj *CachedBlock) bool)
SetLessFn sets the function called by Less. The input lessFn must accept two *CachedBlock and return a bool, unlike Less, which accepts heap indexes i, j. This allows to define a comparator without requiring a heap.
func (BlockPriorityQueue) Swap ¶ added in v0.8.0
func (pq BlockPriorityQueue) Swap(i, j int)
Swap swaps the cachedBlocks at i and j. This is used container/heap.
func (*BlockPriorityQueue) UpdateBlock ¶ added in v0.8.0
func (pq *BlockPriorityQueue) UpdateBlock(b *CachedBlock, summary *BlockDataBasic)
UpdateBlock will update the specified CachedBlock, which must be in the queue. This function is NOT thread-safe.
type BlockSummarySaver ¶ added in v0.8.0
type BlockSummarySaver interface {
StoreBlockSummary(blockSummary *BlockDataBasic) error
}
BlockSummarySaver is likely to be required to be implemented by the type utilizing APICache.
type BlockTransactions ¶ added in v0.7.0
BlockTransactions models an array of stake and regular transactions for a block
type BlockValidation ¶ added in v0.8.0
type BlockValidation struct { Hash string `json:"hash"` Height int64 `json:"height"` Validity bool `json:"validity"` }
BlockValidation models data about a vote's decision on a block
type CachedBlock ¶ added in v0.8.0
type CachedBlock struct {
// contains filtered or unexported fields
}
CachedBlock represents a block that is managed by the cache.
func (*CachedBlock) Access ¶ added in v0.8.0
func (b *CachedBlock) Access() *BlockDataBasic
Access increments the access count and sets the accessTime to now. The BlockDataBasic stored in the CachedBlock is returned.
func (CachedBlock) String ¶ added in v0.8.0
func (b CachedBlock) String() string
String satisfies the Stringer interface.
type ExplorerTxData ¶ added in v0.8.0
type ExplorerTxData struct { *Tx VinAddrs [][]string Type string Fee dcrutil.Amount FeeRate dcrutil.Amount *VoteInfo }
ExplorerTxData packs data for display on the explorer tx page
type MempoolTicketDetails ¶ added in v0.1.2
type MempoolTicketDetails struct { Height uint32 `json:"height"` Time int64 `json:"time"` Length uint32 `json:"length"` Total uint32 `json:"total"` Tickets TicketsDetails `json:"tickets"` }
MempoolTicketDetails models basic mempool info with ticket details Tickets
type MempoolTicketFeeInfo ¶ added in v0.1.2
type MempoolTicketFeeInfo struct { Height uint32 `json:"height"` Time int64 `json:"time"` dcrjson.FeeInfoMempool LowestMineable float64 `json:"lowest_mineable"` }
MempoolTicketFeeInfo models statistical ticket fee info at block height Height
type MempoolTicketFees ¶ added in v0.1.2
type MempoolTicketFees struct { Height uint32 `json:"height"` Time int64 `json:"time"` Length uint32 `json:"length"` Total uint32 `json:"total"` FeeRates []float64 `json:"top_fees"` }
MempoolTicketFees models info about ticket fees at block height Height
type OutPoint ¶ added in v0.7.0
type OutPoint struct { Hash string `json:"hash"` Index uint32 `json:"index"` Tree int8 `json:"tree"` }
OutPoint is used to track previous transaction outputs.
type PrevOut ¶ added in v0.7.0
type PrevOut struct { Addresses []string `json:"addresses,omitempty"` Value float64 `json:"value"` }
PrevOut represents previous output for an input Vin.
type ScriptPubKey ¶ added in v0.7.0
type ScriptPubKey struct { Asm string `json:"asm"` ReqSigs int32 `json:"reqSigs,omitempty"` Type string `json:"type"` Addresses []string `json:"addresses,omitempty"` CommitAmt *float64 `json:"commitamt,omitempty"` }
ScriptPubKey is the result of decodescript(ScriptPubKeyHex)
type ScriptSig ¶ added in v0.7.0
ScriptSig models the signature script used to redeem the origin transaction as a JSON object (non-coinbase txns only)
type StakeDiff ¶
type StakeDiff struct { dcrjson.GetStakeDifficultyResult Estimates dcrjson.EstimateStakeDiffResult `json:"estimates"` IdxBlockInWindow int `json:"window_block_index"` PriceWindowNum int `json:"window_number"` }
StakeDiff represents data about the evaluated stake difficulty and estimates
type StakeInfoExtended ¶
type StakeInfoExtended struct { Feeinfo dcrjson.FeeInfoBlock `json:"feeinfo"` StakeDiff float64 `json:"stakediff"` PriceWindowNum int `json:"window_number"` IdxBlockInWindow int `json:"window_block_index"` PoolInfo TicketPoolInfo `json:"ticket_pool"` }
StakeInfoExtended models data about the fee, pool and stake difficulty
type StakeInfoExtendedEstimates ¶
type StakeInfoExtendedEstimates struct { Feeinfo dcrjson.FeeInfoBlock `json:"feeinfo"` StakeDiff StakeDiff `json:"stakediff"` PriceWindowNum int `json:"window_number"` IdxBlockInWindow int `json:"window_block_index"` PoolInfo TicketPoolInfo `json:"ticket_pool"` }
StakeInfoExtendedEstimates is similar to StakeInfoExtended but includes stake difficulty estimates with the stake difficulty
type Status ¶
type Status struct { Ready bool `json:"ready"` DBHeight uint32 `json:"db_height"` Height uint32 `json:"node_height"` NodeConnections int64 `json:"node_connections"` APIVersion int `json:"api_version"` DcrdataVersion string `json:"dcrdata_version"` }
Status indicates the state of the server, including the API version and the software version.
type TicketDetails ¶ added in v0.1.2
type TicketDetails struct { Hash string `json:"hash"` Fee float64 `json:"abs_fee"` FeeRate float64 `json:"fee"` Size int32 `json:"size"` Height int64 `json:"height_received"` }
TicketDetails models details about ticket Hash received at height Height
type TicketPoolInfo ¶
type TicketPoolInfo struct { Size uint32 `json:"size"` Value float64 `json:"value"` ValAvg float64 `json:"valavg"` }
TicketPoolInfo models data about ticket pool
type TicketPoolValsAndSizes ¶ added in v0.1.2
type TicketPoolValsAndSizes struct { StartHeight uint32 `json:"start_height"` EndHeight uint32 `json:"end_height"` Value []float64 `json:"value"` Size []float64 `json:"size"` }
TicketPoolValsAndSizes models two arrays, one each for ticket values and sizes for blocks StartHeight to EndHeight
type TicketsDetails ¶ added in v0.1.2
type TicketsDetails []*TicketDetails
TicketsDetails is an array of pointers of TicketDetails used in MempoolTicketDetails
type Tx ¶ added in v0.7.0
type Tx struct { TxShort Confirmations int64 `json:"confirmations"` Block *BlockID `json:"block,omitempty"` }
Tx models TxShort with the number of confirmations and block info Block
type TxIn ¶ added in v0.7.0
type TxIn struct { // Non-witness PreviousOutPoint OutPoint `json:"prevout"` Sequence uint32 `json:"sequence"` // Witness ValueIn float64 `json:"value"` BlockHeight uint32 `json:"blockheight"` BlockIndex uint32 `json:"blockindex"` SignatureScript string `json:"sigscript"` }
TxIn defines a decred transaction input.
type TxOut ¶ added in v0.7.0
type TxOut struct { Value float64 `json:"value"` Version uint16 `json:"version"` PkScript string `json:"pkscript"` Addresses []string `json:"addresses,omitempty"` }
TxOut defines a decred transaction output.
type TxRawWithTxType ¶ added in v0.8.0
type TxRawWithTxType struct { dcrjson.TxRawResult TxType string }
TxRawWithTxType adds the stake transaction type to dcrjson.TxRawResult
type TxRawWithVoteInfo ¶ added in v0.8.0
type TxRawWithVoteInfo struct { dcrjson.TxRawResult VoteInfo VoteInfo }
TxRawWithVoteInfo adds the vote info to dcrjson.TxRawResult
type TxShort ¶ added in v0.7.0
type TxShort struct { TxID string `json:"txid"` Size int32 `json:"size"` Version int32 `json:"version"` Locktime uint32 `json:"locktime"` Expiry uint32 `json:"expiry"` Vin []dcrjson.Vin `json:"vin"` Vout []Vout `json:"vout"` }
TxShort models info about transaction TxID
type VinPrevOut ¶ added in v0.7.0
type VinPrevOut struct { Coinbase string `json:"coinbase"` Stakebase string `json:"stakebase"` Txid string `json:"txid"` Vout uint32 `json:"vout"` Tree int8 `json:"tree"` AmountIn *float64 `json:"amountin,omitempty"` BlockHeight *uint32 `json:"blockheight,omitempty"` BlockIndex *uint32 `json:"blockindex,omitempty"` ScriptSig *ScriptSig `json:"scriptSig"` PrevOut *PrevOut `json:"prevOut"` Sequence uint32 `json:"sequence"` }
VinPrevOut is like Vin except it includes PrevOut. It is used by searchrawtransaction
type VoteInfo ¶ added in v0.8.0
type VoteInfo struct { Validation BlockValidation `json:"block_validation"` Version uint32 `json:"vote_version"` Bits uint16 `json:"vote_bits"` Choices []*txhelpers.VoteChoice `json:"vote_choices"` }
VoteInfo models data about a SSGen transaction (vote)
type Vout ¶ added in v0.7.0
type Vout struct { Value float64 `json:"value"` N uint32 `json:"n"` Version uint16 `json:"version"` ScriptPubKeyDecoded ScriptPubKey `json:"scriptPubKey"` }
Vout defines a transaction output