From 1215e6657c25990829e207df8158f5480fda242a Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 12 Apr 2024 21:31:05 +0530 Subject: [PATCH] migrate using events --- .../run-tab/src/lib/actions/events.ts | 24 +++++++++++++++++++ .../lib/components/instanceContainerUI.tsx | 20 ---------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/actions/events.ts b/libs/remix-ui/run-tab/src/lib/actions/events.ts index e69171317a..2afcb1825f 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/events.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/events.ts @@ -95,6 +95,7 @@ export const setupEvents = (plugin: RunTab, dispatch: React.Dispatch) => { dispatch(resetUdapp()) resetAndInit(plugin) await loadPinnedContracts(plugin, dispatch) + await migrateSavedContracts(plugin) plugin.call('manager', 'isActive', 'remixd').then((activated) => { dispatch(setRemixDActivated(activated)) }) @@ -183,6 +184,29 @@ const loadPinnedContracts = async (plugin, dispatch) => { } } +const migrateSavedContracts = async (plugin) => { + // Move contract saved in localstorage to Remix FE + const allSavedContracts = localStorage.getItem('savedContracts') + if (allSavedContracts) { + const savedContracts = JSON.parse(allSavedContracts) + for (const networkId in savedContracts) { + if (savedContracts[networkId].length > 0) { + for (const contractDetails of savedContracts[networkId]) { + const objToSave = { + name: contractDetails.name, + address: contractDetails.address, + abi: contractDetails.abi || contractDetails.contractData.abi, + filePath: contractDetails.filePath, + pinnedAt: contractDetails.savedOn + } + await plugin.call('fileManager', 'writeFile', `.deploys/pinned-contracts/${networkId}/${contractDetails.address}.json`, JSON.stringify(objToSave, null, 2)) + } + } + } + localStorage.removeItem('savedContracts') + } +} + const broadcastCompilationResult = async (compilerName: string, plugin: RunTab, dispatch: React.Dispatch, file, source, languageVersion, data, input?) => { _paq.push(['trackEvent', 'udapp', 'broadcastCompilationResult', compilerName]) // TODO check whether the tab is configured diff --git a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx index 04d4b59a96..393e380f2b 100644 --- a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx @@ -13,26 +13,6 @@ export function InstanceContainerUI(props: InstanceContainerProps) { const fetchSavedContracts = async () => { const { network } = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') chainId.current = network.id - // Move contract saved in localstorage to Remix FE - const allSavedContracts = localStorage.getItem('savedContracts') - if (allSavedContracts) { - const savedContracts = JSON.parse(allSavedContracts) - for (const networkId in savedContracts) { - if (savedContracts[networkId].length > 0) { - for (const contractDetails of savedContracts[networkId]) { - const objToSave = { - name: contractDetails.name, - address: contractDetails.address, - abi: contractDetails.abi || contractDetails.contractData.abi, - filePath: contractDetails.filePath, - pinnedAt: contractDetails.savedOn - } - await props.plugin.call('fileManager', 'writeFile', `.deploys/pinned-contracts/${networkId}/${contractDetails.address}.json`, JSON.stringify(objToSave, null, 2)) - } - } - } - localStorage.removeItem('savedContracts') - } // Clear existing saved instance state await props.plugin.call('udapp', 'clearAllPinnedInstances') // Load contracts from FE