feat(treasury): governance WasmMsg::Migrate for CMM-admin CW20s #43

Closed
opened 2026-09-12 07:07:46 +00:00 by PlasticDigits · 5 comments

Summary

DEX columbus-5 ALPHA (terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz) wasm admin is this CMM treasury instance (terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2, code 11564, cw2 crates.io:treasury 0.2.1). DEX stored tax wasm 11666 and listed it, but cannot MsgMigrateContract ALPHA: 2-of-3 is CMM’s wasm admin, not ALPHA’s.

Live treasury ExecuteMsg has no variant that emits WasmMsg::Migrate.

Scope

Governance-only execute (DEX 2-of-3 terra1zlmv2…ex6hep7) that emits:

WasmMsg::Migrate { contract: <cw20>, new_code_id, msg: {} }

Empty migrate payload is enough for cl8y-community-tax-token 1.0.0 → 1.1.0.

Do not expose this to non-governance. Do not change wrap / InstantWithdraw.

DEX leftover after this lands: Refresh ALPHA pair pins (do not Refresh while ALPHA is still 11630). Tracker: code/cl8y-dex-terraclassic issue filed from the 1246 close-out.

## Summary DEX columbus-5 ALPHA (`terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz`) wasm admin is this CMM treasury instance (`terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2`, code **11564**, cw2 `crates.io:treasury` **0.2.1**). DEX stored tax wasm **11666** and listed it, but cannot `MsgMigrateContract` ALPHA: 2-of-3 is CMM’s wasm admin, not ALPHA’s. Live treasury `ExecuteMsg` has no variant that emits `WasmMsg::Migrate`. ## Scope Governance-only execute (DEX 2-of-3 `terra1zlmv2…ex6hep7`) that emits: `WasmMsg::Migrate { contract: <cw20>, new_code_id, msg: {} }` Empty migrate payload is enough for `cl8y-community-tax-token` 1.0.0 → 1.1.0. Do not expose this to non-governance. Do not change wrap / InstantWithdraw. DEX leftover after this lands: Refresh ALPHA pair pins (do not Refresh while ALPHA is still 11630). Tracker: `code/cl8y-dex-terraclassic` issue filed from the 1246 close-out.
Author
Owner

DEX leftover for the Refresh after ALPHA migrate: cl8y-dex-terraclassic#1250. Target code_id 11666. Keep factory whitelist 11630 until Refresh.

DEX leftover for the Refresh after ALPHA migrate: [cl8y-dex-terraclassic#1250](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1250). Target code_id **11666**. Keep factory whitelist **11630** until Refresh.
Author
Owner

Code is on origin/master via #44 (3327390, treasury 0.2.2). CI ci/woodpecker/pr/woodpecker succeeded; merge was a normal merge (not force_merge).

Columbus-5 leftover (founder; this ticket is code-complete):

  1. Optimizer cd contracts → artifacts/treasury.wasm (not cargo wasm).
  2. Store as cl8ydeploy → treasury code id T.
  3. 2-of-3 migrate CMM, then execute ALPHA → 11666:
cd /home/answorld/repos/cl8y-dex-terraclassic
./scripts/multisig-2of3-host-tx.sh wasm migrate \
  terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}'
./scripts/multisig-2of3-host-tx.sh wasm execute \
  terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 \
  '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}'
  1. LCD CMM 0.2.2, ALPHA 11666 / 1.1.0, then DEX Refresh (cl8y-dex-terraclassic#1250). Keep 11630 listed until Refresh. Tax 1.1.0 rejects adopt; omit msg so payload is {}.
Code is on `origin/master` via [#44](https://git.cl8y.com/code/ustr-cmm/pulls/44) (`3327390`, treasury **0.2.2**). CI `ci/woodpecker/pr/woodpecker` succeeded; merge was a normal merge (not `force_merge`). Columbus-5 leftover (founder; this ticket is code-complete): 1. Optimizer `cd contracts` → `artifacts/treasury.wasm` (not `cargo wasm`). 2. Store as `cl8ydeploy` → treasury code id `T`. 3. 2-of-3 migrate CMM, then execute ALPHA → **11666**: ```bash cd /home/answorld/repos/cl8y-dex-terraclassic ./scripts/multisig-2of3-host-tx.sh wasm migrate \ terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}' ./scripts/multisig-2of3-host-tx.sh wasm execute \ terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 \ '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}' ``` 4. LCD CMM `0.2.2`, ALPHA `11666` / `1.1.0`, then DEX Refresh ([cl8y-dex-terraclassic#1250](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1250)). Keep **11630** listed until Refresh. Tax 1.1.0 rejects `adopt`; omit `msg` so payload is `{}`.
Author
Owner

Code is on origin/master via #44 (3327390). Live CMM is still 11564 / 0.2.1 until store+migrate.

Founder (columbus-5; not run from this comment):

  1. cd /home/answorld/repos/ustr-cmm/contracts — CosmWasm optimizer → artifacts/treasury.wasm (not cargo wasm).
  2. Store as cl8ydeploy → treasury code id T.
  3. From DEX repo: ./scripts/multisig-2of3-host-tx.sh wasm migrate terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}'
  4. LCD CMM code_id=T, cw2 crates.io:treasury 0.2.2.
  5. 2-of-3 execute (not wasm migrate ALPHA):
    ./scripts/multisig-2of3-host-tx.sh wasm execute terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}'
  6. LCD ALPHA 11666 / 1.1.0, then DEX Refresh (upgrade-1246-alpha.sh / #1250). Keep 11630 listed until Refresh. Tax 1.1.0 rejects adopt.
Code is on origin/master via #44 (`3327390`). Live CMM is still 11564 / 0.2.1 until store+migrate. Founder (columbus-5; not run from this comment): 1. `cd /home/answorld/repos/ustr-cmm/contracts` — CosmWasm optimizer → `artifacts/treasury.wasm` (not `cargo wasm`). 2. Store as `cl8ydeploy` → treasury code id T. 3. From DEX repo: `./scripts/multisig-2of3-host-tx.sh wasm migrate terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}'` 4. LCD CMM `code_id=T`, cw2 `crates.io:treasury` 0.2.2. 5. 2-of-3 execute (not `wasm migrate` ALPHA): `./scripts/multisig-2of3-host-tx.sh wasm execute terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}'` 6. LCD ALPHA 11666 / 1.1.0, then DEX Refresh (`upgrade-1246-alpha.sh` / #1250). Keep 11630 listed until Refresh. Tax 1.1.0 rejects `adopt`.
Author
Owner

Code is on origin/master via #44 (3327390, treasury 0.2.2). CI ci/woodpecker/pr/woodpecker succeeded; merge was a normal merge (not force_merge).

Columbus-5 leftover (founder; this ticket is code-complete):

  1. Optimizer cd contracts → artifacts/treasury.wasm (not cargo wasm).
  2. Store as cl8ydeploy → treasury code id T.
  3. 2-of-3 migrate CMM, then execute ALPHA → 11666:
cd /home/answorld/repos/cl8y-dex-terraclassic
./scripts/multisig-2of3-host-tx.sh wasm migrate \
  terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}'
./scripts/multisig-2of3-host-tx.sh wasm execute \
  terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 \
  '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}'
  1. LCD CMM 0.2.2, ALPHA 11666 / 1.1.0, then DEX Refresh (cl8y-dex-terraclassic#1250). Keep 11630 listed until Refresh. Tax 1.1.0 rejects adopt; omit msg so payload is {}.
Code is on `origin/master` via [#44](https://git.cl8y.com/code/ustr-cmm/pulls/44) (`3327390`, treasury **0.2.2**). CI `ci/woodpecker/pr/woodpecker` succeeded; merge was a normal merge (not `force_merge`). Columbus-5 leftover (founder; this ticket is code-complete): 1. Optimizer `cd contracts` → `artifacts/treasury.wasm` (not `cargo wasm`). 2. Store as `cl8ydeploy` → treasury code id `T`. 3. 2-of-3 migrate CMM, then execute ALPHA → **11666**: ```bash cd /home/answorld/repos/cl8y-dex-terraclassic ./scripts/multisig-2of3-host-tx.sh wasm migrate \ terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 T '{}' ./scripts/multisig-2of3-host-tx.sh wasm execute \ terra16j5u6ey7a84g40sr3gd94nzg5w5fm45046k9s2347qhfpwm5fr6sem3lr2 \ '{"migrate_owned_contract":{"contract":"terra1x6e64es6yhauhvs3prvpdg2gkqdtfru840wgnhs935x8axr7zxkqzysuxz","new_code_id":11666}}' ``` 4. LCD CMM `0.2.2`, ALPHA `11666` / `1.1.0`, then DEX Refresh ([cl8y-dex-terraclassic#1250](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1250)). Keep **11630** listed until Refresh. Tax 1.1.0 rejects `adopt`; omit `msg` so payload is `{}`.
Author
Owner

On-chain complete 2026-09-12. Live CMM terra16j5u6…3lr2 is code 11667 / cw2 0.2.2 (store 1E6142A2…, 2-of-3 migrate CAA4880C…). MigrateOwnedContract ALPHA → 11666 / tax 1.1.0 (42B10152…). DEX Refresh leftover is cl8y-dex-terraclassic#1250 (pins now [10184, 11666]).

On-chain complete 2026-09-12. Live CMM `terra16j5u6…3lr2` is code **11667** / cw2 **0.2.2** (store `1E6142A2…`, 2-of-3 migrate `CAA4880C…`). `MigrateOwnedContract` ALPHA → **11666** / tax **1.1.0** (`42B10152…`). DEX Refresh leftover is [cl8y-dex-terraclassic#1250](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1250) (pins now `[10184, 11666]`).
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/ustr-cmm#43
No description provided.