5 Commits

Author SHA1 Message Date
e537c323c2 fix: Update paths to be consistent
All checks were successful
Tests and Linting / Tests-Linting (3.11) (push) Successful in 32s
Tests and Linting / Tests-Linting (3.10) (push) Successful in 43s
Tests and Linting / Tests-Linting (3.13) (push) Successful in 45s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 51s
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 59s
2025-09-02 18:15:56 +10:00
812fc84d3e feat: Allow zapping txs of a different age
All checks were successful
Tests and Linting / Tests-Linting (3.11) (push) Successful in 31s
Tests and Linting / Tests-Linting (3.10) (push) Successful in 34s
Tests and Linting / Tests-Linting (3.13) (push) Successful in 35s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 42s
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 45s
2025-09-02 17:58:40 +10:00
6d318a597b feat: Add API info to settings page
This is most useful when using an internal node with a random api key
2025-09-02 17:54:56 +10:00
83bd6b9643 feat: Reword workflow
All checks were successful
Tests and Linting / Tests-Linting (3.11) (push) Successful in 36s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 50s
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 1m10s
Tests and Linting / Tests-Linting (3.10) (push) Successful in 3m15s
Tests and Linting / Tests-Linting (3.13) (push) Successful in 3m17s
2025-09-02 17:23:13 +10:00
c93b2652f5 Merge pull request 'Add CI workflow to test code with older versions of python' (#6) from feat/ci-testing into main
All checks were successful
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 3m7s
Test Python Compatibility / Python-Compatibility (3.10) (push) Successful in 4m59s
Test Python Compatibility / Python-Compatibility (3.11) (push) Successful in 4m57s
Test Python Compatibility / Python-Compatibility (3.13) (push) Successful in 1m58s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 7m3s
Reviewed-on: #6
2025-09-02 16:08:35 +10:00
8 changed files with 36 additions and 15 deletions

View File

@@ -1,10 +1,10 @@
name: Test Python Compatibility
run-name: Test Python Compatibility
name: Tests and Linting
run-name: Python Compatibility and Linting tests
on:
push:
jobs:
Python-Compatibility:
Tests-Linting:
runs-on: [ubuntu-latest, amd]
container: catthehacker/ubuntu:act-latest
strategy:
@@ -29,7 +29,7 @@ jobs:
fi
pip install pytest ruff
- name: Run tests
- name: Test with pytest
run: |
echo "Testing with Python ${{ matrix.python-version }}"
python -m pytest main.py

2
.gitignore vendored
View File

@@ -17,6 +17,6 @@ cache/
build/
dist/
hsd/
hsd-data/
hsd_data/
hsd.lock
hsdconfig.json

View File

@@ -50,7 +50,7 @@ LABEL org.opencontainers.image.title="FireWallet (HSD)" \
VOLUME ["/app/hsd-data", "/app/user_data"]
VOLUME ["/app/hsd_data", "/app/user_data"]
ENTRYPOINT ["python3"]

Binary file not shown.

View File

@@ -1582,9 +1582,7 @@ def resendTXs():
}
def zapTXs(account):
age = 60 * 20 # 20 minutes
def zapTXs(account, age=1200):
account_name = check_account(account)
if not account_name:
@@ -1902,7 +1900,7 @@ def hsdStart():
chain_migrate = HSD_CONFIG.get("chainMigrate", False)
wallet_migrate = HSD_CONFIG.get("walletMigrate", False)
spv = HSD_CONFIG.get("spv", False)
prefix = HSD_CONFIG.get("prefix", os.path.join(os.getcwd(), "hsd-data"))
prefix = HSD_CONFIG.get("prefix", os.path.join(os.getcwd(), "hsd_data"))
# Base command
@@ -1978,7 +1976,6 @@ def hsdRestart():
time.sleep(2)
hsdStart()
hsdInit()
hsdStart()
# endregion

View File

@@ -4,10 +4,8 @@ services:
ports:
- "5000:5000"
volumes:
- hsd_data:/app/hsd-data
- hsd_data:/app/hsd_data
- user_data:/app/user_data
environment:
- INTERNAL_HSD=true
volumes:
hsd_data:

22
main.py
View File

@@ -1200,7 +1200,15 @@ def settings_action(action):
if action == "zap":
resp = account_module.zapTXs(request.cookies.get("account"))
age = request.args.get("age", 1200)
try:
age = int(age)
except ValueError:
age = 1200
if age < 0:
age = 1200
resp = account_module.zapTXs(request.cookies.get("account"),age)
if type(resp) is dict and 'error' in resp:
return redirect("/settings?error=" + str(resp['error']))
return redirect("/settings?success=Zapped transactions")
@@ -1222,6 +1230,18 @@ def settings_action(action):
title="Restarting",
content="The node is restarting. This may take a minute or two. You can close this window.")
if action == "api-info":
content = f"API URL: <code>http://{account_module.HSD_IP}:{account_module.HSD_NODE_PORT}</code><br>"
content += f"Wallet URL: <code>http://{account_module.HSD_IP}:{account_module.HSD_WALLET_PORT}</code><br>"
content += f"API Key: <code>{account_module.HSD_API}</code><br><br>"
return render_template("message.html", account=account,
title="API Information",
content=content)
return redirect("/settings?error=Invalid action")
@app.route('/settings/upload', methods=['POST'])

View File

@@ -85,6 +85,12 @@
<h3>Delete unconfirmed transactions</h3><span>This will only remove pending tx from the wallet older than 20 minutes (~ 2 blocks)</span>
</div>
</li>
<li class="list-group-item">
<div><a class="btn btn-primary stick-right" role="button" href="/settings/api-info">API Info</a>
<h3>View API Information</h3><span>View information about the connected HSD node&#39;s API</span>
</div>
</li>
{% if internal %}
<li class="list-group-item">
<div><a class="btn btn-primary stick-right" role="button" href="/settings/restart">Restart Node</a>