feat(core): add `tx` argument to `create_sig_hasher` method

pull/2244/head
Tomas Krnak 2 years ago committed by matejcik
parent a411a964e1
commit 670d11d627

@ -135,7 +135,7 @@ class Bitcoin:
def create_hash_writer(self) -> HashWriter: def create_hash_writer(self) -> HashWriter:
return HashWriter(sha256()) return HashWriter(sha256())
def create_sig_hasher(self) -> SigHasher: def create_sig_hasher(self, tx: SignTx | PrevTx) -> SigHasher:
return BitcoinSigHasher() return BitcoinSigHasher()
async def step1_process_inputs(self) -> None: async def step1_process_inputs(self) -> None:

@ -106,7 +106,7 @@ class Decred(Bitcoin):
def create_hash_writer(self) -> HashWriter: def create_hash_writer(self) -> HashWriter:
return HashWriter(blake256()) return HashWriter(blake256())
def create_sig_hasher(self) -> SigHasher: def create_sig_hasher(self, tx: SignTx | PrevTx) -> SigHasher:
return DecredSigHasher(self.h_prefix) return DecredSigHasher(self.h_prefix)
async def step2_approve_outputs(self) -> None: async def step2_approve_outputs(self) -> None:

@ -27,7 +27,7 @@ if TYPE_CHECKING:
def create_hash_writer(self) -> HashWriter: def create_hash_writer(self) -> HashWriter:
... ...
def create_sig_hasher(self) -> SigHasher: def create_sig_hasher(self, tx: SignTx | PrevTx) -> SigHasher:
... ...
def write_tx_header( def write_tx_header(
@ -60,7 +60,7 @@ _MAX_BIP125_RBF_SEQUENCE = const(0xFFFF_FFFD)
class TxInfoBase: class TxInfoBase:
def __init__(self, signer: Signer) -> None: def __init__(self, signer: Signer, tx: SignTx | PrevTx) -> None:
# Checksum of multisig inputs, used to validate change-output. # Checksum of multisig inputs, used to validate change-output.
self.multisig_fingerprint = MultisigFingerprintChecker() self.multisig_fingerprint = MultisigFingerprintChecker()
@ -73,7 +73,7 @@ class TxInfoBase:
self.h_tx_check = HashWriter(sha256()) # not a real tx hash self.h_tx_check = HashWriter(sha256()) # not a real tx hash
# BIP-0143 transaction hashing. # BIP-0143 transaction hashing.
self.sig_hasher = signer.create_sig_hasher() self.sig_hasher = signer.create_sig_hasher(tx)
# The minimum nSequence of all inputs. # The minimum nSequence of all inputs.
self.min_sequence = _SEQUENCE_FINAL self.min_sequence = _SEQUENCE_FINAL
@ -122,14 +122,14 @@ class TxInfoBase:
# Used to keep track of the transaction currently being signed. # Used to keep track of the transaction currently being signed.
class TxInfo(TxInfoBase): class TxInfo(TxInfoBase):
def __init__(self, signer: Signer, tx: SignTx) -> None: def __init__(self, signer: Signer, tx: SignTx) -> None:
super().__init__(signer) super().__init__(signer, tx)
self.tx = tx self.tx = tx
# Used to keep track of any original transactions which are being replaced by the current transaction. # Used to keep track of any original transactions which are being replaced by the current transaction.
class OriginalTxInfo(TxInfoBase): class OriginalTxInfo(TxInfoBase):
def __init__(self, signer: Signer, tx: PrevTx, orig_hash: bytes) -> None: def __init__(self, signer: Signer, tx: PrevTx, orig_hash: bytes) -> None:
super().__init__(signer) super().__init__(signer, tx)
self.tx = tx self.tx = tx
self.signer = signer self.signer = signer
self.orig_hash = orig_hash self.orig_hash = orig_hash

@ -128,7 +128,7 @@ class Zcashlike(Bitcoinlike):
if tx.version != 4: if tx.version != 4:
raise wire.DataError("Unsupported transaction version.") raise wire.DataError("Unsupported transaction version.")
def create_sig_hasher(self) -> SigHasher: def create_sig_hasher(self, tx: SignTx | PrevTx) -> SigHasher:
return ZcashSigHasher() return ZcashSigHasher()
async def step7_finish(self) -> None: async def step7_finish(self) -> None:

Loading…
Cancel
Save