binance-ruby 0.2 → 0.6.1
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 +5 -5
- data/lib/binance-ruby.rb +11 -10
- data/lib/binance/api.rb +15 -15
- data/lib/binance/api/account.rb +8 -0
- data/lib/binance/api/configuration.rb +27 -12
- data/lib/binance/api/error.rb +3 -2
- data/lib/binance/api/margin/order.rb +54 -0
- data/lib/binance/api/order.rb +13 -13
- data/lib/binance/api/request.rb +9 -10
- data/lib/binance/api/version.rb +1 -1
- metadata +26 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6d71494bbe1c0bd851ad2da5dd0e1d5835bc8ca46929e7b02acb0212d419db05
|
4
|
+
data.tar.gz: d843c4b5e0e87c62107221a36dcc3d1dac5e12799e503ddde86e366a0e10b06d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b390a772ad52d2d4156f285e170750b72509cd8073a5a59e0bffcbd860e0898cfcc8a3351562590a7a4ae7e8c2a851891745d2433ffddf0bbc04737a3593add
|
7
|
+
data.tar.gz: 1fb3555d422881f2b6272679952edd9a49c849e8d1142f58933d6ec4c6b03429d57a96825dec09c2327ed783ef7162bee0668e4fa1eee938d0d8aa943d155df4
|
data/lib/binance-ruby.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "active_support/core_ext/string"
|
2
|
+
require "awrence"
|
3
|
+
require "httparty"
|
4
4
|
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
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"
|
data/lib/binance/api.rb
CHANGED
@@ -3,49 +3,49 @@ module Binance
|
|
3
3
|
class << self
|
4
4
|
# Valid limits:[5, 10, 20, 50, 100, 500, 1000]
|
5
5
|
def candlesticks!(endTime: nil, interval: nil, limit: 500, startTime: nil, symbol: nil)
|
6
|
-
raise Error.new(message:
|
7
|
-
raise Error.new(message:
|
6
|
+
raise Error.new(message: "interval is required") unless interval
|
7
|
+
raise Error.new(message: "symbol is required") unless symbol
|
8
8
|
params = { endTime: endTime, interval: interval, limit: limit, startTime: startTime, symbol: symbol }
|
9
|
-
Request.send!(api_key_type: :read_info, path:
|
9
|
+
Request.send!(api_key_type: :read_info, path: "/api/v1/klines", params: params)
|
10
10
|
end
|
11
11
|
|
12
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: endTime, fromId: fromId, limit: limit, startTime: startTime, 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:
|
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:
|
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:
|
27
|
+
Request.send!(api_key_type: :read_info, path: "/api/v1/exchangeInfo")
|
28
28
|
end
|
29
29
|
|
30
30
|
def historical_trades!(symbol: nil, limit: 500, fromId: nil)
|
31
31
|
raise Error.new(message: "symbol is required") unless symbol
|
32
32
|
params = { fromId: fromId, limit: limit, symbol: symbol }
|
33
|
-
Request.send!(api_key_type: :read_info, path:
|
33
|
+
Request.send!(api_key_type: :read_info, path: "/api/v1/historicalTrades", params: params, security_type: :market_data)
|
34
34
|
end
|
35
35
|
|
36
36
|
def info!(recvWindow: nil)
|
37
37
|
timestamp = Configuration.timestamp
|
38
38
|
params = { recvWindow: recvWindow, timestamp: timestamp }.delete_if { |key, value| value.nil? }
|
39
|
-
Request.send!(api_key_type: :read_info, path:
|
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:
|
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(
|
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
50
|
path = ticker_path(type: ticker_type)
|
51
51
|
params = symbol ? { symbol: symbol } : {}
|
@@ -53,13 +53,13 @@ module Binance
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def time!
|
56
|
-
Request.send!(path:
|
56
|
+
Request.send!(path: "/api/v1/time")
|
57
57
|
end
|
58
58
|
|
59
59
|
def trades!(symbol: nil, limit: 500)
|
60
60
|
raise Error.new(message: "symbol is required") unless symbol
|
61
61
|
params = { limit: limit, symbol: symbol }
|
62
|
-
Request.send!(api_key_type: :read_info, path:
|
62
|
+
Request.send!(api_key_type: :read_info, path: "/api/v1/trades", params: params)
|
63
63
|
end
|
64
64
|
|
65
65
|
private
|
@@ -67,8 +67,8 @@ module Binance
|
|
67
67
|
def ticker_path(type:)
|
68
68
|
case type
|
69
69
|
when :daily
|
70
|
-
|
71
|
-
when :price, :bookTicker
|
70
|
+
"/api/v1/ticker/24hr"
|
71
|
+
when :price, :bookTicker, :avgPrice
|
72
72
|
"/api/v3/ticker/#{type.to_s.camelize(:lower)}"
|
73
73
|
end
|
74
74
|
end
|
data/lib/binance/api/account.rb
CHANGED
@@ -2,6 +2,14 @@ module Binance
|
|
2
2
|
module Api
|
3
3
|
class Account
|
4
4
|
class << self
|
5
|
+
def fees!(recvWindow: 5000)
|
6
|
+
timestamp = Configuration.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
|
+
|
5
13
|
def info!(recvWindow: 5000)
|
6
14
|
timestamp = Configuration.timestamp
|
7
15
|
params = { recvWindow: recvWindow, timestamp: timestamp }
|
@@ -1,43 +1,58 @@
|
|
1
|
-
require
|
2
|
-
require
|
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, :
|
9
|
-
|
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
|
14
|
+
instance_api_key || ENV["BINANCE_API_KEY"]
|
15
|
+
end
|
16
|
+
|
17
|
+
def tld
|
18
|
+
tld = ENV["BINANCE_TLD"]&.downcase&.to_sym || :com
|
19
|
+
validate_tld!(tld)
|
20
|
+
tld
|
15
21
|
end
|
16
|
-
|
22
|
+
|
17
23
|
def secret_key
|
18
|
-
instance_variable_get("@secret_key") || ENV[
|
24
|
+
instance_variable_get("@secret_key") || ENV["BINANCE_SECRET_KEY"]
|
19
25
|
end
|
20
26
|
|
21
27
|
def signed_request_signature(payload:)
|
22
28
|
raise Error.new(message: "environment variable 'BINANCE_SECRET_KEY' is required " \
|
23
|
-
|
29
|
+
"for signed requests.") unless secret_key
|
24
30
|
digest = OpenSSL::Digest::SHA256.new
|
25
31
|
OpenSSL::HMAC.hexdigest(digest, secret_key, payload)
|
26
32
|
end
|
27
33
|
|
28
34
|
def timestamp
|
29
|
-
Time.now.utc.strftime(
|
35
|
+
Time.now.utc.strftime("%s%3N")
|
36
|
+
end
|
37
|
+
|
38
|
+
def validate_tld!(tld)
|
39
|
+
error_message = "Invalid tld (top-level-domain): #{tld}. Use one of: #{allowed_tlds.join(", ")}."
|
40
|
+
raise Error.new(message: error_message) unless allowed_tlds.include?(tld&.to_sym)
|
30
41
|
end
|
31
42
|
|
32
43
|
private
|
33
44
|
|
45
|
+
def allowed_tlds
|
46
|
+
[:com, :us]
|
47
|
+
end
|
48
|
+
|
34
49
|
def api_key_types
|
35
50
|
[:none, :read_info, :trading, :withdrawals].freeze
|
36
51
|
end
|
37
52
|
|
38
53
|
def instance_api_key(type: nil)
|
39
|
-
var = "#{type.to_s.downcase}_api_key".sub(/^\_/,
|
40
|
-
instance_variable_get(
|
54
|
+
var = "#{type.to_s.downcase}_api_key".sub(/^\_/, "")
|
55
|
+
instance_variable_get("@" + var)
|
41
56
|
end
|
42
57
|
end
|
43
58
|
end
|
data/lib/binance/api/error.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Binance
|
2
2
|
module Api
|
3
3
|
class Error < StandardError
|
4
|
-
attr_reader :code, :msg
|
4
|
+
attr_reader :code, :msg, :symbol
|
5
5
|
|
6
6
|
class << self
|
7
7
|
# https://github.com/binance-exchange/binance-official-api-docs/blob/master/errors.md
|
@@ -10,9 +10,10 @@ module Binance
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
def initialize(code: nil, json: {}, message: nil)
|
13
|
+
def initialize(code: nil, json: {}, message: nil, symbol: nil)
|
14
14
|
@code = code || json[:code]
|
15
15
|
@msg = message || json[:msg]
|
16
|
+
@symbol = message || json[:symbol]
|
16
17
|
end
|
17
18
|
|
18
19
|
def inspect
|
@@ -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, tld: Configuration.tld)
|
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
|
data/lib/binance/api/order.rb
CHANGED
@@ -9,56 +9,56 @@ module Binance
|
|
9
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
|
-
security_type: :user_data)
|
12
|
+
security_type: :user_data, tld: Configuration.tld)
|
13
13
|
end
|
14
14
|
|
15
15
|
# Be careful when accessing without a symbol!
|
16
16
|
def all_open!(recvWindow: 5000, symbol: nil)
|
17
17
|
timestamp = Configuration.timestamp
|
18
18
|
params = { recvWindow: recvWindow, symbol: symbol, timestamp: timestamp }
|
19
|
-
Request.send!(api_key_type: :read_info, path:
|
20
|
-
params: params, security_type: :user_data)
|
19
|
+
Request.send!(api_key_type: :read_info, path: "/api/v3/openOrders",
|
20
|
+
params: params, security_type: :user_data, tld: Configuration.tld)
|
21
21
|
end
|
22
22
|
|
23
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
25
|
raise Error.new(message: "either orderid or originalclientorderid " \
|
26
|
-
|
26
|
+
"is required") if orderId.nil? && originalClientOrderId.nil?
|
27
27
|
timestamp = Configuration.timestamp
|
28
28
|
params = { orderId: orderId, origClientOrderId: originalClientOrderId,
|
29
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
|
-
params: params, security_type: :trade)
|
32
|
+
params: params, security_type: :trade, tld: Configuration.tld)
|
33
33
|
end
|
34
34
|
|
35
35
|
def create!(icebergQuantity: nil, newClientOrderId: nil, newOrderResponseType: nil,
|
36
36
|
price: nil, quantity: nil, recvWindow: nil, stopPrice: nil, symbol: nil,
|
37
37
|
side: nil, type: nil, timeInForce: nil, test: false)
|
38
38
|
timestamp = Configuration.timestamp
|
39
|
-
params = {
|
39
|
+
params = {
|
40
40
|
icebergQty: icebergQuantity, newClientOrderId: newClientOrderId,
|
41
41
|
newOrderRespType: newOrderResponseType, price: price, quantity: quantity,
|
42
42
|
recvWindow: recvWindow, stopPrice: stopPrice, symbol: symbol, side: side,
|
43
|
-
type: type, timeInForce: timeInForce, timestamp: timestamp
|
43
|
+
type: type, timeInForce: timeInForce, timestamp: timestamp,
|
44
44
|
}.delete_if { |key, value| value.nil? }
|
45
45
|
ensure_required_create_keys!(params: params)
|
46
|
-
path = "/api/v3/order#{
|
46
|
+
path = "/api/v3/order#{"/test" if test}"
|
47
47
|
Request.send!(api_key_type: :trading, method: :post, path: path,
|
48
|
-
params: params, security_type: :trade)
|
48
|
+
params: params, security_type: :trade, tld: Configuration.tld)
|
49
49
|
end
|
50
50
|
|
51
51
|
def status!(orderId: nil, originalClientOrderId: nil, recvWindow: nil, symbol: nil)
|
52
52
|
raise Error.new(message: "symbol is required") if symbol.nil?
|
53
53
|
raise Error.new(message: "either orderid or originalclientorderid " \
|
54
|
-
|
54
|
+
"is required") if orderId.nil? && originalClientOrderId.nil?
|
55
55
|
timestamp = Configuration.timestamp
|
56
56
|
params = {
|
57
57
|
orderId: orderId, origClientOrderId: originalClientOrderId, recvWindow: recvWindow,
|
58
|
-
symbol: symbol, timestamp: timestamp
|
58
|
+
symbol: symbol, timestamp: timestamp,
|
59
59
|
}.delete_if { |key, value| value.nil? }
|
60
60
|
Request.send!(api_key_type: :trading, path: "/api/v3/order",
|
61
|
-
params: params, security_type: :user_data)
|
61
|
+
params: params, security_type: :user_data, tld: Configuration.tld)
|
62
62
|
end
|
63
63
|
|
64
64
|
private
|
@@ -81,7 +81,7 @@ module Binance
|
|
81
81
|
def ensure_required_create_keys!(params:)
|
82
82
|
keys = required_create_keys.dup.concat(additional_required_create_keys(type: params[:type]))
|
83
83
|
missing_keys = keys.select { |key| params[key].nil? }
|
84
|
-
raise Error.new(message: "required keys are missing: #{missing_keys.join(
|
84
|
+
raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty?
|
85
85
|
end
|
86
86
|
|
87
87
|
def required_create_keys
|
data/lib/binance/api/request.rb
CHANGED
@@ -2,16 +2,15 @@ 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:
|
6
|
+
def send!(api_key_type: :none, headers: {}, method: :get, path: "/", params: {}, security_type: :none, tld: :com)
|
7
|
+
Configuration.validate_tld!(tld)
|
8
|
+
self.base_uri "https://api.binance.#{tld}"
|
9
|
+
|
10
10
|
raise Error.new(message: "invalid security type #{security_type}") unless security_types.include?(security_type)
|
11
11
|
all_headers = default_headers(api_key_type: api_key_type, security_type: security_type)
|
12
12
|
params.delete_if { |k, v| v.nil? }
|
13
|
-
params.merge!(signature: signed_request_signature(params: params))
|
14
|
-
if [:trade, :user_data].include?(security_type)
|
13
|
+
params.merge!(signature: signed_request_signature(params: params)) if [:trade, :user_data].include?(security_type)
|
15
14
|
# send() is insecure so don't use it.
|
16
15
|
case method
|
17
16
|
when :get
|
@@ -25,15 +24,15 @@ module Binance
|
|
25
24
|
else
|
26
25
|
raise Error.new(message: "invalid http method used: #{method}")
|
27
26
|
end
|
28
|
-
process!(response: response ||
|
27
|
+
process!(response: response || "{}")
|
29
28
|
end
|
30
29
|
|
31
30
|
private
|
32
31
|
|
33
32
|
def default_headers(api_key_type:, security_type:)
|
34
33
|
headers = {}
|
35
|
-
headers[
|
36
|
-
headers[
|
34
|
+
headers["Content-Type"] = "application/json; charset=utf-8"
|
35
|
+
headers["X-MBX-APIKEY"] = Configuration.api_key(type: api_key_type) unless security_type == :none
|
37
36
|
headers
|
38
37
|
end
|
39
38
|
|
@@ -48,7 +47,7 @@ module Binance
|
|
48
47
|
end
|
49
48
|
|
50
49
|
def signed_request_signature(params:)
|
51
|
-
payload = params.map { |key, value| "#{key}=#{value}" }.join(
|
50
|
+
payload = params.map { |key, value| "#{key}=#{value}" }.join("&")
|
52
51
|
Configuration.signed_request_signature(payload: payload)
|
53
52
|
end
|
54
53
|
end
|
data/lib/binance/api/version.rb
CHANGED
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:
|
4
|
+
version: 0.6.1
|
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:
|
11
|
+
date: 2021-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codecov
|
@@ -109,19 +109,33 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 0.11.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: simplecov
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
118
|
-
type: :
|
117
|
+
version: 0.20.0
|
118
|
+
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
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
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 5.1.0
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: awrence
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,6 +177,7 @@ files:
|
|
163
177
|
- lib/binance/api/configuration.rb
|
164
178
|
- lib/binance/api/data_stream.rb
|
165
179
|
- lib/binance/api/error.rb
|
180
|
+
- lib/binance/api/margin/order.rb
|
166
181
|
- lib/binance/api/order.rb
|
167
182
|
- lib/binance/api/request.rb
|
168
183
|
- lib/binance/api/version.rb
|
@@ -171,7 +186,7 @@ licenses:
|
|
171
186
|
- MIT
|
172
187
|
metadata:
|
173
188
|
allowed_push_host: https://rubygems.org
|
174
|
-
post_install_message:
|
189
|
+
post_install_message:
|
175
190
|
rdoc_options: []
|
176
191
|
require_paths:
|
177
192
|
- lib
|
@@ -186,9 +201,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
201
|
- !ruby/object:Gem::Version
|
187
202
|
version: '0'
|
188
203
|
requirements: []
|
189
|
-
|
190
|
-
|
191
|
-
signing_key:
|
204
|
+
rubygems_version: 3.0.8
|
205
|
+
signing_key:
|
192
206
|
specification_version: 4
|
193
|
-
summary: binance-ruby-0.
|
207
|
+
summary: binance-ruby-0.6.1
|
194
208
|
test_files: []
|