openclerk/exchanges
A library for accessing live exchange market data for many different exchanges,
used by Openclerk and live on CryptFolio., (*1)
This extends on the abstract currency definitions provided by
openclerk/currencies., (*2)
Installing
Include openclerk/exchanges as a requirement in your project composer.json,
and run composer update to install it into your project:, (*3)
{
"require": {
"openclerk/exchanges": "dev-master"
}
}
Using
Get the markets supported by an exchanges:, (*4)
use \Monolog\Logger;
$logger = new Logger("log");
$exchange = new \Exchange\BTCe();
print_r($exchange->fetchMarkets($logger));
Get the current trade values for an exchange market, which will always include
at least last_trade, and may include bid, ask, high, low, volume, avg
and/or vwap:, (*5)
$exchange = new \Exchange\BitNZ();
print_r($exchange->fetchRates('nzd', 'btc', $logger));
Tests
Each exchange comes with a suite of tests to check each associated service., (*6)
composer install
vendor/bin/phpunit
To run the tests for a single exchange:, (*7)
vendor/bin/phpunit --bootstrap "vendor/autoload.php" test/CoinbaseTest
To get debug output for the tests (such as CURL requests and decoded output),
add the --debug switch to your vendor/bin/phpunit command., (*8)
Donate
Donations are appreciated., (*9)
Contributing
Pull requests that contribute new exchanges are welcome., (*10)
For new currencies, make sure that you also provide an associated
CurrencyTest so that the currency is automatically testable., (*11)
TODO
- Generate README list of currencies/services automatically
- Link to live APIs on CryptFolio
- CI build server and link to test results