cawfree / substratum

An opinionated, spec-compliant, optimized version of Optimism's contracts-bedrock package.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

substratum • tests license

Note This project will be developed during my free time, so expect progress to be slow. See TODO for the current status. Contributions are welcome, and feel free to reach out if you're interested!

substratum seeks to be an opinionated, spec-compliant, optimized version of Optimism's contracts-bedrock package.

High-level goals

  • 🧹 Clean up tech debt in contracts-bedrock
  • ⚡ Optimize
  • 🧪 Have higher test coverage than contracts-bedrock
    • ⚖️ Differential test this implementation against contracts-bedrock
    • 🦀 Rewrite periphery differential testing scripts / fuzz input generators in Rust.
    • 🛠️ Favor forge invariants over Echidna. Echidna will be used for long-term fuzzing campaigns in the future.
      • 🪨 Further define plain-english invariants, and when possible, write accompanying invariant tests.
    • 🏛️ Use halmos for properties that can benefit from bounded symbolic execution.
    • ☢️ Use pyrometer for bound / taint analysis.
  • 📜 Improve documentation (forge doc)
  • 💣 Nuke OZ from the Optimism contracts codebase.
    • 🏡 Also trim other dependencies in favor of in-house contracts.
  • ‼️ Move to custom errors.
  • 💫 Use custom types for values such as hashes, gas limits, timestamps, balances, etc.
  • 📦 Support legacy contract storage layouts, but support a cleaner upgrade scheme going forward.
  • 🥞 Improve modularity of existing contracts.

Contributing

See CONTRIBUTING.md.

License

substratum is and will always be MIT Licensed.

TODO

Stage 0: Repo setup

Stage 1: Port / Rewrite Libraries

Stage 2: Universal Contracts TODO

Stage 3: L1 Contracts TODO

Stage 4: L2 Contracts TODO

Stage 5: Deployment Contracts TODO

Stage 6: Rewrite test scripts in Rust TODO

About

An opinionated, spec-compliant, optimized version of Optimism's contracts-bedrock package.

License:MIT License


Languages

Language:Solidity 99.3%Language:Python 0.7%