Git Product home page Git Product logo

coingecko / cryptoexchange Goto Github PK

View Code? Open in Web Editor NEW
296.0 296.0 243.0 17.99 MB

[UNMAINTAINED] Ruby library to query market data from cryptocurrency exchanges (https://www.coingecko.com)

Home Page: https://www.coingecko.com

License: MIT License

Ruby 99.77% Shell 0.01% HTML 0.22%
altcoins bitcoin coingecko cryptocurrency-exchanges ethereum exchange hacktoberfest market ruby rubygems

cryptoexchange's People

Contributors

0tcbtc avatar alexanderdavidpan avatar alterdice avatar arctek avatar beardpower avatar co0lsky avatar cysheng avatar d0minicw0ng avatar danielchengml avatar elvislyc avatar ernsheong avatar ersanyakit avatar estherleongym avatar krichnik avatar mwlang avatar nomanurrehman avatar ranhiru avatar rusbal avatar swingcloud avatar teekenl avatar tmlee avatar trappist avatar utorg-dev avatar weh avatar wenjieyek avatar whitesky77658 avatar wongy91 avatar yihangho avatar yihyang avatar yurij-volokhov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cryptoexchange's Issues

Exchange volume is not denominated in base

Discussion of this issue at
#58
#68

Affected exchanges are

  • Coinexchange
  • Novaexchange

Currently hotfixing it by dividing the last value.
But opening discussion on other ways to approach this, for example

1. Dictate and divide the target volume with the price to get volume in base
2. If base volume is not available, then do not assign to the volume. Create a new column like volume_target. Give the user the option to use that and decide if they want to divide it.

EtherDelta glitch

I noticed a few glitch with using EtherDelta that we need to fix

  1. For the pair with space ie. ETH_Mothership Token - We would get an error. Probably because the market_pair.target returns an upcase symbol which makes the hash key invalid

  2. Most of EtherDelta pair is ETH_<Some_symbol>, we might need to flip the base/target for this as well.

Thoughts? @yihangho

Implement standard for Trades executed API

We are going to start implementing "Trades" API for all exchanges.

It has not been implemented yet, and we should come to a standard which will be consistent across exchanges like the Ticker and Orderbook APIs

Novaexchange volume glitch

@yihangho We implemented novaexchange to have the base/target switched.
However the novaexchange API returns the volume based on their API base

For instance

screen shot 2017-08-02 at 1 39 50 am

and the API results
screen shot 2017-08-02 at 1 39 45 am

On their API pair of BTC_ETH which translates to base of ETH and target BTC.
The volume needs to be in terms of ETH, however the API returns in BTC terms

Base/Target swapped by mistake

Noticed that there has been a wrong implementation on assigning base target
This is especially true for API that returns something like BTC-LTC
When typically BTC is a target, and LTC is a base.

TODO: We will need to do another sanity check on all exchanges to ensure this is correct.
This needs to be in the PR acceptance process (alongside checking if volume is correctly assigned)

Following exchanges are wrong, and I am pushing a hotfix
#86

  • Poloniex
  • Bittrex
  • Bleutrade
  • EtherDelta

Potential problems (need to fix):

Replace Array of Exchange Strings to LS from directory

Yihang's comment on the array over at https://github.com/yihangho/cryptoexchange/blob/0cb165b4d1160985bfabefa0bb5e6d918ecdac4c/lib/cryptoexchange/client.rb#L3-L18

from what I can see it serves 2 purposes - 1. for the user to know which exchanges we support; 2. to require the correct files

either way, I think we can load this array by looking at the directory structure

in essence, when the lib is loaded, we can just do a ls on the lib/cryptoexchange/exchanges and use that to populate the array

if you're familiar with Rails, this is very similar to how the controllers and models are autoloaded

basevolume is not for base

@tmlee found that in Cryptopia ticker api, basevolume not respond base to us instead of volume, so we need to check if other api send the wrong volume to us too

Spec must be reliable

Currently we are only running integration tests which is a great way to ensure full coverage of the specs.

However, the integration test is not reliable in that 3rd party services may fail and timeout causing test to fail.

Having 3rd party API mocked out may pose as a false positive.

Opening this discussion up for suggestions and ways to improve

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.