Skip to content

Rework as a thin wrapper around upstream UTXOracle v9.1 - #1

Merged
MattDHill merged 1 commit into
mainfrom
thin-wrapper
Jun 19, 2026
Merged

Rework as a thin wrapper around upstream UTXOracle v9.1#1
MattDHill merged 1 commit into
mainfrom
thin-wrapper

Conversation

@helix-nine

Copy link
Copy Markdown

Reworks the package from the forked v9 "Intraday" script into a thin wrapper around current upstream UTXOracle.py (v9.1, RPC-only).

Summary

  • vendor upstream UTXOracle.py verbatim (RPC-only: no bitcoin-cli, no raw block files — so the Bitcoin Core 28+/Knots on-disk block-XOR issue does not apply)
  • entrypoint writes a bitcoin.conf pointing at bitcoind.startos and serves the generated HTML; strips the upstream YouTube live-stream iframe so the served page makes no external requests
  • run mode stored in store.json on the startos volume, passed to the container via the UTXORACLE_MODE env var (no main volume, no in-container config file)
  • Configure action: Today / Yesterday / Specific Date union with a native date picker
  • completion health check moved into TypeScript (removes check-complete.sh)
  • license corrected to UTXOracle License 1.0 to match the shipped LICENSE (was MIT)
  • bitcoind dependency loosened to >=28.3:9 with [bitcoind, sync-progress]
  • conformance: sync s9pk.mk/.gitignore, add .dockerignore; drop dead generate-html.py and the unused Rust webserver submodule
  • replace the padded icon.png with a crisp icon.svg

Verified on a StartOS box against Bitcoin Knots across all three modes; each served page makes zero external requests.

Companion upstream PR Unbesteveable/UTXOracle#5 adds a --no-embed flag; once it lands, the wrapper's iframe-stripping sed can be removed.

🤖 Generated with Claude Code

Replaces the forked v9 "Intraday" script and Embassy-era leftovers with a
verbatim vendor of current upstream UTXOracle.py (v9.1, RPC-only).

- vendor upstream UTXOracle.py verbatim (RPC-only: no bitcoin-cli, no raw block
  files, so the Bitcoin Core 28+/Knots blocks-XOR issue does not apply)
- entrypoint writes a bitcoin.conf pointing at bitcoind.startos and serves the
  generated HTML; strips the upstream YouTube iframe so the page makes no
  external requests
- store the run mode in store.json on the startos volume; pass it to the
  container via the UTXORACLE_MODE env var (no main volume, no config file)
- Configure action: Today / Yesterday / Specific Date union with a date picker
- completion health check moved to TypeScript (remove check-complete.sh)
- correct the license field to UTXOracle License 1.0 (matches LICENSE)
- loosen bitcoind dependency to >=28.3:9 with [bitcoind, sync-progress]
- sync s9pk.mk/.gitignore, add .dockerignore; drop dead generate-html.py and the
  unused Rust webserver submodule
- replace the padded icon.png with a crisp icon.svg (white wireframe cube on a
  dark rounded square)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@MattDHill
MattDHill merged commit c55768e into main Jun 19, 2026
1 check passed
@MattDHill
MattDHill deleted the thin-wrapper branch June 19, 2026 19:42
@helix-nine

Copy link
Copy Markdown
Author

Thanks for the review and merge, @MattDHill! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants