Currently ALPHA(ALPHA(ALPHA(ALPHA())))
git clone this repo and run ./evm-dev-station
. Its a fat binary, so it works on both
intel and apple silicon based darwin machines.
You can run EVM code/deploy contracts immediately against in memory state OR you can load up a blockchain database and use that.
Only works with geth
created leveldb or pebble based databases (and currently just tested with
pebble based db)
- You load up a database via the button called
Load Chaindata
this is thechaindata
directory inside yourgeth
--datadir. Don't use the currently running one, instead make a copy so you can operate on a snapshot of the blockchain. Aka if your datadir parameter to geth was--datadir=/mnt/0ae570e6-4377-47fa-bc8e-21fc1ed96974/home/mev/eth-mainnet/chaindb
then stop it momentarily and make a copy of/mnt/0ae570e6-4377-47fa-bc8e-21fc1ed96974/home/mev/eth-mainnet/chaindb/geth/chaindata
aka thechaindata
. This is your database directory we'll use - in the
Load Chaindata
button in the upper right, you give the path to the directory with the copiedchaindata
- Load contracts from the left hand side list, the
Load from chain
with optional ABI. - Give input data if any, hit
Run Contract
Huge amounts of bugs. Yes its currently closed source, but still open tickets, issues with screenshots please showing what happened wrong. I'll add a git commit to the UI so we can double check what version you had issues with. Right now its probably more useful to tell, share ideas about what you'd like to be able to do, see, how it ought to interact, font changes, animations etc.
see https://twitter.com/EdgarArout/status/1720939792098107443 for an example of how to change the
value of SLOAD
OMG AppStorage super annoying to test AppStorage again
$ rm -rf ~/Library/Preferences/evm-dev-station-x86.plist
$ killall -u $(whoami) cfprefsd
linkerSettings: [
.unsafeFlags( ["-Xlinker", "-sectcreate",
"-Xlinker", "__TEXT",
"-Xlinker", "__info_plist",
"-Xlinker", "Resources/Info.plist"] )
]),
otool -P .build/debug/evm-dev-station will show that plist
golang compiled into a C static library, statically linked into native swift binary.