Skip to content

feat: wallet linking, backend matchmaking polling, tournament API ali… - #1444

Merged
chinweobtagaz merged 2 commits into
OpenKnight-Foundation:mainfrom
sammy123-bot:fix/fe-wallet-link-matchmaking-tournament
Oct 17, 2026
Merged

chinweobtagaz merged 2 commits into
OpenKnight-Foundation:mainfrom
sammy123-bot:fix/fe-wallet-link-matchmaking-tournament

Conversation

@sammy123-bot

Copy link
Copy Markdown
Contributor

…gnment

  • FE-97: link a Freighter wallet to the signed-in account. Backend issues a single-use challenge, verifies the ed25519 signature against the Stellar address (SEP-53 digest, legacy digest accepted) and stores it in a new unique player.wallet_address column; login returns it. Settings shows the linked wallet; matchmaking and staking use it.
  • FE-98: matchmaking joins join-casual / join-rated-free with the body the backend expects and polls /status/{request_id}; backend now records request -> match ids in Redis so the waiting player learns of the match.
  • FE-99: delete the duplicate lib/matchmakingService.ts client and its only user, hook/useMatchmakingQueue.ts.
  • FE-100: tournament page uses the backend /api/v1/tournaments scope with the bearer token, and shows an empty state when the list is unavailable.

What changed and why

Issue: Closes #1338
closes #1339
closes #1334
closes #1341

Summary of changes:

How it was tested

  • Unit tests pass (cargo test / npm test / pytest)
  • Integration tests pass
  • Manual testing completed

Contributor Checklist

  • Style / Lint clean: Code follows project style guides (Rust: cargo fmt --check, clippy; TypeScript: npm run lint)
  • Tests added/passing: New logic has unit/integration tests; all existing tests pass
  • Target branch correct: PR targets main branch (not develop or feature branches)
  • No plagiarism: All code is original or properly attributed with compatible licenses
  • Documentation updated: README, CONTRIBUTING.md, or module docs updated if behavior changed
  • Secrets not committed: No API keys, private keys, passwords, or .env files in this PR
  • Breaking changes noted: Any breaking changes are documented in the PR description

Additional context

…gnment

- FE-97: link a Freighter wallet to the signed-in account. Backend issues a
  single-use challenge, verifies the ed25519 signature against the Stellar
  address (SEP-53 digest, legacy digest accepted) and stores it in a new
  unique player.wallet_address column; login returns it. Settings shows the
  linked wallet; matchmaking and staking use it.
- FE-98: matchmaking joins join-casual / join-rated-free with the body the
  backend expects and polls /status/{request_id}; backend now records
  request -> match ids in Redis so the waiting player learns of the match.
- FE-99: delete the duplicate lib/matchmakingService.ts client and its only
  user, hook/useMatchmakingQueue.ts.
- FE-100: tournament page uses the backend /api/v1/tournaments scope with the
  bearer token, and shows an empty state when the list is unavailable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@drips-wave

drips-wave Bot commented Oct 17, 2026

Copy link
Copy Markdown

@sammy123-bot Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…wallet_link

- service: the admin_audit test builds player::Model literally and was
  missing the new wallet_address field (E0063 in CI).
- api: rustfmt wallet_link.rs and keep lib.rs module order rustfmt-clean.
- Cargo.lock: record the api crate's new ed25519-dalek/base64/rand/hex deps.

cargo test --workspace: 366 passed, 0 failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chinweobtagaz
chinweobtagaz merged commit c3a9977 into OpenKnight-Foundation:main Oct 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment