App-cryp-exchange
view release on metacpan or search on metacpan
lib/App/cryp/Role/Exchange.pm view on Meta::CPAN
}
sub to_canonical_pair {
my ($self, $pair) = @_;
my ($cur1, $cur2) = $pair =~ /([\w\$]+)[\W_]([\w\$]+)/
or die "Invalid pair '$pair'";
sprintf "%s/%s",
$self->to_canonical_currency($cur1),
$self->to_canonical_currency($cur2);
}
sub to_native_pair {
my ($self, $pair) = @_;
my ($cur1, $cur2) = $pair =~ /(\w+)[\W_](\w+)/
or die "Invalid pair '$pair'";
sprintf "%s%s%s",
$self->to_native_currency($cur1),
$self->data_native_pair_separator,
$self->to_native_currency($cur2);
}
1;
# ABSTRACT: Role for interacting with an exchange
__END__
=pod
=encoding UTF-8
=head1 NAME
App::cryp::Role::Exchange - Role for interacting with an exchange
=head1 VERSION
This document describes version 0.012 of App::cryp::Role::Exchange (from Perl distribution App-cryp-exchange), released on 2021-05-26.
=head1 DESCRIPTION
This role describes the common API for interacting with an exchange that all
C<App::cryp::Exchange::*> modules follow.
=head1 ENVELOPED RESULT
All methods, unless specified otherwise, must return enveloped result:
[$status, $reason, $payload, \%extra]
This result is analogous to an HTTP response; in fact C<$status> mostly uses
HTTP response codes. C<$reason> is analogous to HTTP status message. C<$payload>
is the actual content (optional if C<$status> is error status). C<%extra> is
optional and analogous to HTTP response headers to specify flags or attributes
or other metadata.
Some examples of enveloped result:
[200, "OK", ["BTC/USD", "ETH/BTC"]]
[404, "Not found"]
For more details about enveloped result, see L<Rinci::function>.
=head1 PROVIDED METHODS
=head2 to_canonical_currency
Usage:
$xchg->to_canonical_currency($cur) => str
Convert native currency code to canonical/standardized currency code. Canonical
codes are listed in L<CryptoCurrency::Catalog>.
=head2 to_native_currency
Usage:
$xchg->to_native_currency($cur) => str
Convert canonical/standardized currency code to exchange-native currency code.
Canonical codes are listed in L<CryptoCurrency::Catalog>.
=head2 to_canonical_pair
Usage:
$xchg->to_canonical_pair($pair) => str
=head2 to_native_pair
Usage:
$xchg->to_native_pair($pair) => str
=head1 REQUIRED METHODS
=head2 cancel_order
Usage:
$xchg->cancel_order(%args) => [$status, $reason, $payload, \%resmeta]
Cancel an open order.
Known arguments (C<*> marks required arguments):
=over
=item * type*
=item * pair*
=item * order_id*
=back
=head2 create_limit_order
Usage:
( run in 0.825 second using v1.01-cache-2.11-cpan-5a3173703d6 )