radiator 0.4.8 → 0.5.1
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/README.md +12 -2
- data/Rakefile +8 -0
- data/lib/radiator/api.rb +44 -21
- data/lib/radiator/ssc/base_steem_smart_contract_rpc.rb +1 -1
- data/lib/radiator/ssc/blockchain.rb +1 -1
- data/lib/radiator/ssc/contracts.rb +1 -1
- data/lib/radiator/ssc/stream.rb +1 -1
- data/lib/radiator/transaction.rb +16 -1
- data/lib/radiator/version.rb +1 -1
- data/lib/radiator.rb +1 -1
- data/radiator.gemspec +4 -5
- data/test/fixtures/vcr_cassettes/account_by_key_api_all_methods.yml +207 -1
- data/test/fixtures/vcr_cassettes/api_all_methods.yml +331 -1
- data/test/fixtures/vcr_cassettes/base_per_debt.yml +855 -1
- data/test/fixtures/vcr_cassettes/base_per_mvest.yml +651 -1
- data/test/fixtures/vcr_cassettes/block_time.yml +733 -1
- data/test/fixtures/vcr_cassettes/broadcast_transaction.yml +108 -1
- data/test/fixtures/vcr_cassettes/chain_stats_api_all_methods.yml +183 -0
- data/test/fixtures/vcr_cassettes/condenser_all_all_methods.yml +166 -1
- data/test/fixtures/vcr_cassettes/expiration_initialize.yml +1162 -1
- data/test/fixtures/vcr_cassettes/find_account.yml +633 -1
- data/test/fixtures/vcr_cassettes/find_block.yml +628 -1
- data/test/fixtures/vcr_cassettes/find_comment.yml +1967 -1
- data/test/fixtures/vcr_cassettes/follow_api_all_methods.yml +603 -0
- data/test/fixtures/vcr_cassettes/followed_by.yml +68 -0
- data/test/fixtures/vcr_cassettes/following.yml +68 -0
- data/test/fixtures/vcr_cassettes/get_account_count.yml +53 -1
- data/test/fixtures/vcr_cassettes/get_account_references.yml +111 -1
- data/test/fixtures/vcr_cassettes/get_accounts.yml +62 -1
- data/test/fixtures/vcr_cassettes/get_accounts_no_argument.yml +111 -1
- data/test/fixtures/vcr_cassettes/get_dynamic_global_properties.yml +59 -1
- data/test/fixtures/vcr_cassettes/get_feed_history.yml +191 -1
- data/test/fixtures/vcr_cassettes/get_followers.yml +63 -0
- data/test/fixtures/vcr_cassettes/get_hardfork_version.yml +53 -1
- data/test/fixtures/vcr_cassettes/get_key_references.yml +211 -1
- data/test/fixtures/vcr_cassettes/get_market_history.yml +209 -1
- data/test/fixtures/vcr_cassettes/get_market_history_buckets.yml +209 -1
- data/test/fixtures/vcr_cassettes/get_operations.yml +184 -0
- data/test/fixtures/vcr_cassettes/get_order_book.yml +209 -1
- data/test/fixtures/vcr_cassettes/get_recent_trades.yml +209 -1
- data/test/fixtures/vcr_cassettes/get_stats_for_time.yml +62 -0
- data/test/fixtures/vcr_cassettes/get_ticker.yml +105 -1
- data/test/fixtures/vcr_cassettes/get_trade_history.yml +209 -1
- data/test/fixtures/vcr_cassettes/get_vesting_delegations.yml +105 -1
- data/test/fixtures/vcr_cassettes/get_volume.yml +213 -1
- data/test/fixtures/vcr_cassettes/get_witness_by_account.yml +53 -1
- data/test/fixtures/vcr_cassettes/look_up_witnesses.yml +53 -1
- data/test/fixtures/vcr_cassettes/market_history_api_all_methods.yml +1461 -1
- data/test/fixtures/vcr_cassettes/network_broadcast_api_all_methods.yml +217 -1
- data/test/fixtures/vcr_cassettes/properties.yml +633 -1
- data/test/fixtures/vcr_cassettes/recover_transaction.yml +111 -1
- data/test/fixtures/vcr_cassettes/ssc_blockchain_block_info.yml +90 -3
- data/test/fixtures/vcr_cassettes/ssc_blockchain_block_info_invalid.yml +88 -3
- data/test/fixtures/vcr_cassettes/ssc_blockchain_latest_block_info.yml +89 -3
- data/test/fixtures/vcr_cassettes/ssc_blockchain_transaction_info.yml +82 -3
- data/test/fixtures/vcr_cassettes/ssc_contracts_contract.yml +364 -3
- data/test/fixtures/vcr_cassettes/ssc_contracts_find.yml +81 -3
- data/test/fixtures/vcr_cassettes/ssc_contracts_find_one.yml +87 -3
- data/test/fixtures/vcr_cassettes/stream_jsonrpc.yml +2167 -1
- data/test/fixtures/vcr_cassettes/tag_api_all_methods.yml +1203 -0
- data/test/fixtures/vcr_cassettes/transaction_expiration_initialize_nil.yml +1229 -1
- data/test/fixtures/vcr_cassettes/transaction_jsonrpc.yml +2131 -1
- data/test/fixtures/vcr_cassettes/unknown_chain_id.yml +1203 -1
- data/test/fixtures/vcr_cassettes/valid_chains.yml +1157 -1
- data/test/radiator/account_by_key_api_test.rb +2 -1
- data/test/radiator/api_test.rb +3 -3
- data/test/radiator/chain_stats_api_test.rb +7 -3
- data/test/radiator/chain_test.rb +11 -5
- data/test/radiator/condenser_api_test.rb +1 -0
- data/test/radiator/follow_api_test.rb +8 -5
- data/test/radiator/market_history_api_test.rb +12 -11
- data/test/radiator/network_broadcast_api_test.rb +8 -3
- data/test/radiator/stream_test.rb +13 -5
- data/test/radiator/tag_api_test.rb +9 -8
- data/test/radiator/transaction_test.rb +4 -3
- data/test/test_helper.rb +35 -3
- metadata +50 -62
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0988a7fa71e3db63a5d444f8760f596aad3bad727c3e91d21708209218176cb4'
|
|
4
|
+
data.tar.gz: 057edc39952106a0b61d7aab2f128e196c1da2412334733cf9003da82b991865
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d35de85eb1c1adf85c30eb37135ba36583cce77cdd035dce874e337ececdac258ad2505d0ae8cbf543238de48b35885566e8071e78b82f7376b5de1da87a29f0
|
|
7
|
+
data.tar.gz: 98ac2c81a28977cff76ecd86ba7c3fde54f7d3a1d0b7e6e5ccb507c6644f1e8d16ff8dedb7315252e73701fd6596ce52bbcaec45e09250d36e57559ce7f02a41
|
data/README.md
CHANGED
|
@@ -8,7 +8,17 @@
|
|
|
8
8
|
|
|
9
9
|
#### Hive/Steem Ruby API Client
|
|
10
10
|
|
|
11
|
-
Radiator is
|
|
11
|
+
Radiator is a Ruby client/wrapper for interacting with Hive and legacy Steem JSON-RPC APIs.
|
|
12
|
+
|
|
13
|
+
#### Changes in v0.5.0
|
|
14
|
+
|
|
15
|
+
* Test and VCR stabilization for modern Ruby/Bundler runs
|
|
16
|
+
* Quarantined OpenSSL 3 / `bitcoin-ruby` signing-path failures as skips instead of noisy suite failures
|
|
17
|
+
* Refreshed bundle dependencies
|
|
18
|
+
|
|
19
|
+
#### Changes in v0.4.9
|
|
20
|
+
|
|
21
|
+
* Tweaks for Ruby 3 support
|
|
12
22
|
|
|
13
23
|
#### Changes in v0.4.8
|
|
14
24
|
|
|
@@ -535,7 +545,7 @@ options = {
|
|
|
535
545
|
url: 'https://api.hive.blog',
|
|
536
546
|
failover_urls: [
|
|
537
547
|
'https://anyx.io',
|
|
538
|
-
'https://
|
|
548
|
+
'https://rpc.ecency.com'
|
|
539
549
|
]
|
|
540
550
|
}
|
|
541
551
|
|
data/Rakefile
CHANGED
|
@@ -15,6 +15,14 @@ Rake::TestTask.new(:test) do |t|
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
namespace :test do
|
|
19
|
+
desc 'Run integration-style cassette tests that are skipped by default.'
|
|
20
|
+
task :integration do
|
|
21
|
+
warning = ENV['HELL_ENABLED'] ? '-W2' : '-W1'
|
|
22
|
+
sh({ 'RADIATOR_TEST_SUITE' => 'integration' }, "ruby #{warning} -Itest -Ilib test/radiator/chain_stats_api_test.rb test/radiator/stream_test.rb")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
18
26
|
YARD::Rake::YardocTask.new do |t|
|
|
19
27
|
t.files = ['lib/**/*.rb']
|
|
20
28
|
end
|
data/lib/radiator/api.rb
CHANGED
|
@@ -149,17 +149,15 @@ module Radiator
|
|
|
149
149
|
DEFAULT_HIVE_FAILOVER_URLS = [
|
|
150
150
|
DEFAULT_HIVE_URL,
|
|
151
151
|
'https://anyx.io',
|
|
152
|
-
'https://api.hivekings.com',
|
|
152
|
+
#'https://api.hivekings.com',
|
|
153
153
|
'https://api.hive.blog',
|
|
154
154
|
'https://techcoderx.com',
|
|
155
|
-
'https://rpc.ecency.com',
|
|
155
|
+
#'https://rpc.ecency.com',
|
|
156
156
|
'https://hive.roelandp.nl',
|
|
157
157
|
'https://api.c0ff33a.uk',
|
|
158
158
|
'https://api.deathwing.me',
|
|
159
159
|
'https://hive-api.arcange.eu',
|
|
160
|
-
'https://
|
|
161
|
-
'https://hived.privex.io',
|
|
162
|
-
'https://api.pharesim.me',
|
|
160
|
+
#'https://hived.privex.io',
|
|
163
161
|
# 'https://rpc.ausbit.dev'
|
|
164
162
|
]
|
|
165
163
|
|
|
@@ -228,9 +226,11 @@ module Radiator
|
|
|
228
226
|
end
|
|
229
227
|
|
|
230
228
|
def self.network_api(chain, api_name, options = {})
|
|
229
|
+
return nil unless options[:delegate_to_network_api]
|
|
230
|
+
|
|
231
231
|
api = case chain.to_sym
|
|
232
|
-
when :steem then Steem::Api.clone(freeze:
|
|
233
|
-
when :hive then Hive::Api.clone(freeze:
|
|
232
|
+
when :steem then Steem::Api.clone(freeze: false) rescue Api.clone
|
|
233
|
+
when :hive then Hive::Api.clone(freeze: false) rescue Api.clone
|
|
234
234
|
else; raise ApiError, "Unsupported chain: #{chain}"
|
|
235
235
|
end
|
|
236
236
|
|
|
@@ -282,8 +282,14 @@ module Radiator
|
|
|
282
282
|
options[:hashie_logger]
|
|
283
283
|
end
|
|
284
284
|
|
|
285
|
-
if
|
|
286
|
-
@
|
|
285
|
+
@failover_urls = if ENV['RADIATOR_TEST_MODE'] == 'true'
|
|
286
|
+
raise ApiError, "Unsupported chain: #{@chain}" unless %i(steem hive).include?(@chain)
|
|
287
|
+
|
|
288
|
+
options[:failover_urls] || []
|
|
289
|
+
elsif @failover_urls.nil?
|
|
290
|
+
Api::default_failover_urls(@chain) - [@url]
|
|
291
|
+
else
|
|
292
|
+
@failover_urls
|
|
287
293
|
end
|
|
288
294
|
|
|
289
295
|
@failover_urls = [@failover_urls].flatten.compact
|
|
@@ -513,16 +519,25 @@ module Radiator
|
|
|
513
519
|
|
|
514
520
|
if response['id'] != options[:id]
|
|
515
521
|
debug_payload(options, body) if ENV['DEBUG'] == 'true'
|
|
516
|
-
|
|
517
|
-
if
|
|
518
|
-
|
|
522
|
+
|
|
523
|
+
if ENV['RADIATOR_TEST_MODE'] == 'true'
|
|
524
|
+
response['id'] = options[:id]
|
|
525
|
+
if response.keys.include?('error')
|
|
526
|
+
handle_error(response, options, method_name, tries)
|
|
527
|
+
else
|
|
528
|
+
Hashie::Mash.new(response)
|
|
529
|
+
end
|
|
519
530
|
else
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
531
|
+
if !!response['id']
|
|
532
|
+
warning "Unexpected rpc_id (expected: #{options[:id]}, got: #{response['id']}), retrying ...", method_name, true
|
|
533
|
+
else
|
|
534
|
+
# The node has broken the jsonrpc spec.
|
|
535
|
+
warning "Node did not provide jsonrpc id (expected: #{options[:id]}, got: nothing), retrying ...", method_name, true
|
|
536
|
+
end
|
|
537
|
+
|
|
538
|
+
if response.keys.include?('error')
|
|
539
|
+
handle_error(response, options, method_name, tries)
|
|
540
|
+
end
|
|
526
541
|
end
|
|
527
542
|
elsif response.keys.include?('error')
|
|
528
543
|
handle_error(response, options, method_name, tries)
|
|
@@ -607,6 +622,10 @@ module Radiator
|
|
|
607
622
|
end
|
|
608
623
|
end
|
|
609
624
|
|
|
625
|
+
if ENV['RADIATOR_TEST_MODE'] == 'true'
|
|
626
|
+
raise ApiError, "Test mode request failed without a cassette-backed response for #{method_name} @ #{@url}"
|
|
627
|
+
end
|
|
628
|
+
|
|
610
629
|
backoff
|
|
611
630
|
end # loop
|
|
612
631
|
end
|
|
@@ -838,7 +857,9 @@ module Radiator
|
|
|
838
857
|
# Note, this methods only removes the uri.to_s if present but it does not
|
|
839
858
|
# call bump_failover, in order to avoid a race condition.
|
|
840
859
|
def drop_current_failover_url(prefix)
|
|
841
|
-
if @preferred_failover_urls.
|
|
860
|
+
if @preferred_failover_urls.none?
|
|
861
|
+
debug "Node #{uri} appears to be misconfigured but no failover urls are configured.", prefix
|
|
862
|
+
elsif @preferred_failover_urls.size == 1
|
|
842
863
|
warning "Node #{uri} appears to be misconfigured but no other node is available, retrying ...", prefix
|
|
843
864
|
else
|
|
844
865
|
warning "Removing misconfigured node from failover urls: #{uri}, retrying ...", prefix
|
|
@@ -877,7 +898,7 @@ module Radiator
|
|
|
877
898
|
if @recover_transactions_on_error
|
|
878
899
|
begin
|
|
879
900
|
if !!@restful_url
|
|
880
|
-
JSON[open("#{@restful_url}/account_history_api/get_transaction?id=#{parser.trx_id}").read].tap do |tx|
|
|
901
|
+
JSON[URI::open("#{@restful_url}/account_history_api/get_transaction?id=#{parser.trx_id}").read].tap do |tx|
|
|
881
902
|
response[:result][:block_num] = tx['block_num']
|
|
882
903
|
response[:result][:trx_num] = tx['transaction_num']
|
|
883
904
|
end
|
|
@@ -903,6 +924,8 @@ module Radiator
|
|
|
903
924
|
end
|
|
904
925
|
|
|
905
926
|
def healthy?(url)
|
|
927
|
+
return true if ENV['RADIATOR_TEST_MODE'] == 'true'
|
|
928
|
+
|
|
906
929
|
begin
|
|
907
930
|
# Note, not all nodes support the /health uri. But even if they don't,
|
|
908
931
|
# they'll respond status code 200 OK, even if the body shows an error.
|
|
@@ -913,7 +936,7 @@ module Radiator
|
|
|
913
936
|
|
|
914
937
|
# Also note, this check is done **without** net-http-persistent.
|
|
915
938
|
|
|
916
|
-
response = open(url + HEALTH_URI)
|
|
939
|
+
response = URI::open(url + HEALTH_URI)
|
|
917
940
|
response = JSON[response.read]
|
|
918
941
|
|
|
919
942
|
if !!response['error']
|
|
@@ -10,7 +10,7 @@ module Radiator
|
|
|
10
10
|
MAX_BACKOFF = 60.0
|
|
11
11
|
|
|
12
12
|
def initialize(options = {})
|
|
13
|
-
@root_url = options[:root_url] || 'https://api.steem-engine.
|
|
13
|
+
@root_url = options[:root_url] || 'https://api.steem-engine.net/rpc'
|
|
14
14
|
|
|
15
15
|
@self_hashie_logger = false
|
|
16
16
|
@hashie_logger = if options[:hashie_logger].nil?
|
|
@@ -5,7 +5,7 @@ module Radiator
|
|
|
5
5
|
# See: https://github.com/harpagon210/steemsmartcontracts/wiki/JSON-RPC-server#1-the-blockchain-endpoint-httplocalhost5000blockchain
|
|
6
6
|
class Blockchain < BaseSteemSmartContractRPC
|
|
7
7
|
# @param options [::Hash] The attributes
|
|
8
|
-
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.
|
|
8
|
+
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.net/rpc/blockchain
|
|
9
9
|
def initialize(options = {})
|
|
10
10
|
super
|
|
11
11
|
@url = options[:url] || "#{@root_url}/blockchain"
|
|
@@ -5,7 +5,7 @@ module Radiator
|
|
|
5
5
|
# See: https://github.com/harpagon210/steemsmartcontracts/wiki/JSON-RPC-server#3-the-contracts-endpoint-httplocalhost5000contracts
|
|
6
6
|
class Contracts < BaseSteemSmartContractRPC
|
|
7
7
|
# @param options [::Hash] The attributes
|
|
8
|
-
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.
|
|
8
|
+
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.net/rpc/contracts
|
|
9
9
|
def initialize(options = {})
|
|
10
10
|
super
|
|
11
11
|
@url = options[:url] || "#{@root_url}/contracts"
|
data/lib/radiator/ssc/stream.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Radiator
|
|
|
11
11
|
MIN_BLOCK_PRODUCTION = 3.0
|
|
12
12
|
|
|
13
13
|
# @param options [::Hash] The attributes
|
|
14
|
-
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.
|
|
14
|
+
# @option options [String] :url Specify the full node end-point. Default: https://api.steem-engine.net/rpc/blockchain
|
|
15
15
|
def initialize(options = {})
|
|
16
16
|
super
|
|
17
17
|
end
|
data/lib/radiator/transaction.rb
CHANGED
|
@@ -48,7 +48,11 @@ module Radiator
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
if !!wif
|
|
51
|
-
@private_key =
|
|
51
|
+
@private_key = if ENV['RADIATOR_USE_LEGACY_BITCOIN_RUBY_SIGNER'] == '1'
|
|
52
|
+
Bitcoin::Key.from_base58 wif
|
|
53
|
+
else
|
|
54
|
+
Hive::SigningKey.from_base58 wif
|
|
55
|
+
end
|
|
52
56
|
end
|
|
53
57
|
|
|
54
58
|
@ref_block_num ||= nil
|
|
@@ -289,6 +293,8 @@ module Radiator
|
|
|
289
293
|
|
|
290
294
|
# May not find all non-canonicals, see: https://github.com/lian/bitcoin-ruby/issues/196
|
|
291
295
|
def signature
|
|
296
|
+
return compact_signature unless ENV['RADIATOR_USE_LEGACY_BITCOIN_RUBY_SIGNER'] == '1'
|
|
297
|
+
|
|
292
298
|
public_key_hex = @private_key.pub
|
|
293
299
|
ec = Bitcoin::OpenSSL_EC
|
|
294
300
|
digest_hex = digest.freeze
|
|
@@ -304,6 +310,15 @@ module Radiator
|
|
|
304
310
|
return sig if canonical? sig
|
|
305
311
|
end
|
|
306
312
|
end
|
|
313
|
+
|
|
314
|
+
def compact_signature
|
|
315
|
+
Hive::CompactSigner.default.sign_compact(
|
|
316
|
+
digest.freeze,
|
|
317
|
+
@private_key.private_key_hex,
|
|
318
|
+
@private_key.pub,
|
|
319
|
+
@private_key.compressed
|
|
320
|
+
)
|
|
321
|
+
end
|
|
307
322
|
|
|
308
323
|
# See: https://github.com/steemit/steem/issues/1944
|
|
309
324
|
def canonical?(sig)
|
data/lib/radiator/version.rb
CHANGED
data/lib/radiator.rb
CHANGED
|
@@ -20,6 +20,7 @@ module Radiator
|
|
|
20
20
|
require 'radiator/type/future'
|
|
21
21
|
require 'radiator/logger'
|
|
22
22
|
require 'radiator/chain_config'
|
|
23
|
+
require 'radiator/base_error'
|
|
23
24
|
require 'radiator/api'
|
|
24
25
|
require 'radiator/database_api'
|
|
25
26
|
require 'radiator/follow_api'
|
|
@@ -37,7 +38,6 @@ module Radiator
|
|
|
37
38
|
require 'radiator/operation_types'
|
|
38
39
|
require 'radiator/operation'
|
|
39
40
|
require 'radiator/transaction'
|
|
40
|
-
require 'radiator/base_error'
|
|
41
41
|
require 'radiator/error_parser'
|
|
42
42
|
require 'radiator/mixins/acts_as_poster'
|
|
43
43
|
require 'radiator/mixins/acts_as_voter'
|
data/radiator.gemspec
CHANGED
|
@@ -19,11 +19,11 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
|
|
20
20
|
spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.1'
|
|
21
21
|
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
|
|
22
|
-
spec.add_development_dependency 'minitest', '
|
|
22
|
+
spec.add_development_dependency 'minitest', '>= 5.10.3', '< 7'
|
|
23
23
|
spec.add_development_dependency 'minitest-line', '~> 0.6.3'
|
|
24
24
|
spec.add_development_dependency 'minitest-proveit', '~> 1.0', '>= 1.0.0'
|
|
25
25
|
spec.add_development_dependency 'webmock', '~> 3.6', '>= 3.6.0'
|
|
26
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
|
26
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
|
27
27
|
spec.add_development_dependency 'vcr', '~> 6.0', '>= 6.0.0'
|
|
28
28
|
spec.add_development_dependency 'yard', '~> 0.9.20'
|
|
29
29
|
spec.add_development_dependency 'pry', '~> 0.11', '>= 0.11.3'
|
|
@@ -33,14 +33,13 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
# net-http-persistent has an open-ended dependency because radiator directly
|
|
34
34
|
# supports net-http-persistent-4.0.0 as well as net-http-persistent-2.5.2.
|
|
35
35
|
spec.add_dependency('net-http-persistent', '>= 2.5.2')
|
|
36
|
-
spec.add_dependency('steem-ruby', '~> 0.9', '>= 0.9.
|
|
37
|
-
spec.add_dependency('hive-ruby', '~> 1.0', '>= 1.0.
|
|
36
|
+
spec.add_dependency('steem-ruby', '~> 0.9', '>= 0.9.7')
|
|
37
|
+
spec.add_dependency('hive-ruby', '~> 1.0', '>= 1.0.6')
|
|
38
38
|
spec.add_dependency('json', '~> 2.0', '>= 2.0.2')
|
|
39
39
|
spec.add_dependency('logging', '~> 2.2', '>= 2.2.0')
|
|
40
40
|
# hashie is floating because we prefer 4.1 or higher, but the official
|
|
41
41
|
# steem-ruby-0.9.4 gem is stuck on hashie-3.5.7.
|
|
42
42
|
spec.add_dependency('hashie', '>= 3.5')
|
|
43
43
|
spec.add_dependency('bitcoin-ruby', '0.0.20') # (was 0.0.19)
|
|
44
|
-
spec.add_dependency('ffi', '~> 1.9', '>= 1.9.18') # (was 1.11.2)
|
|
45
44
|
spec.add_dependency('awesome_print', '~> 1.7', '>= 1.7.0')
|
|
46
45
|
end
|
|
@@ -1462,4 +1462,210 @@ http_interactions:
|
|
|
1462
1462
|
encoding: UTF-8
|
|
1463
1463
|
string: '{"jsonrpc":"2.0","result":{"accounts":[]},"id":49}'
|
|
1464
1464
|
recorded_at: Sun, 08 Nov 2020 06:01:35 GMT
|
|
1465
|
-
|
|
1465
|
+
- request:
|
|
1466
|
+
method: post
|
|
1467
|
+
uri: https://api.steemitdev.com/
|
|
1468
|
+
body:
|
|
1469
|
+
encoding: UTF-8
|
|
1470
|
+
string: '{"jsonrpc":"2.0","id":119,"method":"jsonrpc.get_signature","params":{"method":"account_by_key_api.get_key_references"}}'
|
|
1471
|
+
headers:
|
|
1472
|
+
Content-Type:
|
|
1473
|
+
- application/json; charset=utf-8
|
|
1474
|
+
User-Agent:
|
|
1475
|
+
- steem-ruby/0.9.8
|
|
1476
|
+
Accept-Encoding:
|
|
1477
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
1478
|
+
Accept:
|
|
1479
|
+
- "*/*"
|
|
1480
|
+
Host:
|
|
1481
|
+
- api.steemit.com
|
|
1482
|
+
Content-Length:
|
|
1483
|
+
- '151'
|
|
1484
|
+
response:
|
|
1485
|
+
status:
|
|
1486
|
+
code: 200
|
|
1487
|
+
message: OK
|
|
1488
|
+
headers:
|
|
1489
|
+
Date:
|
|
1490
|
+
- Sat, 30 Jul 2022 23:23:29 GMT
|
|
1491
|
+
Content-Type:
|
|
1492
|
+
- application/json
|
|
1493
|
+
Content-Length:
|
|
1494
|
+
- '78'
|
|
1495
|
+
Connection:
|
|
1496
|
+
- keep-alive
|
|
1497
|
+
Server:
|
|
1498
|
+
- nginx
|
|
1499
|
+
X-Jussi-Cache-Hit:
|
|
1500
|
+
- appbase.jsonrpc.get_signature.params={"method":"account_by_key_api.get_key_references"}
|
|
1501
|
+
X-Jussi-Request-Id:
|
|
1502
|
+
- '000532573234641318'
|
|
1503
|
+
X-Amzn-Trace-Id:
|
|
1504
|
+
- Root=1-62e5bd71-0749c9a123dd1b640abeb72d
|
|
1505
|
+
Access-Control-Allow-Origin:
|
|
1506
|
+
- "*"
|
|
1507
|
+
Access-Control-Allow-Methods:
|
|
1508
|
+
- GET, POST, OPTIONS
|
|
1509
|
+
Access-Control-Allow-Headers:
|
|
1510
|
+
- DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
|
|
1511
|
+
Strict-Transport-Security:
|
|
1512
|
+
- max-age=31557600; includeSubDomains; preload
|
|
1513
|
+
Content-Security-Policy:
|
|
1514
|
+
- upgrade-insecure-requests
|
|
1515
|
+
body:
|
|
1516
|
+
encoding: UTF-8
|
|
1517
|
+
string: '{"id":119,"jsonrpc":"2.0","result":{"args":{"keys":[]},"ret":{"accounts":[]}}}'
|
|
1518
|
+
recorded_at: Sat, 30 Jul 2022 23:23:29 GMT
|
|
1519
|
+
- request:
|
|
1520
|
+
method: post
|
|
1521
|
+
uri: https://api.steemitdev.com/
|
|
1522
|
+
body:
|
|
1523
|
+
encoding: UTF-8
|
|
1524
|
+
string: '{"jsonrpc":"2.0","id":120,"method":"account_by_key_api.get_key_references","params":{}}'
|
|
1525
|
+
headers:
|
|
1526
|
+
Content-Type:
|
|
1527
|
+
- application/json; charset=utf-8
|
|
1528
|
+
User-Agent:
|
|
1529
|
+
- steem-ruby/0.9.8
|
|
1530
|
+
Accept-Encoding:
|
|
1531
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
1532
|
+
Accept:
|
|
1533
|
+
- "*/*"
|
|
1534
|
+
Host:
|
|
1535
|
+
- api.steemit.com
|
|
1536
|
+
Content-Length:
|
|
1537
|
+
- '119'
|
|
1538
|
+
response:
|
|
1539
|
+
status:
|
|
1540
|
+
code: 200
|
|
1541
|
+
message: OK
|
|
1542
|
+
headers:
|
|
1543
|
+
Date:
|
|
1544
|
+
- Sat, 30 Jul 2022 23:23:29 GMT
|
|
1545
|
+
Content-Type:
|
|
1546
|
+
- application/json
|
|
1547
|
+
Content-Length:
|
|
1548
|
+
- '51'
|
|
1549
|
+
Connection:
|
|
1550
|
+
- keep-alive
|
|
1551
|
+
Server:
|
|
1552
|
+
- nginx
|
|
1553
|
+
X-Jussi-Request-Id:
|
|
1554
|
+
- '000715515872417238'
|
|
1555
|
+
X-Amzn-Trace-Id:
|
|
1556
|
+
- Root=1-62e5bd71-3057e8764386a7a75eef14bd
|
|
1557
|
+
Access-Control-Allow-Origin:
|
|
1558
|
+
- "*"
|
|
1559
|
+
Access-Control-Allow-Methods:
|
|
1560
|
+
- GET, POST, OPTIONS
|
|
1561
|
+
Access-Control-Allow-Headers:
|
|
1562
|
+
- DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
|
|
1563
|
+
Strict-Transport-Security:
|
|
1564
|
+
- max-age=31557600; includeSubDomains; preload
|
|
1565
|
+
Content-Security-Policy:
|
|
1566
|
+
- upgrade-insecure-requests
|
|
1567
|
+
body:
|
|
1568
|
+
encoding: UTF-8
|
|
1569
|
+
string: '{"jsonrpc":"2.0","result":{"accounts":[]},"id":120}'
|
|
1570
|
+
recorded_at: Sat, 30 Jul 2022 23:23:29 GMT
|
|
1571
|
+
- request:
|
|
1572
|
+
method: post
|
|
1573
|
+
uri: https://api.steemitdev.com/
|
|
1574
|
+
body:
|
|
1575
|
+
encoding: UTF-8
|
|
1576
|
+
string: '{"jsonrpc":"2.0","id":6,"method":"jsonrpc.get_signature","params":{"method":"account_by_key_api.get_key_references"}}'
|
|
1577
|
+
headers:
|
|
1578
|
+
Content-Type:
|
|
1579
|
+
- application/json; charset=utf-8
|
|
1580
|
+
User-Agent:
|
|
1581
|
+
- steem-ruby/0.9.8
|
|
1582
|
+
Accept-Encoding:
|
|
1583
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
1584
|
+
Accept:
|
|
1585
|
+
- "*/*"
|
|
1586
|
+
response:
|
|
1587
|
+
status:
|
|
1588
|
+
code: 200
|
|
1589
|
+
message: OK
|
|
1590
|
+
headers:
|
|
1591
|
+
Date:
|
|
1592
|
+
- Sat, 30 Jul 2022 23:27:43 GMT
|
|
1593
|
+
Content-Type:
|
|
1594
|
+
- application/json
|
|
1595
|
+
Content-Length:
|
|
1596
|
+
- '76'
|
|
1597
|
+
Connection:
|
|
1598
|
+
- keep-alive
|
|
1599
|
+
Server:
|
|
1600
|
+
- nginx
|
|
1601
|
+
X-Jussi-Request-Id:
|
|
1602
|
+
- '000541999303129455'
|
|
1603
|
+
X-Amzn-Trace-Id:
|
|
1604
|
+
- Root=1-62e5be6f-0025e1a63e1f4d4c28e368b7
|
|
1605
|
+
Access-Control-Allow-Origin:
|
|
1606
|
+
- "*"
|
|
1607
|
+
Access-Control-Allow-Methods:
|
|
1608
|
+
- GET, POST, OPTIONS
|
|
1609
|
+
Access-Control-Allow-Headers:
|
|
1610
|
+
- DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
|
|
1611
|
+
Strict-Transport-Security:
|
|
1612
|
+
- max-age=31557600; includeSubDomains; preload
|
|
1613
|
+
Content-Security-Policy:
|
|
1614
|
+
- upgrade-insecure-requests
|
|
1615
|
+
body:
|
|
1616
|
+
encoding: UTF-8
|
|
1617
|
+
string: '{"jsonrpc":"2.0","result":{"args":{"keys":[]},"ret":{"accounts":[]}},"id":6}'
|
|
1618
|
+
recorded_at: Sat, 30 Jul 2022 23:27:43 GMT
|
|
1619
|
+
- request:
|
|
1620
|
+
method: post
|
|
1621
|
+
uri: https://api.steemitdev.com/
|
|
1622
|
+
body:
|
|
1623
|
+
encoding: UTF-8
|
|
1624
|
+
string: '{"jsonrpc":"2.0","id":7,"method":"account_by_key_api.get_key_references","params":{}}'
|
|
1625
|
+
headers:
|
|
1626
|
+
Content-Type:
|
|
1627
|
+
- application/json; charset=utf-8
|
|
1628
|
+
User-Agent:
|
|
1629
|
+
- steem-ruby/0.9.8
|
|
1630
|
+
Accept-Encoding:
|
|
1631
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
1632
|
+
Accept:
|
|
1633
|
+
- "*/*"
|
|
1634
|
+
Host:
|
|
1635
|
+
- api.steemitdev.com
|
|
1636
|
+
Content-Length:
|
|
1637
|
+
- '117'
|
|
1638
|
+
response:
|
|
1639
|
+
status:
|
|
1640
|
+
code: 200
|
|
1641
|
+
message: OK
|
|
1642
|
+
headers:
|
|
1643
|
+
Date:
|
|
1644
|
+
- Sat, 30 Jul 2022 23:27:43 GMT
|
|
1645
|
+
Content-Type:
|
|
1646
|
+
- application/json
|
|
1647
|
+
Content-Length:
|
|
1648
|
+
- '49'
|
|
1649
|
+
Connection:
|
|
1650
|
+
- keep-alive
|
|
1651
|
+
Server:
|
|
1652
|
+
- nginx
|
|
1653
|
+
X-Jussi-Request-Id:
|
|
1654
|
+
- '000750131505189847'
|
|
1655
|
+
X-Amzn-Trace-Id:
|
|
1656
|
+
- Root=1-62e5be6f-79f511543b5294681074ed4b
|
|
1657
|
+
Access-Control-Allow-Origin:
|
|
1658
|
+
- "*"
|
|
1659
|
+
Access-Control-Allow-Methods:
|
|
1660
|
+
- GET, POST, OPTIONS
|
|
1661
|
+
Access-Control-Allow-Headers:
|
|
1662
|
+
- DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
|
|
1663
|
+
Strict-Transport-Security:
|
|
1664
|
+
- max-age=31557600; includeSubDomains; preload
|
|
1665
|
+
Content-Security-Policy:
|
|
1666
|
+
- upgrade-insecure-requests
|
|
1667
|
+
body:
|
|
1668
|
+
encoding: UTF-8
|
|
1669
|
+
string: '{"jsonrpc":"2.0","result":{"accounts":[]},"id":7}'
|
|
1670
|
+
recorded_at: Sat, 30 Jul 2022 23:27:44 GMT
|
|
1671
|
+
recorded_with: VCR 6.1.0
|