diff --git a/apps/remix-ide/src/app/tabs/locales/en/udapp.json b/apps/remix-ide/src/app/tabs/locales/en/udapp.json index 4ab434c25f..a9d9e533a0 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -72,8 +72,8 @@ "udapp.savedContracts": "Pinned Contracts", "udapp.tooltipTextPinnedContracts": "List of pinned contracts for selected workspace & network", - "udapp.NoSavedInstanceText": "No pinned contracts found for selected workspace & network", - "udapp.tooltipTextDelete": "Delete pinned contract", + "udapp.NoPinnedInstanceText": "No pinned contracts found for selected workspace & network", + "udapp.tooltipTextDelete": "Delete immediately", "udapp.tooltipTextUnpin": "Unpin contract", "udapp.pinnedAt": "Pinned at", "udapp.filePath": "File path", diff --git a/apps/remix-ide/src/app/udapp/run-tab.js b/apps/remix-ide/src/app/udapp/run-tab.js index f45e0ba67b..ed421110e4 100644 --- a/apps/remix-ide/src/app/udapp/run-tab.js +++ b/apps/remix-ide/src/app/udapp/run-tab.js @@ -28,9 +28,9 @@ const profile = { 'getSettings', 'setEnvironmentMode', 'clearAllInstances', - 'clearAllSavedInstances', + 'clearAllPinnedInstances', 'addInstance', - 'addSavedInstance', + 'addPinnedInstance', 'resolveContractAndAddInstance' ] } @@ -81,16 +81,16 @@ export class RunTab extends ViewPlugin { this.emit('clearAllInstancesReducer') } - clearAllSavedInstances() { - this.emit('clearAllSavedInstancesReducer') + clearAllPinnedInstances() { + this.emit('clearAllPinnedInstancesReducer') } addInstance(address, abi, name, contractData) { this.emit('addInstanceReducer', address, abi, name, contractData) } - addSavedInstance(address, abi, name, pinnedAt, filePath) { - this.emit('addSavedInstanceReducer', address, abi, name, pinnedAt, filePath) + addPinnedInstance(address, abi, name, pinnedAt, filePath) { + this.emit('addPinnedInstanceReducer', address, abi, name, pinnedAt, filePath) } createVMAccount(newAccount) { diff --git a/libs/remix-ui/run-tab/src/lib/actions/actions.ts b/libs/remix-ui/run-tab/src/lib/actions/actions.ts index 318a72292d..39a39c826e 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/actions.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/actions.ts @@ -1,5 +1,5 @@ import { ContractData } from "@remix-project/core-plugin" -import { addNewInstance, addNewSavedInstance, addProvider, clearAllInstances, clearAllSavedInstances, clearRecorderCount, hidePopUp, newProxyDeployment, removeExistingInstance, removeProvider, setBaseFeePerGas, setConfirmSettings, setCurrentContract, setExecutionEnvironment, setExternalEndpoint, setGasLimit, setGasPrice, setGasPriceStatus, setMatchPassphrase, setMaxFee, setMaxPriorityFee, setNetworkName, setPassphrase, setPathToScenario, setSelectedAccount, setSendUnit, setSendValue } from "./payload" +import { addNewInstance, addNewPinnedInstance, addProvider, clearAllInstances, clearAllPinnedInstances, clearRecorderCount, hidePopUp, newProxyDeployment, removeExistingInstance, removeProvider, setBaseFeePerGas, setConfirmSettings, setCurrentContract, setExecutionEnvironment, setExternalEndpoint, setGasLimit, setGasPrice, setGasPriceStatus, setMatchPassphrase, setMaxFee, setMaxPriorityFee, setNetworkName, setPassphrase, setPathToScenario, setSelectedAccount, setSendUnit, setSendValue } from "./payload" export const setAccount = (dispatch: React.Dispatch, account: string) => { dispatch(setSelectedAccount(account)) @@ -70,13 +70,13 @@ export const addInstance = (dispatch: React.Dispatch, instance: { contractD dispatch(addNewInstance(instance)) } -export const addSavedInstance = (dispatch: React.Dispatch, instance: { contractData?: ContractData, address: string, name: string, abi?: any, decodedResponse?: Record, pinnedAt?: number, filePath?: string }) => { +export const addPinnedInstance = (dispatch: React.Dispatch, instance: { contractData?: ContractData, address: string, name: string, abi?: any, decodedResponse?: Record, pinnedAt?: number, filePath?: string }) => { instance.decodedResponse = {} - dispatch(addNewSavedInstance(instance)) + dispatch(addNewPinnedInstance(instance)) } -export const removeInstance = (dispatch: React.Dispatch, index: number, isSavedContract: boolean, shouldDelete: boolean) => { - dispatch(removeExistingInstance(index, isSavedContract, shouldDelete)) +export const removeInstance = (dispatch: React.Dispatch, index: number, isPinnedContract: boolean, shouldDelete: boolean) => { + dispatch(removeExistingInstance(index, isPinnedContract, shouldDelete)) } export const clearInstances = (dispatch: React.Dispatch) => { @@ -84,8 +84,8 @@ export const clearInstances = (dispatch: React.Dispatch) => { dispatch(clearRecorderCount()) } -export const clearSavedInstances = (dispatch: React.Dispatch) => { - dispatch(clearAllSavedInstances()) +export const clearPinnedInstances = (dispatch: React.Dispatch) => { + dispatch(clearAllPinnedInstances()) dispatch(clearRecorderCount()) } diff --git a/libs/remix-ui/run-tab/src/lib/actions/deploy.ts b/libs/remix-ui/run-tab/src/lib/actions/deploy.ts index c6b3418a00..2c83f011c3 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/deploy.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/deploy.ts @@ -283,7 +283,7 @@ export const runTransactions = ( plugin: RunTab, dispatch: React.Dispatch, instanceIndex: number, - isSavedContract: boolean, + isPinnedContract: boolean, lookupOnly: boolean, funcABI: FuncABI, inputsValues: string, @@ -320,7 +320,7 @@ export const runTransactions = ( (returnValue) => { const response = txFormat.decodeResponse(returnValue, funcABI) - dispatch(setDecodedResponse(instanceIndex, response, funcIndex, isSavedContract)) + dispatch(setDecodedResponse(instanceIndex, response, funcIndex, isPinnedContract)) }, (network, tx, gasEstimation, continueTxExecution, cancelCb) => { confirmationHandler(plugin, dispatch, mainnetPrompt, network, tx, gasEstimation, continueTxExecution, cancelCb) 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 09f6942e17..2b358b9916 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/events.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/events.ts @@ -1,8 +1,8 @@ import { envChangeNotification } from "@remix-ui/helper" import { RunTab } from "../types/run-tab" import { setExecutionContext, setFinalContext, updateAccountBalances, fillAccountsList } from "./account" -import { addExternalProvider, addInstance, addSavedInstance, addNewProxyDeployment, removeExternalProvider, setNetworkNameFromProvider } from "./actions" -import { addDeployOption, clearAllInstances, clearAllSavedInstances, clearRecorderCount, fetchContractListSuccess, resetProxyDeployments, resetUdapp, setCurrentContract, setCurrentFile, setLoadType, setRecorderCount, setRemixDActivated, setSendValue, fetchAccountsListSuccess } from "./payload" +import { addExternalProvider, addInstance, addPinnedInstance, addNewProxyDeployment, removeExternalProvider, setNetworkNameFromProvider } from "./actions" +import { addDeployOption, clearAllInstances, clearAllPinnedInstances, clearRecorderCount, fetchContractListSuccess, resetProxyDeployments, resetUdapp, setCurrentContract, setCurrentFile, setLoadType, setRecorderCount, setRemixDActivated, setSendValue, fetchAccountsListSuccess } from "./payload" import { updateInstanceBalance } from './deploy' import { CompilerAbstract } from '@remix-project/remix-solidity' import BN from 'bn.js' @@ -79,16 +79,16 @@ export const setupEvents = (plugin: RunTab, dispatch: React.Dispatch) => { dispatch(clearAllInstances()) }) - plugin.on('udapp', 'clearAllSavedInstancesReducer', () => { - dispatch(clearAllSavedInstances()) + plugin.on('udapp', 'clearAllPinnedInstancesReducer', () => { + dispatch(clearAllPinnedInstances()) }) plugin.on('udapp', 'addInstanceReducer', (address, abi, name, contractData?) => { addInstance(dispatch, { contractData, abi, address, name }) }) - plugin.on('udapp', 'addSavedInstanceReducer', (address, abi, name, pinnedAt, filePath) => { - addSavedInstance(dispatch, { abi, address, name, pinnedAt, filePath}) + plugin.on('udapp', 'addPinnedInstanceReducer', (address, abi, name, pinnedAt, filePath) => { + addPinnedInstance(dispatch, { abi, address, name, pinnedAt, filePath}) }) plugin.on('filePanel', 'setWorkspace', async () => { @@ -104,7 +104,7 @@ export const setupEvents = (plugin: RunTab, dispatch: React.Dispatch) => { for (const file of filePaths) { const pinnedContract = await plugin.call('fileManager', 'readFile', file) const pinnedContractObj = JSON.parse(pinnedContract) - if (pinnedContractObj) addSavedInstance(dispatch, pinnedContractObj) + if (pinnedContractObj) addPinnedInstance(dispatch, pinnedContractObj) } } catch(err) { console.log(err) diff --git a/libs/remix-ui/run-tab/src/lib/actions/index.ts b/libs/remix-ui/run-tab/src/lib/actions/index.ts index 7c40c0f65a..41ac1012d0 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/index.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts @@ -48,9 +48,9 @@ export const setGasPriceStatus = (status: boolean) => updateGasPriceStatus(dispa export const setMaxFee = (fee: string) => updateMaxFee(dispatch, fee) export const setMaxPriorityFee = (fee: string) => updateMaxPriorityFee(dispatch, fee) export const removeInstances = () => clearInstances(dispatch) -export const removeSingleInstance = (index: number, isSavedContract: boolean, shouldDelete: boolean) => removeInstance(dispatch, index, isSavedContract, shouldDelete) +export const removeSingleInstance = (index: number, isPinnedContract: boolean, shouldDelete: boolean) => removeInstance(dispatch, index, isPinnedContract, shouldDelete) export const getExecutionContext = () => getContext(plugin) -export const executeTransactions = (instanceIndex: number, isSavedContract: boolean, lookupOnly: boolean, funcABI: FuncABI, inputsValues: string, contractName: string, contractABI, contract, address, logMsg:string, mainnetPrompt: MainnetPrompt, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, funcIndex?: number) => runTransactions(plugin, dispatch, instanceIndex, isSavedContract, lookupOnly, funcABI, inputsValues, contractName, contractABI, contract, address, logMsg, mainnetPrompt, gasEstimationPrompt, passphrasePrompt, funcIndex) +export const executeTransactions = (instanceIndex: number, isPinnedContract: boolean, lookupOnly: boolean, funcABI: FuncABI, inputsValues: string, contractName: string, contractABI, contract, address, logMsg:string, mainnetPrompt: MainnetPrompt, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, funcIndex?: number) => runTransactions(plugin, dispatch, instanceIndex, isPinnedContract, lookupOnly, funcABI, inputsValues, contractName, contractABI, contract, address, logMsg, mainnetPrompt, gasEstimationPrompt, passphrasePrompt, funcIndex) export const loadFromAddress = (contract: ContractData, address: string) => loadAddress(plugin, dispatch, contract, address) export const storeNewScenario = async (prompt: (msg: string, defaultValue: string) => JSX.Element) => storeScenario(plugin, dispatch, prompt) export const runScenario = (liveMode: boolean, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => runCurrentScenario(liveMode, plugin, dispatch, gasEstimationPrompt, passphrasePrompt, confirmDialogContent) diff --git a/libs/remix-ui/run-tab/src/lib/actions/payload.ts b/libs/remix-ui/run-tab/src/lib/actions/payload.ts index 57095c4475..76eb27411f 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/payload.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/payload.ts @@ -1,5 +1,5 @@ import { ContractData } from '@remix-project/core-plugin' -import { ADD_DEPLOY_OPTION, ADD_INSTANCE, ADD_SAVED_INSTANCE, UPDATE_INSTANCES_BALANCE, ADD_PROVIDER, CLEAR_INSTANCES, CLEAR_SAVED_INSTANCES, CLEAR_RECORDER_COUNT, DISPLAY_NOTIFICATION, DISPLAY_POPUP_MESSAGE, FETCH_ACCOUNTS_LIST_FAILED, FETCH_ACCOUNTS_LIST_REQUEST, FETCH_ACCOUNTS_LIST_SUCCESS, FETCH_CONTRACT_LIST_FAILED, FETCH_CONTRACT_LIST_REQUEST, FETCH_CONTRACT_LIST_SUCCESS, HIDE_NOTIFICATION, HIDE_POPUP_MESSAGE, REMOVE_DEPLOY_OPTION, REMOVE_INSTANCE, REMOVE_PROVIDER, RESET_STATE, SET_BASE_FEE_PER_GAS, SET_CONFIRM_SETTINGS, SET_CURRENT_CONTRACT, SET_CURRENT_FILE, SET_DECODED_RESPONSE, SET_DEPLOY_OPTIONS, SET_EXECUTION_ENVIRONMENT, SET_EXTERNAL_WEB3_ENDPOINT, SET_GAS_LIMIT, SET_GAS_PRICE, SET_GAS_PRICE_STATUS, SET_IPFS_CHECKED_STATE, SET_LOAD_TYPE, SET_MATCH_PASSPHRASE, SET_MAX_FEE, SET_MAX_PRIORITY_FEE, SET_NETWORK_NAME, SET_PASSPHRASE, SET_PATH_TO_SCENARIO, SET_PERSONAL_MODE, SET_RECORDER_COUNT, SET_SELECTED_ACCOUNT, SET_SEND_UNIT, SET_SEND_VALUE, SET_REMIXD_ACTIVATED, FETCH_PROXY_DEPLOYMENTS, NEW_PROXY_DEPLOYMENT, RESET_PROXY_DEPLOYMENTS, EXTRACT_COMPILER_VERSION } from '../constants' +import { ADD_DEPLOY_OPTION, ADD_INSTANCE, ADD_PINNED_INSTANCE, UPDATE_INSTANCES_BALANCE, ADD_PROVIDER, CLEAR_INSTANCES, CLEAR_PINNED_INSTANCES, CLEAR_RECORDER_COUNT, DISPLAY_NOTIFICATION, DISPLAY_POPUP_MESSAGE, FETCH_ACCOUNTS_LIST_FAILED, FETCH_ACCOUNTS_LIST_REQUEST, FETCH_ACCOUNTS_LIST_SUCCESS, FETCH_CONTRACT_LIST_FAILED, FETCH_CONTRACT_LIST_REQUEST, FETCH_CONTRACT_LIST_SUCCESS, HIDE_NOTIFICATION, HIDE_POPUP_MESSAGE, REMOVE_DEPLOY_OPTION, REMOVE_INSTANCE, REMOVE_PROVIDER, RESET_STATE, SET_BASE_FEE_PER_GAS, SET_CONFIRM_SETTINGS, SET_CURRENT_CONTRACT, SET_CURRENT_FILE, SET_DECODED_RESPONSE, SET_DEPLOY_OPTIONS, SET_EXECUTION_ENVIRONMENT, SET_EXTERNAL_WEB3_ENDPOINT, SET_GAS_LIMIT, SET_GAS_PRICE, SET_GAS_PRICE_STATUS, SET_IPFS_CHECKED_STATE, SET_LOAD_TYPE, SET_MATCH_PASSPHRASE, SET_MAX_FEE, SET_MAX_PRIORITY_FEE, SET_NETWORK_NAME, SET_PASSPHRASE, SET_PATH_TO_SCENARIO, SET_PERSONAL_MODE, SET_RECORDER_COUNT, SET_SELECTED_ACCOUNT, SET_SEND_UNIT, SET_SEND_VALUE, SET_REMIXD_ACTIVATED, FETCH_PROXY_DEPLOYMENTS, NEW_PROXY_DEPLOYMENT, RESET_PROXY_DEPLOYMENTS, EXTRACT_COMPILER_VERSION } from '../constants' import { ContractList, DeployOptions } from '../types' export const fetchAccountsListRequest = () => { @@ -230,19 +230,19 @@ export const addNewInstance = (instance: { contractData?: ContractData, address: } } -export const addNewSavedInstance = (instance: { contractData?: ContractData, address: string, name: string, abi?: any, pinnedAt?: number }) => { +export const addNewPinnedInstance = (instance: { contractData?: ContractData, address: string, name: string, abi?: any, pinnedAt?: number }) => { return { - type: ADD_SAVED_INSTANCE, + type: ADD_PINNED_INSTANCE, payload: instance } } -export const removeExistingInstance = (index: number, isSavedContract: boolean, shouldDelete: boolean) => { +export const removeExistingInstance = (index: number, isPinnedContract: boolean, shouldDelete: boolean) => { return { type: REMOVE_INSTANCE, payload: { index, - isSavedContract, + isPinnedContract, shouldDelete } } @@ -254,20 +254,20 @@ export const clearAllInstances = () => { } } -export const clearAllSavedInstances = () => { +export const clearAllPinnedInstances = () => { return { - type: CLEAR_SAVED_INSTANCES + type: CLEAR_PINNED_INSTANCES } } -export const setDecodedResponse = (instanceIndex: number, response, funcIndex?: number, isSavedContract?: boolean) => { +export const setDecodedResponse = (instanceIndex: number, response, funcIndex?: number, isPinnedContract?: boolean) => { return { type: SET_DECODED_RESPONSE, payload: { instanceIndex, funcIndex, response, - isSavedContract + isPinnedContract } } } 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 55c37d1e1b..b860acdeaf 100644 --- a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx @@ -34,7 +34,7 @@ export function InstanceContainerUI(props: InstanceContainerProps) { localStorage.removeItem('savedContracts') } // Clear existing saved instance state - await props.plugin.call('udapp', 'clearAllSavedInstances') + await props.plugin.call('udapp', 'clearAllPinnedInstances') // Load contracts from FE const dirName = props.plugin.REACT_API.networkName === 'VM' ? props.plugin.REACT_API.selectExEnv : chainId.current const isPinnedAvailable = await props.plugin.call('fileManager', 'exists', `.deploys/pinned-contracts/${dirName}`) @@ -45,7 +45,7 @@ export function InstanceContainerUI(props: InstanceContainerProps) { for (const file of filePaths) { const pinnedContract = await props.plugin.call('fileManager', 'readFile', file) const pinnedContractObj = JSON.parse(pinnedContract) - if (pinnedContractObj) await props.plugin.call('udapp', 'addSavedInstance', pinnedContractObj.address, pinnedContractObj.abi, pinnedContractObj.name, pinnedContractObj.pinnedAt, pinnedContractObj.filePath) + if (pinnedContractObj) await props.plugin.call('udapp', 'addPinnedInstance', pinnedContractObj.address, pinnedContractObj.abi, pinnedContractObj.name, pinnedContractObj.pinnedAt, pinnedContractObj.filePath) } } catch(err) { console.log(err) @@ -70,15 +70,15 @@ export function InstanceContainerUI(props: InstanceContainerProps) { - {props.savedInstances.instanceList.length > 0 ? ( + {props.pinnedInstances.instanceList.length > 0 ? (
{' '} - {props.savedInstances.instanceList.map((instance, index) => { + {props.pinnedInstances.instanceList.map((instance, index) => { return ( ) : ( - - + + )} @@ -126,7 +126,7 @@ export function InstanceContainerUI(props: InstanceContainerProps) { { - if (props.isSavedContract) { + if (props.isPinnedContract) { await unsavePinnedContract() _paq.push(['trackEvent', 'udapp', 'pinContracts', 'unpinned']) } - props.removeInstance(props.index, props.isSavedContract, false) + props.removeInstance(props.index, props.isPinnedContract, false) } const deletePinnedContract = async() => { await unsavePinnedContract() _paq.push(['trackEvent', 'udapp', 'pinContracts', 'deletePinned']) - props.removeInstance(props.index, props.isSavedContract, true) + props.removeInstance(props.index, props.isPinnedContract, true) } const pinContract = async() => { @@ -153,7 +153,7 @@ export function UniversalDappUI(props: UdappProps) { } await props.plugin.call('fileManager', 'writeFile', `.deploys/pinned-contracts/${dirName}/${props.instance.address}.json`, JSON.stringify(objToSave, null, 2)) // Add contract to saved contracts list on UI - await props.plugin.call('udapp', 'addSavedInstance', objToSave.address, objToSave.abi, objToSave.name, objToSave.pinnedAt, objToSave.filePath) + await props.plugin.call('udapp', 'addPinnedInstance', objToSave.address, objToSave.abi, objToSave.name, objToSave.pinnedAt, objToSave.filePath) _paq.push(['trackEvent', 'udapp', 'pinContracts', `pinned at ${dirName}`]) // Remove contract from deployed contracts list on UI props.removeInstance(props.index, false, false) @@ -165,7 +165,7 @@ export function UniversalDappUI(props: UdappProps) { props.runTransactions( props.index, - props.isSavedContract, + props.isPinnedContract, lookupOnly, funcABI, inputsValues, @@ -268,7 +268,7 @@ export function UniversalDappUI(props: UdappProps) {
- { props.isSavedContract ? ( + { props.isPinnedContract ? ( {props.instance.name} at {shortenAddress(address)} @@ -279,7 +279,7 @@ export function UniversalDappUI(props: UdappProps) {
- { props.isSavedContract ? (
+ { props.isPinnedContract ? (
}> @@ -290,7 +290,7 @@ export function UniversalDappUI(props: UdappProps) {
) }
- { props.isSavedContract ? (
+ { props.isPinnedContract ? (
}> @@ -309,14 +309,14 @@ export function UniversalDappUI(props: UdappProps) { {props.exEnvironment === 'injected' && {props.editInstance(props.instance)}}>}
- { props.isSavedContract && props.instance.pinnedAt ? ( + { props.isPinnedContract && props.instance.pinnedAt ? (
) : null } - { props.isSavedContract && props.instance.filePath ? ( + { props.isPinnedContract && props.instance.filePath ? (