Move result structs and funcs to jsonresults.go.

This commit moves all of the structs which deal with command results and
related functions to a new file named jsonresults.go.

This is in preparation of allowing custom results to be registered.

ok @jcvernaleo
This commit is contained in:
Dave Collins 2014-04-11 02:15:10 -05:00
parent 95f8e5d6d8
commit 48bcbc5a22
5 changed files with 1042 additions and 1054 deletions

View file

@ -7,7 +7,6 @@ package btcjson
import (
"encoding/json"
"fmt"
"strings"
)
// Message contains a message to be sent to the bitcoin client.
@ -28,299 +27,6 @@ type Reply struct {
Id *interface{} `json:"id"`
}
// InfoResult contains the data returned by the getinfo command.
type InfoResult struct {
Version int `json:"version,omitempty"`
ProtocolVersion int `json:"protocolversion,omitempty"`
WalletVersion int `json:"walletversion,omitempty"`
Balance float64 `json:"balance,omitempty"`
Blocks int `json:"blocks,omitempty"`
TimeOffset int64 `json:"timeoffset,omitempty"`
Connections int `json:"connections,omitempty"`
Proxy string `json:"proxy,omitempty"`
Difficulty float64 `json:"difficulty,omitempty"`
TestNet bool `json:"testnet,omitempty"`
KeypoolOldest int64 `json:"keypoololdest,omitempty"`
KeypoolSize int `json:"keypoolsize,omitempty"`
PaytxFee float64 `json:"paytxfee,omitempty"`
RelayFee float64 `json:"relayfee,omitempty"`
Errors string `json:"errors,omitempty"`
}
// BlockResult models the data from the getblock command when the verbose flag
// is set. When the verbose flag is not set, getblock return a hex-encoded
// string.
type BlockResult struct {
Hash string `json:"hash"`
Confirmations uint64 `json:"confirmations"`
Size int `json:"size"`
Height int64 `json:"height"`
Version uint32 `json:"version"`
MerkleRoot string `json:"merkleroot"`
Tx []string `json:"tx,omitempty"`
RawTx []TxRawResult `json:"rawtx,omitempty"`
Time int64 `json:"time"`
Nonce uint32 `json:"nonce"`
Bits string `json:"bits"`
Difficulty float64 `json:"difficulty"`
PreviousHash string `json:"previousblockhash"`
NextHash string `json:"nextblockhash"`
}
// CreateMultiSigResult models the data returned from the createmultisig command.
type CreateMultiSigResult struct {
Address string `json:"address"`
RedeemScript string `json:"redeemScript"`
}
// DecodeScriptResult models the data returned from the decodescript command.
type DecodeScriptResult struct {
Asm string `json:"asm"`
ReqSigs int `json:"reqSigs,omitempty"`
Type string `json:"type"`
Addresses []string `json:"addresses,omitempty"`
P2sh string `json:"p2sh"`
}
// GetPeerInfoResult models the data returned from the getpeerinfo command.
type GetPeerInfoResult struct {
Addr string `json:"addr"`
AddrLocal string `json:"addrlocal,omitempty"`
Services string `json:"services"`
LastSend int64 `json:"lastsend"`
LastRecv int64 `json:"lastrecv"`
BytesSent uint64 `json:"bytessent"`
BytesRecv uint64 `json:"bytesrecv"`
PingTime int64 `json:"pingtime"`
PingWait int64 `json:"pingwait,omitempty"`
ConnTime int64 `json:"conntime"`
Version uint32 `json:"version"`
SubVer string `json:"subver"`
Inbound bool `json:"inbound"`
StartingHeight int32 `json:"startingheight"`
BanScore int `json:"banscore,omitempty"`
SyncNode bool `json:"syncnode"`
}
// GetRawMempoolResult models the data returned from the getrawmempool command.
type GetRawMempoolResult struct {
Size int `json:"size"`
Fee float64 `json:"fee"`
Time int64 `json:"time"`
Height int64 `json:"height"`
StartingPriority int `json:"startingpriority"`
CurrentPriority int `json:"currentpriority"`
Depends []string `json:"depends"`
}
// GetTransactionDetailsResult models the details data from the gettransaction command.
type GetTransactionDetailsResult struct {
Account string `json:"account"`
Address string `json:"address"`
Category string `json:"category"`
Amount float64 `json:"amount"`
Fee float64 `json:"fee,omitempty"`
}
// GetTransactionResult models the data from the gettransaction command.
type GetTransactionResult struct {
Amount float64 `json:"amount"`
Fee float64 `json:"fee,omitempty"`
Confirmations int64 `json:"confirmations"`
BlockHash string `json:"blockhash"`
BlockIndex int64 `json:"blockindex"`
BlockTime int64 `json:"blocktime"`
TxID string `json:"txid"`
WalletConflicts []string `json:"walletconflicts"`
Time int64 `json:"time"`
TimeReceived int64 `json:"timereceived"`
Details []GetTransactionDetailsResult `json:"details"`
Hex string `json:"hex"`
}
// ListTransactionsResult models the data from the listtransactions command.
type ListTransactionsResult struct {
Account string `json:"account"`
Address string `json:"address,omitempty"`
Category string `json:"category"`
Amount float64 `json:"amount"`
Fee float64 `json:"fee"`
Confirmations int64 `json:"confirmations"`
Generated bool `json:"generated,omitempty"`
BlockHash string `json:"blockhash,omitempty"`
BlockIndex int64 `json:"blockindex,omitempty"`
BlockTime int64 `json:"blocktime,omitempty"`
TxID string `json:"txid"`
WalletConflicts []string `json:"walletconflicts"`
Time int64 `json:"time"`
TimeReceived int64 `json:"timereceived"`
Comment string `json:"comment,omitempty"`
OtherAccount string `json:"otheraccount"`
}
// TxRawResult models the data from the getrawtransaction command.
type TxRawResult struct {
Hex string `json:"hex"`
Txid string `json:"txid"`
Version uint32 `json:"version"`
LockTime uint32 `json:"locktime"`
Vin []Vin `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"`
}
// TxRawDecodeResult models the data from the decoderawtransaction command.
type TxRawDecodeResult struct {
Txid string `json:"txid"`
Version uint32 `json:"version"`
Locktime uint32 `json:"locktime"`
Vin []Vin `json:"vin"`
Vout []Vout `json:"vout"`
}
// GetNetTotalsResult models the data returned from the getnettotals command.
type GetNetTotalsResult struct {
TotalBytesRecv uint64 `json:"totalbytesrecv"`
TotalBytesSent uint64 `json:"totalbytessent"`
TimeMillis int64 `json:"timemillis"`
}
// ScriptSig models a signature script. It is defined seperately since it only
// applies to non-coinbase. Therefore the field in the Vin structure needs
// to be a pointer.
type ScriptSig struct {
Asm string `json:"asm"`
Hex string `json:"hex"`
}
// Vin models parts of the tx data. It is defined seperately since both
// getrawtransaction and decoderawtransaction use the same structure.
type Vin struct {
Coinbase string `json:"coinbase"`
Txid string `json:"txid"`
Vout int `json:"vout"`
ScriptSig *ScriptSig `json:"scriptSig"`
Sequence uint32 `json:"sequence"`
}
// IsCoinBase returns a bool to show if a Vin is a Coinbase one or not.
func (v *Vin) IsCoinBase() bool {
return len(v.Coinbase) > 0
}
// MarshalJSON provides a custom Marshal method for Vin.
func (v *Vin) MarshalJSON() ([]byte, error) {
if v.IsCoinBase() {
coinbaseStruct := struct {
Coinbase string `json:"coinbase"`
Sequence uint32 `json:"sequence"`
}{
Coinbase: v.Coinbase,
Sequence: v.Sequence,
}
return json.Marshal(coinbaseStruct)
}
txStruct := struct {
Txid string `json:"txid"`
Vout int `json:"vout"`
ScriptSig *ScriptSig `json:"scriptSig"`
Sequence uint32 `json:"sequence"`
}{
Txid: v.Txid,
Vout: v.Vout,
ScriptSig: v.ScriptSig,
Sequence: v.Sequence,
}
return json.Marshal(txStruct)
}
// Vout models parts of the tx data. It is defined seperately since both
// getrawtransaction and decoderawtransaction use the same structure.
type Vout struct {
Value float64 `json:"value"`
N int `json:"n"`
ScriptPubKey struct {
Asm string `json:"asm"`
Hex string `json:"hex"`
ReqSigs int `json:"reqSigs,omitempty"`
Type string `json:"type"`
Addresses []string `json:"addresses,omitempty"`
} `json:"scriptPubKey"`
}
// GetMiningInfoResult models the data from the getmininginfo command.
type GetMiningInfoResult struct {
CurrentBlockSize float64 `json:"currentblocksize"`
Difficulty float64 `json:"difficulty"`
Errors string `json:"errors"`
Generate bool `json:"generate"`
GenProcLimit float64 `json:"genproclimit"`
PooledTx float64 `json:"pooledtx"`
Testnet bool `json:"testnet"`
Blocks float64 `json:"blocks"`
CurrentBlockTx float64 `json:"currentblocktx"`
HashesPerSec float64 `json:"hashespersec"`
}
// GetWorkResult models the data from the getwork command.
type GetWorkResult struct {
Data string `json:"data"`
Hash1 string `json:"hash1"`
Midstate string `json:"midstate"`
Target string `json:"target"`
}
// ValidateAddressResult models the data from the validateaddress command.
type ValidateAddressResult struct {
IsValid bool `json:"isvalid"`
Address string `json:"address,omitempty"`
IsMine bool `json:"ismine,omitempty"`
IsScript bool `json:"isscript,omitempty"`
PubKey string `json:"pubkey,omitempty"`
IsCompressed bool `json:"iscompressed,omitempty"`
Account string `json:"account,omitempty"`
Addresses []string `json:"addresses,omitempty"`
Hex string `json:"hex,omitempty"`
Script string `json:"script,omitempty"`
SigsRequired int `json:"sigsrequired,omitempty"`
}
// SignRawTransactionResult models the data from the signrawtransaction
// command.
type SignRawTransactionResult struct {
Hex string `json:"hex"`
Complete bool `json:"complete"`
}
// ListUnSpentResult models the data from the ListUnSpentResult command.
type ListUnSpentResult struct {
TxId string `json:"txid"`
Vout float64 `json:"vout"`
Address string `json:"address"`
Account string `json:"account"`
ScriptPubKey string `json:"scriptPubKey"`
Amount float64 `json:"amount"`
Confirmations float64 `json:"confirmations"`
}
// GetAddedNodeInfoResultAddr models the data of the addresses portion of the
// getaddednodeinfo command.
type GetAddedNodeInfoResultAddr struct {
Address string `json:"address"`
Connected string `json:"connected"`
}
// GetAddedNodeInfoResult models the data from the getaddednodeinfo command.
type GetAddedNodeInfoResult struct {
AddedNode string `json:"addednode"`
Connected *bool `json:"connected,omitempty"`
Addresses *[]GetAddedNodeInfoResultAddr `json:"addresses,omitempty"`
}
// Error models the error field of the json returned by a bitcoin client. When
// there is no error, this should be a nil pointer to produce the null in the
// json that bitcoind produces.
@ -910,229 +616,6 @@ func CreateMessageWithId(message string, id interface{}, args ...interface{}) ([
return finalMessage, err
}
// ReadResultCmd unmarshalls the json reply with data struct for specific
// commands or an interface if it is not a command where we already have a
// struct ready.
func ReadResultCmd(cmd string, message []byte) (Reply, error) {
var result Reply
var err error
var objmap map[string]json.RawMessage
err = json.Unmarshal(message, &objmap)
if err != nil {
if strings.Contains(string(message), "401 Unauthorized.") {
err = fmt.Errorf("Authentication error.")
} else {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
}
return result, err
}
// Take care of the parts that are the same for all replies.
var jsonErr Error
var id interface{}
err = json.Unmarshal(objmap["error"], &jsonErr)
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
err = json.Unmarshal(objmap["id"], &id)
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
// If it is a command where we have already worked out the reply,
// generate put the results in the proper structure.
// We handle the error condition after the switch statement.
switch cmd {
case "createmultisig":
var res CreateMultiSigResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getaddednodeinfo":
// getaddednodeinfo can either return a JSON object or a
// slice of strings depending on the verbose flag. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res []GetAddedNodeInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "getinfo":
var res InfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getblock":
// getblock can either return a JSON object or a hex-encoded
// string depending on the verbose flag. Choose the right form
// accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res BlockResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "getnettotals":
var res GetNetTotalsResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getnetworkhashps":
var res int64
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getpeerinfo":
var res []GetPeerInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getrawtransaction":
// getrawtransaction can either return a JSON object or a
// hex-encoded string depending on the verbose flag. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res TxRawResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "decoderawtransaction":
var res TxRawDecodeResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getaddressesbyaccount":
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getmininginfo":
var res GetMiningInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getrawmempool":
// getrawmempool can either return a map of JSON objects or
// an array of strings depending on the verbose flag. Choose
// the right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res map[string]GetRawMempoolResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "gettransaction":
var res GetTransactionResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getwork":
// getwork can either return a JSON object or a boolean
// depending on whether or not data was provided. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res GetWorkResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res bool
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "validateaddress":
var res ValidateAddressResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "signrawtransaction":
var res SignRawTransactionResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "listtransactions":
var res []ListTransactionsResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "listunspent":
var res []ListUnSpentResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
// For commands that return a single item (or no items), we get it with
// the correct concrete type for free (but treat them separately
// for clarity).
case "getblockcount", "getbalance", "getblocknumber", "getgenerate",
"getconnetioncount", "getdifficulty", "gethashespersec",
"setgenerate", "stop", "settxfee", "getaccount",
"getnewaddress", "sendtoaddress", "createrawtransaction",
"sendrawtransaction", "getbestblockhash", "getrawchangeaddress":
err = json.Unmarshal(message, &result)
// For anything else put it in an interface. All the data is still
// there, just a little less convenient to deal with.
default:
err = json.Unmarshal(message, &result)
}
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
// Only want the error field when there is an actual error to report.
if jsonErr.Code != 0 {
result.Error = &jsonErr
}
result.Id = &id
return result, err
}
// JSONGetMethod takes a message and tries to find the bitcoin command that it
// is in reply to so it can be processed further.
func JSONGetMethod(message []byte) (string, error) {

View file

@ -6,7 +6,6 @@ package btcjson_test
import (
"bytes"
"encoding/json"
"fmt"
"github.com/conformal/btcjson"
"io"
@ -320,78 +319,6 @@ func TestJSONtoAmount(t *testing.T) {
return
}
var resulttests = []struct {
cmd string
msg []byte
comp bool
pass bool
}{
// Generate a fake message to make sure we can encode and decode it and
// get the same thing back.
{"getblockcount",
[]byte(`{"result":226790,"error":{"code":1,"message":"No Error"},"id":"btcd"}`),
true, true},
// Generate a fake message to make sure we don't make a command from it.
{"anycommand", []byte(`{"result":"test","id":1}`), false, false},
{"anycommand", []byte(`{some junk}`), false, false},
{"anycommand", []byte(`{"error":null,"result":null,"id":"test"}`), false, true},
{"createmultisig", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"createmultisig", []byte(`{"error":null,"id":1,"result":{"address":"something","redeemScript":"else"}}`), false, true},
{"getinfo", []byte(`{"error":null,"result":null,"id":"test"}`), false, true},
{"getinfo", []byte(`{"error":null,"result":null}`), false, false},
{"getinfo", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getblock", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getblock", []byte(`{"result":{"hash":"000000","confirmations":16007,"size":325648},"error":null,"id":1}`), false, true},
{"gettransaction", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"gettransaction", []byte(`{"error":null,"id":1,"result":{"Amount":0.0}}`), false, true},
{"getrawtransaction", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getrawtransaction", []byte(`{"error":null,"id":1,"result":{"hex":"somejunk","version":1}}`), false, true},
{"decoderawtransaction", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"decoderawtransaction", []byte(`{"error":null,"id":1,"result":{"Txid":"something"}}`), false, true},
{"getaddressesbyaccount", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getaddressesbyaccount", []byte(`{"error":null,"id":1,"result":["test"]}`), false, true},
{"getmininginfo", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getmininginfo", []byte(`{"error":null,"id":1,"result":{"generate":true}}`), false, true},
{"validateaddress", []byte(`{"error":null,"id":1,"result":{"isvalid":false}}`), false, true},
{"validateaddress", []byte(`{"error":null,"id":1,"result":{false}}`), false, false},
{"signrawtransaction", []byte(`{"error":null,"id":1,"result":{"hex":"something","complete":false}}`), false, true},
{"signrawtransaction", []byte(`{"error":null,"id":1,"result":{false}}`), false, false},
{"listunspent", []byte(`{"error":null,"id":1,"result":[{"txid":"something"}]}`), false, true},
{"listunspent", []byte(`{"error":null,"id":1,"result":[{"txid"}]}`), false, false},
}
// TestReadResultCmd tests that readResultCmd can properly unmarshall the
// returned []byte that contains a json reply for both known and unknown
// messages.
func TestReadResultCmd(t *testing.T) {
for i, tt := range resulttests {
result, err := btcjson.ReadResultCmd(tt.cmd, tt.msg)
if tt.pass {
if err != nil {
t.Errorf("Should read result: %d %v", i, err)
}
// Due to the pointer for the Error and other structs,
// we can't always guarantee byte for byte comparison.
if tt.comp {
msg2, err := json.Marshal(result)
if err != nil {
t.Errorf("Should unmarshal result: %d %v", i, err)
}
if !bytes.Equal(tt.msg, msg2) {
t.Errorf("json byte arrays differ. %d %v %v", i, tt.msg, msg2)
}
}
} else {
if err == nil {
t.Errorf("Should fail: %d, %s", i, tt.msg)
}
}
}
return
}
// TestErrorInterface tests that the Error type satisifies the builtin
// error interface and tests that the error string is created in the form
// "code: message".

82
jsonresult_test.go Normal file
View file

@ -0,0 +1,82 @@
// Copyright (c) 2013-2014 Conformal Systems LLC.
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.
package btcjson_test
import (
"bytes"
"encoding/json"
"github.com/conformal/btcjson"
"testing"
)
var resulttests = []struct {
cmd string
msg []byte
comp bool
pass bool
}{
// Generate a fake message to make sure we can encode and decode it and
// get the same thing back.
{"getblockcount",
[]byte(`{"result":226790,"error":{"code":1,"message":"No Error"},"id":"btcd"}`),
true, true},
// Generate a fake message to make sure we don't make a command from it.
{"anycommand", []byte(`{"result":"test","id":1}`), false, false},
{"anycommand", []byte(`{some junk}`), false, false},
{"anycommand", []byte(`{"error":null,"result":null,"id":"test"}`), false, true},
{"createmultisig", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"createmultisig", []byte(`{"error":null,"id":1,"result":{"address":"something","redeemScript":"else"}}`), false, true},
{"getinfo", []byte(`{"error":null,"result":null,"id":"test"}`), false, true},
{"getinfo", []byte(`{"error":null,"result":null}`), false, false},
{"getinfo", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getblock", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getblock", []byte(`{"result":{"hash":"000000","confirmations":16007,"size":325648},"error":null,"id":1}`), false, true},
{"getrawtransaction", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getrawtransaction", []byte(`{"error":null,"id":1,"result":{"hex":"somejunk","version":1}}`), false, true},
{"decoderawtransaction", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"decoderawtransaction", []byte(`{"error":null,"id":1,"result":{"Txid":"something"}}`), false, true},
{"getaddressesbyaccount", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getaddressesbyaccount", []byte(`{"error":null,"id":1,"result":["test"]}`), false, true},
{"getmininginfo", []byte(`{"error":null,"id":1,"result":[{"a":"b"}]}`), false, false},
{"getmininginfo", []byte(`{"error":null,"id":1,"result":{"generate":true}}`), false, true},
{"validateaddress", []byte(`{"error":null,"id":1,"result":{"isvalid":false}}`), false, true},
{"validateaddress", []byte(`{"error":null,"id":1,"result":{false}}`), false, false},
{"signrawtransaction", []byte(`{"error":null,"id":1,"result":{"hex":"something","complete":false}}`), false, true},
{"signrawtransaction", []byte(`{"error":null,"id":1,"result":{false}}`), false, false},
{"listunspent", []byte(`{"error":null,"id":1,"result":[{"txid":"something"}]}`), false, true},
{"listunspent", []byte(`{"error":null,"id":1,"result":[{"txid"}]}`), false, false},
}
// TestReadResultCmd tests that readResultCmd can properly unmarshall the
// returned []byte that contains a json reply for both known and unknown
// messages.
func TestReadResultCmd(t *testing.T) {
for i, tt := range resulttests {
result, err := btcjson.ReadResultCmd(tt.cmd, tt.msg)
if tt.pass {
if err != nil {
t.Errorf("Should read result: %d %v", i, err)
}
// Due to the pointer for the Error and other structs,
// we can't always guarantee byte for byte comparison.
if tt.comp {
msg2, err := json.Marshal(result)
if err != nil {
t.Errorf("Should unmarshal result: %d %v", i, err)
}
if !bytes.Equal(tt.msg, msg2) {
t.Errorf("json byte arrays differ. %d %v %v", i, tt.msg, msg2)
}
}
} else {
if err == nil {
t.Errorf("Should fail: %d, %s", i, tt.msg)
}
}
}
return
}

496
jsonresults.go Normal file
View file

@ -0,0 +1,496 @@
// Copyright (c) 2013-2014 Conformal Systems LLC.
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.
package btcjson
import (
"encoding/json"
"fmt"
"strings"
)
// InfoResult contains the data returned by the getinfo command.
type InfoResult struct {
Version int `json:"version,omitempty"`
ProtocolVersion int `json:"protocolversion,omitempty"`
WalletVersion int `json:"walletversion,omitempty"`
Balance float64 `json:"balance,omitempty"`
Blocks int `json:"blocks,omitempty"`
TimeOffset int64 `json:"timeoffset,omitempty"`
Connections int `json:"connections,omitempty"`
Proxy string `json:"proxy,omitempty"`
Difficulty float64 `json:"difficulty,omitempty"`
TestNet bool `json:"testnet,omitempty"`
KeypoolOldest int64 `json:"keypoololdest,omitempty"`
KeypoolSize int `json:"keypoolsize,omitempty"`
PaytxFee float64 `json:"paytxfee,omitempty"`
RelayFee float64 `json:"relayfee,omitempty"`
Errors string `json:"errors,omitempty"`
}
// BlockResult models the data from the getblock command when the verbose flag
// is set. When the verbose flag is not set, getblock return a hex-encoded
// string.
type BlockResult struct {
Hash string `json:"hash"`
Confirmations uint64 `json:"confirmations"`
Size int `json:"size"`
Height int64 `json:"height"`
Version uint32 `json:"version"`
MerkleRoot string `json:"merkleroot"`
Tx []string `json:"tx,omitempty"`
RawTx []TxRawResult `json:"rawtx,omitempty"`
Time int64 `json:"time"`
Nonce uint32 `json:"nonce"`
Bits string `json:"bits"`
Difficulty float64 `json:"difficulty"`
PreviousHash string `json:"previousblockhash"`
NextHash string `json:"nextblockhash"`
}
// CreateMultiSigResult models the data returned from the createmultisig command.
type CreateMultiSigResult struct {
Address string `json:"address"`
RedeemScript string `json:"redeemScript"`
}
// DecodeScriptResult models the data returned from the decodescript command.
type DecodeScriptResult struct {
Asm string `json:"asm"`
ReqSigs int `json:"reqSigs,omitempty"`
Type string `json:"type"`
Addresses []string `json:"addresses,omitempty"`
P2sh string `json:"p2sh"`
}
// GetPeerInfoResult models the data returned from the getpeerinfo command.
type GetPeerInfoResult struct {
Addr string `json:"addr"`
AddrLocal string `json:"addrlocal,omitempty"`
Services string `json:"services"`
LastSend int64 `json:"lastsend"`
LastRecv int64 `json:"lastrecv"`
BytesSent uint64 `json:"bytessent"`
BytesRecv uint64 `json:"bytesrecv"`
PingTime int64 `json:"pingtime"`
PingWait int64 `json:"pingwait,omitempty"`
ConnTime int64 `json:"conntime"`
Version uint32 `json:"version"`
SubVer string `json:"subver"`
Inbound bool `json:"inbound"`
StartingHeight int32 `json:"startingheight"`
BanScore int `json:"banscore,omitempty"`
SyncNode bool `json:"syncnode"`
}
// GetRawMempoolResult models the data returned from the getrawmempool command.
type GetRawMempoolResult struct {
Size int `json:"size"`
Fee float64 `json:"fee"`
Time int64 `json:"time"`
Height int64 `json:"height"`
StartingPriority int `json:"startingpriority"`
CurrentPriority int `json:"currentpriority"`
Depends []string `json:"depends"`
}
// ListTransactionsResult models the data from the listtransactions command.
type ListTransactionsResult struct {
Account string `json:"account"`
Address string `json:"address,omitempty"`
Category string `json:"category"`
Amount float64 `json:"amount"`
Fee float64 `json:"fee"`
Confirmations int64 `json:"confirmations"`
Generated bool `json:"generated"`
BlockHash string `json:"blockhash,omitempty"`
BlockIndex int64 `json:"blockindex,omitempty"`
BlockTime int64 `json:"blocktime,omitempty"`
TxID string `json:"amount"`
WalletConflicts []string `json:"walletconflicts"`
Time int64 `json:"time"`
TimeReceived int64 `json:"timereceived"`
Comment string `json:"comment,omitempty"`
OtherAccount float64 `json:"otheraccount"`
}
// TxRawResult models the data from the getrawtransaction command.
type TxRawResult struct {
Hex string `json:"hex"`
Txid string `json:"txid"`
Version uint32 `json:"version"`
LockTime uint32 `json:"locktime"`
Vin []Vin `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"`
}
// TxRawDecodeResult models the data from the decoderawtransaction command.
type TxRawDecodeResult struct {
Txid string `json:"txid"`
Version uint32 `json:"version"`
Locktime uint32 `json:"locktime"`
Vin []Vin `json:"vin"`
Vout []Vout `json:"vout"`
}
// GetNetTotalsResult models the data returned from the getnettotals command.
type GetNetTotalsResult struct {
TotalBytesRecv uint64 `json:"totalbytesrecv"`
TotalBytesSent uint64 `json:"totalbytessent"`
TimeMillis int64 `json:"timemillis"`
}
// ScriptSig models a signature script. It is defined seperately since it only
// applies to non-coinbase. Therefore the field in the Vin structure needs
// to be a pointer.
type ScriptSig struct {
Asm string `json:"asm"`
Hex string `json:"hex"`
}
// Vin models parts of the tx data. It is defined seperately since both
// getrawtransaction and decoderawtransaction use the same structure.
type Vin struct {
Coinbase string `json:"coinbase"`
Txid string `json:"txid"`
Vout int `json:"vout"`
ScriptSig *ScriptSig `json:"scriptSig"`
Sequence uint32 `json:"sequence"`
}
// IsCoinBase returns a bool to show if a Vin is a Coinbase one or not.
func (v *Vin) IsCoinBase() bool {
return len(v.Coinbase) > 0
}
// MarshalJSON provides a custom Marshal method for Vin.
func (v *Vin) MarshalJSON() ([]byte, error) {
if v.IsCoinBase() {
coinbaseStruct := struct {
Coinbase string `json:"coinbase"`
Sequence uint32 `json:"sequence"`
}{
Coinbase: v.Coinbase,
Sequence: v.Sequence,
}
return json.Marshal(coinbaseStruct)
}
txStruct := struct {
Txid string `json:"txid"`
Vout int `json:"vout"`
ScriptSig *ScriptSig `json:"scriptSig"`
Sequence uint32 `json:"sequence"`
}{
Txid: v.Txid,
Vout: v.Vout,
ScriptSig: v.ScriptSig,
Sequence: v.Sequence,
}
return json.Marshal(txStruct)
}
// Vout models parts of the tx data. It is defined seperately since both
// getrawtransaction and decoderawtransaction use the same structure.
type Vout struct {
Value float64 `json:"value"`
N int `json:"n"`
ScriptPubKey struct {
Asm string `json:"asm"`
Hex string `json:"hex"`
ReqSigs int `json:"reqSigs,omitempty"`
Type string `json:"type"`
Addresses []string `json:"addresses,omitempty"`
} `json:"scriptPubKey"`
}
// GetMiningInfoResult models the data from the getmininginfo command.
type GetMiningInfoResult struct {
CurrentBlockSize float64 `json:"currentblocksize"`
Difficulty float64 `json:"difficulty"`
Errors string `json:"errors"`
Generate bool `json:"generate"`
GenProcLimit float64 `json:"genproclimit"`
PooledTx float64 `json:"pooledtx"`
Testnet bool `json:"testnet"`
Blocks float64 `json:"blocks"`
CurrentBlockTx float64 `json:"currentblocktx"`
HashesPerSec float64 `json:"hashespersec"`
}
// GetWorkResult models the data from the getwork command.
type GetWorkResult struct {
Data string `json:"data"`
Hash1 string `json:"hash1"`
Midstate string `json:"midstate"`
Target string `json:"target"`
}
// ValidateAddressResult models the data from the validateaddress command.
type ValidateAddressResult struct {
IsValid bool `json:"isvalid"`
Address string `json:"address,omitempty"`
IsMine bool `json:"ismine,omitempty"`
IsScript bool `json:"isscript,omitempty"`
PubKey string `json:"pubkey,omitempty"`
IsCompressed bool `json:"iscompressed,omitempty"`
Account string `json:"account,omitempty"`
Addresses []string `json:"addresses,omitempty"`
Hex string `json:"hex,omitempty"`
Script string `json:"script,omitempty"`
SigsRequired int `json:"sigsrequired,omitempty"`
}
// SignRawTransactionResult models the data from the signrawtransaction
// command.
type SignRawTransactionResult struct {
Hex string `json:"hex"`
Complete bool `json:"complete"`
}
// ListUnSpentResult models the data from the ListUnSpentResult command.
type ListUnSpentResult struct {
TxId string `json:"txid"`
Vout float64 `json:"vout"`
Address string `json:"address"`
Account string `json:"account"`
ScriptPubKey string `json:"scriptPubKey"`
Amount float64 `json:"amount"`
Confirmations float64 `json:"confirmations"`
}
// GetAddedNodeInfoResultAddr models the data of the addresses portion of the
// getaddednodeinfo command.
type GetAddedNodeInfoResultAddr struct {
Address string `json:"address"`
Connected string `json:"connected"`
}
// GetAddedNodeInfoResult models the data from the getaddednodeinfo command.
type GetAddedNodeInfoResult struct {
AddedNode string `json:"addednode"`
Connected *bool `json:"connected,omitempty"`
Addresses *[]GetAddedNodeInfoResultAddr `json:"addresses,omitempty"`
}
// ReadResultCmd unmarshalls the json reply with data struct for specific
// commands or an interface if it is not a command where we already have a
// struct ready.
func ReadResultCmd(cmd string, message []byte) (Reply, error) {
var result Reply
var err error
var objmap map[string]json.RawMessage
err = json.Unmarshal(message, &objmap)
if err != nil {
if strings.Contains(string(message), "401 Unauthorized.") {
err = fmt.Errorf("Authentication error.")
} else {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
}
return result, err
}
// Take care of the parts that are the same for all replies.
var jsonErr Error
var id interface{}
err = json.Unmarshal(objmap["error"], &jsonErr)
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
err = json.Unmarshal(objmap["id"], &id)
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
// If it is a command where we have already worked out the reply,
// generate put the results in the proper structure.
// We handle the error condition after the switch statement.
switch cmd {
case "createmultisig":
var res CreateMultiSigResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getaddednodeinfo":
// getaddednodeinfo can either return a JSON object or a
// slice of strings depending on the verbose flag. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res []GetAddedNodeInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "getinfo":
var res InfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getblock":
// getblock can either return a JSON object or a hex-encoded
// string depending on the verbose flag. Choose the right form
// accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res BlockResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "getnettotals":
var res GetNetTotalsResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getnetworkhashps":
var res int64
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getpeerinfo":
var res []GetPeerInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getrawtransaction":
// getrawtransaction can either return a JSON object or a
// hex-encoded string depending on the verbose flag. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res TxRawResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "decoderawtransaction":
var res TxRawDecodeResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getaddressesbyaccount":
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getmininginfo":
var res GetMiningInfoResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "getrawmempool":
// getrawmempool can either return a map of JSON objects or
// an array of strings depending on the verbose flag. Choose
// the right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res map[string]GetRawMempoolResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res []string
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "getwork":
// getwork can either return a JSON object or a boolean
// depending on whether or not data was provided. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res GetWorkResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res bool
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "validateaddress":
var res ValidateAddressResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "signrawtransaction":
var res SignRawTransactionResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "listtransactions":
var res []ListTransactionsResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
case "listunspent":
var res []ListUnSpentResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
// For commands that return a single item (or no items), we get it with
// the correct concrete type for free (but treat them separately
// for clarity).
case "getblockcount", "getbalance", "getblocknumber", "getgenerate",
"getconnetioncount", "getdifficulty", "gethashespersec",
"setgenerate", "stop", "settxfee", "getaccount",
"getnewaddress", "sendtoaddress", "createrawtransaction",
"sendrawtransaction", "getbestblockhash", "getrawchangeaddress":
err = json.Unmarshal(message, &result)
// For anything else put it in an interface. All the data is still
// there, just a little less convenient to deal with.
default:
err = json.Unmarshal(message, &result)
}
if err != nil {
err = fmt.Errorf("Error unmarshalling json reply: %v", err)
return result, err
}
// Only want the error field when there is an actual error to report.
if jsonErr.Code != 0 {
result.Error = &jsonErr
}
result.Id = &id
return result, err
}

View file

@ -1,466 +1,466 @@
github.com/conformal/btcjson/jsonapi.go JSONToAmount 100.00% (15/15)
github.com/conformal/btcjson/jsonapi.go JSONGetMethod 100.00% (14/14)
github.com/conformal/btcjson/jsonfxns.go MarshallAndSend 100.00% (7/7)
github.com/conformal/btcjson/jsonfxns.go GetRaw 100.00% (6/6)
github.com/conformal/btcjson/jsonapi.go jsonWithArgs 100.00% (5/5)
github.com/conformal/btcjson/jsonapi.go IsValidIdType 100.00% (3/3)
github.com/conformal/btcjson/jsonapi.go CreateMessage 100.00% (2/2)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go Error.Error 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAddressesByAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBestBlockHashCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockCountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockHashCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetConnectionCountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetDifficultyCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetGenerateCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetHashesPerSecCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetMiningInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetNetTotalsCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetPeerInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetTxOutSetInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewImportWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewListAddressGroupingsCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewListLockUnspentCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewPingCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewSetAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewSetTxFeeCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewSignMessageCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewStopCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewValidateAddressCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewVerifyMessageCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletLockCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletPassphraseCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletPassphraseChangeCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go RpcCommand 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewBackupWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewCreateMultisigCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewCreateRawTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDebugLevelCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDecodeRawTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDecodeScriptCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDumpPrivKeyCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDumpWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewEncryptWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAccountAddressCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go CreateMessageWithId 96.18% (327/340)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.MarshalJSON 92.86% (13/14)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.MarshalJSON 92.86% (13/14)
github.com/conformal/btcjson/jsoncmd.go ParseMarshaledCmd 91.86% (79/86)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.MarshalJSON 91.67% (11/12)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.MarshalJSON 90.00% (9/10)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go NewGetNetworkHashPSCmd 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go NewVerifyChainCmd 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go NewRawCmd 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go NewListAccountsCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetNewAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSendRawTransactionCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetReceivedByAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewAddMultisigAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSubmitBlockCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewKeyPoolRefillCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockTemplateCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetRawChangeAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetRawMempoolCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSetGenerateCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetRawTransactionCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewHelpCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetReceivedByAccountCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetWorkCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetAddedNodeInfoCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetTxOutCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewListUnspentCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewSendFromCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewListTransactionsCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewListSinceBlockCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewListReceivedByAddressCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewGetBalanceCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewListReceivedByAccountCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewMoveCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewSendManyCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewSendToAddressCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go NewImportPrivKeyCmd 78.57% (11/14)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.MarshalJSON 77.78% (7/9)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.UnmarshalJSON 76.92% (20/26)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.UnmarshalJSON 76.92% (20/26)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.UnmarshalJSON 75.76% (25/33)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.UnmarshalJSON 75.00% (18/24)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.MarshalJSON 75.00% (6/8)
github.com/conformal/btcjson/jsoncmd.go StopCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go PingCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.UnmarshalJSON 73.68% (28/38)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.UnmarshalJSON 73.33% (22/30)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.UnmarshalJSON 72.73% (24/33)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.UnmarshalJSON 72.73% (16/22)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.UnmarshalJSON 71.43% (10/14)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.UnmarshalJSON 70.59% (12/17)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.UnmarshalJSON 70.00% (14/20)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go PingCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go StopCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.UnmarshalJSON 68.42% (13/19)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.MarshalJSON 66.67% (8/12)
github.com/conformal/btcjson/jsoncmd.go NewLockUnspentCmd 66.67% (4/6)
github.com/conformal/btcjson/jsoncmd.go NewAddNodeCmd 66.67% (2/3)
github.com/conformal/btcjson/jsonfxns.go jsonRpcSend 62.50% (10/16)
github.com/conformal/btcjson/jsonapi.go rpcCommand 61.54% (8/13)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.MarshalJSON 60.00% (6/10)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.UnmarshalJSON 59.09% (13/22)
github.com/conformal/btcjson/jsonapi.go ReadResultCmd 58.73% (74/126)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.UnmarshalJSON 57.89% (11/19)
github.com/conformal/btcjson/jsonapi.go rpcRawCommand 53.33% (8/15)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.UnmarshalJSON 50.00% (12/24)
github.com/conformal/btcjson/cmdhelp.go GetHelpString 50.00% (3/6)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.UnmarshalJSON 44.83% (13/29)
github.com/conformal/btcjson/jsoncmd.go NewSignRawTransactionCmd 38.10% (8/21)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockCmd 36.36% (4/11)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.UnmarshalJSON 0.00% (0/6)
github.com/conformal/btcjson/jsonapi.go Vin.MarshalJSON 0.00% (0/5)
github.com/conformal/btcjson/jsonapi.go TlsRpcSend 0.00% (0/4)
github.com/conformal/btcjson/jsonapi.go RpcSend 0.00% (0/4)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.MarshalJSON 0.00% (0/4)
github.com/conformal/btcjson/jsonapi.go TlsRpcRawCommand 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.Method 0.00% (0/1)
github.com/conformal/btcjson/jsonapi.go Vin.IsCoinBase 0.00% (0/1)
github.com/conformal/btcjson/jsonapi.go TlsRpcCommand 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.SetId 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.Id 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go newUnparsableCmd 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go RegisterCustomCmd 0.00% (0/1)
github.com/conformal/btcjson/jsonapi.go RpcRawCommand 0.00% (0/1)
github.com/conformal/btcjson --------------------------------------- 78.61% (2337/2973)
github.com/conformal/btcjson/jsonapi.go JSONToAmount 100.00% (15/15)
github.com/conformal/btcjson/jsonapi.go JSONGetMethod 100.00% (14/14)
github.com/conformal/btcjson/jsonfxns.go MarshallAndSend 100.00% (7/7)
github.com/conformal/btcjson/jsonfxns.go GetRaw 100.00% (6/6)
github.com/conformal/btcjson/jsonapi.go jsonWithArgs 100.00% (5/5)
github.com/conformal/btcjson/jsonapi.go IsValidIdType 100.00% (3/3)
github.com/conformal/btcjson/jsonapi.go CreateMessage 100.00% (2/2)
github.com/conformal/btcjson/jsoncmd.go NewSetTxFeeCmd 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go Error.Error 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go RpcCommand 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletPassphraseChangeCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetMiningInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetNetTotalsCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetPeerInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go StopCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewStopCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetTxOutSetInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewImportWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewListAddressGroupingsCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewListLockUnspentCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewSignMessageCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewPingCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go PingCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewSetAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletPassphraseCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewWalletLockCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewBackupWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewCreateMultisigCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewCreateRawTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDebugLevelCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDecodeRawTransactionCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewVerifyMessageCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDecodeScriptCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDumpPrivKeyCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewDumpWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewEncryptWalletCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAccountAddressCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetAddressesByAccountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBestBlockHashCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewValidateAddressCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockCountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockHashCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetConnectionCountCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetDifficultyCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetGenerateCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetHashesPerSecCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go NewGetInfoCmd 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.Id 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.SetId 100.00% (1/1)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.Method 100.00% (1/1)
github.com/conformal/btcjson/jsonapi.go CreateMessageWithId 96.18% (327/340)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.MarshalJSON 92.86% (13/14)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.MarshalJSON 92.86% (13/14)
github.com/conformal/btcjson/jsoncmd.go ParseMarshaledCmd 91.86% (79/86)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.MarshalJSON 91.67% (11/12)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.MarshalJSON 90.91% (10/11)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.MarshalJSON 90.00% (9/10)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go NewVerifyChainCmd 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go NewGetNetworkHashPSCmd 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.MarshalJSON 88.89% (8/9)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go NewRawCmd 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.MarshalJSON 87.50% (7/8)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.MarshalJSON 85.71% (6/7)
github.com/conformal/btcjson/jsoncmd.go NewGetRawChangeAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetReceivedByAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockTemplateCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewAddMultisigAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetReceivedByAccountCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetTxOutCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetRawTransactionCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewKeyPoolRefillCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSubmitBlockCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSetGenerateCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewListAccountsCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetWorkCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewHelpCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSendRawTransactionCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetNewAddressCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetAddedNodeInfoCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewGetRawMempoolCmd 83.33% (5/6)
github.com/conformal/btcjson/jsoncmd.go NewSendFromCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewListUnspentCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewListTransactionsCmd 80.95% (17/21)
github.com/conformal/btcjson/jsoncmd.go NewSendToAddressCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewSendManyCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewMoveCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewGetBalanceCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewListReceivedByAccountCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewListReceivedByAddressCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go NewListSinceBlockCmd 80.00% (12/15)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.MarshalJSON 80.00% (4/5)
github.com/conformal/btcjson/jsoncmd.go NewImportPrivKeyCmd 78.57% (11/14)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.MarshalJSON 77.78% (7/9)
github.com/conformal/btcjson/jsoncmd.go ListTransactionsCmd.UnmarshalJSON 76.92% (20/26)
github.com/conformal/btcjson/jsoncmd.go ListUnspentCmd.UnmarshalJSON 76.92% (20/26)
github.com/conformal/btcjson/jsoncmd.go GetNetworkHashPSCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAddressCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListReceivedByAccountCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go VerifyChainCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go ListSinceBlockCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go GetBalanceCmd.UnmarshalJSON 76.19% (16/21)
github.com/conformal/btcjson/jsoncmd.go SendManyCmd.UnmarshalJSON 75.76% (25/33)
github.com/conformal/btcjson/jsoncmd.go ImportPrivKeyCmd.UnmarshalJSON 75.00% (18/24)
github.com/conformal/btcjson/jsoncmd.go GetBlockTemplateCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go ListAccountsCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go HelpCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetNewAddressCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetRawChangeAddressCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go GetRawMempoolCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go KeyPoolRefillCmd.UnmarshalJSON 75.00% (12/16)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.MarshalJSON 75.00% (6/8)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go StopCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go PingCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.MarshalJSON 75.00% (3/4)
github.com/conformal/btcjson/jsoncmd.go SendFromCmd.UnmarshalJSON 73.68% (28/38)
github.com/conformal/btcjson/jsoncmd.go SetGenerateCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SubmitBlockCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetRawTransactionCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAddressCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SendRawTransactionCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go GetReceivedByAccountCmd.UnmarshalJSON 73.68% (14/19)
github.com/conformal/btcjson/jsoncmd.go SendToAddressCmd.UnmarshalJSON 73.33% (22/30)
github.com/conformal/btcjson/jsoncmd.go MoveCmd.UnmarshalJSON 72.73% (24/33)
github.com/conformal/btcjson/jsoncmd.go CreateRawTransactionCmd.UnmarshalJSON 72.73% (16/22)
github.com/conformal/btcjson/jsoncmd.go GetWorkCmd.UnmarshalJSON 71.43% (10/14)
github.com/conformal/btcjson/jsoncmd.go GetAddedNodeInfoCmd.UnmarshalJSON 70.59% (12/17)
github.com/conformal/btcjson/jsoncmd.go AddMultisigAddressCmd.UnmarshalJSON 70.00% (14/20)
github.com/conformal/btcjson/jsoncmd.go GetDifficultyCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetConnectionCountCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetHashesPerSecCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetBlockCountCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go WalletLockCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go PingCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetBestBlockHashCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetTxOutSetInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go ListLockUnspentCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go ListAddressGroupingsCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetPeerInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetNetTotalsCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetMiningInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetInfoCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go StopCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetGenerateCmd.UnmarshalJSON 70.00% (7/10)
github.com/conformal/btcjson/jsoncmd.go GetTransactionCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAccountCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go ImportWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAddressesByAccountCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go BackupWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetAccountAddressCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DebugLevelCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DecodeRawTransactionCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go GetBlockHashCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DecodeScriptCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DumpPrivKeyCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go DumpWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go EncryptWalletCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go ValidateAddressCmd.UnmarshalJSON 69.23% (9/13)
github.com/conformal/btcjson/jsoncmd.go SetAccountCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go SetTxFeeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go SignMessageCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go CreateMultisigCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go AddNodeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go WalletPassphraseChangeCmd.UnmarshalJSON 68.75% (11/16)
github.com/conformal/btcjson/jsoncmd.go VerifyMessageCmd.UnmarshalJSON 68.42% (13/19)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.MarshalJSON 66.67% (8/12)
github.com/conformal/btcjson/jsoncmd.go NewLockUnspentCmd 66.67% (4/6)
github.com/conformal/btcjson/jsoncmd.go NewAddNodeCmd 66.67% (2/3)
github.com/conformal/btcjson/jsonfxns.go jsonRpcSend 62.50% (10/16)
github.com/conformal/btcjson/jsonapi.go rpcCommand 61.54% (8/13)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.MarshalJSON 60.00% (6/10)
github.com/conformal/btcjson/jsoncmd.go GetTxOutCmd.UnmarshalJSON 59.09% (13/22)
github.com/conformal/btcjson/jsoncmd.go LockUnspentCmd.UnmarshalJSON 57.89% (11/19)
github.com/conformal/btcjson/jsonresults.go ReadResultCmd 57.38% (70/122)
github.com/conformal/btcjson/jsonapi.go rpcRawCommand 53.33% (8/15)
github.com/conformal/btcjson/jsoncmd.go GetBlockCmd.UnmarshalJSON 50.00% (12/24)
github.com/conformal/btcjson/cmdhelp.go GetHelpString 50.00% (3/6)
github.com/conformal/btcjson/jsoncmd.go SignRawTransactionCmd.UnmarshalJSON 44.83% (13/29)
github.com/conformal/btcjson/jsoncmd.go NewSignRawTransactionCmd 38.10% (8/21)
github.com/conformal/btcjson/jsoncmd.go NewGetBlockCmd 36.36% (4/11)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.UnmarshalJSON 0.00% (0/6)
github.com/conformal/btcjson/jsonresults.go Vin.MarshalJSON 0.00% (0/5)
github.com/conformal/btcjson/jsonapi.go RpcSend 0.00% (0/4)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.MarshalJSON 0.00% (0/4)
github.com/conformal/btcjson/jsonapi.go TlsRpcSend 0.00% (0/4)
github.com/conformal/btcjson/jsonapi.go TlsRpcCommand 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go newUnparsableCmd 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.Id 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.SetId 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go RegisterCustomCmd 0.00% (0/1)
github.com/conformal/btcjson/jsoncmd.go unparsableCmd.Method 0.00% (0/1)
github.com/conformal/btcjson/jsonapi.go TlsRpcRawCommand 0.00% (0/1)
github.com/conformal/btcjson/jsonapi.go RpcRawCommand 0.00% (0/1)
github.com/conformal/btcjson/jsonresults.go Vin.IsCoinBase 0.00% (0/1)
github.com/conformal/btcjson --------------------------------------- 78.58% (2333/2969)