Giter Site home page Giter Site logo

coingecko_dart's Introduction

coingecko_dart

A Dart/Flutter Wrapper for the CoinGecko API (V3).

GET STARTED

ADD DEPENDENCY

  dependencies:
    coingecko_dart: ^0.1.0

EASY TO USE

To get started with the api, all you have to do is initialize it like so and call the method of your choice!

    CoinGeckoApi apiInstance = CoinGeckoApi();
    //Future<CoinGeckoResult> result = await apiInstance.callMethod();

METHODS AVAILABLE

GENERAL

    ping()                      -> /ping

Example

    Future<CoinGeckoResult<bool>> pingResponse = await apiInstance.ping();
    bool requestIsSuccessful = pingResponse.data;

/SIMPLE

- simplePrice()                 -> /simple/price
- simpleTokenPrice()            -> /simple/token_price/{id}
- simpleSupportedVsCurrencies() -> /simple/supported_vs_currencies
RETURN TYPES

respectively matching the above methods

  • CoinGeckoResult<List<PricedCoin>>
  • CoinGeckoResult<List<SimpleToken>>
  • CoinGeckoResult<List<String>>

Example

/COINS

    1. listCoins()                   -> /coins/list
    2. getCoinMarkets()              -> /coins/markets
    3. getCoinData()                 -> /coins/{id}
    4. getCoinTickers()              -> /coins/{id}/tickers
    5. getCoinHistory()              -> /coins/{id}/history
    6. getCoinMarketChart()          -> /coins/{id}/market_chart
    7. getCoinMarketChartRanged()    -> /coins/{id}/market_chart/range
RETURN TYPES

respectively matching the above methods

  1. CoinGeckoResult<List<Coin>>
  2. CoinGeckoResult<List<FullCoin>>
  3. ** CoinGeckoResult<Coin>
  4. CoinGeckoResult<List<CoinTicker>>
  5. ** CoinGeckoResult<Coin>
  6. CoinGeckoResult<List<CoinDataPoint>>
  7. CoinGeckoResult<List<CoinDataPoint>>

** (3,5) [Note: Data class is not fully implemented, use ( coin.json[ ] ) property instead to access the object directly]

Example

/CONTRACT

    getContractTokenData()        -> /coins/{id}/contract/{contract_address}
    getContractMarketChart()      -> /coins/{id}/contract/{contract_address}/market_chart
    getContractMarketChartRanged()-> /coins/{id}/contract/{contract_address}/market_chart/range

/EXCHANGES

    getExchanges()                -> /exchanges
    getExchangeRatesBtc()         -> /exchange_rates

/TRENDING

    getSearchTrending()           -> /search/trending

/GLOBAL

    getGlobalCoins()              -> /global
    getGlobalDefi()               -> /global/decentralized_finance_defi

EXAMPLES

SIMPLE_EXAMPLE

    1. CoinGeckoResult<List<PricedCoin>> result = await api.simplePrice(
        ids: ["iota"],
        vs_currencies: ["usd", "jpy"],
        includeLastUpdatedAt: true,
        includeMarketCap: true);
    //obtain prices and some other data of "iota" coin in "jpy" and "usd"

You can use var to store the result if you're not too sure about the return data type.

    2. var result = await api.simpleTokenPrice(
        id: 'ethereum',
        contractAddresses: ['0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9'],
        vs_currencies: ['inr', 'usd', 'eth']);
       //CoinGeckoResult<List<SimpleToken>>
       //obtain price and some other data of ethereum token "AAVE" in 'inr','usd' and 'eth'

    3. var result = await api.simpleSupportedVsCurrencies(); 
       //CoinGeckoResult<List<String>>
       //list of currencies against crypto ex: ['usd','inr','jpy','cad']

COINS_EXAMPLE

    1. var result = await api.listCoins(includePlatformFlag: false);
       //result.data contains a list of Coin() objects
       print(result.data.any((element) => element.symbol.toUpperCase() == "BTC"));
       //true
    
    2. var result = await api.getCoinMarkets(
        vsCurrency: 'usd',
        coinIds: ['bitcoin', 'iota', 'tether'],
        category: CoinCategories.STABLECOIN,
        sparkline: true,
        priceChangePercentage: [MarketInterval.T_1H, MarketInterval.T_24H]);
       //result.data contains a list of FullCoin() objects
       if(!result.isError)
        print(result.data.id[0]=="tether");
        //true
       else
        print("${result.errorCode}, ${result.errorMessage}");

    3. var result = await api.getCoinData(
        id: 'bitcoin', localization: true, sparkline: true);
       //obtain all data of crypto with id 'bitcoin' with localization and sparkline 7 days data

       //This object has to many different properties to warrant a data class of it's own, access json like so
       //do a pre-request to make sure you know the property name of the property value you need
       print(result.data.json['block_time_in_minutes'] == 10);
       //true

    4. var result = await api.getCoinTickers(
        id: "bitcoin",
        includeExchangeLogo: true,
       );
       //obtain tickers of crypto 'bitcoin'
       //result.data is a list that contains instances of `CoinTicker`  

    5. var result = await api.getCoinHistory(
        id: 'bitcoin', date: DateTime(2019, 4, 2));
       //obtain full data of bitcoin on 2nd April 2019

       //This object has to many different properties to warrant a data class of it's own, access json like so
       //do a pre-request to make sure you know the property name of the property value you need
       print(result.data.json['market_data']['current_price']['usd'] ==
            4146.321927706636);
       //true       

    6. var result = await api.getCoinMarketChart(
        id: "bitcoin", vsCurrency: "usd", days: 30,interval: ChartTimeInterval.DAILY);
       //a list of CoinDataPoint instances from 30 days back until now, one data point a day
       
    7. var result = await api.getCoinMarketChartRanged(
        id: "bitcoin",
        vsCurrency: "usd",
        from: DateTime(2021, 4, 2),
        to: DateTime(2021, 4, 10));
       //a list of CoinDataPoint instances between from Date and to Date

I'll now focus on adding better documentation for all this before implementing beta api functionality. (Apr 18 21)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.