def assert_valid(self) -> None: "Assert logical self-consistency." if self.non_witness_utxo: self.non_witness_utxo.assert_valid() if self.witness_utxo: self.witness_utxo.assert_valid() _assert_valid_partial_sigs(self.partial_sigs) if self.sig_hash_type: assert_valid_hash_type(self.sig_hash_type) assert_valid_redeem_script(self.redeem_script) assert_valid_witness_script(self.witness_script) assert_valid_hd_key_paths(self.hd_key_paths) _assert_valid_final_script_sig(self.final_script_sig) self.final_script_witness.assert_valid() _assert_valid_ripemd160_preimages(self.ripemd160_preimages) _assert_valid_sha256_preimages(self.sha256_preimages) _assert_valid_hash160_preimages(self.hash160_preimages) _assert_valid_hash256_preimages(self.hash256_preimages) assert_valid_unknown(self.unknown)
def assert_valid(self) -> None: "Assert logical self-consistency." self.tx.assert_valid() # ensure a non-null tx has been included if not (self.tx.vin and self.tx.vout): raise BTClibValueError("null transaction") # ensure the tx is unsigned if any(tx_in.script_sig or tx_in.script_witness for tx_in in self.tx.vin): raise BTClibValueError("non empty script_sig or witness") if len(self.tx.vin) != len(self.inputs): err_msg = "mismatched number of psb.tx.vin and psb.inputs: " err_msg += f"{len(self.tx.vin)} vs {len(self.inputs)}" raise BTClibValueError(err_msg) for psbt_in in self.inputs: psbt_in.assert_valid() if any(psbt_in.non_witness_utxo and psbt_in.non_witness_utxo.id != tx_in.prev_out.tx_id for psbt_in, tx_in in zip(self.inputs, self.tx.vin)): err_msg = "mismatched non-witness utxo / outpoint tx_id" raise BTClibValueError(err_msg) if len(self.tx.vout) != len(self.outputs): err_msg = "mismatched number of psb.tx.vout and psbt.outputs: " err_msg += f"{len(self.tx.vout)} vs {len(self.outputs)}" raise BTClibValueError(err_msg) for psbt_out in self.outputs: psbt_out.assert_valid() _assert_valid_version(self.version) assert_valid_hd_key_paths(self.hd_key_paths) assert_valid_unknown(self.unknown)
def assert_valid(self) -> None: "Assert logical self-consistency." assert_valid_redeem_script(self.redeem_script) assert_valid_witness_script(self.witness_script) assert_valid_hd_key_paths(self.hd_key_paths) assert_valid_unknown(self.unknown)