coingecko_ruby 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +31 -0
  3. data/.gitignore +10 -0
  4. data/.travis.yml +6 -0
  5. data/CHANGELOG.md +17 -0
  6. data/Gemfile +16 -0
  7. data/Gemfile.lock +37 -0
  8. data/README.md +4 -2
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/coingecko_ruby.gemspec +5 -5
  12. data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_complete_current_data.yml +74 -0
  13. data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_tickers.yml +99 -0
  14. data/fixtures/vcr_cassettes/test_that_it_gets_a_derivative_exchange.yml +71 -0
  15. data/fixtures/vcr_cassettes/test_that_it_gets_a_specific_exchange_ticker_from_an_exchange.yml +75 -0
  16. data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_eth_exchange_rate.yml +71 -0
  17. data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_usd_exchange_rate.yml +73 -0
  18. data/fixtures/vcr_cassettes/test_that_it_gets_complete_data_for_an_exchange.yml +72 -0
  19. data/fixtures/vcr_cassettes/test_that_it_gets_daily_historical_prices_for_one_coin.yml +71 -0
  20. data/fixtures/vcr_cassettes/test_that_it_gets_derivative_exchanges.yml +79 -0
  21. data/fixtures/vcr_cassettes/test_that_it_gets_derivatives.yml +1732 -0
  22. data/fixtures/vcr_cassettes/test_that_it_gets_derivatives_exchanges_ids_and_names.yml +95 -0
  23. data/fixtures/vcr_cassettes/test_that_it_gets_event_countries.yml +76 -0
  24. data/fixtures/vcr_cassettes/test_that_it_gets_event_types.yml +71 -0
  25. data/fixtures/vcr_cassettes/test_that_it_gets_exchange_ids_supported_by_coingecko.yml +159 -0
  26. data/fixtures/vcr_cassettes/test_that_it_gets_exchange_tickers_from_an_exchange.yml +78 -0
  27. data/fixtures/vcr_cassettes/test_that_it_gets_finance_platforms.yml +95 -0
  28. data/fixtures/vcr_cassettes/test_that_it_gets_finance_products.yml +100 -0
  29. data/fixtures/vcr_cassettes/test_that_it_gets_global_crypto_data.yml +71 -0
  30. data/fixtures/vcr_cassettes/test_that_it_gets_global_defi_data.yml +71 -0
  31. data/fixtures/vcr_cassettes/test_that_it_gets_historical_price_for_one_coin_at_a_previous_date.yml +124 -0
  32. data/fixtures/vcr_cassettes/test_that_it_gets_hourly_historical_prices_for_one_coin.yml +71 -0
  33. data/fixtures/vcr_cassettes/test_that_it_gets_indexes.yml +127 -0
  34. data/fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_index_id.yml +71 -0
  35. data/fixtures/vcr_cassettes/test_that_it_gets_indexes_ids.yml +630 -0
  36. data/fixtures/vcr_cassettes/test_that_it_gets_last_7_days_exchange_volume_from_an_exchange.yml +71 -0
  37. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin.yml +71 -0
  38. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin_in_myr.yml +71 -0
  39. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_multiple_coins_in_eth.yml +71 -0
  40. data/fixtures/vcr_cassettes/test_that_it_gets_minutely_historical_prices_for_one_coin.yml +139 -0
  41. data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_30_days_in_myr.yml +73 -0
  42. data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_7_days.yml +73 -0
  43. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins.yml +71 -0
  44. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins_in_different_currencies.yml +71 -0
  45. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin.yml +73 -0
  46. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin_in_a_different_currency.yml +71 -0
  47. data/fixtures/vcr_cassettes/test_that_it_gets_simple_price_for_one_coin.yml +73 -0
  48. data/fixtures/vcr_cassettes/test_that_it_gets_status_updates.yml +79 -0
  49. data/fixtures/vcr_cassettes/test_that_it_gets_status_updates_for_an_exchange.yml +76 -0
  50. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_asset_platforms.yml +80 -0
  51. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories.yml +114 -0
  52. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories_with_market_data.yml +100 -0
  53. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_coins.yml +143 -0
  54. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_exchanges.yml +79 -0
  55. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_supported_coins.yml +74 -0
  56. data/fixtures/vcr_cassettes/test_that_it_gets_trending_searches.yml +77 -0
  57. data/lib/coingecko_ruby/client.rb +10 -0
  58. data/lib/coingecko_ruby/client/categories.rb +25 -361
  59. data/lib/coingecko_ruby/client/coins.rb +4 -16
  60. data/lib/coingecko_ruby/client/derivatives.rb +133 -0
  61. data/lib/coingecko_ruby/client/events.rb +69 -0
  62. data/lib/coingecko_ruby/client/exchanges.rb +9 -1448
  63. data/lib/coingecko_ruby/client/finance.rb +90 -0
  64. data/lib/coingecko_ruby/client/indexes.rb +73 -0
  65. data/lib/coingecko_ruby/client/infos.rb +155 -0
  66. data/lib/coingecko_ruby/client/prices.rb +12 -240
  67. data/lib/coingecko_ruby/client/status.rb +1 -1
  68. data/lib/coingecko_ruby/version.rb +1 -1
  69. metadata +59 -2
@@ -0,0 +1,90 @@
1
+ module CoingeckoRuby
2
+ class Client
3
+ module Finance
4
+ # Fetches the list of finance platforms (e.g. Celsius Network, dYdX) listed in CoinGecko.
5
+ #
6
+ # @option options [Integer] :per_page (100) sets the number of results to return per page.
7
+ # @option options [Integer] :page sets the page for results.
8
+ #
9
+ # @return [Array<Hash>] each finance platform's name, category, url, facts (description), and centralized status.
10
+ #
11
+ # @example Get all finance platforms.
12
+ # client.get_finance_platforms
13
+ # @example Sample response object (truncated)
14
+ # [
15
+ # {
16
+ # "name"=>"Binance Staking",
17
+ # "facts"=>"",
18
+ # "category"=>"CeFi Platform",
19
+ # "centralized"=>true,
20
+ # "website_url"=>"https://www.binance.com/en/staking"
21
+ # },
22
+ # {
23
+ # "name"=>"Celsius Network",
24
+ # "facts"=>"",
25
+ # "category"=>"CeFi Platform",
26
+ # "centralized"=>true,
27
+ # "website_url"=>"https://celsius.network/"
28
+ # },
29
+ # {
30
+ # "name"=>"Cobo",
31
+ # "facts"=>"",
32
+ # "category"=>"CeFi Platform",
33
+ # "centralized"=>true,
34
+ # "website_url"=>"https://cobo.com/"
35
+ # }
36
+ # ]
37
+ def get_finance_platforms(options: {})
38
+ get 'finance_platforms', { options: options }
39
+ end
40
+
41
+ # Fetches the list of finance products (e.g. Binance Savings, Nexo, Fulcrum) listed in CoinGecko.
42
+ #
43
+ # @option options [Integer] :per_page (100) sets the number of results to return per page.
44
+ # @option options [Integer] :page sets the page for results.
45
+ # @option options [Integer] :start_at filter results based on the launch date of the product in UNIX timestamp format.
46
+ # @option options [Integer] :end_at filter results based on the end date of the product in UNIX timestamp format.
47
+ #
48
+ # @return [Array<Hash>] each finance product's platform, identifier, supply and borrow rate percentage, and the product duration data.
49
+ #
50
+ # @example Get all finance products.
51
+ # client.get_finance_products
52
+ # @example Sample response object (truncated)
53
+ # [
54
+ # {"platform"=>"Binance Savings",
55
+ # "identifier"=>"XTZ001",
56
+ # "supply_rate_percentage"=>"1.956035",
57
+ # "borrow_rate_percentage"=>nil,
58
+ # "number_duration"=>nil,
59
+ # "length_duration"=>nil,
60
+ # "start_at"=>0,
61
+ # "end_at"=>0,
62
+ # "value_at"=>0,
63
+ # "redeem_at"=>0},
64
+ # {"platform"=>"Binance Savings",
65
+ # "identifier"=>"ZEC001",
66
+ # "supply_rate_percentage"=>"0.182865",
67
+ # "borrow_rate_percentage"=>nil,
68
+ # "number_duration"=>nil,
69
+ # "length_duration"=>nil,
70
+ # "start_at"=>0,
71
+ # "end_at"=>0,
72
+ # "value_at"=>0,
73
+ # "redeem_at"=>0},
74
+ # {"platform"=>"Crypto.com",
75
+ # "identifier"=>"BAT",
76
+ # "supply_rate_percentage"=>"2.0",
77
+ # "borrow_rate_percentage"=>nil,
78
+ # "number_duration"=>nil,
79
+ # "length_duration"=>nil,
80
+ # "start_at"=>0,
81
+ # "end_at"=>0,
82
+ # "value_at"=>0,
83
+ # "redeem_at"=>0}
84
+ # ]
85
+ def get_finance_products(options: {})
86
+ get 'finance_products', { options: options }
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,73 @@
1
+ module CoingeckoRuby
2
+ class Client
3
+ module Indexes
4
+ # Fetches the list of market indexes listed in CoinGecko.
5
+ #
6
+ # @option options [Integer] :per_page (100) sets the number of results to return per page.
7
+ # @option options [Integer] :page sets the page for results.
8
+ #
9
+ # @return [Array<Hash>] each index's id, name, market name, last done, and whether it's a multiasset composite index.
10
+ #
11
+ # @example Get all market indexes.
12
+ # client.get_indexes
13
+ # @example Sample response object
14
+ # [
15
+ # {"name"=>"CoinFLEX (Futures) DFN",
16
+ # "id"=>"DFN",
17
+ # "market"=>"CoinFLEX (Futures)",
18
+ # "last"=>nil,
19
+ # "is_multi_asset_composite"=>nil},
20
+ # {"name"=>"Bibox (Futures) LINK",
21
+ # "id"=>"LINK",
22
+ # "market"=>"Bibox (Futures)",
23
+ # "last"=>nil,
24
+ # "is_multi_asset_composite"=>nil},
25
+ # {"name"=>"CME Bitcoin Futures BTC",
26
+ # "id"=>"BTC",
27
+ # "market"=>"CME Bitcoin Futures",
28
+ # "last"=>nil,
29
+ # "is_multi_asset_composite"=>false}
30
+ # ]
31
+ def get_indexes(options: {})
32
+ get 'indexes', { options: options }
33
+ end
34
+
35
+ # Fetches the ids of market indexes listed in CoinGecko.
36
+ #
37
+ # @return [Array<Hash>] each index's id and name.
38
+ #
39
+ # @example Get all market index ids and names.
40
+ # client.get_indexes_ids
41
+ # @example Sample response object
42
+ # [
43
+ # {"id"=>"LINK", "name"=>"Bibox (Futures) LINK"},
44
+ # {"id"=>"BTC", "name"=>"CME Bitcoin Futures BTC"},
45
+ # {"id"=>"XRP", "name"=>"Bibox (Futures) XRP"},
46
+ # {"id"=>"ETH", "name"=>"Crypto.com (Futures) ETH"}
47
+ # ]
48
+ def get_indexes_ids
49
+ get 'indexes/list'
50
+ end
51
+
52
+ # Fetches the list of indexes based on the market and index given.
53
+ #
54
+ # @param market_id [String] filter results by the market id.
55
+ # @param index_id [String] filter indexes from the given market by the index id.
56
+ #
57
+ # @return [Array<Hash>] the index's name, market, last done, and whether it's a multiasset composite index.
58
+ #
59
+ # @example Get all BTC indexes in the CME Futures market.
60
+ # client.get_indexes_by_market_and_index(market_id: 'cme_futures', index_id: 'btc')
61
+ # @example Sample response object
62
+ # {
63
+ # "name"=>"CME Bitcoin Futures BTC",
64
+ # "market"=>"CME Bitcoin Futures",
65
+ # "last"=>nil,
66
+ # "is_multi_asset_composite"=>false
67
+ # }
68
+ def get_indexes_by_market_and_index(market_id:, index_id:, options: {})
69
+ get "indexes/#{market_id}/#{index_id}", { options: options }
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,155 @@
1
+ module CoingeckoRuby
2
+ class Client
3
+ module Infos
4
+ # Fetches global crypto data from CoinGecko.
5
+ #
6
+ # @return [Hash] global crypto data (e.g. market cap, total volume, active ICOs, etc.)
7
+ #
8
+ # @example Get global crypto data.
9
+ # client.get_global_crypto_data
10
+ # @example Sample response object (truncated)
11
+ # {
12
+ # "data" => {
13
+ # "active_cryptocurrencies" => 7361,
14
+ # "upcoming_icos" => 0,
15
+ # "ongoing_icos" => 50,
16
+ # "ended_icos" => 3375,
17
+ # "markets" => 616,
18
+ # "total_market_cap" => {
19
+ # "btc" => 48541739.601360835,
20
+ # "eth" => 628896708.615425,
21
+ # "ltc" => 7052042789.61238,
22
+ # "bch" => 1934433566.5425043
23
+ # },
24
+ # "total_volume" => {
25
+ # "btc" => 6568919.505737251,
26
+ # "eth" => 85105558.43783577,
27
+ # "ltc" => 954318939.049309,
28
+ # "usd" => 286508058915.08606
29
+ # }
30
+ # "market_cap_percentage" => {
31
+ # "btc" => 38.55040456662042,
32
+ # "eth" => 18.387297257364622,
33
+ # },
34
+ # "market_cap_change_percentage_24h_usd" => -3.133283965790086,
35
+ # "updated_at" => 1621344957
36
+ # }
37
+ # }
38
+ def get_global_crypto_data
39
+ get 'global'
40
+ end
41
+
42
+ # Fetches global crypto data from CoinGecko.
43
+ #
44
+ # @return [Hash] global defi data.
45
+ #
46
+ # @example Get global defi data.
47
+ # client.get_global_defi_data
48
+ # @example Sample response object
49
+ # {
50
+ # "data" => {
51
+ # "defi_market_cap" => "125745676087.2760332093360054945",
52
+ # "eth_market_cap" => "394420680555.8088822113739591981",
53
+ # "defi_to_eth_ratio" =>
54
+ # "31.8811062112863892278072770612100063079659263284319798945238447",
55
+ # "trading_volume_24h" => "15011166214.23270941006219308344",
56
+ # "defi_dominance" =>
57
+ # "5.8997291574682455351428477202615510371051549446051010984545824",
58
+ # "top_coin_name" => "Uniswap",
59
+ # "top_coin_defi_dominance" => 14.449398175884316
60
+ # }
61
+ # }
62
+ def get_global_defi_data
63
+ get 'global/decentralized_finance_defi'
64
+ end
65
+
66
+ # Fetches the top 7 coin searches from CoinGecko in the last 24 hours.
67
+ #
68
+ # @return [Hash] the ternding searches and its information.
69
+ #
70
+ # @example Get trending searches in the last 24 hours.
71
+ # client.get_trending_searches
72
+ # @example Sample response object (truncated)
73
+ # {
74
+ # "coins" => [{
75
+ # "item" => {
76
+ # "id" => "shiba-inu",
77
+ # "coin_id" => 11939,
78
+ # "name" => "Shiba Inu",
79
+ # "symbol" => "SHIB",
80
+ # "market_cap_rank" => 24,
81
+ # "thumb" =>
82
+ # "https://assets.coingecko.com/coins/images/11939/thumb/SHIBLOGO.png?1600752116",
83
+ # "small" =>
84
+ # "https://assets.coingecko.com/coins/images/11939/small/SHIBLOGO.png?1600752116",
85
+ # "large" =>
86
+ # "https://assets.coingecko.com/coins/images/11939/large/SHIBLOGO.png?1600752116",
87
+ # "slug" => "shiba-inu",
88
+ # "price_btc" => 3.637711629799728e-10,
89
+ # "score" => 0
90
+ # }
91
+ # },
92
+ # ],
93
+ # "exchanges" => []
94
+ # }
95
+ def get_trending_searches
96
+ get 'search/trending'
97
+ end
98
+
99
+ # Fetches coin and/or market status updates.
100
+ #
101
+ # @option options [String] :category filter results by the given category. Valid values: general, milestone, partnership, exchange_listing, software_release, fund_movement, new_listings, event
102
+ # @option options [String] :project_type filter results by the project type. Fetches both coin and market status updates if left blank. Valid values: coin, market
103
+ # @option options [Integer] :per_page sets the number of results to return per page.
104
+ # @option options [Integer] :page sets the page for results.
105
+ #
106
+ # @return [Hash] the list of status updates and its information.
107
+ #
108
+ # @example Get a single status update.
109
+ # client.get_status_updates(options: { per_page: 1 })
110
+ # @example Sample response object
111
+ # {
112
+ # "status_updates" => [{
113
+ # "description" =>
114
+ # "📢 Community Call & AMA Invitation 📢\r\n" +
115
+ # "\r\n" +
116
+ # "Thursday 20th May at 4pm CET (Registration below)\r\n" +
117
+ # "\r\n" +
118
+ # "During this event, we will be updating our community on the latest news and developments at Fuse, covering:\r\n" +
119
+ # "\r\n" +
120
+ # "- Fuse Dollar (fUSD)\r\n" +
121
+ # "- Fuse Cash\r\n" +
122
+ # "- Latest partnerships and integrations.\r\n" +
123
+ # "- Binance Smart Chain (BSC) bridge.\r\n" +
124
+ # "- DeFi on Fuse.\r\n" +
125
+ # "- Featured communities.\r\n" +
126
+ # "- What to expect for the rest of Q2 and beyond!\r\n" +
127
+ # "\r\n" +
128
+ # "Please register 👉 https://bit.ly/3furWZs",
129
+ # "category" => "general",
130
+ # "created_at" => "2021-05-18T08:29:06.537Z",
131
+ # "user" => "Robert Miller",
132
+ # "user_title" => "Marcom Director ",
133
+ # "pin" => false,
134
+ # "project" => {
135
+ # "type" => "Coin",
136
+ # "id" => "fuse-network-token",
137
+ # "name" => "Fuse",
138
+ # "symbol" => "fuse",
139
+ # "image" => {
140
+ # "thumb" =>
141
+ # "https://assets.coingecko.com/coins/images/10347/thumb/vUXKHEe.png?1601523640",
142
+ # "small" =>
143
+ # "https://assets.coingecko.com/coins/images/10347/small/vUXKHEe.png?1601523640",
144
+ # "large" =>
145
+ # "https://assets.coingecko.com/coins/images/10347/large/vUXKHEe.png?1601523640"
146
+ # }
147
+ # }
148
+ # }]
149
+ # }
150
+ def get_status_updates(options: {})
151
+ get 'status_updates', { options: options }
152
+ end
153
+ end
154
+ end
155
+ end
@@ -13,7 +13,7 @@ module CoingeckoRuby
13
13
  #
14
14
  # @example Fetch the current price in USD for Bitcoin.
15
15
  # client.get_price(id: 'bitcoin', currency: 'usd')
16
- # @example Response object
16
+ # @example Sample response object
17
17
  # {
18
18
  # "bitcoin" => {
19
19
  # "usd" => 47931 # current price in given currency
@@ -21,7 +21,7 @@ module CoingeckoRuby
21
21
  # }
22
22
  # @example Fetch the current price, market cap, 24 hour volume, 24 hour price change and last updated at for Bitcoin.
23
23
  # client.get_price(id: 'bitcoin', currency: 'usd', options: { include_market_cap: true, include_24hr_vol: true, include_24hr_change: true, include_last_updated_at: true })
24
- # @example Response object
24
+ # @example Sample response object
25
25
  # {
26
26
  # "bitcoin" => {
27
27
  # "usd" => 48217, # current price in given currency
@@ -43,32 +43,14 @@ module CoingeckoRuby
43
43
  #
44
44
  # @example Fetch Bitcoin's price on 30th December, 2017.
45
45
  # client.get_historical_price_on_date(id: 'bitcoin', date: '30-12-2017')
46
- # @example Response object (truncated)
46
+ # @example Sample response object (truncated)
47
47
  # {
48
48
  # "id": "bitcoin",
49
49
  # "symbol": "btc",
50
50
  # "name": "Bitcoin",
51
51
  # "localization": {
52
52
  # "en": "Bitcoin",
53
- # "de": "Bitcoin",
54
- # "es": "Bitcoin",
55
- # "fr": "Bitcoin",
56
- # "it": "Bitcoin",
57
- # "pl": "Bitcoin",
58
- # "ro": "Bitcoin",
59
- # "hu": "Bitcoin",
60
- # "nl": "Bitcoin",
61
- # "pt": "Bitcoin",
62
- # "sv": "Bitcoin",
63
- # "vi": "Bitcoin",
64
- # "tr": "Bitcoin",
65
- # "ru": "биткоин",
66
53
  # "ja": "ビットコイン",
67
- # "zh": "比特币",
68
- # "zh-tw": "比特幣",
69
- # "ko": "비트코인",
70
- # "ar": "بيتكوين",
71
- # "th": "บิตคอยน์",
72
54
  # "id": "Bitcoin"
73
55
  # },
74
56
  # "image": {
@@ -77,175 +59,25 @@ module CoingeckoRuby
77
59
  # },
78
60
  # "market_data": {
79
61
  # "current_price": {
80
- # "aed": 50024.57906376443,
81
- # "ars": 253468.12429692186,
82
- # "aud": 17446.3215245937,
83
- # "bch": 5.76928286478153,
84
- # "bdt": 1126110.803183989,
85
- # "bhd": 5132.860612995706,
86
- # "bmd": 13620.3618741461,
87
- # "brl": 45117.7211153463,
88
62
  # "btc": 1,
89
- # "cad": 17128.871750393,
90
- # "chf": 13262.4868659029,
91
- # "clp": 8362902.190725706,
92
- # "cny": 88573.2132675718,
93
- # "czk": 289914.5782287119,
94
- # "dkk": 84525.1736167662,
95
63
  # "eth": 18.483094024188404,
96
64
  # "eur": 11345.8976447824,
97
65
  # "gbp": 10079.0677868681,
98
- # "hkd": 106417.930376984,
99
- # "huf": 3526720.3000726495,
100
- # "idr": 184652192.175199,
101
- # "ils": 47387.96303252911,
102
- # "inr": 869671.001953725,
103
- # "jpy": 1535062.45448282,
104
- # "krw": 14537693.2463698,
105
- # "kwd": 4104.645874754543,
106
- # "lkr": 2087919.548829924,
107
- # "ltc": 60.96840666846534,
108
- # "mmk": 18414729.253845528,
109
- # "mxn": 267888.750532982,
110
- # "myr": 55317.8739192755,
111
- # "ngn": 4884546.501733771,
112
- # "nok": 111755.75019546246,
113
- # "nzd": 19178.1505368914,
114
- # "php": 680527.760679833,
115
- # "pkr": 1505414.7676248574,
116
- # "pln": 47450.61669715,
117
- # "rub": 785377.30638701,
118
- # "sar": 51079.0811004227,
119
- # "sek": 111446.704184538,
120
- # "sgd": 18213.1478981081,
121
- # "thb": 442954.59869004245,
122
- # "try": 51700.07425935065,
123
- # "twd": 404053.46952093,
124
- # "uah": 382908.08925747185,
125
66
  # "usd": 13620.3618741461,
126
- # "vef": 140859.73944813784,
127
- # "vnd": 309201434.91677517,
128
- # "xag": 804.154745877564,
129
- # "xau": 10.4549897745945,
130
- # "xdr": 9563.95932114975,
131
- # "zar": 168771.061713303,
132
- # "bits": 1000000,
133
- # "link": 22041.447552365687,
134
- # "sats": 100000000
135
67
  # },
136
68
  # "market_cap": {
137
- # "aed": 839030999274.6053,
138
- # "ars": 4251262431254.5815,
139
- # "aud": 292616246981.057,
140
- # "bch": 96764575.68919012,
141
- # "bdt": 18887552682553.043,
142
- # "bhd": 86090263023.8938,
143
- # "bmd": 228445816988.881,
144
- # "brl": 756731337692.006,
145
69
  # "btc": 16772375,
146
- # "cad": 287291860324.498,
147
- # "chf": 222443403147.498,
148
- # "clp": 140265731631172.94,
149
- # "cny": 1485583147878.69,
150
- # "czk": 4862556024018.788,
151
- # "dkk": 1417687908840.51,
152
70
  # "eth": 310005384.13394696,
153
71
  # "eur": 190297650009.907,
154
72
  # "gbp": 169049904571.772,
155
- # "hkd": 1784881435006.67,
156
- # "huf": 59151475392930.96,
157
- # "idr": 3097055811734500,
158
- # "ils": 794808686467.7148,
159
- # "inr": 14586448171393.6,
160
- # "jpy": 25746643135006.3,
161
- # "krw": 243831642763082,
162
- # "kwd": 68844659853.58617,
163
- # "lkr": 35019369642806.27,
164
- # "ltc": 1022584979.7960014,
165
- # "mmk": 308858744568967.1,
166
- # "mxn": 4493130582220.62,
167
- # "myr": 927812125576.808,
168
- # "ngn": 81925445632016.88,
169
- # "nok": 1874409350684.6182,
170
- # "nzd": 321663132611.194,
171
- # "php": 11414066800032.4,
172
- # "pkr": 25249381013141.95,
173
- # "pln": 795859537225.861,
174
- # "rub": 13172642699212.8,
175
- # "sar": 856717502871.7015,
176
- # "sek": 1869225915097.14,
177
- # "sgd": 305477746477.531,
178
- # "thb": 7429400637203.895,
179
- # "try": 867133033005.6757,
180
- # "twd": 6776936310856.11,
181
- # "uah": 6422278063559.784,
182
73
  # "usd": 228445816988.881,
183
- # "vef": 2362552372426.4595,
184
- # "vnd": 5186042416962243,
185
- # "xag": 13487584955.8882,
186
- # "xau": 175355009.120664,
187
- # "xdr": 160410312219.069,
188
- # "zar": 2830691536203.66,
189
- # "bits": 16772375000000,
190
- # "link": 369687423891.10944,
191
- # "sats": 1677237500000000
192
74
  # },
193
75
  # "total_volume": {
194
- # "aed": 13223772038.888288,
195
- # "ars": 67003156399.47071,
196
- # "aud": 4611856472.88116,
197
- # "bch": 1525083.9259334763,
198
- # "bdt": 297682315984.16693,
199
- # "bhd": 1356848571.721612,
200
- # "bmd": 3600481281.03768,
201
- # "brl": 11926666253.0629,
202
76
  # "btc": 264345.493482963,
203
- # "cad": 4527940055.66402,
204
- # "chf": 3505878635.37842,
205
- # "clp": 2210695506557.1357,
206
- # "cny": 23413929770.588,
207
- # "czk": 76637612249.77382,
208
- # "dkk": 22343848731.4572,
209
77
  # "eth": 4885922.610916088,
210
78
  # "eur": 2999236911.91719,
211
79
  # "gbp": 2664356147.96788,
212
- # "hkd": 28131100320.9394,
213
- # "huf": 932272618099.0865,
214
- # "idr": 48811974863263.9,
215
- # "ils": 12526794472.986298,
216
- # "inr": 229893610179.28,
217
- # "jpy": 405786842057.429,
218
- # "krw": 3842973695315.56,
219
- # "kwd": 1085044639.3347962,
220
- # "lkr": 551932123488.1709,
221
- # "ltc": 16116723.547645444,
222
- # "mmk": 4867850691962.943,
223
- # "mxn": 70815183958.1755,
224
- # "myr": 14623030679.6192,
225
- # "ngn": 1291207855441.2922,
226
- # "nok": 29542128934.978218,
227
- # "nzd": 5069657667.76511,
228
- # "php": 179894446725.766,
229
- # "pkr": 397949609644.3324,
230
- # "pln": 12543356686.879,
231
- # "rub": 207610951627.194,
232
- # "sar": 13502524900.147509,
233
- # "sek": 29460434014.7115,
234
- # "sgd": 4814563569.00357,
235
- # "thb": 117093051981.26692,
236
- # "try": 13666681643.19386,
237
- # "twd": 106809713794.014,
238
- # "uah": 101220027813.38469,
239
80
  # "usd": 3600481281.03768,
240
- # "vef": 37235637336.29954,
241
- # "vnd": 81736005898715.08,
242
- # "xag": 212574683.135671,
243
- # "xau": 2763729.43132451,
244
- # "xdr": 2528189546.40031,
245
- # "zar": 44613869594.2467,
246
- # "bits": 264345493482.963,
247
- # "link": 5826557330.308955,
248
- # "sats": 26434549348296.3
249
81
  # }
250
82
  # },
251
83
  # "community_data": {
@@ -276,7 +108,7 @@ module CoingeckoRuby
276
108
  # }
277
109
  # }
278
110
  def get_historical_price_on_date(id:, date:)
279
- get("coins/#{id}/history", { query: { date: date } })
111
+ get "coins/#{id}/history", { date: date }
280
112
  end
281
113
 
282
114
  # Fetches a coin's historical price data in 5 - 10 minutes ranges.
@@ -288,7 +120,7 @@ module CoingeckoRuby
288
120
  #
289
121
  # @example Fetch Bitcoin's minutely historical price within the last 24 hours.
290
122
  # client.get_minutely_historical_prices(id: 'bitcoin')
291
- # @example Response object (truncated)
123
+ # @example Sample response object (truncated)
292
124
  # {
293
125
  # "prices" => [
294
126
  # [1621057474114, 49364.605172521166], # [UNIX timestamp for minutely price data, coin price in given currency]
@@ -320,7 +152,7 @@ module CoingeckoRuby
320
152
  #
321
153
  # @example Fetch Bitcoin's hourly historical price within the last 7 days.
322
154
  # client.get_hourly_historical_prices(id: 'bitcoin', days: 7)
323
- # @example Response object (truncated)
155
+ # @example Sample response object (truncated)
324
156
  # {
325
157
  # "prices" => [
326
158
  # [1620540153122, 58533.64354969528], # [UNIX timestamp for minutely price data, coin price in given currency]
@@ -351,6 +183,7 @@ module CoingeckoRuby
351
183
  #
352
184
  # @example Fetch Bitcoin's daily historical price within the last 14 days.
353
185
  # client.get_daily_historical_prices(id: 'bitcoin', days: 14)
186
+ # @example Sample response object (truncated)
354
187
  # {
355
188
  # "prices" => [
356
189
  # [1620000000000, 56600.74528738432], # [UNIX timestamp for minutely price data, coin price in given currency]
@@ -382,18 +215,11 @@ module CoingeckoRuby
382
215
  #
383
216
  # @example Fetch Bitcoin's OHLC data in USD within the last 7 days.
384
217
  # client.get_ohlc(id: 'bitcoin', days: 7, currency: 'usd')
385
- # @example Response object (truncated)
218
+ # @example Sample response object (truncated)
386
219
  # [
387
220
  # [1620547200000, 58384.27, 58384.27, 58384.27, 58384.27], # [UNIX timestamp for OHLC data, open, high, low, close]
388
221
  # [1620561600000, 58022.03, 58214.96, 57943.18, 58048.35],
389
222
  # [1620576000000, 57956.7, 57956.7, 56636.68, 57302.22],
390
- # [1620590400000, 57396.24, 57618.74, 57396.24, 57535.26],
391
- # [1620604800000, 57347.57, 58071.98, 57347.57, 58050.13],
392
- # [1620619200000, 58213.93, 59005.01, 58213.93, 58909.0],
393
- # [1620633600000, 59577.8, 59577.8, 58849.82, 58849.82],
394
- # [1620648000000, 58495.02, 58495.02, 57878.12, 57878.12],
395
- # [1620662400000, 58239.57, 58239.57, 57237.93, 57237.93],
396
- # [1620676800000, 58114.79, 58114.79, 56850.29, 56850.29],
397
223
  # ]
398
224
  def get_ohlc(id:, days:, currency: 'usd')
399
225
  get "coins/#{id}/ohlc", { vs_currency: currency, days: days }
@@ -405,72 +231,18 @@ module CoingeckoRuby
405
231
  #
406
232
  # @example Fetch supported currencies.
407
233
  # client.supported_currencies
408
- # @example Response object
234
+ # @example Sample response object (truncated)
409
235
  # [
410
236
  # "btc",
411
237
  # "eth",
412
- # "ltc",
413
- # "bch",
414
- # "bnb",
415
- # "eos",
416
- # "xrp",
417
- # "xlm",
418
- # "link",
419
- # "dot",
420
238
  # "yfi",
421
239
  # "usd",
422
- # "aed",
423
- # "ars",
424
240
  # "aud",
425
- # "bdt",
426
- # "bhd",
427
- # "bmd",
428
- # "brl",
429
- # "cad",
430
- # "chf",
431
- # "clp",
432
- # "cny",
433
- # "czk",
434
- # "dkk",
435
241
  # "eur",
436
242
  # "gbp",
437
- # "hkd",
438
- # "huf",
439
- # "idr",
440
- # "ils",
441
- # "inr",
442
- # "jpy",
443
- # "krw",
444
- # "kwd",
445
- # "lkr",
446
- # "mmk",
447
- # "mxn",
448
- # "myr",
449
- # "ngn",
450
- # "nok",
451
- # "nzd",
452
- # "php",
453
- # "pkr",
454
- # "pln",
455
- # "rub",
456
- # "sar",
457
- # "sek",
458
- # "sgd",
459
- # "thb",
460
- # "try",
461
- # "twd",
462
- # "uah",
463
- # "vef",
464
- # "vnd",
465
- # "zar",
466
- # "xdr",
467
- # "xag",
468
- # "xau",
469
- # "bits",
470
- # "sats"
471
243
  # ]
472
244
  def supported_currencies
473
- get('simple/supported_vs_currencies')
245
+ get 'simple/supported_vs_currencies'
474
246
  end
475
247
 
476
248
  # Fetches the exchange rate for a coin or currency in the given coin or currency.
@@ -481,7 +253,7 @@ module CoingeckoRuby
481
253
  #
482
254
  # @example Fetch the exchange rate for BTC-USD.
483
255
  # client.get_exchange_rate(from: 'bitcoin', to: 'usd')
484
- # @example Response object
256
+ # @example Sample response object
485
257
  # {
486
258
  # "bitcoin" => {
487
259
  # "usd" => 47931 # current price in given currency
@@ -489,7 +261,7 @@ module CoingeckoRuby
489
261
  # }
490
262
  # @example Fetch the exchange rate for BTC-ETH.
491
263
  # client.get_exchange_rate(from: 'bitcoin', to: 'eth')
492
- # @example Response object
264
+ # @example Sample response object
493
265
  # {
494
266
  # "bitcoin" => {
495
267
  # "eth" => 12.71434 # current price in given currency