docs: def btc_tx_sign_input(tx, idx, prevout_script, prevout_amount, private_key_info, hashcode=SIGHASH_ALL, hashcodes=None, segwit=None, scriptsig_type=None, redeem_script=None, witness_script=None, **blockchain_opts):
      """
      Sign a particular input in the given transaction.
      @private_key_info can either be a private key, or it can be a dict with 'redeem_script' and 'private_keys' defined
  
      Returns the tx with the signed input
      """
      if segwit is None:
          segwit = get_features('segwit')
      
      if scriptsig_type is None:
          scriptsig_type = btc_privkey_scriptsig_classify(private_key_info)
      
      if scriptsig_type in ['p2wpkh', 'p2wsh', 'p2sh-p2wpkh', 'p2sh-p2wsh'] and not segwit:
          raise ValueError("Segwit is not enabled, but {} is a segwit scriptsig type".format(prevout_script))
  
      return btc_tx_sign(tx, idx, prevout_script, prevout_amount, private_key_info, scriptsig_type, hashcode=hashcode, hashcodes=hashcodes, redeem_script=redeem_script, witness_script=witness_script)