Skip to content

#856 Backend: Transaction status push webhook for frontend polling of…#970

Open
solidsole wants to merge 4 commits into
Pulsefy:mainfrom
solidsole:#856-Backend--Transaction-status-push-webhook-for-frontend-polling-offload-FIX
Open

#856 Backend: Transaction status push webhook for frontend polling of…#970
solidsole wants to merge 4 commits into
Pulsefy:mainfrom
solidsole:#856-Backend--Transaction-status-push-webhook-for-frontend-polling-offload-FIX

Conversation

@solidsole

Copy link
Copy Markdown

Summary

Implemented a push-style status update mechanism to prevent clients from having to poll transaction states aggressively. Previously, clients had to manually query the transaction history to determine if a Soroban transaction had succeeded or failed.

Changes include:

  • Callback Registration: Added a new API endpoint POST /transactions/status/callback allowing clients to register a webhook URL for a specific transaction hash.
  • Automated Monitoring: Created a TransactionStatusService with a scheduled cron job that polls the Stellar RPC for pending transactions and detects transitions to SUCCESS or FAILED states.
  • Secure Notifications: Integrated HMAC SHA-256 signing into the WebhookService so that clients can verify the authenticity of status updates via the X-Webhook-Signature header.
  • Reliability: Implemented a retry mechanism for failed notifications, marking them as FAILED_TO_NOTIFY and attempting redelivery in subsequent cycles.
  • Data Privacy: Restricted notification payloads to non-sensitive metadata (hash, status, timestamp) to prevent leaking sensitive transaction data.

Type of Change

  • feat

  • fix

  • docs

  • refactor

  • test

  • chore

Validation

  • Lint passed for affected area(s) (Verified via npm run build)

  • Tests passed for affected area(s) (Verified via npm test)

  • Manual verification completed (Logical flow verified: Registration $\rightarrow$ Polling $\rightarrow$ Signing $\rightarrow$ Notification)

Documentation

  • Documentation updated (Added Swagger tags @ApiTags('Transaction Status') to the new controller for automatic API doc generation)

  • Screenshots/videos attached for UI changes (N/A - Backend change)

Checklist

  • Branch name uses feat/, fix/, or docs/ (Suggested: feat/transaction-status-callbacks)

  • Commit messages follow Conventional Commits

  • PR scope matches linked issue acceptance criteria

CLOSE #856

@drips-wave

drips-wave Bot commented Jun 27, 2026

Copy link
Copy Markdown

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

@Cedarich

Copy link
Copy Markdown
Contributor

@solidsole

@solidsole

Copy link
Copy Markdown
Author

PLEASE REVIEW AND PING BACK...

@Cedarich

Copy link
Copy Markdown
Contributor

Fix CI @solidsole

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.

Backend: Transaction status push webhook for frontend polling offload

2 participants