Move RPC handler maps near the top of file.
Since the command to handler mappings are the most often modified and referenced code in rpcserver.go and rpcwebsocket.go, move them near the top of their respective files.
This commit is contained in:
parent
9b166b3876
commit
835cee229a
2 changed files with 91 additions and 89 deletions
156
rpcserver.go
156
rpcserver.go
|
@ -45,6 +45,84 @@ var (
|
|||
ErrBadParamsField = errors.New("bad params field")
|
||||
)
|
||||
|
||||
type commandHandler func(*rpcServer, btcjson.Cmd) (interface{}, error)
|
||||
|
||||
// handlers maps RPC command strings to appropriate handler functions.
|
||||
var handlers = map[string]commandHandler{
|
||||
"addmultisigaddress": handleAskWallet,
|
||||
"addnode": handleAddNode,
|
||||
"backupwallet": handleAskWallet,
|
||||
"createmultisig": handleAskWallet,
|
||||
"createrawtransaction": handleUnimplemented,
|
||||
"debuglevel": handleDebugLevel,
|
||||
"decoderawtransaction": handleDecodeRawTransaction,
|
||||
"decodescript": handleUnimplemented,
|
||||
"dumpprivkey": handleAskWallet,
|
||||
"dumpwallet": handleAskWallet,
|
||||
"encryptwallet": handleAskWallet,
|
||||
"getaccount": handleAskWallet,
|
||||
"getaccountaddress": handleAskWallet,
|
||||
"getaddednodeinfo": handleUnimplemented,
|
||||
"getaddressesbyaccount": handleAskWallet,
|
||||
"getbalance": handleAskWallet,
|
||||
"getbestblockhash": handleGetBestBlockHash,
|
||||
"getblock": handleGetBlock,
|
||||
"getblockcount": handleGetBlockCount,
|
||||
"getblockhash": handleGetBlockHash,
|
||||
"getblocktemplate": handleUnimplemented,
|
||||
"getconnectioncount": handleGetConnectionCount,
|
||||
"getdifficulty": handleGetDifficulty,
|
||||
"getgenerate": handleGetGenerate,
|
||||
"gethashespersec": handleGetHashesPerSec,
|
||||
"getinfo": handleUnimplemented,
|
||||
"getmininginfo": handleUnimplemented,
|
||||
"getnettotals": handleUnimplemented,
|
||||
"getnetworkhashps": handleUnimplemented,
|
||||
"getnewaddress": handleUnimplemented,
|
||||
"getpeerinfo": handleGetPeerInfo,
|
||||
"getrawchangeaddress": handleAskWallet,
|
||||
"getrawmempool": handleGetRawMempool,
|
||||
"getrawtransaction": handleGetRawTransaction,
|
||||
"getreceivedbyaccount": handleAskWallet,
|
||||
"getreceivedbyaddress": handleAskWallet,
|
||||
"gettransaction": handleAskWallet,
|
||||
"gettxout": handleAskWallet,
|
||||
"gettxoutsetinfo": handleAskWallet,
|
||||
"getwork": handleUnimplemented,
|
||||
"help": handleUnimplemented,
|
||||
"importprivkey": handleAskWallet,
|
||||
"importwallet": handleAskWallet,
|
||||
"keypoolrefill": handleAskWallet,
|
||||
"listaccounts": handleAskWallet,
|
||||
"listaddressgroupings": handleAskWallet,
|
||||
"listlockunspent": handleAskWallet,
|
||||
"listreceivedbyaccount": handleAskWallet,
|
||||
"listreceivedbyaddress": handleAskWallet,
|
||||
"listsinceblock": handleAskWallet,
|
||||
"listtransactions": handleAskWallet,
|
||||
"listunspent": handleAskWallet,
|
||||
"lockunspent": handleAskWallet,
|
||||
"move": handleAskWallet,
|
||||
"ping": handleUnimplemented,
|
||||
"sendfrom": handleAskWallet,
|
||||
"sendmany": handleAskWallet,
|
||||
"sendrawtransaction": handleSendRawTransaction,
|
||||
"sendtoaddress": handleAskWallet,
|
||||
"setaccount": handleAskWallet,
|
||||
"setgenerate": handleSetGenerate,
|
||||
"settxfee": handleAskWallet,
|
||||
"signmessage": handleAskWallet,
|
||||
"signrawtransaction": handleAskWallet,
|
||||
"stop": handleStop,
|
||||
"submitblock": handleUnimplemented,
|
||||
"validateaddress": handleAskWallet,
|
||||
"verifychain": handleVerifyChain,
|
||||
"verifymessage": handleAskWallet,
|
||||
"walletlock": handleAskWallet,
|
||||
"walletpassphrase": handleAskWallet,
|
||||
"walletpassphrasechange": handleAskWallet,
|
||||
}
|
||||
|
||||
// rpcServer holds the items the rpc server may need to access (config,
|
||||
// shutdown, main server, etc.)
|
||||
type rpcServer struct {
|
||||
|
@ -341,84 +419,6 @@ func jsonRPCRead(w http.ResponseWriter, r *http.Request, s *rpcServer) {
|
|||
rpcsLog.Debugf(msg)
|
||||
}
|
||||
|
||||
type commandHandler func(*rpcServer, btcjson.Cmd) (interface{}, error)
|
||||
|
||||
// handlers maps RPC command strings to appropriate handler functions.
|
||||
var handlers = map[string]commandHandler{
|
||||
"addmultisigaddress": handleAskWallet,
|
||||
"addnode": handleAddNode,
|
||||
"backupwallet": handleAskWallet,
|
||||
"createmultisig": handleAskWallet,
|
||||
"createrawtransaction": handleUnimplemented,
|
||||
"debuglevel": handleDebugLevel,
|
||||
"decoderawtransaction": handleDecodeRawTransaction,
|
||||
"decodescript": handleUnimplemented,
|
||||
"dumpprivkey": handleAskWallet,
|
||||
"dumpwallet": handleAskWallet,
|
||||
"encryptwallet": handleAskWallet,
|
||||
"getaccount": handleAskWallet,
|
||||
"getaccountaddress": handleAskWallet,
|
||||
"getaddednodeinfo": handleUnimplemented,
|
||||
"getaddressesbyaccount": handleAskWallet,
|
||||
"getbalance": handleAskWallet,
|
||||
"getbestblockhash": handleGetBestBlockHash,
|
||||
"getblock": handleGetBlock,
|
||||
"getblockcount": handleGetBlockCount,
|
||||
"getblockhash": handleGetBlockHash,
|
||||
"getblocktemplate": handleUnimplemented,
|
||||
"getconnectioncount": handleGetConnectionCount,
|
||||
"getdifficulty": handleGetDifficulty,
|
||||
"getgenerate": handleGetGenerate,
|
||||
"gethashespersec": handleGetHashesPerSec,
|
||||
"getinfo": handleUnimplemented,
|
||||
"getmininginfo": handleUnimplemented,
|
||||
"getnettotals": handleUnimplemented,
|
||||
"getnetworkhashps": handleUnimplemented,
|
||||
"getnewaddress": handleUnimplemented,
|
||||
"getpeerinfo": handleGetPeerInfo,
|
||||
"getrawchangeaddress": handleAskWallet,
|
||||
"getrawmempool": handleGetRawMempool,
|
||||
"getrawtransaction": handleGetRawTransaction,
|
||||
"getreceivedbyaccount": handleAskWallet,
|
||||
"getreceivedbyaddress": handleAskWallet,
|
||||
"gettransaction": handleAskWallet,
|
||||
"gettxout": handleAskWallet,
|
||||
"gettxoutsetinfo": handleAskWallet,
|
||||
"getwork": handleUnimplemented,
|
||||
"help": handleUnimplemented,
|
||||
"importprivkey": handleAskWallet,
|
||||
"importwallet": handleAskWallet,
|
||||
"keypoolrefill": handleAskWallet,
|
||||
"listaccounts": handleAskWallet,
|
||||
"listaddressgroupings": handleAskWallet,
|
||||
"listlockunspent": handleAskWallet,
|
||||
"listreceivedbyaccount": handleAskWallet,
|
||||
"listreceivedbyaddress": handleAskWallet,
|
||||
"listsinceblock": handleAskWallet,
|
||||
"listtransactions": handleAskWallet,
|
||||
"listunspent": handleAskWallet,
|
||||
"lockunspent": handleAskWallet,
|
||||
"move": handleAskWallet,
|
||||
"ping": handleUnimplemented,
|
||||
"sendfrom": handleAskWallet,
|
||||
"sendmany": handleAskWallet,
|
||||
"sendrawtransaction": handleSendRawTransaction,
|
||||
"sendtoaddress": handleAskWallet,
|
||||
"setaccount": handleAskWallet,
|
||||
"setgenerate": handleSetGenerate,
|
||||
"settxfee": handleAskWallet,
|
||||
"signmessage": handleAskWallet,
|
||||
"signrawtransaction": handleAskWallet,
|
||||
"stop": handleStop,
|
||||
"submitblock": handleUnimplemented,
|
||||
"validateaddress": handleAskWallet,
|
||||
"verifychain": handleVerifyChain,
|
||||
"verifymessage": handleAskWallet,
|
||||
"walletlock": handleAskWallet,
|
||||
"walletpassphrase": handleAskWallet,
|
||||
"walletpassphrasechange": handleAskWallet,
|
||||
}
|
||||
|
||||
// handleUnimplemented is a temporary handler for commands that we should
|
||||
// support but do not.
|
||||
func handleUnimplemented(s *rpcServer, cmd btcjson.Cmd) (interface{}, error) {
|
||||
|
|
|
@ -19,6 +19,19 @@ import (
|
|||
"sync"
|
||||
)
|
||||
|
||||
type wsCommandHandler func(*rpcServer, btcjson.Cmd, chan []byte, *requestContexts) error
|
||||
|
||||
// wsHandlers maps RPC command strings to appropriate websocket handler
|
||||
// functions.
|
||||
var wsHandlers = map[string]wsCommandHandler{
|
||||
"getcurrentnet": handleGetCurrentNet,
|
||||
"getbestblock": handleGetBestBlock,
|
||||
"notifynewtxs": handleNotifyNewTXs,
|
||||
"notifyspent": handleNotifySpent,
|
||||
"rescan": handleRescan,
|
||||
"sendrawtransaction:": handleWalletSendRawTransaction,
|
||||
}
|
||||
|
||||
// wsContext holds the items the RPC server needs to handle websocket
|
||||
// connections for wallets.
|
||||
type wsContext struct {
|
||||
|
@ -225,17 +238,6 @@ type requestContexts struct {
|
|||
minedTxRequests map[btcwire.ShaHash]bool
|
||||
}
|
||||
|
||||
type wsCommandHandler func(*rpcServer, btcjson.Cmd, chan []byte, *requestContexts) error
|
||||
|
||||
var wsHandlers = map[string]wsCommandHandler{
|
||||
"getcurrentnet": handleGetCurrentNet,
|
||||
"getbestblock": handleGetBestBlock,
|
||||
"notifynewtxs": handleNotifyNewTXs,
|
||||
"notifyspent": handleNotifySpent,
|
||||
"rescan": handleRescan,
|
||||
"sendrawtransaction:": handleWalletSendRawTransaction,
|
||||
}
|
||||
|
||||
// respondToAnyCmd checks that a parsed command is a standard or
|
||||
// extension JSON-RPC command and runs the proper handler to reply to
|
||||
// the command. Any and all responses are sent to the wallet from
|
||||
|
|
Loading…
Reference in a new issue