From 125e35e595afb3fbccc5d6f3cadd57ee66c74a0d Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:12:18 +0530 Subject: [PATCH 01/18] 404.html added --- apps/remix-ide/src/404.html | 10 ++++++++++ workspace.json | 1 + 2 files changed, 11 insertions(+) create mode 100644 apps/remix-ide/src/404.html diff --git a/apps/remix-ide/src/404.html b/apps/remix-ide/src/404.html new file mode 100644 index 0000000000..908c62ad8e --- /dev/null +++ b/apps/remix-ide/src/404.html @@ -0,0 +1,10 @@ + + + + Test Remix + + + + \ No newline at end of file diff --git a/workspace.json b/workspace.json index 02a11c683b..b1ec5f63d5 100644 --- a/workspace.json +++ b/workspace.json @@ -18,6 +18,7 @@ "assets": [ "apps/remix-ide/src/assets", "apps/remix-ide/src/index.html", + "apps/remix-ide/src/404.html", "apps/remix-ide/src/favicon.ico" ], "styles": [], From 33941218860bf075f2bca70f2384c7bdce1c8111 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:12:46 +0530 Subject: [PATCH 02/18] query params updated --- libs/remix-lib/src/query-params.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/remix-lib/src/query-params.ts b/libs/remix-lib/src/query-params.ts index 7e89b226ff..41374be3bf 100644 --- a/libs/remix-lib/src/query-params.ts +++ b/libs/remix-lib/src/query-params.ts @@ -17,7 +17,9 @@ export class QueryParams { } get () { - const qs = window.location.hash.substr(1) + let qs + if (window.location.hash.startsWith('#/#')) qs = window.location.hash.substr(3) + else qs = window.location.hash.substr(1) if (window.location.search.length > 0) { // use legacy query params instead of hash From 4f2170c9fd69210f39314d7bacca9ec13f7a2de0 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:15:01 +0530 Subject: [PATCH 03/18] 404 updated --- apps/remix-ide/src/404.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/404.html b/apps/remix-ide/src/404.html index 908c62ad8e..f0cefda8bb 100644 --- a/apps/remix-ide/src/404.html +++ b/apps/remix-ide/src/404.html @@ -1,10 +1,15 @@ - Test Remix + \ No newline at end of file From 454fc54af43d1ed3eb440b335301fdb5544b4f2f Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:19:17 +0530 Subject: [PATCH 04/18] access address as query param --- .../workspace/src/lib/actions/index.ts | 27 ++++--------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/libs/remix-ui/workspace/src/lib/actions/index.ts b/libs/remix-ui/workspace/src/lib/actions/index.ts index b684fdc05a..a5b4491c94 100644 --- a/libs/remix-ui/workspace/src/lib/actions/index.ts +++ b/libs/remix-ui/workspace/src/lib/actions/index.ts @@ -21,7 +21,8 @@ let plugin, dispatch: React.Dispatch export type UrlParametersType = { gist: string, code: string, - url: string + url: string, + address: string } const basicWorkspaceInit = async (workspaces: { name: string; isGitRepo: boolean; }[], workspaceProvider) => { @@ -63,10 +64,9 @@ export const initWorkspace = (filePanelPlugin) => async (reducerDispatch: React. dispatch(setCurrentWorkspace({ name: 'code-sample', isGitRepo: false })) const filePath = await loadWorkspacePreset('code-template') plugin.on('editor', 'editorMounted', async () => await plugin.fileManager.openFile(filePath)) - } else if (window.location.pathname && window.location.pathname !== '/') { - let route = window.location.pathname - if (route.startsWith('/address/0x') && route.length === 51) { - const contractAddress = route.split('/')[2] + } else if (params.address) { + if (params.address.startsWith('0x') && params.address.length === 42) { + const contractAddress = params.address plugin.call('notification', 'toast', `Looking for contract(s) verified on different networks of Etherscan for contract address ${contractAddress} .....`) let data let count = 0 @@ -109,23 +109,6 @@ export const initWorkspace = (filePanelPlugin) => async (reducerDispatch: React. } catch (error) { await basicWorkspaceInit(workspaces, workspaceProvider) } - } else if (route.endsWith('.sol')) { - if (route.includes('blob')) route = route.replace('/blob', '') - let response: AxiosResponse - try { - response = await axios.get(`https://raw.githubusercontent.com${route}`) - } catch (error) { - plugin.call('notification', 'toast', `cound not find ${route} on GitHub`) - await basicWorkspaceInit(workspaces, workspaceProvider) - } - if (response && response.status === 200) { - const content = response.data - await createWorkspaceTemplate('github-code-sample', 'code-template') - plugin.setWorkspace({ name: 'github-code-sample', isLocalhost: false }) - dispatch(setCurrentWorkspace({ name: 'github-code-sample', isGitRepo: false })) - await workspaceProvider.set(route, content) - plugin.on('editor', 'editorMounted', async () => await plugin.fileManager.openFile(route)) - } else await basicWorkspaceInit(workspaces, workspaceProvider) } else await basicWorkspaceInit(workspaces, workspaceProvider) } else if (localStorage.getItem("currentWorkspace")) { const index = workspaces.findIndex(element => element.name == localStorage.getItem("currentWorkspace")) From 2c6ce58d02be594a763d94116f8ec4ea979d5351 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:21:52 +0530 Subject: [PATCH 05/18] add 404.html in source --- .circleci/config.yml | 6 +++--- apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh | 2 +- apps/remix-ide/ci/deploy_from_travis_remix-beta.sh | 2 +- apps/remix-ide/ci/deploy_from_travis_remix-live.sh | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8bcbed1fca..988b8940ea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -323,7 +323,7 @@ jobs: environment: - COMMIT_AUTHOR_EMAIL: "yann@ethereum.org" - COMMIT_AUTHOR: "Circle CI" - - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" + - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" working_directory: ~/remix-project steps: @@ -352,7 +352,7 @@ jobs: environment: - COMMIT_AUTHOR_EMAIL: "yann@ethereum.org" - COMMIT_AUTHOR: "Circle CI" - - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" + - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" working_directory: ~/remix-project steps: @@ -380,7 +380,7 @@ jobs: environment: - COMMIT_AUTHOR_EMAIL: "yann@ethereum.org" - COMMIT_AUTHOR: "Circle CI" - - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" + - FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js" working_directory: ~/remix-project steps: diff --git a/apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh b/apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh index 19860c9c1c..9ea9fa20ee 100755 --- a/apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh +++ b/apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh @@ -14,7 +14,7 @@ echo "To use an offline copy, download \`remix-$SHA.zip\`." >> README.md cp -r $FILES_TO_PACKAGE "./" rm -rf dist ls -FILES_TO_DEPLOY="assets index.html main*.js polyfills*.js favicon.ico vendors~app*.js app*.js raw-loader*.js" +FILES_TO_DEPLOY="assets index.html 404.html main*.js polyfills*.js favicon.ico vendors~app*.js app*.js raw-loader*.js" # ZIP the whole directory zip -r remix-$SHA.zip $FILES_TO_DEPLOY # -f is needed because "build" is part of .gitignore diff --git a/apps/remix-ide/ci/deploy_from_travis_remix-beta.sh b/apps/remix-ide/ci/deploy_from_travis_remix-beta.sh index 441a127410..9eb72f1d4d 100755 --- a/apps/remix-ide/ci/deploy_from_travis_remix-beta.sh +++ b/apps/remix-ide/ci/deploy_from_travis_remix-beta.sh @@ -14,7 +14,7 @@ echo "To use an offline copy, download \`remix-$SHA.zip\`." >> README.md cp -r $FILES_TO_PACKAGE "./" rm -rf dist ls -FILES_TO_DEPLOY="assets index.html main*.js polyfills*.js favicon.ico vendors~app*.js app*.js raw-loader*.js" +FILES_TO_DEPLOY="assets index.html 404.html main*.js polyfills*.js favicon.ico vendors~app*.js app*.js raw-loader*.js" # ZIP the whole directory zip -r remix-$SHA.zip $FILES_TO_DEPLOY # -f is needed because "build" is part of .gitignore diff --git a/apps/remix-ide/ci/deploy_from_travis_remix-live.sh b/apps/remix-ide/ci/deploy_from_travis_remix-live.sh index 3460d25fa2..9a82fbb26a 100755 --- a/apps/remix-ide/ci/deploy_from_travis_remix-live.sh +++ b/apps/remix-ide/ci/deploy_from_travis_remix-live.sh @@ -14,7 +14,7 @@ echo "To use an offline copy, download \`remix-$SHA.zip\`." >> README.md cp -r $FILES_TO_PACKAGE "./" rm -rf dist ls -FILES_TO_DEPLOY="assets index.html main*.js polyfills*.js vendors~app*.js app*.js raw-loader*.js" +FILES_TO_DEPLOY="assets index.html 404.html main*.js polyfills*.js vendors~app*.js app*.js raw-loader*.js" # ZIP the whole directory zip -r remix-$SHA.zip $FILES_TO_DEPLOY # -f is needed because "build" is part of .gitignore From 10be0cf74aae21db93da7e73f68dc2b5f63e5d8e Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:24:30 +0530 Subject: [PATCH 06/18] remove one hash --- apps/remix-ide/src/404.html | 4 ++-- libs/remix-lib/src/query-params.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/remix-ide/src/404.html b/apps/remix-ide/src/404.html index f0cefda8bb..28214dc776 100644 --- a/apps/remix-ide/src/404.html +++ b/apps/remix-ide/src/404.html @@ -7,9 +7,9 @@ \ No newline at end of file diff --git a/libs/remix-lib/src/query-params.ts b/libs/remix-lib/src/query-params.ts index 41374be3bf..be3d2a876f 100644 --- a/libs/remix-lib/src/query-params.ts +++ b/libs/remix-lib/src/query-params.ts @@ -18,7 +18,7 @@ export class QueryParams { get () { let qs - if (window.location.hash.startsWith('#/#')) qs = window.location.hash.substr(3) + if (window.location.hash.startsWith('#/')) qs = window.location.hash.substr(2) else qs = window.location.hash.substr(1) if (window.location.search.length > 0) { From a3a16f0e4197785c56378249783008a8818a3833 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 11 Jul 2022 17:29:46 +0530 Subject: [PATCH 07/18] remove slash --- apps/remix-ide/src/404.html | 4 ++-- libs/remix-lib/src/query-params.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/remix-ide/src/404.html b/apps/remix-ide/src/404.html index 28214dc776..28268a1ab1 100644 --- a/apps/remix-ide/src/404.html +++ b/apps/remix-ide/src/404.html @@ -7,9 +7,9 @@ \ No newline at end of file diff --git a/libs/remix-lib/src/query-params.ts b/libs/remix-lib/src/query-params.ts index be3d2a876f..7e89b226ff 100644 --- a/libs/remix-lib/src/query-params.ts +++ b/libs/remix-lib/src/query-params.ts @@ -17,9 +17,7 @@ export class QueryParams { } get () { - let qs - if (window.location.hash.startsWith('#/')) qs = window.location.hash.substr(2) - else qs = window.location.hash.substr(1) + const qs = window.location.hash.substr(1) if (window.location.search.length > 0) { // use legacy query params instead of hash From 590792ca8cb2d116a5517a3a011bb7b1fd6ffbd4 Mon Sep 17 00:00:00 2001 From: Aniket <30843294+Aniket-Engg@users.noreply.github.com> Date: Mon, 11 Jul 2022 17:34:59 +0530 Subject: [PATCH 08/18] linting fix --- libs/remix-ui/workspace/src/lib/actions/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/libs/remix-ui/workspace/src/lib/actions/index.ts b/libs/remix-ui/workspace/src/lib/actions/index.ts index a5b4491c94..953a75ba88 100644 --- a/libs/remix-ui/workspace/src/lib/actions/index.ts +++ b/libs/remix-ui/workspace/src/lib/actions/index.ts @@ -8,7 +8,6 @@ import { createWorkspaceTemplate, getWorkspaces, loadWorkspacePreset, setPlugin import { QueryParams } from '@remix-project/remix-lib' import { fetchContractFromEtherscan } from '@remix-project/core-plugin' // eslint-disable-line import JSZip from 'jszip' -import axios, { AxiosResponse } from 'axios' export * from './events' export * from './workspace' From 374d15117974ae4de8355daddfe09b1670dbcc71 Mon Sep 17 00:00:00 2001 From: David Disu Date: Fri, 8 Jul 2022 14:45:51 +0100 Subject: [PATCH 09/18] Hide dgit icon if connected to localhost --- libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index de5bff2fb6..307bb7b64c 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -259,7 +259,7 @@ export function Workspace () { - + { selectedWorkspace ? selectedWorkspace.name : currentWorkspace === LOCALHOST ? 'localhost' : NO_WORKSPACE } From 5ea0bc5082e2d0e8eb533456437d332c830c362e Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 11 Jul 2022 11:06:40 +0200 Subject: [PATCH 10/18] flaky test --- .circleci/config.yml | 2 +- apps/remix-ide-e2e/src/tests/recorder.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 988b8940ea..5449860cc0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ version: 2.1 parameters: run_flaky_tests: type: boolean - default: false + default: true orbs: browser-tools: circleci/browser-tools@1.2.3 jobs: diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index 7e8748b737..1a9e2d1924 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -64,7 +64,7 @@ module.exports = { }) }, - 'Record more than one contract': function (browser: NightwatchBrowser) { + 'Record more than one contract #flaky': function (browser: NightwatchBrowser) { // deploy 2 contracts (2 different ABIs), save the record, reexecute and test one of the function. browser .click('*[data-id="deployAndRunClearInstances"]') From c57330f6184cdf66354b73090156a1add3dc6cd5 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Mon, 11 Jul 2022 11:26:24 +0200 Subject: [PATCH 11/18] group tests --- apps/remix-ide-e2e/src/tests/recorder.test.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index 1a9e2d1924..e33b3a9400 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -3,6 +3,7 @@ import { NightwatchBrowser } from 'nightwatch' import init from '../helpers/init' module.exports = { + '@disabled': true, before: function (browser: NightwatchBrowser, done: VoidFunction) { init(browser, done) }, @@ -11,7 +12,7 @@ module.exports = { return sources }, - 'Run Scenario': function (browser: NightwatchBrowser) { + 'Run Scenario #group1': function (browser: NightwatchBrowser) { let addressRef browser.addFile('scenario.json', { content: records }) .pause(5000) @@ -36,7 +37,7 @@ module.exports = { .click('*[data-id="deployAndRunClearInstances"]') }, - 'Save scenario': function (browser: NightwatchBrowser) { + 'Save scenario #group1': function (browser: NightwatchBrowser) { browser.testContracts('testRecorder.sol', sources[0]['testRecorder.sol'], ['testRecorder']) .clickLaunchIcon('udapp') .createContract(['12']) @@ -64,7 +65,7 @@ module.exports = { }) }, - 'Record more than one contract #flaky': function (browser: NightwatchBrowser) { + 'Record more than one contract #group1 #flaky': function (browser: NightwatchBrowser) { // deploy 2 contracts (2 different ABIs), save the record, reexecute and test one of the function. browser .click('*[data-id="deployAndRunClearInstances"]') @@ -98,7 +99,7 @@ module.exports = { }, - 'Run with live "mode"': function (browser: NightwatchBrowser) { + 'Run with live "mode" #group1': 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 }) From 032e8df4a8ebe7648709f83b97446e216b2b2e48 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 11 Jul 2022 12:02:22 +0200 Subject: [PATCH 12/18] fix e2e flaky test --- apps/remix-ide-e2e/src/commands/clickFunction.ts | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/apps/remix-ide-e2e/src/commands/clickFunction.ts b/apps/remix-ide-e2e/src/commands/clickFunction.ts index e84be6a0d0..e19426db6a 100644 --- a/apps/remix-ide-e2e/src/commands/clickFunction.ts +++ b/apps/remix-ide-e2e/src/commands/clickFunction.ts @@ -4,16 +4,8 @@ import EventEmitter from 'events' class ClickFunction extends EventEmitter { command (this: NightwatchBrowser, fnFullName: string, expectedInput?: NightwatchClickFunctionExpectedInput): NightwatchBrowser { this.api.waitForElementPresent('.instance button[title="' + fnFullName + '"]') - .perform(function (client, done) { - client.execute(function () { - document.querySelector('#runTabView').scrollTop = document.querySelector('#runTabView').scrollHeight - }, [], function () { - if (expectedInput) { - client.setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) - } - done() - }) - }) + .scrollInto('#runTabView input[title="' + expectedInput.types + '"]') + .setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) .scrollAndClick('.instance button[title="' + fnFullName + '"]') .pause(2000) .perform(() => { From 718c7467eef8ed0b3210001e4a7c6222f48a9c0d Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 11 Jul 2022 12:08:39 +0200 Subject: [PATCH 13/18] fix flaky test --- apps/remix-ide-e2e/src/commands/clickFunction.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide-e2e/src/commands/clickFunction.ts b/apps/remix-ide-e2e/src/commands/clickFunction.ts index e19426db6a..6e3f888cc3 100644 --- a/apps/remix-ide-e2e/src/commands/clickFunction.ts +++ b/apps/remix-ide-e2e/src/commands/clickFunction.ts @@ -4,8 +4,18 @@ import EventEmitter from 'events' class ClickFunction extends EventEmitter { command (this: NightwatchBrowser, fnFullName: string, expectedInput?: NightwatchClickFunctionExpectedInput): NightwatchBrowser { this.api.waitForElementPresent('.instance button[title="' + fnFullName + '"]') - .scrollInto('#runTabView input[title="' + expectedInput.types + '"]') - .setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) + .perform(function (client, done) { + client.execute(function () { + document.querySelector('#runTabView').scrollTop = document.querySelector('#runTabView').scrollHeight + }, [], function () { + if (expectedInput) { + client + .scrollInto('#runTabView input[title="' + expectedInput.types + '"]') + .setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) + } + done() + }) + }) .scrollAndClick('.instance button[title="' + fnFullName + '"]') .pause(2000) .perform(() => { From e37669425f9cdd2f2daa8f098464a84c6cfa2a5a Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 11 Jul 2022 12:33:26 +0200 Subject: [PATCH 14/18] fix e2e test --- apps/remix-ide-e2e/src/commands/clickFunction.ts | 4 +--- apps/remix-ide-e2e/src/tests/recorder.test.ts | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/remix-ide-e2e/src/commands/clickFunction.ts b/apps/remix-ide-e2e/src/commands/clickFunction.ts index 6e3f888cc3..e84be6a0d0 100644 --- a/apps/remix-ide-e2e/src/commands/clickFunction.ts +++ b/apps/remix-ide-e2e/src/commands/clickFunction.ts @@ -9,9 +9,7 @@ class ClickFunction extends EventEmitter { document.querySelector('#runTabView').scrollTop = document.querySelector('#runTabView').scrollHeight }, [], function () { if (expectedInput) { - client - .scrollInto('#runTabView input[title="' + expectedInput.types + '"]') - .setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) + client.setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, _ => _) } done() }) diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index e33b3a9400..b043f72a14 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -85,6 +85,7 @@ module.exports = { modalOk.click() }) + .pause(1000) .click('*[data-id="deployAndRunClearInstances"]') // clear udapp .click('*[data-id="terminalClearConsole"]') // clear terminal .click('[data-id="runtransaction"]') From 83c7da276e5159a22424fd07aae49434ea76de70 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Mon, 11 Jul 2022 15:03:16 +0200 Subject: [PATCH 15/18] run all tests --- .circleci/config.yml | 2 +- apps/remix-ide-e2e/src/tests/recorder.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5449860cc0..988b8940ea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ version: 2.1 parameters: run_flaky_tests: type: boolean - default: true + default: false orbs: browser-tools: circleci/browser-tools@1.2.3 jobs: diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index b043f72a14..7f69cd5dff 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -65,7 +65,7 @@ module.exports = { }) }, - 'Record more than one contract #group1 #flaky': function (browser: NightwatchBrowser) { + 'Record more than one contract #group1': function (browser: NightwatchBrowser) { // deploy 2 contracts (2 different ABIs), save the record, reexecute and test one of the function. browser .click('*[data-id="deployAndRunClearInstances"]') From 20034e5325160e7ba36a7e842cfe3f3e09313fee Mon Sep 17 00:00:00 2001 From: filip mertens Date: Mon, 11 Jul 2022 10:09:37 +0200 Subject: [PATCH 16/18] update package --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 54a2b7c8aa..8e3a2b9f21 100644 --- a/package.json +++ b/package.json @@ -153,13 +153,13 @@ "@ethersphere/bee-js": "^3.2.0", "@isomorphic-git/lightning-fs": "^4.4.1", "@monaco-editor/react": "^4.3.1", - "@remixproject/engine": "^0.3.28", - "@remixproject/engine-web": "^0.3.28", - "@remixproject/plugin": "^0.3.28", - "@remixproject/plugin-api": "^0.3.28", - "@remixproject/plugin-utils": "^0.3.28", - "@remixproject/plugin-webview": "^0.3.28", - "@remixproject/plugin-ws": "^0.3.28", + "@remixproject/engine": "^0.3.30", + "@remixproject/engine-web": "^0.3.30", + "@remixproject/plugin": "^0.3.30", + "@remixproject/plugin-api": "^0.3.30", + "@remixproject/plugin-utils": "^0.3.30", + "@remixproject/plugin-webview": "^0.3.30", + "@remixproject/plugin-ws": "^0.3.30", "ansi-gray": "^0.1.1", "async": "^2.6.2", "axios": ">=0.26.0", From 13b1670e4c129ff604273295be6d311b94568174 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Mon, 11 Jul 2022 10:24:54 +0200 Subject: [PATCH 17/18] lock file --- yarn.lock | 84 +++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/yarn.lock b/yarn.lock index 220d2abac5..44ac34f0ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3749,63 +3749,63 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.10.2.tgz#0798c03351f0dea1a5a4cabddf26a55a7cbee590" integrity sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ== -"@remixproject/engine-web@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/engine-web/-/engine-web-0.3.28.tgz#9a47c979a89764cb96d3f5da0d6802d1ca875c94" - integrity sha512-JTwTuonW+pI7WsSsgGHAzPynGjIdG34VnPrspR9XKBQO4+NX7m3lbNIMUUviyrbqIoGiGtgYd/ry98uLpTHr4g== +"@remixproject/engine-web@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/engine-web/-/engine-web-0.3.30.tgz#55721b30ff86bf026fd529afc7b57acecc9f517a" + integrity sha512-8+3BxgghAInrndxkHvTEF6wemHeCdlMJ47CcsXHf/WHsI1E8BbJscZHj+EdEbyc+N6SXUf36qVyIyj7Ko19S/A== dependencies: - "@remixproject/engine" "0.3.28" - "@remixproject/plugin-api" "0.3.28" - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/engine" "0.3.30" + "@remixproject/plugin-api" "0.3.30" + "@remixproject/plugin-utils" "0.3.30" -"@remixproject/engine@0.3.28", "@remixproject/engine@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/engine/-/engine-0.3.28.tgz#3656ee029d3cbc22f8ad95bd925176a75057a475" - integrity sha512-27SHaCrG3KrPfMa1MYud4tE9xUIJKITEUsql99fhN7x12lOmgGZFjiqIG/WWjCMmT7OMG3vtLayiZrsYkzHCVw== +"@remixproject/engine@0.3.30", "@remixproject/engine@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/engine/-/engine-0.3.30.tgz#ff5fe7695d0301c4171094bd881d006a89026515" + integrity sha512-yG7BbDCzQ87Fv/IqajODOiAXF7eoWsMN2/9tg/qsQuFoebqFFEpta7CHG2wAEx3i39AsYAIHshlhLdHnYKjcxQ== dependencies: - "@remixproject/plugin-api" "0.3.28" - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/plugin-api" "0.3.30" + "@remixproject/plugin-utils" "0.3.30" -"@remixproject/plugin-api@0.3.28", "@remixproject/plugin-api@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-api/-/plugin-api-0.3.28.tgz#660f068681bc1780284768e4ce1b4f70ea4ba859" - integrity sha512-tOzVFR504037weEkNHQGZsk+Ebxcu/xnBsVCkJaQaBMb+H/i6YevKQmoR1aGcH+JfQxc8eS8LGC65MaV8zmcWg== +"@remixproject/plugin-api@0.3.30", "@remixproject/plugin-api@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-api/-/plugin-api-0.3.30.tgz#6f45b39dbff5ab8d0dfd594b439fc6cf29c39ac1" + integrity sha512-J5rzQbGEe+5M8FresIoyj/S2HKA5WyjVM/DsED+tWpEmqnzcjARQdvijNVmRstFkcCDvCQ5PDMU+/Qoaj6/Hiw== dependencies: - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/plugin-utils" "0.3.30" -"@remixproject/plugin-utils@0.3.28", "@remixproject/plugin-utils@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-utils/-/plugin-utils-0.3.28.tgz#eefd3b603f223cf6fba9b914ef3c9a62bd8435b6" - integrity sha512-5CayTgMqRiOguanTy6kpuRgCmjEFLUu2K4Rs7Zmt+GOzHucmwkDxYQO+3hFv0Jz/M/6yC5wkKYTx8vfPLLdEBQ== +"@remixproject/plugin-utils@0.3.30", "@remixproject/plugin-utils@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-utils/-/plugin-utils-0.3.30.tgz#b723cd59a98d0fa624f9483edd8c53086b44e514" + integrity sha512-jsL9DUKi3pi5D3R7415Zflf72l2wT3POQLRXNJV5rcnpsBhH1SedSpyjPuWSObTbpQsXw9xfnZqjwbIi7UNltA== dependencies: tslib "2.0.1" -"@remixproject/plugin-webview@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-webview/-/plugin-webview-0.3.28.tgz#ce03ad0801e0fd1e5bce59565b77b6698ad07596" - integrity sha512-DodSkN0vMSo2DEEoBOWyKxC/ElvBA826vhX+JVGXA8HGS45aavplZIN967hsc+SdzjV1UZfSNKEHttLGwM1BIw== +"@remixproject/plugin-webview@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-webview/-/plugin-webview-0.3.30.tgz#6c49c08838114886aac2bf328fa82b70afac2885" + integrity sha512-8Z2O7BjIZkq/ug1d/NiqcjFwR+TP/GPMdh03RNf+Mta0z+B6sXE4WdoCXImTeUJOdufIO3eFw0+JVLu2iwU25w== dependencies: - "@remixproject/plugin" "0.3.28" - "@remixproject/plugin-api" "0.3.28" - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/plugin" "0.3.30" + "@remixproject/plugin-api" "0.3.30" + "@remixproject/plugin-utils" "0.3.30" axios "^0.21.1" -"@remixproject/plugin-ws@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-ws/-/plugin-ws-0.3.28.tgz#4f6022b1c8ef6356299c545f6164bce48aac60fe" - integrity sha512-i3He9t4qvcBQxzshFx66D6drqLlySmV7Cb+NeYtMOYlWxQSJtUakp/Px1Tl3IDFQXDfpXxvDvYhn2w0AWPBOqw== +"@remixproject/plugin-ws@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-ws/-/plugin-ws-0.3.30.tgz#ed9f5011ea2ee0fec2d595b2e333f50500354c66" + integrity sha512-lWk/PiRXX5zcN7ddOhnVN4Mbd3NqSuw4on2a4pc2SslM73wtmambvmGxhphEOuNsTykZ66LmMhCGBMxpsvhdoA== dependencies: - "@remixproject/plugin" "0.3.28" - "@remixproject/plugin-api" "0.3.28" - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/plugin" "0.3.30" + "@remixproject/plugin-api" "0.3.30" + "@remixproject/plugin-utils" "0.3.30" -"@remixproject/plugin@0.3.28", "@remixproject/plugin@^0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@remixproject/plugin/-/plugin-0.3.28.tgz#3e40de6d0441e6b47ca17c904e57562cb285a4d3" - integrity sha512-sw+cow3GKAcEacXLvdJwtHHIphPty4KRMZ6tcQHdtx/iCKTMNdw2hribKPnvTO+6mXE+4oAKCrFqeTdVp/rd1w== +"@remixproject/plugin@0.3.30", "@remixproject/plugin@^0.3.30": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@remixproject/plugin/-/plugin-0.3.30.tgz#abfcf2c39aed3d611536fc0ccde783b07d1eaa8c" + integrity sha512-cdLRpa+I3rI9JHZXJzU+Gd1gpD4zNJZX/vwi3DQz0LZvwRYw+DgcxddAx+bRMS2jFIQS+Vz8jIhCOSsRfKdYcg== dependencies: - "@remixproject/plugin-api" "0.3.28" - "@remixproject/plugin-utils" "0.3.28" + "@remixproject/plugin-api" "0.3.30" + "@remixproject/plugin-utils" "0.3.30" events "3.2.0" "@restart/context@^2.1.4": From 4977bd653fb53c43dddc4523471ce5cabff38b5a Mon Sep 17 00:00:00 2001 From: filip mertens Date: Mon, 11 Jul 2022 10:59:50 +0200 Subject: [PATCH 18/18] update plugin to fix FE test --- package.json | 14 ++++----- yarn.lock | 84 ++++++++++++++++++++++++++-------------------------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index 8e3a2b9f21..d83a9464e5 100644 --- a/package.json +++ b/package.json @@ -153,13 +153,13 @@ "@ethersphere/bee-js": "^3.2.0", "@isomorphic-git/lightning-fs": "^4.4.1", "@monaco-editor/react": "^4.3.1", - "@remixproject/engine": "^0.3.30", - "@remixproject/engine-web": "^0.3.30", - "@remixproject/plugin": "^0.3.30", - "@remixproject/plugin-api": "^0.3.30", - "@remixproject/plugin-utils": "^0.3.30", - "@remixproject/plugin-webview": "^0.3.30", - "@remixproject/plugin-ws": "^0.3.30", + "@remixproject/engine": "^0.3.31", + "@remixproject/engine-web": "^0.3.31", + "@remixproject/plugin": "^0.3.31", + "@remixproject/plugin-api": "^0.3.31", + "@remixproject/plugin-utils": "^0.3.31", + "@remixproject/plugin-webview": "^0.3.31", + "@remixproject/plugin-ws": "^0.3.31", "ansi-gray": "^0.1.1", "async": "^2.6.2", "axios": ">=0.26.0", diff --git a/yarn.lock b/yarn.lock index 44ac34f0ac..6bac163214 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3749,63 +3749,63 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.10.2.tgz#0798c03351f0dea1a5a4cabddf26a55a7cbee590" integrity sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ== -"@remixproject/engine-web@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/engine-web/-/engine-web-0.3.30.tgz#55721b30ff86bf026fd529afc7b57acecc9f517a" - integrity sha512-8+3BxgghAInrndxkHvTEF6wemHeCdlMJ47CcsXHf/WHsI1E8BbJscZHj+EdEbyc+N6SXUf36qVyIyj7Ko19S/A== +"@remixproject/engine-web@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/engine-web/-/engine-web-0.3.31.tgz#42ee5c5d874ef9646090342ca8b430e3fe1046e8" + integrity sha512-GYeUB4Y0NaVc23mSmVByhx6pCvjzfz8iBbJCwaUB3q61uyRQ1wMM0P/47qqwZMukPi7x4bFUpN41C6rKq7ECug== dependencies: - "@remixproject/engine" "0.3.30" - "@remixproject/plugin-api" "0.3.30" - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/engine" "0.3.31" + "@remixproject/plugin-api" "0.3.31" + "@remixproject/plugin-utils" "0.3.31" -"@remixproject/engine@0.3.30", "@remixproject/engine@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/engine/-/engine-0.3.30.tgz#ff5fe7695d0301c4171094bd881d006a89026515" - integrity sha512-yG7BbDCzQ87Fv/IqajODOiAXF7eoWsMN2/9tg/qsQuFoebqFFEpta7CHG2wAEx3i39AsYAIHshlhLdHnYKjcxQ== +"@remixproject/engine@0.3.31", "@remixproject/engine@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/engine/-/engine-0.3.31.tgz#6dcc209dbd993646430335c9454ce1a739d1a45f" + integrity sha512-5VTl9bkeU3fd3IUV8wy7kXHMd3RfnUsf6dlmORM9Np1oMZ9nhdhUsyJO/qXyrvR1PbyJIxPz/qM4+W5MGvOrnQ== dependencies: - "@remixproject/plugin-api" "0.3.30" - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/plugin-api" "0.3.31" + "@remixproject/plugin-utils" "0.3.31" -"@remixproject/plugin-api@0.3.30", "@remixproject/plugin-api@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-api/-/plugin-api-0.3.30.tgz#6f45b39dbff5ab8d0dfd594b439fc6cf29c39ac1" - integrity sha512-J5rzQbGEe+5M8FresIoyj/S2HKA5WyjVM/DsED+tWpEmqnzcjARQdvijNVmRstFkcCDvCQ5PDMU+/Qoaj6/Hiw== +"@remixproject/plugin-api@0.3.31", "@remixproject/plugin-api@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-api/-/plugin-api-0.3.31.tgz#86e7c458c58ff200bd927fd3d642877f4b5a0013" + integrity sha512-LOJRHxORNp7zW8k7//DQz5aZ7eqB7TwhYXrvzqvaryDTvtvJGWrlTHg81hzALynaxZKEWneohxjUxKvGp/eA4g== dependencies: - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/plugin-utils" "0.3.31" -"@remixproject/plugin-utils@0.3.30", "@remixproject/plugin-utils@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-utils/-/plugin-utils-0.3.30.tgz#b723cd59a98d0fa624f9483edd8c53086b44e514" - integrity sha512-jsL9DUKi3pi5D3R7415Zflf72l2wT3POQLRXNJV5rcnpsBhH1SedSpyjPuWSObTbpQsXw9xfnZqjwbIi7UNltA== +"@remixproject/plugin-utils@0.3.31", "@remixproject/plugin-utils@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-utils/-/plugin-utils-0.3.31.tgz#80771e00c1a1b776432abb17b1f4b2e25600d4f6" + integrity sha512-OOAjoSd+ErBMrcNQEh80NU3BjJ9fHXuftRfy5Ul9aGXN3b1LJSNVvfrG+FxX6lpyaAK5JBj+aB9pgFozgb2wlw== dependencies: tslib "2.0.1" -"@remixproject/plugin-webview@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-webview/-/plugin-webview-0.3.30.tgz#6c49c08838114886aac2bf328fa82b70afac2885" - integrity sha512-8Z2O7BjIZkq/ug1d/NiqcjFwR+TP/GPMdh03RNf+Mta0z+B6sXE4WdoCXImTeUJOdufIO3eFw0+JVLu2iwU25w== +"@remixproject/plugin-webview@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-webview/-/plugin-webview-0.3.31.tgz#e5cce7d0089439b35aee4ab2a724add1e5d36b40" + integrity sha512-8yoKwIkRi9S+rqvFShNt01FfXX0H/Fijn7UkWFWJ/V6ULcw2cw9ViCz8cYZLhNUpxqezyu/LKDQL9g1TbJJoYw== dependencies: - "@remixproject/plugin" "0.3.30" - "@remixproject/plugin-api" "0.3.30" - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/plugin" "0.3.31" + "@remixproject/plugin-api" "0.3.31" + "@remixproject/plugin-utils" "0.3.31" axios "^0.21.1" -"@remixproject/plugin-ws@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/plugin-ws/-/plugin-ws-0.3.30.tgz#ed9f5011ea2ee0fec2d595b2e333f50500354c66" - integrity sha512-lWk/PiRXX5zcN7ddOhnVN4Mbd3NqSuw4on2a4pc2SslM73wtmambvmGxhphEOuNsTykZ66LmMhCGBMxpsvhdoA== +"@remixproject/plugin-ws@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/plugin-ws/-/plugin-ws-0.3.31.tgz#a2bb415cc32a5b036b9b3759520088b8ceaa0d5a" + integrity sha512-Z4G6vkGxxCP+ibGNHAvNaFjYE4hbsazOEL50pMnda6LZNci9akMSiI/1MIZscVSMU8l2sYOoNUsWvLfLkIkYKQ== dependencies: - "@remixproject/plugin" "0.3.30" - "@remixproject/plugin-api" "0.3.30" - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/plugin" "0.3.31" + "@remixproject/plugin-api" "0.3.31" + "@remixproject/plugin-utils" "0.3.31" -"@remixproject/plugin@0.3.30", "@remixproject/plugin@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@remixproject/plugin/-/plugin-0.3.30.tgz#abfcf2c39aed3d611536fc0ccde783b07d1eaa8c" - integrity sha512-cdLRpa+I3rI9JHZXJzU+Gd1gpD4zNJZX/vwi3DQz0LZvwRYw+DgcxddAx+bRMS2jFIQS+Vz8jIhCOSsRfKdYcg== +"@remixproject/plugin@0.3.31", "@remixproject/plugin@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@remixproject/plugin/-/plugin-0.3.31.tgz#b6c6b58d2c7964e37024eeca4819c70ece1f3953" + integrity sha512-9ntMU9CzStloahm/wXt4V8n64ERgJzY5nG0bzQfjnI12knrdTmUo+LC42M2xaTBDDP9CzMPdqClg7XhhRLzohA== dependencies: - "@remixproject/plugin-api" "0.3.30" - "@remixproject/plugin-utils" "0.3.30" + "@remixproject/plugin-api" "0.3.31" + "@remixproject/plugin-utils" "0.3.31" events "3.2.0" "@restart/context@^2.1.4":