Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/validate-5tratsmack-metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Validate 5tratSmack store metadata

on:
pull_request:
paths:
- "willitmod-dev-5tratsmack/**"
- ".github/workflows/validate-5tratsmack-metadata.yml"
push:
branches: [main]
paths:
- "willitmod-dev-5tratsmack/**"
- ".github/workflows/validate-5tratsmack-metadata.yml"

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check compatible manifests and versions
run: |
python3 - <<'PY'
from pathlib import Path
import re

app_dir = Path("willitmod-dev-5tratsmack")
primary = app_dir / "5tratstore-app.yml"
compatibility = app_dir / "umbrel-app.yml"
compose = app_dir / "docker-compose.yml"

for path in (primary, compatibility, compose):
if not path.is_file() or not path.stat().st_size:
raise SystemExit(f"missing required store file: {path}")

primary_bytes = primary.read_bytes()
compatibility_bytes = compatibility.read_bytes()
if primary_bytes != compatibility_bytes:
raise SystemExit(
"5tratstore-app.yml and umbrel-app.yml must remain byte-identical"
)

manifest_text = primary_bytes.decode("utf-8")
compose_text = compose.read_text(encoding="utf-8")

def one(pattern: str, text: str, label: str) -> str:
matches = re.findall(pattern, text, flags=re.MULTILINE)
if len(matches) != 1:
raise SystemExit(f"expected one {label}, found {len(matches)}")
return matches[0]

manifest_version = one(
r'^version:\s*["\']?([^"\'\s]+)', manifest_text, "manifest version"
)
app_version = one(
r'^\s{6}APP_VERSION:\s*["\']?([^"\'\s]+)', compose_text, "APP_VERSION"
)
release_tag = one(
r'^\s{6}FIVETRAT_RELEASE_TAG:\s*["\']?([^"\'\s]+)',
compose_text,
"FIVETRAT_RELEASE_TAG",
)
if len({manifest_version, app_version, release_tag}) != 1:
raise SystemExit(
"store version mismatch: "
f"manifest={manifest_version}, APP_VERSION={app_version}, "
f"FIVETRAT_RELEASE_TAG={release_tag}"
)

print(f"5tratSmack store metadata is consistent at {manifest_version}")
PY
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Development/test app store for WillItMod apps.
- **AxeDGB** (`willitmod-dev-dgb`) - `0.9.179-dev`
- **AxePPC** (`willitmod-dev-ppc`) - `0.2.30-dev`
- **AxeXEC** (`willitmod-dev-xec`) - `0.1.14-dev`
- **5tratSmack** (`willitmod-dev-5tratsmack`) - `0.10.22`
- **5tratSmack** (`willitmod-dev-5tratsmack`) - `0.11.10`
- **PowPow** (`willitmod-dev-powpow`) - `0.2.31-dev`

Use the app manifest in each app directory as the current source of truth for the store-visible version number.
Expand Down
87 changes: 87 additions & 0 deletions willitmod-dev-5tratsmack/umbrel-app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
manifestVersion: 1
id: willitmod-dev-5tratsmack
category: altcoin
name: 5tratSmack
version: "0.11.10"
tagline: Home-miner 5TRAT node, wallet, solo pool and atomic trade lab
description: >-
Install and synchronize a complete 5TRAT node, create or restore an encrypted
wallet, connect home miners to the bundled solo pool, explore the chain, and
use the experimental atomic trade lab from one 5tratumOS app.

5tratSmack is experimental DEV software. Back up both the mining wallet and
trading recovery file before moving funds. The trade book uses the public
Komodo DeFi Framework network through outbound peer connections; every atomic
swap still requires the participating wallets to approve and settle it.

Your Private Activity and My Trades are read only from this installation's
isolated trading wallet. Global Trades can read completed-swap reports from
configured public relays for market comparison. 5tratSmack does not publish
this wallet's orders, trade history, payment identity or swap receipts to
those relays.

Miner connection:
- URL: `stratum+tcp://<your-5tratumos-host-ip>:57557`
- Username: your 5TRAT address plus an optional worker name
- Password: anything
developer: WillItMod
website: https://5trat.com
repo: https://github.com/WillItMod/5tratSmack
support: https://github.com/WillItMod/5tratSmack/issues
dependencies: []
port: 21226
icon: https://raw.githubusercontent.com/WillItMod/5tratStore-dev/main/willitmod-dev-5tratsmack/icon.png
gallery:
- https://raw.githubusercontent.com/WillItMod/5tratStore-dev/main/willitmod-dev-5tratsmack/icon.png
path: ""
defaultUsername: ""
defaultPassword: ""
releaseNotes: >-
Jackpot and reliability update: Pink and Gold bonuses settle to the previous
block's payout script while the current miner remains output zero; malformed
metadata and invalid payouts fail closed. Restores the transparent 0.11.8
development contribution, enabled by default at 5%, adjustable or optional,
and paid only as a disclosed coinbase output after any prior-winner jackpot.
Since 0.11.9 did not retain opt-outs, upgrades return to that 5% default. It
never withdraws wallet funds. The dashboard labels last-known fiat values,
excludes them from order pricing, shows rejected candidates, and replays full
retained history. Exact-config restart acknowledgement, live Stratum checks,
cached incremental scans and atomic locked state updates improve reliability
and performance. The 0.11.9 private local/global trade separation remains,
and existing wallets, blockchain, pool and trading data are retained.
widgets:
- id: sync
type: text-with-progress
refresh: 5s
endpoint: 5tratsmack-app:3000/api/widget/sync
link: ""
example:
type: text-with-progress
link: ""
title: 5TRAT sync
text: 83%
progressLabel: In progress
progress: 0.83
- id: pool
type: three-stats
refresh: 30s
endpoint: 5tratsmack-app:3000/api/widget/pool
link: ""
example:
type: three-stats
link: ""
items:
- title: Hashrate
text: "12.4"
subtext: TH/s
- title: Workers
text: "2"
- title: Best proof
text: "8.2"
subtext: M
backupIgnore:
- data/node/blocks
- data/node/chainstate
- data/node/indexes
- data/node/debug.log
submitter: WillItMod
Loading