-
Notifications
You must be signed in to change notification settings - Fork 3
/
sbi_check_trx_database.py
77 lines (71 loc) · 2.5 KB
/
sbi_check_trx_database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from beem.account import Account
from beem.amount import Amount
from beem import Steem
from beem.instance import set_shared_steem_instance
from beem.nodelist import NodeList
import re
import os
import dataset
import json
from time import sleep
from steembi.parse_hist_op import ParseAccountHist
from steembi.storage import TrxDB, MemberDB
from steembi.transfer_ops_storage import TransferTrx, AccountTrx, MemberHistDB
if __name__ == "__main__":
config_file = 'config.json'
if not os.path.isfile(config_file):
raise Exception("config.json is missing!")
else:
with open(config_file) as json_data_file:
config_data = json.load(json_data_file)
print(config_data)
accounts = config_data["accounts"]
databaseConnector = config_data["databaseConnector"]
databaseConnector2 = config_data["databaseConnector2"]
other_accounts = config_data["other_accounts"]
mgnt_shares = config_data["mgnt_shares"]
hive_blockchain = config_data["hive_blockchain"]
db = dataset.connect(databaseConnector)
db2 = dataset.connect(databaseConnector2)
# Create keyStorage
trxStorage = TrxDB(db2)
memberStorage = MemberDB(db2)
# Update current node list from @fullnodeupdate
# nodes = NodeList()
# nodes.update_nodes()
# stm = Steem(node=nodes.get_nodes())
data = trxStorage.get_all_data()
status = {}
share_type = {}
n_records = 0
shares = 0
for op in data:
if op["status"] in status:
status[op["status"]] += 1
else:
status[op["status"]] = 1
if op["share_type"] in share_type:
share_type[op["share_type"]] += 1
else:
share_type[op["share_type"]] = 1
shares += op["shares"]
n_records += 1
print("the trx database has %d records" % (n_records))
print("Number of shares:")
print("shares: %d" % shares)
print("status:")
for s in status:
print("%d status entries with %s" % (status[s], s))
print("share_types:")
for s in share_type:
print("%d share_type entries with %s" % (share_type[s], s))
accountTrx = {}
for account in accounts:
accountTrx[account] = AccountTrx(db, account)
sbi_ops = accountTrx["steembasicincome"].get_all()
last_index = - 1
for op in trxStorage.get_all_data_sorted():
if op["source"] != "steembasicincome":
continue
if op["index"] - last_index:
start_index = last_index