binance-connector-ruby 1.1.0 → 1.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/lib/binance/error.rb +7 -0
- data/lib/binance/spot/market.rb +26 -0
- data/lib/binance/spot/subaccount.rb +81 -0
- data/lib/binance/spot/trade.rb +38 -0
- data/lib/binance/spot/websocket.rb +24 -0
- data/lib/binance/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b029d14cae7ec52f77a9f61775eba15eb33027f47983f2184e49731c5de746a
|
4
|
+
data.tar.gz: 5ecb20e8b7544668b2e4306a5f70548b9e3ce92696f9111b4e4ba4f88b7e4fa4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b779f8bf2a01f165f68748c37385d3a4bf79e9e887a82f5d23c08b111b697cb2280c60c9cfe4609b5c061218f008c4b58dd81e7457e26a7f76dfbafc7f1226e
|
7
|
+
data.tar.gz: 25e0a750c7db5fb5dd26889548d26aa3a3c1e96b0a13ab21898623a79c69393f1df025a4f7b0c3ea6d6ad893d197544d3e24145be6b0a1e335af28dd42a9d19b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.2.0 - 2022-07-15
|
4
|
+
|
5
|
+
### Add
|
6
|
+
- Sub account endpoints
|
7
|
+
- `POST /sapi/v1/sub-account/subAccountApi/ipRestriction` to support master account enable and disable IP restriction for a sub-account API Key
|
8
|
+
- `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to support master account add IP list for a sub-account API Key
|
9
|
+
- `GET /sapi/v1/account/apiRestrictions/ipRestriction` to support master account query IP restriction for a sub-account API Key
|
10
|
+
- `DELETE /sapi/v1/account/apiRestrictions/ipRestriction/ipList` to support master account delete IP list for a sub-account API Key
|
11
|
+
- Market endpoint
|
12
|
+
- `GET /api/v3/ticker`
|
13
|
+
- Trade endpoint
|
14
|
+
- `POST /api/v3/order/cancelReplace`
|
15
|
+
- Websocket methods
|
16
|
+
- `<symbol>@ticker_<window_size>`
|
17
|
+
- `!ticker_<window-size>@arr`
|
18
|
+
|
19
|
+
|
3
20
|
## 1.1.0 - 2022-06-09
|
4
21
|
|
5
22
|
### Add
|
data/lib/binance/error.rb
CHANGED
@@ -25,4 +25,11 @@ module Binance
|
|
25
25
|
)
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
# Error when Multi parameters are not allowed to send together
|
30
|
+
class DuplicatedParametersError < Error
|
31
|
+
def initialize(*kwargs)
|
32
|
+
super("Parameters #{kwargs} should not be sent to server together.")
|
33
|
+
end
|
34
|
+
end
|
28
35
|
end
|
data/lib/binance/spot/market.rb
CHANGED
@@ -215,6 +215,32 @@ module Binance
|
|
215
215
|
params: { symbol: symbol }
|
216
216
|
)
|
217
217
|
end
|
218
|
+
|
219
|
+
# Symbol Order Book Ticker
|
220
|
+
#
|
221
|
+
# Best price/qty on the order book for a symbol or symbols.
|
222
|
+
#
|
223
|
+
# GET /api/v3/ticker/bookTicker
|
224
|
+
#
|
225
|
+
# @param symbol [String] the symbol
|
226
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#symbol-order-book-ticker
|
227
|
+
def ticker(symbol: nil, symbols: nil, windowSize: '1d')
|
228
|
+
raise Binance::DuplicatedParametersError.new('symbol', 'symbols') unless symbols.nil? || symbol.nil?
|
229
|
+
|
230
|
+
params = { symbol: symbol.upcase } if symbol
|
231
|
+
|
232
|
+
if symbols
|
233
|
+
symbols = symbols.map { |s| "\"#{s}\"" }.join(',')
|
234
|
+
params = { symbols: "\[#{symbols}\]".upcase }
|
235
|
+
end
|
236
|
+
|
237
|
+
params[:windowSize] = windowSize
|
238
|
+
|
239
|
+
@session.public_request(
|
240
|
+
path: '/api/v3/ticker',
|
241
|
+
params: params
|
242
|
+
)
|
243
|
+
end
|
218
244
|
end
|
219
245
|
end
|
220
246
|
end
|
@@ -548,6 +548,87 @@ module Binance
|
|
548
548
|
amount: amount
|
549
549
|
))
|
550
550
|
end
|
551
|
+
|
552
|
+
# Enable or Disable IP Restriction for a Sub-account API Key (For Master Account)
|
553
|
+
#
|
554
|
+
# POST /sapi/v1/sub-account/subAccountApi/ipRestriction
|
555
|
+
#
|
556
|
+
# @param email [String]
|
557
|
+
# @param subAccountApiKey [String]
|
558
|
+
# @param ipRestrict [Boolean]
|
559
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
560
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#enable-or-disable-ip-restriction-for-a-sub-account-api-key-for-master-account
|
561
|
+
def sub_account_toggle_ip_restriction(email:, subAccountApiKey:, ipRestrict:, **kwargs)
|
562
|
+
Binance::Utils::Validation.require_param('email', email)
|
563
|
+
Binance::Utils::Validation.require_param('subAccountApiKey', subAccountApiKey)
|
564
|
+
Binance::Utils::Validation.require_param('ipRestrict', ipRestrict)
|
565
|
+
|
566
|
+
@session.sign_request(:post, '/sapi/v1/sub-account/subAccountApi/ipRestriction', params: kwargs.merge(
|
567
|
+
email: email,
|
568
|
+
subAccountApiKey: subAccountApiKey,
|
569
|
+
ipRestrict: ipRestrict
|
570
|
+
))
|
571
|
+
end
|
572
|
+
|
573
|
+
# Add IP List for a Sub-account API Key (For Master Account)
|
574
|
+
#
|
575
|
+
# POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList
|
576
|
+
#
|
577
|
+
# @param email [String]
|
578
|
+
# @param subAccountApiKey [String]
|
579
|
+
# @param ipAddress [String]
|
580
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
581
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#add-ip-list-for-a-sub-account-api-key-for-master-account
|
582
|
+
def sub_account_add_ip_list(email:, subAccountApiKey:, ipAddress:, **kwargs)
|
583
|
+
Binance::Utils::Validation.require_param('email', email)
|
584
|
+
Binance::Utils::Validation.require_param('subAccountApiKey', subAccountApiKey)
|
585
|
+
Binance::Utils::Validation.require_param('ipAddress', ipAddress)
|
586
|
+
|
587
|
+
@session.sign_request(:post, '/sapi/v1/sub-account/subAccountApi/ipRestriction/ipList', params: kwargs.merge(
|
588
|
+
email: email,
|
589
|
+
subAccountApiKey: subAccountApiKey,
|
590
|
+
ipAddress: ipAddress
|
591
|
+
))
|
592
|
+
end
|
593
|
+
|
594
|
+
# Get IP Restriction for a Sub-account API Key (For Master Account)
|
595
|
+
#
|
596
|
+
# GET /sapi/v1/sub-account/subAccountApi/ipRestriction
|
597
|
+
#
|
598
|
+
# @param email [String]
|
599
|
+
# @param subAccountApiKey [String]
|
600
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
601
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-ip-restriction-for-a-sub-account-api-key-for-master-account
|
602
|
+
def sub_account_ip_list(email:, subAccountApiKey:, **kwargs)
|
603
|
+
Binance::Utils::Validation.require_param('email', email)
|
604
|
+
Binance::Utils::Validation.require_param('subAccountApiKey', subAccountApiKey)
|
605
|
+
|
606
|
+
@session.sign_request(:get, '/sapi/v1/sub-account/subAccountApi/ipRestriction', params: kwargs.merge(
|
607
|
+
email: email,
|
608
|
+
subAccountApiKey: subAccountApiKey
|
609
|
+
))
|
610
|
+
end
|
611
|
+
|
612
|
+
# Delete IP List For a Sub-account API Key (For Master Account)
|
613
|
+
#
|
614
|
+
# DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList
|
615
|
+
#
|
616
|
+
# @param email [String]
|
617
|
+
# @param subAccountApiKey [String]
|
618
|
+
# @param ipAddress [String]
|
619
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
620
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-ip-restriction-for-a-sub-account-api-key-for-master-account
|
621
|
+
def sub_account_delete_ip_list(email:, subAccountApiKey:, ipAddress:, **kwargs)
|
622
|
+
Binance::Utils::Validation.require_param('email', email)
|
623
|
+
Binance::Utils::Validation.require_param('subAccountApiKey', subAccountApiKey)
|
624
|
+
Binance::Utils::Validation.require_param('ipAddress', ipAddress)
|
625
|
+
|
626
|
+
@session.sign_request(:delete, '/sapi/v1/sub-account/subAccountApi/ipRestriction/ipList', params: kwargs.merge(
|
627
|
+
email: email,
|
628
|
+
subAccountApiKey: subAccountApiKey,
|
629
|
+
ipAddress: ipAddress
|
630
|
+
))
|
631
|
+
end
|
551
632
|
end
|
552
633
|
end
|
553
634
|
end
|
data/lib/binance/spot/trade.rb
CHANGED
@@ -289,6 +289,44 @@ module Binance
|
|
289
289
|
def get_order_rate_limit(**kwargs)
|
290
290
|
@session.sign_request(:get, '/api/v3/rateLimit/order', params: kwargs)
|
291
291
|
end
|
292
|
+
|
293
|
+
# Cancel an Existing Order and Send a New Order (TRADE)
|
294
|
+
#
|
295
|
+
# POST /api/v3/order/cancelReplace
|
296
|
+
#
|
297
|
+
# @param symbol [String] the symbol
|
298
|
+
# @param side [String]
|
299
|
+
# @param type [String]
|
300
|
+
# @param cancelReplaceMode [String] STOP_ON_FAILURE or ALLOW_FAILURE
|
301
|
+
# @param kwargs [Hash]
|
302
|
+
# @option kwargs [String] :timeInForce
|
303
|
+
# @option kwargs [Float] :quantity
|
304
|
+
# @option kwargs [Float] :quoteOrderQty
|
305
|
+
# @option kwargs [Float] :price
|
306
|
+
# @option kwargs [String] :cancelNewClientOrderId
|
307
|
+
# @option kwargs [String] :cancelOrigClientOrderId
|
308
|
+
# @option kwargs [Integer] :cancelOrderId
|
309
|
+
# @option kwargs [String] :newClientOrderId
|
310
|
+
# @option kwargs [Float] :stopPrice
|
311
|
+
# @option kwargs [Integer] :trailingDelta
|
312
|
+
# @option kwargs [Float] :icebergQty
|
313
|
+
# @option kwargs [String] :newOrderRespType
|
314
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
315
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#cancel-an-existing-order-and-send-a-new-order-trade
|
316
|
+
def cancel_replace(symbol:, side:, type:, cancelReplaceMode:, **kwargs)
|
317
|
+
Binance::Utils::Validation.require_param('symbol', symbol)
|
318
|
+
Binance::Utils::Validation.require_param('side', side)
|
319
|
+
Binance::Utils::Validation.require_param('type', type)
|
320
|
+
Binance::Utils::Validation.require_param('cancelReplaceMode', cancelReplaceMode)
|
321
|
+
|
322
|
+
@session.sign_request(:post, '/api/v3/order/cancelReplace',
|
323
|
+
params: kwargs.merge(
|
324
|
+
symbol: symbol,
|
325
|
+
side: side,
|
326
|
+
type: type,
|
327
|
+
cancelReplaceMode: cancelReplaceMode
|
328
|
+
))
|
329
|
+
end
|
292
330
|
end
|
293
331
|
end
|
294
332
|
end
|
@@ -126,6 +126,30 @@ module Binance
|
|
126
126
|
create_connection(url, callbacks)
|
127
127
|
end
|
128
128
|
|
129
|
+
# Individual Symbol Rolling Window Statistics Streams
|
130
|
+
# Rolling window ticker statistics for a single symbol, computed over multiple windows.
|
131
|
+
# Stream Name: <symbol>@ticker_<window_size>
|
132
|
+
# Window Sizes: 1h,4h
|
133
|
+
# Update Speed: 1000ms
|
134
|
+
#
|
135
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#individual-symbol-rolling-window-statistics-streams
|
136
|
+
def rolling_window_ticker(symbol:, windowSize:, callbacks:)
|
137
|
+
url = "#{@base_url}/ws/#{symbol.downcase}@ticker_#{windowSize}"
|
138
|
+
create_connection(url, callbacks)
|
139
|
+
end
|
140
|
+
|
141
|
+
# All Market Rolling Window Statistics Streams
|
142
|
+
# Rolling window ticker statistics for all market symbols, computed over multiple windows. Note that only tickers that have changed will be present in the array.
|
143
|
+
# Stream Name: !ticker_<window-size>@arr
|
144
|
+
# Window Sizes: 1h, 4h
|
145
|
+
# Update Speed: 1000ms
|
146
|
+
#
|
147
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#all-market-rolling-window-statistics-streams
|
148
|
+
def rolling_window_ticker_all_symbols(windowSize:, callbacks:)
|
149
|
+
url = "#{@base_url}/ws/!ticker_#{windowSize}@arr"
|
150
|
+
create_connection(url, callbacks)
|
151
|
+
end
|
152
|
+
|
129
153
|
# Subscribe to a stream manually
|
130
154
|
# subscribe(stream: "btcusdt@miniTicker") or
|
131
155
|
# subscribe(stream: ["btcusdt@miniTicker", "ethusdt@miniTicker"])
|
data/lib/binance/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: binance-connector-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Binance
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|