feat(voting): reuse DEX Terra Classic and Bridge EVM wallet connectors #6

Closed
opened 2026-08-25 06:07:54 +00:00 by PlasticDigits · 16 comments
PlasticDigits commented 2026-08-25 06:07:54 +00:00 (Migrated from gitlab.com)

Summary

For wallet connecting software, as there has been many problems with it, the terraclassic connections on cl8y dex and the evm connections on cl8y bridge are the most well functional.

Port those stacks into the voting dApp. Do not invent a third wallet kit.

This constraint was added when voting left cl8y-dex-terraclassic (2026-08-25). Required for #3 / #4.

Skill: skills/AGENTS_WALLET_CONNECTORS.md

Copy from

Terra Classic — cl8y-dex-terraclassic

  • frontend-dapp/src/services/terraclassic/wallet.ts
  • frontend-dapp/src/hooks/useWallet.ts
  • frontend-dapp/src/components/wallet/
  • frontend-dapp/src/services/terraclassic/walletConnectPairingHook.ts
  • DEX skills: AGENTS_FRONTEND_WALLETCONNECT_MOBILE.md, AGENTS_FRONTEND_KEPLR_LEDGER.md

Add signArbitrary (ADR-36) on top of the DEX connect path (DEX is tx-sign heavy today).

EVM / BSC — cl8y-bridge-monorepo

  • packages/frontend/src/lib/wagmi.ts
  • packages/frontend/src/hooks/useWallet.ts
  • packages/frontend/src/hooks/useEvmWalletDiscovery.ts
  • packages/frontend/src/stores/wallet.ts

Use EIP-191 personal_sign. Electorate chain is BSC (eip155:56). No VITE_* BSC RPC for balance reads.

Legal portal sign URLs are not voting wallets.

Acceptance criteria

  • Terra connect path is ported from DEX (Keplr + Simulated Wallet at minimum; Cosmos WC mobile must not regress).
  • EVM connect path is ported from Bridge (injected EIP-1193 + WC eip155:56).
  • Register / propose / vote use ADR-36 or EIP-191 from the connected stack; wrong-chain and missing-signArbitrary errors are readable.
  • No seed/mnemonic prompts. No greenfield wallet rewrite.
  • Unit tests covering connect gates and payload purpose/domain separation.

Bundle

Issue Role
#1 Ledger
#2 operator-voting
#3 dApp UX (uses this)
#4 BSC / EVM electorate
Legal issue Clickwrap
This Wallet connectors
## Summary For wallet connecting software, as there has been many problems with it, the terraclassic connections on cl8y dex and the evm connections on cl8y bridge are the most well functional. Port those stacks into the voting dApp. Do **not** invent a third wallet kit. This constraint was added when voting left `cl8y-dex-terraclassic` (2026-08-25). Required for `#3` / `#4`. **Skill:** [`skills/AGENTS_WALLET_CONNECTORS.md`](https://gitlab.com/PlasticDigits/voting/-/blob/main/skills/AGENTS_WALLET_CONNECTORS.md) ## Copy from **Terra Classic** — [cl8y-dex-terraclassic](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic) - `frontend-dapp/src/services/terraclassic/wallet.ts` - `frontend-dapp/src/hooks/useWallet.ts` - `frontend-dapp/src/components/wallet/` - `frontend-dapp/src/services/terraclassic/walletConnectPairingHook.ts` - DEX skills: `AGENTS_FRONTEND_WALLETCONNECT_MOBILE.md`, `AGENTS_FRONTEND_KEPLR_LEDGER.md` Add **`signArbitrary` (ADR-36)** on top of the DEX connect path (DEX is tx-sign heavy today). **EVM / BSC** — [cl8y-bridge-monorepo](https://gitlab.com/PlasticDigits/cl8y-bridge-monorepo) - `packages/frontend/src/lib/wagmi.ts` - `packages/frontend/src/hooks/useWallet.ts` - `packages/frontend/src/hooks/useEvmWalletDiscovery.ts` - `packages/frontend/src/stores/wallet.ts` Use **EIP-191 `personal_sign`**. Electorate chain is BSC (`eip155:56`). No `VITE_*` BSC RPC for balance reads. Legal portal sign URLs are **not** voting wallets. ## Acceptance criteria - [ ] Terra connect path is ported from DEX (Keplr + Simulated Wallet at minimum; Cosmos WC mobile must not regress). - [ ] EVM connect path is ported from Bridge (injected EIP-1193 + WC `eip155:56`). - [ ] Register / propose / vote use ADR-36 or EIP-191 from the connected stack; wrong-chain and missing-`signArbitrary` errors are readable. - [ ] No seed/mnemonic prompts. No greenfield wallet rewrite. - [ ] Unit tests covering connect gates and payload purpose/domain separation. ## Bundle | Issue | Role | |-------|------| | #1 | Ledger | | #2 | `operator-voting` | | #3 | dApp UX (uses this) | | #4 | BSC / EVM electorate | | Legal issue | Clickwrap | | **This** | Wallet connectors |
PlasticDigits commented 2026-08-25 06:08:30 +00:00 (Migrated from gitlab.com)

mentioned in issue #1

mentioned in issue #1
PlasticDigits commented 2026-08-25 06:08:41 +00:00 (Migrated from gitlab.com)

mentioned in issue #2

mentioned in issue #2
PlasticDigits commented 2026-08-25 06:08:42 +00:00 (Migrated from gitlab.com)

mentioned in issue #3

mentioned in issue #3
PlasticDigits commented 2026-08-25 06:08:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #4

mentioned in issue #4
PlasticDigits commented 2026-08-25 06:08:48 +00:00 (Migrated from gitlab.com)

mentioned in issue #5

mentioned in issue #5
PlasticDigits commented 2026-08-25 06:08:48 +00:00 (Migrated from gitlab.com)

Created at repo split (2026-08-25). Required for #3 / #4.

For wallet connecting software, as there has been many problems with it, the terraclassic connections on cl8y dex and the evm connections on cl8y bridge are the most well functional.

Issue Role
#1 Ledger
#2 operator-voting
#3 dApp
#4 BSC / EVM
#5 Legal
#6 (this) Wallet port
## Bundle links Created at repo split (2026-08-25). Required for **#3** / **#4**. For wallet connecting software, as there has been many problems with it, the terraclassic connections on cl8y dex and the evm connections on cl8y bridge are the most well functional. | Issue | Role | |-------|------| | #1 | Ledger | | #2 | `operator-voting` | | #3 | dApp | | #4 | BSC / EVM | | #5 | Legal | | **#6** (this) | Wallet port |
PlasticDigits commented 2026-08-25 06:09:13 +00:00 (Migrated from gitlab.com)

mentioned in commit 8d11152cfe

mentioned in commit 8d11152cfe841216c2aaa11931d8019030a502ee
PlasticDigits commented 2026-08-25 06:41:45 +00:00 (Migrated from gitlab.com)

mentioned in commit b32b56660d

mentioned in commit b32b56660d0df7b94c606187dda3a6130462c572
PlasticDigits commented 2026-08-25 06:41:53 +00:00 (Migrated from gitlab.com)

mentioned in merge request !18

mentioned in merge request !18
PlasticDigits commented 2026-08-25 06:42:03 +00:00 (Migrated from gitlab.com)

Implemented on feat/voting-bundle. MR: https://gitlab.com/PlasticDigits/voting/-/merge_requests/1
In-tree: ledger/ (CW20 + BEP-20), operator-voting/, frontend/ (/vote + Legal + ported wallets).
Docs: docs/LEDGER_INVARIANTS.md, docs/OPERATOR_VOTING.md, docs/FRONTEND.md.

Implemented on feat/voting-bundle. MR: https://gitlab.com/PlasticDigits/voting/-/merge_requests/1 In-tree: ledger/ (CW20 + BEP-20), operator-voting/, frontend/ (/vote + Legal + ported wallets). Docs: docs/LEDGER_INVARIANTS.md, docs/OPERATOR_VOTING.md, docs/FRONTEND.md.
PlasticDigits commented 2026-08-25 06:47:01 +00:00 (Migrated from gitlab.com)

mentioned in commit 8fe45a1974

mentioned in commit 8fe45a197400462abfc1724385113ea8276a028a
PlasticDigits commented 2026-08-25 06:47:48 +00:00 (Migrated from gitlab.com)

mentioned in issue #7

mentioned in issue #7
PlasticDigits commented 2026-08-25 06:48:24 +00:00 (Migrated from gitlab.com)

Merge verify (!18 → main). DEX Terra connect + Bridge wagmi EVM (BSC electorate) are ported. signArbitrary / personal_sign wired. No seed prompts.

Still open (QA — #7):

  • Full DEX Cosmos WalletConnect mobile suite was not re-run against the DEX package tests (pairing helpers + unit tests only).
  • Manual Keplr / MetaMask / WC pairing on a real device.

Closing this issue for the in-tree port. Remaining QA stays on #7.

**Merge verify (!18 → main).** DEX Terra connect + Bridge wagmi EVM (BSC electorate) are ported. `signArbitrary` / `personal_sign` wired. No seed prompts. Still open (QA — #7): - Full DEX Cosmos WalletConnect mobile suite was not re-run against the DEX package tests (pairing helpers + unit tests only). - Manual Keplr / MetaMask / WC pairing on a real device. Closing this issue for the in-tree port. Remaining QA stays on #7.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-25 06:48:30 +00:00
PlasticDigits commented 2026-08-30 02:42:03 +00:00 (Migrated from gitlab.com)

mentioned in issue #12

mentioned in issue #12
PlasticDigits commented 2026-08-30 02:42:03 +00:00 (Migrated from gitlab.com)

marked as related to #12

marked as related to #12
PlasticDigits commented 2026-08-30 15:47:45 +00:00 (Migrated from gitlab.com)

mentioned in issue #16

mentioned in issue #16
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/voting#6
No description provided.