Problem
Users have to poll transactions_getStatus; this is slow and wastes RPC calls.
Background
Alchemy Notify and similar services push JSON payloads to a user‑supplied URL on new blocks, tx confirmations, or specific events.
Proposed Solution
webhookRegister(url, eventFilter) – returns hookId.
webhookDelete(hookId) – deregister.
- Internal dispatcher (
src/webhook/dispatcher.ts) with Express POST /notify.
- Supports:
txConfirmed, erc20Transfer(address), newBlock.
Acceptance Criteria
- End‑to‑end test: create hook → transfer USDC → receive POST in <30 s.
- Hooks survive server restart (use LiteFS or JSON DB).
- Rate‑limit to 5 events / sec per hook.
Labels
enhancement feature:webhook