From 543a820a1207547de252f3db2adafc570497e9ae Mon Sep 17 00:00:00 2001 From: nahuhh <50635951+nahuhh@users.noreply.github.com> Date: Sat, 5 Jul 2025 02:41:20 +0000 Subject: [PATCH 1/2] AMM: bug fixes - skip offer if amount field missing - write amount line if missing - set minrate to 0 if missing or null --- scripts/createoffers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/createoffers.py b/scripts/createoffers.py index 5cd729e..2ffdc7d 100755 --- a/scripts/createoffers.py +++ b/scripts/createoffers.py @@ -329,8 +329,10 @@ def readConfig(args, known_coins): elif offer_template["enabled"] is not True: continue if "amount" not in offer_template: - offer_template["amount"] = None - print(f"{offer_template['name']} amount missing. Skipping offer") + offer_template["amount"] = 0 + print(f"{offer_template['name']} Offer amount missing. Skipping offer") + num_changes += 1 + continue elif ( offer_template["amount"] is None or float(offer_template["amount"]) < min_swap_size @@ -338,6 +340,10 @@ def readConfig(args, known_coins): print(f"{offer_template['name']} Offer amount invalid. Skipping offer") continue amount = float(offer_template["amount"]) + if "minrate" not in offer_template or offer_template["minrate"] is None: + offer_template["minrate"] = 0 + print(f"{offer_template['name']} Offer minrate missing. Setting to 0") + num_changes += 1 if "amount_step" not in offer_template: print( f"Adding mandatory amount_step for {offer_template['name']} (privacy feature)" From 94b972502e4702e5bc33ac662560bb4bb99b7994 Mon Sep 17 00:00:00 2001 From: nahuhh <50635951+nahuhh@users.noreply.github.com> Date: Sat, 5 Jul 2025 04:37:42 +0000 Subject: [PATCH 2/2] refactor(js/amm): use float for amount_step instead of string --- basicswap/static/js/amm_tables.js | 34 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/basicswap/static/js/amm_tables.js b/basicswap/static/js/amm_tables.js index f22802f..ec2881b 100644 --- a/basicswap/static/js/amm_tables.js +++ b/basicswap/static/js/amm_tables.js @@ -1056,10 +1056,10 @@ const AmmTablesManager = (function() { newItem.min_swap_amount = parseFloat(minSwapAmount); } - const amountStep = document.getElementById('add-offer-amount-step').value; + const amountStep = parseFloat(document.getElementById('add-offer-amount-step').value); const offerAmount = parseFloat(document.getElementById('add-amm-amount').value); - if (!amountStep || amountStep.trim() === '') { + if (!amountStep) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment is required. This privacy feature prevents revealing your exact wallet balance.'); } else { @@ -1069,8 +1069,7 @@ const AmmTablesManager = (function() { } if (/^[0-9]*\.?[0-9]*$/.test(amountStep)) { - const parsedValue = parseFloat(amountStep); - if (parsedValue <= 0) { + if (amountStep <= 0) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment must be greater than zero.'); } else { @@ -1078,7 +1077,7 @@ const AmmTablesManager = (function() { } return; } - if (parsedValue < 0.001) { + if (amountStep < 0.001) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment must be at least 0.001.'); } else { @@ -1086,15 +1085,15 @@ const AmmTablesManager = (function() { } return; } - if (parsedValue > offerAmount) { + if (amountStep > offerAmount) { if (window.showErrorModal) { - window.showErrorModal('Validation Error', `Offer Size Increment (${parsedValue}) cannot be greater than the offer amount (${offerAmount}).`); + window.showErrorModal('Validation Error', `Offer Size Increment (${amountStep}) cannot be greater than the offer amount (${offerAmount}).`); } else { - alert(`Offer Size Increment (${parsedValue}) cannot be greater than the offer amount (${offerAmount}).`); + alert(`Offer Size Increment (${amountStep}) cannot be greater than the offer amount (${offerAmount}).`); } return; } - newItem.amount_step = parsedValue.toString(); + newItem.amount_step = amountStep; console.log(`Offer Size Increment set to: ${newItem.amount_step}`); } else { if (window.showErrorModal) { @@ -1502,10 +1501,10 @@ const AmmTablesManager = (function() { updatedItem.min_swap_amount = parseFloat(minSwapAmount); } - const amountStep = document.getElementById('edit-offer-amount-step').value; + const amountStep = parseFloat(document.getElementById('edit-offer-amount-step').value); const offerAmount = parseFloat(document.getElementById('edit-amm-amount').value); - if (!amountStep || amountStep.trim() === '') { + if (!amountStep) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment is required. This privacy feature prevents revealing your exact wallet balance.'); } else { @@ -1515,8 +1514,7 @@ const AmmTablesManager = (function() { } if (/^[0-9]*\.?[0-9]*$/.test(amountStep)) { - const parsedValue = parseFloat(amountStep); - if (parsedValue <= 0) { + if (amountStep <= 0) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment must be greater than zero.'); } else { @@ -1524,7 +1522,7 @@ const AmmTablesManager = (function() { } return; } - if (parsedValue < 0.001) { + if (amountStep < 0.001) { if (window.showErrorModal) { window.showErrorModal('Validation Error', 'Offer Size Increment must be at least 0.001.'); } else { @@ -1532,15 +1530,15 @@ const AmmTablesManager = (function() { } return; } - if (parsedValue > offerAmount) { + if (amountStep > offerAmount) { if (window.showErrorModal) { - window.showErrorModal('Validation Error', `Offer Size Increment (${parsedValue}) cannot be greater than the offer amount (${offerAmount}).`); + window.showErrorModal('Validation Error', `Offer Size Increment (${amountStep}) cannot be greater than the offer amount (${offerAmount}).`); } else { - alert(`Offer Size Increment (${parsedValue}) cannot be greater than the offer amount (${offerAmount}).`); + alert(`Offer Size Increment (${amountStep}) cannot be greater than the offer amount (${offerAmount}).`); } return; } - updatedItem.amount_step = parsedValue.toString(); + updatedItem.amount_step = amountStep; console.log(`Offer Size Increment set to: ${updatedItem.amount_step}`); } else { if (window.showErrorModal) {