NAME
Finance::GDAX::API::Account - Work with GDAX Accounts
SYNOPSIS
use Finance::GDAX::API::Account;
$account = Finance::GDAX::API::Account->new(
key => 'wowihefoiwhoihw',
secret => 'woihoip2hf23908hf32hf2h',
passphrase => 'woiefhvbno3iurbnv9p4h49h');
# List all accounts
$accounts = $account->get_all;
if ($account->error) {
die 'There was an error '.$account->error;
}
foreach (@$accounts) {
print $$_{currency}." = ".$$_{balance};
}
# List a single account
$info = $account->get("wiejfwef-237897-wefhwe-wef");
say 'Balance is ' . $$info{balance} . $$info{currency};
DESCRIPTION
Creates a GDAX account object to examine accounts.
See Finance::GDAX::API for details on API key requirements that need to be passed in.
The HTTP response code can be accessed via the "response_code" attribute, and if the request resulted in a response code greater than or equal to 400, then the "error" attribute will be set to the error message returned by the GDAX servers.
METHODS
get_all
Returns an array of hashes, with each hash representing account details. According to the GDAX API, currently these hashes will contain the following keys and data:
The following represents the data structure from their current API docs:
[
{
"id": "71452118-efc7-4cc4-8780-a5e22d4baa53",
"currency": "BTC",
"balance": "0.0000000000000000",
"available": "0.0000000000000000",
"hold": "0.0000000000000000",
"profile_id": "75da88c5-05bf-4f54-bc85-5c775bd68254"
},
{
"id": "e316cb9a-0808-4fd7-8914-97829c1925de",
"currency": "USD",
"balance": "80.2301373066930000",
"available": "79.2266348066930000",
"hold": "1.0035025000000000",
"profile_id": "75da88c5-05bf-4f54-bc85-5c775bd68254"
}
]
id Account ID
balance total funds in the account
holds funds on hold (not available for use)
available funds available to withdraw* or trade
margin_enabled [margin] true if the account belongs to margin profile
funded_amount [margin] amount of outstanding funds currently credited to
the account
default_amount [margin] amount defaulted on due to not being able to pay
back funding
However, this does not appear to be exactly what they are sending now.
get
$account_id
The get method requires passing an account id and returns a hash of the account information. Currently the GDAX API docs say they are:
The following represents the data structure from their current API docs:
{
"id": "a1b2c3d4",
"balance": "1.100",
"holds": "0.100",
"available": "1.00",
"currency": "USD"
}
id Account ID
balance total funds in the account
holds funds on hold (not available for use)
available funds available to withdraw* or trade
margin_enabled [margin] true if the account belongs to margin profile
funded_amount [margin] amount of outstanding funds currently credited to
the account
default_amount [margin] amount defaulted on due to not being able to pay
back funding
history
$account_id
The history method returns an array of hashes representing the history of transactions on the specified account_id.
The limit is 100 transactions - no paging has been implemented in this API, through the GDAX API does support paging apparently.
The following represents the data structure from their current API docs:
[
{
"id": "100",
"created_at": "2014-11-07T08:19:27.028459Z",
"amount": "0.001",
"balance": "239.669",
"type": "fee",
"details": {
"order_id": "d50ec984-77a8-460a-b958-66f114b0de9b",
"trade_id": "74",
"product_id": "BTC-USD"
}
}
]
With different "type"'s meaning different "details" -- and those types are:
transfer Funds moved to/from Coinbase to GDAX
match Funds moved as a result of a trade
fee Fee as a result of a trade
rebate Fee rebate as per our fee schedule
holds
$account_id
The holds method returns an array of hashes representing the holds placed on the $account_id account, which happen due to active orders or pending withdrawls.
The following represents the data structure from their current API docs:
[
{
"id": "82dcd140-c3c7-4507-8de4-2c529cd1a28f",
"account_id": "e0b3f39a-183d-453e-b754-0c13e5bab0b3",
"created_at": "2014-11-06T10:34:47.123456Z",
"updated_at": "2014-11-06T10:40:47.123456Z",
"amount": "4.23",
"type": "order",
"ref": "0a205de4-dd35-4370-a285-fe8fc375a273",
}
]
AUTHOR
Mark Rushing <mark@orbislumen.net>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Home Grown Systems, SPC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.