From 159e84468cf40ac0cee411181ceae63785afcce1 Mon Sep 17 00:00:00 2001 From: Lex Berezhny Date: Sat, 14 Jul 2018 23:02:19 -0400 Subject: [PATCH] py3 support in resolve --- lbrynet/wallet/account.py | 6 +++--- lbrynet/wallet/claim_proofs.py | 15 ++++++++------- lbrynet/wallet/database.py | 12 ++++++------ lbrynet/wallet/ledger.py | 2 +- lbrynet/wallet/resolve.py | 2 +- lbrynet/wallet/transaction.py | 4 ++-- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lbrynet/wallet/account.py b/lbrynet/wallet/account.py index d16c5d1b4..6e9444aff 100644 --- a/lbrynet/wallet/account.py +++ b/lbrynet/wallet/account.py @@ -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): diff --git a/lbrynet/wallet/claim_proofs.py b/lbrynet/wallet/claim_proofs.py index 2cb392cf8..3fcd225cd 100644 --- a/lbrynet/wallet/claim_proofs.py +++ b/lbrynet/wallet/claim_proofs.py @@ -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)) diff --git a/lbrynet/wallet/database.py b/lbrynet/wallet/database.py index b17f7dbeb..4208abd18 100644 --- a/lbrynet/wallet/database.py +++ b/lbrynet/wallet/database.py @@ -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 diff --git a/lbrynet/wallet/ledger.py b/lbrynet/wallet/ledger.py index d0c1ef208..c0cdb0434 100644 --- a/lbrynet/wallet/ledger.py +++ b/lbrynet/wallet/ledger.py @@ -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))) diff --git a/lbrynet/wallet/resolve.py b/lbrynet/wallet/resolve.py index a246688cb..45c006be5 100644 --- a/lbrynet/wallet/resolve.py +++ b/lbrynet/wallet/resolve.py @@ -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, []) diff --git a/lbrynet/wallet/transaction.py b/lbrynet/wallet/transaction.py index 94d2703c6..2f38fb47a 100644 --- a/lbrynet/wallet/transaction.py +++ b/lbrynet/wallet/transaction.py @@ -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):