Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#521
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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 ondex.cl8y.comuntil 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). Newcreate_pairstays blocked until this sequence.Factory:
terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchseamake build-optimizedfrommain(workspace-optimizer wasm only)docs/templates/deploy-trace.md): git SHA,terrad version,wasm-checksums.txtDRY_RUN=1 ./scripts/upgrade-518-lp-symbol.sh(print store / migrate /UpdateConfig)adminis the intended governance / wasm-admin keyUPGRADE518_LP_CODE_ID=10184if on-chain mintable already allows[a-zA-Z0-9\-]{3,12}wasm migratefactory → 1.6.0 (addsUpdateConfigpair_code_id/lp_token_code_id)UpdateConfig { pair_code_id, lp_token_code_id }config— new code IDs match stored valuescreate_pairfor launch pairs (do not spend creation fee until sims pass):UST1-CUST-LPUST1-USTR-LPCL8Y-CLUN-LPCLUN-CUST-LPPaste store / migrate /
UpdateConfigtx hashes and newpair_code_id/lp_token_code_idon this issue.2. #519 — ship frontend + device QA (no contract migration)
mainsohttps://dex.cl8y.comhas the pairing sheet (npm ciapplies@goblinhunt/cosmes@0.0.71-ghunt.22+ patch-package)QA_TEMPLATEas its own row)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
marked as related to #518
marked as related to #519
marked as related to #508
marked as related to #516
columbus-5 #518 factory upgrade — executed 2026-08-15
main417257b.terrad3.5.0-rc.0. Factoryterra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea.terrad query wasm contractstill errors (proto: ContractInfo: wiretype end group for non-group) on this client; admin/code_id confirmed via LCD.Keys
wasm storepair + factorycl8ydeploy(terra1hu4zggf3f8yw6jw3rxrjxn2drwad675gq5k2lv)wasm migrate+UpdateConfigmultisig_2of3(terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7), threshold 2 (multisig1+multisig2)Did not run
./scripts/upgrade-518-lp-symbol.shlive — that script signs migrate/UpdateConfigasTERRAD_HOST_KEY(cl8ydeploy). Store and admin txs were split.Txs / code IDs
2C7476EAE828D00E991F04458733CA79EC5B74DAF8809595B77DDFFFDC2DBEFC2EDC7AB07270088C8157BDE08F3BF3FBCFFA831510186847BD202E00758078E56C7972A88AE8B75F280606023C1DF7A7A4E4C630F9C30DF2D828FC160DCCECACUpdateConfig69FC72EF27D27E4865AF79D183C74896E54DBC4878F7F6F149FB5EE4C7B1882Bpair_code_id=11572,lp_token_code_id=10184(height 29957769)LP reused on-chain mintable 10184 (no new LP store). On-chain
data_hashmatches local optimizer artifacts: pair44A3F8EF…1C26FA, factoryFE8E78EA…0B962E.Live factory
config(post-upgrade)Wasm admin still the same 2-of-3. Existing pairs were not migrated (instantiate-time LP only).
Still open on this issue
create_pair(do not broadcast / spend 100 LUNC) for UST1/cUSTC, UST1/USTR, CL8Y/cLUNC, and letter-only cLUNC/cUSTCmain+ phone pairing QA (no contract work)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):
terra1xuuuhpmyd5t29ry7mydg7ra2q2phrwhx7j28nx7x9sjw6zznkumsz0nmd2still code 11565,Configstill{ fee_bps: 200 }(no split fields). Admin/governance =cl8y2_admin(terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l). DEX 2-of-3 cannot migrate orSetFeesthis contract.Upstream contract code is already merged (ustr-cmm#9 closed). Human ops tracker: ustr-cmm#13.
Order (breaking ABI —
Configdropsfee_bps, no dual-read):fee_bps. Migrating the mapper before that Coolify ship fail-closes Wrap/Swap quotes.cl8y2_adminonly: store wrap-mapper wasm from ustr-cmmorigin/master(cw20.3.0) →wasm migratein place with{}→ immediatelyset_fees{ fee_wrap_bps: 200, fee_unwrap_bps: 51 }. Do not leave unwrap at 200 after migrate (migrate maps legacy 200 → 200/200).Config: expectfee_wrap_bps=200,fee_unwrap_bps=51. Tiny live wrap/unwrap probes both denoms.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.#516remaining 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.mentioned in issue #516
#518 create_pair LCD-sim (do not broadcast)
Post-upgrade dry-run on columbus-5 (
417257b, factory11573,pair_code_id=11572,lp_token_code_id=10184).--dry-run/ simulate only — no 100 LUNC creation fee spent.Digit tickers no longer revert (
UST1-CUST-LP/UST1-USTR-LP/CL8Y-CLUN-LP). Classic LP6036path is gone for newcreate_pair.#518 on-chain close criteria for this issue are met (store / migrate /
UpdateConfig/ sim). Still do not broadcastcreate_pairhere — #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.
Seed inventory approval (follows create_pair sims)
Approved Path A seed (not the script default of 1.0/side):
1000000000raw)1000000000raw)Price model (re-query at mint time — do not hardcode):
P_cUSTC = 1.0 × P_USTCP_USTR = 2.5 × P_USTCP_USTC= indexerGET /api/v1/oracle/price/ustc(price_usdaverage). Live USTC is not $1; $1 is the UST1 notional only.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).
100000000020426922684181707690736390562761720If 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
Deposits. Livetotal_supply(UST1)is only ~9.87 right now.uusd(stillfee_bps=200until #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.USTC Repeg). Confirm operator wallet balance beforeprovide_liquidity./oracle/price/ustcimmediately before mint/wrap.#508 Path A:
UST1_SEC_PAIR_LEG=custcthen 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.mentioned in issue #508
#519 device QA — pass
Coolify frontend rebuild on
https://dex.cl8y.comis live. Device QA reported completed successful:That was the last close item on this issue.
#518 factory upgrade was already on-chain (pair
11572, factory11573,lp_token_code_id=10184, create_pair sims ok). #508 Path A seed / #516 wrap fees remain follow-ons — not close criteria here.marked the checklist item make build-optimized from main (workspace-optimizer wasm only) as completed
marked the checklist item Record deploy-trace fields
docs/templates/deploy\-trace\.md: git SHA, terrad version, wasm-checksums.txt as completedmarked the checklist item DRY_RUN=1 ./scripts/upgrade-518-lp-symbol.sh (print store / migrate / UpdateConfig) as completed
marked the checklist item Confirm factory admin is the intended governance / wasm-admin key as completed
marked the checklist item Live: store factory + pair wasm (and LP only if not reusing 10184) 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
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 UpdateConfig { pair_code_id, lp_token_code_id } as completed
marked the checklist item Query factory config — new code IDs match stored values as completed
marked the checklist item LCD-simulate create_pair for launch pairs
do not spend creation fee until sims pass: as completedmarked 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 Phone Safari/Chrome: Connect → Lunc Dash → Open Lunc Dash or Copy pairing link → address in header as completed
marked the checklist item Phone: Galaxy Station same-device Open / Copy as completed
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 Desktop: Lunc Dash still QR-only; second-device scan still works as completed
marked the checklist item In-app browser
Keplr / Lunc Dash / Galaxy Stationstill connects without pairing (WC-M7) as completedmentioned in issue #554