Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zemse/evm-run
🏃 Run EVM code from console or file, on local or mainnet fork.
https://github.com/zemse/evm-run
bytecode ethereum evm golfing
Last synced: 16 days ago
JSON representation
🏃 Run EVM code from console or file, on local or mainnet fork.
- Host: GitHub
- URL: https://github.com/zemse/evm-run
- Owner: zemse
- Created: 2022-03-13T20:46:20.000Z (over 2 years ago)
- Default Branch: rust
- Last Pushed: 2024-08-05T14:16:27.000Z (3 months ago)
- Last Synced: 2024-10-04T12:50:37.749Z (about 1 month ago)
- Topics: bytecode, ethereum, evm, golfing
- Language: Rust
- Homepage:
- Size: 292 KB
- Stars: 29
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# evm-run
Run evm code from console or from file, on local env or mainnet fork.
## Setup
Clone this repo and run the following command:
```
cargo install --path .
```## Usage
### Run code directly
Calculates square
```
$ evm-run --code 348002600052596000f3 --value 3
34 CALLVALUE
80 DUP1 Stack: 3
2 MUL Stack: 3,3
60 PUSH1 Stack: 9
52 MSTORE Stack: 0,9
59 MSIZE Memory: 0000000000000000000000000000000000000000000000000000000000000009
60 PUSH1 Stack: 20 Memory: 0000000000000000000000000000000000000000000000000000000000000009
f3 RETURN Stack: 0,20 Memory: 0000000000000000000000000000000000000000000000000000000000000009
Returned: 0000000000000000000000000000000000000000000000000000000000000009
gasUsed : 24
```### Run pseudo code
```
$ evm-run --code 'push1 02 push1 03 add stop'
code 600260030100
60 PUSH1
60 PUSH1 Stack: 2
1 ADD Stack: 3,2
0 STOP Stack: 5
Returned:
gasUsed : 9
```### Mainnet fork
Run evm code against mainnet fork, to get balance of vitalik.
```
% evm-run 363d600C373d51313d52593df3 --calldata d8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --rpc https://eth-mainnet.alchemyapi.io/v2/ --block 14379250
36 CALLDATASIZE
3d RETURNDATASIZE Stack: 14
60 PUSH1 Stack: 0,14
37 CALLDATACOPY Stack: C,0,14
3d RETURNDATASIZE Memory: 000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045
51 MLOAD Stack: 0 Memory: 000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045
31 BALANCE Stack: D8DA6BF26964AF9D7EED9E03E53415D37AA96045 Memory: 000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045
3d RETURNDATASIZE Stack: E034B8C125409C0113 Memory: 000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045
52 MSTORE Stack: 0,E034B8C125409C0113 Memory: 000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045
59 MSIZE Memory: 0000000000000000000000000000000000000000000000e034b8c125409c0113
3d RETURNDATASIZE Stack: 20 Memory: 0000000000000000000000000000000000000000000000e034b8c125409c0113
f3 RETURN Stack: 0,20 Memory: 0000000000000000000000000000000000000000000000e034b8c125409c0113
Returned: 0000000000000000000000000000000000000000000000e034b8c125409c0113
gasUsed : 2630
```### Run block
```
evm-run --block 20132136 --rpc https://eth-mainnet.g.alchemy.com/v2/
running block
████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1589329/12195104
```Generates and stores a partial state trie in `block_20132136.db`. This is just enough to execute the block.