Module Bitcoin

module Bitcoin: sig .. end
OCaml interface to the official Bitcoin client API.

exception Unspecified_connection
Raised when connection parameter is not given and no default connection exists.
exception Bitcoin_error of int * string
Error reported by the Bitcoin client.
exception Internal_error of int * string
Unexpected response from the Bitcoin client
exception Httpclient_error of exn
Connection error reported by the Bitcoin.HTTPCLIENT
type address_t = string 
Bitcoin address (hash of the public portion of public/private ECDSA keypair)
type account_t = [ `Default | `Named of string ] 
Besides the default account, one may also create named accounts
type amount_t = int64 
Amount in BTC, represented as a multiple of Bitcoin's base unit (= 10 nanoBTC).
type txid_t = string 
Transaction identifier
type txoutput_t = txid_t * int 
Transaction output
type blkhash_t = string 
Block hash
type priv_t = string 
Private portion of public/private ECDSA keypair
type sig_t = string 
Message signature
type hextx_t = string 
Hex representation of raw transaction
type hexspk_t = string 
Hex representation of script public key
type hexblk_t = string 
Hex representation of block data
type hexwork_t = string 
Hex representation of mining work data
type multi_t = [ `Address of address_t | `Hexspk of hexspk_t ] 
Multi-signature addresses may take either format
type node_t = string 
Node representation
type assoc_t = (string * Yojson.Safe.json) list 
Association list
type conn_t = {
   inet_addr : Unix.inet_addr;
   host : string;
   port : int;
   username : string;
   password : string;
}
module type HTTPCLIENT = sig .. end
Interface that any module offering HTTP POST client calls must obey.
module type CONNECTION = sig .. end
Module encapsulating all connection information.
module type ENGINE = sig .. end
Actual engine offering the Bitcoin API.
val amount_of_float : float -> amount_t
Converts a BTC quantity expressed as a float into its Bitcoin.amount_t representation.
val float_of_amount : amount_t -> float
Converts a BTC quantity expressed as an Bitcoin.amount_t into its float representation.
module Make: 
functor (Httpclient : HTTPCLIENT) ->
functor (Connection : CONNECTION) -> ENGINE with type 'a monad_t = 'a Httpclient.Monad.t
Functor that takes a concrete implementation of a Bitcoin.HTTPCLIENT and actual Bitcoin.CONNECTION information, and creates a module with signature Bitcoin.ENGINE offering an API for communicating with a Bitcoin client.