From ec1c93ecc0cebff01b0679b62d6fc5806092b3e6 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Wed, 2 Nov 2016 17:15:57 -0700 Subject: [PATCH] btcjson: update the fields of GetBlockChainInfoResult This commit updates the fields of GetBlockChainInfoResult to reflect the current state of the RPC as widely implemented by other full-node implementations. --- btcjson/chainsvrresults.go | 39 +++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/btcjson/chainsvrresults.go b/btcjson/chainsvrresults.go index 5518331d..b6993303 100644 --- a/btcjson/chainsvrresults.go +++ b/btcjson/chainsvrresults.go @@ -75,16 +75,41 @@ type GetAddedNodeInfoResult struct { Addresses *[]GetAddedNodeInfoResultAddr `json:"addresses,omitempty"` } +// SoftForkDescription describes the current state of a soft-fork which was +// deployed using a super-majority block signalling. +type SoftForkDescription struct { + ID string `json:"id"` + Version uint32 `json:"version"` + Reject struct { + Status bool `json:"status"` + } `json:"reject"` +} + +// Bip9SoftForkDescription describes the current state of a defined BIP0009 +// version bits soft-fork. +type Bip9SoftForkDescription struct { + Status string `json:"status"` + Bit uint8 `json:"bit"` + StartTime int64 `json:"startTime"` + Timeout int64 `json:"timeout"` + Since int32 `json:"since"` +} + // GetBlockChainInfoResult models the data returned from the getblockchaininfo // command. type GetBlockChainInfoResult struct { - Chain string `json:"chain"` - Blocks int32 `json:"blocks"` - Headers int32 `json:"headers"` - BestBlockHash string `json:"bestblockhash"` - Difficulty float64 `json:"difficulty"` - VerificationProgress float64 `json:"verificationprogress"` - ChainWork string `json:"chainwork"` + Chain string `json:"chain"` + Blocks int32 `json:"blocks"` + Headers int32 `json:"headers"` + BestBlockHash string `json:"bestblockhash"` + Difficulty float64 `json:"difficulty"` + MedianTime int64 `json:"mediantime"` + VerificationProgress float64 `json:"verificationprogress,omitempty"` + Pruned bool `json:"pruned"` + PruneHeight int32 `json:"pruneheight,omitempty"` + ChainWork string `json:"chainwork,omitempty"` + SoftForks []*SoftForkDescription `json:"softforks"` + Bip9SoftForks map[string]*Bip9SoftForkDescription `json:"bip9_softforks"` } // GetBlockTemplateResultTx models the transactions field of the