Pre-launch: no parameterized emergency command cookbook for pause, blacklist, and unpause operations [SEC-B11] #399
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#399
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?
Checklist Item
SEC-B11: Add an emergency "pause/blacklist/unpause/unblacklist" command cookbook. Verify: commands are copy-pastable, parameterized, and rehearsed on LocalTerra.
Summary
The incident template and deployment guide provide structural guidance but neither contains a copy-pastable, parameterized command sequence for executing emergency controls under time pressure. An operator responding to an active incident cannot quickly derive the correct
terrad txinvocations from existing documentation.What Was Checked
docs/templates/incident-dex-indexer.md-- Mitigation section only says "Follow Security model (pause, governance)" with no command examplesdocs/deployment-guide.md-- general contract instantiation and config commands only, no emergency pause/blacklist operationsdocs/runbooks/-- no emergency-commands.md or equivalent file founddocs/adr/0003-governance-trading-blacklist.md-- design rationale only, no command referencescripts/-- no emergency pause/blacklist scripts; only deploy, seed, and CI scriptssmartcontracts/contracts/factory/src/msg.rs-- execute message definitions exist in source but not surfaced in any operator-facing docExpected (per checklist)
A copy-pastable command cookbook must exist covering: pause a pair, unpause a pair, blacklist a wallet, unblacklist a wallet, blacklist a token, unblacklist a token, blacklist a pair, and unblacklist a pair. Commands must use named parameters so an operator can fill in values under pressure. Evidence of rehearsal on LocalTerra must be linked.
Actual
No such cookbook exists. The closest reference is
docs/deployment-guide.mdwhich shows generalterrad tx wasm executepatterns but does not cover any emergency control operations. An operator responding to an incident would need to construct the correct JSON message format and flags from scratch by reading contract source.Evidence
docs/templates/incident-dex-indexer.mdMitigation section: no command examplesdocs/deployment-guide.md: contract instantiation and config commands onlydocs/runbooks/: no emergency-operations.md or equivalentscripts/: no emergency pause/blacklist scriptsSuggested Fix
Add
docs/runbooks/emergency-commands.mdcontaining parameterizedterrad tx wasm executecommands for each emergency operation on the factory contract, including:SetPairPausedwith$PAIR_ADDRandpaused: true/falseBlacklistWalletandUnblacklistWalletwith$WALLET_ADDRBlacklistTokenandUnblacklistTokenwith$TOKEN_ADDRBlacklistPairandUnblacklistPairwith$PAIR_ADDRInclude required flags (
--from $GOVERNANCE_KEY --chain-id $CHAIN_ID --gas auto --gas-adjustment 1.4) and a brief post-execution query to confirm each operation succeeded. Link LocalTerra rehearsal evidence when available. Reference this document fromdocs/templates/incident-dex-indexer.mdat the Mitigation step.Verification Checklist
docs/runbooks/emergency-commands.md(or equivalent) exists with parameterized commandsLabels
security,pre-launchCc: @PlasticDigits
mentioned in issue #381
mentioned in commit
09c12d728bmentioned in merge request !928
mentioned in commit
392c0986f5mentioned in commit
6f4fd29bf7mentioned in commit
b177633c32mentioned in merge request !930
Verification — GitLab #399 (SEC-B11)
Result: PASS — emergency command cookbook exists, is cross-linked, and LocalTerra rehearsal succeeded.
Acceptance checklist
docs/runbooks/emergency-commands.mdexists with parameterized commands$FACTORY_ADDR,$GOVERNANCE_KEY,$CHAIN_ID,$PAIR_ADDR,$WALLET_ADDR,$TOKEN_ADDR--from,--chain-id,--gas auto,--gas-adjustment 1.4; confirm viais_pausedor factoryblacklist_checkmake verify-issue-399/scripts/qa/verify-issue-399.shdocs/templates/incident-dex-indexer.mdMitigation linksemergency-commands.mdCommands run
Cross-links verified
docs/security-model.md→emergency-commands.mddocs/adr/0003-governance-trading-blacklist.md→emergency-commands.mdskills/AGENTS_EMERGENCY_COMMANDS.mdagent playbook presentNo repo changes required; closing issue.
mentioned in issue #337