The explorer shipped three sign-in systems. Two were Blockscout's and both
spoke to its /account/* backend, which this deployment does not run — measured,
every one of those endpoints 404s on api-explore.lux.network:
/account/get_csrf 404 /account/send_otp 404 /account/siwe_message 404
/account/user/info 404 /account/confirm_otp 404 /account/authenticate_via_* 404
So none of it could ever have worked. It is deleted, not re-pointed: the email
+ one-time-code modal, the SIWE wallet login, the CSRF handshake that fired on
every page render, the Dynamic.xyz provider, and the dev page that let you
paste a session cookie by hand. Rewriting any of it against our own backend
would have been building custom auth, which we do not do.
What is left is the standard OIDC client we already had, finished:
* PKCE (S256). This client is public — it runs in a browser and can hold no
secret — so the verifier is the only thing binding a redeemed code to the
page that asked for it. IAM advertises S256 in its discovery document and
we were not sending a challenge at all.
* userinfo went to <issuer>/api/userinfo, which is a 404 and an /api/ path we
do not serve. It is /v1/iam/oauth/userinfo, per IAM's own discovery.
* logout now ends the IdP session (end_session_endpoint) instead of only
dropping our cookie and leaving the user signed in upstream.
All three live in lib/oidc.ts, which already said never to rebuild these paths
at a call site.
The header's provider switch collapses to two states — signed in with IAM, or
account disabled and this is the wallet/settings menu. `rewards` is stated off:
its gate read authProvider === 'auth0', so it was already unreachable.
The ConfigMaps carried NEXT_PUBLIC_OIDC_CLIENT_ID=lux-explore-client-id, a
client that has never existed, so authorize answered 400 unknown client_id.
IAM names clients <org>-explore; all four brands now say so, and hanzo/zoo/pars
get the OIDC keys they never had.
Typecheck: no new error classes, production errors 26 -> 22.
Co-authored-by: Hanzo Dev <[email protected]>
* basic login button implementation
* refactoring and add dynamic auth button to the other pages
* connect wallet without authenticating an user
* login and logout user in blockscout account
* refactoring and RPC overrides
* authenticate user with connected wallet
* add ENS to profile button
* override evm chains and fix contract write with waas wallet
* disconnect wallet and fix docker build
* add dynamic imports to components that use web3 wallet packages
* refactor user profile directory
* clean up
* tweaks
* update pw ci script
* fix "connect wallet" button behavior
* handle linking email to profile with dynamic provider
* fix test
* async loading web3 hooks and remove dynamic loading from components that use them
* fix pw tests
* add account navigation in horizontal layout when auth provider is dynamic
* fix address verification modal
* review fixes
* spelling fixes
* first part of transition
* second part of transition
* remove jest
* bump up node version and playwright version
* update all screenshots because of the new playwright version
* fix tests
* one more screenshot update
* added rel="noopener noreferrer" to link elements using external and noIcon prop
* fix: resolve asChild and external prop conflicts in Link components
* Revert "fix: resolve asChild and external prop conflicts in Link components"
This reverts commit e99580049946b487ce4dc77e7cdab2cd17e5c820.
* fix: remove asChild prop conflicts with external links
* first version of the pack
* single entry point
* add custom components to the package
* move form components to toolkit
* add more utils and hooks to the package
* minor fixes
* add CI workflow
* update readme and package.json
* fix ts
* fix build of env-validator
* fix docker build
* fix icons size
* test fixes
* more test fixes
* simple profile button and auth modal layout
* connect email and code screens to API
* add screens to modal for wallet authentication
* migrate to pin input
* user profile menu
* refactor otp field
* fix passing set-cookie from api response
* add wallet info into profile menu
* add mobile menu
* show connected wallet address in button
* my profile page re-design
* custom behaviour of connect button on dapp page
* style pin input
* add logout
* handle case when account is disabled
* handle case when wc is disabled
* remove old components
* refactoring
* workflow to link wallet or email to account
* link wallet from profile
* show better OTP code errors
* add email alert on watchlist and verified addresses pages
* deprecate env and remove old code
* remove code for unverified email page
* add auth guard to address action items
* move useRedirectForInvalidAuthToken hook
* add mixpanel events
* refetch csrf token after login and fix connect wallet from contract page
* Add NEXT_PUBLIC_RE_CAPTCHA_V3_APP_SITE_KEY env
* migrate to reCAPTCHA v3
* resend code and change email from profile page
* better wallet sign-in message error
* fix demo envs
* update some screenshots
* profile button design fixes
* fix behaviour "connect wallet" button on contract page
* fix linking email and wallet to existing account
* bug fixes
* restore the login page
* update screenshots
* tests for auth modal and user profile
* add name field to profile page and write some tests
* [skip ci] clean up and more tests
* update texts
* change text once more
* fix verified email checkmark behaviour
* pass api error to the toast while signing in with wallet
* [skip ci] disable email field on profile page
* bug fixes
* update screenshot
* Blockscout account V2
Fixes#2029
* fix texts and button paddings
* Form fields refactoring (#2320)
* text and address fields for watchlist form
* checkbox field component
* refactor private tags form
* refactor api keys and custom abi
* refactor verifiy address and token info forms (pt. 1)
* refactor token info forms (pt. 2)
* refactor token info forms (pt. 3)
* refactor public tags form
* refactor contract verification form
* refactor contract audit form
* refactor auth, profile and csv export forms
* renaming and moving
* more refactoring and test fixes
---------
Co-authored-by: aagaev <[email protected]>
* display methods accordion
* add method_id to methods
* query read method via public client
* query read methods without inputs at accordion section open
* add custom abi tabs
* add proxy tabs
* custom wagmi config if wc is not configured
* remove ContractAbiItemConstant component
* display tuple properties in method outputs
* display read result
* clean up
* support nested arrays in the read result
* re-write test for contract methods
* change result view for address output
* refactoring
* fix tests
* remove web3 provider fallback
* fix tab loading
* refactoring
* add implementation contract selector
* add "copy to clipboard" for address, remove top-level square brackets
* add preview mode to contract method result
* tests for read result
* fix tests
* change styles for result preview
* review fix
* update hooks and methods
* fix typescript
* options fix
* fix pw test build
* try to fix tests
* more pw test fixes
* update screenshots and fix address verification test
* update csv export text
* fix pw tests
* base layout and customization for home page and search results page
* refactor rest of the pages
* refactor AppError
* move header padding to layout
* move nextjs utils to separate folder
* combine PageServer and Page
* make useQueryClientConfig hook
* add tests
* remove unused var
* fix envs for pw
* fix pw tests
* metadata helpers and values for txs pages
* update titles to the rest of the pages
* refactor getServerSideProps
* dynamically update metadata for token and dapp page
* test
* 404 error page
* make new config
* make use of new config, delete old one
* feature reporter: dev implementation
* feature reporter: docker integration
* resctructure ENVS.md
* sentry feature
* refinements
* add spaces between sections
* tweaks
* switch to camelCase
* clean up
* remove NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS
* v
* custom styles for scrollbar
* style scrollbar for search suggest on home page
* change overflow for search suggest
* fix error screen when API error payload is string
e.g. "Internal server error"
* add resizer img and styles for FF
* update screenshots
* update icon for dark theme