Refactor GetBlockVerboseResult into two separate types: one type for getblock "hash" verbosity=1,
and a second type for getblock "hash" verbosity=2. This is necessary due to how getblock returns a block's transaction data based on the provided verbosity parameter. If verbosity=1, then getblock.Tx is an array of a block's transaction ids (txids) as strings. If verbosity=2, then getblock.Tx is an array of raw transaction data.
This commit is contained in:
parent
160c388285
commit
468154a052
1 changed files with 31 additions and 3 deletions
|
@ -25,8 +25,11 @@ type GetBlockHeaderVerboseResult struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBlockVerboseResult models the data from the getblock command when the
|
// GetBlockVerboseResult models the data from the getblock command when the
|
||||||
// verbose flag is set. When the verbose flag is not set, getblock returns a
|
// verbose flag is set to 1. When the verbose flag is set to 0, getblock returns a
|
||||||
// hex-encoded string.
|
// hex-encoded string. When the verbose flag is set to 1, getblock returns an object
|
||||||
|
// whose tx field is an array of transaction hashes. When the verbose flag is set to 2,
|
||||||
|
// getblock returns an object whose tx field is an array of raw transactions.
|
||||||
|
// Use GetBlockVerboseTxResult to unmarshal data received from passing verbose=2 to getblock.
|
||||||
type GetBlockVerboseResult struct {
|
type GetBlockVerboseResult struct {
|
||||||
Hash string `json:"hash"`
|
Hash string `json:"hash"`
|
||||||
Confirmations int64 `json:"confirmations"`
|
Confirmations int64 `json:"confirmations"`
|
||||||
|
@ -38,7 +41,32 @@ type GetBlockVerboseResult struct {
|
||||||
VersionHex string `json:"versionHex"`
|
VersionHex string `json:"versionHex"`
|
||||||
MerkleRoot string `json:"merkleroot"`
|
MerkleRoot string `json:"merkleroot"`
|
||||||
Tx []string `json:"tx,omitempty"`
|
Tx []string `json:"tx,omitempty"`
|
||||||
RawTx []TxRawResult `json:"rawtx,omitempty"`
|
RawTx []TxRawResult `json:"rawtx,omitempty"` // Note: this field is always empty when verbose != 2.
|
||||||
|
Time int64 `json:"time"`
|
||||||
|
Nonce uint32 `json:"nonce"`
|
||||||
|
Bits string `json:"bits"`
|
||||||
|
Difficulty float64 `json:"difficulty"`
|
||||||
|
PreviousHash string `json:"previousblockhash"`
|
||||||
|
NextHash string `json:"nextblockhash,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBlockVerboseTxResult models the data from the getblock command when the
|
||||||
|
// verbose flag is set to 2. When the verbose flag is set to 0, getblock returns a
|
||||||
|
// hex-encoded string. When the verbose flag is set to 1, getblock returns an object
|
||||||
|
// whose tx field is an array of transaction hashes. When the verbose flag is set to 2,
|
||||||
|
// getblock returns an object whose tx field is an array of raw transactions.
|
||||||
|
// Use GetBlockVerboseResult to unmarshal data received from passing verbose=1 to getblock.
|
||||||
|
type GetBlockVerboseTxResult struct {
|
||||||
|
Hash string `json:"hash"`
|
||||||
|
Confirmations int64 `json:"confirmations"`
|
||||||
|
StrippedSize int32 `json:"strippedsize"`
|
||||||
|
Size int32 `json:"size"`
|
||||||
|
Weight int32 `json:"weight"`
|
||||||
|
Height int64 `json:"height"`
|
||||||
|
Version int32 `json:"version"`
|
||||||
|
VersionHex string `json:"versionHex"`
|
||||||
|
MerkleRoot string `json:"merkleroot"`
|
||||||
|
Tx []TxRawResult `json:"tx,omitempty"`
|
||||||
Time int64 `json:"time"`
|
Time int64 `json:"time"`
|
||||||
Nonce uint32 `json:"nonce"`
|
Nonce uint32 `json:"nonce"`
|
||||||
Bits string `json:"bits"`
|
Bits string `json:"bits"`
|
||||||
|
|
Loading…
Reference in a new issue