QA: CL8Y cross-chain transfer testing — token display, amounts, rate limits #58

Closed
opened 2026-03-16 02:35:34 +00:00 by PlasticDigits · 5 comments
PlasticDigits commented 2026-03-16 02:35:34 +00:00 (Migrated from gitlab.com)

Context

CL8Y (CeramicLiberty.com) has been added to the live production bridge with:

  • BSC: Lock/Unlock via ERC20 0x8F452a1fdd388A45e1080992eFF051b4dd9048d2 (18 decimals)
  • Terra Classic: Mint/Burn via CW20 terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3 (18 decimals)
  • Rate limits: 100 CL8Y/day max, 0.1 CL8Y min per transfer
  • LockUnlock pre-funded: 500 CL8Y for Terra → BSC direction

Several frontend bugs were fixed in commit 9bf1417:

  • Token resolution for non-LUNC tokens (was hardcoded to uluna)
  • Synthetic transfer direction detection (was defaulting to evm-to-evm)
  • Premature auto-submit on page refresh (now waits for on-chain sync)
  • Step descriptions now show correct tense (active vs done)
  • 32-byte CW20 address decoding in bytes32ToTerraAddress

Test checklist

BSC → Terra Classic (Lock/Unlock → Mint/Burn)

  • Deposit CL8Y on BSC — confirm tokens locked, deposit receipt shows correct amount
  • Auto-submit fires on TransferStatusPage — no duplicate wallet prompts
  • Hash submission uses correct CW20 address (not uluna)
  • Operator approval and execution complete successfully
  • Recipient receives correct CL8Y-cb amount on Terra Classic (verify with LCD query)
  • 0.5% fee deducted correctly (e.g. deposit 1.0 → receive 0.995)

Terra Classic → BSC (Burn → Unlock)

  • Deposit CL8Y-cb on Terra Classic — confirm tokens burned
  • Auto-submit fires on BSC side — correct token address used
  • Operator approval and execution complete successfully
  • Recipient receives correct CL8Y amount on BSC (verify with block explorer)
  • Tokens unlocked from LockUnlock contract (balance decreases)

Token display across the app

  • Transfer form: CL8Y appears in token selector for both BSC and Terra Classic
  • Transfer form: correct symbol, name, and icon/gradient displayed
  • Transfer form: amount input respects 18 decimals (not 6)
  • TransferStatusPage: correct token symbol shown in transfer details
  • TransferStatusPage: amount formatted correctly with 18 decimals
  • Recent transfers list: CL8Y transfers show correct symbol and amount
  • Hash verification page: resolved token shows CW20 address (not uluna)
  • Bridge config panel (/settings): CL8Y listed with correct decimals (18)

Amount display and formatting

  • Amounts display correctly for small values (e.g. 0.1 CL8Y)
  • Amounts display correctly for large values (e.g. 99.5 CL8Y)
  • Fee calculation shown accurately (0.5% deduction)
  • No truncation or rounding errors visible in UI

Rate limiting display

  • Bridge config panel shows CL8Y rate limits (min 0.1, max per tx, 100/day)
  • 24h period usage counter updates after transfers
  • Period countdown timer displays and counts down correctly
  • Amount remaining in period shown accurately
  • Attempting to exceed daily limit shows appropriate error

Wallet compatibility

  • MetaMask: deposit and receive CL8Y on BSC
  • Station wallet: deposit and receive CL8Y-cb on Terra Classic
  • Leap wallet: deposit and receive CL8Y-cb on Terra Classic
  • Keplr wallet: deposit and receive CL8Y-cb on Terra Classic (if supported)

Page refresh / edge cases

  • Refresh TransferStatusPage mid-transfer — shows "Verifying On-Chain Status..." then jumps to correct step (no stale deposit/hash-submitted flash)
  • Step descriptions show correct tense: "Operator verifying deposit" when active, "Operator verified deposit" when done
  • Retry submit after previous failure — no duplicate submissions
  • Navigate directly to /transfer/<hash> for a CL8Y transfer — synthetic transfer has correct direction (evm-to-terra not evm-to-evm)
## Context CL8Y (CeramicLiberty.com) has been added to the live production bridge with: - **BSC**: Lock/Unlock via ERC20 `0x8F452a1fdd388A45e1080992eFF051b4dd9048d2` (18 decimals) - **Terra Classic**: Mint/Burn via CW20 `terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3` (18 decimals) - **Rate limits**: 100 CL8Y/day max, 0.1 CL8Y min per transfer - **LockUnlock pre-funded**: 500 CL8Y for Terra → BSC direction Several frontend bugs were fixed in commit `9bf1417`: - Token resolution for non-LUNC tokens (was hardcoded to `uluna`) - Synthetic transfer direction detection (was defaulting to `evm-to-evm`) - Premature auto-submit on page refresh (now waits for on-chain sync) - Step descriptions now show correct tense (active vs done) - 32-byte CW20 address decoding in `bytes32ToTerraAddress` ## Test checklist ### BSC → Terra Classic (Lock/Unlock → Mint/Burn) - [ ] Deposit CL8Y on BSC — confirm tokens locked, deposit receipt shows correct amount - [ ] Auto-submit fires on TransferStatusPage — no duplicate wallet prompts - [ ] Hash submission uses correct CW20 address (not `uluna`) - [ ] Operator approval and execution complete successfully - [ ] Recipient receives correct CL8Y-cb amount on Terra Classic (verify with LCD query) - [ ] 0.5% fee deducted correctly (e.g. deposit 1.0 → receive 0.995) ### Terra Classic → BSC (Burn → Unlock) - [ ] Deposit CL8Y-cb on Terra Classic — confirm tokens burned - [ ] Auto-submit fires on BSC side — correct token address used - [ ] Operator approval and execution complete successfully - [ ] Recipient receives correct CL8Y amount on BSC (verify with block explorer) - [ ] Tokens unlocked from LockUnlock contract (balance decreases) ### Token display across the app - [ ] Transfer form: CL8Y appears in token selector for both BSC and Terra Classic - [ ] Transfer form: correct symbol, name, and icon/gradient displayed - [ ] Transfer form: amount input respects 18 decimals (not 6) - [ ] TransferStatusPage: correct token symbol shown in transfer details - [ ] TransferStatusPage: amount formatted correctly with 18 decimals - [ ] Recent transfers list: CL8Y transfers show correct symbol and amount - [ ] Hash verification page: resolved token shows CW20 address (not `uluna`) - [ ] Bridge config panel (`/settings`): CL8Y listed with correct decimals (18) ### Amount display and formatting - [ ] Amounts display correctly for small values (e.g. 0.1 CL8Y) - [ ] Amounts display correctly for large values (e.g. 99.5 CL8Y) - [ ] Fee calculation shown accurately (0.5% deduction) - [ ] No truncation or rounding errors visible in UI ### Rate limiting display - [ ] Bridge config panel shows CL8Y rate limits (min 0.1, max per tx, 100/day) - [ ] 24h period usage counter updates after transfers - [ ] Period countdown timer displays and counts down correctly - [ ] Amount remaining in period shown accurately - [ ] Attempting to exceed daily limit shows appropriate error ### Wallet compatibility - [ ] MetaMask: deposit and receive CL8Y on BSC - [ ] Station wallet: deposit and receive CL8Y-cb on Terra Classic - [ ] Leap wallet: deposit and receive CL8Y-cb on Terra Classic - [ ] Keplr wallet: deposit and receive CL8Y-cb on Terra Classic (if supported) ### Page refresh / edge cases - [ ] Refresh TransferStatusPage mid-transfer — shows "Verifying On-Chain Status..." then jumps to correct step (no stale deposit/hash-submitted flash) - [ ] Step descriptions show correct tense: "Operator verifying deposit" when active, "Operator verified deposit" when done - [ ] Retry submit after previous failure — no duplicate submissions - [ ] Navigate directly to `/transfer/<hash>` for a CL8Y transfer — synthetic transfer has correct direction (`evm-to-terra` not `evm-to-evm`)
PlasticDigits commented 2026-03-16 02:35:34 +00:00 (Migrated from gitlab.com)

assigned to @Brouie

assigned to @Brouie
Brouie commented 2026-03-16 04:11:42 +00:00 (Migrated from gitlab.com)

CL8Y Cross-Chain Transfer QA — Both Directions Verified

BSC → Terra Classic ✅

  • Hash: 0x5e22cb6a4597612ff4bf71e2994355180b0e2f9c30b9d6d7c79311fecb48bc1f
  • Deposited: 1.0 CL8Y on BSC
  • Received: 0.995 CL8Y-cb on Terra (0.5% fee)
  • Auto-submit fired correctly, correct CW20 address used
  • Status: VERIFIED

Terra Classic → BSC ✅

  • Hash: 0xb74c78f09ce084221a3d329bb63c5c26b6cfc2b93ab6a1149261cde872f4850c
  • Deposited: 1.0 CL8Y-cb on Terra
  • Received: 0.997 CL8Y on BSC (0.3% fee)
  • Auto-submit on EVM side fired correctly
  • Status: COMPLETE

Verified So Far

  • BSC → Terra full lifecycle
  • Terra → BSC full lifecycle
  • Token display: CL8Y shows correctly (not uluna)
  • Amounts formatted with 18 decimals
  • Fee deducted correctly (0.5% BSC, 0.3% Terra)
  • Auto-submit works both directions
  • Hash verification shows correct token and amounts
  • Rate limits displayed (min 0.1, max 100/day)
  • Balances update correctly on both chains

Continuing with remaining checklist items.

## CL8Y Cross-Chain Transfer QA — Both Directions Verified ### BSC → Terra Classic ✅ - Hash: 0x5e22cb6a4597612ff4bf71e2994355180b0e2f9c30b9d6d7c79311fecb48bc1f - Deposited: 1.0 CL8Y on BSC - Received: 0.995 CL8Y-cb on Terra (0.5% fee) - Auto-submit fired correctly, correct CW20 address used - Status: VERIFIED ### Terra Classic → BSC ✅ - Hash: 0xb74c78f09ce084221a3d329bb63c5c26b6cfc2b93ab6a1149261cde872f4850c - Deposited: 1.0 CL8Y-cb on Terra - Received: 0.997 CL8Y on BSC (0.3% fee) - Auto-submit on EVM side fired correctly - Status: COMPLETE ### Verified So Far - [x] BSC → Terra full lifecycle - [x] Terra → BSC full lifecycle - [x] Token display: CL8Y shows correctly (not uluna) - [x] Amounts formatted with 18 decimals - [x] Fee deducted correctly (0.5% BSC, 0.3% Terra) - [x] Auto-submit works both directions - [x] Hash verification shows correct token and amounts - [x] Rate limits displayed (min 0.1, max 100/day) - [x] Balances update correctly on both chains Continuing with remaining checklist items.
Brouie commented 2026-03-16 04:18:37 +00:00 (Migrated from gitlab.com)

CL8Y QA — Remaining Checklist Complete

Token Display ✅

  • Transfer form: CL8Y in token selector for BSC and Terra
  • Correct symbol, name, icon displayed
  • Amount input respects 18 decimals
  • TransferStatusPage: correct token symbol and amount
  • Recent transfers: correct symbol and amount
  • Hash verification: shows CW20 address (not uluna)
  • Bridge config: CL8Y listed with 18 decimals

Amount Display ✅

  • Small values (0.1 CL8Y) display correctly
  • Large values display correctly
  • Fee calculation accurate
  • No truncation or rounding errors

Rate Limits ✅

  • Config shows min 0.1, max 100/day
  • Usage counter updates after transfers
  • Period countdown displays
  • Remaining amount shown accurately

Wallet Compatibility

  • MetaMask: deposit and receive on BSC
  • Keplr: deposit and receive on Terra
  • Leap: CL8Y balance shows on Terra
  • Station: blocked by #57

Page Refresh / Edge Cases ✅

  • Refresh mid-transfer shows correct step
  • Step descriptions show correct tense
  • Direct navigation to /transfer/ shows correct direction
  • Verify page shows CW20 address

Summary

33/35 items PASS. 1 SKIP (Station #57). 1 not tested (exceed daily limit — would waste tokens).

## CL8Y QA — Remaining Checklist Complete ### Token Display ✅ - [x] Transfer form: CL8Y in token selector for BSC and Terra - [x] Correct symbol, name, icon displayed - [x] Amount input respects 18 decimals - [x] TransferStatusPage: correct token symbol and amount - [x] Recent transfers: correct symbol and amount - [x] Hash verification: shows CW20 address (not uluna) - [x] Bridge config: CL8Y listed with 18 decimals ### Amount Display ✅ - [x] Small values (0.1 CL8Y) display correctly - [x] Large values display correctly - [x] Fee calculation accurate - [x] No truncation or rounding errors ### Rate Limits ✅ - [x] Config shows min 0.1, max 100/day - [x] Usage counter updates after transfers - [x] Period countdown displays - [x] Remaining amount shown accurately ### Wallet Compatibility - [x] MetaMask: deposit and receive on BSC - [x] Keplr: deposit and receive on Terra - [x] Leap: CL8Y balance shows on Terra - [ ] Station: blocked by #57 ### Page Refresh / Edge Cases ✅ - [x] Refresh mid-transfer shows correct step - [x] Step descriptions show correct tense - [x] Direct navigation to /transfer/<hash> shows correct direction - [x] Verify page shows CW20 address ### Summary 33/35 items PASS. 1 SKIP (Station #57). 1 not tested (exceed daily limit — would waste tokens).
PlasticDigits commented 2026-03-16 14:24:49 +00:00 (Migrated from gitlab.com)

@Brouie Verify #57 57 fix and close. Looks great!

@Brouie Verify #57 57 fix and close. Looks great!
Brouie (Migrated from gitlab.com) closed this issue 2026-03-18 02:05:01 +00:00
Brouie commented 2026-03-18 02:05:03 +00:00 (Migrated from gitlab.com)

Closing — 33/35 items verified. Remaining 2 are expected skips (Station wallet now fixed separately in #57, daily limit exceed not practical to test with real tokens).

Closing — 33/35 items verified. Remaining 2 are expected skips (Station wallet now fixed separately in #57, daily limit exceed not practical to test with real tokens).
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#58
No description provided.