Commit Graph

949 Commits

Author SHA1 Message Date
Pascal Precht 0c9b917371 fix(@embark/cmd_controller): don't try to load pipeline module group in build cmd
We've made the `basic-pipeline` optional in 948956ab1f but are still
trying to load the pipeline module group in inside the `build` cmd.
This breaks at runtime as no such module group exists anymore.
2020-03-23 17:01:35 +01:00
Jonathan Rainville 897aa3f839 fix(@embark-ganache): fix ganache having different node accounts
When using accounts, yes those account are always the same, but
ganache still creates it's own accounts, with a random mnemonic.
So Plugins that rely on the node accounts were crashing on second
run, because the node accounts were no longer the same.
2020-03-23 15:21:35 +01:00
Jonathan Rainville fde1eeb3a7 fix(@embark/blockchain): fix blockchain plugins' use of async whilst 2020-03-23 15:21:35 +01:00
Pascal Precht 031ebe8bb2 fix(plugins/basic-pipeline): ensure correct webpack config is loaded
When making `basic-pipeline` in 948956ab1f we've introduced a regression
and with this fix, a behaviour change as well::

1. The `webpackConfigName` passed to `Engine` is completely ignored, caused it to be
  `undefined` down the line when the plugin tries to do its work (we essentially broke bundling)
2. With that configuration being ignored, we need a new way to make this configurable.
  Since `basic-pipeline` is now a true plugin, it makes sense for itself to have configuration
  options for that, while still providing decent defaults.
3. The trickly thing is that `webpackConfigName` used to have different values per command.
  For example `build` used to use `production` while `run` used `development` as config.
4. This commit introduces new configuration options for `basic-pipeline` that lets users configure
the `webpackConfigName` per environment:

```json
// embark.json
{
  ...
  "plugins": {
    "embark-basic-pipeline": {
      "development": {
        webpackConfigName: "development"
      },
      "production": {
        webpackConfigName: "production"
      }
    }
  }
}
```
^ These are also the defaults. So not providing this configuration will make
Embark imply it.

Notice that this does not account for the "different config per command" case.
This means `embark build` will also use `development` by default.

Prior to this commit and the one mentioned above, the `webpackConfigName` was configurable
through the CMD `--pipeline` option. Since this a) no longer a built-in feature
and b) ignored at the moment anyways, I've removed the `--pipeline` options
from all commands as well.

BREAKING CHANGES

The commands `embark eject-webpack` and `embark eject-build-config` are no longer available.
The `--pipeline` option has been removed from all commands that used to support it.
2020-03-23 15:19:58 +01:00
emizzle a454ae8b11 feat(@embark/core): Support minimum truffle projects
When taking a bare-minimum truffle project, created from the [`metacoin` truffle box](https://github.com/truffle-box/metacoin-box), there were only two steps that needed to happen as a prerequisite:
1. First, run `embark init`, creating a default `embark.json`
2. Second, run `npm init`, creating a default `package.json`.

Trying to run `embark run` before those prequisites would error with appropriate directions in the console, guiding the user to run those steps explicitly.

After running these two steps, Embark would hang waiting for the namesystem plugin to come up.

Changing the default namesystem config to disabled allows Embark to start up successfully without hanging.

The rationale behind this decision is that if `embark.json` doesn’t exist, then we cannot expect that the namesystem plugin will be installed in the project either, and thefore its default value should be disabled.
2020-03-23 13:20:34 +01:00
EmbarkBot 7f52634331 chore(prerelease): 5.3.0-nightly.12 2020-03-21 00:15:48 +00:00
Pascal Precht c9a35faa1e test(stack/storage): updates dependencies and add missing tests 2020-03-20 17:24:17 +01:00
emizzle 471a33a331 chore(@embark/blockchain): Add unit tests to blockchain stack component
fix(@embark/blockchain): Add callback to `blockchain:node:register` and `blockchain:client:register`

Add unit tests for the stack/blockchain and update supporting API documentation in the Wiki.

Add injectables `Web3` and `warnIfPackageNotDefinedLocally` to stack/blockchain so that those functions can be tested properly.

Update stack/blockchain dependencies in `package.json`.
2020-03-20 14:40:14 +01:00
emizzle 56d5b45bbb chore(@embark/testing): Add testables to embark test objects
1. Add IPC mock and assertions.
2. Add console command registration assertion and console command mock.
3. Add event emission assertions
2020-03-20 14:40:14 +01:00
EmbarkBot d5e0897231 chore(prerelease): 5.3.0-nightly.11 2020-03-20 00:17:02 +00:00
Michael Bradley, Jr a5f0a1254e test(@embark/snark): re-active test script but skip tests that need additional refactoring 2020-03-19 16:13:17 -05:00
Michael Bradley, Jr eb33aa16ee build: activate linter in ci/qa for packages that were missing it 2020-03-19 16:13:17 -05:00
Michael Bradley, Jr ece942b3a8 refactor(@embarkjs/snark): use same "main" pattern as other packages 2020-03-19 16:13:17 -05:00
Michael Bradley, Jr 11b53970fb chore: update intra-monorepo dependencies that were out of sync with current prerelease versions 2020-03-19 16:13:17 -05:00
emizzle c1129dc15f feat(@embark/snarks): Allow embark-snark to be used in the dapp
`embark-snark` has been updated such that it can be used, in conjunction with `embarkjs-snark`, in the console, and in the DApp.

This could, for example, be used to build a dapp like https://tornado.cash.

Please see the README for usage instructions.

Updated tests were excluded in this PR as a consideration for time already spent on getting this library completed. Tests should be updated in a future PR.
2020-03-18 08:50:48 +01:00
EmbarkBot 444b9eae87 chore(prerelease): 5.3.0-nightly.10 2020-03-14 00:16:39 +00:00
Iuri Matias 948956ab1f chore: make basic-pipeline an optional plugin
chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

chore: make basic-pipeline an optional plugin

fixes

address code review

fix linter issue

fix missing param

fix binding

remove pipeline warning

remove unused var
2020-03-13 13:36:46 -04:00
EmbarkBot db8282c52c chore(prerelease): 5.3.0-nightly.9 2020-03-13 00:16:27 +00:00
Iuri Matias ee1eb4ed96 feat: support selecting what library to generate artifacts
feat: support selecting what library to generate artifacts

feat: support selecting what library to generate artifacts

feat: support selecting what library to generate artifacts

feat: support selecting what library to generate artifacts

working web3 artifacts

remove unnecessary request

address code review issues

fixes

update tests

WIP: add index.js in packages/plugins/embarkjs/

This is a pattern established in #2285

remove comment

fix some code review issues
2020-03-12 12:23:49 -04:00
EmbarkBot db9e959169 chore(prerelease): 5.3.0-nightly.8 2020-03-11 00:18:13 +00:00
Jonathan Rainville 53dc751981 fix(@embark/ganache): make embark blockchain exit when using Ganache 2020-03-10 09:55:14 -04:00
Pascal Precht c624582d12 feat(stack/blockchain): expose networkId in generated artifact
Closes #2220
2020-03-10 09:54:26 -04:00
EmbarkBot 34f4b0cf1a chore(prerelease): 5.3.0-nightly.7 2020-03-10 00:18:09 +00:00
dependabot-preview[bot] 42a052ec21 build(deps): bump ws from 7.1.2 to 7.2.2
Bumps [ws](https://github.com/websockets/ws) from 7.1.2 to 7.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.1.2...7.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 09:32:44 -05:00
dependabot-preview[bot] e0f9d611da build(deps-dev): bump monaco-editor from 0.19.3 to 0.20.0
Bumps [monaco-editor](https://github.com/Microsoft/monaco-editor) from 0.19.3 to 0.20.0.
- [Release notes](https://github.com/Microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Microsoft/monaco-editor/compare/v0.19.3...v0.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 09:02:00 -05:00
dependabot-preview[bot] dc0c0ee886 build(deps): bump @babel/preset-env from 7.7.4 to 7.8.7
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.8.7.
- [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.7.4...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:33:31 -05:00
EmbarkBot 7287eda651 chore(prerelease): 5.3.0-nightly.6 2020-03-07 00:14:47 +00:00
Michael Bradley, Jr ac7bdb17bd fix(@cockpit/utilities): `signaturePending` prop should be type bool in component SignAndVerify 2020-03-06 18:01:16 -06:00
dependabot-preview[bot] d98edd5409 build(deps): bump viz.js from 1.8.2 to 2.1.2
Bumps [viz.js](https://github.com/mdaines/viz.js) from 1.8.2 to 2.1.2.
- [Release notes](https://github.com/mdaines/viz.js/releases)
- [Commits](https://github.com/mdaines/viz.js/compare/v1.8.2...v2.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-06 16:14:20 -06:00
dependabot-preview[bot] 1a4eaabfc7 build(deps): bump async-es from 2.6.1 to 3.2.0
Bumps [async-es](https://github.com/caolan/async) from 2.6.1 to 3.2.0.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/master/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.1...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-06 14:04:21 -06:00
dependabot-preview[bot] 4da12f765d build(deps): bump source-map-support from 0.5.13 to 0.5.16
Bumps [source-map-support](https://github.com/evanw/node-source-map-support) from 0.5.13 to 0.5.16.
- [Release notes](https://github.com/evanw/node-source-map-support/releases)
- [Commits](https://github.com/evanw/node-source-map-support/compare/v0.5.13...v0.5.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-06 12:53:10 -06:00
dependabot-preview[bot] afa1d14fa0 build(deps): bump async from 2.6.1 to 3.2.0
Bumps [async](https://github.com/caolan/async) from 2.6.1 to 3.2.0.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/master/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.1...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-06 12:51:09 -06:00
Michael Bradley, Jr e0f7913a02 feat: add support for `embark.config.js`
This commit introduces support for using `embark.config.js` to calculate the
embark configuration object that is otherwise provided via `embark.json`.

If an `embark.config.js` file is present, it will be used over the
`embark.json` file.  The `embark.config.js` module needs to export either an
object or a function that can be asynchronous and has to return or resolve with
an embark configuration object:

```js
// embark.config.js

module.exports = async function () {
  let config = ...; // do lazy calculation of `embarkConfig`;
  return config;
}
```
2020-03-06 09:45:43 -06:00
EmbarkBot b19a58b007 chore(prerelease): 5.3.0-nightly.5 2020-03-06 00:15:50 +00:00
Jonathan Rainville 6fb2da31c3 fix(@embark/cmd-controller): add back embark-ganache registrations 2020-03-05 13:15:50 -06:00
dependabot-preview[bot] 159defb579 build(deps-dev): bump react-scripts from 3.2.0 to 3.4.0
Bumps [react-scripts](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-scripts) from 3.2.0 to 3.4.0.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-scripts@3.4.0/packages/react-scripts)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-05 12:59:09 -06:00
dependabot-preview[bot] dcaa2626d9 build(deps-dev): bump eslint-plugin-jest from 22.5.1 to 23.8.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.5.1 to 23.8.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.5.1...v23.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-05 11:25:18 -06:00
dependabot-preview[bot] 7b471074e3 build(deps): bump @types/i18n from 0.8.3 to 0.8.6
Bumps [@types/i18n](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/i18n) from 0.8.3 to 0.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/i18n)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-05 09:29:54 -06:00
Jonathan Rainville b29998e1ec fix(@embark/rpc-manager): fix eth_signTypedData method + tests
The signTypedData rpc method was broken, because it didn't check for
the node accounts, meaning that if you wanted to sign with a node
account that was unlocked, like in the tests, it would throw
2020-03-05 14:12:07 +11:00
Jonathan Rainville 67581ce482 feat(@embark/test-runner): make evmMethod globally available + docs 2020-03-05 14:12:07 +11:00
emizzle 3b753e856c refactor(@embark/rpc-manager): Simplify RPC modifications
Managing account details inside of the RPC Manager became a bit convulted and difficult to follow due to any web3 requests inside of an `RpcModifier` communicating over the proxy and therefore to other `RpcModifier`’s or itself. It also created cases where node accounts were duplicated by way of running the `eth_accounts` modifier multiple times (the first time getting accounts from the node and subsequent times getting accounts from the modified `eth_accounts` response.

This has been simplified by having the entry point of the `rpc-manager` (`index.js`) talk directly to the node via `web3`. This allowed account/nodeAccount management to also be handled by the entry point, removing the need for each individual `RpcModifier` from having to handle these account details. The result is a much more simplified and and much easier to maintain code for RPC Manager.

The cases for which accounts can be modified (via `personal_newAccount` RPC call, and via test configuration change) are now handled in one place (the entry point) and propagated to the each `RpcModifier`.

Add `blockchain:started` command to request when the blockchain has been started. In this case, this is needed so that we know when we can create a direct connection to the node, instead of the proxy (as is the case in almost all other modules).

Extend action timeout when in debug mode.

1. These changs have made the `RpcModifier` base class essentially useless, however, it has been kept in place because it will be used for future DRY improvements to the `rpc-manager`.
2. These changes have been tested with the following DApps:
- Demo
- Test DApp
- Contracts test DApp
- Teller
2020-03-05 14:12:07 +11:00
EmbarkBot 838d421eac chore(prerelease): 5.3.0-nightly.4 2020-03-05 00:15:25 +00:00
dependabot-preview[bot] efb5b06ff5 build(deps-dev): bump qs from 6.9.0 to 6.9.1
Bumps [qs](https://github.com/ljharb/qs) from 6.9.0 to 6.9.1.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.9.0...v6.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-04 13:59:08 -06:00
dependabot-preview[bot] 97596e6835 build(deps): bump @types/body-parser from 1.17.1 to 1.19.0
Bumps [@types/body-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/body-parser) from 1.17.1 to 1.19.0.
- [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>
2020-03-04 13:48:44 -06:00
dependabot-preview[bot] d6fb5ebb19 build(deps): bump @types/semver from 5.5.0 to 7.1.0
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 5.5.0 to 7.1.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-04 12:25:59 -06:00
dependabot-preview[bot] cb8ece8db5 build(deps): bump @babel/runtime-corejs3 from 7.7.4 to 7.8.4
Bumps [@babel/runtime-corejs3](https://github.com/babel/babel) from 7.7.4 to 7.8.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.7.4...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-04 12:05:18 -06:00
dependabot-preview[bot] 5967624bbb build(deps-dev): bump ansi-to-html from 0.6.11 to 0.6.14
Bumps [ansi-to-html](https://github.com/rburns/ansi-to-html) from 0.6.11 to 0.6.14.
- [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>
2020-03-03 20:07:27 -06:00
dependabot-preview[bot] 31d53db5f3 build(deps): bump mocha from 6.2.2 to 7.1.0
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.1.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v6.2.2...v7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-03 19:49:08 -06:00
EmbarkBot a7b8f0d141 chore(prerelease): 5.3.0-nightly.3 2020-03-04 00:15:48 +00:00
Pascal Precht a4a0e9dc33 feat(plugins/specialconfigs): adds support for Smart Contract args as functions
This commit introduces a new feature that enables users to calculate Smart Contract
constructor arguments lazily using an (async) function. Similar to normal Smart Contract
configurations, the return or resolved value from that function has to be either a list
of arguments in the order as they are needed for the constructor, or as an object with
named members that match the arguments individually.

```
...
development: {
  deploy: {
    SimpleStorage: {
      args: async ({ contracts, web3, logger}) => {
        // do something with `contracts` and `web3` to determine
        // arguments
        let someValue = await ...;
        return [someValue];

        // or
        return {
          initialValue: someValue
        };
      }
    }
  }
}
...
```

Closes #2270
2020-03-03 10:14:58 +01:00