• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

protofire / safe-client-gateway / 32120834264
89%
staging: 89%

Build:
Build:
LAST BUILD BRANCH: production
DEFAULT BRANCH: staging
Ran 18 Aug 2026 09:26AM UTC
Jobs 2
Files 1061
Run time 6min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Feb 2026 03:52PM UTC coverage: 89.267%. First build
32120834264

push

github

web-flow
feat: add gas price proxy endpoint (#2902)

* feat: add gas price proxy endpoint

- Add GET /v1/chains/:chainId/gas-price endpoint
- Proxy gas price oracle requests through CGW
- Add caching with configurable TTL (default 10s)
- Support ETHERSCAN_API_KEY injection for rate limiting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: return raw Etherscan API response format

Changes the gas price endpoint to return the raw oracle (Etherscan) API
response format instead of wrapping it with gasParameter and gweiFactor.

This allows the config-service to point directly to the CGW endpoint
without requiring any frontend code changes. The frontend will receive
the same Etherscan format it expects, and gasParameter/gweiFactor remain
in the config-service where they belong.

Response format matches Etherscan Gas Oracle API:
{
  "status": "1",
  "message": "OK",
  "result": {
    "LastBlock": "...",
    "SafeGasPrice": "...",
    "ProposeGasPrice": "...",
    "FastGasPrice": "...",
    "suggestBaseFee": "...",
    "gasUsedRatio": "..."
  }
}

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>

* test: use /v2 API and gas price oracle builder

- Update tests to use Etherscan v2 API URLs (/v2/api)
- Replace hardcoded oracle configs with gasPriceOracleBuilder
- Matches real Etherscan API format more accurately

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>

* refactor: simplify gas price endpoint to direct Etherscan proxy

Remove chain config dependency - endpoint now directly proxies to
Etherscan based on chainId without fetching chain configuration.

Changes:
- Remove chainsRepository.getChain() call
- Build Etherscan URL directly from chainId
- Simpler implementation: just proxy, no config lookup
- Updated tests to reflect direct proxy behavior

This makes the endpoint a pure passthrough to Etherscan v2 API.

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>

* refactor: proper sep... (continued)

2958 of 3755 branches covered (78.77%)

Branch coverage included in aggregate %.

62 of 62 new or added lines in 11 files covered. (100.0%)

14342 of 15625 relevant lines covered (91.79%)

541.52 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-unit-tests - 32120834264.1 18 Aug 2026 09:29AM UTC 1850
56.1
GitHub Action Run
2 run-integration-tests - 32120834264.2 18 Aug 2026 09:26AM UTC 2041
79.51
GitHub Action Run
Source Files on build 32120834264
  • Tree
  • List 1061
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32120834264
  • 521c508a on github
  • Next Build on seismic-staging (#32125700891)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc