ethereum-optimism / ecosystem-contributions

Find ways to contribute to the Optimism Collective
MIT License
307 stars 119 forks source link

✨ Contribution Opportunity: Bedrock Contracts Architecture Diagram #48

Open smartcontracts opened 1 year ago

smartcontracts commented 1 year ago

What is a Contribution Opportunity?

A Contribution Opportunity is a concrete task that you can work on to contribute to the Optimism Collective.


Summary

The smart contracts for Optimism's upcoming Bedrock launch are now code-frozen. Currently, our existing architecture diagrams for the Bedrock smart contracts are out of date. OP Labs is looking for a contributor to create a high-quality architecture diagram of the Bedrock smart contracts that would make it easy for someone to understand how the contracts interact with one another.

Impact

Architecture diagrams help developers and OP Stack chain deployers understand how the various smart contracts within the Bedrock codebase interoperate.

Resources

gigamesh commented 1 year ago

I want to do this! Planning to make it an interactive SVG so it can be embedded anywhere but lmk if you had something else in mind @smartcontracts

I'll make a rough outline to run past you before starting the SVG stuff

gigamesh commented 1 year ago

Here is what I have in mind...

I might need some help understanding how GasPriceOracle & the fee vault contracts get called. I'll wait for any feedback before I continue. :)

Frame 1
patitonar commented 1 year ago

I'm Gerardo, a Solidity developer at BootNode. We're interested in getting closer to the Optimism ecosystem, and we thought this task represented a great opportunity for us to gain a better understanding of the architecture of the smart contracts and make a valuable contribution.

Here is a diagram of the bedrock smart contracts:

OptimismBedrockContracts-X2

Please let us know if this is accurate and if it meets your expectations. We welcome any feedback on how we can improve the diagram.

We tried to keep it simple by following the example of diagrams from previous versions and we hope it can be included as part of the documentation to help others understand how the contracts interact with each other

smartcontracts commented 1 year ago

This is really amazing work @patitonar, thank you! I know that @gigamesh is working on a similar diagram with interactivity. Maybe you could work together on making the diagram interactive? I really like @gigamesh's idea to have the ability to select specific user flows and highlight the contracts and functions that are used within those user flows.

gigamesh commented 1 year ago

@patitonar That design is beautiful! Would you be game to let me make it interactive, or collab on a repo?

patitonar commented 1 year ago

Thanks for the kind words. We are glad you like the diagram

From BootNode we'd love to collaborate to improve this diagram making it interactive!

@gigamesh Is it ok for us to reach you on Discord? If not, what would be the best way for us to coordinate the next steps?

patitonar commented 1 year ago

We made the diagram in SVG format available in this public repo https://github.com/BootNodeDev/optimism-bedrock-diagram

It can be easily imported into the existing documentation, also, anyone can use it to extend it, make it interactive, or use it for any other cool ideas on future contributions.

@smartcontracts Does this diagram meet the expectations of the scope of this issue to consider it resolved? Do you have any feedback or required changes to get to that point?

smartcontracts commented 1 year ago

@patitonar this is great! I am a bit under the weather today but I will review this tomorrow.

patitonar commented 1 year ago

Hi @smartcontracts, did you have a chance to take a look at this?

pablofullana commented 1 year ago

hi @smartcontracts friendly-ping over here :)