'Signs a single Input.
Note:
This method works only for the following Cryptoconditions
currently:
- Ed25519Fulfillment
- ThresholdSha256.
Args:
input_ (:class:`~bigchaindb.common.transaction.
Input`) The Input to be signed.
message (str): The message to be signed
key_pairs (dict): The keys to sign the Transaction with.'

@classmethod
def _sign_input(cls, input_, message, key_pairs):

    if isinstance(input_.fulfillment, Ed25519Sha256):
        return cls._sign_simple_signature_fulfillment(input_, message, key_pairs)
    elif isinstance(input_.fulfillment, ThresholdSha256):
        return cls._sign_threshold_signature_fulfillment(input_, message, key_pairs)
    else:
        raise ValueError("Fulfillment    couldn't    be    matched    to    Cryptocondition    fulfillment    type.")
