Commit Graph

2480 Commits

Author SHA1 Message Date
Pascal Precht 80c80e9beb
fix(commands/build): don't start blockchain node when `--contracts` is used
Prior to this commit `$ embark build --contracts` spinned up a blockchain node
which is not necessary as `--contracts` can be seen as a "compile only" option.

This commit ensures we don't start any web3 services with `--contracts` is used.
2018-10-22 19:40:52 +02:00
Michael Bradley, Jr fd856f8163
PKG_PATH, pkgPath 2018-10-22 19:39:26 +02:00
hodlbank f41bcd55d6
[f] Fix for #971 - "Fatal error when Ethereum node going offline".
[a] Added .once() into Events.
2018-10-22 19:39:26 +02:00
Moksh Jain 08c140b035
added webserver logging 2018-10-22 19:39:25 +02:00
Moksh Jain 51b2cce0ea
adds dashboard logging for: geth, ipfs, swarm 2018-10-22 19:39:25 +02:00
Subramanian Venkatesan ee77ac7f7f
Adds solc option to tests. Runs smart contract tests using remix-tests
Ref: #817
2018-10-22 19:39:24 +02:00
Jonathan Rainville f71c158164
change 70000 for a constant 2018-10-22 19:35:59 +02:00
Pascal Precht d34428a129
refactor(modules/pipeline/webpackProcess): load pipeline config in Config class
to configure pipeline specific options like TypeScript support.

At the time this has been added, `core/config` didn't handle the loading
of configuration files for pipeline related tasks yet.

This commit ensures a dapp's `pipeline.json` will be loaded and used to
configure Embark's webpack process as part of Embark's `Config` initialization.
2018-10-22 19:35:59 +02:00
Pascal Precht 71e92358a8
feat(modules/watcher): introduce watcher plugin module
As part of a bigger refactoring to make Embark's build pipeline pluggable,
this commit moves the watcher into its own plugin module so it can be
consumed via Embark's event bus.

It also introduces new command handlers for all watcher related APIs respectively:

- watcher:start
- watcher:stop
- watcher:restart
2018-10-22 19:35:58 +02:00
Pascal Precht 081b7eee89
chore(blockchainProcess): improve error message when blockchain client exits early
In cases a blockchain client exits before Embark is done doing its work,
the current error message doesn't provide any pointers to why this
happened.

Running `$ embark blockchain` separately could yield more information by
the underlying process.
2018-10-22 19:35:58 +02:00
Jonathan Rainville 5f8ad923c7
use an event to get web3 instead of global 2018-10-22 19:35:58 +02:00
Pascal Precht a0ef234fea
feat(modules/pipeline): move pipeline into its own module plugin
This is the first step of refactoring Embark's pipeline abstraction into
dedicated plugin modules that take advantage of Embark's event system.

With this commit we're moving `Pipeline` into `lib/modules/pipeline` and
introduce a new command handler `pipeline:build`. Embark's engine now
requests builds via this command handler.

Notice that `Watch` still lives in `lib/pipeline` as this is a step-by-step
refactoring to reduce chances of introducing regressions.
2018-10-22 19:35:58 +02:00
Jonathan Rainville 6b4321874b
add helpful messages when ens register is rejected 2018-10-22 19:35:58 +02:00
Jonathan Rainville 623bdc50ae
make on deploy manual 2018-10-22 19:35:57 +02:00
Cryptomental bcc1711061
contract_deployer: Redeploy if track field is set to false.
Always deploy the contract regardless if already deployed
when 'track' field in the contract configuration is specified
and set to false.

In line with #938 requirements:

* If a contract has the track field set to false, that contract
  will always deploy.
* If the track field is set to true, then the existing deployment
  tracking mechanism will be active for that contract.
* If the field is not set, it should be assumed to true by default

Refs: https://github.com/embark-framework/embark/issues/938
2018-10-22 19:35:57 +02:00
Michael Bradley, Jr 115bf1387d
fix chunking problem related to dynamic import and bug re: umd 2018-10-22 19:35:57 +02:00
Michael Bradley, Jr 0c60d2e1b4
per latest babel-preset-react-app exclue transform-typeof-symbol 2018-10-22 19:35:57 +02:00
Michael Bradley, Jr b971f5bcec
in comments provide links to relevant tag not a commit 2018-10-22 19:35:57 +02:00
Michael Bradley, Jr e7aa9de8f3
TODO comment re: pipeline config 2018-10-22 19:35:56 +02:00
Michael Bradley, Jr a898bbdf18
don't waste time gzip'ing contents of babel-loader's cache 2018-10-22 19:35:56 +02:00
Michael Bradley, Jr 09734d7879
call path.basename w/ extension name to avoid e.g. `.js.1.js` 2018-10-22 19:35:56 +02:00
Michael Bradley, Jr 882271dc60
rev file name to better reflect its purpose 2018-10-22 19:35:56 +02:00
Michael Bradley, Jr ae878fd7c8
extract copy/preserve logic into a helper in lib/core/fs
preserved files should end with <number>.<ext> vs. <ext>.<number>
2018-10-22 19:35:55 +02:00
Michael Bradley, Jr 67347ae08e
babel-loader should process .ts, .tsx files when typescript is enabled 2018-10-22 19:35:55 +02:00
Michael Bradley, Jr 059635979d
pipeline.js dapp config to allow easy toggling of typescript 2018-10-22 19:35:55 +02:00
Michael Bradley, Jr 6534c30200
rev comment to provide more context/clarity 2018-10-22 19:35:55 +02:00
Michael Bradley, Jr 7e7b050ae7
raise exception if both Flow and TypeScript are enabled 2018-10-22 19:35:54 +02:00
Michael Bradley, Jr 4aedeeee9b
TypeScript support -- disabled by default 2018-10-22 19:35:54 +02:00
Michael Bradley, Jr 8c6b26f311
babel plugins, presets and their configs per babel-preset-react-app 2018-10-22 19:35:54 +02:00
Michael Bradley, Jr 6986d33da9
don't need quotes 2018-10-22 19:35:54 +02:00
Michael Bradley, Jr 6181808381
customize babel-loader behavior -- don't try to cache babel macros 2018-10-22 19:35:53 +02:00
Michael Bradley, Jr b09e702403
enabel babel-loader's default cache directory 2018-10-22 19:35:53 +02:00
Michael Bradley, Jr aa90a2c870
can use use: shortcuts for .css 2018-10-22 19:35:53 +02:00
Michael Bradley, Jr 34a3d75542
proper loader for sass (scss) 2018-10-22 19:35:53 +02:00
Michael Bradley, Jr d14f1a80a2
comment re: adaptation from babel-preset-react-app 2018-10-22 19:35:53 +02:00
Michael Bradley, Jr 39821d2617
explain babel plugin, preset order 2018-10-22 19:35:52 +02:00
Michael Bradley, Jr e2c18e6338
default webpack-overrides.js 2018-10-22 19:35:52 +02:00
Jonathan Rainville eaafa9bed2
add default account if set in config 2018-10-22 19:35:04 +02:00
Jonathan Rainville 0fb0fa0648
remove process.exits 2018-10-22 19:35:03 +02:00
Jonathan Rainville eae7784a87
fix rebase problems and now works 2018-10-22 19:35:03 +02:00
Jonathan Rainville c0d32e3581
use known addresses for ENSRegistrery 2018-10-22 19:35:03 +02:00
Jonathan Rainville 3245a65100
conflict in ens index 2018-10-22 19:35:03 +02:00
Jonathan Rainville 0c0624e463
conflict in ens index 2018-10-22 19:35:03 +02:00
Jonathan Rainville 302da3f263
conflict in ens index 2018-10-22 19:35:03 +02:00
emizzle 3e9abdcdd2
fix rebase 2018-10-22 19:33:40 +02:00
emizzle 9aa3217331
After upload message regarding CORS and public gateways 2018-10-22 19:30:13 +02:00
Iuri Matias 967703a333
restore ws functionality to webserver 2018-10-22 19:30:12 +02:00
StevenJNPearce 5917e0cb5a
Add browser reload on file change/rebuild
Add browser reload on file change/rebuild
2018-10-22 19:30:12 +02:00
emizzle f378ea55da
fix rebase #2 2018-10-22 19:30:12 +02:00
emizzle 58ba0549c4
Fix rebase 2018-10-22 19:30:12 +02:00
emizzle 381cdaa57a
fixed windows paths 2018-10-22 19:25:20 +02:00
emizzle 743c4fa8cb
Update “no account” message and hide for infura
The “no account” message was appearing when using infura as the contract deploy target. This has been changed so that this message will only show when the user has configured their environment to have a `networkType` of `testnet`, `rinkeby`, or `mainnet` and a missing `account` address and/or password.

Additionally, the warning message has been updated to help the user resolve the issue.

A flag has also been added to prevent the message from appearing multiple times.
2018-10-22 19:25:20 +02:00
Iuri Matias 58a75f5080
restore ws functionality to webserver 2018-10-22 19:25:19 +02:00
StevenJNPearce 3dbf0d3742
Add browser reload on file change/rebuild
Add browser reload on file change/rebuild
2018-10-22 19:25:19 +02:00
bakaoh 109152730f
Add remapping when parse file to support embark-solc 2018-10-22 19:25:19 +02:00
Anthony Laibe bdd5852b6c
Fix git merging badly 2018-10-22 19:25:19 +02:00
hodlbank e13c0b3724
[a] Added applyArgumentPlugins before _determineArguments in ContractDeployer for plugins that calculate arguments dynamically.
[m] Made possible for deploy:contract:beforeDeploy plugin to modify arguments list.
2018-10-22 19:25:18 +02:00
Cryptomental 10bf3e4412
cmd, cmd_controller, graph: Add --output option to graph.
Add optional --output argument to graph generator. The argument allows
to specify a filepath for graph output. Default filepath is ./diagram.svg
if the argument is not specified.

Refs: https://github.com/embark-framework/embark/issues/944
2018-10-22 19:25:18 +02:00
Cryptomental 0483920421
cmd, run_tests: Add --nobrowser option for runCoverage.
Do not start browser during coverage run when --nobrowser option is passed.

Refs: https://github.com/embark-framework/embark/issues/941
2018-10-22 19:25:18 +02:00
Andre Medeiros 3d089a7a53
Fix linting 2018-10-22 19:25:18 +02:00
Andre Medeiros bf7f4db179
Account for empty initialization in loops 2018-10-22 19:25:18 +02:00
Evgeniy Filatov f79834a30d
extracted hardcoded string in constant 2018-10-22 19:25:17 +02:00
Evgeniy Filatov 517365353b
improved error message when there is issue communicating with node 2018-10-22 19:25:17 +02:00
Cryptomental 34cafc77e8
webserver: Emit websocket outputError and show error on the landing page.
Whenever outputError is emitted by Ember, display error message on the landing page
and stop the page from refreshing every four seconds.

Refs: https://github.com/embark-framework/embark/issues/946
2018-10-22 19:25:17 +02:00
Cryptomental 78c5055902
contracts_manager, deployment: Emit outputError whenever build error or deployment error happens.
Emit outputError when:
 * contracts cannot be built
 * contracts cannot be deployed

Refs: https://github.com/embark-framework/embark/issues/946
2018-10-22 19:25:17 +02:00
StevenJNPearce 64c6f58497
add ENS console commands 2018-10-22 19:25:17 +02:00
Anthony Laibe 7e12f80eda
Address PR feedback 2018-10-22 19:25:16 +02:00
Anthony Laibe dd8c6b9a35
Add missing config
The configuration for test is not passed via the engine
2018-10-22 19:25:16 +02:00
Anthony Laibe 850a80c90c
ENS config use the actual network ID
Instead of relying on the name of network.
Fetch the real network id and configure ENS
based on that value
2018-10-22 19:25:16 +02:00
Anthony Laibe 684839b5aa
Use broadcast to avoid useless send 2018-10-22 19:25:16 +02:00
Michael Bradley, Jr aa87614a98
don't log "Next steps" messages until `npm install` has finished 2018-10-22 19:25:15 +02:00
Michael Bradley, Jr 585e286adb
exit w/ error code if `npm install` fails 2018-10-22 19:25:15 +02:00
Michael Bradley, Jr 97f22a3543
consistent use of utils.errorMessage 2018-10-22 19:25:15 +02:00
Michael Bradley, Jr 5d4ac32a2a
Boolean() -> !! 2018-10-22 19:25:14 +02:00
emizzle 1c27c3465b
Handle case when socket not opened
If the socket is not already opened, listen for ‘open’ event before sending the `outputDone` data.
2018-10-22 19:24:41 +02:00
Anthony Laibe 91d1e5a85e
Fix websocket not open
Make sure the connection is open before
sending the event
2018-10-22 19:24:41 +02:00
Iuri Matias 4b81968482
restore ws functionality to webserver 2018-10-22 19:24:41 +02:00
StevenJNPearce 3aad35209a
Add browser reload on file change/rebuild
Add browser reload on file change/rebuild
2018-10-22 19:13:50 +02:00
Iuri Matias a7a6a03bfe make linter happy 2018-09-28 16:38:42 -04:00
Iuri Matias 24d661a65e fix blockchain defaults for config-less dapps 2018-09-28 16:32:37 -04:00
Iuri Matias a41bdf1b4a output contracts json even if the pipeline is empty 2018-09-28 13:22:03 -04:00
Iuri Matias 69894d2e06
Merge pull request #916 from embark-framework/infura_fix
Infura fix
2018-09-26 19:04:26 -04:00
Iuri Matias 05962a288d lint is mother; lint is father 2018-09-26 18:57:55 -04:00
Iuri Matias 44dad44ef4 increase estimated gas slightly & randomly 2018-09-26 18:45:06 -04:00
Iuri Matias 2374cb1641 limit deployment to 1 for now 2018-09-26 18:44:36 -04:00
Andre Medeiros c81deb9a2d Don't log that we don't know how to handle node 2018-09-26 18:36:56 -04:00
Iuri Matias 3ae5157e47 Revert "Delay contract deploiement if share bytecode"
This reverts commit 527dbcca8b.
2018-09-26 17:39:11 -04:00
Iuri Matias 8d13cd8e9d
Merge pull request #905 from embark-framework/bugfix/infura-simultaneous-tx
Bugfix/infura simultaneous tx
2018-09-26 14:21:30 -04:00
Andre Medeiros 767687b297 Simplify concat 2018-09-26 11:47:02 -04:00
Andre Medeiros b1f9097824 Update function complexity 2018-09-26 11:23:52 -04:00
Andre Medeiros fa8f4b4e41 Support if statements without a list of statements 2018-09-26 11:13:14 -04:00
Iuri Matias 0848d81b3e
Merge pull request #906 from embark-framework/bugfix/ens-require-default-account
Warning if no default account for ens
2018-09-26 09:28:41 -04:00
Iuri Matias 06c0171c39
Merge pull request #908 from embark-framework/bugfix/warn-about-ethereum-node-going-away
Warn about Ethereum node going away
2018-09-26 09:25:35 -04:00
Iuri Matias b4dc48dc32
Merge pull request #904 from embark-framework/bug_fix/ipfs-own-cors
add CORS URL for local ipfs' own server
2018-09-26 08:58:07 -04:00
Iuri Matias c06f39d53e
Merge pull request #899 from embark-framework/bugfix/filter-interface-contracts-from-coverage
Filter out interfaces from the coverage report
2018-09-26 08:53:12 -04:00
Andre Medeiros ad2eb9ad9f Warn, don't trace 2018-09-25 12:41:22 -04:00
Anthony Laibe 23d6b07467 Warning if no default account for ens 2018-09-25 15:30:46 +01:00
Michael Bradley, Jr 36eabda506 rev error handling so error msg from hosted-git-info would be logged 2018-09-25 09:20:59 -05:00
Anthony Laibe b8d3f3cd11 Fix warning 2018-09-25 14:59:08 +01:00
Anthony Laibe 527dbcca8b Delay contract deploiement if share bytecode 2018-09-25 14:58:19 +01:00
Michael Bradley, Jr 16246b1d43 rm unneeded param/arg 2018-09-24 21:07:02 -05:00
Michael Bradley, Jr cad7843c78 add CORS URL for local ipfs' own server (default: localhost:8080) 2018-09-24 20:51:31 -05:00
Michael Bradley, Jr 999d65bda0 whitespace 2018-09-24 20:50:27 -05:00
Michael Bradley, Jr cf67bd0332 rename var 2018-09-24 19:26:51 -05:00
Michael Bradley, Jr d945f8f2f4 don't log complete/ready messages until after `npm install` 2018-09-24 17:44:53 -05:00
Michael Bradley, Jr 67f57217d5 log re: installing pkgs for built-in boilerplate not just demo 2018-09-24 17:44:53 -05:00
Michael Bradley, Jr c8a9ac6048 tweak log messages 2018-09-24 17:44:53 -05:00
Michael Bradley, Jr c2d92b19f3 log browsable url from info gen'd by hosted-git-info 2018-09-24 17:44:53 -05:00
Michael Bradley, Jr 1b7935678c use hosted-git-info pkg to process --template name/url 2018-09-24 17:44:53 -05:00
Iuri Matias e744a24557
Merge pull request #897 from embark-framework/bug_fix/template-downloader-branch-names
allow for '/' in branch name when handling github shortcuts
2018-09-24 16:45:31 -04:00
Andre Medeiros 099e398bf4 Filter out interfaces from the coverage report 2018-09-23 19:08:06 -04:00
Andre Medeiros e952bbc41a Fix contract matching 2018-09-23 18:40:51 -04:00
Michael Bradley, Jr 82de81015b allow for / in branch name when handling github shortcuts 2018-09-23 12:34:23 -05:00
Iuri Matias 9ed08f234d
Merge pull request #895 from embark-framework/bugfix/race-condition-deploy-tracker
Fix race condition on deploy tracker
2018-09-22 10:36:15 -04:00
Anthony Laibe 8d506971e8 BN.js udpated need toString 2018-09-22 15:34:54 +01:00
Anthony Laibe 1dfd2e980f Reduce coupling by using action for event 2018-09-22 15:08:50 +01:00
Anthony Laibe e20d7bfc6a Fix race condition on deploy tracker 2018-09-22 14:43:10 +01:00
Iuri Matias c569dc9d21 add missing semi-colon 2018-09-22 09:21:30 -04:00
Anthony Laibe fe3e4690f6 Remove useless try on ws connect 2018-09-22 13:59:19 +01:00
Iuri Matias 7e710745ce always add ens contracts source so abi definition is always available in environments the contract is already deployed 2018-09-21 19:02:44 -04:00
Iuri Matias 681dddbbf2
Merge pull request #889 from embark-framework/bugfix/ipfs-hash-fetch
Fetch IPFS dir hash deterministically
2018-09-21 18:29:24 -04:00
Iuri Matias 2586b0dc14
Merge pull request #888 from embark-framework/bugfix/resolve-private-key-path
Resolve private key path instead of forcing inside dApp root
2018-09-21 18:29:02 -04:00
Iuri Matias 50effc0a6c revert change made on ens module 2018-09-21 18:26:18 -04:00
Iuri Matias cafe472727 add missing space 2018-09-21 18:16:47 -04:00
Iuri Matias 78814dc9d6 only add & deploy fifs register if it's actually a non live env 2018-09-21 17:53:42 -04:00
Iuri Matias 3b6251eeb1 improve some deployment error messages 2018-09-21 17:52:32 -04:00
Iuri Matias 4af9114681 fix blockchain node not found msg so it actually shows red 2018-09-21 17:51:53 -04:00
Andre Medeiros 0bdafc273f Fetch IPFS dir hash deterministically 2018-09-21 16:52:39 -04:00
Andre Medeiros 12c495502d Resolve private key path instead of forcing inside dApp root 2018-09-21 14:04:04 -04:00
Anthony Laibe 1b649d0e3a
Merge pull request #885 from embark-framework/bugfix/blockchain-not-done
Bugfix/blockchain not done
2018-09-21 15:11:20 +01:00
Iuri Matias 71cbb07ad8
Merge pull request #878 from embark-framework/bug_fix/minewhenneeded-fixes-3
Fix datadir for miner (PR for next branch)
2018-09-21 09:36:06 -04:00
Iuri Matias 9a914d0b5a
Merge pull request #877 from embark-framework/bug_fix/proxy-setup-awaits-blockchain
proxy should try to wait on target endpoint
2018-09-21 09:31:48 -04:00
Anthony Laibe d5d0aa1600 EmbarkJS blockchain must be done 2018-09-20 11:15:48 +01:00
Anthony Laibe 907b486531 Send ready only when the proxy is started 2018-09-20 10:16:48 +01:00
Iuri Matias 4a321e3c0c coerce boolean value using more commmon !! 2018-09-20 15:33:33 +10:00
emizzle ab7784c1e9 Fix datadir for miner
The datadir path was not being passed to the miner, was resolving as `undefined`, and therefore, was not setting up an ipc connection correctly and no communication was happening.

The fix passes the `datadir` from the blockchain config to the miner in the constructor.
2018-09-20 15:30:06 +10:00
emizzle c477445896 Start HTTP and WS proxies individually
As geth is starting up, the output is monitored for endpoint info. Once the HTTP or WS endpoints are opened, the corresponding proxies are started.

This is more maintainable in the long run in case the geth process being started does not allow for rpc or websockets, or geth modifies the order in which endpoint are opened.
2018-09-20 15:08:02 +10:00
Michael Bradley, Jr eba9ce361e setupProxy should not be conditional on isDev 2018-09-19 22:31:54 -05:00
Michael Bradley, Jr 917757b04c outer function doesn't need to be async 2018-09-19 21:13:19 -05:00
Michael Bradley, Jr e19b3b2f51 simplify syntax 2018-09-19 21:13:06 -05:00
Michael Bradley, Jr 2b816af9a8 eslint doesn't like `void 0` here 2018-09-19 21:12:37 -05:00
Michael Bradley, Jr 1408abf8d9 supply radix 2018-09-19 21:12:20 -05:00
Michael Bradley, Jr fa274675a5 timer function doesn't need to be async, since it returns a promise 2018-09-19 21:11:55 -05:00
Michael Bradley, Jr 4fc9827080 need parent contract's realRuntimeBytecode 2018-09-19 20:55:00 -05:00
Michael Bradley, Jr aae7954020 await proxy just before createFundAndUnlockAccounts 2018-09-19 20:11:36 -05:00
Michael Bradley, Jr 35c772d727 async setupProxy 2018-09-19 20:10:46 -05:00
Michael Bradley, Jr b9975668b8 proxy should attempt to wait on target 2018-09-19 20:10:15 -05:00
Michael Bradley, Jr 3846db79f7 make sure port is an integer, port var should hold offset port value 2018-09-19 20:10:15 -05:00
Michael Bradley, Jr ae8a59cf9b timer utility 2018-09-19 19:47:38 -05:00
Andre Medeiros c6d7bec9d7 Do not request legacyAST from solc to speed up compilation 2018-09-19 15:51:11 -04:00