Skip to content

ethereum-optimism/ecosystem

Repository files navigation



Optimism

Optimism is Ethereum, scaled.


Ecosystem

In this repository, you'll find numerous code references for applications & packages to help app developers build on top of the OP Stack with ease.

If the Optimism Repository is a place where the protocol and its infrastructure gets built. The Ecosystem Repository is a place where utilities, applications, and examples get built to interact with the protocols and its infrastructure.

Designed to be "aggressively open source," we encourage you to explore, modify, extend, and test the code as needed. We look forward to building with you!

Documentation

Support

For technical support head over to the GitHub Developer forum. Governance discussion can also be found on the Optimism Governance Forum.

Directory Structure

├── apps
│   ├── bridge-app: Example Bridge App
│   ├── dapp-console: Dapp console frontend app
│   ├── dapp-console-api: Dapp console backend api
│   ├── event-log-indexer: Indexer app
│   ├── paymaster-nft-mint: Nft mint + paymaster example app
│   ├── paymaster-proxy: Paymaster proxy service
├── packages
│   ├── api-plugin: Nx generators for api apps
│   ├── contracts-ecosystem: Ecosystem contracts
│   ├── op-app: Optimism Stack App Utils
│   ├── screening: Utils for integrating app with screening service
│   ├── ui-components: Shared ui components

Development Quick Start

Dependencies

You'll need the following:

Setup

Clone the repository and open it:

git clone git@github.com:ethereum-optimism/ecosystem.git
cd ecosystem

Install the Correct Version of NodeJS

Install the correct node version with nvm

nvm use

Install Node Modules With pnpm

pnpm i

Running Targets

Each application and package have npm scripts in there indivdual package.json. In order to run those easily we can leverage nx here. The nx.json file is setup to improve QoL while working in the repo.

The npm package name can be found in their package.json and the targets are what you'll see in the scripts object in the package.json

pnpm nx run <npm package name>:<target>

For example if we wanted to run the bridge-app for development we could run this

pnpm nx run @eth-optimism/bridge-app:dev

If we wanted to build the op-app package we could run this

pnpm nx run @eth-optimism/op-app:build

There will be a few common targets that you will most likely see across all applications and packages in the repo.

  • build
  • clean
  • dev
  • typecheck
  • lint
  • lint:fix

Codegen

Nx generateors

  • trpc-api-generator: generates the boiler plate code for creating a trpc api server

To run a generator run this command:

pnpm nx generate <name of generator> <name of new project>

Feel free to open up an issue on the repo if you're running into any issues!

Contributing

No contribution is too small and all contributions are valued. Thanks for your help improving the project! We are so happy to have you!

You can read our contribution guide here to understand better how we work in the repo.

Releases

As of now we have not published any packages in this repo to npm, but stay tuned as we plan to do that once we add more packages to the repo!

License

All other files within this repository are licensed under the MIT License unless stated otherwise.

About

Optimism is Ethereum, scaled.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published