Pre-launch: no consolidated go/no-go section or formal signoff gate in launch runbook [SEC-A06] #391

Closed
opened 2026-06-18 15:29:56 +00:00 by totdking · 21 comments
totdking commented 2026-06-18 15:29:56 +00:00 (Migrated from gitlab.com)
No description provided.
totdking commented 2026-06-18 15:30:32 +00:00 (Migrated from gitlab.com)

Checklist Item

SEC-A06: Add launch decision language: when to pause launch, when to launch with accepted risk, and when to block launch. Verify: checklist includes explicit go/no-go section signed off before production deploy.


Summary

Launch decision criteria and blocker definitions exist but are spread across at least four separate documents with no single go/no-go section consolidating the three decisions (block / pause / go with accepted risk). The deploy runbook has no mandatory signoff gate that must be completed before going live.


What Was Checked

  • docs/runbooks/launch-checklist.md -- phased deploy checklist, no go/no-go section
  • docs/reviews/20260409T030009Z/RELEASE_READINESS_MATRIX.md -- blocker matrix exists but is a review artifact, not a required gate in the runbook
  • docs/reviews/20260409T030009Z/REVIEW.md -- top 10 blockers and launch criteria documented
  • help/checklist.md SEC-J01/J02/J05 -- P0 blocker definitions and developer signoff requirement exist
  • QA_TEMPLATE.md lines 1032-1050 -- three-role signoff table exists but is not referenced or required by the launch runbook

Expected (per checklist)

The launch checklist or deploy runbook must contain an explicit go/no-go section with three defined decisions: when to block launch entirely, when to pause/delay launch, and when to go with documented accepted risk. A named signoff step must be a required gate before production deploy, not an optional template.


Actual

Launch criteria are defined across REVIEW.md, RELEASE_READINESS_MATRIX.md, and help/checklist.md (SEC-J01/J02) but none of these are embedded as a required step inside docs/runbooks/launch-checklist.md. The deploy runbook can be followed to completion without ever reaching a go/no-go decision point. The signoff table in QA_TEMPLATE.md is not linked or required by any runbook step.


Evidence

  • docs/runbooks/launch-checklist.md: four phases (Preconditions, Deploy, Governance-sensitive, Post-deploy) -- no go/no-go section, no signoff step
  • docs/reviews/20260409T030009Z/RELEASE_READINESS_MATRIX.md: blocker matrix exists as a dated review artifact (2026-04-09), not a live runbook gate
  • help/checklist.md SEC-J05: "Require prelaunch signoff from developer" -- requirement stated but no runbook step enforces it
  • QA_TEMPLATE.md lines 1032-1050: signoff table with QA Tester, Dev Lead, Product Owner roles -- not referenced in launch runbook

Suggested Fix

Add a Phase 0.5 (or final phase) to docs/runbooks/launch-checklist.md containing an explicit go/no-go section with:

  • BLOCK criteria: any P0 item open (admin controls broken, value-flow invariant failing, deploy/runbook missing, user cannot see pause/blacklist/rate-limit risk)
  • PAUSE criteria: any pre-launch item open that has no accepted-risk sign-off, governance multisig not rehearsed, or unresolved incident runbook gap
  • GO with accepted risk criteria: all P0 items closed, all pre-launch items either closed or explicitly risk-accepted in a named issue comment, residual risks documented

Add a mandatory signoff step at the end of the runbook requiring the developer (or named role) to post a comment on the launch issue with: decision (GO/PAUSE/BLOCK), date, open residual risks, and risk acceptance statement. Reference the QA_TEMPLATE.md signoff table as the format.


Verification Checklist

Steps to confirm the fix is complete and the checklist item can be marked done.

  • docs/runbooks/launch-checklist.md contains an explicit go/no-go section with BLOCK, PAUSE, and GO criteria defined
  • BLOCK criteria reference P0 items by category (admin controls, value-flow, runbook, user visibility)
  • GO with accepted risk criteria require all P0 items closed and residual risks documented
  • A named signoff step is the final required gate in the launch runbook
  • The signoff step references or embeds the QA_TEMPLATE.md signoff table format
  • Developer has completed and posted the signoff before production deploy

Labels

pre-launch

Cc: @PlasticDigits

### Checklist Item SEC-A06: Add launch decision language: when to pause launch, when to launch with accepted risk, and when to block launch. Verify: checklist includes explicit go/no-go section signed off before production deploy. --- ### Summary Launch decision criteria and blocker definitions exist but are spread across at least four separate documents with no single go/no-go section consolidating the three decisions (block / pause / go with accepted risk). The deploy runbook has no mandatory signoff gate that must be completed before going live. --- ### What Was Checked - `docs/runbooks/launch-checklist.md` -- phased deploy checklist, no go/no-go section - `docs/reviews/20260409T030009Z/RELEASE_READINESS_MATRIX.md` -- blocker matrix exists but is a review artifact, not a required gate in the runbook - `docs/reviews/20260409T030009Z/REVIEW.md` -- top 10 blockers and launch criteria documented - `help/checklist.md` SEC-J01/J02/J05 -- P0 blocker definitions and developer signoff requirement exist - `QA_TEMPLATE.md` lines 1032-1050 -- three-role signoff table exists but is not referenced or required by the launch runbook --- ### Expected (per checklist) The launch checklist or deploy runbook must contain an explicit go/no-go section with three defined decisions: when to block launch entirely, when to pause/delay launch, and when to go with documented accepted risk. A named signoff step must be a required gate before production deploy, not an optional template. --- ### Actual Launch criteria are defined across REVIEW.md, RELEASE_READINESS_MATRIX.md, and help/checklist.md (SEC-J01/J02) but none of these are embedded as a required step inside `docs/runbooks/launch-checklist.md`. The deploy runbook can be followed to completion without ever reaching a go/no-go decision point. The signoff table in QA_TEMPLATE.md is not linked or required by any runbook step. --- ### Evidence - `docs/runbooks/launch-checklist.md`: four phases (Preconditions, Deploy, Governance-sensitive, Post-deploy) -- no go/no-go section, no signoff step - `docs/reviews/20260409T030009Z/RELEASE_READINESS_MATRIX.md`: blocker matrix exists as a dated review artifact (2026-04-09), not a live runbook gate - `help/checklist.md` SEC-J05: "Require prelaunch signoff from developer" -- requirement stated but no runbook step enforces it - `QA_TEMPLATE.md` lines 1032-1050: signoff table with QA Tester, Dev Lead, Product Owner roles -- not referenced in launch runbook --- ### Suggested Fix Add a Phase 0.5 (or final phase) to `docs/runbooks/launch-checklist.md` containing an explicit go/no-go section with: - **BLOCK** criteria: any P0 item open (admin controls broken, value-flow invariant failing, deploy/runbook missing, user cannot see pause/blacklist/rate-limit risk) - **PAUSE** criteria: any pre-launch item open that has no accepted-risk sign-off, governance multisig not rehearsed, or unresolved incident runbook gap - **GO with accepted risk** criteria: all P0 items closed, all pre-launch items either closed or explicitly risk-accepted in a named issue comment, residual risks documented Add a mandatory signoff step at the end of the runbook requiring the developer (or named role) to post a comment on the launch issue with: decision (GO/PAUSE/BLOCK), date, open residual risks, and risk acceptance statement. Reference the QA_TEMPLATE.md signoff table as the format. --- ### Verification Checklist Steps to confirm the fix is complete and the checklist item can be marked done. - [ ] `docs/runbooks/launch-checklist.md` contains an explicit go/no-go section with BLOCK, PAUSE, and GO criteria defined - [ ] BLOCK criteria reference P0 items by category (admin controls, value-flow, runbook, user visibility) - [ ] GO with accepted risk criteria require all P0 items closed and residual risks documented - [ ] A named signoff step is the final required gate in the launch runbook - [ ] The signoff step references or embeds the QA_TEMPLATE.md signoff table format - [ ] Developer has completed and posted the signoff before production deploy --- ### Labels `pre-launch` Cc: @PlasticDigits
totdking commented 2026-06-18 15:41:10 +00:00 (Migrated from gitlab.com)

mentioned in issue #381

mentioned in issue #381
PlasticDigits commented 2026-06-19 01:40:27 +00:00 (Migrated from gitlab.com)

mentioned in commit 5b1ef3a074

mentioned in commit 5b1ef3a0747fcf15e458fc5b8183ec38d504489b
PlasticDigits commented 2026-06-19 01:40:47 +00:00 (Migrated from gitlab.com)

mentioned in merge request !916

mentioned in merge request !916
PlasticDigits commented 2026-06-19 01:53:04 +00:00 (Migrated from gitlab.com)

mentioned in commit 9c9b10e87f

mentioned in commit 9c9b10e87f3a255f6685ca2f105698d75b23e34d
PlasticDigits commented 2026-06-19 08:20:22 +00:00 (Migrated from gitlab.com)

Verification — SEC-A06 / GitLab #391

Result: All acceptance criteria PASS. No repo changes required; closing issue.

What was verified

Criterion Result How
launch-checklist.md has explicit go/no-go section (BLOCK / PAUSE / GO / GO with accepted risk) PASS Manual read of docs/runbooks/launch-checklist.md Phase 5 (lines 69–138); make verify-issue-391
BLOCK criteria reference P0 categories (admin controls, value-flow, deploy/runbook, user visibility) PASS Phase 5 table at ### BLOCK — do not launch lists all four P0 categories
GO with accepted risk requires all P0 closed + residual risks documented PASS ### GO with accepted risk section requires closed P0s, risk-accepted gaps, and listed residual risks
Named sign-off is the final required gate before production mainnet PASS ### Mandatory sign-off gate; intro Mandatory gate blocks mainnet Phase 1 until Phase 5 complete; Phase 5 is last phase before Rollback
Sign-off references/embeds QA_TEMPLATE.md role table PASS Links to QA_TEMPLATE.md#sign-off; embeds QA Tester / Dev Lead / Product Owner table
Developer posts sign-off on launch tracking issue before production deploy PASS (doc gate) Runbook step 3 requires issue comment with decision, date, residual risks, risk acceptance; enforced procedurally — no production mainnet deploy in this verification session

Automated checks

make verify-issue-391
  PASS  launch runbook go/no-go doc invariant (python3 scripts/check_launch_go_no_go_docs.py)
  PASS  agent skill present (skills/AGENTS_LAUNCH_GO_NO_GO.md)
  PASS  QA_TEMPLATE SIGN-OFF section present
  PASS  deployment-guide links launch Phase 5 gate
  PASS: 4   FAIL: 0

make check-launch-go-no-go-docs is also wired into make lint.

  • docs/deployment-guide.md → Phase 5 go/no-go anchor
  • docs/security-model.md, docs/testing.md, docs/qa-onboarding.md reference Phase 5 / #391
  • Agent playbook: skills/AGENTS_LAUNCH_GO_NO_GO.md
## Verification — SEC-A06 / GitLab #391 **Result:** All acceptance criteria **PASS**. No repo changes required; closing issue. ### What was verified | Criterion | Result | How | |-----------|--------|-----| | `launch-checklist.md` has explicit go/no-go section (BLOCK / PAUSE / GO / GO with accepted risk) | **PASS** | Manual read of `docs/runbooks/launch-checklist.md` Phase 5 (lines 69–138); `make verify-issue-391` | | BLOCK criteria reference P0 categories (admin controls, value-flow, deploy/runbook, user visibility) | **PASS** | Phase 5 table at `### BLOCK — do not launch` lists all four P0 categories | | GO with accepted risk requires all P0 closed + residual risks documented | **PASS** | `### GO with accepted risk` section requires closed P0s, risk-accepted gaps, and listed residual risks | | Named sign-off is the final required gate before production mainnet | **PASS** | `### Mandatory sign-off gate`; intro **Mandatory gate** blocks mainnet Phase 1 until Phase 5 complete; Phase 5 is last phase before Rollback | | Sign-off references/embeds `QA_TEMPLATE.md` role table | **PASS** | Links to `QA_TEMPLATE.md#sign-off`; embeds QA Tester / Dev Lead / Product Owner table | | Developer posts sign-off on launch tracking issue before production deploy | **PASS** (doc gate) | Runbook step 3 requires issue comment with decision, date, residual risks, risk acceptance; enforced procedurally — no production mainnet deploy in this verification session | ### Automated checks ```text make verify-issue-391 PASS launch runbook go/no-go doc invariant (python3 scripts/check_launch_go_no_go_docs.py) PASS agent skill present (skills/AGENTS_LAUNCH_GO_NO_GO.md) PASS QA_TEMPLATE SIGN-OFF section present PASS deployment-guide links launch Phase 5 gate PASS: 4 FAIL: 0 ``` `make check-launch-go-no-go-docs` is also wired into `make lint`. ### Cross-links confirmed - `docs/deployment-guide.md` → Phase 5 go/no-go anchor - `docs/security-model.md`, `docs/testing.md`, `docs/qa-onboarding.md` reference Phase 5 / #391 - Agent playbook: `skills/AGENTS_LAUNCH_GO_NO_GO.md`
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-06-19 08:20:23 +00:00
PlasticDigits commented 2026-06-19 11:09:59 +00:00 (Migrated from gitlab.com)

mentioned in merge request !927

mentioned in merge request !927
PlasticDigits commented 2026-06-19 12:57:27 +00:00 (Migrated from gitlab.com)

mentioned in merge request !930

mentioned in merge request !930
PlasticDigits commented 2026-06-25 11:37:13 +00:00 (Migrated from gitlab.com)

mentioned in issue #410

mentioned in issue #410
PlasticDigits commented 2026-06-25 11:50:36 +00:00 (Migrated from gitlab.com)

mentioned in issue #397

mentioned in issue #397
Brouie commented 2026-06-28 23:24:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #337

mentioned in issue #337
PlasticDigits commented 2026-06-29 00:21:33 +00:00 (Migrated from gitlab.com)

mentioned in issue #424

mentioned in issue #424
Brouie commented 2026-06-30 13:49:06 +00:00 (Migrated from gitlab.com)

mentioned in issue #398

mentioned in issue #398
PlasticDigits commented 2026-07-12 03:47:25 +00:00 (Migrated from gitlab.com)

Deploy trace — columbus-5 — 2026-07-12 UTC

Filled from docs/templates/deploy-trace.md for soft-launch (non-economic). Paste onto #391.

Field Value
Operator answorld (cl8ydeploy)
Governance multisig terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
Network / chain ID columbus-5
Deploy type initial launch (mainnet soft launch — non-economic CW20)
Git SHA da811ea6763e94162d57294d34c6dc71d68c9338
Git describe brouie-review-1238-gda811ea-dirty (working tree had soft-launch script/docs fixes after store; on-chain wasm hashes match local artifacts)
Terra Classic chain version terrad client 3.5.0-rc.0; remote node_info.version 0.38.19; sample height ~29458706
RPC / LCD https://terra-classic-rpc.publicnode.com:443 / https://terra-classic-lcd.publicnode.com
Deployer terra1hu4zggf3f8yw6jw3rxrjxn2drwad675gq5k2lv
Addresses file deployments/mainnet-soft-launch/addresses.env

Contract code IDs

Contract Code ID Address (if instantiated) Store tx
Factory 11505 terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea E268F6B8661461386FEE00F8E886E094BD73D8561D1BCAAB12DDF50352A6626E
Pair 11506 (template; 10 instances below) DC60D2A137141689E8195272EA825C6A4079CF5A994E673B41CD4A476D937964
Router 11507 terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw E56363CC04DD29FA52325F5035840A64065DFE1CEFCBE50F2FD20224A51C17FC
Fee-discount 11508 terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz 8D11905C70E18ED2EBACFD08A5468DA4353DCB4FD33F587AF55C435382CE5998
Hook(s) — none (pool-only soft launch) —
CW20 base (reuse) 6036 QUARTZ + PEARL + LP tokens Terraswap mainnet
CW20 mintable (reuse) 10184 EMBER…TOPAZ PlasticDigits cw20-mintable

Canonical instantiate txs (bootstrap-governance run): factory 69B1BAEF747D61900A27ED7D1DB6B786A24681F9D1AA6B2E143A047D3DAFE135, router F5EB88CDC31B78D1DAC77B3B2D838268DC86B7654BA4C15718FBCE735825C629, fee-discount 9C7C2550B03596C598053C4A3C83E7E5B400610D60263642D4720A136F0FF543.

Handoff: fee-discount update_config C9F7D3751EA2190B26A14B4DA38645B2AC141D1612A084D44C9FA1A1BCFD1BC6; factory update_config D7689FA31B479937D39A2468BFE6BB1522202E19FAD4BD4137894ECFE6513640. set_discount_registry_all 1695ADE7D5E5B7496708737E940BC8DA9723908DEB48C80FC720B915F65D0C1C.

Soft-launch tokens + pairs

Symbol Kind Address
EMBER mintable terra1dmuruhht32x8f47nvm73pwp6q7uf2jtfhdt3nxcql4mmqkyfsraqn2dt94
CORAL mintable terra1k6cqupylk0wp4pj273pntwhv9py0q5guyqye8ssvukn9xq7mes7sdlmena
JADE mintable terra1ejq3mjjgnklpa3pg4jterlfwsny055gpmcjf3fz0ev3ueajnzeysz6xxgr
ONYX mintable terra178fgrfzv7njtmdp9vghyf2dx77sah8u8jluzs7ym562chaxnmj2s6mn6m9
RUBY mintable terra1fga508hzx8dd7x8q4uhm6mdhkqv6fxrtsea3r27smdqmv5k2jgxq5zk9fc
TOPAZ mintable terra12k67cvfs7y7g8lca3qr4g4py6s6j69fu24gze5pjfamfpckv8mps7cymme
QUARTZ base terra17dpnjlpgsnm8muu4msfjra4f2hrptnjp2jdpkka4p0e3px42ayxq0pmc2z
PEARL base terra18fzufz8cs7ez49xjwgs248x85za5v50yug55fj7lyxp9hapxyr7qnh3czs
Pair Address total_share (verified)
EMBER/CORAL terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4 100000000000
EMBER/JADE terra1y5xxv980jn0qu7n7y3slhtjehta6nlpqjkgcxl80uetdx84dxa4qegjhtx 10000000000
EMBER/ONYX terra16827w2c7zcvetck9xz8d6ds3379v77gelwra6jdafqkx9q9u0r8qvkluu0 14142135623
CORAL/RUBY terra1ra7cugjhchr45kdupxe2al5fna0zxu6syl8xhpanfk8dsvkq9lksf6fm9l 7071067811
JADE/TOPAZ terra1nqjvd2xatac5ydcs6nstw7zp2yjc20p632ycxtevtf3rr2554fqswstx0n 100000000000
ONYX/QUARTZ terra1havxdjfyphjazc342r3cj2n3kslsptac2eunvw8uzayusywg9t4shtuz7v 70710678118
RUBY/PEARL terra1p0sd0t2ggm9ye43gp0ryadx3wwkz5hzn99hnz93ve99397xvuufsvsmw73 7071067811
EMBER/QUARTZ terra1mp72n97rzwmqwudzycjj0e4jveetjnp622gnprv6ugqt3hfxg60sr5gkjm 50000000000
CORAL/PEARL terra16k6huf87gzvnlgpvf85f8xfgawl6y2l5d4d5qdpyhknqaran9s5qx63c3r 70710678118
JADE/ONYX terra1pc7dvcucrl9sr4r2nhr2rv3ywhthskqqtvtvaerx9cff7l8gesdskjgmn6 100000000000

Wasm artifact hashes (smartcontracts/artifacts/ — matches on-chain data_hash)

61f8a1956a4b6cb1702ba071b1a8c6cf8e499d6db627a77d828c8cccb39ce45d  cl8y_dex_factory.wasm
50ad70c579e4c376a90c103f4a5965baaa1d4957442b974aaa3fffd880943ba4  cl8y_dex_pair.wasm
f31a4aad4609572eea840c68a0afed20cca57b914c7cfb27d47bf22d51d19282  cl8y_dex_router.wasm
7ae5fd86fc77491f83db60d48aca8af79883f5edfe2d4de6832c45824fa8a4a9  cl8y_dex_fee_discount.wasm

On-chain code data_hash (LCD /cosmwasm/wasm/v1/code/{id}): MATCH for 11505–11508.

Test results (pre-deploy evidence — SEC-H08)

Suite Command Evidence
Contracts make test-contracts Not green on deploy SHA. Pipeline 2670191691 failed cargo-audit-smartcontracts / cargo-audit-indexer; test-contracts / test-frontend / test-indexer-integration were skipped. Risk acceptance: soft-launch proceeds on artifact↔chain hash match + post-deploy verify.
Indexer integration make test-indexer-integration Skipped in same pipeline (see above).
Frontend unit make test-frontend Skipped in same pipeline (see above).
Soft-launch defaults make test-mainnet-soft-launch-defaults Local unit path for defaults/wiring (pre-deploy).
Fee-tier docs make check-fee-discount-tier-docs OK: 11 tiers aligned (verified 2026-07-12).
Pool swap smoke ./scripts/smoke-pool-swap.sh See post-deploy below.
Pipeline for da811ea: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/pipelines/2670191691
status=failed (cargo-audit); test-* jobs skipped

Post-deploy verification

TERRA_RPC_URL=https://terra-classic-rpc.publicnode.com:443 \
TERRA_LCD_URL=https://terra-classic-lcd.publicnode.com \
VERIFY_CONFIG_EXPECT_GOVERNANCE=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 \
VERIFY_CONFIG_EXPECT_TREASURY=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 \
VERIFY_CONFIG_EXPECT_DEFAULT_FEE_BPS=180 \
VERIFY_CONFIG_MIN_WHITELISTED_CODE_IDS=2 \
VERIFY_CONFIG_MIN_TIERS=11 \
  make qa-verify-deploy-config
# (addresses injected from deployments/mainnet-soft-launch/addresses.env into indexer/.env for the run)

PAIR_ADDR=terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4 \
OFFER_TOKEN=terra1dmuruhht32x8f47nvm73pwp6q7uf2jtfhdt3nxcql4mmqkyfsraqn2dt94 \
OFFER_AMOUNT=1000000 \
TERRA_LCD_URL=https://terra-classic-lcd.publicnode.com \
  ./scripts/smoke-pool-swap.sh

qa-verify-deploy-config (2026-07-12T03:42:43Z) — RESULT: PASS (12 checks, 0 failures):

=== CL8Y DEX post-deploy config verification (SEC-H03 / GitLab #441) ===
timestamp: 2026-07-12T03:42:43Z
git_sha: da811ea
lcd: https://terra-classic-lcd.publicnode.com
factory: terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea
router: terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw
fee_discount: terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz

[1/6] Factory config (query: config)...
  [PASS] governance=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
  [PASS] treasury=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
  [PASS] default_fee_bps=180
  [PASS] governance (expected)=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
  [PASS] treasury (expected)=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
  [PASS] default_fee_bps (expected)=180

[2/6] Factory whitelisted CW20 code IDs...
  [PASS] whitelisted_code_ids count=2 (min 2)
  code_ids: [6036,10184]

[3/6] Fee-discount tiers (query: get_tiers)...
  [PASS] fee_discount_tiers count=11 (min 11)

[4/6] Trusted router (query: is_trusted_router)...
  [PASS] is_trusted_router(terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw)=true

[5/6] Registered hooks on first pair (query: get_hooks)...
  pair: terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4
  hooks: []
  [PASS] no hooks registered (pool-only launch default)

[6/6] Blacklist state for clean wallet (query: blacklist_check)...
  [PASS] wallet_blacklisted(terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v)=false
  [PASS] blocked(terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v)=false

────────────────────────────────────────────────────────────────
checks: 12   failures: 0
RESULT: PASS

smoke-pool-swap (EMBER/CORAL): pool total_share=100000000000; hybrid sim offer 1000000 → return_amount=981991, commission_amount=17999. Full output: deployments/mainnet-soft-launch/smoke-pool-swap.txt.

Env/address cross-check (qa-verify-env-addresses): Coolify frontend/indexer not pinned yet — defer until frontend.env.example / indexer.env.example are applied on dex.cl8y.com / indexer.dex.cl8y.com.

Additional on-chain checks (manual)

Check Result
Wasm admin (factory/router/fee-discount) multisig terra1zlmv2…
Factory/fee-discount config.governance multisig (after [7b] handoff)
Factory treasury multisig
Factory pair_code_id / lp_token_code_id 11506 / 6036
get_pair_count 10
Fee-discount cl8y_token terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3
Router factory soft-launch factory address
Whitelist only [6036, 10184] (SL1)
Tiers 0–9 + 255 present (get_tiers count 11)
Per-pair set_discount_registry + set_discount_registry_all txs succeeded (LCD raw state probe blocked with 403 on publicnode)

Notes

  • Canonical stack is the second instantiate (bootstrap governance). Do not use orphan first attempt: factory terra1weddl9adjexzz82v2cyyh9x9mleneear0aeu55eyj22287pzsyls3c4qjz, fee-discount terra15a5s3s9wexcy6dvlrjua4quq03mm6ve7rh93ttvf4pup8rvlqyfqsc2sf2 (Unauthorized on add_tier).
  • Mid-deploy publicnode RPC resets / sequence mismatch; completed via ./scripts/resume-mainnet-soft-launch-pairs.sh.
  • Soft launch = non-economic gemstones only; Coolify cutover still outstanding after this chain trace.
  • make qa-verify-deploy-config defaults to LocalTerra RPC; for mainnet set TERRA_RPC_URL / TERRA_LCD_URL and provide factory/router/fee addresses via indexer/.env (script does not yet honor bare FACTORY_ADDRESS= env alone).
# Deploy trace — columbus-5 — 2026-07-12 UTC Filled from [`docs/templates/deploy-trace.md`](../../docs/templates/deploy-trace.md) for soft-launch (non-economic). Paste onto [#391](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/391). | Field | Value | |-------|-------| | **Operator** | answorld (`cl8ydeploy`) | | **Governance multisig** | `terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7` | | **Network / chain ID** | columbus-5 | | **Deploy type** | initial launch (mainnet soft launch — non-economic CW20) | | **Git SHA** | `da811ea6763e94162d57294d34c6dc71d68c9338` | | **Git describe** | `brouie-review-1238-gda811ea-dirty` (working tree had soft-launch script/docs fixes after store; **on-chain wasm hashes match local artifacts**) | | **Terra Classic chain version** | terrad client `3.5.0-rc.0`; remote `node_info.version` `0.38.19`; sample height ~`29458706` | | **RPC / LCD** | `https://terra-classic-rpc.publicnode.com:443` / `https://terra-classic-lcd.publicnode.com` | | **Deployer** | `terra1hu4zggf3f8yw6jw3rxrjxn2drwad675gq5k2lv` | | **Addresses file** | `deployments/mainnet-soft-launch/addresses.env` | ### Contract code IDs | Contract | Code ID | Address (if instantiated) | Store tx | |----------|---------|---------------------------|----------| | Factory | 11505 | `terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea` | `E268F6B8661461386FEE00F8E886E094BD73D8561D1BCAAB12DDF50352A6626E` | | Pair | 11506 | (template; 10 instances below) | `DC60D2A137141689E8195272EA825C6A4079CF5A994E673B41CD4A476D937964` | | Router | 11507 | `terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw` | `E56363CC04DD29FA52325F5035840A64065DFE1CEFCBE50F2FD20224A51C17FC` | | Fee-discount | 11508 | `terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz` | `8D11905C70E18ED2EBACFD08A5468DA4353DCB4FD33F587AF55C435382CE5998` | | Hook(s) | — | none (pool-only soft launch) | — | | CW20 base (reuse) | 6036 | QUARTZ + PEARL + LP tokens | Terraswap mainnet | | CW20 mintable (reuse) | 10184 | EMBER…TOPAZ | PlasticDigits cw20-mintable | **Canonical instantiate txs (bootstrap-governance run):** factory `69B1BAEF747D61900A27ED7D1DB6B786A24681F9D1AA6B2E143A047D3DAFE135`, router `F5EB88CDC31B78D1DAC77B3B2D838268DC86B7654BA4C15718FBCE735825C629`, fee-discount `9C7C2550B03596C598053C4A3C83E7E5B400610D60263642D4720A136F0FF543`. **Handoff:** fee-discount `update_config` `C9F7D3751EA2190B26A14B4DA38645B2AC141D1612A084D44C9FA1A1BCFD1BC6`; factory `update_config` `D7689FA31B479937D39A2468BFE6BB1522202E19FAD4BD4137894ECFE6513640`. `set_discount_registry_all` `1695ADE7D5E5B7496708737E940BC8DA9723908DEB48C80FC720B915F65D0C1C`. ### Soft-launch tokens + pairs | Symbol | Kind | Address | |--------|------|---------| | EMBER | mintable | `terra1dmuruhht32x8f47nvm73pwp6q7uf2jtfhdt3nxcql4mmqkyfsraqn2dt94` | | CORAL | mintable | `terra1k6cqupylk0wp4pj273pntwhv9py0q5guyqye8ssvukn9xq7mes7sdlmena` | | JADE | mintable | `terra1ejq3mjjgnklpa3pg4jterlfwsny055gpmcjf3fz0ev3ueajnzeysz6xxgr` | | ONYX | mintable | `terra178fgrfzv7njtmdp9vghyf2dx77sah8u8jluzs7ym562chaxnmj2s6mn6m9` | | RUBY | mintable | `terra1fga508hzx8dd7x8q4uhm6mdhkqv6fxrtsea3r27smdqmv5k2jgxq5zk9fc` | | TOPAZ | mintable | `terra12k67cvfs7y7g8lca3qr4g4py6s6j69fu24gze5pjfamfpckv8mps7cymme` | | QUARTZ | base | `terra17dpnjlpgsnm8muu4msfjra4f2hrptnjp2jdpkka4p0e3px42ayxq0pmc2z` | | PEARL | base | `terra18fzufz8cs7ez49xjwgs248x85za5v50yug55fj7lyxp9hapxyr7qnh3czs` | | Pair | Address | `total_share` (verified) | |------|---------|--------------------------| | EMBER/CORAL | `terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4` | `100000000000` | | EMBER/JADE | `terra1y5xxv980jn0qu7n7y3slhtjehta6nlpqjkgcxl80uetdx84dxa4qegjhtx` | `10000000000` | | EMBER/ONYX | `terra16827w2c7zcvetck9xz8d6ds3379v77gelwra6jdafqkx9q9u0r8qvkluu0` | `14142135623` | | CORAL/RUBY | `terra1ra7cugjhchr45kdupxe2al5fna0zxu6syl8xhpanfk8dsvkq9lksf6fm9l` | `7071067811` | | JADE/TOPAZ | `terra1nqjvd2xatac5ydcs6nstw7zp2yjc20p632ycxtevtf3rr2554fqswstx0n` | `100000000000` | | ONYX/QUARTZ | `terra1havxdjfyphjazc342r3cj2n3kslsptac2eunvw8uzayusywg9t4shtuz7v` | `70710678118` | | RUBY/PEARL | `terra1p0sd0t2ggm9ye43gp0ryadx3wwkz5hzn99hnz93ve99397xvuufsvsmw73` | `7071067811` | | EMBER/QUARTZ | `terra1mp72n97rzwmqwudzycjj0e4jveetjnp622gnprv6ugqt3hfxg60sr5gkjm` | `50000000000` | | CORAL/PEARL | `terra16k6huf87gzvnlgpvf85f8xfgawl6y2l5d4d5qdpyhknqaran9s5qx63c3r` | `70710678118` | | JADE/ONYX | `terra1pc7dvcucrl9sr4r2nhr2rv3ywhthskqqtvtvaerx9cff7l8gesdskjgmn6` | `100000000000` | ### Wasm artifact hashes (`smartcontracts/artifacts/` — matches on-chain `data_hash`) ``` 61f8a1956a4b6cb1702ba071b1a8c6cf8e499d6db627a77d828c8cccb39ce45d cl8y_dex_factory.wasm 50ad70c579e4c376a90c103f4a5965baaa1d4957442b974aaa3fffd880943ba4 cl8y_dex_pair.wasm f31a4aad4609572eea840c68a0afed20cca57b914c7cfb27d47bf22d51d19282 cl8y_dex_router.wasm 7ae5fd86fc77491f83db60d48aca8af79883f5edfe2d4de6832c45824fa8a4a9 cl8y_dex_fee_discount.wasm ``` On-chain code `data_hash` (LCD `/cosmwasm/wasm/v1/code/{id}`): **MATCH** for 11505–11508. ### Test results (pre-deploy evidence — SEC-H08) | Suite | Command | Evidence | |-------|---------|----------| | Contracts | `make test-contracts` | **Not green on deploy SHA.** Pipeline [2670191691](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/pipelines/2670191691) failed `cargo-audit-smartcontracts` / `cargo-audit-indexer`; `test-contracts` / `test-frontend` / `test-indexer-integration` were **skipped**. Risk acceptance: soft-launch proceeds on artifact↔chain hash match + post-deploy verify. | | Indexer integration | `make test-indexer-integration` | Skipped in same pipeline (see above). | | Frontend unit | `make test-frontend` | Skipped in same pipeline (see above). | | Soft-launch defaults | `make test-mainnet-soft-launch-defaults` | Local unit path for defaults/wiring (pre-deploy). | | Fee-tier docs | `make check-fee-discount-tier-docs` | `OK: 11 tiers aligned` (verified 2026-07-12). | | Pool swap smoke | `./scripts/smoke-pool-swap.sh` | See post-deploy below. | ``` Pipeline for da811ea: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/pipelines/2670191691 status=failed (cargo-audit); test-* jobs skipped ``` ### Post-deploy verification ```bash TERRA_RPC_URL=https://terra-classic-rpc.publicnode.com:443 \ TERRA_LCD_URL=https://terra-classic-lcd.publicnode.com \ VERIFY_CONFIG_EXPECT_GOVERNANCE=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 \ VERIFY_CONFIG_EXPECT_TREASURY=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 \ VERIFY_CONFIG_EXPECT_DEFAULT_FEE_BPS=180 \ VERIFY_CONFIG_MIN_WHITELISTED_CODE_IDS=2 \ VERIFY_CONFIG_MIN_TIERS=11 \ make qa-verify-deploy-config # (addresses injected from deployments/mainnet-soft-launch/addresses.env into indexer/.env for the run) PAIR_ADDR=terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4 \ OFFER_TOKEN=terra1dmuruhht32x8f47nvm73pwp6q7uf2jtfhdt3nxcql4mmqkyfsraqn2dt94 \ OFFER_AMOUNT=1000000 \ TERRA_LCD_URL=https://terra-classic-lcd.publicnode.com \ ./scripts/smoke-pool-swap.sh ``` **`qa-verify-deploy-config` (2026-07-12T03:42:43Z) — RESULT: PASS (12 checks, 0 failures):** ``` === CL8Y DEX post-deploy config verification (SEC-H03 / GitLab #441) === timestamp: 2026-07-12T03:42:43Z git_sha: da811ea lcd: https://terra-classic-lcd.publicnode.com factory: terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea router: terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw fee_discount: terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz [1/6] Factory config (query: config)... [PASS] governance=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 [PASS] treasury=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 [PASS] default_fee_bps=180 [PASS] governance (expected)=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 [PASS] treasury (expected)=terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7 [PASS] default_fee_bps (expected)=180 [2/6] Factory whitelisted CW20 code IDs... [PASS] whitelisted_code_ids count=2 (min 2) code_ids: [6036,10184] [3/6] Fee-discount tiers (query: get_tiers)... [PASS] fee_discount_tiers count=11 (min 11) [4/6] Trusted router (query: is_trusted_router)... [PASS] is_trusted_router(terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw)=true [5/6] Registered hooks on first pair (query: get_hooks)... pair: terra1klwuxas6x7p6fjde60kq70t0hu86wvt3fvyr2vgs0nn32fnv0q4qwznwp4 hooks: [] [PASS] no hooks registered (pool-only launch default) [6/6] Blacklist state for clean wallet (query: blacklist_check)... [PASS] wallet_blacklisted(terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v)=false [PASS] blocked(terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v)=false ──────────────────────────────────────────────────────────────── checks: 12 failures: 0 RESULT: PASS ``` **`smoke-pool-swap` (EMBER/CORAL):** pool `total_share=100000000000`; hybrid sim offer `1000000` → `return_amount=981991`, `commission_amount=17999`. Full output: `deployments/mainnet-soft-launch/smoke-pool-swap.txt`. **Env/address cross-check (`qa-verify-env-addresses`):** Coolify frontend/indexer not pinned yet — defer until `frontend.env.example` / `indexer.env.example` are applied on `dex.cl8y.com` / `indexer.dex.cl8y.com`. ### Additional on-chain checks (manual) | Check | Result | |-------|--------| | Wasm admin (factory/router/fee-discount) | multisig `terra1zlmv2…` | | Factory/fee-discount `config.governance` | multisig (after [7b] handoff) | | Factory treasury | multisig | | Factory `pair_code_id` / `lp_token_code_id` | 11506 / 6036 | | `get_pair_count` | 10 | | Fee-discount `cl8y_token` | `terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3` | | Router `factory` | soft-launch factory address | | Whitelist | **only** `[6036, 10184]` (SL1) | | Tiers 0–9 + 255 | present (`get_tiers` count 11) | | Per-pair `set_discount_registry` + `set_discount_registry_all` | txs succeeded (LCD raw state probe blocked with 403 on publicnode) | ### Notes - **Canonical stack** is the second instantiate (bootstrap governance). Do **not** use orphan first attempt: factory `terra1weddl9adjexzz82v2cyyh9x9mleneear0aeu55eyj22287pzsyls3c4qjz`, fee-discount `terra15a5s3s9wexcy6dvlrjua4quq03mm6ve7rh93ttvf4pup8rvlqyfqsc2sf2` (Unauthorized on `add_tier`). - Mid-deploy publicnode RPC resets / sequence mismatch; completed via `./scripts/resume-mainnet-soft-launch-pairs.sh`. - Soft launch = non-economic gemstones only; Coolify cutover still outstanding after this chain trace. - `make qa-verify-deploy-config` defaults to LocalTerra RPC; for mainnet set `TERRA_RPC_URL` / `TERRA_LCD_URL` and provide factory/router/fee addresses via `indexer/.env` (script does not yet honor bare `FACTORY_ADDRESS=` env alone).
PlasticDigits commented 2026-08-15 22:29:43 +00:00 (Migrated from gitlab.com)

mentioned in issue #514

mentioned in issue #514
PlasticDigits commented 2026-08-15 22:29:43 +00:00 (Migrated from gitlab.com)

Deploy trace — columbus-5 — 2026-08-15 UTC (#514 / MR !1058)

Field Value
Operator answorld (cl8ydeploy store; 2-of-3 migrate)
Governance multisig terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7
Network / chain ID columbus-5
Deploy type migration (fee-discount 1.1.0 + pair 1.12.0; factory pair_code_id pointer)
Git SHA (MR merge) 2b9290f33a1a6cc7331827f442a0ac13fa45c5b5
Terra Classic chain version LCD node_info.version 0.38.19; app 4.0.1
RPC / LCD https://terra-classic-rpc.publicnode.com:443 / https://terra-classic-lcd.publicnode.com

Contract code IDs

Contract Code ID Address
Factory 11578 (unchanged) terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea
Pair (template + all 13 instances) 11580 factory pair_code_id now 11580
Router (unchanged) terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw
Fee-discount 11581 terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz
LP token 10184 unchanged

Wasm artifact hashes (on-chain data_hash = local sha256)

056749bc6f48fd567893e4bcac98583fd73f38c29bf1bdcfda8301e60ca2d73a  cl8y_dex_pair.wasm   (code 11580)
5dbade9266d9112f28b09f72d5a8a1377ce17caac1ea2470a407d15c66616c8e  cl8y_dex_fee_discount.wasm (code 11581)

Store: pair 10F0E1C1… · fee-discount 6581E6AF…

Post-deploy verification

  • Fee-discount GetTiers tier 9: discount_bps 9500, limit_discount_bps 10000.
  • T9 MM terra12z8vz3vgnalt8trykd6nntdyp54e95yqsdtjj3 GetDiscount: same; unregistered both 0.
  • All 13 factory pairs contract_info.code_id = 11580; EMBER/CORAL GetFeeConfig still 180 bps / CMM treasury.
  • make smoke-pool-swap (EMBER/CORAL, 1e6 EMBER pool-only): OK.

Full tx table + I13 notes: #514

Frontend Coolify rebuild of dex.cl8y.com in progress (not this trace).

## Deploy trace — columbus-5 — 2026-08-15 UTC (#514 / MR !1058) | Field | Value | |-------|-------| | **Operator** | answorld (`cl8ydeploy` store; 2-of-3 migrate) | | **Governance multisig** | `terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7` | | **Network / chain ID** | columbus-5 | | **Deploy type** | migration (fee-discount 1.1.0 + pair 1.12.0; factory `pair_code_id` pointer) | | **Git SHA (MR merge)** | `2b9290f33a1a6cc7331827f442a0ac13fa45c5b5` | | **Terra Classic chain version** | LCD `node_info.version` `0.38.19`; app `4.0.1` | | **RPC / LCD** | `https://terra-classic-rpc.publicnode.com:443` / `https://terra-classic-lcd.publicnode.com` | ### Contract code IDs | Contract | Code ID | Address | |----------|---------|---------| | Factory | 11578 (unchanged) | `terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea` | | Pair (template + all 13 instances) | **11580** | factory `pair_code_id` now 11580 | | Router | (unchanged) | `terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw` | | Fee-discount | **11581** | `terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz` | | LP token | 10184 | unchanged | ### Wasm artifact hashes (on-chain `data_hash` = local sha256) ``` 056749bc6f48fd567893e4bcac98583fd73f38c29bf1bdcfda8301e60ca2d73a cl8y_dex_pair.wasm (code 11580) 5dbade9266d9112f28b09f72d5a8a1377ce17caac1ea2470a407d15c66616c8e cl8y_dex_fee_discount.wasm (code 11581) ``` Store: pair [10F0E1C1…](https://finder.terraclassic.community/columbus-5/tx/10F0E1C129CB5664B62231354AD91C951ADDE1D89A43383118DFFC9AE2222231) · fee-discount [6581E6AF…](https://finder.terraclassic.community/columbus-5/tx/6581E6AFCDE447D6A8BBDF6DB6DA808490864222BDEBE1C4D318EC5E3EF27045) ### Post-deploy verification - Fee-discount `GetTiers` tier 9: `discount_bps` 9500, `limit_discount_bps` 10000. - T9 MM `terra12z8vz3vgnalt8trykd6nntdyp54e95yqsdtjj3` `GetDiscount`: same; unregistered both 0. - All 13 factory pairs `contract_info.code_id` = 11580; EMBER/CORAL `GetFeeConfig` still 180 bps / CMM treasury. - `make smoke-pool-swap` (EMBER/CORAL, 1e6 EMBER pool-only): OK. Full tx table + I13 notes: #514 Frontend Coolify rebuild of `dex.cl8y.com` in progress (not this trace).
PlasticDigits commented 2026-08-16 08:43:17 +00:00 (Migrated from gitlab.com)

mentioned in issue #532

mentioned in issue #532
PlasticDigits commented 2026-08-20 13:31:31 +00:00 (Migrated from gitlab.com)

mentioned in issue #584

mentioned in issue #584
PlasticDigits commented 2026-08-20 14:43:29 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1108

mentioned in merge request !1108
PlasticDigits commented 2026-08-21 00:46:45 +00:00 (Migrated from gitlab.com)

F6 / #584 columbus-5 migrate is partial (factory 1.9.0 / code 11602; 11/14 pairs on 11601 / 1.15.0). Three pairs still 11586 / 1.14.0 after publicnode RPC resets. Full tx table + remaining addrs are on #584. Launch BLOCK remains until 14/14 smoke.

F6 / #584 columbus-5 migrate is **partial** (factory 1.9.0 / code 11602; **11/14** pairs on 11601 / 1.15.0). Three pairs still 11586 / 1.14.0 after publicnode RPC resets. Full tx table + remaining addrs are on #584. Launch BLOCK remains until 14/14 smoke.
PlasticDigits commented 2026-08-21 00:50:25 +00:00 (Migrated from gitlab.com)

F6 / #584 columbus-5 migrate complete. Factory 1.9.0 / code 11602; all 14 pairs 1.15.0 / 11601; pair_code_id 11601 (F8F97C11…1787). Smoke 14/14 on #584. #581 / 8266 still blocked on source review.

F6 / #584 columbus-5 migrate **complete**. Factory **1.9.0** / code **11602**; all **14** pairs **1.15.0** / **11601**; `pair_code_id` **11601** (`F8F97C11…1787`). Smoke 14/14 on #584. #581 / 8266 still blocked on source review.
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/cl8y-dex-terraclassic#391
No description provided.