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

dangernoodle-io / TaipanMiner / 26432198944
90%

Build:
DEFAULT BRANCH: main
Ran 26 May 2026 04:26AM UTC
Jobs 3
Files 102
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

26 May 2026 04:25AM UTC coverage: 90.194%. Remained the same
26432198944

push

github

web-flow
fix(mining): revert #428 DPORT register mapping; restore correct share validation (#430)

#428 mistakenly assumed the ESP32 DPORT SHA peripheral stores digest words in
REVERSE canonical order (TEXT[7]=H[0] MSB, TEXT[0]=H[7] LSB). This is wrong:
the SHA TEXT registers are in CANONICAL SHA-256 order (TEXT[i]=H[i]).

The pre-#428 code correctly read state[i]=TEXT[i]=H[i], so mining_hash_from_state
produced the raw SHA256d byte output (H[0] at hash[0..3], H[7] at hash[28..31]).
Bitcoin's internal LE convention means valid hashes have H[7]≈0 (leading display
zeros map to TEXT[7]=H[7] near zero), and meets_target() checking from byte 31
down correctly finds those zeros at hash[28..31].

Post-#428 reversed the mapping (state[0]=TEXT[7]=H[7], state[7]=TEXT[0]=H[0]),
placing canonical H[7] at hash[0..3] and canonical H[0] at hash[28..31]. This
put random bytes at hash[31] for most nonces, causing meets_target() to reject
all valid pool shares — confirmed by pool returning low_difficulty rejections.

fix: restore canonical register order (state[i]=TEXT[i]=H[i]) in both
dport_read_digest_swap_if and sha256_hw_dport_kernel step 11. Early-reject
already reads TEXT[7]=H[7] directly — unchanged, correct for LE convention.

bump BB_POOL_STATS_SCHEMA_VERSION 2→3: force NVS wipe on first boot so any
invalid shares accumulated during #428's broken period are cleared.

add test_share_meets_network_target_known_hit: asserts raw SHA256d form (LE)
returns true and display-reversed (BE) form returns false for block 100,000 —
regression guard for the byte-order convention.

add test_share_meets_network_target_pool_diff_not_network: synthesizes a hash
meeting pool diff ~0.006 in raw SHA256d format and asserts it does NOT meet
mainnet nbits 0x17053894 — regression guard for false-positive block detection.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

2559 of 3227 branches covered (79.3%)

Branch coverage included in aggregate %.

5186 of 5360 relevant lines covered (96.75%)

154068.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 webui - 26432198944.1 26 May 2026 04:27AM UTC 73
91.16
GitHub Action Run
2 native - 26432198944.2 26 May 2026 04:26AM UTC 29
90.6
GitHub Action Run
3 e2e - 26432198944.3 26 May 2026 04:28AM UTC 55
56.56
GitHub Action Run
Source Files on build 26432198944
  • Tree
  • List 102
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26432198944
  • 92f95cb8 on github
  • Prev Build on main (#26430370200)
  • Next Build on main (#26481556363)
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