go-monero-rpc-client

module
v0.0.0-...-a276ce2 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2024 License: MIT

README

Go Monero RPC Client

ATTENTION

Due to a data leakage of sensitive information, a hard push had to be made, which resulted in a new git history.

What this means for you: If you already forked or cloned this repository and should you see that pulling this repo to fetch/merge new changes fail, you are affected. YOU NEED TO !!!REBASE, NOT MERGE!!! master to your existing local repository. Or, if you havent made any local changes, you can remove the whole repository and clone this repository again.

Nothing has changed in the code or in the library itself. Everything works as before the incident.

Our sincere apologies for the inconvenience to all collaborators and users.


Monero Gopher

A client implementation for the Monero wallet and daemon RPC written in go. This package is inspired by https://github.com/gabstv/go-monero.

Wallet RPC Client

GoDoc

Monero RPC Version

The go-monero-rpc-client/wallet package is the RPC client for version v1.3 of the Monero Wallet RPC.

Installation
go get -u github.com/monero-ecosystem/go-monero-rpc-client
Spawn the monero-wallet-rpc daemon (without rpc login):
./monero-wallet-rpc --wallet-file /home/$user/stagenetwallet/stagenetwallet --daemon-address pool.cloudissh.com:38081 --stagenet --rpc-bind-port 6061 --password 'mystagenetwalletpassword' --disable-rpc-login

You can use our remote node for the stagenet running at pool.cloudissh.com port 38081.

Go code:
package main

import (
  "encoding/json"
  "fmt"
  "log"

  "github.com/monero-ecosystem/go-monero-rpc-client/wallet"
)

func checkerr(err error) {
  if err != nil {
    log.Panic(err)
  }
}

func main() {
  // Start a wallet client instance
  client := wallet.New(wallet.Config{
    Address: "http://127.0.0.1:6061/json_rpc",
  })

  // check wallet balance
  resp, err := client.GetBalance(&wallet.RequestGetBalance{AccountIndex: 0})
  checkerr(err)
  res, _ := json.MarshalIndent(resp, "", "\t")
  fmt.Print(string(res))

  // get incoming transfers
  resp1, err := client.GetTransfers(&wallet.RequestGetTransfers{
    AccountIndex: 0,
    In:           true,
  })
  checkerr(err)
  for _, in := range resp1.In {
    res, _ := json.MarshalIndent(in, "", "\t")
    fmt.Print(string(res))
  }
}
Spawn the monero-wallet-rpc daemon (with rpc login):
./monero-wallet-rpc --wallet-file /home/$user/stagenetwallet/stagenetwallet --daemon-address pool.cloudissh.com:38081 --stagenet --rpc-bind-port 6061 --password 'mystagenetwalletpassword' --rpc-login test:testpass
Go code:
package main

import (
  "encoding/json"
  "fmt"
  "log"

  "github.com/monero-ecosystem/go-monero-rpc-client/wallet"
)

func checkerr(err error) {
  if err != nil {
    log.Panic(err)
  }
}

func main() {
  t := httpdigest.New("test", "testpass")

  // Start a wallet client instance
  client := wallet.New(wallet.Config{
    Address: "http://127.0.0.1:6061/json_rpc",
    Transport: t,
  })

  // check wallet balance
  resp, err := client.GetBalance(&wallet.RequestGetBalance{AccountIndex: 0})
  checkerr(err)
  res, _ := json.MarshalIndent(resp, "", "\t")
  fmt.Print(string(res))

  // get incoming transfers
  resp1, err := client.GetTransfers(&wallet.RequestGetTransfers{
    AccountIndex: 0,
    In:           true,
  })
  checkerr(err)
  for _, in := range resp1.In {
    res, _ := json.MarshalIndent(in, "", "\t")
    fmt.Print(string(res))
  }
}

Daemon RPC Client

As of now, only the wallet RPC has been implemented. The daemon RPC will follow very soon.

Contribution

  • You can fork this, extend it and contribute back.
  • You can contribute with pull requests.

Donations

I love Monero (XMR) and building applications for and on top of Monero.

You can make me happy by donating Monero to the following address:

89woiq9b5byQ89SsUL4Bd66MNfReBrTwNEDk9GoacgESjfiGnLSZjTD5x7CcUZba4PBbE3gUJRQyLWD4Akz8554DR4Lcyoj

LICENSE

MIT License

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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