35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
|
|
---
|
||
|
|
title: "imToken production cannot get wallet address — Quick Fix"
|
||
|
|
type: quick-fix
|
||
|
|
date: 2026-06-06
|
||
|
|
---
|
||
|
|
|
||
|
|
# imToken production cannot get wallet address — Quick Fix
|
||
|
|
|
||
|
|
## Bug
|
||
|
|
|
||
|
|
`main` serves `ark-library.com`, while `terry-wallet-login` serves the staging site. Staging can log in with imToken, but production can open imToken's in-app browser without getting the wallet address or completing login.
|
||
|
|
|
||
|
|
## Root Cause
|
||
|
|
|
||
|
|
The auto-login effect only ran when the URL contained an explicit `autoLogin` / `autologin` query parameter. imToken's in-app-browser deeplink can open the DApp page without preserving that query string. In that case the production page was inside imToken and could have an injected wallet provider, but `AutoInjectedLogin` returned early and never attempted to read the wallet address.
|
||
|
|
|
||
|
|
The parser was also case-sensitive, so a lowercase `autologin=imtoken` test URL would not start the flow.
|
||
|
|
|
||
|
|
## Fix
|
||
|
|
|
||
|
|
Updated the auto-login entrypoint to treat an imToken in-app-browser user agent as an imToken direct-login session even when the query parameter is missing. Also made the wallet-kind parser case-insensitive.
|
||
|
|
|
||
|
|
### Files Modified
|
||
|
|
|
||
|
|
- `src/wallet/AutoInjectedLogin.tsx` — imports `isImTokenBrowser()`, falls back to `imToken` when inside imToken without an auto-login query, and accepts lowercase wallet kind values.
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
- `npx prettier --write src/wallet/AutoInjectedLogin.tsx`
|
||
|
|
- `npx tsc --noEmit`
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
This is scoped to imToken UA fallback. TokenPocket and MetaMask still require an explicit auto-login query parameter.
|