A library for accessing balances, block counts and difficulties of common cryptocurrencies, used by Openclerk and live on CryptFolio.
This extends on the abstract currency definitions provided by openclerk/currencies.
Include openclerk/cryptocurrencies
as a requirement in your project composer.json
,
and run composer update
to install it into your project:
{
"require": {
"openclerk/cryptocurrencies": "dev-master"
}
}
PHP 5.4.6+ is required because some APIs require cURL 7.24+ due to the POODLE SSL bug.
Get the balance for a certain address:
use \Monolog\Logger;
$logger = new Logger("log");
$currency = new \Cryptocurrencies\Dogecoin();
$balance = $currency->getBalance("D64vbPp9TvqQ67xc6we5GnEtcKqiTXfp1S", $logger);
Get the balance for a certain address with a number of confirmations:
$currency = new \Cryptocurrencies\Bitcoin();
$balance = $currency->getBalanceWithConfirmations("17eTMdqaFRSttfBYB9chKEzHubECZPTS6p", 6, $logger);
Get the current difficulty of a given cryptocurrency:
$currency = new \Cryptocurrencies\Litecoin();
$balance = $currency->getDifficulty($logger);
Check whether a given address is valid:
$currency = new \Cryptocurrencies\Bitcoin();
return $currency->isValid("17eTMdqaFRSttfBYB9chKEzHubECZPTS6p");
Each cryptocurrency comes with a suite of tests to check each associated service.
composer install
vendor/bin/phpunit
To run the tests for a single currency:
vendor/bin/phpunit --bootstrap "vendor/autoload.php" test/DogecoinTest
To get debug output for the tests (such as CURL requests and decoded output),
add the --debug
switch to your vendor/bin/phpunit
command.
Assets for each cryptocurrency, for example icons associated with the currency and
associated services, are provided in css/
and images/
.
These can be included into your project with asset-discovery and mixins are provided, for example:
@each $code in $currency-codes {
.currency_name.currency_#{$code}, .currency_name_#{$code} {
padding-left: 20px;
@include currency-label-background($code);
background-position: 0 0;
background-repeat: no-repeat;
background-size: 16px 16px;
}
}
Pull requests that contribute new currencies, services or APIs are welcome.
For new currencies, make sure that you also provide an associated
CurrencyTest
so that the currency is automatically testable.
- Generate README list of currencies/services automatically
- Provide 32x32 icons for each cryptocurrency
- Link to live APIs on CryptFolio
- CI build server and link to test results