From 35cd86bd4398420f0c20eb4091a195ed5803e916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hern=C3=A2ni=20Marques?= Date: Sun, 19 Jul 2026 14:27:14 +0200 Subject: [PATCH] docs: point all ladder entrypoints at modular amount ladder Drop remaining check_goa_ladder / old-shim wording. Document ladder/ modules, goa-ladder as phase alias only, and max-ladder as wd+pay max-search. Update admin-log goa-withdraw-ladder comments to prefer taler-monitoring.sh ladder|max-ladder. --- README.md | 2 +- TESTS.md | 4 ++-- check_amount_ladder.sh | 20 ++++++++++---------- ladder/README.md | 18 ++++++++++++------ taler-monitoring.sh | 8 +++++--- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5af4d7f..2c08f4e 100644 --- a/README.md +++ b/README.md @@ -306,7 +306,7 @@ E2E_VARIABLE=0 WITHDRAW_AMT=GOA:50 PAY_AMT=GOA:1 ./taler-monitoring.sh e2e # s | **versions** | `deb.taler.net` reachable (InRelease/Packages/pool `.deb`); containers can reach it + have apt source; installed Taler packages vs **trixie** | | **sanity** | bank · exchange · merchant sections (public + server) | | **e2e** | account → credit → withdraw → wallet → confirm → order → pay | -| **ladder** | amount ladder: **classic** (0 + mids + max) or **max-search** (`max-ladder` / `LADDER_MODE=max`) | +| **ladder** | amount ladder modules: classic 23-rung wd+pay, or max-search wd+pay (`max-ladder`) | ```bash # package suite (default trixie on deb.taler.net) diff --git a/TESTS.md b/TESTS.md index 192668c..9320315 100644 --- a/TESTS.md +++ b/TESTS.md @@ -25,7 +25,7 @@ Every check line has a **global** run number and a **grouped** id: | **sanity** | `check_sanity.sh` | `bank` `exchange` `merchant` | | **server** | `check_server.sh` | (flat `server-NN` or host groups) | | **e2e** | `check_e2e.sh` | `prereq` `load` `bank` `wallet` `bankwd` `settle` `pay` `shop` `paivana` `dig` `report` | -| **ladder** | `check_amount_ladder.sh` | `plan` `load` `withdraw` `pay` `report` — modes classic / max (`max-ladder`); phase alias `goa-ladder` | +| **ladder** | `check_amount_ladder.sh` + `ladder/lib_pay.sh` | `plan` `load` `withdraw` `pay` `report` — classic / max-search; phases `ladder` · `max-ladder` · `goa-ladder` (alias) | **Why groups:** flat `www-001`…`www-080` was hard to talk about. `www.bank-04` / `e2e.bankwd-02` pin the failure to a logical block. @@ -141,7 +141,7 @@ Standalone: `host-agent/run-aptdeploy.sh` (on koopa local; else ssh `$DEPLOY_SSH - OSV CVE query when package+version known → **ERROR** on hits - Never SSH / never podman on the *targets* | **sanity.bank-** / **.exchange-** / **.merchant-** | public + optional server-side per component | -| **ladder.plan-** / **.load-** / **.withdraw-** / **.pay-** / **.report-** | amount ladder (GOA ceiling or stage TESTPAYSAN `max_wire`) | +| **ladder.plan-** / **.load-** / **.withdraw-** / **.pay-** / **.report-** | amount ladder classic or max-search (any currency; stage uses `max_wire`) | | **server-** | SSH host ports / processes (flat unless grouped later) | | **auth401.*** | merchant 401 / case matrix (WebUI APIs): **signup** `POST /instances` MIX id, **login** Basic user low vs MIX/UPPER, full **case** matrix, **password** bad/empty, **pwchange** `POST private/auth` + re-login, **admin-create** `POST /management/instances` (if admin token), **bearer**, **durable mon401**, **webui** SPA `toLowerCase` probe (`check_auth401.sh`) | diff --git a/check_amount_ladder.sh b/check_amount_ladder.sh index 57f780f..f62c418 100755 --- a/check_amount_ladder.sh +++ b/check_amount_ladder.sh @@ -1,31 +1,31 @@ #!/usr/bin/env bash # check_amount_ladder.sh — generic withdraw/pay amount ladder (any Taler currency) # -# Currency-agnostic bank landing ladder for GOA, TESTPAYSAN, KUDOS, … -# (formerly check_goa_ladder.sh; use phase ladder / max-ladder / goa-ladder). +# Orchestrator for the modular amount ladder: +# Phase A withdraw — this file (classic plan or max-search) +# Phase B pay — ladder/lib_pay.sh (classic list or max payable) +# Force-select — ladder/extract_rpubs.py +# See ladder/README.md. # # Flow (bank landings): # 1) GET /intro/auto-account.json → personal *account-* (balance 0) # 2) Mint pool withdrawals as explorer + confirm when selected # 3) wallet-cli accept-uri only (no run-until-done) # 4) bank confirm when selected; settle = balance + transfer_done +# 5) pay via free-amount template (GOA: goa-free) or private orders # # Modes (LADDER_MODE): -# classic — random strictly increasing rungs + pins 0, max-1, max (default 23) +# classic — default 23-rung withdraw + matching pay plan (pins 0, max-1, max) # max — max-search: highest withdrawable AND highest payable # (pay never exceeds wallet available; GOA uses public free-amount # template goa-free by default) # -# Phase A: withdraw. Phase B: pay (classic plan list, or max-search pay). -# -# Stacks auto-tune via bank /config max_wire + exchange min denom when possible. -# # Usage: -# ./taler-monitoring.sh ladder -# ./taler-monitoring.sh max-ladder # LADDER_MODE=max (wd + pay hunt) +# ./taler-monitoring.sh ladder # classic +# ./taler-monitoring.sh max-ladder # LADDER_MODE=max +# ./taler-monitoring.sh goa-ladder # alias of ladder (phase name only) # ./taler-monitoring.sh -d stage.lefrancpaysan.ch ladder # LADDER_MODE=max LADDER_MAX_PROBES=32 ./taler-monitoring.sh ladder -# LADDER_MAX_AMOUNT=100 LADDER_STEPS=7 ./taler-monitoring.sh -d stage.lefrancpaysan.ch ladder # # Env: LADDER_MODE, LADDER_STEPS, LADDER_MAX_AMOUNT, LADDER_MIN_AMOUNT, # LADDER_MAX_PROBES, LADDER_MAX_TOL_REL, LADDER_HIGH_RUNGS, LADDER_STACK_AUTO, diff --git a/ladder/README.md b/ladder/README.md index c08ab3a..4737bad 100644 --- a/ladder/README.md +++ b/ladder/README.md @@ -1,18 +1,24 @@ # Amount ladder modules -Glued by `../check_amount_ladder.sh` (phase entry: `ladder` / `max-ladder`). +**Entry:** `../check_amount_ladder.sh` via: + +```bash +./taler-monitoring.sh ladder # classic 23-rung withdraw + pay +./taler-monitoring.sh max-ladder # max-search withdraw + pay +./taler-monitoring.sh goa-ladder # legacy phase name = classic ladder +``` | Path | Role | |------|------| -| `extract_rpubs.py` | Force-select: scrape `reservePub` from wallet dumps (no bash heredoc) | -| `lib_pay.sh` | **Payment** ladder: free-amount template orders, classic pay list, max-search highest **payable** ≤ available | -| *(withdraw stays in `check_amount_ladder.sh`)* | **Withdraw** ladder: classic 23-rung plan + max-search highest **withdrawable** | +| `../check_amount_ladder.sh` | Orchestrator: classic / max **withdraw**, then pay phase | +| `lib_pay.sh` | **Pay** module: free-amount template, classic pay list, max **payable** ≤ available | +| `extract_rpubs.py` | Force-select: scrape `reservePub` from wallet dumps | -Phase alias `goa-ladder` maps to `check_amount_ladder.sh` (no separate goa_ladder script). +There is **no** `check_goa_ladder.sh` — removed; use the phases above. ## Modes -- **classic** (default): withdraw plan 0→mids→max-1→max, then matching pay plan (never overspend). +- **classic** (default): 23-rung withdraw 0→mids→max-1→max, then matching pay plan (never overspend). - **max** (`max-ladder`): adaptive max withdraw, then adaptive max pay via public free template (hacktivism: `goa-free`). ## Env (pay) diff --git a/taler-monitoring.sh b/taler-monitoring.sh index 73f124a..5379f3f 100755 --- a/taler-monitoring.sh +++ b/taler-monitoring.sh @@ -93,8 +93,9 @@ Phases: sanity public + optional server server server-side only (SSH) e2e withdraw + pay (small amounts; remote aborts on login/KYC) - ladder amount ladder (classic: 0→mids→max; any currency / stack ceiling) - max-ladder highest withdrawable + highest payable (free-amount template on GOA) + ladder amount ladder classic (default 23-rung withdraw + pay; any currency) + max-ladder max-search: highest withdrawable + highest payable (≤ available) + goa-ladder alias of ladder (legacy phase name; same check_amount_ladder.sh) auth401 merchant Basic-auth / case matrix (HTTP 401 paths; may create throwaway instance) aptdeploy koopa podman apt-src smoke: taler-merchant in koopa-taler-deploy-test-apt-src-trixie{,-testing} @@ -317,7 +318,8 @@ export INSIDE_PROFILE INSIDE_SSH export INSIDE_BANK_CTR INSIDE_EXCHANGE_CTR INSIDE_MERCHANT_CTR export INSIDE_BANK_PORT INSIDE_EXCHANGE_PORT INSIDE_MERCHANT_PORT export INSIDE_DNS_BANK INSIDE_DNS_EXCHANGE INSIDE_DNS_MERCHANT -# Amount ladder — classic or max-search (see check_amount_ladder.sh; goa-ladder alias). +# Amount ladder — check_amount_ladder.sh + ladder/lib_pay.sh + ladder/extract_rpubs.py +# Phases: ladder|goa-ladder (classic), max-ladder|maxladder (max-search). # Defaults so set -u export is safe when vars were never set by caller. : "${LADDER_STEPS:=23}" : "${LADDER_MIN_AMOUNT:=0.000001}"