Post-upgrade full review: Terra Classic bidirectional swaps (operator, canceler, contracts, bridge) before economic tokens #111

Closed
opened 2026-04-17 07:23:59 +00:00 by PlasticDigits · 7 comments
PlasticDigits commented 2026-04-17 07:23:59 +00:00 (Migrated from gitlab.com)

Summary

The bridge is currently restricted to noneconomic (test) tokens only. After the bridge upgrade and the Terra Classic chain upgrade, we need a full end-to-end verification that the operator, canceler, smart contracts (EVM, CosmWasm, Solana), and bridge services behave correctly for bidirectional swaps involving Terra Classic to every other supported chain before re-enabling economic tokens.

Requested action: @brouie — please conduct a full review of test evidence, configuration, and on-chain/off-chain behavior against this checklist, and sign off (or file blocking items) before economic tokens are turned back on.


Terra Classic chain upgrade (today)

Public announcement context (validators / network upgrade):

Item Detail
Upgrade Terra Classic v4.0.0
Cosmos SDK 0.53
Approx. time ~15:04 UTC (today)
Target height Block 28,214,400
Operational note Avoid using the chain during the upgrade window for safety.

Reference: X post (nuenghandsome)

Implications for testing: RPC/LCD endpoints may be unstable during the upgrade; schedule post-upgrade smoke tests and full matrix tests once columbus-5 is stable and finality behaves as expected.


Pre-flight (post chain upgrade)

  • Confirm Terra Classic RPC and LCD (and any fallback URLs used by operator/canceler/frontend) respond normally; note block height past 28,214,400 and no sustained query failures.
  • Confirm chain ID remains columbus-5 and Tendermint / SDK behavior matches expectations (e.g. tx indexing, events, gas).
  • Verify deployed Terra bridge contract address and related CW20 / native token registrations match documented production config (README / deployment docs).
  • Confirm EVM bridge addresses (BSC, opBNB) and Solana program / BridgeConfig PDA match production env for the upgraded bridge rollout.

CosmWasm (Terra Classic) contracts

  • Instantiate/config matches intended fee bps, fee collector, admin, relayer set / min signatures (per product requirements).
  • Supported chains and token mappings (native + CW20) are complete and consistent with EVM TokenRegistry / Solana mint mappings where applicable.
  • Deposit / withdraw paths execute without revert for noneconomic test tokens on all Terra↔other-chain routes in scope.
  • Events emitted on Terra match what the operator indexes (and match transfer hash expectations).

EVM contracts (BSC, opBNB)

  • Bridge state: operators, cancelers, pause/guard configuration as intended; getCancelerCount() > 0 on EVM bridges where cancelers are required (watchtower gap if zero).
  • ChainRegistry / TokenRegistry entries for Terra (bytes4 chain id for Terra Classic) and paired tokens are correct after upgrade.
  • Lock/unlock and mint/burn paths for Terra-related routes behave correctly; fees and decimals match spec.
  • Guard stack (if enabled): GuardBridge, rate limits, and AccessManager roles align with runbook (no accidental lock of operator paths).

Solana program

  • Program ID and BridgeConfig PDA match production configuration.
  • Noneconomic SPL test mints (if still used in the matrix) match env; operator/canceler/frontend use the same mint addresses.
  • Terra ↔ Solana routes: deposit/withdraw, operator signing, and canceler visibility of transfer data.

Operator (relayer)

  • Healthy connectivity to Terra RPC/LCD, each EVM RPC, and Solana RPC/WS as configured.
  • Database (pending transfers, nonces, replay protection) consistent; no stuck or duplicate processing after upgrade.
  • Signing keys and operator addresses match on-chain operator registration on each chain.
  • End-to-end relay for Terra → (BSC, opBNB, Solana) and → Terra for every required token type in the test matrix (native, CW20, ERC20, SPL as applicable).
  • Error handling under RPC degradation (retries, backoff) verified at least once in staging or controlled test.

Canceler (watchtower)

  • Cancelers registered on every chain where required; addresses match deployment docs.
  • Transfer hash parity: Terra-side and counterparty hashes match for sampled transfers (V2 7-field hash across Solidity / Rust / CosmWasm per repo docs).
  • Fraud / mismatch paths: canceler correctly flags or cancels inconsistent proposals per design (run canceler-focused tests where available).
  • Latency: canceler observes deposits and destination activity within acceptable bounds post-upgrade.

Bidirectional swap matrix (Terra Classic)

Complete both directions for each pair (minimum noneconomic tokens; expand if economic dry-run is staged separately):

From → To Terra → → Terra
BSC [ ] [ ]
opBNB [ ] [ ]
Solana [ ] [ ]

For each cell:

  • Balance accounting: source deducted, destination credited, fees to collector/fee vault as expected.
  • Decimals / rounding correct (including CW20 vs ERC20 vs SPL).
  • Frontend (or scripted) flow completes without user-facing errors; wallet connects and signs (Keplr/Station/etc. for Terra; EVM/Solana as applicable).

Economic tokens (reenable gate)

  • Explicit decision to move from noneconomic-only to economic tokens only after the matrix above is green.
  • Token allowlists and guard/rate limits reviewed for production economic assets.
  • Communications / runbooks updated if any address or procedure changed during the bridge upgrade.

Automated tests & evidence

  • make test-operator / make test-canceler (or CI equivalent) pass on the release branch.
  • Integration / E2E relevant to Terra routes executed where infrastructure allows (make e2e-test subsets: Terra↔EVM, canceler, etc.).
  • Attach logs, tx hashes, and short summary of the manual matrix to the issue or linked doc for audit trail.

Sign-off

  • @brouie — Full review complete; approved to reenable economic tokens — yes / no (if no, list blockers).
  • Date / revision of bridge + chain versions verified: _______________

Issue created to coordinate post–Terra Classic v4.0.0 / Cosmos SDK 0.53 upgrade validation before restoring economic-token bridging.

## Summary The bridge is currently restricted to **noneconomic (test) tokens only**. After the **bridge upgrade** and the **Terra Classic chain upgrade**, we need a **full end-to-end verification** that the **operator**, **canceler**, **smart contracts** (EVM, CosmWasm, Solana), and **bridge services** behave correctly for **bidirectional swaps involving Terra Classic** to **every other supported chain** before **re-enabling economic tokens**. **Requested action:** @brouie — please conduct a **full review** of test evidence, configuration, and on-chain/off-chain behavior against this checklist, and sign off (or file blocking items) before economic tokens are turned back on. --- ## Terra Classic chain upgrade (today) Public announcement context (validators / network upgrade): | Item | Detail | |------|--------| | **Upgrade** | Terra Classic **v4.0.0** | | **Cosmos SDK** | **0.53** | | **Approx. time** | **~15:04 UTC** (today) | | **Target height** | Block **28,214,400** | | **Operational note** | Avoid using the chain during the upgrade window for safety. | Reference: [X post (nuenghandsome)](https://x.com/nuenghandsome/status/2045036614620176433) **Implications for testing:** RPC/LCD endpoints may be unstable during the upgrade; schedule **post-upgrade** smoke tests and full matrix tests once `columbus-5` is stable and finality behaves as expected. --- ## Pre-flight (post chain upgrade) - [ ] Confirm Terra Classic **RPC** and **LCD** (and any fallback URLs used by operator/canceler/frontend) respond normally; note block height past **28,214,400** and no sustained query failures. - [ ] Confirm **chain ID** remains **`columbus-5`** and **Tendermint / SDK** behavior matches expectations (e.g. tx indexing, events, gas). - [ ] Verify **deployed Terra bridge contract address** and related **CW20 / native** token registrations match documented production config (README / deployment docs). - [ ] Confirm **EVM bridge addresses** (BSC, opBNB) and **Solana program / BridgeConfig PDA** match production env for the upgraded bridge rollout. --- ## CosmWasm (Terra Classic) contracts - [ ] **Instantiate/config** matches intended **fee bps**, **fee collector**, **admin**, **relayer set** / **min signatures** (per product requirements). - [ ] **Supported chains** and **token mappings** (native + CW20) are complete and consistent with **EVM TokenRegistry** / **Solana mint** mappings where applicable. - [ ] **Deposit / withdraw** paths execute without revert for **noneconomic** test tokens on **all** Terra↔other-chain routes in scope. - [ ] **Events** emitted on Terra match what the **operator** indexes (and match **transfer hash** expectations). --- ## EVM contracts (BSC, opBNB) - [ ] **Bridge** state: operators, cancelers, pause/guard configuration as intended; **`getCancelerCount() > 0`** on EVM bridges where cancelers are required (watchtower gap if zero). - [ ] **ChainRegistry / TokenRegistry** entries for Terra (`bytes4` chain id for Terra Classic) and paired tokens are correct after upgrade. - [ ] **Lock/unlock** and **mint/burn** paths for Terra-related routes behave correctly; **fees** and **decimals** match spec. - [ ] **Guard stack** (if enabled): **GuardBridge**, rate limits, and **AccessManager** roles align with runbook (no accidental lock of operator paths). --- ## Solana program - [ ] **Program ID** and **BridgeConfig PDA** match production configuration. - [ ] **Noneconomic SPL test mints** (if still used in the matrix) match env; **operator/canceler/frontend** use the same mint addresses. - [ ] **Terra ↔ Solana** routes: deposit/withdraw, **operator** signing, and **canceler** visibility of transfer data. --- ## Operator (relayer) - [ ] **Healthy connectivity** to Terra **RPC/LCD**, each **EVM** RPC, and **Solana** RPC/WS as configured. - [ ] **Database** (pending transfers, nonces, replay protection) consistent; no stuck or duplicate processing after upgrade. - [ ] **Signing keys** and **operator addresses** match on-chain **operator** registration on **each** chain. - [ ] **End-to-end relay** for **Terra →** (BSC, opBNB, Solana) and **→ Terra** for every required token type in the test matrix (native, CW20, ERC20, SPL as applicable). - [ ] **Error handling** under RPC degradation (retries, backoff) verified at least once in staging or controlled test. --- ## Canceler (watchtower) - [ ] **Cancelers registered** on every chain where required; addresses match deployment docs. - [ ] **Transfer hash parity**: Terra-side and counterparty hashes match for sampled transfers (V2 7-field hash across Solidity / Rust / CosmWasm per repo docs). - [ ] **Fraud / mismatch** paths: canceler correctly flags or cancels inconsistent proposals per design (run canceler-focused tests where available). - [ ] **Latency**: canceler observes deposits and destination activity within acceptable bounds post-upgrade. --- ## Bidirectional swap matrix (Terra Classic) Complete **both directions** for each pair (minimum noneconomic tokens; expand if economic dry-run is staged separately): | From → To | Terra → | → Terra | |-------------|---------|---------| | **BSC** | [ ] | [ ] | | **opBNB** | [ ] | [ ] | | **Solana** | [ ] | [ ] | For each cell: - [ ] **Balance accounting**: source deducted, destination credited, **fees** to collector/fee vault as expected. - [ ] **Decimals / rounding** correct (including CW20 vs ERC20 vs SPL). - [ ] **Frontend** (or scripted) flow completes without user-facing errors; wallet connects and signs (Keplr/Station/etc. for Terra; EVM/Solana as applicable). --- ## Economic tokens (reenable gate) - [ ] **Explicit decision** to move from **noneconomic-only** to **economic** tokens only after the matrix above is green. - [ ] **Token allowlists** and **guard/rate limits** reviewed for production economic assets. - [ ] **Communications / runbooks** updated if any address or procedure changed during the bridge upgrade. --- ## Automated tests & evidence - [ ] `make test-operator` / `make test-canceler` (or CI equivalent) pass on the release branch. - [ ] **Integration / E2E** relevant to Terra routes executed where infrastructure allows (`make e2e-test` subsets: Terra↔EVM, canceler, etc.). - [ ] Attach **logs**, **tx hashes**, and **short summary** of the manual matrix to the issue or linked doc for audit trail. --- ## Sign-off - [ ] **@brouie** — Full review complete; **approved to reenable economic tokens** — yes / no (if no, list blockers). - [ ] Date / revision of bridge + chain versions verified: _______________ --- *Issue created to coordinate post–Terra Classic v4.0.0 / Cosmos SDK 0.53 upgrade validation before restoring economic-token bridging.*
PlasticDigits commented 2026-04-17 07:23:59 +00:00 (Migrated from gitlab.com)

assigned to @Brouie

assigned to @Brouie
Brouie commented 2026-04-20 05:02:20 +00:00 (Migrated from gitlab.com)

mentioned in issue #96

mentioned in issue #96
Brouie commented 2026-04-20 05:35:45 +00:00 (Migrated from gitlab.com)

@PlasticDigits Post-upgrade verification progress on build v0.1.82 - f227b6f, 4/20 mainnet.

Pre-flight (post Terra chain upgrade)

  • Terra Classic RPC/LCD respond normally. terra-classic-lcd.publicnode.com responsive.
  • Chain ID confirmed columbus-5 (unchanged)
  • Block height 28,251,127 -- past upgrade target 28,214,400 by ~37K blocks
  • Terra tx indexing verified post-upgrade: our BSC->Terra nonce 48 tx DB9291829BB0B8D7E4D3412570A50DFAF9A0FF5E3E142B3C6FCECFB28675734E indexed at height 28,250,227, code 0 success, timestamp 2026-04-20T03:47:51Z
  • Terra bridge contract address verified (operational via live transfers)
  • EVM bridge addresses verified on-chain:
    • BSC Bridge: 0xb2a22c74da8e3642e0effc107d3ac362ce885369
    • Owner: 0xCd4Eb82CFC16d5785b4f7E3bFC255E735e79F39c
  • Solana program / BridgeConfig PDA verified on mainnet-beta:
    • Program: 4XX8ndYXupw4Sb4SsRgAPTmBJJjfZbg8rWjj87iKEhVt
    • BridgeConfig: HarAAW2pPcgBwMhcwRsUxRqiDeihCJVjZCmdCWpJbmsD

EVM contracts

  • getCancelerCount() > 0 on BSC and opBNB (verified 4/8 on-chain)
  • ChainRegistry: all 4 chains registered (BSC 0x38, Terra 0x01, opBNB 0xcc, Solana 0x05)
  • rateLimitBridge + guardBridge wired on both BSC and opBNB
  • Test token mappings (testa/testb/tdec) registered across all chains
  • Lock/unlock and mint/burn paths working (18/18 EVM<->Terra E2E pass)

Solana program

  • Program ID and BridgeConfig PDA match production
  • SPL test mints confirmed (testa, testb, tdec on mainnet-beta)
  • WithdrawRateLimit PDAs set for all 3 test tokens (verified on #108 today)
  • Terra<->Solana routes: Terra->Solana 4/4 pass today

Operator (relayer)

  • Connectivity healthy -- all paths executing
  • Operator registered on all 4 chains (approvals succeeded on all paths)
  • E2E relay verified: Terra->BSC n60, BSC->Terra n48, opBNB->Solana n27 all complete today
  • Error handling under RPC degradation -- not specifically staged but observed working (block height exceeded retries succeed)

Canceler (watchtower)

  • 1 canceler on BSC, 1 on opBNB (on-chain confirmed)
  • Latency post-upgrade -- observed working on live transfers, no quantitative latency measurement yet

Bidirectional swap matrix (Terra Classic)

From -> To Terra -> -> Terra
BSC [x] n60 4/20 PASS [x] n48 4/20 PASS
opBNB [x] verified 4/9 [x] verified 4/9
Solana [x] n58/n59 PASS 4/13 [ ] Not tested (no SPL faucet)

Terra->Solana tested today. Solana->Terra outbound blocked by lack of SPL faucet on mainnet.

Automated tests

  • Bridge repo tests: 596/596 passing (verified 4/16)
  • E2E tests passing per CI (last confirmed on 4/16 pulls)

Sign-off

Still open: Solana->Terra outbound path (faucet blocker), operator RPC degradation staged test. Everything else covered by live mainnet activity this week.

Recommend NOT yet enabling economic tokens until:

  1. #106 (step 4/5 UI hang) resolved -- cosmetic but user-confusing on Solana transfers
  2. #101 (MIN off-by-one on BSC->Terra) fixed -- blocks users from sending exact minimum
  3. #108 UX portion (Solana execute below-min block) implemented

Technical path matrix is healthy. UX polish items above are the remaining gates from my side.

@PlasticDigits Post-upgrade verification progress on build v0.1.82 - f227b6f, 4/20 mainnet. ## Pre-flight (post Terra chain upgrade) - [x] Terra Classic RPC/LCD respond normally. terra-classic-lcd.publicnode.com responsive. - [x] Chain ID confirmed **columbus-5** (unchanged) - [x] Block height **28,251,127** -- past upgrade target 28,214,400 by ~37K blocks - [x] Terra tx indexing verified post-upgrade: our BSC->Terra nonce 48 tx DB9291829BB0B8D7E4D3412570A50DFAF9A0FF5E3E142B3C6FCECFB28675734E indexed at height 28,250,227, code 0 success, timestamp 2026-04-20T03:47:51Z - [x] Terra bridge contract address verified (operational via live transfers) - [x] EVM bridge addresses verified on-chain: - BSC Bridge: 0xb2a22c74da8e3642e0effc107d3ac362ce885369 - Owner: 0xCd4Eb82CFC16d5785b4f7E3bFC255E735e79F39c - [x] Solana program / BridgeConfig PDA verified on mainnet-beta: - Program: 4XX8ndYXupw4Sb4SsRgAPTmBJJjfZbg8rWjj87iKEhVt - BridgeConfig: HarAAW2pPcgBwMhcwRsUxRqiDeihCJVjZCmdCWpJbmsD ## EVM contracts - [x] getCancelerCount() > 0 on BSC and opBNB (verified 4/8 on-chain) - [x] ChainRegistry: all 4 chains registered (BSC 0x38, Terra 0x01, opBNB 0xcc, Solana 0x05) - [x] rateLimitBridge + guardBridge wired on both BSC and opBNB - [x] Test token mappings (testa/testb/tdec) registered across all chains - [x] Lock/unlock and mint/burn paths working (18/18 EVM<->Terra E2E pass) ## Solana program - [x] Program ID and BridgeConfig PDA match production - [x] SPL test mints confirmed (testa, testb, tdec on mainnet-beta) - [x] WithdrawRateLimit PDAs set for all 3 test tokens (verified on #108 today) - [x] Terra<->Solana routes: Terra->Solana 4/4 pass today ## Operator (relayer) - [x] Connectivity healthy -- all paths executing - [x] Operator registered on all 4 chains (approvals succeeded on all paths) - [x] E2E relay verified: Terra->BSC n60, BSC->Terra n48, opBNB->Solana n27 all complete today - [ ] Error handling under RPC degradation -- not specifically staged but observed working (block height exceeded retries succeed) ## Canceler (watchtower) - [x] 1 canceler on BSC, 1 on opBNB (on-chain confirmed) - [ ] Latency post-upgrade -- observed working on live transfers, no quantitative latency measurement yet ## Bidirectional swap matrix (Terra Classic) | From -> To | Terra -> | -> Terra | |-------------|----------|----------| | **BSC** | [x] n60 4/20 PASS | [x] n48 4/20 PASS | | **opBNB** | [x] verified 4/9 | [x] verified 4/9 | | **Solana** | [x] n58/n59 PASS 4/13 | [ ] Not tested (no SPL faucet) | Terra->Solana tested today. Solana->Terra outbound blocked by lack of SPL faucet on mainnet. ## Automated tests - [x] Bridge repo tests: 596/596 passing (verified 4/16) - [x] E2E tests passing per CI (last confirmed on 4/16 pulls) ## Sign-off Still open: Solana->Terra outbound path (faucet blocker), operator RPC degradation staged test. Everything else covered by live mainnet activity this week. Recommend NOT yet enabling economic tokens until: 1. #106 (step 4/5 UI hang) resolved -- cosmetic but user-confusing on Solana transfers 2. #101 (MIN off-by-one on BSC->Terra) fixed -- blocks users from sending exact minimum 3. #108 UX portion (Solana execute below-min block) implemented Technical path matrix is healthy. UX polish items above are the remaining gates from my side.
PlasticDigits commented 2026-04-20 05:56:21 +00:00 (Migrated from gitlab.com)

For solana -> terra outbound path, we are NOT deploying faucets to mainnet. Instead tokens should be transferred from another chain to solana first, then test outbound transfers.
For RPC degradation, I have checked logs for operator and canceler and confirmed both are working in production, so those items are passing.

Agreed - once 101, 106, 108 are resolved I will reenable economic tokens.

For solana -> terra outbound path, we are NOT deploying faucets to mainnet. Instead tokens should be transferred from another chain to solana first, then test outbound transfers. For RPC degradation, I have checked logs for operator and canceler and confirmed both are working in production, so those items are passing. Agreed - once 101, 106, 108 are resolved I will reenable economic tokens.
Brouie commented 2026-04-20 09:16:28 +00:00 (Migrated from gitlab.com)

Noted on all three points:

Solana -> Terra outbound path: Understood -- no mainnet faucet. Verification flow becomes: bridge tokens INTO Solana first (from BSC or Terra), then test outbound from Solana back to Terra. I'll plan for this when validating the Solana outbound leg.

RPC degradation: Operator and canceler production logs confirm working, so those checklist items pass. Removing from my watch list.

Economic tokens: Acknowledge plan -- re-enable once #101, #106, #108 all resolved. With #101 and #108 now verified fixed on v0.1.82 - 2a127e6 (and #106 already closed), the dependency is cleared on the QA side.

Updated checklist state:

  • Pre-flight, EVM contracts, Solana program, operator, canceler: PASS
  • Bidirectional swap matrix: 18/18 EVM<->Terra PASS, 10/10 EVM<->Solana inbound PASS
  • Solana outbound: pending with new flow (tokens bridged in first)
  • Economic tokens: ready for re-enable on your timeline

Issue stays open as sign-off tracker until economic tokens are re-enabled and Solana outbound flow validated.

Noted on all three points: **Solana -> Terra outbound path:** Understood -- no mainnet faucet. Verification flow becomes: bridge tokens INTO Solana first (from BSC or Terra), then test outbound from Solana back to Terra. I'll plan for this when validating the Solana outbound leg. **RPC degradation:** Operator and canceler production logs confirm working, so those checklist items pass. Removing from my watch list. **Economic tokens:** Acknowledge plan -- re-enable once #101, #106, #108 all resolved. With #101 and #108 now verified fixed on v0.1.82 - 2a127e6 (and #106 already closed), the dependency is cleared on the QA side. Updated checklist state: - Pre-flight, EVM contracts, Solana program, operator, canceler: PASS - Bidirectional swap matrix: 18/18 EVM<->Terra PASS, 10/10 EVM<->Solana inbound PASS - Solana outbound: pending with new flow (tokens bridged in first) - Economic tokens: ready for re-enable on your timeline Issue stays open as sign-off tracker until economic tokens are re-enabled and Solana outbound flow validated.
Brouie commented 2026-04-21 05:20:05 +00:00 (Migrated from gitlab.com)

@PlasticDigits post-upgrade re-verification complete on v0.1.82 - 2a127e6.

Pre-flight (Terra Classic v4.0.0 / Cosmos SDK 0.53)

  • Terra RPC healthy past upgrade block 28,214,400 — latest block 28,264,695+ at test time, time fresh, chain_id columbus-5 confirmed
  • Terra LCD primary + 2/3 fallbacks healthy on columbus-5 (terra-classic-lcd.publicnode.com, lcd.terra-classic.hexxagon.io, terra-classic-fcd.publicnode.com)
  • Finding: fallback lcd.terra-classic.hexxagon.dev returns chain_id rebel-2 (testnet), not columbus-5 — flagged here for dev awareness, consider folding into #109
  • Bridge contract terra18m02l2f43c2dagqnz3kfccpgz9pzzz5hk9l5mh5wvr6dcvv47zfqdfs7la queryable post-upgrade, label cl8y-bridge-v2, code_id 10971, created block 27,401,342 (pre-upgrade, survived intact)
  • Config intact: admin terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l, paused=false, min_signatures=1, fee_bps=30, fee_collector terra1q7txczaxuvy923k4km9ya062dryk6mjwd6tmzm
  • Chains registered + enabled: solana_mainnet-beta (0x05), evm_56 (0x38), evm_204 (0xcc)
  • Tokens registered + enabled: testa, testb, tdec (noneconomic), CL8Y (effectively blocked via no dest mapping), uluna (native)

EVM + Solana registration (still valid from 4/8 and 4/20)

  • BSC + opBNB: isChainRegistered(0x00000001) = true (Terra) — re-verified today post-upgrade
  • Solana program + BridgeConfig PDA unchanged from mainnet config
  • WithdrawRateLimit PDAs intact: testa CJGDL5pHawva98BGawAFkGwMhZLKr4RuvqfC7iUtYkQA, testb 4dzQ7U7mwtsqZdPZGvwPi2PZbhiyZpj6KM5SinpNpgQJ, tdec 3Af1LkQo2g9xasGhCcofVnRPWJxPjSyBHnMiFdzVNRm5

Bidirectional swap matrix (post-upgrade, testa 1.99/1.994, 4/21)

Path xchainhashid Result
BSC→Terra (nonce 50) 0x4f2c4a6098c2f6dcd5f75d439eb467719c342ed8ad62b3786f0efdd6fb674c4c PASS
Terra→BSC (nonce 61) 0xb0e1cb50a7011889085935ce53a136bdad65e34f9d590e54fd23b43085e764e2 PASS
opBNB→Terra (nonce 28) 0xeae361cd677d03e2532b3420c472f6a6958fbbc55c61863cfd09aab3f4a6b0bb PASS
Terra→opBNB (nonce 62) 0xe50cb835be68b655d72a10f7f397189fe050fb9ba18209181c54f2b537784d45 PASS
BSC→Solana (nonce 51) 0xb1f9d51883c919d65d58a581196ea6c73fe92eb30525db1febc88541ffd7cd37 PASS
opBNB→Solana (nonce 29) 0x5e9c83b38218867858cecaa68b57c9db5d66dd2df2ce8cde19fd07d4e1d35d3c PASS
Terra→Solana (nonce 63) 0x6829879ebc7320925081eefc222044384898d3e44721c5da023f86403d96c32e PASS

7/7 post-upgrade E2E PASS. All 4 steps (EVM↔Terra) / 5 steps (Solana) green. Balances delivered to destination. Phantom final balance 5.974 null after 3 Solana inbound transfers (1.99 + 1.994 + 1.99).

Operator signing, canceler visibility, and event indexing all still working on columbus-5 / Cosmos SDK 0.53.

Solana outbound

Not covered — no Solana-side noneconomic faucet exists. Per your 4/20 guidance: bridge IN to Solana first (done today), then outbound. Tokens now available in Phantom for outbound testing once economic tokens re-enable.

Sign-off

Bridge + chain post-upgrade state: VERIFIED.
Economic token re-enable: deferred to your call per the gate — my side is clear on the noneconomic matrix.

Outstanding items tracked separately: #97 (keypair blocker), #98, #100-bridge, #109 (adding hexxagon.dev testnet mislabel to this), #113 (new, below-MIN UX from #112).

@PlasticDigits post-upgrade re-verification complete on v0.1.82 - 2a127e6. ## Pre-flight (Terra Classic v4.0.0 / Cosmos SDK 0.53) - Terra RPC healthy past upgrade block 28,214,400 — latest block 28,264,695+ at test time, time fresh, chain_id `columbus-5` confirmed - Terra LCD primary + 2/3 fallbacks healthy on columbus-5 (`terra-classic-lcd.publicnode.com`, `lcd.terra-classic.hexxagon.io`, `terra-classic-fcd.publicnode.com`) - **Finding:** fallback `lcd.terra-classic.hexxagon.dev` returns chain_id `rebel-2` (testnet), not `columbus-5` — flagged here for dev awareness, consider folding into #109 - Bridge contract `terra18m02l2f43c2dagqnz3kfccpgz9pzzz5hk9l5mh5wvr6dcvv47zfqdfs7la` queryable post-upgrade, label `cl8y-bridge-v2`, code_id 10971, created block 27,401,342 (pre-upgrade, survived intact) - Config intact: admin `terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l`, paused=false, min_signatures=1, fee_bps=30, fee_collector `terra1q7txczaxuvy923k4km9ya062dryk6mjwd6tmzm` - Chains registered + enabled: solana_mainnet-beta (0x05), evm_56 (0x38), evm_204 (0xcc) - Tokens registered + enabled: testa, testb, tdec (noneconomic), CL8Y (effectively blocked via no dest mapping), uluna (native) ## EVM + Solana registration (still valid from 4/8 and 4/20) - BSC + opBNB: `isChainRegistered(0x00000001)` = true (Terra) — re-verified today post-upgrade - Solana program + BridgeConfig PDA unchanged from mainnet config - WithdrawRateLimit PDAs intact: testa `CJGDL5pHawva98BGawAFkGwMhZLKr4RuvqfC7iUtYkQA`, testb `4dzQ7U7mwtsqZdPZGvwPi2PZbhiyZpj6KM5SinpNpgQJ`, tdec `3Af1LkQo2g9xasGhCcofVnRPWJxPjSyBHnMiFdzVNRm5` ## Bidirectional swap matrix (post-upgrade, testa 1.99/1.994, 4/21) | Path | xchainhashid | Result | |---|---|---| | BSC→Terra (nonce 50) | `0x4f2c4a6098c2f6dcd5f75d439eb467719c342ed8ad62b3786f0efdd6fb674c4c` | PASS | | Terra→BSC (nonce 61) | `0xb0e1cb50a7011889085935ce53a136bdad65e34f9d590e54fd23b43085e764e2` | PASS | | opBNB→Terra (nonce 28) | `0xeae361cd677d03e2532b3420c472f6a6958fbbc55c61863cfd09aab3f4a6b0bb` | PASS | | Terra→opBNB (nonce 62) | `0xe50cb835be68b655d72a10f7f397189fe050fb9ba18209181c54f2b537784d45` | PASS | | BSC→Solana (nonce 51) | `0xb1f9d51883c919d65d58a581196ea6c73fe92eb30525db1febc88541ffd7cd37` | PASS | | opBNB→Solana (nonce 29) | `0x5e9c83b38218867858cecaa68b57c9db5d66dd2df2ce8cde19fd07d4e1d35d3c` | PASS | | Terra→Solana (nonce 63) | `0x6829879ebc7320925081eefc222044384898d3e44721c5da023f86403d96c32e` | PASS | **7/7 post-upgrade E2E PASS.** All 4 steps (EVM↔Terra) / 5 steps (Solana) green. Balances delivered to destination. Phantom final balance 5.974 null after 3 Solana inbound transfers (1.99 + 1.994 + 1.99). Operator signing, canceler visibility, and event indexing all still working on columbus-5 / Cosmos SDK 0.53. ## Solana outbound Not covered — no Solana-side noneconomic faucet exists. Per your 4/20 guidance: bridge IN to Solana first (done today), then outbound. Tokens now available in Phantom for outbound testing once economic tokens re-enable. ## Sign-off Bridge + chain post-upgrade state: **VERIFIED.** Economic token re-enable: deferred to your call per the gate — my side is clear on the noneconomic matrix. Outstanding items tracked separately: #97 (keypair blocker), #98, #100-bridge, #109 (adding hexxagon.dev testnet mislabel to this), #113 (new, below-MIN UX from #112).
Brouie commented 2026-04-21 05:21:56 +00:00 (Migrated from gitlab.com)

mentioned in issue #109

mentioned in issue #109
Brouie (Migrated from gitlab.com) closed this issue 2026-04-21 05:23:19 +00:00
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-bridge-monorepo#111
No description provided.