W7-C5 follow-up: Replace max_adjust_steps developer copy with trader-friendly gas presets (Low / Medium / High / Custom) #204

Closed
opened 2026-05-27 05:13:01 +00:00 by PlasticDigits · 10 comments
PlasticDigits commented 2026-05-27 05:13:01 +00:00 (Migrated from gitlab.com)

Issue Summary

Split from #156 (W7-C5 expiry polish — MR !732 addressed the expiry gaps; this item was explicitly left out of scope).

The Advanced → Book insert walk limit control on /trade and /limit still uses developer-facing language (max_adjust_steps (on-chain + docs)) and raw numeric presets (16, 32, 64, 128). Traders cannot tell what the setting does or how it affects gas cost vs reliability when the pair walks the on-chain order book to find an insert slot.

Per maintainer direction on #156: expose Low / Medium / High gas presets plus Custom, and explain the tradeoff in plain language (higher setting → more gas, better chance of placement on deep books).


Background

  • On-chain field: PlaceLimitOrder.max_adjust_steps — caps how many book-head steps the pair contract may walk when linking a new order (docs/limit-orders.md).
  • Retail default today: 32 (LIMIT_ORDER_MAX_ADJUST_STEPS_DEFAULT in limitOrderExpiry.ts).
  • UI hard clamp: 256 (pair hard cap in pair.rs).
  • Current presets in LimitOrderAdvancedLimitSettings.tsx: [16, 32, 64, 128] with no gas framing.

Acceptance criteria

  • Trader-facing labels: Advanced section no longer surfaces max_adjust_steps, “on-chain + docs”, or other internal identifiers in primary UI copy. Docs link may remain but anchor text must be human-readable (e.g. “How book placement gas works”).
  • Gas presets: Replace raw numeric preset buttons with Low, Medium, High, and Custom (four mutually exclusive modes).
  • Default: Medium is selected on fresh form / “Place another” reset and maps to the existing retail default (32 steps unless product chooses different mapping — document the mapping in code constants).
  • Plain-language helper: Visible copy (label + short paragraph and/or tooltip) explains that this controls how much gas the placement tx may spend walking the order book; Low = cheaper, may fail on very deep books; High = costs more gas, more reliable on busy books; Custom for advanced users who know the numeric cap.
  • Custom mode: Selecting Custom reveals the numeric input (clamped 1…256); preset buttons show which tier is active without exposing raw numbers unless Custom is selected.
  • Wire unchanged: Broadcast still sends the correct max_adjust_steps integer via placeLimitOrder / placeLimitOrderWithAllowance — no contract changes required.
  • Both surfaces: /trade (TradeOrderTicket) and /limit (LimitOrdersPage) share the same component/behavior (already true via LimitOrderAdvancedLimitSettings).
  • Tests: Component tests cover preset selection, Custom reveal, default reset, and that the mapped integer is passed through form state.
  • Docs: docs/limit-orders.md (dApp retail form bullet) and docs/frontend.md if applicable updated to describe Low/Medium/High/Custom instead of raw preset numbers.

Verification checklist

  • Open /trade → Limit tab → expand Advanced → confirm Low / Medium / High / Custom presets (no 16/32/64/128 labels, no max_adjust_steps in visible copy).
  • Hover/read helper text — confirms gas cost vs reliability tradeoff in plain language.
  • Select each preset — active state is clear; Medium matches default on first load.
  • Select Custom — numeric field appears; values clamp to 1…256; invalid input falls back safely.
  • Place a limit order on localterra with each preset — inspect CW20 hook JSON / tx simulation and confirm max_adjust_steps matches the mapped integer.
  • Place another / form reset returns to Medium (32).
  • Repeat smoke on standalone /limit page.
  • Run npm test in frontend-dapp — new/updated tests pass; full suite green.
  • Optional: deep book scenario (many resting orders) — Low may fail on-chain with steps-exceeded error; High succeeds — document observed behavior in MR notes.

  1. Introduce a preset map in limitOrderExpiry.ts (or adjacent util), e.g.:
    • low → 16
    • medium → 32 (default)
    • high → 64 or 128 (pick one “high” value and document why; 128 is max of current presets)
    • custom → user-entered integer
  2. Refactor LimitOrderAdvancedLimitSettings.tsx:
    • Rename visible label from “Book insert walk limit” to trader copy, e.g. “Placement gas (book walk)” or “Book placement effort” — avoid CosmWasm jargon.
    • Replace STEP_PRESETS numeric buttons with tier buttons; show numeric input only in Custom mode.
    • Replace doc link text max_adjust_steps (on-chain + docs) with plain language + link to limit-orders.md.
    • Add tooltip or inline hint on each tier (one line each: gas level + when to use).
  3. Form state: Either store { tier, customSteps } in useLimitOrderForm and derive maxSteps, or keep maxSteps number + derived active tier — keep a single source of truth for broadcast.
  4. Tests: Add LimitOrderAdvancedLimitSettings.test.tsx (or extend existing trade/limit form tests) for preset mapping and Custom clamp.
  5. Docs: One paragraph in docs/limit-orders.md § dApp retail form describing Low/Medium/High/Custom and gas tradeoff.

Suggested copy (draft — adjust in MR):

Preset Maps to Helper (draft)
Low 16 Uses less gas; fine for thin books. May fail if the book is very deep.
Medium 32 Default — balanced gas for most pairs.
High 128 Uses more gas; use on busy/deep books if placement fails.
Custom 1–256 Set the on-chain step cap yourself. Higher = more gas.

Relevant files

Area Path Notes
UI (primary) frontend-dapp/src/components/trade/LimitOrderAdvancedLimitSettings.tsx Preset buttons, label, helper copy, doc link
Constants / mapping frontend-dapp/src/utils/limitOrderExpiry.ts LIMIT_ORDER_MAX_ADJUST_STEPS_DEFAULT, LIMIT_ORDER_MAX_ADJUST_STEPS_MAX_UI
Form state frontend-dapp/src/hooks/useLimitOrderForm.ts maxSteps state + reset behavior
Consumers frontend-dapp/src/components/trade/TradeOrderTicket.tsx Wires Advanced settings on /trade
Consumers frontend-dapp/src/pages/LimitOrdersPage.tsx Wires Advanced settings on /limit
Broadcast frontend-dapp/src/services/terraclassic/pair.ts max_adjust_steps in hook msg
Tests frontend-dapp/src/services/terraclassic/__tests__/transactions.test.ts Asserts default 32 in tx shape
Docs docs/limit-orders.md Retail form + CosmWasm field docs
Docs docs/frontend.md “Place another” reset mentions max_adjust_steps default
On-chain (reference only) smartcontracts/contracts/pair/src/orderbook.rs, smartcontracts/packages/dex-common/src/pair.rs Hard cap 256; no UI change needed

Severity / Impact

P2 Polish — UX clarity for Advanced limit settings; no change to on-chain semantics. Split from W7-C5 (#156).

/cc @PlasticDigits @totdking

### Issue Summary Split from [**#156**](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/156) (W7-C5 expiry polish — MR !732 addressed the expiry gaps; this item was explicitly left out of scope). The **Advanced → Book insert walk limit** control on `/trade` and `/limit` still uses developer-facing language (`max_adjust_steps (on-chain + docs)`) and raw numeric presets (`16`, `32`, `64`, `128`). Traders cannot tell what the setting does or how it affects **gas cost** vs **reliability** when the pair walks the on-chain order book to find an insert slot. Per maintainer direction on #156: expose **Low / Medium / High** gas presets plus **Custom**, and explain the tradeoff in plain language (higher setting → more gas, better chance of placement on deep books). --- ### Background - On-chain field: `PlaceLimitOrder.max_adjust_steps` — caps how many book-head steps the pair contract may walk when linking a new order ([`docs/limit-orders.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/docs/limit-orders.md#messages-cosmwasm)). - Retail default today: **32** (`LIMIT_ORDER_MAX_ADJUST_STEPS_DEFAULT` in `limitOrderExpiry.ts`). - UI hard clamp: **256** (pair hard cap in `pair.rs`). - Current presets in `LimitOrderAdvancedLimitSettings.tsx`: `[16, 32, 64, 128]` with no gas framing. --- ### Acceptance criteria - [ ] **Trader-facing labels:** Advanced section no longer surfaces `max_adjust_steps`, “on-chain + docs”, or other internal identifiers in primary UI copy. Docs link may remain but anchor text must be human-readable (e.g. “How book placement gas works”). - [ ] **Gas presets:** Replace raw numeric preset buttons with **Low**, **Medium**, **High**, and **Custom** (four mutually exclusive modes). - [ ] **Default:** **Medium** is selected on fresh form / “Place another” reset and maps to the existing retail default (**32** steps unless product chooses different mapping — document the mapping in code constants). - [ ] **Plain-language helper:** Visible copy (label + short paragraph and/or tooltip) explains that this controls **how much gas the placement tx may spend** walking the order book; **Low = cheaper, may fail on very deep books**; **High = costs more gas, more reliable on busy books**; **Custom** for advanced users who know the numeric cap. - [ ] **Custom mode:** Selecting **Custom** reveals the numeric input (clamped `1…256`); preset buttons show which tier is active without exposing raw numbers unless Custom is selected. - [ ] **Wire unchanged:** Broadcast still sends the correct `max_adjust_steps` integer via `placeLimitOrder` / `placeLimitOrderWithAllowance` — no contract changes required. - [ ] **Both surfaces:** `/trade` (`TradeOrderTicket`) and `/limit` (`LimitOrdersPage`) share the same component/behavior (already true via `LimitOrderAdvancedLimitSettings`). - [ ] **Tests:** Component tests cover preset selection, Custom reveal, default reset, and that the mapped integer is passed through form state. - [ ] **Docs:** `docs/limit-orders.md` (dApp retail form bullet) and `docs/frontend.md` if applicable updated to describe Low/Medium/High/Custom instead of raw preset numbers. --- ### Verification checklist - [ ] Open `/trade` → Limit tab → expand **Advanced** → confirm **Low / Medium / High / Custom** presets (no `16/32/64/128` labels, no `max_adjust_steps` in visible copy). - [ ] Hover/read helper text — confirms **gas cost vs reliability** tradeoff in plain language. - [ ] Select each preset — active state is clear; **Medium** matches default on first load. - [ ] Select **Custom** — numeric field appears; values clamp to `1…256`; invalid input falls back safely. - [ ] Place a limit order on localterra with each preset — inspect CW20 hook JSON / tx simulation and confirm `max_adjust_steps` matches the mapped integer. - [ ] **Place another** / form reset returns to **Medium** (32). - [ ] Repeat smoke on standalone `/limit` page. - [ ] Run `npm test` in `frontend-dapp` — new/updated tests pass; full suite green. - [ ] Optional: deep book scenario (many resting orders) — **Low** may fail on-chain with steps-exceeded error; **High** succeeds — document observed behavior in MR notes. --- ### Recommended fixes 1. **Introduce a preset map** in `limitOrderExpiry.ts` (or adjacent util), e.g.: - `low` → 16 - `medium` → 32 (default) - `high` → 64 or 128 (pick one “high” value and document why; 128 is max of current presets) - `custom` → user-entered integer 2. **Refactor `LimitOrderAdvancedLimitSettings.tsx`:** - Rename visible label from “Book insert walk limit” to trader copy, e.g. **“Placement gas (book walk)”** or **“Book placement effort”** — avoid CosmWasm jargon. - Replace `STEP_PRESETS` numeric buttons with tier buttons; show numeric input only in Custom mode. - Replace doc link text `max_adjust_steps (on-chain + docs)` with plain language + link to `limit-orders.md`. - Add tooltip or inline hint on each tier (one line each: gas level + when to use). 3. **Form state:** Either store `{ tier, customSteps }` in `useLimitOrderForm` and derive `maxSteps`, or keep `maxSteps` number + derived active tier — keep a single source of truth for broadcast. 4. **Tests:** Add `LimitOrderAdvancedLimitSettings.test.tsx` (or extend existing trade/limit form tests) for preset mapping and Custom clamp. 5. **Docs:** One paragraph in `docs/limit-orders.md` § dApp retail form describing Low/Medium/High/Custom and gas tradeoff. **Suggested copy (draft — adjust in MR):** | Preset | Maps to | Helper (draft) | |--------|---------|----------------| | Low | 16 | Uses less gas; fine for thin books. May fail if the book is very deep. | | Medium | 32 | Default — balanced gas for most pairs. | | High | 128 | Uses more gas; use on busy/deep books if placement fails. | | Custom | 1–256 | Set the on-chain step cap yourself. Higher = more gas. | --- ### Relevant files | Area | Path | Notes | |------|------|-------| | **UI (primary)** | `frontend-dapp/src/components/trade/LimitOrderAdvancedLimitSettings.tsx` | Preset buttons, label, helper copy, doc link | | **Constants / mapping** | `frontend-dapp/src/utils/limitOrderExpiry.ts` | `LIMIT_ORDER_MAX_ADJUST_STEPS_DEFAULT`, `LIMIT_ORDER_MAX_ADJUST_STEPS_MAX_UI` | | **Form state** | `frontend-dapp/src/hooks/useLimitOrderForm.ts` | `maxSteps` state + reset behavior | | **Consumers** | `frontend-dapp/src/components/trade/TradeOrderTicket.tsx` | Wires Advanced settings on `/trade` | | **Consumers** | `frontend-dapp/src/pages/LimitOrdersPage.tsx` | Wires Advanced settings on `/limit` | | **Broadcast** | `frontend-dapp/src/services/terraclassic/pair.ts` | `max_adjust_steps` in hook msg | | **Tests** | `frontend-dapp/src/services/terraclassic/__tests__/transactions.test.ts` | Asserts default `32` in tx shape | | **Docs** | `docs/limit-orders.md` | Retail form + CosmWasm field docs | | **Docs** | `docs/frontend.md` | “Place another” reset mentions `max_adjust_steps` default | | **On-chain (reference only)** | `smartcontracts/contracts/pair/src/orderbook.rs`, `smartcontracts/packages/dex-common/src/pair.rs` | Hard cap 256; no UI change needed | --- ### Severity / Impact **P2 Polish** — UX clarity for Advanced limit settings; no change to on-chain semantics. Split from W7-C5 ([#156](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/156)). /cc @PlasticDigits @totdking
PlasticDigits commented 2026-05-27 05:13:05 +00:00 (Migrated from gitlab.com)

mentioned in issue #156

mentioned in issue #156
PlasticDigits commented 2026-05-27 13:45:26 +00:00 (Migrated from gitlab.com)

mentioned in commit 94a1a508a2

mentioned in commit 94a1a508a2f75520f4d66544035a42b73471444e
PlasticDigits commented 2026-05-27 13:45:31 +00:00 (Migrated from gitlab.com)

Implementation complete (merged to main @ 94a1a50)

Replaced developer-facing max_adjust_steps copy with trader-friendly Low / Medium / High / Custom placement gas presets on /trade and /limit (shared LimitOrderAdvancedLimitSettings).

What changed

  • UI: Label → Placement gas (book walk); preset buttons Low / Medium / High / Custom; numeric input only in Custom mode (clamped 1–256).
  • Mapping: Low → 16, Medium → 32 (default), High → 128, Custom → user integer.
  • Copy: Plain-language helper explains gas cost vs reliability tradeoff; docs link text → How book placement gas works (no max_adjust_steps in visible UI).
  • Wire: Broadcast still sends max_adjust_steps integer via existing form maxSteps — no contract changes.
  • Tests: LimitOrderAdvancedLimitSettings.test.tsx + preset helpers in limitOrderExpiry.test.ts (full frontend-dapp suite green: 618 tests).
  • Docs / agents: docs/limit-orders.md, docs/frontend.md, new skills/AGENTS_FRONTEND_LIMIT_ORDER_PLACEMENT_GAS.md; cross-links in AGENTS_TERRACLASSIC_GAS.md and AGENTS_FRONTEND_LIMIT_ORDER_PRICE.md.

Verification checklist

  • /trade → Limit tab → Advanced → confirm Low / Medium / High / Custom (no 16/32/64/128 button labels, no max_adjust_steps in visible copy)
  • Read helper text — confirms gas cost vs reliability tradeoff
  • Medium active on first load; Place another resets to Medium (32)
  • Custom reveals numeric field; values clamp to 1…256
  • Place limit on localterra with each preset — confirm CW20 hook JSON max_adjust_steps matches mapped integer
  • Repeat smoke on standalone /limit page
  • npm test in frontend-dapp — suite green

@brouie — please verify the above on your side when you have a moment. Leaving this issue open until sign-off.

/cc @PlasticDigits

## Implementation complete (merged to `main` @ 94a1a50) Replaced developer-facing **max_adjust_steps** copy with trader-friendly **Low / Medium / High / Custom** placement gas presets on `/trade` and `/limit` (shared `LimitOrderAdvancedLimitSettings`). ### What changed - **UI:** Label → **Placement gas (book walk)**; preset buttons **Low / Medium / High / Custom**; numeric input only in **Custom** mode (clamped 1–256). - **Mapping:** Low → 16, Medium → 32 (default), High → 128, Custom → user integer. - **Copy:** Plain-language helper explains gas cost vs reliability tradeoff; docs link text → **How book placement gas works** (no `max_adjust_steps` in visible UI). - **Wire:** Broadcast still sends `max_adjust_steps` integer via existing form `maxSteps` — no contract changes. - **Tests:** `LimitOrderAdvancedLimitSettings.test.tsx` + preset helpers in `limitOrderExpiry.test.ts` (full `frontend-dapp` suite green: 618 tests). - **Docs / agents:** `docs/limit-orders.md`, `docs/frontend.md`, new `skills/AGENTS_FRONTEND_LIMIT_ORDER_PLACEMENT_GAS.md`; cross-links in `AGENTS_TERRACLASSIC_GAS.md` and `AGENTS_FRONTEND_LIMIT_ORDER_PRICE.md`. ### Verification checklist - [ ] `/trade` → Limit tab → **Advanced** → confirm **Low / Medium / High / Custom** (no `16/32/64/128` button labels, no `max_adjust_steps` in visible copy) - [ ] Read helper text — confirms **gas cost vs reliability** tradeoff - [ ] **Medium** active on first load; **Place another** resets to **Medium (32)** - [ ] **Custom** reveals numeric field; values clamp to **1…256** - [ ] Place limit on localterra with each preset — confirm CW20 hook JSON `max_adjust_steps` matches mapped integer - [ ] Repeat smoke on standalone `/limit` page - [ ] `npm test` in `frontend-dapp` — suite green @brouie — please verify the above on your side when you have a moment. Leaving this issue **open** until sign-off. /cc @PlasticDigits
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-27 13:48:01 +00:00
PlasticDigits commented 2026-05-27 13:48:02 +00:00 (Migrated from gitlab.com)

Verified on main at 3226630 — merged locally and pushed to origin/main.

Verified on `main` at 3226630 — merged locally and pushed to origin/main.
PlasticDigits (Migrated from gitlab.com) reopened this issue 2026-05-27 13:50:38 +00:00
PlasticDigits commented 2026-05-27 13:50:40 +00:00 (Migrated from gitlab.com)

Reopened: fix is merged to main but this issue stays open until QA/verification is complete. (Previously closed in error during repo cleanup.)

Reopened: fix is merged to `main` but this issue stays open until QA/verification is complete. (Previously closed in error during repo cleanup.)
totdking commented 2026-05-29 15:18:58 +00:00 (Migrated from gitlab.com)

Verification checklist

  • /trade → Limit tab → Advanced → confirm Low / Medium / High / Custom (no 16/32/64/128 button labels, no max_adjust_steps in visible copy)
  • Read helper text — confirms gas cost vs reliability tradeoff
  • Medium active on first load; Place another resets to Medium (32)
  • Custom reveals numeric field; values clamp to 1…256
  • Place limit on localterra with each preset — confirm CW20 hook JSON max_adjust_steps matches mapped integer
  • Repeat smoke on standalone /limit page
  • npm test in frontend-dapp — suite green

Issue

cc: @PlasticDigits

### Verification checklist * [x] `/trade` → Limit tab → **Advanced** → confirm **Low / Medium / High / Custom** (no `16/32/64/128` button labels, no `max_adjust_steps` in visible copy) * [x] Read helper text — confirms **gas cost vs reliability** tradeoff * [x] **Medium** active on first load; **Place another** resets to **Medium (32)** * [x] **Custom** reveals numeric field; values clamp to **1…256** * [ ] Place limit on localterra with each preset — confirm CW20 hook JSON `max_adjust_steps` matches mapped integer * [ ] Repeat smoke on standalone `/limit` page * [x] `npm test` in `frontend-dapp` — suite green ## Issue * Blocker for 5th checklist due to issue https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/232 * 6th checklist also faces this issue of blocker https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/232 cc: @PlasticDigits
PlasticDigits commented 2026-05-30 09:21:53 +00:00 (Migrated from gitlab.com)

mentioned in commit 50b9131127

mentioned in commit 50b913112773ed669d6145a39e9ea846579a9cd1
PlasticDigits commented 2026-05-30 09:21:58 +00:00 (Migrated from gitlab.com)

QA verification complete (@50b9131 on main)

Completed remaining checklist items on LocalTerra (infra left running; frontend dev server shut down after smoke).

What was done

  • Added E2E tx spec frontend-dapp/e2e/limit-orders-gas-presets-tx.spec.ts: on /limits, simulated dev wallet places a bid with each Low / Medium / High / Custom (64) preset; LCD tx JSON is decoded via txJsonPlaceLimitMaxAdjustSteps and asserts CW20 place_limit_order_batch hook integers 16 / 32 / 128 / 64.
  • Added QA runner: bash scripts/qa/verify-glab-204-limit-gas-presets.sh.
  • Browser smoke on standalone /limits (port 5176): Advanced shows Placement gas (book walk), Low / Medium / High / Custom (Medium default), helper copy + How book placement gas works link — no max_adjust_steps in visible UI.
  • npm test in frontend-dapp: 716/716 green.
  • Agent docs cross-linked: skills/AGENTS_FRONTEND_LIMIT_ORDER_PLACEMENT_GAS.md, skills/AGENTS_E2E_LIMIT_ORDERS_TX.md.

Note on #232: current LocalTerra pair accepts place_limit_order_batch (retail path); legacy place_limit_order hook correctly fails. Limit placement via dApp succeeded for all four presets — #232 is a separate contract/legacy-hook issue, not a blocker for #204 preset wiring.

Verification checklist (final)

  • /trade → Limit → Advanced → Low / Medium / High / Custom (no raw step labels / no max_adjust_steps in UI) — @totdking + code review
  • Helper text explains gas cost vs reliability
  • Medium default; Place another resets to Medium (32)
  • Custom reveals numeric input; clamp 1…256
  • Place limit on LocalTerra with each preset — CW20 hook max_adjust_steps matches mapped integer (16 / 32 / 128 / custom)
  • Smoke on standalone /limits page
  • npm test in frontend-dapp — suite green
  • Optional deep-book Low-fail / High-succeed scenario (not run; documented in issue as optional)

/cc @PlasticDigits @totdking

## QA verification complete (@50b9131 on `main`) Completed remaining checklist items on LocalTerra (infra left running; frontend dev server shut down after smoke). ### What was done - Added **E2E tx spec** [`frontend-dapp/e2e/limit-orders-gas-presets-tx.spec.ts`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/frontend-dapp/e2e/limit-orders-gas-presets-tx.spec.ts): on **`/limits`**, simulated dev wallet places a bid with each **Low / Medium / High / Custom (64)** preset; LCD tx JSON is decoded via `txJsonPlaceLimitMaxAdjustSteps` and asserts CW20 `place_limit_order_batch` hook integers **16 / 32 / 128 / 64**. - Added QA runner: `bash scripts/qa/verify-glab-204-limit-gas-presets.sh`. - **Browser smoke** on standalone `/limits` (port 5176): Advanced shows **Placement gas (book walk)**, **Low / Medium / High / Custom** (Medium default), helper copy + **How book placement gas works** link — no `max_adjust_steps` in visible UI. - **`npm test`** in `frontend-dapp`: **716/716** green. - Agent docs cross-linked: `skills/AGENTS_FRONTEND_LIMIT_ORDER_PLACEMENT_GAS.md`, `skills/AGENTS_E2E_LIMIT_ORDERS_TX.md`. **Note on #232:** current LocalTerra pair accepts `place_limit_order_batch` (retail path); legacy `place_limit_order` hook correctly fails. Limit placement via dApp succeeded for all four presets — #232 is a separate contract/legacy-hook issue, not a blocker for #204 preset wiring. ### Verification checklist (final) - [x] `/trade` → Limit → Advanced → **Low / Medium / High / Custom** (no raw step labels / no `max_adjust_steps` in UI) — @totdking + code review - [x] Helper text explains **gas cost vs reliability** - [x] **Medium** default; **Place another** resets to Medium (32) - [x] **Custom** reveals numeric input; clamp **1…256** - [x] Place limit on LocalTerra with **each preset** — CW20 hook `max_adjust_steps` matches mapped integer (**16 / 32 / 128 / custom**) - [x] Smoke on standalone **`/limits`** page - [x] `npm test` in `frontend-dapp` — suite green - [ ] Optional deep-book Low-fail / High-succeed scenario (not run; documented in issue as optional) /cc @PlasticDigits @totdking
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-30 09:21:59 +00:00
PlasticDigits commented 2026-05-31 14:03:08 +00:00 (Migrated from gitlab.com)

mentioned in issue #261

mentioned in issue #261
PlasticDigits commented 2026-06-07 12:14:14 +00:00 (Migrated from gitlab.com)

mentioned in issue #337

mentioned in issue #337
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#204
No description provided.