radiator 0.4.6 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +27 -12
  3. data/Rakefile +53 -23
  4. data/lib/radiator.rb +3 -1
  5. data/lib/radiator/api.rb +111 -16
  6. data/lib/radiator/bridge.rb +34 -0
  7. data/lib/radiator/broadcast_operations.json +7 -7
  8. data/lib/radiator/chain.rb +1 -1
  9. data/lib/radiator/chain_config.rb +9 -2
  10. data/lib/radiator/database_api.rb +1 -1
  11. data/lib/radiator/error_parser.rb +1 -1
  12. data/lib/radiator/follow_api.rb +1 -1
  13. data/lib/radiator/market_history_api.rb +1 -1
  14. data/lib/radiator/mixins/acts_as_poster.rb +4 -4
  15. data/lib/radiator/operation.rb +3 -2
  16. data/lib/radiator/operation_types.rb +43 -27
  17. data/lib/radiator/ssc/base_steem_smart_contract_rpc.rb +1 -1
  18. data/lib/radiator/stream.rb +21 -8
  19. data/lib/radiator/transaction.rb +43 -3
  20. data/lib/radiator/type/amount.rb +8 -50
  21. data/lib/radiator/type/beneficiaries.rb +8 -1
  22. data/lib/radiator/type/price.rb +2 -2
  23. data/lib/radiator/version.rb +1 -1
  24. data/radiator.gemspec +17 -13
  25. data/test/fixtures/empty.json +1 -0
  26. data/test/fixtures/error.json +29 -0
  27. data/test/fixtures/follow_api_get_followers.json +1 -0
  28. data/test/fixtures/get_account.json +165 -0
  29. data/test/fixtures/get_account_count.json +1 -0
  30. data/test/fixtures/get_account_references.json +1 -0
  31. data/test/fixtures/get_block.json +193 -0
  32. data/test/fixtures/get_dynamic_global_properties.json +32 -0
  33. data/test/fixtures/get_feed_history.json +684 -0
  34. data/test/fixtures/get_hardfork_version.json +1 -0
  35. data/test/fixtures/get_key_references.json +14 -0
  36. data/test/fixtures/get_stats_for_time.json +57 -0
  37. data/test/fixtures/get_vesting_delegation.json +936 -0
  38. data/test/fixtures/golos_get_dynamic_global_properties.json +32 -0
  39. data/test/fixtures/market_history_api_get_market_history_buckets.json +1 -0
  40. data/test/fixtures/market_history_api_get_order_book.json +109 -0
  41. data/test/fixtures/market_history_api_get_recent_trades.json +55 -0
  42. data/test/fixtures/market_history_api_get_ticker.json +11 -0
  43. data/test/fixtures/market_history_api_get_volume.json +1 -0
  44. data/test/fixtures/null.json +1 -0
  45. data/test/fixtures/vcr_cassettes/account_by_key_api_all_methods.yml +1465 -0
  46. data/test/fixtures/vcr_cassettes/account_by_key_api_jsonrpc.yml +199 -0
  47. data/test/fixtures/vcr_cassettes/api_all_methods.yml +13802 -0
  48. data/test/fixtures/vcr_cassettes/api_jsonrpc.yml +53 -0
  49. data/test/fixtures/vcr_cassettes/base_per_debt.yml +11068 -0
  50. data/test/fixtures/vcr_cassettes/base_per_mvest.yml +6024 -0
  51. data/test/fixtures/vcr_cassettes/block_time.yml +5368 -0
  52. data/test/fixtures/vcr_cassettes/broadcast_transaction.yml +1723 -0
  53. data/test/fixtures/vcr_cassettes/chain_stats_api_jsonrpc.yml +51 -0
  54. data/test/fixtures/vcr_cassettes/condenser_all_all_methods.yml +13770 -0
  55. data/test/fixtures/vcr_cassettes/condenser_api_jsonrpc.yml +103 -0
  56. data/test/fixtures/vcr_cassettes/expiration_initialize.yml +16108 -0
  57. data/test/fixtures/vcr_cassettes/find_account.yml +5732 -0
  58. data/test/fixtures/vcr_cassettes/find_block.yml +5322 -0
  59. data/test/fixtures/vcr_cassettes/find_comment.yml +16386 -0
  60. data/test/fixtures/vcr_cassettes/follow_api_jsonrpc.yml +99 -0
  61. data/test/fixtures/vcr_cassettes/get_account_count.yml +783 -0
  62. data/test/fixtures/vcr_cassettes/get_account_references.yml +773 -0
  63. data/test/fixtures/vcr_cassettes/get_accounts.yml +918 -0
  64. data/test/fixtures/vcr_cassettes/get_accounts_no_argument.yml +773 -0
  65. data/test/fixtures/vcr_cassettes/get_dynamic_global_properties.yml +893 -0
  66. data/test/fixtures/vcr_cassettes/get_feed_history.yml +1432 -0
  67. data/test/fixtures/vcr_cassettes/get_hardfork_version.yml +835 -0
  68. data/test/fixtures/vcr_cassettes/get_key_references.yml +1571 -0
  69. data/test/fixtures/vcr_cassettes/get_market_history.yml +1563 -0
  70. data/test/fixtures/vcr_cassettes/get_market_history_buckets.yml +1665 -0
  71. data/test/fixtures/vcr_cassettes/get_order_book.yml +1459 -0
  72. data/test/fixtures/vcr_cassettes/get_recent_trades.yml +1459 -0
  73. data/test/fixtures/vcr_cassettes/get_ticker.yml +1563 -0
  74. data/test/fixtures/vcr_cassettes/get_trade_history.yml +1459 -0
  75. data/test/fixtures/vcr_cassettes/get_vesting_delegations.yml +731 -0
  76. data/test/fixtures/vcr_cassettes/get_volume.yml +1561 -0
  77. data/test/fixtures/vcr_cassettes/get_witness_by_account.yml +835 -0
  78. data/test/fixtures/vcr_cassettes/look_up_witnesses.yml +831 -0
  79. data/test/fixtures/vcr_cassettes/market_history_api_all_methods.yml +10191 -0
  80. data/test/fixtures/vcr_cassettes/market_history_api_jsonrpc.yml +51 -0
  81. data/test/fixtures/vcr_cassettes/network_broadcast_api_all_methods.yml +2455 -0
  82. data/test/fixtures/vcr_cassettes/network_broadcast_api_jsonrpc.yml +51 -0
  83. data/test/fixtures/vcr_cassettes/properties.yml +5551 -0
  84. data/test/fixtures/vcr_cassettes/recover_transaction.yml +1815 -0
  85. data/test/fixtures/vcr_cassettes/ssc_blockchain_block_info.yml +90 -0
  86. data/test/fixtures/vcr_cassettes/ssc_blockchain_block_info_invalid.yml +88 -0
  87. data/test/fixtures/vcr_cassettes/ssc_blockchain_latest_block_info.yml +90 -0
  88. data/test/fixtures/vcr_cassettes/ssc_blockchain_transaction_info.yml +90 -0
  89. data/test/fixtures/vcr_cassettes/ssc_contracts_contract.yml +364 -0
  90. data/test/fixtures/vcr_cassettes/ssc_contracts_find.yml +89 -0
  91. data/test/fixtures/vcr_cassettes/ssc_contracts_find_one.yml +87 -0
  92. data/test/fixtures/vcr_cassettes/stream_jsonrpc.yml +27502 -0
  93. data/test/fixtures/vcr_cassettes/tag_api_jsonrpc.yml +155 -0
  94. data/test/fixtures/vcr_cassettes/transaction_expiration_initialize_nil.yml +17597 -0
  95. data/test/fixtures/vcr_cassettes/transaction_jsonrpc.yml +61 -0
  96. data/test/fixtures/vcr_cassettes/unknown_chain_id.yml +13038 -0
  97. data/test/fixtures/vcr_cassettes/valid_chains.yml +11450 -0
  98. data/test/radiator/account_by_key_api_test.rb +46 -0
  99. data/test/radiator/api_test.rb +135 -0
  100. data/test/radiator/chain_stats_api_test.rb +49 -0
  101. data/test/radiator/chain_test.rb +153 -0
  102. data/test/radiator/condenser_api_test.rb +48 -0
  103. data/test/radiator/follow_api_test.rb +48 -0
  104. data/test/radiator/market_history_api_test.rb +100 -0
  105. data/test/radiator/network_broadcast_api_test.rb +48 -0
  106. data/test/radiator/operation_test.rb +116 -0
  107. data/test/radiator/ssc/blockchain_test.rb +58 -0
  108. data/test/radiator/ssc/contracts_test.rb +65 -0
  109. data/test/radiator/stream_test.rb +48 -0
  110. data/test/radiator/tag_api_test.rb +40 -0
  111. data/test/radiator/transaction_test.rb +755 -0
  112. data/test/test_helper.rb +66 -0
  113. metadata +187 -79
  114. data/.codeclimate.yml +0 -19
  115. data/.gitignore +0 -52
  116. data/.travis.yml +0 -23
  117. data/gource.sh +0 -8
  118. data/images/Anthony Martin.png +0 -0
  119. data/images/Marvin Hofmann.jpg +0 -0
  120. data/images/Marvin Hofmann.png +0 -0
  121. data/lib/steem.rb +0 -17
@@ -25,10 +25,10 @@ module Radiator
25
25
  end
26
26
  end
27
27
 
28
- @chain ||= :steem
28
+ @url = options[:url] || url
29
+ @chain ||= 'hive'
29
30
  @chain = @chain.to_sym
30
31
  @chain_id = chain_id options[:chain_id]
31
- @url = options[:url] || url
32
32
  @operations = options[:operations] || []
33
33
 
34
34
  @self_logger = false
@@ -81,6 +81,11 @@ module Radiator
81
81
 
82
82
  case chain.to_s.downcase.to_sym
83
83
  when :steem then NETWORKS_STEEM_CHAIN_ID
84
+ when :hive
85
+ database_api = Hive::DatabaseApi.new(url: @url)
86
+ database_api.get_config do |config|
87
+ config['HIVE_CHAIN_ID']
88
+ end rescue nil || NETWORKS_HIVE_CHAIN_ID
84
89
  when :test then NETWORKS_TEST_CHAIN_ID
85
90
  end
86
91
  end
@@ -88,6 +93,7 @@ module Radiator
88
93
  def url
89
94
  case chain.to_s.downcase.to_sym
90
95
  when :steem then NETWORKS_STEEM_DEFAULT_NODE
96
+ when :hive then NETWORKS_HIVE_DEFAULT_NODE
91
97
  when :test then NETWORKS_TEST_DEFAULT_NODE
92
98
  end
93
99
  end
@@ -114,6 +120,26 @@ module Radiator
114
120
  else
115
121
  self
116
122
  end
123
+ rescue OperationError => e
124
+ trx_builder, network_api = case @chain.to_sym
125
+ when :steem then [
126
+ Steem::TransactionBuilder.new(wif: @wif),
127
+ Steem::NetworkBroadcastApi.new(url: @url)
128
+ ]
129
+ when :hive then [
130
+ Hive::TransactionBuilder.new(wif: @wif),
131
+ Hive::NetworkBroadcastApi.new(url: @url)
132
+ ]
133
+ end
134
+
135
+ raise e if trx_builder.nil?
136
+
137
+ @operations.each do |op|
138
+ type = op.delete(:type)
139
+ trx_builder.put({type => op})
140
+ end
141
+
142
+ network_api.broadcast_transaction_synchronous(trx_builder.transaction)
117
143
  ensure
118
144
  shutdown
119
145
  end
@@ -122,7 +148,7 @@ module Radiator
122
148
  @operations = @operations.map do |op|
123
149
  case op
124
150
  when Operation then op
125
- else; Operation.new(op)
151
+ else; Operation.new(op.merge(chain: @chain))
126
152
  end
127
153
  end
128
154
  end
@@ -147,6 +173,19 @@ module Radiator
147
173
  def use_condenser_namespace?
148
174
  !!@use_condenser_namespace
149
175
  end
176
+
177
+ def inspect
178
+ properties = %w(
179
+ url ref_block_num ref_block_prefix expiration chain
180
+ use_condenser_namespace immutable_expiration payload
181
+ ).map do |prop|
182
+ if !!(v = instance_variable_get("@#{prop}"))
183
+ "@#{prop}=#{v}"
184
+ end
185
+ end.compact.join(', ')
186
+
187
+ "#<#{self.class.name} [#{properties}]>"
188
+ end
150
189
  private
151
190
  def broadcast_payload(payload)
152
191
  if use_condenser_namespace?
@@ -238,6 +277,7 @@ module Radiator
238
277
  bytes << op.to_bytes
239
278
  end
240
279
 
280
+ # FIXME Should pakC(0) instead?
241
281
  bytes << 0x00 # extensions
242
282
 
243
283
  bytes
@@ -1,57 +1,15 @@
1
+ # @deprecated Using Radiator::Type::Amount class provided is deprecated. Please use: Hive::Type::Amount
1
2
  module Radiator
2
3
  module Type
3
-
4
- # See: https://github.com/xeroc/piston-lib/blob/34a7525cee119ec9b24a99577ede2d54466fca0e/steembase/operations.py
5
- class Amount < Serializer
6
- def initialize(value)
7
- super(:amount, value)
8
-
9
- case value
10
- when ::Array
11
- a, p, t = value
12
- @asset = case t
13
- when '@@000000013' then 'SBD'
14
- when '@@000000021' then 'STEEM'
15
- when '@@000000037' then 'VESTS'
16
- else; raise TypeError, "Asset #{@asset} unknown."
17
- end
18
- @precision = p
19
- @amount = "%.#{p}f" % (a.to_f / 10 ** p)
20
- else
21
- @amount, @asset = value.strip.split(' ')
22
- @precision = case @asset
23
- when 'STEEM' then 3
24
- when 'VESTS' then 6
25
- when 'SBD' then 3
26
- when 'CORE' then 3
27
- when 'CESTS' then 6
28
- when 'TEST' then 3
29
- else; raise TypeError, "Asset #{@asset} unknown."
30
- end
4
+ class Amount < Hive::Type::Amount
5
+ def initialize(options = {})
6
+ unless defined? @@deprecated_warning_shown
7
+ warn "[DEPRECATED] Using Radiator::Type::Amount class provided is deprecated. Please use: Hive::Type::Amount"
8
+ @@deprecated_warning_shown = true
9
+
10
+ super(options.merge(chain: :hive))
31
11
  end
32
12
  end
33
-
34
- def to_bytes
35
- asset = @asset.ljust(7, "\x00")
36
- amount = (@amount.to_f * 10 ** @precision).round
37
-
38
- [amount].pack('q') +
39
- [@precision].pack('c') +
40
- asset
41
- end
42
-
43
- def to_a
44
- case @asset
45
- when 'STEEM' then [(@amount.to_f * 1000).to_i.to_s, 3, '@@000000021']
46
- when 'VESTS' then [(@amount.to_f * 1000000).to_i.to_s, 6, '@@000000037']
47
- when 'SBD' then [(@amount.to_f * 1000).to_i.to_s, 3, '@@000000013']
48
- else; raise TypeError, "Asset #{@asset} unknown."
49
- end
50
- end
51
-
52
- def to_s
53
- "#{@amount} #{@asset}"
54
- end
55
13
  end
56
14
  end
57
15
  end
@@ -7,7 +7,14 @@ module Radiator
7
7
  end
8
8
 
9
9
  def to_bytes
10
- pakArr([]) + pakHash(@value)
10
+ #set sz 1, op type 0, see
11
+ #https://github.com/steemit/steem-js/blob/733332d09582e95c0ea868a6ac5b6ee8a1f115ee/src/auth/serializer/src/operations.js#L355
12
+ varint(1) + varint(0) + varint(@value.size) + @value.map do |b|
13
+ case b
14
+ when ::Array then pakStr(b.first.to_s) + pakS(b.last)
15
+ else; pakStr(b.keys.first.to_s) + pakS(b.values.first)
16
+ end
17
+ end.join
11
18
  end
12
19
 
13
20
  def to_h
@@ -5,8 +5,8 @@ module Radiator
5
5
  def initialize(value)
6
6
  super(:price, value)
7
7
 
8
- @base = Amount.new(@value[:base])
9
- @quote = Amount.new(@value[:quote])
8
+ @base = Hive::Type::Amount.new(@value[:base])
9
+ @quote = Hive::Type::Amount.new(@value[:quote])
10
10
  end
11
11
 
12
12
  def to_bytes
@@ -1,4 +1,4 @@
1
1
  module Radiator
2
- VERSION = '0.4.6'
2
+ VERSION = '0.4.8'
3
3
  AGENT_ID = "radiator/#{VERSION}"
4
4
  end
@@ -9,34 +9,38 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Anthony Martin']
10
10
  spec.email = ['radiator@martin-studio.com']
11
11
 
12
- spec.summary = %q{STEEM RPC Ruby Client}
13
- spec.description = %q{Client for accessing the STEEM blockchain.}
12
+ spec.summary = %q{Hive/Steem RPC Ruby Client}
13
+ spec.description = %q{Client for accessing the Hive/Steem blockchain.}
14
14
  spec.homepage = 'https://github.com/inertia186/radiator'
15
15
  spec.license = 'CC0-1.0'
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test)/}) }
17
+ spec.files = Dir['lib/**/*', 'test/**/*', 'Gemfile', 'LICENSE', 'Rakefile', 'README.md', 'radiator.gemspec']
18
18
  spec.require_paths = ['lib']
19
19
 
20
20
  spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.1'
21
- spec.add_development_dependency 'rake', '~> 12.1', '>= 12.1.0'
21
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
22
22
  spec.add_development_dependency 'minitest', '~> 5.10', '>= 5.10.3'
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
- spec.add_development_dependency 'webmock', '~> 3.1', '>= 3.1.0'
26
- spec.add_development_dependency 'simplecov', '~> 0.16.1'
27
- spec.add_development_dependency 'vcr', '~> 4.0', '>= 4.0.0'
28
- spec.add_development_dependency 'yard', '~> 0.9.9'
25
+ spec.add_development_dependency 'webmock', '~> 3.6', '>= 3.6.0'
26
+ spec.add_development_dependency 'simplecov', '~> 0.19.0'
27
+ spec.add_development_dependency 'vcr', '~> 6.0', '>= 6.0.0'
28
+ spec.add_development_dependency 'yard', '~> 0.9.20'
29
29
  spec.add_development_dependency 'pry', '~> 0.11', '>= 0.11.3'
30
30
  spec.add_development_dependency 'rb-readline', '~> 0.5', '>= 0.5.5'
31
- spec.add_development_dependency 'irb', '~> 1.0', '>= 1.0.0'
31
+ spec.add_development_dependency 'irb', '~> 1.2', '>= 1.2.1'
32
32
 
33
33
  # net-http-persistent has an open-ended dependency because radiator directly
34
- # supports net-http-persistent-3.0.0 as well as net-http-persistent-2.5.2.
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.5')
37
+ spec.add_dependency('hive-ruby', '~> 1.0', '>= 1.0.2')
36
38
  spec.add_dependency('json', '~> 2.0', '>= 2.0.2')
37
39
  spec.add_dependency('logging', '~> 2.2', '>= 2.2.0')
38
- spec.add_dependency('hashie', '~> 3.5', '>= 3.5.5')
39
- spec.add_dependency('bitcoin-ruby', '~> 0.0', '>= 0.0.11')
40
- spec.add_dependency('ffi', '~> 1.9', '>= 1.9.18')
40
+ # hashie is floating because we prefer 4.1 or higher, but the official
41
+ # steem-ruby-0.9.4 gem is stuck on hashie-3.5.7.
42
+ spec.add_dependency('hashie', '>= 3.5')
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)
41
45
  spec.add_dependency('awesome_print', '~> 1.7', '>= 1.7.0')
42
46
  end
@@ -0,0 +1 @@
1
+ {"id":1,"result":[]}
@@ -0,0 +1,29 @@
1
+ {
2
+ "id":1,
3
+ "error":{
4
+ "code":1,
5
+ "message":"10 assert_exception: Assert Exception\na0 != e: too few arguments passed to method\n {}\n th_a api_connection.hpp:165 call_generic",
6
+ "data":{
7
+ "code":10,
8
+ "name":"assert_exception",
9
+ "message":"Assert Exception",
10
+ "stack":[
11
+ {
12
+ "context":{
13
+ "level":"error",
14
+ "file":"api_connection.hpp",
15
+ "line":165,
16
+ "method":"call_generic",
17
+ "hostname":"",
18
+ "thread_name":"th_a",
19
+ "timestamp":"2016-08-20T18:15:07"
20
+ },
21
+ "format":"a0 != e: too few arguments passed to method",
22
+ "data":{
23
+
24
+ }
25
+ }
26
+ ]
27
+ }
28
+ }
29
+ }
@@ -0,0 +1 @@
1
+ {"id":1,"result":[{"id":"8.0.92583","follower":"a11at","following":"inertia","what":["blog"]},{"id":"8.0.39686","follower":"abarefootpoet","following":"inertia","what":["blog"]},{"id":"8.0.104952","follower":"abit","following":"inertia","what":["blog"]},{"id":"8.0.81725","follower":"alexgr","following":"inertia","what":["blog"]},{"id":"8.0.55176","follower":"alexoz","following":"inertia","what":["blog"]},{"id":"8.0.99137","follower":"andressilvera","following":"inertia","what":["blog"]},{"id":"8.0.141035","follower":"applecrisp","following":"inertia","what":["blog"]},{"id":"8.0.11607","follower":"arrowj","following":"inertia","what":["blog"]},{"id":"8.0.12425","follower":"artificial","following":"inertia","what":["blog"]},{"id":"8.0.145212","follower":"ash","following":"inertia","what":["blog"]},{"id":"8.0.12966","follower":"ausbitbank","following":"inertia","what":["blog"]},{"id":"8.0.32102","follower":"beachbum","following":"inertia","what":["blog"]},{"id":"8.0.93711","follower":"ben99","following":"inertia","what":["blog"]},{"id":"8.0.120952","follower":"benadapt","following":"inertia","what":["blog"]},{"id":"8.0.28247","follower":"bimmerhead","following":"inertia","what":["blog"]},{"id":"8.0.95505","follower":"bleepcoin","following":"inertia","what":["blog"]},{"id":"8.0.15571","follower":"bondor","following":"inertia","what":["blog"]},{"id":"8.0.57400","follower":"cashbandicoot","following":"inertia","what":["blog"]},{"id":"8.0.100127","follower":"cian.dafe","following":"inertia","what":["blog"]},{"id":"8.0.116778","follower":"condra","following":"inertia","what":["blog"]},{"id":"8.0.5965","follower":"cousteau","following":"inertia","what":["blog"]},{"id":"8.0.161981","follower":"cryptojoy.com","following":"inertia","what":["blog"]},{"id":"8.0.102614","follower":"dajohns1420","following":"inertia","what":["blog"]},{"id":"8.0.148670","follower":"davidbrogan","following":"inertia","what":["blog"]},{"id":"8.0.117953","follower":"dennygalindo","following":"inertia","what":["blog"]},{"id":"8.0.111506","follower":"digitalhound","following":"inertia","what":["blog"]},{"id":"8.0.152965","follower":"discombobulated","following":"inertia","what":["blog"]},{"id":"8.0.118278","follower":"domavila","following":"inertia","what":["blog"]},{"id":"8.0.133707","follower":"donnie","following":"inertia","what":["blog"]},{"id":"8.0.51439","follower":"e-dubby","following":"inertia","what":["blog"]},{"id":"8.0.51539","follower":"edtorrez","following":"inertia","what":["blog"]},{"id":"8.0.107246","follower":"elfremzy1985","following":"inertia","what":["blog"]},{"id":"8.0.52564","follower":"envisionva","following":"inertia","what":["blog"]},{"id":"8.0.9107","follower":"fkn","following":"inertia","what":["blog"]},{"id":"8.0.72587","follower":"forrestwillie","following":"inertia","what":["blog"]},{"id":"8.0.160223","follower":"foxxycat","following":"inertia","what":["blog"]},{"id":"8.0.150777","follower":"freshgoals","following":"inertia","what":["blog"]},{"id":"8.0.26187","follower":"future24","following":"inertia","what":["blog"]},{"id":"8.0.106860","follower":"fyrstikken","following":"inertia","what":["blog"]},{"id":"8.0.67648","follower":"gardenlady","following":"inertia","what":["blog"]},{"id":"8.0.16173","follower":"georgedonnelly","following":"inertia","what":["blog"]},{"id":"8.0.102115","follower":"gir88","following":"inertia","what":["blog"]},{"id":"8.0.24887","follower":"gonzotron","following":"inertia","what":["blog"]},{"id":"8.0.67993","follower":"greenman","following":"inertia","what":["blog"]},{"id":"8.0.133792","follower":"harand","following":"inertia","what":["blog"]},{"id":"8.0.40891","follower":"harveywoods","following":"inertia","what":["blog"]},{"id":"8.0.72866","follower":"hdphotography","following":"inertia","what":["blog"]},{"id":"8.0.154487","follower":"heretickitten","following":"inertia","what":["blog"]},{"id":"8.0.48008","follower":"inkha","following":"inertia","what":["blog"]},{"id":"8.0.129474","follower":"ivanba12","following":"inertia","what":["blog"]},{"id":"8.0.10884","follower":"jaimejean","following":"inertia","what":["blog"]},{"id":"8.0.88324","follower":"jennamarbles","following":"inertia","what":["blog"]},{"id":"8.0.80271","follower":"joelinux","following":"inertia","what":["blog"]},{"id":"8.0.91828","follower":"joseph","following":"inertia","what":["blog"]},{"id":"8.0.168035","follower":"jtstreetman","following":"inertia","what":["blog"]},{"id":"8.0.26704","follower":"juicyg","following":"inertia","what":["blog"]},{"id":"8.0.90991","follower":"kirby1","following":"inertia","what":["blog"]},{"id":"8.0.133797","follower":"klye","following":"inertia","what":["blog"]},{"id":"8.0.93961","follower":"konti","following":"inertia","what":["blog"]},{"id":"8.0.51073","follower":"kooshikoo","following":"inertia","what":["blog"]},{"id":"8.0.124737","follower":"kristina011891","following":"inertia","what":["blog"]},{"id":"8.0.78450","follower":"kryptik","following":"inertia","what":["blog"]},{"id":"8.0.73220","follower":"lapingvino","following":"inertia","what":["blog"]},{"id":"8.0.71722","follower":"liberosist","following":"inertia","what":["blog"]},{"id":"8.0.104773","follower":"lovejoy","following":"inertia","what":["blog"]},{"id":"8.0.92561","follower":"macartem","following":"inertia","what":["blog"]},{"id":"8.0.123946","follower":"malxdrakon","following":"inertia","what":["blog"]},{"id":"8.0.118475","follower":"mark-waser","following":"inertia","what":["blog"]},{"id":"8.0.51734","follower":"matherly","following":"inertia","what":["blog"]},{"id":"8.0.6855","follower":"mctiller","following":"inertia","what":["blog"]},{"id":"8.0.58118","follower":"meesterboom","following":"inertia","what":["blog"]},{"id":"8.0.90293","follower":"melawanarus","following":"inertia","what":["blog"]},{"id":"8.0.118346","follower":"mikehere","following":"inertia","what":["blog"]},{"id":"8.0.145767","follower":"mosab","following":"inertia","what":["blog"]},{"id":"8.0.7027","follower":"nastrom","following":"inertia","what":["blog"]},{"id":"8.0.95044","follower":"naturalista","following":"inertia","what":["blog"]},{"id":"8.0.51819","follower":"nexusvortex616","following":"inertia","what":["blog"]},{"id":"8.0.32354","follower":"nonlinearone","following":"inertia","what":["blog"]},{"id":"8.0.35308","follower":"patrice","following":"inertia","what":["blog"]},{"id":"8.0.143273","follower":"penguinpablo","following":"inertia","what":["blog"]},{"id":"8.0.51014","follower":"pjheinz","following":"inertia","what":["blog"]},{"id":"8.0.145072","follower":"politicasan2","following":"inertia","what":["blog"]},{"id":"8.0.90973","follower":"powmonkey","following":"inertia","what":["blog"]},{"id":"8.0.35805","follower":"randyclemens","following":"inertia","what":["blog"]},{"id":"8.0.53874","follower":"razvanelulmarin","following":"inertia","what":["blog"]},{"id":"8.0.78276","follower":"repholder","following":"inertia","what":["blog"]},{"id":"8.0.9005","follower":"ridji","following":"inertia","what":["blog"]},{"id":"8.0.150998","follower":"rook","following":"inertia","what":["blog"]},{"id":"8.0.102282","follower":"royaltiffany","following":"inertia","what":["blog"]},{"id":"8.0.70032","follower":"samupaha","following":"inertia","what":["blog"]},{"id":"8.0.5660","follower":"seb","following":"inertia","what":["blog"]},{"id":"8.0.87906","follower":"shadowspub","following":"inertia","what":["blog"]},{"id":"8.0.116079","follower":"skapaneas","following":"inertia","what":["blog"]},{"id":"8.0.163256","follower":"skyefox","following":"inertia","what":["blog"]},{"id":"8.0.106050","follower":"spookypooky","following":"inertia","what":["blog"]},{"id":"8.0.50974","follower":"steemitqa","following":"inertia","what":["blog"]},{"id":"8.0.79981","follower":"steemlinks","following":"inertia","what":["blog"]},{"id":"8.0.137698","follower":"steemreporter","following":"inertia","what":["blog"]},{"id":"8.0.78917","follower":"steemychicken1","following":"inertia","what":["blog"]},{"id":"8.0.82309","follower":"steemzine","following":"inertia","what":["blog"]}]}
@@ -0,0 +1,165 @@
1
+ {
2
+ "id":1,
3
+ "result":[
4
+ {
5
+ "id":19155,
6
+ "name":"inertia",
7
+ "owner":{
8
+ "weight_threshold":1,
9
+ "account_auths":[
10
+
11
+ ],
12
+ "key_auths":[
13
+ [
14
+ "STM7T5DRhNkp5RpiFrarPfLGXEnU6yk5jLFokfmyJThgRwtLpJuKM",
15
+ 1
16
+ ]
17
+ ]
18
+ },
19
+ "active":{
20
+ "weight_threshold":1,
21
+ "account_auths":[
22
+
23
+ ],
24
+ "key_auths":[
25
+ [
26
+ "STM8Vj2LTHrZabhxsMDfWnquBf7212YRBpkjEmhGEQ9JQpEUtcr6P",
27
+ 1
28
+ ]
29
+ ]
30
+ },
31
+ "posting":{
32
+ "weight_threshold":1,
33
+ "account_auths":[
34
+ [
35
+ "streemian",
36
+ 1
37
+ ]
38
+ ],
39
+ "key_auths":[
40
+ [
41
+ "STM5iR38ZUVWhrsSsggfCwhetnffJkDZ6b1Px9XiG4woF4DxrwVHj",
42
+ 1
43
+ ]
44
+ ]
45
+ },
46
+ "memo_key":"STM6hNw2oxZLAERBBArbLkgquM2mtpiGZoJ49Ya5267NzpoSs4NrT",
47
+ "json_metadata":"{\"git\":{\"radiator\":{\"https\":{\"type\":\"https\",\"name\":\"radiator\",\"value\":\"https://github.com/inertia186/radiator\",\"projecturl\":\"radiator\"}}},\"squeek\":{\"profilePicture\":\"https://img1.steemit.com/0x0/http://i.imgur.com/LbTz5yg.jpg\"},\"version\":\"0.0.1\",\"profile\":{\"email\":\"steemit@martin-studio.com\",\"location\":\"California\",\"timezone\":\"-7\",\"locale\":\"en_US\",\"languages\":[\"en\"],\"profile_image\":\"https://img1.steemit.com/0x0/http://i.imgur.com/LbTz5yg.jpg\",\"cover_image\":\"https://img1.steemit.com/0x0/https://i.imgur.com/0ccC6UH.png\",\"name\":\"inertia Ⓐ³\",\"about\":\"non-guru\",\"website\":\"http://inertia.freedom-blogs.com/\"}}",
48
+ "proxy":"",
49
+ "last_owner_update":"2016-10-20T21:49:27",
50
+ "last_account_update":"2016-12-02T22:31:21",
51
+ "created":"2016-07-13T06:44:33",
52
+ "mined":false,
53
+ "owner_challenged":false,
54
+ "active_challenged":false,
55
+ "last_owner_proved":"1970-01-01T00:00:00",
56
+ "last_active_proved":"1970-01-01T00:00:00",
57
+ "recovery_account":"steem",
58
+ "last_account_recovery":"2016-07-21T05:49:33",
59
+ "reset_account":"null",
60
+ "comment_count":0,
61
+ "lifetime_vote_count":0,
62
+ "post_count":1489,
63
+ "can_vote":true,
64
+ "voting_power":9929,
65
+ "last_vote_time":"2017-04-26T15:34:21",
66
+ "balance":"0.000 STEEM",
67
+ "savings_balance":"0.000 STEEM",
68
+ "sbd_balance":"0.000 SBD",
69
+ "sbd_seconds":"10232004279",
70
+ "sbd_seconds_last_update":"2017-04-25T22:10:48",
71
+ "sbd_last_interest_payment":"2017-04-21T06:16:57",
72
+ "savings_sbd_balance":"0.000 SBD",
73
+ "savings_sbd_seconds":"6420926232",
74
+ "savings_sbd_seconds_last_update":"2016-12-22T20:28:03",
75
+ "savings_sbd_last_interest_payment":"2016-12-12T06:49:42",
76
+ "savings_withdraw_requests":0,
77
+ "reward_sbd_balance":"0.248 SBD",
78
+ "reward_steem_balance":"0.000 STEEM",
79
+ "reward_vesting_balance":"423736.309617 VESTS",
80
+ "reward_vesting_steem":"204.084 STEEM",
81
+ "vesting_shares":"51666407.059646 VESTS",
82
+ "delegated_vesting_shares":"855000.000000 VESTS",
83
+ "received_vesting_shares":"3441788.425745 VESTS",
84
+ "vesting_withdraw_rate":"0.000000 VESTS",
85
+ "next_vesting_withdrawal":"1969-12-31T23:59:59",
86
+ "withdrawn":0,
87
+ "to_withdraw":0,
88
+ "withdraw_routes":0,
89
+ "curation_rewards":878595,
90
+ "posting_rewards":10115584,
91
+ "proxied_vsf_votes":[
92
+ "9981561512772",
93
+ 0,
94
+ 0,
95
+ 0
96
+ ],
97
+ "witnesses_voted_for":27,
98
+ "average_bandwidth":272926088,
99
+ "lifetime_bandwidth":"4400517000000",
100
+ "last_bandwidth_update":"2017-03-30T14:12:48",
101
+ "average_market_bandwidth":126680736,
102
+ "last_market_bandwidth_update":"2017-03-29T16:23:42",
103
+ "last_post":"2017-04-26T05:20:42",
104
+ "last_root_post":"2017-04-25T17:48:21",
105
+ "post_bandwidth":13323,
106
+ "new_average_bandwidth":"70551028916",
107
+ "new_average_market_bandwidth":"27734050257",
108
+ "vesting_balance":"0.000 STEEM",
109
+ "reputation":"85159144509014",
110
+ "transfer_history":[
111
+
112
+ ],
113
+ "market_history":[
114
+
115
+ ],
116
+ "post_history":[
117
+
118
+ ],
119
+ "vote_history":[
120
+
121
+ ],
122
+ "other_history":[
123
+
124
+ ],
125
+ "witness_votes":[
126
+ "abit",
127
+ "anyx",
128
+ "bacchist",
129
+ "bitcoiner",
130
+ "bitcoinparadise",
131
+ "boatymcboatface",
132
+ "busy.witness",
133
+ "chainsquad.com",
134
+ "charlieshrem",
135
+ "codydeeds",
136
+ "complexring",
137
+ "furion",
138
+ "fyrst-witness",
139
+ "good-karma",
140
+ "gtg",
141
+ "jesta",
142
+ "klye",
143
+ "masteryoda",
144
+ "pfunk",
145
+ "pharesim",
146
+ "proctologic",
147
+ "riverhead",
148
+ "roadscape",
149
+ "roelandp",
150
+ "smooth.witness",
151
+ "someguy123",
152
+ "teamsteem"
153
+ ],
154
+ "tags_usage":[
155
+
156
+ ],
157
+ "guest_bloggers":[
158
+
159
+ ],
160
+ "blog_category":{
161
+
162
+ }
163
+ }
164
+ ]
165
+ }