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

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

Build:
Build:
LAST BUILD BRANCH: wa-1452-space-invites-are-not-properly-authorized
DEFAULT BRANCH: main
Ran 12 Feb 2026 09:32AM UTC
Jobs 2
Files 1061
Run time 3min
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.278% (+0.05%) from 89.229%
21940918708

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%)

1 existing line in 1 file now uncovered.

14344 of 15625 relevant lines covered (91.8%)

511.5 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
90.32
-3.23% src/modules/notifications/routes/v1/entities/__tests__/create-registration-v2.dto.builder.ts
Jobs
ID Job ID Ran Files Coverage
1 run-integration-tests - 21940918708.1 12 Feb 2026 09:33AM UTC 2041
79.56
GitHub Action Run
2 run-unit-tests - 21940918708.2 12 Feb 2026 09:32AM UTC 1850
56.1
GitHub Action Run
Source Files on build 21940918708
  • Tree
  • List 1061
  • Changed 294
  • Source Changed 8
  • Coverage Changed 294
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #21940918708
  • 521c508a on github
  • Prev Build on main (#21900285055)
  • Next Build on v1.101.0 (#21940918669)
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