record_rep_weights to py3 (#2732)
This commit is contained in:
parent
9fb7908a01
commit
cf6cf11abb
1 changed files with 12 additions and 13 deletions
|
@ -1,6 +1,5 @@
|
|||
import requests
|
||||
import argparse
|
||||
import string
|
||||
from binascii import unhexlify
|
||||
from base64 import b32decode
|
||||
from binascii import hexlify, unhexlify
|
||||
|
@ -17,49 +16,49 @@ r = requests.post(args.rpc, data='{"action":"representatives"}')
|
|||
p = r.json()
|
||||
|
||||
reps = [ ]
|
||||
tbl = string.maketrans('13456789abcdefghijkmnopqrstuwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')
|
||||
tbl = bytes.maketrans(b'13456789abcdefghijkmnopqrstuwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')
|
||||
for acc in p["representatives"]:
|
||||
reps.append({
|
||||
'account': acc,
|
||||
'weight': long(p["representatives"][acc])
|
||||
'weight': int(p["representatives"][acc])
|
||||
})
|
||||
|
||||
r = requests.post(args.rpc, data='{"action":"block_count"}')
|
||||
p = r.json()
|
||||
block_height = max(0, int(p["count"]) - args.cutoff)
|
||||
|
||||
print "cutoff block height is %d" % block_height
|
||||
print("cutoff block height is %d" % block_height)
|
||||
|
||||
reps.sort(key=lambda x: x["weight"], reverse=True)
|
||||
|
||||
supplymax = long(0)
|
||||
supplymax = int(0)
|
||||
for rep in reps:
|
||||
supplymax += rep["weight"]
|
||||
|
||||
supplymax /= long('1000000000000000000000000000000')
|
||||
supplymax = long(supplymax * args.limit)
|
||||
supplymax *= long('1000000000000000000000000000000')
|
||||
supplymax /= int('1000000000000000000000000000000')
|
||||
supplymax = int(supplymax * args.limit)
|
||||
supplymax *= int('1000000000000000000000000000000')
|
||||
|
||||
with open(args.output, 'wb') as of:
|
||||
of.write(unhexlify("%032X" % block_height))
|
||||
|
||||
total = long(0)
|
||||
total = int(0)
|
||||
count = 0
|
||||
for rep in reps:
|
||||
if rep["weight"] == 0:
|
||||
break
|
||||
acc_val = long(hexlify(b32decode(rep["account"].encode("utf-8").replace("nano_", "").translate(tbl) + "====")), 16)
|
||||
acc_val = int(hexlify(b32decode(rep["account"].encode('utf-8').replace(b"nano_", b"").translate(tbl) + b"====")), 16)
|
||||
acc_bytes = unhexlify("%064X" % (((acc_val >> 36) & ((1 << 256) - 1))))
|
||||
weight_bytes = unhexlify("%032X" % rep["weight"])
|
||||
of.write(acc_bytes)
|
||||
of.write(weight_bytes)
|
||||
total += rep["weight"]
|
||||
count += 1
|
||||
print rep["account"] + ": " + str(rep["weight"])
|
||||
print(rep["account"] + ": " + str(rep["weight"]))
|
||||
if total >= supplymax:
|
||||
break
|
||||
|
||||
print "wrote %d rep weights" % count
|
||||
print "max supply %d" % supplymax
|
||||
print ("wrote %d rep weights" % count)
|
||||
print ("max supply %d" % supplymax)
|
||||
|
||||
of.close()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue