mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-15 20:19:23 +00:00
src/apps/wallet/sign_tx: refactor writers.get_tx_hash usage
This commit is contained in:
parent
5910ebf279
commit
0a6d890335
@ -38,13 +38,13 @@ class Zip143:
|
||||
write_tx_output(self.h_outputs, txo_bin)
|
||||
|
||||
def get_prevouts_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_prevouts, False)
|
||||
return get_tx_hash(self.h_prevouts)
|
||||
|
||||
def get_sequence_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_sequence, False)
|
||||
return get_tx_hash(self.h_sequence)
|
||||
|
||||
def get_outputs_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_outputs, False)
|
||||
return get_tx_hash(self.h_outputs)
|
||||
|
||||
def preimage_hash(self, coin: CoinInfo, tx: SignTx, txi: TxInputType, pubkeyhash: bytes, sighash: int) -> bytes:
|
||||
h_preimage = HashWriter(blake2b, b'', 32, b'ZcashSigHash\x19\x1b\xa8\x5b') # BRANCH_ID = 0x5ba81b19
|
||||
@ -72,7 +72,7 @@ class Zip143:
|
||||
|
||||
write_uint32(h_preimage, txi.sequence) # 10d. nSequence
|
||||
|
||||
return get_tx_hash(h_preimage, False)
|
||||
return get_tx_hash(h_preimage)
|
||||
|
||||
# see https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#specification
|
||||
# item 5 for details
|
||||
|
@ -33,13 +33,13 @@ class Bip143:
|
||||
write_tx_output(self.h_outputs, txo_bin)
|
||||
|
||||
def get_prevouts_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_prevouts, True)
|
||||
return get_tx_hash(self.h_prevouts, double=True)
|
||||
|
||||
def get_sequence_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_sequence, True)
|
||||
return get_tx_hash(self.h_sequence, double=True)
|
||||
|
||||
def get_outputs_hash(self) -> bytes:
|
||||
return get_tx_hash(self.h_outputs, True)
|
||||
return get_tx_hash(self.h_outputs, double=True)
|
||||
|
||||
def preimage_hash(self, coin: CoinInfo, tx: SignTx, txi: TxInputType, pubkeyhash: bytes, sighash: int) -> bytes:
|
||||
h_preimage = HashWriter(sha256)
|
||||
@ -63,7 +63,7 @@ class Bip143:
|
||||
write_uint32(h_preimage, tx.lock_time) # nLockTime
|
||||
write_uint32(h_preimage, sighash) # nHashType
|
||||
|
||||
return get_tx_hash(h_preimage, True)
|
||||
return get_tx_hash(h_preimage, double=True)
|
||||
|
||||
# see https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#specification
|
||||
# item 5 for details
|
||||
|
@ -299,7 +299,7 @@ async def sign_tx(tx: SignTx, root: bip32.HDNode):
|
||||
write_uint32(h_sign, get_hash_type(coin))
|
||||
|
||||
# check the control digests
|
||||
if get_tx_hash(h_first, False) != get_tx_hash(h_second, False):
|
||||
if get_tx_hash(h_first, False) != get_tx_hash(h_second):
|
||||
raise SigningError(FailureType.ProcessError,
|
||||
'Transaction has changed during signing')
|
||||
|
||||
@ -308,7 +308,7 @@ async def sign_tx(tx: SignTx, root: bip32.HDNode):
|
||||
multisig_pubkey_index(txi_sign.multisig, key_sign_pub)
|
||||
|
||||
# compute the signature from the tx digest
|
||||
signature = ecdsa_sign(key_sign, get_tx_hash(h_sign, True))
|
||||
signature = ecdsa_sign(key_sign, get_tx_hash(h_sign, double=True))
|
||||
tx_ser.signature_index = i_sign
|
||||
tx_ser.signature = signature
|
||||
|
||||
@ -433,7 +433,7 @@ async def get_prevtx_output_value(coin: CoinInfo, tx_req: TxRequest, prev_hash:
|
||||
write_bytes(txh, data)
|
||||
ofs += len(data)
|
||||
|
||||
if get_tx_hash(txh, True, True) != prev_hash:
|
||||
if get_tx_hash(txh, double=True, reverse=True) != prev_hash:
|
||||
raise SigningError(FailureType.ProcessError,
|
||||
'Encountered invalid prev_hash')
|
||||
|
||||
|
@ -109,7 +109,7 @@ def bytearray_with_cap(cap: int) -> bytearray:
|
||||
# ===
|
||||
|
||||
|
||||
def get_tx_hash(w, double: bool, reverse: bool=False) -> bytes:
|
||||
def get_tx_hash(w, double: bool=False, reverse: bool=False) -> bytes:
|
||||
d = w.get_digest()
|
||||
if double:
|
||||
d = sha256(d).digest()
|
||||
|
Loading…
Reference in New Issue
Block a user