sign method
      
  
TaprootKeyInput
sign({ 
    
- required Transaction tx,
- required int inputN,
- required ECPrivateKey key,
- required List<Output> prevOuts,
- SigHashType hashType = const SigHashType.all(),
override
    Return a signed Taproot input using tweaked private key for the key-path
spend. The key should be tweaked by Taproot.tweakScalar.
Implementation
@override
/// Return a signed Taproot input using tweaked private key for the key-path
/// spend. The [key] should be tweaked by [Taproot.tweakScalar].
TaprootKeyInput sign({
  required Transaction tx,
  required int inputN,
  required ECPrivateKey key,
  required List<Output> prevOuts,
  SigHashType hashType = const SigHashType.all(),
}) {
  if (inputN >= prevOuts.length) {
    throw CannotSignInput(
      "Input is out of range of the previous outputs provided",
    );
  }
  // Check key corresponds to matching prevOut
  final program = prevOuts[inputN].program;
  if (program is! P2TR || key.pubkey.xonly != program.tweakedKey) {
    throw CannotSignInput(
      "Key cannot sign for Taproot input's tweaked key",
    );
  }
  return addSignature(
    createInputSignature(
      tx: tx,
      inputN: inputN,
      key: key,
      prevOuts: prevOuts,
      hashType: hashType,
    ),
  );
}