{"id":45816367,"url":"https://github.com/init4tech/signet-filler","last_synced_at":"2026-02-26T18:56:28.877Z","repository":{"id":337715476,"uuid":"1153761796","full_name":"init4tech/signet-filler","owner":"init4tech","description":"An example filler service for the Signet network that monitors pending orders and fills profitable ones.","archived":false,"fork":false,"pushed_at":"2026-02-18T11:59:33.000Z","size":151,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-18T15:54:27.655Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/init4tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T16:38:17.000Z","updated_at":"2026-02-18T11:59:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/init4tech/signet-filler","commit_stats":null,"previous_names":["init4tech/signet-filler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/init4tech/signet-filler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/init4tech%2Fsignet-filler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/init4tech%2Fsignet-filler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/init4tech%2Fsignet-filler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/init4tech%2Fsignet-filler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/init4tech","download_url":"https://codeload.github.com/init4tech/signet-filler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/init4tech%2Fsignet-filler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29867972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T18:42:30.764Z","status":"ssl_error","status_checked_at":"2026-02-26T18:41:47.936Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-02-26T18:56:24.676Z","updated_at":"2026-02-26T18:56:28.868Z","avatar_url":"https://github.com/init4tech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Signet Filler\n\nA filler service for the Signet network that monitors pending orders and fills profitable ones.\n\nThe filler checks the transaction cache for pending orders shortly before each block boundary, evaluates their profitability, and submits fill bundles for orders that meet the configured profit threshold. It connects to both the host chain and rollup RPC endpoints, using a configurable signer for transaction signing.\n\n## Configuration\n\nConfiguration is via environment variables. Run with `-h` or `--help` to see the full list:\n\n```\nsignet-filler --help\n```\n\n### Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `SIGNET_FILLER_CHAIN_NAME` | Signet chain name | `parmigiana` |\n| `SIGNET_FILLER_HOST_RPC_URL` | URL for Host RPC node (http/https/ws/wss) | `https://host-rpc.parmigiana.signet.sh` |\n| `SIGNET_FILLER_ROLLUP_RPC_URL` | URL for Rollup RPC node (ws/wss only) | `wss://rpc.parmigiana.signet.sh` |\n| `SIGNET_FILLER_BLOCK_LEAD_DURATION_MS` | How far before each block boundary to submit fill bundles, in milliseconds | `2000` |\n| `SIGNET_FILLER_MIN_PROFIT_THRESHOLD_WEI` | Minimum profit threshold in wei | `100` |\n| `SIGNET_FILLER_GAS_ESTIMATE_PER_ORDER` | Estimated gas per order fill | `150000` |\n| `SIGNET_FILLER_GAS_PRICE_GWEI` | Assumed gas price in gwei | `1` |\n| `SIGNET_FILLER_HEALTHCHECK_PORT` | Port for the healthcheck HTTP server | `8080` |\n| `SIGNER_KEY` | AWS KMS key ID or local private key | N/A |\n| `SIGNER_CHAIN_ID` | Chain ID for AWS signer [optional] | N/A |\n\n## Limitations\n\n### Fixed Pricing\n\nThe current implementation uses hardcoded USD exchange rates and decimal counts for a set of known tokens (USDC, USDT, WETH, WBTC, and the native/wrapped rollup token). Orders referencing any other token will be rejected with an `UnknownToken` error.\n\nA future improvement could handle unknown tokens by querying the ERC-20 contract on-chain for `decimals()` and `totalSupply()`, then assuming total supply represents a fixed USD value (e.g. $10k) to derive a token price. This would allow the filler to process orders for arbitrary tokens rather than only the hardcoded set.\n\n### Single-Block Bundle Submission\n\nFill bundles currently target only the next block (N+1). If the bundle is not included in that block, it expires and the filler must wait for the next polling cycle to retry with fresh signatures.\n\nA more reliable approach would be to submit bundles targeting multiple consecutive blocks (N+1, N+2, N+3) simultaneously, reusing the same signed fills. This would improve inclusion rates without additional signing overhead.\n\n## Future Development\n\n### Dynamic Block Lead Duration\n\nThe `SIGNET_FILLER_BLOCK_LEAD_DURATION_MS` setting is currently a static configuration value. This could be replaced with a dynamically calculated lead duration based on heuristics of historical inclusion rates — adjusting automatically to submit earlier when inclusion rates are low, or later when they are high, to balance freshness of order data against submission reliability.\n\n## License\nLicensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT License](LICENSE-MIT) at your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finit4tech%2Fsignet-filler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finit4tech%2Fsignet-filler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finit4tech%2Fsignet-filler/lists"}