radiator 0.3.3 → 0.3.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 719db03a25998b79ae184e497705f69ee9be274a
4
- data.tar.gz: d7a1623d3a0759b9c774f66c302678d7bd3013d0
3
+ metadata.gz: d0086bea776358375494997aec2c65747f764d6e
4
+ data.tar.gz: ae4cb6a0609f53d64b918dd07169ffd0b5eba060
5
5
  SHA512:
6
- metadata.gz: 82d96f1ce4df03798e7df32af7b9c9ff42ef7bbf4480d196e895541fb4b3420455fed42b9f807177096c8fb2724a1894a04388b16bf7b9a6dfdf6cb5bd93cf30
7
- data.tar.gz: 8abbb469adcc0c46f637553273867800e62b399feaca4f272c915fae8bb68d49ceed6b9d9f450f2335f7264c43d7d318048a1ef5270283a0b10d379ce079e860
6
+ metadata.gz: c22901174d31457a25dd9990a64c2b4dcef9a7f98cf3bf1f9c7994cab317b2dced12ae160db654eef1e268ca01bb751c01aad5cfc5ebc6afe91816dd8e2dc0d4
7
+ data.tar.gz: c8c61c3bc5920bd003fe80b1c1ce06c50a5c080261f4f0867b554a087d603942932c3ce8fa050a7c221c5a5c5b059811b93192fc6b4869bc7439182a79fa9f88
@@ -6,9 +6,16 @@ rvm:
6
6
  - "2.3.0"
7
7
  - "2.4.2"
8
8
  # - "2.5.0" # dev
9
- script: TESTOPTS="--verbose" bundle exec rake test
10
- addons:
11
- code_climate:
12
- repo_token: fcda177928c42c93fd981f671305519ffb98b98c479198340ea67bc892ffd028
9
+ env:
10
+ global:
11
+ - CC_TEST_REPORTER_ID=fcda177928c42c93fd981f671305519ffb98b98c479198340ea67bc892ffd028
12
+ before_script:
13
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
14
+ - chmod +x ./cc-test-reporter
15
+ - ./cc-test-reporter before-build
16
+ script:
17
+ - TESTOPTS="--verbose" bundle exec rake test
18
+ after_script:
19
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
13
20
  notifications:
14
21
  slack: galacticaactual:rhAXgZ68aoikbxBBA05xIUVC
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- radiator (0.3.3)
4
+ radiator (0.3.4)
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)
@@ -17,7 +17,6 @@ GEM
17
17
  public_suffix (>= 2.0.2, < 4.0)
18
18
  awesome_print (1.8.0)
19
19
  bitcoin-ruby (0.0.11)
20
- coderay (1.1.2)
21
20
  connection_pool (2.2.1)
22
21
  crack (0.4.3)
23
22
  safe_yaml (~> 1.0.0)
@@ -30,16 +29,14 @@ GEM
30
29
  logging (2.2.2)
31
30
  little-plugger (~> 1.1)
32
31
  multi_json (~> 1.10)
33
- method_source (0.9.0)
34
32
  minitest (5.10.3)
35
33
  minitest-line (0.6.4)
36
34
  minitest (~> 5.0)
35
+ minitest-proveit (1.0.0)
36
+ minitest (> 5, < 7)
37
37
  multi_json (1.12.2)
38
38
  net-http-persistent (3.0.0)
39
39
  connection_pool (~> 2.2)
40
- pry (0.11.1)
41
- coderay (~> 1.1.0)
42
- method_source (~> 0.9.0)
43
40
  public_suffix (3.0.0)
44
41
  rake (12.1.0)
45
42
  safe_yaml (1.0.4)
@@ -62,7 +59,7 @@ DEPENDENCIES
62
59
  bundler (~> 1.15, >= 1.15.4)
63
60
  minitest (~> 5.9, >= 5.9.0)
64
61
  minitest-line (~> 0.6.3)
65
- pry (~> 0.11.1)
62
+ minitest-proveit (~> 1.0, >= 1.0.0)
66
63
  radiator!
67
64
  rake (~> 12.1, >= 12.1.0)
68
65
  simplecov (~> 0.15.1)
@@ -221,6 +221,9 @@ module Radiator
221
221
  Hashie.logger = @hashie_logger
222
222
  @method_names = nil
223
223
  @api_options = options.dup.merge(chain: @chain)
224
+ @api = nil
225
+ @block_api = nil
226
+ @backoff_at = nil
224
227
  end
225
228
 
226
229
  # Get a specific block or range of blocks.
@@ -390,10 +393,12 @@ module Radiator
390
393
 
391
394
  begin
392
395
  if @recover_transactions_on_error && api_name == :network_broadcast_api
393
- signatures = extract_signatures(options)
396
+ signatures, exp = extract_signatures(options)
394
397
 
395
398
  if tries > 1 && !!signatures && signatures.any?
396
- if !!(response = recover_transaction(signatures, rpc_id, timestamp))
399
+ offset = [(exp - timestamp).abs, 300].min
400
+
401
+ if !!(response = recover_transaction(signatures, rpc_id, timestamp - offset))
397
402
  warning 'Found recovered transaction after retry.', method_name
398
403
  response = Hashie::Mash.new(response)
399
404
  end
@@ -545,15 +550,24 @@ module Radiator
545
550
  end
546
551
 
547
552
  def extract_signatures(options)
548
- options[:params].map do |param|
553
+ params = options[:params]
554
+
555
+ signatures = params.map do |param|
549
556
  next unless defined? param.map
550
557
 
551
558
  param.map { |tx| tx[:signatures] }
552
559
  end.flatten.compact
560
+
561
+ expirations = params.map do |param|
562
+ next unless defined? param.map
563
+
564
+ param.map { |tx| Time.parse(tx[:expiration] + 'Z') }
565
+ end.flatten.compact
566
+
567
+ [signatures, expirations.min]
553
568
  end
554
569
 
555
570
  def recover_transaction(signatures, rpc_id, after)
556
- now = Time.now.utc
557
571
  block_range = api.get_dynamic_global_properties do |properties|
558
572
  high = properties.head_block_number
559
573
  low = high - 100
@@ -585,6 +599,8 @@ module Radiator
585
599
  }
586
600
  end
587
601
  end
602
+
603
+ return nil
588
604
  end
589
605
 
590
606
  def reset_failover
@@ -10,7 +10,7 @@ module Radiator
10
10
  include Utils
11
11
 
12
12
  VALID_OPTIONS = %w(
13
- wif private_key ref_block_num ref_block_prefix expiration operations
13
+ wif private_key ref_block_num ref_block_prefix expiration
14
14
  chain
15
15
  ).map(&:to_sym)
16
16
  VALID_OPTIONS.each { |option| attr_accessor option }
@@ -29,7 +29,7 @@ module Radiator
29
29
  @chain ||= :steem
30
30
  @chain_id = chain_id options[:chain_id]
31
31
  @url = options[:url] || url
32
- @operations ||= []
32
+ @operations = options[:operations] || []
33
33
 
34
34
  unless NETWORK_CHAIN_IDS.include? @chain_id
35
35
  @logger.warn "Unknown chain id: #{@chain_id}"
@@ -1,3 +1,3 @@
1
1
  module Radiator
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
@@ -21,11 +21,11 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency 'rake', '~> 12.1', '>= 12.1.0'
22
22
  spec.add_development_dependency 'minitest', '~> 5.9', '>= 5.9.0'
23
23
  spec.add_development_dependency 'minitest-line', '~> 0.6.3'
24
+ spec.add_development_dependency 'minitest-proveit', '~> 1.0', '>= 1.0.0'
24
25
  spec.add_development_dependency 'webmock', '~> 3.1', '>= 3.1.0'
25
26
  spec.add_development_dependency 'simplecov', '~> 0.15.1'
26
27
  spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
27
28
  spec.add_development_dependency 'yard', '~> 0.9.9'
28
- spec.add_development_dependency 'pry', '~> 0.11.1'
29
29
 
30
30
  spec.add_dependency('net-http-persistent', '>= 2.5.2')
31
31
  spec.add_dependency('json', '~> 2.0', '>= 2.0.2')
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.3.3
4
+ version: 0.3.4
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-10-15 00:00:00.000000000 Z
11
+ date: 2017-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,6 +84,26 @@ dependencies:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: 0.6.3
87
+ - !ruby/object:Gem::Dependency
88
+ name: minitest-proveit
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.0'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.0.0
87
107
  - !ruby/object:Gem::Dependency
88
108
  name: webmock
89
109
  requirement: !ruby/object:Gem::Requirement
@@ -152,20 +172,6 @@ dependencies:
152
172
  - - "~>"
153
173
  - !ruby/object:Gem::Version
154
174
  version: 0.9.9
155
- - !ruby/object:Gem::Dependency
156
- name: pry
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: 0.11.1
162
- type: :development
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: 0.11.1
169
175
  - !ruby/object:Gem::Dependency
170
176
  name: net-http-persistent
171
177
  requirement: !ruby/object:Gem::Requirement