steem_api 1.1.2pre1 → 1.1.2pre2
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 +5 -5
- data/.gitignore +2 -0
- data/Rakefile +168 -4
- data/lib/steem_api.rb +40 -1
- data/lib/steem_api/models/account.rb +11 -2
- data/lib/steem_api/models/block.rb +1 -4
- data/lib/steem_api/models/dynamic_global_properties.rb +45 -0
- data/lib/steem_api/models/follower.rb +17 -0
- data/lib/steem_api/models/reblog.rb +20 -0
- data/lib/steem_api/models/vo/comment_benefactor_reward.rb +23 -0
- data/lib/steem_api/models/vo/fill_convert_request.rb +1 -1
- data/lib/steem_api/models/vo/fill_transfer_from_savings.rb +23 -0
- data/lib/steem_api/models/vo/liquidity_reward.rb +19 -0
- data/lib/steem_api/models/vo/return_vesting_delegation.rb +20 -0
- data/lib/steem_api/models/witness.rb +48 -0
- data/lib/steem_api/version.rb +1 -1
- data/steem_api.gemspec +1 -2
- metadata +13 -6
- data/Gemfile.lock +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9d31974524e28208e43d6cc83547203cd52ee47390ce4c0dd59d4277f2667b8e
|
4
|
+
data.tar.gz: dfeff346e22c78f3deac1151ec84916e7c14002885cc30a9b638befaa8409378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94f554af16f3f140c9bdcd2b74974875c2607b23456e7c8c77029b8da809b12fa1e616760f2ae36562ffdbbc569df045e3471db6a7e1635e06b70523a16c8db8
|
7
|
+
data.tar.gz: 26ba8ef317a0e33a19d213cf3b4613122d487e3eccb5bab30684a1c90ac9b38a03bc5ab5e5931a0a1f053fbccffb87e11219f6b1e2ab21238948ad39fdb7cf2d
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -15,6 +15,64 @@ task :console do
|
|
15
15
|
exec "irb -r steem_api -I ./lib"
|
16
16
|
end
|
17
17
|
|
18
|
+
namespace :created do
|
19
|
+
desc 'Lists accounts created grouped by creator and date.'
|
20
|
+
task :accounts, [:creator, :days_ago] do |t, args|
|
21
|
+
now = Time.now.utc
|
22
|
+
creator = args[:creator]
|
23
|
+
after_timestamp = now - ((args[:days_ago] || '30').to_i * 86400)
|
24
|
+
|
25
|
+
accounts = SteemApi::Tx::AccountCreate.all
|
26
|
+
|
27
|
+
if !!creator || creator == '%'
|
28
|
+
unless creator == '%'
|
29
|
+
accounts = accounts.where(creator: creator)
|
30
|
+
end
|
31
|
+
elsif creator =~ /.*%.*/
|
32
|
+
accounts = accounts.where('creator LIKE ?', creator)
|
33
|
+
end
|
34
|
+
|
35
|
+
accounts = accounts.where('timestamp > ?', after_timestamp)
|
36
|
+
accounts = accounts.group('CAST(timestamp AS DATE)', :creator)
|
37
|
+
accounts = accounts.order('cast_timestamp_as_date ASC')
|
38
|
+
|
39
|
+
accounts = accounts.count
|
40
|
+
ap "# Daily creation count by #{creator.nil? ? 'all account creators' : creator} since #{after_timestamp} ..."
|
41
|
+
ap accounts
|
42
|
+
ap "# Total accounts: #{accounts.values.sum}"
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'Lists custom_json_operations grouped by id and date.'
|
46
|
+
task :custom_json, [:id, :days_ago, :min_count] do |t, args|
|
47
|
+
now = Time.now.utc
|
48
|
+
tid = args[:id]
|
49
|
+
after_timestamp = now - ((args[:days_ago] || '30').to_i * 86400)
|
50
|
+
min_count = (args[:min_count] || 1).to_i
|
51
|
+
|
52
|
+
customs = SteemApi::Tx::Custom.all
|
53
|
+
|
54
|
+
if !!tid && tid != '%' && tid =~ /.*%.*/
|
55
|
+
customs = customs.where("tid LIKE ?", tid)
|
56
|
+
elsif !!tid && tid != '%'
|
57
|
+
customs = customs.where(tid: tid)
|
58
|
+
end
|
59
|
+
|
60
|
+
customs = customs.where('timestamp > ?', after_timestamp)
|
61
|
+
customs = customs.group('CAST(timestamp AS DATE)', :tid)
|
62
|
+
customs = customs.order('cast_timestamp_as_date ASC')
|
63
|
+
|
64
|
+
customs = customs.count
|
65
|
+
|
66
|
+
customs = customs.map do |k, v|
|
67
|
+
[k, v] if v >= min_count
|
68
|
+
end.compact.to_h
|
69
|
+
|
70
|
+
ap "# Daily creation count by #{tid.nil? ? 'all custom_json_operation' : tid} since #{after_timestamp} ..."
|
71
|
+
ap customs
|
72
|
+
ap "# Total custom_json_operation: #{customs.values.sum}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
18
76
|
desc 'Lists sum of transfers grouped by date, from, and to.'
|
19
77
|
task :transfers, [:minimum_amount, :symbol, :days_ago] do |t, args|
|
20
78
|
now = Time.now.utc
|
@@ -34,6 +92,78 @@ task :transfers, [:minimum_amount, :symbol, :days_ago] do |t, args|
|
|
34
92
|
ap transfers.sum(:amount)
|
35
93
|
end
|
36
94
|
|
95
|
+
desc 'Lists sum of powered up grouped by date, from, and to.'
|
96
|
+
task :powerup, [:minimum_amount, :symbol, :days_ago, :not_to_self] do |t, args|
|
97
|
+
now = Time.now.utc
|
98
|
+
minimum_amount = (args[:minimum_amount] || '500').to_f
|
99
|
+
symbol = (args[:symbol] || 'STEEM').upcase
|
100
|
+
after_timestamp = now - ((args[:days_ago] || '30').to_i * 86400)
|
101
|
+
not_to_self = (args[:not_to_self] || 'false') == 'true'
|
102
|
+
|
103
|
+
minimum_amount = case symbol
|
104
|
+
when 'MVESTS' then minimum_amount * 1e6 #TODO
|
105
|
+
when 'VESTS' then minimum_amount # TODO
|
106
|
+
when 'STEEM' then minimum_amount
|
107
|
+
else; raise "Unknown symbol: #{symbol}"
|
108
|
+
end
|
109
|
+
|
110
|
+
# Only type: transfer; ignore savings, vestings
|
111
|
+
transfers = SteemApi::Tx::Transfer.where(type: 'transfer_to_vesting')
|
112
|
+
transfers = transfers.where('amount > ?', minimum_amount)
|
113
|
+
transfers = transfers.where('amount_symbol = ?', 'STEEM')
|
114
|
+
transfers = transfers.where('timestamp > ?', after_timestamp)
|
115
|
+
transfers = transfers.group('CAST(timestamp AS DATE)', :from, :to)
|
116
|
+
transfers = transfers.order('cast_timestamp_as_date ASC')
|
117
|
+
|
118
|
+
transfers = transfers.sum(:amount)
|
119
|
+
|
120
|
+
if not_to_self
|
121
|
+
transfers = transfers.map do |k, v|
|
122
|
+
[k, v] if k[1] != k[2]
|
123
|
+
end.compact.to_h
|
124
|
+
end
|
125
|
+
|
126
|
+
puts "# Daily transfer sum over #{'%.3f' % minimum_amount} #{symbol} #{not_to_self ? '' : 'not to self '}since #{after_timestamp} ..."
|
127
|
+
ap transfers
|
128
|
+
ap "# Total #{symbol}: #{transfers.values.sum}"
|
129
|
+
end
|
130
|
+
|
131
|
+
desc 'Lists sum of powered down grouped by date, from, and to.'
|
132
|
+
task :powerdown, [:minimum_amount, :symbol, :days_ago, :not_to_self] do |t, args|
|
133
|
+
now = Time.now.utc
|
134
|
+
minimum_amount = (args[:minimum_amount] || '500').to_f
|
135
|
+
symbol = (args[:symbol] || 'STEEM').upcase
|
136
|
+
after_timestamp = now - ((args[:days_ago] || '30').to_i * 86400)
|
137
|
+
not_to_self = (args[:not_to_self] || 'false') == 'true'
|
138
|
+
|
139
|
+
minimum_amount = case symbol
|
140
|
+
when 'MVESTS' then minimum_amount * 1e6 #TODO
|
141
|
+
when 'VESTS' then minimum_amount # TODO
|
142
|
+
when 'STEEM' then minimum_amount
|
143
|
+
else; raise "Unknown symbol: #{symbol}"
|
144
|
+
end
|
145
|
+
|
146
|
+
# Only type: transfer; ignore savings, vestings
|
147
|
+
transfers = SteemApi::Tx::Transfer.where(type: 'transfer_to_vesting')
|
148
|
+
transfers = transfers.where('amount > ?', minimum_amount)
|
149
|
+
transfers = transfers.where('amount_symbol = ?', 'STEEM')
|
150
|
+
transfers = transfers.where('timestamp > ?', after_timestamp)
|
151
|
+
transfers = transfers.group('CAST(timestamp AS DATE)', :from, :to)
|
152
|
+
transfers = transfers.order('cast_timestamp_as_date ASC')
|
153
|
+
|
154
|
+
transfers = transfers.sum(:amount)
|
155
|
+
|
156
|
+
if not_to_self
|
157
|
+
transfers = transfers.map do |k, v|
|
158
|
+
[k, v] if k[1] != k[2]
|
159
|
+
end.compact.to_h
|
160
|
+
end
|
161
|
+
|
162
|
+
puts "# Daily transfer sum over #{'%.3f' % minimum_amount} #{symbol} #{not_to_self ? '' : 'not to self '}since #{after_timestamp} ..."
|
163
|
+
ap transfers
|
164
|
+
ap "# Total #{symbol}: #{transfers.values.sum}"
|
165
|
+
end
|
166
|
+
|
37
167
|
desc 'Lists apps grouped by date, app/version.'
|
38
168
|
task :apps, [:app, :days_ago] do |t, args|
|
39
169
|
now = Time.now.utc
|
@@ -51,6 +181,35 @@ task :apps, [:app, :days_ago] do |t, args|
|
|
51
181
|
ap comments.count(:all)
|
52
182
|
end
|
53
183
|
|
184
|
+
desc 'Lists app names grouped by date, app/version.'
|
185
|
+
task :app_names, [:app, :days_ago] do |t, args|
|
186
|
+
now = Time.now.utc
|
187
|
+
app = args[:app]
|
188
|
+
after_timestamp = now - ((args[:days_ago] || '7').to_f * 86400)
|
189
|
+
|
190
|
+
comments = SteemApi::Comment.normalized_json
|
191
|
+
comments = comments.app(app) if !!app
|
192
|
+
comments = comments.where('created > ?', after_timestamp)
|
193
|
+
comments = comments.group('CAST(created AS DATE)', "JSON_VALUE(json_metadata, '$.app')")
|
194
|
+
comments = comments.order('cast_created_as_date ASC')
|
195
|
+
|
196
|
+
matching = " matching \"#{app}\"" if !!app
|
197
|
+
puts "# Daily app#{matching} count since #{after_timestamp} ..."
|
198
|
+
|
199
|
+
app_names = {}
|
200
|
+
puts comments.to_sql
|
201
|
+
comments.count(:all).each do |k, v|
|
202
|
+
date, app = k
|
203
|
+
if !!app && app.include?('/')
|
204
|
+
name, version = app.split('/')
|
205
|
+
app_names[[date, name]] ||= 0.0
|
206
|
+
app_names[[date, name]] += v
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
ap app_names
|
211
|
+
end
|
212
|
+
|
54
213
|
desc 'Do all crosschecks of given account.'
|
55
214
|
task :crosscheck, [:account] do |t, args|
|
56
215
|
account = args[:account]
|
@@ -65,7 +224,9 @@ end
|
|
65
224
|
namespace :crosscheck do
|
66
225
|
desc 'List of accounts grouped by transfer count crosschecked by memo of given account.'
|
67
226
|
task :transfers, [:account] do |t, args|
|
68
|
-
exchanges = %w(bittrex poloniex openledger blocktrades
|
227
|
+
exchanges = %w(bittrex poloniex openledger blocktrades deepcrypto8 gopax
|
228
|
+
binanceexchange teambitwala changelly hitbtc-exchange korbit roomofsatoshi
|
229
|
+
shapeshiftio)
|
69
230
|
account = args[:account]
|
70
231
|
|
71
232
|
if account.nil? || account == ''
|
@@ -77,7 +238,8 @@ namespace :crosscheck do
|
|
77
238
|
end
|
78
239
|
|
79
240
|
all = SteemApi::Tx::Transfer.where(type: 'transfer')
|
80
|
-
transfers = all.where(
|
241
|
+
transfers = all.where.not(memo: '')
|
242
|
+
transfers = transfers.where(to: exchanges)
|
81
243
|
transfers = if account =~ /%/
|
82
244
|
table = SteemApi::Tx::Transfer.arel_table
|
83
245
|
transfers.where(table[:from].matches(account))
|
@@ -277,7 +439,7 @@ task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
|
277
439
|
now = Time.now.utc
|
278
440
|
account_name = args[:account_name] || '%'
|
279
441
|
after_timestamp = now - ((args[:days_ago] || '30').to_i * 86400)
|
280
|
-
symbol = (args[:symbol] ||
|
442
|
+
symbol = (args[:symbol] || 'vests').downcase.to_sym
|
281
443
|
claims = SteemApi::Tx::ClaimRewardBalance.where('timestamp > ?', after_timestamp)
|
282
444
|
|
283
445
|
claims = if account_name =~ /%/
|
@@ -291,6 +453,7 @@ task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
|
291
453
|
when :mvests then claims.where("reward_vests > 0")
|
292
454
|
when :steem then claims.where("reward_steem > 0")
|
293
455
|
when :sbd then claims.where("reward_sbd > 0")
|
456
|
+
else; raise "Unknown symbol: #{symbol}"
|
294
457
|
end
|
295
458
|
|
296
459
|
claims = claims.group("FORMAT(timestamp, 'yyyy-MM')")
|
@@ -303,9 +466,10 @@ task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
|
303
466
|
when :sbd then claims.sum(:reward_sbd)
|
304
467
|
end
|
305
468
|
|
306
|
-
puts "Claimed rewards in #{symbol.to_s.upcase} sum grouped by month ..."
|
469
|
+
puts "# Claimed rewards in #{symbol.to_s.upcase} sum grouped by month ..."
|
307
470
|
|
308
471
|
ap claims
|
472
|
+
ap "# Total claimed #{symbol}: #{claims.values.sum}"
|
309
473
|
end
|
310
474
|
|
311
475
|
# Doesn't look like this table exists.
|
data/lib/steem_api.rb
CHANGED
@@ -6,8 +6,12 @@ require "steem_api/models/account"
|
|
6
6
|
require "steem_api/models/block"
|
7
7
|
require "steem_api/models/comment"
|
8
8
|
require "steem_api/models/connection"
|
9
|
+
require "steem_api/models/dynamic_global_properties"
|
10
|
+
require "steem_api/models/follower"
|
11
|
+
require "steem_api/models/reblog"
|
9
12
|
require "steem_api/models/token"
|
10
13
|
require "steem_api/models/transaction"
|
14
|
+
require "steem_api/models/witness"
|
11
15
|
|
12
16
|
# Sub Level Models
|
13
17
|
require "steem_api/models/tx/account_create"
|
@@ -39,13 +43,48 @@ require "steem_api/models/tx/custom/witness"
|
|
39
43
|
require "steem_api/models/tx/custom/reblog"
|
40
44
|
|
41
45
|
require "steem_api/models/vo/author_reward"
|
46
|
+
require "steem_api/models/vo/comment_benefactor_reward"
|
42
47
|
require "steem_api/models/vo/curation_reward"
|
43
48
|
require "steem_api/models/vo/fill_convert_request"
|
44
49
|
require "steem_api/models/vo/fill_order"
|
50
|
+
require "steem_api/models/vo/fill_transfer_from_savings"
|
45
51
|
require "steem_api/models/vo/fill_vesting_withdraw"
|
46
52
|
require "steem_api/models/vo/interest"
|
47
|
-
require "steem_api/models/vo/
|
53
|
+
require "steem_api/models/vo/liquidity_reward"
|
48
54
|
require "steem_api/models/vo/producer_reward"
|
55
|
+
require "steem_api/models/vo/return_vesting_delegation"
|
56
|
+
require "steem_api/models/vo/shutdown_witness"
|
49
57
|
|
50
58
|
module SteemApi
|
51
59
|
end
|
60
|
+
|
61
|
+
# Monkeypatch to implement: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues/274#issuecomment-167578393
|
62
|
+
# Copied from: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/d4b6e4134e15d8d73be48ad6d8da1911f7001d9e/lib/active_record/connection_adapters/sqlserver/schema_statements.rb
|
63
|
+
# Switched "sp_helptext" from above (#view_information) to use "sp_columns"
|
64
|
+
module ActiveRecord
|
65
|
+
module ConnectionAdapters
|
66
|
+
module SQLServer
|
67
|
+
module SchemaStatements
|
68
|
+
def view_information(table_name)
|
69
|
+
@view_information ||= {}
|
70
|
+
@view_information[table_name] ||= begin
|
71
|
+
identifier = SQLServer::Utils.extract_identifiers(table_name)
|
72
|
+
view_info = select_one "SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = #{quote(identifier.object)}", 'SCHEMA'
|
73
|
+
if view_info
|
74
|
+
view_info = view_info.with_indifferent_access
|
75
|
+
if view_info[:VIEW_DEFINITION].blank? || view_info[:VIEW_DEFINITION].length == 4000
|
76
|
+
view_info[:VIEW_DEFINITION] = begin
|
77
|
+
select_values("EXEC sp_columns #{identifier.object_quoted}", 'SCHEMA').join
|
78
|
+
rescue
|
79
|
+
warn "No view definition found, possible permissions problem.\nPlease run GRANT VIEW DEFINITION TO your_user;"
|
80
|
+
nil
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
view_info
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -2,14 +2,23 @@ module SteemApi
|
|
2
2
|
class Account < SteemApi::SqlBase
|
3
3
|
|
4
4
|
self.table_name = :Accounts
|
5
|
-
|
5
|
+
|
6
|
+
has_many :follows, foreign_key: :follower, class_name: 'Follower', primary_key: :name
|
7
|
+
has_many :following, through: :follows, source: :following_account
|
8
|
+
has_many :inverse_follows, foreign_key: :following, class_name: 'Follower', primary_key: :name
|
9
|
+
has_many :followers, through: :inverse_follows, source: :follower_account
|
10
|
+
|
11
|
+
has_many :reblogs, foreign_key: :account, class_name: 'Reblog', primary_key: :name
|
12
|
+
|
13
|
+
belongs_to :witness, foreign_key: :name, primary_key: :name
|
14
|
+
|
6
15
|
scope :before, lambda { |before, field = 'created'| where("#{field} < ?", before) }
|
7
16
|
scope :after, lambda { |after, field = 'created'| where("#{field} > ?", after) }
|
8
17
|
scope :today, -> { after(1.day.ago) }
|
9
18
|
scope :yesterday, -> { before(1.day.ago).after(2.days.ago) }
|
10
19
|
|
11
20
|
def witness?
|
12
|
-
|
21
|
+
!!witness
|
13
22
|
end
|
14
23
|
|
15
24
|
def proxied_vsf_votes_total
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module SteemApi
|
2
|
+
class DynamicGlobalProperties < SteemApi::SqlBase
|
3
|
+
|
4
|
+
self.table_name = :DynamicGlobalProperties
|
5
|
+
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
# Structure
|
10
|
+
#
|
11
|
+
# SteemApi::DynamicGlobalProperties(
|
12
|
+
# ID: integer,
|
13
|
+
# head_block_number: integer,
|
14
|
+
# head_block_id: varchar,
|
15
|
+
# time: timestamp,
|
16
|
+
# current_witness: varchar,
|
17
|
+
# total_pow: integer,
|
18
|
+
# num_pow_witnesses: integer,
|
19
|
+
# virtual_supply: money,
|
20
|
+
# current_supply: money,
|
21
|
+
# confidential_supply: money,
|
22
|
+
# current_sbd_supply: money,
|
23
|
+
# confidential_sbd_supply: money,
|
24
|
+
# total_vesting_fund_steem: money,
|
25
|
+
# total_vesting_fund_steem_symbol: varchar,
|
26
|
+
# total_vesting_shares: money,
|
27
|
+
# total_vesting_shares_symbol: varchar,
|
28
|
+
# total_reward_fund_steem: money,
|
29
|
+
# total_reward_shares2: varchar,
|
30
|
+
# pending_rewarded_vesting_shares: varchar,
|
31
|
+
# pending_rewarded_vesting_steem: varchar,
|
32
|
+
# sbd_interest_rate: integer,
|
33
|
+
# sbd_print_rate: integer,
|
34
|
+
# average_block_size: integer,
|
35
|
+
# maximum_block_size: integer,
|
36
|
+
# current_aslot: integer,
|
37
|
+
# recent_slots_filled: varchar,
|
38
|
+
# participation_count: integer,
|
39
|
+
# last_irreversible_block_num: integer,
|
40
|
+
# max_virtual_bandwidth: varchar,
|
41
|
+
# vote_power_reserve_rate: integer,
|
42
|
+
# current_reserve_ratio: integer,
|
43
|
+
# vote_regeneration_per_day: integer,
|
44
|
+
# steem_per_vest: money
|
45
|
+
# )
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SteemApi
|
2
|
+
class Follower < SteemApi::SqlBase
|
3
|
+
|
4
|
+
self.table_name = :Followers
|
5
|
+
|
6
|
+
belongs_to :follower_account, foreign_key: :follower, class_name: 'Account', primary_key: :name
|
7
|
+
belongs_to :following_account, foreign_key: :following, class_name: 'Account', primary_key: :name
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# Structure
|
13
|
+
#
|
14
|
+
# SteemApi::Follower(
|
15
|
+
# follower varchar,
|
16
|
+
# following varchar
|
17
|
+
# )
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module SteemApi
|
2
|
+
class Reblog < SteemApi::SqlBase
|
3
|
+
|
4
|
+
self.table_name = :Reblogs
|
5
|
+
|
6
|
+
belongs_to :account, foreign_key: :account, class_name: 'Account', primary_key: :name
|
7
|
+
belongs_to :author_account, foreign_key: :author, class_name: 'Account', primary_key: :name
|
8
|
+
|
9
|
+
def comment; Comment::find_by(author: author, permlink: permlink); end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Structure
|
14
|
+
#
|
15
|
+
# SteemApi::Follower(
|
16
|
+
# account varchar,
|
17
|
+
# author varchar,
|
18
|
+
# permlink varchar,
|
19
|
+
# timestamp: datetime
|
20
|
+
# )
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module SteemApi
|
2
|
+
module Vo
|
3
|
+
class CommentBenefactorReward < SteemApi::SqlBase
|
4
|
+
|
5
|
+
self.table_name = :VOCommentBenefactorRewards
|
6
|
+
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Structure
|
12
|
+
#
|
13
|
+
# SteemApi::Vo::CurationReward(
|
14
|
+
# ID: integer,
|
15
|
+
# block_num: integer,
|
16
|
+
# timestamp: datetime,
|
17
|
+
# benefactor: varchar,
|
18
|
+
# author: varchar,
|
19
|
+
# permlink: varchar,
|
20
|
+
# sbd_payout: money
|
21
|
+
# steem_payout: money
|
22
|
+
# vesting_payout: decimal(18,6)
|
23
|
+
# )
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module SteemApi
|
2
|
+
module Vo
|
3
|
+
class FillTransferFromSavings < SteemApi::SqlBase
|
4
|
+
|
5
|
+
self.table_name = :VOFillTransferFromSavings
|
6
|
+
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Structure
|
12
|
+
#
|
13
|
+
# SteemApi::Vo::FillTransferFromSavings(
|
14
|
+
# ID: integer,
|
15
|
+
# block_num: integer,
|
16
|
+
# timestamp: datetime,
|
17
|
+
# from: varchar,
|
18
|
+
# to: varchar,
|
19
|
+
# amount: money,
|
20
|
+
# amount_symbol,
|
21
|
+
# requestid: bigint,
|
22
|
+
# memo: text
|
23
|
+
# )
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module SteemApi
|
2
|
+
module Vo
|
3
|
+
class LiquidityReward < SteemApi::SqlBase
|
4
|
+
|
5
|
+
self.table_name = :VOLiquidityRewards
|
6
|
+
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Structure
|
12
|
+
#
|
13
|
+
# SteemApi::Vo::LiquidityReward(
|
14
|
+
# ID: integer,
|
15
|
+
# block_num: integer,
|
16
|
+
# timestamp: datetime,
|
17
|
+
# owner: varchar,
|
18
|
+
# payout: money
|
19
|
+
# )
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module SteemApi
|
2
|
+
module Vo
|
3
|
+
class ReturnVestingDelegation < SteemApi::SqlBase
|
4
|
+
|
5
|
+
self.table_name = :VOReturnVestingDelegations
|
6
|
+
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Structure
|
12
|
+
#
|
13
|
+
# SteemApi::Vo::ReturnVestingDelegation(
|
14
|
+
# ID: integer,
|
15
|
+
# block_num: integer,
|
16
|
+
# timestamp: datetime,
|
17
|
+
# account: varchar,
|
18
|
+
# amount: money,
|
19
|
+
# amount_symbol
|
20
|
+
# )
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module SteemApi
|
2
|
+
class Witness < SteemApi::SqlBase
|
3
|
+
DISABLED_SIGNING_KEY = 'STM1111111111111111111111111111111114T1Anm'
|
4
|
+
|
5
|
+
self.table_name = :Witnesses
|
6
|
+
|
7
|
+
belongs_to :account, foreign_key: :name, class_name: 'Account', primary_key: :name
|
8
|
+
|
9
|
+
scope :disabled, lambda { |options = {invert: false}|
|
10
|
+
if !!options[:invert]
|
11
|
+
where.not(signing_key: DISABLED_SIGNING_KEY)
|
12
|
+
else
|
13
|
+
where(signing_key: DISABLED_SIGNING_KEY)
|
14
|
+
end
|
15
|
+
}
|
16
|
+
|
17
|
+
scope :enabled, -> { disabled(invert: true) }
|
18
|
+
|
19
|
+
scope :by_ranked, lambda { |order = :desc| order(votes_count: order) }
|
20
|
+
scope :by_total_missed, lambda { |order = :desc| order(total_missed: order) }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Structure
|
25
|
+
#
|
26
|
+
# SteemApi::Witness(
|
27
|
+
# name: varchar,
|
28
|
+
# votes_count: integer,
|
29
|
+
# created: timestamp,
|
30
|
+
# url: varchar,
|
31
|
+
# votes: integer,
|
32
|
+
# total_missed: integer,
|
33
|
+
# last_aslot: integer,
|
34
|
+
# last_confirmed_block_num: integer,
|
35
|
+
# signing_key: varchar,
|
36
|
+
# account_creation_fee: money,
|
37
|
+
# account_creation_fee_symbol: varchar,
|
38
|
+
# maximum_block_size: integer,
|
39
|
+
# sbd_interest_rate: integer,
|
40
|
+
# sbd_exchange_rate_base: money,
|
41
|
+
# sbd_exchange_rate_base_symbol: varchar,
|
42
|
+
# sbd_exchange_rate_quote: money,
|
43
|
+
# sbd_exchange_rate_quote_symbol: varchar,
|
44
|
+
# last_sbd_exchange_update: timestamp,
|
45
|
+
# running_version: varchar,
|
46
|
+
# hardfork_version_vote: varchar,
|
47
|
+
# hardfork_time_vote: timestamp
|
48
|
+
# )
|
data/lib/steem_api/version.rb
CHANGED
data/steem_api.gemspec
CHANGED
@@ -24,8 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_runtime_dependency "nokogiri", ["~> 1.8"]
|
25
25
|
spec.add_runtime_dependency "rest-client", ["~> 2.0"]
|
26
26
|
spec.add_runtime_dependency "activerecord", [">= 4", "< 6"]
|
27
|
-
spec.add_runtime_dependency "tiny_tds", ["~> 1
|
27
|
+
spec.add_runtime_dependency "tiny_tds", ["~> 2.1"]
|
28
28
|
spec.add_runtime_dependency "activerecord-sqlserver-adapter", [">= 4", "< 6"]
|
29
29
|
spec.add_runtime_dependency 'awesome_print', '~> 1.7', '>= 1.7.0'
|
30
|
-
|
31
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steem_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Chaney (netuoso)
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-12-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -65,14 +65,14 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1
|
68
|
+
version: '2.1'
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
71
|
version_requirements: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1
|
75
|
+
version: '2.1'
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: activerecord-sqlserver-adapter
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,7 +125,6 @@ files:
|
|
125
125
|
- ".travis.yml"
|
126
126
|
- CODE_OF_CONDUCT.md
|
127
127
|
- Gemfile
|
128
|
-
- Gemfile.lock
|
129
128
|
- LICENSE.txt
|
130
129
|
- README.md
|
131
130
|
- Rakefile
|
@@ -135,6 +134,9 @@ files:
|
|
135
134
|
- lib/steem_api/models/block.rb
|
136
135
|
- lib/steem_api/models/comment.rb
|
137
136
|
- lib/steem_api/models/connection.rb
|
137
|
+
- lib/steem_api/models/dynamic_global_properties.rb
|
138
|
+
- lib/steem_api/models/follower.rb
|
139
|
+
- lib/steem_api/models/reblog.rb
|
138
140
|
- lib/steem_api/models/sql_base.rb
|
139
141
|
- lib/steem_api/models/token.rb
|
140
142
|
- lib/steem_api/models/transaction.rb
|
@@ -166,13 +168,18 @@ files:
|
|
166
168
|
- lib/steem_api/models/tx/withdraw_vesting_route.rb
|
167
169
|
- lib/steem_api/models/tx/witness_update.rb
|
168
170
|
- lib/steem_api/models/vo/author_reward.rb
|
171
|
+
- lib/steem_api/models/vo/comment_benefactor_reward.rb
|
169
172
|
- lib/steem_api/models/vo/curation_reward.rb
|
170
173
|
- lib/steem_api/models/vo/fill_convert_request.rb
|
171
174
|
- lib/steem_api/models/vo/fill_order.rb
|
175
|
+
- lib/steem_api/models/vo/fill_transfer_from_savings.rb
|
172
176
|
- lib/steem_api/models/vo/fill_vesting_withdraw.rb
|
173
177
|
- lib/steem_api/models/vo/interest.rb
|
178
|
+
- lib/steem_api/models/vo/liquidity_reward.rb
|
174
179
|
- lib/steem_api/models/vo/producer_reward.rb
|
180
|
+
- lib/steem_api/models/vo/return_vesting_delegation.rb
|
175
181
|
- lib/steem_api/models/vo/shutdown_witness.rb
|
182
|
+
- lib/steem_api/models/witness.rb
|
176
183
|
- lib/steem_api/version.rb
|
177
184
|
- steem_api.gemspec
|
178
185
|
- steem_source_docs.md
|
@@ -196,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
203
|
version: 1.3.1
|
197
204
|
requirements: []
|
198
205
|
rubyforge_project:
|
199
|
-
rubygems_version: 2.
|
206
|
+
rubygems_version: 2.7.7
|
200
207
|
signing_key:
|
201
208
|
specification_version: 4
|
202
209
|
summary: Ruby/Rails wrapper for SteemSQL.com
|
data/Gemfile.lock
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
steem_api (1.1.2rc1)
|
5
|
-
activerecord (>= 4, < 6)
|
6
|
-
activerecord-sqlserver-adapter (>= 4, < 6)
|
7
|
-
awesome_print (~> 1.7, >= 1.7.0)
|
8
|
-
nokogiri (~> 1.8)
|
9
|
-
rest-client (~> 2.0)
|
10
|
-
tiny_tds (~> 1.3)
|
11
|
-
|
12
|
-
GEM
|
13
|
-
remote: https://rubygems.org/
|
14
|
-
specs:
|
15
|
-
activemodel (5.1.6)
|
16
|
-
activesupport (= 5.1.6)
|
17
|
-
activerecord (5.1.6)
|
18
|
-
activemodel (= 5.1.6)
|
19
|
-
activesupport (= 5.1.6)
|
20
|
-
arel (~> 8.0)
|
21
|
-
activerecord-sqlserver-adapter (5.1.6)
|
22
|
-
activerecord (~> 5.1.0)
|
23
|
-
tiny_tds
|
24
|
-
activesupport (5.1.6)
|
25
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
26
|
-
i18n (>= 0.7, < 2)
|
27
|
-
minitest (~> 5.1)
|
28
|
-
tzinfo (~> 1.1)
|
29
|
-
arel (8.0.0)
|
30
|
-
awesome_print (1.8.0)
|
31
|
-
concurrent-ruby (1.0.5)
|
32
|
-
domain_name (0.5.20180417)
|
33
|
-
unf (>= 0.0.5, < 1.0.0)
|
34
|
-
http-cookie (1.0.3)
|
35
|
-
domain_name (~> 0.5)
|
36
|
-
i18n (1.0.1)
|
37
|
-
concurrent-ruby (~> 1.0)
|
38
|
-
mime-types (3.1)
|
39
|
-
mime-types-data (~> 3.2015)
|
40
|
-
mime-types-data (3.2016.0521)
|
41
|
-
mini_portile2 (2.3.0)
|
42
|
-
minitest (5.11.3)
|
43
|
-
netrc (0.11.0)
|
44
|
-
nokogiri (1.8.2)
|
45
|
-
mini_portile2 (~> 2.3.0)
|
46
|
-
rest-client (2.0.2)
|
47
|
-
http-cookie (>= 1.0.2, < 2.0)
|
48
|
-
mime-types (>= 1.16, < 4.0)
|
49
|
-
netrc (~> 0.8)
|
50
|
-
thread_safe (0.3.6)
|
51
|
-
tiny_tds (1.3.0)
|
52
|
-
mini_portile2 (~> 2.0)
|
53
|
-
tzinfo (1.2.5)
|
54
|
-
thread_safe (~> 0.1)
|
55
|
-
unf (0.1.4)
|
56
|
-
unf_ext
|
57
|
-
unf_ext (0.0.7.5)
|
58
|
-
|
59
|
-
PLATFORMS
|
60
|
-
ruby
|
61
|
-
|
62
|
-
DEPENDENCIES
|
63
|
-
steem_api!
|
64
|
-
|
65
|
-
BUNDLED WITH
|
66
|
-
1.16.1
|