Toby Inkster > Finance-Bitcoin-0.902 > Finance::Bitcoin::API

Download:
Finance-Bitcoin-0.902.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.902   Source  

NAME ^

Finance::Bitcoin::API - wrapper for the Bitcoin JSON-RPC API

SYNOPSIS ^

 use Finance::Bitcoin::API;
 
 my $uri     = 'http://user:password@127.0.0.1:8332/';
 my $api     = Finance::Bitcoin::API->new( endpoint => $uri );
 my $balance = $api->call('getbalance');
 print $balance;

DESCRIPTION ^

This module provides a low-level API for accessing a running Bitcoin instance.

new( %args )

Constructor. %args is a hash of named arguments. You need to provide the 'endpoint' URL as an argument.

call( $method, @params )

Call a method. If successful returns the result; otherwise returns undef.

Caveat: The protocol used to communicate with the Bitcoin daemon is JSON-RPC based. JSON differentiates between numbers and strings: "1" and 1 are considered to be different values. Perl (mostly) does not. Thus the JSON module often needs to guess whether a parameter (i.e. an item in @params) is supposed to be a number or a string. If it guesses incorrectly, this may result in the wrong JSON getting sent to the Bitcoin daemon, and the daemon thus returning an error. To persuade JSON to encode a value as a number, add zero to it; to persuade JSON to encode a value as a string, interpolate it. For example:

   $api->call(
      "sendfrom",
      "$from_adr",  # Str
      "$to_adr",    # Str
      $btc + 0,     # Num
      6,            # literal: perl already knows this is a Num
   );
endpoint

Get/set the endpoint URL.

jsonrpc

Retrieve a reference to the JSON::RPC::Legacy::Client object being used. In particular $api->jsonrpc->ua can be useful if you need to alter timeouts or HTTP proxy settings.

error

Returns the error message (if any) that resulted from the last call.

BUGS ^

Please report any bugs to http://rt.cpan.org/.

SEE ALSO ^

Finance::Bitcoin.

http://www.bitcoin.org/.

AUTHOR ^

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT ^

Copyright 2010, 2011, 2013, 2014 Toby Inkster

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

DISCLAIMER OF WARRANTIES ^

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

syntax highlighting: