Documentation
¶
Index ¶
- Variables
- func UnmarshalFixedJSON(typ reflect.Type, input, out []byte) error
- func UnmarshalFixedText(typname string, input, out []byte) error
- func UnmarshalFixedUnprefixedText(typname string, input, out []byte) error
- type AcctInfo
- type AdreesAmount
- type Amounts
- type Amout
- type BlockResult
- type BlockVerboseResult
- type ConsensusDeploymentDesc
- type DecodeRawTransactionResult
- type GetBanlistResult
- type GetBlockHeaderVerboseResult
- type GetBlockTemplateResult
- type GetBlockTemplateResultAux
- type GetBlockTemplateResultPt
- type GetBlockTemplateResultTx
- type GetGraphStateResult
- type GetPeerInfoResult
- type GetRawTransactionsResult
- type GetUtxoResult
- type InfoNodeResult
- type KV
- type MinerInfoResult
- type NetworkInfo
- type NetworkStat
- type OrderedResult
- type PowDiff
- type PowDiffReference
- type PowResult
- type PrevOut
- type ProofData
- type RemoteGBTResult
- type Result
- type ScriptPubKeyResult
- type ScriptSig
- type SubmitBlockResult
- type SubsidyInfo
- type TemplateRequest
- type TokenState
- type TransactionInput
- type TransactionOutput
- type TxRawResult
- type Vin
- type VinPrevOut
- type Vout
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmptyString = &decError{"empty hex string"} ErrSyntax = &decError{"invalid hex string"} ErrMissingPrefix = &decError{"hex string without 0x prefix"} ErrOddLength = &decError{"hex string of odd length"} ErrEmptyNumber = &decError{"hex string \"0x\""} ErrLeadingZero = &decError{"hex number with leading zero digits"} ErrUint64Range = &decError{"hex number > 64 bits"} ErrUintRange = &decError{fmt.Sprintf("hex number > %d bits", uintBits)} ErrBig256Range = &decError{"hex number > 256 bits"} )
Errors
Functions ¶
func UnmarshalFixedJSON ¶
UnmarshalFixedJSON decodes the input as a string with 0x prefix. The length of out determines the required input length. This function is commonly used to implement the UnmarshalJSON method for fixed-size types.
func UnmarshalFixedText ¶
UnmarshalFixedText decodes the input as a string. The length of out determines the required input length. This function is commonly used to implement the UnmarshalText method for fixed-size types.
func UnmarshalFixedUnprefixedText ¶
UnmarshalFixedUnprefixedText decodes the input as a string with optional 0x prefix. The length of out determines the required input length. This function is commonly used to implement the UnmarshalText method for fixed-size types.
Types ¶
type AdreesAmount ¶
type BlockResult ¶
type BlockResult struct {
Hash string `json:"hash"`
Txsvalid bool `json:"txsvalid"`
Confirmations int64 `json:"confirmations"`
Version int32 `json:"version"`
Weight int64 `json:"weight"`
Height int64 `json:"height"`
TxRoot string `json:"txRoot"`
Order int64 `json:"order,omitempty"`
Tx []string `json:"transactions,omitempty"`
TxFee int64 `json:"transactionfee,omitempty"`
StateRoot string `json:"stateRoot"`
Bits string `json:"bits"`
Difficulty uint32 `json:"difficulty"`
PowResult PowResult `json:"pow"`
Time string `json:"timestamp"`
ParentRoot string `json:"parentroot"`
Parents []string `json:"parents"`
Children []string `json:"children"`
}
type BlockVerboseResult ¶
type BlockVerboseResult struct {
Hash string `json:"hash"`
Txsvalid bool `json:"txsvalid"`
Confirmations int64 `json:"confirmations"`
Version int32 `json:"version"`
Weight int64 `json:"weight"`
Height int64 `json:"height"`
TxRoot string `json:"txRoot"`
Order int64 `json:"order,omitempty"`
Tx []TxRawResult `json:"transactions,omitempty"`
TxFee int64 `json:"transactionfee,omitempty"`
StateRoot string `json:"stateRoot"`
Bits string `json:"bits"`
Difficulty uint32 `json:"difficulty"`
PowResult PowResult `json:"pow"`
Time string `json:"timestamp"`
ParentRoot string `json:"parentroot"`
Parents []string `json:"parents"`
Children []string `json:"children"`
}
type ConsensusDeploymentDesc ¶
type DecodeRawTransactionResult ¶
type DecodeRawTransactionResult struct {
Order uint64 `json:"order"`
BlockHash string `json:"blockhash"`
Txvalid bool `json:"txvalid"`
Duplicate bool `json:"duplicate,omitempty"`
IsCoinbase bool `json:"is_coinbase"`
Confirms uint64 `json:"confirms"`
IsBlue bool `json:"is_blue"`
Txid string `json:"txid"`
Hash string `json:"txhash"`
Version uint32 `json:"version"`
LockTime uint32 `json:"locktime"`
Time string `json:"timestamp"`
Vin []Vin `json:"vin"`
Vout []Vout `json:"vout"`
}
type GetBanlistResult ¶
type GetBlockHeaderVerboseResult ¶
type GetBlockHeaderVerboseResult struct {
Hash string `json:"hash"`
Confirmations int64 `json:"confirmations"`
Version int32 `json:"version"`
ParentRoot string `json:"parentroot"`
TxRoot string `json:"txRoot"`
StateRoot string `json:"stateRoot"`
Difficulty uint32 `json:"difficulty"`
Layer uint32 `json:"layer"`
Time int64 `json:"time"`
PowResult PowResult `json:"pow"`
}
GetBlockHeaderVerboseResult models the data from the getblockheader command when the verbose flag is set. When the verbose flag is not set, getblockheader returns a hex-encoded string.
type GetBlockTemplateResult ¶
type GetBlockTemplateResult struct {
// Base fields from BIP 0022. CoinbaseAux is optional. One of
// CoinbaseTxn or CoinbaseValue must be specified, but not both.
StateRoot string `json:"stateroot"`
CurTime int64 `json:"curtime"`
Height int64 `json:"height"`
Blues int64 `json:"blues"`
PreviousHash string `json:"previousblockhash"`
SigOpLimit int64 `json:"sigoplimit,omitempty"`
SizeLimit int64 `json:"sizelimit,omitempty"`
WeightLimit int64 `json:"weightlimit,omitempty"`
Parents []GetBlockTemplateResultPt `json:"parents"`
Transactions []GetBlockTemplateResultTx `json:"transactions"`
Version uint32 `json:"version"`
CoinbaseAux *GetBlockTemplateResultAux `json:"coinbaseaux,omitempty"`
CoinbaseTxn *GetBlockTemplateResultTx `json:"coinbasetxn,omitempty"`
CoinbaseValue *uint64 `json:"coinbasevalue,omitempty"`
WorkID string `json:"workid,omitempty"`
NodeInfo string `json:"nodeinfo,omitempty"`
// Witness commitment defined in BIP 0141.
DefaultWitnessCommitment string `json:"default_witness_commitment,omitempty"`
// Optional long polling from BIP 0022.
LongPollID string `json:"longpollid,omitempty"`
LongPollURI string `json:"longpolluri,omitempty"`
SubmitOld *bool `json:"submitold,omitempty"`
// Basic pool extension from BIP 0023.
Expires int64 `json:"expires,omitempty"`
PowDiffReference PowDiffReference `json:"pow_diff_reference"`
// Mutations from BIP 0023.
MaxTime int64 `json:"maxtime,omitempty"`
MinTime int64 `json:"mintime,omitempty"`
Mutable []string `json:"mutable,omitempty"`
NonceRange string `json:"noncerange,omitempty"`
// Block proposal from BIP 0023.
// temp use
WorkData string `json:"workdata"`
Capabilities []string `json:"capabilities,omitempty"`
RejectReasion string `json:"reject-reason,omitempty"`
BlockFeesMap map[int]int64 `json:"block_fees_map"`
CoinbaseVersion string `json:"coinbase_version"`
}
GetBlockTemplateResult models the data returned from the getblocktemplate
type GetBlockTemplateResultAux ¶
type GetBlockTemplateResultAux struct {
Flags string `json:"flags"`
}
GetBlockTemplateResultAux models the coinbaseaux field of the getblocktemplate command.
type GetBlockTemplateResultPt ¶
GetBlockTemplateResultPt models the parents field of the getblocktemplate command.
type GetBlockTemplateResultTx ¶
type GetBlockTemplateResultTx struct {
Data string `json:"data"`
Hash string `json:"hash"`
Depends []int64 `json:"depends"`
Fee int64 `json:"fee"`
SigOps int64 `json:"sigops"`
Weight int64 `json:"weight"`
}
GetBlockTemplateResultTx models the transactions field of the getblocktemplate command.
type GetGraphStateResult ¶
type GetGraphStateResult struct {
Tips []string `json:"tips"`
MainOrder uint32 `json:"mainorder"`
MainHeight uint32 `json:"mainheight"`
Layer uint32 `json:"layer"`
}
GetGraphStateResult data
type GetPeerInfoResult ¶
type GetPeerInfoResult struct {
ID string `json:"id"`
QNR string `json:"qnr,omitempty"`
Address string `json:"address"`
State string `json:"state,omitempty"`
Protocol uint32 `json:"protocol,omitempty"`
Genesis string `json:"genesis,omitempty"`
Services string `json:"services,omitempty"`
Name string `json:"name,omitempty"`
Direction string `json:"direction,omitempty"`
GraphState *GetGraphStateResult `json:"graphstate,omitempty"`
GSUpdate string `json:"gsupdate,omitempty"`
SyncNode bool `json:"syncnode,omitempty"`
TimeOffset int64 `json:"timeoffset"`
LastSend string `json:"lastsend,omitempty"`
LastRecv string `json:"lastrecv,omitempty"`
BytesSent uint64 `json:"bytessent,omitempty"`
BytesRecv uint64 `json:"bytesrecv,omitempty"`
ConnTime string `json:"conntime,omitempty"`
Version string `json:"version,omitempty"`
Network string `json:"network,omitempty"`
Circuit bool `json:"circuit,omitempty"`
Bads int `json:"bads,omitempty"`
}
GetPeerInfoResult models the data returned from the getpeerinfo command.
type GetRawTransactionsResult ¶
type GetRawTransactionsResult struct {
Hex string `json:"hex,omitempty"`
Txid string `json:"txid"`
Hash string `json:"hash"`
Size string `json:"size"`
Vsize string `json:"vsize"`
Version uint32 `json:"version"`
LockTime uint32 `json:"locktime"`
Vin []VinPrevOut `json:"vin"`
Vout []Vout `json:"vout"`
BlockHash string `json:"blockhash,omitempty"`
Confirmations uint64 `json:"confirmations,omitempty"`
Time int64 `json:"time,omitempty"`
Blocktime int64 `json:"blocktime,omitempty"`
}
GetRawTransactionsResult models the data from the getrawtransactions command.
type GetUtxoResult ¶
type GetUtxoResult struct {
BestBlock string `json:"bestblock"`
Confirmations int64 `json:"confirmations"`
CoinId uint16 `json:"coinId"`
Amount float64 `json:"amount"`
ScriptPubKey ScriptPubKeyResult `json:"scriptPubKey"`
Version int32 `json:"version"`
Coinbase bool `json:"coinbase"`
}
GetUtxoResult models the data from the GetUtxo command.
type InfoNodeResult ¶
type InfoNodeResult struct {
ID string `json:"ID"`
Addresss []string `json:"address"`
QNR string `json:"QNR,omitempty"`
Version int32 `json:"version"`
BuildVersion string `json:"buildversion"`
ProtocolVersion int32 `json:"protocolversion"`
TotalSubsidy uint64 `json:"totalsubsidy,omitempty"`
GraphState *GetGraphStateResult `json:"graphstate,omitempty"`
TimeOffset int64 `json:"timeoffset,omitempty"`
PowDiff *PowDiff `json:"pow_diff,omitempty"`
Confirmations int32 `json:"confirmations,omitempty"`
CoinbaseMaturity int32 `json:"coinbasematurity,omitempty"`
Errors string `json:"errors,omitempty"`
Modules []string `json:"modules,omitempty"`
DNS string `json:"dns,omitempty"`
ConsensusDeployment map[string]*ConsensusDeploymentDesc `json:"consensusdeployment,omitempty"`
Network string `json:"network"`
Connections int32 `json:"connections"`
}
InfoNodeResult models the data returned by the node server getnodeinfo command.
type MinerInfoResult ¶
type MinerInfoResult struct {
Type string `json:"type"`
Pow string `json:"pow"`
Running bool `json:"running"`
Coinbase string `json:"coinbase"`
CoinbaseFlags string `json:"coinbaseflags"`
Height uint64 `json:"height"`
Difficulty string `json:"difficulty"`
Target string `json:"target"`
Timestamp string `json:"timestamp"`
TotalSubmit int `json:"totalsubmit"`
SuccessSubmit int `json:"successsubmit"`
}
type NetworkInfo ¶
type NetworkStat ¶
type OrderedResult ¶
type OrderedResult []KV
The OrderedResult works as the order map[string]interface{}, which useful to marshal a Json map using a specific order Note: it works almost as the 'omitEmpty' set to true, empty value should be omitted when marshaling. only for empty string/array/map/slice/interface
func (*OrderedResult) GetValue ¶
func (ores *OrderedResult) GetValue(key string) interface{}
func (OrderedResult) MarshalJSON ¶
func (ores OrderedResult) MarshalJSON() ([]byte, error)
type PowDiffReference ¶
type PowResult ¶
type PowResult struct {
PowName string `json:"pow_name"`
PowType uint8 `json:"pow_type"`
Nonce uint64 `json:"nonce"`
ProofData *ProofData `json:"proof_data,omitempty"`
}
pow json result
type RemoteGBTResult ¶
type Result ¶
type Result map[string]interface{}
The Result works as method calling response can be marshaled as json map
type ScriptPubKeyResult ¶
type ScriptPubKeyResult struct {
Asm string `json:"asm"`
Hex string `json:"hex,omitempty"`
ReqSigs int32 `json:"reqSigs,omitempty"`
Type string `json:"type"`
Addresses []string `json:"addresses,omitempty"`
}
ScriptPubKeyResult models the scriptPubKey data of a tx script. It is defined separately since it is used by multiple commands.
type ScriptSig ¶
ScriptSig models a signature script. It is defined separately since it only applies to non-coinbase. Therefore the field in the Vin structure needs to be a pointer.
type SubmitBlockResult ¶
type SubmitBlockResult struct {
BlockHash string `json:"block_hash"`
CoinbaseTxID string `json:"coinbase_txid"`
Order string `json:"order"`
Height int64 `json:"height"`
CoinbaseAmount uint64 `json:"coinbase_amount"`
MinerType string `json:"miner_type"`
}
GetBlockTemplateResult models the data returned from the getblocktemplate
type SubsidyInfo ¶
type SubsidyInfo struct {
Mode string `json:"mode"`
TotalSubsidy uint64 `json:"totalsubsidy"`
TargetTotalSubsidy int64 `json:"targettotalsubsidy,omitempty"`
LeftTotalSubsidy int64 `json:"lefttotalsubsidy,omitempty"`
TotalTime string `json:"totalTime,omitempty"`
LeftTotalTime string `json:"lefttotalTime,omitempty"`
BaseSubsidy int64 `json:"basesubsidy"`
NextSubsidy int64 `json:"nextsubsidy"`
}
type TemplateRequest ¶
type TemplateRequest struct {
Mode string `json:"mode,omitempty"`
PowType byte `json:"pow_type"`
Capabilities []string `json:"capabilities,omitempty"`
// Optional long polling.
LongPollID string `json:"longpollid,omitempty"`
// Optional template tweaking. SigOpLimit and SizeLimit can be int64
// or bool.
SigOpLimit interface{} `json:"sigoplimit,omitempty"`
SizeLimit interface{} `json:"sizelimit,omitempty"`
MaxVersion uint32 `json:"maxversion,omitempty"`
// Basic pool extension from BIP 0023.
Target string `json:"target,omitempty"`
// Block proposal from BIP 0023. Data is only provided when Mode is
// "proposal".
Data string `json:"data,omitempty"`
WorkID string `json:"workid,omitempty"`
}
LL(getblocktemplate RPC) 2018-10-28 TemplateRequest is a request object as defined in BIP22 (https://en.bitcoin.it/wiki/BIP_0022), it is optionally provided as an // argument to GetBlockTemplate RPC.
type TokenState ¶
type TransactionInput ¶
TransactionInput represents the inputs to a transaction. Specifically a transaction hash and output number pair.
type TransactionOutput ¶
type TxRawResult ¶
type TxRawResult struct {
Hex string `json:"hex"`
Txid string `json:"txid"`
TxHash string `json:"txhash,omitempty"`
Size int32 `json:"size,omitempty"`
Version uint32 `json:"version"`
LockTime uint32 `json:"locktime"`
Timestamp string `json:"timestamp,omitempty"`
Expire uint32 `json:"expire"`
Vin []Vin `json:"vin"`
Vout []Vout `json:"vout"`
BlockHash string `json:"blockhash,omitempty"`
BlockOrder uint64 `json:"blockorder,omitempty"`
TxIndex uint32 `json:"txindex,omitempty"`
Confirmations int64 `json:"confirmations"`
Time int64 `json:"time,omitempty"`
Blocktime int64 `json:"blocktime,omitempty"`
Duplicate bool `json:"duplicate,omitempty"`
Txsvalid bool `json:"txsvalid"`
}
TxRawResult models the data from the getrawtransaction command.
type Vin ¶
type Vin struct {
Coinbase string `json:"coinbase"`
Txid string `json:"txid"`
Vout uint32 `json:"vout"`
Sequence uint32 `json:"sequence"`
ScriptSig *ScriptSig `json:"scriptSig"`
TxType string `json:"type,omitempty"`
}
Vin models parts of the tx data. It is defined separately since getrawtransaction, decoderawtransaction, and searchrawtransaction use the same structure.
func (*Vin) IsCoinBase ¶
IsCoinBase returns a bool to show if a Vin is a Coinbase one or not.
func (*Vin) MarshalJSON ¶
MarshalJSON provides a custom Marshal method for Vin.
type VinPrevOut ¶
type Vout ¶
type Vout struct {
Coin string `json:"coin,omitempty"`
CoinId uint16 `json:"coinid,omitempty"`
Amount uint64 `json:"amount,omitempty"`
ScriptPubKey ScriptPubKeyResult `json:"scriptPubKey"`
}
Vout models parts of the tx data. It is defined separately since both getrawtransaction and decoderawtransaction use the same structure.