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

web3-eth-contract validation test fail #6474

Merged
merged 4 commits into from
Oct 13, 2023
Merged

web3-eth-contract validation test fail #6474

merged 4 commits into from
Oct 13, 2023

Conversation

luu-alex
Copy link
Contributor

@luu-alex luu-alex commented Oct 4, 2023

Description

investigated #6461

const logs = await contractDeployed.getPastEvents('Transfer');
			const tokenId = (logs[0] as EventLog)?.returnValues?.tokenId as string;

in this line, logs can sometimes be undefined, creating this error.

Fix is to just use receipt and instead of getPastEvents
Please include a summary of the changes and be sure to follow our Contribution Guidelines.

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.

@luu-alex luu-alex marked this pull request as ready for review October 4, 2023 02:27
@luu-alex luu-alex added Bug Addressing a bug 4.x 4.0 related labels Oct 4, 2023
@github-actions
Copy link

github-actions bot commented Oct 4, 2023

Bundle Stats

Hey there, this message comes from a github action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Asset Old size New size Diff Diff %
Total 585 KB 585 KB 0 0.00%
View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

No assets were bigger

Smaller

No assets were smaller

Unchanged

Asset Old size New size Diff Diff %
web3.min.js 567 KB 567 KB 0 0.00%
../lib/commonjs/index.d.ts 8.56 KB 8.56 KB 0 0.00%
../lib/commonjs/accounts.d.ts 3.67 KB 3.67 KB 0 0.00%
../lib/commonjs/types.d.ts 2.45 KB 2.45 KB 0 0.00%
../lib/commonjs/web3.d.ts 1.14 KB 1.14 KB 0 0.00%
../lib/commonjs/abi.d.ts 1000 bytes 1000 bytes 0 0.00%
../lib/commonjs/eth.exports.d.ts 280 bytes 280 bytes 0 0.00%
../lib/commonjs/providers.exports.d.ts 148 bytes 148 bytes 0 0.00%
../lib/commonjs/version.d.ts 60 bytes 60 bytes 0 0.00%

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 4, 2023

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: 769d5d1
Status: ✅  Deploy successful!
Preview URL: https://9aa8320e.web3-js-docs.pages.dev
Branch Preview URL: https://6461.web3-js-docs.pages.dev

View logs

@codecov
Copy link

codecov bot commented Oct 4, 2023

Codecov Report

Merging #6474 (769d5d1) into 4.x (9a5fd87) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##              4.x    #6474   +/-   ##
=======================================
  Coverage   89.65%   89.65%           
=======================================
  Files         213      213           
  Lines        8199     8199           
  Branches     2220     2220           
=======================================
  Hits         7351     7351           
  Misses        848      848           
Flag Coverage Δ
UnitTests 89.65% <ø> (ø)

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 ∅ <ø> (∅)

Copy link
Contributor

@jdevcs jdevcs left a comment

Choose a reason for hiding this comment

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

investigated #6461

const logs = await contractDeployed.getPastEvents('Transfer');
const tokenId = (logs[0] as EventLog)?.returnValues?.tokenId as string;
in this line, logs can sometimes be undefined, creating this error.

Fix is to just use receipt and instead of getPastEvents

Why logs were undefined? if tx is mined there should be logs available via getPastEvents, was there issue in tx waiting long in tests and not mined?

@Muhammad-Altabba
Copy link
Contributor

investigated #6461
const logs = await contractDeployed.getPastEvents('Transfer');
const tokenId = (logs[0] as EventLog)?.returnValues?.tokenId as string;
in this line, logs can sometimes be undefined, creating this error.
Fix is to just use receipt and instead of getPastEvents

Why logs were undefined? if tx is mined there should be logs available via getPastEvents, was there issue in tx waiting long in tests and not mined?

I also think that we need to know why the logs were undefined sometime.

And I think either the proposed code will still fail in the same occasions where the old code fails. Or, if this would not be the case, then there is another issue that the users will face when using const logs = await contractDeployed.getPastEvents('Transfer'); outside the erc721 context.

Could you please @luu-alex investigate more on why and when the await contractDeployed.getPastEvents('Transfer') is returning undefined. And if you like, it could be helpful also to investigate this case with a code not related to erc721. Because, this is a generic functionality that could be used anywhere.

Many thanks,

@luu-alex
Copy link
Contributor Author

luu-alex commented Oct 4, 2023

sounds good @Muhammad-Altabba , this PR and i think this one as well was holding up release. I created an issue and will begin investigating. Thanks for the feedback

@luu-alex
Copy link
Contributor Author

luu-alex commented Oct 4, 2023

@jdevcs im not too sure, i will need to investigate getPastEvents next

@luu-alex luu-alex closed this Oct 10, 2023
@luu-alex
Copy link
Contributor Author

luu-alex commented Oct 10, 2023

Needs more investigation, it seems to be an issue with getpastevents returning undefined due to a change from validation

@luu-alex luu-alex reopened this Oct 10, 2023
@luu-alex luu-alex merged commit e760667 into 4.x Oct 13, 2023
61 of 65 checks passed
@luu-alex luu-alex deleted the 6461 branch October 13, 2023 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4.x 4.0 related Bug Addressing a bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants