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]>
- wallet: brandFamilyChains derives sibling networks (Lux mainnet/testnet/devnet)
from the multi-tenant chain registry so connect/add presents EVERY registered
network for the brand, not just the env chain; dedupe by id.
- login/menu: useProvider queryFn returns null (react-query v5 forbids undefined)
+ callers switched from '= {}' destructure default to '?? {}' so a null result
no longer crashes the wallet hooks (the busted-menu root cause).
- manifest: fix Pars chainId 7070 -> 494949 (regression) and drop the forbidden
'Subnet' term from sovereign L1 network names (-> '<Brand> Network').
- Validators page + /api/pchain proxy present; rebuild makes the live 5-validator
view visible on explore.lux.network.
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
* refactor widgets on home page
* coming soon placeholder component
* top accounts page
* contract data
* address ERC-20 tokens list
* chain filter for address ERC-20 tokens
* token select for address detailed view
* address details fields
* tokens table
* stats widgets on home page
* chain indicators graph on the home page
* quick search
* search results all tab
* tabs and chain select on search results page
* search results mobile view
* add contract info to search and address details
* add text filter for tokens and search improvements
* load all results inside tab on search results page
* token balance info
* add support for domains in the full search
* Multichain explorer
Resolves#2989
* add envs validator for multichain
* add some tests
* fix search bar on search results page on mobile
* home stats fixes
* fix ts
* optimize amount of queries on address page
* add more contract info on address page
* add enter key hint to search input
* fix tests
* fix test
* update bg.primary css-variable on color theme change
* sitemap for multichain
* txs page: render first tab if blob tab is not available on the chain
* filter out in active chains from chain select on address page and user ops page
* add chain icon to advanced filter table
* fix tooltip on entity with shield
* fix ts
* show contract implementations
* fixes
* add chain icon to all lists
* refactor zetachain chains config type
* use chain id as primary option instead of chain slug
* refactor chain config type for multichain and essential dapps
* refactor chain icon and chain select
* rename chain-slug in chain_slug
* change default radius of chain icon and update screenshots for multichain tests
* change conditions for "isContract" and "isVerified"
* test fixes
* make shield optional for external chain entities
* add chain icon to approvals lists
* add stats page for multichain
* add chain postfix to chart .png and .csv assets name
* fix tests
* sync verified contracts language filter and fix loading state in the search results page
* fix sol2uml diagram and csv export
* regcred from helmfile for review
* link fixes
* fix state for unknown address
* fix incorrect chain in the context during spa transition to the same route on different chain
* add links to stats widgets
* add mixpanel to L2 demo values
* show message of on-demand contract verification
* fix screenshots
---------
Co-authored-by: Nick Zenchik <[email protected]>
* redesign "add chain" button
* fix wallet detection
* [skip ci] update default value for ENV
* fix tests
* return button to the footer and add source to mixpanel event
* regcred from helmfile for review
* [skip ci] remove wallets env from values for demo stand
* use react-query to cache detection result
* add cookie to hide button in the topbar
* add prefix to svg ids to fix rabby icon
* update screenshot
* remove unnecessary comment
---------
Co-authored-by: Nick Zenchik <[email protected]>
* fix links in approvals list
* pass check-summed hash to safe API call
* make tx hash optional for token transfers
* fix multiple public tag submission
* update screenshots
* use DataListDisplay for revoke
* force to send credential only with general API requests
* prefer formatted date label over date default formatting when saving chart data as csv
* add abort failed status for zeta chain CCTX
* update specify sdk
* rename ENV for native token address
* add ENV to hide native coin price in topbar
* rename routes for name services
* fix chart csv export file
* fix tests
---------
Co-authored-by: Max Alekseenko <[email protected]>
Co-authored-by: isstuev <[email protected]>
* update styles for chain widgets on home page
* update latest txs styles and slug creation algorithm
* list of local txs
* list of local blocks
* local view for address internal tx tab
* local view for address coin history
* local view for address logs
* local view for address token transfers
* address details, kind of
* [wip] local view for address contract tab
* user ops views
* chain popover
* csv-export page
* advanced filter page
* block countdown pages
* fixes for contract tab
* refactor address txs and transfers tabs
* refactor getServerSideProps
* internal txs page
* tokens and token transfers pages
* simple tag for address page and details info placeholders
* add chain icon to the local lists
* show creator in contract tab
* OP Superchain: local views for chains in the cluster
Fixes#2827
* highlight current chain in the title of local entities
* tokens nfts tab for address
* allow entity icon to be an image
* adjust cross-chain txs table and add placeholder to home page
* cross-chain txs for address
* fetch multichain config from microservice
* fix skeleton in token transfers table
* tests, pt.1
* wtf with gh
* verified contracts page
* change chain info in block and token page header
* fix some tests
* update styles for token icon with chain logo in header
* fix links and address internal txs tab
* update screenshots
* fix margins for tx info button and chain icon in tx tables
* add some tests
* fix screenshots
* context for storing subchain config and tx view for subchain
* address page and block page for subchain
* address aggregated page: local txs tab
* connect MultichainSelect to context
* home page placeholder
* refactor subchain select state
* envs for demo
* fix ts
* clear value for l2 review
* subchain widgets on home page
* csp policies
* sockets, duck and goose
* fix socket on subchain address page
* link builder for subchain views
* update home widget
* fix time increment
* enable tx interpretator and metadata service
* generate multichain config based on every chain app config
* Fix the multichain config to work in Docker
* multichain socket test
* rename subchain-id to subchain-slug path param
* refactoring
* update chain icons on entities
* home page: latest local txs
* latest cross-chain txs
* minor improvements
* renaming, pt. 1
* rename chain routes
* enable blockchain interaction
* add loading state to icon shield
* fix build
* fix tests
* update types package
* 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
* txn withdrawals page stub
* add base page layout
* add ConnectWallet alert
* save search term in page query param
* add links to the new page
* add functionality to claim button
* combine "Connect wallet" and "Claim" buttons
* Refactor rollup configuration to introduce ParentChain structure and deprecate legacy environment variables
* handle txn claim
* allow to pass array of RPC urls for parent chain config
* display token value and completion tx hash
* fix csp
* write tests for arbitrum l2 txn withdrawals
* fix ts
* review fixes
* update screenshots and hide button if the txn is not confirmed yet
* first part of migration
* second part of migration
* bump up es-toolkit version
* bump up `es-toolkit` version and remove `lodash` completely
* update screenshot
* 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
* add ENV for navigation layout type
* add network menu to top bar
* renaming and main component placeholder
* add logo, testnet badge, login and connect wallet buttons to the nav bar
* refactor once more
* styles for nav link group
* style nav link
* style groupped nav links
* update values for L2 review
* update demo values
* fix deployment values for L2 review
* tests
* fix prop collision
* shorten filter input on marketplace page and update MainArea height
* change margin between text and lightning label
* add active state to "Other" nav menu
* popover fixes
* fix link width
* [skip ci] update demo values
* add contract method id tag
* add form submit type
* refactor types for SmartConstract and make new component for Contract ABI methods
* move contract method form inside ABI folder
* handle form submit and display result
* clean-up
* change copied text
* handle case when blockchain interaction is not configured
* tests and screenshots update
* fix bug wit WEI checkbox
* 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
* display main data
* display rest of tx fields
* placeholder data
* always show tabs
* manage error and retries on details tab
* don't retry if degraded view is active
* fix tests
* fix tx receipt
* change styles and wording for warning
* tweaks
* gray alert style change and update screenshots
* add retries to RPC call
* fixes after merge
* 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