binance-connector-ruby 1.0.2 → 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 +34 -0
- data/README.md +2 -0
- data/lib/binance/error.rb +7 -0
- data/lib/binance/spot/convert.rb +29 -0
- data/lib/binance/spot/margin.rb +54 -0
- data/lib/binance/spot/market.rb +26 -0
- data/lib/binance/spot/staking.rb +136 -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/spot.rb +5 -0
- data/lib/binance/version.rb +1 -1
- metadata +7 -7
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,39 @@
|
|
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
|
+
|
20
|
+
## 1.1.0 - 2022-06-09
|
21
|
+
|
22
|
+
### Add
|
23
|
+
- Convert endpoint
|
24
|
+
- `GET /sapi/v1/convert/tradeFlow`
|
25
|
+
- Margin Endpoint
|
26
|
+
- `GET /sapi/v1/margin/crossMarginData`
|
27
|
+
- `GET /sapi/v1/margin/isolatedMarginData`
|
28
|
+
- `GET /sapi/v1/margin/isolatedMarginTier`
|
29
|
+
- `GET /sapi/v1/margin/rateLimit/order`
|
30
|
+
- All Staking Endpoints
|
31
|
+
|
32
|
+
### Update
|
33
|
+
- Fixing rubocop warnnings
|
34
|
+
|
35
|
+
## 1.0.3 - 2022-05-06
|
36
|
+
- Update rake version
|
3
37
|
|
4
38
|
## 1.0.2 - 2021-11-21
|
5
39
|
|
data/README.md
CHANGED
@@ -35,9 +35,11 @@ This is a lightweight library that works as a connector to [Binance public API](
|
|
35
35
|
```shell
|
36
36
|
gem install binance-connector-ruby
|
37
37
|
```
|
38
|
+
|
38
39
|
## Documentation
|
39
40
|
|
40
41
|
[https://www.rubydoc.info/gems/binance-connector-ruby](https://www.rubydoc.info/gems/binance-connector-ruby)
|
42
|
+
|
41
43
|
## Restful APIs
|
42
44
|
|
43
45
|
```ruby
|
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
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Binance
|
4
|
+
class Spot
|
5
|
+
# Convert endpoints
|
6
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#convert-endpoints
|
7
|
+
module Convert
|
8
|
+
# Get Convert Trade History (USER_DATA)
|
9
|
+
#
|
10
|
+
# GET /sapi/v1/convert/tradeFlow
|
11
|
+
#
|
12
|
+
# @param startTime [Integer]
|
13
|
+
# @param endTime [Integer]
|
14
|
+
# @param kwargs [Hash]
|
15
|
+
# @option kwargs [Integer] :limit default 100, max 1000
|
16
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
17
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#convert-endpoints
|
18
|
+
def convert_trade_flow(startTime:, endTime:, **kwargs)
|
19
|
+
Binance::Utils::Validation.require_param('startTime', startTime)
|
20
|
+
Binance::Utils::Validation.require_param('endTime', endTime)
|
21
|
+
|
22
|
+
@session.sign_request(:get, '/sapi/v1/convert/tradeFlow', params: kwargs.merge(
|
23
|
+
startTime: startTime,
|
24
|
+
endTime: endTime
|
25
|
+
))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/binance/spot/margin.rb
CHANGED
@@ -671,6 +671,60 @@ module Binance
|
|
671
671
|
|
672
672
|
@session.sign_request(:get, '/sapi/v1/margin/interestRateHistory', params: kwargs.merge(asset: asset))
|
673
673
|
end
|
674
|
+
|
675
|
+
# Query Cross Margin Fee Data (USER_DATA)
|
676
|
+
#
|
677
|
+
# GET /sapi/v1/margin/crossMarginData
|
678
|
+
#
|
679
|
+
# @param kwargs [Hash]
|
680
|
+
# @option vipLevel [Integer] Default: user's vip level
|
681
|
+
# @option coin [String]
|
682
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
683
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#query-cross-margin-fee-data-user_data
|
684
|
+
def get_cross_margin_data(**kwargs)
|
685
|
+
@session.sign_request(:get, '/sapi/v1/margin/crossMarginData', params: kwargs)
|
686
|
+
end
|
687
|
+
|
688
|
+
# Query Isolated Margin Fee Data (USER_DATA)
|
689
|
+
#
|
690
|
+
# GET /sapi/v1/margin/isolatedMarginData
|
691
|
+
#
|
692
|
+
# @param kwargs [Hash]
|
693
|
+
# @option vipLevel [Integer] Default: user's vip level
|
694
|
+
# @option symbol [String]
|
695
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
696
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#query-isolated-margin-fee-data-user_data
|
697
|
+
def get_isolated_margin_data(**kwargs)
|
698
|
+
@session.sign_request(:get, '/sapi/v1/margin/isolatedMarginData', params: kwargs)
|
699
|
+
end
|
700
|
+
|
701
|
+
# Query Isolated Margin Tier Data (USER_DATA)
|
702
|
+
#
|
703
|
+
# GET /sapi/v1/margin/isolatedMarginTier
|
704
|
+
#
|
705
|
+
# @param symbol [String]
|
706
|
+
# @param kwargs [Hash]
|
707
|
+
# @option tier [Integer]
|
708
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
709
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#query-isolated-margin-tier-data-user_data
|
710
|
+
def get_isolated_margin_tier(symbol:, **kwargs)
|
711
|
+
Binance::Utils::Validation.require_param('symbol', symbol)
|
712
|
+
|
713
|
+
@session.sign_request(:get, '/sapi/v1/margin/isolatedMarginTier', params: kwargs.merge(symbol: symbol))
|
714
|
+
end
|
715
|
+
|
716
|
+
# Query Current Margin Order Count Usage (TRADE)
|
717
|
+
#
|
718
|
+
# GET /sapi/v1/margin/rateLimit/order
|
719
|
+
#
|
720
|
+
# @param kwargs [Hash]
|
721
|
+
# @option isIsolated [String]
|
722
|
+
# @option symbol [String]
|
723
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
724
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#query-isolated-margin-fee-data-user_data
|
725
|
+
def get_margin_order_usage(**kwargs)
|
726
|
+
@session.sign_request(:get, '/sapi/v1/margin/rateLimit/order', params: kwargs)
|
727
|
+
end
|
674
728
|
end
|
675
729
|
end
|
676
730
|
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
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Binance
|
4
|
+
class Spot
|
5
|
+
# all savings endpoints
|
6
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#savings-endpoints
|
7
|
+
module Staking
|
8
|
+
# Get Staking Product List(USER_DATA)
|
9
|
+
#
|
10
|
+
# GET /sapi/v1/staking/productList
|
11
|
+
#
|
12
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
13
|
+
# @param kwargs [Hash]
|
14
|
+
# @option kwargs [String] :asset
|
15
|
+
# @option kwargs [Integer] :current
|
16
|
+
# @option kwargs [Integer] :size
|
17
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
18
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-staking-product-list-user_data
|
19
|
+
def staking_product_list(product:, **kwargs)
|
20
|
+
Binance::Utils::Validation.require_param('product', product)
|
21
|
+
|
22
|
+
@session.sign_request(:get, '/sapi/v1/staking/productList', params: kwargs.merge(product: product))
|
23
|
+
end
|
24
|
+
|
25
|
+
# Purchase Staking Product(USER_DATA)
|
26
|
+
#
|
27
|
+
# POST /sapi/v1/staking/purchase
|
28
|
+
#
|
29
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
30
|
+
# @param productId [String]
|
31
|
+
# @param amount [Float]
|
32
|
+
# @param kwargs [Hash]
|
33
|
+
# @option kwargs [String] :renewable
|
34
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
35
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#purchase-staking-product-user_data
|
36
|
+
def staking_purchase(product:, productId:, amount:, **kwargs)
|
37
|
+
Binance::Utils::Validation.require_param('product', product)
|
38
|
+
Binance::Utils::Validation.require_param('productId', productId)
|
39
|
+
Binance::Utils::Validation.require_param('amount', amount)
|
40
|
+
|
41
|
+
@session.sign_request(:post, '/sapi/v1/staking/purchase', params: kwargs.merge(product: product, productId: productId, amount: amount))
|
42
|
+
end
|
43
|
+
|
44
|
+
# Redeem Staking Product(USER_DATA)
|
45
|
+
#
|
46
|
+
# POST /sapi/v1/staking/redeem
|
47
|
+
#
|
48
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
49
|
+
# @param productId [String]
|
50
|
+
# @param kwargs [Hash]
|
51
|
+
# @option kwargs [Float] :amount
|
52
|
+
# @option kwargs [String] :positionId
|
53
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
54
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#redeem-staking-product-user_data
|
55
|
+
def staking_redeem(product:, productId:, **kwargs)
|
56
|
+
Binance::Utils::Validation.require_param('product', product)
|
57
|
+
Binance::Utils::Validation.require_param('productId', productId)
|
58
|
+
|
59
|
+
@session.sign_request(:post, '/sapi/v1/staking/redeem', params: kwargs.merge(product: product, productId: productId))
|
60
|
+
end
|
61
|
+
|
62
|
+
# Get Staking Product Position(USER_DATA)
|
63
|
+
#
|
64
|
+
# GET /sapi/v1/staking/position
|
65
|
+
#
|
66
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
67
|
+
# @param kwargs [Hash]
|
68
|
+
# @option kwargs [String] :productId
|
69
|
+
# @option kwargs [String] :asset
|
70
|
+
# @option kwargs [Integer] :current
|
71
|
+
# @option kwargs [Integer] :size
|
72
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
73
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-staking-product-list-user_data
|
74
|
+
def staking_position(product:, **kwargs)
|
75
|
+
Binance::Utils::Validation.require_param('product', product)
|
76
|
+
|
77
|
+
@session.sign_request(:get, '/sapi/v1/staking/position', params: kwargs.merge(product: product))
|
78
|
+
end
|
79
|
+
|
80
|
+
# Get Staking History(USER_DATA)
|
81
|
+
#
|
82
|
+
# GET /sapi/v1/staking/stakingRecord
|
83
|
+
#
|
84
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
85
|
+
# @param txnType [String] "SUBSCRIPTION", "REDEMPTION", "INTEREST"
|
86
|
+
# @param kwargs [Hash]
|
87
|
+
# @option kwargs [String] :asset
|
88
|
+
# @option kwargs [Integer] :startTime
|
89
|
+
# @option kwargs [Integer] :endTime
|
90
|
+
# @option kwargs [Integer] :current
|
91
|
+
# @option kwargs [Integer] :size
|
92
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
93
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-staking-history-user_data
|
94
|
+
def staking_history(product:, txnType:, **kwargs)
|
95
|
+
Binance::Utils::Validation.require_param('product', product)
|
96
|
+
Binance::Utils::Validation.require_param('txnType', txnType)
|
97
|
+
|
98
|
+
@session.sign_request(:get, '/sapi/v1/staking/stakingRecord', params: kwargs.merge(product: product, txnType: txnType))
|
99
|
+
end
|
100
|
+
|
101
|
+
# Set Auto Staking(USER_DATA)
|
102
|
+
#
|
103
|
+
# POST /sapi/v1/staking/setAutoStaking
|
104
|
+
#
|
105
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
106
|
+
# @param positionId [String]
|
107
|
+
# @param renewable [String] true or false
|
108
|
+
# @param kwargs [Hash]
|
109
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
110
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#set-auto-staking-user_data
|
111
|
+
def staking_set_auto(product:, positionId:, renewable:, **kwargs)
|
112
|
+
Binance::Utils::Validation.require_param('product', product)
|
113
|
+
Binance::Utils::Validation.require_param('positionId', positionId)
|
114
|
+
Binance::Utils::Validation.require_param('renewable', renewable)
|
115
|
+
|
116
|
+
@session.sign_request(:post, '/sapi/v1/staking/setAutoStaking', params: kwargs.merge(product: product, positionId: positionId, renewable: renewable))
|
117
|
+
end
|
118
|
+
|
119
|
+
# Get Personal Left Quota of Staking Product(USER_DATA)
|
120
|
+
#
|
121
|
+
# GET /sapi/v1/staking/personalLeftQuota
|
122
|
+
#
|
123
|
+
# @param product [String] "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking
|
124
|
+
# @param productId [String]
|
125
|
+
# @param kwargs [Hash]
|
126
|
+
# @option kwargs [Integer] :recvWindow The value cannot be greater than 60000
|
127
|
+
# @see https://binance-docs.github.io/apidocs/spot/en/#get-staking-history-user_data
|
128
|
+
def staking_personal_quota_remain(product:, productId:, **kwargs)
|
129
|
+
Binance::Utils::Validation.require_param('product', product)
|
130
|
+
Binance::Utils::Validation.require_param('productId', productId)
|
131
|
+
|
132
|
+
@session.sign_request(:get, '/sapi/v1/staking/personalLeftQuota', params: kwargs.merge(product: product, productId: productId))
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
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/spot.rb
CHANGED
@@ -8,6 +8,7 @@ require 'binance/error'
|
|
8
8
|
require 'binance/spot/blvt'
|
9
9
|
require 'binance/spot/bswap'
|
10
10
|
require 'binance/spot/c2c'
|
11
|
+
require 'binance/spot/convert'
|
11
12
|
require 'binance/spot/fiat'
|
12
13
|
require 'binance/spot/futures'
|
13
14
|
require 'binance/spot/loan'
|
@@ -15,6 +16,7 @@ require 'binance/spot/margin'
|
|
15
16
|
require 'binance/spot/market'
|
16
17
|
require 'binance/spot/mining'
|
17
18
|
require 'binance/spot/savings'
|
19
|
+
require 'binance/spot/staking'
|
18
20
|
require 'binance/spot/stream'
|
19
21
|
require 'binance/spot/subaccount'
|
20
22
|
require 'binance/spot/trade'
|
@@ -26,6 +28,7 @@ module Binance
|
|
26
28
|
# - Blvt
|
27
29
|
# - Bswap
|
28
30
|
# - C2C
|
31
|
+
# - Convert
|
29
32
|
# - Fiat
|
30
33
|
# - Futures
|
31
34
|
# - Loan
|
@@ -42,6 +45,7 @@ module Binance
|
|
42
45
|
include Binance::Spot::Blvt
|
43
46
|
include Binance::Spot::Bswap
|
44
47
|
include Binance::Spot::C2C
|
48
|
+
include Binance::Spot::Convert
|
45
49
|
include Binance::Spot::Fiat
|
46
50
|
include Binance::Spot::Futures
|
47
51
|
include Binance::Spot::Loan
|
@@ -49,6 +53,7 @@ module Binance
|
|
49
53
|
include Binance::Spot::Market
|
50
54
|
include Binance::Spot::Mining
|
51
55
|
include Binance::Spot::Savings
|
56
|
+
include Binance::Spot::Staking
|
52
57
|
include Binance::Spot::Stream
|
53
58
|
include Binance::Spot::Subaccount
|
54
59
|
include Binance::Spot::Trade
|
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.0
|
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:
|
11
|
+
date: 2022-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '13.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '13.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/binance/spot/blvt.rb
|
112
112
|
- lib/binance/spot/bswap.rb
|
113
113
|
- lib/binance/spot/c2c.rb
|
114
|
+
- lib/binance/spot/convert.rb
|
114
115
|
- lib/binance/spot/fiat.rb
|
115
116
|
- lib/binance/spot/futures.rb
|
116
117
|
- lib/binance/spot/loan.rb
|
@@ -118,6 +119,7 @@ files:
|
|
118
119
|
- lib/binance/spot/market.rb
|
119
120
|
- lib/binance/spot/mining.rb
|
120
121
|
- lib/binance/spot/savings.rb
|
122
|
+
- lib/binance/spot/staking.rb
|
121
123
|
- lib/binance/spot/stream.rb
|
122
124
|
- lib/binance/spot/subaccount.rb
|
123
125
|
- lib/binance/spot/trade.rb
|
@@ -135,9 +137,7 @@ homepage: https://github.com/binance/binance-connector-ruby
|
|
135
137
|
licenses:
|
136
138
|
- MIT
|
137
139
|
metadata:
|
138
|
-
|
139
|
-
documentation_uri: https://binance-docs.github.io/apidocs/spot/en/
|
140
|
-
source_code_uri: https://github.com/binance/binance-connector-ruby
|
140
|
+
rubygems_mfa_required: 'true'
|
141
141
|
post_install_message:
|
142
142
|
rdoc_options: []
|
143
143
|
require_paths:
|