Prepare later-run migration script; deployment blocked pending Terra Classic whitelist #16
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/cw20-mintable#16
Loading…
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?
User direction (2026-11-01): prepare a script the operator can run later. Terra Classic deployment is currently unavailable pending whitelist access; keep deployment/migration deferred and track that gate in this repository. No transaction, signing, store, instantiate, migrate, enrollment or unpause is authorized for execution in this work item now.
Parent/related work: security epic #3 and rollout #7. Existing contract/source PR14 and target-checked optimized artifacts are available; existing scripts/rollout-build.sh only builds artifacts. Security-v1 live coverage stays0/35 inventoried code10184 contracts.
Deliver a bounded, reviewable later-run tool with offline plan as default, fresh read-only preflight, unsigned single-action packets and optional explicit broadcast of an externally signed exact prepared transaction. Require actual fresh code-upload whitelist/deployer permissions when storing; distinguish this chain gate from DEX CW20 code-id policy/asset pins. Existing verified code IDs may be supplied for later plans without guessing or treating them as a deployment waiver. Unknown permission formats/chain/admin/role state fail closed. No fake whitelist acknowledgment or auto retries while waiting.
Preflight and staged rollout must verify chain and pinned height, exact optimized artifact/code checksums, controller and token identities, current token admins/migration routes, legacy cw2 version, primary/additional minters and issuer/governance separation. Use actual distinct trusted CL8Y role identities and verified multisig/constituent authority; SSH admin keys are not governance quorum. Do not impersonate a contract admin or guess an LP forwarding route. Full state/supply/allowance/minter snapshots and post-migration conservation checks are required before receipts advance.
Controller begins paused. Enroll exact upgraded tokens, coordinate DEX whitelist/pins and reviewed protocol assignments, wait real on-chain assignment/relaxation deadlines (no bootstrap bypass), then governance-only finalization verifies the entire enrolled cohort. Preserve global pause/blacklist/lock/recovery behavior and >=30-day recovery reservation/timers. Failure holds pause and leaves a reviewable receipt; never roll back to unguarded legacy code or discard pending state.
Current assignee by agent ownership: migration implementation worker under parent thr_4rw76j9ker; independent reviewer handles the new script delta. User will run the prepared script later after whitelist release, not perform development or configuration research now.
Independent source review cleared deferred migration tool commit
0fce4922e4a05ba0f76e49f0eac40c94fecd8957for publication. This covers only the five script/config/docs/test files; it does not approve or establish live-chain execution.Independently ran
python3 -m unittest discover -s scripts/tests -v: 19 PASS. Ran the default entrypoint: offline plan, no keys/network/transactions, honest coverage 0/35.git diff --check HEAD^ HEADpassed. Unchanged Rust suites and optimized artifacts were not rebuilt.Reviewed fixed artifact/code checksums; pinned chain-height and permission checks; distinct registered multisig roles and constituent checks; token admin, primary/additional minter and governance separation; separate actual DEX code-ID membership; full legacy raw-state preservation; real pending assignment payload/nonce/epoch/deadline; complete enrolled-cohort validation before governance unpause. Contract admins fail closed for a separately implemented forwarding route. Broadcast is explicit, consumes an externally signed exact packet, rechecks action/body/fee/key/sequence/state/RPC context and age, and records submission intent before sending to prevent automatic replay after ambiguity.
Review found and implementation corrected the LCD params route, actual hex (including uppercase) state-key encoding, and valid null-primary-minter handling. Wire facts checked against upstream primary schemas: wasmd query route, Model key/value encoding, and HexBytes JSON encoding.
No store, signing, deployment, migration, enrollment, unpause or economic transaction was performed by this review. A read-only public LCD probe returned HTTP403, so this review makes no live preflight/endpoint-availability claim. Whitelist, exact current roles/admin/issuer/DEX routes and authorized signing capability must be resolved and checked on the future authorized execution date. Keep actual deployment coverage 0/35 and issue16 open for that work.
Deferred tool implementation published in PR #17 at
0fce4922e4a05ba0f76e49f0eac40c94fecd8957, independently reviewed for source publication.python3 scripts/rollout-migrate.pyis the safe offline entrypoint. Preparation is pinned-height read-only plus one unsigned transaction; broadcasting requires an externally signed exact packet and explicit--execute.docs/rollout/migration-tool.md. LP contract-admin forwarding routes remain explicitly unsupported/blocked pending separate verified implementations; arbitrary role/issuer placeholders cannot run.The Terra Classic deployment whitelist remains the current deployment blocker. No upload, chain signing, instantiation, migration, enrollment, activation or unpause was performed. Live coverage remains 0/35. Whitelist and actual rollout acceptance boxes in this issue remain unchecked; neither this PR nor review is deployment clearance. Future agents finalize actual identities, custody/routes, DEX policy and configuration before any later execution.