|
1 | 1 | # Contributing |
2 | 2 |
|
3 | | -This repo uses [Next.js](https://github.com/vercel/next.js/), [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss), [TypeScript](https://github.com/microsoft/TypeScript), [pnpm](https://github.com/pnpm/pnpm), and [viem](https://github.com/wagmi-dev/viem). To get started: |
| 3 | +## Issues |
| 4 | + |
| 5 | +See the open [issues](https://github.com/mds1/evm-diff/issues) for current needs, and feel free to create new issues for bugs, feature requests, or other ideas. |
| 6 | + |
| 7 | +## Development |
| 8 | + |
| 9 | +If you are interested in working on an issue, please comment on the issue so it can be assigned to you. |
| 10 | +Before opening a PR, run `bun check` to ensure linting and formatting are correct. |
| 11 | + |
| 12 | +This repo uses [Next.js](https://github.com/vercel/next.js/), [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss), [TypeScript](https://github.com/microsoft/TypeScript), [bun](https://bun.sh/), and [viem](https://github.com/wagmi-dev/viem). |
| 13 | + |
| 14 | +To get started building the app: |
4 | 15 |
|
5 | 16 | ```sh |
6 | 17 | # Install dependencies. |
7 | | -pnpm install |
| 18 | +bun install |
8 | 19 |
|
9 | 20 | # Start the development server. |
10 | | -pnpm dev |
| 21 | +bun dev |
11 | 22 |
|
12 | 23 | # Format files. |
13 | | -pnpm fmt |
14 | | -``` |
15 | | - |
16 | | -See the open [issues](https://github.com/mds1/evm-diff/issues) for current needs, and feel free to create new issues for bugs, feature requests, or other ideas. |
| 24 | +bun fmt |
17 | 25 |
|
18 | | -## Bounties |
| 26 | +# Lint. |
| 27 | +bun lint |
19 | 28 |
|
20 | | -Most issues are eligible for bounties. Some issues will have something like "(bounty: X ETH 🔴)" at the end of the issue title, where `X ETH` is the number of ETH paid out for this bounty. Others will say nothing, but are still eligible—I just haven't gotten around to assigning a payment amount. |
21 | | - |
22 | | -To apply for and claim a bounty: |
| 29 | +# Add a new chain to the UI, format, and lint. |
| 30 | +bun check |
| 31 | +``` |
23 | 32 |
|
24 | | -1. If the issue has no bounty listed, message me on [Twitter](https://twitter.com/msolomon44), [Telegram](https://t.me/msolomon4), or [Discord](https://discordapp.com/users/417428774653657089) to work out an amount. |
25 | | -2. Leave a brief comment explaining your work plan (may be very brief is issue is well-scoped), and wait to begin work until you are assigned to the issue. If you have any questions about the issue scope, you can ask in the issue or message me. (There is no guarantee that leaving a comment means you will be assigned, if multiple people are interested in the same issue). |
26 | | -3. I'm not aware of any sufficient github issue bounty platforms, so there is no intermediary managing the bounties. This means you have to trust that I'll pay it out, which I will if the work meets the issue's requirements and is sufficiently high quality to close that issue. |
27 | | -4. Feel free to open a draft PR before completion if you have any questions. |
28 | | -5. Include your **OP Mainnet** payout address (all payouts will be on [OP Mainnet](https://docs.optimism.io/chain/networks#op-mainnet)) in the PR description, and once the PR is reviewed and merged I will transfer the ETH. |
| 33 | +To fetch chain data use the below commands. |
| 34 | +It's recommend to have an `INFURA_API_KEY` set in your environment to improve performance. |
29 | 35 |
|
30 | | -## Architecture |
| 36 | +```bash |
| 37 | +# Fetch all data for a single chain. |
| 38 | +bun fetch-data [chainId] |
31 | 39 |
|
32 | | -The specs for each chain live in `src/chains/[chainName]/*.ts`. |
33 | | -Each chain's folder is structured similar to the [ethereum/execution-specs](https://github.com/ethereum/execution-specs) repo. |
34 | | -For example, the `src/ethereum/shanghai` folder in that repo contains the specs for the latest hard fork (Shanghai) on Ethereum mainnet, and information about precompiles lives in the `vm/precompiled_contracts` subfolder. |
35 | | -That folder contains one file for each precompile. |
36 | | -Since EVM Diff doesn't have to actually implement the precompiles, we just use a single file for all precompile data, which lives in this repo at `src/chains/mainnet/vm/precompiles.ts`. |
| 40 | +# Fetch all data for all chains. |
| 41 | +bun fetch-data |
37 | 42 |
|
38 | | -As more aspects of the execution spec are added, they should be added in such a way to continue this pattern of mirroring the structure of the execution-specs repo. |
| 43 | +# Add a new chain to the UI, format, and lint. |
| 44 | +bun check |
| 45 | +``` |
0 commit comments