Skip to content

feat: Resolve issues #254, #301, #302, #303 - #309

Merged
parkerwinner merged 1 commit into
parkerwinner:mainfrom
devdianax:fix/all-assigned-issues-clean
Aug 28, 2026
Merged

parkerwinner merged 1 commit into
parkerwinner:mainfrom
devdianax:fix/all-assigned-issues-clean

Conversation

@devdianax

Copy link
Copy Markdown

Summary

This PR resolves all 4 issues assigned to @devdianax:

Closes #254
Closes #301
Closes #302
Closes #303


#303 — Missing Architecture Decision Records (ADRs)

  • Created docs/adr/ directory with ADR template format
  • Added 6 ADRs documenting key architectural decisions:
    • ADR-001: ADR Template
    • ADR-002: Stellar Soroban for Smart Contracts
    • ADR-003: Go + Gin Backend
    • ADR-004: React.js Frontend
    • ADR-005: Multi-Signature Emergency Pause
    • ADR-006: API Versioning Strategy

#302 — Incomplete API Documentation

  • Added missing endpoints to backend/handlers/openapi.yaml and docs/api/openapi.yaml:
    • POST /auth/logout — Invalidate JWT token
    • POST /users — Register (alias for /auth/register)
    • GET /exchange-rates — Get currency exchange rate
    • GET/POST /payment-requests — List and create payment requests
    • GET /payment-requests/{id} — Get payment request details
    • POST /payment-requests/{id}/accept — Accept payment request
    • POST /payment-requests/{id}/reject — Reject payment request
    • POST /payment-requests/{id}/cancel — Cancel payment request
    • POST /admin/rate-limit/reset — Admin rate limit reset
    • GET /admin/rate-limit/view — Admin rate limit view
  • Added new schemas: ExchangeRate, PaymentRequest, CreatePaymentRequest
  • Added Admin tag for admin-only endpoints
  • Included error codes (400, 401, 403, 404, 409, 429) and rate limit info

#301 — Missing Emergency Pause Mechanism

  • Created contracts/src/emergency_pause.rs with multi-sig pause/unpause:
    • Configurable quorum-based voting mechanism
    • Vote expiry timeout to prevent stale votes
    • Add/remove signer functions (admin-only)
    • Full event emission for audit trail
    • Functions: vote_pause, vote_unpause, get_config, get_active_vote, etc.
  • Updated contracts/src/lib.rs to include the new module

#254 — No E2E Tests for Frontend

  • Created frontend/cypress.config.js with Cypress configuration
  • Created frontend/e2e/ directory with comprehensive E2E tests:
    • login.cy.js — Login form validation and error handling
    • remittance.cy.js — Remittance form, validation, submission, accessibility
    • invoices.cy.js — Invoice viewer, loading states, empty states
    • transaction-history.cy.js — Filtering, searching, pagination, details modal
    • navigation.cy.js — Navigation, dark mode, language selector, skip links
  • Added e2e/support/commands.js with custom Cypress commands

CI/CD Compatibility

  • No changes to .github/workflows/ files
  • New files added in separate directories that don't affect existing CI checks
  • OpenAPI spec changes maintain backward compatibility with existing paths

…kerwinner#302, parkerwinner#303

- parkerwinner#303: Add Architecture Decision Records (ADRs) in docs/adr/
- parkerwinner#301: Add multi-sig emergency pause mechanism (contracts/src/emergency_pause.rs)
- parkerwinner#254: Add Cypress E2E tests for frontend (frontend/e2e/)
@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@devdianax 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

@parkerwinner
parkerwinner merged commit 0016b2b into parkerwinner:main Aug 28, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing Architecture Decision Records (ADRs) Incomplete API Documentation Missing Emergency Pause Mechanism No E2E Tests for Frontend

3 participants