list all contractname for call
    """
    return list_api(contracts_dir + "/*.sol")


def list_accounts():
    """
    list all accounts
    """
    return list_api("bin/accounts/*.keystore")


# get supported command
Precompile.define_functions()
RPCConsole.define_commands()
validcmds = get_validcmds() + RPCConsole.get_all_cmd() \
    + Precompile.get_all_cmd()
contracts_dir = "temp"


def completion(prefix, parsed_args, **kwargs):
    """
    complete the shell
    """
    if parsed_args.cmd is None:
        return validcmds
    # deploy contract
    if parsed_args.cmd[0] == "deploy":
        return list_contracts()

    # call and sendtx
    list all contractname for call
    """
    return list_api(contracts_dir + "/*.sol")


def list_accounts():
    """
    list all accounts
    """
    return list_api("bin/accounts/*.keystore")


# get supported command
Precompile.define_functions()
RPCConsole.define_commands()
validcmds = get_validcmds() + RPCConsole.get_all_cmd(
) + Precompile.get_all_cmd()
contracts_dir = "contracts"


def completion(prefix, parsed_args, **kwargs):
    """
    complete the shell
    """
    if parsed_args.cmd is None:
        return validcmds
    # deploy contract
    if parsed_args.cmd[0] == "deploy":
        return list_contracts()

    # call and sendtx
    # warn(parsed_args)