radiator 0.2.2 → 0.2.3a
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/.gitignore +1 -0
- data/.travis.yml +3 -1
- data/Gemfile.lock +17 -17
- data/README.md +13 -4
- data/lib/radiator/api.rb +100 -15
- data/lib/radiator/broadcast_operations.json +53 -43
- data/lib/radiator/methods.json +12 -6
- data/lib/radiator/operation.rb +4 -1
- data/lib/radiator/stream.rb +8 -4
- data/lib/radiator/type/amount.rb +1 -1
- data/lib/radiator/version.rb +1 -1
- data/radiator.gemspec +2 -2
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 233a14d93ff5d6e154945bb6ae6355238c93cfe9
|
4
|
+
data.tar.gz: 841ae7ad957e4c34a8c2e9e9738554b368646480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed970218b63fb9c5aea828e81e3f9aa6c0d8a4b0bd37cd847e2393cbaf0b185f9e96a69e4f99bbe03001020f650ef133a3a7c2b7802f15bcae1d5a8ac59c3afd
|
7
|
+
data.tar.gz: d0b044c28b9c8ce479ffcee8bcc1ec773d9060a1243ae9263867c888f5d9d08798bb07f6499e43d020ec111f2aa938f24d6e9a9174e653ce2c7968335d3172d1
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
radiator (0.2.
|
5
|
-
bitcoin-ruby (= 0.0.
|
4
|
+
radiator (0.2.3a)
|
5
|
+
bitcoin-ruby (= 0.0.11)
|
6
6
|
ffi (= 1.9.18)
|
7
7
|
hashie (~> 3.5, >= 3.5.5)
|
8
8
|
json (~> 1.8, >= 1.8.6)
|
@@ -12,13 +12,13 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
addressable (2.5.
|
16
|
-
public_suffix (
|
17
|
-
awesome_print (1.
|
18
|
-
bitcoin-ruby (0.0.
|
15
|
+
addressable (2.5.2)
|
16
|
+
public_suffix (>= 2.0.2, < 4.0)
|
17
|
+
awesome_print (1.8.0)
|
18
|
+
bitcoin-ruby (0.0.11)
|
19
19
|
codeclimate-test-reporter (0.5.2)
|
20
20
|
simplecov (>= 0.7.1, < 1.0.0)
|
21
|
-
coderay (1.1.
|
21
|
+
coderay (1.1.2)
|
22
22
|
crack (0.4.3)
|
23
23
|
safe_yaml (~> 1.0.0)
|
24
24
|
docile (1.1.5)
|
@@ -27,34 +27,34 @@ GEM
|
|
27
27
|
faraday (0.9.2)
|
28
28
|
multipart-post (>= 1.2, < 3)
|
29
29
|
ffi (1.9.18)
|
30
|
-
hashdiff (0.3.
|
31
|
-
hashie (3.5.
|
30
|
+
hashdiff (0.3.6)
|
31
|
+
hashie (3.5.6)
|
32
32
|
json (1.8.6)
|
33
33
|
little-plugger (1.1.4)
|
34
34
|
logging (2.2.2)
|
35
35
|
little-plugger (~> 1.1)
|
36
36
|
multi_json (~> 1.10)
|
37
37
|
method_source (0.8.2)
|
38
|
-
minitest (5.10.
|
39
|
-
minitest-line (0.6.
|
38
|
+
minitest (5.10.3)
|
39
|
+
minitest-line (0.6.4)
|
40
40
|
minitest (~> 5.0)
|
41
|
-
multi_json (1.12.
|
41
|
+
multi_json (1.12.2)
|
42
42
|
multipart-post (2.0.0)
|
43
43
|
net-http-persistent (2.9.4)
|
44
44
|
pry (0.10.4)
|
45
45
|
coderay (~> 1.1.0)
|
46
46
|
method_source (~> 0.8.1)
|
47
47
|
slop (~> 3.4)
|
48
|
-
public_suffix (
|
48
|
+
public_suffix (3.0.0)
|
49
49
|
rake (11.3.0)
|
50
50
|
safe_yaml (1.0.4)
|
51
51
|
simplecov (0.11.2)
|
52
52
|
docile (~> 1.1.0)
|
53
53
|
json (~> 1.8)
|
54
54
|
simplecov-html (~> 0.10.0)
|
55
|
-
simplecov-html (0.10.
|
55
|
+
simplecov-html (0.10.2)
|
56
56
|
slop (3.6.0)
|
57
|
-
typhoeus (1.
|
57
|
+
typhoeus (1.3.0)
|
58
58
|
ethon (>= 0.9.0)
|
59
59
|
vcr (2.9.3)
|
60
60
|
webmock (2.3.2)
|
@@ -68,7 +68,7 @@ PLATFORMS
|
|
68
68
|
|
69
69
|
DEPENDENCIES
|
70
70
|
awesome_print (~> 1.7, >= 1.7.0)
|
71
|
-
bundler (~> 1.
|
71
|
+
bundler (~> 1.15, >= 1.15.4)
|
72
72
|
codeclimate-test-reporter (~> 0.5.2)
|
73
73
|
faraday (~> 0.9.2)
|
74
74
|
minitest (~> 5.9, >= 5.9.0)
|
@@ -83,4 +83,4 @@ DEPENDENCIES
|
|
83
83
|
yard (~> 0.8.7.6)
|
84
84
|
|
85
85
|
BUNDLED WITH
|
86
|
-
1.
|
86
|
+
1.15.4
|
data/README.md
CHANGED
@@ -9,6 +9,15 @@
|
|
9
9
|
|
10
10
|
Radiator is an API Client for interaction with the STEEM network using Ruby.
|
11
11
|
|
12
|
+
#### Fixes in v0.2.3
|
13
|
+
|
14
|
+
* Gem updates
|
15
|
+
* Added low-level support for persistence and retrying API requests.
|
16
|
+
* Now using exponential back-off for retries.
|
17
|
+
* Detecting presence of `transaction_ids` (if enabled by the node).
|
18
|
+
* Default for `Hashie` warnings now go to `/dev/null`, where they belong.
|
19
|
+
* Added stray methods/operations.
|
20
|
+
|
12
21
|
#### Fixes in v0.2.2
|
13
22
|
|
14
23
|
* Gem updates
|
@@ -194,8 +203,8 @@ Example of the output:
|
|
194
203
|
Transactions are supported:
|
195
204
|
|
196
205
|
```ruby
|
197
|
-
stream.transactions do |tx|
|
198
|
-
puts tx.to_json
|
206
|
+
stream.transactions do |tx, trx_id|
|
207
|
+
puts "[#{trx_id}] #{tx.to_json}"
|
199
208
|
end
|
200
209
|
```
|
201
210
|
|
@@ -234,8 +243,8 @@ Example of the output:
|
|
234
243
|
Even whole blocks:
|
235
244
|
|
236
245
|
```ruby
|
237
|
-
stream.blocks do |bk|
|
238
|
-
puts bk.to_json
|
246
|
+
stream.blocks do |bk, num|
|
247
|
+
puts "[#{num}] #{bk.to_json}"
|
239
248
|
end
|
240
249
|
```
|
241
250
|
|
data/lib/radiator/api.rb
CHANGED
@@ -14,8 +14,13 @@ module Radiator
|
|
14
14
|
@debug = !!options[:debug]
|
15
15
|
@net_http_persistent_enabled = true
|
16
16
|
@logger = options[:logger] || Radiator.logger
|
17
|
+
@hashie_logger = options[:hashie_logger] || Logger.new('/dev/null')
|
17
18
|
|
18
|
-
|
19
|
+
unless @hashie_logger.respond_to? :warn
|
20
|
+
@hashie_logger = Logger.new(@hashie_logger)
|
21
|
+
end
|
22
|
+
|
23
|
+
Hashie.logger = @hashie_logger
|
19
24
|
@method_names = nil
|
20
25
|
end
|
21
26
|
|
@@ -107,14 +112,65 @@ module Radiator
|
|
107
112
|
id: rpc_id,
|
108
113
|
method: "call"
|
109
114
|
}
|
110
|
-
|
111
|
-
response = request(options)
|
112
115
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
116
|
+
loop do
|
117
|
+
begin
|
118
|
+
response = request(options)
|
119
|
+
|
120
|
+
if !!response
|
121
|
+
case response.code
|
122
|
+
when '200'
|
123
|
+
response = JSON[response.body]
|
124
|
+
|
125
|
+
return Hashie::Mash.new(response)
|
126
|
+
when '400'
|
127
|
+
@logger.warn('Code 400: Bad Request, retrying ...')
|
128
|
+
backoff
|
129
|
+
when '502'
|
130
|
+
@logger.warn('Code 502: Bad Gateway, retrying ...')
|
131
|
+
backoff
|
132
|
+
when '503'
|
133
|
+
@logger.warn('Code 503: Service Unavailable, retrying ...')
|
134
|
+
backoff
|
135
|
+
when '504'
|
136
|
+
@logger.warn('Code 504: Gateway Timeout, retrying ...')
|
137
|
+
backoff
|
138
|
+
else
|
139
|
+
ap "Unknown code #{response.code}, retrying ..."
|
140
|
+
ap response
|
141
|
+
backoff
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
@logger.error("No response.")
|
146
|
+
break
|
147
|
+
rescue Errno::ECONNREFUSED => e
|
148
|
+
@logger.warn('Connection refused, retrying ...')
|
149
|
+
backoff
|
150
|
+
rescue Errno::EADDRNOTAVAIL => e
|
151
|
+
@logger.warn('Node not available, retrying ...')
|
152
|
+
backoff
|
153
|
+
rescue Net::ReadTimeout => e
|
154
|
+
@logger.warn('Node read timeout, retrying ...')
|
155
|
+
backoff
|
156
|
+
rescue Net::OpenTimeout => e
|
157
|
+
@logger.warn('Node timeout, retrying ...')
|
158
|
+
backoff
|
159
|
+
rescue RangeError => e
|
160
|
+
@logger.warn('Range Error, retrying ...')
|
161
|
+
backoff
|
162
|
+
rescue OpenSSL::SSL::SSLError => e
|
163
|
+
@logger.warn("SSL Error (#{e.message}), retrying ...")
|
164
|
+
backoff
|
165
|
+
rescue SocketError => e
|
166
|
+
@logger.warn("Socket Error (#{e.message}), retrying ...")
|
167
|
+
backoff
|
168
|
+
rescue => e
|
169
|
+
puts "Unknown exception from request ..."
|
170
|
+
ap e
|
171
|
+
backoff
|
172
|
+
end
|
173
|
+
end # loop
|
118
174
|
end
|
119
175
|
|
120
176
|
def shutdown
|
@@ -152,23 +208,52 @@ module Radiator
|
|
152
208
|
end
|
153
209
|
end
|
154
210
|
|
211
|
+
def post_request
|
212
|
+
Net::HTTP::Post.new uri.request_uri, 'Content-Type' => 'application/json'
|
213
|
+
end
|
214
|
+
|
155
215
|
def request(options)
|
156
216
|
if !!@net_http_persistent_enabled
|
157
217
|
begin
|
158
|
-
request =
|
218
|
+
request = post_request
|
159
219
|
request.body = JSON[options]
|
160
|
-
|
220
|
+
|
221
|
+
if (response = http.request(uri, request)).kind_of? Net::HTTPSuccess
|
222
|
+
return response
|
223
|
+
else
|
224
|
+
@logger.warn "Unexpeced response: #{response.inspect}; temporarily falling back to non-persistent-http"
|
225
|
+
end
|
161
226
|
rescue Net::HTTP::Persistent::Error => e
|
162
|
-
@logger.warn "Unable to perform request: #{request} :: #{e}: #{e.
|
163
|
-
@net_http_persistent_enabled = false
|
227
|
+
@logger.warn "Unable to perform request: #{request} :: #{e} :: #{!!e.cause ? "cause: #{e.cause.message}" : ''}; temporarily falling back to non-persistent-http"
|
164
228
|
end
|
229
|
+
|
230
|
+
@net_http_persistent_enabled = false
|
165
231
|
end
|
166
232
|
|
167
233
|
unless @net_http_persistent_enabled
|
168
|
-
|
169
|
-
|
234
|
+
non_persistent_http = Net::HTTP.new(uri.host, uri.port)
|
235
|
+
non_persistent_http.use_ssl = true
|
236
|
+
non_persistent_http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
237
|
+
request = post_request
|
170
238
|
request.body = JSON[options]
|
171
|
-
|
239
|
+
|
240
|
+
# Try to go back to http persistent on next request.
|
241
|
+
@net_http_persistent_enabled = true
|
242
|
+
|
243
|
+
non_persistent_http.request(request)
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
def backoff
|
248
|
+
@backoff_at ||= Time.now
|
249
|
+
@backoff_sleep ||= 0.01
|
250
|
+
|
251
|
+
@backoff_sleep *= 2
|
252
|
+
sleep @backoff_sleep
|
253
|
+
|
254
|
+
if Time.now - @backoff_at > 300
|
255
|
+
@backoff_at = nil
|
256
|
+
@backoff_sleep = nil
|
172
257
|
end
|
173
258
|
end
|
174
259
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
// Copied from:
|
2
|
-
// https://raw.githubusercontent.com/steemit/steem-js/master/src/broadcast/operations.
|
2
|
+
// https://raw.githubusercontent.com/steemit/steem-js/master/src/broadcast/operations.js
|
3
3
|
|
4
4
|
[
|
5
5
|
{
|
6
|
-
"roles": ["posting"],
|
6
|
+
"roles": ["posting", "active", "owner"],
|
7
7
|
"operation": "vote",
|
8
8
|
"params": [
|
9
9
|
"voter",
|
@@ -13,7 +13,7 @@
|
|
13
13
|
]
|
14
14
|
},
|
15
15
|
{
|
16
|
-
"roles": ["posting"],
|
16
|
+
"roles": ["posting", "active", "owner"],
|
17
17
|
"operation": "comment",
|
18
18
|
"params": [
|
19
19
|
"parent_author",
|
@@ -36,7 +36,7 @@
|
|
36
36
|
]
|
37
37
|
},
|
38
38
|
{
|
39
|
-
"roles": ["active"],
|
39
|
+
"roles": ["active", "owner"],
|
40
40
|
"operation": "transfer_to_vesting",
|
41
41
|
"params": [
|
42
42
|
"from",
|
@@ -45,7 +45,7 @@
|
|
45
45
|
]
|
46
46
|
},
|
47
47
|
{
|
48
|
-
"roles": ["active"],
|
48
|
+
"roles": ["active", "owner"],
|
49
49
|
"operation": "withdraw_vesting",
|
50
50
|
"params": [
|
51
51
|
"account",
|
@@ -53,7 +53,7 @@
|
|
53
53
|
]
|
54
54
|
},
|
55
55
|
{
|
56
|
-
"roles": ["active"],
|
56
|
+
"roles": ["active", "owner"],
|
57
57
|
"operation": "limit_order_create",
|
58
58
|
"params": [
|
59
59
|
"owner",
|
@@ -65,7 +65,7 @@
|
|
65
65
|
]
|
66
66
|
},
|
67
67
|
{
|
68
|
-
"roles": ["active"],
|
68
|
+
"roles": ["active", "owner"],
|
69
69
|
"operation": "limit_order_cancel",
|
70
70
|
"params": [
|
71
71
|
"owner",
|
@@ -73,7 +73,7 @@
|
|
73
73
|
]
|
74
74
|
},
|
75
75
|
{
|
76
|
-
"roles": ["active"],
|
76
|
+
"roles": ["active", "owner"],
|
77
77
|
"operation": "price",
|
78
78
|
"params": [
|
79
79
|
"base",
|
@@ -81,7 +81,7 @@
|
|
81
81
|
]
|
82
82
|
},
|
83
83
|
{
|
84
|
-
"roles": ["active"],
|
84
|
+
"roles": ["active", "owner"],
|
85
85
|
"operation": "feed_publish",
|
86
86
|
"params": [
|
87
87
|
"publisher",
|
@@ -89,7 +89,7 @@
|
|
89
89
|
]
|
90
90
|
},
|
91
91
|
{
|
92
|
-
"roles": ["active"],
|
92
|
+
"roles": ["active", "owner"],
|
93
93
|
"operation": "convert",
|
94
94
|
"params": [
|
95
95
|
"owner",
|
@@ -98,7 +98,7 @@
|
|
98
98
|
]
|
99
99
|
},
|
100
100
|
{
|
101
|
-
"roles": ["active"],
|
101
|
+
"roles": ["active", "owner"],
|
102
102
|
"operation": "account_create",
|
103
103
|
"params": [
|
104
104
|
"fee",
|
@@ -112,7 +112,7 @@
|
|
112
112
|
]
|
113
113
|
},
|
114
114
|
{
|
115
|
-
"roles": ["
|
115
|
+
"roles": ["active", "owner"],
|
116
116
|
"operation": "account_update",
|
117
117
|
"params": [
|
118
118
|
"account",
|
@@ -124,7 +124,7 @@
|
|
124
124
|
]
|
125
125
|
},
|
126
126
|
{
|
127
|
-
"roles": ["active"],
|
127
|
+
"roles": ["active", "owner"],
|
128
128
|
"operation": "witness_update",
|
129
129
|
"params": [
|
130
130
|
"owner",
|
@@ -135,7 +135,7 @@
|
|
135
135
|
]
|
136
136
|
},
|
137
137
|
{
|
138
|
-
"roles": ["
|
138
|
+
"roles": ["active", "owner"],
|
139
139
|
"operation": "account_witness_vote",
|
140
140
|
"params": [
|
141
141
|
"account",
|
@@ -144,7 +144,7 @@
|
|
144
144
|
]
|
145
145
|
},
|
146
146
|
{
|
147
|
-
"roles": ["
|
147
|
+
"roles": ["active", "owner"],
|
148
148
|
"operation": "account_witness_proxy",
|
149
149
|
"params": [
|
150
150
|
"account",
|
@@ -152,7 +152,7 @@
|
|
152
152
|
]
|
153
153
|
},
|
154
154
|
{
|
155
|
-
"roles": ["active"],
|
155
|
+
"roles": ["active", "owner"],
|
156
156
|
"operation": "pow",
|
157
157
|
"params": [
|
158
158
|
"worker",
|
@@ -162,7 +162,7 @@
|
|
162
162
|
]
|
163
163
|
},
|
164
164
|
{
|
165
|
-
"roles": ["active"],
|
165
|
+
"roles": ["active", "owner"],
|
166
166
|
"operation": "custom",
|
167
167
|
"params": [
|
168
168
|
"required_auths",
|
@@ -171,7 +171,7 @@
|
|
171
171
|
]
|
172
172
|
},
|
173
173
|
{
|
174
|
-
"roles": ["posting"],
|
174
|
+
"roles": ["posting", "active", "owner"],
|
175
175
|
"operation": "delete_comment",
|
176
176
|
"params": [
|
177
177
|
"author",
|
@@ -179,7 +179,7 @@
|
|
179
179
|
]
|
180
180
|
},
|
181
181
|
{
|
182
|
-
"roles": ["posting", "active"],
|
182
|
+
"roles": ["posting", "active", "owner"],
|
183
183
|
"operation": "custom_json",
|
184
184
|
"params": [
|
185
185
|
"required_auths",
|
@@ -189,7 +189,7 @@
|
|
189
189
|
]
|
190
190
|
},
|
191
191
|
{
|
192
|
-
"roles": ["posting"],
|
192
|
+
"roles": ["posting", "active", "owner"],
|
193
193
|
"operation": "comment_options",
|
194
194
|
"params": [
|
195
195
|
"author",
|
@@ -203,7 +203,7 @@
|
|
203
203
|
]
|
204
204
|
},
|
205
205
|
{
|
206
|
-
"roles": ["active"],
|
206
|
+
"roles": ["active", "owner"],
|
207
207
|
"operation": "set_withdraw_vesting_route",
|
208
208
|
"params": [
|
209
209
|
"from_account",
|
@@ -213,7 +213,7 @@
|
|
213
213
|
]
|
214
214
|
},
|
215
215
|
{
|
216
|
-
"roles": ["active"],
|
216
|
+
"roles": ["active", "owner"],
|
217
217
|
"operation": "limit_order_create2",
|
218
218
|
"params": [
|
219
219
|
"owner",
|
@@ -225,7 +225,7 @@
|
|
225
225
|
]
|
226
226
|
},
|
227
227
|
{
|
228
|
-
"roles": ["posting"],
|
228
|
+
"roles": ["posting", "active", "owner"],
|
229
229
|
"operation": "challenge_authority",
|
230
230
|
"params": [
|
231
231
|
"challenger",
|
@@ -242,7 +242,7 @@
|
|
242
242
|
]
|
243
243
|
},
|
244
244
|
{
|
245
|
-
"roles": ["active"],
|
245
|
+
"roles": ["active", "owner"],
|
246
246
|
"operation": "request_account_recovery",
|
247
247
|
"params": [
|
248
248
|
"recovery_account",
|
@@ -251,6 +251,16 @@
|
|
251
251
|
"extensions"
|
252
252
|
]
|
253
253
|
},
|
254
|
+
{
|
255
|
+
"roles": ["owner"],
|
256
|
+
"operation": "recover_account",
|
257
|
+
"params": [
|
258
|
+
"account_to_recover",
|
259
|
+
"new_owner_authority",
|
260
|
+
"recent_owner_authority",
|
261
|
+
"extensions"
|
262
|
+
]
|
263
|
+
},
|
254
264
|
{
|
255
265
|
"roles": ["owner"],
|
256
266
|
"operation": "change_recovery_account",
|
@@ -261,7 +271,7 @@
|
|
261
271
|
]
|
262
272
|
},
|
263
273
|
{
|
264
|
-
"roles": ["active"],
|
274
|
+
"roles": ["active", "owner"],
|
265
275
|
"operation": "escrow_transfer",
|
266
276
|
"params": [
|
267
277
|
"from",
|
@@ -277,7 +287,7 @@
|
|
277
287
|
]
|
278
288
|
},
|
279
289
|
{
|
280
|
-
"roles": ["active"],
|
290
|
+
"roles": ["active", "owner"],
|
281
291
|
"operation": "escrow_dispute",
|
282
292
|
"params": [
|
283
293
|
"from",
|
@@ -288,7 +298,7 @@
|
|
288
298
|
]
|
289
299
|
},
|
290
300
|
{
|
291
|
-
"roles": ["active"],
|
301
|
+
"roles": ["active", "owner"],
|
292
302
|
"operation": "escrow_release",
|
293
303
|
"params": [
|
294
304
|
"from",
|
@@ -302,7 +312,7 @@
|
|
302
312
|
]
|
303
313
|
},
|
304
314
|
{
|
305
|
-
"roles": ["active"],
|
315
|
+
"roles": ["active", "owner"],
|
306
316
|
"operation": "pow2",
|
307
317
|
"params": [
|
308
318
|
"input",
|
@@ -310,7 +320,7 @@
|
|
310
320
|
]
|
311
321
|
},
|
312
322
|
{
|
313
|
-
"roles": ["active"],
|
323
|
+
"roles": ["active", "owner"],
|
314
324
|
"operation": "escrow_approve",
|
315
325
|
"params": [
|
316
326
|
"from",
|
@@ -322,7 +332,7 @@
|
|
322
332
|
]
|
323
333
|
},
|
324
334
|
{
|
325
|
-
"roles": ["active"],
|
335
|
+
"roles": ["active", "owner"],
|
326
336
|
"operation": "transfer_to_savings",
|
327
337
|
"params": [
|
328
338
|
"from",
|
@@ -332,7 +342,7 @@
|
|
332
342
|
]
|
333
343
|
},
|
334
344
|
{
|
335
|
-
"roles": ["active"],
|
345
|
+
"roles": ["active", "owner"],
|
336
346
|
"operation": "transfer_from_savings",
|
337
347
|
"params": [
|
338
348
|
"from",
|
@@ -343,7 +353,7 @@
|
|
343
353
|
]
|
344
354
|
},
|
345
355
|
{
|
346
|
-
"roles": ["active"],
|
356
|
+
"roles": ["active", "owner"],
|
347
357
|
"operation": "cancel_transfer_from_savings",
|
348
358
|
"params": [
|
349
359
|
"from",
|
@@ -367,7 +377,7 @@
|
|
367
377
|
]
|
368
378
|
},
|
369
379
|
{
|
370
|
-
"roles": ["active"],
|
380
|
+
"roles": ["active", "owner"],
|
371
381
|
"operation": "reset_account",
|
372
382
|
"params": [
|
373
383
|
"reset_account",
|
@@ -385,7 +395,7 @@
|
|
385
395
|
]
|
386
396
|
},
|
387
397
|
{
|
388
|
-
"roles": ["posting"],
|
398
|
+
"roles": ["posting", "active", "owner"],
|
389
399
|
"operation": "claim_reward_balance",
|
390
400
|
"params": [
|
391
401
|
"account",
|
@@ -395,7 +405,7 @@
|
|
395
405
|
]
|
396
406
|
},
|
397
407
|
{
|
398
|
-
"roles": ["active"],
|
408
|
+
"roles": ["active", "owner"],
|
399
409
|
"operation": "delegate_vesting_shares",
|
400
410
|
"params": [
|
401
411
|
"delegator",
|
@@ -404,7 +414,7 @@
|
|
404
414
|
]
|
405
415
|
},
|
406
416
|
{
|
407
|
-
"roles": ["active"],
|
417
|
+
"roles": ["active", "owner"],
|
408
418
|
"operation": "account_create_with_delegation",
|
409
419
|
"params": [
|
410
420
|
"fee",
|
@@ -420,7 +430,7 @@
|
|
420
430
|
]
|
421
431
|
},
|
422
432
|
{
|
423
|
-
"roles": ["active"],
|
433
|
+
"roles": ["active", "owner"],
|
424
434
|
"operation": "fill_convert_request",
|
425
435
|
"params": [
|
426
436
|
"owner",
|
@@ -430,7 +440,7 @@
|
|
430
440
|
]
|
431
441
|
},
|
432
442
|
{
|
433
|
-
"roles": ["posting"],
|
443
|
+
"roles": ["posting", "active", "owner"],
|
434
444
|
"operation": "comment_reward",
|
435
445
|
"params": [
|
436
446
|
"author",
|
@@ -439,7 +449,7 @@
|
|
439
449
|
]
|
440
450
|
},
|
441
451
|
{
|
442
|
-
"roles": ["active"],
|
452
|
+
"roles": ["active", "owner"],
|
443
453
|
"operation": "liquidity_reward",
|
444
454
|
"params": [
|
445
455
|
"owner",
|
@@ -447,7 +457,7 @@
|
|
447
457
|
]
|
448
458
|
},
|
449
459
|
{
|
450
|
-
"roles": ["active"],
|
460
|
+
"roles": ["active", "owner"],
|
451
461
|
"operation": "interest",
|
452
462
|
"params": [
|
453
463
|
"owner",
|
@@ -455,7 +465,7 @@
|
|
455
465
|
]
|
456
466
|
},
|
457
467
|
{
|
458
|
-
"roles": ["active"],
|
468
|
+
"roles": ["active", "owner"],
|
459
469
|
"operation": "fill_vesting_withdraw",
|
460
470
|
"params": [
|
461
471
|
"from_account",
|
@@ -465,7 +475,7 @@
|
|
465
475
|
]
|
466
476
|
},
|
467
477
|
{
|
468
|
-
"roles": ["posting"],
|
478
|
+
"roles": ["posting", "active", "owner"],
|
469
479
|
"operation": "fill_order",
|
470
480
|
"params": [
|
471
481
|
"current_owner",
|
@@ -477,7 +487,7 @@
|
|
477
487
|
]
|
478
488
|
},
|
479
489
|
{
|
480
|
-
"roles": ["posting"],
|
490
|
+
"roles": ["posting", "active", "owner"],
|
481
491
|
"operation": "fill_transfer_from_savings",
|
482
492
|
"params": [
|
483
493
|
"from",
|
data/lib/radiator/methods.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Copied from:
|
2
|
-
// https://raw.githubusercontent.com/steemit/steem-js/master/src/api/methods.
|
2
|
+
// https://raw.githubusercontent.com/steemit/steem-js/master/src/api/methods.js
|
3
3
|
|
4
4
|
[
|
5
5
|
{
|
@@ -315,7 +315,7 @@
|
|
315
315
|
{
|
316
316
|
"api": "database_api",
|
317
317
|
"method": "get_content_replies",
|
318
|
-
"params": ["
|
318
|
+
"params": ["author", "permlink"]
|
319
319
|
},
|
320
320
|
{
|
321
321
|
"api": "database_api",
|
@@ -359,6 +359,16 @@
|
|
359
359
|
"api": "database_api",
|
360
360
|
"method": "get_miner_queue"
|
361
361
|
},
|
362
|
+
{
|
363
|
+
"api": "database_api",
|
364
|
+
"method": "get_reward_fund",
|
365
|
+
"params": ["name"]
|
366
|
+
},
|
367
|
+
{
|
368
|
+
"api": "database_api",
|
369
|
+
"method": "get_vesting_delegations",
|
370
|
+
"params": ["account", "from", "limit"]
|
371
|
+
},
|
362
372
|
{
|
363
373
|
"api": "login_api",
|
364
374
|
"method": "login",
|
@@ -484,9 +494,5 @@
|
|
484
494
|
"api": "market_history_api",
|
485
495
|
"method": "get_market_history_buckets",
|
486
496
|
"params": []
|
487
|
-
},
|
488
|
-
{
|
489
|
-
"api": "database_api",
|
490
|
-
"method": "get_reward_fund"
|
491
497
|
}
|
492
498
|
]
|
data/lib/radiator/operation.rb
CHANGED
data/lib/radiator/stream.rb
CHANGED
@@ -139,8 +139,12 @@ module Radiator
|
|
139
139
|
next if (_transactions = b.transactions).nil?
|
140
140
|
return _transactions unless !!block
|
141
141
|
|
142
|
-
_transactions.
|
143
|
-
|
142
|
+
_transactions.each_with_index do |transaction, index|
|
143
|
+
trx_id = if !!b['transaction_ids']
|
144
|
+
b['transaction_ids'][index]
|
145
|
+
end
|
146
|
+
|
147
|
+
yield transaction, trx_id
|
144
148
|
end
|
145
149
|
end
|
146
150
|
end
|
@@ -186,9 +190,9 @@ module Radiator
|
|
186
190
|
result = response.result
|
187
191
|
|
188
192
|
if !!block
|
189
|
-
yield result
|
193
|
+
yield result, n
|
190
194
|
else
|
191
|
-
return result
|
195
|
+
return result, n
|
192
196
|
end
|
193
197
|
end
|
194
198
|
|
data/lib/radiator/type/amount.rb
CHANGED
data/lib/radiator/version.rb
CHANGED
data/radiator.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test)/}) }
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.15', '>= 1.15.4'
|
21
21
|
spec.add_development_dependency 'rake', '~> 11.2', '>= 11.2.2'
|
22
22
|
spec.add_development_dependency 'minitest', '~> 5.9', '>= 5.9.0'
|
23
23
|
spec.add_development_dependency 'minitest-line', '~> 0.6.3'
|
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_dependency('json', '~> 1.8', '>= 1.8.6')
|
38
38
|
spec.add_dependency('logging', '~> 2.2', '>= 2.2.0')
|
39
39
|
spec.add_dependency('hashie', '~> 3.5', '>= 3.5.5')
|
40
|
-
spec.add_dependency('bitcoin-ruby', '0.0.
|
40
|
+
spec.add_dependency('bitcoin-ruby', '0.0.11')
|
41
41
|
spec.add_dependency('ffi', '1.9.18')
|
42
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.15'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.15.4
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
29
|
+
version: '1.15'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.15.4
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -320,14 +320,14 @@ dependencies:
|
|
320
320
|
requirements:
|
321
321
|
- - '='
|
322
322
|
- !ruby/object:Gem::Version
|
323
|
-
version: 0.0.
|
323
|
+
version: 0.0.11
|
324
324
|
type: :runtime
|
325
325
|
prerelease: false
|
326
326
|
version_requirements: !ruby/object:Gem::Requirement
|
327
327
|
requirements:
|
328
328
|
- - '='
|
329
329
|
- !ruby/object:Gem::Version
|
330
|
-
version: 0.0.
|
330
|
+
version: 0.0.11
|
331
331
|
- !ruby/object:Gem::Dependency
|
332
332
|
name: ffi
|
333
333
|
requirement: !ruby/object:Gem::Requirement
|
@@ -405,12 +405,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
405
405
|
version: '0'
|
406
406
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
407
407
|
requirements:
|
408
|
-
- - "
|
408
|
+
- - ">"
|
409
409
|
- !ruby/object:Gem::Version
|
410
|
-
version:
|
410
|
+
version: 1.3.1
|
411
411
|
requirements: []
|
412
412
|
rubyforge_project:
|
413
|
-
rubygems_version: 2.
|
413
|
+
rubygems_version: 2.5.1
|
414
414
|
signing_key:
|
415
415
|
specification_version: 4
|
416
416
|
summary: STEEM RPC Ruby Client
|