mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
make migration more safe (#10689)
This commit is contained in:
parent
a81629e104
commit
1b4504e233
@ -17,14 +17,25 @@ export default {
|
||||
},
|
||||
};
|
||||
|
||||
const UNKNOWN_CHAIN_ID_KEY = 'UNKNOWN';
|
||||
|
||||
function transformState(state) {
|
||||
if (
|
||||
state?.IncomingTransactionsController?.incomingTxLastFetchedBlocksByNetwork
|
||||
) {
|
||||
state.IncomingTransactionsController.incomingTxLastFetchedBlockByChainId = mapKeys(
|
||||
state.IncomingTransactionsController.incomingTxLastFetchedBlocksByNetwork,
|
||||
(_, key) => NETWORK_TYPE_TO_ID_MAP[key].chainId,
|
||||
// using optional chaining in case user's state has fetched blocks for
|
||||
// RPC network types (which don't map to a single chainId). This should
|
||||
// not be possible, but it's safer
|
||||
(_, key) => NETWORK_TYPE_TO_ID_MAP[key]?.chainId ?? UNKNOWN_CHAIN_ID_KEY,
|
||||
);
|
||||
// Now that mainnet and test net last fetched blocks are keyed by their
|
||||
// respective chainIds, we can safely delete anything we had for custom
|
||||
// networks. Any custom network that shares a chainId with one of the
|
||||
// aforementioned networks will use the value stored by chainId.
|
||||
delete state.IncomingTransactionsController
|
||||
.incomingTxLastFetchedBlockByChainId[UNKNOWN_CHAIN_ID_KEY];
|
||||
delete state.IncomingTransactionsController
|
||||
.incomingTxLastFetchedBlocksByNetwork;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user