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

Update certora-cli to 7.3.0 #5021

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

Update certora-cli to 7.3.0 #5021

wants to merge 7 commits into from

Conversation

ernestognw
Copy link
Member

Replaces #4957 and #5019

PR Checklist

  • Tests
  • Documentation
  • Changeset entry (run npx changeset add)

Copy link

socket-security bot commented Apr 19, 2024

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
pypi/certora-cli@7.3.0 environment, eval, filesystem, network, shell 0 22.7 MB certora, shellyg

View full report↗︎

@ernestognw
Copy link
Member Author

The CI uses 0.8.24. When I compile locally with 0.8.25 everything works fine but switching to 0.8.24 produce the same results as the CI.

I'll keep investigating

Copy link

changeset-bot bot commented Apr 19, 2024

⚠️ No Changeset found

Latest commit: 1e70e61

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ernestognw ernestognw requested a review from Amxx April 22, 2024 15:28
@Amxx
Copy link
Collaborator

Amxx commented Apr 24, 2024

Note: ERC721 safeMint and safeTransferFrom rules fail because failure of the underlying checkOnERC721Received is not modeled in the assert success <=> (...); description on liveness.

AFAIK, we a few options (in order of difficulty):

  • require that to has no code in the rule
  • require that to has no code, or that the check passes in the helper
  • "leak" the data for the helper (return value) to verify the check in the liveness assert

@ernestognw
Copy link
Member Author

Note: ERC721 safeMint and safeTransferFrom rules fail because failure of the underlying checkOnERC721Received is not modeled in the assert success <=> (...); description on liveness.

I am not sure of that since we're summarizing the result of an onERC721Received call so the checkOnERC721Received should not fail. The summarization is in certora/specs/methods/IERC721Receiver.spec.

Am I missing something?

@Amxx
Copy link
Collaborator

Amxx commented Apr 25, 2024

I'm not sure why that happens, but clearly there is an issue here

See this.

Capture d’écran du 2024-04-25 10-08-45

Capture d’écran du 2024-04-25 10-10-39

@ernestognw
Copy link
Member Author

ernestognw commented May 24, 2024

Attempted to retake this, and found a couple of issues. New errors appear in pretty much every spec, similar to the following:

EVM instruction at PC 2786 jumps to unknown destination 5140, from 2783#2705/16. Possible unresolved function pointer.

Also the CLI hangs up when I run node certora/run.js --all, and most importantly, the Certora Prover and the CLI report the jobs succeded even though the verification of multiple rules failed. My guess is that they might have changed the definition of what a successful verification is, possibly affecting our CI as well.

Here's how Certora is presenting the status as passed although rules didn't:

Captura de pantalla 2024-05-24 a la(s) 11 54 03 a m

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

Successfully merging this pull request may close these issues.

None yet

2 participants