From 70f0b2cf0e776e03f49354809bceff97f4879639 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Fri, 11 Jul 2025 13:45:47 +1000 Subject: [PATCH] feat: Optimize some of the auction routes --- FireWalletBrowser.bsdesign | Bin 342549 -> 342732 bytes account.py | 97 +++++++++++++++++++--------- main.py | 126 +++++++++++++++++-------------------- render.py | 98 +++++++++++++++++++---------- 4 files changed, 188 insertions(+), 133 deletions(-) diff --git a/FireWalletBrowser.bsdesign b/FireWalletBrowser.bsdesign index eb14d1fa5a3f49bfe86019487a31d8378711ad13..f64aeaa7c196910613342f2cd9a7dfb9addb4543 100644 GIT binary patch delta 61409 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 bf5%uC9p(sc_K`DXz2i@Rwss%w!UFq$Mn#cF diff --git a/account.py b/account.py index 53c46b3..4eb045c 100644 --- a/account.py +++ b/account.py @@ -617,11 +617,24 @@ def getWalletStatus(): return "Error wallet ahead of node" +# Add a simple cache for bid data +_bid_cache = {} +_bid_cache_time = {} +_cache_duration = 60 # Cache duration in seconds + def getBids(account, domain="NONE"): + cache_key = f"{account}:{domain}" + current_time = time.time() + + # Return cached data if available and fresh + if cache_key in _bid_cache and current_time - _bid_cache_time.get(cache_key, 0) < _cache_duration: + return _bid_cache[cache_key] + if domain == "NONE": response = hsw.getWalletBids(account) else: response = hsw.getWalletBidsByName(domain, account) + # Add backup for bids with no value bids = [] for bid in response: @@ -632,6 +645,11 @@ def getBids(account, domain="NONE"): if 'height' not in bid: bid['height'] = 0 bids.append(bid) + + # Cache the results + _bid_cache[cache_key] = bids + _bid_cache_time[cache_key] = current_time + return bids def getPossibleOutbids(account): @@ -646,28 +664,41 @@ def getPossibleOutbids(account): # Sort out bids older than 720 blocks bids = [bid for bid in bids if (current_height - bid['height']) <= 720] possible_outbids = [] + processed_domains = set() # Track domains we've already processed + + # Pre-fetch domain info for all domains in a single batch + domains_to_check = {bid['name'] for bid in bids} + domain_info_map = {} + + for domain in domains_to_check: + domain_info = getDomain(domain) + if ('info' in domain_info and 'state' in domain_info['info'] and + domain_info['info']['state'] == "BIDDING"): + domain_info_map[domain] = domain_info for bid in bids: domain = bid['name'] - - # Check to make sure that bidding is still happening - domain_info = getDomain(domain) - if 'info' not in domain_info or 'state' not in domain_info['info']: - print(f"Domain {domain} not found or no info available",flush=True) + + # Skip if we've already processed this domain or it's not in bidding state + if domain in processed_domains or domain not in domain_info_map: continue - if domain_info['info']['state'] != "BIDDING": - continue - - - current_highest_bid = bid['value'] + + processed_domains.add(domain) + + # Get all bids for this domain in one call domain_bids = getBids(account, domain) + + # Find the highest bid we've made + current_highest_bid = bid['value'] + for own_bid in domain_bids: + if own_bid["own"]: + current_highest_bid = max(current_highest_bid, own_bid['value']) + + # Check if any unrevealed bids could outbid us for domain_bid in domain_bids: - if domain_bid["own"]: - current_highest_bid = max(current_highest_bid, domain_bid['value']) - continue - if domain_bid['value'] != -1000000: - print("Revealed bid") - continue + if domain_bid["own"] or domain_bid['value'] != -1000000: + continue # Skip our own bids or revealed bids + if current_highest_bid < domain_bid["lockup"]: possible_outbids.append(domain) break @@ -677,24 +708,28 @@ def getPossibleOutbids(account): def getReveals(account, domain): return hsw.getWalletRevealsByName(domain, account) - def getPendingReveals(account): bids = getBids(account) - domains = getDomains(account, False) + # Only get domains in REVEAL state to reduce API calls + domains = [d for d in getDomains(account, False) if d['state'] == "REVEAL"] pending = [] - for domain in domains: - if domain['state'] == "REVEAL": - reveals = getReveals(account, domain['name']) - for bid in bids: - if bid['name'] == domain['name']: - state_found = False - for reveal in reveals: - if reveal['own'] == True: - if bid['value'] == reveal['value']: - state_found = True - - if not state_found: - pending.append(bid) + + # Process domains in REVEAL state + domain_names = {domain['name']: domain for domain in domains} + + for bid in bids: + if bid['name'] in domain_names: + reveals = getReveals(account, bid['name']) + + # Check if this bid has been revealed + bid_revealed = any( + reveal['own'] == True and bid['value'] == reveal['value'] + for reveal in reveals + ) + + if not bid_revealed: + pending.append(bid) + return pending diff --git a/main.py b/main.py index f719f93..b46d052 100644 --- a/main.py +++ b/main.py @@ -249,84 +249,74 @@ def auctions(): if not account: return redirect("/logout") - - bids = account_module.getBids(account) - domains = account_module.getDomains(account,False) - - # Sort - sort = request.args.get("sort") - if sort == None: - sort = "time" - sort = sort.lower() - sort_price = "" - sort_price_next = "⬇" - sort_state = "" - sort_state_next = "⬇" - sort_domain = "" - sort_domain_next = "⬇" - sort_time = "" - sort_time_next = "⬇" - reverse = False - + # Get sort parameters with defaults + sort = request.args.get("sort", "time").lower() direction = request.args.get("direction") - if direction == None: - if sort == "time": - direction = "⬆" - else: - direction = "⬇" - - if direction == "⬆": - reverse = True - + if direction is None: + direction = "⬆" if sort == "time" else "⬇" + + reverse = (direction == "⬆") + + # Initialize sort indicators with a more efficient approach + sort_indicators = { + "price": ["", "⬇"], + "state": ["", "⬇"], + "domain": ["", "⬇"], + "time": ["", "⬇"] + } + # Set the current sort column's indicators + sort_indicators[sort][0] = direction + sort_indicators[sort][1] = reverseDirection(direction) + + # Efficiently retrieve data + bids = account_module.getBids(account) + domains = account_module.getDomains(account, False) + + # Determine if sorting by domains and apply appropriate sort sortbyDomain = False - + if sort == "price": - # Sort by price - bids = sorted(bids, key=lambda k: k['value'],reverse=reverse) - sort_price = direction - sort_price_next = reverseDirection(direction) + bids = sorted(bids, key=lambda k: k['value'], reverse=reverse) elif sort == "state": - sort_state = direction - sort_state_next = reverseDirection(direction) - domains = sorted(domains, key=lambda k: k['state'],reverse=reverse) + domains = sorted(domains, key=lambda k: k['state'], reverse=reverse) sortbyDomain = True elif sort == "time": - sort_time = direction - sort_time_next = reverseDirection(direction) - - # If older HSD version sort by domain height - if bids[0]['height'] == 0: - domains = sorted(domains, key=lambda k: k['height'],reverse=reverse) + # Handle older HSD versions that don't have height in bids + if bids and bids[0]['height'] == 0: + domains = sorted(domains, key=lambda k: k['height'], reverse=reverse) sortbyDomain = True else: - bids = sorted(bids, key=lambda k: k['height'],reverse=reverse) - else: - # Sort by domain - bids = sorted(bids, key=lambda k: k['name'],reverse=reverse) - sort_domain = direction - sort_domain_next = reverseDirection(direction) + bids = sorted(bids, key=lambda k: k['height'], reverse=reverse) + else: # Default to domain name sorting + bids = sorted(bids, key=lambda k: k['name'], reverse=reverse) - # Check if outbids set to true - outbids = request.args.get("outbids") - if outbids is not None and outbids.lower() == "true": - # Get outbid domains + # Get outbids only if explicitly requested + outbids = [] + if request.args.get("outbids", "").lower() == "true": outbids = account_module.getPossibleOutbids(account) - - - bidsHtml = render.bidDomains(bids,domains,sortbyDomain,outbids) - plugins = "" - message = '' - if 'message' in request.args: - message = request.args.get("message") - return render_template("auctions.html", account=account, domains=bidsHtml, - domainsMobile=bidsHtml, plugins=plugins, - domain_count=bidsHtml,sort_price=sort_price, - sort_state=sort_state,sort_domain=sort_domain, - sort_price_next=sort_price_next, - sort_state_next=sort_state_next,sort_domain_next=sort_domain_next, - bids=len(bids),message=message, - sort_time=sort_time,sort_time_next=sort_time_next) - + + # Generate HTML just once + bidsHtml = render.bidDomains(bids, domains, sortbyDomain, outbids) + + # Get message if present + message = request.args.get("message", "") + + return render_template("auctions.html", account=account, + domains=bidsHtml, + domainsMobile=bidsHtml, + plugins="", + domain_count=bidsHtml, + sort_price=sort_indicators["price"][0], + sort_state=sort_indicators["state"][0], + sort_domain=sort_indicators["domain"][0], + sort_time=sort_indicators["time"][0], + sort_price_next=sort_indicators["price"][1], + sort_state_next=sort_indicators["state"][1], + sort_domain_next=sort_indicators["domain"][1], + sort_time_next=sort_indicators["time"][1], + bids=len(bids), + message=message) +#endregion #region All Auctions @app.route('/reveal') diff --git a/render.py b/render.py index 9a85245..29d2705 100644 --- a/render.py +++ b/render.py @@ -306,47 +306,77 @@ def bids(bids,reveals): return html -def bidDomains(bids,domains, sortbyDomains=False, outbids=[]): +def bidDomains(bids, domains, sortbyDomains=False, outbids=[]): html = '' + + # Create lookup dictionaries for O(1) lookups instead of O(n) searches + domain_lookup = {d['name']: d for d in domains} + bid_lookup = {} + for bid in bids: + if bid['name'] not in bid_lookup or bid['value'] > bid_lookup[bid['name']]['value']: + bid_lookup[bid['name']] = bid + if not sortbyDomains: + # Process by bids first for bid in bids: - for domain in domains: - if bid['name'] == domain['name']: - lockup = bid['lockup'] - lockup = lockup / 1000000 - bidValue = bid['value'] / 1000000 - blind = lockup - bidValue + domain_name = bid['name'] + if domain_name not in domain_lookup: + continue + + domain = domain_lookup[domain_name] + + lockup = bid['lockup'] + lockup = lockup / 1000000 + bidValue = bid['value'] / 1000000 + blind = lockup - bidValue - if blind > 0: - bidDisplay = f'{bidValue:,.2f} (+{blind:,.2f}) HNS' - else: - bidDisplay = f'{bidValue:,.2f} HNS' - - html += "" - if domain['name'] in outbids: - html += f"{renderDomain(domain['name'])}" - else: - html += f"{renderDomain(domain['name'])}" - html += f"{domain['state']}" - html += f"{bidDisplay}" - html += f"{bid['height']:,}" - html += "" + if blind > 0: + bidDisplay = f'{bidValue:,.2f} (+{blind:,.2f}) HNS' + else: + bidDisplay = f'{bidValue:,.2f} HNS' + + html += "" + + # Efficiently check if domain is in outbids list + is_outbid = domain_name in outbids + td_style = " style='background-color: red;'" if is_outbid else "" + + html += f"{renderDomain(domain_name)}" + html += f"{domain['state']}" + html += f"{bidDisplay}" + html += f"{bid['height']:,}" + html += "" else: + # Process by domains first (for state sorting) for domain in domains: - for bid in bids: - if bid['name'] == domain['name']: - lockup = bid['lockup'] - lockup = lockup / 1000000 - bidValue = bid['value'] / 1000000 - blind = lockup - bidValue + domain_name = domain['name'] + if domain_name not in bid_lookup: + continue + + bid = bid_lookup[domain_name] + + lockup = bid['lockup'] + lockup = lockup / 1000000 + bidValue = bid['value'] / 1000000 + blind = lockup - bidValue - bidDisplay = f'{bidValue:,.2f} HNS + {blind:,.2f} HNS blind' - html += "" - html += f"{renderDomain(domain['name'])}" - html += f"{domain['state']}" - html += f"{bidDisplay}" - html += f"{bid['height']:,}" - html += "" + if blind > 0: + bidDisplay = f'{bidValue:,.2f} (+{blind:,.2f}) HNS' + else: + bidDisplay = f'{bidValue:,.2f} HNS' + + html += "" + + # Efficiently check if domain is in outbids list + is_outbid = domain_name in outbids + td_style = " style='background-color: red;'" if is_outbid else "" + + html += f"{renderDomain(domain_name)}" + html += f"{domain['state']}" + html += f"{bidDisplay}" + html += f"{bid['height']:,}" + html += "" + return html