-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
RangeError: j6.l: Malformed currency code ! #12856
Comments
I triggered this with my physical android device. App on my device is now in a state where wallet view is always showing the crash screen. I am able to navigate to other screens from the bottom nav panel. Even if I restart app it lands on the crash screen. |
I think this all started when I changed the currency to USDT in Settings > General and just started tapping on tokens to view the charts and then backing out to wallet view and tapping another token when this crash occurred. |
Ok, so workaround is to change the currency back to USD in Settings > General, restart app and crash screen goes away. |
Reproduced on Android Pixel 6 Pro, v7.38.0 (1523) from here when selecting currency conversion the following tokens:
Malformed.currency.code.error.mov |
## **Description** 1. What is the reason for the change? There was a crash when clicking on the Staked Ethereum asset due to it missing a key `nativeAsset` which is required in some component. This was a regression from code refactoring. Separately, there was a currency switching bug that was introduced with the use of a different fiat conversion method. I have switched to a method that does not throw error for currency switching and this has been tested with Vince Separately, there were some issues with the Token list asset balances being slightly off. This was noticed when the balance we use for the Asset Detail staked Ethereum asset showed up differently than in the Token List. Some of this has been addressed, but there are still issues that I've noticed where we lose precision when getting the fiat total of a token asset or native asset. I left a comment in the code about this, and maybe it could be revisited it later. 2. What is the improvement/solution? We added the `nativeAsset` key back to the staked ethereum asset We added the weiToFiat method to replace the Intl.NumberFormat method We removed precision loss from multichain.ts asset fiatBalance calculations, however there is another place(s) where fiat balances are recalculated again i.e. [deriveBalanceFromAssetMarketDetails.ts](https://github.com/MetaMask/metamask-mobile/pull/12851/files#diff-283c109c8093bbb5d8e06be79bcbeac928b8353633e55dc7944594a0e6888b49) ## **Related issues** Fixes: #12680 Fixes: #12856 Closes: https://consensyssoftware.atlassian.net/browse/STAKE-912 ## **Manual testing steps** - Import the staking test wallet in MM - Click on the staked ethereum asset - The link should not crash the application more info here on testing this #12680 - Currency switching should not crash the application more info here on testing this #12856 ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/c2525b70-8d04-4606-861b-3206ebd557f4 https://github.com/user-attachments/assets/a8c4010e-3589-4171-803a-4d07a962e6a6 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** 1. What is the reason for the change? There was a crash when clicking on the Staked Ethereum asset due to it missing a key `nativeAsset` which is required in some component. This was a regression from code refactoring. Separately, there was a currency switching bug that was introduced with the use of a different fiat conversion method. I have switched to a method that does not throw error for currency switching and this has been tested with Vince Separately, there were some issues with the Token list asset balances being slightly off. This was noticed when the balance we use for the Asset Detail staked Ethereum asset showed up differently than in the Token List. Some of this has been addressed, but there are still issues that I've noticed where we lose precision when getting the fiat total of a token asset or native asset. I left a comment in the code about this, and maybe it could be revisited it later. 2. What is the improvement/solution? We added the `nativeAsset` key back to the staked ethereum asset We added the weiToFiat method to replace the Intl.NumberFormat method We removed precision loss from multichain.ts asset fiatBalance calculations, however there is another place(s) where fiat balances are recalculated again i.e. [deriveBalanceFromAssetMarketDetails.ts](https://github.com/MetaMask/metamask-mobile/pull/12851/files#diff-283c109c8093bbb5d8e06be79bcbeac928b8353633e55dc7944594a0e6888b49) ## **Related issues** Fixes: #12680 Fixes: #12856 Closes: https://consensyssoftware.atlassian.net/browse/STAKE-912 ## **Manual testing steps** - Import the staking test wallet in MM - Click on the staked ethereum asset - The link should not crash the application more info here on testing this #12680 - Currency switching should not crash the application more info here on testing this #12856 ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/c2525b70-8d04-4606-861b-3206ebd557f4 https://github.com/user-attachments/assets/a8c4010e-3589-4171-803a-4d07a962e6a6 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** 1. What is the reason for the change? There was a crash when clicking on the Staked Ethereum asset due to it missing a key `nativeAsset` which is required in some component. This was a regression from code refactoring. Separately, there was a currency switching bug that was introduced with the use of a different fiat conversion method. I have switched to a method that does not throw error for currency switching and this has been tested with Vince Separately, there were some issues with the Token list asset balances being slightly off. This was noticed when the balance we use for the Asset Detail staked Ethereum asset showed up differently than in the Token List. Some of this has been addressed, but there are still issues that I've noticed where we lose precision when getting the fiat total of a token asset or native asset. I left a comment in the code about this, and maybe it could be revisited it later. 2. What is the improvement/solution? We added the `nativeAsset` key back to the staked ethereum asset We added the weiToFiat method to replace the Intl.NumberFormat method We removed precision loss from multichain.ts asset fiatBalance calculations, however there is another place(s) where fiat balances are recalculated again i.e. [deriveBalanceFromAssetMarketDetails.ts](https://github.com/MetaMask/metamask-mobile/pull/12851/files#diff-283c109c8093bbb5d8e06be79bcbeac928b8353633e55dc7944594a0e6888b49) ## **Related issues** Fixes: #12680 Fixes: #12856 Closes: https://consensyssoftware.atlassian.net/browse/STAKE-912 ## **Manual testing steps** - Import the staking test wallet in MM - Click on the staked ethereum asset - The link should not crash the application more info here on testing this #12680 - Currency switching should not crash the application more info here on testing this #12856 ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/c2525b70-8d04-4606-861b-3206ebd557f4 https://github.com/user-attachments/assets/a8c4010e-3589-4171-803a-4d07a962e6a6 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…et multichain (#12851) ## **Description** 1. What is the reason for the change? There was a crash when clicking on the Staked Ethereum asset due to it missing a key `nativeAsset` which is required in some component. This was a regression from code refactoring. Separately, there was a currency switching bug that was introduced with the use of a different fiat conversion method. I have switched to a method that does not throw error for currency switching and this has been tested with Vince Separately, there were some issues with the Token list asset balances being slightly off. This was noticed when the balance we use for the Asset Detail staked Ethereum asset showed up differently than in the Token List. Some of this has been addressed, but there are still issues that I've noticed where we lose precision when getting the fiat total of a token asset or native asset. I left a comment in the code about this, and maybe it could be revisited it later. 2. What is the improvement/solution? We added the `nativeAsset` key back to the staked ethereum asset We added the weiToFiat method to replace the Intl.NumberFormat method We removed precision loss from multichain.ts asset fiatBalance calculations, however there is another place(s) where fiat balances are recalculated again i.e. [deriveBalanceFromAssetMarketDetails.ts](https://github.com/MetaMask/metamask-mobile/pull/12851/files#diff-283c109c8093bbb5d8e06be79bcbeac928b8353633e55dc7944594a0e6888b49) ## **Related issues** Fixes: #12680 Fixes: #12856 Closes: https://consensyssoftware.atlassian.net/browse/STAKE-912 ## **Manual testing steps** - Import the staking test wallet in MM - Click on the staked ethereum asset - The link should not crash the application more info here on testing this #12680 - Currency switching should not crash the application more info here on testing this #12856 ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/c2525b70-8d04-4606-861b-3206ebd557f4 https://github.com/user-attachments/assets/a8c4010e-3589-4171-803a-4d07a962e6a6 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…et multichain (#12930) - fix: add nativeAsset key to staked ETH asset multichain (#12851) ## **Description** 1. What is the reason for the change? There was a crash when clicking on the Staked Ethereum asset due to it missing a key `nativeAsset` which is required in some component. This was a regression from code refactoring. Separately, there was a currency switching bug that was introduced with the use of a different fiat conversion method. I have switched to a method that does not throw error for currency switching and this has been tested with Vince Separately, there were some issues with the Token list asset balances being slightly off. This was noticed when the balance we use for the Asset Detail staked Ethereum asset showed up differently than in the Token List. Some of this has been addressed, but there are still issues that I've noticed where we lose precision when getting the fiat total of a token asset or native asset. I left a comment in the code about this, and maybe it could be revisited it later. 2. What is the improvement/solution? We added the `nativeAsset` key back to the staked ethereum asset We added the weiToFiat method to replace the Intl.NumberFormat method We removed precision loss from multichain.ts asset fiatBalance calculations, however there is another place(s) where fiat balances are recalculated again i.e. [deriveBalanceFromAssetMarketDetails.ts](https://github.com/MetaMask/metamask-mobile/pull/12851/files#diff-283c109c8093bbb5d8e06be79bcbeac928b8353633e55dc7944594a0e6888b49) ## **Related issues** Fixes: #12680 Fixes: #12856 Closes: https://consensyssoftware.atlassian.net/browse/STAKE-912 ## **Manual testing steps** - Import the staking test wallet in MM - Click on the staked ethereum asset - The link should not crash the application more info here on testing this #12680 - Currency switching should not crash the application more info here on testing this #12856 ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/c2525b70-8d04-4606-861b-3206ebd557f4 https://github.com/user-attachments/assets/a8c4010e-3589-4171-803a-4d07a962e6a6 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. [40a999c](40a999c) Co-authored-by: Nicholas Smith <nick.smith@consensys.net>
Root Cause Analysis The root cause of this issue was that new changes to using |
Sentry Issue: METAMASK-MOBILE-39FF
The text was updated successfully, but these errors were encountered: