Merge branch 'master' into pastedCodeSafety

pull/5344/head
STetsing 1 month ago committed by GitHub
commit 8528c7a121
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      CONTRIBUTING.md
  2. 4
      apps/remix-ide-e2e/src/commands/selectAccount.ts
  3. 4
      apps/remix-ide-e2e/src/commands/switchEnvironment.ts
  4. 1
      apps/remix-ide-e2e/src/tests/ballot_0_4_14.test.ts
  5. 4
      apps/remix-ide-e2e/src/tests/publishContract.test.ts
  6. 3
      apps/remix-ide-e2e/src/tests/terminal.test.ts
  7. 4
      apps/remix-ide-e2e/src/tests/transactionExecution.test.ts
  8. 12
      apps/remix-ide-e2e/src/tests/url.test.ts
  9. 8
      apps/remix-ide/meetings.md
  10. 7
      apps/remix-ide/src/app/plugins/remixGuide.tsx
  11. 4
      apps/remix-ide/src/app/plugins/templates-selection/templates-selection-plugin.tsx
  12. 15
      apps/remix-ide/src/app/tabs/locales/it/circuit.json
  13. 36
      apps/remix-ide/src/app/tabs/locales/it/editor.json
  14. 6
      apps/remix-ide/src/app/tabs/locales/it/electron.json
  15. 45
      apps/remix-ide/src/app/tabs/locales/it/filePanel.json
  16. 3
      apps/remix-ide/src/app/tabs/locales/it/gitui.json
  17. 29
      apps/remix-ide/src/app/tabs/locales/it/home.json
  18. 43
      apps/remix-ide/src/app/tabs/locales/it/quickDapp.json
  19. 11
      apps/remix-ide/src/app/tabs/locales/it/remixUiTabs.json
  20. 27
      apps/remix-ide/src/app/tabs/locales/it/settings.json
  21. 16
      apps/remix-ide/src/app/tabs/locales/it/solUmlGen.json
  22. 21
      apps/remix-ide/src/app/tabs/locales/it/solidity.json
  23. 12
      apps/remix-ide/src/app/tabs/locales/it/terminal.json
  24. 49
      apps/remix-ide/src/app/tabs/locales/it/udapp.json
  25. 3
      apps/remix-ide/src/app/tabs/locales/it/vyper.json
  26. 4
      libs/README.md
  27. 2
      libs/remix-ai-core/src/agents/codeExplainAgent.ts
  28. 2
      libs/remix-ai-core/src/agents/securityAgent.ts
  29. 2
      libs/remix-ai-core/src/prompts/promptBuilder.ts
  30. 2
      libs/remix-analyzer/src/solidity-analyzer/modules/selfdestruct.ts
  31. 4
      libs/remix-solidity/README.md
  32. 2
      libs/remix-tests/README.md
  33. 16
      libs/remix-ui/environment-explorer/src/lib/components/environment-explorer-ui.tsx
  34. 1
      libs/remix-ui/environment-explorer/src/lib/types/index.ts
  35. 4
      libs/remix-ui/grid-view/src/lib/remix-ui-grid-cell.tsx
  36. 77
      libs/remix-ui/grid-view/src/lib/remix-ui-grid-section.tsx
  37. 2
      libs/remix-ui/grid-view/src/lib/remix-ui-grid-view.tsx
  38. 2
      libs/remix-ui/helper/src/lib/components/custom-dropdown.tsx
  39. 19
      libs/remix-ui/publish-to-storage/src/lib/publishOnSwarm.tsx
  40. 34
      libs/remix-ui/run-tab/src/lib/components/account.tsx
  41. 2
      libs/remix-ws-templates/src/templates/ozerc721/index.ts
  42. 4
      libs/remix-ws-templates/src/templates/rln/README.md
  43. 4
      libs/remix-ws-templates/src/templates/semaphore/README.md
  44. 6
      libs/remixd/README.md
  45. 2
      package.json
  46. 2
      release-management.md
  47. 121
      yarn.lock

@ -58,7 +58,7 @@ Then, create a `index.js` file like this,
import panelJson from './panel.json';
import enJson from '../en';
// There may have some un-translated content. Always fill in the gaps with EN JSON.
// There may have some untranslated content. Always fill in the gaps with EN JSON.
// No need for a defaultMessage prop when render a FormattedMessage component.
export default Object.assign({}, enJson, {
...panelJson,
@ -84,7 +84,7 @@ If you search `FormattedMessage` or `intl.formatMessage` in this project, you wi
**Why?**
Each non-english language will be filled in the gaps with english. Even though there may be some un-translated content, it will always use english as defaultMessage. That's why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component.
Each non-english language will be filled in the gaps with english. Even though there may be some untranslated content, it will always use english as defaultMessage. That's why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component.
But in some cases, the `id` prop may not be static. For example,
```jsx

@ -5,7 +5,9 @@ class SelectAccount extends EventEmitter {
command (this: NightwatchBrowser, account?: string): NightwatchBrowser {
if (account) {
this.api
.click(`select[data-id="runTabSelectAccount"] [value="${account}"]`)
.click(`*[data-id="runTabSelectAccount"]`) //open the dropdown
.waitForElementVisible(`*[data-id="${account}"]`)
.click(`*[data-id="${account}"]`) //close the dropdown
.perform(() => {
this.emit('complete')
})

@ -5,14 +5,14 @@ class switchEnvironment extends EventEmitter {
command (this: NightwatchBrowser, provider: string): NightwatchBrowser {
this.api.useCss().waitForElementVisible('[data-id="settingsSelectEnvOptions"]')
.perform((done) => {
this.api.isPresent({ selector: `[data-id="selected-provider-${provider}"]`, suppressNotFoundErrors: true, timeout: 5000}, (result) => {
this.api.isPresent({ selector: `[data-id="selected-provider-${provider}"]`, suppressNotFoundErrors: true, timeout: 5000 }, (result) => {
if (result.value) {
done()
} else {
browser.perform(() => {
this.api
.click('[data-id="settingsSelectEnvOptions"] button') // open dropdown
.isPresent({ selector: `[data-id="dropdown-item-${provider}"]`, suppressNotFoundErrors: true, timeout: 5000}, (result) => {
.isPresent({ selector: `[data-id="dropdown-item-${provider}"]`, suppressNotFoundErrors: true, timeout: 5000 }, (result) => {
console.log(result)
this.api.click('[data-id="settingsSelectEnvOptions"] button') // close dropdown
if (!result.value) {

@ -36,6 +36,7 @@ module.exports = {
browser.pause(500)
.clickLaunchIcon('udapp')
.selectAccount('0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c')
.pause()
.setValue('input[placeholder="uint8 _numProposals"]', '2')
.click('*[data-id="Deploy - transact (not payable)"]')
.waitForElementPresent('*[data-id="universalDappUiContractActionWrapper"]', 60000)

@ -38,7 +38,7 @@ module.exports = {
.openFile('ipfs/QmXYUS1ueS22EqNVRaKuZa31EgHLjKZ8uTM8vWhQLxa3pw')
},
/* Disabling the test until refactoring and the new swarm usage
'Publish on Swarm': '' + function (browser: NightwatchBrowser) {
browser
.click('#publishOnSwarm')
@ -54,7 +54,7 @@ module.exports = {
})
.click('[data-id="publishToStorage-modal-footer-ok-react"]')
},
*/
'Should publish contract metadata to ipfs on deploy': function (browser: NightwatchBrowser) {
browser

@ -300,9 +300,10 @@ module.exports = {
browser
.clickLaunchIcon('udapp')
.switchEnvironment('vm-mainnet-fork')
.click('*[data-id="runTabSelectAccount"]')
.waitForElementPresent({
locateStrategy: 'css selector',
selector: 'select[data-id="runTabSelectAccount"] option[value="0xdD870fA1b7C4700F2BD7f44238821C26f7392148"]',
selector: '*[data-id="0xdD870fA1b7C4700F2BD7f44238821C26f7392148"]',
timeout: 240000
})
.executeScriptInTerminal(`web3.eth.getCode('0x180587b00c8642e2c7ac3a758712d97e6f7bdcc7')`) // mainnet contract

@ -245,11 +245,13 @@ module.exports = {
.setSolidityCompilerVersion('soljson-v0.8.17+commit.8df45f5f.js')
.clickLaunchIcon('udapp')
.switchEnvironment('vm-mainnet-fork')
.click('*[data-id="runTabSelectAccount"]')
.waitForElementPresent({
locateStrategy: 'css selector',
selector: 'select[data-id="runTabSelectAccount"] option[value="0xdD870fA1b7C4700F2BD7f44238821C26f7392148"]',
selector: `*[data-id="0xdD870fA1b7C4700F2BD7f44238821C26f7392148"]`,
timeout: 250000
}) // wait for the udapp to load the list of accounts
.click('*[data-id="0xdD870fA1b7C4700F2BD7f44238821C26f7392148"]')
.selectContract('MyResolver')
.createContract('')
.clickInstance(0)

@ -340,5 +340,17 @@ module.exports = {
.getEditorValue((content) => {
browser.assert.ok(content.indexOf('contract Lock {') !== -1, 'content does contain "contract Lock {"')
})
},
'Load remix with an iframe plugin #group4': function (browser: NightwatchBrowser) {
browser
.url('http://127.0.0.1:8080?activate=contract-verification')
.refreshPage()
.waitForElementVisible(
{
selector: '//*[contains(@data-id, "sidePanelSwapitTitle") and text()="Contract Verification"]',
locateStrategy: 'xpath'
}
)
}
}

@ -34,10 +34,10 @@ Each other native plugin can request a guided tour with:
Other type of plugin may be able to the native plugin guided tour but we won't push this if the integration is not working out of the box.
We rather update the remix-plugin doc saying that `guided tour framework name` is the preferred one.
## web site
## website
we commit to have a public web site for general info about us.
It won't be a branded web site.
we commit to have a public website for general info about us.
It won't be a branded website.
We are asking a designer for improving the Liana's logo.
We don't need to have a framework (hugo, hexo) if that's too much overhead.
@liana is testing out the easiest solution.
@ -98,7 +98,7 @@ first steps :
- put all the public link to the local package
- basic electron wrapper
## out reach beyond community
## outreach beyond community
We agree it is something interesting to explore,
It is not 100% dev tool nor remix so we should organize call with other people from EF at least

@ -112,13 +112,14 @@ export class RemixGuidePlugin extends ViewPlugin {
title={Data.title}
description={Data.description}
>
{ Data.sections.map(section => {
{ Data.sections.map((section, index) => {
return <RemixUIGridSection
plugin={this}
title={section.title}
hScrollable={true}
key={index}
>
{ section.cells.map(cell => {
{ section.cells.map((cell, index) => {
return <RemixUIGridCell
plugin={this}
title={cell.title}
@ -128,7 +129,7 @@ export class RemixGuidePlugin extends ViewPlugin {
expandViewEl={
cell.expandViewElement
}
key={cell.title}
key={cell.title || index}
id={cell.title}
handleExpand={() => {
this.showVideo = true

@ -161,11 +161,11 @@ export class TemplatesSelectionPlugin extends ViewPlugin {
tooltipTitle={template.tooltip}
hScrollable={false}
>
{template.items.map(item => {
{template.items.map((item, index) => {
return <RemixUIGridCell
plugin={this}
title={item.displayName}
key={item.name}
key={item.name || index}
id={item.name}
searchKeywords={[item.displayName, item.description, template.name]}
tagList={item.tagList}

@ -0,0 +1,15 @@
{
"circuit.compiler": "Compilatore",
"circuit.autoCompile": "Compila automaticamente",
"circuit.hideWarnings": "Nascondi gli avvisi",
"circuit.advancedConfigurations": "Configurazioni Avanzate",
"circuit.compilerConfiguration": "Configurazione del compilatore",
"circuit.prime": "Primo",
"circuit.useConfigurationFile": "Usa il file di configurazione",
"circuit.compile": "Compila",
"circuit.noFileSelected": "nessun file selezionato",
"circuit.generateR1cs": "Genera R1CS",
"circuit.computeWitness": "Calcola Testimone",
"circuit.signalInput": "Ingresso Segnale",
"circuit.compute": "Calcola"
}

@ -0,0 +1,36 @@
{
"editor.keyboardShortcuts": "Scorciatoie della tastiera",
"editor.keyboardShortcuts.text1": "Compila il contratto attuale",
"editor.keyboardShortcuts.text2": "Apri Esplora File",
"editor.keyboardShortcuts.text3": "Apri la Gestione Plugin",
"editor.keyboardShortcuts.text4": "Compila il contratto attuale ed esegui uno script associato",
"editor.editorKeyboardShortcuts": "Scorciatoie della tastiera dell'Editor",
"editor.editorKeyboardShortcuts.text1": "Formatta il codice nel file attuale",
"editor.importantLinks": "Collegamenti importanti",
"editor.importantLinks.text1": "Sito web ufficiale del Progetto di Remix",
"editor.importantLinks.text2": "Documentazione ufficiale",
"editor.title1": "Avviso Codice incollato",
"editor.title1.message1": "Hai appena incollato un frammento di codice o contratto nell'editor.",
"editor.title1.message2": "Assicurati di comprenderlo a pieno prima di distribuire, o interagire con, questo contratto. Non cadere nelle truffe!",
"editor.title1.message3": "L'esecuzione di codice non attendibile può mettere <span>a rischio</span> il tuo portafoglio. Nel peggiore dei casi, potresti <span>perdere tutto il tuo denaro</span>.",
"editor.title1.message4": "Se non lo comprendi del tutto, ti preghiamo di non eseguire questo codice.",
"editor.title1.message5": "Se non sei uno sviluppatore di contratti intelligenti, chiedi a qualcuno di fiducia, che abbia le capacità di determinare se questo codice è sicuro per l'utilizzo.",
"editor.title1.message6": "Consulta <a>questi consigli</a> per ulteriori informazioni.",
"editor.zoomIn": "Ingrandisci",
"editor.zoomOut": "Riduci",
"editor.formatCode": "Formatta il Codice",
"editor.generateDocumentation": "Genera della documentazione per questa funzione",
"editor.generateDocumentation2": "Genera della documentazione per questa funzione \"{name}\"",
"editor.generateDocumentationByAI": "```solidity\n {content}\n```\n Generi esclusivamente la documentazione di natspec per la funzione {currentFunction}, utilizzando la sintassi di stile docstring. Utilizza soltanto i tag supportati da docstring",
"editor.explainFunction": "Spiega questa funzione",
"editor.explainFunctionSol": "Spiega questo codice",
"editor.explainFunction2": "Spiega la funzione \"{name}\"",
"editor.explainFunctionByAI": "```\n{content}\n```\nSpiega la funzione {currentFunction}",
"editor.explainFunctionByAISol": "```\n{content}\n```\nSpiega la funzione {currentFunction}",
"editor.ExplainPipeMessage": "```\n {content}\n```\nSpiega il precedente frammento",
"editor.executeFreeFunction": "Esegui una funzione gratuita",
"editor.executeFreeFunction2": "Esegui la funzione gratuita \"{name}\"",
"editor.toastText1": "Questo può eseguire esclusivamente la funzion gratuita",
"editor.toastText2": "Ti preghiamo di andare alle impostazioni di Remix, per attivare le funzionalità dell'editor del codice, o attendi il caricameento dl contesto dell'editor attuale.",
"editor.text": "Il file è aperto in modalità di <b>sola lettura</b>."
}

@ -0,0 +1,6 @@
{
"electron.openFolder": "Apri la cartella",
"electron.recentFolders": "Cartelle recenti",
"electron.gitClone": "Clona una repository di Git",
"electron.openFolderMessage": "Per poter utilizzare le funzionalità di Git, puoi aprire una cartella, o clonare una repository."
}

@ -2,12 +2,21 @@
"filePanel.displayName": "Esplora file",
"filePanel.workspace": "WORKSPACE",
"filePanel.create": "Crea",
"filePanel.createLabel": "Crea con Modello",
"filePanel.createBlank": "Crea vuoto",
"filePanel.create.desktop": "Crea Progetto",
"filePanel.clone": "Clona",
"filePanel.download": "Scarica",
"filePanel.backup": "Backup",
"filePanel.localFileSystem": "Connetti ai file di sistema locali",
"filePanel.restore": "Ripristina",
"filePanel.workspace.create": "Crea un'area di lavoro",
"filePanel.name": "Nome",
"filePanel.save": "Salva",
"filePanel.workspace.create": "Crea Area di Lavoro con Modello",
"filePanel.workspace.createBlank": "Crea Area di Lavoro vuota",
"filePanel.workspace.create.desktop": "Crea il progetto nella nuova cartella",
"filePanel.workspace.rename": "Rinomina l'area di lavoro",
"filePanel.workspace.save_workspace": "Salva l'Area di Lavoro",
"filePanel.workspace.delete": "Elimina l'area di lavoro",
"filePanel.workspace.deleteConfirm": "Sei sicuro di voler eliminare l'area di lavoro corrente?",
"filePanel.workspace.download": "Scarica l'area di lavoro",
@ -19,6 +28,7 @@
"filePanel.workspace.chooseTemplate": "Scegli un template",
"filePanel.workspace.backup": "Backup di tutte le aree di lavoro",
"filePanel.workspace.restore": "Ripristina le aree di lavoro dal backup",
"filePanel.workspace.localFileSystem": "Connetti ai File di sistema locali utilizzando Remixd",
"filePanel.workspace.clone": "Clona un Repository di Git",
"filePanel.workspace.cloneMessage": "Fornisci un Url valido del repository git.",
"filePanel.workspace.enterGitUrl": "Inserisci l'url del repository git",
@ -29,6 +39,10 @@
"filePanel.tssoltestghaction": "Flusso di lavoro dei test Mocha Chai",
"filePanel.workspace.addscriptetherscan": "Aggiunge gli script che possono essere utilizzati per interagire con l'API di Etherscan",
"filePanel.addscriptetherscan": "Aggiungi gli script Etherscan",
"filePanel.workspace.addscriptsindri": "Aggiunge degli script per interagire con Sindri, un servizio remoto con prova a conoscenza zero",
"filePanel.addscriptsindri": "Aggiungi gli script ZK di Sindri",
"filePanel.workspace.addcreate2solidityfactory": "Un contratto che ti consente di distribuire un contratto con CREATE2.",
"filePanel.addcreate2solidityfactory": "Aggiungi factory di Solidity di Create2",
"filePanel.workspace.addscriptdeployer": "Aggiunge gli script che possono essere utilizzati per deploiare i contratti",
"filePanel.addscriptdeployer": "Aggiungi script deployer del contratto",
"filePanel.workspace.slitherghaction": "Aggiunge un file yml preimpostato per eseguire l'analisi di slither sulle azioni github CI",
@ -57,17 +71,19 @@
"filePanel.compileForNahmii": "Compila per Nahmii",
"filePanel.createNewFile": "Crea nuovo file",
"filePanel.createNewFolder": "Crea nuova cartella",
"filePanel.publishToGist": "Pubblica tutti i file su GitHub gist",
"filePanel.uploadFile": "Carica i file",
"filePanel.publishToGist": "Pubblica su Gist",
"filePanel.workspace.publishToGist": "Pubblica Area di Lavoro su GitHub Gist",
"filePanel.uploadFile": "Apri un file dai tuoi File di Sistema",
"filePanel.uploadFolder": "Carica la cartella",
"filePanel.updateGist": "Aggiorna l'esploratore [gist] corrente",
"filePanel.updateGist": "Aggiorna Gist",
"filePanel.workspace.updateGist": "Pubblica aggiornamento di Gist",
"filePanel.viewAllBranches": "Visualizza tutte le branch",
"filePanel.createBranch": "Crea una branch",
"filePanel.switchBranches": "Cambia branch",
"filePanel.checkoutGitBranch": "Controllare il ramo Git",
"filePanel.findOrCreateABranch": "Trovare o creare un ramo.",
"filePanel.initGitRepositoryLabel": "Inizializza l'area di lavoro come nuovo repository git",
"filePanel.initGitRepositoryWarning": "Per utilizzare le funzioni di Git, aggiungere nome utente ed e-mail alla sezione Github del pannello Impostazioni.",
"filePanel.initGitRepositoryWarning": "Per utilizzare le funzionalità di Git, aggiungi il nome utente e l'email alla sezione di GitHub del plugin di Git.",
"filePanel.workspaceName": "Nome del Workspace",
"filePanel.customizeTemplate": "Template personalizzati",
"filePanel.features": "Caratteristiche",
@ -75,8 +91,9 @@
"filePanel.ok": "OK",
"filePanel.yes": "Si",
"filePanel.cancel": "Annulla",
"filePanel.selectFolder": "Seleziona o crea cartella",
"filePanel.createNewWorkspace": "Crea un nuovo workspace",
"filePanel.connectToLocalhost": "connetti a localhost",
"filePanel.connectToLocalhost": "Connetti ai File di sistema locali",
"filePanel.copiedToClipboard": "Copiato negli appunti {path}",
"filePanel.downloadFailed": "Download non riuscito",
"filePanel.downloadFailedMsg": "Errore inatteso durante il download: {error}",
@ -86,7 +103,7 @@
"filePanel.copyFolderFailed": "Copia Cartella Non Riuscita",
"filePanel.copyFolderFailedMsg": "Errore inatteso durante la copia della cartella: {src}",
"filePanel.runScriptFailed": "Esecuzione dello script non riuscita",
"filePanel.createPublicGist": "Pubblicare Gist Pubblico",
"filePanel.createPublicGist": "Pubblica su un Gist pubblico",
"filePanel.createPublicGistMsg1": "Sei sicuro di voler inviare le modifiche al file gist remoto su github.com?",
"filePanel.createPublicGistMsg2": "Sei sicuro di voler pubblicare in modo anonimo tutti i tuoi file nella cartella {path} come gist pubblico su github.com?",
"filePanel.createPublicGistMsg3": "Sei sicuro di voler pubblicare in modo anonimo tutti i tuoi file nella cartella {path} come gist pubblico su github.com?",
@ -103,6 +120,12 @@
"filePanel.mintable": "Mintable",
"filePanel.burnable": "Bruciabile",
"filePanel.pausable": "Pausabile",
"filePanel.semaphore": "Semaforo",
"filePanel.hashchecker": "Controllo dell'Hash",
"filePanel.rln": "Nullificatore del Rate-Limiting",
"filePanel.breakthroughLabsUniswapv4Hooks": "Hook di Breakthrough-Labs",
"filePanel.uniswapV4Template": "Modello v4",
"filePanel.uniswapV4HookBookMultiSigSwapHook": "HookBook MultiSigSwapHook",
"filePanel.transparent": "Trasparente",
"filePanel.initGitRepoTitle": "Opzione di controllo per inizializzare il workspace come nuovo repository git",
"filePanel.switchToBranchTitle1": "Esegue il check out del nuovo ramo dal ramo remoto",
@ -122,5 +145,11 @@
"filePanel.movingFileFailedMsg": "Errore inatteso durante lo spostamento del file: {src}",
"filePanel.movingFolderFailed": "Spostamento File Non Riuscito",
"filePanel.movingFolderFailedMsg": "Errore inatteso durante lo spostamento della cartella: {src}",
"filePanel.workspaceActions": "Azioni workspace"
"filePanel.workspaceActions": "Azioni workspace",
"filePanel.saveCodeSample": "Questa area di lavoro di codice-esempio non verrà mantenuta. Clicca qui per salvarla.",
"filePanel.logInGithub": "Accedi a GitHub.",
"filePanel.gitHubLoggedAs": "Connesso come {githubuser}",
"filePanel.updateSubmodules": "Aggiorna tutti i moduli secondari della repository. Clicca per prelevare le dipendenze.",
"filePanel.signTypedData": "Firma dati digitati",
"filePanel.signTypedDataError": "Errore firmando questi dati digitati."
}

@ -0,0 +1,3 @@
{
"gitui.openFolderMessage": "Per poter utilizzare le funzionalità di Git, puoi aprire una cartella, o clonare una repository."
}

@ -1,14 +1,15 @@
{
"home.home": "Home",
"home.scamAlert": "Allerta Truffa",
"home.scamAlertText": "L'unico URL utilizzato da Remix è remix.ethereum.org",
"home.scamAlertText2": "Attenzione ai video online che promuovono i \"bot di che fanno \"front running\" di liquidità\"",
"home.scamAlertText3": "Ulteriori suggerimenti di sicurezza",
"home.learnMore": "Scopri di più",
"home.here": "qui",
"home.here": "altro",
"home.featured": "In Evidenza",
"home.jumpIntoWeb3": "JUMP INTO WEB3",
"home.jumpIntoWeb3More": "More",
"home.jumpIntoWeb3Text": "Remix IDE is part of the Remix Project, a rich toolset that can be used for the entire journey of contract development by users of any knowledge level. Learn more on the Remix Project website.",
"home.learnEthPromoTitle": "LearnEth: Tutorial dentro Remix",
"home.learnEthPromoButton": "Inizia a imparare",
"home.learnEthPromoText": "Consulta i tutorial su Remix, Solidity e altri progetti del Web3. Ottimo per tutti i livelli di competenza.",
"home.remixYouTube": "GUARDA PER IMPARARE",
"home.remixYouTubeText1": "Video di Suggerimenti dal Team di Remix",
"home.remixYouTubeMore": "Guarda",
@ -28,7 +29,7 @@
"home.dgitPluginDesc": "Aggiungi il controllo delle sorgenti ai tuoi progetti.",
"home.oneClickDappDesc": "Genera rapidamente interfacce per contratti intelligenti",
"home.getStarted": "Inizia",
"home.projectTemplates": "Modelli di Progetto",
"home.projectTemplates": "Esplora. Prototipa. Crea.",
"home.blankTemplateDesc": "Crea uno workspace vuoto.",
"home.remixDefaultTemplateDesc": "Crea uno spazio di lavoro con file di esempio.",
"home.ozerc20TemplateDesc": "Crea un token ERC20 importando la libreria OpenZeppelin.",
@ -36,6 +37,7 @@
"home.ozerc1155TemplateDesc": "Crea un token ERC1155 importando la libreria OpenZeppelin.",
"home.gnosisSafeMultisigTemplateDesc": "Crea dei Wallet Multisig utilizzando questo modello.",
"home.zeroxErc20TemplateDesc": "Crea un token ERC20 importando il contratto 0xProject.",
"home.learnEthPluginDesc": "Impara su Remix, Solidity e altri progetti del Web3.",
"home.learn": "Impara",
"home.learnEth1": "Basi di Remix",
"home.learnEth1Desc": "Un'introduzione all'interfaccia di Remix e alle operazioni di base.",
@ -44,7 +46,7 @@
"home.remixAdvanced": "Distribuire con le Librerie",
"home.remixAdvancedDesc": "Impara a fare deployment con le librerie in Remix",
"home.remixYoutubePlaylist": "Playlist Youtube di Remix",
"home.remixTwitterProfile": "Profilo X di Remix",
"home.remixTwitterProfile": "Profilo di X di Remix",
"home.remixLinkedinProfile": "Profilo LinkedIn di Remix",
"home.remixMediumPosts": "Post in Medium di Remix",
"home.joinUsOnDiscord": "Unisciti a noi su Discord",
@ -55,12 +57,19 @@
"home.remixDesktop": "Remix Desktop",
"home.searchDocumentation": "Cerca la Documentazione",
"home.files": "File",
"home.newFile": "Nuovo File",
"home.openFile": "Apri File",
"home.accessFileSystem": "Accedi al File System",
"home.newFile": "Nuovo",
"home.startCoding": "Inizia a programmare",
"home.startCodingPlayground": "Apri un terreno di gioco per la prototipazione e l'apprendimento semplice",
"home.openFile": "Apri",
"home.openFileTooltip": "Apri un File dal tuo Sistema di File",
"home.accessFileSystem": "Connetti ai File di sistema locali",
"home.loadFrom": "Carica da",
"home.resources": "Risorse",
"home.connectToLocalhost": "Connetti a localhost",
"home.seeAllTutorials": "Tutti i tutorial",
"home.maintainedByRemix": "Mantenuto da Remix"
"home.maintainedByRemix": "Mantenuto da Remix",
"home.gitCloneTooltip": "Clona una repository di GitHub in una nuova Area di Lavoro",
"home.gistTooltip": "Apri la repository di Gist",
"home.newFileTooltip": "Aggiungi un nuovo file a un'Area di Lavoro"
}

@ -0,0 +1,43 @@
{
"quickDapp.address": "indirizzo",
"quickDapp.enterAddress": "Inserisci l'indirizzo",
"quickDapp.enterAbi": "Inserisci l'ABI",
"quickDapp.name": "nome",
"quickDapp.enterName": "Inserisci il nome",
"quickDapp.network": "rete",
"quickDapp.enterNetwork": "Inserisci la rete",
"quickDapp.submit": "Invia",
"quickDapp.text1": "QuickDapp funziona soltanto per il Fornitore Iniettato, al momento. Ulteriori fornitori saranno adottati nelle iterazioni future.",
"quickDapp.text2": "Il click sull'icona di modifica in un contratto distribuito, inserirà automaticamente i parametri.",
"quickDapp.admin": "Admin",
"quickDapp.resetFunctions": "Ripristina le funzioni",
"quickDapp.deleteDapp": "Elimina dApp",
"quickDapp.text3": "QuickDapp distribuisce su Surge.sh. I profili di Surge sono gratuiti fiino al raggiungimento di un livello d'utilizzo. L'email e la password che inserisci di seguito, ti consentiranno di accedere a un profilo di Surge. Il dominio secondario è di tua scelta, ma dev'essere univoco. Ulteriori informazioni su <a>surge.sh</a>",
"quickDapp.email": "Email",
"quickDapp.surgeEmail": "Email di Surge",
"quickDapp.password": "Password",
"quickDapp.surgePassword": "Password di Surge",
"quickDapp.subdomain": "Dominio secondario",
"quickDapp.uniqueSubdomain": "Nome univoco del dominio secondario",
"quickDapp.shareTo": "Condividi con (Facoltativo)",
"quickDapp.useNatSpec": "Utilizza NatSpec (Facoltativo)",
"quickDapp.useNatSpecTooltip": "Recupera le informazioni dal NatSpec del contratto",
"quickDapp.verifiedByEtherscan": "Verificata da Etherscan (Facoltativo)",
"quickDapp.verified": "Verificata",
"quickDapp.noTerminal": "Nessun terminale (Facoltativo)",
"quickDapp.no": "No",
"quickDapp.themes": "Temi",
"quickDapp.deploy": "Distribuisci",
"quickDapp.teardown": "Abbatti",
"quickDapp.text4": "Distribuito correttamente!",
"quickDapp.text5": "Clicca il seguente collegamento per visualizzare la tua dApp",
"quickDapp.text6": "Abbattimento riuscito!",
"quickDapp.addLogoTooltip": "Clicca qui per aggiungere un logo",
"quickDapp.deleteLogoTooltip": "Clicca qui per eliminare il logo",
"quickDapp.dappTitle": "Titolo della dApp",
"quickDapp.dappInstructions": "Istruzioni sulla dApp",
"quickDapp.functionTitle": "Titolo della funzione",
"quickDapp.functionInstructions": "Istruzioni per la funzione",
"quickDapp.addColumn": "Aggiungi colonna",
"quickDapp.column": "Colonna"
}

@ -1,7 +1,14 @@
{
"remixUiTabs.tooltipText1": "Esegui script (CTRL + SHIFT + S)",
"remixUiTabs.tooltipText2": "Compila CTRL + S",
"remixUiTabs.tooltipText3": "Seleziona il file .sol o .yul da compilare o un file .ts o .js ed eseguilo",
"remixUiTabs.zoomOut": "Rimpicciolisci",
"remixUiTabs.tooltipText3": "Seleziona un file .sol o .yul da compilare O un file .ts o .js da eseguire",
"remixUiTabs.tooltipText4": "Per spiegare un contratto, scegli un file .sol, .vy o .circom",
"remixUiTabs.tooltipText5": "Spiega il/i contratto/i nel file attuale [BETA]",
"remixUiTabs.tooltipText6": "Abilita RemixAI Copilot [BETA]",
"remixUiTabs.tooltipText7": "Disabilita RemixAI Copilot [BETA]",
"remixUiTabs.tooltipText8": "Documentazione sugli strumenti di RemixAI",
"remixUiTabs.tooltipText9": "Configura le dipendenze dello scripting",
"remixUiTabs.tooltipTextDisabledCopilot": "Per utilizzare RemixAI Copilot, scegli un file .sol",
"remixUiTabs.zoomOut": "Riduci",
"remixUiTabs.zoomIn": "Ingrandisci"
}

@ -1,22 +1,27 @@
{
"settings.displayName": "Impostazioni",
"settings.reset": "Ripristino delle impostazioni predefinite",
"settings.general": "Impostazioni generali",
"settings.generateContractMetadataText": "Generare i metadati del contratto. Genera un file JSON nella cartella del contratto. Permette di specificare gli indirizzi delle librerie da cui dipende il contratto. Se non viene specificato nulla, Remix distribuisce le librerie in modo automatico.",
"settings.general": "Generali",
"settings.generateContractMetadataText": "Genera i metadati del contratto",
"settings.generateContractMetadataTooltip": "Genera un file JSON nella cartella del contratto. Consente di specificare gli indirizzi della libreria da cui dipende il contratto. Se non viene specificato nulla, Remix distribuisce automaticamente le librerie.",
"settings.ethereunVMText": "Utilizzare sempre la macchina virtuale Remix al momento del caricamento",
"settings.wordWrapText": "A capo automatico nell'editor",
"settings.useAutoCompleteText": "Abilita il completamento del codice nell'editor.",
"settings.useShowGasInEditorText": "Visualizza le stime del gas nell'editor.",
"settings.displayErrorsText": "Visualizza gli errori nell'editor durante la digitazione.",
"settings.matomoAnalytics": "Attiva \"Matomo Analytics\". Non raccogliamo informazioni di identificazione personale (PII, dall'inglese \"personally identifiable information\"). Le informazioni vengono utilizzate per migliorare l'esperienza utente e l'interfaccia utente del sito. Per saperne di più ",
"settings.enablePersonalModeText": " Abilita la modalità personale per il provider web3. Le transazioni inviate tramite Web3 utilizzeranno l'API web3.personal.\n",
"settings.warnText": "Assicurati che l'endpoint sia aperto prima di abilitarlo. Questa modalità consente all'utente di fornire una frase d'accesso nell'interfaccia di Remix senza dover sbloccare l'account. Sebbene sia molto comodo, è necessario fidarsi completamente del backend a cui si è connessi (Geth, Parity, ...). Remix non conserva mai alcuna frase d'accesso",
"settings.useAutoCompleteText": "Abilita il completamento del codice nell'editor",
"settings.useShowGasInEditorText": "Mostra le stime sul gas nell'editor",
"settings.displayErrorsText": "Mostra gli errori nell'editor durante la digitazione",
"settings.matomoAnalytics": "Abilita Matomo Analytics. Consulta",
"settings.matomoAnalyticsTooltip": "Non raccogliamo le informazioni di identificazione personali. Le informazioni sono utilizzate per migliorare l'UX e l'UI del sito.",
"settings.enablePersonalModeText": " Abilita la modalità Personale per il fornitore del Web3",
"settings.enablePersonalModeTooltip": "Le transazioni inviate sul Web3 utilizzeranno l'API web3.personal. Assicurati che l'endpoint sia aperto, prima di abilitarlo. Questa modalità consente a un utente di fornire una frase d'accesso nell'interfaccia di Remix, senza dover sbloccare il profilo. Sebbene ciò sia molto conveniente, dovresti fidarti completamente del backend cui sei connesso (Geth, Parity, ...). Remix non conserva mai alcuna frase d'accesso.",
"settings.gitAccessTokenTitle": "Credenziali Github",
"settings.gitAccessTokenText": "Il token di accesso viene utilizzato per pubblicare una Gist e recuperare i contenuti di GitHub. Potrebbe essere necessario inserire nome utente/email.",
"settings.gitAccessTokenText2": "Vai alla pagina dei token di github (link in basso) per creare un nuovo token e salvarlo in Remix. Assicurati che questo token abbia solo l'autorizzazione \"create gist\"",
"settings.etherscanTokenTitle": "Token di accesso a Etherscan",
"settings.etherscanAccessTokenText": "Gestione della chiave api utilizzata per interagire con Etherscan.",
"settings.etherscanAccessTokenText2": "Vai alla pagina delle chiavi api di Etherscan (link in basso) per creare una nuova chiave api e salvarla in Remix.",
"settings.sindriAccessTokenTitle": "Credenziali di Sindri",
"settings.sindriAccessTokenText": "Il token d'accesso viene utilizzato per compilare i circuiti ZKP e generare prove con Sindri.",
"settings.sindriAccessTokenText2": "Vai alla pagina di creazione del profilo di Sindri (link in basso), per creare un nuovo token e salvarlo su Remix.",
"settings.save": "Salva",
"settings.remove": "Rimuovi",
"settings.themes": "Temi",
@ -37,5 +42,9 @@
"settings.projectID": "ID PROGETTO",
"settings.projectSecret": "SEGRETO DEL PROGETTO",
"settings.analyticsInRemix": "Analytics nella Remix IDE",
"settings.enableSaveEnvState": "Save environment state"
"settings.copilot": "Solidity copilot - Alpha",
"settings.copilot.activate": "Carica & Attiva copilot",
"settings.copilot.max_new_tokens": "Numero massimo di parole da generare",
"settings.copilot.temperature": "Temperatura",
"settings.enableSaveEnvState": "Salva lo stato dell'ambiente"
}

@ -1,10 +1,10 @@
{
"solUmlGen.pngDownload": "Download as PNG",
"solUmlGen.pdfDownload": "Download as PDF",
"solUmlGen.pngDownloadTooltip": "Download UML diagram as a PNG file",
"solUmlGen.pdfDownloadTooltip": "Download UML diagram as a PDF file",
"solUmlGen.text1": "To view your contract as a UML Diagram",
"solUmlGen.text2": "Right-click on your contract file",
"solUmlGen.clickOn": "Click on",
"solUmlGen.generateUML": "Generate UML"
"solUmlGen.pngDownload": "Scarica come PNG",
"solUmlGen.pdfDownload": "Scarica come PDF",
"solUmlGen.pngDownloadTooltip": "Scarica diagramma UML come un file PNG",
"solUmlGen.pdfDownloadTooltip": "Scarica diagramma UML come un file PDF",
"solUmlGen.text1": "Per visualizzare il tuo contratto come un diagramma UML",
"solUmlGen.text2": "Clicca con il destro del mouse sul file del tuo contratto",
"solUmlGen.clickOn": "Clicca su",
"solUmlGen.generateUML": "Genera UML"
}

@ -1,10 +1,12 @@
{
"solidity.displayName": "Compilatore di Solidity",
"solidity.openaigptMessage": "solidity code: {content}\n error message: {messageText}\n spiega perché l'errore si è verificato e come correggerlo.",
"solidity._comment_compiler-container.tsx": "libs/remix-ui/solidity-Compiler/src/lib/compiler-container.tsx",
"solidity.compiler": "Compilatore",
"solidity.addACustomCompiler": "Aggiungi un compilatore personalizzato",
"solidity.addACustomCompilerWithURL": "Aggiungi un compilatore personalizzato con URL",
"solidity.includeNightlyBuilds": "Includi le build nightly",
"solidity.downloadedCompilers": "Mostra solo scaricati",
"solidity.autoCompile": "Compila automaticamente",
"solidity.hideWarnings": "Nascondi gli avvertimenti",
"solidity.enableHardhat": "Abilita la Compilazione Hardhat",
@ -16,7 +18,7 @@
"solidity.compilationDetails": "Dettagli Della Compilazione",
"solidity.language": "Lingua",
"solidity.evmVersion": "Versione EVM",
"solidity.enableOptimization": "Abilita l'ottimizzazione",
"solidity.enableOptimization": "Ottimizzazione",
"solidity.useConfigurationFile": "Usa il file di configurazione",
"solidity.change": "Cambia",
"solidity.compile": "Compila",
@ -43,11 +45,22 @@
"solidity.compileIconAttribute": "il compilatore è in caricamento, attendere qualche istante.",
"solidity.compilerLicense": "Licenza Compiler",
"solidity.compilerLicenseMsg1": "Compiler è in caricamento. La licenza verrà visualizzata una volta caricato il compiler",
"solidity.compilerLicenseMsg2": "Impossibile trovare la licenza per la versione selezionata del compilatore",
"solidity.compilerLicenseMsg2": "Impossibile recuperare la licenza per la versione selezionata del compilatore",
"solidity.compilerLicenseMsg3": "Licenza non disponibile",
"solidity.seeCompilerLicense": "Vedi la licenza del compilatore",
"solidity._comment_contract-selection.tsx": "libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx",
"solidity.publishOn": "Pubblica su",
"solidity.runStaticAnalysis": "Esegui Remix Analysis",
"solidity.runStaticAnalysis.iconTooltip": "Clicca per analizzare le vulnerabilità di questo contratto con gli analizzatori di Remix, Solhint e Slither",
"solidity.runSolidityScan": "Esegui SolidityScan",
"solidity.solScan.iconTooltip": "Clicca per scansionare per le vulnerabilità di questo contratto con SolidityScan, un fornitore di terze parti [BETA]",
"solidity.solScan.modalTitle": "Autorizzazione per la condivisione del codice",
"solidity.solScan.modalMessage": "Per scansionare e analizzare il contratto per rischi e vulnerabilità, il suo codice sarà condiviso con SolidityScan, un fornitore di terze parti. ",
"solidity.solScan.likeToContinue": "Desideri continuare?",
"solidity.solScan.modalOkLabel": "Continua",
"solidity.solScan.modalCancelLabel": "Annulla",
"solidity.solScan.errModalTitle": "Errore di scansione",
"solidity.solScan.successModalTitle": "Risultati scansione",
"solidity.flatten": "Appiattire i contratti prima della generazione UML.",
"solidity.generateUML": "Genera un diagramma UML del tuo contratto.",
"solidity.flattenLabel": "Unisci livelli",
@ -57,7 +70,7 @@
"solidity.copyBytecode": "Copia Bytecode negli appunti",
"solidity.unableToDisplay": "Impossibile visualizzare",
"solidity.download": "Scarica",
"solidity.compileDetails": "Download compilation details (JSON format)",
"solidity.compileDetails": "Scarica i dettagli della compilazione (in formato JSON)",
"solidity.close": "Chiudi",
"solidity.contract": "Contratto",
"solidity.displayContractDetails": "Visualizza Dettagli Del Contratto",
@ -65,7 +78,7 @@
"solidity.Assembly": "Codici operativi di Assembly che descrivono il contratto, compreso il corrispondente codice sorgente solidity",
"solidity.Opcodes": "Codici operativi di Assembly che descrivono il contratto",
"solidity.name": "Nome del contratto compilato",
"solidity.metadata": "Contiene tutte le informazioni relative alla compilazione",
"solidity.metadata": "Contiene tutte le informazioni sulla compilazione",
"solidity.bytecode": "Bytecode in esecuzione durante la creazione del contratto",
"solidity.abi": "ABI: descrizione di tutte le funzioni (parametri input/output, ambito di applicazione, ...)",
"solidity.web3Deploy": "Copia/incolla questo codice su qualsiasi console JavaScript/Web3 per distribuire questo contratto",

@ -1,7 +1,8 @@
{
"terminal.listen": "ascolta su tutte le transazioni",
"terminal.listen": "Ascolta su tutte le transazioni",
"terminal.listenVM": "Ascolta su tutte le transazioni è disabilitato per l'ambiente della VM",
"terminal.listenTitle": "Se è selezionato, Remix ascolterà tutte le transazioni generate nell'environment attuale e non solo quelle create da te",
"terminal.search": "Cercare con hash o indirizzo della transazione",
"terminal.search": "Filtra con hash o indirizzo della transazione",
"terminal.used": "usato",
"terminal.debug": "Debug",
"terminal.welcomeText1": "Benvenuto a",
@ -11,10 +12,10 @@
"terminal.welcomeText5": "Esegui gli script JavaScript",
"terminal.welcomeText6": "Immettere uno script direttamente nell'interfaccia della riga di comando",
"terminal.welcomeText7": "Seleziona un file Javascript nel file explorer ed esegui `remix.execute()` o `remix.exeCurrent()` nell'interfaccia Command Line (Terminale)",
"terminal.welcomeText8": "Fare clic con il tasto destro su un file JavaScript nell'esplora file e quindi fare clic su `Run`",
"terminal.welcomeText8": "Clicca con il destro su un file JavaScript in Esplora File, quindi clicca su `Esegui`",
"terminal.welcomeText9": "Le seguenti librerie sono accessibili",
"terminal.welcomeText10": "Digitare il nome della libreria per vedere i comandi disponibili",
"terminal.text1": "Questo tipo di comando è stato deprecato e non è più funzionante. Si prega di eseguire remix.help() per elencare i comandi disponibili.",
"terminal.text1": "Questo tipo di comando è stato deprecato e non è più operativo. Ti preghiamo di eseguire remix.help() per elencare tutti i comandi disponibili.",
"terminal.hideTerminal": "Nascondi Terminale",
"terminal.showTerminal": "Mostra Terminale",
"terminal.clearConsole": "Pulisci console",
@ -38,7 +39,8 @@
"terminal.executionCost": "costo di esecuzione",
"terminal.input": "input",
"terminal.decodedInput": "input decodificato",
"terminal.output": "output",
"terminal.decodedOutput": "output decodificato",
"terminal.rawlogs": "log grezzi",
"terminal.rawlogs": "registri grezzi",
"terminal.logs": "Log"
}

@ -2,10 +2,12 @@
"udapp.displayName": "Distribuisci ed esegui transazioni",
"udapp._comment_gasPrice.tsx": "libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx",
"udapp.gasLimit": "Limite di gas",
"udapp.tooltipText4": "Il limite di gas predefinito è 3M. Regolare come necessario.",
"udapp.gasLimitAuto": "Gas stimato",
"udapp.gasLimitManual": "Personalizza",
"udapp.tooltipText4": "Inserisci un limite di gas personalizzato.",
"udapp._comment_value.tsx": "libs/remix-ui/run-tab/src/lib/components/value.tsx",
"udapp.value": "Valore",
"udapp.tooltipText5": "Inserisci un importo e scegli la sua unità",
"udapp.tooltipText5": "Inserisci un importo da inviare con la transazione, e scegline l'unità",
"udapp._comment_contractDropdownUI.tsx": "libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx",
"udapp.contract": "Contratto",
"udapp.compiledBy": "compilato da {compilerName}",
@ -16,14 +18,14 @@
"udapp.publishTo": "Pubblica su",
"udapp.atAddress": "All'Indirizzo",
"udapp.atAddressOptionsTitle1": "indirizzo del contratto",
"udapp.atAddressOptionsTitle2": "Interagire con il contratto distribuito - richiede che il file .abi o il file .sol compilato sia selezionato nell'editor (con la stessa configurazione del compilatore)",
"udapp.atAddressOptionsTitle2": "Interagisci con il contratto distribuito; richiede che il file .abi, o il file .sol compilato, sia selezionato nell'editor (con la stessa configurazione del compilatore)",
"udapp.atAddressOptionsTitle3": "Compila un file *.sol o seleziona un file *.abi.",
"udapp.atAddressOptionsTitle4": "Per interagire con un contratto distribuito, è necessario inserire il suo indirizzo e compilare il file sorgente *.sol (con le stesse impostazioni del compilatore) oppure selezionare il file .abi nell'editor. ",
"udapp.contractOptionsTitle1": "Si prega di compilare *.sol file per distribuire o accedere a un contratto",
"udapp.contractOptionsTitle2": "Selezionare un contratto compilato da distribuire o da utilizzare con At Address.",
"udapp.contractOptionsTitle3": "Selezionare e compilare il file *.sol per distribuire o accedere a un contratto.",
"udapp.contractOptionsTitle4": "Quando c'è un file .sol compilato, scegliere il contratto da distribuire o da usare con At Address.",
"udapp.checkSumWarning": "Sembra che non si stia utilizzando un indirizzo con checksum. Un indirizzo con checksum è un indirizzo che contiene lettere maiuscole, come specificato in {a}. Gli indirizzi con checksum sono pensati per evitare che gli utenti inviino transazioni all'indirizzo sbagliato.",
"udapp.checkSumWarning": "Sembra che tu non stia utilizzando un indirizzo con somma di controllo. Si tratta di un indirizzo contenente delle lettere maiuscole, come specificato in {a}. Gli indirizzi con somma di controllo sono pensati per evitare che gli utenti inviino le transazioni all'indirizzo sbagliato.",
"udapp.isOverSizePromptEip170": "L'inizializzazione della creazione del contratto restituisce dati di lunghezza superiore a 24576 byte. La distribuzione probabilmente fallirà se la rete corrente ha attivato l'eip 170. Ulteriori informazioni: {a}",
"udapp.isOverSizePromptEip3860": "Il codice di avvio della creazione del contratto supera la dimensione massima consentita di 49152 byte. È probabile che la distribuzione fallisca se la rete corrente ha attivato l'eip 3860. Ulteriori informazioni: {a}",
"udapp.thisContractMayBeAbstract": "Questo contratto potrebbe essere astratto, potrebbe non implementare completamente i metodi di un contratto genitore astratto o potrebbe non invocare correttamente il costruttore di un contratto ereditato.",
@ -40,35 +42,47 @@
"udapp._comment_account.tsx": "libs/remix-ui/run-tab/src/lib/components/account.tsx",
"udapp.account": "Account",
"udapp.signAMessage": "Firma un messaggio",
"udapp.enterAMessageToSign": "Inserire un messaggio da firmare",
"udapp.enterAMessageToSign": "Inserisci un messaggio per firmare e clicca su `Firma`",
"udapp.hash": "hash",
"udapp.signature": "firma",
"udapp.saveVmStateTitle": "Save VM state",
"udapp.saveVmStateLabel": "State Name",
"udapp.saveVmStateTip": "Saved VM states can be pinned as environment using Environment Explorer",
"udapp.injectedTitle": "Purtroppo non è possibile creare un account utilizzando un provider iniettato. Per favore crea l'account direttamente dal tuo provider (cioè metamask o altro dello stesso tipo).",
"udapp.createNewAccount": "Crea un nuovo account",
"udapp.createNewAccount": "Crea un nuovo conto",
"udapp.web3Title": "La creazione di un account è possibile solo in modalità personale. Vai su Impostazioni per abilitarlo.",
"udapp.defaultTitle": "Purtroppo non è possibile creare un account utilizzando un portafoglio esterno ({selectExEnv}).",
"udapp.text1": "Fornisci una frase segreta per la creazione dell'account",
"udapp.tooltipText1": "L'elenco degli account è vuoto, assicurati che il provider corrente sia collegato correttamente a Remix",
"udapp.modalTitle1": "Passphrase per firmare un messaggio",
"udapp.modalMessage1": "Inserisci la tua frase segreta per questo account per firmare il messaggio",
"udapp.copyAccount": "Copia account negli appunti",
"udapp.signMsgUsingAccount": "Firma un messaggio utilizzando questo account",
"udapp.copyAccount": "Copia conto",
"udapp.signMsgUsingAccount": "Firma con questo conto",
"udapp._comment_environment.tsx": "libs/remix-ui/run-tab/src/lib/components/environment.tsx",
"udapp.environment": "Ambiente",
"udapp.environmentDocs": "Fare clic per i documenti sull'Ambiente",
"udapp.saveVmState": "Save VM state",
"udapp.tooltipText2": "Aprire chainlist.org e ottenere le specifiche di connessione della chain con cui si desidera interagire.",
"udapp.tooltipText3": "Fare clic per aprire un bridge per convertire ETH mainnet L1 nella valuta di rete selezionata.",
"udapp._comment_instanceContainerUI.tsx": "libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx",
"udapp.deployedContracts": "Contratti Distribuiti",
"udapp.deployAndRunClearInstances": "Cancellare l'elenco delle istanze e ripristinare il registratore",
"udapp.deployAndRunNoInstanceText": "Attualmente non si dispone di istanze contrattuali con cui interagire.",
"udapp.deployAndRunClearInstances": "Cancella tutti i contratti distribuiti (inclusi fissati) e ripristina il registratore",
"udapp.deployAndRunNoInstanceText": "Al momento non disponi di alcun contratto non fissato con cui interagire.",
"udapp.tooltipText6": "Interfacce utente generiche generate automaticamente per interagire con gli smart contratti deploiati",
"udapp.pinnedContracts": "Contratti fissati",
"udapp.tooltipTextPinnedContracts": "Elenco di contratti fissati per l'area di lavoro e la rete selezionate",
"udapp.NoPinnedInstanceText": "Nessun contratto fissato trovato per l'area di lavoro e la rete selezionate",
"udapp.tooltipTextDelete": "Elimina immediatamente",
"udapp.tooltipTextUnpin": "Sblocca il contratto da eliminare dopo aver ricaricato",
"udapp.pinnedAt": "Fissato su",
"udapp.filePath": "Percorso del file",
"udapp._comment_recorderCardUI.tsx": "libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx",
"udapp.transactionsRecorded": "Transazioni registrate",
"udapp.transactionsCountTooltip": "Il numero di transazioni registrate",
"udapp.transactionSaveTooltip1": "Nessuna transazione da salvare",
"udapp.transactionSaveTooltip2": "Salvare la transazione {count} come file di scenario",
"udapp.transactionSaveTooltip3": "Salvare le transazioni {count} come file di scenario",
"udapp.transactionsWalkthroughTooltip": "Inizia il tour dettagliato per il registratore.",
"udapp.infoRecorderTooltip": "Salvare le transazioni (contratti distribuiti ed esecuzioni di funzioni) e riprodurle in un altro ambiente, ad esempio le transazioni create nella macchina virtuale Remix possono essere riprodotte in Injected Provider.",
"udapp.livemodeRecorderTooltip": "Se i contratti vengono aggiornati dopo la registrazione delle transazioni, selezionando questa casella si eseguono le transazioni registrate con l'ultima copia dei contratti compilati",
"udapp.livemodeRecorderLabel": "Eseguire le transazioni utilizzando l'ultimo risultato della compilazione",
@ -88,7 +102,9 @@
"udapp.tooltipText12": "Input richiesto",
"udapp.tooltipText13": "Deploiato",
"udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx",
"udapp.tooltipTextRemove": "Rimuovi dalla lista",
"udapp.tooltipTextRemove": "Rimuovi permanentemente dall'elenco",
"udapp.tooltipTextEdit": "Crea una dApp con questo contratto, nel pannello principale",
"udapp.tooltipTextPin": "Fissa il contratto per l'area di lavoro e la rete attuali, affinché persista dopo aver ricaricato",
"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.",
@ -102,7 +118,7 @@
"udapp.llIError6": "Le funzioni 'receive' e 'fallback' non sono definite",
"udapp.llIError7": "Definisci una funzione 'Fallback' per inviare Calldata e una 'Receive' o 'Fallback' payable per inviare ETH",
"udapp.copy": "Copia",
"udapp.copyAddress": "Copy Address",
"udapp.copyAddress": "Copia Indirizzo",
"udapp._comment_mainnet.tsx": "libs/remix-ui/run-tab/src/lib/components/mainnet.tsx",
"udapp.mainnetText1": "Stai per creare una transazione su {name} Network. Conferma i dettagli per inviare le informazioni al tuo provider.",
"udapp.mainnetText2": "Il provider per molti utenti è MetaMask. Il provider ti chiederà di firmare la transazione prima che venga inviata alla rete {name}.",
@ -113,7 +129,7 @@
"udapp.contractCreation": "Creazione Contratto",
"udapp.transactionFee": "Transazione non valida. La commissione massima non dovrebbe essere inferiore alla commissione base",
"udapp.title1": "Rappresenta la parte della commissione della transazione che va al minatore.",
"udapp.title2": "Rappresenta l'importo massimo della commissione che pagherai per questa transazione. Il minimo deve essere impostato su Base Fee.",
"udapp.title2": "Rappresenta l'importo massimo della commissione che pagherai per questa transazione. Il minimo dev'essere impostato alla commissione di base.",
"udapp.gasPrice": "Prezzo del gas",
"udapp.gweiText": "visita {a} per informazioni sul prezzo corrente del gas.",
"udapp.maxTransactionFee": "Tariffa massima transazione",
@ -135,5 +151,10 @@
"udapp.ganacheProviderText1": "Nota: Per eseguire Ganache sul sistema, eseguire:",
"udapp.ganacheProviderText2": "Per ulteriori informazioni, visita: <a>Ganache Documentation</a>",
"udapp.hardhatProviderText1": "Nota: Per eseguire il nodo di rete Hardhat sul sistema, vai alla cartella del progetto hardhat ed esegui il comando:",
"udapp.hardhatProviderText2": "Per ulteriori informazioni, visita: <a>Hardhat Documentation</a>"
"udapp.hardhatProviderText2": "Per ulteriori informazioni, visita: <a>Hardhat Documentation</a>",
"udapp.EIP712-2": "Ti preghiamo di seguire <a>questo collegamento</a> per ottenere ulteriori informazioni.",
"udapp.EIP712-3": "Su Remix, è possibile firmare i dati digitati cliccando con il destro del mouse su Firma Dati Digitati su un file JSON il cui contenuto è compatibile con l'EIP-712.",
"udapp.EIP712-create-template": "Crea un JSON conforme all'EIP-712",
"udapp.EIP712-close": "Chiudi",
"udapp.sign": "Firma"
}

@ -0,0 +1,3 @@
{
"vyper.openaigptMessage": "vyper code: {content}\n error message: {messageText}\n spiega perché questo errore si è verificato e come risolverlo."
}

@ -30,8 +30,8 @@ Each library is an NPM package and has basic documentation about its usage in it
## Contributing
Everyone is very welcome to contribute on Remix Project. Suggestions, issues, queries and feedbacks are our pleasure. Please reach us on [Gitter](https://gitter.im/ethereum/remix) in case of any query.
Everyone is very welcome to contribute on Remix Project. Suggestions, issues, queries and feedback are our pleasure. Please reach us on [Gitter](https://gitter.im/ethereum/remix) in case of any query.
For more information on the contributing in code, see our [contribution guidelines](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md).
For more information on the contributing to the code, see our [contribution guidelines](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md).

@ -1,4 +1,4 @@
// interactive code explaining and highlight security vunerabilities
// interactive code explaining and highlight security vulnerabilities
import * as fs from 'fs';
export class CodeExplainAgent {

@ -183,7 +183,7 @@ export class SecurityAgent {
}
public getRecommendations(currentLine: string, numSuggestions: number = 3): string[] {
// process the code base highlighting security vunerabilities and deliver recommendations
// process the code base highlighting security vulnerabilities and deliver recommendations
const suggestions: string[] = [];
return suggestions;
}

@ -9,7 +9,7 @@ export const PromptBuilder = (inst, answr, modelop) => {
export const buildSolgptPromt = (userPrompt:string, modelOP:RemoteBackendOPModel) => {
if (modelOP === undefined) {
console.log('WARNING: modelOP is undefined. Provide a valide model OP for chat history')
console.log('WARNING: modelOP is undefined. Provide a valid model OP for chat history')
return userPrompt
}
if (ChatHistory.getHistory().length === 0){

@ -6,7 +6,7 @@ import { AnalyzerModule, ModuleAlgorithm, ModuleCategory, ReportObj, ContractHLA
export default class selfdestruct implements AnalyzerModule {
name = 'Selfdestruct: '
description = 'Contracts using destructed contract can be broken'
description = 'Contracts using destroyed contract can be broken'
category: ModuleCategory = category.SECURITY
algorithm: ModuleAlgorithm = algorithm.HEURISTIC
version: SupportedVersion = {

@ -25,7 +25,7 @@
```
`CompilerInput` can be used to form the [compiler input](https://github.com/ethereum/remix-project/blob/master/libs/remix-solidity/src/compiler/types.ts#L1) by passing the [options](https://github.com/ethereum/remix-project/blob/master/libs/remix-solidity/src/compiler/types.ts#L144)
`Compiler` is a class containing various methods to perform compiler related actions. Have a look to `Compiler` interface:
`Compiler` is a class containing various methods to perform compiler related actions. Have a look at `Compiler` interface:
```
class Compiler {
@ -135,7 +135,7 @@ class Compiler {
Please feel free to open an issue or a pull request.
In case you want to add some code, do have a look to our contribution guidelnes [here](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md). Reach us on [Gitter](https://gitter.im/ethereum/remix) in case of any queries.
In case you want to add some code, do have a look to our contribution guidelines [here](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md). Reach us on [Gitter](https://gitter.im/ethereum/remix) in case of any queries.
### License
MIT © 2018-21 Remix Team

@ -269,7 +269,7 @@ For more details, see parameters' type definitions [here](src/types.ts).
Please feel free to open an issue or a pull request.
In case you want to add a code, do have a look to our contribution guidelines [here](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md). Reach us in [Gitter](https://gitter.im/ethereum/remix) in case of any queries.
In case you want to add a code, do have a look at our contribution guidelines [here](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md). Reach us in [Gitter](https://gitter.im/ethereum/remix) in case of any queries.
### License
MIT © 2018-21 Remix Team

@ -61,6 +61,7 @@ export const EnvironmentExplorerUI = (props: environmentExplorerUIProps) => {
const newSections = { ...prevSections }
Object.keys(newSections).forEach((section) => {
newSections[section].providers = Object.values(state.providersFlat).filter(newSections[section].filterFn)
newSections[section].id = section
})
return newSections
})
@ -77,16 +78,17 @@ export const EnvironmentExplorerUI = (props: environmentExplorerUIProps) => {
showPin={true}
title={profile.description}
description="Select the providers and chains to include them in the ENVIRONMENT select box of the Deploy & Run Transactions plugin."
>{
Object.values(sections).length && Object.values(sections).map((section) => (
>
{Object.values(sections).map((section) => (
section.providers.length > 0 && (
<RemixUIGridSection
plugin={this}
title={section.title}
hScrollable={false}
key={section.title}
>
{section.providers.map(provider => {
return <RemixUIGridCell
{section.providers.map(provider => (
<RemixUIGridCell
plugin={this}
title={provider.displayName}
logos={provider.logos}
@ -101,10 +103,10 @@ export const EnvironmentExplorerUI = (props: environmentExplorerUIProps) => {
>
<div>{(section.descriptionFn && section.descriptionFn(provider)) || provider.description}</div>
</RemixUIGridCell>
})}
))}
</RemixUIGridSection>
))
}
)
))}
</RemixUIGridView>
</>
)

@ -18,6 +18,7 @@ export type environmentExplorerUIGridSection = {
providers: Provider[]
filterFn: (provider: Provider) => boolean
descriptionFn?: (provider: Provider) => string | JSX.Element | null
id?: string
}
export type environmentExplorerUIGridSections = {

@ -3,6 +3,7 @@ import React, {useState, useEffect, useContext, useRef, ReactNode, ReactHTMLElem
import './remix-ui-grid-cell.css'
import FiltersContext from "./filtersContext"
import { CustomTooltip } from '@remix-ui/helper'
import { ChildCallbackContext } from './remix-ui-grid-section'
declare global {
interface Window {
@ -33,6 +34,7 @@ interface RemixUIGridCellProps {
export const RemixUIGridCell = (props: RemixUIGridCellProps) => {
const filterCon = useContext(FiltersContext)
const callbackContext = useContext(ChildCallbackContext)
const [anyEnabled, setAnyEnabled] = useState(false)
const [expand, setExpand] = useState(false)
const [pinned, setPinned] = useState<boolean>(props.pinned)
@ -52,6 +54,7 @@ export const RemixUIGridCell = (props: RemixUIGridCellProps) => {
props.searchKeywords?.map(keyword => keyword?.toLowerCase()).some(searchKeyword => searchKeyword?.toLowerCase().includes(filterCon.filter?.toLocaleLowerCase())))
setAnyEnabled(enabled)
if (callbackContext.onChildCallback && (props.id || props.title)) callbackContext.onChildCallback((props.id || props.title), enabled)
}, [filterCon, props.tagList])
useEffect(() => {
@ -126,6 +129,7 @@ export const RemixUIGridCell = (props: RemixUIGridCellProps) => {
tooltipId="pluginManagerInactiveTitleLinkToDoc"
tooltipClasses="text-nowrap"
tooltipText={props.tagList[key]}
key={props.tagList[key]}
>
<span key={props.tagList[key]}
className={'remixui_grid_cell_tag bg-' + filterCon.keyValueMap[props.tagList[key]].color}

@ -1,9 +1,5 @@
import React, {useState, useEffect, useContext, useRef, ReactNode} from 'react' // eslint-disable-line
import { CustomTooltip } from "@remix-ui/helper";
import React, {createContext, ReactNode, useEffect, useState} from 'react' // eslint-disable-line
import './remix-ui-grid-section.css'
import FiltersContext from "./filtersContext"
declare global {
interface Window {
_paq: any
@ -11,6 +7,19 @@ declare global {
}
const _paq = window._paq = window._paq || []
// Define the type for the context value
interface ChildCallbackContextType {
onChildCallback: (id: string, enabled: boolean) => void;
}
// Create the context with a default value of `null`
export const ChildCallbackContext = createContext<ChildCallbackContextType | null>(null);
interface ChildState {
id: string;
enabled: boolean;
}
interface RemixUIGridSectionProps {
plugin: any
title?: string
@ -22,51 +31,44 @@ interface RemixUIGridSectionProps {
expandedCell?: any
}
const hasChildCell = (children: ReactNode): boolean => {
return true
let found = false
const isElement = (child: ReactNode): child is React.ReactElement => {
return React.isValidElement(child)
}
export const RemixUIGridSection = (props: RemixUIGridSectionProps) => {
const traverse = (child: ReactNode) => {
if (found) return
const [hide, setHide] = useState(false);
const [childrenStates, setChildrenStates] = useState<ChildState[]>([]);
if (isElement(child)) {
if (child.props.classList === 'remixui_grid_cell_container') {
found = true
return
}
// Callback to update the state of a child
const onChildCallback = (id: string, enabled: boolean) => {
setChildrenStates((prev) => {
const existingChild = prev.find((child) => child.id === id);
if (child.props.children) {
React.Children.forEach(child.props.children, traverse)
}
}
if (existingChild) {
// Update existing child
return prev.map((child) =>
child.id === id ? { ...child, enabled } : child
);
} else {
// Add new child
return [...prev, { id, enabled }];
}
React.Children.forEach(children, traverse)
return found
}
export const RemixUIGridSection = (props: RemixUIGridSectionProps) => {
const [children, setChildren] = useState(props.children)
const filterCon = useContext(FiltersContext)
});
};
useEffect(() => {
setChildren(props.children)
}, [props.children])
// Check if all children are disabled
const allDisabled = childrenStates.every((child) => !child.enabled);
setHide(allDisabled);
}, [childrenStates]);
return (
<ChildCallbackContext.Provider value={{ onChildCallback }}>
<div
className={`d-flex px-4 py-2 flex-column w-100 remixui_grid_section_container ${props.classList}`}
className={`${hide? 'd-none': `d-flex px-4 py-2 flex-column w-100 remixui_grid_section_container ${props.classList}`}`}
data-id={"remixUIGS" + props.title}
style={{ overflowX: 'auto' }}
>
<div className="w-100 remixui_grid_section">
{ props.title && <h6 className='mt-1 mb-0 align-items-left '>{ props.title }</h6> }
<div className={`w-100 remixui_grid_section`}>
{ props.title && <h6 className={`mt-1 mb-0 align-items-left`}>{ props.title }</h6> }
<div className={(props.hScrollable) ? `d-flex flex-row pb-2 overflow-auto` : `d-flex flex-wrap`}>
{ !hasChildCell(children) && <span> No items found </span>}
{ props.children }
</div>
{ props.expandedCell && <div>
@ -75,6 +77,7 @@ export const RemixUIGridSection = (props: RemixUIGridSectionProps) => {
}
</div>
</div>
</ChildCallbackContext.Provider>
)
}

@ -127,7 +127,7 @@ export const RemixUIGridView = (props: RemixUIGridViewProps) => {
</div>
<div className='d-flex flex-row'>
{ Object.keys(keyValueMap).map((key) => (
<CustomCheckbox label={key} />
<CustomCheckbox key={key} label={key} />
)) }
</div>
</div>

@ -29,7 +29,7 @@ export const CustomToggle = React.forwardRef(
className={className.replace('dropdown-toggle', '')}
>
<div className="d-flex">
<div className="mr-auto text-nowrap text-truncate overflow-hidden">{children}</div>
<div className="mr-auto text-nowrap text-truncate overflow-hidden" data-id={`dropdown-content`}>{children}</div>
{icon && (
<div className="pr-1">
<i className={`${icon} pr-1`}></i>

@ -1,12 +1,9 @@
import { Bee } from '@ethersphere/bee-js'
import { Bee, NULL_STAMP, SWARM_GATEWAY_URL } from '@ethersphere/bee-js'
// eslint-disable-next-line no-unused-vars
import type { UploadResult } from '@ethersphere/bee-js'
// public gateway node address
const publicBeeNode = new Bee('https://api.gateway.ethswarm.org/')
// on the public gateway the postage stamp id is not relevant, so we use all zeroes
const defaultPostageStampId = '0000000000000000000000000000000000000000000000000000000000000000'
const publicBeeNode = new Bee(SWARM_GATEWAY_URL)
export const publishToSwarm = async (contract, api) => {
// gather list of files to publish
@ -52,12 +49,12 @@ export const publishToSwarm = async (contract, api) => {
sources.push({
content: content,
hash: hash,
filename: fileName
filename: fileName,
})
resolve({
content: content,
hash: hash,
filename: fileName
filename: fileName,
})
})
.catch((error) => {
@ -72,7 +69,7 @@ export const publishToSwarm = async (contract, api) => {
const beeNodes = [publicBeeNode]
// add custom private Bee node to the list
const postageStampId = api.config.get('settings/swarm-postage-stamp-id') || defaultPostageStampId
const postageStampId = api.config.get('settings/swarm-postage-stamp-id') || NULL_STAMP
const privateBeeAddress = api.config.get('settings/swarm-private-bee-address')
if (privateBeeAddress) {
const privateBee = new Bee(privateBeeAddress)
@ -116,7 +113,7 @@ export const publishToSwarm = async (contract, api) => {
content: contract.metadata,
hash: contract.metadataHash,
filename: 'metadata.json',
output: result
output: result,
})
} catch (error) {
console.error(error)
@ -135,7 +132,7 @@ const swarmVerifiedPublish = async (beeNodes: Bee[], postageStampId: string, con
return {
message: 'hash mismatch between solidity bytecode and uploaded content.',
url: 'bzz-raw://' + hash,
hash
hash,
}
} else {
api.writeFile('swarm/' + hash, content)
@ -158,7 +155,7 @@ const hashFromResults = (results: UploadResult[]) => {
const uploadToBee = async (bee: Bee, postageStampId: string, content) => {
try {
if (bee.url === publicBeeNode.url) {
postageStampId = defaultPostageStampId
postageStampId = NULL_STAMP
}
return await bee.uploadData(postageStampId, content)
} catch {

@ -4,7 +4,8 @@ import { FormattedMessage, useIntl } from 'react-intl'
import { CopyToClipboard } from '@remix-ui/clipboard'
import { AccountProps } from '../types'
import { PassphrasePrompt } from './passphrase'
import { CustomTooltip } from '@remix-ui/helper'
import { CustomMenu, CustomToggle, CustomTooltip } from '@remix-ui/helper'
import { Dropdown } from 'react-bootstrap'
const _paq = window._paq = window._paq || []
export function AccountUI(props: AccountProps) {
@ -235,22 +236,27 @@ export function AccountUI(props: AccountProps) {
{props.accounts.isRequesting && <i className="fa fa-spinner fa-pulse ml-2" aria-hidden="true"></i>}
</label>
<div className="udapp_account">
<select
id="txorigin"
data-id="runTabSelectAccount"
name="txorigin"
className="form-control udapp_select custom-select pr-4"
value={selectedAccount || ''}
onChange={(e) => {
props.setAccount(e.target.value)
<Dropdown className="udapp_selectExEnvOptions" data-id="runTabSelectAccount">
<Dropdown.Toggle as={CustomToggle} icon={null} id="txorigin" data-id="runTabSelectAccount" className="btn btn-light btn-block w-100 d-inline-block border border-dark form-control">
{selectedAccount ? loadedAccounts[selectedAccount] : ''}
</Dropdown.Toggle>
<Dropdown.Menu as={CustomMenu} className="w-100 custom-dropdown-items" data-id="custom-dropdown-items">
{accounts && accounts.length > 0 ? accounts.map((value, index) => (
<Dropdown.Item
key={index}
eventKey={selectedAccount}
onSelect={(e) => {
props.setAccount(value)
}}
data-id={`txOriginSelectAccountItem-${value}`}
>
{accounts.map((value, index) => (
<option value={value} key={index}>
<span data-id={`${value}`}>
{loadedAccounts[value]}
</option>
))}
</select>
</span>
</Dropdown.Item>
)) : <Dropdown.Item></Dropdown.Item>}
</Dropdown.Menu>
</Dropdown>
</div>
</div>
)

@ -21,7 +21,7 @@ export default async (opts) => {
'.prettierrc.json': (await import('raw-loader!./.prettierrc')).default
}
// If no options is selected, opts.upgradeable will be undefined
// If no options are selected, opts.upgradeable will be undefined
// We do not show test file for upgradeable contract
// @ts-ignore
if (!opts || opts.upgradeable === undefined || !opts.upgradeable) {

@ -29,8 +29,8 @@ This generates a verification key (`./zk/build/verification_key.json`) and artif
This script:
- create a list of identity commitments and add it to a `IncrementalMerkleTree`. The tree is used to generate a merkle proof that a specified identity is actually in the tree (see`tree.createProof(0)`).
- creates a list of identity commitments and add it to a `IncrementalMerkleTree`. The tree is used to generate a merkle proof that a specified identity is actually in the tree (see`tree.createProof(0)`).
- generate a witness and a proof of execution with `messageId`equal to 0.
- generating 2 proofs (two different messages) with the same `messageId` reveal the two points of the polynomial necessary to deduct the `identitySecret` (using `shamirRecovery`).
- generating 2 proofs (two different messages) with the same `messageId` reveal the two points of the polynomial necessary to deduce the `identitySecret` (using `shamirRecovery`).

@ -20,7 +20,7 @@ This generates a verification key (`./zk/build/verification_key.json`) and artif
#### 3) execute the file `run_verification.ts`:
This script:
- create a list of identity commitments and add it to a `IncrementalMerkleTree`. The tree is used to generate a merkle proof that a specified identity is actually in the tree (see `tree.createProof(0)`).
- generate a witness and a proof of execution.
- creates a list of identity commitments and add it to a `IncrementalMerkleTree`. The tree is used to generate a merkle proof that a specified identity is actually in the tree (see `tree.createProof(0)`).
- generates a witness and a proof of execution.
- verify that the proof is valid `(snarkjs.groth16.verify)`
- ultimately verify that the hash generated by the circom compiler is the same as the root hash for the Tree. `(proof1.root.toString() === publicSignals[0]`). This asserts that the identity provided to the circuit is actually part of that semaphore group.

@ -7,7 +7,7 @@
`@remix-project/remixd` is an NPM module that intends to be used with [Remix IDE](https://remix.ethereum.org/) web and desktop applications. It establishes a two-way websocket connection between the local computer and Remix IDE for a particular project directory.
`remixd` can be used to setup a development environment with other popular frameworks like Hardhat, Truffle, Slither etc.
`remixd` can be used to set up a development environment with other popular frameworks like Hardhat, Truffle, Slither etc.
More details are explained in the [documentation](https://remix-ide.readthedocs.io/en/latest/remixd.html).
@ -71,13 +71,13 @@ The current user should have `read/write` access to the folder (at least `read`
It is important to notice that changes made to the current file in `Remix IDE` are automatically saved to the local computer every 5000 ms. There is no `Save` action. But the `Ctrl-Z` (undo) can be used.
Furthermore:
- No copy of the shared folder are kept in the browser storage.
- No copy of the shared folder is kept in the browser storage.
- Clicking on the new folder or new file icon under localhost will create a new file or folder in the shared folder.
- If a folder does not contain any file, the folder will not be displayed in the explorer (that might change).
- Symbolic links are not forwarded to Remix IDE.
## Ports Usage
remixd creates a websocket connections with Remix IDE on different ports. Ports are defined according to specific purpose. Port usage details are as:
remixd creates a websocket connection with Remix IDE on different ports. Ports are defined according to specific purposes. Port usage details are as:
- **65520** : For `remixd` websocket listener, to share a project from local device with Remix IDE. Shared folder will be loaded in the Remix IDE File Explorer workspace named localhost [See more](https://remix-ide.readthedocs.io/en/latest/remixd.html)
- **65522** : For `Hardhat` websocket listener, to enable the Hardhat Compilation using Remix IDE Solidity Compiler plugin, if shared folder is a Hardhat project [See more](https://remix-ide.readthedocs.io/en/latest/hardhat.html)

@ -97,7 +97,7 @@
"@ethereumjs/tx": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@ethersphere/bee-js": "^3.2.0",
"@ethersphere/bee-js": "^8.3.0",
"@floating-ui/react": "^0.26.15",
"@fortawesome/fontawesome-svg-core": "^6.5.1",
"@fortawesome/free-solid-svg-icons": "^6.5.1",

@ -27,7 +27,7 @@ We check all the issues and associated effort and identify critical issues.
e.g:
- issues that'll need to be split.
- issues that miss important information.
- issues that are dependent on each others.
- issues that are dependent on each other.
- issues that require different skills or that the team member is less available during this release.
## Configuring releases:

@ -2931,24 +2931,18 @@
debug "^4.3.3"
ethereum-cryptography "^2.2.1"
"@ethersphere/bee-js@^3.2.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@ethersphere/bee-js/-/bee-js-3.2.0.tgz#521eac63676d13d21585166754d2b6d20ee9e332"
integrity sha512-ZVcbl8dsytx07+SxTmsKSn0X1zojR7vMb0uxQ+fGk05JHFNGBY2Qv/5AP7rI/SqGWDjHWIMB8Ww+ErURdyFXqA==
"@ethersphere/bee-js@^8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@ethersphere/bee-js/-/bee-js-8.3.0.tgz#cea35ae6b5fcc80a91378382d017c080b7fedea1"
integrity sha512-/VLyAXluvftUcRDApvpA+H/oSP17W4rag95/N2IWdw6MPLkh92a/I724jhO+BmRmNomlAVspnl2UkhXSD2Xk5w==
dependencies:
"@types/readable-stream" "^2.3.11"
bufferutil "^4.0.3"
cross-blob "^2.0.1"
axios "^0.28.1"
cafe-utility "^23.10.0"
elliptic "^6.5.4"
isomorphic-ws "^4.0.1"
js-sha3 "^0.8.0"
ky "^0.25.1"
ky-universal "^0.8.2"
readable-stream "^3.6.0"
tar-js "^0.3.0"
utf-8-validate "^5.0.8"
web-streams-polyfill "^3.1.0"
ws "^7.5.0"
semver "^7.3.5"
ws "^8.7.0"
"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0":
version "5.7.0"
@ -7775,14 +7769,6 @@
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/readable-stream@^2.3.11":
version "2.3.13"
resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.13.tgz#46451c1b87cb61010e420ac02a76cfc1b2c2089a"
integrity sha512-4JSCx8EUzaW9Idevt+9lsRAt1lcSccoQfE+AouM1gk8sFxnnytKNIO3wTl9Dy+4m6jRJ1yXhboLHHT/LXBQiEw==
dependencies:
"@types/node" "*"
safe-buffer "*"
"@types/readable-stream@^2.3.13":
version "2.3.15"
resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae"
@ -9764,6 +9750,15 @@ axios@^0.21.1:
dependencies:
follow-redirects "^1.14.0"
axios@^0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.28.1.tgz#2a7bcd34a3837b71ee1a5ca3762214b86b703e70"
integrity sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
@ -10665,11 +10660,6 @@ blakejs@^1.1.0:
resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702"
integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==
blob-polyfill@^5.0.20210201:
version "5.0.20210201"
resolved "https://registry.yarnpkg.com/blob-polyfill/-/blob-polyfill-5.0.20210201.tgz#0024bfa5dcc3440eb5a2f1e5991cb1612a558465"
integrity sha512-SrH6IG6aXL9pCgSysBCiDpGcAJ1j6/c1qCwR3sTEQJhb+MTk6FITNA6eW6WNYQDNZVi4Z9GjxH5v2MMTv59CrQ==
blob-to-it@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-0.0.2.tgz#851b4db0be4acebc86dd1c14c14b77fdc473e9b0"
@ -11226,7 +11216,7 @@ buffer@~5.2.1:
base64-js "^1.0.2"
ieee754 "^1.1.4"
bufferutil@4.0.5, bufferutil@^4.0.3:
bufferutil@4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028"
integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==
@ -11400,6 +11390,11 @@ caching-transform@^3.0.1:
package-hash "^3.0.0"
write-file-atomic "^2.3.0"
cafe-utility@^23.10.0:
version "23.11.0"
resolved "https://registry.yarnpkg.com/cafe-utility/-/cafe-utility-23.11.0.tgz#e48872a680516f3466ec96abe1e5ae4100cf9607"
integrity sha512-WF0ZpCDQ9c4pVwuyuSmPvlD5DZOt6w7HCtAQYjme7opSvF+qtK9ojnzBPNFe5COiM9B5+TeMt/0NBgyVJBQBrg==
call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@ -12958,14 +12953,6 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
cross-blob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/cross-blob/-/cross-blob-2.0.1.tgz#7c187282e0855353705ed9ac5af2ee7f27c910c6"
integrity sha512-ARuKPPo3I6DSqizal4UCyMCiGPQdMpMJS3Owx6Lleuh26vSt2UnfWRwbMLCYqbJUrcol+KzGVSLR91ezSHP80A==
dependencies:
blob-polyfill "^5.0.20210201"
fetch-blob "^2.1.2"
cross-fetch@3.1.5, cross-fetch@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
@ -13412,11 +13399,6 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
data-uri-to-buffer@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636"
integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
dataloader@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0"
@ -15802,11 +15784,6 @@ fecha@^4.2.0:
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
fetch-blob@^2.1.1, fetch-blob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c"
integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==
ffjavascript@0.2.57:
version "0.2.57"
resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.57.tgz#ba1be96015b2688192e49f2f4de2cc5150fd8594"
@ -20454,19 +20431,6 @@ kuler@^2.0.0:
resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
ky-universal@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.8.2.tgz#edc398d54cf495d7d6830aa1ab69559a3cc7f824"
integrity sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==
dependencies:
abort-controller "^3.0.0"
node-fetch "3.0.0-beta.9"
ky@^0.25.1:
version "0.25.1"
resolved "https://registry.yarnpkg.com/ky/-/ky-0.25.1.tgz#0df0bd872a9cc57e31acd5dbc1443547c881bfbc"
integrity sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==
labeled-stream-splicer@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21"
@ -23205,14 +23169,6 @@ node-fetch@2.6.7, node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
node-fetch@3.0.0-beta.9:
version "3.0.0-beta.9"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.0.0-beta.9.tgz#0a7554cfb824380dd6812864389923c783c80d9b"
integrity sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==
dependencies:
data-uri-to-buffer "^3.0.1"
fetch-blob "^2.1.1"
node-fetch@^2.6.12:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
@ -27611,16 +27567,16 @@ safe-array-concat@^1.0.1:
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-buffer@*, safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-identifier@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb"
@ -29496,11 +29452,6 @@ tar-fs@^3.0.4:
pump "^3.0.0"
tar-stream "^3.1.5"
tar-js@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/tar-js/-/tar-js-0.3.0.tgz#6949aabfb0ba18bb1562ae51a439fd0f30183a17"
integrity sha1-aUmqv7C6GLsVYq5RpDn9DzAYOhc=
tar-stream@^2.1.0, tar-stream@^2.1.4, tar-stream@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
@ -30899,13 +30850,6 @@ utf-8-validate@6.0.3:
dependencies:
node-gyp-build "^4.3.0"
utf-8-validate@^5.0.8:
version "5.0.8"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58"
integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==
dependencies:
node-gyp-build "^4.3.0"
utf8-byte-length@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
@ -31289,11 +31233,6 @@ web-namespaces@^2.0.0:
resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692"
integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==
web-streams-polyfill@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz#a6b74026b38e4885869fb5c589e90b95ccfc7965"
integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==
web-streams-polyfill@^3.2.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b"
@ -32043,7 +31982,7 @@ ws@8.5.0:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"
integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
ws@>=8.7.0, ws@^8.12.0, ws@^8.13.0, ws@^8.15.0, ws@^8.17.1, ws@^8.4.2, ws@^8.8.1:
ws@>=8.7.0, ws@^8.12.0, ws@^8.13.0, ws@^8.15.0, ws@^8.17.1, ws@^8.4.2, ws@^8.7.0, ws@^8.8.1:
version "8.18.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
@ -32056,7 +31995,7 @@ ws@^1.1.1:
options ">=0.0.5"
ultron "1.0.x"
ws@^7.3.1, ws@^7.4.6, ws@^7.5.0, ws@^7.5.1:
ws@^7.3.1, ws@^7.4.6, ws@^7.5.1:
version "7.5.10"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==

Loading…
Cancel
Save