ops: remaining steps after !334/!335 (#518 factory upgrade + #519 ship/QA) #521

Closed
opened 2026-08-15 09:57:13 +00:00 by PlasticDigits · 27 comments
PlasticDigits commented 2026-08-15 09:57:13 +00:00 (Migrated from gitlab.com)

Why this exists

!1052 and !1053 are merged to main (417257b). Code gates pass (make verify-issue-518, make verify-issue-519). columbus-5 is not unblocked until the factory upgrade runs. Mobile WalletConnect UX is not live on dex.cl8y.com until Coolify rebuilds the frontend.

Parent issues auto-closed: #518, #519.

Playbooks: skills/AGENTS_LP_SYMBOL_DIGITS.md (F3), skills/AGENTS_FRONTEND_WALLETCONNECT_MOBILE.md (WC-M1–WC-M7), docs/runbooks/wasm-admin-migration.md.


1. #518 — columbus-5 factory upgrade (required)

Classic LP CW20 still rejects digit tickers (UST1-CUST-LP, CL8Y-CLUN-LP). Existing pairs are not migrated (instantiate-time LP only). New create_pair stays blocked until this sequence.

Factory: terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea

  • make build-optimized from main (workspace-optimizer wasm only)
  • Record deploy-trace fields (docs/templates/deploy-trace.md): git SHA, terrad version, wasm-checksums.txt
  • DRY_RUN=1 ./scripts/upgrade-518-lp-symbol.sh (print store / migrate / UpdateConfig)
  • Confirm factory admin is the intended governance / wasm-admin key
  • Live: store factory + pair wasm (and LP only if not reusing 10184)
  • Prefer UPGRADE518_LP_CODE_ID=10184 if on-chain mintable already allows [a-zA-Z0-9\-]{3,12}
  • wasm migrate factory → 1.6.0 (adds UpdateConfig pair_code_id / lp_token_code_id)
  • UpdateConfig { pair_code_id, lp_token_code_id }
  • Query factory config — new code IDs match stored values
  • LCD-simulate create_pair for launch pairs (do not spend creation fee until sims pass):
Pair Expected LP symbol
UST1 / cUSTC UST1-CUST-LP
UST1 / USTR UST1-USTR-LP
CL8Y / cLUNC CL8Y-CLUN-LP
cLUNC / cUSTC (letter-only control) CLUN-CUST-LP
# columbus-5 (governance key)
UPGRADE518_LP_CODE_ID=10184 ./scripts/upgrade-518-lp-symbol.sh

Paste store / migrate / UpdateConfig tx hashes and new pair_code_id / lp_token_code_id on this issue.


2. #519 — ship frontend + device QA (no contract migration)

  • Coolify frontend rebuild from main so https://dex.cl8y.com has the pairing sheet (npm ci applies @goblinhunt/cosmes@0.0.71-ghunt.22 + patch-package)
  • Phone Safari/Chrome: Connect → Lunc Dash → Open Lunc Dash or Copy pairing link → address in header
  • Phone: Galaxy Station same-device Open / Copy
  • Phone: Keplr Mobile same-device Open / Copy (implemented; not in QA_TEMPLATE as its own row)
  • Desktop: Lunc Dash still QR-only; second-device scan still works
  • In-app browser (Keplr / Lunc Dash / Galaxy Station) still connects without pairing (WC-M7)

3. Follow-on (not this issue’s close criteria)

#508 Path A (./scripts/add-ust1-secondary-pair.sh) still needs this #518 upgrade live and operator inventory ≥ seed. Path B waiver remains until then. Do not create empty/dust UST1 pools.


Out of scope

  • Pair/LP migrate of already-deployed pools
  • Waiting on GitLab CI (quota was failing at merge; local verifies passed)
  • Soft-launch gemstone catalog changes (U6)
## Why this exists [!1052](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/334) and [!1053](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/335) are merged to `main` (`417257b`). Code gates pass (`make verify-issue-518`, `make verify-issue-519`). **columbus-5 is not unblocked** until the factory upgrade runs. Mobile WalletConnect UX is not live on `dex.cl8y.com` until Coolify rebuilds the frontend. Parent issues auto-closed: [#518](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/518), [#519](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/519). Playbooks: [`skills/AGENTS_LP_SYMBOL_DIGITS.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/skills/AGENTS_LP_SYMBOL_DIGITS.md) (**F3**), [`skills/AGENTS_FRONTEND_WALLETCONNECT_MOBILE.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/skills/AGENTS_FRONTEND_WALLETCONNECT_MOBILE.md) (**WC-M1–WC-M7**), [`docs/runbooks/wasm-admin-migration.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/docs/runbooks/wasm-admin-migration.md). --- ## 1. #518 — columbus-5 factory upgrade (required) Classic LP CW20 still rejects digit tickers (`UST1-CUST-LP`, `CL8Y-CLUN-LP`). Existing pairs are **not** migrated (instantiate-time LP only). New `create_pair` stays blocked until this sequence. Factory: `terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea` - [x] `make build-optimized` from `main` (workspace-optimizer wasm only) - [x] Record deploy-trace fields ([`docs/templates/deploy-trace.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/docs/templates/deploy-trace.md)): git SHA, `terrad version`, `wasm-checksums.txt` - [x] `DRY_RUN=1 ./scripts/upgrade-518-lp-symbol.sh` (print store / migrate / `UpdateConfig`) - [x] Confirm factory `admin` is the intended governance / wasm-admin key - [x] Live: store factory + pair wasm (and LP only if not reusing 10184) - [x] Prefer `UPGRADE518_LP_CODE_ID=10184` if on-chain mintable already allows `[a-zA-Z0-9\-]{3,12}` - [x] `wasm migrate` factory → **1.6.0** (adds `UpdateConfig` `pair_code_id` / `lp_token_code_id`) - [x] `UpdateConfig { pair_code_id, lp_token_code_id }` - [x] Query factory `config` — new code IDs match stored values - [x] LCD-simulate `create_pair` for launch pairs (do not spend creation fee until sims pass): | Pair | Expected LP symbol | |------|--------------------| | UST1 / cUSTC | `UST1-CUST-LP` | | UST1 / USTR | `UST1-USTR-LP` | | CL8Y / cLUNC | `CL8Y-CLUN-LP` | | cLUNC / cUSTC (letter-only control) | `CLUN-CUST-LP` | ```bash # columbus-5 (governance key) UPGRADE518_LP_CODE_ID=10184 ./scripts/upgrade-518-lp-symbol.sh ``` Paste store / migrate / `UpdateConfig` tx hashes and new `pair_code_id` / `lp_token_code_id` on this issue. --- ## 2. #519 — ship frontend + device QA (no contract migration) - [x] Coolify frontend rebuild from `main` so `https://dex.cl8y.com` has the pairing sheet (`npm ci` applies `@goblinhunt/cosmes@0.0.71-ghunt.22` + patch-package) - [x] Phone Safari/Chrome: Connect → Lunc Dash → **Open Lunc Dash** or **Copy pairing link** → address in header - [x] Phone: Galaxy Station same-device Open / Copy - [x] Phone: Keplr Mobile same-device Open / Copy (implemented; not in `QA_TEMPLATE` as its own row) - [x] Desktop: Lunc Dash still QR-only; second-device scan still works - [x] In-app browser (Keplr / Lunc Dash / Galaxy Station) still connects without pairing (**WC-M7**) --- ## 3. Follow-on (not this issue’s close criteria) [#508](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/508) Path A (`./scripts/add-ust1-secondary-pair.sh`) still needs **this #518 upgrade live** and operator inventory ≥ seed. Path B waiver remains until then. Do not create empty/dust UST1 pools. --- ## Out of scope - Pair/LP migrate of already-deployed pools - Waiting on GitLab CI (quota was failing at merge; local verifies passed) - Soft-launch gemstone catalog changes (**U6**)
PlasticDigits commented 2026-08-15 09:57:13 +00:00 (Migrated from gitlab.com)

marked as related to #518

marked as related to #518
PlasticDigits commented 2026-08-15 09:57:14 +00:00 (Migrated from gitlab.com)

marked as related to #519

marked as related to #519
PlasticDigits commented 2026-08-15 09:57:15 +00:00 (Migrated from gitlab.com)

marked as related to #508

marked as related to #508
PlasticDigits commented 2026-08-15 10:03:46 +00:00 (Migrated from gitlab.com)

marked as related to #516

marked as related to #516
PlasticDigits commented 2026-08-15 10:19:46 +00:00 (Migrated from gitlab.com)

columbus-5 #518 factory upgrade — executed 2026-08-15

main 417257b. terrad 3.5.0-rc.0. Factory terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea.

terrad query wasm contract still errors (proto: ContractInfo: wiretype end group for non-group) on this client; admin/code_id confirmed via LCD.

Keys

Step Signer
wasm store pair + factory cl8ydeploy (terra1hu4zggf3f8yw6jw3rxrjxn2drwad675gq5k2lv)
wasm migrate + UpdateConfig multisig_2of3 (terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7), threshold 2 (multisig1 + multisig2)

Did not run ./scripts/upgrade-518-lp-symbol.sh live — that script signs migrate/UpdateConfig as TERRAD_HOST_KEY (cl8ydeploy). Store and admin txs were split.

Txs / code IDs

Step Tx Result
store pair 2C7476EAE828D00E991F04458733CA79EC5B74DAF8809595B77DDFFFDC2DBEFC code 11572 (height 29957739)
store factory 2EDC7AB07270088C8157BDE08F3BF3FBCFFA831510186847BD202E00758078E5 code 11573 (height 29957742)
migrate factory 6C7972A88AE8B75F280606023C1DF7A7A4E4C630F9C30DF2D828FC160DCCECAC factory 11505 → 11573 (height 29957761)
UpdateConfig 69FC72EF27D27E4865AF79D183C74896E54DBC4878F7F6F149FB5EE4C7B1882B pair_code_id=11572, lp_token_code_id=10184 (height 29957769)

LP reused on-chain mintable 10184 (no new LP store). On-chain data_hash matches local optimizer artifacts: pair 44A3F8EF…1C26FA, factory FE8E78EA…0B962E.

Live factory config (post-upgrade)

{
  "governance": "terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7",
  "treasury": "terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7",
  "default_fee_bps": 180,
  "default_limit_batch_max_rungs": 20,
  "pair_code_id": 11572,
  "lp_token_code_id": 10184,
  "pair_creation_fee_uluna": "100000000"
}

Wasm admin still the same 2-of-3. Existing pairs were not migrated (instantiate-time LP only).

Still open on this issue

  • LCD-simulate create_pair (do not broadcast / spend 100 LUNC) for UST1/cUSTC, UST1/USTR, CL8Y/cLUNC, and letter-only cLUNC/cUSTC
  • #519 Coolify frontend rebuild from main + phone pairing QA (no contract work)
  • #508 Path A only after sims pass and operator inventory ≥ seed — do not create empty/dust UST1 pools. Path B waiver remains until then

What is still needed for #516 (not done tonight)

#516 is DEX consumer work for wrap-mapper fee_wrap_bps / fee_unwrap_bps. It is not unblocked by this factory upgrade. Different contract, different key.

Live wrap-mapper (re-queried 2026-08-15): terra1xuuuhpmyd5t29ry7mydg7ra2q2phrwhx7j28nx7x9sjw6zznkumsz0nmd2 still code 11565, Config still { fee_bps: 200 } (no split fields). Admin/governance = cl8y2_admin (terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l). DEX 2-of-3 cannot migrate or SetFees this contract.

Upstream contract code is already merged (ustr-cmm#9 closed). Human ops tracker: ustr-cmm#13.

Order (breaking ABI — Config drops fee_bps, no dual-read):

  1. Implement and merge DEX #516 first (or have the Coolify artifact ready). UI / health / docs still read a single fee_bps. Migrating the mapper before that Coolify ship fail-closes Wrap/Swap quotes.
  2. Same window, signed by cl8y2_admin only: store wrap-mapper wasm from ustr-cmm origin/master (cw2 0.3.0) → wasm migrate in place with {} → immediately set_fees { fee_wrap_bps: 200, fee_unwrap_bps: 51 }. Do not leave unwrap at 200 after migrate (migrate maps legacy 200 → 200/200).
  3. Query mapper Config: expect fee_wrap_bps=200, fee_unwrap_bps=51. Tiny live wrap/unwrap probes both denoms.
  4. Coolify frontend redeploy (assets newer than the mapper migrate) + Wrap/Swap smoke vs LCD.
  5. Update REGISTRY.md, check-ust1-wrap-ops-health.sh, #512 skill (drop gross-up as the 2% fix), QA template (unwrap 10 000 → ~9 800, not 9 653).

Do not change ust1-window fee_bps. Do not hardcode 200/51 in the UI. Do not use InstantWithdraw gross-up. Do not use the DEX factory multisig for mapper txs.

#516 remaining in this repo: types + queryWrapMapperConfig, wrap vs unwrap fee threading (Wrap, Swap native in/out, pool provide), notes/W8–W11, unit tests / make verify-issue-516 (or successor), ops/docs. Production verify only after step 2 is on-chain.

## columbus-5 #518 factory upgrade — executed 2026-08-15 `main` `417257b`. `terrad` `3.5.0-rc.0`. Factory `terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea`. `terrad query wasm contract` still errors (`proto: ContractInfo: wiretype end group for non-group`) on this client; admin/code_id confirmed via LCD. ### Keys | Step | Signer | |------|--------| | `wasm store` pair + factory | `cl8ydeploy` (`terra1hu4zggf3f8yw6jw3rxrjxn2drwad675gq5k2lv`) | | `wasm migrate` + `UpdateConfig` | `multisig_2of3` (`terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7`), threshold 2 (`multisig1` + `multisig2`) | Did **not** run `./scripts/upgrade-518-lp-symbol.sh` live — that script signs migrate/`UpdateConfig` as `TERRAD_HOST_KEY` (`cl8ydeploy`). Store and admin txs were split. ### Txs / code IDs | Step | Tx | Result | |------|----|--------| | store pair | `2C7476EAE828D00E991F04458733CA79EC5B74DAF8809595B77DDFFFDC2DBEFC` | code **11572** (height 29957739) | | store factory | `2EDC7AB07270088C8157BDE08F3BF3FBCFFA831510186847BD202E00758078E5` | code **11573** (height 29957742) | | migrate factory | `6C7972A88AE8B75F280606023C1DF7A7A4E4C630F9C30DF2D828FC160DCCECAC` | factory **11505 → 11573** (height 29957761) | | `UpdateConfig` | `69FC72EF27D27E4865AF79D183C74896E54DBC4878F7F6F149FB5EE4C7B1882B` | `pair_code_id=11572`, `lp_token_code_id=10184` (height 29957769) | LP reused on-chain mintable **10184** (no new LP store). On-chain `data_hash` matches local optimizer artifacts: pair `44A3F8EF…1C26FA`, factory `FE8E78EA…0B962E`. ### Live factory `config` (post-upgrade) ```json { "governance": "terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7", "treasury": "terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7", "default_fee_bps": 180, "default_limit_batch_max_rungs": 20, "pair_code_id": 11572, "lp_token_code_id": 10184, "pair_creation_fee_uluna": "100000000" } ``` Wasm admin still the same 2-of-3. Existing pairs were not migrated (instantiate-time LP only). ### Still open on this issue - [ ] LCD-simulate `create_pair` (do **not** broadcast / spend 100 LUNC) for UST1/cUSTC, UST1/USTR, CL8Y/cLUNC, and letter-only cLUNC/cUSTC - [ ] #519 Coolify frontend rebuild from `main` + phone pairing QA (no contract work) - [ ] #508 Path A only after sims pass **and** operator inventory ≥ seed — do not create empty/dust UST1 pools. Path B waiver remains until then --- ## What is still needed for #516 (not done tonight) #516 is **DEX consumer work** for wrap-mapper `fee_wrap_bps` / `fee_unwrap_bps`. It is **not** unblocked by this factory upgrade. Different contract, different key. Live wrap-mapper (re-queried 2026-08-15): `terra1xuuuhpmyd5t29ry7mydg7ra2q2phrwhx7j28nx7x9sjw6zznkumsz0nmd2` still code **11565**, `Config` still `{ fee_bps: 200 }` (no split fields). Admin/governance = `cl8y2_admin` (`terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l`). DEX 2-of-3 **cannot** migrate or `SetFees` this contract. Upstream contract code is already merged ([ustr-cmm#9](https://gitlab.com/PlasticDigits2/ustr-cmm/-/work_items/9) closed). Human ops tracker: [ustr-cmm#13](https://gitlab.com/PlasticDigits2/ustr-cmm/-/work_items/13). **Order (breaking ABI — `Config` drops `fee_bps`, no dual-read):** 1. **Implement and merge DEX #516 first** (or have the Coolify artifact ready). UI / health / docs still read a single `fee_bps`. Migrating the mapper before that Coolify ship fail-closes Wrap/Swap quotes. 2. **Same window, signed by `cl8y2_admin` only:** store wrap-mapper wasm from ustr-cmm `origin/master` (cw2 `0.3.0`) → `wasm migrate` in place with `{}` → immediately `set_fees` `{ fee_wrap_bps: 200, fee_unwrap_bps: 51 }`. Do not leave unwrap at 200 after migrate (migrate maps legacy 200 → 200/200). 3. Query mapper `Config`: expect `fee_wrap_bps=200`, `fee_unwrap_bps=51`. Tiny live wrap/unwrap probes both denoms. 4. Coolify frontend redeploy (assets newer than the mapper migrate) + Wrap/Swap smoke vs LCD. 5. Update `REGISTRY.md`, `check-ust1-wrap-ops-health.sh`, #512 skill (drop gross-up as the 2% fix), QA template (unwrap 10 000 → ~9 800, not 9 653). Do **not** change ust1-window `fee_bps`. Do not hardcode 200/51 in the UI. Do not use InstantWithdraw gross-up. Do not use the DEX factory multisig for mapper txs. `#516` remaining in this repo: types + `queryWrapMapperConfig`, wrap vs unwrap fee threading (Wrap, Swap native in/out, pool provide), notes/W8–W11, unit tests / `make verify-issue-516` (or successor), ops/docs. Production verify only after step 2 is on-chain.
PlasticDigits commented 2026-08-15 10:19:51 +00:00 (Migrated from gitlab.com)

mentioned in issue #516

mentioned in issue #516
PlasticDigits commented 2026-08-15 10:23:21 +00:00 (Migrated from gitlab.com)

#518 create_pair LCD-sim (do not broadcast)

Post-upgrade dry-run on columbus-5 (417257b, factory 11573, pair_code_id=11572, lp_token_code_id=10184). --dry-run / simulate only — no 100 LUNC creation fee spent.

Pair On-chain today Simulate Gas used What instantiated
UST1 / cUSTC pair not found ok 957463 pair 11572 + LP 10184
UST1 / USTR pair not found ok 957029 pair 11572 + LP 10184
CL8Y / cLUNC pair not found ok 957812 pair 11572 + LP 10184
cLUNC / cUSTC (letter-only control) pair not found ok 957681 pair 11572 + LP 10184

Digit tickers no longer revert (UST1-CUST-LP / UST1-USTR-LP / CL8Y-CLUN-LP). Classic LP 6036 path is gone for new create_pair.

#518 on-chain close criteria for this issue are met (store / migrate / UpdateConfig / sim). Still do not broadcast create_pair here — #508 Path A only when operator inventory ≥ seed; empty/dust pools remain forbidden. Path B waiver stays until then.

Remaining on #521: #519 Coolify rebuild + phone pairing QA.

## #518 create_pair LCD-sim (do not broadcast) Post-upgrade dry-run on columbus-5 (`417257b`, factory `11573`, `pair_code_id=11572`, `lp_token_code_id=10184`). `--dry-run` / simulate only — **no** 100 LUNC creation fee spent. | Pair | On-chain today | Simulate | Gas used | What instantiated | |------|----------------|----------|----------|-------------------| | UST1 / cUSTC | pair not found | ok | 957463 | pair **11572** + LP **10184** | | UST1 / USTR | pair not found | ok | 957029 | pair **11572** + LP **10184** | | CL8Y / cLUNC | pair not found | ok | 957812 | pair **11572** + LP **10184** | | cLUNC / cUSTC (letter-only control) | pair not found | ok | 957681 | pair **11572** + LP **10184** | Digit tickers no longer revert (`UST1-CUST-LP` / `UST1-USTR-LP` / `CL8Y-CLUN-LP`). Classic LP `6036` path is gone for **new** `create_pair`. #518 on-chain close criteria for this issue are met (store / migrate / `UpdateConfig` / sim). Still do **not** broadcast `create_pair` here — #508 Path A only when operator inventory ≥ seed; empty/dust pools remain forbidden. Path B waiver stays until then. Remaining on #521: #519 Coolify rebuild + phone pairing QA.
PlasticDigits commented 2026-08-15 10:26:37 +00:00 (Migrated from gitlab.com)

Seed inventory approval (follows create_pair sims)

Approved Path A seed (not the script default of 1.0/side):

Pair UST1 (6 dp) Quote mint
UST1 / cUSTC 1,000 (1000000000 raw) cUSTC sized to match $1,000 notional
UST1 / USTR 1,000 (1000000000 raw) USTR sized to match $1,000 notional

Price model (re-query at mint time — do not hardcode):

  • UST1 side treated as $1.00 (window peg).
  • P_cUSTC = 1.0 × P_USTC
  • P_USTR = 2.5 × P_USTC
  • P_USTC = indexer GET /api/v1/oracle/price/ustc (price_usd average). Live USTC is not $1; $1 is the UST1 notional only.
qty_cUSTC = 1000 / (1.0 × P_USTC)
qty_USTR  = 1000 / (2.5 × P_USTC)

Decimals: UST1 6, cUSTC 6, USTR 18.

Example at current oracle (2026-08-15 ~10:25 UTC)

Indexer USTC/USD $0.00489550 (KuCoin 0.004880 / MEXC 0.004911).

Token Implied USD Human amount Raw
UST1 (each pair) $1.00 1,000 1000000000
cUSTC $0.00489550 204,269.226841 204269226841
USTR $0.01223875 81,707.690736390562761720 81707690736390562761720

If USTC were $1 (target-peg identity only, not for a balanced live pool): 1,000 cUSTC + 400 USTR. That would be ~200× off spot vs $1 UST1 and would be arb’d. Use the oracle-sized amounts above.

Inventory notes

  • Need 2,000 UST1 total (1,000 per pair). Window cap is 1,000 UST1/tx and 10,000 / 24h — two Deposits. Live total_supply(UST1) is only ~9.87 right now.
  • cUSTC comes from wrap-mapper wrap of native uusd (still fee_bps=200 until #516). To net 204,269 cUSTC at 200 bps, wrap ≈ 208,438 USTC (net = wrap × 0.98). Live cUSTC supply is only ~327 — wrap first.
  • USTR is 18 dp (USTC Repeg). Confirm operator wallet balance before provide_liquidity.
  • Do not create empty/dust pools. Re-run the qty formula with a fresh /oracle/price/ustc immediately before mint/wrap.

#508 Path A: UST1_SEC_PAIR_LEG=custc then a second UST1/USTR create (USTR is not the script default; default is vFDUSD). Override seed raw amounts to the table above. Record txs on #508.

## Seed inventory approval (follows create_pair sims) Approved Path A seed (not the script default of 1.0/side): | Pair | UST1 (6 dp) | Quote mint | |------|-------------|------------| | UST1 / cUSTC | **1,000** (`1000000000` raw) | cUSTC sized to match $1,000 notional | | UST1 / USTR | **1,000** (`1000000000` raw) | USTR sized to match $1,000 notional | **Price model (re-query at mint time — do not hardcode):** - UST1 side treated as **$1.00** (window peg). - `P_cUSTC = 1.0 × P_USTC` - `P_USTR = 2.5 × P_USTC` - `P_USTC` = indexer `GET /api/v1/oracle/price/ustc` (`price_usd` average). Live USTC is **not** $1; $1 is the UST1 notional only. ```text qty_cUSTC = 1000 / (1.0 × P_USTC) qty_USTR = 1000 / (2.5 × P_USTC) ``` Decimals: UST1 **6**, cUSTC **6**, USTR **18**. ### Example at current oracle (2026-08-15 ~10:25 UTC) Indexer USTC/USD **$0.00489550** (KuCoin 0.004880 / MEXC 0.004911). | Token | Implied USD | Human amount | Raw | |-------|-------------|--------------|-----| | UST1 (each pair) | $1.00 | 1,000 | `1000000000` | | cUSTC | $0.00489550 | **204,269.226841** | `204269226841` | | USTR | $0.01223875 | **81,707.690736390562761720** | `81707690736390562761720` | If USTC were $1 (target-peg identity only, **not** for a balanced live pool): 1,000 cUSTC + 400 USTR. That would be ~200× off spot vs $1 UST1 and would be arb’d. Use the oracle-sized amounts above. ### Inventory notes - Need **2,000 UST1** total (1,000 per pair). Window cap is **1,000 UST1/tx** and **10,000 / 24h** — two `Deposit`s. Live `total_supply(UST1)` is only ~9.87 right now. - cUSTC comes from wrap-mapper wrap of native `uusd` (still `fee_bps=200` until #516). To **net** 204,269 cUSTC at 200 bps, wrap ≈ **208,438** USTC (`net = wrap × 0.98`). Live cUSTC supply is only ~327 — wrap first. - USTR is 18 dp (`USTC Repeg`). Confirm operator wallet balance before `provide_liquidity`. - Do not create empty/dust pools. Re-run the qty formula with a fresh `/oracle/price/ustc` immediately before mint/wrap. #508 Path A: `UST1_SEC_PAIR_LEG=custc` then a second UST1/USTR create (USTR is not the script default; default is vFDUSD). Override seed raw amounts to the table above. Record txs on #508.
PlasticDigits commented 2026-08-15 10:26:39 +00:00 (Migrated from gitlab.com)

mentioned in issue #508

mentioned in issue #508
PlasticDigits commented 2026-08-15 10:29:10 +00:00 (Migrated from gitlab.com)

#519 device QA — pass

Coolify frontend rebuild on https://dex.cl8y.com is live. Device QA reported completed successful:

  • Phone Safari/Chrome: Lunc Dash Open / Copy pairing link → address in header
  • Phone: Galaxy Station same-device Open / Copy
  • Phone: Keplr Mobile same-device Open / Copy
  • Desktop: Lunc Dash still QR-only; second-device scan still works
  • In-app browser (Keplr / Lunc Dash / Galaxy Station) connects without pairing (WC-M7)

That was the last close item on this issue.

#518 factory upgrade was already on-chain (pair 11572, factory 11573, lp_token_code_id=10184, create_pair sims ok). #508 Path A seed / #516 wrap fees remain follow-ons — not close criteria here.

## #519 device QA — pass Coolify frontend rebuild on `https://dex.cl8y.com` is live. Device QA reported **completed successful**: - Phone Safari/Chrome: Lunc Dash **Open** / **Copy pairing link** → address in header - Phone: Galaxy Station same-device Open / Copy - Phone: Keplr Mobile same-device Open / Copy - Desktop: Lunc Dash still QR-only; second-device scan still works - In-app browser (Keplr / Lunc Dash / Galaxy Station) connects without pairing (**WC-M7**) That was the last close item on this issue. #518 factory upgrade was already on-chain (pair `11572`, factory `11573`, `lp_token_code_id=10184`, create_pair sims ok). #508 Path A seed / #516 wrap fees remain follow-ons — not close criteria here.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-15 10:29:11 +00:00
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item make build-optimized from main (workspace-optimizer wasm only) as completed

marked the checklist item **make build\-optimized from main \(workspace\-optimizer wasm only\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Record deploy-trace fields docs/templates/deploy\-trace\.md: git SHA, terrad version, wasm-checksums.txt as completed

marked the checklist item **Record deploy\-trace fields \(docs/templates/deploy\-trace\.md\): git SHA, terrad version, wasm\-checksums\.txt** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item DRY_RUN=1 ./scripts/upgrade-518-lp-symbol.sh (print store / migrate / UpdateConfig) as completed

marked the checklist item **DRY\_RUN\=1 \./scripts/upgrade\-518\-lp\-symbol\.sh \(print store / migrate / UpdateConfig\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Confirm factory admin is the intended governance / wasm-admin key as completed

marked the checklist item **Confirm factory admin is the intended governance / wasm\-admin key** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Live: store factory + pair wasm (and LP only if not reusing 10184) as completed

marked the checklist item **Live: store factory \+ pair wasm \(and LP only if not reusing 10184\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Prefer UPGRADE518_LP_CODE_ID=10184 if on-chain mintable already allows [a-zA-Z0-9\-]{3,12} as completed

marked the checklist item **Prefer UPGRADE518\_LP\_CODE\_ID\=10184 if on\-chain mintable already allows \[a\-zA\-Z0\-9\\\-\]{3,12}** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item wasm migrate factory → 1.6.0 (adds UpdateConfig pair_code_id / lp_token_code_id) as completed

marked the checklist item **wasm migrate factory → 1\.6\.0 \(adds UpdateConfig pair\_code\_id / lp\_token\_code\_id\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item UpdateConfig { pair_code_id, lp_token_code_id } as completed

marked the checklist item **UpdateConfig { pair\_code\_id, lp\_token\_code\_id }** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Query factory config — new code IDs match stored values as completed

marked the checklist item **Query factory config — new code IDs match stored values** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item LCD-simulate create_pair for launch pairs do not spend creation fee until sims pass: as completed

marked the checklist item **LCD\-simulate create\_pair for launch pairs \(do not spend creation fee until sims pass\):** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Coolify frontend rebuild from main so https://dex.cl8y.com has the pairing sheet (npm ci applies @goblinhunt/cosmes@0.0.71-ghunt.22 + patch-package) as completed

marked the checklist item **Coolify frontend rebuild from main so https://dex\.cl8y\.com has the pairing sheet \(npm ci applies @goblinhunt/cosmes@0\.0\.71\-ghunt\.22 \+ patch\-package\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Phone Safari/Chrome: Connect → Lunc Dash → Open Lunc Dash or Copy pairing link → address in header as completed

marked the checklist item **Phone Safari/Chrome: Connect → Lunc Dash → Open Lunc Dash or Copy pairing link → address in header** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Phone: Galaxy Station same-device Open / Copy as completed

marked the checklist item **Phone: Galaxy Station same\-device Open / Copy** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Phone: Keplr Mobile same-device Open / Copy (implemented; not in QA_TEMPLATE as its own row) as completed

marked the checklist item **Phone: Keplr Mobile same\-device Open / Copy \(implemented; not in QA\_TEMPLATE as its own row\)** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item Desktop: Lunc Dash still QR-only; second-device scan still works as completed

marked the checklist item **Desktop: Lunc Dash still QR\-only; second\-device scan still works** as completed
PlasticDigits commented 2026-08-15 10:29:16 +00:00 (Migrated from gitlab.com)

marked the checklist item In-app browser Keplr / Lunc Dash / Galaxy Station still connects without pairing (WC-M7) as completed

marked the checklist item **In\-app browser \(Keplr / Lunc Dash / Galaxy Station\) still connects without pairing \(WC\-M7\)** as completed
PlasticDigits commented 2026-08-18 00:20:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #554

mentioned in issue #554
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#521
No description provided.