Skip to content

Commit

Permalink
fix: remove includeDuplicateSymbolAssets filter (#4768)
Browse files Browse the repository at this point in the history
## Explanation

What motivates this change is this user report
MetaMask/metamask-extension#27614

Based on discussions we had with teams; seems like initially, we added
the `includeDuplicateSymbolAssets` because there were concerns around
duplicate symbols being scammy and the increased size of tokenList.

For the duplicate symbols being scammy concern; i think our usage of
`occurrencesFloor=3` is helping us filter out any scam tokens.
Having tokens with the same symbol is not unusual and it does not
necessarily mean that the token is a scam.

For the tokenList size; we thought that; today; the tokenList we get
without `includeDuplicateSymbolAssets` has around 4500 tokens. With the
`includeDuplicateSymbolAssets` it has around 4000. Which does not seem
like it should have a huge impact. We thought that token the tokenList
size would increase regardless in future, and if users add their tokens
to lists and expect to see them we should not be filtering them out even
if they have duplicates.


## References

<!--
Are there any issues that this pull request is tied to?
Are there other links that reviewers should consult to understand these
changes better?
Are there client or consumer pull requests to adopt any breaking
changes?

For example:

* Fixes #12345
* Related to #67890
-->

## Changelog

<!--
If you're making any consumer-facing changes, list those changes here as
if you were updating a changelog, using the template below as a guide.

(CATEGORY is one of BREAKING, ADDED, CHANGED, DEPRECATED, REMOVED, or
FIXED. For security-related issues, follow the Security Advisory
process.)

Please take care to name the exact pieces of the API you've added or
changed (e.g. types, interfaces, functions, or methods).

If there are any breaking changes, make sure to offer a solution for
consumers to follow once they upgrade to the changes.

Finally, if you're only making changes to development scripts or tests,
you may replace the template below with "None".
-->

### `@metamask/assets-controllers`

- **Removed**: Removed param `includeDuplicateSymbolAssets` in our api
call to token-api.


## Checklist

- [ ] I've updated the test suite for new or updated code as appropriate
- [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [ ] I've highlighted breaking changes using the "BREAKING" category
above as appropriate
- [ ] I've prepared draft pull requests for clients and consumer
packages to resolve any breaking changes
  • Loading branch information
sahar-fehri authored Oct 9, 2024
1 parent e0d921a commit 6ebd3c2
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2247,7 +2247,7 @@ function getTokensPath(chainId: Hex) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
return `/tokens/${convertHexToDecimal(
chainId,
)}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false`;
)}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false`;
}

type WithControllerCallback<ReturnValue> = ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1363,5 +1363,5 @@ function getTokensPath(chainId: Hex) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
return `/tokens/${convertHexToDecimal(
chainId,
)}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`;
)}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`;
}
12 changes: 6 additions & 6 deletions packages/assets-controllers/src/token-service.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ describe('Token service', () => {
const { signal } = new AbortController();
nock(TOKEN_END_POINT_API)
.get(
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
.reply(200, sampleTokenList)
.persist();
Expand All @@ -260,7 +260,7 @@ describe('Token service', () => {

nock(TOKEN_END_POINT_API)
.get(
`/tokens/${lineaChainId}?occurrenceFloor=1&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${lineaChainId}?occurrenceFloor=1&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
.reply(200, sampleTokenListLinea)
.persist();
Expand All @@ -274,7 +274,7 @@ describe('Token service', () => {
const abortController = new AbortController();
nock(TOKEN_END_POINT_API)
.get(
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
// well beyond time it will take to abort
.delay(ONE_SECOND_IN_MILLISECONDS)
Expand All @@ -294,7 +294,7 @@ describe('Token service', () => {
const { signal } = new AbortController();
nock(TOKEN_END_POINT_API)
.get(
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
.replyWithError('Example network error')
.persist();
Expand All @@ -308,7 +308,7 @@ describe('Token service', () => {
const { signal } = new AbortController();
nock(TOKEN_END_POINT_API)
.get(
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
.reply(500)
.persist();
Expand All @@ -322,7 +322,7 @@ describe('Token service', () => {
const { signal } = new AbortController();
nock(TOKEN_END_POINT_API)
.get(
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
`/tokens/${sampleDecimalChainId}?occurrenceFloor=3&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`,
)
// well beyond timeout
.delay(ONE_SECOND_IN_MILLISECONDS)
Expand Down
2 changes: 1 addition & 1 deletion packages/assets-controllers/src/token-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function getTokensURL(chainId: Hex) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
return `${TOKEN_END_POINT_API}/tokens/${convertHexToDecimal(
chainId,
)}?occurrenceFloor=${occurrenceFloor}&includeNativeAssets=false&includeDuplicateSymbolAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`;
)}?occurrenceFloor=${occurrenceFloor}&includeNativeAssets=false&includeTokenFees=false&includeAssetType=false&includeERC20Permit=false&includeStorage=false`;
}

/**
Expand Down

0 comments on commit 6ebd3c2

Please sign in to comment.