diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 46f2d0dfb4..841935f703 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,7 +84,7 @@ If you search `FormattedMessage` or `intl.formatMessage` in this project, you wi **Why?** -Each non-english language will be filled in the gaps with english. Even there maybe some un-translated content, it will always use english as defaultMessage. That why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component. +Each non-english language will be filled in the gaps with english. Even though there may be some un-translated content, it will always use english as defaultMessage. That's why we don't need to provide a `defaultMessage` prop each time we render a `FormattedMessage` component. But in some cases, the `id` prop may not be static. For example, ```jsx diff --git a/README.md b/README.md index ff54a1afc7..c633877526 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ docker-compose pull docker-compose up -d ``` -Then go to http://localhost:8080 and you can use you Remix instance. +Then go to http://localhost:8080 and you can use your Remix instance. To fetch the docker-compose file without cloning this repo run: ``` diff --git a/apps/remix-ide-e2e/src/tests/recorder.test.ts b/apps/remix-ide-e2e/src/tests/recorder.test.ts index 7cdd2a08d1..f21df003a4 100644 --- a/apps/remix-ide-e2e/src/tests/recorder.test.ts +++ b/apps/remix-ide-e2e/src/tests/recorder.test.ts @@ -470,7 +470,7 @@ const liveModeScenario = { const testStorageForLiveMode = `// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.7.0 <0.9.0; +pragma solidity >=0.8.2 <0.9.0; /** * @title Storage diff --git a/apps/remix-ide-e2e/src/tests/terminal.test.ts b/apps/remix-ide-e2e/src/tests/terminal.test.ts index d3953f54b4..8a32295678 100644 --- a/apps/remix-ide-e2e/src/tests/terminal.test.ts +++ b/apps/remix-ide-e2e/src/tests/terminal.test.ts @@ -584,7 +584,7 @@ contract OwnerTest { const scriptAutoExec = { contract: `// SPDX-License-Identifier: GPL-3.0 - pragma solidity >=0.7.0 <0.9.0; + pragma solidity >=0.8.2 <0.9.0; library lib { function test () public view returns (uint) { diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 6c1ebf6801..303d06f8c0 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -343,7 +343,6 @@ class AppComponent { analysis, test, filePanel.remixdHandle, - filePanel.gitHandle, filePanel.hardhatHandle, filePanel.foundryHandle, filePanel.truffleHandle, diff --git a/apps/remix-ide/src/app/panels/file-panel.js b/apps/remix-ide/src/app/panels/file-panel.js index d6a3708269..2ff7a1da01 100644 --- a/apps/remix-ide/src/app/panels/file-panel.js +++ b/apps/remix-ide/src/app/panels/file-panel.js @@ -5,7 +5,6 @@ import React from 'react' // eslint-disable-line import { FileSystemProvider } from '@remix-ui/workspace' // eslint-disable-line import Registry from '../state/registry' import { RemixdHandle } from '../plugins/remixd-handle' -const { GitHandle } = require('../files/git-handle.js') const { HardhatHandle } = require('../files/hardhat-handle.js') const { FoundryHandle } = require('../files/foundry-handle.js') const { TruffleHandle } = require('../files/truffle-handle.js') @@ -52,7 +51,6 @@ module.exports = class Filepanel extends ViewPlugin { this.el.setAttribute('id', 'fileExplorerView') this.remixdHandle = new RemixdHandle(this.fileProviders.localhost, appManager) - this.gitHandle = new GitHandle() this.hardhatHandle = new HardhatHandle() this.foundryHandle = new FoundryHandle() this.truffleHandle = new TruffleHandle() diff --git a/apps/remix-ide/src/app/plugins/remixd-handle.tsx b/apps/remix-ide/src/app/plugins/remixd-handle.tsx index 35353d774d..62329cf327 100644 --- a/apps/remix-ide/src/app/plugins/remixd-handle.tsx +++ b/apps/remix-ide/src/app/plugins/remixd-handle.tsx @@ -6,7 +6,6 @@ import * as packageJson from '../../../../../package.json' import { version as remixdVersion } from '../../../../../libs/remixd/package.json' import { PluginManager } from '@remixproject/engine' import { AppModal, AlertModal } from '@remix-ui/app' -import { CopyToClipboard } from '@remix-ui/clipboard' const LOCALHOST = ' - connect to localhost - ' @@ -25,12 +24,6 @@ const profile = { authorContact: "" } -enum State { - ok, - cancel, - new -} - export class RemixdHandle extends WebsocketPlugin { localhostProvider: any appManager: PluginManager diff --git a/apps/remix-ide/src/app/tabs/locales/en/home.json b/apps/remix-ide/src/app/tabs/locales/en/home.json index 43f293e1c6..0b2c025b7f 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/home.json +++ b/apps/remix-ide/src/app/tabs/locales/en/home.json @@ -12,10 +12,6 @@ "home.remixRewards": "REMIX REWARDS", "home.remixRewardsText1": "NFTs for our users!", "home.remixRewardsText2": "Remix Project rewards contributors, beta testers, and UX research participants with NFTs deployed on Optimism.", - "home.solidityDevSurveyHeader": "SOLIDITY DEVELOPER SURVEY 2022", - "home.solidityDevSurvey": "Help to collect feedback for the Solidity team. The survey takes roughly 10 minutes", - "home.solidityDevSurvey1": "Annual poll", - "home.surveyLink": "Take the Survey", "home.betaTesting": "BETA TESTING", "home.betaTestingText1": "Our community supports us.", "home.betaTestingText2": "You can join Beta Testing before each release of Remix IDE. Help us test now and get a handle on new features!", diff --git a/apps/remix-ide/src/app/tabs/locales/zh/home.json b/apps/remix-ide/src/app/tabs/locales/zh/home.json index 7a772e1a7b..3541ee6d66 100644 --- a/apps/remix-ide/src/app/tabs/locales/zh/home.json +++ b/apps/remix-ide/src/app/tabs/locales/zh/home.json @@ -12,10 +12,6 @@ "home.remixRewards": "REMIX 奖励", "home.remixRewardsText1": "给我们的用户提供的 NFT!", "home.remixRewardsText2": "Remix 会用部署在 Optimism 链上的 NFT 奖励贡献者、beta 测试者和用户体验研究参与者。Remix 奖励的持有者可以铸造第二个“Remixer”用户 NFT 徽章,以赠予他们选择的任何其他用户。", - "home.solidityDevSurveyHeader": "", - "home.solidityDevSurvey": "", - "home.solidityDevSurvey1": "", - "home.surveyLink": "", "home.betaTesting": "BETA 测试", "home.betaTestingText1": "我们的社区支持我们", "home.betaTestingText2": "每次 Remix IDE 发布版本之前,你都可以参与 Beta 测试。现在就来帮我们测试并且尝鲜新功能吧!", diff --git a/apps/remix-ide/src/assets/js/loader.js b/apps/remix-ide/src/assets/js/loader.js index 8f22b3db6c..2887ddcc17 100644 --- a/apps/remix-ide/src/assets/js/loader.js +++ b/apps/remix-ide/src/assets/js/loader.js @@ -15,6 +15,12 @@ if (domains[window.location.hostname]) { var u = "https://matomo.ethereum.org/"; _paq.push(['setTrackerUrl', u + 'matomo.php']) _paq.push(['setSiteId', domains[window.location.hostname]]) + // Send all of the Remix live tracking data to the secondary Matomo server + if (window.location.hostname === 'remix.ethereum.org') { + var secondaryTracker = 'https://remix-ethereum.matomo.cloud/matomo.php'; + var secondaryWebsiteId = 1; + _paq.push(['addTracker', secondaryTracker, secondaryWebsiteId]); + } var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0] g.type = 'text/javascript'; g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s) })() diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index 4d79ab2705..48e367c10c 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -190,7 +190,7 @@ class PluginLoader { constructor() { const queryParams = new QueryParams() - this.donotAutoReload = ['remixd', 'git'] // that would be a bad practice to force loading some plugins at page load. + this.donotAutoReload = ['remixd'] // that would be a bad practice to force loading some plugins at page load. this.loaders = {} this.loaders.localStorage = { set: (plugin, actives) => { diff --git a/babel.config.js b/babel.config.js index e31ff6f5b2..ad32f7a9d0 100644 --- a/babel.config.js +++ b/babel.config.js @@ -6,5 +6,8 @@ module.exports = { "@babel/plugin-proposal-class-properties", "@babel/plugin-proposal-nullish-coalescing-operator", ["@babel/plugin-proposal-private-property-in-object", { "loose": false }], - ["@babel/plugin-proposal-private-methods", { "loose": false }]] + ["@babel/plugin-proposal-private-methods", { "loose": false }], + ["@babel/plugin-transform-runtime", { + "regenerator": true + }]] } \ No newline at end of file diff --git a/libs/remix-debug/src/solidity-decoder/internalCallTree.ts b/libs/remix-debug/src/solidity-decoder/internalCallTree.ts index c194f5640c..4233ec9cbb 100644 --- a/libs/remix-debug/src/solidity-decoder/internalCallTree.ts +++ b/libs/remix-debug/src/solidity-decoder/internalCallTree.ts @@ -82,18 +82,22 @@ export class InternalCallTree { if (!compResult) { this.event.trigger('noCallTreeAvailable', []) } else { - buildTree(this, 0, scopeId, isCreation).then((result) => { - if (result.error) { - this.event.trigger('callTreeBuildFailed', [result.error]) - } else { - createReducedTrace(this, traceManager.trace.length - 1) - console.log('call tree build lasts ', (Date.now() - time) / 1000) - this.event.trigger('callTreeReady', [this.scopes, this.scopeStarts]) - } - }, (reason) => { - console.log('analyzing trace falls ' + reason) - this.event.trigger('callTreeNotReady', [reason]) - }) + try { + buildTree(this, 0, scopeId, isCreation).then((result) => { + if (result.error) { + this.event.trigger('callTreeBuildFailed', [result.error]) + } else { + createReducedTrace(this, traceManager.trace.length - 1) + console.log('call tree build lasts ', (Date.now() - time) / 1000) + this.event.trigger('callTreeReady', [this.scopes, this.scopeStarts]) + } + }, (reason) => { + console.log('analyzing trace falls ' + reason) + this.event.trigger('callTreeNotReady', [reason]) + }) + } catch (e) { + console.log(e) + } } }) } diff --git a/libs/remix-debug/src/solidity-decoder/solidityProxy.ts b/libs/remix-debug/src/solidity-decoder/solidityProxy.ts index 34bdcf5abf..462dad4d05 100644 --- a/libs/remix-debug/src/solidity-decoder/solidityProxy.ts +++ b/libs/remix-debug/src/solidity-decoder/solidityProxy.ts @@ -115,7 +115,7 @@ export class SolidityProxy { for (const source of generatedSources) { if (source.id === sourceLocation.file) return source.ast } - } else if (compilationResult.data.sources[file]) { + } else if (compilationResult.data.sources && compilationResult.data.sources[file]) { return compilationResult.data.sources[file].ast } return null diff --git a/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx b/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx index 8dd8698d9d..369ff45351 100644 --- a/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx @@ -36,17 +36,6 @@ function HomeTabFeatured() { autoPlaySpeed={15000} dotListClass="position-relative mt-2" > -