/go-cliche

golang library for starting and interacting with cliche

Primary LanguageGoApache License 2.0Apache-2.0

go-cliche

This is a small library that will start cliché and communicate with it via STDIN and STDOUT, allowing you to send commands, receive replies and also receive events.

See the example below or read the full API docs for more (not much more).

Examples

Starting it:

c := &cliche.Control{
	DataDir: ".",
    BinaryPath: "/usr/local/bin/cliche",
	// or JARPath: "/home/name/Downloads/cliche.jar", (requires java)
}

err := c.Start()
if err != nil {
	log.Fatal(err)
}

Getting general information:

info, err := c.GetInfo()
if err != nil {
	log.Fatal(err)
}
log.Print(info)

Listening for events

go func () {
	for invpaid := range c.IncomingPayments {
		log.Printf("got payment: %d msat", invpaid.Msatoshi)
    }
}

Creating an invoice

inv, err := c.CreateInvoice(cliche.CreateInvoiceParams{
	Msatoshi: 100000, Description: "test invoice"})
if err != nil {
	log.Fatal(err)
}
log.Print(inv)

Making an arbitrary call

resp, err := c.Call("request-hc", map[string]interface{}{
	"pubkey": "02cd1b7bc418fac2dc99f0ba350d60fa6c45fde5ab6017ee14df6425df485fb1dd",
	"host":   "134.209.228.207",
	"port":   80,
})
# resp will be json.RawMessage aka []byte

Other commands are available in the API docs.