Binance-API
view release on metacpan or search on metacpan
lib/Binance/API.pm view on Meta::CPAN
use Binance::Exception::Parameter::Required;
our $VERSION = '1.09';
=head1 NAME
Binance::API -- Perl implementation for Binance API
=head1 DESCRIPTION
This module provides a Perl implementation for Binance API
Binance API documentation: C<https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md>.
ENUM definitions:
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#enum-definitions
=head1 SYNOPSIS
use Binance::API;
my $api = Binance::API->new(
apiKey => 'my_api_key',
secretKey => 'my_secret_key',
);
my $ticker = $api->ticker( symbol => 'ETHBTC' );
=head1 METHODS
=cut
=head2 new
my $api = Binance::API->new(
apiKey => 'my_api_key',
secretKey => 'my_secret_key',
);
Instantiates a new C<Binance::API> object
B<PARAMETERS>
=over
=item apiKey
[OPTIONAL] Your Binance API key.
=item secretKey
[OPTIONAL] Your Binance API secret key.
=item recvWindow
[OPTIONAL] Number of milliseconds the request is valid for. Applies only in
signed requests.
=item baseUrl
[OPTIONAL] Base URL of Binance endpoint.
=item logger
[OPTIONAL] See L<Binance::API::Logger/new>
=back
B<RETURNS>
A C<Binance::API> object.
=cut
sub new {
my ($class, %params) = @_;
my $logger = Binance::API::Logger->new($params{logger});
my $ua = Binance::API::Request->new(
apiKey => $params{apiKey},
secretKey => $params{secretKey},
recvWindow => $params{recvWindow},
baseUrl => $params{baseUrl},
logger => $logger,
);
my $self = {
ua => $ua,
logger => $logger,
};
bless $self, $class;
}
=head2 ping
$api->ping();
Test connectivity to the Rest API
B<PARAMETERS>
=over
=item Takes no parameters.
=back
B<RETURNS>
1 if successful, otherwise 0
=cut
sub ping {
return keys %{$_[0]->ua->get('/api/v3/ping')} == 0 ? 1 : 0;
}
=head2 time
lib/Binance/API.pm view on Meta::CPAN
=head2 delete_user_data_stream
$api->delete_user_data_stream();
Close out a user data stream.
B<PARAMETERS>
=over
=item listenKey
[REQUIRED]
=back
B<RETURNS>
An empty HASHref
{}
=cut
sub delete_user_data_stream {
my ($self, %params) = @_;
unless ($params{'listenKey'}) {
$self->log->error('Parameter "listenKey" required');
Binance::Exception::Parameter::Required->throw(
error => 'Parameter "listenKey" required',
parameters => ['listenKey']
);
}
my $query = {
listenKey => $params{'listenKey'},
};
return $self->ua->delete('/api/v3/userDataStream', { query => $query } );
}
=head2 log
$api->log->warn("This is a warning");
B<PARAMETERS>
=over
=item Takes no parameters.
=back
B<RETURNS>
An instance of L<Binance::API::Logger>.
=cut
sub log { return $_[0]->{logger}; }
=head2 ua
$api->ua->get('/binance/endpoint');
B<PARAMETERS>
=over
=item Takes no parameters.
=back
B<RETURNS>
An instance of L<Binance::API::Request>.
=cut
sub ua { return $_[0]->{ua}; }
1;
( run in 0.848 second using v1.01-cache-2.11-cpan-39bf76dae61 )