package rest import ( "encoding/json" "net/http" "github.com/explorer/backend/auth" ) // handleAuthNonce handles POST /api/v1/auth/nonce func (s *Server) handleAuthNonce(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeError(w, http.StatusMethodNotAllowed, "method_not_allowed", "Method not allowed") return } var req auth.NonceRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, http.StatusBadRequest, "bad_request", "Invalid request body") return } // Generate nonce nonceResp, err := s.walletAuth.GenerateNonce(r.Context(), req.Address) if err != nil { writeError(w, http.StatusBadRequest, "bad_request", err.Error()) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(nonceResp) } // handleAuthWallet handles POST /api/v1/auth/wallet func (s *Server) handleAuthWallet(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeError(w, http.StatusMethodNotAllowed, "method_not_allowed", "Method not allowed") return } var req auth.WalletAuthRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, http.StatusBadRequest, "bad_request", "Invalid request body") return } // Authenticate wallet authResp, err := s.walletAuth.AuthenticateWallet(r.Context(), &req) if err != nil { writeError(w, http.StatusUnauthorized, "unauthorized", err.Error()) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(authResp) }