Add a GetCBFilter RPC command

This commit is contained in:
pedro martelletto 2017-01-13 12:07:25 +00:00 committed by Olaoluwa Osuntokun
parent 43bf8db793
commit 76378e7167
4 changed files with 39 additions and 0 deletions

View file

@ -278,6 +278,18 @@ func NewGetBlockTemplateCmd(request *TemplateRequest) *GetBlockTemplateCmd {
Request: request, Request: request,
} }
} }
// GetCBFilterCmd defines the getcbfilter JSON-RPC command.
type GetCBFilterCmd struct {
Hash string
}
// NewGetCBFilterCmd returns a new instance which can be used to issue a
// getcbfilter JSON-RPC command.
func NewGetCBFilterCmd(hash string) *GetCBFilterCmd {
return &GetCBFilterCmd{
Hash: hash,
}
}
// GetChainTipsCmd defines the getchaintips JSON-RPC command. // GetChainTipsCmd defines the getchaintips JSON-RPC command.
type GetChainTipsCmd struct{} type GetChainTipsCmd struct{}
@ -756,6 +768,7 @@ func init() {
MustRegisterCmd("getblockhash", (*GetBlockHashCmd)(nil), flags) MustRegisterCmd("getblockhash", (*GetBlockHashCmd)(nil), flags)
MustRegisterCmd("getblockheader", (*GetBlockHeaderCmd)(nil), flags) MustRegisterCmd("getblockheader", (*GetBlockHeaderCmd)(nil), flags)
MustRegisterCmd("getblocktemplate", (*GetBlockTemplateCmd)(nil), flags) MustRegisterCmd("getblocktemplate", (*GetBlockTemplateCmd)(nil), flags)
MustRegisterCmd("getcbfilter", (*GetCBFilterCmd)(nil), flags)
MustRegisterCmd("getchaintips", (*GetChainTipsCmd)(nil), flags) MustRegisterCmd("getchaintips", (*GetChainTipsCmd)(nil), flags)
MustRegisterCmd("getconnectioncount", (*GetConnectionCountCmd)(nil), flags) MustRegisterCmd("getconnectioncount", (*GetConnectionCountCmd)(nil), flags)
MustRegisterCmd("getdifficulty", (*GetDifficultyCmd)(nil), flags) MustRegisterCmd("getdifficulty", (*GetDifficultyCmd)(nil), flags)

View file

@ -317,6 +317,19 @@ func TestChainSvrCmds(t *testing.T) {
}, },
}, },
}, },
{
name: "getcbfilter",
newCmd: func() (interface{}, error) {
return btcjson.NewCmd("getcbfilter", "123")
},
staticCmd: func() interface{} {
return btcjson.NewGetCBFilterCmd("123")
},
marshalled: `{"jsonrpc":"1.0","method":"getcbfilter","params":["123"],"id":1}`,
unmarshalled: &btcjson.GetCBFilterCmd{
Hash: "123",
},
},
{ {
name: "getchaintips", name: "getchaintips",
newCmd: func() (interface{}, error) { newCmd: func() (interface{}, error) {

View file

@ -142,6 +142,7 @@ var rpcHandlersBeforeInit = map[string]commandHandler{
"getblockhash": handleGetBlockHash, "getblockhash": handleGetBlockHash,
"getblockheader": handleGetBlockHeader, "getblockheader": handleGetBlockHeader,
"getblocktemplate": handleGetBlockTemplate, "getblocktemplate": handleGetBlockTemplate,
"getcbfilter": handleGetCBFilter,
"getconnectioncount": handleGetConnectionCount, "getconnectioncount": handleGetConnectionCount,
"getcurrentnet": handleGetCurrentNet, "getcurrentnet": handleGetCurrentNet,
"getdifficulty": handleGetDifficulty, "getdifficulty": handleGetDifficulty,
@ -258,6 +259,7 @@ var rpcLimited = map[string]struct{}{
"getblockcount": {}, "getblockcount": {},
"getblockhash": {}, "getblockhash": {},
"getblockheader": {}, "getblockheader": {},
"getcbfilter": {},
"getcurrentnet": {}, "getcurrentnet": {},
"getdifficulty": {}, "getdifficulty": {},
"getheaders": {}, "getheaders": {},
@ -2144,6 +2146,11 @@ func handleGetBlockTemplate(s *rpcServer, cmd interface{}, closeChan <-chan stru
} }
} }
// handleGetCBFilter implements the getcbfilter command.
func handleGetCBFilter(s *rpcServer, cmd interface{}, closeChan <-chan struct{}) (interface{}, error) {
return nil, nil
}
// handleGetConnectionCount implements the getconnectioncount command. // handleGetConnectionCount implements the getconnectioncount command.
func handleGetConnectionCount(s *rpcServer, cmd interface{}, closeChan <-chan struct{}) (interface{}, error) { func handleGetConnectionCount(s *rpcServer, cmd interface{}, closeChan <-chan struct{}) (interface{}, error) {
return s.cfg.ConnMgr.ConnectedCount(), nil return s.cfg.ConnMgr.ConnectedCount(), nil

View file

@ -323,6 +323,11 @@ var helpDescsEnUS = map[string]string{
"getblocktemplate--condition2": "mode=proposal, accepted", "getblocktemplate--condition2": "mode=proposal, accepted",
"getblocktemplate--result1": "An error string which represents why the proposal was rejected or nothing if accepted", "getblocktemplate--result1": "An error string which represents why the proposal was rejected or nothing if accepted",
// GetCBFilterCmd help.
"getcbfilter--synopsis": "Returns a block's committed bloom filter given its hash.",
"getcbfilter-hash": "The hash of the block",
"getcbfilter--result0": "The block's committed bloom filter",
// GetConnectionCountCmd help. // GetConnectionCountCmd help.
"getconnectioncount--synopsis": "Returns the number of active connections to other peers.", "getconnectioncount--synopsis": "Returns the number of active connections to other peers.",
"getconnectioncount--result0": "The number of connections", "getconnectioncount--result0": "The number of connections",
@ -668,6 +673,7 @@ var rpcResultTypes = map[string][]interface{}{
"getblockheader": {(*string)(nil), (*btcjson.GetBlockHeaderVerboseResult)(nil)}, "getblockheader": {(*string)(nil), (*btcjson.GetBlockHeaderVerboseResult)(nil)},
"getblocktemplate": {(*btcjson.GetBlockTemplateResult)(nil), (*string)(nil), nil}, "getblocktemplate": {(*btcjson.GetBlockTemplateResult)(nil), (*string)(nil), nil},
"getblockchaininfo": {(*btcjson.GetBlockChainInfoResult)(nil)}, "getblockchaininfo": {(*btcjson.GetBlockChainInfoResult)(nil)},
"getcbfilter": {(*[]byte)(nil)},
"getconnectioncount": {(*int32)(nil)}, "getconnectioncount": {(*int32)(nil)},
"getcurrentnet": {(*uint32)(nil)}, "getcurrentnet": {(*uint32)(nil)},
"getdifficulty": {(*float64)(nil)}, "getdifficulty": {(*float64)(nil)},