Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
244 commits
Select commit Hold shift + click to select a range
597bdda
add package.json
yann300 May 30, 2017
4f38c81
websocket + router + filesytem_service
yann300 Jun 1, 2017
1e7dec2
version
yann300 Jun 22, 2017
b5a333e
fix help
yann300 Jun 26, 2017
d64aa20
change repo url scheme
yann300 Jun 26, 2017
39d2294
console.log
yann300 Jun 27, 2017
95a8402
version
yann300 Jun 27, 2017
a9d193c
loopback
yann300 Jun 28, 2017
e9c1759
warn message
yann300 Jun 28, 2017
89bb8da
do not forward symbolic link
yann300 Jun 28, 2017
7118fec
version
yann300 Jun 28, 2017
1c9ace3
readme
yann300 Jun 29, 2017
4b231d0
add more functionnalities:
yann300 Oct 25, 2017
1f4ca7b
standard
yann300 Oct 25, 2017
40ebee6
remove local path
yann300 Oct 25, 2017
8c8f8e3
close listening to 65520
yann300 Nov 3, 2017
2bb8af1
options to open rpc server
yann300 Nov 3, 2017
8719ce8
Merge pull request #9 from ethereum/startnode
yann300 Nov 22, 2017
095bbbf
add resolveDirectory
yann300 Dec 14, 2017
4cbe4c1
change sharedfolder `get` return value
yann300 Dec 14, 2017
4419de2
Merge pull request #11 from ethereum/startnode
yann300 Dec 14, 2017
71eeccb
add exists
yann300 Dec 20, 2017
6e8a374
Merge pull request #12 from ethereum/startnode
yann300 Dec 20, 2017
331d80f
move stdout to dependencies
yann300 Jan 9, 2018
737be30
Merge pull request #13 from ethereum/startnode
yann300 Jan 9, 2018
8d3535c
Move serve and web3 to dependencies
yann300 Jan 9, 2018
35d08d5
Merge pull request #14 from ethereum/startnode
yann300 Jan 9, 2018
59a978d
Update package.json
yann300 Jan 18, 2018
9afa147
fis rename
yann300 Jan 30, 2018
18f43db
Merge pull request #17 from ethereum/fixRename
yann300 Feb 7, 2018
ae2fa15
check if file already exist
yann300 Feb 12, 2018
78de88f
Merge pull request #18 from ethereum/fixSharedFolderSetFile
yann300 Feb 12, 2018
67fc597
bump version & add desc
yann300 Feb 13, 2018
bb49089
Merge pull request #19 from ethereum/version013
yann300 Feb 13, 2018
a761f32
Update README.md
yann300 Feb 13, 2018
433c76c
Update main.js
yann300 Feb 13, 2018
e11cd15
Merge pull request #21 from ethereum/yann300-patch-2
yann300 Feb 13, 2018
7fb0d12
Update README.md
yann300 Feb 13, 2018
54a6e7b
Merge pull request #20 from ethereum/yann300-patch-1
yann300 Feb 13, 2018
db31196
Update README.md
yann300 Feb 13, 2018
f01bc34
version 0.1.4
yann300 Feb 13, 2018
3ce3197
Merge pull request #22 from ethereum/version014
yann300 Feb 13, 2018
c950c2a
check file existing
yann300 Feb 14, 2018
b533d23
wrap call with try catch
yann300 Feb 14, 2018
cc10dee
Merge pull request #24 from ethereum/feedback
yann300 Feb 15, 2018
e955474
bump versioin
yann300 Feb 15, 2018
b799d60
Merge pull request #25 from ethereum/bumpVersion015
yann300 Feb 15, 2018
9f5118c
Update README.md
yann300 Feb 15, 2018
9e2d4f2
Merge pull request #26 from ethereum/yann300-patch-3
yann300 Feb 15, 2018
c0f15b7
Fix typo
tanevanwifferen Feb 24, 2018
4896738
Merge pull request #28 from tanevanwifferen/patch-1
yann300 Feb 26, 2018
b6dd52e
fix web3 version
yann300 Mar 1, 2018
8f98313
Merge pull request #29 from ethereum/fixWeb3Bug
yann300 Mar 1, 2018
5c57387
add personal mode to test node
yann300 Mar 2, 2018
da5193d
Merge pull request #30 from ethereum/fixWeb3Bug
yann300 Mar 2, 2018
ce5b07b
Fix README.md typos
faustogut Mar 4, 2018
8e95ed4
used web3 version
yann300 Mar 14, 2018
fbc9175
Merge pull request #34 from ethereum/yann300-patch-1
yann300 Mar 14, 2018
2400828
update web3
yann300 Mar 14, 2018
abea260
update web3 && add lerna dep
yann300 Mar 14, 2018
6fa383f
add binary && index.js
yann300 Mar 19, 2018
ae26732
standard
yann300 Mar 19, 2018
eafcb82
add bin declaration
yann300 Mar 19, 2018
252f235
Merge pull request #35 from ethereum/addAPI
yann300 Mar 19, 2018
a584d3e
make remixd binary
yann300 Mar 19, 2018
ade0e9d
bump version
yann300 Mar 19, 2018
923864a
Merge pull request #36 from ethereum/addAPI
yann300 Mar 19, 2018
0c994d2
fix typo
yann300 Mar 19, 2018
4e3104e
add util to index.js
yann300 Mar 19, 2018
c40d7d5
Merge pull request #37 from ethereum/addAPI
yann300 Mar 19, 2018
0dd443b
use chokidar for notification
yann300 Mar 19, 2018
97e53d7
Merge pull request #38 from ethereum/changeNotifierLib
yann300 Mar 19, 2018
1cfeec7
use tagged version of web3
yann300 Mar 27, 2018
45b8ca4
Merge pull request #43 from ethereum/changeNotifierLib
yann300 Mar 27, 2018
48681a8
use binary
yann300 Mar 28, 2018
7e61c9b
comment listening 'add', 'addDir'
yann300 Mar 28, 2018
014271d
fix get return value if readonly
yann300 Mar 28, 2018
b522bcc
don't overwrite content with junk
yann300 Mar 28, 2018
a75754e
bump version
yann300 Mar 28, 2018
c9bea2d
Merge pull request #44 from ethereum/changeNotifierLib
yann300 Mar 28, 2018
c694ce4
refactor router to open multiple ones
yann300 Sep 7, 2018
7711dec
remove package-lock.json
yann300 Sep 7, 2018
2dce934
Merge pull request #50 from ethereum/refactorRemixd
yann300 Sep 7, 2018
ea85668
bump version
yann300 Sep 7, 2018
a0823a3
Merge pull request #51 from ethereum/refactorRemixd
yann300 Sep 7, 2018
40c8a8b
add --read-only flag which prevents all writes
tjanson Sep 19, 2018
7ed178b
move usage example into --help text
tjanson Sep 19, 2018
6c63bc3
do not always output the help text
tjanson Sep 19, 2018
2ea09a9
Merge pull request #54 from tjanson/help-example
yann300 Oct 1, 2018
8b0eeb7
Merge pull request #53 from tjanson/read-only-mode
yann300 Oct 1, 2018
23b0e3f
reqiure to specify the remix IDE instance to connect to
yann300 Oct 1, 2018
8dc3993
Merge pull request #55 from ethereum/requireToSpecifyRemixIDEInstance
yann300 Oct 1, 2018
8abe312
Update package.json
yann300 Oct 1, 2018
21f9fe0
Merge pull request #56 from ethereum/yann300-patch-1
yann300 Oct 1, 2018
4b216ea
Update package.json
yann300 Oct 1, 2018
e1cd972
add folderIsReadOnly
yann300 Oct 1, 2018
02c8466
Merge pull request #57 from ethereum/AddfolderIsReadOnly
yann300 Oct 1, 2018
c6a60bb
Update startFrontend.js
yann300 Oct 1, 2018
0111fbd
vyper compiler
yann300 Oct 1, 2018
7853663
Update vyper.js
yann300 Oct 2, 2018
10e9d27
Update vyper.js
yann300 Oct 2, 2018
3612a88
Merge pull request #58 from ethereum/vyperPackaging
yann300 Oct 2, 2018
885e423
Merge pull request #32 from faustogut/fix-readme-typos
yann300 Oct 2, 2018
0bd1b40
Update package.json
yann300 Oct 2, 2018
24f3e29
Merge pull request #61 from ethereum/yann300-patch-3
yann300 Oct 2, 2018
45d9e9e
Two-way connection, English correction
fulldecent Oct 25, 2018
4c8fea7
two-way
fulldecent Oct 25, 2018
05ca2b0
Merge pull request #62 from fulldecent/patch-1
yann300 Oct 27, 2018
bae3873
bump
yann300 Oct 28, 2018
1a9ec32
Merge pull request #63 from ethereum/bump
yann300 Oct 28, 2018
6af4735
Update README.md
LianaHus Nov 26, 2018
0c98399
Merge pull request #66 from LianaHus/patch-1
yann300 Nov 26, 2018
47ede42
Update remixd
yann300 Nov 26, 2018
8a2a303
Update README.md
yann300 Nov 26, 2018
b204da5
Update README.md
LianaHus Nov 26, 2018
8a68ebf
Update README.md
LianaHus Nov 26, 2018
5a480a0
Merge pull request #67 from ethereum/yann300-patch-4
yann300 Nov 26, 2018
00d4010
Update README.md
yann300 Nov 29, 2018
fbfe18d
Merge pull request #69 from ethereum/yann300-patch-5
yann300 Nov 29, 2018
69d89a7
Fix Symbolinc links -> Symbolic links
Alonski Dec 8, 2018
59a5149
set max size
yann300 Aug 24, 2019
4c7c1cf
Merge pull request #80 from ethereum/yann300-patch-6
yann300 Aug 24, 2019
3fe9439
bump version
yann300 Aug 24, 2019
d15e205
Merge pull request #81 from ethereum/bumpVersion
yann300 Aug 24, 2019
aa7d4a2
warn that the sharedFolder changed
yann300 Sep 19, 2019
2596169
Merge pull request #82 from ethereum/yann300-patch-7
yann300 Sep 19, 2019
30bbfdc
make sure websocket is defined
yann300 Sep 19, 2019
bcfddea
fix(websocket): [connection] Ensure WebSocket Connection Not Null
Sep 21, 2019
47c781d
Merge pull request #85 from danforbes/fix/websocket/connection
yann300 Sep 23, 2019
f781cff
remove deprecated options
yann300 Sep 26, 2019
3a255fb
fix set folder / files
yann300 Oct 4, 2019
420392a
Merge pull request #87 from ethereum/fix_adding_removing_folder
yann300 Oct 4, 2019
f3c5654
bump
yann300 Oct 4, 2019
e6c71df
Merge pull request #88 from ethereum/bumpVersion1
yann300 Oct 4, 2019
b4db7e1
typo: rename shareFolder => currentSharedFolder
yann300 Oct 8, 2019
fea3c68
Merge pull request #89 from ethereum/yann300-patch-8
yann300 Oct 8, 2019
e8e77d9
bump version
yann300 Oct 8, 2019
90ee236
Merge pull request #90 from ethereum/bumpVersio
yann300 Oct 8, 2019
eb3d850
Merge pull request #70 from Alonski/patch-1
LianaHus Oct 24, 2019
daea355
Added isFile and isDirectory to sharedFolder api
ioedeveloper May 5, 2020
fbe6ba6
Added circleci config and eslint
ioedeveloper May 5, 2020
70bf7c3
Remove old dependencies
ioedeveloper May 5, 2020
520c6bf
Merge pull request #102 from ethereum/filemanager-api
yann300 May 5, 2020
1140864
Return true on file/directory remove success
ioedeveloper May 7, 2020
ace74ef
Return callback with error on fail
ioedeveloper May 8, 2020
a981a19
bump version
yann300 May 12, 2020
a0b8438
Merge pull request #105 from ethereum/yann300-patch-9
yann300 May 12, 2020
9e1eff9
Merge pull request #104 from ethereum/filemanager-api
yann300 May 12, 2020
49ee3ed
bump version
yann300 May 12, 2020
db4e5cd
Merge pull request #106 from ethereum/bumpVersion.16
yann300 May 12, 2020
6ccf999
Changed sharedFolder into ES6 class
ioedeveloper May 26, 2020
ea9783d
Setup typescript for remixd
ioedeveloper May 26, 2020
1780f57
Changed codebase to typescript
ioedeveloper May 27, 2020
30e3d7f
Make file executable
ioedeveloper May 28, 2020
aaae27f
Setup plugin client
ioedeveloper May 28, 2020
9113c83
Kill server process
ioedeveloper Jun 1, 2020
8b4cc0c
Untracked files issue resolved to fix .gitignore
ioedeveloper Jun 2, 2020
44855af
Ignore libs
ioedeveloper Jun 2, 2020
3102f2e
Expose methods
ioedeveloper Jun 8, 2020
9e95d6b
Modified app bootstrap and types
ioedeveloper Jun 8, 2020
fc08022
Made sharedFolder generic and fix broken changes
ioedeveloper Jun 9, 2020
c9203f5
Modified exposed apis
ioedeveloper Jun 9, 2020
473c9e8
Clean up exposed methods and added return types
ioedeveloper Jun 10, 2020
5b7f9a2
list and isDirectory methods
ioedeveloper Jun 10, 2020
7dc8360
Fixed linting error
ioedeveloper Jun 11, 2020
dc91150
Removed flags from start command
ioedeveloper Jun 11, 2020
cbb8e6f
Merge pull request #109 from ethereum/remixd-websocket
yann300 Jun 16, 2020
f1ef62b
publish lib folder
yann300 Jun 16, 2020
80ab352
Merge pull request #111 from ethereum/publish_lib_folder
yann300 Jun 16, 2020
ec9c474
Emit folder added event from plugin
ioedeveloper Jun 19, 2020
0354e21
Trigger fileAdded, fileChanged and fileRemoved event
ioedeveloper Jun 19, 2020
3c965c9
Emit fileRenamed event
ioedeveloper Jun 19, 2020
80c800e
Set start command
ioedeveloper Jun 19, 2020
1a17fbd
Merge pull request #112 from ethereum/remixd-websocket
yann300 Jun 22, 2020
0966a57
bump version
ioedeveloper Jun 22, 2020
9bcc15c
Ignore types dir
ioedeveloper Jun 22, 2020
a229bc4
Modified bumped version
ioedeveloper Jun 22, 2020
9116649
Merge pull request #113 from ethereum/remixd-websocket
ioedeveloper Jun 22, 2020
85eaa9c
Set specific versions for @remixproject dependencies
ioedeveloper Jun 22, 2020
e376b2e
bump version
ioedeveloper Jun 22, 2020
853e4a2
Merge pull request #114 from ethereum/remixd-websocket
ioedeveloper Jun 22, 2020
202198a
Restored setupNotifications for remixd
ioedeveloper Jun 25, 2020
1502cd9
Modify emitted event parameters
ioedeveloper Jun 25, 2020
ed177e8
Check if notification absolute path exists
ioedeveloper Jun 25, 2020
91e2f23
Expose websocket and shared folder api for external services
ioedeveloper Jun 25, 2020
5c74bc3
Merge pull request #115 from ethereum/remixd-websocket
yann300 Jun 25, 2020
3f2917d
bump remixd version
ioedeveloper Jun 25, 2020
1c92105
Merge pull request #116 from ethereum/remixd-websocket
ioedeveloper Jun 25, 2020
a8bb29b
log and continue instead of throwing
yann300 Jul 7, 2020
b40a8ef
Merge pull request #117 from ethereum/dontThrowError
yann300 Jul 7, 2020
d96d7db
Bump remixd version
ioedeveloper Jul 8, 2020
b891595
Merge pull request #118 from ethereum/bump-remixd
ioedeveloper Jul 8, 2020
5273f51
Bump remixd version
ioedeveloper Jul 8, 2020
9538073
Merge pull request #119 from ethereum/bump-remixd
ioedeveloper Jul 8, 2020
4f97b99
bump remix-plugin version
yann300 Jul 13, 2020
b32ee39
Merge pull request #121 from ethereum/bumpVersion-remixplugin
yann300 Jul 13, 2020
d1936c6
use 0.3.0-beta.5 remix-plugin
yann300 Sep 9, 2020
4aa3125
Merge pull request #125 from ethereum/latestRemixPlugin
ioedeveloper Sep 9, 2020
1b46e80
Bump version to 0.2.3-alpha.5
ioedeveloper Sep 9, 2020
e7e938a
Merge pull request #126 from ethereum/bump-version
ioedeveloper Sep 9, 2020
fc573bf
Revert "Bump version to 0.2.3-alpha.5"
yann300 Sep 9, 2020
17143af
Merge pull request #127 from ethereum/revert-126-bump-version
yann300 Sep 9, 2020
dec0a7e
Bump version to 0.2.3-alpha.5
ioedeveloper Sep 9, 2020
1e69ffb
Merge pull request #128 from ethereum/bump-version
ioedeveloper Sep 9, 2020
0b4ecb3
Added tslib dependency
ioedeveloper Sep 9, 2020
632d9cd
Merge pull request #129 from ethereum/bump-version
ioedeveloper Sep 9, 2020
077223a
bump remixd version 0.2.3-alpha.6
ioedeveloper Sep 9, 2020
bee4b88
Merge pull request #130 from ethereum/bump-version
ioedeveloper Sep 9, 2020
a342b78
Moved tslib from dev dependency to main dependency
ioedeveloper Sep 9, 2020
9b3f6f5
Merge pull request #131 from ethereum/bump-version
ioedeveloper Sep 9, 2020
adab5a7
Bump remixd version
ioedeveloper Sep 9, 2020
d7de137
Merge pull request #132 from ethereum/bump-version
ioedeveloper Sep 9, 2020
59d88b4
Update plugin-ws version
ioedeveloper Sep 14, 2020
4da76d5
Merge pull request #133 from ethereum/bump-version
ioedeveloper Sep 15, 2020
9a5c0c9
Display warning for unsupported origins
ioedeveloper Sep 18, 2020
907d3c5
Remove console logs
ioedeveloper Sep 18, 2020
1d277cf
Specify gist url and removed additional start command in package.json
ioedeveloper Sep 18, 2020
681de1d
Ensure origin is provided before checking if origin is valid
ioedeveloper Sep 18, 2020
456283e
Added comments for unsupported origins
ioedeveloper Sep 22, 2020
4341f0a
Included local origins.json
ioedeveloper Sep 22, 2020
051808f
Made --remix-ide flag optional
ioedeveloper Sep 22, 2020
cfd5e78
Merge pull request #134 from ethereum/fix-origin
ioedeveloper Sep 23, 2020
08df378
Bump remixd version
ioedeveloper Sep 23, 2020
d050861
Merge pull request #136 from ethereum/fix-origin
ioedeveloper Sep 23, 2020
7f28e46
Initial commit
ioedeveloper Sep 29, 2020
daedd1d
Merge remote-tracking branch 'remixd/master'
ioedeveloper Sep 29, 2020
5edb5fd
Moved remixd into libs directory
ioedeveloper Sep 29, 2020
aa88a3e
Merged remixd into remix-project
ioedeveloper Sep 29, 2020
f304be0
Setup remixd build
ioedeveloper Sep 29, 2020
cd470fa
Exclude node_modules from linting
ioedeveloper Sep 30, 2020
68b8e21
Use scaffolded template for remixd
ioedeveloper Sep 30, 2020
1c7637c
Merge branch 'master' of https://github.com/ethereum/remix-project in…
ioedeveloper Sep 30, 2020
95855a1
Fix failing linting
ioedeveloper Sep 30, 2020
2b419e4
typo
Aniket-Engg Oct 2, 2020
d9526c5
Setup build and serve commands
ioedeveloper Oct 2, 2020
53342f2
Merge branch 'remixd' of https://github.com/ethereum/remix-project in…
ioedeveloper Oct 2, 2020
3cc58f5
Changed remixd command in circleci
ioedeveloper Oct 2, 2020
fa578e7
Modified shared folder command
ioedeveloper Oct 2, 2020
2929b70
Use npm run remixd command
ioedeveloper Oct 2, 2020
4239318
Removed setup remixd function
ioedeveloper Oct 2, 2020
55ce0df
Specify full path of shared folder
ioedeveloper Oct 2, 2020
7619a0a
Format path
ioedeveloper Oct 2, 2020
2362fda
Updated urls and package name
ioedeveloper Oct 13, 2020
c027b39
Merge branch 'master' of https://github.com/ethereum/remix-project in…
ioedeveloper Oct 13, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
gist_token=<token>
account_passphrase=<passphrase>
account_password=<password>
account_password=<password>
NODE_OPTIONS=--max-old-space-size=2048
1 change: 1 addition & 0 deletions apps/remix-ide-e2e/seleniumConfig.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable */
module.exports = {
version: '3.8.1',
baseURL: 'https://selenium-release.storage.googleapis.com',
Expand Down
12 changes: 2 additions & 10 deletions apps/remix-ide/ci/browser_tests_chrome.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,14 @@

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd apps/remix-ide/contracts
echo 'sharing folder: '
echo $PWD
../../../node_modules/.bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ../../..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd
echo 'sharing folder: ' $PWD '/apps/remix-ide/contracts' &
npm run remixd &

sleep 5

Expand Down
12 changes: 2 additions & 10 deletions apps/remix-ide/ci/browser_tests_firefox.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,14 @@

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd apps/remix-ide/contracts
echo 'sharing folder: '
echo $PWD
../../../node_modules/.bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ../../..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd
echo 'sharing folder: ' $PWD '/apps/remix-ide/contracts' &
npm run remixd &

sleep 5

Expand Down
10 changes: 0 additions & 10 deletions apps/remix-ide/ci/browser_tests_run_deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,12 @@

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd apps/remix-ide/contracts
echo 'sharing folder: '
echo $PWD
../../../node_modules/.bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ../../..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd

sleep 5

Expand Down
2 changes: 1 addition & 1 deletion libs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Remix is built out of several different modules. Here is the brief description.
+ [`remix-lib`](remix-lib/README.md): Common place for libraries being used across multiple modules
+ [`remix-tests`](remix-tests/README.md): Unit test Solidity smart contracts. It works as a plugin & as CLI both
+ [`remix-url-resolver`](remix-url-resolver/README.md): Provide helpers for resolving the content from external URL ( including github, swarm, ipfs etc.).
+ [`remixd`](https://github.com/ethereum/remixd/tree/master): Allow accessing local filesystem from Remix IDE by running a daemon
+ [`remixd`](remixd/README.md): Allow accessing local filesystem from Remix IDE by running a daemon

Each module generally has their own npm package and test suite, as well as basic documentation in their respective `README`s. Usage of modules as plugin is well documented **[here](https://remix-ide.readthedocs.io/en/latest/index.html)**.

Expand Down
3 changes: 2 additions & 1 deletion libs/remix-astwalker/.eslintrc
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"extends": "../../.eslintrc",
"rules": {
"@typescript-eslint/no-explicit-any": "off"
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/prefer-namespace-keyword": "off"
},
"ignorePatterns": ["!**/*"]
}
2 changes: 1 addition & 1 deletion libs/remix-astwalker/src/@types/remix-lib/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Type definitiosn for the things we need from remix-lib
// Type definitions for the things we need from remix-lib

declare module "remix-lib" {
export module util {
Expand Down
1 change: 0 additions & 1 deletion libs/remixd
Submodule remixd deleted from 1a9ec3
1 change: 1 addition & 0 deletions libs/remixd/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "extends": "../../.eslintrc", "rules": {}, "ignorePatterns": ["!**/*"] }
49 changes: 49 additions & 0 deletions libs/remixd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Remixd

`remixd` is a tool that intend to be used with [Remix IDE](https://github.com/ethereum/remix-project) (aka. Browser-Solidity). It allows a websocket connection between
`Remix IDE` (web application) and the local computer.

Practically Remix IDE makes available a folder shared by `remixd`.

More details are explained in this [tutorial](https://remix-ide.readthedocs.io/en/latest/remixd.html).

Alternatively `remixd` can be used to setup a development environment that can be used with other popular frameworks like Embark, Truffle, Ganache, etc..

`remixd` needs `npm` and `node`

## INSTALLATION

`npm install -g @remix-project/remixd`

## HELP SECTION

```
Usage: remixd -s <shared folder> --remix-ide https://remix.ethereum.org

Provide a two-way connection between the local computer and Remix IDE.


Options:

--remix-ide <url> URL of remix instance allowed to connect to this
web sockect connection
-s, --shared-folder <path> Folder to share with Remix IDE
--read-only Treat shared folder as read-only (experimental)
-h, --help output usage information

```

## SHARE A FOLDER

`remixd -s <absolute-path> --remix-ide https://remix.ethereum.org`

The current user should have `read/write` access to the folder (at least `read` access).

It is important to notice that changes made to the current file in `Remix IDE` are automatically saved to the local computer every 5000 ms. There is no `Save` action. But the `Ctrl-Z` (undo) can be used.

Furthermore :
- No copy of the shared folder are kept in the browser storage.
- It is not possible to create a file from `Remix IDE` (that might change).
- If a folder does not contain any file, the folder will not be displayed in the explorer (that might change).
- Symbolic links are not forwarded to Remix IDE.

15 changes: 15 additions & 0 deletions libs/remixd/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/* eslint-disable */
module.exports = {
name: 'remixd',
preset: '../../jest.config.js',
globals: {
'ts-jest': {
tsConfig: '<rootDir>/tsconfig.spec.json'
}
},
transform: {
'^.+\\.[tj]sx?$': 'ts-jest'
},
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
coverageDirectory: '../../coverage/libs/remixd'
};
5 changes: 5 additions & 0 deletions libs/remixd/nodemon.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"watch": ["./src", "./bin"],
"ext": "ts",
"exec": "npm run build && npm run start"
}
69 changes: 69 additions & 0 deletions libs/remixd/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"name": "@remix-project/remixd",
"version": "0.2.4-alpha.0",
"description": "remix server: allow accessing file system from remix.ethereum.org and start a dev environment (see help section)",
"main": "./index.js",
"types": "./index.d.ts",
"bin": {
"remixd": "./bin/remixd.js"
},
"scripts": {
"test": "echo \"Error: no test specified\"",
"start": "./bin/remixd.js",
"npip": "npip",
"lint": "eslint ./src ./bin --ext .ts",
"build": "tsc -p ./ && chmod +x ./bin/remixd.js",
"dev": "nodemon"
},
"repository": {
"type": "git",
"url": "git+https://github.com/ethereum/remix-project.git"
},
"keywords": [
"remix",
"ide",
"ethereum",
"solidity"
],
"author": "Remix Team",
"license": "MIT",
"bugs": {
"url": "https://github.com/ethereum/remix-project/issues"
},
"homepage": "https://github.com/ethereum/remix-project#readme",
"dependencies": {
"@remixproject/plugin": "0.3.0-beta.5",
"@remixproject/plugin-api": "0.3.0-beta.5",
"@remixproject/plugin-utils": "0.3.0-beta.5",
"@remixproject/plugin-ws": "^0.3.0-beta.8",
"axios": "^0.20.0",
"chokidar": "^2.1.8",
"commander": "^2.20.3",
"fs-extra": "^3.0.1",
"isbinaryfile": "^3.0.2",
"ws": "^7.3.0"
},
"python": {
"execPath": "python3",
"dependencies": {
"vyper": ">=0.1.0b3"
}
},
"devDependencies": {
"@types/axios": "^0.14.0",
"@types/fs-extra": "^9.0.1",
"@types/node": "^14.0.5",
"@types/ws": "^7.2.4",
"@typescript-eslint/eslint-plugin": "^3.2.0",
"@typescript-eslint/parser": "^3.2.0",
"eslint": "6.8.0",
"eslint-config-standard": "14.1.1",
"eslint-plugin-import": "2.20.2",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-standard": "4.0.1",
"nodemon": "^2.0.4",
"ts-node": "^8.10.1",
"typescript": "^3.9.3"
}
}
99 changes: 99 additions & 0 deletions libs/remixd/src/bin/remixd.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/usr/bin/env node
import WebSocket from '../websocket'
import * as servicesList from '../serviceList'
import * as WS from 'ws'
import { getDomain } from '../utils'
import Axios from 'axios'
import * as fs from 'fs-extra'
import * as path from 'path'
import * as program from 'commander'

(async () => {
program
.usage('-s <shared folder>')
.description('Provide a two-way connection between the local computer and Remix IDE')
.option('--remix-ide <url>', 'URL of remix instance allowed to connect to this web sockect connection')
.option('-s, --shared-folder <path>', 'Folder to share with Remix IDE')
.option('--read-only', 'Treat shared folder as read-only (experimental)')
.on('--help', function(){
console.log('\nExample:\n\n remixd -s ./ --remix-ide http://localhost:8080')
}).parse(process.argv)
// eslint-disable-next-line
const killCallBack: Array<Function> = []

if (!program.remixIde) {
console.log('\x1b[33m%s\x1b[0m', '[WARN] You can only connect to remixd from one of the supported origins.')
} else {
const isValid = await isValidOrigin(program.remixIde)
/* Allow unsupported origins and display warning. */
if (!isValid) {
console.log('\x1b[33m%s\x1b[0m', '[WARN] You are using IDE from an unsupported origin.')
console.log('\x1b[33m%s\x1b[0m', 'Check https://gist.github.com/EthereumRemix/091ccc57986452bbb33f57abfb13d173 for list of all supported origins.\n')
// return
}
console.log('\x1b[33m%s\x1b[0m', '[WARN] You may now only use IDE at ' + program.remixIde + ' to connect to that instance')
}

if (program.sharedFolder) {
console.log('\x1b[33m%s\x1b[0m', '[WARN] Any application that runs on your computer can potentially read from and write to all files in the directory.')
console.log('\x1b[33m%s\x1b[0m', '[WARN] Symbolic links are not forwarded to Remix IDE\n')
try {
const sharedFolderClient = new servicesList['sharedfolder']()
const websocketHandler = new WebSocket(65520, { remixIdeUrl: program.remixIde }, sharedFolderClient)

websocketHandler.start((ws: WS) => {
sharedFolderClient.setWebSocket(ws)
sharedFolderClient.setupNotifications(program.sharedFolder)
sharedFolderClient.sharedFolder(program.sharedFolder, program.readOnly || false)
})
killCallBack.push(websocketHandler.close.bind(websocketHandler))
} catch(error) {
throw new Error(error)
}
} else {
console.log('\x1b[31m%s\x1b[0m', '[ERR] No valid shared folder provided.')
}

// kill
function kill () {
for (const k in killCallBack) {
try {
killCallBack[k]()
} catch (e) {
console.log(e)
}
}
}

process.on('SIGINT', kill) // catch ctrl-c
process.on('SIGTERM', kill) // catch kill
process.on('exit', kill)

async function isValidOrigin (origin: string): Promise<any> {
if (!origin) return false
const domain = getDomain(origin)
const gistUrl = 'https://gist.githubusercontent.com/EthereumRemix/091ccc57986452bbb33f57abfb13d173/raw/3367e019335746b73288e3710af2922d4c8ef5a3/origins.json'

try {
const { data } = await Axios.get(gistUrl)

try {
await fs.writeJSON(path.resolve(__dirname + '/../origins.json'), { data })
} catch (e) {
console.error(e)
}

return data.includes(origin) ? data.includes(origin) : data.includes(domain)
} catch (e) {
try {
// eslint-disable-next-line
const origins = require('../origins.json')
const { data } = origins

return data.includes(origin) ? data.includes(origin) : data.includes(domain)
} catch (e) {
return false
}
}
}
})()
12 changes: 12 additions & 0 deletions libs/remixd/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
'use strict'
import { RemixdClient as sharedFolder } from './services/remixdClient'
import Websocket from './websocket'
import * as utils from './utils'

module.exports = {
Websocket,
utils,
services: {
sharedFolder
}
}
11 changes: 11 additions & 0 deletions libs/remixd/src/origins.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"data":[
"http://remix-alpha.ethereum.org",
"http://remix.ethereum.org",
"https://remix-alpha.ethereum.org",
"https://remix.ethereum.org",
"package://a7df6d3c223593f3550b35e90d7b0b1f.mod",
"package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod",
"https://ipfsgw.komputing.org"
]
}
3 changes: 3 additions & 0 deletions libs/remixd/src/serviceList.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { RemixdClient as sharedfolder } from './services/remixdClient'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be you can use export { RemixdClient as sharedfolder } from './services/remixdClient'

Copy link
Collaborator Author

@ioedeveloper ioedeveloper Oct 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should keep this. Making a change to this will break remix-desktop.


export { sharedfolder }
Loading