Skip to content

Commit df2c45b

Browse files
skylarbarreraibrahimtaveras00
authored andcommitted
chore: migrate pinned + hidden tokens
1 parent 1f08e05 commit df2c45b

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/migrations/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { prepareDefaultNotificationGroupSettingsState } from '@/migrations/migra
1111
import { changeLanguageKeys } from './migrations/changeLanguageKeys';
1212
import { fixHiddenUSDC } from './migrations/fixHiddenUSDC';
1313
import { purgeWcConnectionsWithoutAccounts } from './migrations/purgeWcConnectionsWithoutAccounts';
14+
import { migratePinnedAndHiddenTokenUniqueIds } from './migrations/migratePinnedAndHiddenTokenUniqueIds';
1415

1516
/**
1617
* Local storage for migrations only. Should not be exported.
@@ -33,6 +34,7 @@ const migrations: Migration[] = [
3334
changeLanguageKeys(),
3435
fixHiddenUSDC(),
3536
purgeWcConnectionsWithoutAccounts(),
37+
migratePinnedAndHiddenTokenUniqueIds(),
3638
];
3739

3840
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { BooleanMap } from '@/hooks/useCoinListEditOptions';
2+
import { Migration, MigrationName } from '@/migrations/types';
3+
import { loadAddress } from '@/model/wallet';
4+
import { Network } from '@/networks/types';
5+
import { getUniqueId } from '@/utils/ethereumUtils';
6+
import { MMKV } from 'react-native-mmkv';
7+
8+
const mmkv = new MMKV();
9+
10+
export function migratePinnedAndHiddenTokenUniqueIds(): Migration {
11+
return {
12+
name: MigrationName.migratePinnedAndHiddenTokenUniqueIds,
13+
async defer() {
14+
const address = await loadAddress();
15+
const hiddenCoinsKey = 'hidden-coins-obj-' + address;
16+
const pinnedCoinsKey = 'pinned-coins-obj-' + address;
17+
const hiddenCoinsString = mmkv.getString(hiddenCoinsKey);
18+
const pinnedCoinsString = mmkv.getString(pinnedCoinsKey);
19+
const hiddenCoinsKeys = Object.keys(hiddenCoinsString ? JSON.parse(hiddenCoinsString) : {});
20+
const pinnedCoinsKeys = Object.keys(pinnedCoinsString ? JSON.parse(pinnedCoinsString) : {});
21+
const newHiddenCoins = hiddenCoinsKeys.reduce((acc, curr) => {
22+
if (!curr.includes('_')) {
23+
acc[getUniqueId(curr, Network.mainnet)] = true;
24+
return acc;
25+
}
26+
acc[curr] = true;
27+
return acc;
28+
}, {} as BooleanMap);
29+
30+
const newPinnedCoins = pinnedCoinsKeys.reduce((acc, curr) => {
31+
if (!curr.includes('_')) {
32+
acc[getUniqueId(curr, Network.mainnet)] = true;
33+
return acc;
34+
}
35+
acc[curr] = true;
36+
return acc;
37+
}, {} as BooleanMap);
38+
39+
mmkv.set('hidden-coins-obj-' + address, JSON.stringify(newHiddenCoins));
40+
mmkv.set('pinned-coins-obj-' + address, JSON.stringify(newPinnedCoins));
41+
},
42+
};
43+
}

src/migrations/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export enum MigrationName {
1414
changeLanguageKeys = 'migration_changeLanguageKeys',
1515
fixHiddenUSDC = 'migration_fixHiddenUSDC',
1616
purgeWcConnectionsWithoutAccounts = 'migration_purgeWcConnectionsWithoutAccounts',
17+
migratePinnedAndHiddenTokenUniqueIds = 'migration_migratePinnedAndHiddenTokenUniqueIds',
1718
}
1819

1920
export type Migration = {

0 commit comments

Comments
 (0)