Commit Graph

969 Commits

Author SHA1 Message Date
Iuri Matias b8f7ec20d4 fix(@embark/core): set loglevel back to info 2019-10-30 12:19:24 -05:00
emizzle f9ad486edb fix(@embark/proxy): Fix contract event subscriptions
Fix the proxy’s handling of WebSocket connections when subscribing to contract events and node data using the `eth_subscribe` RPC request.

Previously, the client connection that the subscription data was sent to was often in a closed state. It was determined that this connection was the wrong connection to forward the data in the first place. The connection was in fact generally the connection created for the Ethereum service check which was then (correctly and subsequently) closed after it had finished its operation.

The flow of a proxy request handling a WebSocket “eth_subscribe” RPC request is now as follows:
1. A WebSocket RPC request `”eth_subscribe”` is sent from a client to the proxy.
2. Proxy forwards the request to the node by way of a new instance of `RequestManager`.
3. When the node receives an event matching the subscription, it sends the event data back to same socket connection it received the request on (ie the specific instance of `RequestManager`).
4. The `RequestManager` fires the `”data”` event containing the subscription data, and this event is picked up in the proxy.
5. The proxy then forwards the subscription data on to the originating WS client connection.

All other requests (ie non-WS or WS RPC requests that are not `eth_subscribe`) will be serviced to/from the node using a single `RequestManager` instance.

Co-authored-by: Pascal Precht <pascal.precht@gmail.com>
2019-10-30 12:19:24 -05:00
Michael Bradley, Jr 85235f88b2 chore(release): 5.0.0-alpha.0 2019-10-28 16:05:13 -05:00
Iuri Matias 867a55c98a
Revert "fix(@embark/proxy): Fix contract event subscriptions" (#2005)
* Revert "fix(@embark/core): set loglevel back to info"

This reverts commit a03ffd56e5.

* Revert "fix(@embark/proxy): Fix contract event subscriptions"

This reverts commit 173d53de2f.
2019-10-28 16:20:14 -04:00
Jonathan Rainville 395ae83f9c fix(@embark/transaction-logger): don't show logs for stray receipts 2019-10-28 13:20:25 -05:00
Michael Bradley, Jr 6ee2ca2b8d refactor(@embark/cmd): exit with error when command is unknown
Example: `embark rest && embark run`

The command/s following `&&` shouldn't run after the first one fails and prints
an "unknown command" message.
2019-10-28 13:00:50 -05:00
Iuri Matias a03ffd56e5 fix(@embark/core): set loglevel back to info 2019-10-28 13:00:18 -05:00
emizzle 173d53de2f fix(@embark/proxy): Fix contract event subscriptions
Fix the proxy’s handling of WebSocket connections when subscribing to contract events and node data using the `eth_subscribe` RPC request.

Previously, the client connection that the subscription data was sent to was often in a closed state. It was determined that this connection was the wrong connection to forward the data in the first place. The connection was in fact generally the connection created for the Ethereum service check which was then (correctly and subsequently) closed after it had finished its operation.

The flow of a proxy request handling a WebSocket “eth_subscribe” RPC request is now as follows:
1. A WebSocket RPC request `”eth_subscribe”` is sent from a client to the proxy.
2. Proxy forwards the request to the node by way of a new instance of `RequestManager`.
3. When the node receives an event matching the subscription, it sends the event data back to same socket connection it received the request on (ie the specific instance of `RequestManager`).
4. The `RequestManager` fires the `”data”` event containing the subscription data, and this event is picked up in the proxy.
5. The proxy then forwards the subscription data on to the originating WS client connection.

All other requests (ie non-WS or WS RPC requests that are not `eth_subscribe`) will be serviced to/from the node using a single `RequestManager` instance.

Co-authored-by: Pascal Precht <pascal.precht@gmail.com>
2019-10-28 13:00:18 -05:00
Jonathan Rainville a4b3ef454a fix(@embark/parity): fix version result not available 2019-10-28 12:10:34 -05:00
Jonathan Rainville 9803507221 fix(@embark/geth): fix version result not available 2019-10-28 12:10:34 -05:00
Jonathan Rainville 1302f9fb48 fix(@embark/ens): fix trying to resolve when ENS is not registered 2019-10-28 12:10:34 -05:00
Pascal Precht 8fee0b8ccc fix(@embark/core): make blockchain command work again
Running embark's `blockchain` command resulted in a runtime error where the `blockchain`
module couldn't be found. This is a bug introduced in ed0d3afb4f where
we forgot to update `blockchainStackComponents` in Embark's engine accordingly.

Fixing this results in `embark blockchain` hanging. This is because there's a similar bug
in `blockchainStackCopmnonents` introduced in 3b8f8f9ea7.

This commit fixes both bugs by ensuring `embark-blockchain` and `embark-blockchain-client`
packages are loaded using the correct APIs.
2019-10-28 11:55:09 -05:00
Michael Bradley, Jr db66f0e197 refactor(@embark/template_generator): account for prerelease in embark version
If the version in the embark package's own `package.json` has a prerelease
identifier then appending `.x` to the major version isn't viable for resolving
the latest version of the template package that's in the same prerelease line;
a more complex semver range must be used:

```
"${pkg}@^${major}.${minor}.${patch}- <${major}.${minor}.${patch}"
```
2019-10-28 11:43:00 -05:00
Michael Bradley, Jr 1225cb14e8 build(deps): add core-js@3 as a dep to all pkgs that have @babel/runtime-corejs3 dep
When making use of the `useBuiltIns: 'usage'` option for @babel/preset-env
(which is the case for all transpiled packages in Embark's monorepo) a package
needs to have both @babel/runtime-corejs3 and core-js@3 specified as
dependencies.
2019-10-28 11:40:48 -05:00
Michael Bradley, Jr 2407df5d11 test(@embark/stack/compiler): add tests for the compiler 2019-10-25 14:12:00 -05:00
Pascal Precht f289a6fc6a feat(@embark/testing): introduce plugin APIs to register compilers
Embark relies on certain specific plugin properties, e.g. registered compilers,
and retrieves them using `plugins.getPluginProperties('compilers', 'compilers')`.

In order to make this work in the testing environment, we need those same APIs
in the `embark-testing` package as well.

This commit adds necessary APIs to `Plugins` and `Plugin` to make registering and
loading compiler plugins work.
2019-10-25 14:12:00 -05:00
Michael Bradley, Jr f519befe1d build(deps-dev): bump remaining @storybook/* from 5.1.11 to 5.2.5 2019-10-25 12:34:25 -05:00
dependabot-preview[bot] a4128232a7 build(deps-dev): bump @storybook/react from 5.1.11 to 5.2.5
Bumps [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/app/react) from 5.1.11 to 5.2.5.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v5.2.5/app/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 12:34:25 -05:00
Michael Bradley b66d664c92 build(deps): upgrade create-react-app for cockpit by bumping react-scripts to latest (#1991)
* build(deps): move deps needed by embark-basic-pipeline from packages/embark

Introduce additional refactors to ensure the packages can be resolved by the
basic pipeline's webpack child process.

* build(deps): move @types/os-locale from packages/embark to packages/core/i18n

* build(deps) move @types/globule from packages/embark to packages/plugins/coverage

* build(deps): refactor stack/{api,proxy,webserver} deps relative to packages/embark

* build(deps): remove unneeded @types/async dep from packages/stack/test-runner

* build(deps): remove unneeded deps from packages/embark

* build(deps): upgrade create-react-app for cockpit by bumping react-scripts to latest

Also get rid of a peer dependency warning related to storybook. After some
investigation it seems that storybook can't practically (at present) be made
aware of CRA in the same project satisfying storybook's peer deps, so it's best
to just satisfy all of them explicitly, which in any case won't interfere with
CRA (react-scripts).
2019-10-25 13:05:16 -04:00
Michael Bradley d22cd58db3 reorg some deps from packages/embark to the packages that actually depend on them (#1990)
* build(deps): move @types/os-locale from packages/embark to packages/core/i18n

* build(deps) move @types/globule from packages/embark to packages/plugins/coverage

* build(deps): refactor stack/{api,proxy,webserver} deps relative to packages/embark

* build(deps): remove unneeded @types/async dep from packages/stack/test-runner

* build(deps): remove unneeded deps from packages/embark
2019-10-25 13:04:51 -04:00
Michael Bradley, Jr a4ee9f8739 test(@embark/stack/test-runner): enable test-runner's test suite
Introduce some light refactoring related to embark-testing facilities, and also
a configurable stdout option so the output of the reporter implemented in this
package isn't confusingly mixed into unit test reporting for this package.
2019-10-25 11:32:48 -05:00
Michael Bradley, Jr 0af6e13779 build(deps): move deps needed by embark-basic-pipeline from packages/embark
Introduce additional refactors to ensure the packages can be resolved by the
basic pipeline's webpack child process.
2019-10-25 11:13:49 -05:00
Michael Bradley d17fe33339 build: update babel and webpack dependencies (#1987)
Includes a switch from core-js@2 to core-js@3
2019-10-24 17:41:28 -04:00
Michael Bradley ed02cc849f build: bump all packages' engines settings (#1985)
BREAKING CHANGE:

node: >=10.17.0 <12.0.0
npm: >=6.11.3
yarn: >=1.19.1

node v10.17.0 is the latest in the 10.x series and is still in the Active LTS
lifecycle. Embark is still not compatible with node's 12.x and 13.x
series (because of some dependencies), otherwise it would probably make sense
to bump our minimum supported node version all the way to the most recent 12.x
release.

npm v6.11.3 is the version that's bundled with node v10.17.0.

yarn v1.19.1 is the most recent version as of the time node v10.17.0 was
released.
2019-10-24 09:52:05 -04:00
Jonathan Rainville 6e9635c12b fix(@contract-app): fix contracts app tests (#1982)
* refactor(@embark/dapps/tests/app): use function syntax

These changes don't fix the race conditions related to the test dapp's tests
but are a step in the right direction.

* refactor(@embark/dapps/tests/contracts): adjustments to get tests passing

Further refactoring is needed re: potentially duplicated or overlapping logic
in `packages/plugins/solidity-tests` and
`packages/core/utils/src/solidity/remapImports.ts`, as well in disabled test
dapp tests

* test(dapps/tests/app): temporarily disable intermittently failing tests

They are failing because of a race condition; once that race condition has been
fixed these tests should be reenabled.

* fix(@embark/solidity-tests): fix importing the library for the tests
2019-10-23 14:58:40 -04:00
Michael Bradley 183d9a05b5 Fix/solo spawn (#1981)
* build(@embark/stack/blockchain-client): remove unneeded typescript related scripts and deps

In addition to being unneeded their presence is causing build errors.

* build(embark): remove unneeded typescript related scripts and deps

In addition to being unneeded their presence is causing build errors.

* build(@embark/plugins/ethereum-blockchain-client): remove unneeded typescript related scripts, deps

In addition to being unneeded their presence is causing build errors.

* build(@embark/plugins/ganache): remove unneeded typescript related scripts and deps

In addition to being unneeded their presence is causing build errors.

* build(@embark/plugins/geth): remove unneeded typescript related scripts and deps

In addition to being unneeded their presence is causing build errors.

* fix(@embark/plugins/transaction-logger): require 'web3' not 'Web3'

* fix(@embark/utils/solo): spawn npm(.cmd) instead of npx(.cmd)

* test(@embark/plugins/basic-pipeline): add test stub

* test(@embark/stack/blockchain): add test stub
2019-10-22 09:27:28 -04:00
Jonathan Rainville 2193d82399 fix(test-app): make test app test all pass (#1980)
Fix a lot of bugs and reenable a couple of modules
Some tests were kept disabled, mostly the ENS and EmbarkJS tests
Those need to add back a fairly significant feature to work
Add back missing solidity contracts
2019-10-22 09:27:22 -04:00
Pascal Precht 7881e6a3ac test(@embark/communication): fix failing test (#1979)
In d6bf5c24b9 we've ensured that certain modules of
embark only executed if their functionality is actually enabled.
This broke one of our tests in the communication module.
This commit fixes the test by explicitly enabling the module's functionality.
2019-10-21 13:23:43 -04:00
Eric Mastro db71a93bba fix(@embark/proxy): Check if WebSocket open before sending (#1978)
Add error handling to the proxy so that websocket frames are not sent on a socket that is not open.
2019-10-21 13:23:34 -04:00
Jonathan Rainville a3b52676fc Fix part of the test app and add new test util functions (#1977)
* fix: fix tests hanging because the console is not started

* fix(@embark/proxy): send back errors correctly to the client

Code originally by @emizzle and fixed by me

* feat(@embark/test-runner): add assert.reverts to test reverts

* fix: make test app actually run its test and not hang

* fix(@embark/proxy): fix listening to contract event in the proxy

* feat(@embark/test-runner): add assertion for events being triggered

* docs(@embark/site): add docs for the new assert functions

* feat(@embark/test-runner): add increaseTime util function to globals

* docs(@embark/site): add docs for increaseTime
2019-10-17 14:39:25 -04:00
Iuri Matias cb0995f3f6
chore(@embark/stack/blockchain-client): re-add missing file (#1973) 2019-10-16 11:00:26 -04:00
Eric Mastro 9b57a912cf refactor(@embark/ethereum-blockchain-client): move module into own package (#1956) 2019-10-16 10:02:05 -04:00
Eric Mastro 3b8f8f9ea7 refactor(@embark/blockchain-client): move module into own package (#1955)
refactor(@embark/blockchain-client): move module into own package

update package.json
2019-10-16 09:41:17 -04:00
Eric Mastro e2efbbd846 refactor(@embark/parity): move module into own package (#1951)
Contains bug fixes to get parity to work as a blockchain client.

**NOTE:** Please merge https://github.com/embark-framework/embark/pull/1950 first before merging this PR, as this PR contains removal of dependencies from `packages/embark` that are needed for geth. So if this is merged first, and the geth PR (https://github.com/embark-framework/embark/pull/1950) is not merged, then geth will not have some of the dependencies it needs.
2019-10-16 09:35:26 -04:00
Eric Mastro ed0d3afb4f refactor(@embark/blockchain): move module into own package (#1942) 2019-10-16 09:30:14 -04:00
dependabot-preview[bot] 85be192879 build(deps-dev): bump @types/request from 2.48.1 to 2.48.3 (#1957)
Bumps [@types/request](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/request) from 2.48.1 to 2.48.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/request)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-16 09:11:53 -04:00
Jonathan Rainville 08c97a2964 fix: fix windows build for pipeline and embarkjs (#1971) 2019-10-16 09:07:42 -04:00
Eric Mastro 908064f4e1 refactor(@embark/ganache): move module into own package (#1952)
**NOTE:** Running a dapp with `client: “vm”` does not work, however I am not sure if that is intentional in v5 or not.

**NOTE:** Running `embark test` in the demo DApp does work, although there is an error that I am assuming does actually pertain to this PR:
```
made request without listener: whisper:node:register
Trace:
    at EmbarkEmitter.trace [as request] (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/events.js:142:13)
    at new request (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/modules/geth/index.js:49:17)
    at Plugin.loadInternalPlugin (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/plugin.js:117:10)
    at Plugins.loadInternalPlugin (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/plugins.js:96:40)
    at Engine.loadInternalPlugin [as registerModule] (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/engine.js:69:18)
    at Engine.registerModule [as blockchainComponents] (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/engine.js:183:10)
    at Engine.apply [as registerModuleGroup] (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/engine.js:104:18)
    at registerModuleGroup (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/cmd/cmd_controller.js:740:16)
    at nextTask (/Users/emizzle/Code/__Github/embk-fw/embark/node_modules/async/dist/async.js:5324:14)
    at next (/Users/emizzle/Code/__Github/embk-fw/embark/node_modules/async/dist/async.js:5331:9)
    at /Users/emizzle/Code/__Github/embk-fw/embark/node_modules/async/dist/async.js:969:16
    at callback (/Users/emizzle/Code/__Github/embk-fw/embark/packages/embark/src/lib/core/engine.js:47:9)
    at Client.done (/Users/emizzle/Code/__Github/embk-fw/embark/packages/core/core/src/ipc.js:46:11)
    at Client.emit (/Users/emizzle/Code/__Github/embk-fw/embark/node_modules/event-pubsub/es5.js:74:21)
    at Socket.connectionClosed (/Users/emizzle/Code/__Github/embk-fw/embark/node_modules/node-ipc/dao/client.js:201:20)
    at Socket.emit (events.js:198:13)
```
2019-10-14 16:28:54 +09:00
Eric Mastro 8aa6496f93 refactor(@embark/geth): move module into own package (#1950) 2019-10-14 16:14:07 +09:00
Eric Mastro e03ae120fe refactor(@embark/embarkjs): move module into own package (#1943) 2019-10-14 16:08:21 +09:00
Eric Mastro 3f7842cf24 refactor(@embark/embarkjs): move module into own package (#1945)
**TODO:** The `embark eject-webpack` command needs to be updated. @michaelsbradleyjr - do you have suggestions as to how we could port this over? We could **assume** that the `basic-pipeline` plugin will be installed, and then read the embark config and overrides from the file system, however this feels like we are sort adding a dependency to a plugin, which is not right. Any suggestions?
2019-10-14 16:05:17 +09:00
Eric Mastro 5dbc1c791a fix(@embark/basic-pipeline): Remove `_1_` from pipeline output (#1941) 2019-10-14 16:01:18 +09:00
Jonathan Rainville 915b9493ef feat(@embark/cmd_controller): add back embark simulator (#1965) 2019-10-14 15:59:37 +09:00
Jonathan Rainville 637e4f965d Show TX reason when there is a failure (#1970)
* feat(@embark/transactions-logger): show reason of failure in tx log

* feat(@embark/ui): show tx failure reason in cockpit contract logs
2019-10-14 11:00:24 +09:00
Jonathan Rainville 918a00c24c fix: add back log command for modules (#1969) 2019-10-14 10:58:57 +09:00
Jonathan Rainville af3c0f0bcb Fix whisper callback and start (#1968)
* fix(@embark/geth/whisper): add ipcdisable for whisper geth client

* fix(@embarkjs/whisper): fix callback not used in send
2019-10-14 10:55:37 +09:00
Jonathan Rainville 4b947bb5c2 fix: fix error logs in the cockpit due from negative blocks numbers (#1967) 2019-10-14 10:53:14 +09:00
Jonathan Rainville d86c26d71a Fix VM as a client and cleanup template configs (#1966)
* chore(templates): clean up template configs

* fix: enable vm as a client

Bug was caused by the web3 listening to events too late (race)
2019-10-14 10:42:13 +09:00
Jonathan Rainville 913267b1ce fix: fix process logs not showing on errors (#1962) 2019-10-14 10:31:20 +09:00
Jonathan Rainville 80df4fa11d fix: patch for infinite loop with panic override (#1964) 2019-10-12 12:17:33 +09:00
Jonathan Rainville 5b72620c92 fix: re-enable plugin command module and clean up engine (#1961) 2019-10-12 12:06:29 +09:00
Jonathan Rainville 6f90099d47 Add tests for ENS (#1933)
* add basic test to ens

* add more tests

* test arguments for test
2019-10-12 11:42:16 +09:00
Michael Bradley, Jr 3f65077268 build(deps): downgrade ethereumjs-tx to 1.3.7 2019-10-09 22:30:06 +09:00
Jonathan Rainville 2f09a88b2d feat(deployement): add back deployment message with hash 2019-10-04 11:36:33 -04:00
Jonathan Rainville 7fae609d87 fix(template_generator): fix condition for windows 2019-10-04 10:12:46 -04:00
Jonathan Rainville d6bf5c24b9 fix: do not start modules if they are disabled 2019-10-04 10:12:16 -04:00
Jonathan Rainville c54b8d9e44 feat: call action before starting the blockchain node 2019-10-04 10:12:16 -04:00
Michael Bradley, Jr 1bb25b9082 build(deps): remove unused http-shutdown package 2019-10-03 12:06:13 -05:00
Michael Bradley, Jr 3f4ce3b549 build: fix win compat for collective build and embark-solo cli 2019-10-02 16:23:57 -05:00
Pascal Precht 7ea9aa417d test(@embark/commmunication): add test for artifact generation
This also makes `fakeEmbark` configurable
2019-10-02 17:40:44 +02:00
Iuri Matias 67207a239a
fix modules in console cmd controller (#1947) 2019-10-02 11:27:44 -04:00
Michael Bradley, Jr 17ccd5c1bd build: tidy up the monorepo in prep for v5.0.0-alpha.0 2019-10-01 13:29:53 -05:00
Michael Bradley, Jr 3b649fa455 build: phase 1 of introducing embark-collective 2019-10-01 13:28:13 -05:00
Iuri Matias de85076d48
Console fix (#1940)
* bugfix(@embark/embark): fix default values so choosing different environment doesn't cause hang

* bugfix(@embark/stack/watcher): add callback so initializating watcher does not hang cmd controller
2019-10-01 14:18:16 -04:00
Iuri Matias eb23acb0f8
bugfix(@embark/embark): fix default values so choosing different environment doesn't cause hang (#1939) 2019-10-01 14:18:10 -04:00
dependabot-preview[bot] c03a2588fe build(deps-dev): bump @types/body-parser from 1.17.0 to 1.17.1
Bumps [@types/body-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/body-parser) from 1.17.0 to 1.17.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/body-parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-27 12:00:59 -05:00
dependabot-preview[bot] 17c98d9ada build(deps): bump webpack from 4.39.2 to 4.41.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.2 to 4.41.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.2...v4.41.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-25 09:36:07 -05:00
Michael Bradley, Jr 166f339a03 refactor(@cockpit/ui/utils): adjust date-fns imports/usage re: changes in 2.x 2019-09-25 09:35:05 -05:00
dependabot-preview[bot] ec4e3cd9d0 build(deps-dev): bump date-fns from 1.30.1 to 2.3.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 1.30.1 to 2.3.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v1.30.1...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-25 09:35:05 -05:00
Michael Bradley, Jr 7063ac2963 build(deps-dev): bump react-scripts from 3.1.1 to 3.1.2 2019-09-24 11:39:06 -05:00
dependabot-preview[bot] 0804525b02 build(deps): bump sass-loader from 7.1.0 to 8.0.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.1.0 to 8.0.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.1.0...v8.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-24 11:32:51 -05:00
Michael Bradley, Jr 14d20e1b6f test(@embark/core/console): fix bad setUpEnv path 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr d4deb8b990 refactor(@embark/services_monitor): use Object.keys instead of Object.entries 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr 98400dcef7 fix(@embark/cmd_controller): use the correct path for eject-webpack 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr ff75fe98a1 refactor(@embark/template_generator): use embark-utils monorepo APIs 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr 686b327bd0 refactor(@embark/stack/api): use embark-utils monorepo APIs 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr de0e12d039 feat(@embark/utils): "inside monorepo" APIs 2019-09-24 10:51:27 -05:00
Michael Bradley, Jr 1ba9e4b0a2 test(@embark/communication): remove test stub 2019-09-24 10:14:32 -05:00
Pascal Precht 633683e12f test(@embark/communication): add test for embark communication module (#1908) 2019-09-24 09:44:57 -04:00
dependabot-preview[bot] 6f766e1e3e build(deps): bump @babel/preset-typescript from 7.1.0 to 7.6.0
Bumps [@babel/preset-typescript](https://github.com/babel/babel) from 7.1.0 to 7.6.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.0...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-18 10:42:49 -05:00
dependabot-preview[bot] 2c6ed2727b build(deps): bump glob from 7.1.3 to 7.1.4
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.3 to 7.1.4.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.3...v7.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-18 10:42:30 -05:00
Michael Bradley, Jr 924ae38799 refactor(@cockpit/editor): Resizable component is strictly a named export for re-resizable >4.1.1 2019-09-17 12:20:46 -05:00
dependabot-preview[bot] e4e856f274 build(deps-dev): bump re-resizable from 4.9.3 to 6.0.0
Bumps [re-resizable](https://github.com/bokuweb/react-resizable-box) from 4.9.3 to 6.0.0.
- [Release notes](https://github.com/bokuweb/react-resizable-box/releases)
- [Changelog](https://github.com/bokuweb/re-resizable/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bokuweb/react-resizable-box/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-17 12:20:46 -05:00
Michael Bradley, Jr 316a91dfa5 build(deps): removed unused ethereumjs-tx from packages/embark 2019-09-17 11:58:08 -05:00
dependabot-preview[bot] c3061e316d build(deps): bump ethereumjs-tx from 1.3.7 to 2.1.1
Bumps [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) from 1.3.7 to 2.1.1.
- [Release notes](https://github.com/ethereumjs/ethereumjs-tx/releases)
- [Changelog](https://github.com/ethereumjs/ethereumjs-tx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ethereumjs/ethereumjs-tx/compare/v1.3.7...v2.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-17 11:58:08 -05:00
Michael Bradley b74debfb8d refactor(@cockpit/ui): use non-ejected create-react-app (#1910)
Change components/TexEditor re: how monaco-editor is loaded, since difficulties
with monaco-editor were the original motivation for "ejecting" the CRA setup.

Specify "nohoist" for `embark-ui/react-scripts` and all its dependencies to
avoid potential headaches when upgrading the react-scripts, i.e. upgrading to
newer versions of create-react-app.
2019-09-17 17:32:45 +02:00
Michael Bradley fe107546a8 refactor(@embark): remove the embark-async-wrapper package (#1911)
It's principal use was in `stack/compiler`, but that package was refactored
in #1878 to use async/await. There was a replica in
`packages/embark/src/lib/utils/async_extend.js` but it wasn't being used to do
async operations and could be replaced with `Object.entries().forEach()`. It
was required by `plugins/vyper` but the wrapper's custom `eachObject` method
wasn't being used. `stack/api` had it as a dependency but wasn't using it.
2019-09-17 17:31:57 +02:00
dependabot-preview[bot] 6c5a4ce536 build(deps): bump axios from 0.18.1 to 0.19.0
Bumps [axios](https://github.com/axios/axios) from 0.18.1 to 0.19.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.18.1...v0.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-16 10:12:55 -05:00
Michael Bradley, Jr 86a97667e8 fix(@embark/stack/pipeline): set missing `this.fs` to `embark.fs` 2019-09-15 15:17:45 -05:00
Michael Bradley, Jr c69a4734d3 test(@embark/plugins/snark): fix some small typos/errors in the tests 2019-09-15 15:17:45 -05:00
Michael Bradley, Jr ba671b9953 test: refactor some recent jest-tests' configuration, placement, and related babel configuration 2019-09-13 19:31:38 -05:00
Michael Bradley, Jr 0050adb4bb docs: add dependabot badge to the main readme 2019-09-13 16:37:48 -05:00
Michael Bradley, Jr 00fa5f2272 refactor(@embark/plugins/snark): add embark-snark package to the monorepo 2019-09-13 09:52:01 -05:00
dependabot-preview[bot] bcca315b4e build(deps): bump body-parser from 1.18.3 to 1.19.0
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.18.3 to 1.19.0.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.18.3...1.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 09:28:14 -05:00
Michael Bradley, Jr b262a18441 build(deps): bump pretty-ms from 4.0.0 to 5.0.0 2019-09-12 21:45:42 -05:00
dependabot-preview[bot] 0cabff3eb9 build(deps-dev): bump @types/pretty-ms from 3.2.0 to 5.0.1
Bumps [@types/pretty-ms](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pretty-ms) from 3.2.0 to 5.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pretty-ms)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-12 21:45:42 -05:00
dependabot-preview[bot] e67e47c31a build(deps-dev): bump html-webpack-plugin
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.0.0-alpha.2 to 4.0.0-beta.8.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-12 21:37:06 -05:00
Michael Bradley, Jr 4499f1580f style(@embark/plugins/whisper): fix linter errors 2019-09-12 19:40:53 -05:00
Michael Bradley, Jr fce8bca509 style(@embark/plugins/coverage): fix linter errors 2019-09-12 19:40:53 -05:00
Michael Bradley, Jr 433ff4a27f style(@embark): fix linter errors 2019-09-12 19:40:47 -05:00
Michael Bradley, Jr 9b75165b90 style(@embark/testing): fix linter errors 2019-09-12 19:38:20 -05:00
Jonathan Rainville 107e730fc3 refactor(@embark/ens): refactor and clean up embark-ens (#1900) 2019-09-12 17:36:16 -04:00
Pascal Precht e282ae4974 refactor(@embark/communication): move module into own package (#1899) 2019-09-12 17:30:46 -04:00
Jonathan Rainville f54fbf0b3d feat(@embark/test-runner): make vm default node (#1846)
* feat: make vm default node

* feat(@embark/tests): enable switching node between tests
2019-09-12 17:30:28 -04:00
André Medeiros 2f9d5e6085 chore: test framework (#1894)
* chore: test framework

* chore(@embark/testing): introduce Plugin apis and other changes

* refactor(@embark/deployment): use new testing APIs for tests
2019-09-12 17:26:57 -04:00
Pascal Precht 501066e2a2 test(@embark/deployment): introduce tests for deployment stack module (#1897) 2019-09-11 14:32:54 -04:00
Iuri Matias e330b338ea
Fix/whisper communication (#1895)
* fix(@cockpit/utils): make communications tab work again

* fix whisper node start; fix whisper console api registration; fix/refactor whisper web api
2019-09-11 14:21:53 -04:00
Iuri Matias e598e3f998
chore(@embark/embark-reset): move embark-reset package (#1898) 2019-09-11 14:16:23 -04:00
Michael Bradley 043ccc0a24 feat(@embark/compiler): support :before and :after hooks on event compiler:contracts:compile (#1878)
* feat(@embark/compiler): support :before and :after hooks on event compiler:contracts:compile

* style: keep root package.json sorted cleanly

* style: formatting with prettier where print-width is 200

Per the suggestion of @iurimatias

* WIP: PR review

* WIP: PR review

* WIP: refactor to check if file.path is within dappPath() or os.tmpdir()

* WIP: PR review

* WIP: use native async functions (and related JS lang constructs) instead of the async library

* WIP: async.eachObject is no longer a dependency
2019-09-11 13:08:52 -04:00
André Medeiros 5faa07cc9f chore: set contract objects to EmbarkJS' wrapper (#1893) 2019-09-11 13:06:39 -04:00
Iuri Matias 8849aca264
chore(@embark/blockchain-listeener): remove blockchain-listener package (#1887) 2019-09-11 12:32:16 -04:00
Jonathan Rainville ee634c8403 fix: fix test-app, contracts index file and reload on change (#1892)
* fix: fix test-app, contracts index file and reload on change

* fix(@embark/cmd_controller): fix missing nodes

Was removed by accident

* feat(@embark/demo): add favicon to embark demo

* chore(@embark/cockpit): change favicon to new Embark logo

* fix(@embark/embarkjs-ens): fix ENS config for embarkjs-ens

* remove comments
2019-09-11 12:31:57 -04:00
André Medeiros 3fe5b93a1f
chore: refactor requestManager use (#1891)
Use our own object instance by giving it the existing provider instead
of fishing out private properties inside the `web3` instance.
2019-09-09 15:29:49 -04:00
Michael Bradley, Jr c057695b09 test(@embark/plugins/solidity-tests): supply mock options object to SolidityTestRunner constructor
When an options object is not supplied the tests fail because the constructor
expects the options argument to be an object, i.e. referencing
`options.plugins` should not cause a TypeError
2019-09-09 11:40:21 -05:00
André Medeiros 2900e04cae
chore: use libraries to generate coverage report (#1876) 2019-09-09 08:47:22 -04:00
Michael Bradley, Jr 8779476ac0 style: make eslint aware of mocha globals in plugins/mocha-tests and stack/test-runner
Also remove some `/* globals ... */` comments and supply missing semicolons
2019-09-08 15:29:03 -05:00
André Medeiros 5e560768ad chore: test runner tests (#1884)
* chore: test runner tests

* chore: mocha test runner tests

* chore: add solidity test file to dapp
2019-09-07 15:55:24 -04:00
Iuri Matias 14155285b3
move rest of the packages to their logical folders (#1886)
* chore(@embark/): move more packages to their logical folders, remove embark- prefix

* chore(@embark/): move embark-process-logs-api-manager to stack folder, remove embark- prefix

* chore(@embark/): move embark-coverage to plugins folder, remove embark- prefix

* chore(@embark/): move api, async-wrapper, authenticator, library-managre to folders, remove embark- prefix
2019-09-07 15:45:25 -04:00
Iuri Matias f7e226fdd4
chore(@embark/): move cockpit packages to their own folder (#1883) 2019-09-07 12:02:49 -04:00
Iuri Matias 8cf458b129
chore(@embark/): move more packages to their logical folders, remove embark- prefix (#1882) 2019-09-07 11:27:08 -04:00
Michael Bradley, Jr 25a06447c8 fix(@embarkjs/swarm): web3@1.0.0-beta.37 -> web3@1.2.1 2019-09-06 19:31:18 -05:00
Michael Bradley, Jr 2dedfaa127 build: use only exact versions for deps because unexpected yarn.lock causes CI/release to fail
The exception is `embark/-*` packages that are in the monorepo, should always
use caret ranges for those packages.
2019-09-06 19:31:18 -05:00
Michael Bradley, Jr 4e590991a8 style: fix linter errors on master after recent PR merges 2019-09-06 19:31:18 -05:00
Iuri Matias c46c52ff5c
move embarkjs packages & remove embark- prefix from some folders (#1879)
* chore(@embark/): move embarkjs packages to their own folder

* chore(@embark/): rename embark-ui folder to cockpit

* chore(@embark/): rename packages already in logical folders to remove embark- prefix

chore(@embark/): rename packages already in logical folders to remove embark- prefix

update package.json files to use correct eslint config

remove core/* from package.json workspaces
2019-09-06 18:26:08 -04:00
Iuri Matias 48c328e39e
refactor(@embark/): move several packages into logical folders (#1877) 2019-09-06 17:39:51 -04:00
Iuri Matias 43386ff35d
chore(@embark/): remove old modules blockchain-process & code-generator; remove old methods from engine.js (#1875)
chore (@embark/) remove old modules blockchain-process and code-generator

chore (@embark/) remove old module blockchain-process

chore (@embark/) remove embark blockchain & embark simulator cmds

chore (@embark/) remove old methods from engine.js

Revert "chore (@embark/) remove embark blockchain & embark simulator cmds"

This reverts commit 703a424fb9e720b9342acb4cf9d00530f7393059.

re-add cockpit modules

re-add cockpit modules
2019-09-06 17:35:44 -04:00
Jonathan Rainville 0b9670fd33 Fix embark blockchain command + fix wss in Embark (#1874)
* fix(@embark/cmd_controller): fix embark blockchain command

* feat(@embark/blockchain): ping endpoint before starting the node

also use web3 instead of function to ping endpoint

* dont override console.error completely
2019-09-06 15:08:33 -04:00
Pascal Precht 86ee867689 feat(@embark/specialconfigs): introduce dynamic addresses (#1873)
* fix embarkjs generation

fix ens setProvider

fix embarkjs objects

fix generated embarkjs provider

generate contracts

fix embarkjs-ens

* address some of the issues in the code review

* feat(@embark/specialconfigs): introduce dynamic addresses

This commit introduces a new Smart Contract configuration addressHandler
that lets users define a function to "lazily" compute the address of the
Smart Contract in question.

This is useful when a third-party takes care of deploying a dependency
Smart Contract, but the address of that Smart Contract only being available
at run-time.

Example:
```
deploy: {
  SimpleStorage: {
    fromIndex: 0,
    args: [100],
  },
  OtherContract: {
    deps: ['SimpleStorage'],
    address: async (deps) => {
      // use `deps.contracts.SimpleStorage` to determine address
    },
    abiDefinition: ABI
  },
}
```

In the example above, OtherContract will be deployed after SimpleStorage
because it uses the deps property to define Smart Contracts that it depends
on. All dependencies are exposed on the addressHandler function parameter
similar to deployment hooks.

Closes #1690
2019-09-06 15:02:51 -04:00
Eric Mastro 022a3c11ec fix(@embark/embark-deploy-tracker): Fix reading of empty file (#1872)
There was an error that would display on the second+ run of embark, that was causing by trying to read JSON of an empty file.

The solution was a combination of ensuring the file existed with defaults when enabled, and also ensuring we await the saving of the file.

Included is a bit of a refactor of how the tracking functions handled the “current chain”. Hopefully, this should make things more clear.

Tests have been updated accordingly.
2019-09-06 14:30:12 -04:00
André Medeiros 7e839e758e refactor: wire up coverage (#1865)
* refactor: wire up coverage

* refactor: coverage now reacts instead of being told what to do
2019-09-05 16:35:17 -04:00
Iuri Matias 718d19f7d3
re-add embarkjs generation (#1858)
* fix embarkjs generation

fix ens setProvider

fix embarkjs objects

fix generated embarkjs provider

generate contracts

fix embarkjs-ens

* address some of the issues in the code review

* address some of the issues in the code review

* address some of the issues in the code review

* address some of the issues in the code review
2019-09-05 16:04:52 -04:00
Jonathan Rainville b260e81055 refactor(@embark/cmd-controller): re add cargo for file watcher (#1855)
* refactor(@embark/cmd-controller): re add cargo for file watcher

(cherry picked from commit 5c77b4000742a14f42a6dc5c145672b9cd0957a3)

* use generate:all instea dof the event
2019-09-05 15:49:44 -04:00
Michael Bradley, Jr 8716373be2 fix: type checker and linter errors on master after recent PR merges 2019-09-05 13:33:34 -05:00
Jonathan Rainville 58ad62f32b refactor(@embark/cmd-controller): re add cargo for file watcher (#1857) 2019-09-03 14:03:29 -04:00
André Medeiros 230fe592a6
feat(@embark/test-runner): add reports to tests (#1864) 2019-09-03 13:38:36 -04:00
Eric Mastro f9557d4c93 refactor(@cockpit): Re-add APIs (#1831)
* refactor(@cockpit/contract-apis): Re-add contract APIs

Re-add functionality for Contract functionality to work in Cockpit.

# Conflicts:
#	packages/embark/src/lib/modules/blockchain-client/index.js
#	packages/embark/src/lib/modules/blockchain/index.js

* fix(@embark/transaction-tracker): re-enable oracle apis
2019-09-03 12:02:52 -04:00
Pascal Precht dd82a01b65 fix(@embark/cmd_controller): ensure namesystem is set up in console command (#1822)
This caused the console command to hang
2019-09-03 11:59:00 -04:00
Pascal Precht c7eb5868b9 fix(@embark/cmd_controller): ensure blockchain module is started before storage (#1821)
This is crucial as the storage module tries to generate/eval artifacts that
depend on a `web3` object inside the VM scope. The registration of that object
can only be garuanteed when the `blockchain:started` event has been fired.

This commit ensures these modules are not spinned up in parallel as we're running
into race conditions.
2019-09-03 11:56:12 -04:00
Michael Bradley, Jr 58c55ed88b fix(@cockpit): PropTypes typos: boolean -> bool, function -> func 2019-09-03 09:55:00 -05:00
dependabot-preview[bot] 939596cd58 build(deps-dev): bump eslint-config-react-app from 3.0.5 to 3.0.8
Bumps [eslint-config-react-app](https://github.com/facebook/create-react-app/tree/HEAD/packages/eslint-config-react-app) from 3.0.5 to 3.0.8.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/eslint-config-react-app@3.0.8/packages/eslint-config-react-app)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-03 09:55:00 -05:00
Michael Bradley, Jr 37b5cc0941 build(deps): add ajv@6.10.2 to deps of embark-scaffolding
embark-scaffolding imports ajv but it was not properly listed as a dependency
2019-09-03 09:22:18 -05:00
dependabot-preview[bot] 43cc536d4e build(deps): bump ajv from 6.5.5 to 6.10.2
Bumps [ajv](https://github.com/epoberezkin/ajv) from 6.5.5 to 6.10.2.
- [Release notes](https://github.com/epoberezkin/ajv/releases)
- [Commits](https://github.com/epoberezkin/ajv/compare/v6.5.5...v6.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-03 09:22:18 -05:00
Michael Bradley b736ebefcd refactor: initial steps toward 5.0.0-alpha.0 (#1856)
BREAKING CHANGE:

There are more than several breaking changes, including DApp configuration for
accounts.
2019-08-30 16:50:20 -04:00
dependabot-preview[bot] 1e13398933 build(deps): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.3.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 06:57:48 -05:00
dependabot-preview[bot] 59c92e121d build(deps): bump babel-loader from 8.0.4 to 8.0.6
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.4 to 8.0.6.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.0.4...v8.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 06:56:40 -05:00
Michael Bradley, Jr 775881318f refactor(@embark/utils): bip39.mnemonicToSeed -> bip39.mnemonicToSeedSync 2019-08-29 12:39:15 -05:00
dependabot-preview[bot] faa36550f7 build(deps): bump bip39 from 2.5.0 to 3.0.2
Bumps [bip39](https://github.com/bitcoinjs/bip39) from 2.5.0 to 3.0.2.
- [Release notes](https://github.com/bitcoinjs/bip39/releases)
- [Changelog](https://github.com/bitcoinjs/bip39/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bitcoinjs/bip39/compare/v2.5.0...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 12:39:15 -05:00
dependabot-preview[bot] 459079cfe5 build(deps-dev): bump eslint-loader from 2.2.1 to 3.0.0
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 2.2.1 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/v2.2.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 12:27:07 -05:00
Michael Bradley, Jr 706e43c9c5 chore(release): 4.1.1 2019-08-28 14:52:21 -05:00
dependabot-preview[bot] ac919e9429 build(deps): bump @babel/plugin-transform-flow-strip-types
Bumps [@babel/plugin-transform-flow-strip-types](https://github.com/babel/babel) from 7.2.3 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.3...v7.4.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 08:48:47 -05:00
dependabot-preview[bot] 8ff844041c build(deps): bump @babel/plugin-transform-destructuring
Bumps [@babel/plugin-transform-destructuring](https://github.com/babel/babel) from 7.3.2 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.2...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 08:37:19 -05:00
Michael Bradley, Jr c4d68c7898 build(deps): bump follow-redirects from 1.7.0 to 1.8.0 2019-08-27 10:56:52 -05:00
dependabot-preview[bot] 080540fb01 build(deps): bump follow-redirects from 1.5.7 to 1.7.0
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.5.7 to 1.7.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.5.7...v1.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-27 10:56:52 -05:00
dependabot-preview[bot] e0e783c525 build(deps-dev): bump react-bootstrap-typeahead from 3.2.4 to 3.4.6
Bumps [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) from 3.2.4 to 3.4.6.
- [Release notes](https://github.com/ericgio/react-bootstrap-typeahead/releases)
- [Changelog](https://github.com/ericgio/react-bootstrap-typeahead/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ericgio/react-bootstrap-typeahead/compare/v3.2.4...v3.4.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-27 10:43:08 -05:00
dependabot-preview[bot] 2eeda93f16 build(deps-dev): bump mini-css-extract-plugin from 0.4.3 to 0.8.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.3 to 0.8.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.3...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-27 10:40:32 -05:00
dependabot-preview[bot] 5a03a703dc build(deps-dev): bump @types/mocha from 5.2.0 to 5.2.7
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 5.2.0 to 5.2.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 11:41:27 -05:00
dependabot-preview[bot] 259ec442eb build(deps): bump url-loader from 1.1.1 to 2.1.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 1.1.1 to 2.1.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v1.1.1...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 11:36:34 -05:00
dependabot-preview[bot] bdb1177159 build(deps): bump webpack from 4.29.3 to 4.39.2
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.3 to 4.39.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.3...v4.39.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 10:56:30 -05:00
dependabot-preview[bot] f9975bea9a build(deps-dev): bump prop-types from 15.6.2 to 15.7.2
Bumps [prop-types](https://github.com/facebook/prop-types) from 15.6.2 to 15.7.2.
- [Release notes](https://github.com/facebook/prop-types/releases)
- [Changelog](https://github.com/facebook/prop-types/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/prop-types/compare/v15.6.2...v15.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 10:20:07 -05:00
Michael Bradley, Jr 6a64124e13 build(deps-dev): bump react-dom to 16.9.0 2019-08-26 09:41:27 -05:00
dependabot-preview[bot] 97cc709d7f build(deps-dev): bump react from 16.7.0 to 16.9.0
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.7.0 to 16.9.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.9.0/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 09:41:27 -05:00
Jonathan Rainville d2fc210706 fix(@mbark/embarkjs): enable using wss in embarkjs and the Dapp 2019-08-21 14:52:44 -04:00
Michael Bradley, Jr ff97aa5b3e fix(@embark/pipeline): revise require in embarkArtifacts/contracts/index 2019-08-20 14:25:45 -05:00
Michael Bradley, Jr 3a9fa56349 build(deps): remove unused mocha-sinon package 2019-08-20 14:25:25 -05:00
dependabot-preview[bot] ea1c654a19 build(deps): bump source-map-support from 0.5.9 to 0.5.13
Bumps [source-map-support](https://github.com/evanw/node-source-map-support) from 0.5.9 to 0.5.13.
- [Release notes](https://github.com/evanw/node-source-map-support/releases)
- [Commits](https://github.com/evanw/node-source-map-support/compare/v0.5.9...v0.5.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-20 14:00:18 -05:00
dependabot-preview[bot] 55a8f70337 build(deps-dev): bump eslint-loader from 2.1.1 to 2.2.1
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 2.1.1 to 2.2.1.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/2.1.1...v2.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-20 13:45:53 -05:00
dependabot-preview[bot] dca6342330 build(deps): bump rimraf from 2.6.3 to 3.0.0
Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.6.3 to 3.0.0.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.6.3...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-20 13:44:24 -05:00
Michael Bradley, Jr b4247fbc61 build(deps): opn 6.0.0 -> open 6.4.0 2019-08-20 13:39:44 -05:00
dependabot-preview[bot] fd28a642d9 build(deps): bump opn from 5.3.0 to 6.0.0
Bumps [opn](https://github.com/sindresorhus/open) from 5.3.0 to 6.0.0.
- [Release notes](https://github.com/sindresorhus/open/releases)
- [Commits](https://github.com/sindresorhus/open/compare/v5.3.0...v6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-20 13:39:44 -05:00
dependabot-preview[bot] 2329cf49f3 build(deps): bump ws from 6.1.2 to 7.1.2
Bumps [ws](https://github.com/websockets/ws) from 6.1.2 to 7.1.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.1.2...7.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 21:04:39 -05:00
Michael Bradley, Jr fdc3242a4f build(deps-dev): bump all @storybook packages from 4.1.11 to 5.1.11 2019-08-19 17:28:43 -05:00
dependabot-preview[bot] 5269764017 build(deps-dev): bump @storybook/addons from 4.1.11 to 5.1.11
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 4.1.11 to 5.1.11.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v5.1.11/lib/addons)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 17:28:43 -05:00
Jonathan Rainville 0fe070c6d5 fix(@embark/deploy-tracker): continue if getting block fails
Makes using the --fork option of ganache work even in mainnet
2019-08-19 18:17:54 -04:00
dependabot-preview[bot] a4dbf92078 build(deps): bump file-loader from 2.0.0 to 4.2.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 2.0.0 to 4.2.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v2.0.0...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 17:03:26 -05:00
dependabot-preview[bot] b04ce30073 build(deps-dev): [security] bump webpack-dev-server from 3.1.9 to 3.1.11
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.1.9 to 3.1.11. **This update includes a security fix.**
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.1.9...v3.1.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 17:02:41 -05:00
dependabot-preview[bot] 4ad1fc9aa6 build(deps-dev): bump eslint-plugin-react from 7.12.4 to 7.14.3
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.12.4 to 7.14.3.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.4...v7.14.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 17:02:09 -05:00
dependabot-preview[bot] 98e5ed07fc build(deps-dev): bump postcss-preset-env from 6.0.6 to 6.7.0
Bumps [postcss-preset-env](https://github.com/csstools/postcss-preset-env) from 6.0.6 to 6.7.0.
- [Release notes](https://github.com/csstools/postcss-preset-env/releases)
- [Changelog](https://github.com/csstools/postcss-preset-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-preset-env/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 17:00:08 -05:00
dependabot-preview[bot] b94cedce07 build(deps-dev): bump redux from 4.0.1 to 4.0.4
Bumps [redux](https://github.com/reduxjs/redux) from 4.0.1 to 4.0.4.
- [Release notes](https://github.com/reduxjs/redux/releases)
- [Changelog](https://github.com/reduxjs/redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/redux/compare/v4.0.1...v4.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 09:23:41 -05:00
dependabot-preview[bot] 3b9f5de650 build(deps-dev): bump ansi-to-html from 0.6.8 to 0.6.11
Bumps [ansi-to-html](https://github.com/rburns/ansi-to-html) from 0.6.8 to 0.6.11.
- [Release notes](https://github.com/rburns/ansi-to-html/releases)
- [Commits](https://github.com/rburns/ansi-to-html/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 09:19:23 -05:00
dependabot-preview[bot] d58c0249aa build(deps): bump stream-json from 1.1.3 to 1.3.0
Bumps [stream-json](https://github.com/uhop/stream-json) from 1.1.3 to 1.3.0.
- [Release notes](https://github.com/uhop/stream-json/releases)
- [Commits](https://github.com/uhop/stream-json/compare/1.1.3...1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 09:12:05 -05:00
dependabot-preview[bot] e047813815 build(deps): bump babel-plugin-module-resolver from 3.1.3 to 3.2.0
Bumps [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) from 3.1.3 to 3.2.0.
- [Release notes](https://github.com/tleunen/babel-plugin-module-resolver/releases)
- [Changelog](https://github.com/tleunen/babel-plugin-module-resolver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tleunen/babel-plugin-module-resolver/compare/v3.1.3...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 09:11:31 -05:00
dependabot-preview[bot] a0177f0a31 build(deps): bump @babel/preset-env from 7.3.1 to 7.5.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.3.1 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.1...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 19:35:13 -05:00
dependabot-preview[bot] a57ef50a07 build(deps): [security] bump axios from 0.18.0 to 0.18.1
Bumps [axios](https://github.com/axios/axios) from 0.18.0 to 0.18.1. **This update includes a security fix.**
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.18.1/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.18.0...v0.18.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 19:32:33 -05:00
Michael Bradley, Jr 4b4a00bd4d chore(release): 4.1.0 2019-08-12 12:14:12 -05:00
Michael Bradley, Jr cda40b93c4 chore(release): 4.1.0-beta.6 2019-08-09 17:50:05 -05:00
Michael Bradley, Jr 33eab74ebd refactor(@embark/blockchain): support --simple dapps
DApps generated with `new --simple` don't have a blockchain config so ensure
that the blockchain proxy and listener (dev_txs) use appropriate provider
settings when setting up web3.

Without these changes, in a fresh `embark new --simple` project the `embark
blockchain` command will encounter unhandled promise rejection with respect to
the proxy; `embark run` will encounter similar with respect to dev_txs.
2019-08-09 10:50:43 -05:00
Pascal Precht 1595e4b37f fix(@embark/embarkjs-ipfs): use `version()` API instead of `id()` to determine availability 2019-08-09 10:50:03 -05:00
Michael Bradley, Jr f7f54f299d refactor(@embark): template generator should use npm if downloaded template has `package-lock.json`
Previously, when using "development embark" (i.e. `embark` command in the
monorepo) the template generator would always use `yarn install` to install a
template's dependencies. However, if a template relies on `package-lock.json`,
as is the case for `embark-create-react-dapp-template`, that behvaior can cause
serious problems. So, have the choice of install command depend not only on
whether we're using "development embark" but also whether the template has a
`package-lock.json` file.

NOTE: this change can probably result in problems given that `yarn install` and
`npm install` behave differently re: symlinks in `node_modules`. However, such
problems would never show up with production installs of the `embark`
packaage. Moreover, after dropping `embarkjs-connector-web3` we don't presently
have a situation where a monorepo package would be `yarn link`ed into an
instantiated template's `node_modules`. So, in effect, the changes introduced
in this PR allow existing templates to work correctly whether using production
or monorepo embark. The impending embark v5 refactor should deprecate `embark
new` in favor of the yet unfinished `embark init`.
2019-08-09 10:48:38 -05:00
Michael Bradley, Jr 6dd0628a86 fix(@embark/library-manager): add a check/warning for `"1.0.0-beta"` web3 version in installAll
A check is already in place in `package/embark-web3` but `installAll` of the
library manager needs the same.
2019-08-09 10:39:00 -05:00
Michael Bradley, Jr beebbe6e58 fix(@embark/cli): properly forward cli options to ethereum simulator 2019-08-09 10:37:58 -05:00
Michael Bradley, Jr 9d81fc5b1c fix(@embark/pipeline): check if config arg of writeStats is falsy
When passing the name of a build pipeline that doesn't exist, e.g.
`embark run|build --pipeline foo`, `writeStats` would cause an unhandled
promise rejection because its config argument is falsy. Checking for that and
returning early from `writeStats` allows the `"no webpack config has the name
'foo'"` error to be reported correctly.
2019-08-09 10:37:20 -05:00
Michael Bradley, Jr e58c5528a6 fix(@embark/pipeline): adjust ignore paths
The ignore paths for the default webpack config and babel-loader-overrides
helper script weren't properly adjusted after the legacy pipeline was split-out
into its own package in the monorepo.
2019-08-09 10:37:20 -05:00
Michael Bradley, Jr ad30a98169 refactor: upgrade to web3 v1.2.1
Upgrade all dependencies on web3/web3-* v1.0.0-beta.37 to v1.2.1.

Make various adjustments related to the previous convention of
`"web3": "1.0.0-beta"` in `embark.json` signifying that embark's own web3
dependency should be used in dapp builds.

Fix bugs in library manager, including a switch from using the
live-plugin-manager package to using npm in a child process to install
`"versions"` dependencies specified in `embark.json` when a specified version
doesn't match up with embark's own version for that package.

Avoid race conditions when installing `"versions"` by completing all installs
prior to starting other services. If an install fails, then after all the
installs have completed or failed the embark command will exit with error.

Change various comments and update docs to reflect the new default of web3
v1.2.1.
2019-08-07 11:01:23 -05:00
Michael Bradley, Jr 0c12097c17 refactor(@embark/blockchain): consistently merge config accounts and node accounts 2019-08-07 11:00:51 -05:00
Jonathan Rainville c2094dbc49 fix(@embark/test-runner): fix describe in describe tests 2019-08-07 11:00:25 -05:00
Jonathan Rainville b5c81bd41a feat(@embark/pipeline): enable choosing which fields to filter out 2019-08-01 13:53:47 -04:00
Jonathan Rainville b0cccaea05 feat(@embark/pipeline): add minimalContractSize to remove bytecode 2019-08-01 13:53:47 -04:00
Jonathan Rainville 9e74d32f5f feat(@embark/cmd): add a warning on build and upload if development 2019-07-30 08:48:16 -04:00
Jonathan Rainville 1491028665 use callbacks instead of exiting 2019-07-23 10:55:14 -04:00
Jonathan Rainville 6afa07f111 code review 2019-07-23 10:55:14 -04:00
Jonathan Rainville 78bb9bc34d fix(@embark/accountParser): exit on unsupported account configs 2019-07-23 10:55:14 -04:00
Jonathan Rainville 5ab4c225fa fix(@embark/ui): fix errorEntities not working at all 2019-07-23 08:49:41 -04:00
Jonathan Rainville 27bd574406 fix(@embark/ipfs): fix ipfs upload with wrong error message 2019-07-15 11:17:25 -04:00
Jonathan Rainville 810c3be9fc fix(@embark/pipeline): streamline contract index file creation 2019-07-15 09:16:35 +02:00
Michael Bradley, Jr 5930cce7dd chore(release): 4.1.0-beta.5 2019-07-10 16:21:47 -05:00
Michael Bradley, Jr 72baf5f6dd refactor(@embark/api-client): remove console.dir statements used during development 2019-07-10 16:06:27 -05:00
Michael Bradley, Jr 5828ae6cc5 fix(@embark/storage): revise timing for process:started and code eval to avoid race conditions 2019-07-10 16:06:27 -05:00
Pascal Precht 2531fc1d26 fix(@embark/test-runner): make `--tx-details` option work again
In https://github.com/embark-framework/embark/commit/87d92b6091 we've introduced a feature in our test runner
to report exact gas costs used when calling Smart Contract methods that
cause computation.

Embark keeps a list of deployed contracts in memory and for all transactions
happening during tests, it'll match them to the contracts that performed them
to produce the report logs.

Unfortunately, we've been [resetting that memory](https://github.com/embark-framework/embark/commit/87d92b6091#diff-92b4f79a0473160fe700440b1ced5204R140) of deployed contracts
after every test, making it practically impossible for Embark to find
matching contracts for any transactions, because contracts aren't necessarily
redeployed per spec, resulting in no additional transaction logs whatsoever.

This commit ensures that the memory is never erased and at the same time
ensures it's not leaking infinitely in case multiple contracts are
deployed multiple times in the same process over several specs.
2019-07-10 14:20:26 -05:00
Michael Bradley, Jr 3590197c55 fix(@cockpit/debugger): check if `debuggingContract` is undefined
Guard against redux-saga fetching races in `componentDidUpdate`.
2019-07-09 13:02:51 -05:00
Pascal Precht 3f77272e71 fix(@cockpit): don't send invalid value to Smart Contract methods
We've introduced a regression in 536a4029ba where the default
`value` sent to payable Smart Contract methods is `-1`, resulting in errors as it's not
a valid value.
2019-07-09 08:10:13 +02:00
Jonathan Rainville 9390673ef4 chore: update shelljs to 0.8.3 for all packages 2019-07-08 11:25:30 -05:00
Jonathan Rainville 1e59b58887 feat(@embark/solc): add embark-solc to monorepo 2019-07-08 11:25:30 -05:00
Jonathan Rainville c87d7da4cc fix(@embark/code-generator): use plugins for contract generation
`contractGeneration` plugins were only used in the Embark console
Now they are used to generate the Dapp artifacts too
2019-07-08 10:26:16 -05:00
emizzle 536a4029ba feat(@cockpit): Pass tx value as wei and add validation
For payable methods inside of the contract interatction section of cockpit, the value input has been updated to pass wei to the API. The input field now accepts value like `100 ether` or 25 szabo`. The value entered is automatically converted to wei and shown to the user in real time.

Additionally, the input is validated for a correct value, with an error shown to the user for incorrectly entered values.

A tooltip has been added to help the user enter correct values.

UI updates can be seen in video here: https://monosnap.com/file/642cHH2HxDeiFLzB2VLqHP9GuqoRfz
2019-07-08 10:00:34 -05:00
Pascal Precht 70ff3c1825 fix(@embark/contracts-manager): ensure ETH values sent through APIs are converted to string
This is due to a bug that has been introduced in d10c0b7951 where we end up
sending values as numbers to web3's `toWei()` utility. The `value` is always sent as number
and in fact always defined, so we just need to check for it's type and convert it to a string
according to `toWei()`'s API.
2019-07-08 10:00:34 -05:00
Michael Bradley, Jr bd602b45ee refactor(@embark/storage): wrap require.resolve in try/catch
Wrap `require.resolve` in try/catch instead of testing the path with
`embark.fs.access`.
2019-07-05 17:01:09 -05:00
Michael Bradley, Jr 13e926659f refactor(@embark/core): move CoreProcess into embark-core 2019-07-05 16:07:58 -05:00
Michael Bradley, Jr 04694edb0b refactor: move storage, ipfs and swarm modules into their own packages 2019-07-05 16:07:45 -05:00
Michael Bradley, Jr 158de04baf refactor(@embark/ens): remove caret range from async dependency 2019-07-05 16:05:21 -05:00
Pascal Precht d76a82a30a fix(@embark/deployment): don't over estimate gas when running tests against non-simulator nodes
When running tests against non-simulated blockchain nodes, even for simplex
Smart Contracts, deployment transactions would exceed the block gas limit.

E.g. running `embark blockchain` in one process and `embark test --node embark`
in another, inside our demo application, will throw an error when Embark attempts
to deploy its `SimpleStorage`:

```
Compiling contracts
Compilation done

[SimpleStorage]: error deploying =SimpleStorage= due to error: Returned error: exceeds block gas limit
Error deploying contracts. Please fix errors to continue.
Error deploying contracts. Please fix errors to continue.
terminating due to error
Error deploying contracts. Please fix errors to continue.
```

The reason for that is because in https://github.com/embark-framework/embark/pull/1650, we've introduced a static
gas estimation for Smart Contract deployment that is just right below Ganache's
maximum gas limit of `6721975`, since Ganache tends to underestimate gas for
complex Smart Contracts due to its [low base fee](8ad1ab29de/lib/utils/gasEstimation.js (L33-L39)).

The static gas estimation would apply any time we're in a test context, but we
didn't take into account the case where tests are executed against nodes
other than the simulated environment.

As mentioned in the comments in the linked PR:

> If this is not spec'ed at all, I wonder what complications it could cause when
> at some point we maybe switch to not using Ganache anymore for tests, or even
> the user itself (which I think is a reasonable thing to do).

This causes the error described above because we easily reach the block gas limit
with just two Smart Contracts and Embark already deploys a few Smart Contracts for
ENS.

So basically what we want is to use the static gas estimation when we know
the node we're connecting to is Ganache. In all other cases we can rely on the
standardized gas estimation offered by the node.
2019-07-05 14:15:12 +02:00
Jonathan Rainville 421c340613 fix(@embark/ipc): fix functions not being printed in console 2019-07-05 14:12:43 +02:00
Jonathan Rainville 0e9a4a136b feat(@embark/ui): sort contracts and functions alphabetically 2019-07-05 14:11:34 +02:00
Michael Bradley, Jr 52d54f0d87 fix(@cockpit/explorers): consistently display "Mined on" timestamps
Adjust the API endpoints to augment transaction objects with a timestamp
property from their corresponding blocks. This removes the necessity to copy
the timestamp property from a block to its transactions in the client.

Introduce a `formatTimestampForDisplay` util function in Cockpit for
consistently transforming timestamps into relative or absolute dates, depending
on whether a date is sometime during the last day.
2019-07-03 08:25:08 -05:00
Michael Bradley, Jr 7d27125eed fix(@embark/code-runner): restore EmbarkJS.environment property in the cli dashboard
The property is set/available on EmbarkJS in the artifacts, i.e. in a browser
build; but sometime since v3.2.4 it was no longer availble in the cli dashboard
environment.
2019-07-02 10:48:53 -05:00
Pascal Precht 93ca3ad97c fix(@embark/embarkjs-whisper): Messages.isAvailable() should always return a promise
`EmbarkJS.Messages.isAvailable()` in some cases return synchronously (when whisper isn't
set up), in other cases asynchronously. This actually breaks our demo application for
the following reason:

We check for Whisper's availability via:

```
EmbarkJS.Messages.Providers.whisper.getWhisperVersion((err, _version) => {
  if (err) {
    return console.log(err);
  }
  this.setState({whisperEnabled: true});
});
```

There's a couple of problems here:

- This code will break right away when whisper isn't available, resulting in an error:
  ```
  Cannot read property _requestManager of undefined
  ```

- The reason this error happens is because there's no `web3` object available inside
  our EmbarkJS.Messages code. Even though there **is** a web3 object, EmbarkJS.Messages
  doesn't know about this because it only sets it when its `setProvider()` API is called,
  which effectively doesn't happen at all when Whisper isn't enabled on the connected
  node

- While this could be fixed with a simple check on whether EmbarkJS.Messages' internal
  `web3` references is a thing, really what should be used in the demo is the `isAvailable()`
  API.

`isAvailable()` should always return a promise (similar to `EmbarkJS.Storage.isAvailable()`.

This commit ensures that `isAvailable()` always returns a promise and changes the demo
template to use `isAvailable()` over `getWhisperVersion()`.
2019-07-01 11:11:03 +02:00
Pascal Precht fc7eb0cca6 uiux(@cockpit/sign-and-verify): improve wording for verifying messages 2019-07-01 11:10:37 +02:00
Michael Bradley, Jr eecb48f5b6 chore(release): 4.1.0-beta.4 2019-06-27 14:23:32 -05:00
Jonathan Rainville f6d7a54195 fix(@embark/deploy-tracker): fix getting the block 0 with sim --fork 2019-06-27 14:12:29 -05:00
Jonathan Rainville 198a5dc3f4 fix(@embark/solidity): show a better error message in debug 2019-06-27 14:10:53 -05:00
Iuri Matias fc4faa8ba9 fix: alleviate races re: embarkjs by introducing Plugin#addGeneratedCode and related refactors 2019-06-27 14:10:12 -05:00
Michael Bradley, Jr d684b9af0f refactor(@embarkjs/web3): make web3 connector an internal plugin like the other embarkjs-* packages
Effectively deprecate the `embarkjs-connector-web3` package but don't introduce
a breaking change by simply not loading the plugin if it's specified in a
DApp's `embark.json`. If the deprecated plugin is specified, display a message
indicating the plugin was ignored and suggesting it be removed from the
project's `embark.json` and `package.json`.
2019-06-27 14:10:12 -05:00
emizzle 71cb161525 feat(@embark/blockchain-connector): Add command to get full account info
This PR adds a command to get full account details from the contradts config that includes info like private key.

The existing, and similar command, `blockchain:provider:contract:accounts:get` would only return account addresses if they existed, and not the full account info.
2019-06-27 08:42:58 -05:00
Michael Bradley, Jr 2ce9ca6bb0 fix(@embark/coverage): function types and single statement ifs 2019-06-27 08:40:24 -05:00
Pascal Precht 610d8f1baa fix(@cockpit/utils): Ensure whisper channels are at least 4 characters long
This check was already made when sending messages to whisper channel, however, we didn't
perform the same check when subscribing to channels within cockpit.
2019-06-27 08:36:25 -05:00
Jonathan Rainville 908aa3b148 fix(templates): fix templates because tests don't like empty files 2019-06-21 11:00:27 -04:00
Jonathan Rainville 9646673c6f fix(@embark/test-runner): only run tests on files with describe 2019-06-21 11:00:27 -04:00
Jonathan Rainville 332229ff9d feat(@embark/test-runner): return accounts in the describe callback 2019-06-21 11:00:27 -04:00
Jonathan Rainville 8c16541019 feat(@embark/test-runner): wait for deploy before enterning describe 2019-06-21 11:00:27 -04:00
Pascal Precht 24b53395b0 fix(@embark/config): disable webserver if pipeline is disabled
The webserver's job is to serve files generated by Embark's built-in pipeline,
however, since v4 users can choose they front-end tool to take care of building,
bundling and packing their DApps. Usually these tools come with a built-in
dev server as well.

Therefore, when the pipeline is turned off (which also soon will be the default),
there's not need start a webserver.
2019-06-20 10:49:00 +02:00
Pascal Precht 9e5c9c7f17 fix(@embark/deployment): don't break when using abiDefinitions
In https://github.com/embark-framework/embark/pull/1119 we've introduced a feature where
users can provide an already compiled ABI for Smart Contracts so they can be used
without the need to compiling them again.

This also means that, internally, those Smart Contract object won't have any
bytecode attached to it.

Later on, in 387d33a076,  we've introduced a warning
which is rendered when a Smart Contract's bytecode is too large. The check expects
a Smart Contract object to have bytecode associated to it, which will break the code
in cases where a Smart Contract has already an ABI and therefore didn't need compilation.

This commit ensures we only check a Smart Contract's bytecode when bytecode exists for
the Smart Contract in question.
2019-06-19 11:48:57 +02:00
Jonathan Rainville e288483661 fix(@embark/test-runenr): fix event listener overflow 2019-06-17 11:37:07 -04:00
Jonathan Rainville d5bce81e56 refactor: add normalizePath and toForwardSlashes for replaces 2019-06-11 10:02:08 +02:00
Jonathan Rainville 1edd68f3bd fix(@embark/solidity): fix recursive error on Windows 2019-06-11 10:02:08 +02:00
Michael Bradley, Jr ff3100b035 chore(release): 4.1.0-beta.3 2019-06-07 13:42:13 -05:00
Michael Bradley, Jr d264070069 style(@embark/contracts-manager): add semicolon to end of statement 2019-06-06 15:49:53 -05:00
Pascal Precht d10c0b7951 feat(@cockpit/explorer): enable users to send ether through payable methods (#1649) 2019-06-06 12:52:01 -04:00
Michael Bradley, Jr ed65b066e7 refactor (@embark/embarkjs-ens): move embarkjs-ens to its own module 2019-06-06 11:47:03 -05:00
Michael Bradley, Jr b45b2e21db fix(@embarkjs): unconditionally require symlinked embarkjs-* modules 2019-06-06 08:26:20 -05:00
André Medeiros 312c631f86
fix: gas estimates in test (#1650) 2019-06-04 13:12:43 -04:00
Andre Medeiros 0f633cd04e chore: make contract artifacts usable in node 2019-06-01 17:35:10 -05:00
Pascal Precht f2903e7577 fix(@embarkjs/whisper): don't rely on global EmbarkJS in whisper APIs
When trying to either sending, or listening to whisper channels within
Embark's consoles (CLI and Cockpit), the console outputs an error that
`EmbarkJS` isn't defined.

E.g. running:

```
> EmbarkJS.Messages.listenTo({ topic: ['somechannel'])
```

Outputs:

```
EmbarkJS is not defined
```

This seemed very odd as outputting `EmbarkJS` and all of its members
worked totally fine.

It turns out that both methods, `listenTo()` and `sendMessage()`, in
`EmbarkJS.Messages` are not necessarily what one thinks they are.
EmbarkJS decorates both methods to create some options that need to be
available in the delegate, two of them being `EmbarkJS.Utils.toAscii`
and `EmbarkJS.Utils.fromAscii` (ac76a40a61/packages/embarkjs-whisper/src/index.js (L43-L62) and ac76a40a61/packages/embarkjs-whisper/src/index.js (L64-L73))

These two global references to `EmbarkJS` are the only ones in `embarkjs-whisper`
and they are not the same reference as the `EmbarkJS` sandbox global
registered in the VM here ac76a40a61/packages/embark-code-runner/src/index.ts (L33).

In other words, the `EmbarkJS is not defined` message actually refers
to the `EmbarkJS` in the wrapping method, not the one registered with
the VM, which is also why inspecting the `EmbarkJS` object through the
VM works fine.

Since the `toAscii()` and `fromAscii()` methods in use are really just
facades around `web3.utils.[fromAscii|toAscii]()`, we can replace the
global EmbarkJS dependency with web3 utils that are already available
anyways.
2019-05-31 14:07:38 +02:00
Michael Bradley, Jr 3c9ed4183d refactor(@embark/watcher): downgrade from chokidar 3.x to latest 2.x
chokidar 3.x has fsevents `^2.0.6` [as a dependency][dependency], which
introduced node v12.x compatibility, a sought-after goal of our PR
1638. However, fsevents `2.0.6` node compatibility range is quite
[complicated][complicated]. After fsevents `2.0.6` was published its
maintainers published `1.2.9`, which backports NodeJS v12.x compatibility minus
some performance increases, while offering [much more
straightforward][straightforward] node compatibility. fsevents `1.2.9` [is
compatible][compatible] with the latest v2.x release of
chokidar (`2.1.6`). Since Embark advertises runtime compatibility with node
`>=8.11.3`, downgrade chokidar to `2.1.6`.

[dependency]: https://github.com/paulmillr/chokidar/blob/3.0.0/package.json#L25
[complicated]: https://github.com/fsevents/fsevents/blob/v2.0.6/package.json#L10
[straightforward]: https://github.com/fsevents/fsevents/blob/v1.2.9/package.json#L14
[compatible]: https://github.com/paulmillr/chokidar/blob/2.1.6/package.json#L49
2019-05-29 22:09:23 -05:00
Michael Bradley, Jr ac76a40a61 fix(@cockpit/explorer): slice contract function result string only if starts/ends with double-quote
Closes #1636.
2019-05-28 09:36:38 +02:00
Michael Bradley, Jr d116549c32 refactor(@embark/watcher): upgrade chokidar to 3.0.0
Upgrade chokidar to a version that's compatible with NodeJS v12.x.

Unfortunately, embark has other transitive dependencies that are not compatible
with v12.x, but upgrading chokidar is still a good step.
2019-05-28 09:36:06 +02:00
Michael Bradley, Jr 030aba190d build: change the engines range for NodeJS to indicate embark is not compatible with v12.x 2019-05-28 09:35:44 +02:00
Michael Bradley, Jr d477adc87e feat(@embark/cli): exit with error if --template and --contracts-only are both used with 'new' cmd 2019-05-28 09:35:24 +02:00
Pascal Precht e5fc12e256 fix(@embark/test-runner): don't try to deploy and register ENS domains after JS tests have run
When running unit tests inside a project that configures ENS subdomains using Smart Contract directives,
the tests will output an error because of that particular Smart Contract's `deployedAddress` being `undefined`.

This happens only when running tests, not when deploying the Smart Contracts including the custom ENS setup.

It turns out that Embark attempts to compile and deploy the Smart Contracts of the project *twice* - once
before tests are executed, and another time **after** tests are done executing.

Both compilations/deployments are triggered through our custom `config()` function within test context,
which ensures all Smart Contracts are deployed before tests are executed.

This explains a few things:

1. There's no such issue when running `embark run`, in fact the custom ENS subdomains work perfectly fine
2. That's also why the tests are passing fine as well as the first compilation/deployment doesn't have any issues.
The errors only appear *after* the tests have been executed.

Still, this raises a few more questions, mainly

- Why is the Smart Contract's `deployedAddress` property `undefined` when `config()` is executed a second time?
- Why is `config()` executed a second time in the first place?

Let's look into both of these.

Assuming that there's a valid reason that `config()` is called twice, it's remains unclear why that property
of a Smart Contract object is `undefined` in the second run. The reason for that is that Embark determines whether
or not a particular Smart Contract should be deployed. One of the routines ensures that only the Smart Contracts
configured for deployment are actually attempted to be deployed (as opposed to just deploying all Smart Contracts
found in the file system).

It turns out that the second `config()` call is done without any Smart Contract configuration, resulting basically in no deployment
for any Smart Contract of the application. The `address` and `deployedAddress` of a Smart Contract object are however only set
 *after* deployment, resulting in them being `undefined`.

**All this makes sense.**

`config()` is simply not designed for being used with an empty `contracts: {}` config. This raises another question:

Why is `config()` called with an empty configuration? This leads us to the second point.

It does seem a bit weird that Embark tries to configure compile *and* deploy a DApp's Smart Contracts again right **after**
the tests have been executed. So why is that?

A quick `git blame` (no blame intended here) shows us that this routine has been introduced in https://github.com/embark-framework/embark/commit/12cbb7bdd.

Notice the second list point of the commit:

> Contracts that had been compiled in the JS tests were being deleted at the end of the JS test run, which caused errors
> with the files not being found. The fix was to reset the contracts config to no longer require the non-test contracts
> to be compiled/deployed.

The above is a little tricky to understand without a little bit of context: Embark runs two types of tests, JavaScript tests
and Solidity tests. It does that as part of a single process, keeping state in memory in-between those two test runs.

With that in mind, the commit mentioned above says the following:

1. Artifacts that Embark generates as part of its compilation process are erased after JS tests are done executing.
This makes a lot of sense as we don't want to leave any side effects undone when tests are finished.

2. The commit ensures that not only the artifacts are removed from disc, but also updates Embark's state in memory
for `contractFiles`. The reason for that is that otherwise, in the second test run for Solidity tests, Embark will
  throw errors as it tries to look up the path for the artifacts in memory for all the Smart Contracts that had been
  compiled before.

3. Last but not least, there's *another* state that needs a reset and that's the Smart Contract configuration. If Embark
doesn't reset the memory it'll assume in the second run that all of those Smart Contracts left in memory
"have no code associated to it", while in reality, they shouldn't be in memory in the first place.

So it seems that `config()` is called a second time with an empty Smart Contracts configuration just to ensure that memory
is reset and no error messages are shown.

As discussed earlier, this unfortunately also introduced a lot of side effects along the way as Embark tries to reregister
ENS subdomains from Smart Contracts that are marked as undeployed and therefore don't have an address to interpolate.

While there's probably different ways to go about it, the most straight forward fix is to simply not call `config()`
a second time when it's really not needed. If the goal is to just reset the memory, we can take advantage of
Embark's internal `config:contractsConfig:set` event, which is what this commit is doing.
2019-05-28 09:34:52 +02:00
snyk-bot 9029bfe947 fix: packages/embark/package.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-HANDLEBARS-174183
- https://snyk.io/vuln/SNYK-JS-TAR-174125
- https://snyk.io/vuln/npm:mem:20180117
2019-05-24 10:38:22 -05:00
Michael Bradley, Jr 91f87d2057 chore(release): 4.1.0-beta.2 2019-05-22 18:09:06 -05:00
Michael Bradley, Jr 0253c90111 fix(@embark/utils): add find-up and globule to dependencies
The embark-utils package, since 4.1.0-beta.1, is a transitive DApp dependency;
but it's loaded in the main process (not a child process), so embark-utils' own
deps can't be indirectly supplied from embark itself via NODE_PATH.
2019-05-22 17:44:41 -05:00
Pascal Precht 2c6c9489fc fix(@cockpit/whisper): ensure message subscription call is working
When introducing the `embark-api-client` in https://github.com/embark-framework/embark/commit/c1bbdbf34
we didn't properly update Cockpits apiService, resulting in calls to API endpoints
that don't exist.

This commit fixes a bug where calls to Embark's API to subscribe to whisper
channels are in a broken state.

It also updates Cockpit's apiService to no longer pass ignored parameters to embark-api-client.
2019-05-22 17:16:16 +02:00
Pascal Precht 7a0609b66c fix(@cockpit/utils): properly detect if ENS is enabled
With the move of Embark's modules into their own packages, the names under
which they are registered in the API service have changed as well.

This caused Cockpit to no longer being able to properly detect whether
ENS is enabled in the current Embark project
2019-05-22 17:15:57 +02:00
Pascal Precht 3aca2fe17b refactor(@embark/code-runner): move code-runner into its own package 2019-05-22 17:15:39 +02:00
Pascal Precht 038928f8a5 feat(@embark/utils): introduce setUpEnv() function
This package comes with a `setUpEnv()` function that can be called to
prepare Embark's environment variables for different process contexts.

This allows us to set up Embark's environment within a test runner context
without the requirement of importing `packages/embark/src/lib/core/env.js`,
which happens to set up those necessary environment variables as a side effect.

It's important that a path to `packages/embark`'s root is passed down to `setUpEnv()`
to ensure `EMBARK_PATH` gets the correct value.

E.g. within a package `embark-console`, `setUpEnv()` can be called within its tests
like the following:

```
// packages/embark-console/src/test/console.js

import { joinPath, setUpEnv } from 'embark-utils';

setUpEnv(joinPath(__dirname, '../../../embark'));
```

Here, `__dirname + '../../../embark'` ensures `EMBARK_PATH` points to the root
of `packages/embark`. This might look different in other contexts.

For example calling this function from a test file within `packages/embark`, this would
look like this:

```
// packages/embark/src/test/some_file.js

import { joinPath, setUpEnv } from 'embark-utils';

setUpEnv(joinPath(__dirname, '../../'));
```
2019-05-22 12:23:04 +02:00
Pascal Precht 57c3502f1f refactor(@embark/coverage): move coverage module into own package
This commit also moves several utility methods into @embark/utils as needed.
2019-05-22 11:47:29 +02:00
Pascal Precht 8ca6419a4e fix(@embark/pipeline): ensure color methods for logs are available
As part of 880a3a6946, we've introduced a
regression where the `colors` package isn't imported in the scope anymore where it's
needed. In this case the pipeline package. This resulted in log output messages
such as:

```
undefinedwriting fileundefined
```

Adding the `colors` package as dependency and importing it accordingly
fixes the issue.
2019-05-21 14:46:03 +02:00
Michael Bradley, Jr a10bd69756 docs: move root readme into packages/embark and symlink into root 2019-05-21 12:12:15 +02:00
Ricardo Guilherme Schmidt 4d079de1f4 fix(@embark/ens): use namehash for resolver 2019-05-21 12:11:14 +02:00
Pascal Precht 3df7f81732
refactor: move `dappPath`, `ipcPath` and `embarkPath` into @embark/utils 2019-05-17 11:25:40 +02:00
Michael Bradley, Jr a519a5d527 build: adjust reset script to delete coverage dirs if pkg has test script
Make the adjustment even if the test script is currently disabled. Consistently
use nyc to generate coverage with mocha even if the test script is currently
disabled.
2019-05-16 12:30:03 -05:00
Michael Bradley, Jr 4ee1567264 chore(release): 4.1.0-beta.1 2019-05-15 18:44:46 -05:00
Michael Bradley, Jr c4d647c299 fix(@embark/api): setup the embark-ui build dir before the express instance 2019-05-15 18:16:41 -05:00
Michael Bradley, Jr 78f7c52080 build: supply missing deps so production builds can function correctly 2019-05-15 18:15:50 -05:00
Pascal Precht 880a3a6946 refactor(@embark/pipeline): move pipeline into own package 2019-05-15 19:59:59 +02:00
Michael Bradley, Jr 79873bd3e7 build(@embark/deploy-tracker): disable watch:typecheck script 2019-05-15 12:52:20 -05:00
Michael Bradley, Jr 5799e00708 refactor(@embark/template_generator): use yarn to install template deps if embark cli is in monorepo
If the `embark` cli is detected to be inside the monorepo, the template
generator yarn-links any template deps that are part of the monorepo into the
dapp. However, `embarkjs-connector-web3` now has a dependency on `embark-core`,
which in turn has a dependency on `embark-i18n`. That causes `npm install` to
fail inside the dapp because npm checks for deps of `embarkjs-connector-web3`
relative to the dapp instead of checking relative to the symlink. `yarn
install` does not suffer from that behavior so use it instead.
2019-05-15 11:54:30 -05:00
emizzle f5722546b1 refactor(@embark/debugger): Move to embark-debugger
Move the debugger module to the `embark-debugger` package.

Handle case where `debug` is entered as a console command, and there is no transaction to be debugged.

add embark-i18n and mocha deps
2019-05-15 14:39:00 +02:00
Andre Medeiros 46c4a5c79c chore: move deploytracker to embark-deploy-tracker module 2019-05-15 14:38:34 +02:00
emizzle 634feb597a feat(@embark/api): Add command `service api on/off`
Add support for `service api on/off` commands.

Deprecate commands `api start/stop` in favor of `service api on/off`.

`service api on` - Enables the API server serving Cockpit. Shows an error if the API server is already starting or started.

`service api off` - Disables the API server serving Cockpit. Shows an error if the API server is already stopping or stopped.

`api start` - This command has been deprecated in favor of `service api on` and will be removed in future versions.

`api stop` - This command has been deprecated in favor of `service api off` and will be removed in future versions.

`api:start` - This event has been deprecated and will be removed in future versions.

`api:stop` - This event has been deprecated and will be removed in future versions.
2019-05-15 14:28:10 +02:00
Andre Medeiros 3a07d34cc2 chore: move embark_listener to module 2019-05-15 14:27:44 +02:00
emizzle fc01daf3e9 feat(@embark/whisper): Remove support for `service whisper on/off`
Remove support for `service whisper on/off` because Whisper cannot be started without first disabling it in the communications config, then restarting Embark.

Add documentation for the `service [process] on/off` command

This command was only added a few commits back so it is not considered a breaking change.

Refactor the `service [process] on/off` commands so that there is only one command. Previously we had a command registered for each process, ie:
```
service blockchain on/off
service ipfs on/off
…
```

Now, we only have one command with many options:
```
service [process] on/off - Starts/stops the process. Options: blockchain, embark, ipfs, api
```

Whisper is deliberately not included in the available options for the aforementioned reasons.
2019-05-15 13:34:13 +02:00
Pascal Precht e3ecf68fbc refactor: move embarkPath, ipcPath and dappPath into embark-core
This enables removing unnecessary `core/fs` dependencies which can be
replaced with `fs-extra`.

This commit also fixes a bug introduced in f868d1216d
where methods from `embark.fs` weren't available.

The reason for that is because we have several *Process instances
that are created through child process communication, specifically
process.send() APIs. Using those APIs, we can only send data structures
however, methods attached on any of those will get lost.

This is the case when sending embark.fs through process.send().

We still need fs in those places though, mostly because they are relying
on embarkPath and dappPath().

These places are now importing those functions from `embark-core`. Other
API such as writeFile or mkdirp() can be accessed through fs-extra
or fs modules.
2019-05-15 12:20:22 +02:00
Michael Bradley, Jr cae583137c refactor: bump ganache-cli to latest stable version for compat with newer solc
Fixes #1461
2019-05-14 10:12:24 -05:00
Andre Medeiros 85cf9ac44b chore: upgrade ethereumjs-wallet
This pull-request upgrades `ethereumjs-wallet`, which has upgraded the underlying dependency on scrypt.js to 0.3.0, making scrypt an optional dependency and offering a pure JS version as a fallback.

The reasoning behind this is that scrypt is problematic to install in some systems, particularly those that don't have node-gyp setup and we have seen some weird issues when installing with elevated privileges (i.e. `sudo npm install -g scrypt`)
2019-05-12 18:20:34 -04:00
Pascal Precht 192549add1 refactor(@embark/blockchain-connector): move blockchain connector into own module 2019-05-10 16:57:23 -04:00
Pascal Precht 8dd7300e3c chore: remove process-logs-api package from embark package
This module has been moved already and is therefore a left over here.
2019-05-10 16:56:59 -04:00
Pascal Precht cae8075682 refactor(@embark/solidity): move solidity module into own package 2019-05-10 16:44:54 -04:00
Pascal Precht f868d1216d refactor(@embark/blockchain-process): introduce package for blockchain-process module 2019-05-10 16:44:43 -04:00
Jonathan Rainville f9d7a3f41b feat(@embark/test-runner): show interface contract message in tests
But only show it if the contract was in the contract config
2019-05-10 09:49:34 -04:00
Jonathan Rainville 334d3bcdc5 feat(@embar/contracts-manager): add message for interface contracts 2019-05-10 09:49:34 -04:00
Pascal Precht 84439cb6fe refactor(@embark/blockchain-listener): move blockchain listener APIs into package 2019-05-09 12:57:04 +02:00
Jonathan Rainville a22d8fc6c4 fix(test): fix accountParser test in regards to privateKey fix 2019-05-08 15:55:06 -05:00
Michael Bradley, Jr fd09488e4b fix(@embark/core): move process.on inside ProcessWrapper's constructor
This avoids mistakenly placing process event handlers on the parent process
whenever the `embark-core` package is loaded. Also, don't listen for an
`'exit'` event on `process` and then call `process.exit(0)` since the event "is
emitted after the child process ends" ([docs][docs]), i.e. it's unnecessary to
do so and in any case it's not correct to always exit with code `0`.

[docs]: https://nodejs.org/docs/latest-v10.x/api/child_process.html#child_process_event_exit
2019-05-08 15:55:06 -05:00
Michael Bradley, Jr 2eb5617443 refactor: use explicit codes with process.exit so intent is clear and errors don't exit cleanly 2019-05-08 15:55:06 -05:00
Michael Bradley, Jr 8b94419670 refactor(@embark/i18n): expose __ from embark-i18n, drop global __ 2019-05-08 11:01:16 +02:00
Jonathan Rainville fc02405db2 fix(@embark-utils/accountParser): fix privateKey accounts 2019-05-08 10:59:44 +02:00
emizzle 3dcc339e4d feat(@embark/storage): Add command `service swarm on/off`
Add support for ability to start and stop Swarm via command `service swarm on/off`.

Fix issue with swarm not starting due to missing web3 object.

`service swarm on` - starts a swarm node if not already started. Shows an error if the node is already starting or started.

`service swarm off` - kills the running swarm node as long as Embark has started the swarm process. If the swarm process was started externally, an error is shown.
2019-05-07 16:28:42 -04:00
Michael Bradley, Jr 2f2c0eefbf refactor(@cockpit/explorer): revise transactions explorer per techniques of PRs #1492, #1494
In addition to introducing improvements per #1492 and #1494, adjust the
transactions request action to allow for a `blockLimit` argument, since that
API parameter is supported by embark.

Revise `changePage` to invoke `fetchTransactions` correctly, i.e. with
arguments pertaining to a starting block number and a block limit.

These changes together fix most of the pagination problems related to exploring
transactions, i.e. badly mis-ordered results are no longer displayed.

However, a *wart* still remains related to estimation of the total number of
transactions and pages. Sometimes the calculated number of pages for the
transactions explorer doesn't match up to the actual number of transactions on
the blockchain (owing to estimation). The pagination controls and display of
transactions will temporarily behave a little strangely if one jumps ahead in
the pages, e.g. a jump from cockpit explorer overview's transactions page 1 to
page 5 for embark's demo, if an additional transaction has been added and the
explorer overview is freshly loaded. This behavior is related to the fact that
actions such as `fetchBlocksFull` and `fetchTransactions` are async without any
means to determine when all actions have completed and React re-/rendering has
settled down.

There are probably some architectural changes that could improve the situation,
but they're outside the scope of this PR and in no way easy to solve by means
of React lifecycle methods. In fact, attempts to make an improvement with
`componentDidUpdate` (and watching what happens in the debugger) revealed the
nature of the problem, as described above.
2019-05-07 10:40:27 -05:00
Michael Bradley, Jr fa2807b335 refactor(@cockpit/explorer): revise blocks explorer per techniques of PRs #1492, #1494 2019-05-07 10:39:58 -05:00
Pascal Precht 8a0c33c91e refactor(@embark/utils): move compact utility into utils package 2019-05-07 13:26:42 +02:00
Pascal Precht 1330b9fb7a refactor(@embark/i18n): introduce embark-i18n package 2019-05-07 13:05:22 +02:00
Pascal Precht 21a0f62d86 refactor(@embark/core): move IPC into core package 2019-05-07 12:51:29 +02:00
Pascal Precht 9acf256dc7
fix(@embark/blockchain_process): use correct import for ProcessWrapper 2019-05-07 10:12:37 +02:00
Pascal Precht ed13aecc25 refactor(@embark/core): move process APIs to embark-core 2019-05-07 10:06:48 +02:00
Pascal Precht daaa0e649d refactor(@embark/utils): move buildUrl and buildUrlFromConfig to utils 2019-05-07 10:06:48 +02:00
Michael Bradley, Jr 437cc3feed refactor(@embark/console-listener): move console_listener into embark-console-listener package 2019-05-06 15:37:52 -05:00
Michael Bradley, Jr 20f1a13ae6 refactor(@embark/utils): move hexToNumber into embark-utils package 2019-05-06 15:11:40 -05:00
Michael Bradley, Jr b8708f4305 build(@embark/console): include suggestions.json in files packed by npm 2019-05-06 10:42:25 -05:00
Pascal Precht 45a9fee20b refactor(@embark/code-generator): move code-generator into own package 2019-05-06 11:38:35 +02:00
Pascal Precht a8ee57a088 refactor(@embark/deployment): move deployment module into own package 2019-05-06 11:38:03 +02:00
Pascal Precht a69f619cf7 refactor(@embark/utils): move toChecksumAddress to embark-utils 2019-05-06 11:38:03 +02:00
Michael Bradley, Jr c30f742c38 fix(@embark/plugin-cmd): revise package.json in light of #1573, #1574, #1575, #1576 2019-05-03 15:34:19 -05:00
emizzle 1e4e6e4758 feat(@embark/storage): Add command `service ipfs on/off`
Add support for ability to start and stop IPFS via command `service ipfs on/off`.

Add support for `ProcessState.Errored` process state in the `ProcessManager`. This allows for processes being launched and stopped to trigger an error and the resulting process will be in an errored state. Processes in errored states can still attempt to be started and stopped.

`service ipfs on` - starts an IPFS node if not already started. Shows an error if the node is already starting or started.

`service ipfs off` - kills the running IPFS node as long as Embark has started the IPFS process. If the IPFS process was started externally, an error is shown.

return early
2019-05-03 14:52:55 -04:00
Andre Medeiros dcecad5501 chore: move plugin_cmd to a package 2019-05-03 13:30:26 -04:00
Andre Medeiros 661ce74877 chore: move console to module 2019-05-03 09:24:09 -05:00
Michael Bradley, Jr 2044ed5e9b build: bump tslint in all relevant pkgs from v5.11.0 to v5.16.0
Related to bumping the typescript package to its latest version
2019-05-03 08:53:43 -05:00
Michael Bradley, Jr ee17ab03e0 style: use comments to avoid confusion about @types/embark imports
We could use similar comments for imports related to other `@types` packages,
but the need to do it for `@types/embark` (located in
`packages/embark-typings`) seems more pressing since `import ... from "embark"`
statements in the monorepo can be so easily misunderstood.

Note that the comments, and indeed the whole lines, are automatically erased
during babel transpilation of TypeScript since TS types aren't relevant after
the `.js` files are built.
2019-05-02 20:34:22 -05:00
Michael Bradley, Jr e74e52e924 build: make package.json scripts consistently en/dis-abled 2019-05-02 20:34:01 -05:00
Michael Bradley, Jr d5c984c592 build: use babel cli's `--extensions` consistently in all packages
If a package uses only `.js` then supply `--extensions ".js"`. If a package
uses only `.ts` then supply `--extensions ".ts"`. If a package uses both, then
supply `--extensions ".js,.ts"`.

The reason for this is that adding/removing TS/JS support ought to occasion
revising a package's `package.json` file and adjusting other scripts as well,
e.g. for linting. With these changes, it won't work to simply start adding
`.ts` files in a package's `src/` directory, which should prompt the developer
to review `package.json` and make the appropriate changes, and/or other
developers may realize changes need to be made during code review.
2019-05-02 20:33:42 -05:00
Michael Bradley, Jr 142130e533 build: bump typescript in all relevant pkgs from v3.3.1 to v3.4.5
The more recent version of TypeScript works around a [problem][chalk-problem]
encountered with the chalk package's type definitions.

[chalk-problem]: https://github.com/chalk/chalk/pull/296#issuecomment-418789492
2019-05-02 20:24:02 -05:00
Michael Bradley, Jr ae8ec69dc9 fix(@embark/api): specify colors package as a dependency 2019-05-02 11:10:24 -04:00
Michael Bradley, Jr 2d2281999d fix(@embark/library-manager): specify colors package as a dependency 2019-05-02 11:10:05 -04:00
Iuri Matias a12769fd30 bugfix(@embark/embark): import colors do type string has missing properties 2019-05-02 10:02:47 -04:00
Pascal Precht 244e2e2fb1
fix(@embark/utils): expose longRunningProcessTimer properly
This seemed to have slipped through when reviewing 94c7ab3e12
2019-05-02 12:52:05 +02:00
Pascal Precht dd898f0c7a refactor(@embark/utils): move web3 dependent functions into web3Utils 2019-05-02 12:07:19 +02:00
Pascal Precht baf6f20066 refactor(@embark/test-runner): move test module into test-runner package 2019-05-02 12:07:19 +02:00
Pascal Precht 03d779ef5e refactor(@embark/utils): move transaction utils into utils package 2019-05-02 12:07:19 +02:00
Pascal Precht 7174f55c6c refactor(@embark/utils): move decodeParams and sha3 into web3Utils 2019-05-02 12:07:19 +02:00
Pascal Precht 6fbc1afbd1 refactor(@embark/utils): move accountParser into utils 2019-05-02 12:07:19 +02:00
Pascal Precht e8408ece75 refactor(@embark/utils): move web3 helper functions into web3Utils file 2019-05-02 12:07:19 +02:00
Pascal Precht 5c3f39442b refactor(@embark/utils): move getHexBalanceFromString to utils package 2019-05-02 12:07:19 +02:00
Pascal Precht e3aed6a423 refactor(@embark/utils): move getWeiBalanceFromString and contractsConfig.prepare into utils
This also renames `prepare` to `prepareContractsConfig` to make it less ambiguous.
2019-05-02 12:07:19 +02:00
Pascal Precht 93568ad911 refactor(@embark/utils): move unitRegex into utils package 2019-05-02 12:07:19 +02:00
Pascal Precht b9fe741585 refactor(@embark/utils): move timer and deconstructUrl helper functions 2019-05-02 12:07:19 +02:00
Andre Medeiros a75fa7941f fix: parity origins 2019-05-02 10:43:56 +02:00
Pascal Precht 94c7ab3e12 refactor(@embark/library_manager): move library manager into own package 2019-05-02 10:42:49 +02:00
Pascal Precht 6308c82993 refactor(@embark/embark-utils): move last fn into utils package 2019-05-02 10:42:49 +02:00
Michael Bradley, Jr fbfe376101 fix(@embark/api): import colors pkg so type string has .stripColors 2019-05-01 12:06:16 -05:00
Iuri Matias 086b3a3877 refactor (@embark/embark-api): move embark-api to its own module 2019-05-01 07:24:19 -04:00
Michael Bradley, Jr 436cfcbca0 refactor(@embark/contracts-manager): move contracts_manager into embark-contracts-manager package 2019-04-30 13:03:48 -05:00
Michael Bradley, Jr 65f3a270c0 refactor(@embark/utils): move proposeAlternative, toposort into embark-utils package 2019-04-30 12:39:33 -05:00
Michael Bradley, Jr 60ff097406 refactor(@embark/core): create embark-core package, move constants into embark-core 2019-04-30 12:11:25 -05:00
Jonathan Rainville d386bffda9 refactor(@embark/authenticator): move authenticator to a package 2019-04-30 12:06:54 -04:00
Jonathan Rainville bcd006a1cf refactor(@embark/utils): move copyToCliboard to embark-utils 2019-04-30 12:06:54 -04:00
Michael Bradley, Jr ad01d1402c test: collect code coverage in the root of the monorepo
Implement scripts to collect coverage reports (JSON format) from all packages
in the monorepo that generate such reports. Reports are copied to
`<root>/.nyc_output/coverage-[pkg-dir-name].json`.

Implement scripts to generate a combined html report in `<root>/coverage`.

Adjust root `reset` and `clean` scripts to delete `<root>/.nyc_output` and
`<root>/coverage`.

Implement a script in `<root>/package.json` to generate a `text-lcov` report
and upload it to coveralls from CI builds. Remove coveralls from
`packages/embark`.

Supply `packages/embark` with an nyc configuration in its `package.json` and
have its `"test":` script generate both `json` and `html` reports.

Use nyc with `embarkjs`'s test suite: supply an nyc configuration in its
`package.json` and have its `"test":` script generate both `json` and `html`
reports.

Adjust `embarkjs`'s tests for more accurate coverage reporting.
2019-04-30 12:04:01 -04:00
emizzle 0c394fea29 feat(@embark/webserver): Add support for `service webserver on/off`
Add support for `service webserver on/off` commands.

Deprecate commands `webserver start/stop` in favor of `service webserver on/off`.

Handles passing through of arguments to the function executed after process launch.

`service webserver on` - Enables the webserver serving the DApp. Shows an error if the webserver is already starting or started.

`service webserver off` - Disables the webserver serving the DApp. Shows an error if the webserver is already stopping or stopped.

`webserver start` - This command has been deprecated in favor of `service webserver on` and will be removed in future versions.

`webserver stop` - This command has been deprecated in favor of `service webserver off` and will be removed in future versions.
2019-04-30 12:02:02 -04:00
Jonathan Rainville 7495095d49 refactor(@embark/ens): move ens module to embark-ens package 2019-04-30 16:31:07 +02:00
Jonathan Rainville 8506778384 refactor(@embark/utils): move addressUtils to embark-utils 2019-04-30 16:31:07 +02:00
Jonathan Rainville 7eb85f0fbe fix(@embark/specialconfig): fix undefined contract name in onDeploy 2019-04-30 08:37:46 -04:00
Michael Bradley, Jr 33ee6d8d35 test: disable test script for packages without any tests
Several `embarkjs-*` packages specify a `"test":` script in their respective
`package.json` files but lack any tests, causing `yarn test` in the root of the
monorepo to fail. For now, disable those scripts.
2019-04-29 09:04:13 -05:00
Pascal Precht a874c38d72 refactor(@embark/embark-logger): move logger into own package 2019-04-29 13:00:10 +02:00
Pascal Precht 69ced6d894 refactor(@embark/embark-scaffolding): introduce new embark-scaffolding package 2019-04-29 12:06:59 +02:00
Pascal Precht c9e335ea21 refactor(@embark/embark-utils): move runCmd utility to utils package 2019-04-29 12:06:59 +02:00
Jonathan Rainville 70a528c296 refactor: move process-logs-api to its own packages 2019-04-26 12:37:19 -04:00
Pascal Precht e1f80eb1be refactor: move watcher into embark-watcher package 2019-04-26 16:45:52 +02:00
Jonathan Rainville 83b0a68eef refactor(@embark-utils): move logHandler and normalizeInput in utils 2019-04-26 16:38:19 +02:00
Jonathan Rainville 483f692e0b refactor(@embark-utils): move escapHtml to embark-utils 2019-04-26 16:38:19 +02:00
Pascal Precht 2464fb69af
Revert "refactor: move env module into own embark-env package"
This reverts commit 4f8734f19b.
2019-04-25 17:35:40 +02:00
Jonathan Rainville d5c3a9cf1d fix(@embark/console): fix cockpit console if using console command 2019-04-25 10:58:00 -04:00
Pascal Precht 4f8734f19b refactor: move env module into own embark-env package 2019-04-25 16:29:04 +02:00
Pascal Precht 0260154804 refactor(@embark/utils): move sha512 util into embark-utils package 2019-04-25 15:26:56 +02:00
Jonathan Rainville fa0220c950 refactor(@embark/embark-trasaction-tracker): move tx tracker to pck 2019-04-24 18:39:26 -04:00
Andre Medeiros c51ec5029b fix: dashboard auto complete 2019-04-24 18:38:51 -04:00
Andre Medeiros ea7ae22501 fix: improve wording on contract constructor failing 2019-04-24 18:38:15 -04:00
emizzle 7a76516534 feat(@embark/blockchain): Restart Ethereum via command
Add support for `service blockchain on/off` in the console.

Add service on/off command for each process started by, ie `service blockchain on/off` and `service whisper on/off`.

`service blockchain off` - Kills the blockchain process, stops the web3 provider, and shuts down the proxy (if used). In the case of `embark blockchain`, the entire process is exited.

`service blockchain on` - Starts the blockchain process *as a child process of the main embark process* then starts the web3 provider. This happens regardless of whether or not it was initially started with `embark blockchain` (see known issues).

## Known issues
1. If the blockchain process was started with `embark blockchain`, and then the blockchain process is killed with the `service blockchain off` command, when the blockchain process is restarted with `service blockchain on`, it will be restarted as a child process of the main embark process. It may be possible to allow for the blockchain process to be restarted in the same process it was originally started in, however this will take more development effort and can be handled in a different PR.
2. Parity has not been tested as it is currently not working in the master branch.
3. This PR adds a generic registration of commands for each process, ie `service whisper on/off`, however the only supported command is the `service blockchain on/off` command. Further support for other commands can be handled in separate PRs.
2019-04-24 18:37:15 -04:00
Pascal Precht bf0f4392a4 fix(@embark/deployment): only log error when error exists
This was a regression introduced in 72fc80df53
2019-04-23 12:18:34 +02:00
Andre Medeiros 740196684c fix: update solidity-parser-antlr to allow the use of the payable keyword in contracts 2019-04-22 11:44:32 -04:00
Andre Medeiros 0f4e554b22 fix: make coverage more forgiving 2019-04-22 11:44:32 -04:00
Jonathan Rainville 6b16f668e0 fix(embark/generator): add empty line to embarkjs 2019-04-19 12:34:26 -04:00
Jonathan Rainville 1ae0ab6b1f fix(embark/generator): add back environment to EmbarkJS 2019-04-17 17:59:27 -04:00
Michael Bradley, Jr 579328a9f4 chore(release): 4.1.0-beta.0 2019-04-17 11:11:28 -05:00
Iuri Matias 626aa5daf1 [CHERRY PICKED] chore(release): 4.0.2 2019-04-17 10:30:30 -05:00
Jonathan Rainville ae88cc612d feat(@embark/generator): transpile embarkjs.js to be used by node 2019-04-17 10:30:18 -05:00
Iuri Matias 79d96c3b4c refactor (@embark/embark-utils): move recursiveMerge to embark-utils 2019-04-17 10:30:04 -05:00
Pascal Precht 42aebb92fd fix(@embark/deployment): ensure logger is available in all hooks 2019-04-17 11:37:09 +02:00
Pascal Precht 72fc80df53 fix(@embark/deployment): ensure error messages emitted are logged
Errors emitted as part of the `deployAll()` routine got swallowed by
Embark, leaving users in the unknown when the deployment process
"froze".

This commit ensures errors emitted are now logged, making it obvious
when something went wrong.
2019-04-17 11:37:09 +02:00
Pascal Precht b8357b77bf feat(@embark/embark-reset): allow users to specify files to be removed in reset
This commit introduces a feature where users can specify which files should be removed
as part of Embark's `reset` command.

This is done by specifying the `options.reset` section in a project's `embark.json`.
The possible options are `defaults: bool` and `files: Array<String>`:

```
// embark.json
{
  ...
  "options": {
    "reset": {
      "defaults": true,
      "files": ["some.file", "some/other.file"]
    }
  }
}
```

`defaults` tells Embark whether or not it should remove the default files that are
defined by the `reset` command. Setting it to `false` will prevent Embark from
removing any of these (mostly files located inside `.embark`).

This gives users fine control as they now can re-add subsets or those file paths
in the `files` property.

If `options.reset` doesn't exist Embark will do the default behaviour, which is
is simply resetting/removing the files it has always removed.

It now also honors `generationDir` and `buildDir` as part of the defaults.
2019-04-17 11:23:13 +02:00
Jonathan Rainville a4f68cb0ee fix(embark/simulator): fix account object empty when no mnemonic 2019-04-16 17:30:38 -04:00
Jonathan Rainville bfebb3ce41 fix(embark/compiler): fix errors and bugs with solc 0.4.18 2019-04-16 14:25:59 -04:00
Michael Bradley, Jr eb9de680d3 fix(@cockpit/services): send only process names to embark-api-client
`webSocketProcess` function in `embark-api-client` expects only a process name,
but cockpit was calling it with name-strings prepended with `/process-logs/`
resulting in bad URLs. Revise cockpit's `services/api` module to call
`webSocketProcess` with process names only.
2019-04-16 14:25:35 -04:00
Michael Bradley, Jr a39c2c82d7 refactor(@embark/api): in dev use cockpit redirect instead of proxy
Embark API server's development proxy from port 55555 to 3000 was attempting to
inappropriately forward an `/embark-api/` endpoint for the blockchain process
logs to Create React App's development server. Why it was only happening for
the one endpoint is not known but probably has to do with timing around
registration of the API server's express routes.

The problem can be fixed with a one-line `filter:` function in the options for
`express-http-proxy`. However, it was realized that to fix an unrelated
problem, whereby the proxy doesn't forward websockets to CRA such that hot
reload doesn't work when accessing `embark-ui` in development on port 55555, a
switch to `http-proxy-middleware` would be required. That was quickly
attempted (easy switch) but there are outstanding [difficulties][bug] with
`webpack-dev-server` and `node-http-proxy` that cause CRA to crash.

Switch strategies and refactor the API module to serve a page on port 55555 (in
development only) that alerts the developer `embark-ui` should be accessed on
port 3000. The page redirects (client-side) after 10 seconds, with URL query
params and/or hash preserved. A future version could instead do client-side
polling of port 3000 with `fetch` and then redirect only once it's
available. The reason for not redirecting immediately is that the intermediate
page makes it more obvious what needs to be done, e.g. CRA dev server may need
to be started with `yarn start`.

[bug]: https://github.com/webpack/webpack-dev-server/issues/1642
2019-04-16 14:25:35 -04:00
Pascal Precht 3988fb4c8a uiux(@embark/embark-reset): output files that reset command removes 2019-04-12 14:59:48 -04:00
Pascal Precht 1aeb6fd83b feat(@embark/embark-specialconfigs): introduce new beforeDeploy hooks
This commit enables new `beforeDeploy` deployment hooks. With this change
it's possible to add `beforeDeploy` to either `contracts: {}` within the contracts
configuration, or an individual contract.

For example:

```
contracts: {
  SimpleStorage: {
    beforeDeploy: async (context) => {

    }
  }
}
```

Runs the hook before `SimpleStorage` will be deployed. Whereas

```
contracts: {
  ...
  beforeDeploy: async () => {

  }
}

will be executed before *all* Smart Contracts will be deployed.
2019-04-12 14:54:16 -04:00
Pascal Precht f0aed55319 uiux: improve logging of deployment hooks by adding logger dependency
This will allow users to generated deploy hook specific output using the supplied `logger` within deployment hooks.

The logger will generate an output a la:

```
ContractName > deploymentHook > Output
```

and

```
afterDeploy > Output
```

respectively.

E.g. an `onDeploy` hook config like this:

```
contracts: {
  SimpleStorage: {
    fromIndex: 0,
    args: [100],
    onDeploy: (context) => {
      context.logger.log('Hello from on deploy');
    }
  }
}
```

Will output:

```
SimpleStorage > onDeploy > Hello from on deploy
```
2019-04-12 14:51:00 -04:00
Michael Bradley 85c3bb6319 Update packages/embark/package.json
Co-Authored-By: iurimatias <iuri.matias@gmail.com>
2019-04-12 14:48:33 -04:00
emizzle 447f6f8973 fix(@embark/pipeline): Support embarkjs-whisper with external pipeline
Support embarkjs-whisper with external pipeline.

`embarkjs-whisper` is required by code that is through the VM, and therefore the `embark` package needs to be able to resolve `embarkjs-whisper`.
2019-04-12 14:48:33 -04:00
emizzle 36be50e5dc feat(@embark/proxy): Add dev tx to proxy when request fails to get response
Create a dev tx (a 0-value tx that is sent from the —dev account to itself) when a request goes through the proxy, but does not get a response after 5 seconds.

Log requests to disk (when log level is trace - enabled with the embark option `—loglevel trace`) that have not received a response and for which a dev tx has been sent.

Add logging to a `proxyLogs.json` log file as well, so that this information can be gleaned later for debugging purposes.

This particular PR Is meant to workaround an issue with running geth with the `—dev` option, as some transactions appear to get stuck, which then builds up further txs in a queue. Only when another tx is sent is the queue then purged as expected.

The remaining issue is that even though a dev tx is sent to relieve the queued txs, the originally offending tx still never receives a response from the node. This was the motivation behind creating a proxy log, so that a dev can inspect the txs that are essentially dropped.

**NOTE:** the base branch of this branch is `refactor/devfunds`. Please merge that branch first.
2019-04-12 14:48:07 -04:00
emizzle 0c98af7977 refactor(@embark/blockchain_process): Refactor dev_funds
Change name “DevFunds” to “DevTxs”.

Remove unused functions in dev_funds (create accounts, unlock accounts, fund accounts).

Add console command `sendtx` to send a one-off dev transaction.

Modify the dev tx to send a 0-value tx to itself (ie the `web3.eth.defaultAccount` which is the `—dev` account).

Deprecate the command `regularTxs on/off` in favour of `devtxs on/off` (notice the casing).

Strip regulartxs from cockpit and modify the browser warning to instruct users to run a console command.
2019-04-12 14:48:07 -04:00
Iuri Matias 4d2ffb9f28 [CHERRY PICKED] chore(release): 4.0.1
This commit has been originally cherry-picked from d0d89fc5ae and
slightly modified to update all packages, as meanwhile, new packages have been added to `master`.

The reason this commit is cherry-picked from `4.0.x` branch is because
it wasn't created from `master`.

Purpose is mainly to update `CHANGELOG` and get the package versions in sync again.
2019-04-10 12:18:35 +02:00
Iuri Matias 04f187cfb9 refactor (@embark/embark-utils): move soliditySha3 to embark-utils 2019-04-09 15:16:11 -04:00
Iuri Matias 7511e3c113 refactor (@embark/embark-utils): move hashTo32ByteHexStrin to embark-utils 2019-04-09 10:40:30 -04:00
Pascal Precht 47ba899c85 chore(@embark/embark): update handlebars dependency
Fixes: #1339
2019-04-09 10:45:16 +02:00
Andre Medeiros d5eff731f2 feature: generate lcov report on contract coverage 2019-04-08 13:39:24 -05:00
Iuri Matias f6c14d9f22 feature(@embark/embarkjs-swarm): make embarkjs swarm plugin to its own module 2019-04-05 16:28:42 -04:00
Andre Medeiros 776cb140d2 feature: stop debugging button 2019-04-04 14:47:26 -04:00
Iuri Matias c87284f72a feature(@embark/embarkjs-ipfs: make embarkjs ipfs plugin a module on its own 2019-04-04 14:45:28 -04:00
Michael Bradley, Jr d71352b781 feat(@cockpit): implement pagination for contracts
Display five contracts per page in the dashboard. Display ten contracts per
page in the contracts explorer and deployment page.

Sort contracts by name. In the future we can implement an option to sort by
block number and index within a block by calculating and including that
information as part of the server-side api response (based on a contract's
txhash).

Remove unnecessary contract filtering in the components since the containers
take care of it.

Make use of `listenToContracts` / `stopContracts` in DeploymentContainer.
2019-04-04 13:14:53 -05:00
Iuri Matias 07b2ecc448 feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own
feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own

feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own
2019-04-04 13:29:55 -04:00
Iuri Matias b792b3fc78 refactor(@embark/embark-webserver): move webserver module 2019-04-04 13:09:37 -04:00
Andre Medeiros 542809cd9f fix: run geth and parity in archival mode for dev nodes
This will only be enabled for test networks in order to be able to debug
transactions that have occurred in the past.
2019-04-04 13:02:34 -04:00