Skip to content

A simple wrapper for the Bitcoin RPC written in Typescript

License

Notifications You must be signed in to change notification settings

p2pderivatives/bitcoin-simple-rpc

Repository files navigation

Bitcoin simple RPC

This library is a very simple wrapper for communicating with a bitcoind instance through the JSON-RPC.

Usage

const client = new Client({
  baseURL: 'http://localhost:18443/',
  auth: { username: 'user', password: 'pass' },
})
const address = await client.getNewAddress()

Usage with Tor

The library can easily be used to communicate with a bitcoind node over Tor using a socks5 proxy. For example with sock-proxy-agent:

const proxyOptions = 'socks5h://127.0.0.1:9050'
const httpsAgent = new SocksProxyAgent(proxyOptions)
const config : ClientOption = {
  baseURL: 'http://onionaddress.onion:port',
  auth: {
    username: 'user',
    password: 'password',
  },
  httpAgent: httpsAgent,
}
const client = new Client(config)

Error handling

The client throws four types of errors.

BitcoinRpcError

This indicates that an error was returned by the bitcoind instance. The list of error code is available in the RPCErrorCode enum.

ConnectionError

This usually indicates that a connection to the specified address could not be established.

AuthError

This indicates that the credential provided were not valid.

UnknownError

This indicates that something unexpected happened.

About

A simple wrapper for the Bitcoin RPC written in Typescript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages