binance-ruby 1.4.1 → 1.5.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/lib/binance/api/version.rb +1 -1
- data/lib/binance/websocket.rb +107 -10
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b7da99e475f0f3f60fa01d00d831e90fe8ce2ba2abf34ae05c7ba0d6c682e2a
|
|
4
|
+
data.tar.gz: d3f695a63e1d2fb300a59c8cad8e5179ab672ee1e2fc6c8743a2258c1dccb5fe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18b1e8698ccf252bd07ce9e553057b6eb34ed1f2c95c7e3cac14a86e6f9434bb9d5532ca8c37f465e32e8da3710ace0324c7d981126f295cc25951179b4ff506
|
|
7
|
+
data.tar.gz: 41c42ed5c5bbfd0cca8ed3a904b9b2bb0842a20e2492b1f40285fd0c7cb1cc850a36c0a30c411c29d32e5b166a6b0c5e40a6637cd8fffe42ab3199c183ab02c1
|
data/lib/binance/api/version.rb
CHANGED
data/lib/binance/websocket.rb
CHANGED
|
@@ -3,7 +3,7 @@ module Binance
|
|
|
3
3
|
class Error < StandardError; end
|
|
4
4
|
|
|
5
5
|
def initialize(on_open: nil, on_close: nil)
|
|
6
|
-
wss_uri = ENV['BINANCE_TEST_NET_ENABLE'] ?
|
|
6
|
+
wss_uri = ENV['BINANCE_TEST_NET_ENABLE'] ? 'wss://testnet.binance.vision/stream' : 'wss://stream.binance.com:9443/stream'
|
|
7
7
|
|
|
8
8
|
super wss_uri, nil, ping: 180
|
|
9
9
|
|
|
@@ -80,6 +80,101 @@ module Binance
|
|
|
80
80
|
subscribe(symbols_fmt.map { |s| "#{s.downcase}@trade" })
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
+
# stream name: <symbol>@depth OR <symbol>@depth@500ms OR <symbol>@depth@100ms
|
|
84
|
+
# {
|
|
85
|
+
# "e": "depthUpdate", // Event type
|
|
86
|
+
# "E": 1571889248277, // Event time
|
|
87
|
+
# "T": 1571889248276, // Transaction time
|
|
88
|
+
# "s": "BTCUSDT",
|
|
89
|
+
# "U": 390497796, // First update ID in event
|
|
90
|
+
# "u": 390497878, // Final update ID in event
|
|
91
|
+
# "pu": 390497794, // Final update Id in last stream(ie `u` in last stream)
|
|
92
|
+
# "b": [ // Bids to be updated
|
|
93
|
+
# [
|
|
94
|
+
# "7403.89", // Price Level to be updated
|
|
95
|
+
# "0.002" // Quantity
|
|
96
|
+
# ],
|
|
97
|
+
# [
|
|
98
|
+
# "7403.90",
|
|
99
|
+
# "3.906"
|
|
100
|
+
# ],
|
|
101
|
+
# [
|
|
102
|
+
# "7404.00",
|
|
103
|
+
# "1.428"
|
|
104
|
+
# ],
|
|
105
|
+
# [
|
|
106
|
+
# "7404.85",
|
|
107
|
+
# "5.239"
|
|
108
|
+
# ],
|
|
109
|
+
# [
|
|
110
|
+
# "7405.43",
|
|
111
|
+
# "2.562"
|
|
112
|
+
# ],
|
|
113
|
+
# ],
|
|
114
|
+
# "a": [ // Asks to be updated
|
|
115
|
+
# [
|
|
116
|
+
# "7405.96", // Price level to be
|
|
117
|
+
# "3.340" // Quantity
|
|
118
|
+
# ],
|
|
119
|
+
# [
|
|
120
|
+
# "7406.63",
|
|
121
|
+
# "4.525"
|
|
122
|
+
# ],
|
|
123
|
+
# [
|
|
124
|
+
# "7407.08",
|
|
125
|
+
# "2.475"
|
|
126
|
+
# ],
|
|
127
|
+
# [
|
|
128
|
+
# "7407.15",
|
|
129
|
+
# "4.800"
|
|
130
|
+
# ],
|
|
131
|
+
# [
|
|
132
|
+
# "7407.20",
|
|
133
|
+
# "0.175"
|
|
134
|
+
# ],
|
|
135
|
+
# ],
|
|
136
|
+
# ]
|
|
137
|
+
|
|
138
|
+
def partial_book_depth!(symbols, level, update_speed = nil, &on_receive)
|
|
139
|
+
symbols_fmt = symbols.is_a?(String) ? [symbols] : symbols
|
|
140
|
+
@book_depth_handler = on_receive
|
|
141
|
+
subscribe(symbols_fmt.map { |s| "#{s.downcase}@depth#{level}#{update_speed ? "@#{update_speed}ms" : ''}" })
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# stream name: <symbol>@depth OR <symbol>@depth@500ms OR <symbol>@depth@100ms
|
|
145
|
+
# {
|
|
146
|
+
# "e": "depthUpdate", // Event type
|
|
147
|
+
# "E": 123456789, // Event time
|
|
148
|
+
# "T": 123456788, // Transaction time
|
|
149
|
+
# "s": "BTCUSDT", // Symbol
|
|
150
|
+
# "U": 157, // First update ID in event
|
|
151
|
+
# "u": 160, // Final update ID in event
|
|
152
|
+
# "pu": 149, // Final update Id in last stream(ie `u` in last stream)
|
|
153
|
+
# "b": [ // Bids to be updated
|
|
154
|
+
# [
|
|
155
|
+
# "0.0024", // Price level to be updated
|
|
156
|
+
# "10" // Quantity
|
|
157
|
+
# ]
|
|
158
|
+
# ],
|
|
159
|
+
# "a": [ // Asks to be updated
|
|
160
|
+
# [
|
|
161
|
+
# "0.0026", // Price level to be updated
|
|
162
|
+
# "100" // Quantity
|
|
163
|
+
# ]
|
|
164
|
+
# ]
|
|
165
|
+
# }
|
|
166
|
+
|
|
167
|
+
def book_depth!(symbols, update_speed = nil, &on_receive)
|
|
168
|
+
symbols_fmt = symbols.is_a?(String) ? [symbols] : symbols
|
|
169
|
+
@book_depth_handler = on_receive
|
|
170
|
+
subscribe(symbols_fmt.map { |s| "#{s.downcase}@depth#{update_speed ? "@#{update_speed}ms" : ''}" })
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def book_depth_unsubscribe!(symbols, update_speed = nil)
|
|
174
|
+
symbols_fmt = symbols.is_a?(String) ? [symbols] : symbols
|
|
175
|
+
unsubscribe(symbols_fmt.map { |s| "#{s.downcase}@depth#{update_speed ? "@#{update_speed}ms" : ''}" })
|
|
176
|
+
end
|
|
177
|
+
|
|
83
178
|
private
|
|
84
179
|
|
|
85
180
|
def process_data(data)
|
|
@@ -92,6 +187,8 @@ module Binance
|
|
|
92
187
|
case json[:data][:e]&.to_sym
|
|
93
188
|
when :kline
|
|
94
189
|
@candlesticks_handler&.call(json[:stream], json[:data])
|
|
190
|
+
when :depthUpdate
|
|
191
|
+
@book_depth_handler&.call(json[:stream], json[:data])
|
|
95
192
|
when :outboundAccountPosition
|
|
96
193
|
when :balanceUpdate
|
|
97
194
|
when :executionReport # order update
|
|
@@ -109,21 +206,21 @@ module Binance
|
|
|
109
206
|
|
|
110
207
|
def subscribe(streams)
|
|
111
208
|
send({
|
|
112
|
-
method:
|
|
209
|
+
method: 'SUBSCRIBE',
|
|
113
210
|
params: streams,
|
|
114
|
-
id: request_id
|
|
211
|
+
id: request_id
|
|
115
212
|
}.to_json)
|
|
116
213
|
end
|
|
117
214
|
|
|
118
215
|
# Terminating socket connection achieves the same result.
|
|
119
216
|
# If you have a use-case for this, please create a GitHub issue.
|
|
120
217
|
#
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
218
|
+
def unsubscribe(streams)
|
|
219
|
+
send({
|
|
220
|
+
method: "UNSUBSCRIBE",
|
|
221
|
+
params: streams,
|
|
222
|
+
id: request_id,
|
|
223
|
+
}.to_json)
|
|
224
|
+
end
|
|
128
225
|
end
|
|
129
226
|
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: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jake Peterson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: codecov
|
|
@@ -237,5 +237,5 @@ requirements: []
|
|
|
237
237
|
rubygems_version: 3.4.10
|
|
238
238
|
signing_key:
|
|
239
239
|
specification_version: 4
|
|
240
|
-
summary: binance-ruby-1.
|
|
240
|
+
summary: binance-ruby-1.5.0
|
|
241
241
|
test_files: []
|