diff --git a/_migrate/authorize.html b/_migrate/authorize.html deleted file mode 100644 index b40bdb9..0000000 --- a/_migrate/authorize.html +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - - Allow Access - Sonr - - - - - -
- - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
- - - - diff --git a/handlers/routes.go b/handlers/routes.go index 13712cf..f623f5e 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -20,6 +20,12 @@ func RegisterRoutes(mux *http.ServeMux) { mux.HandleFunc("GET /login", handleLogin) mux.HandleFunc("GET /login/step/{step}", handleLoginStep) mux.HandleFunc("GET /login/qr-status", handleLoginQRStatus) + + mux.HandleFunc("GET /authorize", handleAuthorize) + mux.HandleFunc("POST /authorize/approve", handleAuthorizeApprove) + mux.HandleFunc("POST /authorize/deny", handleAuthorizeDeny) + + mux.HandleFunc("GET /dashboard", handleDashboard) } // handleWelcome renders the full welcome page at step 1 @@ -122,3 +128,82 @@ func handleLoginQRStatus(w http.ResponseWriter, r *http.Request) { } views.QRStatusWaiting().Render(r.Context(), w) } + +func handleAuthorize(w http.ResponseWriter, r *http.Request) { + reqType := r.URL.Query().Get("type") + if reqType == "" { + reqType = "connect" + } + + req := views.AuthRequest{ + Type: reqType, + App: views.AppInfo{ + Name: "Uniswap", + Domain: "app.uniswap.org", + LogoIcon: "cube", + Verified: true, + }, + Wallet: views.WalletInfo{ + Name: "Main Wallet", + Address: "sonr1x9f...7k2m", + Balance: "1,234.56 SNR", + }, + Message: `Welcome to Uniswap! + +Click to sign in and accept the Uniswap Terms of Service. + +This request will not trigger a blockchain transaction or cost any gas fees. + +Wallet address: +sonr1x9f4h2k8m3n5p7q2r4s6t8v0w3x5y7z9a1b3c5d7k2m + +Nonce: 8f4a2b1c`, + MessageHex: "0x57656c636f6d6520746f20556e697377617021...", + Transaction: &views.TxDetails{ + Type: "Swap", + FromToken: views.TokenAmount{ + Symbol: "ETH", + Amount: "100.00", + USD: "$234,567.00", + Initials: "E", + }, + ToToken: views.TokenAmount{ + Symbol: "USDC", + Amount: "125,000", + USD: "$125,000.00", + Initials: "U", + }, + Network: "Sonr Mainnet", + NetworkFee: "~$0.12", + MaxFee: "$0.26", + Slippage: "0.5%", + Contract: "0x7a25...3f8b", + Function: "swapExactTokensForTokens()", + RawData: "0x38ed1739\n0000000000000000000000000000000000000056bc75e2d63100000...", + }, + } + + views.AuthorizePage(req).Render(r.Context(), w) +} + +func handleAuthorizeApprove(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + actionType := r.FormValue("type") + if actionType == "" { + actionType = "connect" + } + views.AuthResultSuccess(actionType).Render(r.Context(), w) +} + +func handleAuthorizeDeny(w http.ResponseWriter, r *http.Request) { + views.AuthResultDenied().Render(r.Context(), w) +} + +func handleDashboard(w http.ResponseWriter, r *http.Request) { + tab := r.URL.Query().Get("tab") + if tab == "" { + tab = "accounts" + } + data := views.DefaultDashboardData() + views.DashboardPage(data, tab).Render(r.Context(), w) +}