feat: emit fee_amount + UST1 token on deposit/withdraw wasm (DEX #614 ingest) #33

Closed
opened 2026-08-24 00:52:02 +00:00 by PlasticDigits · 11 comments
PlasticDigits commented 2026-08-24 00:52:02 +00:00 (Migrated from gitlab.com)

Summary

Emit an explicit treasury fee_amount (raw UST1) plus token identity on deposit and withdraw wasm events so the DEX indexer can census CMM window fees on /protocol.

DEX #614 / !444 already pins UST1_WINDOW_ADDRESS and fail-closes unless those attrs exist. Columbus-5 window 11566 (terra1zxwpzpzpleatqn39r00grau4yt29sld8pw78s7ktvjafnj5nsaxq0h3rh2) does not emit them today, so live mint/redeem stays dropped.

Related: DEX #586 (wrap-mapper already emits fee_amount), #506 (/ust1 UI), wrap-mapper ingest #613 (different contract — do not fold).


Current codebase

Path Behavior today
contracts/ust1-window/src/contract.rs deposit() Emits action=deposit, ust1_out (net after fee), fee_total_bps, fee_chain_tax_bps, fee_cmm_protocol_bps, vfdusd_to_treasury (full vFDUSD input). No fee_amount.
withdraw() Emits action=withdraw, vfdusd_out (net after fee), same fee_*_bps. No fee_amount. No token identity key.
Fee math INV-SWAP-001/002 — fee is on the UST1 leg (applyFeeUst1). Deposit: less UST1 minted. Withdraw: fee applied to gross UST1 before rate division.
effective_swap Quote-time fee_bps only. Not a post-hoc treasury amount.
DEX ingest parse_ust1_window_fees requires fee_amount + fee_asset / fee_denom / native_denom / denom / ust1_token on the reserved _contract_address segment. Never ust1_out × fee_total_bps / vfdusd_to_treasury × fee_cmm_protocol_bps.

Why bps attrs are not enough: deposit ust1_out is post-fee; reconstructing gross needs the oracle rate (not in wasm). Withdraw gross UST1 is the CW20 send.amount, not on the window event. Split fee_chain_tax_bps / fee_cmm_protocol_bps are attribution, not transfers. Indexer must not invent the fee.


Why this is needed

  1. Window 1% on UST1 notional is CMM protocol income — same class as wrap-mapper fee_amount. /protocol undercounts until wasm names the amount.
  2. Indexer fail-closed is correct. Do not relax DEX ingest to infer from bps.
  3. Integrators / explorers cannot audit CMM window fees from 11566 events alone.

Constraints / guardrails

  1. Keep existing attrs. Additive only. Do not rename action (deposit / withdraw), ust1_out, vfdusd_out, or fee_*_bps.
  2. Emit on both hooks, on the window contract wasm event (same _contract_address CosmWasm already adds):
    • fee_amount — positive raw integer of UST1 withheld (deposit: pre-fee UST1 − ust1_out; withdraw: gross UST1 − after-fee UST1). Zero-fee txs may omit or emit 0 (indexer already skips non-positive).
    • fee_asset — UST1 CW20 bech32 (config ust1_token). Prefer this name so DEX window_fee_token matches wrap-mapper. Optional alias ust1_token is also accepted.
  3. Fee denomination is UST1, not vFDUSD. Do not emit vFDUSD as fee_amount (DEX prices hub UST1; vFDUSD/FDUSD CEX is forbidden — PFee-7 / P550-11).
  4. Do not change fee math (fee_bps, chain-tax / CMM split, treasury forward, pause, oracle freshness, rolling limits, min_vfdusd_out).
  5. Do not emit a derived USD. Indexer stamps fee_usd at ingest from hub UST1.
  6. Out of scope: changing fee_bps; DEX parser; /mint faucet; wrap-mapper (#613).

  1. In deposit() after INV-SWAP-001: compute fee_amount = before_fee_ust1 - ust1_out (already implicit in applyFeeUst1). .add_attribute("fee_amount", fee_amount) + .add_attribute("fee_asset", cfg.ust1_token).
  2. In withdraw() after INV-SWAP-002: fee_amount = gross_ust1 - after_fee_ust1. Same two attrs.
  3. Multitest: assert both actions emit positive fee_amount + fee_asset matching config; zero-fee (fee_bps=0) does not invent a fake amount.
  4. After store+migrate, document new code id (11566 replacement) in docs/DEPLOYMENT.md and notify DEX ops so Coolify indexer pin stays the same address (migrate, do not instantiate a second window).

Acceptance criteria

  • Deposit wasm includes fee_amount (raw UST1 withheld) and fee_asset (UST1 CW20). Existing 11566 attrs still present.
  • Withdraw wasm includes the same two keys. min_vfdusd_out / vfdusd_out are not the fee.
  • Fee math unchanged (INV-SWAP-001/002 vectors still pass).
  • Multitest/integration locks the new attr names (no bps-only events).
  • Docs (DEPLOYMENT.md / event table) list fee_amount + fee_asset for both actions.
  • After columbus-5 migrate: one captured deposit and one withdraw increment DEX protocol_fee_events ust1_mint / ust1_redeem when indexer UST1_WINDOW_ADDRESS is pinned (closes remaining #614 live-tx criterion).

Test plan

Path Expect
Deposit fee_bps=100 fee_amount = 1% of pre-fee UST1; ust1_out still net
Withdraw fee_bps=100 fee_amount = 1% of gross UST1 sent; vfdusd_out still net
fee_bps=0 No positive fee_amount (omit or 0)
Pause / stale oracle reject No success event / no fee attrs on failed tx
Token identity fee_asset is UST1, never vFDUSD
## Summary Emit an explicit treasury **`fee_amount`** (raw UST1) plus token identity on **deposit** and **withdraw** wasm events so the DEX indexer can census CMM window fees on `/protocol`. DEX [#614](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/614) / [!444](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/411) already pins `UST1_WINDOW_ADDRESS` and fail-closes unless those attrs exist. Columbus-5 window **11566** (`terra1zxwpzpzpleatqn39r00grau4yt29sld8pw78s7ktvjafnj5nsaxq0h3rh2`) does **not** emit them today, so live mint/redeem stays dropped. Related: DEX [#586](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/586) (wrap-mapper already emits `fee_amount`), [#506](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/506) (`/ust1` UI), wrap-mapper ingest [#613](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/613) (different contract — do not fold). --- ## Current codebase | Path | Behavior today | |------|----------------| | `contracts/ust1-window/src/contract.rs` `deposit()` | Emits `action=deposit`, `ust1_out` (net after fee), `fee_total_bps`, `fee_chain_tax_bps`, `fee_cmm_protocol_bps`, `vfdusd_to_treasury` (full vFDUSD input). **No `fee_amount`.** | | `withdraw()` | Emits `action=withdraw`, `vfdusd_out` (net after fee), same `fee_*_bps`. **No `fee_amount`.** No token identity key. | | Fee math | INV-SWAP-001/002 — fee is on the **UST1 leg** (`applyFeeUst1`). Deposit: less UST1 minted. Withdraw: fee applied to gross UST1 before rate division. | | `effective_swap` | Quote-time `fee_bps` only. Not a post-hoc treasury amount. | | DEX ingest | `parse_ust1_window_fees` requires `fee_amount` + `fee_asset` / `fee_denom` / `native_denom` / `denom` / `ust1_token` on the reserved `_contract_address` segment. **Never** `ust1_out × fee_total_bps` / `vfdusd_to_treasury × fee_cmm_protocol_bps`. | **Why bps attrs are not enough:** deposit `ust1_out` is **post-fee**; reconstructing gross needs the oracle rate (not in wasm). Withdraw gross UST1 is the CW20 `send.amount`, not on the window event. Split `fee_chain_tax_bps` / `fee_cmm_protocol_bps` are attribution, not transfers. Indexer must not invent the fee. --- ## Why this is needed 1. Window 1% on UST1 notional is CMM protocol income — same class as wrap-mapper `fee_amount`. `/protocol` undercounts until wasm names the amount. 2. Indexer fail-closed is correct. Do not relax DEX ingest to infer from bps. 3. Integrators / explorers cannot audit CMM window fees from 11566 events alone. --- ## Constraints / guardrails 1. **Keep existing attrs.** Additive only. Do not rename `action` (`deposit` / `withdraw`), `ust1_out`, `vfdusd_out`, or `fee_*_bps`. 2. **Emit on both hooks**, on the window contract wasm event (same `_contract_address` CosmWasm already adds): - `fee_amount` — positive raw integer of **UST1 withheld** (deposit: pre-fee UST1 − `ust1_out`; withdraw: gross UST1 − after-fee UST1). Zero-fee txs may omit or emit `0` (indexer already skips non-positive). - `fee_asset` — UST1 CW20 bech32 (config `ust1_token`). Prefer this name so DEX `window_fee_token` matches wrap-mapper. Optional alias `ust1_token` is also accepted. 3. **Fee denomination is UST1**, not vFDUSD. Do not emit vFDUSD as `fee_amount` (DEX prices hub UST1; vFDUSD/FDUSD CEX is forbidden — **PFee-7** / **P550-11**). 4. **Do not change fee math** (`fee_bps`, chain-tax / CMM split, treasury forward, pause, oracle freshness, rolling limits, `min_vfdusd_out`). 5. **Do not emit a derived USD.** Indexer stamps `fee_usd` at ingest from hub UST1. 6. Out of scope: changing `fee_bps`; DEX parser; `/mint` faucet; wrap-mapper (#613). --- ## Recommended direction 1. In `deposit()` after INV-SWAP-001: compute `fee_amount = before_fee_ust1 - ust1_out` (already implicit in `applyFeeUst1`). `.add_attribute("fee_amount", fee_amount)` + `.add_attribute("fee_asset", cfg.ust1_token)`. 2. In `withdraw()` after INV-SWAP-002: `fee_amount = gross_ust1 - after_fee_ust1`. Same two attrs. 3. Multitest: assert both actions emit positive `fee_amount` + `fee_asset` matching config; zero-fee (`fee_bps=0`) does not invent a fake amount. 4. After store+migrate, document new code id (11566 replacement) in `docs/DEPLOYMENT.md` and notify DEX ops so Coolify indexer pin stays the **same address** (migrate, do not instantiate a second window). --- ## Acceptance criteria - [ ] Deposit wasm includes `fee_amount` (raw UST1 withheld) and `fee_asset` (UST1 CW20). Existing 11566 attrs still present. - [ ] Withdraw wasm includes the same two keys. `min_vfdusd_out` / `vfdusd_out` are not the fee. - [ ] Fee math unchanged (INV-SWAP-001/002 vectors still pass). - [ ] Multitest/integration locks the new attr names (no bps-only events). - [ ] Docs (`DEPLOYMENT.md` / event table) list `fee_amount` + `fee_asset` for both actions. - [ ] After columbus-5 migrate: one captured deposit and one withdraw increment DEX `protocol_fee_events` `ust1_mint` / `ust1_redeem` when indexer `UST1_WINDOW_ADDRESS` is pinned (closes remaining #614 live-tx criterion). ## Test plan | Path | Expect | |------|--------| | Deposit `fee_bps=100` | `fee_amount` = 1% of pre-fee UST1; `ust1_out` still net | | Withdraw `fee_bps=100` | `fee_amount` = 1% of gross UST1 sent; `vfdusd_out` still net | | `fee_bps=0` | No positive `fee_amount` (omit or `0`) | | Pause / stale oracle reject | No success event / no fee attrs on failed tx | | Token identity | `fee_asset` is UST1, never vFDUSD |
PlasticDigits commented 2026-08-24 00:52:12 +00:00 (Migrated from gitlab.com)

mentioned in issue cl8y-dex-terraclassic#614

mentioned in issue cl8y-dex-terraclassic#614
PlasticDigits commented 2026-08-24 02:44:25 +00:00 (Migrated from gitlab.com)

mentioned in commit 2ba41277e5

mentioned in commit 2ba41277e5c8d190d2f03b4f7ed6030b9ee9cfd6
PlasticDigits commented 2026-08-24 02:44:27 +00:00 (Migrated from gitlab.com)

mentioned in merge request !47

mentioned in merge request !47
PlasticDigits commented 2026-08-24 02:45:10 +00:00 (Migrated from gitlab.com)

mentioned in merge request !48

mentioned in merge request !48
PlasticDigits commented 2026-08-24 02:45:20 +00:00 (Migrated from gitlab.com)

Implementation is in !48 (feat/issue-33-window-fee-events).

Done in-repo:

  • Deposit/withdraw wasm emit fee_amount (raw UST1 withheld) + fee_asset (UST1 CW20). Existing attrs kept.
  • Fee math unchanged (INV-SWAP-001/002 vectors still pass). New INV-FEE-EVENT-001 + multitest/integration attr locks.
  • Docs event table in docs/DEPLOYMENT.md; skill skills/window-fee-amount-events.

Not done (ops / last AC):

  • Columbus-5 store + migrate of the same terra1zxwp… address (do not instantiate a second window).
  • Live deposit + withdraw incrementing DEX protocol_fee_events ust1_mint / ust1_redeem.
Implementation is in !48 (`feat/issue-33-window-fee-events`). Done in-repo: - Deposit/withdraw wasm emit `fee_amount` (raw UST1 withheld) + `fee_asset` (UST1 CW20). Existing attrs kept. - Fee math unchanged (INV-SWAP-001/002 vectors still pass). New INV-FEE-EVENT-001 + multitest/integration attr locks. - Docs event table in `docs/DEPLOYMENT.md`; skill `skills/window-fee-amount-events`. Not done (ops / last AC): - Columbus-5 store + migrate of the **same** `terra1zxwp…` address (do not instantiate a second window). - Live deposit + withdraw incrementing DEX `protocol_fee_events` `ust1_mint` / `ust1_redeem`.
PlasticDigits commented 2026-08-24 02:56:21 +00:00 (Migrated from gitlab.com)

!48 merge review (no automerge / not waiting on CI)

Merge conflicts: none. feat/issue-33-window-fee-events (2ba41277) is one commit ahead of main (de0e8f01); git merge-tree is clean. GitLab detailed_merge_status=mergeable.

Sanity check (local, not CI):

  • cargo test -p ust1-common --lib inv_ — 6 passed (INV-SWAP-001/002 + inv_fee_event_001_withheld_ust1_vectors)
  • cargo test -p ust1-window --lib inv_fee_event_001 — 3 passed (deposit 1% pre-fee UST1, withdraw 1% gross UST1, fee_bps=0 → 0, fee_asset is UST1)
  • cargo test -p ust1-integration-tests --lib inv_fee_event_001 — 1 passed

Acceptance criteria vs !48:

  • Deposit wasm includes fee_amount (raw UST1 withheld) + fee_asset (UST1 CW20). Existing 11566 attrs still asserted (action, ust1_out, fee_*_bps, vfdusd_to_treasury).
  • Withdraw wasm includes the same two keys. min_vfdusd_out / vfdusd_out are not the fee.
  • Fee math unchanged (INV-SWAP-001/002 vectors still pass; deposit/withdraw only decompose the same helpers to name withheld UST1).
  • Multitest/integration lock the new attr names (no bps-only events).
  • Docs event table in docs/DEPLOYMENT.md lists fee_amount + fee_asset for both actions.
  • Still open (ops): columbus-5 store + migrate of the same terra1zxwp… address; one captured deposit + withdraw incrementing DEX protocol_fee_events ust1_mint / ust1_redeem. This issue stays open as the post-merge tracker — no duplicate issue created.

Problems / gaps:

  1. GitLab pipelines 2783945240 and 2783946420 failed with ci_quota_exceeded (rust + secret_detection never started). Not a code defect; merge proceeds without waiting on CI.
  2. Unchecked MR test-plan items are the same remaining ops: live/staging execute confirmation + store/migrate + DEX ingest capture. Existing pause/stale-oracle tests still reject before a success event.

Merging !48 now. Do not close this issue until the last AC is done.

## !48 merge review (no automerge / not waiting on CI) **Merge conflicts:** none. `feat/issue-33-window-fee-events` (`2ba41277`) is one commit ahead of `main` (`de0e8f01`); `git merge-tree` is clean. GitLab `detailed_merge_status=mergeable`. **Sanity check (local, not CI):** - `cargo test -p ust1-common --lib inv_` — 6 passed (INV-SWAP-001/002 + `inv_fee_event_001_withheld_ust1_vectors`) - `cargo test -p ust1-window --lib inv_fee_event_001` — 3 passed (deposit 1% pre-fee UST1, withdraw 1% gross UST1, `fee_bps=0` → `0`, `fee_asset` is UST1) - `cargo test -p ust1-integration-tests --lib inv_fee_event_001` — 1 passed **Acceptance criteria vs !48:** - [x] Deposit wasm includes `fee_amount` (raw UST1 withheld) + `fee_asset` (UST1 CW20). Existing 11566 attrs still asserted (`action`, `ust1_out`, `fee_*_bps`, `vfdusd_to_treasury`). - [x] Withdraw wasm includes the same two keys. `min_vfdusd_out` / `vfdusd_out` are not the fee. - [x] Fee math unchanged (INV-SWAP-001/002 vectors still pass; deposit/withdraw only decompose the same helpers to name withheld UST1). - [x] Multitest/integration lock the new attr names (no bps-only events). - [x] Docs event table in `docs/DEPLOYMENT.md` lists `fee_amount` + `fee_asset` for both actions. - [ ] **Still open (ops):** columbus-5 store + migrate of the **same** `terra1zxwp…` address; one captured deposit + withdraw incrementing DEX `protocol_fee_events` `ust1_mint` / `ust1_redeem`. This issue stays open as the post-merge tracker — no duplicate issue created. **Problems / gaps:** 1. GitLab pipelines [2783945240](https://gitlab.com/PlasticDigits/ust1-window/-/pipelines/2783945240) and [2783946420](https://gitlab.com/PlasticDigits/ust1-window/-/pipelines/2783946420) failed with `ci_quota_exceeded` (`rust` + `secret_detection` never started). Not a code defect; merge proceeds without waiting on CI. 2. Unchecked MR test-plan items are the same remaining ops: live/staging execute confirmation + store/migrate + DEX ingest capture. Existing pause/stale-oracle tests still reject before a success event. Merging !48 now. Do not close this issue until the last AC is done.
PlasticDigits commented 2026-08-24 02:56:25 +00:00 (Migrated from gitlab.com)

mentioned in commit e48311ff3d

mentioned in commit e48311ff3d3260c00d65f0cd1991c9a04a051d39
PlasticDigits commented 2026-08-24 02:57:23 +00:00 (Migrated from gitlab.com)

!48 is merged to main (e48311f). Local main matches origin/main. Removed leftover feat/issue-33-window-fee-events worktree/branch and the empty GitLab issue branch 33-feat-emit-fee-amount-… (no unique commits, no open MR). No stashes. Issue #30 left untouched.

This issue remains the post-merge tracker for columbus-5 store+migrate of terra1zxwp… + live DEX protocol_fee_events capture. No duplicate issue created.

!48 is merged to `main` (`e48311f`). Local `main` matches `origin/main`. Removed leftover `feat/issue-33-window-fee-events` worktree/branch and the empty GitLab issue branch `33-feat-emit-fee-amount-…` (no unique commits, no open MR). No stashes. Issue #30 left untouched. This issue remains the post-merge tracker for columbus-5 store+migrate of `terra1zxwp…` + live DEX `protocol_fee_events` capture. No duplicate issue created.
PlasticDigits commented 2026-08-24 03:01:16 +00:00 (Migrated from gitlab.com)

mentioned in issue cl8y-dex-terraclassic#616

mentioned in issue cl8y-dex-terraclassic#616
PlasticDigits commented 2026-08-24 03:25:10 +00:00 (Migrated from gitlab.com)

Columbus-5 store + migrate done (same address)

Live window is now 11618 on the same terra1zxwp… — do not instantiate a second window. DEX UST1_WINDOW_ADDRESS pin stays the address.

Step Result
Store tx F4D79240E8009740C63F3342A2AA655CE7015579FC376B765AC3821EF823C60A — height 30085280, code=0, sender cl8y2_admin (terra1xsecn…) → code_id 11618
Migrate tx 009BD391E27AE8A6A7FCBA94443E2A257875A19603C51FAB1CC6C6B91E8E747D — height 30085285, code=0, gas 276360/380379
LCD contract_info code_id=11618, admin still terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l, label ust1-window
Config preserved fee_bps=100, per-tx 1000000000, 24h 10000000000, paused=false, treasury / oracle / tokens unchanged

Empty MigrateMsg {}. No new instantiate.

Still open (last AC): one captured deposit + one withdraw so Coolify protocol_fee_events ust1_mint / ust1_redeem increment (DEX #614 live-tx criterion; ops #616). Record 11618 in docs/DEPLOYMENT.md when that lands. Issue stays open.

## Columbus-5 store + migrate done (same address) Live window is now **11618** on the **same** `terra1zxwp…` — do not instantiate a second window. DEX `UST1_WINDOW_ADDRESS` pin stays the address. | Step | Result | |------|--------| | Store | tx [`F4D79240E8009740C63F3342A2AA655CE7015579FC376B765AC3821EF823C60A`](https://finder.terra.money/classic/tx/F4D79240E8009740C63F3342A2AA655CE7015579FC376B765AC3821EF823C60A) — height `30085280`, `code=0`, sender `cl8y2_admin` (`terra1xsecn…`) → **code_id 11618** | | Migrate | tx [`009BD391E27AE8A6A7FCBA94443E2A257875A19603C51FAB1CC6C6B91E8E747D`](https://finder.terra.money/classic/tx/009BD391E27AE8A6A7FCBA94443E2A257875A19603C51FAB1CC6C6B91E8E747D) — height `30085285`, `code=0`, gas 276360/380379 | | LCD `contract_info` | `code_id=11618`, admin still `terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l`, label `ust1-window` | | Config preserved | `fee_bps=100`, per-tx `1000000000`, 24h `10000000000`, `paused=false`, treasury / oracle / tokens unchanged | Empty `MigrateMsg` `{}`. No new instantiate. **Still open (last AC):** one captured deposit + one withdraw so Coolify `protocol_fee_events` `ust1_mint` / `ust1_redeem` increment (DEX [#614](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/614) live-tx criterion; ops [#616](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/616)). Record **11618** in `docs/DEPLOYMENT.md` when that lands. Issue stays open.
PlasticDigits commented 2026-08-24 04:57:45 +00:00 (Migrated from gitlab.com)

Not closing — last AC is still live DEX ingest

In-repo + columbus-5 store/migrate are done (LCD-confirmed just now):

Check Result
Window terra1zxwp…h3rh2 code 11618, admin terra1xsecn…, label ust1-window
Config fee_bps=100, paused=false, UST1/vFDUSD tokens unchanged
11618 pin 39D7DCCA…0CE509
!48 merged (e48311f) — fee_amount + fee_asset on deposit/withdraw

Last acceptance item is not done:

  • DEX Coolify indexer GET /api/v1/protocol/fees is ust1_window_configured: false (no UST1_WINDOW_ADDRESS on the indexer service; Vite pin is not enough).
  • No ust1_mint / ust1_redeem rows yet.
  • docs/DEPLOYMENT.md on main still says live 11566 and the checklist box for recording 11618 is unchecked.

After DEX sets UST1_WINDOW_ADDRESS=terra1zxwpzpzpleatqn39r00grau4yt29sld8pw78s7ktvjafnj5nsaxq0h3rh2 and one deposit + one withdraw increment protocol_fee_events, record 11618 in DEPLOYMENT.md and close this + remaining DEX #614 live-tx line.

**Not closing — last AC is still live DEX ingest** In-repo + columbus-5 store/migrate are done (LCD-confirmed just now): | Check | Result | |-------|--------| | Window `terra1zxwp…h3rh2` | code **11618**, admin `terra1xsecn…`, label `ust1-window` | | Config | `fee_bps=100`, `paused=false`, UST1/vFDUSD tokens unchanged | | 11618 pin | `39D7DCCA…0CE509` | | !48 | merged (`e48311f`) — `fee_amount` + `fee_asset` on deposit/withdraw | Last acceptance item is **not** done: - DEX Coolify indexer `GET /api/v1/protocol/fees` is `ust1_window_configured: false` (no `UST1_WINDOW_ADDRESS` on the indexer service; Vite pin is not enough). - No `ust1_mint` / `ust1_redeem` rows yet. - `docs/DEPLOYMENT.md` on `main` still says live **11566** and the checklist box for recording **11618** is unchecked. After DEX sets `UST1_WINDOW_ADDRESS=terra1zxwpzpzpleatqn39r00grau4yt29sld8pw78s7ktvjafnj5nsaxq0h3rh2` and one deposit + one withdraw increment `protocol_fee_events`, record **11618** in `DEPLOYMENT.md` and close this + remaining DEX [#614](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/614) live-tx line.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-25 12:50:58 +00:00
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/ust1-window#33
No description provided.