From d259f6ebd95779620b2fcc116b1b3123f4e40270 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 1 Mar 2024 18:49:50 +0530 Subject: [PATCH 01/17] pinned unpinned --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 274bae99ad..5124c80b5c 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -65,12 +65,12 @@ "udapp.tooltipText3": "Click to open a bridge for converting L1 mainnet ETH to the selected network currency.", "udapp._comment_instanceContainerUI.tsx": "libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx", - "udapp.deployedContracts": "Deployed Contracts", + "udapp.deployedContracts": "Deployed/Unpinned Contracts", "udapp.deployAndRunClearInstances": "Clear instances list and reset recorder", - "udapp.deployAndRunNoInstanceText": "Currently you have no deployed contracts to interact with.", + "udapp.deployAndRunNoInstanceText": "Currently you have no unpinned contracts to interact with.", "udapp.tooltipText6": "Autogenerated generic user interfaces for interaction with deployed contracts", - "udapp.savedContracts": "Saved Contracts", + "udapp.savedContracts": "Pinned Contracts", "udapp.NoSavedInstanceText": "No saved contracts found.", "udapp.tooltipTextUnsave": "Unsave & move to Deployed Contracts list", "udapp.savedOn": "Saved On", From 5e43adf1660226ef604e9883f419f49a2dcef1bd Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 1 Mar 2024 19:12:16 +0530 Subject: [PATCH 02/17] icons and text --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 8 ++++---- .../run-tab/src/lib/components/universalDappUI.tsx | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) 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 5124c80b5c..6766385f97 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -71,9 +71,9 @@ "udapp.tooltipText6": "Autogenerated generic user interfaces for interaction with deployed contracts", "udapp.savedContracts": "Pinned Contracts", - "udapp.NoSavedInstanceText": "No saved contracts found.", - "udapp.tooltipTextUnsave": "Unsave & move to Deployed Contracts list", - "udapp.savedOn": "Saved On", + "udapp.NoSavedInstanceText": "No pinned contracts found.", + "udapp.tooltipTextDelete": "Delete contract", + "udapp.savedOn": "Pinned On", "udapp.filePath": "File Path", "udapp._comment_recorderCardUI.tsx": "libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx", @@ -105,7 +105,7 @@ "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", "udapp.tooltipText7": "Remove from the list", - "udapp.tooltipText14": "Save & move to Saved Contracts list", + "udapp.tooltipText14": "Pin contract", "udapp.tooltipText8": "Click for docs about using 'receive'/'fallback'", "udapp.tooltipText9": "The Calldata to send to fallback function of the contract.", "udapp.tooltipText10": "Send data to contract.", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 860934c7e5..096e9071bc 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -266,13 +266,17 @@ export function UniversalDappUI(props: UdappProps) { { props.isSavedContract || !(props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) ? (
}> - +
) : null } - ) : ()}> + { !props.isSavedContract ? (}> - + ) : + ( }> + + ) + }
From 9b206f0fc9aec337303067f8fd94a00c2fc5fb6f Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 1 Mar 2024 20:21:47 +0530 Subject: [PATCH 03/17] update UI --- .../src/app/tabs/locales/en/udapp.json | 1 + .../src/lib/components/universalDappUI.tsx | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) 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 6766385f97..57649b538b 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -73,6 +73,7 @@ "udapp.savedContracts": "Pinned Contracts", "udapp.NoSavedInstanceText": "No pinned contracts found.", "udapp.tooltipTextDelete": "Delete contract", + "udapp.tooltipTextUnpin": "Unpin contract", "udapp.savedOn": "Pinned On", "udapp.filePath": "File Path", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 096e9071bc..32a2f1af70 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -257,9 +257,11 @@ export function UniversalDappUI(props: UdappProps) {
- - {props.instance.name} at {shortenAddress(address)} ({props.context}) - + + + {props.instance.name} at {shortenAddress(address)} {!props.isSavedContract ? `(${props.context})` : ''} + +
@@ -268,13 +270,17 @@ export function UniversalDappUI(props: UdappProps) { }> -
) : null } +
) : (
+ }> + + +
) }
- { !props.isSavedContract ? (}> + { !props.isSavedContract ? ( }> - ) : + ) : ( }> - + ) }
From 6e8a98ff194ac76168b9cf163ffeee675384d7c3 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 11:12:00 +0530 Subject: [PATCH 04/17] fix linting --- .../run-tab/src/lib/components/universalDappUI.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 32a2f1af70..71d5c88ce4 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -259,7 +259,7 @@ export function UniversalDappUI(props: UdappProps) {
- {props.instance.name} at {shortenAddress(address)} {!props.isSavedContract ? `(${props.context})` : ''} + {props.instance.name} at {shortenAddress(address)} {!props.isSavedContract ? `(${props.context})` : ''}
@@ -272,16 +272,16 @@ export function UniversalDappUI(props: UdappProps) { ) : (
}> - - + +
) } { !props.isSavedContract ? ( }> ) : - ( }> - - ) + ( }> + + ) }
From 531446bbaa7657f53df88c34033cb4a36e3cc467 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 11:42:44 +0530 Subject: [PATCH 05/17] rebase and other fixes --- .../src/app/tabs/locales/en/udapp.json | 2 +- .../src/lib/components/universalDappUI.tsx | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) 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 57649b538b..0b66b9de35 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -106,7 +106,7 @@ "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", "udapp.tooltipText7": "Remove from the list", - "udapp.tooltipText14": "Pin contract", + "udapp.tooltipTextPin": "Pin contract", "udapp.tooltipText8": "Click for docs about using 'receive'/'fallback'", "udapp.tooltipText9": "The Calldata to send to fallback function of the contract.", "udapp.tooltipText10": "Send data to contract.", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 71d5c88ce4..a5798842a2 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -124,7 +124,7 @@ export function UniversalDappUI(props: UdappProps) { props.removeInstance(props.index, props.isSavedContract) } - const saveContract = async() => { + const pinContract = async() => { const workspace = await props.plugin.call('filePanel', 'getCurrentWorkspace') const {network} = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') const savedContracts = localStorage.getItem('savedContracts') @@ -257,7 +257,7 @@ export function UniversalDappUI(props: UdappProps) {
- + {props.instance.name} at {shortenAddress(address)} {!props.isSavedContract ? `(${props.context})` : ''} @@ -266,15 +266,17 @@ export function UniversalDappUI(props: UdappProps) {
- { props.isSavedContract || !(props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) ? (
- }> - - -
) : (
- }> - - -
) } + { !(props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) ? + props.isSavedContract ? (
+ }> + + +
) : (
+ }> + + +
) + : null}
{ !props.isSavedContract ? ( }> From 39b98909c8f55a91c5b2bc9534d739c0e1ddbb77 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 11:53:47 +0530 Subject: [PATCH 06/17] delete button --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 2 +- apps/remix-ide/src/app/tabs/locales/es/udapp.json | 2 +- apps/remix-ide/src/app/tabs/locales/fr/udapp.json | 2 +- apps/remix-ide/src/app/tabs/locales/it/udapp.json | 2 +- apps/remix-ide/src/app/tabs/locales/zh/udapp.json | 2 +- .../run-tab/src/lib/components/universalDappUI.tsx | 11 ++++++----- 6 files changed, 11 insertions(+), 10 deletions(-) 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 0b66b9de35..35e0aa69d3 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -105,7 +105,7 @@ "udapp.tooltipText13": "Deployed {date}", "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", - "udapp.tooltipText7": "Remove from the list", + "udapp.tooltipTextRemove": "Remove from the list", "udapp.tooltipTextPin": "Pin contract", "udapp.tooltipText8": "Click for docs about using 'receive'/'fallback'", "udapp.tooltipText9": "The Calldata to send to fallback function of the contract.", diff --git a/apps/remix-ide/src/app/tabs/locales/es/udapp.json b/apps/remix-ide/src/app/tabs/locales/es/udapp.json index 9f9d2d8be8..5ed17d12f9 100644 --- a/apps/remix-ide/src/app/tabs/locales/es/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/es/udapp.json @@ -88,7 +88,7 @@ "udapp.tooltipText12": "Entrada requerida", "udapp.tooltipText13": "Publicado en {date}", "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", - "udapp.tooltipText7": "Eliminar de la lista", + "udapp.tooltipTextRemove": "Eliminar de la lista", "udapp.tooltipText8": "Haga clic para ver los documentos sobre el uso de 'receive'/'fallback'", "udapp.tooltipText9": "El datos de llamada a enviar a la función fallback del contrato.", "udapp.tooltipText10": "Enviar datos al contrato.", diff --git a/apps/remix-ide/src/app/tabs/locales/fr/udapp.json b/apps/remix-ide/src/app/tabs/locales/fr/udapp.json index a6c60d8e28..80b22f2cc3 100644 --- a/apps/remix-ide/src/app/tabs/locales/fr/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/fr/udapp.json @@ -88,7 +88,7 @@ "udapp.tooltipText12": "Entrée nécessaire", "udapp.tooltipText13": "Déployé {date}", "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", - "udapp.tooltipText7": "Supprimer de la liste", + "udapp.tooltipTextRemove": "Supprimer de la liste", "udapp.tooltipText8": "Cliquez sur la documentation à propos de l'utilisation de 'receive'/'fallback'", "udapp.tooltipText9": "Les Calldata à envoyer à la fonction fallback du contrat.", "udapp.tooltipText10": "Envoyer des données au contrat.", diff --git a/apps/remix-ide/src/app/tabs/locales/it/udapp.json b/apps/remix-ide/src/app/tabs/locales/it/udapp.json index 08c340ce01..bb00090309 100644 --- a/apps/remix-ide/src/app/tabs/locales/it/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/it/udapp.json @@ -88,7 +88,7 @@ "udapp.tooltipText12": "Input richiesto", "udapp.tooltipText13": "Deploiato", "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", - "udapp.tooltipText7": "Rimuovi dalla lista", + "udapp.tooltipTextRemove": "Rimuovi dalla lista", "udapp.tooltipText8": "Fare clic per i documenti sull'uso di 'receive'/'fallback'", "udapp.tooltipText9": "Il Calldata per inviare alla funzione di fallback del contratto.", "udapp.tooltipText10": "Invia dati al contratto.", diff --git a/apps/remix-ide/src/app/tabs/locales/zh/udapp.json b/apps/remix-ide/src/app/tabs/locales/zh/udapp.json index f7e3d811a8..3e7b4e3ba8 100644 --- a/apps/remix-ide/src/app/tabs/locales/zh/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/zh/udapp.json @@ -88,7 +88,7 @@ "udapp.tooltipText12": "必填", "udapp.tooltipText13": "已部署 {date}", "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", - "udapp.tooltipText7": "从列表中删除", + "udapp.tooltipTextRemove": "从列表中删除", "udapp.tooltipText8": "点击查看有关使用 'receive'/'fallback' 的文档", "udapp.tooltipText9": "发送到合约 fallback 函数的 Calldata。", "udapp.tooltipText10": "将数据发送到合约。", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index a5798842a2..c00ba3e8c8 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -278,12 +278,13 @@ export function UniversalDappUI(props: UdappProps) {
) : null}
- { !props.isSavedContract ? ( }> + { props.isSavedContract ? (
+ }> + + +
) : ( }> - ) : - ( }> - - ) +
) }
From 87cfb50ba2706c1abc8076b50b36dd459bc80c48 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 12:33:25 +0530 Subject: [PATCH 07/17] delete pinned contract --- .../src/app/tabs/locales/en/udapp.json | 4 +-- .../run-tab/src/lib/actions/actions.ts | 4 +-- .../remix-ui/run-tab/src/lib/actions/index.ts | 2 +- .../run-tab/src/lib/actions/payload.ts | 5 +-- .../src/lib/components/universalDappUI.tsx | 31 ++++++++++++------- .../run-tab/src/lib/reducers/runTab.ts | 16 +++++++--- libs/remix-ui/run-tab/src/lib/types/index.ts | 4 +-- 7 files changed, 40 insertions(+), 26 deletions(-) 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 35e0aa69d3..d60006c911 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -71,8 +71,8 @@ "udapp.tooltipText6": "Autogenerated generic user interfaces for interaction with deployed contracts", "udapp.savedContracts": "Pinned Contracts", - "udapp.NoSavedInstanceText": "No pinned contracts found.", - "udapp.tooltipTextDelete": "Delete contract", + "udapp.NoSavedInstanceText": "No contracts pinned yet. Pinned contracts stays after reloading Remix IDE.", + "udapp.tooltipTextDelete": "Delete pinned contract", "udapp.tooltipTextUnpin": "Unpin contract", "udapp.savedOn": "Pinned On", "udapp.filePath": "File Path", 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 92df377f26..127993af20 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/actions.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/actions.ts @@ -75,8 +75,8 @@ export const addSavedInstance = (dispatch: React.Dispatch, instance: { cont dispatch(addNewSavedInstance(instance)) } -export const removeInstance = (dispatch: React.Dispatch, index: number, isSavedContract: boolean) => { - dispatch(removeExistingInstance(index, isSavedContract)) +export const removeInstance = (dispatch: React.Dispatch, index: number, isSavedContract: boolean, shouldDelete: boolean) => { + dispatch(removeExistingInstance(index, isSavedContract, shouldDelete)) } export const clearInstances = (dispatch: React.Dispatch) => { 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 3746757184..7c40c0f65a 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/index.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts @@ -48,7 +48,7 @@ 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) => removeInstance(dispatch, index, isSavedContract) +export const removeSingleInstance = (index: number, isSavedContract: boolean, shouldDelete: boolean) => removeInstance(dispatch, index, isSavedContract, 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 loadFromAddress = (contract: ContractData, address: string) => loadAddress(plugin, dispatch, contract, address) 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 15dbbfd647..8d2e9a8366 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/payload.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/payload.ts @@ -237,12 +237,13 @@ export const addNewSavedInstance = (instance: { contractData?: ContractData, add } } -export const removeExistingInstance = (index: number, isSavedContract: boolean) => { +export const removeExistingInstance = (index: number, isSavedContract: boolean, shouldDelete: boolean) => { return { type: REMOVE_INSTANCE, payload: { index, - isSavedContract + isSavedContract, + shouldDelete } } } diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index c00ba3e8c8..c6380827f7 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -111,17 +111,24 @@ export function UniversalDappUI(props: UdappProps) { setToggleExpander(!toggleExpander) } + const unsavePinnedContract = async () => { + const {network} = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') + const savedContracts = localStorage.getItem('savedContracts') + const savedContractsJson = JSON.parse(savedContracts) + const instanceIndex = savedContractsJson[network.id].findIndex(instance => instance && instance.address === props.instance.address) + delete savedContractsJson[network.id][instanceIndex] + savedContractsJson[network.id] = savedContractsJson[network.id].filter(Boolean) + localStorage.setItem('savedContracts', JSON.stringify(savedContractsJson)) + } + const remove = async() => { - if (props.isSavedContract) { - const {network} = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') - const savedContracts = localStorage.getItem('savedContracts') - const savedContractsJson = JSON.parse(savedContracts) - const instanceIndex = savedContractsJson[network.id].findIndex(instance => instance && instance.address === props.instance.address) - delete savedContractsJson[network.id][instanceIndex] - savedContractsJson[network.id] = savedContractsJson[network.id].filter(Boolean) - localStorage.setItem('savedContracts', JSON.stringify(savedContractsJson)) - } - props.removeInstance(props.index, props.isSavedContract) + if (props.isSavedContract) await unsavePinnedContract() + props.removeInstance(props.index, props.isSavedContract, false) + } + + const deletePinnedContract = async() => { + if (props.isSavedContract) await unsavePinnedContract() + props.removeInstance(props.index, props.isSavedContract, true) } const pinContract = async() => { @@ -145,7 +152,7 @@ export function UniversalDappUI(props: UdappProps) { // Add contract to saved contracts list on UI await props.plugin.call('udapp', 'addSavedInstance', props.instance.address, props.instance.abi || props.instance.contractData.abi, props.instance.name, props.instance.savedOn, props.instance.filePath) // Remove contract from deployed contracts list on UI - props.removeInstance(props.index, false) + props.removeInstance(props.index, false, false) } const runTransaction = (lookupOnly, funcABI: FuncABI, valArr, inputsValues, funcIndex?: number) => { @@ -280,7 +287,7 @@ export function UniversalDappUI(props: UdappProps) {
{ props.isSavedContract ? (
}> - +
) : ( }> diff --git a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts index e9e7670396..3886abe0bf 100644 --- a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts +++ b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts @@ -515,10 +515,17 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A } case REMOVE_INSTANCE: { - const payload: { index: number, isSavedContract: boolean } = action.payload + const payload: { index: number, isSavedContract: boolean, shouldDelete: boolean } = action.payload - if (payload.isSavedContract) - return { + if (payload.isSavedContract) { + if (payload.shouldDelete) return { + ...state, + savedInstances: { + ...state.savedInstances, + instanceList: state.savedInstances.instanceList.filter((_, index) => index !== payload.index) + } + } + else return { ...state, savedInstances: { ...state.savedInstances, @@ -529,8 +536,7 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A instanceList: [...state.instances.instanceList, state.savedInstances.instanceList[payload.index]] } } - else - return { + } else return { ...state, instances: { ...state.instances, diff --git a/libs/remix-ui/run-tab/src/lib/types/index.ts b/libs/remix-ui/run-tab/src/lib/types/index.ts index e09d5bf191..412601765b 100644 --- a/libs/remix-ui/run-tab/src/lib/types/index.ts +++ b/libs/remix-ui/run-tab/src/lib/types/index.ts @@ -321,7 +321,7 @@ export interface InstanceContainerProps { error: string }, clearInstances: () => void, - removeInstance: (index: number, isSavedContract:boolean) => void, + removeInstance: (index: number, isSavedContract:boolean, shouldDelete: boolean) => void, getContext: () => 'memory' | 'blockchain', runTransactions: ( instanceIndex: number, @@ -428,7 +428,7 @@ export interface UdappProps { }, context: 'memory' | 'blockchain', isSavedContract?: boolean - removeInstance: (index: number, isSavedContract: boolean) => void, + removeInstance: (index: number, isSavedContract: boolean, shouldDelete: boolean) => void, index: number, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (message: string) => JSX.Element, From 22a3c0d0965132791c4cbdcac36add9eca3ce043 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 12:39:23 +0530 Subject: [PATCH 08/17] fix tooltip --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 3 ++- .../run-tab/src/lib/components/instanceContainerUI.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) 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 d60006c911..a9f7ca3c22 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -68,9 +68,10 @@ "udapp.deployedContracts": "Deployed/Unpinned Contracts", "udapp.deployAndRunClearInstances": "Clear instances list and reset recorder", "udapp.deployAndRunNoInstanceText": "Currently you have no unpinned contracts to interact with.", - "udapp.tooltipText6": "Autogenerated generic user interfaces for interaction with deployed contracts", + "udapp.tooltipText6": "Autogenerated generic user interfaces for interaction with deployed/unpinned contracts", "udapp.savedContracts": "Pinned Contracts", + "udapp.tooltipTextPinnedContracts": "List of pinned contracts for selected network", "udapp.NoSavedInstanceText": "No contracts pinned yet. Pinned contracts stays after reloading Remix IDE.", "udapp.tooltipTextDelete": "Delete pinned contract", "udapp.tooltipTextUnpin": "Unpin contract", 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 b93e18b07e..4a8549a7e5 100644 --- a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx @@ -38,7 +38,7 @@ export function InstanceContainerUI(props: InstanceContainerProps) {
{ enableSave.current ? (
- }> + }> From 6631beacb562de851884b666f7650ecb4012c7a6 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 12:56:15 +0530 Subject: [PATCH 09/17] fix linting --- .../src/lib/components/universalDappUI.tsx | 28 +++++++++---------- .../run-tab/src/lib/reducers/runTab.ts | 10 +++---- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index c6380827f7..266a19a989 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -274,22 +274,22 @@ export function UniversalDappUI(props: UdappProps) {
{ !(props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) ? - props.isSavedContract ? (
- }> - - -
) : (
- }> - - -
) - : null} + props.isSavedContract ? (
+ }> + + +
) : (
+ }> + + +
) + : null}
{ props.isSavedContract ? (
- }> - - -
) : ( }> + }> + + + ) : ( }> ) } diff --git a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts index 3886abe0bf..2e8fbbe807 100644 --- a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts +++ b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts @@ -537,12 +537,12 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A } } } else return { - ...state, - instances: { - ...state.instances, - instanceList: state.instances.instanceList.filter((_, index) => index !== payload.index) - } + ...state, + instances: { + ...state.instances, + instanceList: state.instances.instanceList.filter((_, index) => index !== payload.index) } + } } case CLEAR_INSTANCES: { From 532abddf8b264309f8366b6fcba573beded27593 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 13:09:15 +0530 Subject: [PATCH 10/17] show chain id --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 2 +- .../run-tab/src/lib/components/instanceContainerUI.tsx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) 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 a9f7ca3c22..4e6abe5551 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -72,7 +72,7 @@ "udapp.savedContracts": "Pinned Contracts", "udapp.tooltipTextPinnedContracts": "List of pinned contracts for selected network", - "udapp.NoSavedInstanceText": "No contracts pinned yet. Pinned contracts stays after reloading Remix IDE.", + "udapp.NoSavedInstanceText": "No contracts pinned yet. Pinned contracts stay after reloading Remix IDE.", "udapp.tooltipTextDelete": "Delete pinned contract", "udapp.tooltipTextUnpin": "Unpin contract", "udapp.savedOn": "Pinned On", 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 4a8549a7e5..6d82f252ca 100644 --- a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx @@ -8,6 +8,7 @@ import { UniversalDappUI } from './universalDappUI' export function InstanceContainerUI(props: InstanceContainerProps) { const { instanceList } = props.instances const enableSave = useRef(false) + const chainId = useRef() useEffect(() => { const fetchSavedContracts = async () => { @@ -19,6 +20,7 @@ export function InstanceContainerUI(props: InstanceContainerProps) { await props.plugin.call('udapp', 'clearAllSavedInstances') const savedContracts = JSON.parse(allSavedContracts) const { network } = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') + chainId.current = network.id if (savedContracts && savedContracts[network.id]) { const instances = savedContracts[network.id] for (const inst of instances) @@ -40,7 +42,8 @@ export function InstanceContainerUI(props: InstanceContainerProps) {
}>
) : null } From 4d97f9344d3c8b9f95ed0918180fdedc236b598d Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 13:26:21 +0530 Subject: [PATCH 11/17] minor fixes --- .../src/app/tabs/locales/en/udapp.json | 4 ++-- .../src/lib/components/universalDappUI.tsx | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) 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 4e6abe5551..0638936cb6 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -75,8 +75,8 @@ "udapp.NoSavedInstanceText": "No contracts pinned yet. Pinned contracts stay after reloading Remix IDE.", "udapp.tooltipTextDelete": "Delete pinned contract", "udapp.tooltipTextUnpin": "Unpin contract", - "udapp.savedOn": "Pinned On", - "udapp.filePath": "File Path", + "udapp.savedOn": "Pinned at", + "udapp.filePath": "File path", "udapp._comment_recorderCardUI.tsx": "libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx", "udapp.transactionsRecorded": "Transactions recorded", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 266a19a989..c3fe50d489 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -259,16 +259,18 @@ export function UniversalDappUI(props: UdappProps) { data-shared="universalDappUiInstance" >
- +
- + { props.isSavedContract ? ( - {props.instance.name} at {shortenAddress(address)} {!props.isSavedContract ? `(${props.context})` : ''} + {props.instance.name} at {shortenAddress(address)} - + ) : ( + {props.instance.name} at {shortenAddress(address)} ({props.context}) + ) }
@@ -289,9 +291,11 @@ export function UniversalDappUI(props: UdappProps) { }> -
) : ( }> - - ) +
) : (
+ }> + + +
) }
From 643bc3499351080a00b6393e7a999620daa38406 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 13:35:33 +0530 Subject: [PATCH 12/17] fix linting --- .../run-tab/src/lib/components/universalDappUI.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index c3fe50d489..2deb12c366 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -292,10 +292,10 @@ export function UniversalDappUI(props: UdappProps) {
) : (
- }> - - -
) + }> + + + ) }
From 6e6317ead117c7104bf5dd34da976658d8b701ac Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 16:39:47 +0530 Subject: [PATCH 13/17] add matomo --- .../run-tab/src/lib/components/universalDappUI.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 2deb12c366..029142e42f 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -10,6 +10,7 @@ import {ContractGUI} from './contractGUI' import {TreeView, TreeViewItem} from '@remix-ui/tree-view' import {BN} from 'bn.js' import {CustomTooltip, is0XPrefixed, isHexadecimal, isNumeric, shortenAddress} from '@remix-ui/helper' +const _paq = (window._paq = window._paq || []) const txHelper = remixLib.execution.txHelper @@ -122,12 +123,16 @@ export function UniversalDappUI(props: UdappProps) { } const remove = async() => { - if (props.isSavedContract) await unsavePinnedContract() + if (props.isSavedContract) { + await unsavePinnedContract() + _paq.push(['trackEvent', 'udapp', 'pinContracts', 'unpinned']) + } props.removeInstance(props.index, props.isSavedContract, false) } const deletePinnedContract = async() => { - if (props.isSavedContract) await unsavePinnedContract() + await unsavePinnedContract() + _paq.push(['trackEvent', 'udapp', 'pinContracts', 'deletePinned']) props.removeInstance(props.index, props.isSavedContract, true) } @@ -151,6 +156,7 @@ export function UniversalDappUI(props: UdappProps) { localStorage.setItem('savedContracts', JSON.stringify(objToSave)) // Add contract to saved contracts list on UI await props.plugin.call('udapp', 'addSavedInstance', props.instance.address, props.instance.abi || props.instance.contractData.abi, props.instance.name, props.instance.savedOn, props.instance.filePath) + _paq.push(['trackEvent', 'udapp', 'pinContracts', 'pinned']) // Remove contract from deployed contracts list on UI props.removeInstance(props.index, false, false) } From a2641095c129427784e552f8851646cd65b2b069 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 16:42:45 +0530 Subject: [PATCH 14/17] fix chain id display --- .../run-tab/src/lib/components/instanceContainerUI.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6d82f252ca..ec47b31f79 100644 --- a/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx @@ -15,12 +15,12 @@ export function InstanceContainerUI(props: InstanceContainerProps) { if (props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) enableSave.current = false else enableSave.current = true if (enableSave.current) { + const { network } = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') + chainId.current = network.id const allSavedContracts = localStorage.getItem('savedContracts') if (allSavedContracts) { await props.plugin.call('udapp', 'clearAllSavedInstances') const savedContracts = JSON.parse(allSavedContracts) - const { network } = await props.plugin.call('blockchain', 'getCurrentNetworkStatus') - chainId.current = network.id if (savedContracts && savedContracts[network.id]) { const instances = savedContracts[network.id] for (const inst of instances) From c49afb12fed525cc975d97a502a7231bff18e344 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 5 Mar 2024 16:53:45 +0530 Subject: [PATCH 15/17] update colors --- libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 029142e42f..77c511be90 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -284,7 +284,7 @@ export function UniversalDappUI(props: UdappProps) { { !(props.plugin.REACT_API.selectExEnv && props.plugin.REACT_API.selectExEnv.startsWith('vm-')) ? props.isSavedContract ? (
}> - +
) : (
}> @@ -295,7 +295,7 @@ export function UniversalDappUI(props: UdappProps) {
{ props.isSavedContract ? (
}> - +
) : (
}> From 68f36b5b73ba19a2ec9784c8368c12d2a595ffad Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Thu, 7 Mar 2024 19:44:29 +0530 Subject: [PATCH 16/17] fix label at left --- libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 77c511be90..59e5bc62c9 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -321,7 +321,7 @@ export function UniversalDappUI(props: UdappProps) { { props.isSavedContract && props.instance.filePath ? (
) : null } From c4571ffc4e96fd635a2eef2c806bbaff257b350d Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 8 Mar 2024 15:42:44 +0530 Subject: [PATCH 17/17] reverts CSS --- libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index 59e5bc62c9..77c511be90 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -321,7 +321,7 @@ export function UniversalDappUI(props: UdappProps) { { props.isSavedContract && props.instance.filePath ? (
) : null }