btccli

package module
v0.18.1-beta-4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2019 License: BSD-3-Clause Imports: 10 Imported by: 0

README

Bitcoin cli wrapper

  • Start and stop bitcoind from golang.
  • Using go to wrap bitcoin cli.

Useful for integreting bitcoin to tests.

See bitcoin-core-apis

Zero dependency.

Currently not support windows

Im developing under macOS and linux, not enough time to deal with windows.

How to use?

  • env variable BITCOIN_BIN_PATH to your [bitcoin bin] path (see init.go
  • init.go
  • func.go
  • other funcs normally start with name which same as file preffix (eg:func in cli_wrap.go usually like cliXxx)

Notice:

  • Some behaviors may be effected by your local bitcoin.conf.

TODO

versions

Im considering keep same as bitcoincore version, currently 0.18.0.

LiCENSE

BSD 3-Clause License

Documentation

Index

Constants

View Source
const (
	RPCPortRegtest = 18443

	BitcoinBinPathEnv = "BITCOIN_BIN_PATH"

	CmdParamRegtest = "-regtest"
)

固定常量

View Source
const (
	NetRegtest = iota + 1
	NetTestnet3
	NetMainnet
)

some net id

Variables

View Source
var (
	BasePath      = "/Users/some_user/Applications/bitcoin/bin" //see init()
	CmdBitcoind   = BasePath + "/bitcoind"
	CmdBitcoinCli = BasePath + "/bitcoin-cli"
)

bitcoin bin path

View Source
var (
	PrintCmdOut = true
)

global vars

Functions

func IfOrString

func IfOrString(flag bool, trueS, falseS string) string

IfOrString if flag return s ,or s2

func ToJSON

func ToJSON(i interface{}) string

ToJSON .

func ToJSONIndent

func ToJSONIndent(i interface{}) string

ToJSONIndent .

Types

type Addr

type Addr struct {
	Address string
	Privkey string
	Pubkey  string
}

Addr .

func (*Addr) String

func (ad *Addr) String() string

type Cli

type Cli struct {
	IgnoreCliCmd bool //not print cmd
	IgnoreCliOut bool //not print cli out
	// contains filtered or unexported fields
}

Cli .

func NewCliFromRunningBitcoind

func NewCliFromRunningBitcoind(options RunningBitcoindOptions) (*Cli, error)

NewCliFromRunningBitcoind .

func RunBitcoind

func RunBitcoind(optionsPtr *RunOptions) (*Cli, func(), error)

RunBitcoind .

func (*Cli) AppendArgs

func (cli *Cli) AppendArgs(args ...string) []string

AppendArgs .

func (*Cli) Createmultisig

func (cli *Cli) Createmultisig(nRequired uint8, keys []string, addressType *string) (btcjson.CreateMultiSigResult, error)

CliCreatemultisig https://bitcoin.org/en/developer-reference#createmultisig

func (*Cli) Createrawtransaction

func (cli *Cli) Createrawtransaction(cmd btcjson.CreateRawTransactionCmd) (string, error)

CliCreaterawtransaction https://bitcoin.org/en/developer-reference#createrawtransaction

func (*Cli) Dumpprivkey

func (cli *Cli) Dumpprivkey(addr string) (string, error)

CliDumpprivkey https://bitcoin.org/en/developer-reference#dumpprivkey

func (*Cli) Generatetoaddress

func (cli *Cli) Generatetoaddress(nBlocks uint, address string, maxtriesPtr *uint) ([]string, error)

CliGeneratetoaddress https://bitcoin.org/en/developer-reference#generatetoaddress

func (*Cli) GetAddressInfo

func (cli *Cli) GetAddressInfo(addr string) (*btcjson.GetAddressInfoResp, error)

CliGetAddressInfo .

func (*Cli) GetWalletInfo

func (cli *Cli) GetWalletInfo() map[string]interface{}

CliGetWalletInfo .

func (*Cli) Getbalance

func (cli *Cli) Getbalance(_dummy *string, minconf *int, includeWatchonly *bool) (float64, error)

CliGetbalance .

func (*Cli) Getbestblockhash

func (cli *Cli) Getbestblockhash() (string, error)

CliGetbestblockhash .

func (*Cli) Getblockcount

func (cli *Cli) Getblockcount() (int, error)

CliGetblockcount .

func (*Cli) Getblockhash

func (cli *Cli) Getblockhash(height int) (string, error)

CliGetblockhash .

func (*Cli) Getnewaddress

func (cli *Cli) Getnewaddress(labelPtr, addressTypePtr *string) (hexedAddress string, err error)

CliGetnewaddress https://bitcoin.org/en/developer-reference#getnewaddress

func (*Cli) Getrawtransaction

func (cli *Cli) Getrawtransaction(cmd btcjson.GetRawTransactionCmd) (*btcjson.RawTx, error)

CliGetrawtransaction .

func (*Cli) Getreceivedbyaddress

func (cli *Cli) Getreceivedbyaddress(addr string, minconf int) (string, error)

CliGetreceivedbyaddress https://bitcoin.org/en/developer-reference#getreceivedbyaddress

func (*Cli) Gettransaction

func (cli *Cli) Gettransaction(txid string, includeWatchonly bool) (*btcjson.GetTransactionResult, error)

CliGettransaction https://bitcoin.org/en/developer-reference#gettransaction

func (*Cli) Importaddress

func (cli *Cli) Importaddress(cmd btcjson.ImportAddressCmd) error

CliImportaddress .

func (*Cli) Importprivkey

func (cli *Cli) Importprivkey(cmd btcjson.ImportPrivKeyCmd) error

CliImportprivkey https://bitcoin.org/en/developer-reference#importprivkey

func (*Cli) Importpubkey

func (cli *Cli) Importpubkey(cmd btcjson.ImportPubKeyCmd) error

CliImportpubkey https://bitcoin.org/en/developer-reference#importpubkey

func (*Cli) Listunspent

func (cli *Cli) Listunspent(minconf, maxconf int, addresses []string, includeUnsafe *bool, query *btcjson.ListUnspentQueryOptions) ([]btcjson.ListUnspentResult, error)

CliListunspent https://bitcoin.org/en/developer-reference#listunspent

func (*Cli) Sendrawtransaction

func (cli *Cli) Sendrawtransaction(cmd btcjson.SendRawTransactionCmd) (string, error)

CliSendrawtransaction https://bitcoin.org/en/developer-reference#sendrawtransaction

func (*Cli) Sendtoaddress

func (cli *Cli) Sendtoaddress(cmd *btcjson.SendToAddressCmd) (string, error)

CliSendtoaddress https://bitcoin.org/en/developer-reference#sendtoaddress

func (*Cli) ToolGetSomeAddrs

func (cli *Cli) ToolGetSomeAddrs(n int) ([]Addr, error)

CliToolGetSomeAddrs 一次获取n个地址(包含pub-priv key)

func (*Cli) Validateaddress

func (cli *Cli) Validateaddress(addr string) (ValidateAddressResp, error)

CliValidateaddress .

type RunOptions

type RunOptions struct {
	NewTmpDir bool //创建一个临时的目录,并在完成后立即删除这个目录
	RPCPort   uint
	Args      []string
}

RunOptions .

type RunningBitcoindOptions

type RunningBitcoindOptions struct {
	RPCPort     uint
	RPCUser     string
	RPCPassword string
	DataDir     string
	NetID       uint32
}

RunningBitcoindOptions .

type ValidateAddressResp

type ValidateAddressResp struct {
	Isvalid      bool   `json:"isvalid"`
	Address      string `json:"address"`
	ScriptPubKey string `json:"scriptPubKey"`
	Isscript     bool   `json:"isscript"`
	Iswitness    bool   `json:"iswitness"`

	WitnessVersion string `json:"witness_version"` // version   (numeric, optional) The version number of the witness program
	WitnessProgram string `json:"witness_program"` // "hex"     (string, optional) The hex value of the witness program
}

ValidateAddressResp .

Directories

Path Synopsis
Package btcjson provides primitives for working with the bitcoin JSON-RPC API.
Package btcjson provides primitives for working with the bitcoin JSON-RPC API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL