import {storageSerializer} from '@yoroi/common' import {App, Portfolio} from '@yoroi/types' import {freeze} from 'immer' export const portfolioTokenStorageMaker = ({ tokenInfoStorage, }: { tokenInfoStorage: App.ObservableStorage }): Portfolio.Storage.Token => { const infos = { save: ( entries: ReadonlyArray< [Portfolio.Token.Id, App.CacheRecord] >, ) => tokenInfoStorage.multiSet>( entries, storageSerializer, ), read: (keys: ReadonlyArray) => tokenInfoStorage.multiGet>(keys), all: () => tokenInfoStorage.multiGet>( tokenInfoStorage.getAllKeys(), ), keys: () => tokenInfoStorage.getAllKeys(), clear: () => tokenInfoStorage.clear(), } const clear = () => { tokenInfoStorage.clear() } return freeze( { token: { infos, }, clear, }, true, ) }