{"id":29835024,"url":"https://github.com/generationsoftware/ready-aim-fire-bot","last_synced_at":"2025-07-29T12:16:25.000Z","repository":{"id":306108858,"uuid":"996464418","full_name":"GenerationSoftware/ready-aim-fire-bot","owner":"GenerationSoftware","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-23T16:38:30.000Z","size":404,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T18:30:03.461Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GenerationSoftware.png","metadata":{"files":{"readme":"README-NODE.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-05T01:48:34.000Z","updated_at":"2025-07-23T16:38:34.000Z","dependencies_parsed_at":"2025-07-23T18:30:11.692Z","dependency_job_id":"0b4aafe8-ec90-4085-9c57-ff0e8be4a8cd","html_url":"https://github.com/GenerationSoftware/ready-aim-fire-bot","commit_stats":null,"previous_names":["generationsoftware/ready-aim-fire-bot"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GenerationSoftware/ready-aim-fire-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fready-aim-fire-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fready-aim-fire-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fready-aim-fire-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fready-aim-fire-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GenerationSoftware","download_url":"https://codeload.github.com/GenerationSoftware/ready-aim-fire-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fready-aim-fire-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267685490,"owners_count":24127706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-29T12:16:20.964Z","updated_at":"2025-07-29T12:16:24.656Z","avatar_url":"https://github.com/GenerationSoftware.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Battle Bot - Node.js CLI\n\nThis bot can now run as a standalone Node.js application without Cloudflare Workers.\n\n## Setup\n\n1. Install dependencies:\n```bash\nnpm install\n```\n\n2. Create a `.env` file with your configuration:\n```bash\nnpm run cli init  # Creates .env.example\ncp .env.example .env\n# Edit .env with your values\n```\n\n## Running the Bot\n\nStart the operator manager directly (no build required):\n```bash\nnpm start\n# or\nnpm run cli start\n```\n\nCheck status:\n```bash\nnpm run cli status\n```\n\n## Configuration\n\nThe following environment variables are required in your `.env` file:\n\n- `ETH_RPC_URL` - Ethereum RPC endpoint (supports WebSocket upgrade, e.g., https://arb1.arbitrum.io/rpc)\n- `GRAPHQL_URL` - GraphQL indexer endpoint\n- `OPERATOR_ADDRESS` - Bot wallet address\n- `OPERATOR_PRIVATE_KEY` - Bot wallet private key\n- `RELAYER_URL` - Meta-transaction relayer URL\n- `ERC2771_FORWARDER_ADDRESS` - ERC2771 forwarder contract address\n\n### Logging Configuration\n\nThe following optional environment variables control logging:\n\n- `LOG_LEVEL` - Overall log level (trace, debug, info, warn, error, fatal). Default: info\n- `LOG_PRETTY` - Enable pretty logging with colors. Default: true, set to \"false\" to disable\n- `LOG_OPERATORS` - Comma-separated list of operators to show logs for (e.g., \"CharacterOperator,BattleOperator\")\n- `LOG_DISABLED_OPERATORS` - Comma-separated list of operators to hide logs for\n- `LOG_LEVEL_\u003cOPERATOR\u003e` - Set log level for specific operator (e.g., LOG_LEVEL_CHARACTEROPERATOR=debug)\n\nExamples:\n```bash\n# Show only CharacterOperator and BattleOperator logs\nLOG_OPERATORS=CharacterOperator,BattleOperator npm start\n\n# Hide EventAggregator logs\nLOG_DISABLED_OPERATORS=EventAggregator npm start\n\n# Set debug level for CharacterOperator only\nLOG_LEVEL_CHARACTEROPERATOR=debug npm start\n\n# Disable pretty printing (useful for log aggregation)\nLOG_PRETTY=false npm start\n```\n\n## Architecture\n\nThe refactored application separates Cloudflare-specific code from the core business logic:\n\n- `src/node/` - Pure Node.js implementations of all operators\n- `src/cloudflare/` - Cloudflare Workers wrappers (for backward compatibility)\n- `src/index.ts` - CLI entry point for Node.js\n\nThe Node.js version uses:\n- Standard Node.js timers instead of Cloudflare alarms\n- In-memory state instead of Durable Object storage\n- Direct WebSocket connections for event monitoring\n\n## Development\n\nThe application runs directly with ts-node, so there's no build step required. Just run:\n```bash\nnpm start\n```\n\nIf you need to build for production deployment:\n```bash\nnpm run build\n```\n\nRun tests:\n```bash\nnpm test\n```\n\n## Cloudflare Workers Compatibility\n\nThe original Cloudflare Workers deployment still works:\n```bash\nnpm run deploy  # Deploy to Cloudflare Workers\nnpm run dev     # Run Cloudflare Workers locally\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenerationsoftware%2Fready-aim-fire-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenerationsoftware%2Fready-aim-fire-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenerationsoftware%2Fready-aim-fire-bot/lists"}