Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(deps): upgrade web3js-quorum to v22.4.0 #2648

Closed
petermetz opened this issue Aug 31, 2023 · 5 comments · Fixed by #2649
Closed

build(deps): upgrade web3js-quorum to v22.4.0 #2648

petermetz opened this issue Aug 31, 2023 · 5 comments · Fixed by #2649
Assignees
Labels
dependencies Pull requests that update a dependency file Developer_Experience enhancement New feature or request good-first-issue Good for newcomers good-first-issue-400-expert P2 Priority 2: High
Milestone

Comments

@petermetz
Copy link
Contributor

petermetz commented Aug 31, 2023

Description

This newer version ships with Typescript type definition whiles the earlier one we currently use does not.

Once we upgrade we'll be able to delete our own type declarations under the ./types/ directory and thus have less code maintain.

(add more description and relevant links)

Acceptance Criteria

  1. Tests are still passing
  2. Build is still passing
  3. If breaking changes needed to be made then those are documented thoroughly with migration steps included.
  4. [POSTPONED] The old type definitions that we hand-rolled are deleted from the codebase.
  5. [POSTPONED] Web3 dependency declarations have been cleaned out from the root package.json file
@petermetz petermetz added enhancement New feature or request good-first-issue Good for newcomers dependencies Pull requests that update a dependency file Developer_Experience good-first-issue-400-expert P2 Priority 2: High labels Aug 31, 2023
@petermetz petermetz added this to the v2.0.0 milestone Aug 31, 2023
@petermetz petermetz self-assigned this Aug 31, 2023
petermetz referenced this issue in outSH/cactus Aug 31, 2023
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 <peter.somogyvari@accenture.com>

Signed-off-by: Michal Bajer <michal.bajer@fujitsu.com>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
@petermetz
Copy link
Contributor Author

image

@petermetz
Copy link
Contributor Author

image

@petermetz
Copy link
Contributor Author

image

@petermetz
Copy link
Contributor Author

image

@petermetz
Copy link
Contributor Author

petermetz added a commit to petermetz/cacti that referenced this issue Aug 31, 2023
Upgraded to v22.4.0 but did not yet delete our hand-built typings
because the ones that v22.4.0 ships with are broken (do not match the
actual implementation forcing programmers to fight the compiler
needlessly)

Fixes hyperledger-cacti#2648

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz referenced this issue in outSH/cactus Aug 31, 2023
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 <peter.somogyvari@accenture.com>

Signed-off-by: Michal Bajer <michal.bajer@fujitsu.com>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz referenced this issue Aug 31, 2023
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: #2534

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: Michal Bajer <michal.bajer@fujitsu.com>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit to petermetz/cacti that referenced this issue Sep 6, 2023
Upgraded to v22.4.0 but did not yet delete our hand-built typings
because the ones that v22.4.0 ships with are broken (do not match the
actual implementation forcing programmers to fight the compiler
needlessly)

Fixes hyperledger-cacti#2648

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit that referenced this issue Sep 6, 2023
Upgraded to v22.4.0 but did not yet delete our hand-built typings
because the ones that v22.4.0 ships with are broken (do not match the
actual implementation forcing programmers to fight the compiler
needlessly)

Fixes #2648

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
sandeepnRES referenced this issue in sandeepnRES/cacti Dec 21, 2023
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 <peter.somogyvari@accenture.com>

Signed-off-by: Michal Bajer <michal.bajer@fujitsu.com>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
sandeepnRES pushed a commit to sandeepnRES/cacti that referenced this issue Dec 21, 2023
Upgraded to v22.4.0 but did not yet delete our hand-built typings
because the ones that v22.4.0 ships with are broken (do not match the
actual implementation forcing programmers to fight the compiler
needlessly)

Fixes hyperledger-cacti#2648

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file Developer_Experience enhancement New feature or request good-first-issue Good for newcomers good-first-issue-400-expert P2 Priority 2: High
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant