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

archetech / archon / 33812804984
95%

Build:
DEFAULT BRANCH: main
Ran 03 Sep 2026 10:31PM 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

03 Sep 2026 10:23PM UTC coverage: 92.487%. Remained the same
33812804984

push

github

web-flow
fix(satoshi): Fix the fee rate that broke anchoring, and stop leaking a batch DID per failed attempt (#1036)

* fix(satoshi): Reuse the batch asset when an anchor attempt fails

anchorBatch minted a batch asset, then attempted the transaction that
anchors it, and cleared the export queue only on success. A node whose
wallet could not sign therefore published a new asset describing the same
operations on every export interval: one node produced roughly 8,000 of
them over five days, 69% of all new DIDs on the network in that window
(#1033). Every gatekeeper stores them permanently.

The transaction carries the DID, so the asset cannot be created after the
broadcast. The pending batch is now persisted with the opids it covers and
reused while the queue is unchanged, so a failing anchor retries the same
asset rather than minting another. It is cleared once anchored.

satoshi_anchor_failures_total counts attempts that produced no
transaction, and the failure is logged at warn level. Neither existed
before: the loop printed "Anchoring with fee rate: 5.0 sat/vB" whether or
not it succeeded, and every gauge read healthy, so this ran six days
before a stranger auditing network growth found it.

Refs #1033.

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

* fix(satoshi-wallet): Refuse a watch-only wallet built on another seed

setupWatchOnlyWallet returned as soon as descriptors existed and did not
need topping up, without checking they derive from the mnemonic in hand.
buildDescriptors is only reached below that return, so a wallet built from
a previous seed was accepted silently.

bitcoind holds no private keys here -- signing derives them from the
mnemonic at PSBT time -- so mismatched descriptors watch addresses this
node can never spend from. It kept serving them for funding anyway. One
node took 4,000 sats into such a wallet, recoverable only by whoever still
holds the original... (continued)

3881 of 4464 branches covered (86.94%)

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 33812804984.1 03 Sep 2026 10:31PM UTC 184
93.57
GitHub Action Run
Source Files on build 33812804984
  • 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 #33812804984
  • 2def6be0 on github
  • Prev Build on main (#33788587279)
  • Next Build on main (#33876238883)
  • 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