Skip to content

Commit 881786e

Browse files
committed
Fix isFetchingTokenMetadata flag
Oh it wasn't working at all! Now it's fixed and tested.
1 parent 35bc91f commit 881786e

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

src/features/flag/flag.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Flag } from '$/features/flag/types'
2+
3+
describe('Flag', () => {
4+
describe('isFetchingTokenMetadata', () => {
5+
it('formats proper flag key', () => {
6+
expect(Flag.isFetchingTokenMetadata('0x1AB', [])).toEqual(
7+
'["isFetchingTokenMetadata","0x1ab"]'
8+
)
9+
10+
expect(Flag.isFetchingTokenMetadata('0x1AB', ['1', '3', '2'])).toEqual(
11+
'["isFetchingTokenMetadata","0x1ab","1","2","3"]'
12+
)
13+
})
14+
})
15+
})

src/features/misc/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ const reducer = createReducer(initialState, (b) => {
107107
b.addCase(
108108
MiscAction.cacheTokenMetadata,
109109
(state, { payload: { tokenAddress, tokenIds, tokenMetadata } }) => {
110-
state.tokenMetadatas[tokenMetadataCacheKey(tokenAddress, tokenIds)] = tokenMetadata
110+
state.tokenMetadatas[JSON.stringify(tokenMetadataCacheKey(tokenAddress, tokenIds))] =
111+
tokenMetadata
111112
}
112113
)
113114
})

src/hooks/useTokenMetadata.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ import { Address, OptionalAddress, State } from '$/types'
22
import { useSelector } from 'react-redux'
33

44
export function tokenMetadataCacheKey(tokenAddress: Address, tokenIds: string[]) {
5-
return JSON.stringify([tokenAddress.toLowerCase(), ...[...tokenIds].sort()])
5+
return [tokenAddress.toLowerCase(), ...[...tokenIds].sort()]
66
}
77

88
export function selectTokenMetadata(tokenAddress: OptionalAddress, tokenIds: string[]) {
99
if (!tokenAddress) {
1010
return () => undefined
1111
}
1212

13-
return ({ misc }: State) => misc.tokenMetadatas[tokenMetadataCacheKey(tokenAddress, tokenIds)]
13+
return ({ misc }: State) =>
14+
misc.tokenMetadatas[JSON.stringify(tokenMetadataCacheKey(tokenAddress, tokenIds))]
1415
}
1516

1617
export default function useTokenMetadata(tokenAddress: OptionalAddress, tokenIds: string[]) {

0 commit comments

Comments
 (0)