At Tenderly we are passionate about building tools that will improve the development experience as we believe it's essential for the ecosystem to be successful.
With Zippo our mission was to bring a better development experience to Ethereum developers. Our focus was to allow fast iteration similar to what we are used while doing web development.
What it does
We achieved that by enabling developers to persist the state of the smart contracts while they are developing, it's enough that they run our CLI tool, set up the project folder and save the file.
In the background, we compile the smart contract and rewire it's state to the state of the previous contract.
How we built it
Initially, our idea was to inject the state directly in LevelDB, this would most likely work well in this case but we wanted to build something can benefit in the future everyone building development tools for the community.
We achieved that by introducing a new development OPCODE in EVM that would be allowed only in development mode.
Challenges we ran into
The main challenge was working on the EVM level.
Accomplishments that I'm proud of
Definitely, the new development OPCODE that we introduced.
What I learned
We had the chance to explore and see how much space for innovation there is on this level.