radiator 0.4.1 → 0.4.2pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f9903d1a4e0c654af377fcc0a353e0079e631d5
4
- data.tar.gz: b92e18fe56c4a13d0af9d0bae369e9e9a7dbb075
3
+ metadata.gz: 9205ff2b00976d4717752ad47112efd596b15ccc
4
+ data.tar.gz: cfce2cbd7f2cc5140d5c03fd7d01df79ffee29aa
5
5
  SHA512:
6
- metadata.gz: acfad80288e67f8662e6fdadcbf92be26963dd588c77a16419a40a38b940ef21258d4536d5aac2ef014af8fb3eb5851430d7e56f4d858c4b60489aeca7a628bb
7
- data.tar.gz: efe041ba627bf96aa77c0ea32c13603e07b4183cabd81e1b3808dfad4bf84776bfe2fd5fb94b99d43790d6eb80aa22b72805e6b5d649cc893d0053dd3ca795ff
6
+ metadata.gz: f3965f9a9479b748ba9bbf74e88e4318503709b88426f11c95d24175bc1948f592e95a413f6f694245628e8d89902b748e3544d09bccd71bf18b16221289d764
7
+ data.tar.gz: d94606774f9783caad74c04307f7a1428b05fd6e3b1e8ce9c632da2fd231efcd468651b28a8339c32847c5b34e1e6ccfc517a2fcd13bcdef22f1a2fe78a73e29
data/.travis.yml CHANGED
@@ -18,6 +18,6 @@ before_script:
18
18
  script:
19
19
  - TESTOPTS="--verbose" bundle exec rake test
20
20
  after_script:
21
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
21
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT --coverage-input-type simplecov
22
22
  notifications:
23
23
  slack: galacticaactual:rhAXgZ68aoikbxBBA05xIUVC
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- radiator (0.4.1)
4
+ radiator (0.4.2pre1)
5
5
  awesome_print (~> 1.7, >= 1.7.0)
6
6
  bitcoin-ruby (~> 0.0, >= 0.0.11)
7
7
  ffi (~> 1.9, >= 1.9.18)
data/README.md CHANGED
@@ -541,13 +541,14 @@ https://github.com/inertia186/radiator/issues/12
541
541
  * `HELL_ENABLED=true rake`
542
542
  * To run a stream test on the live STEEM blockchain with debug logging enabled:
543
543
  * `LOG=DEBUG rake test_live_stream`
544
+
544
545
  ---
545
546
 
546
547
  <center>
547
548
  <img src="http://www.steemimg.com/images/2016/08/19/RadiatorCoolingFan-54in-Webfdcb1.png" />
548
549
  </center>
549
550
 
550
- See my previous Ruby How To posts in: [/f/ruby](https://chainbb.com/f/ruby)
551
+ See my previous Ruby How To posts in: [#radiator](https://steemit.com/created/radiator) [#ruby](https://steemit.com/created/ruby)
551
552
 
552
553
  ## Get in touch!
553
554
 
data/lib/radiator/api.rb CHANGED
@@ -9,7 +9,7 @@ require 'net/http/persistent'
9
9
  module Radiator
10
10
  # Radiator::Api allows you to call remote methods to interact with the STEEM
11
11
  # blockchain. The `Api` class is a shortened name for
12
- # `Radiator::DatabaseApi`.
12
+ # `Radiator::CondenserApi`.
13
13
  #
14
14
  # Examples:
15
15
  #
@@ -248,6 +248,12 @@ module Radiator
248
248
  true
249
249
  end
250
250
 
251
+ @use_condenser_namespace = if options.keys.include? :use_condenser_namespace
252
+ options[:use_condenser_namespace]
253
+ else
254
+ true
255
+ end
256
+
251
257
  if defined? Net::HTTP::Persistent::DEFAULT_POOL_SIZE
252
258
  @pool_size = options[:pool_size] || Net::HTTP::Persistent::DEFAULT_POOL_SIZE
253
259
  end
@@ -288,11 +294,19 @@ module Radiator
288
294
 
289
295
  if !!block
290
296
  block_number.each do |i|
291
- yield block_api.get_block(block_num: i).result, i
297
+ if use_condenser_namespace?
298
+ yield api.get_block(i)
299
+ else
300
+ yield block_api.get_block(block_num: i).result, i
301
+ end
292
302
  end
293
303
  else
294
304
  block_number.map do |i|
295
- block_api.get_block(block_num: i).result
305
+ if use_condenser_namespace?
306
+ api.get_block(i)
307
+ else
308
+ block_api.get_block(block_num: i).result
309
+ end
296
310
  end
297
311
  end
298
312
  end
@@ -519,6 +533,7 @@ module Radiator
519
533
  properties = %w(
520
534
  chain url backoff_at max_requests ssl_verify_mode ssl_version persist
521
535
  recover_transactions_on_error reuse_ssl_sessions pool_size
536
+ use_condenser_namespace
522
537
  ).map do |prop|
523
538
  if !!(v = instance_variable_get("@#{prop}"))
524
539
  "@#{prop}=#{v}"
@@ -543,6 +558,10 @@ module Radiator
543
558
 
544
559
  @uri.nil? && @http_id.nil? && !http_active && @api.nil? && @block_api.nil?
545
560
  end
561
+
562
+ def use_condenser_namespace?
563
+ @use_condenser_namespace
564
+ end
546
565
  private
547
566
  def self.methods_json_path
548
567
  @methods_json_path ||= "#{File.dirname(__FILE__)}/methods.json"
@@ -3,17 +3,17 @@ module Radiator
3
3
  #
4
4
  # To vote on a post/comment:
5
5
  #
6
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
6
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
7
7
  # steem.vote!(10000, 'author', 'post-or-comment-permlink')
8
8
  #
9
9
  # To post and vote in the same transaction:
10
10
  #
11
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
11
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
12
12
  # steem.post!(title: 'title of my post', body: 'body of my post', tags: ['tag'], self_upvote: 10000)
13
13
  #
14
14
  # To post and vote with declined payout:
15
15
  #
16
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
16
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
17
17
  #
18
18
  # options = {
19
19
  # title: 'title of my post',
@@ -68,7 +68,7 @@ module Radiator
68
68
  #
69
69
  # Example:
70
70
  #
71
- # steem = Steem.new
71
+ # steem = Radiator::Chain.new(chain: :steem)
72
72
  # block = steem.find_block(12345678)
73
73
  # transactions = block.transactions
74
74
  #
@@ -82,7 +82,7 @@ module Radiator
82
82
  #
83
83
  # Example:
84
84
  #
85
- # steem = Steem.new
85
+ # steem = Radiator::Chain.new(chain: :steem)
86
86
  # ned = steem.find_account('ned')
87
87
  # vesting_shares = ned.vesting_shares
88
88
  #
@@ -100,7 +100,7 @@ module Radiator
100
100
  #
101
101
  # Example:
102
102
  #
103
- # steem = Steem.new
103
+ # steem = Radiator::Chain.new(chain: :steem)
104
104
  # comment = steem.find_comment('inertia', 'kinda-spooky') # by account, permlink
105
105
  # active_votes = comment.active_votes
106
106
  #
@@ -3,7 +3,7 @@ module Radiator
3
3
  module ActsAsPoster
4
4
  # Creates a post operation.
5
5
  #
6
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
6
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
7
7
  # options = {
8
8
  # title: 'This is my fancy post title.',
9
9
  # body: 'This is my fancy post body.',
@@ -80,7 +80,7 @@ module Radiator
80
80
 
81
81
  # Create a vote operation and broadcasts it right away.
82
82
  #
83
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
83
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
84
84
  # options = {
85
85
  # title: 'This is my fancy post title.',
86
86
  # body: 'This is my fancy post body.',
@@ -95,7 +95,7 @@ module Radiator
95
95
  #
96
96
  # Examples:
97
97
  #
98
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
98
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
99
99
  # steem.delete_comment('permlink')
100
100
  # steem.broadcast!
101
101
  #
@@ -114,7 +114,7 @@ module Radiator
114
114
  #
115
115
  # Examples:
116
116
  #
117
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
117
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
118
118
  # steem.delete_comment!('permlink')
119
119
  #
120
120
  # @see delete_comment
@@ -5,13 +5,13 @@ module Radiator
5
5
  #
6
6
  # Examples:
7
7
  #
8
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
8
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
9
9
  # steem.vote(10000, 'author', 'permlink')
10
10
  # steem.broadcast!
11
11
  #
12
12
  # ... or ...
13
13
  #
14
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
14
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
15
15
  # steem.vote(10000, '@author/permlink')
16
16
  # steem.broadcast!
17
17
  #
@@ -35,12 +35,12 @@ module Radiator
35
35
  #
36
36
  # Examples:
37
37
  #
38
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
38
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
39
39
  # steem.vote!(10000, 'author', 'permlink')
40
40
  #
41
41
  # ... or ...
42
42
  #
43
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
43
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
44
44
  # steem.vote!(10000, '@author/permlink')
45
45
  #
46
46
  # @see vote
@@ -5,7 +5,7 @@ module Radiator
5
5
  #
6
6
  # Examples:
7
7
  #
8
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
8
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
9
9
  # steem.claim_reward_balance(reward_sbd: '100.000 SBD')
10
10
  # steem.broadcast!
11
11
  #
@@ -33,7 +33,7 @@ module Radiator
33
33
  #
34
34
  # Examples:
35
35
  #
36
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
36
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
37
37
  # steem.claim_reward_balance!(reward_sbd: '100.000 SBD')
38
38
  #
39
39
  # @see claim_reward_balance
@@ -41,7 +41,7 @@ module Radiator
41
41
 
42
42
  # Create a transfer operation.
43
43
  #
44
- # steem = Steem.new(account_name: 'your account name', wif: 'your active wif')
44
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your active wif')
45
45
  # steem.transfer(amount: '1.000 SBD', to: 'account name', memo: 'this is a memo')
46
46
  # steem.broadcast!
47
47
  #
@@ -57,7 +57,7 @@ module Radiator
57
57
 
58
58
  # Create a transfer operation and broadcasts it right away.
59
59
  #
60
- # steem = Steem.new(account_name: 'your account name', wif: 'your wif')
60
+ # steem = Radiator::Chain.new(chain: :steem, account_name: 'your account name', wif: 'your wif')
61
61
  # steem.transfer!(amount: '1.000 SBD', to: 'account name', memo: 'this is a memo')
62
62
  #
63
63
  # @see transfer
@@ -12,6 +12,12 @@ module Radiator
12
12
  instance_variable_set("@#{k}", type(@type, k, v))
13
13
  end
14
14
 
15
+ @use_condenser_namespace = if options.keys.include? :use_condenser_namespace
16
+ options.delete(:use_condenser_namespace)
17
+ else
18
+ true
19
+ end
20
+
15
21
  unless Operation::known_operation_names.include? @type
16
22
  raise OperationError, "Unsupported operation type: #{@type}"
17
23
  end
@@ -55,7 +61,12 @@ module Radiator
55
61
 
56
62
  params[p] = case v
57
63
  when Radiator::Type::Beneficiaries then [[0, v.to_h]]
58
- when Radiator::Type::Amount then v.to_a
64
+ when Radiator::Type::Amount
65
+ if use_condenser_namespace?
66
+ v.to_s
67
+ else
68
+ v.to_a
69
+ end
59
70
  else; v
60
71
  end
61
72
  end
@@ -82,5 +93,9 @@ module Radiator
82
93
  end
83
94
  end
84
95
  end
96
+
97
+ def use_condenser_namespace?
98
+ @use_condenser_namespace
99
+ end
85
100
  end
86
101
  end
@@ -326,7 +326,13 @@ module Radiator
326
326
  end
327
327
  end
328
328
 
329
- block_api.get_block(block_num: n) do |current_block, error|
329
+ scoped_api, block_options = if use_condenser_namespace?
330
+ [api, n]
331
+ else
332
+ [block_api, {block_num: n}]
333
+ end
334
+
335
+ scoped_api.get_block(n) do |current_block, error|
330
336
  if !!error
331
337
  if error.message == 'Unable to acquire database lock'
332
338
  start = n
@@ -11,7 +11,7 @@ module Radiator
11
11
 
12
12
  VALID_OPTIONS = %w(
13
13
  wif private_key ref_block_num ref_block_prefix expiration
14
- chain
14
+ chain use_condenser_namespace
15
15
  ).map(&:to_sym)
16
16
  VALID_OPTIONS.each { |option| attr_accessor option }
17
17
 
@@ -66,7 +66,13 @@ module Radiator
66
66
 
67
67
  @api = Api.new(options)
68
68
  @network_broadcast_api = NetworkBroadcastApi.new(options)
69
-
69
+
70
+ @use_condenser_namespace = if options.keys.include? :use_condenser_namespace
71
+ options[:use_condenser_namespace]
72
+ else
73
+ true
74
+ end
75
+
70
76
  ObjectSpace.define_finalizer(self, self.class.finalize(@api, @network_broadcast_api, @self_logger, @logger))
71
77
  end
72
78
 
@@ -91,7 +97,7 @@ module Radiator
91
97
 
92
98
  if broadcast
93
99
  loop do
94
- response = @network_broadcast_api.broadcast_transaction_synchronous(trx: payload)
100
+ response = broadcast_payload(payload)
95
101
 
96
102
  if !!response.error
97
103
  parser = ErrorParser.new(response)
@@ -137,7 +143,19 @@ module Radiator
137
143
  end
138
144
  end
139
145
  end
146
+
147
+ def use_condenser_namespace?
148
+ !!@use_condenser_namespace
149
+ end
140
150
  private
151
+ def broadcast_payload(payload)
152
+ if use_condenser_namespace?
153
+ @api.broadcast_transaction_synchronous(payload)
154
+ else
155
+ @network_broadcast_api.broadcast_transaction_synchronous(trx: payload)
156
+ end
157
+ end
158
+
141
159
  def payload
142
160
  @payload ||= {
143
161
  expiration: @expiration.strftime('%Y-%m-%dT%H:%M:%S'),
@@ -1,4 +1,4 @@
1
1
  module Radiator
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2pre1'
3
3
  AGENT_ID = "radiator/#{VERSION}"
4
4
  end
data/lib/steem.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  # Steem chain client for broadcasting common operations.
2
2
  #
3
3
  # @see Radiator::Chain
4
+ # @deprecated Using Steem class provided by Radiator is deprecated. Please use: Radiator::Chain.new(chain: :steem)
4
5
  class Steem < Radiator::Chain
5
6
  def initialize(options = {})
7
+ unless defined? @@deprecated_warning_shown
8
+ warn "[DEPRECATED] Using Steem class provided by Radiator is deprecated. Please use: Radiator::Chain.new(chain: :steem)"
9
+ @@deprecated_warning_shown = true
10
+ end
11
+
6
12
  super(options.merge(chain: :steem))
7
13
  end
8
14
 
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.4.1
4
+ version: 0.4.2pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-06 00:00:00.000000000 Z
11
+ date: 2018-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -401,9 +401,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
401
401
  version: '0'
402
402
  required_rubygems_version: !ruby/object:Gem::Requirement
403
403
  requirements:
404
- - - ">="
404
+ - - ">"
405
405
  - !ruby/object:Gem::Version
406
- version: '0'
406
+ version: 1.3.1
407
407
  requirements: []
408
408
  rubyforge_project:
409
409
  rubygems_version: 2.6.14