From 32d9abf08914f28ac7690375e21ab8fa4c45332a Mon Sep 17 00:00:00 2001 From: filip mertens Date: Wed, 1 May 2024 06:08:14 +0200 Subject: [PATCH] lint ide --- .../src/app/components/hidden-panel.tsx | 6 +- .../src/app/components/main-panel.tsx | 8 +-- apps/remix-ide/src/app/components/panel.ts | 2 +- apps/remix-ide/src/app/components/preload.tsx | 18 ++--- .../src/app/components/side-panel.tsx | 8 +-- .../src/app/components/vertical-icons.tsx | 10 +-- apps/remix-ide/src/app/files/dgitProvider.ts | 10 +-- .../src/app/files/electronProvider.ts | 2 - apps/remix-ide/src/app/files/fileManager.ts | 27 ++++---- apps/remix-ide/src/app/files/fileProvider.ts | 3 +- apps/remix-ide/src/app/files/fileSystem.ts | 1 - .../files/filesystems/fileSystemUtility.ts | 2 - .../src/app/files/filesystems/indexedDB.ts | 1 - .../src/app/files/filesystems/localStorage.ts | 2 +- apps/remix-ide/src/app/panels/terminal.tsx | 6 +- apps/remix-ide/src/app/plugins/code-format.ts | 3 - .../src/app/plugins/code-format/parser.ts | 1 - .../src/app/plugins/compile-details.tsx | 2 +- apps/remix-ide/src/app/plugins/config.ts | 2 +- .../src/app/plugins/contractFlattener.tsx | 8 +-- .../plugins/electron/compilerLoaderPlugin.ts | 4 +- .../src/app/plugins/electron/fsPlugin.ts | 6 +- .../src/app/plugins/file-decorator.ts | 4 +- apps/remix-ide/src/app/plugins/git.tsx | 1 - .../src/app/plugins/notification.tsx | 10 +-- apps/remix-ide/src/app/plugins/openaigpt.tsx | 8 +-- .../src/app/plugins/parser/code-parser.tsx | 5 +- .../services/code-parser-antlr-service.ts | 17 +++-- .../parser/services/code-parser-compiler.ts | 16 ++--- .../services/code-parser-gas-service.ts | 9 +-- .../parser/services/code-parser-imports.ts | 14 ++-- .../app/plugins/parser/types/antlr-types.ts | 10 --- .../app/plugins/permission-handler-plugin.tsx | 20 +++--- apps/remix-ide/src/app/plugins/remixGuide.tsx | 46 ++++++------- .../src/app/plugins/remixd-handle.tsx | 24 +++---- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 46 ++++++------- .../src/app/plugins/solidity-script.tsx | 18 ++--- .../src/app/plugins/solidity-umlgen.tsx | 28 ++++---- .../app/plugins/vyper-compilation-details.tsx | 10 +-- .../src/app/providers/abstract-provider.tsx | 20 +++--- .../app/providers/custom-vm-fork-provider.tsx | 8 +-- .../app/providers/external-http-provider.tsx | 6 +- .../src/app/providers/foundry-provider.tsx | 4 +- .../src/app/providers/ganache-provider.tsx | 4 +- .../app/providers/goerli-vm-fork-provider.tsx | 2 +- .../src/app/providers/hardhat-provider.tsx | 4 +- .../injected-arbitrum-one-provider.tsx | 2 +- .../providers/injected-custom-provider.tsx | 12 ++-- .../injected-ephemery-testnet-provider.tsx | 6 +- .../providers/injected-optimism-provider.tsx | 2 +- .../providers/injected-provider-default.tsx | 4 +- .../injected-provider-trustwallet.tsx | 2 +- .../src/app/providers/injected-provider.tsx | 16 ++--- .../injected-skale-chaos-testnet-provider.tsx | 6 +- .../providers/mainnet-vm-fork-provider.tsx | 2 +- .../providers/sepolia-vm-fork-provider.tsx | 2 +- .../src/app/providers/vm-provider.tsx | 8 +-- .../remix-ide/src/app/tabs/compile-and-run.ts | 6 +- apps/remix-ide/src/app/tabs/search.tsx | 4 +- apps/remix-ide/src/app/tabs/settings-tab.tsx | 8 +-- apps/remix-ide/src/blockchain/blockchain.tsx | 68 +++++++++---------- apps/remix-ide/src/blockchain/helper.ts | 2 +- apps/remix-ide/src/blockchain/providers/vm.ts | 7 +- .../src/blockchain/providers/worker-vm.ts | 14 ++-- apps/remix-ide/src/index.tsx | 16 ++--- 65 files changed, 304 insertions(+), 349 deletions(-) diff --git a/apps/remix-ide/src/app/components/hidden-panel.tsx b/apps/remix-ide/src/app/components/hidden-panel.tsx index 88b095b625..27993313c0 100644 --- a/apps/remix-ide/src/app/components/hidden-panel.tsx +++ b/apps/remix-ide/src/app/components/hidden-panel.tsx @@ -1,9 +1,9 @@ // eslint-disable-next-line no-use-before-define import React from 'react' -import {AbstractPanel} from './panel' +import { AbstractPanel } from './panel' import * as packageJson from '../../../../../package.json' -import {RemixPluginPanel} from '@remix-ui/panel' -import {PluginViewWrapper} from '@remix-ui/helper' +import { RemixPluginPanel } from '@remix-ui/panel' +import { PluginViewWrapper } from '@remix-ui/helper' const profile = { name: 'hiddenPanel', diff --git a/apps/remix-ide/src/app/components/main-panel.tsx b/apps/remix-ide/src/app/components/main-panel.tsx index 15311a6173..e48399e839 100644 --- a/apps/remix-ide/src/app/components/main-panel.tsx +++ b/apps/remix-ide/src/app/components/main-panel.tsx @@ -1,8 +1,8 @@ import React from 'react' // eslint-disable-line -import {AbstractPanel} from './panel' -import {RemixPluginPanel} from '@remix-ui/panel' +import { AbstractPanel } from './panel' +import { RemixPluginPanel } from '@remix-ui/panel' import packageJson from '../../../../../package.json' -import {PluginViewWrapper} from '@remix-ui/helper' +import { PluginViewWrapper } from '@remix-ui/helper' const profile = { name: 'mainPanel', @@ -60,7 +60,7 @@ export class MainPanel extends AbstractPanel { render() { return ( -
+
) diff --git a/apps/remix-ide/src/app/components/panel.ts b/apps/remix-ide/src/app/components/panel.ts index 4dade1fbca..a90b8c3ee3 100644 --- a/apps/remix-ide/src/app/components/panel.ts +++ b/apps/remix-ide/src/app/components/panel.ts @@ -49,7 +49,7 @@ export class AbstractPanel extends HostPlugin { * @param {String} name The name of the plugin to display the content */ showContent (name) { - if (!this.plugins[name]) throw new Error(`Plugin ${name} is not yet activated`) + if (!this.plugins[name]) throw new Error(`Plugin ${name} is not yet activated`) Object.values(this.plugins).forEach(plugin => { plugin.active = false }) diff --git a/apps/remix-ide/src/app/components/preload.tsx b/apps/remix-ide/src/app/components/preload.tsx index fade37390a..a34abe4e83 100644 --- a/apps/remix-ide/src/app/components/preload.tsx +++ b/apps/remix-ide/src/app/components/preload.tsx @@ -1,12 +1,12 @@ -import {RemixApp} from '@remix-ui/app' +import { RemixApp } from '@remix-ui/app' import axios from 'axios' -import React, {useEffect, useRef, useState} from 'react' +import React, { useEffect, useRef, useState } from 'react' import { createRoot } from 'react-dom/client' import * as packageJson from '../../../../../package.json' -import {fileSystem, fileSystems} from '../files/fileSystem' -import {indexedDBFileSystem} from '../files/filesystems/indexedDB' -import {localStorageFS} from '../files/filesystems/localStorage' -import {fileSystemUtility, migrationTestData} from '../files/filesystems/fileSystemUtility' +import { fileSystem, fileSystems } from '../files/fileSystem' +import { indexedDBFileSystem } from '../files/filesystems/indexedDB' +import { localStorageFS } from '../files/filesystems/localStorage' +import { fileSystemUtility, migrationTestData } from '../files/filesystems/fileSystemUtility' import './styles/preload.css' import isElectron from 'is-electron' const _paq = (window._paq = window._paq || []) @@ -83,7 +83,7 @@ export const Preload = (props: any) => { } useEffect (() => { - if(isElectron()){ + if (isElectron()){ loadAppComponent() return } @@ -177,8 +177,8 @@ export const Preload = (props: any) => { ) : null} {supported && !error && !showDownloader ? (
-
- +
+
{ tip &&
DID YOU KNOW
diff --git a/apps/remix-ide/src/app/components/side-panel.tsx b/apps/remix-ide/src/app/components/side-panel.tsx index 6ea715f420..8b30bf200b 100644 --- a/apps/remix-ide/src/app/components/side-panel.tsx +++ b/apps/remix-ide/src/app/components/side-panel.tsx @@ -1,10 +1,10 @@ // eslint-disable-next-line no-use-before-define import React from 'react' -import {AbstractPanel} from './panel' -import {RemixPluginPanel} from '@remix-ui/panel' +import { AbstractPanel } from './panel' +import { RemixPluginPanel } from '@remix-ui/panel' import packageJson from '../../../../../package.json' -import {RemixUIPanelHeader} from '@remix-ui/panel' -import {PluginViewWrapper} from '@remix-ui/helper' +import { RemixUIPanelHeader } from '@remix-ui/panel' +import { PluginViewWrapper } from '@remix-ui/helper' // const csjs = require('csjs-inject') const sidePanel = { diff --git a/apps/remix-ide/src/app/components/vertical-icons.tsx b/apps/remix-ide/src/app/components/vertical-icons.tsx index 2f69d5bee3..0d78b22fb7 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.tsx +++ b/apps/remix-ide/src/app/components/vertical-icons.tsx @@ -1,11 +1,11 @@ // eslint-disable-next-line no-use-before-define import React from 'react' import packageJson from '../../../../../package.json' -import {Plugin} from '@remixproject/engine' -import {EventEmitter} from 'events' -import {IconRecord, RemixUiVerticalIconsPanel} from '@remix-ui/vertical-icons-panel' -import {Profile} from '@remixproject/plugin-utils' -import {PluginViewWrapper} from '@remix-ui/helper' +import { Plugin } from '@remixproject/engine' +import { EventEmitter } from 'events' +import { IconRecord, RemixUiVerticalIconsPanel } from '@remix-ui/vertical-icons-panel' +import { Profile } from '@remixproject/plugin-utils' +import { PluginViewWrapper } from '@remix-ui/helper' const profile = { name: 'menuicons', diff --git a/apps/remix-ide/src/app/files/dgitProvider.ts b/apps/remix-ide/src/app/files/dgitProvider.ts index 26631da404..5b7314f781 100644 --- a/apps/remix-ide/src/app/files/dgitProvider.ts +++ b/apps/remix-ide/src/app/files/dgitProvider.ts @@ -27,7 +27,6 @@ declare global { interface Window { remixFileSystemCallback: IndexedDBStorage; remixFileSystem: any; } } - const profile: LibraryProfile = { name: 'dGitProvider', displayName: 'Decentralized git', @@ -162,7 +161,6 @@ class DGitProvider extends Plugin { return status } - const status = await git.statusMatrix({ ...await this.addIsomorphicGitConfigFS(), ...cmd @@ -265,7 +263,6 @@ class DGitProvider extends Plugin { return status } - const status = await git.log({ ...await this.addIsomorphicGitConfigFS(), ...cmd, @@ -986,7 +983,7 @@ class DGitProvider extends Plugin { // OCTOKIT FEATURES - async remotebranches(input: { owner: string, repo: string, token: string, page: number, per_page: number }) { + async remotebranches(input: { owner: string, repo: string, token: string, page: number, per_page: number }) { console.log(input) const octokit = new Octokit({ @@ -1003,8 +1000,6 @@ class DGitProvider extends Plugin { return data.data } - - async getGitHubUser(input: { token: string }): Promise<{ user: GitHubUser, ratelimit: RateLimit @@ -1023,7 +1018,6 @@ class DGitProvider extends Plugin { const localResetTime = ratelimit.data.rate.reset * 1000 const localResetTimeString = new Date(localResetTime).toLocaleString() - console.log('rate limit', localResetTimeString) const user = await octokit.request('GET /user') @@ -1118,13 +1112,11 @@ class DGitProvider extends Plugin { 'Accept': 'application/vnd.github.v3+json', // GitHub API v3 media type }; - const url = `${baseURL}?visibility=private,public&page=${page}&per_page=${perPage}&sort=${sort}&direction=${direction}`; const response = await axios.get(url, { headers }); repositories.push(...response.data); - return repositories } diff --git a/apps/remix-ide/src/app/files/electronProvider.ts b/apps/remix-ide/src/app/files/electronProvider.ts index 99edb76962..992b9d0c21 100644 --- a/apps/remix-ide/src/app/files/electronProvider.ts +++ b/apps/remix-ide/src/app/files/electronProvider.ts @@ -1,6 +1,5 @@ import FileProvider from "./fileProvider" - declare global { interface Window { remixFileSystem: any @@ -50,7 +49,6 @@ export class ElectronProvider extends FileProvider { } } - // isDirectory is already included // this is a more efficient version of the default implementation async resolveDirectory(path, cb) { diff --git a/apps/remix-ide/src/app/files/fileManager.ts b/apps/remix-ide/src/app/files/fileManager.ts index 5d974e6d5d..c9f1c1d93d 100644 --- a/apps/remix-ide/src/app/files/fileManager.ts +++ b/apps/remix-ide/src/app/files/fileManager.ts @@ -4,7 +4,7 @@ import { saveAs } from 'file-saver' import JSZip from 'jszip' import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' -import {Registry} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' import { fileChangedToastMsg, recursivePasteToastMsg, storageFullMessage } from '@remix-ui/helper' import helper from '../../lib/helper.js' import { RemixAppManager } from '../../remixAppManager' @@ -252,7 +252,7 @@ class FileManager extends Plugin { throw new Error(e) } } - + /** * Set the content of a specific file, does nnot rewrite file if it exists but creates a new unique name * @param {string} path path of the file @@ -266,11 +266,11 @@ class FileManager extends Plugin { if (await this.exists(path)) { const newPath = await helper.createNonClashingNameAsync(path, this) const content = await this.setFileContent(newPath, data) - return {newContent: content, newPath} + return { newContent: content, newPath } } else { const ret = await this.setFileContent(path, data) this.emit('fileAdded', path) - return {newContent: ret, newpath: path} + return { newContent: ret, newpath: path } } } catch (e) { throw new Error(e) @@ -524,7 +524,7 @@ class FileManager extends Plugin { this._deps.electronExplorer.event.on('fileRenamed', (oldName, newName, isFolder) => { this.fileRenamedEvent(oldName, newName, isFolder) }) this._deps.electronExplorer.event.on('fileRemoved', (path) => { this.fileRemovedEvent(path) }) this._deps.electronExplorer.event.on('fileAdded', (path) => { this.fileAddedEvent(path) }) - + this.getCurrentFile = this.file this.getFile = this.readFile this.getFolder = this.readdir @@ -709,7 +709,7 @@ class FileManager extends Plugin { // TODO: Only keep `this.emit` (issue#2210) this.emit('noFileSelected') - if(!change.readonly){ + if (!change.readonly){ let file = this.normalize(change.path) const resolved = this.getPathFromUrl(file) file = resolved.file @@ -722,7 +722,7 @@ class FileManager extends Plugin { } async closeDiff(change: commitChange) { - if(!change.readonly){ + if (!change.readonly){ const file = this.normalize(change.path) delete this.openedFiles[file] if (!Object.keys(this.openedFiles).length) { @@ -734,7 +734,6 @@ class FileManager extends Plugin { this.emit('closeDiff', change) } - async openFile(file?: string) { if (!file) { this.emit('noFileSelected') @@ -745,13 +744,12 @@ class FileManager extends Plugin { await this.saveCurrentFile() // we always open the file in the editor, even if it's the same as the current one if the editor is in diff mode if (this.currentFile() === file && !this.editor.isDiff) return - + const provider = resolved.provider this._deps.config.set('currentFile', file) this.openedFiles[file] = file - let content = '' try { content = await provider.get(file) @@ -761,7 +759,7 @@ class FileManager extends Plugin { } try { // This make sure dependencies are loaded in the editor context. - // This ensure monaco is aware of deps artifacts, so it can provide basic features like "go to" symbols. + // This ensure monaco is aware of deps artifacts, so it can provide basic features like "go to" symbols. await this.editor.handleTypeScriptDependenciesOf(file, content, path => this.readFile(path), path => this.exists(path)) } catch (e) { console.log('unable to handle TypeScript dependencies of', file) @@ -963,7 +961,6 @@ class FileManager extends Plugin { return exists } - async moveFileIsAllowed (src: string, dest: string) { try { src = this.normalize(src) @@ -1006,7 +1003,7 @@ class FileManager extends Plugin { if (provider.isSubDirectory(src, dest)) { this.call('notification', 'toast', recursivePasteToastMsg()) return false - } + } return true } catch (e) { console.log(e) @@ -1069,7 +1066,7 @@ class FileManager extends Plugin { if (provider.isSubDirectory(src, dest)) { this.call('notification', 'toast', recursivePasteToastMsg()) return false - } + } await this.inDepthCopy(src, dest, dirName) await this.remove(src) @@ -1083,7 +1080,7 @@ class FileManager extends Plugin { if (provider && provider.copyFolderToJson) { return await provider.copyFolderToJson(folder) } - throw new Error('copyFolderToJson not available') + throw new Error('copyFolderToJson not available') } } diff --git a/apps/remix-ide/src/app/files/fileProvider.ts b/apps/remix-ide/src/app/files/fileProvider.ts index 715b5d3bff..4cc13a9c10 100644 --- a/apps/remix-ide/src/app/files/fileProvider.ts +++ b/apps/remix-ide/src/app/files/fileProvider.ts @@ -5,7 +5,6 @@ import EventManager from 'events' import { Storage } from '@remix-project/remix-lib' import pathModule from 'path' - export default class FileProvider { event: any type: any @@ -189,7 +188,7 @@ export default class FileProvider { return await this.removeFile(path) } else { await window.remixFileSystem.unlink(path) - this.event.emit('fileRemoved', this._normalizePath(path)) + this.event.emit('fileRemoved', this._normalizePath(path)) } } catch (e) { console.log(e) diff --git a/apps/remix-ide/src/app/files/fileSystem.ts b/apps/remix-ide/src/app/files/fileSystem.ts index 80840f617f..8401563687 100644 --- a/apps/remix-ide/src/app/files/fileSystem.ts +++ b/apps/remix-ide/src/app/files/fileSystem.ts @@ -67,6 +67,5 @@ export class fileSystems { return null } - } diff --git a/apps/remix-ide/src/app/files/filesystems/fileSystemUtility.ts b/apps/remix-ide/src/app/files/filesystems/fileSystemUtility.ts index 9fc716b5c1..43c6ee8f82 100644 --- a/apps/remix-ide/src/app/files/filesystems/fileSystemUtility.ts +++ b/apps/remix-ide/src/app/files/filesystems/fileSystemUtility.ts @@ -72,7 +72,6 @@ export class fileSystemUtility { } } - /** * copy the folder recursively * @param {string} path is the folder to be copied over @@ -150,7 +149,6 @@ export class fileSystemUtility { } } - /* eslint-disable no-template-curly-in-string */ export const migrationTestData = { '.workspaces': { diff --git a/apps/remix-ide/src/app/files/filesystems/indexedDB.ts b/apps/remix-ide/src/app/files/filesystems/indexedDB.ts index aae0d6a5eb..f1a9936193 100644 --- a/apps/remix-ide/src/app/files/filesystems/indexedDB.ts +++ b/apps/remix-ide/src/app/files/filesystems/indexedDB.ts @@ -47,7 +47,6 @@ export class IndexedDBStorage extends LightningFS { } } - export class indexedDBFileSystem extends fileSystem { constructor() { super() diff --git a/apps/remix-ide/src/app/files/filesystems/localStorage.ts b/apps/remix-ide/src/app/files/filesystems/localStorage.ts index d99c3ae296..0a5f0c6d3f 100644 --- a/apps/remix-ide/src/app/files/filesystems/localStorage.ts +++ b/apps/remix-ide/src/app/files/filesystems/localStorage.ts @@ -48,7 +48,7 @@ export class localStorageFS extends fileSystem { localStorage.setItem(test, test); localStorage.removeItem(test); resolve(true) - } catch(e) { + } catch (e) { reject(e) } }) diff --git a/apps/remix-ide/src/app/panels/terminal.tsx b/apps/remix-ide/src/app/panels/terminal.tsx index 3b93cd5c22..2cb89e3fcb 100644 --- a/apps/remix-ide/src/app/panels/terminal.tsx +++ b/apps/remix-ide/src/app/panels/terminal.tsx @@ -3,7 +3,7 @@ import React from 'react' // eslint-disable-line import { RemixUiTerminal, RemixUITerminalWrapper } from '@remix-ui/terminal' // eslint-disable-line import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' -import {Registry} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' import { PluginViewWrapper } from '@remix-ui/helper' import vm from 'vm' import EventManager from '../../lib/events' @@ -11,7 +11,6 @@ import EventManager from '../../lib/events' import { CompilerImports } from '@remix-project/core-plugin' // eslint-disable-line import { RemixUiXterminals } from '@remix-ui/xterm' - const KONSOLES = [] function register(api) { KONSOLES.push(api) } @@ -113,7 +112,6 @@ class Terminal extends Plugin { } - onActivation() { this.renderComponent() } @@ -142,7 +140,7 @@ class Terminal extends Plugin { } updateComponent(state) { - return( + return ( { - + this.on('solidity', 'loadingCompiler', async (url) => { await this.call('compilerloader', 'downloadCompiler', url) }) diff --git a/apps/remix-ide/src/app/plugins/electron/fsPlugin.ts b/apps/remix-ide/src/app/plugins/electron/fsPlugin.ts index 679b6199ea..bd2e3b971d 100644 --- a/apps/remix-ide/src/app/plugins/electron/fsPlugin.ts +++ b/apps/remix-ide/src/app/plugins/electron/fsPlugin.ts @@ -78,7 +78,7 @@ export class fsPlugin extends ElectronPlugin { try { path = fixPath(path) const stat = await this.call('fs', 'stat', path) - if(!stat) return undefined + if (!stat) return undefined stat.isDirectory = () => stat.isDirectoryValue stat.isFile = () => !stat.isDirectoryValue return stat @@ -90,7 +90,7 @@ export class fsPlugin extends ElectronPlugin { try { path = fixPath(path) const stat = await this.call('fs', 'lstat', path) - if(!stat) return undefined + if (!stat) return undefined stat.isDirectory = () => stat.isDirectoryValue stat.isFile = () => !stat.isDirectoryValue return stat @@ -116,7 +116,7 @@ export class fsPlugin extends ElectronPlugin { await this.call('fileManager', 'refresh') }) this.on('fs', 'error', async (error: string) => { - if(error === 'ENOSPC'){ + if (error === 'ENOSPC'){ this.call('notification', 'alert', { id: 'fsError', message: 'Cannot watch file changes. There are too many files in your project.' diff --git a/apps/remix-ide/src/app/plugins/file-decorator.ts b/apps/remix-ide/src/app/plugins/file-decorator.ts index 071b62f4df..6136140383 100644 --- a/apps/remix-ide/src/app/plugins/file-decorator.ts +++ b/apps/remix-ide/src/app/plugins/file-decorator.ts @@ -55,8 +55,8 @@ export class FileDecorator extends Plugin { if (!from) return const filteredState = this._fileStates.filter((state) => { - if(state.owner != from) return true - if(path && state.path != path) return true + if (state.owner != from) return true + if (path && state.path != path) return true }) const newState = [...filteredState].sort(sortByPath) diff --git a/apps/remix-ide/src/app/plugins/git.tsx b/apps/remix-ide/src/app/plugins/git.tsx index 9c7644abaa..8e0d93e856 100644 --- a/apps/remix-ide/src/app/plugins/git.tsx +++ b/apps/remix-ide/src/app/plugins/git.tsx @@ -13,7 +13,6 @@ const profile = { icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIxLjAwNyA4LjIyMTY4QzIxLjAxMDUgNy41Mjc5MiAyMC44MjA3IDYuODQ2ODkgMjAuNDU5MSA2LjI1NDg1QzIwLjA5NzQgNS42NjI4MSAxOS41NzggNS4xODMxNSAxOC45NTkyIDQuODY5NTdDMTguMzQwMyA0LjU1NiAxNy42NDYzIDQuNDIwOTEgMTYuOTU1MSA0LjQ3OTQxQzE2LjI2MzcgNC41Mzc5MyAxNS42MDI1IDQuNzg3NzMgMTUuMDQ1IDUuMjAwODVDMTQuNDg3NyA1LjYxMzk3IDE0LjA1NjMgNi4xNzQwOSAxMy43OTkzIDYuODE4NUMxMy41NDI0IDcuNDYyOSAxMy40Njk3IDguMTY2MTMgMTMuNTg5OCA4Ljg0OTQ0QzEzLjcwOTkgOS41MzI3NCAxNC4wMTc3IDEwLjE2OTIgMTQuNDc4OSAxMC42ODc0QzE0Ljk0MDIgMTEuMjA1NiAxNS41MzY3IDExLjU4NTIgMTYuMjAxNSAxMS43ODM2QzE1Ljk1NiAxMi4yODI0IDE1LjU3NjMgMTIuNzAzIDE1LjEwNDkgMTIuOTk3OUMxNC42MzM2IDEzLjI5MjkgMTQuMDg5NCAxMy40NTA1IDEzLjUzMzQgMTMuNDUzMkgxMC41NDRDOS40MzcyNiAxMy40NTcxIDguMzcxNjMgMTMuODcyNyA3LjU1NDUxIDE0LjYxOTFWNy4zOTgwOUM4LjQ2MTg0IDcuMjEyODggOS4yNjgwOCA2LjY5NzM3IDkuODE2OTIgNS45NTE1MUMxMC4zNjU4IDUuMjA1NjUgMTAuNjE4MSA0LjI4MjU2IDEwLjUyNSAzLjM2MTIxQzEwLjQzMTkgMi40Mzk4NyAxMC4wMDAxIDEuNTg1OSA5LjMxMzE2IDAuOTY0ODczQzguNjI2MjQgMC4zNDM4NDUgNy43MzMxOSAwIDYuODA3MTYgMEM1Ljg4MTEyIDAgNC45ODgwNyAwLjM0Mzg0NSA0LjMwMTE0IDAuOTY0ODczQzMuNjE0MjIgMS41ODU5IDMuMTgyMzYgMi40Mzk4NyAzLjA4OTI4IDMuMzYxMjFDMi45OTYyIDQuMjgyNTYgMy4yNDg1NSA1LjIwNTY1IDMuNzk3MzkgNS45NTE1MUM0LjM0NjIzIDYuNjk3MzcgNS4xNTI0NyA3LjIxMjg4IDYuMDU5OCA3LjM5ODA5VjE2LjUxNTlDNS4xNTQxOCAxNi42ODkxIDQuMzQzMjMgMTcuMTg3NyAzLjc3OTkzIDE3LjkxNzZDMy4yMTY2MyAxOC42NDc2IDIuOTM5OTIgMTkuNTU4NSAzLjAwMTk3IDIwLjQ3ODVDMy4wNjQwMyAyMS4zOTg0IDMuNDYwNTcgMjIuMjYzOSA0LjExNjggMjIuOTExNUM0Ljc3MzAzIDIzLjU1OTIgNS42NDM2IDIzLjk0NDQgNi41NjQyNyAyMy45OTQ0QzcuNDg0OTYgMjQuMDQ0NSA4LjM5MjExIDIzLjc1NTggOS4xMTQ2NCAyMy4xODNDOS44MzcxOCAyMi42MTAyIDEwLjMyNTEgMjEuNzkyOCAxMC40ODY1IDIwLjg4NUMxMC42NDc4IDE5Ljk3NzEgMTAuNDcxNCAxOS4wNDE3IDkuOTkwNDggMTguMjU1QzkuNTA5NTcgMTcuNDY4MyA4Ljc1NzQxIDE2Ljg4NDggNy44NzU4OCAxNi42MTQ1QzguMTIxNzYgMTYuMTE2MiA4LjUwMTY3IDE1LjY5NjMgOC45NzI5NiAxNS40MDE5QzkuNDQ0MjYgMTUuMTA3NCA5Ljk4ODI3IDE0Ljk1MDMgMTAuNTQ0IDE0Ljk0NzlIMTMuNTMzNEMxNC40NjYxIDE0Ljk0MzYgMTUuMzc0MiAxNC42NDg2IDE2LjEzMTMgMTQuMTAzOUMxNi44ODg0IDEzLjU1OTIgMTcuNDU2OCAxMi43OTIgMTcuNzU3NSAxMS45MDkxQzE4LjY1MzQgMTEuNzkxNCAxOS40NzYzIDExLjM1MjggMjAuMDczOCAxMC42NzQ4QzIwLjY3MTMgOS45OTY4IDIxLjAwMjggOS4xMjUzMyAyMS4wMDcgOC4yMjE2OFpNNC41NjUwOCAzLjczNzUyQzQuNTY1MDggMy4yOTQwOCA0LjY5NjU3IDIuODYwNiA0Ljk0MjkzIDIuNDkxOUM1LjE4OTMgMi4xMjMxOSA1LjUzOTQ3IDEuODM1ODEgNS45NDkxNSAxLjY2NjExQzYuMzU4ODQgMS40OTY0MiA2LjgwOTY1IDEuNDUyMDIgNy4yNDQ1NiAxLjUzODU0QzcuNjc5NDggMS42MjUwNCA4LjA3ODk4IDEuODM4NTcgOC4zOTI1NCAyLjE1MjE0QzguNzA2MTEgMi40NjU3IDguOTE5NjQgMi44NjUyIDkuMDA2MTUgMy4zMDAxMkM5LjA5MjY2IDMuNzM1MDQgOS4wNDgyNyA0LjE4NTg1IDguODc4NTcgNC41OTU1M0M4LjcwODg3IDUuMDA1MjEgOC40MjE0OSA1LjM1NTM5IDguMDUyNzggNS42MDE3NUM3LjY4NDA4IDUuODQ4MTEgNy4yNTA2IDUuOTc5NiA2LjgwNzE2IDUuOTc5NkM2LjIxMjUyIDUuOTc5NiA1LjY0MjI0IDUuNzQzMzkgNS4yMjE3NyA1LjMyMjkxQzQuODAxMjkgNC45MDI0NSA0LjU2NTA4IDQuMzMyMTYgNC41NjUwOCAzLjczNzUyWk05LjA0OTIzIDIwLjE3OTRDOS4wNDkyMyAyMC42MjI5IDguOTE3NzQgMjEuMDU2MyA4LjY3MTM4IDIxLjQyNUM4LjQyNTAxIDIxLjc5MzcgOC4wNzQ4NSAyMi4wODExIDcuNjY1MTYgMjIuMjUwOEM3LjI1NTQ3IDIyLjQyMDUgNi44MDQ2NiAyMi40NjQ5IDYuMzY5NzUgMjIuMzc4NEM1LjkzNDgzIDIyLjI5MiA1LjUzNTMzIDIyLjA3ODQgNS4yMjE3NyAyMS43NjQ4QzQuOTA4MjEgMjEuNDUxMiA0LjY5NDY3IDIxLjA1MTcgNC42MDgxNiAyMC42MTY5QzQuNTIxNjUgMjAuMTgxOSA0LjU2NjA1IDE5LjczMTEgNC43MzU3NSAxOS4zMjE0QzQuOTA1NDUgMTguOTExNyA1LjE5MjgyIDE4LjU2MTUgNS41NjE1MyAxOC4zMTUyQzUuOTMwMjMgMTguMDY4OSA2LjM2MzcxIDE3LjkzNzMgNi44MDcxNiAxNy45MzczQzcuNDAxNzkgMTcuOTM3MyA3Ljk3MjA3IDE4LjE3MzYgOC4zOTI1NCAxOC41OTRDOC44MTMwMiAxOS4wMTQ1IDkuMDQ5MjMgMTkuNTg0OCA5LjA0OTIzIDIwLjE3OTRaTTE3LjI3MDIgMTAuNDYzOEMxNi44MjY3IDEwLjQ2MzggMTYuMzkzMyAxMC4zMzIyIDE2LjAyNDYgMTAuMDg1OUMxNS42NTU5IDkuODM5NTQgMTUuMzY4NSA5LjQ4OTM3IDE1LjE5ODggOS4wNzk2OUMxNS4wMjkxIDguNjcgMTQuOTg0NyA4LjIxOTIgMTUuMDcxMiA3Ljc4NDI3QzE1LjE1NzYgNy4zNDkzNSAxNS4zNzEyIDYuOTQ5ODUgMTUuNjg0OCA2LjYzNjI5QzE1Ljk5ODQgNi4zMjI3MyAxNi4zOTc5IDYuMTA5MTkgMTYuODMyNyA2LjAyMjY4QzE3LjI2NzcgNS45MzYxNyAxNy43MTg1IDUuOTgwNTggMTguMTI4MSA2LjE1MDI3QzE4LjUzNzkgNi4zMTk5NyAxOC44ODgxIDYuNjA3MzQgMTkuMTM0NCA2Ljk3NjA1QzE5LjM4MDcgNy4zNDQ3NiAxOS41MTIzIDcuNzc4MjMgMTkuNTEyMyA4LjIyMTY4QzE5LjUxMjMgOC44MTYzMiAxOS4yNzYgOS4zODY2IDE4Ljg1NTYgOS44MDcwNkMxOC40MzUxIDEwLjIyNzUgMTcuODY0OCAxMC40NjM4IDE3LjI3MDIgMTAuNDYzOFoiIGZpbGw9IiM0MjQyNDIiLz4KPC9zdmc+Cg==" } - export class GitPlugin extends ViewPlugin { constructor() { diff --git a/apps/remix-ide/src/app/plugins/notification.tsx b/apps/remix-ide/src/app/plugins/notification.tsx index ca2b27437a..2d0455a31d 100644 --- a/apps/remix-ide/src/app/plugins/notification.tsx +++ b/apps/remix-ide/src/app/plugins/notification.tsx @@ -1,8 +1,8 @@ -import {Plugin} from '@remixproject/engine' -import {LibraryProfile, MethodApi, StatusEvents} from '@remixproject/plugin-utils' -import {AppModal} from '@remix-ui/app' -import {AlertModal} from '@remix-ui/app' -import {dispatchModalInterface} from '@remix-ui/app' +import { Plugin } from '@remixproject/engine' +import { LibraryProfile, MethodApi, StatusEvents } from '@remixproject/plugin-utils' +import { AppModal } from '@remix-ui/app' +import { AlertModal } from '@remix-ui/app' +import { dispatchModalInterface } from '@remix-ui/app' interface INotificationApi { events: StatusEvents diff --git a/apps/remix-ide/src/app/plugins/openaigpt.tsx b/apps/remix-ide/src/app/plugins/openaigpt.tsx index cc120a0d1e..e436d7c9d7 100644 --- a/apps/remix-ide/src/app/plugins/openaigpt.tsx +++ b/apps/remix-ide/src/app/plugins/openaigpt.tsx @@ -19,7 +19,7 @@ export class OpenAIGpt extends Plugin { async message(prompt): Promise { this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Waiting for GPT answer...'}) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Waiting for GPT answer...' }) let result try { result = await ( @@ -36,10 +36,10 @@ export class OpenAIGpt extends Plugin { this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) return } - + if (result && result.choices && result.choices.length) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.choices[0].message.content }) - } else if (result.error) { + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.choices[0].message.content }) + } else if (result.error) { this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.error }) } else { this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'No response...' }) diff --git a/apps/remix-ide/src/app/plugins/parser/code-parser.tsx b/apps/remix-ide/src/app/plugins/parser/code-parser.tsx index 65efcf35b5..b4c7b181f0 100644 --- a/apps/remix-ide/src/app/plugins/parser/code-parser.tsx +++ b/apps/remix-ide/src/app/plugins/parser/code-parser.tsx @@ -524,8 +524,8 @@ export class CodeParser extends Plugin { nodeDefinition.parser = parserNodeDefinition } - /* if the AST node name & type is the same as the parser node name & type, - / then we can assume that the AST node is the definition, + /* if the AST node name & type is the same as the parser node name & type, + / then we can assume that the AST node is the definition, / because the parser will always return most nodes it can find even with an error in the code */ @@ -544,7 +544,6 @@ export class CodeParser extends Plugin { return nodeDefinition.ast } - return nodeDefinition.parser } diff --git a/apps/remix-ide/src/app/plugins/parser/services/code-parser-antlr-service.ts b/apps/remix-ide/src/app/plugins/parser/services/code-parser-antlr-service.ts index 2da19bdaa6..1796405a22 100644 --- a/apps/remix-ide/src/app/plugins/parser/services/code-parser-antlr-service.ts +++ b/apps/remix-ide/src/app/plugins/parser/services/code-parser-antlr-service.ts @@ -4,7 +4,7 @@ import { AstNode } from "@remix-project/remix-solidity" import { CodeParser } from "../code-parser" import { antlr } from '../types' import { pathToFileURL } from 'url' -import {Registry} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' const SolidityParser = (window as any).SolidityParser = (window as any).SolidityParser || [] @@ -117,8 +117,8 @@ export default class CodeParserAntlrService { /** * Tries to parse the current file or the given text and returns the AST * If the parsing fails it returns the last successful AST for this file - * @param text - * @returns + * @param text + * @returns */ async setCurrentFileAST(text: string | null = null) { try { @@ -149,7 +149,7 @@ export default class CodeParserAntlrService { /** * Lists the AST nodes from the current file parser * These nodes need to be changed to match the node types returned by the compiler - * @returns + * @returns */ async listAstNodes() { this.plugin.currentFile = await this.plugin.call('fileManager', 'file') @@ -201,11 +201,10 @@ export default class CodeParserAntlrService { return nodes } - /** - * - * @param ast - * @returns + * + * @param ast + * @returns */ async getLastNodeInLine(ast: string) { let lastNode: any @@ -247,7 +246,7 @@ export default class CodeParserAntlrService { try { const startTime = Date.now() const blocks = (SolidityParser as any).parseBlock(fileContent, { loc: true, range: true, tolerant: true }) - if(this.cache[this.plugin.currentFile] && this.cache[this.plugin.currentFile].blockDurations){ + if (this.cache[this.plugin.currentFile] && this.cache[this.plugin.currentFile].blockDurations){ this.cache[this.plugin.currentFile].blockDurations = [...this.cache[this.plugin.currentFile].blockDurations.slice(-this.parserThresholdSampleAmount), Date.now() - startTime] this.setFileParsingState(this.plugin.currentFile) } diff --git a/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts b/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts index b1dc5f8c7a..6f1d5f9152 100644 --- a/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts +++ b/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts @@ -75,7 +75,6 @@ export default class CodeParserCompiler { length: error.sourceLocation.end - error.sourceLocation.start }, lineBreaks) - const filePath = error.sourceLocation.file const fileTarget = await this.plugin.call('fileManager', 'getUrlFromPath', filePath) @@ -103,24 +102,23 @@ export default class CodeParserCompiler { if (data.sources && Object.keys(data.sources).length === 0) return this.plugin.compilerAbstract = new CompilerAbstract('soljson', data, source, input) this.errorState = false - + this.plugin.nodeIndex = { declarations: {}, flatReferences: {}, nodesPerFile: {}, } - this.plugin._buildIndex(data, source) // cast from the remix-plugin interface to the solidity one. Should be fixed when remix-plugin move to the remix-project repository const extractedFiledNodes = this.plugin._extractFileNodes(this.plugin.currentFile, this.plugin.compilerAbstract as unknown as lastCompilationResult) - if(extractedFiledNodes) { + if (extractedFiledNodes) { this.plugin.nodeIndex.nodesPerFile[this.plugin.currentFile] = extractedFiledNodes } await this.plugin.gasService.showGasEstimates() this.plugin.emit('astFinished') } - + this.compiler = new Compiler((url, cb) => this.plugin.call('contentImport', 'resolveAndSave', url, undefined).then((result) => cb(null, result)).catch((error) => cb(error.message))) this.compiler.event.register('compilationFinished', this.onAstFinished) } @@ -128,8 +126,8 @@ export default class CodeParserCompiler { // COMPILER /** - * - * @returns + * + * @returns */ async compile() { try { @@ -149,7 +147,7 @@ export default class CodeParserCompiler { } else { this.compiler.set('remappings', []) } - + const configFileContent = { "language": "Solidity", "settings": { @@ -227,7 +225,7 @@ export default class CodeParserCompiler { const fileTarget = await this.plugin.call('fileManager', 'getPathFromUrl', fileName) await this.plugin.call('fileDecorator', 'clearFileDecorators', fileTarget.file) } - if(decorators.length > 0) + if (decorators.length > 0) await this.plugin.call('fileDecorator', 'setFileDecorators', decorators) await this.plugin.call('editor', 'clearErrorMarkers', filesWithOutErrors) diff --git a/apps/remix-ide/src/app/plugins/parser/services/code-parser-gas-service.ts b/apps/remix-ide/src/app/plugins/parser/services/code-parser-gas-service.ts index 34e86290c1..dd2cb7af4d 100644 --- a/apps/remix-ide/src/app/plugins/parser/services/code-parser-gas-service.ts +++ b/apps/remix-ide/src/app/plugins/parser/services/code-parser-gas-service.ts @@ -33,17 +33,16 @@ export default class CodeParserGasService { } - async showGasEstimates() { const showGasConfig = await this.plugin.call('config', 'getAppParameter', 'show-gas') - if(!showGasConfig) { + if (!showGasConfig) { await this.plugin.call('editor', 'discardLineTexts') return } this.plugin.currentFile = await this.plugin.call('fileManager', 'file') // cast from the remix-plugin interface to the solidity one. Should be fixed when remix-plugin move to the remix-project repository - const extractedFiledNodes = await this.plugin._extractFileNodes(this.plugin.currentFile, this.plugin.compilerAbstract as unknown as lastCompilationResult) - if(extractedFiledNodes) { + const extractedFiledNodes = await this.plugin._extractFileNodes(this.plugin.currentFile, this.plugin.compilerAbstract as unknown as lastCompilationResult) + if (extractedFiledNodes) { this.plugin.nodeIndex.nodesPerFile[this.plugin.currentFile] = extractedFiledNodes } @@ -72,10 +71,8 @@ export default class CodeParserGasService { this.plugin.call('editor', 'addLineText', linetext, estimate.range.fileName) - } } } - } \ No newline at end of file diff --git a/apps/remix-ide/src/app/plugins/parser/services/code-parser-imports.ts b/apps/remix-ide/src/app/plugins/parser/services/code-parser-imports.ts index a95a663e71..4f144d6a76 100644 --- a/apps/remix-ide/src/app/plugins/parser/services/code-parser-imports.ts +++ b/apps/remix-ide/src/app/plugins/parser/services/code-parser-imports.ts @@ -1,5 +1,5 @@ 'use strict' -import {Registry} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' import { CodeParser } from "../code-parser"; export type CodeParserImportsData = { @@ -20,7 +20,7 @@ export default class CodeParserImports { } async getImports(){ - if(!this.data || !this.data.files || !this.data.timestamp || this.data.timestamp != this.directoryUpdateCacheTimeStamp){ + if (!this.data || !this.data.files || !this.data.timestamp || this.data.timestamp != this.directoryUpdateCacheTimeStamp){ await this.setFileTree() } return this.data @@ -33,13 +33,13 @@ export default class CodeParserImports { .filter(x => x !== '') .map(x => x.replace('./node_modules/', '')) .filter(x => { - if(x.includes('@openzeppelin')) { + if (x.includes('@openzeppelin')) { return !x.includes('mock') - }else{ + } else { return true - } + } }) - + // get unique first words of the values in the array this.data.packages = [...new Set(this.data.modules.map(x => x.split('/')[0]))] } @@ -79,7 +79,7 @@ export default class CodeParserImports { files = await this.plugin.call('fileManager', 'readdir', dir) } } catch (e) {} - + const fileArray = this.normalize(files) for (const fi of fileArray) { if (fi) { diff --git a/apps/remix-ide/src/app/plugins/parser/types/antlr-types.ts b/apps/remix-ide/src/app/plugins/parser/types/antlr-types.ts index 3e2675c43a..7efe851d93 100644 --- a/apps/remix-ide/src/app/plugins/parser/types/antlr-types.ts +++ b/apps/remix-ide/src/app/plugins/parser/types/antlr-types.ts @@ -24,7 +24,6 @@ interface Token { } } - interface Location { start: { line: number @@ -594,7 +593,6 @@ export type Statement = type ASTMap = { [K in ASTNodeTypeString]: U extends { type: K } ? U : never } type ASTTypeMap = ASTMap - export const astNodeTypes = [ 'SourceUnit', 'PragmaDirective', @@ -673,9 +671,6 @@ export const astNodeTypes = [ 'InvalidNode' ] as const - - - export const binaryOpValues = [ '+', '-', @@ -725,8 +720,3 @@ export const unaryOpValues = [ ] as const export type UnaryOp = typeof unaryOpValues[number] - - - - - diff --git a/apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx b/apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx index 813567831d..a01425088a 100644 --- a/apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx +++ b/apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx @@ -1,9 +1,9 @@ import React from 'react' // eslint-disable-line -import {FormattedMessage} from 'react-intl' -import {Plugin} from '@remixproject/engine' -import {AppModal} from '@remix-ui/app' -import {PermissionHandlerDialog, PermissionHandlerValue} from '@remix-ui/permission-handler' -import {Profile} from '@remixproject/plugin-utils' +import { FormattedMessage } from 'react-intl' +import { Plugin } from '@remixproject/engine' +import { AppModal } from '@remix-ui/app' +import { PermissionHandlerDialog, PermissionHandlerValue } from '@remix-ui/permission-handler' +import { Profile } from '@remixproject/plugin-utils' const profile = { name: 'permissionhandler', @@ -89,7 +89,7 @@ export class PermissionHandlerPlugin extends Plugin { if (!this.permissions[to.name][method][from.name]) return this.openPermission(from, to, method, message, sensitiveCall) } - const {allow, hash} = sensitiveCall ? this.sessionPermissions[to.name][method][from.name] : this.permissions[to.name][method][from.name] + const { allow, hash } = sensitiveCall ? this.sessionPermissions[to.name][method][from.name] : this.permissions[to.name][method][from.name] if (!allow) { const warning = this.notAllowWarning(from, to, method) const warnEl = @@ -97,9 +97,9 @@ export class PermissionHandlerPlugin extends Plugin { { warning }
{}}>To change the permission go to - Plugin Manager - - / Permissions + Plugin Manager + + / Permissions
this.call('notification', 'toast', warnEl) @@ -130,7 +130,7 @@ export class PermissionHandlerPlugin extends Plugin { } const modal: AppModal = { id: 'PermissionHandler', - title: , + title: , message: , okLabel: , cancelLabel: diff --git a/apps/remix-ide/src/app/plugins/remixGuide.tsx b/apps/remix-ide/src/app/plugins/remixGuide.tsx index d782e11ff3..037f4f8cf5 100644 --- a/apps/remix-ide/src/app/plugins/remixGuide.tsx +++ b/apps/remix-ide/src/app/plugins/remixGuide.tsx @@ -30,7 +30,7 @@ export class RemixGuidePlugin extends ViewPlugin { super(profile) this.appManager = appManager this.element = document.createElement('div') - this.element.setAttribute('id', 'remixGuideEl') + this.element.setAttribute('id', 'remixGuideEl') } async onActivation() { @@ -49,13 +49,13 @@ export class RemixGuidePlugin extends ViewPlugin { this.profile.displayName = `${contractName[0]}` this.payload = sentPayload const active = await this.call('theme', 'currentTheme') - + this.renderComponent() } private handleThemeChange() { this.on('theme', 'themeChanged', (theme: any) => { - + this.renderComponent() }) } @@ -114,7 +114,7 @@ export class RemixGuidePlugin extends ViewPlugin { tagList={['L2', 'AI']} logo='/assets/img/soliditySurvey2023.webp' > - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/apps/remix-ide/src/app/plugins/remixd-handle.tsx b/apps/remix-ide/src/app/plugins/remixd-handle.tsx index cb627cb4b7..62b9c75b52 100644 --- a/apps/remix-ide/src/app/plugins/remixd-handle.tsx +++ b/apps/remix-ide/src/app/plugins/remixd-handle.tsx @@ -1,13 +1,13 @@ /* eslint-disable no-unused-vars */ import React, {useRef, useState, useEffect} from 'react' // eslint-disable-line -import {FormattedMessage} from 'react-intl' -import {WebsocketPlugin} from '@remixproject/engine-web' +import { FormattedMessage } from 'react-intl' +import { WebsocketPlugin } from '@remixproject/engine-web' import * as packageJson from '../../../../../package.json' // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries -import {version as remixdVersion} from '../../../../../libs/remixd/package.json' -import {PluginManager} from '@remixproject/engine' -import {AppModal, AlertModal, appPlatformTypes} from '@remix-ui/app' -import {Registry} from '@remix-project/remix-lib' +import { version as remixdVersion } from '../../../../../libs/remixd/package.json' +import { PluginManager } from '@remixproject/engine' +import { AppModal, AlertModal, appPlatformTypes } from '@remix-ui/app' +import { Registry } from '@remix-project/remix-lib' const LOCALHOST = ' - connect to localhost - ' @@ -85,7 +85,7 @@ export class RemixdHandle extends WebsocketPlugin { console.log(error) const alert: AlertModal = { id: 'connectionAlert', - message: window._intl.formatMessage({id: 'remixd.connectionAlert1'}), + message: window._intl.formatMessage({ id: 'remixd.connectionAlert1' }), } this.call('notification', 'alert', alert) this.canceled() @@ -96,14 +96,14 @@ export class RemixdHandle extends WebsocketPlugin { clearInterval(intervalId) const alert: AlertModal = { id: 'connectionAlert', - message: window._intl.formatMessage({id: 'remixd.connectionAlert2'}), + message: window._intl.formatMessage({ id: 'remixd.connectionAlert2' }), } this.call('notification', 'alert', alert) this.canceled() } }, 3000) this.localhostProvider.init(() => { - this.call('filePanel', 'setWorkspace', {name: LOCALHOST, isLocalhost: true}, true) + this.call('filePanel', 'setWorkspace', { name: LOCALHOST, isLocalhost: true }, true) }) for (const plugin of this.dependentPlugins) { await this.appManager.activatePlugin(plugin) @@ -116,10 +116,10 @@ export class RemixdHandle extends WebsocketPlugin { // warn the user only if he/she is in the browser context const mod: AppModal = { id: 'remixdConnect', - title: window._intl.formatMessage({id: 'remixd.remixdConnect'}), + title: window._intl.formatMessage({ id: 'remixd.remixdConnect' }), message: remixdDialog(), - okLabel: window._intl.formatMessage({id: 'remixd.connect'}), - cancelLabel: window._intl.formatMessage({id: 'remixd.cancel'}), + okLabel: window._intl.formatMessage({ id: 'remixd.connect' }), + cancelLabel: window._intl.formatMessage({ id: 'remixd.cancel' }), } const result = await this.call('notification', 'modal', mod) if (result) { diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 9e52dd0d11..99fcbbe0c3 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -1,11 +1,11 @@ import { Plugin } from '@remixproject/engine' export type SuggestOptions = { - max_new_tokens: number, + max_new_tokens: number, temperature: number, do_sample:boolean top_k: number, - top_p:number, + top_p:number, stream_result:boolean } @@ -41,18 +41,18 @@ export class SolCoder extends Plugin { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify({"data":[prompt, "code_completion", "", false,1000,0.9,0.92,50]}), + body: JSON.stringify({ "data":[prompt, "code_completion", "", false,1000,0.9,0.92,50]}), }) ).json() if ("error" in result){ - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.error }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.error }) return result } return result.data } catch (e) { this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) return - }finally { + } finally { this.emit("aiInferingDone") } } @@ -69,18 +69,18 @@ export class SolCoder extends Plugin { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify({"data":[prompt, "solidity_answer", false,1000,0.9,0.8,50]}), + body: JSON.stringify({ "data":[prompt, "solidity_answer", false,1000,0.9,0.8,50]}), }) ).json() } catch (e) { this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) return - }finally { + } finally { this.emit("aiInferingDone") } if (result) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.data[0]}) - } else if (result.error) { + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.data[0] }) + } else if (result.error) { this.call('terminal', 'log', { type: 'aitypewriterwarning', value: "Error on request" }) } @@ -98,17 +98,17 @@ export class SolCoder extends Plugin { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify({"data":[prompt, "code_explaining", false,2000,0.9,0.8,50, context]}), + body: JSON.stringify({ "data":[prompt, "code_explaining", false,2000,0.9,0.8,50, context]}), }) ).json() if (result) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.data[0]}) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.data[0] }) } return result.data[0] } catch (e) { this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) return - }finally { + } finally { this.emit("aiInferingDone") } } @@ -124,14 +124,14 @@ export class SolCoder extends Plugin { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify({"data": !options? [ - prompt, // string in 'context_code' Textbox component + body: JSON.stringify({ "data": !options? [ + prompt, // string in 'context_code' Textbox component "code_completion", - "", // string in 'comment' Textbox component - false, // boolean in 'stream_result' Checkbox component - 30, // number (numeric value between 0 and 2000) in 'max_new_tokens' Slider component - 0.9, // number (numeric value between 0.01 and 1) in 'temperature' Slider component - 0.90, // number (numeric value between 0 and 1) in 'top_p' Slider component + "", // string in 'comment' Textbox component + false, // boolean in 'stream_result' Checkbox component + 30, // number (numeric value between 0 and 2000) in 'max_new_tokens' Slider component + 0.9, // number (numeric value between 0.01 and 1) in 'temperature' Slider component + 0.90, // number (numeric value between 0 and 1) in 'top_p' Slider component 50, // number (numeric value between 1 and 200) in 'top_k' Slider component ] : [ prompt, @@ -170,15 +170,15 @@ export class SolCoder extends Plugin { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify({"data":[ + body: JSON.stringify({ "data":[ msg_pfx, // Text before current cursor line "code_insertion", msg_sfx, // Text after current cursor line - 1024, + 1024, 0.5, 0.92, 50 - ] }), + ]}), }) ).json() @@ -195,6 +195,4 @@ export class SolCoder extends Plugin { } } - - } diff --git a/apps/remix-ide/src/app/plugins/solidity-script.tsx b/apps/remix-ide/src/app/plugins/solidity-script.tsx index 5ca2f47b58..3b418c88db 100644 --- a/apps/remix-ide/src/app/plugins/solidity-script.tsx +++ b/apps/remix-ide/src/app/plugins/solidity-script.tsx @@ -1,8 +1,8 @@ import React from 'react' // eslint-disable-line -import {format} from 'util' -import {Plugin} from '@remixproject/engine' -import {compile} from '@remix-project/remix-solidity' -import {Transaction} from 'web3-types' +import { format } from 'util' +import { Plugin } from '@remixproject/engine' +import { compile } from '@remix-project/remix-solidity' +import { Transaction } from 'web3-types' const _paq = (window._paq = window._paq || []) //eslint-disable-line const profile = { @@ -37,7 +37,7 @@ export class SolidityScript extends Plugin { ${functionName}(); } }` - const targets = {'script.sol': {content}} + const targets = { 'script.sol': { content } } // compile const compilation = await compile(targets, params, async (url, cb) => { @@ -81,20 +81,20 @@ export class SolidityScript extends Plugin { this.call('terminal', 'logHtml', e.message) return } - + tx = { from: accounts[0], to: receipt.contractAddress, data: '0x69d4394b' // function remixRun() public } - let receiptCall - + let receiptCall + try { receiptCall = await web3.eth.sendTransaction(tx, null, { checkRevertBeforeSending: false, ignoreGasPricing: true }) } catch (e) { this.call('terminal', 'logHtml', e.message) return - } + } const hhlogs = await web3.remix.getHHLogsForTx(receiptCall.transactionHash) diff --git a/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx b/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx index 3fd6b6bd51..9ae582f29f 100644 --- a/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx +++ b/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx @@ -1,17 +1,17 @@ /* eslint-disable @nrwl/nx/enforce-module-boundaries */ -import {ViewPlugin} from '@remixproject/engine-web' +import { ViewPlugin } from '@remixproject/engine-web' import React from 'react' // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries -import {RemixUiSolidityUmlGen} from '@remix-ui/solidity-uml-gen' -import {ISolidityUmlGen, ThemeQualityType, ThemeSummary} from 'libs/remix-ui/solidity-uml-gen/src/types' -import {RemixAppManager} from 'libs/remix-ui/plugin-manager/src/types' -import {normalizeContractPath} from 'libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities' -import {convertAST2UmlClasses} from 'sol2uml/lib/converterAST2Classes' +import { RemixUiSolidityUmlGen } from '@remix-ui/solidity-uml-gen' +import { ISolidityUmlGen, ThemeQualityType, ThemeSummary } from 'libs/remix-ui/solidity-uml-gen/src/types' +import { RemixAppManager } from 'libs/remix-ui/plugin-manager/src/types' +import { normalizeContractPath } from 'libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities' +import { convertAST2UmlClasses } from 'sol2uml/lib/converterAST2Classes' import vizRenderStringSync from '@aduh95/viz.js/sync' -import {PluginViewWrapper} from '@remix-ui/helper' -import {customAction} from '@remixproject/plugin-api' -import {ClassOptions} from 'sol2uml/lib/converterClass2Dot' -import type {CompilerInput} from '@remix-project/remix-solidity' +import { PluginViewWrapper } from '@remix-ui/helper' +import { customAction } from '@remixproject/plugin-api' +import { ClassOptions } from 'sol2uml/lib/converterClass2Dot' +import type { CompilerInput } from '@remix-project/remix-solidity' const parser = (window as any).SolidityParser const _paq = (window._paq = window._paq || []) @@ -207,10 +207,10 @@ interface Sol2umlClassOptions extends ClassOptions { textColor?: string } -import {dirname} from 'path' -import {convertClass2Dot} from 'sol2uml/lib/converterClass2Dot' -import {Association, ClassStereotype, ReferenceType, UmlClass} from 'sol2uml/lib/umlClass' -import {findAssociatedClass} from 'sol2uml/lib/associations' +import { dirname } from 'path' +import { convertClass2Dot } from 'sol2uml/lib/converterClass2Dot' +import { Association, ClassStereotype, ReferenceType, UmlClass } from 'sol2uml/lib/umlClass' +import { findAssociatedClass } from 'sol2uml/lib/associations' // const debug = require('debug')('sol2uml') diff --git a/apps/remix-ide/src/app/plugins/vyper-compilation-details.tsx b/apps/remix-ide/src/app/plugins/vyper-compilation-details.tsx index 463d79dd85..5d3893aa75 100644 --- a/apps/remix-ide/src/app/plugins/vyper-compilation-details.tsx +++ b/apps/remix-ide/src/app/plugins/vyper-compilation-details.tsx @@ -1,6 +1,6 @@ import React from 'react' import { ViewPlugin } from '@remixproject/engine-web' -import {PluginViewWrapper} from '@remix-ui/helper' +import { PluginViewWrapper } from '@remix-ui/helper' import { RemixAppManager } from '../../remixAppManager' import { RemixUiVyperCompileDetails } from '@remix-ui/vyper-compile-details' import { ThemeKeys, ThemeObject } from '@microlink/react-json-view' @@ -49,13 +49,13 @@ export class VyperCompilationDetailsPlugin extends ViewPlugin { } async showDetails(sentPayload: any) { - const contractName = Object.entries(sentPayload).find(([key, value]) => key ) + const contractName = Object.entries(sentPayload).find(([key, value]) => key ) await this.call('tabs', 'focus', 'vyperCompilationDetails') this.profile.displayName = `${contractName[0]}` this.payload = sentPayload const active = await this.call('theme', 'currentTheme') if (active.quality === 'dark') { - switch(active.name) { + switch (active.name) { case 'HackerOwl': this.theme = 'harmonic' this.themeStyle = { backgroundColor: active.backgroundColor } @@ -78,7 +78,7 @@ export class VyperCompilationDetailsPlugin extends ViewPlugin { break } } else { - switch(active.name) { + switch (active.name) { case 'Candy': this.theme = 'apathy:inverted' this.themeStyle = { backgroundColor: active.backgroundColor } @@ -106,7 +106,7 @@ export class VyperCompilationDetailsPlugin extends ViewPlugin { private handleThemeChange() { this.on('theme', 'themeChanged', (theme: any) => { if (theme.quality === 'dark') { - switch(theme.name) { + switch (theme.name) { case 'HackerOwl': this.theme = 'solarized' this.themeStyle = { backgroundColor: theme.backgroundColor } diff --git a/apps/remix-ide/src/app/providers/abstract-provider.tsx b/apps/remix-ide/src/app/providers/abstract-provider.tsx index 60c6032cc9..01e26df1f4 100644 --- a/apps/remix-ide/src/app/providers/abstract-provider.tsx +++ b/apps/remix-ide/src/app/providers/abstract-provider.tsx @@ -1,7 +1,7 @@ -import {Plugin} from '@remixproject/engine' -import {AppModal, AlertModal, ModalTypes} from '@remix-ui/app' -import {Blockchain} from '../../blockchain/blockchain' -import {ethers} from 'ethers' +import { Plugin } from '@remixproject/engine' +import { AppModal, AlertModal, ModalTypes } from '@remix-ui/app' +import { Blockchain } from '../../blockchain/blockchain' +import { ethers } from 'ethers' export type JsonDataRequest = { id: number @@ -66,7 +66,7 @@ export abstract class AbstractProvider extends Plugin implements IProvider { okLabel: 'OK', cancelLabel: 'Cancel', validationFn: (value) => { - if (!value) return {valid: false, message: 'value is empty'} + if (!value) return { valid: false, message: 'value is empty' } if (value.startsWith('https://') || value.startsWith('http://')) { return { valid: true, @@ -102,7 +102,7 @@ export abstract class AbstractProvider extends Plugin implements IProvider { sendAsync(data: JsonDataRequest): Promise { // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve, reject) => { - if (!this.provider) return reject({jsonrpc: '2.0', id: data.id, error: { message: 'provider node set', code: -32603 } } as JsonDataResult) + if (!this.provider) return reject({ jsonrpc: '2.0', id: data.id, error: { message: 'provider node set', code: -32603 } } as JsonDataResult) this.sendAsyncInternal(data, resolve, reject) }) } @@ -119,7 +119,7 @@ export abstract class AbstractProvider extends Plugin implements IProvider { } this.call('notification', 'alert', modalContent) } - await this.call('udapp', 'setEnvironmentMode', {context: 'vm-cancun'}) + await this.call('udapp', 'setEnvironmentMode', { context: 'vm-cancun' }) return } @@ -127,17 +127,17 @@ export abstract class AbstractProvider extends Plugin implements IProvider { if (this.provider) { try { const result = await this.provider.send(data.method, data.params) - resolve({jsonrpc: '2.0', result, id: data.id}) + resolve({ jsonrpc: '2.0', result, id: data.id }) } catch (error) { if (error && error.message && error.message.includes('net_version') && error.message.includes('SERVER_ERROR')) { this.switchAway(true) } error.code = -32603 - reject({jsonrpc: '2.0', error, id: data.id}) + reject({ jsonrpc: '2.0', error, id: data.id }) } } else { const result = data.method === 'net_listening' ? 'canceled' : [] - resolve({jsonrpc: '2.0', result: result, id: data.id}) + resolve({ jsonrpc: '2.0', result: result, id: data.id }) } } } diff --git a/apps/remix-ide/src/app/providers/custom-vm-fork-provider.tsx b/apps/remix-ide/src/app/providers/custom-vm-fork-provider.tsx index d25208bbb9..b9aa95b6c6 100644 --- a/apps/remix-ide/src/app/providers/custom-vm-fork-provider.tsx +++ b/apps/remix-ide/src/app/providers/custom-vm-fork-provider.tsx @@ -1,9 +1,9 @@ import React, {useRef} from 'react' // eslint-disable-line -import {FormattedMessage} from 'react-intl' +import { FormattedMessage } from 'react-intl' import * as packageJson from '../../../../../package.json' -import {AppModal, ModalTypes} from '@remix-ui/app' -import {BasicVMProvider} from './vm-provider' -import {Hardfork} from '@ethereumjs/common' +import { AppModal, ModalTypes } from '@remix-ui/app' +import { BasicVMProvider } from './vm-provider' +import { Hardfork } from '@ethereumjs/common' export class CustomForkVMProvider extends BasicVMProvider { nodeUrl: string diff --git a/apps/remix-ide/src/app/providers/external-http-provider.tsx b/apps/remix-ide/src/app/providers/external-http-provider.tsx index a3b51f9a5d..81feb39bd7 100644 --- a/apps/remix-ide/src/app/providers/external-http-provider.tsx +++ b/apps/remix-ide/src/app/providers/external-http-provider.tsx @@ -1,7 +1,7 @@ import * as packageJson from '../../../../../package.json' import React from 'react' // eslint-disable-line -import {FormattedMessage} from 'react-intl' -import {AbstractProvider} from './abstract-provider' +import { FormattedMessage } from 'react-intl' +import { AbstractProvider } from './abstract-provider' const profile = { name: 'basic-http-provider', @@ -49,7 +49,7 @@ export class ExternalHttpProvider extends AbstractProvider {


- <>{chunks}}} /> + <>{chunks} }} />

{ if (error) return reject(error) else { - resolve({jsonrpc: '2.0', result, id: data.id}) + resolve({ jsonrpc: '2.0', result, id: data.id }) } }) } catch (error) { diff --git a/apps/remix-ide/src/app/tabs/compile-and-run.ts b/apps/remix-ide/src/app/tabs/compile-and-run.ts index 2b3c169896..63952747c9 100644 --- a/apps/remix-ide/src/app/tabs/compile-and-run.ts +++ b/apps/remix-ide/src/app/tabs/compile-and-run.ts @@ -26,7 +26,7 @@ export class CompileAndRun extends Plugin { super(profile) this.executionListener = async (e) => { // ctrl+e or command+e - + if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.keyCode === 83) { const file = await this.call('fileManager', 'file') if (file) { @@ -51,7 +51,7 @@ export class CompileAndRun extends Plugin { } async runScript (fileName, clearAllInstances) { - await this.call('terminal', 'log', { value: `running ${fileName} ...`, type: 'info' }) + await this.call('terminal', 'log', { value: `running ${fileName} ...`, type: 'info' }) try { const exists = await this.call('fileManager', 'exists', fileName) if (!exists) { @@ -65,7 +65,7 @@ export class CompileAndRun extends Plugin { await this.call('scriptRunner', 'execute', content, fileName) } catch (e) { this.call('notification', 'toast', e.message || e) - } + } } onActivation () { diff --git a/apps/remix-ide/src/app/tabs/search.tsx b/apps/remix-ide/src/app/tabs/search.tsx index 780ce49bb7..b3917ad652 100644 --- a/apps/remix-ide/src/app/tabs/search.tsx +++ b/apps/remix-ide/src/app/tabs/search.tsx @@ -1,7 +1,7 @@ -import {ViewPlugin} from '@remixproject/engine-web' +import { ViewPlugin } from '@remixproject/engine-web' import * as packageJson from '../../../../../package.json' import React from 'react' // eslint-disable-line -import {SearchTab} from '@remix-ui/search' +import { SearchTab } from '@remix-ui/search' const profile = { name: 'search', displayName: 'Search in files', diff --git a/apps/remix-ide/src/app/tabs/settings-tab.tsx b/apps/remix-ide/src/app/tabs/settings-tab.tsx index 1f69e113b6..b32477aa17 100644 --- a/apps/remix-ide/src/app/tabs/settings-tab.tsx +++ b/apps/remix-ide/src/app/tabs/settings-tab.tsx @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import React from 'react' // eslint-disable-line -import {ViewPlugin} from '@remixproject/engine-web' +import { ViewPlugin } from '@remixproject/engine-web' import * as packageJson from '../../../../../package.json' import {RemixUiSettings} from '@remix-ui/settings' //eslint-disable-line -import {Registry} from '@remix-project/remix-lib' -import {PluginViewWrapper} from '@remix-ui/helper' +import { Registry } from '@remix-project/remix-lib' +import { PluginViewWrapper } from '@remix-ui/helper' declare global { interface Window { _paq: any @@ -62,7 +62,7 @@ module.exports = class SettingsTab extends ViewPlugin { onActivation(): void { } - + render() { return (
diff --git a/apps/remix-ide/src/blockchain/blockchain.tsx b/apps/remix-ide/src/blockchain/blockchain.tsx index b30a88c0ad..bbe6d302f1 100644 --- a/apps/remix-ide/src/blockchain/blockchain.tsx +++ b/apps/remix-ide/src/blockchain/blockchain.tsx @@ -1,20 +1,20 @@ import React from 'react' // eslint-disable-line -import {fromWei, toBigInt, toWei} from 'web3-utils' -import {Plugin} from '@remixproject/engine' -import {toBytes, addHexPrefix} from '@ethereumjs/util' -import {EventEmitter} from 'events' -import {format} from 'util' -import {ExecutionContext} from './execution-context' +import { fromWei, toBigInt, toWei } from 'web3-utils' +import { Plugin } from '@remixproject/engine' +import { toBytes, addHexPrefix } from '@ethereumjs/util' +import { EventEmitter } from 'events' +import { format } from 'util' +import { ExecutionContext } from './execution-context' import Config from '../config' -import {VMProvider} from './providers/vm' -import {InjectedProvider} from './providers/injected' -import {NodeProvider} from './providers/node' -import {execution, EventManager, helpers} from '@remix-project/remix-lib' -import {etherScanLink} from './helper' -import {logBuilder, cancelUpgradeMsg, cancelProxyMsg, addressToString} from '@remix-ui/helper' -const {txFormat, txExecution, typeConversion, txListener: Txlistener, TxRunner, TxRunnerWeb3, txHelper} = execution -const {txResultHelper} = helpers -const {resultToRemixTx} = txResultHelper +import { VMProvider } from './providers/vm' +import { InjectedProvider } from './providers/injected' +import { NodeProvider } from './providers/node' +import { execution, EventManager, helpers } from '@remix-project/remix-lib' +import { etherScanLink } from './helper' +import { logBuilder, cancelUpgradeMsg, cancelProxyMsg, addressToString } from '@remix-ui/helper' +const { txFormat, txExecution, typeConversion, txListener: Txlistener, TxRunner, TxRunnerWeb3, txHelper } = execution +const { txResultHelper } = helpers +const { resultToRemixTx } = txResultHelper import * as packageJson from '../../../../package.json' const _paq = (window._paq = window._paq || []) //eslint-disable-line @@ -91,7 +91,7 @@ export class Blockchain extends Plugin { this.txRunner = new TxRunner(web3Runner, {}) this.networkcallid = 0 - this.networkStatus = {network: {name: ' - ', id: ' - '}} + this.networkStatus = { network: { name: ' - ', id: ' - ' } } this.registeredPluginEvents = [] this.setupEvents() this.setupProviders() @@ -110,7 +110,7 @@ export class Blockchain extends Plugin { this.registeredPluginEvents.push(plugin.name) this.on(plugin.name, 'chainChanged', () => { this.detectNetwork((error, network) => { - this.networkStatus = {network, error} + this.networkStatus = { network, error } this._triggerEvent('networkStatus', [this.networkStatus]) }) }) @@ -131,7 +131,7 @@ export class Blockchain extends Plugin { await this.loadContext(context) this._triggerEvent('contextChanged', [context]) this.detectNetwork((error, network) => { - this.networkStatus = {network, error} + this.networkStatus = { network, error } this._triggerEvent('networkStatus', [this.networkStatus]) }) }) @@ -146,7 +146,7 @@ export class Blockchain extends Plugin { setInterval(() => { this.detectNetwork((error, network) => { - this.networkStatus = {network, error} + this.networkStatus = { network, error } this._triggerEvent('networkStatus', [this.networkStatus]) }) }, 30000) @@ -189,7 +189,7 @@ export class Blockchain extends Plugin { } deployContractAndLibraries(selectedContract, args, contractMetadata, compilerContracts, callbacks, confirmationCb) { - const {continueCb, promptCb, statusCb, finalCb} = callbacks + const { continueCb, promptCb, statusCb, finalCb } = callbacks const constructor = selectedContract.getConstructorInterface() txFormat.buildData( selectedContract.name, @@ -215,7 +215,7 @@ export class Blockchain extends Plugin { } deployContractWithLibrary(selectedContract, args, contractMetadata, compilerContracts, callbacks, confirmationCb) { - const {continueCb, promptCb, statusCb, finalCb} = callbacks + const { continueCb, promptCb, statusCb, finalCb } = callbacks const constructor = selectedContract.getConstructorInterface() txFormat.encodeConstructorCallAndLinkLibraries( selectedContract.object, @@ -257,7 +257,7 @@ export class Blockchain extends Plugin { } async runProxyTx(proxyData, implementationContractObject) { - const args = {useCall: false, data: proxyData} + const args = { useCall: false, data: proxyData } let networkInfo const confirmationCb = (network, tx, gasEstimation, continueTxExecution, cancelCb) => { networkInfo = network @@ -308,7 +308,7 @@ export class Blockchain extends Plugin { } async runUpgradeTx(proxyAddress, data, newImplementationContractObject) { - const args = {useCall: false, data, to: proxyAddress} + const args = { useCall: false, data, to: proxyAddress } let networkInfo const confirmationCb = (network, tx, gasEstimation, continueTxExecution, cancelCb) => { // continue using original authorization given by user @@ -336,7 +336,7 @@ export class Blockchain extends Plugin { } async saveDeployedContractStorageLayout(contractObject, proxyAddress, networkInfo) { - const {contractName, implementationAddress} = contractObject + const { contractName, implementationAddress } = contractObject const networkName = networkInfo.name === 'custom' ? networkInfo.name + '-' + networkInfo.id : networkInfo.name const hasPreviousDeploys = await this.call('fileManager', 'exists', `.deploys/upgradeable-contracts/${networkName}/UUPS.json`) // TODO: make deploys folder read only. @@ -436,7 +436,7 @@ export class Blockchain extends Plugin { data.contractABI = selectedContract.abi } - this.runTx({data: data, useCall: false}, confirmationCb, continueCb, promptCb, (error, txResult, address) => { + this.runTx({ data: data, useCall: false }, confirmationCb, continueCb, promptCb, (error, txResult, address) => { if (error) { return finalCb(`creation of ${selectedContract.name} errored: ${error.message ? error.message : error}`) } @@ -578,7 +578,7 @@ export class Blockchain extends Plugin { data.contract = contract } const useCall = funABI.stateMutability === 'view' || funABI.stateMutability === 'pure' - this.runTx({to: address, data, useCall}, confirmationCb, continueCb, promptCb, (error, txResult, _address, returnValue) => { + this.runTx({ to: address, data, useCall }, confirmationCb, continueCb, promptCb, (error, txResult, _address, returnValue) => { if (error) { return logCallback(`${logMsg} errored: ${error.message ? error.message : error}`) } @@ -629,13 +629,13 @@ export class Blockchain extends Plugin { async loadContext(context: string) { const saveEvmState = this.config.get('settings/save-evm-state') - + if (saveEvmState) { const contextExists = await this.call('fileManager', 'exists', `.states/${context}/state.json`) if (contextExists) { const stateDb = await this.call('fileManager', 'readFile', `.states/${context}/state.json`) - + await this.getCurrentProvider().resetEnvironment(stateDb) } else { await this.getCurrentProvider().resetEnvironment() @@ -676,7 +676,7 @@ export class Blockchain extends Plugin { view on etherscan ) - } + } }) }) this.txRunner = new TxRunner(web3Runner, {}) @@ -866,7 +866,7 @@ export class Blockchain extends Plugin { const eventName = tx.useCall ? 'callExecuted' : 'transactionExecuted' this._triggerEvent(eventName, [error, tx.from, tx.to, tx.data, tx.useCall, result, timestamp, payLoad]) - return resolve({result, tx}) + return resolve({ result, tx }) }) } catch (err) { return reject(err) @@ -894,7 +894,7 @@ export class Blockchain extends Plugin { this.call('fileManager', 'writeFile', `.states/${this.executionContext.getProvider()}/state.json`, state) } catch (e) { console.error(e) - } + } } const hhlogs = await this.web3().remix.getHHLogsForTx(txResult.transactionHash) @@ -923,7 +923,7 @@ export class Blockchain extends Plugin { this.call('terminal', 'logHtml', finalLogs) } execResult = await this.web3().remix.getExecutionResultFromSimulator(txResult.transactionHash) - + if (execResult) { // if it's not the VM, we don't have return value. We only have the transaction, and it does not contain the return value. returnValue = execResult @@ -959,9 +959,9 @@ export class Blockchain extends Plugin { cb((await buildError(errorMessage, errorData)).message) } else if (error.message || error.data) { errorMessage = error.message - errorData = error.data + errorData = error.data cb((await buildError(errorMessage, errorData)).message) - } else + } else cb(error) } } diff --git a/apps/remix-ide/src/blockchain/helper.ts b/apps/remix-ide/src/blockchain/helper.ts index 7df7546d20..5dd37e7378 100644 --- a/apps/remix-ide/src/blockchain/helper.ts +++ b/apps/remix-ide/src/blockchain/helper.ts @@ -6,7 +6,7 @@ const transactionDetailsLinks = { Goerli: 'https://goerli.etherscan.io/tx/', Sepolia: 'https://sepolia.etherscan.io/tx/' } - + export function etherScanLink (network: string, hash: string): string { if (transactionDetailsLinks[network]) { return transactionDetailsLinks[network] + hash diff --git a/apps/remix-ide/src/blockchain/providers/vm.ts b/apps/remix-ide/src/blockchain/providers/vm.ts index 8c210260fa..c2e6448da5 100644 --- a/apps/remix-ide/src/blockchain/providers/vm.ts +++ b/apps/remix-ide/src/blockchain/providers/vm.ts @@ -46,7 +46,7 @@ export class VMProvider { stamps[msg.data.stamp].reject(msg.data.error) } else { stamps[msg.data.stamp].resolve(msg.data.result) - } + } } else if (msg.data.cmd === 'initiateResult') { if (!msg.data.error) { this.provider = { @@ -55,7 +55,7 @@ export class VMProvider { const stamp = Date.now() + incr incr++ stamps[stamp] = { callback, resolve, reject } - this.worker.postMessage({ cmd: 'sendAsync', query, stamp }) + this.worker.postMessage({ cmd: 'sendAsync', query, stamp }) }) } } @@ -102,7 +102,6 @@ export class VMProvider { }) } - // TODO: is still here because of the plugin API // can be removed later when we update the API createVMAccount (newAccount) { @@ -134,5 +133,5 @@ export class VMProvider { this.web3.eth.sign(message, account) .then(signedData => cb(null, bytesToHex(messageHash), signedData)) .catch(error => cb(error)) - } + } } diff --git a/apps/remix-ide/src/blockchain/providers/worker-vm.ts b/apps/remix-ide/src/blockchain/providers/worker-vm.ts index e91e30dfd4..d1ad0b7f0d 100644 --- a/apps/remix-ide/src/blockchain/providers/worker-vm.ts +++ b/apps/remix-ide/src/blockchain/providers/worker-vm.ts @@ -4,9 +4,9 @@ let provider: Provider = null self.onmessage = (e: MessageEvent) => { const data = e.data switch (data.cmd) { - case 'init': + case 'init': { - provider = new Provider({ fork: data.fork, nodeUrl: data.nodeUrl, blockNumber: data.blockNumber, stateDb: data.stateDb, blocks: data.blocks}) + provider = new Provider({ fork: data.fork, nodeUrl: data.nodeUrl, blockNumber: data.blockNumber, stateDb: data.stateDb, blocks: data.blocks }) provider.init().then(() => { self.postMessage({ cmd: 'initiateResult', @@ -40,7 +40,7 @@ self.onmessage = (e: MessageEvent) => { stamp: data.stamp }) } - + break } case 'addAccount': @@ -48,7 +48,7 @@ self.onmessage = (e: MessageEvent) => { if (provider) { provider.Accounts._addAccount(data.privateKey, data.balance) } - + break } case 'newAccount': @@ -67,11 +67,11 @@ self.onmessage = (e: MessageEvent) => { result: address, stamp: data.stamp }) - } + } }) } - + break - } + } } } diff --git a/apps/remix-ide/src/index.tsx b/apps/remix-ide/src/index.tsx index 1ab6212ba3..1bd4456af7 100644 --- a/apps/remix-ide/src/index.tsx +++ b/apps/remix-ide/src/index.tsx @@ -1,11 +1,11 @@ // eslint-disable-next-line no-use-before-define import React from 'react' import './index.css' -import {ThemeModule} from './app/tabs/theme-module' -import {Preload} from './app/components/preload' +import { ThemeModule } from './app/tabs/theme-module' +import { Preload } from './app/components/preload' import Config from './config' -import {Registry} from '@remix-project/remix-lib' -import {Storage} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' +import { Storage } from '@remix-project/remix-lib' import { createRoot } from 'react-dom/client' @@ -13,14 +13,14 @@ import { createRoot } from 'react-dom/client' try { const configStorage = new Storage('config-v0.8:') const config = new Config(configStorage) - Registry.getInstance().put({api: config, name: 'config'}) + Registry.getInstance().put({ api: config, name: 'config' }) } catch (e) {} const theme = new ThemeModule() theme.initTheme() - + const container = document.getElementById('root'); const root = createRoot(container) - if (container) { + if (container) { root.render(); - } + } })()