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

decentraland / transactions-server / 25395811329
70%

Build:
DEFAULT BRANCH: master
Ran 05 May 2026 06:52PM UTC
Jobs 1
Files 33
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

05 May 2026 06:50PM UTC coverage: 70.09% (+2.4%) from 67.72%
25395811329

push

github

web-flow
feat: enhance OpenZeppelin relayer metrics for Gelato parity (#135)

* feat: enhance OpenZeppelin relayer metrics for Gelato parity

Adds four counters to OpenZeppelin so its observability matches Gelato's:
cancelled, reverted, no-balance, and high-gas-price. The poll-failure
branch and send-time error paths are reworked to dispatch by status and
status_reason via keyword inspection, with dcl_error_service_errors as
the unmapped fallback.

Also fixes a latent bug where checkGasPrice always emitted the gelato
suffix regardless of the FF-selected provider. Promotes the relay-router
resolveProvider() closure to a public method so checkGasPrice can read
the current provider name and emit the matching counter.

* feat: track OpenZeppelin transaction retries

The OZ Relayer 1.4.x API does not expose retry counts directly. After
sendMetaTransaction returns the first hash to the caller, a fire-and-forget
background poller queries the transaction record on an interval, counts
distinct hashes seen for the same tx.id (each replacement broadcast produces
a new hash on EVM), and emits the final count to a new dcl_oz_transaction_retries
histogram. The tracker is observe-only and never calls cancel/replace.

Configurable via OZ_RETRY_TRACK_INTERVAL_MS, OZ_RETRY_TRACK_MAX_DURATION_MS,
OZ_RETRY_WARN_THRESHOLD, OZ_RETRY_ALERT_THRESHOLD.

* refactor: simplify OZ retry tracker and share polling loop

The retry tracker now emits a single counter,
dcl_error_transaction_high_retries_openzeppelin, only when the observed
retry count exceeds OZ_MAX_RETRIES (default 20). Replaces the previous
histogram and the warn/alert threshold pair, since alerting only needs a
discrete "too many retries" signal.

Extracts a shared async generator pollTransactionDetail so pollForHash
and trackTransactionRetries no longer duplicate the URL / sleep / fetch /
parse boilerplate; each caller is now a for-await loop with its own exit
conditions. Hash-poll constants HASH_POLL_MAX_ATTEMPTS and
HASH_... (continued)

95 of 145 branches covered (65.52%)

Branch coverage included in aggregate %.

71 of 71 new or added lines in 4 files covered. (100.0%)

451 of 634 relevant lines covered (71.14%)

6.5 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25395811329.1 05 May 2026 06:52PM UTC 33
70.09
GitHub Action Run
Source Files on build 25395811329
  • Tree
  • List 33
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • bcf45ace on github
  • Prev Build on master (#25393176832)
  • Next Build on master (#25520590475)
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