forked from hyperledger-cacti/cacti
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(cactus-plugin-ledger-connector-ethereum): add new connector plugin
Add new plugin for connecting with Ethereum ledgers. New connector is based on already existing quorum connector. The main reason for introducing yet another plugin is a need for web3js upgrade (to 4.X) which is imposible in current quorum / besu connectors due to dependency to `web3js-quorum` which requires web3js 1.X. We have plans to make web3js library pluggable and reduce code duplication among other connectors in the future, but it will be delivered later on in a separate PR. Changes: - Add new plugin based on quorum connector. - Removed private transaction and other quorum related functionalities. - Update web3js to 1.10 - will be updated to 4.X in a separate commit. - Add missing `web3-eth-contract` dependencies to besu and xdai connectors. - Add new connector to cactus-verifier-client - Add integration tests in `cactus-test-plugin-ledger-connector-ethereum` (based on similar ones for quorum connector.) - Add new connector to CI. - Add `web3*` 4.1.1 dependencies to root `package.json` because they are already required in a root level (by `typings/web3js-quorum`). Ideally this could be put into another package (quorum connector?) and have the dependencies there, but for now I think it's important to be explicit about it since it's easy to mess up if wrong web3js library is hoisted up from any monorepo package. - Sort main `package.json` - Remove tap test scripts from the root `package.json` - they don't use `.taprc` and cause bunch of errors when they try to execute jest tests. This is confusing for the users because of all false negative errors printed. - Reorganize jest config and taprc to keep tests from quorum and ethereum conenctors grouped. Peter's tweaks: 1. Switched the root's web3 dependencies from 1.5.2 to 4.1.1 because in the meantime we've done a few upgrades (plus the old versions come with CVEs) 2. There is no more hoisting, it's been completely disabled, so we should not have any more issues regarding that. It is still true however, that the root folder has our handwritten type definitions which do import web3 packages and therefore the root should declare web3 as a dependency. 3. Once https://github.com/hyperledger/cacti/issues/2648 has been resolved we can remove both the root dependency declarations of web3 and the typings that necessitate them to begin with. Closes: hyperledger-cacti#2534 Co-authored-by: Peter Somogyvari <[email protected]> Signed-off-by: Michal Bajer <[email protected]> Signed-off-by: Peter Somogyvari <[email protected]>
- Loading branch information
Showing
78 changed files
with
14,557 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1319,6 +1319,35 @@ jobs: | |
restore-keys: | | ||
${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} | ||
- run: ./tools/ci.sh | ||
cactus-plugin-ledger-connector-ethereum: | ||
continue-on-error: false | ||
env: | ||
FULL_BUILD_DISABLED: true | ||
JEST_TEST_PATTERN: packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts | ||
JEST_TEST_RUNNER_DISABLED: false | ||
TAPE_TEST_PATTERN: >- | ||
--files={./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/openapi/openapi-validation-no-keychain.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/openapi/openapi-validation.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v2.3.0-deploy-contract-from-json-json-object-endpoints.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v2.3.0-deploy-contract-from-json-json-object.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v2.3.0-invoke-contract-json-object-endpoints.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v2.3.0-invoke-contract-json-object.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v21.4.1-deploy-contract-from-json-json-object-endpoints.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v21.4.1-deploy-contract-from-json-json-object.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v21.4.1-invoke-contract-json-object-endpoints.test.ts,./packages/cactus-plugin-ledger-connector-ethereum/src/test/typescript/integration/plugin-ledger-connector-ethereum/deploy-contract/v21.4.1-invoke-contract-json-object.test.ts} | ||
TAPE_TEST_RUNNER_DISABLED: false | ||
needs: build-dev | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Use Node.js v16.14.2 | ||
uses: actions/[email protected] | ||
with: | ||
node-version: v16.14.2 | ||
- uses: actions/[email protected] | ||
- id: yarn-cache-dir-path | ||
name: Get yarn cache directory path | ||
run: echo "::set-output name=dir::$(yarn cache dir)" | ||
- id: yarn-cache | ||
name: Restore Yarn Cache | ||
uses: actions/[email protected] | ||
with: | ||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | ||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | ||
restore-keys: | | ||
${{ runner.os }}-yarn- | ||
- run: ./tools/ci.sh | ||
cactus-plugin-ledger-connector-quorum: | ||
continue-on-error: false | ||
env: | ||
|
@@ -1694,6 +1723,33 @@ jobs: | |
restore-keys: | | ||
${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} | ||
- run: ./tools/ci.sh | ||
cactus-test-plugin-ledger-connector-ethereum: | ||
continue-on-error: false | ||
env: | ||
FULL_BUILD_DISABLED: true | ||
JEST_TEST_PATTERN: packages/cactus-test-plugin-ledger-connector-ethereum/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts | ||
JEST_TEST_RUNNER_DISABLED: false | ||
TAPE_TEST_RUNNER_DISABLED: true | ||
needs: build-dev | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Use Node.js v16.14.2 | ||
uses: actions/[email protected] | ||
with: | ||
node-version: v16.14.2 | ||
- uses: actions/[email protected] | ||
- id: yarn-cache-dir-path | ||
name: Get yarn cache directory path | ||
run: echo "::set-output name=dir::$(yarn cache dir)" | ||
- id: yarn-cache | ||
name: Restore Yarn Cache | ||
uses: actions/[email protected] | ||
with: | ||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | ||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | ||
restore-keys: | | ||
${{ runner.os }}-yarn- | ||
- run: ./tools/ci.sh | ||
cactus-test-tooling: | ||
continue-on-error: false | ||
env: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.