{"repo":"gauravsonii/tracevm","free":true,"listed":false,"github":"https://github.com/gauravsonii/tracevm","clone":"git clone https://github.com/gauravsonii/tracevm.git","description":"Track the values and addresses of slots (storage variables in Solidity) inside the Ethereum contract, as well as tracking logs (Solidity events).","language":"Go","stars":24,"topics":["blockchain","dapp","education","ethereum","evm","golang","solidity","testing","tooling","vyper"],"license":"Apache-2.0","category":"blockchain-web3","readme_excerpt":"TracEVM This tool is used to track the values and addresses of slots (storage variables in Solidity) inside the Ethereum contract, as well as tracking logs (Solidity events). - Partial symbolic execution provides the complete data on how a specific variable or slot address was calculated - Suitable for learning about Solidity internals - Written in Go Docker The easiest way to start using the tool is to use Docker It is needed to copy the sample config from here, and save it as conf.json Run TracEVM Prerequesits Project includes submodules, therefore it is needed to clone the project this way. Also, make , git , go and python3 should be preinstalled. Additionally, Geth prerequisites are required to compile Geth. Building It is possible to build TracEVM with such command. Running To open webview on address 127.0.0.1:4334 run the following command. TracEVM will be running! Connecting with Remix It is expected to have Remix installed. Choose External HTTP Provider Connect by default address. Usage example Let's imagine we have such contract. Let's deploy the contract and see the output. We see that: - event type is final slot, which means that this slot was written at the end of transaction (not reverted). - further we see slot offsets (constant - initial slot, mapping - solidity keccak mapping magic, offset - offset from last value) - short slot formula, which shows all cryptographic operations which were performed with slot Also there is a full formula, which computes all need","default_branch":null,"files":null,"tree":[],"storefront":"/r/gauravsonii","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gauravsonii/tracevm/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}