binance-ruby 0.1.8 → 0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: '09da2af633b777b955b6b749d939ef72ff949f19'
4
- data.tar.gz: c163e41503d5b39f5982c7c1ce682be3492182af
2
+ SHA256:
3
+ metadata.gz: bbd02bd36bb807895e727ed07261b63c4f8863862dd9016723b69e47d7033856
4
+ data.tar.gz: 64c57054923d757d07cbec602af8a6cc687a8646f65c8c62c63691e872a4e325
5
5
  SHA512:
6
- metadata.gz: efd66a72e714f4ace685b0eda2441c013349f269ec7a1a0dd943114a3d7ddf87f22e9b30e43519d9bd4f24f0e50b569f609e6ec140faaa29ba10ec479a834822
7
- data.tar.gz: f5eb0e09625cf404c8c6e73b53a4d2c71929f2c0050db4ffa0809a424e142ebb0d9b5acbf8b19bb32bfc6eef0ac6072fad557005f87fc990848743f0b7286b8b
6
+ metadata.gz: 01de466a3ba9a8811493029f1eef4ee059f0934ea165854b842c2d655e78fcc3677806ea6fd562142143b8af51afa338fd0f98c5875696f33b75c57efd25b288
7
+ data.tar.gz: cf17dfb48360a3a3ee089fb1461f50660f63344666dab63e3a2e42eb575a28a3bad121499795bae01f1e4d300deb385ed8c5128046a4be42cd3580ca0a8a37c5
@@ -1,12 +1,13 @@
1
- require 'active_support/core_ext/string'
2
- require 'awrence'
3
- require 'httparty'
1
+ require "active_support/core_ext/string"
2
+ require "awrence"
3
+ require "httparty"
4
4
 
5
- require 'binance/api'
6
- require 'binance/api/account'
7
- require 'binance/api/configuration'
8
- require 'binance/api/data_stream'
9
- require 'binance/api/error'
10
- require 'binance/api/order'
11
- require 'binance/api/request'
5
+ require "binance/api"
6
+ require "binance/api/account"
7
+ require "binance/api/configuration"
8
+ require "binance/api/data_stream"
9
+ require "binance/api/error"
10
+ require "binance/api/margin/order"
11
+ require "binance/api/order"
12
+ require "binance/api/request"
12
13
  require "binance/api/version"
@@ -2,63 +2,64 @@ module Binance
2
2
  module Api
3
3
  class << self
4
4
  # Valid limits:[5, 10, 20, 50, 100, 500, 1000]
5
- def candlesticks!(end_time: nil, interval: nil, limit: 500, start_time: nil, symbol: nil)
6
- raise Error.new(message: 'interval is required') unless interval
7
- raise Error.new(message: 'symbol is required') unless symbol
8
- params = { endTime: end_time, interval: interval, limit: limit, startTime: start_time, symbol: symbol }
9
- Request.send!(api_key_type: :read_info, path: '/api/v1/klines', params: params)
5
+ def candlesticks!(endTime: nil, interval: nil, limit: 500, startTime: nil, symbol: nil)
6
+ raise Error.new(message: "interval is required") unless interval
7
+ raise Error.new(message: "symbol is required") unless symbol
8
+ params = { endTime: endTime, interval: interval, limit: limit, startTime: startTime, symbol: symbol }
9
+ Request.send!(api_key_type: :read_info, path: "/api/v1/klines", params: params)
10
10
  end
11
11
 
12
- def compressed_aggregate_trades!(end_time: nil, from_id: nil, limit: 500, start_time: nil, symbol: nil)
12
+ def compressed_aggregate_trades!(endTime: nil, fromId: nil, limit: 500, startTime: nil, symbol: nil)
13
13
  raise Error.new(message: "symbol is required") unless symbol
14
14
  params = {
15
- endTime: end_time, fromId: from_id, limit: limit, startTime: start_time, symbol: symbol
15
+ endTime: endTime, fromId: fromId, limit: limit, startTime: startTime, symbol: symbol,
16
16
  }.delete_if { |key, value| value.nil? }
17
- Request.send!(api_key_type: :read_info, path: '/api/v1/aggTrades', params: params)
17
+ Request.send!(api_key_type: :read_info, path: "/api/v1/aggTrades", params: params)
18
18
  end
19
-
19
+
20
20
  def depth!(symbol: nil, limit: 100)
21
21
  raise Error.new(message: "symbol is required") unless symbol
22
22
  params = { limit: limit, symbol: symbol }
23
- Request.send!(api_key_type: :read_info, path: '/api/v1/depth', params: params)
23
+ Request.send!(api_key_type: :read_info, path: "/api/v1/depth", params: params)
24
24
  end
25
25
 
26
26
  def exchange_info!
27
- Request.send!(api_key_type: :read_info, path: '/api/v1/exchangeInfo')
27
+ Request.send!(api_key_type: :read_info, path: "/api/v1/exchangeInfo")
28
28
  end
29
29
 
30
- def historical_trades!(symbol: nil, limit: 500, from_id: nil)
30
+ def historical_trades!(symbol: nil, limit: 500, fromId: nil)
31
31
  raise Error.new(message: "symbol is required") unless symbol
32
- params = { fromId: from_id, limit: limit, symbol: symbol }
33
- Request.send!(api_key_type: :read_info, path: '/api/v1/historicalTrades', params: params, security_type: :market_data)
32
+ params = { fromId: fromId, limit: limit, symbol: symbol }
33
+ Request.send!(api_key_type: :read_info, path: "/api/v1/historicalTrades", params: params, security_type: :market_data)
34
34
  end
35
35
 
36
- def info!(recv_window: nil)
36
+ def info!(recvWindow: nil)
37
37
  timestamp = Configuration.timestamp
38
- params = { recvWindow: recv_window, timestamp: timestamp }.delete_if { |key, value| value.nil? }
39
- Request.send!(api_key_type: :read_info, path: '/api/v3/account', params: params, security_type: :user_data)
38
+ params = { recvWindow: recvWindow, timestamp: timestamp }.delete_if { |key, value| value.nil? }
39
+ Request.send!(api_key_type: :read_info, path: "/api/v3/account", params: params, security_type: :user_data)
40
40
  end
41
41
 
42
42
  def ping!
43
- Request.send!(path: '/api/v1/ping')
43
+ Request.send!(path: "/api/v1/ping")
44
44
  end
45
45
 
46
46
  def ticker!(symbol: nil, type: nil)
47
47
  ticker_type = type&.to_sym
48
- error_message = "type must be one of: #{ticker_types.join(', ')}. #{type} was provided."
48
+ error_message = "type must be one of: #{ticker_types.join(", ")}. #{type} was provided."
49
49
  raise Error.new(message: error_message) unless ticker_types.include? ticker_type
50
+ path = ticker_path(type: ticker_type)
50
51
  params = symbol ? { symbol: symbol } : {}
51
- Request.send!(api_key_type: :read_info, path: ticker_path(type: type), params: params)
52
+ Request.send!(api_key_type: :read_info, path: path, params: params)
52
53
  end
53
54
 
54
55
  def time!
55
- Request.send!(path: '/api/v1/time')
56
+ Request.send!(path: "/api/v1/time")
56
57
  end
57
58
 
58
59
  def trades!(symbol: nil, limit: 500)
59
60
  raise Error.new(message: "symbol is required") unless symbol
60
61
  params = { limit: limit, symbol: symbol }
61
- Request.send!(api_key_type: :read_info, path: '/api/v1/trades', params: params)
62
+ Request.send!(api_key_type: :read_info, path: "/api/v1/trades", params: params)
62
63
  end
63
64
 
64
65
  private
@@ -66,14 +67,14 @@ module Binance
66
67
  def ticker_path(type:)
67
68
  case type
68
69
  when :daily
69
- '/api/v1/ticker/24hr'
70
- when :price, :book_ticker
70
+ "/api/v1/ticker/24hr"
71
+ when :price, :bookTicker, :avgPrice
71
72
  "/api/v3/ticker/#{type.to_s.camelize(:lower)}"
72
73
  end
73
74
  end
74
75
 
75
76
  def ticker_types
76
- [:daily, :price, :book_ticker].freeze
77
+ [:daily, :price, :bookTicker].freeze
77
78
  end
78
79
  end
79
80
  end
@@ -2,19 +2,27 @@ module Binance
2
2
  module Api
3
3
  class Account
4
4
  class << self
5
- def info!(recv_window: 5000)
5
+ def fees!(recvWindow: 5000)
6
6
  timestamp = Configuration.timestamp
7
- params = { recvWindow: recv_window, timestamp: timestamp }
7
+ params = { recvWindow: recvWindow, timestamp: timestamp }
8
+ Request.send!(api_key_type: :read_info, path: "/wapi/v3/assetDetail.html",
9
+ params: params.delete_if { |key, value| value.nil? },
10
+ security_type: :user_data)
11
+ end
12
+
13
+ def info!(recvWindow: 5000)
14
+ timestamp = Configuration.timestamp
15
+ params = { recvWindow: recvWindow, timestamp: timestamp }
8
16
  Request.send!(api_key_type: :read_info, path: "/api/v3/account",
9
17
  params: params.delete_if { |key, value| value.nil? },
10
18
  security_type: :user_data)
11
19
  end
12
20
 
13
- def trades!(from_id: nil, limit: 500, recv_window: 5000, symbol: nil)
21
+ def trades!(fromId: nil, limit: 500, recvWindow: 5000, symbol: nil)
14
22
  raise Error.new(message: "max limit is 500") unless limit <= 500
15
23
  raise Error.new(message: "symbol is required") if symbol.nil?
16
24
  timestamp = Configuration.timestamp
17
- params = { fromId: from_id, limit: limit, recvWindow: recv_window, symbol: symbol, timestamp: timestamp }
25
+ params = { fromId: fromId, limit: limit, recvWindow: recvWindow, symbol: symbol, timestamp: timestamp }
18
26
  Request.send!(api_key_type: :read_info, path: "/api/v3/myTrades",
19
27
  params: params.delete_if { |key, value| value.nil? },
20
28
  security_type: :user_data)
@@ -1,45 +1,56 @@
1
- require 'openssl'
2
- require 'base64'
1
+ require "openssl"
2
+ require "base64"
3
3
 
4
4
  module Binance
5
5
  module Api
6
6
  class Configuration
7
7
  class << self
8
- attr_writer :api_key, :read_info_api_key, :trading_api_key, :withdrawals_api_key
9
- attr_writer :secret_key
10
-
8
+ attr_writer :api_key, :locale, :read_info_api_key, :secret_key,
9
+ :trading_api_key, :withdrawals_api_key
10
+
11
11
  def api_key(type: nil)
12
12
  raise Error.new(message: "invalid security_type type: #{type}.") unless type.nil? || api_key_types.include?(type)
13
13
  instance_api_key(type: type) || ENV["BINANCE_#{type.to_s.humanize.upcase}_API_KEY"] ||
14
- instance_api_key || ENV["BINANCE_API_KEY"]
14
+ instance_api_key || ENV["BINANCE_API_KEY"]
15
+ end
16
+
17
+ def tld
18
+ tld = ENV["BINANCE_TLD"]&.downcase&.to_sym || :com
19
+ error_message = "Invalid tld (top-level-domain): #{tld}. Use one of: #{allowed_tlds.join(", ")}."
20
+ raise Error.new(message: error_message) unless allowed_tlds.include?(tld)
21
+ tld
15
22
  end
16
-
23
+
17
24
  def secret_key
18
- instance_variable_get("@secret_key") || ENV['BINANCE_SECRET_KEY']
25
+ instance_variable_get("@secret_key") || ENV["BINANCE_SECRET_KEY"]
19
26
  end
20
27
 
21
28
  def signed_request_signature(payload:)
22
29
  raise Error.new(message: "environment variable 'BINANCE_SECRET_KEY' is required " \
23
- "for signed requests.") unless secret_key
30
+ "for signed requests.") unless secret_key
24
31
  digest = OpenSSL::Digest::SHA256.new
25
32
  OpenSSL::HMAC.hexdigest(digest, secret_key, payload)
26
33
  end
27
34
 
28
35
  def timestamp
29
- Time.now.utc.strftime('%s%3N')
36
+ Time.now.utc.strftime("%s%3N")
30
37
  end
31
38
 
32
39
  private
33
40
 
41
+ def allowed_tlds
42
+ [:com, :us]
43
+ end
44
+
34
45
  def api_key_types
35
46
  [:none, :read_info, :trading, :withdrawals].freeze
36
47
  end
37
48
 
38
49
  def instance_api_key(type: nil)
39
- var = "#{type.to_s.downcase}_api_key".sub(/^\_/, '')
40
- instance_variable_get('@' + var)
50
+ var = "#{type.to_s.downcase}_api_key".sub(/^\_/, "")
51
+ instance_variable_get("@" + var)
41
52
  end
42
- end
53
+ end
43
54
  end
44
55
  end
45
56
  end
@@ -0,0 +1,54 @@
1
+ module Binance
2
+ module Api
3
+ module Margin
4
+ class Order
5
+ class << self
6
+ def create!(symbol: nil, isIsolated: false, side: nil, type: nil, quantity: nil,
7
+ quoteOrderQty: nil, price: nil, stopPrice: nil, newClientOrderId: nil,
8
+ icebergQty: nil, newOrderRespType: nil, sideEffectType: nil, timeInForce: nil,
9
+ recvWindow: nil)
10
+ timestamp = Configuration.timestamp
11
+ params = {
12
+ symbol: symbol, isIsolated: isIsolated, side: side, type: type,
13
+ quantity: quantity, quoteOrderQty: quoteOrderQty, price: price,
14
+ stopPrice: stopPrice, newClientOrderId: newClientOrderId, icebergQty: icebergQty,
15
+ newOrderRespType: newOrderRespType, sideEffectType: sideEffectType,
16
+ timeInForce: timeInForce, recvWindow: recvWindow, timestamp: timestamp,
17
+ }.delete_if { |_, value| value.nil? }
18
+ ensure_required_create_keys!(params: params)
19
+ path = "/sapi/v1/margin/order"
20
+ Request.send!(api_key_type: :trading, method: :post, path: path,
21
+ params: params, security_type: :trade)
22
+ end
23
+
24
+ private
25
+
26
+ def additional_required_create_keys(type:)
27
+ case type
28
+ when :limit
29
+ [:price, :timeInForce].freeze
30
+ when :stop_loss, :take_profit
31
+ [:stopPrice].freeze
32
+ when :stop_loss_limit, :take_profit_limit
33
+ [:price, :stopPrice, :timeInForce].freeze
34
+ when :limit_maker
35
+ [:price].freeze
36
+ else
37
+ [].freeze
38
+ end
39
+ end
40
+
41
+ def ensure_required_create_keys!(params:)
42
+ keys = required_create_keys.dup.concat(additional_required_create_keys(type: params[:type]))
43
+ missing_keys = keys.select { |key| params[key].nil? }
44
+ raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty?
45
+ end
46
+
47
+ def required_create_keys
48
+ [:symbol, :side, :type, :timestamp].freeze
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -2,66 +2,60 @@ module Binance
2
2
  module Api
3
3
  class Order
4
4
  class << self
5
- def all!(limit: 500, order_id: nil, recv_window: 5000, symbol: nil)
5
+ def all!(limit: 500, orderId: nil, recvWindow: 5000, symbol: nil)
6
6
  raise Error.new(message: "max limit is 500") unless limit <= 500
7
7
  raise Error.new(message: "symbol is required") if symbol.nil?
8
8
  timestamp = Configuration.timestamp
9
- params = { limit: limit, orderId: order_id, recvWindow: recv_window, symbol: symbol, timestamp: timestamp }
9
+ params = { limit: limit, orderId: orderId, recvWindow: recvWindow, symbol: symbol, timestamp: timestamp }
10
10
  Request.send!(api_key_type: :read_info, path: "/api/v3/allOrders",
11
11
  params: params.delete_if { |key, value| value.nil? },
12
12
  security_type: :user_data)
13
13
  end
14
14
 
15
15
  # Be careful when accessing without a symbol!
16
- def all_open!(recv_window: 5000, symbol: nil)
16
+ def all_open!(recvWindow: 5000, symbol: nil)
17
17
  timestamp = Configuration.timestamp
18
- params = { recvWindow: recv_window, symbol: symbol, timestamp: timestamp }
19
- Request.send!(api_key_type: :read_info, path: '/api/v3/openOrders',
18
+ params = { recvWindow: recvWindow, symbol: symbol, timestamp: timestamp }
19
+ Request.send!(api_key_type: :read_info, path: "/api/v3/openOrders",
20
20
  params: params, security_type: :user_data)
21
21
  end
22
22
 
23
- def cancel!(order_id: nil, original_client_order_id: nil, new_client_order_id: nil, recv_window: nil, symbol: nil)
23
+ def cancel!(orderId: nil, originalClientOrderId: nil, newClientOrderId: nil, recvWindow: nil, symbol: nil)
24
24
  raise Error.new(message: "symbol is required") if symbol.nil?
25
- raise Error.new(message: "either order_id or original_client_order_id " \
26
- "is required") if order_id.nil? && original_client_order_id.nil?
25
+ raise Error.new(message: "either orderid or originalclientorderid " \
26
+ "is required") if orderId.nil? && originalClientOrderId.nil?
27
27
  timestamp = Configuration.timestamp
28
- params = { orderId: order_id, origClientOrderId: original_client_order_id,
29
- newClientOrderId: new_client_order_id, recvWindow: recv_window,
28
+ params = { orderId: orderId, origClientOrderId: originalClientOrderId,
29
+ newClientOrderId: newClientOrderId, recvWindow: recvWindow,
30
30
  symbol: symbol, timestamp: timestamp }.delete_if { |key, value| value.nil? }
31
31
  Request.send!(api_key_type: :trading, method: :delete, path: "/api/v3/order",
32
32
  params: params, security_type: :trade)
33
33
  end
34
34
 
35
- def create!(iceberg_quantity: nil, new_client_order_id: nil, new_order_response_type: nil,
36
- price: nil, quantity: nil, recv_window: nil, stop_price: nil, symbol: nil,
37
- side: nil, type: nil, time_in_force: nil, test: false)
35
+ def create!(icebergQuantity: nil, newClientOrderId: nil, newOrderResponseType: nil,
36
+ price: nil, quantity: nil, recvWindow: nil, stopPrice: nil, symbol: nil,
37
+ side: nil, type: nil, timeInForce: nil, test: false)
38
38
  timestamp = Configuration.timestamp
39
- ensure_required_create_keys!(params: {
40
- iceberg_quantity: iceberg_quantity, new_client_order_id: new_client_order_id,
41
- new_order_response_type: new_order_response_type, price: price,
42
- quantity: quantity, recv_window: recv_window, stop_price: stop_price,
43
- symbol: symbol, side: side, type: type, time_in_force: time_in_force,
44
- timestamp: timestamp
45
- })
46
- params = {
47
- icebergQty: iceberg_quantity, newClientOrderId: new_client_order_id,
48
- newOrderRespType: new_order_response_type, price: price, quantity: quantity,
49
- recvWindow: recv_window, stopPrice: stop_price, symbol: symbol, side: side,
50
- type: type, timeInForce: time_in_force, timestamp: timestamp
39
+ params = {
40
+ icebergQty: icebergQuantity, newClientOrderId: newClientOrderId,
41
+ newOrderRespType: newOrderResponseType, price: price, quantity: quantity,
42
+ recvWindow: recvWindow, stopPrice: stopPrice, symbol: symbol, side: side,
43
+ type: type, timeInForce: timeInForce, timestamp: timestamp,
51
44
  }.delete_if { |key, value| value.nil? }
52
- path = "/api/v3/order#{'/test' if test}"
45
+ ensure_required_create_keys!(params: params)
46
+ path = "/api/v3/order#{"/test" if test}"
53
47
  Request.send!(api_key_type: :trading, method: :post, path: path,
54
48
  params: params, security_type: :trade)
55
49
  end
56
50
 
57
- def status!(order_id: nil, original_client_order_id: nil, recv_window: nil, symbol: nil)
51
+ def status!(orderId: nil, originalClientOrderId: nil, recvWindow: nil, symbol: nil)
58
52
  raise Error.new(message: "symbol is required") if symbol.nil?
59
- raise Error.new(message: "either order_id or original_client_order_id " \
60
- "is required") if order_id.nil? && original_client_order_id.nil?
53
+ raise Error.new(message: "either orderid or originalclientorderid " \
54
+ "is required") if orderId.nil? && originalClientOrderId.nil?
61
55
  timestamp = Configuration.timestamp
62
56
  params = {
63
- orderId: order_id, origClientOrderId: original_client_order_id, recvWindow: recv_window,
64
- symbol: symbol, timestamp: timestamp
57
+ orderId: orderId, origClientOrderId: originalClientOrderId, recvWindow: recvWindow,
58
+ symbol: symbol, timestamp: timestamp,
65
59
  }.delete_if { |key, value| value.nil? }
66
60
  Request.send!(api_key_type: :trading, path: "/api/v3/order",
67
61
  params: params, security_type: :user_data)
@@ -72,11 +66,11 @@ module Binance
72
66
  def additional_required_create_keys(type:)
73
67
  case type
74
68
  when :limit
75
- [:price, :time_in_force].freeze
69
+ [:price, :timeInForce].freeze
76
70
  when :stop_loss, :take_profit
77
- [:stop_price].freeze
71
+ [:stopPrice].freeze
78
72
  when :stop_loss_limit, :take_profit_limit
79
- [:price, :stop_price, :time_in_force].freeze
73
+ [:price, :stopPrice, :timeInForce].freeze
80
74
  when :limit_maker
81
75
  [:price].freeze
82
76
  else
@@ -87,7 +81,7 @@ module Binance
87
81
  def ensure_required_create_keys!(params:)
88
82
  keys = required_create_keys.dup.concat(additional_required_create_keys(type: params[:type]))
89
83
  missing_keys = keys.select { |key| params[key].nil? }
90
- raise Error.new(message: "required keys are missing: #{missing_keys.join(', ')}") unless missing_keys.empty?
84
+ raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty?
91
85
  end
92
86
 
93
87
  def required_create_keys
@@ -2,16 +2,14 @@ module Binance
2
2
  module Api
3
3
  class Request
4
4
  include HTTParty
5
-
6
- base_uri 'https://api.binance.com'
7
-
8
5
  class << self
9
- def send!(api_key_type: :none, headers: {}, method: :get, path: '/', params: {}, security_type: :none)
6
+ def send!(api_key_type: :none, headers: {}, method: :get, path: "/", params: {}, security_type: :none)
7
+ self.base_uri "https://api.binance.#{Configuration.tld}"
8
+
10
9
  raise Error.new(message: "invalid security type #{security_type}") unless security_types.include?(security_type)
11
10
  all_headers = default_headers(api_key_type: api_key_type, security_type: security_type)
12
11
  params.delete_if { |k, v| v.nil? }
13
- params.merge!(signature: signed_request_signature(params: params)) \
14
- if [:trade, :user_data].include?(security_type)
12
+ params.merge!(signature: signed_request_signature(params: params)) if [:trade, :user_data].include?(security_type)
15
13
  # send() is insecure so don't use it.
16
14
  case method
17
15
  when :get
@@ -25,15 +23,15 @@ module Binance
25
23
  else
26
24
  raise Error.new(message: "invalid http method used: #{method}")
27
25
  end
28
- process!(response: response || '{}')
26
+ process!(response: response || "{}")
29
27
  end
30
28
 
31
29
  private
32
30
 
33
31
  def default_headers(api_key_type:, security_type:)
34
32
  headers = {}
35
- headers['Content-Type'] = 'application/json; charset=utf-8'
36
- headers['X-MBX-APIKEY'] = Configuration.api_key(type: api_key_type) unless security_type == :none
33
+ headers["Content-Type"] = "application/json; charset=utf-8"
34
+ headers["X-MBX-APIKEY"] = Configuration.api_key(type: api_key_type) unless security_type == :none
37
35
  headers
38
36
  end
39
37
 
@@ -48,7 +46,7 @@ module Binance
48
46
  end
49
47
 
50
48
  def signed_request_signature(params:)
51
- payload = params.map { |key, value| "#{key}=#{value}" }.join('&')
49
+ payload = params.map { |key, value| "#{key}=#{value}" }.join("&")
52
50
  Configuration.signed_request_signature(payload: payload)
53
51
  end
54
52
  end
@@ -1,5 +1,5 @@
1
1
  module Binance
2
2
  module Api
3
- VERSION = "0.1.8"
3
+ VERSION = "0.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binance-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Peterson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-31 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov
@@ -95,19 +95,53 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '12.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: activesupport
98
+ name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '5.1'
104
- type: :runtime
103
+ version: 0.11.3
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.11.3
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.20.0
118
+ type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '5.1'
124
+ version: 0.20.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: activesupport
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 5.1.0
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: 7.0.0
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 5.1.0
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: 7.0.0
111
145
  - !ruby/object:Gem::Dependency
112
146
  name: awrence
113
147
  requirement: !ruby/object:Gem::Requirement
@@ -149,6 +183,7 @@ files:
149
183
  - lib/binance/api/configuration.rb
150
184
  - lib/binance/api/data_stream.rb
151
185
  - lib/binance/api/error.rb
186
+ - lib/binance/api/margin/order.rb
152
187
  - lib/binance/api/order.rb
153
188
  - lib/binance/api/request.rb
154
189
  - lib/binance/api/version.rb
@@ -157,7 +192,7 @@ licenses:
157
192
  - MIT
158
193
  metadata:
159
194
  allowed_push_host: https://rubygems.org
160
- post_install_message:
195
+ post_install_message:
161
196
  rdoc_options: []
162
197
  require_paths:
163
198
  - lib
@@ -172,9 +207,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
207
  - !ruby/object:Gem::Version
173
208
  version: '0'
174
209
  requirements: []
175
- rubyforge_project:
176
- rubygems_version: 2.5.2
177
- signing_key:
210
+ rubygems_version: 3.0.8
211
+ signing_key:
178
212
  specification_version: 4
179
- summary: binance-ruby-0.1.8
213
+ summary: binance-ruby-0.5
180
214
  test_files: []