py3 support in resolve

This commit is contained in:
Lex Berezhny 2018-07-14 23:02:19 -04:00 committed by Jack Robison
parent 59e4ac30c2
commit 159e84468c
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2
6 changed files with 21 additions and 20 deletions

View file

@ -70,12 +70,12 @@ class Account(BaseAccount):
failed += 1
log.info('Checked: {}, Converted: {}, Failed: {}'.format(total, succeded, failed))
def get_balance(self, include_claims=False):
def get_balance(self, confirmations=6, include_claims=False):
if include_claims:
return super(Account, self).get_balance()
return super(Account, self).get_balance(confirmations)
else:
return super(Account, self).get_balance(
is_claim=0, is_update=0, is_support=0
confirmations, is_claim=0, is_update=0, is_support=0
)
def get_unspent_outputs(self, include_claims=False):

View file

@ -1,3 +1,4 @@
import six
import binascii
from lbryschema.hashing import sha256
@ -29,11 +30,11 @@ def get_hash_for_outpoint(txhash, nOut, nHeightOfLastTakeover):
# noinspection PyPep8
def verify_proof(proof, rootHash, name):
previous_computed_hash = None
reverse_computed_name = ''
reverse_computed_name = b''
verified_value = False
for i, node in enumerate(proof['nodes'][::-1]):
found_child_in_chain = False
to_hash = ''
to_hash = b''
previous_child_character = None
for child in node['children']:
if child['character'] < 0 or child['character'] > 255:
@ -42,7 +43,7 @@ def verify_proof(proof, rootHash, name):
if previous_child_character >= child['character']:
raise InvalidProofError("children not in increasing order")
previous_child_character = child['character']
to_hash += chr(child['character'])
to_hash += six.int2byte(child['character'])
if 'nodeHash' in child:
if len(child['nodeHash']) != 64:
raise InvalidProofError("invalid child nodeHash")
@ -53,7 +54,7 @@ def verify_proof(proof, rootHash, name):
if found_child_in_chain is True:
raise InvalidProofError("already found the next child in the chain")
found_child_in_chain = True
reverse_computed_name += chr(child['character'])
reverse_computed_name += six.int2byte(child['character'])
to_hash += previous_computed_hash
if not found_child_in_chain:
@ -62,9 +63,9 @@ def verify_proof(proof, rootHash, name):
if i == 0 and 'txhash' in proof and 'nOut' in proof and 'last takeover height' in proof:
if len(proof['txhash']) != 64:
raise InvalidProofError("txhash was invalid: {}".format(proof['txhash']))
if not isinstance(proof['nOut'], (long, int)):
if not isinstance(proof['nOut'], six.integer_types):
raise InvalidProofError("nOut was invalid: {}".format(proof['nOut']))
if not isinstance(proof['last takeover height'], (long, int)):
if not isinstance(proof['last takeover height'], six.integer_types):
raise InvalidProofError(
'last takeover height was invalid: {}'.format(proof['last takeover height']))
to_hash += get_hash_for_outpoint(
@ -93,6 +94,6 @@ def verify_proof(proof, rootHash, name):
return True
def Hash(x):
if type(x) is unicode:
if isinstance(x, six.text_type):
x = x.encode('utf-8')
return sha256(sha256(x))

View file

@ -8,15 +8,15 @@ class WalletDatabase(BaseDatabase):
CREATE_TXO_TABLE = """
create table if not exists txo (
txoid integer primary key,
txhash blob references tx,
address blob references pubkey_address,
txid text references tx,
txoid text primary key,
address text references pubkey_address,
position integer not null,
amount integer not null,
script blob not null,
is_reserved boolean not null default 0,
claim_id blob,
claim_id text,
claim_name text,
is_claim boolean not null default 0,
is_update boolean not null default 0,
@ -41,9 +41,9 @@ class WalletDatabase(BaseDatabase):
if txo.script.is_claim_involved:
row['claim_name'] = txo.script.values['claim_name']
if txo.script.is_update_claim or txo.script.is_support_claim:
row['claim_id'] = sqlite3.Binary(txo.script.values['claim_id'])
row['claim_id'] = txo.script.values['claim_id']
elif txo.script.is_claim_name:
row['claim_id'] = sqlite3.Binary(tx.get_claim_id(txo.index))
row['claim_id'] = tx.get_claim_id(txo.position)
return row
@defer.inlineCallbacks

View file

@ -149,7 +149,7 @@ class MainNetLedger(BaseLedger):
parse_lbry_uri(uri)
except URIParseError as err:
defer.returnValue({'error': err.message})
resolutions = yield self.network.get_values_for_uris(self.headers.hash(), *uris)
resolutions = yield self.network.get_values_for_uris(self.headers.hash().decode(), *uris)
resolver = Resolver(self.headers.claim_trie_root, self.headers.height, self.transaction_class,
hash160_to_address=lambda x: self.hash160_to_address(x), network=self.network)
defer.returnValue((yield resolver._handle_resolutions(resolutions, uris, page, page_size)))

View file

@ -194,7 +194,7 @@ class Resolver:
# a table of index counts for the sorted claim ids, including ignored claims
absolute_position_index = {}
block_sorted_infos = sorted(channel_claim_infos.iteritems(), key=lambda x: int(x[1][1]))
block_sorted_infos = sorted(channel_claim_infos.items(), key=lambda x: int(x[1][1]))
per_block_infos = {}
for claim_id, (name, height) in block_sorted_infos:
claims = per_block_infos.get(height, [])

View file

@ -12,8 +12,8 @@ from lbryschema.claim import ClaimDict # pylint: disable=unused-import
from .script import InputScript, OutputScript
def claim_id_hash(txid, n):
return hash160(txid + struct.pack('>I', n))
def claim_id_hash(tx_hash, n):
return hash160(tx_hash + struct.pack('>I', n))
class Input(BaseInput):