From d763cc4e67490d0daa9c35f1cb96efaf30207771 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 24 Jun 2022 13:01:59 +0530 Subject: [PATCH 01/28] show tooltip on bottom --- libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx b/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx index f62cf811e2..f8af09cbd1 100644 --- a/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx @@ -292,7 +292,7 @@ export function ContractGUI (props: ContractGUIProps) { })}
- getContentOnCTC(multiFields.current)} /> + getContentOnCTC(multiFields.current)} />
From 2c92cae346a8fa322a39808024058efee1fbb0cf Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Thu, 23 Jun 2022 13:31:23 +0530 Subject: [PATCH 02/28] show passed mocha test in green --- libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts b/libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts index fb478cbbb3..e8046e4c96 100644 --- a/libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts +++ b/libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts @@ -154,7 +154,7 @@ export const registerScriptRunnerReducer = (state, action) => { case INFO: return { ...state, - journalBlocks: initialState.journalBlocks.push({ message: action.payload.message, style: 'text-log', provider: action.payload.provider }) + journalBlocks: initialState.journalBlocks.push({ message: action.payload.message, style: 'text-success', provider: action.payload.provider }) } case WARN: return { From cd1bc76f619853b59fccc03ed5797c2732ee3646 Mon Sep 17 00:00:00 2001 From: ryestew Date: Tue, 21 Jun 2022 15:14:10 -0400 Subject: [PATCH 03/28] remove embark folder --- apps/remix-ide/embark/README.md | 45 -------------------- apps/remix-ide/embark/index.js | 66 ------------------------------ apps/remix-ide/embark/package.json | 16 -------- 3 files changed, 127 deletions(-) delete mode 100644 apps/remix-ide/embark/README.md delete mode 100644 apps/remix-ide/embark/index.js delete mode 100644 apps/remix-ide/embark/package.json diff --git a/apps/remix-ide/embark/README.md b/apps/remix-ide/embark/README.md deleted file mode 100644 index bea37e1f35..0000000000 --- a/apps/remix-ide/embark/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# embark-remix -An Embark plugin that allows Remix to connect to a local DApp via [`remixd`](https://github.com/ethereum/remixd). This plugin serves a local copy of Remix IDE from the machine running the plugin or alternatively allows connection from the public [Remix IDE](https://remix.ethereum.org). The URL of the Remix IDE can be specified in the Embark plugin options, specified below. - -## Options -To configure options for the `embark-remix` plugin, modify the `plugins` property of `embark.json` in the DApp. - -### How to use default options -To pass no options to the plugin and use the defaults, simply use an empty object: -``` -"plugins": { - "embark-remix": {} -} -``` -This will provide the default options to the plugin (shown below). - -### Available options -The available options for this plugin are below. Default options are shown below. This is equivalent to passing an empty object `{}`. -``` -"plugins": { - "embark-remix": { - "readOnly": false, - "remixIde": { - "protocol": "http", - "host": "localhost", - "port": 8088 - } - } -} -``` - - -`readOnly` does not let Remix update the contents on the local filesystem. - - Default: `false` - -`remixIde` specifies the URL that the Remix IDE will be served from. If this is a `localhost` URL, the plugin creates a server that is responsible for listening on this URL. - - Default: `(see above)` - -If it is preferred to connect to the public Remix IDE at https://remix.ethereum.org, set the `remixIde` config to: -``` -"remixIde": { - "protocol": "https", - "host": "remix.ethereum.org", - "port": false -} -``` \ No newline at end of file diff --git a/apps/remix-ide/embark/index.js b/apps/remix-ide/embark/index.js deleted file mode 100644 index dcd0b64b39..0000000000 --- a/apps/remix-ide/embark/index.js +++ /dev/null @@ -1,66 +0,0 @@ -const httpServer = require('http-server') -const remixd = require('remixd') -const path = require('path') -const merge = require('merge') -const colors = require('colors') - -const DEFAULT_OPTIONS = { - protocol: 'http', - host: 'localhost', - port: '8088' -} - -module.exports = (embark) => { - // plugin options - const readOnly = embark.pluginConfig.readOnly || false - const { protocol, host, port } = merge.recursive(DEFAULT_OPTIONS, embark.pluginConfig.remixIde) - - // globals - const remixIdeUrl = `${protocol}://${host}` + `${port ? `:${port}` : ''}` - const sharedFolder = path.join(__dirname, '../../') - const sharedFolderService = remixd.services.sharedFolder - let server - - // setup HTTP server - if (['localhost', '127.0.0.1', '0.0.0.0'].includes(host)) { - server = httpServer.createServer({ - root: path.join(__dirname, '../../node_modules/remix-ide') - }) - server.listen(port, '127.0.0.1', function () { - embark.logger.info('Remix IDE (via embark-remix plugin) available at ' + colors.underline(remixIdeUrl)) - }) - } else { - embark.logger.info('embark-remix is set to connect to a Remix IDE at ' + colors.underline(remixIdeUrl)) - } - - // setup Embark service check - embark.registerServiceCheck('Remix IDE', (cb) => { - return cb({ name: `Remix IDE ${host}:${port}`, status: 'on' }) - }) - - // setup remixd shared folder service - const sharedFolderRouter = new remixd.Router(65520, sharedFolderService, { remixIdeUrl }, (webSocket) => { - sharedFolderService.setWebSocket(webSocket) - sharedFolderService.setupNotifications(sharedFolder) - sharedFolderService.sharedFolder(sharedFolder, readOnly) - }) - const killRemixD = sharedFolderRouter.start() - const kill = () => { - if (server) server.close() - embark.logger.info(colors.red('embark-remix stopped')) - process.exit() - } - - if (process.platform === 'win32') { - require('readline').createInterface({ - input: process.stdin, - output: process.stdout - }).on('SIGINT', function () { - process.emit('SIGINT') - }) - } - - process.on('SIGINT', kill) // catch ctrl-c - process.on('SIGTERM', kill) // catch kill - process.on('exit', killRemixD) -} diff --git a/apps/remix-ide/embark/package.json b/apps/remix-ide/embark/package.json deleted file mode 100644 index b665450219..0000000000 --- a/apps/remix-ide/embark/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "embark-remix", - "version": "0.0.2", - "description": "load remix IDE from embark environment", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "MIT", - "dependencies": { - "remix-ide": "latest", - "remixd": "latest", - "http-server": "latest" - } -} From 6a809361a41c6ac2ca7a538031f6c67562e9f0e6 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 10:52:50 +0200 Subject: [PATCH 04/28] Update publish-action.yml --- .github/workflows/publish-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml index 9cf0674850..04c9d04c59 100644 --- a/.github/workflows/publish-action.yml +++ b/.github/workflows/publish-action.yml @@ -17,7 +17,7 @@ jobs: - run: pwd - run: yarn run downloadsolc_assets - run: yarn run build:production - - run: echo "action_state=$('./apps/remix-ide/ci/publishIpfs' ${{ secrets.IPFS_PROJET_ID }} ${{ secrets.IPFS_PROJECT_SECRET }})" >> $GITHUB_ENV + - run: echo "action_state=$('./apps/remix-ide/ci/publishIpfs ${{ secrets.IPFS_PROJET_ID }} ${{ secrets.IPFS_PROJECT_SECRET }}')" >> $GITHUB_ENV - uses: mshick/add-pr-comment@v1 with: message: | From 0aa0a57b74f1e47a46e81973c676846300da2543 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 11:03:02 +0200 Subject: [PATCH 05/28] Update publish-action.yml --- .github/workflows/publish-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml index 04c9d04c59..9cf0674850 100644 --- a/.github/workflows/publish-action.yml +++ b/.github/workflows/publish-action.yml @@ -17,7 +17,7 @@ jobs: - run: pwd - run: yarn run downloadsolc_assets - run: yarn run build:production - - run: echo "action_state=$('./apps/remix-ide/ci/publishIpfs ${{ secrets.IPFS_PROJET_ID }} ${{ secrets.IPFS_PROJECT_SECRET }}')" >> $GITHUB_ENV + - run: echo "action_state=$('./apps/remix-ide/ci/publishIpfs' ${{ secrets.IPFS_PROJET_ID }} ${{ secrets.IPFS_PROJECT_SECRET }})" >> $GITHUB_ENV - uses: mshick/add-pr-comment@v1 with: message: | From d60ed148163b76b5aac1f0a95d56536da3d17ebd Mon Sep 17 00:00:00 2001 From: ryestew Date: Tue, 28 Jun 2022 17:21:43 -0400 Subject: [PATCH 06/28] change all instances of File Explorers to File Explorer --- apps/remix-ide-e2e/src/tests/defaultLayout.test.ts | 6 +++--- apps/remix-ide-e2e/src/tests/fileExplorer.test.ts | 2 +- apps/remix-ide/src/app/panels/file-panel.js | 2 +- apps/remix-ide/src/walkthroughService.js | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/defaultLayout.test.ts b/apps/remix-ide-e2e/src/tests/defaultLayout.test.ts index 5d5f90de45..d79515020f 100644 --- a/apps/remix-ide-e2e/src/tests/defaultLayout.test.ts +++ b/apps/remix-ide-e2e/src/tests/defaultLayout.test.ts @@ -17,7 +17,7 @@ module.exports = { 'Loads Side Panel': function (browser: NightwatchBrowser) { browser.waitForElementVisible('div[data-id="remixIdeSidePanel"]') - .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORERS') + .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORER') .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .waitForElementVisible('[data-id="treeViewLitreeViewItemcontracts"]') .waitForElementVisible('[data-id="treeViewLitreeViewItemscripts"]') @@ -40,12 +40,12 @@ module.exports = { 'Toggles Side Panel': function (browser: NightwatchBrowser) { browser.waitForElementVisible('div[data-id="remixIdeSidePanel"]') - .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORERS') + .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORER') .clickLaunchIcon('filePanel') .assert.hidden('div[data-id="remixIdeSidePanel"]') .clickLaunchIcon('filePanel') .assert.visible('div[data-id="remixIdeSidePanel"]') - .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORERS') + .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORER') }, 'Toggles Terminal': function (browser: NightwatchBrowser) { diff --git a/apps/remix-ide-e2e/src/tests/fileExplorer.test.ts b/apps/remix-ide-e2e/src/tests/fileExplorer.test.ts index 663c1bb791..7b26d84679 100644 --- a/apps/remix-ide-e2e/src/tests/fileExplorer.test.ts +++ b/apps/remix-ide-e2e/src/tests/fileExplorer.test.ts @@ -18,7 +18,7 @@ module.exports = { 'Should create a new file `5_New_contract.sol` in file explorer': function (browser: NightwatchBrowser) { browser.waitForElementVisible('div[data-id="remixIdeSidePanel"]') .clickLaunchIcon('filePanel') - .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORERS') + .assert.containsText('h6[data-id="sidePanelSwapitTitle"]', 'FILE EXPLORER') .click('li[data-id="treeViewLitreeViewItemREADME.txt"]') // focus on root directory .click('*[data-id="fileExplorerNewFilecreateNewFile"]') .pause(1000) diff --git a/apps/remix-ide/src/app/panels/file-panel.js b/apps/remix-ide/src/app/panels/file-panel.js index f2a423264b..b25fe16c82 100644 --- a/apps/remix-ide/src/app/panels/file-panel.js +++ b/apps/remix-ide/src/app/panels/file-panel.js @@ -29,7 +29,7 @@ const { SlitherHandle } = require('../files/slither-handle.js') const profile = { name: 'filePanel', - displayName: 'File explorers', + displayName: 'File explorer', methods: ['createNewFile', 'uploadFile', 'getCurrentWorkspace', 'getWorkspaces', 'createWorkspace', 'setWorkspace', 'registerContextMenuItem', 'renameWorkspace', 'deleteWorkspace'], events: ['setWorkspace', 'workspaceRenamed', 'workspaceDeleted', 'workspaceCreated'], icon: 'assets/img/fileManager.webp', diff --git a/apps/remix-ide/src/walkthroughService.js b/apps/remix-ide/src/walkthroughService.js index b9ffab4416..8f088c443c 100644 --- a/apps/remix-ide/src/walkthroughService.js +++ b/apps/remix-ide/src/walkthroughService.js @@ -33,7 +33,7 @@ export class WalkthroughService extends Plugin { { element: document.querySelector('#verticalIconsKindsolidity'), title: 'Solidity Compiler', - intro: 'Having selected a .sol file in the File Explorers (the icon above), compile it with the Solidity Compiler.', + intro: 'Having selected a .sol file in the File Explorer (the icon above), compile it with the Solidity Compiler.', tooltipClass: 'bg-light text-dark', position: 'right' }, From c51885b7d3ac2a65113321f77aabe35223071c32 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Wed, 29 Jun 2022 14:46:59 +0530 Subject: [PATCH 07/28] bin folder deleted --- apps/remix-ide/bin/remix-ide | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100755 apps/remix-ide/bin/remix-ide diff --git a/apps/remix-ide/bin/remix-ide b/apps/remix-ide/bin/remix-ide deleted file mode 100755 index 887bab51fa..0000000000 --- a/apps/remix-ide/bin/remix-ide +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -var path = require('path') -var httpServer = require('http-server') -var remixd = require('remixd') - -var server = httpServer.createServer({ - root: path.join(__dirname, '/../') -}) - -var folder = process.argv.length > 2 ? process.argv[2] : process.cwd() - -server.listen(8080, '127.0.0.1', function () {}) -var router = new remixd.Router(65520, remixd.services.sharedFolder, { remixIdeUrl: 'http://localhost:8080' }, (webSocket) => { - remixd.services.sharedFolder.setWebSocket(webSocket) - remixd.services.sharedFolder.setupNotifications(folder) - remixd.services.sharedFolder.sharedFolder(folder, false) -}) - -router.start() - -console.log('\x1b[33m%s\x1b[0m', 'Starting Remix IDE at http://localhost:8080 and sharing ' + folder) From b923647b8a5121b9b11eb16ee3a5b70728376bfa Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 13:46:10 +0200 Subject: [PATCH 08/28] add matomo for the recorder --- apps/remix-ide/src/app/tabs/runTab/model/recorder.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js index 6178063843..9961f1dbb6 100644 --- a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js +++ b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js @@ -258,7 +258,9 @@ class Recorder { } runScenario (json, continueCb, promptCb, alertCb, confirmationCb, logCallBack, cb) { + _paq.push(['trackEvent', 'run', 'recorder', 'start']) if (!json) { + _paq.push(['trackEvent', 'run', 'recorder', 'wrong-json']) return cb('a json content must be provided') } if (typeof json === 'string') { From c752085a17f7b4e02946c266c4e85f7d11702d00 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 13:47:27 +0200 Subject: [PATCH 09/28] add a "live" mode to the recorder --- .../src/app/tabs/runTab/model/recorder.js | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js index 9961f1dbb6..ac9c56ab46 100644 --- a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js +++ b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js @@ -1,16 +1,28 @@ var async = require('async') var ethutil = require('ethereumjs-util') var remixLib = require('@remix-project/remix-lib') +import { Plugin } from '@remixproject/engine' +import * as packageJson from '../../../../.././../../package.json' var EventManager = remixLib.EventManager var format = remixLib.execution.txFormat var txHelper = remixLib.execution.txHelper const helper = require('../../../../lib/helper') +const _paq = window._paq = window._paq || [] //eslint-disable-line + +const profile = { + name: 'recorder', + displayName: 'Recorder', + description: '', + version: packageJson.version, + methods: [ ] +} /** * Record transaction as long as the user create them. */ -class Recorder { +class Recorder extends Plugin { constructor (blockchain) { + super(profile) this.event = new EventManager() this.blockchain = blockchain this.data = { _listen: true, _replay: false, journal: [], _createdContracts: {}, _createdContractsReverse: {}, _usedAccounts: {}, _abis: {}, _contractABIReferences: {}, _linkReferences: {} } @@ -169,16 +181,29 @@ class Recorder { /** * run the list of records * + * @param {Object} records * @param {Object} accounts * @param {Object} options * @param {Object} abis + * @param {Object} linkReferences + * @param {Function} confirmationCb + * @param {Function} continueCb + * @param {Function} promptCb + * @param {Function} alertCb + * @param {Function} logCallBack + * @param {Function} live * @param {Function} newContractFn * */ - run (records, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, newContractFn) { + run (records, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, live, newContractFn) { this.setListen(false) logCallBack(`Running ${records.length} transaction(s) ...`) - async.eachOfSeries(records, (tx, index, cb) => { + async.eachOfSeries(records, async (tx, index, cb) => { + if (live && tx.record.type === 'constructor') { + // resolve the bytecode using the contract name, this ensure getting the last compiled one. + const data = await this.call('compilerArtefacts', 'getArtefactsByContractName', tx.record.contractName) + tx.record.bytecode = data.artefact.evm.bytecode.object + } var record = this.resolveAddress(tx.record, accounts, options) var abi = abis[tx.record.abi] if (!abi) { @@ -277,6 +302,7 @@ class Recorder { var options = json.options || {} var abis = json.abis || {} var linkReferences = json.linkReferences || {} + var live = json.live || false } catch (e) { return cb('Invalid Scenario File. Please try again') } @@ -285,7 +311,7 @@ class Recorder { return } - this.run(txArray, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, (abi, address, contractName) => { + this.run(txArray, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, live, (abi, address, contractName) => { cb(null, abi, address, contractName) }) } From 7afffd16f5c1f9c0ec4405a7e3f70ac595b3a9ff Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 13:47:48 +0200 Subject: [PATCH 10/28] activate recorder plugin --- apps/remix-ide/src/app.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 4eb9423d38..1b7c7b483a 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -321,7 +321,8 @@ class AppComponent { filePanel.slitherHandle, linkLibraries, deployLibraries, - openZeppelinProxy + openZeppelinProxy, + run.recorder ]) this.layout.panels = { @@ -355,7 +356,7 @@ class AppComponent { await this.appManager.activatePlugin(['settings', 'config']) await this.appManager.activatePlugin(['hiddenPanel', 'pluginManager', 'contextualListener', 'terminal', 'blockchain', 'fetchAndCompile', 'contentImport', 'gistHandler']) await this.appManager.activatePlugin(['settings']) - await this.appManager.activatePlugin(['walkthrough','storage', 'search','compileAndRun']) + await this.appManager.activatePlugin(['walkthrough','storage', 'search','compileAndRun', 'recorder']) this.appManager.on( 'filePanel', From c40a892854778bb3e65f2af30e5b42fa90ef6274 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 27 Jun 2022 14:56:50 +0200 Subject: [PATCH 11/28] addd e2e test --- .../src/tests/ballot_0_4_11.test.ts | 2 +- apps/remix-ide-e2e/src/tests/recorder.test.ts | 132 ++++++++++++++++++ 2 files changed, 133 insertions(+), 1 deletion(-) diff --git a/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts b/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts index 28b03219fc..4dce13d891 100644 --- a/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts +++ b/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts @@ -78,7 +78,7 @@ module.exports = { browser .openFile('Untitled.sol') .clickLaunchIcon('udapp') - .click('*[data-id="settingsWeb3Mode"]') + .click('*[data-id="settingsWeb3Mode"]') .waitForElementPresent('[data-id="envNotification-modal-footer-ok-react"]') .execute(function () { const modal = document.querySelector('[data-id="envNotification-modal-footer-ok-react"]') as any diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index 1b41d856da..b59848404f 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -95,6 +95,49 @@ module.exports = { status: 'true Transaction mined and execution succeed', 'decoded input': { 'uint256 _po': '10' } }) + + }, + + 'Run with live "mode"': function (browser: NightwatchBrowser) { + let addressRef: string + browser.addFile('scenario_live_mode.json', { content: JSON.stringify(liveModeScenario, null, '\t') }) + .addFile('scenario_live_mode_storage.sol', { content: testStorageForLiveMode }) + .clickLaunchIcon('solidity') + .click('*[data-id="compilerContainerCompileBtn"]') + .openFile('scenario_live_mode.json') + .clickLaunchIcon('udapp') + .click('*[data-id="deployAndRunClearInstances"]') + .click('i.runtransaction') + .pause(1000) + .clickInstance(0) + .getAddressAtPosition(0, (address) => { + addressRef = address + }) + .clickFunction('retrieve - call') + .perform((done) => { + browser.verifyCallReturnValue(addressRef, ['', '0:uint256: 350']) + .perform(() => done()) + }) + // change the init state and recompile the same contract. + .openFile('scenario_live_mode_storage.sol') + .setEditorValue(testStorageForLiveMode.replace('number = 350', 'number = 300')) + .pause(5000) + .clickLaunchIcon('solidity') + .click('*[data-id="compilerContainerCompileBtn"]') + .openFile('scenario_live_mode.json') + .clickLaunchIcon('udapp') + .click('*[data-id="deployAndRunClearInstances"]') + .click('i.runtransaction') + .pause(5000) + .clickInstance(0) + .getAddressAtPosition(0, (address) => { + addressRef = address + }) + .clickFunction('retrieve - call') + .perform((done) => { + browser.verifyCallReturnValue(addressRef, ['', '0:uint256: 300']) + .perform(() => done()) + }) .end() } } @@ -364,3 +407,92 @@ const scenario = { ] } } + +const liveModeScenario = { + "accounts": { + "account{0}": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4" + }, + "linkReferences": {}, + "live": true, + "transactions": [ + { + "timestamp": 1656329164297, + "record": { + "value": "0", + "parameters": [], + "abi": "0x8b8c9c14c8e1442e90dd6ff82bb9889ccfe5a54d88ef30776f11047ecce5fedb", + "contractName": "Storage", + "bytecode": "608060405234801561001057600080fd5b5060c88061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504632e64cec1811460535780636057361d146068575b600080fd5b60005460405190815260200160405180910390f35b60786073366004607a565b600055565b005b600060208284031215608b57600080fd5b503591905056fea264697066735822122091f1bc250ccda7caf2b0d9f67b0314d92233fdb5952b72cece72bd2a5d43cfc264736f6c63430008070033", + "linkReferences": {}, + "name": "", + "inputs": "()", + "type": "constructor", + "from": "account{0}" + } + } + ], + "abis": { + "0x8b8c9c14c8e1442e90dd6ff82bb9889ccfe5a54d88ef30776f11047ecce5fedb": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + } +} + +const testStorageForLiveMode = `// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + * @custom:dev-run-script ./scripts/deploy_with_ethers.ts + */ +contract Storage { + + uint256 number; + + constructor () { + number = 350; + } + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +}` From d820993e0fde7617eae322510c2ee2aea2276355 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jun 2022 12:00:12 +0200 Subject: [PATCH 12/28] use const --- apps/remix-ide/src/app/tabs/runTab/model/recorder.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js index ac9c56ab46..8ccc8ccd67 100644 --- a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js +++ b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js @@ -297,12 +297,12 @@ class Recorder extends Plugin { } try { - var txArray = json.transactions || [] - var accounts = json.accounts || [] - var options = json.options || {} - var abis = json.abis || {} - var linkReferences = json.linkReferences || {} - var live = json.live || false + const txArray = json.transactions || [] + const accounts = json.accounts || [] + const options = json.options || {} + const abis = json.abis || {} + const linkReferences = json.linkReferences || {} + const live = json.live || false } catch (e) { return cb('Invalid Scenario File. Please try again') } From 60f8b1da989a3cfc4377b965355905e568d4e512 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jun 2022 12:00:22 +0200 Subject: [PATCH 13/28] linting --- apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts b/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts index 4dce13d891..28b03219fc 100644 --- a/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts +++ b/apps/remix-ide-e2e/src/tests/ballot_0_4_11.test.ts @@ -78,7 +78,7 @@ module.exports = { browser .openFile('Untitled.sol') .clickLaunchIcon('udapp') - .click('*[data-id="settingsWeb3Mode"]') + .click('*[data-id="settingsWeb3Mode"]') .waitForElementPresent('[data-id="envNotification-modal-footer-ok-react"]') .execute(function () { const modal = document.querySelector('[data-id="envNotification-modal-footer-ok-react"]') as any From c8bfdfb61dbf328b8d116fe10f6c538d95f9afdf Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jun 2022 13:23:02 +0200 Subject: [PATCH 14/28] live mode is define from the UI & general improvement --- apps/remix-ide-e2e/src/tests/recorder.test.ts | 1 + .../src/app/tabs/runTab/model/recorder.js | 29 ++++++----- apps/remix-ide/src/blockchain/blockchain.js | 2 +- .../remix-ui/run-tab/src/lib/actions/index.ts | 4 +- .../run-tab/src/lib/actions/recorder.ts | 7 +-- .../src/lib/components/recorderCardUI.tsx | 50 ++++++++++++++----- libs/remix-ui/run-tab/src/lib/types/index.ts | 2 +- .../run-tab/src/lib/types/recorder.d.ts | 2 +- 8 files changed, 64 insertions(+), 33 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index b59848404f..ca3028bcbb 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -107,6 +107,7 @@ module.exports = { .openFile('scenario_live_mode.json') .clickLaunchIcon('udapp') .click('*[data-id="deployAndRunClearInstances"]') + .click('*[data-id="runtabLivemodeInput"]') .click('i.runtransaction') .pause(1000) .clickInstance(0) diff --git a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js index 8ccc8ccd67..550cf5fa26 100644 --- a/apps/remix-ide/src/app/tabs/runTab/model/recorder.js +++ b/apps/remix-ide/src/app/tabs/runTab/model/recorder.js @@ -191,15 +191,16 @@ class Recorder extends Plugin { * @param {Function} promptCb * @param {Function} alertCb * @param {Function} logCallBack - * @param {Function} live + * @param {Function} liveMode * @param {Function} newContractFn * */ - run (records, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, live, newContractFn) { + run (records, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, liveMode, newContractFn) { this.setListen(false) - logCallBack(`Running ${records.length} transaction(s) ...`) + const liveMsg = liveMode ? ' in live mode' : '' + logCallBack(`Running ${records.length} transaction(s)${liveMsg} ...`) async.eachOfSeries(records, async (tx, index, cb) => { - if (live && tx.record.type === 'constructor') { + if (liveMode && tx.record.type === 'constructor') { // resolve the bytecode using the contract name, this ensure getting the last compiled one. const data = await this.call('compilerArtefacts', 'getArtefactsByContractName', tx.record.contractName) tx.record.bytecode = data.artefact.evm.bytecode.object @@ -282,7 +283,7 @@ class Recorder extends Plugin { }, () => { this.setListen(true) }) } - runScenario (json, continueCb, promptCb, alertCb, confirmationCb, logCallBack, cb) { + runScenario (liveMode, json, continueCb, promptCb, alertCb, confirmationCb, logCallBack, cb) { _paq.push(['trackEvent', 'run', 'recorder', 'start']) if (!json) { _paq.push(['trackEvent', 'run', 'recorder', 'wrong-json']) @@ -296,13 +297,17 @@ class Recorder extends Plugin { } } + let txArray + let accounts + let options + let abis + let linkReferences try { - const txArray = json.transactions || [] - const accounts = json.accounts || [] - const options = json.options || {} - const abis = json.abis || {} - const linkReferences = json.linkReferences || {} - const live = json.live || false + txArray = json.transactions || [] + accounts = json.accounts || [] + options = json.options || {} + abis = json.abis || {} + linkReferences = json.linkReferences || {} } catch (e) { return cb('Invalid Scenario File. Please try again') } @@ -311,7 +316,7 @@ class Recorder extends Plugin { return } - this.run(txArray, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, live, (abi, address, contractName) => { + this.run(txArray, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, liveMode, (abi, address, contractName) => { cb(null, abi, address, contractName) }) } diff --git a/apps/remix-ide/src/blockchain/blockchain.js b/apps/remix-ide/src/blockchain/blockchain.js index 5f6d3ad6c6..60b27186cd 100644 --- a/apps/remix-ide/src/blockchain/blockchain.js +++ b/apps/remix-ide/src/blockchain/blockchain.js @@ -74,7 +74,7 @@ export class Blockchain extends Plugin { this.networkStatus = { network, error } this.event.trigger('networkStatus', [this.networkStatus]) }) - }, 1000) + }, 100000) } getCurrentNetworkStatus () { diff --git a/libs/remix-ui/run-tab/src/lib/actions/index.ts b/libs/remix-ui/run-tab/src/lib/actions/index.ts index 60cfe8513f..9943cfc727 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/index.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts @@ -26,7 +26,7 @@ export const initRunTab = (udapp: RunTab) => async (reducerDispatch: React.Dispa setupEvents(plugin, dispatch) setInterval(() => { fillAccountsList(plugin, dispatch) - }, 1000) + }, 10000000) } export const setAccountAddress = (account: string) => setAccount(dispatch, account) @@ -54,7 +54,7 @@ export const getExecutionContext = () => getContext(plugin) export const executeTransactions = (instanceIndex: number, lookupOnly: boolean, funcABI: FuncABI, inputsValues: string, contractName: string, contractABI, contract, address, logMsg:string, mainnetPrompt: MainnetPrompt, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, funcIndex?: number) => runTransactions(plugin, dispatch, instanceIndex, lookupOnly, funcABI, inputsValues, contractName, contractABI, contract, address, logMsg, mainnetPrompt, gasEstimationPrompt, passphrasePrompt, funcIndex) export const loadFromAddress = (contract: ContractData, address: string) => loadAddress(plugin, dispatch, contract, address) export const storeNewScenario = async (prompt: (msg: string, defaultValue: string) => JSX.Element) => storeScenario(plugin, dispatch, prompt) -export const runScenario = (gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => runCurrentScenario(plugin, dispatch, gasEstimationPrompt, passphrasePrompt, confirmDialogContent) +export const runScenario = (liveMode: boolean, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => runCurrentScenario(liveMode, plugin, dispatch, gasEstimationPrompt, passphrasePrompt, confirmDialogContent) export const setScenarioPath = (path: string) => updateScenarioPath(dispatch, path) export const getFuncABIValues = (funcABI: FuncABI) => getFuncABIInputs(plugin, funcABI) export const setNetworkName = (networkName: string) => setNetworkNameFromProvider(dispatch, networkName) diff --git a/libs/remix-ui/run-tab/src/lib/actions/recorder.ts b/libs/remix-ui/run-tab/src/lib/actions/recorder.ts index 7f30ee1759..2bf910650b 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/recorder.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/recorder.ts @@ -36,12 +36,13 @@ export const storeScenario = async (plugin: RunTab, dispatch: React.Dispatch, file: string, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => { +const runScenario = (liveMode: boolean, plugin: RunTab, dispatch: React.Dispatch, file: string, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => { if (!file) return dispatch(displayNotification('Alert', 'Unable to run scenerio, no specified scenario file', 'OK', null)) plugin.fileManager.readFile(file).then((json) => { // TODO: there is still a UI dependency to remove here, it's still too coupled at this point to remove easily plugin.recorder.runScenario( + liveMode, json, (error, continueTxExecution, cancelCb) => { continueHandler(dispatch, gasEstimationPrompt, error, continueTxExecution, cancelCb) @@ -64,9 +65,9 @@ const runScenario = (plugin: RunTab, dispatch: React.Dispatch, file: string }).catch((error) => dispatch(displayNotification('Alert', error, 'OK', null))) } -export const runCurrentScenario = (plugin: RunTab, dispatch: React.Dispatch, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => { +export const runCurrentScenario = (liveMode: boolean, plugin: RunTab, dispatch: React.Dispatch, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => { const file = plugin.config.get('currentFile') if (!file) return dispatch(displayNotification('Alert', 'A scenario file has to be selected', 'Ok', null)) - runScenario(plugin, dispatch, file, gasEstimationPrompt, passphrasePrompt, confirmDialogContent) + runScenario(liveMode, plugin, dispatch, file, gasEstimationPrompt, passphrasePrompt, confirmDialogContent) } \ No newline at end of file diff --git a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx index 36e355e4b7..044626601e 100644 --- a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx @@ -1,15 +1,18 @@ // eslint-disable-next-line no-use-before-define -import React, {useState} from 'react' +import React, {useRef, useState} from 'react' import { RecorderProps } from '../types' +import { OverlayTrigger, Tooltip } from 'react-bootstrap' // eslint-disable-line export function RecorderUI (props: RecorderProps) { + const inputLive = useRef() const [toggleExpander, setToggleExpander] = useState(false) const triggerRecordButton = () => { props.storeScenario(props.scenarioPrompt) } const handleClickRunButton = () => { - props.runCurrentScenario(props.gasEstimationPrompt, props.passphrasePrompt, props.mainnetPrompt) + const liveMode = inputLive.current ? inputLive.current.checked : false + props.runCurrentScenario(liveMode, props.gasEstimationPrompt, props.passphrasePrompt, props.mainnetPrompt) } const toggleClass = () => { @@ -22,6 +25,15 @@ export function RecorderUI (props: RecorderProps) {
{props.count}
+ + Save transactions (deployed contracts and function executions) and replay then in an + another environment.
e.g Transactions created in Javascript VM can be replayed in the Injected Web3. +
+ + }> + +
@@ -29,17 +41,29 @@ export function RecorderUI (props: RecorderProps) {
-
-
- All transactions (deployed contracts and function executions) can be saved and replayed in - another environment. e.g Transactions created in Javascript VM can be replayed in the Injected Web3. -
-
- - -
+
+
+ + +
+
+ + Save {props.count} transaction(s) to JSON. + + + }> + + + + Run Transaction from the current scenario file. + + + }> + + +
) diff --git a/libs/remix-ui/run-tab/src/lib/types/index.ts b/libs/remix-ui/run-tab/src/lib/types/index.ts index 3e162ea9d6..c304d8815f 100644 --- a/libs/remix-ui/run-tab/src/lib/types/index.ts +++ b/libs/remix-ui/run-tab/src/lib/types/index.ts @@ -166,7 +166,7 @@ export interface ContractDropdownProps { export interface RecorderProps { storeScenario: (prompt: (msg: string, defaultValue: string) => JSX.Element) => void, - runCurrentScenario: (gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => void, + runCurrentScenario: (liveMode: boolean, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, confirmDialogContent: MainnetPrompt) => void, mainnetPrompt: MainnetPrompt, gasEstimationPrompt: (msg: string) => JSX.Element, passphrasePrompt: (msg: string) => JSX.Element, diff --git a/libs/remix-ui/run-tab/src/lib/types/recorder.d.ts b/libs/remix-ui/run-tab/src/lib/types/recorder.d.ts index 44f79bda4f..3c4ec18c20 100644 --- a/libs/remix-ui/run-tab/src/lib/types/recorder.d.ts +++ b/libs/remix-ui/run-tab/src/lib/types/recorder.d.ts @@ -9,7 +9,7 @@ export class Recorder { getAll: () => void; clearAll: () => void; run: (records, accounts, options, abis, linkReferences, confirmationCb, continueCb, promptCb, alertCb, logCallBack, newContractFn) => void - runScenario: (json, continueCb, promptCb, alertCb, confirmationCb, logCallBack, cb) => void + runScenario: (liveMode, json, continueCb, promptCb, alertCb, confirmationCb, logCallBack, cb) => void } import { Blockchain } from "./blockchain"; From 11ed5e9d16f742834d184f1b9c980131028f155a Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jun 2022 14:41:27 +0200 Subject: [PATCH 15/28] rollback setInterval --- apps/remix-ide/src/blockchain/blockchain.js | 2 +- libs/remix-ui/run-tab/src/lib/actions/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/blockchain/blockchain.js b/apps/remix-ide/src/blockchain/blockchain.js index 60b27186cd..5f6d3ad6c6 100644 --- a/apps/remix-ide/src/blockchain/blockchain.js +++ b/apps/remix-ide/src/blockchain/blockchain.js @@ -74,7 +74,7 @@ export class Blockchain extends Plugin { this.networkStatus = { network, error } this.event.trigger('networkStatus', [this.networkStatus]) }) - }, 100000) + }, 1000) } getCurrentNetworkStatus () { diff --git a/libs/remix-ui/run-tab/src/lib/actions/index.ts b/libs/remix-ui/run-tab/src/lib/actions/index.ts index 9943cfc727..5dc0eb2de7 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/index.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts @@ -26,7 +26,7 @@ export const initRunTab = (udapp: RunTab) => async (reducerDispatch: React.Dispa setupEvents(plugin, dispatch) setInterval(() => { fillAccountsList(plugin, dispatch) - }, 10000000) + }, 1000) } export const setAccountAddress = (account: string) => setAccount(dispatch, account) From fd9e4ea9dd45cea8489f8638e3c1672f698352b1 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jun 2022 15:01:42 +0200 Subject: [PATCH 16/28] fix tests --- apps/remix-ide-e2e/src/tests/recorder.test.ts | 8 ++++---- .../run-tab/src/lib/components/recorderCardUI.tsx | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index ca3028bcbb..8e33df2842 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -42,7 +42,7 @@ module.exports = { .createContract(['12']) .clickInstance(0) .clickFunction('set - transact (not payable)', { types: 'uint256 _p', values: '34' }) - .click('i.savetransaction') + .click('.savetransaction') .waitForElementVisible('[data-id="udappNotify-modal-footer-ok-react"]') .execute(function () { const modalOk = document.querySelector('[data-id="udappNotify-modal-footer-ok-react"]') as any @@ -77,7 +77,7 @@ module.exports = { .selectContract('t2est') .pause(1000) .createContract([]) - .click('i.savetransaction') + .click('.savetransaction') .waitForElementVisible('[data-id="udappNotify-modal-footer-ok-react"]') .execute(function () { const modalOk = document.querySelector('[data-id="udappNotify-modal-footer-ok-react"]') as any @@ -108,7 +108,7 @@ module.exports = { .clickLaunchIcon('udapp') .click('*[data-id="deployAndRunClearInstances"]') .click('*[data-id="runtabLivemodeInput"]') - .click('i.runtransaction') + .click('.runtransaction') .pause(1000) .clickInstance(0) .getAddressAtPosition(0, (address) => { @@ -128,7 +128,7 @@ module.exports = { .openFile('scenario_live_mode.json') .clickLaunchIcon('udapp') .click('*[data-id="deployAndRunClearInstances"]') - .click('i.runtransaction') + .click('.runtransaction') .pause(5000) .clickInstance(0) .getAddressAtPosition(0, (address) => { diff --git a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx index 044626601e..eac98c0812 100644 --- a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx @@ -43,8 +43,8 @@ export function RecorderUI (props: RecorderProps) {
- - + +
Date: Wed, 29 Jun 2022 15:42:20 +0200 Subject: [PATCH 17/28] fix labels --- apps/remix-ide-e2e/src/tests/recorder.test.ts | 1 - .../run-tab/src/lib/components/recorderCardUI.tsx | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index 8e33df2842..7e8748b737 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -414,7 +414,6 @@ const liveModeScenario = { "account{0}": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4" }, "linkReferences": {}, - "live": true, "transactions": [ { "timestamp": 1656329164297, diff --git a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx index eac98c0812..e7fb5c9795 100644 --- a/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx @@ -27,8 +27,7 @@ export function RecorderUI (props: RecorderProps) {
{props.count}
- Save transactions (deployed contracts and function executions) and replay then in an - another environment.
e.g Transactions created in Javascript VM can be replayed in the Injected Web3. + Save transactions (deployed contracts and function executions) and replay them in another environment.
e.g Transactions created in Javascript VM can be replayed in the Injected Web3.
}> @@ -44,12 +43,12 @@ export function RecorderUI (props: RecorderProps) {
- +
- Save {props.count} transaction(s) to JSON. + Save {props.count} transaction(s) as scenario file. }> @@ -57,7 +56,7 @@ export function RecorderUI (props: RecorderProps) { - Run Transaction from the current scenario file. + Run transaction(s) from the current scenario file. }> From 7f1d76c92aba2d3aa90785eef1a8737a373553d8 Mon Sep 17 00:00:00 2001 From: ryestew Date: Thu, 16 Jun 2022 08:43:46 -0400 Subject: [PATCH 18/28] update titles --- libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx | 2 +- libs/remix-ui/run-tab/src/lib/components/account.tsx | 4 ++-- .../run-tab/src/lib/components/contractDropdownUI.tsx | 8 ++++---- libs/remix-ui/run-tab/src/lib/components/environment.tsx | 2 +- libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx | 2 +- libs/remix-ui/run-tab/src/lib/components/value.tsx | 4 ++-- libs/remix-ui/run-tab/src/lib/reducers/runTab.ts | 7 +++---- .../solidity-compiler/src/lib/compiler-container.tsx | 6 +++--- .../src/lib/solidity-unit-testing.tsx | 2 +- 9 files changed, 18 insertions(+), 19 deletions(-) diff --git a/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx b/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx index 25dd08705b..45ea635d8b 100644 --- a/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx @@ -331,7 +331,7 @@ export const DebuggerUI = (props: DebuggerUIProps) => { return { ...prevState, opt: { ...prevState.opt, debugWithGeneratedSources: checked } } }) }} type="checkbox" title="Debug with generated sources" /> - +
{ state.isLocalNodeUsed &&
{ diff --git a/libs/remix-ui/run-tab/src/lib/components/account.tsx b/libs/remix-ui/run-tab/src/lib/components/account.tsx index f8a74a1a34..1cb7aebc4c 100644 --- a/libs/remix-ui/run-tab/src/lib/components/account.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/account.tsx @@ -160,8 +160,8 @@ export function AccountUI (props: AccountProps) { accounts.map((value, index) => ) } -
- +
+
) diff --git a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx index df1831deaa..4abe432242 100644 --- a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx @@ -119,12 +119,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { if (enable) { setAtAddressOptions({ disabled: false, - title: 'Interact with the given contract.' + title: 'Interact with the given contract - needs the .abi file or compiled .sol file (with the same compiler settings)' }) } else { setAtAddressOptions({ disabled: true, - title: loadedAddress ? '⚠ Compile *.sol file or select *.abi file.' : '⚠ Compile *.sol file or select *.abi file & then enter the address of deployed contract.' + title: loadedAddress ? '⚠ Compile a *.sol file or select a *.abi file.' : '⚠ For use with a deployed contract and its .abi file or compiled .sol file (with the same compiler settings)' }) } } @@ -133,12 +133,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { if (enable) { setContractOptions({ disabled: false, - title: 'Select contract for Deploy or At Address.' + title: 'Select compiled a contract to deploy or to use with At Address.' }) } else { setContractOptions({ disabled: true, - title: loadType === 'sol' ? '⚠ Select and compile *.sol file to deploy or access a contract.' : '⚠ Selected *.abi file allows accessing contracts, select and compile *.sol file to deploy and access one.' + title: loadType === 'sol' ? '⚠ Select and compile *.sol file to deploy or access a contract.' : '⚠ When there is a compiled .sol file, the choice of contracts to deploy or to use with AtAddress is made here' }) } } diff --git a/libs/remix-ui/run-tab/src/lib/components/environment.tsx b/libs/remix-ui/run-tab/src/lib/components/environment.tsx index 4853f6f12b..9c22ce3751 100644 --- a/libs/remix-ui/run-tab/src/lib/components/environment.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/environment.tsx @@ -29,7 +29,7 @@ export function EnvironmentUI (props: EnvironmentProps) { ) } - +
) diff --git a/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx b/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx index 19e7876a75..fb9c08c213 100644 --- a/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx @@ -10,7 +10,7 @@ export function GasPriceUI (props: GasPriceProps) { return (
- +
) } diff --git a/libs/remix-ui/run-tab/src/lib/components/value.tsx b/libs/remix-ui/run-tab/src/lib/components/value.tsx index 3b2008a5f1..fd1892b58b 100644 --- a/libs/remix-ui/run-tab/src/lib/components/value.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/value.tsx @@ -47,7 +47,7 @@ export function ValueUI (props: ValueProps) { return (
- +
{
- handleLanguageChange(e.target.value)} disabled={state.useFileConfiguration} value={state.language} className="custom-select" id="compilierLanguageSelector" title="Language specification available from Compiler >= v0.5.7"> @@ -789,7 +789,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
{ (!showFilePathInput && state.useFileConfiguration) && {} : openFile} className="py-2 remixui_compilerConfigPath" >{configFilePath === '' ? 'No file selected.' : configFilePath} } @@ -861,7 +861,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => { }> - '@custom:dev-run-script file_path'} direction='top'> + '@custom:dev-run-script file_path'} direction='top'> diff --git a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx index 30f1b2e0df..8f55fe2ea7 100644 --- a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx +++ b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx @@ -677,7 +677,7 @@ export const SolidityUnitTesting = (props: Record) => { // eslint-d
{ state.isLocalNodeUsed &&
{ From b3128af0e29c93aaaca0027250cda519dc46a4c8 Mon Sep 17 00:00:00 2001 From: ryestew Date: Tue, 28 Jun 2022 16:52:07 -0400 Subject: [PATCH 20/28] update tooltips --- .../run-tab/src/lib/components/contractDropdownUI.tsx | 8 ++++---- libs/remix-ui/run-tab/src/lib/components/environment.tsx | 2 +- libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx | 2 +- libs/remix-ui/run-tab/src/lib/reducers/runTab.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx index 4abe432242..900b7dc2c4 100644 --- a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx @@ -119,12 +119,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { if (enable) { setAtAddressOptions({ disabled: false, - title: 'Interact with the given contract - needs the .abi file or compiled .sol file (with the same compiler settings)' + title: 'Interact with the deployed contract - requires the .abi file or compiled .sol file to be selected in the editor (with the same compiler configuration)' }) } else { setAtAddressOptions({ disabled: true, - title: loadedAddress ? '⚠ Compile a *.sol file or select a *.abi file.' : '⚠ For use with a deployed contract and its .abi file or compiled .sol file (with the same compiler settings)' + title: loadedAddress ? 'Compile a *.sol file or select a *.abi file.' : 'To interact with a deployed contract, enter its address and compile its source *.sol file (with the same compiler settings) or select its .abi file in the editor. ' }) } } @@ -133,12 +133,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { if (enable) { setContractOptions({ disabled: false, - title: 'Select compiled a contract to deploy or to use with At Address.' + title: 'Select a compiled contract to deploy or to use with At Address.' }) } else { setContractOptions({ disabled: true, - title: loadType === 'sol' ? '⚠ Select and compile *.sol file to deploy or access a contract.' : '⚠ When there is a compiled .sol file, the choice of contracts to deploy or to use with AtAddress is made here' + title: loadType === 'sol' ? 'Select and compile *.sol file to deploy or access a contract.' : 'When there is a compiled .sol file, the choice of contracts to deploy or to use with AtAddress is made here.' }) } } diff --git a/libs/remix-ui/run-tab/src/lib/components/environment.tsx b/libs/remix-ui/run-tab/src/lib/components/environment.tsx index 9c22ce3751..c63f1ba88f 100644 --- a/libs/remix-ui/run-tab/src/lib/components/environment.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/environment.tsx @@ -29,7 +29,7 @@ export function EnvironmentUI (props: EnvironmentProps) { ) } - +
) diff --git a/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx b/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx index fb9c08c213..a7c5335abd 100644 --- a/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx @@ -10,7 +10,7 @@ export function GasPriceUI (props: GasPriceProps) { return (
- +
) } diff --git a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts index 11eff149ca..20ecb8b1ef 100644 --- a/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts +++ b/libs/remix-ui/run-tab/src/lib/reducers/runTab.ts @@ -115,14 +115,14 @@ export const runTabInitialState: RunTabState = { providerList: [{ id: 'vm-mode-london', dataId: 'settingsVMLondonMode', - title: 'Execution environment does not connect to any node. All data is stored in browser memory only.', + title: 'Execution environment is local to Remix. Data is only saved to browser memory and will vanish upon reload.', value: 'vm-london', fork: 'london', content: 'JavaScript VM (London)' }, { id: 'vm-mode-berlin', dataId: 'settingsVMBerlinMode', - title: 'Execution environment does not connect to any node. All data is stored in browser memory only.', + title: 'Execution environment is local to Remix. Data is only saved to browser memory and will vanish upon reload.', value: 'vm-berlin', fork: 'berlin', content: 'JavaScript VM (Berlin)' From b7ec7475d47769ed34458e22b84334b40c58fcf0 Mon Sep 17 00:00:00 2001 From: ryestew Date: Wed, 29 Jun 2022 10:05:33 -0400 Subject: [PATCH 21/28] Amount section now back to Value --- libs/remix-ui/run-tab/src/lib/components/value.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/run-tab/src/lib/components/value.tsx b/libs/remix-ui/run-tab/src/lib/components/value.tsx index fd1892b58b..6728639a45 100644 --- a/libs/remix-ui/run-tab/src/lib/components/value.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/value.tsx @@ -47,7 +47,7 @@ export function ValueUI (props: ValueProps) { return (
- +
Date: Fri, 24 Jun 2022 13:25:06 +0000 Subject: [PATCH 22/28] Bump eventsource from 1.1.0 to 1.1.2 Bumps [eventsource](https://github.com/EventSource/eventsource) from 1.1.0 to 1.1.2. - [Release notes](https://github.com/EventSource/eventsource/releases) - [Changelog](https://github.com/EventSource/eventsource/blob/master/HISTORY.md) - [Commits](https://github.com/EventSource/eventsource/compare/v1.1.0...v1.1.2) --- updated-dependencies: - dependency-name: eventsource dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6139c5e6c5..756ad82428 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6510,6 +6510,11 @@ boom@2.x.x: dependencies: hoek "2.x.x" +bootstrap@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" + integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== + borc@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" @@ -9550,7 +9555,7 @@ ent@~2.2.0: resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -entities@^2.0.0: +entities@^2.0.0, entities@^2.0.3: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== @@ -10201,11 +10206,9 @@ events@^2.0.0: integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2" + integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -17571,13 +17574,6 @@ ordered-read-streams@^1.0.0: dependencies: readable-stream "^2.0.1" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -20202,6 +20198,14 @@ rollup@1.31.1: "@types/node" "*" acorn "^7.1.0" +rss-parser@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/rss-parser/-/rss-parser-3.12.0.tgz#b8888699ea46304a74363fbd8144671b2997984c" + integrity sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A== + dependencies: + entities "^2.0.3" + xml2js "^0.4.19" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -20332,7 +20336,7 @@ sax@0.5.x: resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE= -sax@~1.2.4: +sax@>=0.6.0, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -22901,7 +22905,7 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.3: +url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== @@ -24086,6 +24090,19 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml2js@^0.4.19: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" From a46ed25185fc6db689c1903d36edfca9a203a068 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Thu, 30 Jun 2022 13:22:11 +0530 Subject: [PATCH 23/28] remove unused files --- .prettierignore | 4 --- .prettierrc | 3 --- tslint.json | 65 ------------------------------------------------- 3 files changed, 72 deletions(-) delete mode 100644 .prettierignore delete mode 100644 .prettierrc delete mode 100644 tslint.json diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index d0b804da2a..0000000000 --- a/.prettierignore +++ /dev/null @@ -1,4 +0,0 @@ -# Add files here to ignore them from prettier formatting - -/dist -/coverage diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 544138be45..0000000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singleQuote": true -} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index d948508f0e..0000000000 --- a/tslint.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "rulesDirectory": ["node_modules/@nrwl/workspace/src/tslint"], - "linterOptions": { - "exclude": ["**/*"] - }, - "rules": { - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "deprecation": { - "severity": "warn" - }, - "forin": true, - "import-blacklist": [true, "rxjs/Rx"], - "interface-over-type-literal": true, - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [true, "debug", "info", "time", "timeEnd", "trace"], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-inferrable-types": [true, "ignore-params"], - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-unnecessary-initializer": true, - "no-unused-expression": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "prefer-const": true, - "radix": true, - "triple-equals": [true, "allow-null-check"], - "unified-signatures": true, - "variable-name": false, - - "nx-enforce-module-boundaries": [ - true, - { - "enforceBuildableLibDependency": true, - "allow": [], - "depConstraints": [ - { "sourceTag": "*", "onlyDependOnLibsWithTags": ["*"] } - ] - } - ] - } -} From 77010ca6d5907bf9abca89a27cd6a37b968d1066 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Thu, 30 Jun 2022 13:38:27 +0530 Subject: [PATCH 24/28] remove deps --- package.json | 2 -- yarn.lock | 17 ----------------- 2 files changed, 19 deletions(-) diff --git a/package.json b/package.json index 2b29dab67e..f3c729203f 100644 --- a/package.json +++ b/package.json @@ -275,7 +275,6 @@ "csslint": "^1.0.2", "dotenv": "^8.2.0", "eslint": "6.8.0", - "eslint-config-prettier": "^6.11.0", "eslint-config-standard": "^14.1.1", "eslint-plugin-import": "2.20.2", "eslint-plugin-jsx-a11y": "6.4.1", @@ -313,7 +312,6 @@ "npm-run-all": "^4.0.2", "nyc": "^13.3.0", "onchange": "^3.2.1", - "prettier": "1.19.1", "request": "^2.83.0", "rimraf": "^2.6.1", "selenium-standalone": "^8.0.4", diff --git a/yarn.lock b/yarn.lock index 756ad82428..afbf76199d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9748,13 +9748,6 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" - eslint-config-standard@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" @@ -11296,11 +11289,6 @@ get-stdin@^5.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -18715,11 +18703,6 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" From 182a18f0f5461f4d20f278cc87b8a70bea05aa98 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Thu, 30 Jun 2022 14:05:28 +0530 Subject: [PATCH 25/28] fix linting --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index f3c729203f..cced59ff97 100644 --- a/package.json +++ b/package.json @@ -172,6 +172,7 @@ "core-js": "^3.6.5", "deep-equal": "^1.0.1", "document-register-element": "1.13.1", + "eslint-config-prettier": "^8.5.0", "ethereumjs-util": "^7.0.10", "ethers": "^5.4.2", "ethjs-util": "^0.1.6", diff --git a/yarn.lock b/yarn.lock index afbf76199d..0e6a65aa76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9748,6 +9748,11 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" +eslint-config-prettier@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + eslint-config-standard@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" From cf8ae17edf1d18e6ae37523d15786a938a382a2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 08:28:19 +0000 Subject: [PATCH 26/28] Bump ejs from 3.1.6 to 3.1.8 Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.8. - [Release notes](https://github.com/mde/ejs/releases) - [Changelog](https://github.com/mde/ejs/blob/main/CHANGELOG.md) - [Commits](https://github.com/mde/ejs/compare/v3.1.6...v3.1.8) --- updated-dependencies: - dependency-name: ejs dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 65 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6a65aa76..9ff99bef5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5463,11 +5463,6 @@ async-settle@^1.0.0: dependencies: async-done "^1.2.2" -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw== - async@^2.4.0, async@^2.5.0, async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -5480,6 +5475,11 @@ async@^3.1.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -6571,6 +6571,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + brace@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/brace/-/brace-0.8.0.tgz#e826c6d5054cae5f607ad7b1c81236dd2cf01978" @@ -7350,7 +7357,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -7945,7 +7952,7 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.0, concat-stream@^1.5.2: version "1.6.0" @@ -9426,11 +9433,11 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ejs@^3.1.5, ejs@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== dependencies: - jake "^10.6.1" + jake "^10.8.5" electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.857: version "1.3.866" @@ -10657,11 +10664,11 @@ file-uri-to-path@2: integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== filelist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" - integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: - minimatch "^3.0.4" + minimatch "^5.0.1" filename-regex@^2.0.0: version "2.0.1" @@ -13672,13 +13679,13 @@ it-to-stream@^0.1.1: p-fifo "^1.0.0" readable-stream "^3.6.0" -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== dependencies: - async "0.9.x" - chalk "^2.4.2" + async "^3.2.3" + chalk "^4.0.2" filelist "^1.0.1" minimatch "^3.0.4" @@ -15816,7 +15823,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@*, minimatch@3.0.4, minimatch@^3.0.4: +minimatch@*, minimatch@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -15830,6 +15837,20 @@ minimatch@^3.0.0, minimatch@^3.0.2: dependencies: brace-expansion "^1.0.0" +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" From 27455d7daee673855fe6ad2e56cc3cbc2d0a795b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:37:20 +0000 Subject: [PATCH 27/28] Bump async from 2.6.3 to 2.6.4 Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4. - [Release notes](https://github.com/caolan/async/releases) - [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md) - [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4) --- updated-dependencies: - dependency-name: async dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- yarn.lock | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9ff99bef5b..33b9527543 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5464,18 +5464,13 @@ async-settle@^1.0.0: async-done "^1.2.2" async@^2.4.0, async@^2.5.0, async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -async@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== - -async@^3.2.3: +async@^3.1.0, async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== From be328f32b2c83a058c83cef67de683a23d3b300e Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 24 Jun 2022 14:48:29 +0530 Subject: [PATCH 28/28] update fork list --- libs/remix-lib/src/execution/forkAt.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/remix-lib/src/execution/forkAt.ts b/libs/remix-lib/src/execution/forkAt.ts index c5f1a1e981..8e45ce9acf 100644 --- a/libs/remix-lib/src/execution/forkAt.ts +++ b/libs/remix-lib/src/execution/forkAt.ts @@ -50,6 +50,14 @@ const forks = { { number: 12965000, name: 'london' + }, + { + number: 13773000, + name: 'arrowGlacier' + }, + { + number: 15050000, + name: 'grayGlacier' } ], 3: [