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

archetech / archon / 33885275603
95%

Build:
DEFAULT BRANCH: main
Ran 04 Sep 2026 02:46PM UTC
Jobs 1
Files 92
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

04 Sep 2026 02:42PM UTC coverage: 92.48% (-0.007%) from 92.487%
33885275603

push

github

web-flow
fix(mediators): Port the anchor leak fix to ethereum, solana and zcash (#1039)

* fix(mediators): Port the anchor leak fix to ethereum, solana and zcash

#1033 was reported against the satoshi mediator, but the same shape was in
every mediator that anchors a batch: createAsset before the fallible
transaction, clearQueue only on success, no failure counter. Each chain's
mediator was evidently written from the last one, so the defect spread with
the pattern.

For each of ethereum, solana and zcash: a pending batch is now authoritative
until it anchors, covering a fixed op-set whose anchor clears only those
operations; the chain height is read before broadcasting so nothing fallible
runs between the transaction and the record of it; the transaction is
persisted before the queue is cleared; and the anchor is wrapped, because
the wallet services answer 500 and the failure therefore arrives thrown
rather than as an empty txid.

Each also gains <chain>_anchor_failures_total. None of the three had any
counter for a failed anchor, and all three log a fee rate identically
whether or not the anchor succeeds, which is how the original ran six days
unnoticed.

tests/mediators/anchor-pattern.test.ts asserts the shape across every
mediator that creates batch assets, so a fifth chain cannot be added
without it. It checks shape rather than behaviour deliberately: these
modules cannot be imported in a test, and the failure only appears when an
anchor fails against a live chain.

Not ported: the descriptor and fee-rate fixes from #1036 are specific to
Bitcoin. The other wallet services make no listDescriptors or
importDescriptors calls, and while zcash shares the float conversion, it
multiplies the rate into an absolute fee and rounds with Math.ceil, so the
long decimal never reaches an RPC that would reject it.

Refs #1033.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYGMfX3foBcVqP7AQNXjWj

* fix(mediators): D... (continued)

3880 of 4464 branches covered (86.92%)

Branch coverage included in aggregate %.

8528 of 8953 relevant lines covered (95.25%)

717.59 hits per line

Jobs
ID Job ID Ran Files Coverage
1 33885275603.1 04 Sep 2026 02:46PM UTC 184
93.57
GitHub Action Run
Source Files on build 33885275603
  • Tree
  • List 92
  • Changed 78
  • Source Changed 0
  • Coverage Changed 78
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #33885275603
  • 407483b8 on github
  • Prev Build on main (#33876238883)
  • Next Build on main (#33889462713)
  • 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