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

fix(web3-errors): the undefined data in Eip838ExecutionError #6905

Open
wants to merge 4 commits into
base: 4.x
Choose a base branch
from

Conversation

Alfxjx
Copy link

@Alfxjx Alfxjx commented Mar 16, 2024

Description

Fixes #6433

process the undefined data in Eip838ExecutionError constructor to avoid an "read something from undefined" bug.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • I have selected the correct base branch.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • Any dependent changes have been merged and published in downstream modules.
  • I ran npm run lint with success and extended the tests and types if necessary.
  • I ran npm run test:unit with success.
  • I ran npm run test:coverage and my test cases cover all the lines and branches of the added code.
  • I ran npm run build and tested dist/web3.min.js in a browser.
  • I have tested my code on the live network.
  • I have checked the Deploy Preview and it looks correct.
  • I have updated the CHANGELOG.md file in the root folder.
  • I have linked Issue(s) with this PR in "Linked Issues" menu.

@@ -159,7 +159,7 @@ export class Eip838ExecutionError extends Web3ContractError {
// error.data, error.data.data or error.data.originalError.data (https://github.com/web3/web3.js/issues/4454#issuecomment-1485953455)
if (typeof error.data === 'object') {
let originalError: { data: string };
if ('originalError' in error.data) {
if (error.data && 'originalError' in error.data) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Alfxjx Thanks, also add changelog with issue #, in :
https://github.com/web3/web3.js/blob/4.x/packages/web3-errors/CHANGELOG.md of your branch

Copy link
Author

@Alfxjx Alfxjx Mar 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your comments, I submitted the changelog, is it right or should I update the version in package.json of web3-errors

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Alfxjx ,
No need to update the version. We do the version update later in a separate PR.

Copy link

codecov bot commented Mar 20, 2024

Codecov Report

Merging #6905 (b9c6117) into 4.x (4358140) will increase coverage by 4.62%.
Report is 216 commits behind head on 4.x.
The diff coverage is 100.00%.

❗ Current head b9c6117 differs from pull request most recent head 933acc2. Consider uploading reports for the commit 933acc2 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##              4.x    #6905      +/-   ##
==========================================
+ Coverage   87.37%   91.99%   +4.62%     
==========================================
  Files         197      215      +18     
  Lines        7548     8172     +624     
  Branches     2059     2202     +143     
==========================================
+ Hits         6595     7518     +923     
+ Misses        953      654     -299     
Flag Coverage Δ
UnitTests 91.99% <100.00%> (+4.62%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
web3 ∅ <ø> (∅)
web3-core ∅ <ø> (∅)
web3-errors ∅ <ø> (∅)
web3-eth ∅ <ø> (∅)
web3-eth-abi ∅ <ø> (∅)
web3-eth-accounts ∅ <ø> (∅)
web3-eth-contract ∅ <ø> (∅)
web3-eth-ens ∅ <ø> (∅)
web3-eth-iban ∅ <ø> (∅)
web3-eth-personal ∅ <ø> (∅)
web3-net ∅ <ø> (∅)
web3-providers-http ∅ <ø> (∅)
web3-providers-ipc ∅ <ø> (∅)
web3-providers-ws ∅ <ø> (∅)
web3-rpc-methods ∅ <ø> (∅)
web3-utils ∅ <ø> (∅)
web3-validator ∅ <ø> (∅)

{
"cause": undefined,
"code": undefined,
"data": undefined,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code was already working when data is undefined. But it does not work when data is null. So, could you please update the tests?
Thanks,

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok I will look into it and fix.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Alfxjx ,
Just to clarify that your code looks great! And what I proposed to update is only your tests. That is to test with null instead of undefined. Please, let me know if you need any help to finish this.
Thanks,

@jdevcs
Copy link
Contributor

jdevcs commented Apr 22, 2024

@Muhammad-Altabba could you update changelog and merge this PR, as seems @Alfxjx is away.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TypeError: Cannot use 'in' operator to search for 'originalError' in null
4 participants