Documentation
¶
Index ¶
- Variables
- func ChartGroupingToInterval(grouping ChartGrouping) (float64, error)
- func DevSubsidyAddress(params *chaincfg.Params) (string, error)
- func ExtractBlockTransactions(msgBlock *wire.MsgBlock, txTree int8, chainParams *chaincfg.Params, ...) ([]*Tx, [][]*Vout, []VinTxPropertyARRAY)
- type AddrTxnType
- type AddressRow
- type AgendaVoteChoices
- type Block
- type BlockDataBasic
- type ChartGrouping
- type ChartsData
- type HistoryChart
- type JSONB
- type MileStone
- type ScriptPubKeyData
- type ScriptSig
- type SyncResult
- type TicketPoolStatus
- type TicketSpendType
- type Tx
- type UInt64Array
- type Vin
- type VinTxProperty
- type VinTxPropertyARRAY
- type VoteChoice
- type Vout
Constants ¶
This section is empty.
Variables ¶
var AddrTxnTypes = map[AddrTxnType]string{ AddrTxnAll: "all", AddrTxnCredit: "credit", AddrTxnDebit: "debit", AddrMergedTxnDebit: "merged_debit", AddrTxnUnknown: "unknown", }
AddrTxnTypes is the canonical mapping from AddrTxnType to string.
var ChartGroupings = map[ChartGrouping]string{ AllChartGrouping: "all", YearChartGrouping: "yr", MonthChartGrouping: "mo", WeekChartGrouping: "wk", DayChartGrouping: "day", }
ChartGroupings helps maping a given chart grouping to its standard string value.
Functions ¶
func ChartGroupingToInterval ¶
func ChartGroupingToInterval(grouping ChartGrouping) (float64, error)
ChartGroupingToInterval converts the chartGrouping value to an actual time interval based on the gregorian calendar. AllChartGrouping returns 1 while the unknown chartGrouping returns -1 and an error. All the other time interval values is returned in terms of seconds.
func DevSubsidyAddress ¶
DevSubsidyAddress returns the development subsidy address for the specified network.
func ExtractBlockTransactions ¶
func ExtractBlockTransactions(msgBlock *wire.MsgBlock, txTree int8, chainParams *chaincfg.Params, isValid, isMainchain bool) ([]*Tx, [][]*Vout, []VinTxPropertyARRAY)
ExtractBlockTransactions extracts transaction information from a wire.MsgBlock and returns the processed information in slices of the dbtypes Tx, Vout, and VinTxPropertyARRAY.
Types ¶
type AddrTxnType ¶
type AddrTxnType int
AddrTxnType enumerates the different transaction types as displayed by the address page.
const ( AddrTxnAll AddrTxnType = iota AddrTxnCredit AddrTxnDebit AddrMergedTxnDebit AddrTxnUnknown )
func AddrTxnTypeFromStr ¶
func AddrTxnTypeFromStr(txnType string) AddrTxnType
AddrTxnTypeFromStr attempts to decode a string into an AddrTxnType.
func (AddrTxnType) String ¶
func (a AddrTxnType) String() string
type AddressRow ¶
type AddressRow struct {
// id int64
Address string
ValidMainChain bool
// MatchingTxHash provides the relationship between spending tx inputs and
// funding tx outputs.
MatchingTxHash string
IsFunding bool
TxBlockTime uint64
TxHash string
TxVinVoutIndex uint32
Value uint64
VinVoutDbID uint64
MergedDebitCount uint64
TxType int16
}
AddressRow represents a row in the addresses table
type AgendaVoteChoices ¶
type AgendaVoteChoices struct {
Abstain []uint64 `json:"abstain"`
Yes []uint64 `json:"yes"`
No []uint64 `json:"no"`
Total []uint64 `json:"total"`
Height []uint64 `json:"height,omitempty"`
Time []uint64 `json:"time,omitempty"`
}
AgendaVoteChoices contains the vote counts on multiple intervals of time. The interval length may be either a single block, in which case Height contains the block heights, or a day, in which case Time contains the time stamps of each interval. Total is always the sum of Yes, No, and Abstain.
type Block ¶
type Block struct {
Hash string `json:"hash"`
Size uint32 `json:"size"`
Height uint32 `json:"height"`
Version uint32 `json:"version"`
MerkleRoot string `json:"merkleroot"`
StakeRoot string `json:"stakeroot"`
NumTx uint32
NumRegTx uint32
Tx []string `json:"tx"`
TxDbIDs []uint64
NumStakeTx uint32
STx []string `json:"stx"`
STxDbIDs []uint64
Time uint64 `json:"time"`
Nonce uint64 `json:"nonce"`
VoteBits uint16 `json:"votebits"`
FinalState []byte `json:"finalstate"`
Voters uint16 `json:"voters"`
FreshStake uint8 `json:"freshstake"`
Revocations uint8 `json:"revocations"`
PoolSize uint32 `json:"poolsize"`
Bits uint32 `json:"bits"`
SBits uint64 `json:"sbits"`
Difficulty float64 `json:"difficulty"`
ExtraData []byte `json:"extradata"`
StakeVersion uint32 `json:"stakeversion"`
PreviousHash string `json:"previousblockhash"`
}
Block models a Decred block.
type BlockDataBasic ¶
type BlockDataBasic struct {
Height uint32 `json:"height,omitemtpy"`
Size uint32 `json:"size,omitemtpy"`
Hash string `json:"hash,omitemtpy"`
Difficulty float64 `json:"diff,omitemtpy"`
StakeDiff float64 `json:"sdiff,omitemtpy"`
Time int64 `json:"time,omitemtpy"`
NumTx uint32 `json:"txlength,omitempty"`
}
type ChartGrouping ¶
type ChartGrouping int8
ChartGrouping defines the possible ways that a graph's axis can be grouped according to all, year, month, week or day grouping.
const ( AllChartGrouping ChartGrouping = iota YearChartGrouping MonthChartGrouping WeekChartGrouping DayChartGrouping UnknownGrouping )
func ChartGroupingFromStr ¶
func ChartGroupingFromStr(groupings string) ChartGrouping
ChartGroupingFromStr converts groupings string to its respective chartGrouping value.
func (ChartGrouping) String ¶
func (g ChartGrouping) String() string
type ChartsData ¶
type ChartsData struct {
TimeStr []string `json:"timestr,omitempty"`
Difficulty []float64 `json:"difficulty,omitempty"`
Time []uint64 `json:"time,omitempty"`
Value []uint64 `json:"value,omitempty"`
Size []uint64 `json:"size,omitempty"`
ChainSize []uint64 `json:"chainsize,omitempty"`
Count []uint64 `json:"count,omitempty"`
SizeF []float64 `json:"sizef,omitempty"`
ValueF []float64 `json:"valuef,omitempty"`
Unspent []uint64 `json:"unspent,omitempty"`
Revoked []uint64 `json:"revoked,omitempty"`
Height []uint64 `json:"height,omitempty"`
Pooled []uint64 `json:"pooled,omitempty"`
Solo []uint64 `json:"solo,omitempty"`
SentRtx []uint64 `json:"sentRtx,omitempty"`
ReceivedRtx []uint64 `json:"receivedRtx,omitempty"`
Tickets []uint64 `json:"tickets,omitempty"`
Votes []uint64 `json:"votes,omitempty"`
RevokeTx []uint64 `json:"revokeTx,omitempty"`
Amount []float64 `json:"amount,omitempty"`
Received []float64 `json:"received,omitempty"`
Sent []float64 `json:"sent,omitempty"`
Net []float64 `json:"net,omitempty"`
}
ChartsData defines the fields that store the values needed to plot the charts on the frontend.
type HistoryChart ¶
type HistoryChart int8
HistoryChart is used to differentaite the three distinct graphs that appear on the address history page.
const ( TxsType HistoryChart = iota AmountFlow TotalUnspent ChartUnknown )
type JSONB ¶
type JSONB map[string]interface{}
JSONB is used to implement the sql.Scanner and driver.Valuer interfaces required for the type to make a postgresql compatible JSONB type.
type MileStone ¶
MileStone defines the various stages passed by vote on a given agenda. Activated is the height at which the delay time begins before a vote activates. HardForked is the height at which the consensus rule changes. LockedIn is the height at which voting on an agenda is consided complete.
type ScriptPubKeyData ¶
type ScriptPubKeyData struct {
ReqSigs uint32 `json:"reqSigs"`
Type string `json:"type"`
Addresses []string `json:"addresses"`
}
ScriptPubKeyData is part of the result of decodescript(ScriptPubKeyHex)
type ScriptSig ¶
ScriptSig models the signature script used to redeem the origin transaction as a JSON object (non-coinbase txns only)
type SyncResult ¶
SyncResult is the result of a database sync operation, containing the height of the last block and an arror value.
type TicketPoolStatus ¶
type TicketPoolStatus int16
const ( PoolStatusLive TicketPoolStatus = iota PoolStatusVoted PoolStatusExpired PoolStatusMissed )
func (TicketPoolStatus) String ¶
func (p TicketPoolStatus) String() string
type TicketSpendType ¶
type TicketSpendType int16
const ( TicketUnspent TicketSpendType = iota TicketRevoked TicketVoted )
func (TicketSpendType) String ¶
func (p TicketSpendType) String() string
type Tx ¶
type Tx struct {
//blockDbID int64
BlockHash string `json:"block_hash"`
BlockHeight int64 `json:"block_height"`
BlockTime int64 `json:"block_time"`
Time int64 `json:"time"`
TxType int16 `json:"tx_type"`
Version uint16 `json:"version"`
Tree int8 `json:"tree"`
TxID string `json:"txid"`
BlockIndex uint32 `json:"block_index"`
Locktime uint32 `json:"locktime"`
Expiry uint32 `json:"expiry"`
Size uint32 `json:"size"`
Spent int64 `json:"spent"`
Sent int64 `json:"sent"`
Fees int64 `json:"fees"`
NumVin uint32 `json:"numvin"`
//Vins VinTxPropertyARRAY `json:"vins"`
VinDbIds []uint64 `json:"vindbids"`
NumVout uint32 `json:"numvout"`
Vouts []*Vout `json:"vouts"`
VoutDbIds []uint64 `json:"voutdbids"`
// NOTE: VoutDbIds may not be needed if there is a vout table since each
// vout will have a tx_dbid
IsValidBlock bool `json:"valid_block"`
IsMainchainBlock bool `json:"mainchain"`
}
Tx models a Decred transaction. It is stored in a Block.
type UInt64Array ¶
type UInt64Array []uint64
UInt64Array represents a one-dimensional array of PostgreSQL integer types
func (*UInt64Array) Scan ¶
func (a *UInt64Array) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type Vin ¶
type Vin struct {
//txDbID int64
Coinbase string `json:"coinbase"`
TxHash string `json:"txhash"`
VoutIdx uint32 `json:"voutidx"`
Tree int8 `json:"tree"`
Sequence uint32 `json:"sequence"`
AmountIn float64 `json:"amountin"`
BlockHeight uint32 `json:"blockheight"`
BlockIndex uint32 `json:"blockindex"`
ScriptHex string `json:"scripthex"`
}
Vin models a transaction input.
type VinTxProperty ¶
type VinTxProperty struct {
PrevOut string `json:"prevout"`
PrevTxHash string `json:"prevtxhash"`
PrevTxIndex uint32 `json:"prevvoutidx"`
PrevTxTree uint16 `json:"tree"`
Sequence uint32 `json:"sequence"`
ValueIn int64 `json:"amountin"`
TxID string `json:"tx_hash"`
TxIndex uint32 `json:"tx_index"`
TxTree uint16 `json:"tx_tree"`
TxType int16 `json:"tx_type"`
BlockHeight uint32 `json:"blockheight"`
BlockIndex uint32 `json:"blockindex"`
ScriptHex []byte `json:"scripthex"`
IsValid bool `json:"is_valid"`
IsMainchain bool `json:"is_mainchain"`
Time int64 `json:"time"`
}
VinTxProperty models a transaction input with previous outpoint information.
type VinTxPropertyARRAY ¶
type VinTxPropertyARRAY []VinTxProperty
VinTxPropertyARRAY is a slice of VinTxProperty sturcts that implements sql.Scanner and driver.Valuer.
func (*VinTxPropertyARRAY) Scan ¶
func (p *VinTxPropertyARRAY) Scan(src interface{}) error
Scan satisfies sql.Scanner
type VoteChoice ¶
type VoteChoice uint8
VoteChoice defines the type of vote choice, and the undelying integer value is stored in the database (do not change these without upgrading the DB!).
const ( Yes VoteChoice = iota Abstain No VoteChoiceUnknown )
func ChoiceIndexFromStr ¶
func ChoiceIndexFromStr(choice string) (VoteChoice, error)
ChoiceIndexFromStr converts the vote choice string to a vote choice index.
func (VoteChoice) String ¶
func (v VoteChoice) String() string
type Vout ¶
type Vout struct {
// txDbID int64
TxHash string `json:"tx_hash"`
TxIndex uint32 `json:"tx_index"`
TxTree int8 `json:"tx_tree"`
TxType int16 `json:"tx_type"`
Value uint64 `json:"value"`
Version uint16 `json:"version"`
ScriptPubKey []byte `json:"pkScriptHex"`
ScriptPubKeyData ScriptPubKeyData `json:"pkScript"`
}
Vout defines a transaction output