-
Notifications
You must be signed in to change notification settings - Fork 5.2k
feat: account details pages w/o 7702 #33964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… account type\'s account details page
…oute based on feature flag
…state 1 flag is not active
…nent in evm account details
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Missing Address Parameter in Account Navigation
The handleAccountClick
function incorrectly navigates to account details by pushing ACCOUNT_DETAILS_ROUTE
without the required address parameter. The ACCOUNT_DETAILS_ROUTE
now expects an :address
parameter, causing navigation to fail or result in a 404.
ui/pages/multichain-accounts/wallet-details/wallet-details.component.tsx#L79-L83
metamask-extension/ui/pages/multichain-accounts/wallet-details/wallet-details.component.tsx
Lines 79 to 83 in 9153933
const handleAccountClick = (account: { id: string; address: string }) => { | |
dispatch(setAccountDetailsAddress(account.address)); | |
history.push(ACCOUNT_DETAILS_ROUTE); | |
}; |
Bug: Test Fails Due to Route Parameter Change
The test for navigating to the QR code route has an incorrect expectation. It expects navigation to ACCOUNT_DETAILS_QR_CODE_ROUTE
, but the actual implementation now navigates to ${ACCOUNT_DETAILS_QR_CODE_ROUTE}/${address}
(including the address parameter). The test expectation needs to be updated to reflect this change.
ui/pages/multichain-accounts/base-account-details/base-account-details.test.tsx#L259-L260
metamask-extension/ui/pages/multichain-accounts/base-account-details/base-account-details.test.tsx
Lines 259 to 260 in 9153933
expect(mockPush).toHaveBeenCalledWith(ACCOUNT_DETAILS_QR_CODE_ROUTE); |
Was this report helpful? Give feedback by reacting with 👍 or 👎
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Missing Address Parameter in Navigation
The handleAccountClick
function in wallet-details.component.tsx
navigates to ACCOUNT_DETAILS_ROUTE
without including the required :address
parameter. The ACCOUNT_DETAILS_ROUTE
is defined to expect this parameter, leading to a route mismatch and preventing successful navigation to the account details page. The navigation should be history.push(
${ACCOUNT_DETAILS_ROUTE}/${account.address});
.
ui/pages/multichain-accounts/wallet-details/wallet-details.component.tsx#L79-L83
metamask-extension/ui/pages/multichain-accounts/wallet-details/wallet-details.component.tsx
Lines 79 to 83 in 066fb00
const handleAccountClick = (account: { id: string; address: string }) => { | |
dispatch(setAccountDetailsAddress(account.address)); | |
history.push(ACCOUNT_DETAILS_ROUTE); | |
}; |
Bug: Undefined URL Parameter Causes Runtime Errors
The address
obtained from useParams()
can be undefined
if the URL parameter is missing or malformed. This potentially undefined
value is then used directly, often with a type assertion as string
, and passed to functions like getInternalAccountByAddress
and components such as QrCodeView
without null checking, which can lead to runtime errors.
ui/pages/multichain-accounts/address-qr-code/address-qr-code.tsx#L38-L91
metamask-extension/ui/pages/multichain-accounts/address-qr-code/address-qr-code.tsx
Lines 38 to 91 in 066fb00
const history = useHistory(); | |
const { address } = useParams(); | |
const trackEvent = useContext(MetaMetricsContext); | |
const account = useSelector((state) => | |
getInternalAccountByAddress(state, address), | |
); | |
const multichainNetwork = useMultichainSelector( | |
getMultichainNetwork, | |
account, | |
); | |
const addressLink = getMultichainAccountUrl( | |
account.address, | |
multichainNetwork, | |
); | |
const chainId = parseCaipChainId(multichainNetwork.chainId).reference; | |
const metricsLocation = 'Account Details QR Code Page'; | |
const handleNavigation = useCallback(() => { | |
trackEvent({ | |
event: MetaMetricsEventName.BlockExplorerLinkClicked, | |
category: MetaMetricsEventCategory.Accounts, | |
properties: { | |
location: metricsLocation, | |
chain_id: chainId, | |
}, | |
}); | |
openBlockExplorer(addressLink, metricsLocation, trackEvent); | |
}, [chainId, trackEvent, addressLink]); | |
return ( | |
<Page className="address-qr-code-page"> | |
<Header | |
backgroundColor={BackgroundColor.backgroundDefault} | |
startAccessory={ | |
<ButtonIcon | |
ariaLabel="Back" | |
iconName={IconName.ArrowLeft} | |
size={ButtonIconSize.Sm} | |
onClick={() => history.push(`${ACCOUNT_DETAILS_ROUTE}/${address}`)} | |
/> | |
} | |
> | |
{t('address')} | |
</Header> | |
<Content paddingTop={0}> | |
<QrCodeView | |
Qr={{ data: address as string }} | |
location="Account Details Page" | |
/> | |
</Content> |
Was this report helpful? Give feedback by reacting with 👍 or 👎
Builds ready [066fb00]
UI Startup Metrics (1206 ± 80 ms)
Benchmark value 2340 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 1752 exceeds gate value 1711 for chrome webpack home mean load Benchmark value 1745 exceeds gate value 1704 for chrome webpack home mean domContentLoaded Benchmark value 259 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 1742 exceeds gate value 1699 for chrome webpack home mean loadScripts Benchmark value 2823 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 2131 exceeds gate value 2030 for chrome webpack home p95 load Benchmark value 2126 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded Benchmark value 61 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 403 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 2115 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 1434 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 1257 exceeds gate value 1245 for firefox browserify home mean load Benchmark value 1257 exceeds gate value 1239 for firefox browserify home mean domContentLoaded Benchmark value 125 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 13 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 1237 exceeds gate value 1230 for firefox browserify home mean loadScripts Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1765 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 305 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 34 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 29 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1675 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1437 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1436 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 121 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 27 exceeds gate value 26 for firefox webpack home mean backgroundConnect Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 20 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 1414 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 2207 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1858 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1857 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 485 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 57 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 1836 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 32 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 645ms | Sum of p95 exceeds: 2231ms Sum of all benchmark exceeds: 2876ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
🚨 BugBot couldn't runBugBot is experiencing high demand right now. Try again in a few minutes by commenting "bugbot run" (requestId: serverGenReqId_da1331d5-ca95-4e72-bf91-f7937b83f4ea). |
Builds ready [38fc83a]
UI Startup Metrics (1179 ± 64 ms)
Benchmark value 2212 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 249 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 2702 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 2031 exceeds gate value 2030 for chrome webpack home p95 load Benchmark value 2016 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded Benchmark value 63 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 400 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 2005 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 1428 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 1246 exceeds gate value 1245 for firefox browserify home mean load Benchmark value 1245 exceeds gate value 1239 for firefox browserify home mean domContentLoaded Benchmark value 117 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 16 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 14 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1688 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 34 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 63 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1622 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1401 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1400 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 105 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 42 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 1379 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 1991 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1718 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1718 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 319 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 34 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 1698 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 37 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 160ms | Sum of p95 exceeds: 819ms Sum of all benchmark exceeds: 979ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
🚨 BugBot couldn't runSomething went wrong. Try again by commenting "bugbot run", or contact support (requestId: serverGenReqId_9365452e-d57f-4a3a-9c99-e5d2ba809cbd). |
Builds ready [ce6d4c8]
UI Startup Metrics (1183 ± 72 ms)
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState Benchmark value 2361 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 1773 exceeds gate value 1711 for chrome webpack home mean load Benchmark value 1765 exceeds gate value 1704 for chrome webpack home mean domContentLoaded Benchmark value 1762 exceeds gate value 1699 for chrome webpack home mean loadScripts Benchmark value 2811 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 2108 exceeds gate value 2030 for chrome webpack home p95 load Benchmark value 2096 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded Benchmark value 60 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 400 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 2084 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 1406 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 127 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 13 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 15 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1700 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 333 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 51 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 50 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1678 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1446 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1446 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 110 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 1424 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 15 exceeds gate value 13 for firefox webpack home mean setupStore Benchmark value 2168 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1802 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1802 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 324 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 1770 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 31 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 662ms | Sum of p95 exceeds: 1729ms Sum of all benchmark exceeds: 2391ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Builds ready [cfabe05]
UI Startup Metrics (1200 ± 78 ms)
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState Benchmark value 19 exceeds gate value 17 for chrome browserify home p95 setupStore Benchmark value 2205 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 262 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 2635 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 66 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 351 exceeds gate value 334 for chrome webpack home p95 firstPaint Benchmark value 410 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 1462 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 1275 exceeds gate value 1245 for firefox browserify home mean load Benchmark value 1274 exceeds gate value 1239 for firefox browserify home mean domContentLoaded Benchmark value 120 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 28 exceeds gate value 25 for firefox browserify home mean backgroundConnect Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 1253 exceeds gate value 1230 for firefox browserify home mean loadScripts Benchmark value 16 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1781 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 309 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 88 exceeds gate value 70 for firefox browserify home p95 backgroundConnect Benchmark value 51 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 71 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1662 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1424 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1424 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 107 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 28 exceeds gate value 26 for firefox webpack home mean backgroundConnect Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 20 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 1398 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 18 exceeds gate value 13 for firefox webpack home mean setupStore Benchmark value 2183 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1708 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1708 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 298 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 86 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 1659 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 103 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 408ms | Sum of p95 exceeds: 1217ms Sum of all benchmark exceeds: 1625ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Description
Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions:
NOTE: This PR omits 7702 integration, will be followed up in a separate PR.
Manual testing steps
.manifest-overrides.json
file in the root and add the following:Pre-merge author checklist
Pre-merge reviewer checklist