OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-wallet commits / 1e81fbd

Fix middleware to support multiple route parameters
CRITICAL FIX: requireAuth and withRateLimit only accepted ONE parameter Root cause analysis: 1. Router parses /api/contacts/123/addresses into ['123', 'addresses'] 2. Calls handler(req, res, '123', 'addresses') 3. But requireAuth wrapper: async (req, res, param) => handler(req, res, param) 4. Only captures FIRST param, drops 'addresses' 5. Handler receives: id='123', rest=[] (empty!) 6. Check fails: rest[0] === 'addresses' → false 7. Returns 404 "Not found" Solution: - Changed requireAuth: async (req, res, param) → async (req, res, ...params) - Changed withRateLimit: async (req, res, param) → async (req, res, ...params) - Now all parameters pass through correctly This fixes POST /api/contacts/:id/addresses and DELETE /api/contacts/:id/addresses/:chain User report: "Not found says that when i try to add the ethereum address" Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1e81fbde3b08401e923115f6bdf64f764ef40973
by plankatron <fleeky@gmail.com> · 2026-01-27T23:08:48.000Z

Changed files (1) +4 -4

wallet-server.cjs +4 -4
……@@ -268,7 +268,7 @@ function sendError(res, message, status = 500) {
268268 * @returns {function} - Wrapped handler with auth check
269269 */
270270function requireAuth(handler) {
271 return async (req, res, param) => {
271 return async (req, res, ...params) => {
272272 // Verify Bearer token
273273 if (!verifyToken(req)) {
274274 console.warn(`⚠️ Unauthorized access attempt: ${req.method} ${req.url}`)
……@@ -276,7 +276,7 @@ function requireAuth(handler) {
276276 }
277277
278278 // Token valid - proceed to handler
279 return handler(req, res, param)
279 return handler(req, res, ...params)
280280 }
281281}
282282
……@@ -288,7 +288,7 @@ function requireAuth(handler) {
288288 * @returns {function} - Wrapped handler with rate limit check
289289 */
290290function withRateLimit(handler) {
291 return async (req, res, param) => {
291 return async (req, res, ...params) => {
292292 const result = checkRateLimit(req)
293293
294294 // Set rate limit headers
……@@ -302,7 +302,7 @@ function withRateLimit(handler) {
302302 }
303303
304304 // Rate limit OK - proceed to handler
305 return handler(req, res, param)
305 return handler(req, res, ...params)
306306 }
307307}
308308