def add_input_info(
            self,
            txin: TxInput,
            *,
            only_der_suffix: bool = False,
    ) -> None:
        """Populates the txin, using info the wallet already has.
        That is, network requests are *not* done to fetch missing prev txs!
        For that, use txin.add_info_from_network.
        """
        # note: we add input utxos regardless of is_mine
        if txin.utxo is None:
            txin.utxo = self.db.get_transaction(txin.prevout.txid.hex())
        if not isinstance(txin, PartialTxInput):
            return
        address = self.adb.get_txin_address(txin)
        self._add_input_utxo_info(txin, address=address)
        is_mine = self.is_mine(address)
        if not is_mine:
            is_mine = self._learn_derivation_path_for_address_from_txinout(txin, address)
        if not is_mine:
            return
        txin.script_descriptor = self.get_script_descriptor_for_address(address)
        txin.is_mine = True
        self._add_txinout_derivation_info(txin, address, only_der_suffix=only_der_suffix)
        txin.block_height = self.adb.get_tx_height(txin.prevout.txid.hex()).height
Populates the txin, using info the wallet already has.
        That is, network requests are *not* done to fetch missing prev txs!
        For that, use txin.add_info_from_network.
        
electrum/wallet.py