Cripto Capital é um pacote criado para facilitar a forma de pegar os valores atualizado das criptomoedas e as converções entre elas e moedas tradicionais, utilizando a api da CoinMarketCap.
usando npm:
npm i crypto-capital
usando yarn:
yarn add crypto-capital
Para usar importe a classe, crie uma nova instância e forneça sua chave api ao instanciar a classe. Voce pode obter sua chave CoinMarketCap aqui.
const APIKey = "d6e93c00-2399-4296-8ae9-3ecff4bfdf3a";
const cryto = new CryptoCapital(APIKey);
O metodo quote exige um array das siglas das cryptomoedas e retorna uma promisse:
cryto.quotes(["BTC"]).then((res) => console.log(res));
// console.log
{
"data": {
"BTC": {
"id": 1,
"name": "Bitcoin",
"symbol": "BTC",
"slug": "bitcoin",
"num_market_pairs": 9082,
"date_added": "2013-04-28T00:00:00.000Z",
"tags": [...tags],
"max_supply": 21000000,
"circulating_supply": 18937062,
"total_supply": 18937062,
"is_active": 1,
"platform": null,
"cmc_rank": 1,
"is_fiat": 0,
"last_updated": "2022-01-22T18:16:00.000Z",
"quote": {
"USD": {
"price": 34526.19599506767,
"volume_24h": 44564695510.34316,
"volume_change_24h": 19.346,
"percent_change_1h": -1.06712614,
"percent_change_24h": -10.54840373,
"percent_change_7d": -20.28563616,
"percent_change_30d": -31.58034291,
"percent_change_60d": -39.734065,
"percent_change_90d": -42.52358372,
"market_cap": 653824714182.7482,
"market_cap_dominance": 41.513,
"fully_diluted_market_cap": 725050115896.42,
"last_updated": "2022-01-22T18:16:00.000Z"
}
}
}
}
}
Usar o metodo coversion exige três parametros: sigla da moeda, montante e um array de moedas alvos.
cryto.conversion("btc", 0.1, ["usd"]).then((res) => console.log(res));
// console
{
"status": {
"timestamp": "2022-01-22T18:27:19.288Z",
"error_code": 0,
"error_message": null,
"elapsed": 30,
"credit_count": 1,
"notice": null
},
"data": {
"id": 1,
"symbol": "BTC",
"name": "Bitcoin",
"amount": 0.1,
"last_updated": "2022-01-22T18:27:00.000Z",
"quote": {
"USD": {
"price": 3466.730521496345,
"last_updated": "2022-01-22T18:27:00.000Z"
}
}
}
}
Exitem três Type Guards disponiveis para tratar os diferentes tipos de retorno da promisse:
isError()
, isQuoteResponse()
e isConversionResponse()
:
cryto.quotes(["BTC"]).then((res) => {
if (isError(res)) {
console.log(res.status);
} else if (isQuoteResponse(res)) {
console.log(res.BTC.id);
} else {
console.log(res);
}
});
cryto.conversion("btc", 0.1, ["usd"]).then((res) => {
if (isError(res)) {
console.log(res.status);
} else if (isConversionResponse(res)) {
console.log(res.data.BTC.id);
} else {
console.log(res);
}
});