package bitcoin

  1. Overview
  2. Docs

OCaml interface to the official Bitcoin client API.

Exceptions

exception Unspecified_connection
exception Bitcoin_error of int * string
exception Internal_error of int * string
exception Httpclient_error of exn

Type definitions

type address_t = string
type account_t = [
  1. | `Default
  2. | `Named of string
]
type amount_t = int64
type txid_t = string
type txoutput_t = txid_t * int
type blkhash_t = string
type priv_t = string
type sig_t = string
type hextx_t = string
type hexspk_t = string
type hexblk_t = string
type hexwork_t = string
type multi_t = [
  1. | `Address of address_t
  2. | `Hexspk of hexspk_t
]
type node_t = string
type assoc_t = (string * Yojson.Safe.t) list
type conn_t = {
  1. inet_addr : Unix.inet_addr;
  2. host : string;
  3. port : int;
  4. username : string;
  5. password : string;
}

Public module types

module type HTTPCLIENT = sig ... end

Interface that any module offering HTTP POST client calls must obey. Note that the module may require POST calls to be wrapped under a custom monad, which must also be provided (use the identity monad if no actual monad is required).

module type CONNECTION = sig ... end

Module encapsulating all connection information.

module type ENGINE = sig ... end

Actual engine offering the Bitcoin API.

Public functions and values

val amount_of_float : float -> amount_t

Converts a BTC quantity expressed as a float into its amount_t representation.

val float_of_amount : amount_t -> float

Converts a BTC quantity expressed as an amount_t into its float representation.

Public functors

Functor that takes a concrete implementation of a HTTPCLIENT and actual CONNECTION information, and creates a module with signature ENGINE offering an API for communicating with a Bitcoin client.

OCaml

Innovation. Community. Security.