Finance::Bitcoin::API - wrapper for the Bitcoin JSON-RPC API
use Finance::Bitcoin::API; my $uri = 'http://user:email@example.com:8332/'; my $api = Finance::Bitcoin::API->new( endpoint => $uri ); my $balance = $api->call('getbalance'); print $balance;
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 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 );
Get/set the endpoint URL.
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.
Returns the error message (if any) that resulted from the last
Please report any bugs to http://rt.cpan.org/.
Toby Inkster <firstname.lastname@example.org>.
Copyright 2010, 2011, 2013, 2014 Toby Inkster
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.