func NewGetBlockHashCmd(index int64) *GetBlockHashCmd {
	return &GetBlockHashCmd{
		Index: index,
	}
}
NewGetBlockHashCmd returns a new instance which can be used to issue a
getblockhash JSON-RPC command.
package btcjson
import (
	"encoding/json"
	"fmt"
	"github.com/btcsuite/btcd/wire"
)
type AddNodeSubCmd string
const (
	ANAdd AddNodeSubCmd = "add"
	ANRemove AddNodeSubCmd = "remove"
	ANOneTry AddNodeSubCmd = "onetry"
)
type AddNodeCmd struct {
	Addr   string
	SubCmd AddNodeSubCmd `jsonrpcusage:"\"add|remove|onetry\""`
}
func NewAddNodeCmd(addr string, subCmd AddNodeSubCmd) *AddNodeCmd {
	return &AddNodeCmd{
		Addr:   addr,
		SubCmd: subCmd,
	}
}
type EstimateMode string
const (
	UnsetEstimeMode EstimateMode = "UNSET"
	ConservativeEstimeMode EstimateMode = "CONSERVATIVE"
	EconomicalEstimeMode EstimateMode = "ECONOMICAL"
)
type EstimateSmartFeeCmd struct {
	ConfTarget   uint32       `json:"conf_target"`
	EstimateMode EstimateMode `json:"estimate_mode,omitempty"`
}
func NewEstimateSmartFeeCmd(confTarget uint32, estimateMode EstimateMode) *EstimateSmartFeeCmd {
	return &EstimateSmartFeeCmd{
		ConfTarget:   confTarget,
		EstimateMode: estimateMode,
	}
}
type TransactionInput struct {
	Txid string `json:"txid"`
	Vout uint32 `json:"vout"`
}
type CreateRawTransactionCmd struct {
	Inputs   []TransactionInput
	Amounts  map[string]float64 `jsonrpcusage:"{\"address\":amount,...}"`  
	LockTime *int64
}
func NewCreateRawTransactionCmd(inputs []TransactionInput, amounts map[string]float64,
	lockTime *int64) *CreateRawTransactionCmd {
	return &CreateRawTransactionCmd{
		Inputs:   inputs,
		Amounts:  amounts,
		LockTime: lockTime,
	}
}
type DecodeRawTransactionCmd struct {
	HexTx string
}
func NewDecodeRawTransactionCmd(hexTx string) *DecodeRawTransactionCmd {
	return &DecodeRawTransactionCmd{
		HexTx: hexTx,
	}
}
type DecodeScriptCmd struct {
	HexScript string
}
func NewDecodeScriptCmd(hexScript string) *DecodeScriptCmd {
	return &DecodeScriptCmd{
		HexScript: hexScript,
	}
}
type GetAddedNodeInfoCmd struct {
	DNS  bool
	Node *string
}
func NewGetAddedNodeInfoCmd(dns bool, node *string) *GetAddedNodeInfoCmd {
	return &GetAddedNodeInfoCmd{
		DNS:  dns,
		Node: node,
	}
}
type GetBestBlockHashCmd struct{}
func NewGetBestBlockHashCmd() *GetBestBlockHashCmd {
	return &GetBestBlockHashCmd{}
}
type GetBlockCmd struct {
	Hash      string
	Verbose   *bool `jsonrpcdefault:"true"`
	VerboseTx *bool `jsonrpcdefault:"false"`
}
func NewGetBlockCmd(hash string, verbose, verboseTx *bool) *GetBlockCmd {
	return &GetBlockCmd{
		Hash:      hash,
		Verbose:   verbose,
		VerboseTx: verboseTx,
	}
}
type GetBlockChainInfoCmd struct{}
func NewGetBlockChainInfoCmd() *GetBlockChainInfoCmd {
	return &GetBlockChainInfoCmd{}
}
type GetBlockCountCmd struct{}
func NewGetBlockCountCmd() *GetBlockCountCmd {
	return &GetBlockCountCmd{}
}
type GetBlockHashCmd struct {
	Index int64
}