Skip to content

Latest commit

 

History

History
59 lines (51 loc) · 1.87 KB

README.md

File metadata and controls

59 lines (51 loc) · 1.87 KB

go-monero

GoDoc

This package provides Golang bindings for monero-wallet-rpc calls. It also contains functions for XMR/atomic unit conversion.

Unlike other wallet RPC bindings, this package is actively maintained and it is complete with all the RPC methods. While using this package for our other project MoneroPay, we have realized that all the other forks don't handle optional parameters correctly and send them anyway, therefore causing bugs.

Installation

go get -u gitlab.com/moneropay/go-monero/walletrpc

Example

monero-wallet-rpc --detach \
	--rpc-bind-port 18083 \
	--wallet-file /home/moneropay/wallet \
	--password s3cure \
	--daemon-login kernal:s3cure \
	--rpc-login kernal:s3cure
package main

import (
	"context"
	"fmt"
	"log"
	"net/http"

	"github.com/gabstv/httpdigest"
	"gitlab.com/moneropay/go-monero/walletrpc"
)

func main() {
	// username: kernal, password: s3cure
	client := walletrpc.New(walletrpc.Config{
		Address: "http://127.0.0.1:18083/json_rpc",
		Client: &http.Client{
			Transport: httpdigest.New("kernal", "s3cure"), // Remove if no auth.
		},
	})
	resp, err := client.GetBalance(context.Background(), &walletrpc.GetBalanceRequest{})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Total balance:", walletrpc.XMRToDecimal(resp.Balance))
	fmt.Println("Unlocked balance:", walletrpc.XMRToDecimal(resp.UnlockedBalance))
}

Contributing

Submit issues and merge requests only on GitLab.
Alternatively, you can send us patch files via email at moneropay@kernal.eu.
For development related discussions and questions join #moneropay:kernal.eu.