Skip to content

Fix orphaned webhooks, leader reentry, airdrop linking, and WS subscription cap - #182

Merged
ritaifeoluwa merged 1 commit into
SmartDropLabs:mainfrom
oldtaker24:fix/webhook-caps-leader-reentry-claim-status
Aug 26, 2026
Merged

Fix orphaned webhooks, leader reentry, airdrop linking, and WS subscription cap#182
ritaifeoluwa merged 1 commit into
SmartDropLabs:mainfrom
oldtaker24:fix/webhook-caps-leader-reentry-claim-status

Conversation

@oldtaker24

Copy link
Copy Markdown

Fixes #113, Fixes #119, Fixes #122, Fixes #124

What changed

Why

  • services/webhooks.js was a fully orphaned parallel webhook system never wired to any route, confusing contributors and creating dual-signing-scheme risk
  • leaderAwareJob.start() monkey-patched leaderElection methods without restoring them in stop(), causing wrapper accumulation on repeated cycles
  • REST-created airdrops had no linking field to correlate with indexer-observed on-chain state, leaving two disjoint views of the same entity
  • WebSocket subscription cap was enforced per-message only, allowing unbounded cumulative growth via repeated subscribe calls

How to test

…iption cap

- SmartDropLabs#113: Remove dead services/webhooks.js and its test; update README webhook
  events table to clarify which events have active dispatch paths
- SmartDropLabs#119: Capture leaderElection originals at construction and restore on stop
  so repeated start/stop cycles don't cumulatively monkey-patch
- SmartDropLabs#122: Add contract_airdrop_id field to airdrop records for on-chain linking;
  document that REST-created airdrops are off-chain bookkeeping only
- SmartDropLabs#124: Enforce MAX_ASSETS_PER_CLIENT against cumulative client.assets.size
  instead of per-message; send error when cap is hit
@drips-wave

drips-wave Bot commented Aug 26, 2026

Copy link
Copy Markdown

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment