hive-ruby 1.0.0.pre.1 → 1.0.2

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
  SHA256:
3
- metadata.gz: f12eb926857666814b1ddd99302952102c91299bba3d2efc9ffb75888f72c520
4
- data.tar.gz: e1103584e3aec71e89f336c3a044d54ad8f3f8bd0056fdf6d1cf694ce3c4f816
3
+ metadata.gz: 0532e4cf00c66e983cec921fd1ef3d193df1d61c5c317254f1876c3741299c4c
4
+ data.tar.gz: f14bf0b18bdd1ed9926708c89f9fe0f9a3b83cfa81dd310ac3673b0f49d3b69f
5
5
  SHA512:
6
- metadata.gz: 16e20294bf841fa651c9a236c499f659dbf10b136876e31acead394e4362f68583fcb846a86cd19cfdd7505c46dda22d13c05f008f290e1b92c4b7b36b2589dc
7
- data.tar.gz: 4c3104a416ce1010e6e4543bb9830aad3a884e7af34d8083d59f8b57d4043cdb3454a37eefe3927aeee516f9eda9c12109495deb7ec0252fd5d454d50b9d7222
6
+ metadata.gz: f7204cf39c276304f1ee0c8fb0ed125fc82a4ddcb905841db870bc1ea39e7a10f5ac0da18fd2b49c5a8c4fa16ed0bc154bb1744fcaeb6c292f423a2bdf024bfc
7
+ data.tar.gz: d7189046c313b6d7eeeb39b81bb4ad7472bc4a80093d27a7c1a4aef2e53fd7ad07bfedda690b11638bdc93368914c16a29f9045f90f3b47d510a979da1f31b04
data/.gitignore CHANGED
@@ -43,7 +43,7 @@ build-iPhoneSimulator/
43
43
 
44
44
  # for a library or gem, you might want to ignore these files since the code is
45
45
  # intended to run in multiple environments; otherwise, check them in:
46
- # Gemfile.lock
46
+ Gemfile.lock
47
47
  # .ruby-version
48
48
  # .ruby-gemset
49
49
 
@@ -0,0 +1,17 @@
1
+ image: ruby:2.6.1-alpine
2
+
3
+ pages:
4
+ script:
5
+ - apk add --update --no-cache build-base libxml2-dev libxslt-dev libstdc++ tzdata mariadb-dev nodejs ca-certificates yarn
6
+ - bundle install --path vendor
7
+ - bundle exec yard
8
+ - rm -rf public
9
+ - mv doc public
10
+ artifacts:
11
+ paths:
12
+ - public
13
+ cache:
14
+ paths:
15
+ - vendor
16
+ only:
17
+ - master
data/Rakefile CHANGED
@@ -112,20 +112,20 @@ namespace :test do
112
112
  [k, v] if keys.include? k.to_sym
113
113
  end.compact.to_h
114
114
 
115
- sbd_exchange_rate = witness[:sbd_exchange_rate]
116
- base = sbd_exchange_rate[:base].to_f
115
+ hbd_exchange_rate = witness[:hbd_exchange_rate] || witness[:hbd_exchange_rate]
116
+ base = hbd_exchange_rate[:base].to_f
117
117
 
118
- if (quote = sbd_exchange_rate[:quote].to_f) > 0
118
+ if (quote = hbd_exchange_rate[:quote].to_f) > 0
119
119
  rate = (base / quote).round(3)
120
- witnesses[witness.owner][:sbd_exchange_rate] = rate
120
+ witnesses[witness.owner][:hbd_exchange_rate] = rate
121
121
  else
122
- witnesses[witness.owner][:sbd_exchange_rate] = nil
122
+ witnesses[witness.owner][:hbd_exchange_rate] = nil
123
123
  end
124
124
 
125
- last_sbd_exchange_update = witness[:last_sbd_exchange_update]
126
- last_sbd_exchange_update = Time.parse(last_sbd_exchange_update + 'Z')
127
- last_sbd_exchange_elapsed = '%.2f hours ago' % ((Time.now.utc - last_sbd_exchange_update) / 60)
128
- witnesses[witness.owner][:last_sbd_exchange_elapsed] = last_sbd_exchange_elapsed
125
+ last_hbd_exchange_update = witness[:last_hbd_exchange_update] || witness[:last_hbd_exchange_update]
126
+ last_hbd_exchange_update = Time.parse(last_hbd_exchange_update + 'Z')
127
+ last_hbd_exchange_elapsed = '%.2f hours ago' % ((Time.now.utc - last_hbd_exchange_update) / 60)
128
+ witnesses[witness.owner][:last_hbd_exchange_elapsed] = last_hbd_exchange_elapsed
129
129
  end
130
130
  end
131
131
  end
Binary file
Binary file
Binary file
@@ -17,14 +17,14 @@ 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.16', '>= 1.16.1'
20
+ spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
21
21
  spec.add_development_dependency 'rake', '~> 13.0.1', '>= 12.3.0'
22
- spec.add_development_dependency 'minitest', '~> 5.10', '>= 5.10.3'
22
+ spec.add_development_dependency 'minitest', '~> 5.14', '>= 5.10.3'
23
23
  spec.add_development_dependency 'minitest-line', '~> 0.6', '>= 0.6.4'
24
24
  spec.add_development_dependency 'minitest-proveit', '~> 1.0', '>= 1.0.0'
25
25
  spec.add_development_dependency 'webmock', '~> 3.3', '>= 3.3.0'
26
26
  spec.add_development_dependency 'simplecov', '~> 0.15', '>= 0.15.1'
27
- spec.add_development_dependency 'vcr', '~> 5.1', '>= 4.0.0'
27
+ spec.add_development_dependency 'vcr', '~> 6.0', '>= 4.0.0'
28
28
  spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.12'
29
29
  spec.add_development_dependency 'pry', '~> 0.11', '>= 0.11.3'
30
30
  spec.add_development_dependency 'awesome_print', '~> 1.8', '>= 1.8.0'
@@ -32,8 +32,8 @@ Gem::Specification.new do |spec|
32
32
 
33
33
  spec.add_dependency 'json', '~> 2.1', '>= 2.1.0'
34
34
  spec.add_dependency 'logging', '~> 2.2', '>= 2.2.0'
35
- spec.add_dependency 'hashie', '~> 3.5', '>= 3.5.7'
36
- spec.add_dependency 'bitcoin-ruby', '~> 0.0', '>= 0.0.18'
35
+ spec.add_dependency 'hashie', '~> 4.1', '>= 3.5.7'
36
+ spec.add_dependency 'bitcoin-ruby', '~> 0.0', '0.0.20'
37
37
  spec.add_dependency 'ffi', '~> 1.9', '>= 1.9.23'
38
38
  spec.add_dependency 'bindata', '~> 2.4', '>= 2.4.4'
39
39
  spec.add_dependency 'base58', '~> 0.2', '>= 0.2.3'
@@ -16,6 +16,7 @@ require 'hive/operation'
16
16
  require 'hive/operation/account_create.rb'
17
17
  require 'hive/operation/account_create_with_delegation.rb'
18
18
  require 'hive/operation/account_update.rb'
19
+ require 'hive/operation/account_update2.rb'
19
20
  require 'hive/operation/account_witness_proxy.rb'
20
21
  require 'hive/operation/account_witness_vote.rb'
21
22
  require 'hive/operation/cancel_transfer_from_savings.rb'
@@ -27,6 +28,7 @@ require 'hive/operation/comment.rb'
27
28
  require 'hive/operation/comment_options.rb'
28
29
  require 'hive/operation/convert.rb'
29
30
  require 'hive/operation/create_claimed_account.rb'
31
+ require 'hive/operation/create_proposal.rb'
30
32
  require 'hive/operation/custom.rb'
31
33
  require 'hive/operation/custom_binary.rb'
32
34
  require 'hive/operation/custom_json.rb'
@@ -43,6 +45,7 @@ require 'hive/operation/limit_order_create.rb'
43
45
  require 'hive/operation/limit_order_create2.rb'
44
46
  require 'hive/operation/prove_authority.rb'
45
47
  require 'hive/operation/recover_account.rb'
48
+ require 'hive/operation/remove_proposal.rb'
46
49
  require 'hive/operation/report_over_production.rb'
47
50
  require 'hive/operation/request_account_recovery.rb'
48
51
  require 'hive/operation/reset_account.rb'
@@ -52,6 +55,7 @@ require 'hive/operation/transfer.rb'
52
55
  require 'hive/operation/transfer_from_savings.rb'
53
56
  require 'hive/operation/transfer_to_savings.rb'
54
57
  require 'hive/operation/transfer_to_vesting.rb'
58
+ require 'hive/operation/update_proposal_votes.rb'
55
59
  require 'hive/operation/vote.rb'
56
60
  require 'hive/operation/withdraw_vesting.rb'
57
61
  require 'hive/operation/witness_update.rb'
@@ -118,7 +118,9 @@ module Hive
118
118
 
119
119
  if Jsonrpc::UNLISTED_APIS.include? @api_name
120
120
  @methods ||= {}
121
- @methods[@api_name] ||= Fallback::API_METHODS[@api_name]
121
+ @methods[@api_name] ||= []
122
+ @methods[@api_name] += Fallback::API_METHODS[@api_name]
123
+ @methods[@api_name] = @methods[@api_name].uniq
122
124
  end
123
125
 
124
126
  unless !!@methods[@api_name]
@@ -19,17 +19,21 @@ module Hive
19
19
  end
20
20
 
21
21
  if error.message.include? 'Internal Error'
22
- raise Hive::RemoteNodeError, error.message, build_backtrace(error)
22
+ raise Hive::RemoteInternalError, error.message, build_backtrace(error)
23
23
  end
24
24
 
25
25
  if error.message.include? 'Server error'
26
- raise Hive::RemoteNodeError, error.message, build_backtrace(error)
26
+ raise Hive::RemoteServerError, error.message, build_backtrace(error)
27
27
  end
28
28
 
29
- if error.message.include? 'plugin not enabled'
29
+ if error.message.include?('plugin not enabled') || error.message.include?('Could not find API')
30
30
  raise Hive::PluginNotEnabledError, error.message, build_backtrace(error)
31
31
  end
32
32
 
33
+ if error.message.include? 'Supported by hivemind'
34
+ raise Hive::MethodNotEnabledError, error.message, build_backtrace(error)
35
+ end
36
+
33
37
  if error.message.include? 'argument'
34
38
  raise Hive::ArgumentError, "#{context}: #{error.message}", build_backtrace(error)
35
39
  end
@@ -74,6 +78,10 @@ module Hive
74
78
  raise Hive::ArgumentError, "#{context}: #{error.message}", build_backtrace(error)
75
79
  end
76
80
 
81
+ if error.message.include? 'Invalid parameter'
82
+ raise Hive::ArgumentError, "#{context}: #{error.message}", build_backtrace(error)
83
+ end
84
+
77
85
  if error.message.include? 'blk->transactions.size() > itr->trx_in_block'
78
86
  raise Hive::VirtualOperationsNotAllowedError, "#{context}: #{error.message}", build_backtrace(error)
79
87
  end
@@ -122,6 +130,10 @@ module Hive
122
130
  raise Hive::UpstreamResponseError, "#{context}: #{error.message}", build_backtrace(error)
123
131
  end
124
132
 
133
+ if error.message.include? 'Request Timeout'
134
+ raise Hive::RequestTimeoutUpstreamResponseError, "#{context}: #{error.message}", build_backtrace(error)
135
+ end
136
+
125
137
  if error.message.include? 'Bad or missing upstream response'
126
138
  raise Hive::BadOrMissingUpstreamResponseError, "#{context}: #{error.message}", build_backtrace(error)
127
139
  end
@@ -202,9 +214,13 @@ module Hive
202
214
  class IncorrectRequestIdError < BaseError; end
203
215
  class IncorrectResponseIdError < BaseError; end
204
216
  class RemoteNodeError < BaseError; end
217
+ class RemoteInternalError < BaseError; end
218
+ class RemoteServerError < BaseError; end
205
219
  class UpstreamResponseError < RemoteNodeError; end
206
220
  class RemoteDatabaseLockError < UpstreamResponseError; end
207
221
  class PluginNotEnabledError < UpstreamResponseError; end
222
+ class MethodNotEnabledError < UpstreamResponseError; end
223
+ class RequestTimeoutUpstreamResponseError < UpstreamResponseError; end
208
224
  class BadOrMissingUpstreamResponseError < UpstreamResponseError; end
209
225
  class TransactionIndexDisabledError < BaseError; end
210
226
  class NotAppBaseError < BaseError; end
@@ -52,7 +52,7 @@ module Hive
52
52
 
53
53
  if !!block
54
54
  index = 0
55
- @rpc_client.rpc_batch_execute(request_object: request_object) do |result, error, id|
55
+ @rpc_client.rpc_batch_execute(api_name: self.class.api_name, request_object: request_object) do |result, error, id|
56
56
  block_num = sub_range.to_a[index]
57
57
  index = index + 1
58
58
 
@@ -66,7 +66,7 @@ module Hive
66
66
  else
67
67
  blocks = []
68
68
 
69
- @rpc_client.rpc_batch_execute(request_object: request_object) do |result, error, id|
69
+ @rpc_client.rpc_batch_execute(api_name: self.class.api_name, request_object: request_object) do |result, error, id|
70
70
  blocks << result
71
71
  end
72
72
  end
@@ -137,7 +137,7 @@ module Hive
137
137
  # * :parent_permlink (String) (automatic) Parent permlink of the content, defaults to first tag.
138
138
  # * :parent_author (String) (optional) Parent author of the content (only used if reply).
139
139
  # * :max_accepted_payout (String) (1000000.000 HBD) Maximum accepted payout, set to '0.000 HBD' to deline payout
140
- # * :percent_steem_dollars (Numeric) (5000) Percent HIVE Dollars is used to set 50/50 or 100% HIVE Power
140
+ # * :percent_hbd (Numeric) (5000) Percent HIVE Dollars is used to set 50/50 or 100% HIVE Power
141
141
  # * :allow_votes (Numeric) (true) Allow votes for this content.
142
142
  # * :allow_curation_rewards (Numeric) (true) Allow curation rewards for this content.
143
143
  # * :beneficiaries (Array<Hash>) Sets the beneficiaries of this content.
@@ -196,7 +196,7 @@ module Hive
196
196
  author: params[:author],
197
197
  permlink: params[:permlink],
198
198
  max_accepted_payout: max_accepted_payout,
199
- percent_steem_dollars: params[:percent_steem_dollars] || 10000,
199
+ percent_hbd: params[:percent_hbd] || 10000,
200
200
  # allow_replies: allow_replies,
201
201
  allow_votes: allow_votes,
202
202
  allow_curation_rewards: allow_curation_rewards,
@@ -646,7 +646,7 @@ module Hive
646
646
  # props: {
647
647
  # account_creation_fee: '0.000 HIVE',
648
648
  # maximum_block_size: 131072,
649
- # sbd_interest_rate:1000
649
+ # hbd_interest_rate:1000
650
650
  # },
651
651
  # fee: '0.000 HIVE',
652
652
  # }
@@ -688,10 +688,10 @@ module Hive
688
688
  # props: {
689
689
  # account_creation_fee: '0.000 HIVE',
690
690
  # maximum_block_size: 131072,
691
- # sbd_interest_rate: 1000,
691
+ # hbd_interest_rate: 1000,
692
692
  # account_subsidy_budget: 50000,
693
693
  # account_subsidy_decay: 330782,
694
- # sbd_exchange_rate: '1.000 HIVE',
694
+ # hbd_exchange_rate: '1.000 HIVE',
695
695
  # url: "https://hive.blog",
696
696
  # new_signing_key: 'STM8LoQjQqJHvotqBo7HjnqmUbFW9oJ2theyqonzUd9DdJ7YYHsvD'
697
697
  # }
@@ -713,31 +713,33 @@ module Hive
713
713
  params = options[:params]
714
714
  check_required_fields(params, *required_fields)
715
715
 
716
- if !!(account_creation_fee = params[:props][:account_creation_fee] rescue nil)
717
- params[:props][:account_creation_fee] = normalize_amount(options.merge amount: account_creation_fee, serialize: true)
716
+ props = params[:props]
717
+
718
+ if !!(account_creation_fee = props[:account_creation_fee] rescue nil)
719
+ props[:account_creation_fee] = hexlify normalize_amount(options.merge amount: account_creation_fee, serialize: true)
718
720
  end
719
721
 
720
- if !!(sbd_exchange_rate = params[:props][:sbd_exchange_rate] rescue nil)
721
- params[:props][:sbd_exchange_rate][:base] = normalize_amount(options.merge amount: sbd_exchange_rate[:base], serialize: true)
722
- params[:props][:sbd_exchange_rate][:quote] = normalize_amount(options.merge amount: sbd_exchange_rate[:quote], serialize: true)
723
- params[:props][:sbd_exchange_rate] = params[:props][:sbd_exchange_rate].to_json
722
+ if !!(hbd_exchange_rate = props[:hbd_exchange_rate] rescue nil)
723
+ props[:hbd_exchange_rate][:base] = normalize_amount(options.merge amount: hbd_exchange_rate[:base], serialize: true)
724
+ props[:hbd_exchange_rate][:quote] = normalize_amount(options.merge amount: hbd_exchange_rate[:quote], serialize: true)
725
+ props[:hbd_exchange_rate] = hexlify props[:hbd_exchange_rate].to_json
724
726
  end
725
727
 
726
728
  %i(key new_signing_key).each do |key|
727
- if !!params[key] && params[key].size == 53
728
- params[key] = params[key][3..-1]
729
+ begin
730
+ if !!props[key] && props[key].length == 53
731
+ props[key] = hexlify props[key][3..-1]
732
+ end
733
+ rescue => e
734
+ raise Hive::ArgumentError, "Unable to parse #{key}: #{e}"
729
735
  end
730
736
  end
731
737
 
732
- %i(account_creation_fee sbd_exchange_rate url new_signing_key).each do |key|
733
- next unless !!params[:props][key]
734
-
735
- val = params[:props][key].to_s
736
-
737
- params[:props][key] = hexlify val unless val =~ /^[0-9A-F]+$/i
738
+ if !!(val = props[:url])
739
+ props[:url] = hexlify val unless val =~ /^[0-9A-F]+$/i
738
740
  end
739
741
 
740
- params[:props] = params[:props].to_a
742
+ params[:props] = props.sort_by{|k,v| k}
741
743
 
742
744
  params[:extensions] ||= []
743
745
  ops = [[:witness_set_properties, params]]
@@ -955,8 +957,8 @@ module Hive
955
957
  # * :to (String)
956
958
  # * :agent (String)
957
959
  # * :escrow_id (String)
958
- # * :sbd_amount (String)
959
- # * :steem_amount (String)
960
+ # * :hbd_amount (String)
961
+ # * :hive_amount (String)
960
962
  # * :fee (String)
961
963
  # * :ratification_deadline (String)
962
964
  # * :escrow_expiration (String)
@@ -978,8 +980,8 @@ module Hive
978
980
 
979
981
  check_required_fields(params, *required_fields)
980
982
 
981
- params[:sbd_amount] = normalize_amount(options.merge amount: params[:sbd_amount])
982
- params[:steem_amount] = normalize_amount(options.merge amount: params[:steem_amount])
983
+ params[:hbd_amount] = normalize_amount(options.merge amount: params[:hbd_amount])
984
+ params[:hive_amount] = normalize_amount(options.merge amount: params[:hive_amount])
983
985
  params[:fee] = normalize_amount(options.merge amount: params[:fee])
984
986
 
985
987
  params[:ratification_deadline] = Time.parse(params[:ratification_deadline].to_s)
@@ -1030,8 +1032,8 @@ module Hive
1030
1032
  # * :who (String)
1031
1033
  # * :receiver (String)
1032
1034
  # * :escrow_id (String)
1033
- # * :sbd_amount (String)
1034
- # * :steem_amount (String)
1035
+ # * :hbd_amount (String)
1036
+ # * :hive_amount (String)
1035
1037
  # @option options [Boolean] :pretend Just validate, do not broadcast.
1036
1038
  # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_escrow_release
1037
1039
  def self.escrow_release(options, &block)
@@ -1039,8 +1041,8 @@ module Hive
1039
1041
  params = options[:params]
1040
1042
  check_required_fields(params, *required_fields)
1041
1043
 
1042
- params[:sbd_amount] = normalize_amount(options.merge amount: params[:sbd_amount])
1043
- params[:steem_amount] = normalize_amount(options.merge amount: params[:steem_amount])
1044
+ params[:hbd_amount] = normalize_amount(options.merge amount: params[:hbd_amount])
1045
+ params[:hive_amount] = normalize_amount(options.merge amount: params[:hive_amount])
1044
1046
 
1045
1047
  ops = [[:escrow_release, params]]
1046
1048
 
@@ -1239,7 +1241,124 @@ module Hive
1239
1241
 
1240
1242
  process(options.merge(ops: ops), &block)
1241
1243
  end
1242
-
1244
+
1245
+ # @param options [Hash] options
1246
+ # @option options [String] :wif Posting wif
1247
+ # @option options [Hash] :params
1248
+ # * :account (String) Account claiming rewards.
1249
+ # * :reward_hive (Amount) Amount of HIVE to claim.
1250
+ # * :reward_hbd (Amount) Amount of HBD to claim.
1251
+ # * :reward_vests (Amount) Amount of VESTS to claim.
1252
+ # @option options [Boolean] :pretend Just validate, do not broadcast.
1253
+ # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_claim_reward_balance
1254
+ def self.claim_reward_balance(options, &block)
1255
+ required_fields = %i(account)
1256
+ params = options[:params]
1257
+
1258
+ check_required_fields(params, *required_fields)
1259
+
1260
+ params[:reward_hive] = normalize_amount(options.merge amount: params[:reward_hive])
1261
+ params[:reward_hbd] = normalize_amount(options.merge amount: params[:reward_hbd])
1262
+ params[:reward_vests] = normalize_amount(options.merge amount: params[:reward_vests])
1263
+
1264
+ ops = [[:claim_reward_balance, params]]
1265
+
1266
+ process(options.merge(ops: ops), &block)
1267
+ end
1268
+
1269
+ # @param options [Hash] options
1270
+ # @option options [String] :wif Active wif
1271
+ # @option options [Hash] :params
1272
+ # * :account (String) Account being updated.
1273
+ # * :metadata (Hash) Metadata of the account, becomes `json_metadata`.
1274
+ # * :json_metadata (String) String version of `metadata` (use one or the other).
1275
+ # @option options [Boolean] :pretend Just validate, do not broadcast.
1276
+ # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_account_update2
1277
+ def self.account_update2(options, &block)
1278
+ required_fields = %i(account)
1279
+ params = options[:params]
1280
+
1281
+ check_required_fields(params, *required_fields)
1282
+
1283
+ if !!params[:metadata] && !!params[:json_metadata]
1284
+ raise Hive::ArgumentError, 'Assign either metadata or json_metadata, not both.'
1285
+ end
1286
+
1287
+ metadata = params.delete(:metadata) || {}
1288
+ metadata ||= (JSON[params[:json_metadata]] || nil) || {}
1289
+ params[:json_metadata] = metadata.to_json
1290
+
1291
+ ops = [[:account_update2, params]]
1292
+
1293
+ process(options.merge(ops: ops), &block)
1294
+ end
1295
+
1296
+ # @param options [Hash] options
1297
+ # @option options [String] :wif Active wif
1298
+ # @option options [Hash] :params
1299
+ # * :creator (String) Creator of the new proposal.
1300
+ # * :receiver (String) Reciever of `daily_pay` (or creator if empty)
1301
+ # * :start_date (String) When the proposal starts.
1302
+ # * :end_date (String) When the proposal ends.
1303
+ # * :daily_pay (String) Daily pay in HBD starting on the `start_date` and ending on the `end_date`.
1304
+ # * :subject (String) Subject of the proposal.
1305
+ # * :permlink (String) Proposal permlink must point to the article posted by creator or receiver.
1306
+ # @option options [Boolean] :pretend Just validate, do not broadcast.
1307
+ # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_create_proposal
1308
+ def self.create_proposal(options, &block)
1309
+ required_fields = %i(creator start_date end_date daily_pay subject permlink)
1310
+ params = options[:params]
1311
+
1312
+ check_required_fields(params, *required_fields)
1313
+
1314
+ params[:start_date] = Time.parse(params[:start_date].to_s)
1315
+ params[:start_date] = params[:start_date].strftime('%Y-%m-%dT%H:%M:%S')
1316
+ params[:end_date] = Time.parse(params[:end_date].to_s)
1317
+ params[:end_date] = params[:end_date].strftime('%Y-%m-%dT%H:%M:%S')
1318
+ params[:daily_pay] = normalize_amount(options.merge amount: params[:daily_pay])
1319
+
1320
+ ops = [[:create_proposal, params]]
1321
+
1322
+ process(options.merge(ops: ops), &block)
1323
+ end
1324
+
1325
+ # @param options [Hash] options
1326
+ # @option options [String] :wif Active wif
1327
+ # @option options [Hash] :params
1328
+ # * :voter (String) Account doing approval (or removing approval).
1329
+ # * :proposal_ids (Array<Integer>) Proposals to approve (or remove approval) for.
1330
+ # * :approve (Boolean) Approve or unapprove.
1331
+ # @option options [Boolean] :pretend Just validate, do not broadcast.
1332
+ # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_update_proposal_votes
1333
+ def self.update_proposal_votes(options, &block)
1334
+ required_fields = %i(voter proposal_ids approve)
1335
+ params = options[:params]
1336
+
1337
+ check_required_fields(params, *required_fields)
1338
+
1339
+ ops = [[:update_proposal_votes, params]]
1340
+
1341
+ process(options.merge(ops: ops), &block)
1342
+ end
1343
+
1344
+ # @param options [Hash] options
1345
+ # @option options [String] :wif Active wif
1346
+ # @option options [Hash] :params
1347
+ # * :proposal_owner (String) Creator of the proposal.
1348
+ # * :proposal_ids (Array<Integer>) Proposals to remove.
1349
+ # @option options [Boolean] :pretend Just validate, do not broadcast.
1350
+ # @see https://developers.hive.io/apidefinitions/broadcast-ops.html#broadcast_ops_update_proposal_votes
1351
+ def self.remove_proposal(options, &block)
1352
+ required_fields = %i(proposal_owner proposal_ids)
1353
+ params = options[:params]
1354
+
1355
+ check_required_fields(params, *required_fields)
1356
+
1357
+ ops = [[:remove_proposal, params]]
1358
+
1359
+ process(options.merge(ops: ops), &block)
1360
+ end
1361
+
1243
1362
  # @param options [Hash] options
1244
1363
  # @option options [Array<Array<Hash>] :ops Operations to process.
1245
1364
  # @option options [Boolean] :pretend Just validate, do not broadcast.
@@ -106,7 +106,6 @@ module Hive::Fallback
106
106
  :find_limit_orders,
107
107
  :find_owner_histories,
108
108
  :find_savings_withdrawals,
109
- :find_sbd_conversion_requests,
110
109
  :find_vesting_delegation_expirations,
111
110
  :find_vesting_delegations,
112
111
  :find_votes,
@@ -134,7 +133,6 @@ module Hive::Fallback
134
133
  :list_limit_orders,
135
134
  :list_owner_histories,
136
135
  :list_savings_withdrawals,
137
- :list_sbd_conversion_requests,
138
136
  :list_vesting_delegation_expirations,
139
137
  :list_vesting_delegations,
140
138
  :list_votes,
@@ -208,11 +206,25 @@ module Hive::Fallback
208
206
  :get_account_reputations
209
207
  ],
210
208
  bridge: [
209
+ :normalize_post,
210
+ :get_post_header,
211
+ :get_discussion,
212
+ :get_post,
213
+ :get_account_posts,
214
+ :get_ranked_posts,
215
+ :get_profile,
216
+ :get_trending_topics,
217
+ :post_notifications,
211
218
  :account_notifications,
219
+ :unread_notifications,
220
+ :get_payout_stats,
212
221
  :get_community,
213
- :get_ranked_posts,
222
+ :get_community_context,
223
+ :list_pop_communities,
224
+ :list_subscribers,
214
225
  :list_all_subscriptions,
215
226
  :list_community_roles,
227
+ :list_communities
216
228
  ]
217
229
  }
218
230
 
@@ -228,7 +240,7 @@ module Hive::Fallback
228
240
  find_owner_histories: {owner: String},
229
241
  find_proposals: {proposal_ids: []},
230
242
  find_savings_withdrawals: {account: String},
231
- find_sbd_conversion_requests: {account: String},
243
+ find_hbd_conversion_requests: {account: String},
232
244
  find_vesting_delegation_expirations: {account: String},
233
245
  find_vesting_delegations: {account: String},
234
246
  find_votes: {author: String, permlink: String},
@@ -258,7 +270,7 @@ module Hive::Fallback
258
270
  list_proposal_votes: {start: NilClass, limit: Integer, order: String, order_direction: String, status: String},
259
271
  list_proposals: {start: NilClass, limit: Integer, order: String, order_direction: String, status: String},
260
272
  list_savings_withdrawals: {start: NilClass, limit: Integer, order: String},
261
- list_sbd_conversion_requests: {start: NilClass, limit: Integer, order: String},
273
+ list_hbd_conversion_requests: {start: NilClass, limit: Integer, order: String},
262
274
  list_vesting_delegation_expirations: {start: NilClass, limit: Integer, order: String},
263
275
  list_vesting_delegations: {start: NilClass, limit: Integer, order: String},
264
276
  list_votes: {start: NilClass, limit: Integer, order: String},
@@ -277,11 +289,25 @@ module Hive::Fallback
277
289
  get_account_reputations: {account_lower_bound: String, limit: Integer}
278
290
  },
279
291
  bridge: {
280
- account_notifications: {account: String, limit: Integer},
292
+ normalize_post: {post: Hash},
293
+ get_post_header: {author: String, permlink: String},
294
+ get_discussion: {author: String, permlink: String},
295
+ get_post: {author: String, permlink: String, observer: String},
296
+ get_account_posts: {sort: String, account: String, start_account: String, start_permlink: String, limit: Integer, observer: String},
297
+ get_ranked_posts: {sort: String, tag: String, observer: String, limit: Integer, start_author: String, start_permlink: String},
298
+ get_profile: {account: String, observer: String},
299
+ get_trending_topics: {limit: Integer, observer: String},
300
+ post_notifications: {author: String, permlink: String, min_score: Integer, last_id: String, limit: Integer},
301
+ account_notifications: {account: String, min_score: Integer, last_id: Integer, limit: Integer},
302
+ unread_notifications: {account: String, min_score: Integer},
303
+ get_payout_stats: {limit: Integer},
281
304
  get_community: {name: String, observer: String},
282
- get_ranked_posts: {sort: String, tag: String, observer: String, limit: Integer},
283
- list_all_subscriptions: {account: String},
284
- list_community_roles: {community: String}
305
+ get_community_context: {name: String, account: String},
306
+ list_communities: {last: String, limit: Integer, query: String, sort: String, observer: String},
307
+ list_pop_communities: {limit: Integer},
308
+ list_community_roles: {community: String, last: String, limit: Integer},
309
+ list_subscribers: {community: String},
310
+ list_all_subscriptions: {account: String}
285
311
  }
286
312
  }
287
313
  end
@@ -11,7 +11,7 @@ module Hive
11
11
 
12
12
  # APIs that the RPC server will (or likely will) respond to that is
13
13
  # maintained outside the view of jsonrpc.
14
- UNLISTED_APIS = %i(bridge)
14
+ UNLISTED_APIS = %i(bridge database_api)
15
15
 
16
16
  def self.api_methods
17
17
  @api_methods ||= {}
@@ -90,7 +90,7 @@ module Hive
90
90
  end
91
91
 
92
92
  for request_object in chunks do
93
- @rpc_client.rpc_batch_execute(request_object: request_object) do |result, error, id|
93
+ @rpc_client.rpc_batch_execute(api_name: self.class.api_name, request_object: request_object) do |result, error, id|
94
94
  api, method = method_map[id]
95
95
  api = api.to_sym
96
96
  method = method.to_sym
@@ -144,7 +144,7 @@ module Hive
144
144
  {
145
145
  account_creation_fee: amount,
146
146
  maximum_block_size: uint32,
147
- sbd_interest_rate: uint16
147
+ hbd_interest_rate: uint16
148
148
  }
149
149
  end
150
150
 
@@ -159,17 +159,16 @@ module Hive
159
159
  key = string.to_sym
160
160
  properties[key] = case key
161
161
  when :account_creation_fee then Hive::Type::Amount.new(string)
162
- when :account_subsidy_budget then scan(3)
163
- when :account_subsidy_decay, :maximum_block_size then uint32
164
- when :url then string
165
- when :sbd_exchange_rate
162
+ # when :account_subsidy_budget then int32
163
+ # when :account_subsidy_decay, :maximum_block_size then uint32
164
+ when :hbd_exchange_rate
166
165
  JSON[string].tap do |rate|
167
166
  rate["base"] = Hive::Type::Amount.new(rate["base"])
168
167
  rate["quote"] = Hive::Type::Amount.new(rate["quote"])
169
168
  end
170
- when :sbd_interest_rate then uint16
171
- when :key, :new_signing_key then @prefix + scan(50)
172
- else; raise "Unknown witness property: #{key}"
169
+ # when :hbd_interest_rate then uint16
170
+ when :url, :key, :new_signing_key then string
171
+ else; warn "Unsupported witness property: #{key}"
173
172
  end
174
173
  end
175
174
 
@@ -180,6 +179,10 @@ module Hive
180
179
  unsigned_char == 0 and [] or raise "Found non-empty array."
181
180
  end
182
181
 
182
+ def uint64_array
183
+ varint.times{ uint64 }
184
+ end
185
+
183
186
  def transaction(options = {})
184
187
  trx = options[:trx] || Transaction.new
185
188
 
@@ -6,7 +6,7 @@ module Hive
6
6
  KNOWN_TYPES = NUMERIC_TYPES + %i(boolean string raw_bytes point_in_time
7
7
  public_key amount price authority optional_authority
8
8
  comment_options_extensions beneficiaries chain_properties required_auths
9
- witness_properties empty_array lambda)
9
+ witness_properties uint64_array empty_array lambda)
10
10
 
11
11
  module ClassMethods
12
12
  def def_attr key_pair
@@ -5,7 +5,7 @@ module Hive
5
5
  include Utils
6
6
 
7
7
  # IDs derrived from:
8
- # https://github.com/openhive-network/hive/blob/127a441fbac2f06804359968bda83b66e602c891/libraries/protocol/include/steem/protocol/operations.hpp
8
+ # https://gitlab.syncad.com/hive/hive/-/blob/master/libraries/protocol/include/steem/protocol/operations.hpp
9
9
 
10
10
  IDS = [
11
11
  :vote_operation,
@@ -60,6 +60,10 @@ module Hive
60
60
  :delegate_vesting_shares_operation,
61
61
  :account_create_with_delegation_operation,
62
62
  :witness_set_properties_operation,
63
+ :account_update2_operation,
64
+ :create_proposal_operation,
65
+ :update_proposal_votes_operation,
66
+ :remove_proposal_operation,
63
67
 
64
68
  # SMT operations
65
69
  :claim_reward_balance2_operation,
@@ -0,0 +1,4 @@
1
+ class Hive::Operation::AccountUpdate2 < Hive::Operation
2
+ def_attr account: :string
3
+ def_attr json_metadata: :string
4
+ end
@@ -1,6 +1,6 @@
1
1
  class Hive::Operation::ClaimRewardBalance < Hive::Operation
2
2
  def_attr account: :string
3
- def_attr reward_steem: :amount
4
- def_attr reward_sbd: :amount
3
+ def_attr reward_hive: :amount
4
+ def_attr reward_hbd: :amount
5
5
  def_attr reward_vests: :amount
6
6
  end
@@ -2,7 +2,7 @@ class Hive::Operation::CommentOptions < Hive::Operation
2
2
  def_attr author: :string
3
3
  def_attr permlink: :string
4
4
  def_attr max_accepted_payout: :amount
5
- def_attr percent_steem_dollars: :uint32
5
+ def_attr percent_hbd: :uint32
6
6
  # def_attr allow_replies: :boolean
7
7
  def_attr allow_votes: :boolean
8
8
  def_attr allow_curation_rewards: :boolean
@@ -0,0 +1,9 @@
1
+ class Hive::Operation::CreateProposal < Hive::Operation
2
+ def_attr creator: :string
3
+ def_attr receiver: :string
4
+ def_attr start_date: :point_in_time
5
+ def_attr end_date: :point_in_time
6
+ def_attr daily_pay: :amount
7
+ def_attr subject: :string
8
+ def_attr permlink: :string
9
+ end
@@ -5,6 +5,6 @@ class Hive::Operation::EscrowRelease < Hive::Operation
5
5
  def_attr who: :string
6
6
  def_attr receiver: :string
7
7
  def_attr escrow_id: :uint32
8
- def_attr sbd_amount: :amount
9
- def_attr steem_amount: :amount
8
+ def_attr hbd_amount: :amount
9
+ def_attr hive_amount: :amount
10
10
  end
@@ -1,8 +1,8 @@
1
1
  class Hive::Operation::EscrowTransfer < Hive::Operation
2
2
  def_attr from: :string
3
3
  def_attr to: :string
4
- def_attr sbd_amount: :amount
5
- def_attr steem_amount: :amount
4
+ def_attr hbd_amount: :amount
5
+ def_attr hive_amount: :amount
6
6
  def_attr escrow_id: :uint32
7
7
  def_attr agent: :string
8
8
  def_attr fee: :amount
@@ -0,0 +1,4 @@
1
+ class Hive::Operation::RemoveProposal < Hive::Operation
2
+ def_attr proposal_owner: :string
3
+ def_attr proposal_ids: :uint64_array
4
+ end
@@ -0,0 +1,5 @@
1
+ class Hive::Operation::UpdateProposalVotes < Hive::Operation
2
+ def_attr voter: :string
3
+ def_attr proposal_ids: :uint64_array
4
+ def_attr approve: :boolean
5
+ end
@@ -17,7 +17,9 @@ module Hive
17
17
  #
18
18
  # @private
19
19
  TIMEOUT_ERRORS = [Net::OpenTimeout, JSON::ParserError, Net::ReadTimeout,
20
- Errno::EBADF, IOError, Errno::ENETDOWN, Hive::RemoteDatabaseLockError]
20
+ Errno::EBADF, IOError, Errno::ENETDOWN, Hive::RemoteDatabaseLockError,
21
+ Hive::RequestTimeoutUpstreamResponseError, Hive::RemoteServerError,
22
+ Hive::RemoteServerError]
21
23
 
22
24
  # @private
23
25
  POST_HEADERS = {
@@ -57,8 +59,10 @@ module Hive
57
59
  def rpc_execute(api_name = @api_name, api_method = nil, options = {}, &block)
58
60
  reset_timeout
59
61
 
60
- catch :tota_cera_pila do; begin
61
- request = http_post
62
+ response = nil
63
+
64
+ loop do
65
+ request = http_post(api_name)
62
66
 
63
67
  request_object = if !!api_name && !!api_method
64
68
  put(api_name, api_method, options)
@@ -80,11 +84,11 @@ module Hive
80
84
 
81
85
  response = catch :http_request do; begin; http_request(request)
82
86
  rescue *TIMEOUT_ERRORS => e
83
- throw retry_timeout(:http_request, e)
87
+ retry_timeout(:http_request, e) and redo
84
88
  end; end
85
89
 
86
90
  if response.nil?
87
- throw retry_timeout(:tota_cera_pila, 'response was nil')
91
+ retry_timeout(:tota_cera_pila, 'response was nil') and redo
88
92
  end
89
93
 
90
94
  case response.code
@@ -108,6 +112,9 @@ module Hive
108
112
  else; response
109
113
  end
110
114
 
115
+ timeout_detected = false
116
+ timeout_cause = nil
117
+
111
118
  [response].flatten.each_with_index do |r, i|
112
119
  if defined?(r.error) && !!r.error
113
120
  if !!r.error.message
@@ -116,7 +123,10 @@ module Hive
116
123
  rpc_args = [request_object].flatten[i]
117
124
  raise_error_response rpc_method_name, rpc_args, r
118
125
  rescue *TIMEOUT_ERRORS => e
119
- throw retry_timeout(:tota_cera_pila, e)
126
+ timeout_detected = true
127
+ timeout_cause = nil
128
+
129
+ break # fail fast
120
130
  end
121
131
  else
122
132
  raise Hive::ArgumentError, r.error.inspect
@@ -124,19 +134,29 @@ module Hive
124
134
  end
125
135
  end
126
136
 
137
+ if timeout_detected
138
+ retry_timeout(:tota_cera_pila, timeout_cause) and redo
139
+ end
140
+
127
141
  yield_response response, &block
128
142
  when '504' # Gateway Timeout
129
- throw retry_timeout(:tota_cera_pila, response.body)
143
+ retry_timeout(:tota_cera_pila, response.body) and redo
130
144
  when '502' # Bad Gateway
131
- throw retry_timeout(:tota_cera_pila, response.body)
145
+ retry_timeout(:tota_cera_pila, response.body) and redo
132
146
  else
133
147
  raise UnknownError, "#{api_name}.#{api_method}: #{response.body}"
134
148
  end
135
- end; end
149
+
150
+ break # success!
151
+ end
152
+
153
+ response
136
154
  end
137
155
 
138
156
  def rpc_batch_execute(options = {}, &block)
139
- yield_response rpc_execute(nil, nil, options), &block
157
+ api_name = options[:api_name]
158
+
159
+ yield_response rpc_execute(api_name, nil, options), &block
140
160
  end
141
161
  end
142
162
  end
@@ -10,13 +10,20 @@ module Hive
10
10
  class ThreadSafeHttpClient < HttpClient
11
11
  SEMAPHORE = Mutex.new.freeze
12
12
 
13
- # Same as #{HttpClient#http_post}, but scoped to each thread so it is
14
- # thread safe.
15
- def http_post
13
+ # Same as #{HttpClient#http_post}, but scoped to each thread, uri, and
14
+ # api_name so it is thread safe.
15
+ def http_post(api_name)
16
+ raise "Namespace required." if api_name.nil?
17
+
16
18
  thread = Thread.current
17
- http_post = thread.thread_variable_get(:http_post)
18
- http_post ||= Net::HTTP::Post.new(uri.request_uri, POST_HEADERS)
19
- thread.thread_variable_set(:http_post, http_post)
19
+ http_posts = thread.thread_variable_get(:http_posts) || {}
20
+
21
+ SEMAPHORE.synchronize do
22
+ http_posts[[uri, api_name]] ||= Net::HTTP::Post.new(uri.request_uri, POST_HEADERS)
23
+ thread.thread_variable_set(:http_posts, http_posts)
24
+ end
25
+
26
+ http_posts[[uri, api_name]]
20
27
  end
21
28
 
22
29
  def http_request(request); SEMAPHORE.synchronize{super}; end
@@ -173,7 +173,7 @@ module Hive
173
173
  # stream = Hive::Stream.new
174
174
  # stream.operations(types: :author_reward_operation, only_virtual: true) do |vop|
175
175
  # v = vop.value
176
- # puts "#{v.author} got paid for #{v.permlink}: #{[v.sbd_payout, v.steem_payout, v.vesting_payout]}"
176
+ # puts "#{v.author} got paid for #{v.permlink}: #{[v.hbd_payout, v.hive_payout, v.vesting_payout]}"
177
177
  # end
178
178
  #
179
179
  # ... or multiple virtual operation types;
@@ -1,4 +1,4 @@
1
1
  module Hive
2
- VERSION = '1.0.0-1'
2
+ VERSION = '1.0.2'
3
3
  AGENT_ID = "hive-ruby/#{VERSION}"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hive-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Martin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-07 00:00:00.000000000 Z
11
+ date: 2020-11-06 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.16'
19
+ version: '2.1'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.16.1
22
+ version: 2.1.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.16'
29
+ version: '2.1'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.16.1
32
+ version: 2.1.4
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -54,22 +54,22 @@ dependencies:
54
54
  name: minitest
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '5.10'
60
57
  - - ">="
61
58
  - !ruby/object:Gem::Version
62
59
  version: 5.10.3
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '5.14'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '5.10'
70
67
  - - ">="
71
68
  - !ruby/object:Gem::Version
72
69
  version: 5.10.3
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '5.14'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: minitest-line
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -159,7 +159,7 @@ dependencies:
159
159
  version: 4.0.0
160
160
  - - "~>"
161
161
  - !ruby/object:Gem::Version
162
- version: '5.1'
162
+ version: '6.0'
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
@@ -169,7 +169,7 @@ dependencies:
169
169
  version: 4.0.0
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '5.1'
172
+ version: '6.0'
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: yard
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -294,22 +294,22 @@ dependencies:
294
294
  name: hashie
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - "~>"
298
- - !ruby/object:Gem::Version
299
- version: '3.5'
300
297
  - - ">="
301
298
  - !ruby/object:Gem::Version
302
299
  version: 3.5.7
300
+ - - "~>"
301
+ - !ruby/object:Gem::Version
302
+ version: '4.1'
303
303
  type: :runtime
304
304
  prerelease: false
305
305
  version_requirements: !ruby/object:Gem::Requirement
306
306
  requirements:
307
- - - "~>"
308
- - !ruby/object:Gem::Version
309
- version: '3.5'
310
307
  - - ">="
311
308
  - !ruby/object:Gem::Version
312
309
  version: 3.5.7
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '4.1'
313
313
  - !ruby/object:Gem::Dependency
314
314
  name: bitcoin-ruby
315
315
  requirement: !ruby/object:Gem::Requirement
@@ -317,9 +317,9 @@ dependencies:
317
317
  - - "~>"
318
318
  - !ruby/object:Gem::Version
319
319
  version: '0.0'
320
- - - ">="
320
+ - - '='
321
321
  - !ruby/object:Gem::Version
322
- version: 0.0.18
322
+ version: 0.0.20
323
323
  type: :runtime
324
324
  prerelease: false
325
325
  version_requirements: !ruby/object:Gem::Requirement
@@ -327,9 +327,9 @@ dependencies:
327
327
  - - "~>"
328
328
  - !ruby/object:Gem::Version
329
329
  version: '0.0'
330
- - - ">="
330
+ - - '='
331
331
  - !ruby/object:Gem::Version
332
- version: 0.0.18
332
+ version: 0.0.20
333
333
  - !ruby/object:Gem::Dependency
334
334
  name: ffi
335
335
  requirement: !ruby/object:Gem::Requirement
@@ -398,12 +398,15 @@ extensions: []
398
398
  extra_rdoc_files: []
399
399
  files:
400
400
  - ".gitignore"
401
+ - ".gitlab-ci.yml"
401
402
  - CONTRIBUTING.md
402
403
  - Gemfile
403
- - Gemfile.lock
404
404
  - LICENSE
405
405
  - README.md
406
406
  - Rakefile
407
+ - assets/logo-128.png
408
+ - assets/logo.png
409
+ - assets/logo.xcf
407
410
  - gource.sh
408
411
  - hive-ruby.gemspec
409
412
  - images/Anthony Martin.png
@@ -425,6 +428,7 @@ files:
425
428
  - lib/hive/operation/account_create.rb
426
429
  - lib/hive/operation/account_create_with_delegation.rb
427
430
  - lib/hive/operation/account_update.rb
431
+ - lib/hive/operation/account_update2.rb
428
432
  - lib/hive/operation/account_witness_proxy.rb
429
433
  - lib/hive/operation/account_witness_vote.rb
430
434
  - lib/hive/operation/cancel_transfer_from_savings.rb
@@ -436,6 +440,7 @@ files:
436
440
  - lib/hive/operation/comment_options.rb
437
441
  - lib/hive/operation/convert.rb
438
442
  - lib/hive/operation/create_claimed_account.rb
443
+ - lib/hive/operation/create_proposal.rb
439
444
  - lib/hive/operation/custom.rb
440
445
  - lib/hive/operation/custom_binary.rb
441
446
  - lib/hive/operation/custom_json.rb
@@ -452,6 +457,7 @@ files:
452
457
  - lib/hive/operation/limit_order_create2.rb
453
458
  - lib/hive/operation/prove_authority.rb
454
459
  - lib/hive/operation/recover_account.rb
460
+ - lib/hive/operation/remove_proposal.rb
455
461
  - lib/hive/operation/report_over_production.rb
456
462
  - lib/hive/operation/request_account_recovery.rb
457
463
  - lib/hive/operation/reset_account.rb
@@ -461,6 +467,7 @@ files:
461
467
  - lib/hive/operation/transfer_from_savings.rb
462
468
  - lib/hive/operation/transfer_to_savings.rb
463
469
  - lib/hive/operation/transfer_to_vesting.rb
470
+ - lib/hive/operation/update_proposal_votes.rb
464
471
  - lib/hive/operation/vote.rb
465
472
  - lib/hive/operation/withdraw_vesting.rb
466
473
  - lib/hive/operation/witness_set_properties.rb
@@ -479,7 +486,7 @@ homepage: https://gitlab.syncad.com/hive/hive-ruby
479
486
  licenses:
480
487
  - MIT
481
488
  metadata: {}
482
- post_install_message:
489
+ post_install_message:
483
490
  rdoc_options: []
484
491
  require_paths:
485
492
  - lib
@@ -490,13 +497,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
490
497
  version: '0'
491
498
  required_rubygems_version: !ruby/object:Gem::Requirement
492
499
  requirements:
493
- - - ">"
500
+ - - ">="
494
501
  - !ruby/object:Gem::Version
495
- version: 1.3.1
502
+ version: '0'
496
503
  requirements: []
497
- rubyforge_project:
498
- rubygems_version: 2.7.10
499
- signing_key:
504
+ rubygems_version: 3.0.8
505
+ signing_key:
500
506
  specification_version: 4
501
507
  summary: Hive Ruby Client
502
508
  test_files: []
@@ -1,91 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- hive-ruby (1.0.0.pre.1)
5
- base58 (~> 0.2, >= 0.2.3)
6
- bindata (~> 2.4, >= 2.4.4)
7
- bitcoin-ruby (~> 0.0, >= 0.0.18)
8
- ffi (~> 1.9, >= 1.9.23)
9
- hashie (~> 3.5, >= 3.5.7)
10
- json (~> 2.1, >= 2.1.0)
11
- logging (~> 2.2, >= 2.2.0)
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- addressable (2.7.0)
17
- public_suffix (>= 2.0.2, < 5.0)
18
- awesome_print (1.8.0)
19
- base58 (0.2.3)
20
- bindata (2.4.7)
21
- bitcoin-ruby (0.0.20)
22
- eventmachine
23
- ffi
24
- scrypt
25
- coderay (1.1.2)
26
- crack (0.4.3)
27
- safe_yaml (~> 1.0.0)
28
- docile (1.3.2)
29
- eventmachine (1.2.7)
30
- ffi (1.12.2)
31
- ffi-compiler (1.0.1)
32
- ffi (>= 1.0.0)
33
- rake
34
- hashdiff (1.0.1)
35
- hashie (3.6.0)
36
- io-console (0.5.6)
37
- irb (1.2.4)
38
- reline (>= 0.0.1)
39
- json (2.3.0)
40
- little-plugger (1.1.4)
41
- logging (2.2.2)
42
- little-plugger (~> 1.1)
43
- multi_json (~> 1.10)
44
- method_source (1.0.0)
45
- minitest (5.14.0)
46
- minitest-line (0.6.5)
47
- minitest (~> 5.0)
48
- minitest-proveit (1.0.0)
49
- minitest (> 5, < 7)
50
- multi_json (1.14.1)
51
- pry (0.13.1)
52
- coderay (~> 1.1)
53
- method_source (~> 1.0)
54
- public_suffix (4.0.4)
55
- rake (13.0.1)
56
- reline (0.1.4)
57
- io-console (~> 0.5)
58
- safe_yaml (1.0.5)
59
- scrypt (3.0.7)
60
- ffi-compiler (>= 1.0, < 2.0)
61
- simplecov (0.18.5)
62
- docile (~> 1.1)
63
- simplecov-html (~> 0.11)
64
- simplecov-html (0.12.2)
65
- vcr (5.1.0)
66
- webmock (3.8.3)
67
- addressable (>= 2.3.6)
68
- crack (>= 0.3.2)
69
- hashdiff (>= 0.4.0, < 2.0.0)
70
- yard (0.9.25)
71
-
72
- PLATFORMS
73
- ruby
74
-
75
- DEPENDENCIES
76
- awesome_print (~> 1.8, >= 1.8.0)
77
- bundler (~> 1.16, >= 1.16.1)
78
- hive-ruby!
79
- irb (~> 1.2, >= 1.2.3)
80
- minitest (~> 5.10, >= 5.10.3)
81
- minitest-line (~> 0.6, >= 0.6.4)
82
- minitest-proveit (~> 1.0, >= 1.0.0)
83
- pry (~> 0.11, >= 0.11.3)
84
- rake (~> 13.0.1, >= 12.3.0)
85
- simplecov (~> 0.15, >= 0.15.1)
86
- vcr (~> 5.1, >= 4.0.0)
87
- webmock (~> 3.3, >= 3.3.0)
88
- yard (~> 0.9, >= 0.9.12)
89
-
90
- BUNDLED WITH
91
- 1.16.6