Commit Graph

6258 Commits

Author SHA1 Message Date
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
EmbarkBot 8de6cf9fe0 chore(prerelease): 5.3.0-nightly.2 2020-03-03 00:14:47 +00:00
dependabot-preview[bot] ead92bd90f build(deps): bump @babel/core from 7.7.4 to 7.8.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.4 to 7.8.6.
- [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.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 14:42:32 -06:00
dependabot-preview[bot] 19a97693db build(deps-dev): bump react-fontawesome from 1.6.1 to 1.7.1
Bumps [react-fontawesome](https://github.com/danawoodman/react-fontawesome) from 1.6.1 to 1.7.1.
- [Release notes](https://github.com/danawoodman/react-fontawesome/releases)
- [Changelog](https://github.com/danawoodman/react-fontawesome/blob/master/changelog.md)
- [Commits](https://github.com/danawoodman/react-fontawesome/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 14:06:09 -06:00
Michael Bradley, Jr 65f25d6536 build(deps-dev): bump all @storybook/* packages from 5.3.9 to 5.3.14 2020-03-02 13:51:10 -06:00
dependabot-preview[bot] 2e24ad6940 build(deps-dev): bump @storybook/addon-actions from 5.3.9 to 5.3.14
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 5.3.9 to 5.3.14.
- [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.3.14/addons/actions)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 13:51:10 -06:00
dependabot-preview[bot] c918c9bbf7 build(deps): bump style-loader from 1.0.0 to 1.1.3
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 1.0.0 to 1.1.3.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v1.0.0...v1.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 13:37:42 -06:00
dependabot-preview[bot] 6b2616ebbf build(deps): bump uuid from 3.4.0 to 7.0.1 in /site
Bumps [uuid](https://github.com/uuidjs/uuid) from 3.4.0 to 7.0.1.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v3.4.0...v7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 13:06:23 -06:00
EmbarkBot 719faeebdd chore(prerelease): 5.3.0-nightly.1 2020-02-29 00:14:15 +00:00
Jonathan Rainville 738ff8e41d feat(@cmd): add very basic embark init to add an embark.json file 2020-02-28 18:18:39 -05:00
Jonathan Rainville 382a0b523d feat(@embark/cmd): enable using engine with no embark.json
And show a message to run embark init if there is no embark.json
2020-02-28 18:18:39 -05:00
Iuri Matias db10064dd6 feat: remove optional plugins from coming as default
feat(@embark/utils): add method to verify if a plugin is installed & configured

feature(@embark/utils): add method to verify if a plugin is installed & configured

feature: warn about packages that will be independent plugins and are not configured

chore: update templates to specify plugins

refactor: add to plugin api params so that blockchain plugins no longer need to be passed options

address changes in code review

remove unneded space

Update packages/core/utils/src/index.ts

Co-Authored-By: Jonathan Rainville <rainville.jonathan@gmail.com>

Update packages/core/utils/src/index.ts

Co-Authored-By: Michael Bradley <michaelsbradleyjr@gmail.com>

fix linting issue

add missing import

remove optional plugins from coming as default

Revert "chore: update hooks examples to destructure dependencies object"

This reverts commit 448eab724b.

remove trailing comma

fix linting issue

include tsconfig
2020-02-27 20:31:29 -05:00
EmbarkBot 1675019f44 chore(prerelease): 5.3.0-nightly.0 2020-02-27 00:13:54 +00:00
Michael Bradley, Jr cc5068b134 build(deps-dev): remove unneeded eslint-plugin-import in packages/cockpit/ui/package.json 2020-02-26 17:32:34 -06:00
dependabot-preview[bot] b116e95a4e build(deps-dev): bump eslint-plugin-import from 2.18.2 to 2.20.1
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.2 to 2.20.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.2...v2.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-26 17:32:34 -06:00
Iuri Matias 5e1ecdc6ea chore: update package versions 2020-02-26 18:00:35 -05:00
Jonathan Rainville e389cccf09 fix(@embark/reporter): show stack trace in the reporter on errors 2020-02-26 18:00:35 -05:00
Jonathan Rainville c07ac55d70 fix(@embark/mocha-tests): change `self` to `this` in mocha-tests 2020-02-26 18:00:35 -05:00
Jonathan Rainville e65c4d26e0 feat(@embark/test-app): add Teller contracts and test as a new test dapp 2020-02-26 18:00:35 -05:00
emizzle 74e2935846 fix(@embark/profiler): Fix profile output and update messaging
The profiler was not formatted correctly in the console as `util.inspect` was being applied to the ASCII table before being output to the console REPL.

In addition, functions containing solidity assertions (require, revert, assert) that cause the function to fail when estimating gas would print an error to embark’s console log, and would show nothing as their gas estimate in the table.

Do not `util.inspect` command output if the result is a string. For API commands being run, allow the command to specify whether or not the output of the command should be HTML escaped. This could pose security risks!

For functions that have errors during gas estimation, add a message in the embark console explaining that the error may be due to solidity assertions in the function that prevent the gas from being estimated correctly. For functions that error, show `-ERROR-` in the gas estimation column. Additionally, show a description in the table footer explaining that the error may be due to solidity assertions in the function.

For events with no gas estimate, show `-EVENT-` in the gas estimate column of the profile table, and a description in the table footer explaining that there is no gas estimate for events.

### Warnings
This PR allows the console command to specify whether or not it should allow for a string result of the command to be HTML-escaped before being sent in the API response. Combining this with Cockpit’s `dangerouslySetInnerHTML`, this could allow a plugin to register a console command that injects XSS in to Cockpit.

![Imgur](https://i.imgur.com/1Rqkjyx.png)
![Imgur](https://i.imgur.com/s6Y1Ecy.png)
![Imgur](https://i.imgur.com/BhsjkBs.png)
2020-02-26 17:11:01 -05:00
Iuri Matias 1e9ed81ff3 chore: fix embark-testing version 2020-02-26 16:42:10 -05:00
Pascal Precht 20567e5c03 chore(plugins/specialconfigs): update dependencies and add missing tests 2020-02-26 16:42:10 -05:00
Iuri Matias e1136d3574 chore: fix embark-testing version
chore: fix embark-testing version

mend
2020-02-26 16:29:22 -05:00
Pascal Precht 8c8e5f7627 test(stack/namesystem): Add missing tests and update dependencies 2020-02-26 16:29:22 -05:00
Iuri Matias d27aefd2b2 chore: fix embark-testing version 2020-02-26 15:14:49 -05:00
Pascal Precht 794c7d5f24 test(stack/contracts-manager): add missing unit and API tests 2020-02-26 15:14:49 -05:00
Pascal Precht 4106a49379 feat(utils/testing): make mock apiCall() async
This is needed because API handlers are potentially async as well.
2020-02-26 15:14:49 -05:00
Pascal Precht 1a56d5f792 fix(utils/testing): ensure API mock works with `req.params` and method chaining 2020-02-26 15:14:49 -05:00
Pascal Precht 62a229198b fix(utils/testing): ensure runActionsForEvent() works without params object 2020-02-26 15:14:49 -05:00
Pascal Precht ef1ec3a606 refactor(utils/testing): expose `registerAPICall()` on testbed plugins 2020-02-26 15:14:49 -05:00
Pascal Precht 0ba8d86ea7 fix(utils/testing): add missing trace() API logger in testbed 2020-02-26 15:14:49 -05:00
EmbarkBot c54cc77e01 chore(prerelease): 5.2.4-nightly.0 2020-02-26 00:14:00 +00:00
dependabot-preview[bot] 56d360d7d7 build(deps-dev): bump @babel/plugin-proposal-nullish-coalescing-operator
Bumps [@babel/plugin-proposal-nullish-coalescing-operator](https://github.com/babel/babel) from 7.7.4 to 7.8.3.
- [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.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-25 17:41:05 -06:00
dependabot-preview[bot] 0a8b11f37c build(deps): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.7.4 to 7.8.3.
- [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.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-25 16:42:13 -06:00
dependabot-preview[bot] 6cba7af03a build(deps-dev): bump jest from 24.9.0 to 25.1.0
Bumps [jest](https://github.com/facebook/jest) from 24.9.0 to 25.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.9.0...v25.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-25 16:12:54 -06:00
Michael Bradley, Jr 8e945a2caa chore(release): 5.2.3 2020-02-25 15:09:29 -06:00
Michael Bradley, Jr 3693ebd90d fix: ensure that packages properly specify their dependencies
Many packages in the monorepo did not specify all of their dependencies; they
were effectively relying on resolution in the monorepo's root
`node_modules`. In a production release of `embark` and `embark[js]-*` packages
this can lead to broken packages.

To fix the problem currently and to help prevent it from happening again, make
use of the `eslint-plugin-import` package's `import/no-extraneous-dependencies`
and `import/no-unresolved` rules. In the root `tslint.json` set
`"no-implicit-dependencies": true`, wich is the tslint equivalent of
`import/no-extraneous-dependencies`; there is no tslint equivalent for
`import/no-unresolved`, but we will eventually replace tslint with an eslint
configuration that checks both `.js` and `.ts` files.

For `import/no-unresolved` to work in our monorepo setup, in most packages add
an `index.js` that has:

```js
module.exports = require('./dist'); // or './dist/lib' in some cases
```

And point `"main"` in `package.json` to `"./index.js"`. Despite what's
indicated in npm's documentation for `package.json`, it's also necessary to add
`"index.js"` to the `"files"` array.

Make sure that all `.js` files that can and should be linted are in fact
linted. For example, files in `packages/embark/src/cmd/` weren't being linted
and many test suites weren't being linted.

Bump all relevant packages to `eslint@6.8.0`.

Fix all linter errors that arose after these changes.

Implement a `check-yarn-lock` script that's run as part of `"ci:full"` and
`"qa:full"`, and can manually be invoked via `yarn cylock` in the root of the
monorepo. The script exits with error if any specifiers are found in
`yarn.lock` for `embark[js][-*]` and/or `@embarklabs/*` (with a few exceptions,
cf. `scripts/check-yarn-lock.js`).
2020-02-25 14:52:10 -06:00
EmbarkBot ad19b9b8dc chore(prerelease): 5.2.3-nightly.1 2020-02-25 00:14:49 +00:00
Jonathan Rainville e99a32887d fix(cmd-controller): fix build --contracts command starting comm node
Fixes https://github.com/embarklabs/embark/issues/2288
Only start a blockchain node when there is no --contracts flag and
start only needed modules for compilation
2020-02-24 16:49:02 -05:00
EmbarkBot 584845b220 chore(prerelease): 5.2.3-nightly.0 2020-02-20 00:14:55 +00:00
Pascal Precht d3200e333d fix: revert custom `deploy()` API for `EmbarkJS.Contract`
`.deploy()` is an alias to `.new()` and in other tools also no longer used
as API to deploy instances. In addition, we don't want it to shadow the
original web3 `deploy()` API which actually caused a breeaking change.
2020-02-19 11:25:20 -05:00
Jonathan Rainville 0461fa01e0 fix(@embar/site): fix proxyFor docs
Change to smart contract and fix forProxy -> proxyFor
2020-02-19 09:16:41 -05:00
Michael Bradley, Jr e271cebbe3 chore(release): 5.2.2 2020-02-18 19:06:59 -06:00
Iuri Matias 45e90f33ac fix(@embark/core): fix templates not including embark as a dependency 2020-02-18 19:55:45 -05:00
Michael Bradley, Jr f27d77005d chore(release): 5.2.1 2020-02-18 14:15:09 -06:00
Jonathan Rainville 37fbc80e40 fix(@embark/ganache): fix status when ganache is not the client
We registered the status check for Ganache even when Ganache was not
the client
2020-02-18 14:14:19 -05:00
Michael Bradley, Jr f5db3f61b6 chore(release): 5.2.0 2020-02-18 11:45:33 -06:00
Jonathan Rainville caae92281d fix(@embark/proxy): only up event listeners on available providers
Only the  Ganache provider has the setMaxListener
2020-02-18 11:40:49 -05:00
EmbarkBot e5b15c3342 chore(prerelease): 5.2.0-nightly.5 2020-02-18 00:14:02 +00:00
Jonathan Rainville 9c8837d3cd fix(@embark/proxy): up max listener for proxy request manager
fix(@embark/proxy): up max listener for proxy request manager

In the tests, we had warnings about max listeners reached, because
the default limit is 10. So I upped the limit for the request
manager and the WS connection.

stoopid CI
2020-02-17 17:58:37 -05:00