fix(community-tax): launcher Enable Feature path and unique SKUs (#606) #1125

Merged
PlasticDigits merged 3 commits from issue/606-launcher-enable-feature-sku-dedupe into main 2026-08-23 13:05:10 +00:00
PlasticDigits commented 2026-08-23 12:41:29 +00:00 (Migrated from gitlab.com)

Closes #606.

Summary

  • Official Manage Token Enable Feature stays manager UST1 Send to the env launcher. The token now treats cw20.sender == origin.launcher as authorized for EnableFeature only; UpdateSettings stays manager-only.
  • Launcher checks token GetConfig.manager and GetLauncherOrigin before forwarding. Non-manager unlocks revert; victim UST1 is not taken.
  • Create rejects duplicate SKU names before multiplying the 50 UST1 invoice. Two distinct SKUs still charge 100 UST1.
  • QA smoke (and verify-issue-601) now Sends the SKU unlock to the launcher — the same hook as the dApp.
  • PoCs poc_launcher_enable_feature_always_unauthorized and poc_launcher_duplicate_sku_double_charge are inverted.
  • Invariants T606-1–T606-8 in skills/AGENTS_COMMUNITY_TAX_ENABLE_FEATURE.md. C593-4 / T592-4 updated to match.

Live wasm

This is a token + launcher migrate, not a dApp-only payee change. Columbus-5 11611 / 11614 stay broken for retail Enable Feature until CMM / DEX 2-of-3 migrate. LocalTerra needs a redeploy of these crates for smoke.

Acceptance (issue #606)

  • Official Manage Token Enable Feature unlocks the SKU and CMM receives 50 UST1 (crate + inverted PoC).
  • Non-manager cannot unlock via launcher or token.
  • Duplicate SKUs on create are rejected; Features still idempotent.
  • QA smoke uses the dApp Enable Feature path (launcher hook). verify-issue-601 requires sku_unlock_via_launcher.
  • poc_launcher_enable_feature_always_unauthorized inverted.
  • poc_launcher_duplicate_sku_double_charge inverted.
  • C593-4 / T592-4 docs match the launcher path.

Not run here: LocalTerra smoke / make verify-issue-601 on a freshly deployed stack (chain was down). Manual Simulated Wallet Enable Feature on LocalTerra after redeploy.

Test plan

  • make verify-issue-606 (crates + inverted PoCs + invoice Vitest + docs; first pass + retest)
  • make verify-issue-593
  • make verify-issue-601 after make setup-cloud-localterra / redeploy (smoke now hits the launcher)
  • Manual: free create → Manage → Enable Feature transfer_tax → feature on, +50 UST1 at CMM
  • Manual: paid create with one SKU → Enable Feature a second SKU
  • Enable Feature MintControl still rejected; already-on SKU reverts; wrong amount / token / non-manager revert
  • Settings batch still targets the token
  • Create [transfer_tax, transfer_tax] rejects; two distinct SKUs charge 100 UST1
Closes #606. ## Summary - Official Manage Token **Enable Feature** stays manager UST1 `Send` to the **env launcher**. The token now treats `cw20.sender == origin.launcher` as authorized for `EnableFeature` only; `UpdateSettings` stays manager-only. - Launcher checks token `GetConfig.manager` and `GetLauncherOrigin` before forwarding. Non-manager unlocks revert; victim UST1 is not taken. - Create **rejects** duplicate SKU names before multiplying the 50 UST1 invoice. Two distinct SKUs still charge 100 UST1. - QA smoke (and `verify-issue-601`) now Sends the SKU unlock to the launcher — the same hook as the dApp. - PoCs `poc_launcher_enable_feature_always_unauthorized` and `poc_launcher_duplicate_sku_double_charge` are inverted. - Invariants **T606-1–T606-8** in [`skills/AGENTS_COMMUNITY_TAX_ENABLE_FEATURE.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/issue/606-launcher-enable-feature-sku-dedupe/skills/AGENTS_COMMUNITY_TAX_ENABLE_FEATURE.md). C593-4 / T592-4 updated to match. ## Live wasm This is a **token + launcher migrate**, not a dApp-only payee change. Columbus-5 **11611** / **11614** stay broken for retail Enable Feature until CMM / DEX 2-of-3 migrate. LocalTerra needs a redeploy of these crates for smoke. ## Acceptance (issue #606) - [x] Official Manage Token Enable Feature unlocks the SKU and CMM receives 50 UST1 (crate + inverted PoC). - [x] Non-manager cannot unlock via launcher or token. - [x] Duplicate SKUs on create are rejected; `Features` still idempotent. - [x] QA smoke uses the dApp Enable Feature path (launcher hook). `verify-issue-601` requires `sku_unlock_via_launcher`. - [x] `poc_launcher_enable_feature_always_unauthorized` inverted. - [x] `poc_launcher_duplicate_sku_double_charge` inverted. - [x] C593-4 / T592-4 docs match the launcher path. Not run here: LocalTerra smoke / `make verify-issue-601` on a freshly deployed stack (chain was down). Manual Simulated Wallet Enable Feature on LocalTerra after redeploy. ## Test plan - [x] `make verify-issue-606` (crates + inverted PoCs + invoice Vitest + docs; first pass + retest) - [x] `make verify-issue-593` - [ ] `make verify-issue-601` after `make setup-cloud-localterra` / redeploy (smoke now hits the launcher) - [ ] Manual: free create → Manage → Enable Feature `transfer_tax` → feature on, +50 UST1 at CMM - [ ] Manual: paid create with one SKU → Enable Feature a second SKU - [ ] Enable Feature MintControl still rejected; already-on SKU reverts; wrong amount / token / non-manager revert - [ ] Settings batch still targets the token - [ ] Create `[transfer_tax, transfer_tax]` rejects; two distinct SKUs charge 100 UST1
PlasticDigits commented 2026-08-23 13:05:02 +00:00 (Migrated from gitlab.com)

mentioned in issue #606

mentioned in issue #606
PlasticDigits commented 2026-08-23 13:05:03 +00:00 (Migrated from gitlab.com)

mentioned in issue #607

mentioned in issue #607
PlasticDigits commented 2026-08-23 13:05:05 +00:00 (Migrated from gitlab.com)

added 8 commits

  • b40f23c8...5557f839 - 6 commits from branch main
  • 666e985d - Merge origin/main into issue/606-launcher-enable-feature-sku-dedupe
  • b5e7223d - fix(frontend): drop duplicate communityTaxHint on Swap

Compare with previous version

added 8 commits <ul><li>b40f23c8...5557f839 - 6 commits from branch <code>main</code></li><li>666e985d - Merge origin/main into issue/606-launcher-enable-feature-sku-dedupe</li><li>b5e7223d - fix(frontend): drop duplicate communityTaxHint on Swap</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/407/diffs?diff_id=1978197014&start_sha=b40f23c834fae89acaec86450f8474ea89a90815)
PlasticDigits (Migrated from gitlab.com) merged commit cfaf976980 into main 2026-08-23 13:05:10 +00:00
PlasticDigits commented 2026-08-23 13:05:11 +00:00 (Migrated from gitlab.com)

mentioned in commit cfaf976980

mentioned in commit cfaf9769809307a23c4f41aaf7d3de86c97171a9
PlasticDigits commented 2026-08-23 13:05:31 +00:00 (Migrated from gitlab.com)

mentioned in issue #612

mentioned in issue #612
PlasticDigits commented 2026-08-23 13:05:40 +00:00 (Migrated from gitlab.com)

mentioned in issue #611

mentioned in issue #611
PlasticDigits commented 2026-08-24 05:15:46 +00:00 (Migrated from gitlab.com)

mentioned in commit 125b522d8a

mentioned in commit 125b522d8aa3663a94b74ce137476ce25fae840e
Sign in to join this conversation.
No reviewers
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!1125
No description provided.