All Projects → ConsenSys → bytecode-verifier

ConsenSys / bytecode-verifier

Licence: other
Compile Solidity source code and verify its bytecode matches the blockchain

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to bytecode-verifier

vandal
Static program analysis framework for Ethereum smart contract bytecode.
Stars: ✭ 121 (+55.13%)
Mutual labels:  smart-contracts, evm
blockhead
Crypto portfolio tracker, DeFi dashboard, NFT viewer and data explorer for the Ethereum/EVM-based blockchain ecosystem and the web 3.0-powered metaverse https://gitcoin.co/grants/2966/blockhead
Stars: ✭ 41 (-47.44%)
Mutual labels:  smart-contracts, evm
prb-math
Solidity library for advanced fixed-point math
Stars: ✭ 404 (+417.95%)
Mutual labels:  smart-contracts, evm
Echidna
Ethereum smart contract fuzzer
Stars: ✭ 571 (+632.05%)
Mutual labels:  smart-contracts, evm
Remix Ide
Documentation for Remix IDE
Stars: ✭ 1,768 (+2166.67%)
Mutual labels:  smart-contracts, evm
gas-reporting
Reference documentation on every gas price API and all the different formats
Stars: ✭ 85 (+8.97%)
Mutual labels:  smart-contracts, evm
solidity-create2-example
Example of how to use the CREATE2 opcode released in the Constantinople update for Ethereum
Stars: ✭ 97 (+24.36%)
Mutual labels:  smart-contracts, evm
Remix
This has been moved to https://github.com/ethereum/remix-project
Stars: ✭ 1,063 (+1262.82%)
Mutual labels:  smart-contracts, evm
awesome-ethereum-events
Inspired by the awesome list of awesome lists of awesome lists of...
Stars: ✭ 18 (-76.92%)
Mutual labels:  smart-contracts, evm
Remix Project
Remix is a browser-based compiler and IDE that enables users to build Ethereum contracts with Solidity language and to debug transactions.
Stars: ✭ 225 (+188.46%)
Mutual labels:  smart-contracts, evm
EVM-Simulator
EVM-Simulator bachelor's thesis.
Stars: ✭ 36 (-53.85%)
Mutual labels:  smart-contracts, evm
archethic-node
Official Archethic Blockchain node, written in Elixir
Stars: ✭ 42 (-46.15%)
Mutual labels:  smart-contracts
alpha-interface
✨ Token Exchange App for Arweave Profit Sharing Tokens
Stars: ✭ 34 (-56.41%)
Mutual labels:  smart-contracts
substrate-contracts-node
Minimal Substrate node configured for smart contracts via pallet-contracts.
Stars: ✭ 70 (-10.26%)
Mutual labels:  smart-contracts
pali-wallet
The Official Syscoin browser wallet. Open source, easy to use & multichain.
Stars: ✭ 30 (-61.54%)
Mutual labels:  evm
evm llvm
Official repo of the EVM LLVM project
Stars: ✭ 72 (-7.69%)
Mutual labels:  evm
minority
Ethereum 2.0 node multiplexer between consensus and execution
Stars: ✭ 94 (+20.51%)
Mutual labels:  evm
eth option
ERC20-compatible Option Contracts
Stars: ✭ 22 (-71.79%)
Mutual labels:  smart-contracts
dipdup-py
Modular framework for creating selective indexers and featureful backends for dapps
Stars: ✭ 49 (-37.18%)
Mutual labels:  smart-contracts
trufflepig
🍄🐷Truffle contract artifact loading tool for local development
Stars: ✭ 45 (-42.31%)
Mutual labels:  smart-contracts

get in touch with Consensys Diligence
[ 🌐 📩 🔥 ]

Bytecode Verifier

Bytecode Verifier is a handy commandline tool for verifying locally compiled bytecode of a target Solidity contract against its actual bytecode stored in Etheruem Blockchain provided its contract address. This tool:

  • integrity/correctness of bytecode: what's actually being stored on chain is correctly compiled from particular contract, which might be helpful in case of non-trivial potential high-value holder contract deployment(e.g. MultiSig Wallet), especially the contract is deployed through a third party platform.
  • Minimimal effort, simple to use: solidity compiler envolves overtime with minor and some major changes, which complicates the verification of bytecode. (as recurring "bytecode doesn't match" questions being asked on Ethereum Stack Exchange). Bytecode Verifier has been tested against latest version all the way back to some of the oldest deployed contracts.
  • Testnet friendly: most projects launch on testnet before deploying the contract system to mainnet, this tool supports Rinkeby, Kovan and Ropsten Testnet, which constitute three active, well-maintained testnets that most ethereum developers use.

Installation

Prefer global install:

npm install eth-bytecode-verifier -g

If successfully installed, try the -h or --help to read a brief info about this tool.

ethv --help

ethv_help

Quick Usage

ethv verify <chainChoice>

! Currently this tool can verify contracts on: mainnet, kovan, ropsten and rinkeby (NOTE: for contracts on Rinkeby, only compiler version no earlier than 0.4.9)!

  1. Save the contract code into a file with name *YourContractName*.sol. If your contract imports other contract in a separate file or it consists of multiple contracts, please do name the file as the main contract since that's what's the bytecode we tend to verify.(e.g. contract StandardToken is Token {}, then StandardToken.sol should be the file name.)

  2. The ethv verifier will prompt 4 questions. Among which, be careful about the format of compiler version specification. If you are not sure, try run ethv compiler first, and copy the legitimate version string from the output.

  3. If bytecode of your local file checks out with what's actually on the blockchain address, then terminal will return positive feedback, otherwise red bold alert feedback will be returned.

Example1: Golem_MultiSigWallet (mainnet)

golem_multisig

Example2: Oraclize (kovan)

oraclize_kovan

For more example: please go to example subfolder

ethv --list

To quickly get a list of formal major release version of solidity compiler.

ethv_list

ethv compiler

To look up for an intermediate "nightly" version of solidity compiler

ethv_compiler

Contributing

This bytecode verifier is entirely open sourced, anyone in the community is free to use in any purpose. (see MIT License for details) More importantly, any issues or pull request are more than welcomed. According npm package can be found here.

Acknowledgement

Big thanks and great gratitude to ConsenSys Diligence for making this project possible.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].