WIP: Draft: feat(web): Terra Classic T&C for every ustr-cmm wallet, not Keplr-only #30

Closed
PlasticDigits wants to merge 0 commits from 11-feat-web-terra-classic-t-c-must-support-every-ustr-cmm-wallet-not-keplr-only into main
PlasticDigits commented 2026-08-26 01:36:08 +00:00 (Migrated from gitlab.com)

Summary

  • /sign/terra-classic now offers the ustr-cmm wallet matrix (Terra Station, Keplr, Leap, Cosmostation, LUNC Dash, Galaxy Station) instead of Keplr-only window.keplr.signArbitrary.
  • Injected extensions call that wallet’s Keplr-compatible signArbitrary. LUNC Dash uses in-page WalletConnect + signBytes of the pre-serialized ADR-036 amino doc. Galaxy Station uses WC v2 keplr_signArbitrary when a Legal-owned VITE_WC_PROJECT_ID is set.
  • Open in Keplr remains the fallback (GitLab #9). API ADR-036 verify is unchanged. Integrators can pass account via buildSignUrl so the portal binds the already-connected terra1….

Closes #11

Test plan

  • Desktop: Station, Keplr, Leap, Cosmostation extensions — each Connect & sign → signed_latest: true
  • Android Chrome: LUNC Dash WC and Galaxy Station WC — in-page Open / Copy pairing → signed_latest: true (no Keplr required)
  • Missing window.keplr still shows Open in Keplr + wallet picker; mock Keplr / Leap / LUNC Dash e2e green
  • account=terra1… that is not the connected wallet fails closed
  • Property isolation + mixed-case terra1 canonicalization still hold
  • cd api && cargo test Terra ADR-036 unit + abuse integration stay green
  • EVM / Telegram / Solana sign pages unchanged
  • Ops: set Legal-owned VITE_WC_PROJECT_ID on the portal for Galaxy Station WC (do not copy integrator ids)

Issue criteria

  • Wallet matrix can produce signed_latest from the portal (injected mocks + LUNC Dash WC mock; real-device matrix still manual)
  • LUNC Dash / Galaxy Station path exists without installing Keplr (WC pairing UI + backends)
  • Station / Leap / Cosmostation extensions can sign when injected; missing Keplr is not a hard requirement
  • Existing Keplr desktop + Open in Keplr mobile path from #9 / !29 still works
  • API still rejects wrong pubkey / property / version / tampered message / bad timestamp (unchanged verifier)
  • EVM / Telegram / Solana unchanged
  • Copy is retail-short (no “ADR-036” in idle status)
  • Wallet list documented (README + skills/terra-classic-adr036/SKILL.md) and named as tracking ustr-cmm

Closes #11

## Summary - `/sign/terra-classic` now offers the **ustr-cmm wallet matrix** (Terra Station, Keplr, Leap, Cosmostation, LUNC Dash, Galaxy Station) instead of Keplr-only `window.keplr.signArbitrary`. - Injected extensions call that wallet’s Keplr-compatible `signArbitrary`. LUNC Dash uses in-page WalletConnect + `signBytes` of the pre-serialized ADR-036 amino doc. Galaxy Station uses WC v2 `keplr_signArbitrary` when a Legal-owned `VITE_WC_PROJECT_ID` is set. - Open in Keplr remains the fallback (GitLab #9). API ADR-036 verify is unchanged. Integrators can pass `account` via `buildSignUrl` so the portal binds the already-connected `terra1…`. Closes #11 ## Test plan - [ ] Desktop: Station, Keplr, Leap, Cosmostation extensions — each Connect & sign → `signed_latest: true` - [ ] Android Chrome: LUNC Dash WC and Galaxy Station WC — in-page Open / Copy pairing → `signed_latest: true` (no Keplr required) - [ ] Missing `window.keplr` still shows Open in Keplr + wallet picker; mock Keplr / Leap / LUNC Dash e2e green - [ ] `account=terra1…` that is not the connected wallet fails closed - [ ] Property isolation + mixed-case `terra1` canonicalization still hold - [ ] `cd api && cargo test` Terra ADR-036 unit + abuse integration stay green - [ ] EVM / Telegram / Solana sign pages unchanged - [ ] Ops: set Legal-owned `VITE_WC_PROJECT_ID` on the portal for Galaxy Station WC (do not copy integrator ids) ## Issue criteria - [x] Wallet matrix can produce `signed_latest` from the portal (injected mocks + LUNC Dash WC mock; real-device matrix still manual) - [x] LUNC Dash / Galaxy Station path exists without installing Keplr (WC pairing UI + backends) - [x] Station / Leap / Cosmostation extensions can sign when injected; missing Keplr is not a hard requirement - [x] Existing Keplr desktop + Open in Keplr mobile path from #9 / !29 still works - [x] API still rejects wrong pubkey / property / version / tampered message / bad timestamp (unchanged verifier) - [x] EVM / Telegram / Solana unchanged - [x] Copy is retail-short (no “ADR-036” in idle status) - [x] Wallet list documented (README + `skills/terra-classic-adr036/SKILL.md`) and named as tracking ustr-cmm Closes #11
PlasticDigits (Migrated from gitlab.com) closed this pull request 2026-08-26 01:36:49 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
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-ecosystem-legal!30
No description provided.