4 Commits

Author SHA1 Message Date
1d5ed059b3 fix: Allow rescan while not in bidding
All checks were successful
Build Docker / Build Image (push) Successful in 3m35s
2025-07-16 16:30:08 +10:00
747ac575fa fix: Auto reset cache if incorrect format
All checks were successful
Build Docker / Build Image (push) Successful in 1m53s
2025-07-14 16:28:50 +10:00
e574933302 feat: Add link on names in tx history
All checks were successful
Build Docker / Build Image (push) Successful in 1m11s
2025-07-12 21:47:14 +10:00
c0f0dc5010 fix: Open tx for bid in new tab 2025-07-12 21:35:04 +10:00
2 changed files with 25 additions and 3 deletions

View File

@@ -867,10 +867,12 @@ def rescan_auction(account, domain):
return { return {
"error": "Invalid domain" "error": "Invalid domain"
} }
if 'bidPeriodStart' not in response['result']['info']['stats']: if 'height' not in response['result']['info']:
return { return {
"error": "Not in auction" "error": "Can't find start"
} }
height = response['result']['info']['height']-1 height = response['result']['info']['height']-1
response = hsw.rpc_importName(domain, height) response = hsw.rpc_importName(domain, height)
return response return response

View File

@@ -40,6 +40,24 @@ if TX_EXPLORER_URL is None:
NAMEHASH_CACHE = 'user_data/namehash_cache.json' NAMEHASH_CACHE = 'user_data/namehash_cache.json'
# Validate cache version
if os.path.exists(NAMEHASH_CACHE):
with open(NAMEHASH_CACHE, 'r') as f:
cache = json.load(f)
if not isinstance(cache, dict):
print("Invalid namehash cache format. Resetting cache.")
with open(NAMEHASH_CACHE, 'w') as f:
json.dump({}, f)
# Check if cache entries are valid
for key in cache:
if not cache[key].startswith("<a href='/manage/"):
print(f"Invalid cache entry for {key}. Resetting cache.")
with open(NAMEHASH_CACHE, 'w') as f:
json.dump({}, f)
break
CACHE_LOCK = threading.Lock() CACHE_LOCK = threading.Lock()
@@ -330,7 +348,7 @@ def bids(bids,reveals):
else: else:
html += f"<td>Unknown</td>" html += f"<td>Unknown</td>"
html += f"<td><a class='text-decoration-none' style='color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));' href='{TX_EXPLORER_URL}{bid['prevout']['hash']}'>Bid TX 🔗</a></td>" html += f"<td><a class='text-decoration-none' style='color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));' target='_blank' href='{TX_EXPLORER_URL}{bid['prevout']['hash']}'>Bid TX 🔗</a></td>"
html += "</tr>" html += "</tr>"
return html return html
@@ -547,6 +565,8 @@ def renderDomainAsync(namehash: str) -> None:
if name["error"] is None: if name["error"] is None:
name = name["result"] name = name["result"]
rendered = renderDomain(name) rendered = renderDomain(name)
rendered = f"<a href='/manage/{name}' target='_blank' style='color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));'>{rendered}</a>"
with CACHE_LOCK: with CACHE_LOCK:
with open(NAMEHASH_CACHE, 'r') as f: with open(NAMEHASH_CACHE, 'r') as f: