binance 0.4.3 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4b289ccbe6f44b3b9333c2fddc292b9fb29a5793
4
- data.tar.gz: 51290afdf0730fac191c7ecce6ad6321e7c05f0e
2
+ SHA256:
3
+ metadata.gz: 7fcb362280e04bbc111de254eb77f58fd346e2e5c26d636f087d6b103d5102f9
4
+ data.tar.gz: 8e541c5ffc985e1d6b969cc71efe4830f387e3055f08252c9d8bab2aff217cdf
5
5
  SHA512:
6
- metadata.gz: 8b741a8fb7fd200f8b6b4ab981abf0c13c4ee771119dd100ffdb9937c49ccbdd97a6d397607124742e56d0f4db418c6d9f3be68ccf8d4be8bf426dad67fcc9d3
7
- data.tar.gz: 86c30f1a057a4f174b90258f38193e701d34fb533eed49139b0f5be4ebe25e73b400597a3224c942491b1d888bb94fff9ec2d7c2453ad11e2dd886e5216ce0a9
6
+ metadata.gz: d9018d7c13dd2c2b3dd9d622c230084a36b8c3cf02f4439bb6aa40d46f0e7ee7f5c734b2b6b12ce6263bab566a3b54fd5244b8e81f758977eabb190a2387a1d4
7
+ data.tar.gz: 101101bcb98d3dbb6782a7dafc9b072216aa7def8468843b0f1ee0b5a3ee704e973b5ebfa5dc6f0e76ffe936cc2f6e5dbe9110a4c40f1abee4ec45aa6cd1ead3
@@ -1,122 +1,47 @@
1
1
 
2
2
  require 'faraday'
3
- require 'faraday_middleware'
4
3
 
5
4
  require_relative 'rest/sign_request_middleware'
6
5
  require_relative 'rest/timestamp_request_middleware'
7
-
8
- require_relative 'rest/public_api'
9
- require_relative 'rest/account_api'
10
- require_relative 'rest/withdraw_api'
11
-
12
- require_relative 'rest/api_endpoints'
6
+ require_relative 'rest/clients'
7
+ require_relative 'rest/endpoints'
8
+ require_relative 'rest/methods'
13
9
 
14
10
  module Binance
15
11
  module Client
16
- # Public: Client with methods mirroring the Binance REST APIs
17
12
  class REST
18
- # Public: String base url for REST client to use
19
13
  BASE_URL = 'https://api.binance.com'.freeze
20
14
 
21
- include PublicAPI
22
- include AccountAPI
23
- include WithdrawAPI
24
-
25
- # Public: Initialize a REST Client
26
- #
27
- # :api_key - The String API key to authenticate (Default = '').
28
- #
29
- # :secret_key - The String secret key to authenticate (Default = '').
30
- #
31
- # :adapter - The Faraday::Adapter to be used for the client
32
- # (Default = Faraday.default_adapter).
33
15
  def initialize(api_key: '', secret_key: '',
34
16
  adapter: Faraday.default_adapter)
35
- @library = {}
36
- # Endpoint doesn't require an api_key or secret_key
37
- @library[:public] = public_client adapter
38
- # Endpoint requires an api_key
39
- @library[:verified] = verified_client api_key, adapter
40
- # Endpoint requires an api_key and secret_key
41
- @library[:signed] = signed_client api_key, secret_key, adapter
42
- # Endpoint requires an api_key and secret_key - for the Withdraw API
43
- @library[:withdraw] = withdraw_client api_key, secret_key, adapter
44
-
45
- end
46
-
47
- private
48
-
49
- def public_client(adapter)
50
- Faraday.new(url: "#{BASE_URL}/api") do |conn|
51
- conn.request :json
52
- conn.response :json, content_type: /\bjson$/
53
- conn.adapter adapter
54
- end
55
- end
56
-
57
- def signed_client(api_key, secret_key, adapter)
58
- Faraday.new(url: "#{BASE_URL}/api") do |conn|
59
- conn.request :json
60
- conn.response :json, content_type: /\bjson$/
61
- conn.headers['X-MBX-APIKEY'] = api_key
62
- conn.use TimestampRequestMiddleware
63
- conn.use SignRequestMiddleware, secret_key
64
- conn.adapter adapter
65
- end
66
- end
67
-
68
- def withdraw_client(api_key, secret_key, adapter)
69
- Faraday.new(url: "#{BASE_URL}/wapi") do |conn|
70
- conn.request :url_encoded
71
- conn.response :json, content_type: /\bjson$/
72
- conn.headers['X-MBX-APIKEY'] = api_key
73
- conn.use TimestampRequestMiddleware
74
- conn.use SignRequestMiddleware, secret_key
75
- conn.adapter adapter
76
- end
77
- end
78
-
79
- def verified_client(api_key, adapter)
80
- Faraday.new(url: "#{BASE_URL}/api") do |conn|
81
- conn.response :json, content_type: /\bjson$/
82
- conn.headers['X-MBX-APIKEY'] = api_key
83
- conn.adapter adapter
84
- end
17
+ @clients = {}
18
+ @clients[:public] = public_client adapter
19
+ @clients[:verified] = verified_client api_key, adapter
20
+ @clients[:signed] = signed_client api_key, secret_key, adapter
21
+ @clients[:withdraw] = withdraw_client api_key, secret_key, adapter
22
+ @clients[:public_withdraw] = public_withdraw_client adapter
85
23
  end
86
24
 
87
- # Internal: Create a request that hits one of the REST APIs
88
- #
89
- # api - The Symbol that represents which API to use.
90
- #
91
- # method - The Symbol that represents which HTTP method to use.
92
- #
93
- # endpoint - The String that represents which API endpoint to request
94
- # from.
95
- #
96
- # options - The Hash which hosts various REST query params. (Default = {})
97
- # Each endpoint will have their own required and optional
98
- # params.
99
- def request(api, method, endpoint, options = {})
100
- response = @library[api].send(method) do |req|
101
- req.url API_ENDPOINTS[endpoint]
102
- req.params.merge! options
25
+ METHODS.each do |method|
26
+ define_method(method[:name]) do |options = {}|
27
+ response = @clients[method[:client]].send(method[:action]) do |req|
28
+ req.url ENDPOINTS[method[:endpoint]]
29
+ req.params.merge! options.map { |k, v| [camelize(k.to_s), v] }.to_h
30
+ end
31
+ response.body
103
32
  end
104
-
105
- response.body
106
33
  end
107
34
 
108
- # Internal: Append key-value pair to REST query string
109
- #
110
- # query - The String of the existing request query url.
111
- #
112
- # key - The String that represents the param type.
113
- #
114
- # value - The String that represents the param value.
115
35
  def self.add_query_param(query, key, value)
116
36
  query = query.to_s
117
37
  query << '&' unless query.empty?
118
38
  query << "#{Faraday::Utils.escape key}=#{Faraday::Utils.escape value}"
119
39
  end
40
+
41
+ def camelize(str)
42
+ str.split('_')
43
+ .map.with_index { |word, i| i.zero? ? word : word.capitalize }.join
44
+ end
120
45
  end
121
46
  end
122
47
  end
@@ -0,0 +1,54 @@
1
+
2
+ require 'faraday_middleware'
3
+
4
+ module Binance
5
+ module Client
6
+ class REST
7
+ def public_client(adapter)
8
+ Faraday.new(url: "#{BASE_URL}/api") do |conn|
9
+ conn.request :json
10
+ conn.response :json, content_type: /\bjson$/
11
+ conn.adapter adapter
12
+ end
13
+ end
14
+
15
+ def verified_client(api_key, adapter)
16
+ Faraday.new(url: "#{BASE_URL}/api") do |conn|
17
+ conn.response :json, content_type: /\bjson$/
18
+ conn.headers['X-MBX-APIKEY'] = api_key
19
+ conn.adapter adapter
20
+ end
21
+ end
22
+
23
+ def signed_client(api_key, secret_key, adapter)
24
+ Faraday.new(url: "#{BASE_URL}/api") do |conn|
25
+ conn.request :json
26
+ conn.response :json, content_type: /\bjson$/
27
+ conn.headers['X-MBX-APIKEY'] = api_key
28
+ conn.use TimestampRequestMiddleware
29
+ conn.use SignRequestMiddleware, secret_key
30
+ conn.adapter adapter
31
+ end
32
+ end
33
+
34
+ def public_withdraw_client(adapter)
35
+ Faraday.new(url: "#{BASE_URL}/wapi") do |conn|
36
+ conn.request :json
37
+ conn.response :json, content_type: /\bjson$/
38
+ conn.adapter adapter
39
+ end
40
+ end
41
+
42
+ def withdraw_client(api_key, secret_key, adapter)
43
+ Faraday.new(url: "#{BASE_URL}/wapi") do |conn|
44
+ conn.request :url_encoded
45
+ conn.response :json, content_type: /\bjson$/
46
+ conn.headers['X-MBX-APIKEY'] = api_key
47
+ conn.use TimestampRequestMiddleware
48
+ conn.use SignRequestMiddleware, secret_key
49
+ conn.adapter adapter
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,40 @@
1
+
2
+ module Binance
3
+ module Client
4
+ class REST
5
+ ENDPOINTS = {
6
+ # Public API Endpoints
7
+ ping: 'v1/ping',
8
+ time: 'v1/time',
9
+ exchange_info: 'v1/exchangeInfo',
10
+ products: '/exchange/public/products',
11
+ depth: 'v1/depth',
12
+ trades: 'v1/trades',
13
+ historical_trades: 'v1/historicalTrades',
14
+ agg_trades: 'v1/aggTrades',
15
+ klines: 'v1/klines',
16
+ twenty_four_hour: 'v1/ticker/24hr',
17
+ price: 'v3/ticker/price',
18
+ book_ticker: 'v3/ticker/bookTicker',
19
+
20
+ # Account API Endpoints
21
+ order: 'v3/order',
22
+ test_order: 'v3/order/test',
23
+ open_orders: 'v3/openOrders',
24
+ all_orders: 'v3/allOrders',
25
+ account: 'v3/account',
26
+ my_trades: 'v3/myTrades',
27
+ user_data_stream: 'v1/userDataStream',
28
+
29
+ # Withdraw API Endpoints
30
+ withdraw: 'v3/withdraw.html',
31
+ deposit_history: 'v3/depositHistory.html',
32
+ withdraw_history: 'v3/withdrawHistory.html',
33
+ deposit_address: 'v3/depositAddress.html',
34
+ account_status: 'v3/accountStatus.html',
35
+ system_status: 'v3/systemStatus.html',
36
+ withdraw_fee: 'v3/withdrawFee.html'
37
+ }.freeze
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,104 @@
1
+
2
+ module Binance
3
+ module Client
4
+ class REST
5
+ METHODS = [
6
+ # Public API Methods
7
+ # #ping
8
+ { name: :ping, client: :public,
9
+ action: :get, endpoint: :ping },
10
+ # #time
11
+ { name: :time, client: :public,
12
+ action: :get, endpoint: :time },
13
+ # #exchange_info
14
+ { name: :exchange_info, client: :public,
15
+ action: :get, endpoint: :exchange_info },
16
+ # #products
17
+ { name: :products, client: :public,
18
+ action: :get, endpoint: :products },
19
+ # #depth
20
+ { name: :depth, client: :public,
21
+ action: :get, endpoint: :depth },
22
+ # #trades
23
+ { name: :trades, client: :public,
24
+ action: :get, endpoint: :trades },
25
+ # #historical_trades
26
+ { name: :historical_trades, client: :verified,
27
+ action: :get, endpoint: :historical_trades },
28
+ # #agg_trades
29
+ { name: :agg_trades, client: :public,
30
+ action: :get, endpoint: :agg_trades },
31
+ # #klines
32
+ { name: :klines, client: :public,
33
+ action: :get, endpoint: :klines },
34
+ # #twenty_four_hour
35
+ { name: :twenty_four_hour, client: :public,
36
+ action: :get, endpoint: :twenty_four_hour },
37
+ # #price
38
+ { name: :price, client: :public,
39
+ action: :get, endpoint: :price },
40
+ # #book_ticker
41
+ { name: :book_ticker, client: :public,
42
+ action: :get, endpoint: :book_ticker },
43
+
44
+ # Account API Methods
45
+ # #create_order!
46
+ { name: :create_order!, client: :signed,
47
+ action: :post, endpoint: :order },
48
+ # #create_test_order
49
+ { name: :create_test_order, client: :signed,
50
+ action: :post, endpoint: :test_order },
51
+ # #query_order
52
+ { name: :query_order, client: :signed,
53
+ action: :get, endpoint: :order },
54
+ # #cancel_order!
55
+ { name: :cancel_order!, client: :signed,
56
+ action: :delete, endpoint: :order },
57
+ # #open_orders
58
+ { name: :open_orders, client: :signed,
59
+ action: :get, endpoint: :open_orders },
60
+ # #all_orders
61
+ { name: :all_orders, client: :signed,
62
+ action: :get, endpoint: :all_orders },
63
+ # #account_info
64
+ { name: :account_info, client: :signed,
65
+ action: :get, endpoint: :account_info },
66
+ # #my_trades
67
+ { name: :my_trades, client: :signed,
68
+ action: :get, endpoint: :my_trades },
69
+ # #listen_key
70
+ { name: :listen_key, client: :verified,
71
+ action: :post, endpoint: :user_data_stream },
72
+ # #keep_alive_stream!
73
+ { name: :keep_alive_stream!, client: :verified,
74
+ action: :put, endpoint: :user_data_stream },
75
+ # #close_stream!
76
+ { name: :close_stream!, client: :verified,
77
+ action: :delete, endpoint: :user_data_stream },
78
+
79
+ # Withdraw API Methods
80
+ # #withdraw!
81
+ { name: :withdraw!, client: :withdraw,
82
+ action: :post, endpoint: :withdraw },
83
+ # #deposit_history
84
+ { name: :deposit_history, client: :withdraw,
85
+ action: :get, endpoint: :deposit_history },
86
+ # #withdraw_history
87
+ { name: :withdraw_history, client: :withdraw,
88
+ action: :get, endpoint: :withdraw_history },
89
+ # #deposit_address
90
+ { name: :deposit_address, client: :withdraw,
91
+ action: :get, endpoint: :deposit_address },
92
+ # #account_status
93
+ { name: :account_status, client: :withdraw,
94
+ action: :get, endpoint: :account_status },
95
+ # #system_status
96
+ { name: :system_status, client: :public_withdraw,
97
+ action: :get, endpoint: :system_status },
98
+ # #withdraw_fee
99
+ { name: :withdraw_fee, client: :withdraw,
100
+ action: :get, endpoint: :withdraw_fee }
101
+ ].freeze
102
+ end
103
+ end
104
+ end
@@ -5,10 +5,10 @@ module Binance
5
5
  # Sign the query string using HMAC(sha-256) and appends to query string
6
6
  SignRequestMiddleware = Struct.new(:app, :secret_key) do
7
7
  def call(env)
8
- value = OpenSSL::HMAC.hexdigest(
8
+ hash = OpenSSL::HMAC.hexdigest(
9
9
  OpenSSL::Digest.new('sha256'), secret_key, env.url.query
10
10
  )
11
- env.url.query = REST.add_query_param(env.url.query, 'signature', value)
11
+ env.url.query = REST.add_query_param(env.url.query, 'signature', hash)
12
12
 
13
13
  app.call env
14
14
  end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Binance
3
- VERSION = '0.4.3'.freeze
3
+ VERSION = '1.0'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Ray Shisler III
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-09 00:00:00.000000000 Z
11
+ date: 2018-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,12 +105,11 @@ files:
105
105
  - bin/setup
106
106
  - lib/binance.rb
107
107
  - lib/binance/client/rest.rb
108
- - lib/binance/client/rest/account_api.rb
109
- - lib/binance/client/rest/api_endpoints.rb
110
- - lib/binance/client/rest/public_api.rb
108
+ - lib/binance/client/rest/clients.rb
109
+ - lib/binance/client/rest/endpoints.rb
110
+ - lib/binance/client/rest/methods.rb
111
111
  - lib/binance/client/rest/sign_request_middleware.rb
112
112
  - lib/binance/client/rest/timestamp_request_middleware.rb
113
- - lib/binance/client/rest/withdraw_api.rb
114
113
  - lib/binance/client/websocket.rb
115
114
  - lib/binance/version.rb
116
115
  homepage: https://github.com/craysiii/binance
@@ -133,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
132
  version: '0'
134
133
  requirements: []
135
134
  rubyforge_project:
136
- rubygems_version: 2.6.11
135
+ rubygems_version: 2.7.3
137
136
  signing_key:
138
137
  specification_version: 4
139
138
  summary: API Wrapper for the Binance cryptocurrency exchange.
@@ -1,192 +0,0 @@
1
-
2
- module Binance
3
- module Client
4
- class REST
5
- # Public: A module containing all of the Account API endpoints
6
- module AccountAPI
7
- # Public: Create a new order on the specified symbol for the
8
- # authenticated account
9
- #
10
- # options - The Hash which hosts various REST query params.
11
- # :symbol - The String of which trading pair to create the
12
- # order on.
13
- # :side - The String determining which side to create the
14
- # order on.
15
- # :type - The String determining what type of order it is.
16
- # :timeInForce - The String determining what the time in force is
17
- # (optional).
18
- # :quantity - The String determining the amount of assets to
19
- # purchase.
20
- # :price - The String determining what price to purchase at
21
- # (optional).
22
- # :newClientOrderId - The String which uniquely identifies this order
23
- # (optional).
24
- # :stopPrice - The String determining which price to stop at
25
- # (optional).
26
- # :icebergQty - The String determining the amount of assets to
27
- # show on the order book (optional).
28
- # :newOrderRespType - The String which sets the type of response to
29
- # receive (optional).
30
- # :recvWindow - The Number of how long a request is valid for
31
- # in milliseconds (optional).
32
- #
33
- # Returns a Hash of the request response
34
- def create_order(options)
35
- request :signed, :post, :order, options
36
- end
37
-
38
- # Public: Create a test order on the specified symbol for the
39
- # authenticated account
40
- #
41
- # options - The Hash which hosts various REST query params.
42
- # :symbol - The String of which trading pair to create the
43
- # order on.
44
- # :side - The String determining which side to create the
45
- # order on.
46
- # :type - The String determining what type of order it is.
47
- # :timeInForce - The String determining what the time in force is
48
- # (optional).
49
- # :quantity - The String determining the amount of assets to
50
- # purchase.
51
- # :price - The String determining what price to purchase at
52
- # (optional).
53
- # :newClientOrderId - The String which uniquely identifies this order
54
- # (optional).
55
- # :stopPrice - The String determining which price to stop at
56
- # (optional).
57
- # :icebergQty - The String determining the amount of assets to
58
- # show on the order book (optional).
59
- # :newOrderRespType - The String which sets the type of response to
60
- # receive (optional).
61
- # :recvWindow - The Number of how long a request is valid for
62
- # in milliseconds (optional).
63
- #
64
- # Returns a Hash of the request response
65
- def create_test_order(options)
66
- request :signed, :post, :order_test, options
67
- end
68
-
69
- # Public: Query an orders status on the specified symbol for the
70
- # authenticated account. One must send either an :orderId or
71
- # :origOrderId, but not both.
72
- #
73
- # options - The Hash which hosts various REST query params.
74
- # :symbol - The String of which trading pair to query from
75
- # (optional).
76
- # :orderId - The String determining which order to query
77
- # (optional).
78
- # :origClientOrderId - The String determining which order to cancel
79
- # (optional).
80
- # :recvWindow - The Number of how long a request is valid for
81
- # in milliseconds (optional).
82
- #
83
- # Returns a Hash of the request response
84
- def query_order(options)
85
- request :signed, :get, :order, options
86
- end
87
-
88
- # Public: Cancel the order specified for the authenticated account.
89
- # One must send either an :orderId or :origOrderId, but not both.
90
- #
91
- # options - The Hash which hosts various REST query params.
92
- # :symbol - The String of which trading pair to delete from
93
- # (optional).
94
- # :orderId - The String determining which order to cancel
95
- # (optional).
96
- # :origClientOrderId - The String determining which order to cancel
97
- # (optional).
98
- # :newClientOrderId - The String used in uniquely identifying the
99
- # cancel order (optional).
100
- # :recvWindow - The Number of how long a request is valid for
101
- # in milliseconds (optional).
102
- #
103
- # Returns a Hash with the request response
104
- def cancel_order(options)
105
- request :signed, :delete, :order, options
106
- end
107
-
108
- # Public: Retrieve open orders for the authenticated account
109
- #
110
- # options - The Hash which hosts various REST query params.
111
- # :symbol - The String of which trading pair to retrieve
112
- # (optional).
113
- # :recvWindow - The Number of how long a request is valid for in
114
- # milliseconds (optional).
115
- #
116
- # Returns a Hash with the request response
117
- def open_orders(options = {})
118
- request :signed, :get, :openOrders, options
119
- end
120
-
121
- # Public: Retrieve all orders of the specified symbol for the
122
- # authenticated account
123
- #
124
- # options - The Hash which hosts various REST query params.
125
- # :symbol - The String of which trading pair to retrieve.
126
- # :orderId - The String determining which order to start the data
127
- # from (optional).
128
- # :limit - The Number of how many trades to request (optional).
129
- # :recvWindow - The Number of how long a request is valid for in
130
- # milliseconds (optional).
131
- #
132
- # Returns a Hash with the request response
133
- def all_orders(options)
134
- request :signed, :get, :allOrders, options
135
- end
136
-
137
- # Public: Retrieve account information for the authenticated account
138
- #
139
- # options - The Hash which hosts various REST query params.
140
- # :recvWindow - The Number of how long a request is valid for in
141
- # milliseconds (optional).
142
- #
143
- # Returns a Hash with the request response
144
- def account_info(options = {})
145
- request :signed, :get, :account, options
146
- end
147
-
148
- # Public: Retrieve trade data of the specified symbol for the
149
- # authenticated account
150
- #
151
- # options - The Hash which hosts various REST query params.
152
- # :symbol - The String of which trading pair to retrieve.
153
- # :limit - The Number of how many trades to request (optional).
154
- # :fromId - The String of which trade ID to fetch from (optional).
155
- # :recvWindow - The Number of how long a request is valid for in
156
- # milliseconds (optional).
157
- #
158
- # Returns a Hash with the request response
159
- def account_trade_list(options)
160
- request :signed, :get, :myTrades, options
161
- end
162
-
163
- # Public: Retrieve the listen key for the given api key
164
- #
165
- # Returns a Hash with the request response
166
- def listen_key
167
- request :verified, :post, :userDataStream
168
- end
169
-
170
- # Public: Ping the server to keep User Data stream alive
171
- #
172
- # options - The Hash which hosts various REST query params.
173
- # :listen_key - The String of which stream to keep alive
174
- #
175
- # Returns a Hash with the request response
176
- def keep_stream_alive(options)
177
- request :verified, :put, :userDataStream, options
178
- end
179
-
180
- # Public: Close the User Data stream associated with the listen key
181
- #
182
- # options - The Hash which hosts various REST query params.
183
- # :listen_key - The String of which stream to close
184
- #
185
- # Returns a Hash with the request response
186
- def close_stream(options)
187
- request :verified, :delete, :userDataStream, options
188
- end
189
- end
190
- end
191
- end
192
- end
@@ -1,38 +0,0 @@
1
-
2
- module Binance
3
- module Client
4
- class REST
5
- API_ENDPOINTS = {
6
- # Public API Endpoints
7
- ping: 'v1/ping',
8
- time: 'v1/time',
9
- exchangeInfo: 'v1/exchangeInfo',
10
- products: '/exchange/public/products',
11
- depth: 'v1/depth',
12
- trades: 'v1/trades',
13
- historicalTrades: 'v1/historicalTrades',
14
- aggTrades: 'v1/aggTrades',
15
- klines: 'v1/klines',
16
- twenty_four_hour: 'v1/ticker/24hr',
17
- price: 'v3/ticker/price',
18
- bookTicker: 'v3/ticker/bookTicker',
19
-
20
- # Account API Endpoints
21
- order: 'v3/order',
22
- order_test: 'v3/order/test',
23
- openOrders: 'v3/openOrders',
24
- allOrders: 'v3/allOrders',
25
- account: 'v3/account',
26
- myTrades: 'v3/myTrades',
27
- userDataStream: 'v1/userDataStream',
28
-
29
- # Withdraw API Endpoints
30
- withdraw: 'v3/withdraw.html',
31
- depositHistory: 'v3/depositHistory.html',
32
- withdrawHistory: 'v3/withdrawHistory.html',
33
- depositAddress: 'v3/depositAddress.html',
34
- accountStatus: 'v3/accountStatus.html'
35
- }.freeze
36
- end
37
- end
38
- end
@@ -1,149 +0,0 @@
1
-
2
- module Binance
3
- module Client
4
- class REST
5
- # Public: A Module containing all of the Public API endpoints
6
- module PublicAPI
7
- # Public: Ping the server to test connectivity
8
- #
9
- # Returns a Hash with the request response
10
- def ping
11
- request :public, :get, :ping
12
- end
13
-
14
- # Public: Retrieve the server time in milliseconds
15
- #
16
- # Returns a Hash with the request response
17
- def time
18
- request :public, :get, :time
19
- end
20
-
21
- # Public: Retrieve current exchange trading rules and symbol information
22
- #
23
- # Returns a Hash with the request response
24
- def exchange_info
25
- request :public, :get, :exchangeInfo
26
- end
27
-
28
- # Public: Retrieve current exchange asset information. This is an
29
- # undocumented endpoint.
30
- #
31
- # Returns a Hash with the request response
32
- def products
33
- request :public, :get, :products
34
- end
35
-
36
- # Public: Retrieve depth information for the specified symbol
37
- #
38
- # options - The Hash which hosts various REST query params.
39
- # :symbol - The String of which trading pair to retrieve.
40
- # :limit - The Number of how many updates to request (optional).
41
- #
42
- # Returns a Hash with the request response
43
- def depth(options)
44
- request :public, :get, :depth, options
45
- end
46
-
47
- # Public: Retrieve recent trades for the specified symbol
48
- #
49
- # options - The Hash which hosts various REST query params.
50
- # :symbol - The String of which trading pair to retrieve.
51
- # :limit - The Number of how many trades to request (optional).
52
- #
53
- # Returns a Hash with the request response
54
- def trades(options)
55
- request :public, :get, :trades, options
56
- end
57
-
58
- # Public: Retrieve old trade data for the specified symbol
59
- #
60
- # options - The Hash which hosts various REST query params.
61
- # :symbol - The String of which trading pair to retrieve.
62
- # :limit - The Number of how many trades to request (optional).
63
- # :fromId - The String of which trade ID to fetch from (optional).
64
- #
65
- # Returns a Hash with the request response
66
- def historical_trades(options)
67
- request :verified, :get, :historicalTrades, options
68
- end
69
-
70
- # Public: Retrieve aggregate trade data for the specified symbol
71
- #
72
- # options - The Hash which hosts various REST query params.
73
- # :symbol - The String of which trading pair to retrieve.
74
- # :fromId - The String of which trade ID to fetch from (optional).
75
- # :startTime - The Timestamp of when to get trades from in
76
- # milliseconds (optional).
77
- # :endTime - The Timestamp of when to get trades until in
78
- # milliseconds (optional).
79
- # :limit - The Number of how many trades to request (optional).
80
- #
81
- # Returns a Hash with the request response
82
- def agg_trades(options)
83
- request :public, :get, :aggTrades, options
84
- end
85
-
86
- # Public: Retrieve kline data for the specified symbol
87
- #
88
- # options - The Hash which hosts various REST query params.
89
- # :symbol - The String of which trading pair to retrieve.
90
- # :interval - The String of which interval to retrieve (optional).
91
- # :fromId - The String of which trade ID to fetch from (optional).
92
- # :startTime - The Timestamp of when to get trades from in
93
- # milliseconds (optional).
94
- # :endTime - The Timestamp of when to get trades until in
95
- # milliseconds (optional).
96
- # :limit - The Number of how many trades to request (optional).
97
- #
98
- # Returns a Hash with the request response
99
- def klines(options)
100
- request :public, :get, :klines, options
101
- end
102
-
103
- # Public: Retrieve 24 hour ticker price data
104
- #
105
- # options - The Hash which hosts various REST query params.
106
- # :symbol - The String of which trading pair to retrieve (optional).
107
- #
108
- # Returns a Hash with the request response
109
- def twenty_four_hour(options)
110
- request :public, :get, :twenty_four_hour, options
111
- end
112
-
113
- # Public: Retrieve price ticker data for the specified symbol
114
- #
115
- # options - The Hash which hosts various REST query params.
116
- # :symbol - The String of which trading pair to retrieve (optional).
117
- #
118
- # Returns a Hash with the request response
119
- def price(options)
120
- request :public, :get, :price, options
121
- end
122
-
123
- # Public: Retrieve all price ticker data
124
- #
125
- # Returns a Hash with the request response
126
- def all_prices
127
- request :public, :get, :price
128
- end
129
-
130
- # Public: Retrieve best price per quantity on the order book
131
- #
132
- # options - The Hash which hosts various REST query params.
133
- # :symbol - The String of which trading pair to retrieve (optional).
134
- #
135
- # Returns a Hash with the request response
136
- def book_ticker(options)
137
- request :public, :get, :bookTicker, options
138
- end
139
-
140
- # Public: Retrieve all book ticker data for all symbols
141
- #
142
- # Returns a Hash with the request response
143
- def all_book_tickers
144
- request :public, :get, :bookTicker
145
- end
146
- end
147
- end
148
- end
149
- end
@@ -1,83 +0,0 @@
1
-
2
- module Binance
3
- module Client
4
- class REST
5
- # Public: A Module containing all of the Withdraw API endpoints
6
- module WithdrawAPI
7
- # Public: Withdraw the specified asset to the given address using
8
- # the authenticated account
9
- #
10
- # options - The Hash which hosts various REST query params.
11
- # :asset - The String of which asset to withdraw.
12
- # :address - The String of where to send the asset to.
13
- # :addressTag - The String secondary address identifier (optional).
14
- # :amount - The String decimal value of how much to withdraw.
15
- # :name - The String description of the address
16
- # :recvWindow - The Number of how long a request is valid for in
17
- # milliseconds (optional).
18
- #
19
- # Returns a Hash with the request response
20
- def withdraw(options)
21
- request :withdraw, :post, :withdraw, options
22
- end
23
-
24
- # Public: Retrieve the deposit history for the authenticated account
25
- #
26
- # options - The Hash which hosts various REST query params.
27
- # :asset - The String of which asset to retrieve (optional).
28
- # :status - The Number of which status to retrieve (optional).
29
- # :startTime - The Timestamp of when to start the history in
30
- # milliseconds (optional).
31
- # :endTime - The Timestamp of when to end the history in
32
- # milliseconds (optional).
33
- # :recvWindow - The Number of how long a request is valid for in
34
- # milliseconds (optional).
35
- #
36
- # Returns a Hash with the request response
37
- def deposit_history(options = {})
38
- request :withdraw, :get, :depositHistory, options
39
- end
40
-
41
- # Public: Retrieve the withdraw history for the authenticated account
42
- #
43
- # options - The Hash which hosts various REST query params.
44
- # :asset - The String of which asset to retrieve (optional).
45
- # :status - The Number of which status to retrieve (optional).
46
- # :startTime - The Timestamp of when to start the history in
47
- # milliseconds (optional).
48
- # :endTime - The Timestamp of when to end the history in
49
- # milliseconds (optional).
50
- # :recvWindow - The Number of how long a request is valid for in
51
- # milliseconds (optional).
52
- #
53
- # Returns a Hash with the request response
54
- def withdraw_history(options = {})
55
- request :withdraw, :get, :withdrawHistory, options
56
- end
57
-
58
- # Public: Retrieve the deposit address for a specific asset
59
- #
60
- # options - The Hash which hosts various REST query params.
61
- # :asset - The String of which asset to retrieve (optional).
62
- # :recvWindow - The Number of how long a request is valid for in
63
- # milliseconds (optional).
64
- #
65
- # Returns a Hash with the request response
66
- def deposit_address(options)
67
- request :withdraw, :get, :depositAddress, options
68
- end
69
-
70
- # Public: Retrieve current account status
71
- #
72
- # options - The Hash which hosts various REST query params.
73
- # :recvWindow - The Number of how long a request is valid for in
74
- # milliseconds (optional).
75
- #
76
- # Returns a Hash with the request response
77
- def account_status(options)
78
- request :withdraw, :get, :accountStatus, options
79
- end
80
- end
81
- end
82
- end
83
- end