def METHOD_NAME(
    config_path: Path,
    account_path: Optional[Path],
    account_password: Optional[str],
    artifacts_dir: Optional[Path],
    abi_dir: Optional[Path],
    fill_wait_time: Optional[int],
    log_level: Optional[str],
    base_chain: str,
    chain: tuple[str],
    source_chain: Optional[str],
    target_chain: Optional[str],
    metrics_prometheus_port: Optional[int],
    unsafe_fill_time: Optional[int],
    poll_period: Optional[float],
    confirmation_blocks: Optional[int],
) -> None:
    """Start Beamer Bridge Agent"""
    if source_chain is not None:
        log.warning("Option --source-chain is deprecated and will be removed")
    if target_chain is not None:
        log.warning("Option --target_chain is deprecated and will be removed")
    options = {
        "fill-wait-time": fill_wait_time,
        "log-level": log_level,
        "artifacts-dir": artifacts_dir,
        "abi-dir": abi_dir,
        "metrics.prometheus-port": metrics_prometheus_port,
        "source-chain": source_chain,
        "target-chain": target_chain,
        "account.path": account_path,
        "account.password": account_password,
        "unsafe-fill-time": unsafe_fill_time,
        "poll-period": poll_period,
        "base-chain.rpc-url": base_chain,
        "confirmation-blocks": confirmation_blocks,
    }
    for chainspec in chain:
        name, rpc_url = chainspec.split("=", 1)
        options[f"chains.{name}.rpc-url"] = rpc_url
    config = beamer.METHOD_NAME.config.load(config_path, options)
    beamer.util.setup_logging(log_level=config.log_level.upper(), log_json=False)
    log.info("Running beamer bridge agent", version=version("beamer"))
    log.info(f"Using account {config.account.address}")
    if not get_relayer_executable().exists():
        log.error("No relayer found")
        sys.exit(1)
    METHOD_NAME = Agent(config)
    signal.signal(signal.SIGINT, lambda *_unused: _sigint_handler(METHOD_NAME))
    METHOD_NAME.start()
    METHOD_NAME.wait()