-
Notifications
You must be signed in to change notification settings - Fork 17
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
Add Ethereum Smart Contract binary bytecode matching #52
Add Ethereum Smart Contract binary bytecode matching #52
Conversation
7595b7d
to
aa6733a
Compare
d3be3eb
to
f77bf50
Compare
79a7a72
to
43336d8
Compare
f14d1be
to
d445eb3
Compare
50a5c71
to
61bc074
Compare
61bc074
to
930c0d8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
Seems the PR is ready to merge 🌟 except only for two things:
see as a reference:
|
https://github.com/lidofinance/aave-delivery-infrastructure/blob/main/verifications/scripts/verify-bytecode.ts#L479-L494 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, accepting to upstream 🍏
Description:
This PR enhances
diffyscan
by integrating Ethereum smart contract binary matching. It incorporates functionalities from verify-bytecode.ts and bytecode_verificator.sh.Key Changes:
Showcases:
lido_dao_sepolia_config.json
.lido_dao_holesky_config.json
.New Modules and Refactoring:
binary_verifier.py
to handle binary comparison of contracts.encoder.py
for encoding contract arguments, referencing the Solidity ABI specification.compiler.py
.calldata.py
for calculating and parsing constructor arguments from configurations.types.py
tocustom_types.py
.hardhat.py
.node_handler.py
.custom_exceptions.py
.Configurations and Documentation:
lido_dao_sepolia_config.json
andlido_dao_holesky_config.json
with abinary_comparison
section.Improvements and Fixes:
mypy
linter.diffyscan
usage remains unaffected.Implemented Logic for Contract Code Matching:
By integrating these enhancements,
diffyscan
has been enriched with the ability to verify smart contracts at the bytecode level, ensuring greater reliability and security in contract deployment and verification processes.