Finance::Bitcoin::API - wrapper for the Bitcoin JSON-RPC API
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;
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".
Please report any bugs to <http://rt.cpan.org/>.
Finance::Bitcoin.
<http://www.bitcoin.org/>.
Toby Inkster <tobyink@cpan.org>.
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.
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.