view release on metacpan or search on metacpan
WebService::Cryptsy - implementation of www.cryptsy.com API
# SYNOPSIS
use WebService::Cryptsy;
use Data::Dumper;
my $cryp = WebService::Cryptsy->new(
public_key => 'YOUR PUBLICE KEY',
private_key => 'YOUR PRIVATE KEY',
);
print Dumper( $cryp->getinfo || $cryp->error ) . "\n";
print Dumper( $cryp->marketdatav2 || $cryp->error ) . "\n";
my ( $currency_id, $currency_code ) = ( 3, 'BTC' );
my $generated_address
= $cryp->generatenewaddress( $currency_id, $currency_code )
or die "Error: " . $cryp->error;
**IMPORTANT!!! Ensure to toggle the "API Disabled"
button into the "on" position, otherwise your API will be off and this
module will give a confusing error message.**
# CONSTRUCTOR
## `new`
my $cryp = WebService::Cryptsy->new(
public_key => 'YOUR PUBLIC KEY',
private_key => 'YOUR PRIVATE KEY',
timeout => 30,
);
# or if you're only going to use the public methods:
my $cryp = WebService::Cryptsy->new;
Creates and returns a new `WebService::Cryptsy` object. **Takes**
three optional arguments as key/value pairs. The
`public_key` and `private_key` are optional only for the
_Public Methods_ of the API. They both are required for calling the
_Authenticated Methods_. To obtain your keys, see the ["GETTING API KEY"](#getting-api-key)
section above.
### `public_key`
my $cryp = WebService::Cryptsy->new(
public_key => '479c5eee116f8f5972bdaf12dd0a3f82562c8a7c',
private_key => 'b408e899526142eee13304669a657c8782435ccda2f65dbea05270fe8dfa5d3d2ef7eb4812ce1c35',
);
This is the key from the _Public Key_ box on
[Cryptsy's settings page](https://www.cryptsy.com/users/settings).
### `private_key`
my $cryp = WebService::Cryptsy->new(
public_key => '479c5eee116f8f5972bdaf12dd0a3f82562c8a7c',
private_key => 'b408e899526142eee13304669a657c8782435ccda2f65dbea05270fe8dfa5d3d2ef7eb4812ce1c35',
);
This is the key from the _Private Key_ box on
[Cryptsy's settings page](https://www.cryptsy.com/users/settings).
### `timeout`
my $cryp = WebService::Cryptsy->new(
timeout => 30,
);
examples/api.pl view on Meta::CPAN
use strict;
use warnings;
# VERSION
use WebService::Cryptsy;
use lib qw(lib ../lib);
my $cryp = WebService::Cryptsy->new(
public_key => 'YOUR PUBLIC KEY',
private_key => 'YOUR PRIVATE KEY',
);
my $market_data = $cryp->marketdatav2
or die "Error fetching data: " . $cryp->error;
my $markets = $market_data->{markets};
printf "%s: %f\n", @{ $markets->{$_} }{qw/label lasttradeprice/}
for sort keys %$markets;
lib/WebService/Cryptsy.pm view on Meta::CPAN
use LWP::UserAgent;
use Digest::SHA qw/hmac_sha512_hex/;
use HTTP::Request::Common qw/POST/;
use constant API_POST_URL => 'https://api.cryptsy.com/api';
use constant API_GET_URL => 'http://pubapi.cryptsy.com/api.php';
use overload '""' => sub { shift->error };
has public_key => ( is => 'ro', );
has private_key => ( is => 'ro', );
has error => ( is => 'rw', );
has timeout => ( is => 'rw', default => 60 );
########## API METHODS ##########
sub marketdata { return shift->_api_query('marketdata' ); }
sub marketdatav2 { return shift->_api_query('marketdatav2' ); }
sub orderdata { return shift->_api_query('orderdata' ); }
sub getinfo { return shift->_api_query('getinfo' ); }
sub getmarkets { return shift->_api_query('getmarkets' ); }
sub mytransactions { return shift->_api_query('mytransactions' ); }
lib/WebService/Cryptsy.pm view on Meta::CPAN
}
else {
my $req = POST(
API_POST_URL, [
%req_args,
method => $method,
nonce => time(),
]
);
my $digest = hmac_sha512_hex( $req->content, $self->private_key );
$req->header( Sign => $digest, );
$req->header( Key => $self->public_key, );
$res = $ua->request( $req );
}
unless ( $res->is_success ) {
$self->error('Network error: ' . $res->status_line );
return;
}
lib/WebService/Cryptsy.pm view on Meta::CPAN
WebService::Cryptsy - implementation of www.cryptsy.com API
=head1 SYNOPSIS
use WebService::Cryptsy;
use Data::Dumper;
my $cryp = WebService::Cryptsy->new(
public_key => 'YOUR PUBLICE KEY',
private_key => 'YOUR PRIVATE KEY',
);
print Dumper( $cryp->getinfo || $cryp->error ) . "\n";
print Dumper( $cryp->marketdatav2 || $cryp->error ) . "\n";
my ( $currency_id, $currency_code ) = ( 3, 'BTC' );
my $generated_address
= $cryp->generatenewaddress( $currency_id, $currency_code )
or die "Error: " . $cryp->error;
lib/WebService/Cryptsy.pm view on Meta::CPAN
B<IMPORTANT!!! Ensure to toggle the "API Disabled"
button into the "on" position, otherwise your API will be off and this
module will give a confusing error message.>
=head1 CONSTRUCTOR
=head2 C<new>
my $cryp = WebService::Cryptsy->new(
public_key => 'YOUR PUBLIC KEY',
private_key => 'YOUR PRIVATE KEY',
timeout => 30,
);
# or if you're only going to use the public methods:
my $cryp = WebService::Cryptsy->new;
Creates and returns a new C<WebService::Cryptsy> object. B<Takes>
three optional arguments as key/value pairs. The
C<public_key> and C<private_key> are optional only for the
I<Public Methods> of the API. They both are required for calling the
I<Authenticated Methods>. To obtain your keys, see the L<GETTING API KEY>
section above.
=head3 C<public_key>
my $cryp = WebService::Cryptsy->new(
public_key => '479c5eee116f8f5972bdaf12dd0a3f82562c8a7c',
private_key => 'b408e899526142eee13304669a657c8782435ccda2f65dbea05270fe8dfa5d3d2ef7eb4812ce1c35',
);
This is the key from the I<Public Key> box on
L<Cryptsy's settings page|https://www.cryptsy.com/users/settings>.
=head3 C<private_key>
my $cryp = WebService::Cryptsy->new(
public_key => '479c5eee116f8f5972bdaf12dd0a3f82562c8a7c',
private_key => 'b408e899526142eee13304669a657c8782435ccda2f65dbea05270fe8dfa5d3d2ef7eb4812ce1c35',
);
This is the key from the I<Private Key> box on
L<Cryptsy's settings page|https://www.cryptsy.com/users/settings>.
=head3 C<timeout>
my $cryp = WebService::Cryptsy->new(
timeout => 30,
);
t/02-module-methods.t view on Meta::CPAN
use WebService::Cryptsy;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
$cryp->createorder(
68,
'Sell',
'100',
'199',
);
t/API/authenticated/01-getinfo.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
diag "\n###############################################################\n"
. "If you see a bunch of 'Use of uninitialized value "
. "in string eq at .... Test/Deep/ArrayEach',"
. " it's fine; don't worry about it"
. "\n#############################################################\n";
my $data = $cryp->getinfo;
t/API/authenticated/02-getmarkets.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->getmarkets;
if ( $data ) {
cmp_deeply(
$data,
array_each(
{
t/API/authenticated/03-mytransactions.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->mytransactions;
#####
##### Don't have any transactions, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/04-markettrades.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->markettrades( 68 );
if ( $data ) {
cmp_deeply(
$data,
array_each(
{
t/API/authenticated/05-marketorders.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->marketorders( 68 );
if ( $data ) {
cmp_deeply(
$data,
{
'sellorders' => any(
t/API/authenticated/06-mytrades.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->mytrades( 68, 200 );
#####
##### Don't have any transactions, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/07-allmytrades.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->allmytrades;
#####
##### Don't have any transactions, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/08-myorders.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->myorders;
#####
##### Don't have any transactions, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/09-depth.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->depth( 68 );
if ( $data ) {
cmp_deeply(
$data,
{
'buy' => any(
t/API/authenticated/10-allmyorders.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->allmyorders;
#####
##### Don't have any transactions, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/11-createorder.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
#####
##### Since we can't really create orders with this account,
##### let's do some extra error checking.
#####
$cryp->createorder(
68,
'Sell',
t/API/authenticated/12-cancelmarketorders.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->cancelmarketorders( 68 );
#####
##### Don't have any orders, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/13-cancelallorders.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->cancelallorders;
#####
##### Don't have any orders, so we'll get an empty array
#####
if ( $data ) {
cmp_deeply(
t/API/authenticated/14-calculatefees.t view on Meta::CPAN
use WebService::Cryptsy;
use Data::Dumper;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->calculatefees(
'Sell',
'20',
'199',
);
if ( $data ) {
t/API/authenticated/15-generatenewaddress.t view on Meta::CPAN
plan tests => 3;
use WebService::Cryptsy;
open my $fh, '<', 't/API/authenticated/KEYS'
or BAIL_OUT("Can't get the keys: $!");
chomp( my @keys = <$fh> );
my $cryp = WebService::Cryptsy->new(
public_key => $keys[0],
private_key => $keys[1],
timeout => 10,
);
my $data = $cryp->generatenewaddress(
3,
'BTC',
);
if ( $data ) {
cmp_deeply(