Sign all unsigned inputs to a given transaction with the given private key.  Also, pass in the list of previous outputs to the transaction so they
    can be paired with the right input (i.e. prev_outputs is a list of tx outputs that are in 1-to-1 correspondance with the inputs in the serialized tx)
    
    Different blockchains can require additional fields; pass thse in **blockchain_opts.

    Return the signed transaction on success
    Raise on error

def tx_sign_all_unsigned_inputs(privkey_info, prev_outputs, unsigned_tx_hex, blockchain='bitcoin', **blockchain_opts):
    """
    Sign all unsigned inputs to a given transaction with the given private key.  Also, pass in the list of previous outputs to the transaction so they
    can be paired with the right input (i.e. prev_outputs is a list of tx outputs that are in 1-to-1 correspondance with the inputs in the serialized tx)
    
    Different blockchains can require additional fields; pass thse in **blockchain_opts.

    Return the signed transaction on success
    Raise on error
    """
    if blockchain == 'bitcoin':
        return btc_tx_sign_all_unsigned_inputs(privkey_info, prev_outputs, unsigned_tx_hex, **blockchain_opts)
    else:
        raise ValueError('Unknown blockchain "{}"'.format(blockchain))