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

safe-global / safe-client-gateway / 21940918708 / 2
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: wa-1452-space-invites-are-not-properly-authorized
DEFAULT BRANCH: main
Ran 12 Feb 2026 09:33AM UTC
Files 1850
Run time 1min
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: 56.099% (+0.01%) from 56.085%
21940918708.2

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)

2054 of 3923 branches covered (52.36%)

Branch coverage included in aggregate %.

16420 of 29008 relevant lines covered (56.61%)

59.92 hits per line

Source Files on job run-unit-tests - 21940918708.2
  • Tree
  • List 1850
  • Changed 280
  • Source Changed 8
  • Coverage Changed 280
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 21940918708
  • 521c508a on github
  • Prev Job for on v1.101.0 (#21900285055.1)
  • Next Job for on v1.101.0 (#21940918669.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc