code: def p2pkh_input_and_witness(outpoint, sig, pubkey, sequence=0xFFFFFFFE):
      '''
      OutPoint, hex_string, hex_string, int -> (TxIn, InputWitness)
      Create a signed legacy TxIn from a p2pkh prevout
      Create an empty InputWitness for it
      Useful for transactions spending some witness and some legacy prevouts
      '''
      stack_script = '{sig} {pk}'.format(sig=sig, pk=pubkey)
      return tb.make_legacy_input_and_empty_witness(
          outpoint=outpoint,
          stack_script=script_ser.serialize(stack_script),
          redeem_script=b'',
          sequence=sequencef p2pkh_input_and_witness(outpoint, sig, pubkey, sequence=0xFFFFFFFE):
      '''
      OutPoint, hex_string, hex_string, int -> (TxIn, InputWitness)
      Create a signed legacy TxIn from a p2pkh prevout
      Create an empty InputWitness for it
      Useful for transactions spending some witness and some legacy prevouts
      '''
      stack_script = '{sig} {pk}'.format(sig=sig, pk=pubkey)
      return tb.make_legacy_input_and_empty_witness(
          outpoint=outpoint,
          stack_script=script_ser.serialize(stack_script),
          redeem_script=b'',
          sequence=sequence)
docs: OutPoint, hex_string, hex_string, int -> (TxIn, InputWitness)
      Create a signed legacy TxIn from a p2pkh prevout
      Create an empty InputWitness for it
      Useful for transactions spending some witness and some legacy prevouts