Merge branch 'master' of https://github.com/ethereum/remix-project into e2epluginapi2

indexworkspace2
bunsenstraat 3 years ago
commit 93663705ef
  1. 78
      README.md
  2. 8
      apps/remix-ide/src/app/tabs/runTab/settings.js
  3. 8
      libs/remix-analyzer/package.json
  4. 6
      libs/remix-astwalker/package.json
  5. 15
      libs/remix-debug/package.json
  6. 5
      libs/remix-lib/package.json
  7. 6
      libs/remix-simulator/package.json
  8. 6
      libs/remix-solidity/package.json
  9. 2
      libs/remix-solidity/src/compiler/types.ts
  10. 10
      libs/remix-tests/package.json
  11. 1
      libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx
  12. 4
      libs/remix-url-resolver/package.json
  13. 1772
      package-lock.json
  14. 3
      package.json

@ -1,20 +1,25 @@
[![Join the chat at https://gitter.im/ethereum/remix](https://badges.gitter.im/ethereum/remix.svg)](https://gitter.im/ethereum/remix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![CircleCI](https://circleci.com/gh/ethereum/remix-project.svg?style=svg)](https://circleci.com/gh/ethereum/remix-project) [![CircleCI](https://circleci.com/gh/ethereum/remix-project.svg?style=svg)](https://circleci.com/gh/ethereum/remix-project)
[![Documentation Status](https://readthedocs.org/projects/docs/badge/?version=latest)](https://remix-ide.readthedocs.io/en/latest/index.html) [![Documentation Status](https://readthedocs.org/projects/docs/badge/?version=latest)](https://remix-ide.readthedocs.io/en/latest/index.html)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/ethereum/remix-project/blob/master/CONTRIBUTING.md)
![GitHub contributors](https://img.shields.io/github/contributors/ethereum/remix-project)
[![Awesome Remix](https://img.shields.io/badge/Awesome--Remix-resources-green)](https://github.com/ethereum/awesome-remix)
![GitHub](https://img.shields.io/github/license/ethereum/remix-project)
[![Join the chat at https://gitter.im/ethereum/remix](https://badges.gitter.im/ethereum/remix.svg)](https://gitter.im/ethereum/remix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Twitter Follow](https://img.shields.io/twitter/follow/ethereumremix?style=social)](https://twitter.com/ethereumremix)
# Remix Project # Remix Project
**Remix Project** is a platform for development tools that use a plugin architecture. It encompasses sub-projects including Remix Plugin Engine, Remix Libraries, and of course Remix IDE. **Remix Project** is a platform for development tools that use a plugin architecture. It encompasses sub-projects including Remix Plugin Engine, Remix Libraries, and of course Remix IDE.
**Remix IDE** is an open source web and desktop application. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. Remix is used for the **entire journey of contract development with [Solidity language](https://soliditylang.org/)** in as well as being a playground for learning and teaching Ethereum. **Remix IDE** is an open source web and desktop application. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. Remix is used for the **entire journey of contract development with [Solidity language](https://soliditylang.org/)** as well as a playground for learning and teaching [Ethereum](https://ethereum.org/).
To try web app, visit: [https://remix.ethereum.org](https://remix.ethereum.org). Start developing using Remix on browser, visit: [https://remix.ethereum.org](https://remix.ethereum.org)
For desktop version, See releases: [https://github.com/ethereum/remix-desktop/releases](https://github.com/ethereum/remix-desktop/releases) For desktop version, see releases: [https://github.com/ethereum/remix-desktop/releases](https://github.com/ethereum/remix-desktop/releases)
![Remix screenshot](https://github.com/ethereum/remix-project/raw/master/apps/remix-ide/remix_screenshot.png) ![Remix screenshot](https://github.com/ethereum/remix-project/raw/master/apps/remix-ide/remix_screenshot.png)
**Remix libraries** work as a core of native plugins of Remix IDE. Read more about libraries [here](libs/README.md) :point_right: **Remix libraries** work as a core of native plugins of Remix IDE. Read more about libraries [here](libs/README.md)
## Offline Usage ## Offline Usage
@ -25,42 +30,46 @@ Note: It contains the latest release of Solidity available at the time of the pa
## Setup ## Setup
Install **npm** and **node.js** (see https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), then * Install **NPM** and **Node.js**. See [Guide](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) <br/>
install [Nx CLI](https://nx.dev/react/cli/overview) globally to enable running **nx executable commands**. *Supported versions:*
```bash
"engines": {
"node": "^14.17.6",
"npm": "^6.14.15"
}
```
* Install [Nx CLI](https://nx.dev/react/cli/overview) globally to enable running **nx executable commands**.
```bash ```bash
npm install -g @nrwl/cli npm install -g @nrwl/cli
``` ```
* Clone the github repository (`wget` need to be installed first):
Clone the github repository (`wget` need to be installed first):
```bash ```bash
git clone https://github.com/ethereum/remix-project.git git clone https://github.com/ethereum/remix-project.git
``` ```
* Build `remix-project`:
And build it:
```bash ```bash
cd remix-project cd remix-project
npm install npm install
nx build remix-ide --with-deps nx build
nx serve nx serve
``` ```
Run `nx serve` and open `http://127.0.0.1:8080` in your browser. Open `http://127.0.0.1:8080` in your browser to load Remix IDE locally.
Then open your `text editor` and start developing. Go to your `text editor` and start developing. Browser will automatically refresh when files are saved.
The browser will automatically refresh when files are saved.
## Production Build ## Production Build
To generate react production builds for remix-project. To generate react production builds for remix-project.
```bash ```bash
npm run build:production npm run build:production
``` ```
build can be found in `remix-project/dist/apps/remix-ide` directory. Build can be found in `remix-project/dist/apps/remix-ide` directory.
```bash ```bash
npm run serve:production npm run serve:production
``` ```
production build will be served by default to `http://localhost:8080/` or `http://127.0.0.1:8080/` Production build will be served by default to `http://localhost:8080/` or `http://127.0.0.1:8080/`
## Docker: ## Docker:
@ -99,9 +108,9 @@ To fetch docker-compose file without cloning this repo run:
curl https://raw.githubusercontent.com/ethereum/remix-project/master/docker-compose.yaml > docker-compose.yaml curl https://raw.githubusercontent.com/ethereum/remix-project/master/docker-compose.yaml > docker-compose.yaml
``` ```
### Troubleshooting building ### Troubleshooting
If you have trouble building the package, Make sure that you have the correct version of `node`, `npm` and `nvm`. Also ensure you have [Nx CLI](https://nx.dev/react/cli/overview) installed globally. If you have trouble building the project, make sure that you have the correct version of `node`, `npm` and `nvm`. Also ensure [Nx CLI](https://nx.dev/react/cli/overview) is installed globally.
Run: Run:
@ -115,22 +124,23 @@ In Debian based OS such as Ubuntu 14.04LTS you may need to run `apt-get install
## Unit Testing ## Unit Testing
Run the unit tests via: `nx test <project-name>` Run the unit tests using library name like: `nx test <project-name>`
```bash
nx test remix-analyzer
```
Running unit tests via `nx test` requires at least node v10.0.0 For example, to run unit tests of `remix-analyzer`, use `nx test remix-analyzer`
## Browser Testing ## Browser Testing
To run the Selenium tests via Nightwatch: To run the Selenium tests via Nightwatch:
- Build Remix IDE and serve it: `nx build remix-ide --with-deps && nx serve` # starts web server at localhost:8080 - Install Selenium for first time: `npm run selenium-install`
- Make sure Selenium is installed `npm run selenium-install` # don't need to repeat - Run a selenium server: `npm run selenium`
- Run a selenium server `npm run selenium` - Build & Serve Remix: `nx serve`
- Run all the tests `npm run nightwatch_local_firefox` or `npm run nightwatch_local_chrome` - Run all the end-to-end tests:
- Or run a specific test case:
for Firefox: `npm run nightwatch_local_firefox`, or
for Google Chrome: `npm run nightwatch_local_chrome`
- Run a specific test case instead, use one of following commands:
- npm run nightwatch_local_ballot - npm run nightwatch_local_ballot
@ -185,16 +195,14 @@ To run the Selenium tests via Nightwatch:
**NOTE:** **NOTE:**
- **the `ballot` tests suite** requires to run `ganache-cli` locally. - **The `ballot` tests suite** requires to run `ganache-cli` locally.
- **the `remixd` tests suite** requires to run `remixd` locally. - **The `remixd` tests suite** requires to run `remixd` locally.
- **the `gist` tests suite** requires specifying a github access token in **.env file**. - **The `gist` tests suite** requires specifying a github access token in **.env file**.
``` ```
gist_token = <token> gist_token = <token> // token should have permission to create a gist
``` ```
**note that this token should have permission to create a gist.**
## Important Links ## Important Links

@ -170,10 +170,10 @@ class SettingsUI {
onchange=${() => this.validateValue()} onchange=${() => this.validateValue()}
> >
<select name="unit" class="form-control p-1 ${css.gasNvalUnit} ${css.col2_2} custom-select" id="unit"> <select name="unit" class="form-control p-1 ${css.gasNvalUnit} ${css.col2_2} custom-select" id="unit">
<option data-unit="wei">wei</option> <option data-unit="wei">Wei</option>
<option data-unit="gwei">gwei</option> <option data-unit="gwei">Gwei</option>
<option data-unit="finney">finney</option> <option data-unit="finney">Finney</option>
<option data-unit="ether">ether</option> <option data-unit="ether">Ether</option>
</select> </select>
</div> </div>
</div> </div>

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-analyzer", "name": "@remix-project/remix-analyzer",
"version": "0.5.16", "version": "0.5.17",
"description": "Tool to perform static analysis on Solidity smart contracts", "description": "Tool to perform static analysis on Solidity smart contracts",
"main": "src/index.js", "main": "src/index.js",
"types": "src/index.d.ts", "types": "src/index.d.ts",
@ -22,8 +22,8 @@
"@ethereumjs/block": "^3.5.1", "@ethereumjs/block": "^3.5.1",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-astwalker": "^0.0.37", "@remix-project/remix-astwalker": "^0.0.38",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"async": "^2.6.2", "async": "^2.6.2",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
"ethers": "^5.4.2", "ethers": "^5.4.2",
@ -51,5 +51,5 @@
"typescript": "^3.7.5" "typescript": "^3.7.5"
}, },
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-astwalker", "name": "@remix-project/remix-astwalker",
"version": "0.0.37", "version": "0.0.38",
"description": "Tool to walk through Solidity AST", "description": "Tool to walk through Solidity AST",
"main": "src/index.js", "main": "src/index.js",
"scripts": { "scripts": {
@ -37,7 +37,7 @@
"@ethereumjs/block": "^3.5.1", "@ethereumjs/block": "^3.5.1",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"@types/tape": "^4.2.33", "@types/tape": "^4.2.33",
"async": "^2.6.2", "async": "^2.6.2",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
@ -53,5 +53,5 @@
"tap-spec": "^5.0.0" "tap-spec": "^5.0.0"
}, },
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-debug", "name": "@remix-project/remix-debug",
"version": "0.5.7", "version": "0.5.8",
"description": "Tool to debug Ethereum transactions", "description": "Tool to debug Ethereum transactions",
"contributors": [ "contributors": [
{ {
@ -22,15 +22,20 @@
"@ethereumjs/common": "^2.5.0", "@ethereumjs/common": "^2.5.0",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-astwalker": "^0.0.37", "@remix-project/remix-astwalker": "^0.0.38",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"@remix-project/remix-simulator": "^0.2.7", "@remix-project/remix-simulator": "^0.2.8",
"ansi-gray": "^0.1.1",
"async": "^2.6.2", "async": "^2.6.2",
"color-support": "^1.1.3",
"commander": "^2.19.0", "commander": "^2.19.0",
"deep-equal": "^1.0.1", "deep-equal": "^1.0.1",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
"ethers": "^5.4.2", "ethers": "^5.4.2",
"express-ws": "^4.0.0",
"merge": "^2.1.1",
"string-similarity": "^4.0.4", "string-similarity": "^4.0.4",
"time-stamp": "^2.2.0",
"web3": "^1.5.1" "web3": "^1.5.1"
}, },
"devDependencies": { "devDependencies": {
@ -62,5 +67,5 @@
}, },
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-debug#readme", "homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-debug#readme",
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-lib", "name": "@remix-project/remix-lib",
"version": "0.5.7", "version": "0.5.8",
"description": "Library to various Remix tools", "description": "Library to various Remix tools",
"contributors": [ "contributors": [
{ {
@ -20,6 +20,7 @@
"async": "^2.1.2", "async": "^2.1.2",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
"ethers": "^4.0.40", "ethers": "^4.0.40",
"ethjs-util": "^0.1.6",
"events": "^3.0.0", "events": "^3.0.0",
"solc": "^0.7.4", "solc": "^0.7.4",
"string-similarity": "^4.0.4", "string-similarity": "^4.0.4",
@ -53,5 +54,5 @@
}, },
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-lib#readme", "homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-lib#readme",
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-simulator", "name": "@remix-project/remix-simulator",
"version": "0.2.7", "version": "0.2.8",
"description": "Ethereum IDE and tools for the web", "description": "Ethereum IDE and tools for the web",
"contributors": [ "contributors": [
{ {
@ -18,7 +18,7 @@
"@ethereumjs/common": "^2.5.0", "@ethereumjs/common": "^2.5.0",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"ansi-gray": "^0.1.1", "ansi-gray": "^0.1.1",
"async": "^3.1.0", "async": "^3.1.0",
"body-parser": "^1.18.2", "body-parser": "^1.18.2",
@ -66,5 +66,5 @@
}, },
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-simulator#readme", "homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-simulator#readme",
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-solidity", "name": "@remix-project/remix-solidity",
"version": "0.4.7", "version": "0.4.8",
"description": "Tool to load and run Solidity compiler", "description": "Tool to load and run Solidity compiler",
"main": "src/index.js", "main": "src/index.js",
"types": "src/index.d.ts", "types": "src/index.d.ts",
@ -18,7 +18,7 @@
"@ethereumjs/block": "^3.5.1", "@ethereumjs/block": "^3.5.1",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"async": "^2.6.2", "async": "^2.6.2",
"eslint-scope": "^5.0.0", "eslint-scope": "^5.0.0",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
@ -61,5 +61,5 @@
}, },
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-solidity#readme", "homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-solidity#readme",
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -150,7 +150,7 @@ export interface CompilerInputOptions {
language?: Language language?: Language
} }
export type EVMVersion = 'homestead' | 'tangerineWhistle' | 'spuriousDragon' | 'byzantium' | 'constantinople' | 'petersburg' | 'istanbul' | 'muirGlacier' | 'berlin' | 'london' | null export type EVMVersion = 'homestead' | 'tangerineWhistle' | 'spuriousDragon' | 'byzantium' | 'constantinople' | 'petersburg' | 'istanbul' | 'berlin' | 'london' | null
export type Language = 'Solidity' | 'Yul' export type Language = 'Solidity' | 'Yul'

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-tests", "name": "@remix-project/remix-tests",
"version": "0.2.7", "version": "0.2.8",
"description": "Tool to test Solidity smart contracts", "description": "Tool to test Solidity smart contracts",
"main": "src/index.js", "main": "src/index.js",
"types": "./src/index.d.ts", "types": "./src/index.d.ts",
@ -39,9 +39,9 @@
"@ethereumjs/common": "^2.5.0", "@ethereumjs/common": "^2.5.0",
"@ethereumjs/tx": "^3.3.2", "@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3", "@ethereumjs/vm": "^5.5.3",
"@remix-project/remix-lib": "^0.5.7", "@remix-project/remix-lib": "^0.5.8",
"@remix-project/remix-simulator": "^0.2.7", "@remix-project/remix-simulator": "^0.2.8",
"@remix-project/remix-solidity": "^0.4.7", "@remix-project/remix-solidity": "^0.4.8",
"ansi-gray": "^0.1.1", "ansi-gray": "^0.1.1",
"async": "^2.6.0", "async": "^2.6.0",
"axios": ">=0.21.1", "axios": ">=0.21.1",
@ -77,5 +77,5 @@
"typescript": "^3.3.1" "typescript": "^3.3.1"
}, },
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

@ -540,7 +540,6 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
<option data-id={state.evmVersion === 'default' ? 'selected' : ''} value="default">compiler default</option> <option data-id={state.evmVersion === 'default' ? 'selected' : ''} value="default">compiler default</option>
<option data-id={state.evmVersion === 'london' ? 'selected' : ''} value="london">london</option> <option data-id={state.evmVersion === 'london' ? 'selected' : ''} value="london">london</option>
<option data-id={state.evmVersion === 'berlin' ? 'selected' : ''} value="berlin">berlin</option> <option data-id={state.evmVersion === 'berlin' ? 'selected' : ''} value="berlin">berlin</option>
<option data-id={state.evmVersion === 'muirGlacier' ? 'selected' : ''} value="muirGlacier">muirGlacier</option>
<option data-id={state.evmVersion === 'istanbul' ? 'selected' : ''} value="istanbul">istanbul</option> <option data-id={state.evmVersion === 'istanbul' ? 'selected' : ''} value="istanbul">istanbul</option>
<option data-id={state.evmVersion === 'petersburg' ? 'selected' : ''} value="petersburg">petersburg</option> <option data-id={state.evmVersion === 'petersburg' ? 'selected' : ''} value="petersburg">petersburg</option>
<option data-id={state.evmVersion === 'constantinople' ? 'selected' : ''} value="constantinople">constantinople</option> <option data-id={state.evmVersion === 'constantinople' ? 'selected' : ''} value="constantinople">constantinople</option>

@ -1,6 +1,6 @@
{ {
"name": "@remix-project/remix-url-resolver", "name": "@remix-project/remix-url-resolver",
"version": "0.0.28", "version": "0.0.29",
"description": "Solidity import url resolver engine", "description": "Solidity import url resolver engine",
"main": "src/index.js", "main": "src/index.js",
"types": "src/index.d.ts", "types": "src/index.d.ts",
@ -41,5 +41,5 @@
"typescript": "^3.1.6" "typescript": "^3.1.6"
}, },
"typings": "src/index.d.ts", "typings": "src/index.d.ts",
"gitHead": "4705cbc4d1761f75267992552da9db6cff2f3ed5" "gitHead": "13f961dadacea374de4d79a70b1aa4acf243b18b"
} }

1772
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
{ {
"name": "remix-project", "name": "remix-project",
"version": "0.19.0-dev", "version": "0.20.0-dev",
"license": "MIT", "license": "MIT",
"description": "Ethereum Remix Monorepo", "description": "Ethereum Remix Monorepo",
"keywords": [ "keywords": [
@ -160,6 +160,7 @@
"document-register-element": "1.13.1", "document-register-element": "1.13.1",
"ethereumjs-util": "^7.0.10", "ethereumjs-util": "^7.0.10",
"ethers": "^5.4.2", "ethers": "^5.4.2",
"ethjs-util": "^0.1.6",
"express-ws": "^4.0.0", "express-ws": "^4.0.0",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"form-data": "^4.0.0", "form-data": "^4.0.0",

Loading…
Cancel
Save