diff --git a/sweep.py b/sweep.py index 3b1efa1..a10e1f7 100644 --- a/sweep.py +++ b/sweep.py @@ -20,8 +20,8 @@ def main(): args = ap.parse_args() cfg = iproyal.CFG.get("sweep", {}) - threshold = iproyal.CFG.get("alerts", {}).get("low_balance_threshold", 10.0) - max_sats = args.cap_sats or int(cfg.get("max_sats", 100000)) + float_target = float(cfg.get("float_target", 50.0)) + max_sats = args.cap_sats or int(cfg.get("max_sats", 75000)) dest = cfg.get("iproyal_btc_address", "") try: @@ -30,22 +30,22 @@ def main(): print(f"balance check failed: {e}") sys.exit(1) - if bal >= threshold: - print(f"balance ${bal} >= threshold ${threshold} — no top-up needed") + if bal >= float_target: + print(f"balance ${bal} >= float target ${float_target} — no top-up needed") return + shortfall = float_target - bal if not dest: - print("NO destination set (sweep.iproyal_btc_address). " - "Set it in config.json before going live.") + print(f"LOW: balance ${bal} is below float target ${float_target} (shortfall ${shortfall:.2f}). " + "Set sweep.iproyal_btc_address in config.json to enable auto-top-up.") return if args.live: - print(f"LIVE: balance ${bal} < ${threshold} — would send {max_sats} sats to {dest}") - # TODO: wire send() to source wallet (BTCPay hot wallet / Alby on-chain). - # Hard cap enforced here: never exceed max_sats. + print(f"LIVE: balance ${bal} < ${float_target} — would send {max_sats} sats (~${shortfall:.2f}) to {dest}") print("WARNING: send() not yet wired — this is a no-op placeholder.") else: - print(f"DRY-RUN: balance ${bal} < ${threshold} — would top up {max_sats} sats to {dest}") + print(f"DRY-RUN: balance ${bal} < float target ${float_target} (shortfall ${shortfall:.2f}) — " + f"would top up {max_sats} sats to {dest}") if __name__ == "__main__":